fix: pair and list constructors generate contraints; added example which shows polymorphism doesnt work