Copyright | (C) 2013 Richard Eisenberg |
---|---|

License | (C) 2013 Richard Eisenberg |

Maintainer | Richard Eisenberg (eir@cis.upenn.edu) |

Stability | experimental |

Portability | non-portable |

Safe Haskell | None |

Defines functions and datatypes relating to the singleton for tuples,
including a singletons version of all the definitions in `Data.Tuple`

.

Because many of these definitions are produced by Template Haskell,
it is not possible to create proper Haddock documentation. Please look
up the corresponding operation in `Data.Tuple`

. Also, please excuse
the apparent repeated variable names. This is due to an interaction
between Template Haskell and Haddock.

- data family Sing a
- type STuple0 z = Sing z
- type STuple2 z = Sing z
- type STuple3 z = Sing z
- type STuple4 z = Sing z
- type STuple5 z = Sing z
- type STuple6 z = Sing z
- type STuple7 z = Sing z
- type family Fst a :: a
- sFst :: forall t. Sing t -> Sing (Fst t)
- type family Snd a :: b
- sSnd :: forall t. Sing t -> Sing (Snd t)
- type family Curry a a a :: c
- sCurry :: forall t t t. (forall t. Sing t -> Sing (t t)) -> Sing t -> Sing t -> Sing (Curry t t t)
- type family Uncurry a a :: c
- sUncurry :: forall t t. (forall t. Sing t -> forall t. Sing t -> Sing (t t t)) -> Sing t -> Sing (Uncurry t t)
- type family Swap a :: (b, a)
- sSwap :: forall t. Sing t -> Sing (Swap t)