Add tests for currying
Fix missing return statement in curried function
Use arrow syntax for function types
Finish currying function types internally

Last time I worked on this, function types still took an array of
arguments, which were checked at boundaries to ensure they had only
one value inside. We now expect a single argument. Function types are
similar. They now take two arguments, the `from` type and the `to`
type.
Fix unit parsing