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
Documentation
The singleton kind-indexed data family.
data Sing Bool where Source | |
data Sing Ordering where Source | |
data Sing * where Source | |
data Sing Nat where Source | |
data Sing Symbol where
| |
data Sing () where Source | |
data Sing [a0] where Source | |
data Sing (Maybe a0) where Source | |
data Sing (TyFun k1 k2 -> *) = SLambda {} Source | |
data Sing (Either a0 b0) where Source | |
data Sing ((,) a0 b0) where Source | |
data Sing ((,,) a0 b0 c0) where Source | |
data Sing ((,,,) a0 b0 c0 d0) where Source | |
data Sing ((,,,,) a0 b0 c0 d0 e0) where Source | |
data Sing ((,,,,,) a0 b0 c0 d0 e0 f0) where Source | |
data Sing ((,,,,,,) a0 b0 c0 d0 e0 f0 g0) where 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.