Cleaned up comparison of types and reused the code for typeclass instance search. Cleaned up builtin AST and moved it to another namespace.
Can specify type classes on type parameters.