simplified Hash (removed redundant combinations with 0)
Congruence: check for type errors
fix in metaPattern: take care of type arguments
more informative errors in Type.apply;
rewritten part of the hashconsing