Type.Family.Tuple
type (#)
type family Fst (p :: (k, l)) :: k where ...
type family Snd (p :: (k, l)) :: l where ...
type family Fst3 (p :: (k, l, m)) :: k where ...
type family Snd3 (p :: (k, l, m)) :: l where ...
type family Thd3 (p :: (k, l, m)) :: m where ...
type family (f :: k -> l) <$> (a :: (m, k)) :: (m, l) where ...
type family (f :: (m, k -> l)) <&> (a :: k) :: (m, l) where ...
type family (f :: (m, k -> l)) <*> (a :: (m, k)) :: (m, l) where ...