Why not this? data Pair = forall a. Eq a => Pair {x::a, y::a} equal :: Pair -> Bool equal (Pair x y) = x == y -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://www.haskell.org/pipermail/glasgow-haskell-users/attachments/20130718/55d646a2/attachment.htm>