Say we have a heterogeneous list
data Nil
data Cons a b
I can write such code for any type A
class AList a
instance AList Nil
instance (A x, AList xs) => AList (Cons x xs)
Now, is there a way to generalize this code so that it is parametric in A?
Let's say how the syntax did it
class List (class A) a
instance List (class A) Nil
instance (A x, List (class A) xs) => List (class A) (Cons x xs)
source
share