Fix possibility of calling `maximum` on empty lists
Generate fewer intermediate variables during record unification
Simplify type error messages
Take out types that were listed as "builtin"
Simplify code to generate record constraints
Correct the code that unifies records