Now we correctly distibguish polymorphic and monomorphic types and set sigma substitutions accordingly