Data.Singletons.List

The singleton for lists

data family Sing a

type SList z

type family Head a :: a

type family Tail a :: [a]

sHead

sTail

type family a :++ a :: [a]

(%:++)

type family Reverse a :: [a]

sReverse