Client: monomorphic `let rec`
This MR implements 'let rec' in the simple, monomorphic way.
The elaboration is slightly more subtle than I thought at first, because we need to mediate between the polymorphic/generalized type visible after the definition and the monomorphic type visible within the recursive definition. (There is a comment in the code that explains this with an example.)
Of course the plan is to add polymorphic recursion later. I guess we could add mutual recursion first, which should be routine.