Teach the code generator to handle lambdas.
Teach the code generator to handle lambdas.

Each lambda is wrapped into a Function constructor, and for each
lambda we generate a newtype declaration of the form

newtype Function = Function (Double# -> a)

where a is a type that may contain references to Function.  Note that
we don't distinguish between these Function types, so in general there
will be several newtype declarations with the same name Function.  We
have to manually link each lambda to the appropriate Function type.

axch/dysvunctional-language,axch/dysvunctional-language,axch/dysvunctional-language,axch/dysvunctional-language