data Letters = A | B | C class Foo a where enumerate :: [a] instance Foo Letters where enumerate = [A, B, C] data Test = Test (Foo a => a)