Type checker removing abstract monoids almost completed. Support for
functions + abstractions needed.