Copyright | (C) 2013 Richard Eisenberg |
---|---|
License | BSD-style (see LICENSE) |
Maintainer | Richard Eisenberg (eir@cis.upenn.edu) |
Stability | experimental |
Portability | non-portable |
Safe Haskell | None |
Language | Haskell2010 |
This module defines singleton instances making Typeable
the singleton for
the kind *
. The definitions don't fully line up with what is expected
within the singletons library, so expect unusual results!
- data family Sing (a :: k)
Documentation
data family Sing (a :: k) Source #
The singleton kind-indexed data family.
data Sing Bool Source # | |
data Sing Ordering Source # | |
data Sing * Source # | |
data Sing Nat Source # | |
data Sing Symbol Source # | |
data Sing () Source # | |
data Sing [a0] Source # | |
data Sing (Maybe a0) Source # | |
data Sing (NonEmpty a0) Source # | |
data Sing (Either a0 b0) Source # | |
data Sing (a0, b0) Source # | |
data Sing ((~>) k1 k2) Source # | |
data Sing (a0, b0, c0) Source # | |
data Sing (a0, b0, c0, d0) Source # | |
data Sing (a0, b0, c0, d0, e0) Source # | |
data Sing (a0, b0, c0, d0, e0, f0) Source # | |
data Sing (a0, b0, c0, d0, e0, f0, g0) Source # | |
Here is the definition of the singleton for *
:
data instance Sing (a :: *) where STypeRep :: Typeable a => Sing a
Instances for SingI
, SingKind
, SEq
, SDecide
, and TestCoercion
are
also supplied.