Hi What is the difference between data T0 f a = MkT0 a instance Eq (T0 f a) where ... and data T0 f a = MkT0 a instance Eq a => Eq (T0 f a) where ... I've only seen the "=>" operator used for declaring extended classes but never with class instances. By the way, what is the correct terms for the "=>" and the "->"? Cheers Paul