Add arrayToList.
Increase code readability.
Comment tweak.
Add compose, cons and flatmap functions. Use them to make code more functional.
Extract function evaluateLine, to make it easier to remove try/catch in dev.
Combine the notion of types and constructor functions. Applying a type now creates an instance of that type.
Correct the prelude and tests to match this change.
Don't def the result if it is undefined.
Minus with one argument negates.
Whitespace tidying in function definitions.
Inline mkInstance in to mkType. Improve printing.