Missing call to unify in LetE
Properly deal with scoping in function parameters

(where later parameters can refer to earlier parameters); this wasn't an issue
before because the renamer took care of translating out length(x) in types, but
now this is the job of the type checker.