Handle complex pattern matching, support a few more primops.
Make darn sure to invoke callback with the right number of arguments.
Do not use anonymous global constants. For some reason, compiling to
JavaScript fails if we do.