-- type instance Cons i0 = type instance Head = i0 type instance Tail = type instance Init = type instance Last = type instance Length = instance HasHead' i0 where head' = i0 instance HasTail' where tail' = instance HasInit' where init' = instance HasLast' where last' = instance HasCons' i0 where cons' i0 = instance HasUncons' i0 where uncons' = (i0, ) instance HasHead instance HasTail instance HasInit instance HasLast instance HasCons i0 instance HasUncons instance HasLength {-# COMPLETE Cons' :: #-} {-# COMPLETE Cons :: #-} type instance Reverse = instance HasReverse' where reverse' = instance HasReverse ---- has-at