Changes due to support for overloaded multiplication
Simplification of inference procedure
Further simplifications
Fixing the misfeature with constants only accepting abstractions in their arrow-typed arguments
Simplification to help adding more overloaded operators