Improved code structure. Removed bug from instantiate-universals. Still have one TODO
type-generalisation.ml also works now! I'm going to need more examples.. Mutually recursive functions, and maybe polymorphic recursion as a failing example?