unify args with params in call expr, return env from typeCheck
generate fresh ftv for all free types
add inference tests
optional polymorphic type (nasty syntax)