No title

Anonymous Coward 2016-03-20 12:30:20.985353 UTC

1type family Elem (a :: k) (as :: [k]) :: Constraint where
2 Elem a (a ': as) = ()
3 Elem a (b ': as) = Elem a as
4
5class ElemC a as where
6
7instance {-# OVERLAPPING #-} ElemC a (a ': as) where
8
9instance {-# OVERLAPPABLE #-} (ElemC a as) => ElemC a (b ': as) where