| Copyright | (c) Justin Le 2017 |
|---|---|
| License | BSD-3 |
| Maintainer | justin@jle.im |
| Stability | unstable |
| Portability | portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Data.Type.Combinator.Singletons
Contents
Description
There's a lot of identical data types between type-combinators and singetons, as well as similar typeclasses. This module provides conversion functions between the two, and also many appropriate instances.
- prodSing :: Prod Sing as -> Sing as
- singProd :: Sing as -> Prod Sing as
- singLength :: Sing as -> Length as
- boolSing :: Boolean b -> Sing b
- singBool :: Sing b -> Boolean b
- data family Sing k (a :: k) :: *
- type SN = (Sing :: N -> Type)
- type ZSym0 = Z
- data SSym0 l
- type SSym1 t = S t
- natSing :: Nat n -> Sing n
- singNat :: Sing n -> Nat n
- parSing :: (Sing :*: Sing) '(a, b) -> Sing '(a, b)
- singPar :: Sing '(a, b) -> (Sing :*: Sing) '(a, b)
- choiceSing :: (Sing :+: Sing) e -> Sing e
- singChoice :: Sing e -> (Sing :+: Sing) e
- optionSing :: Option Sing a -> Sing a
- singOption :: Sing a -> Option Sing a
Documentation
singLength :: Sing as -> Length as Source #
data family Sing k (a :: k) :: * #
The singleton kind-indexed data family.
Instances
| data Sing Bool | |
| data Sing Ordering | |
| data Sing Nat | |
| data Sing Symbol | |
| data Sing () | |
| data Sing N # | |
| type KnownC k (Sing k) a # | |
| type WitnessC ØC (SingI k a) (Sing k a) # | |
| data Sing [a0] | |
| data Sing (Maybe a0) | |
| data Sing (NonEmpty a0) | |
| data Sing (Either a0 b0) | |
| data Sing (a0, b0) | |
| data Sing ((~>) k1 k2) | |
| data Sing (a0, b0, c0) | |
| data Sing (a0, b0, c0, d0) | |
| data Sing (a0, b0, c0, d0, e0) | |
| data Sing (a0, b0, c0, d0, e0, f0) | |
| data Sing (a0, b0, c0, d0, e0, f0, g0) | |