type family Iota (x :: N) = (xs :: [N]) | xs -> x where ...
type family Pred (x :: N) :: N where ...
type family (x :: N) + (y :: N) :: N where ...
type family (x :: N) * (y :: N) :: N where ...
type family (x :: N) ^ (y :: N) :: N where ...
type family Len (as :: [k]) :: N where ...
type family Ix (x :: N) (as :: [k]) :: k where ...
type family (x :: N) < (y :: N) :: Bool where ...
type family (x :: N) > (y :: N) :: Bool where ...