Data.Singletons.List
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