comments
rules for polymorhic type instantiation
preconditions for type instantiation and type abstraction
deleted old code