Non-recursive values can contain recursive 'let' definitions.
Type inference for rest of the top level stuff.
Temporary Main module.