| Copyright | (C) 2013 Richard Eisenberg |
|---|---|
| License | BSD-style (see LICENSE) |
| Maintainer | Ryan Scott |
| Stability | experimental |
| Portability | non-portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Data.Singletons.Base.SomeSing
Contents
Description
Documentation
An existentially-quantified singleton. This type is useful when you want a singleton type, but there is no way of knowing, at compile-time, what the type index will be. To make use of this type, you will generally have to use a pattern-match:
foo :: Bool -> ...
foo b = case toSing b of
SomeSing sb -> {- fancy dependently-typed code with sb -}An example like the one above may be easier to write using withSomeSing.
Instances
| SBounded k => Bounded (SomeSing k) Source # | |
| SEnum k => Enum (SomeSing k) Source # | |
Defined in Data.Singletons.Base.SomeSing Methods succ :: SomeSing k -> SomeSing k # pred :: SomeSing k -> SomeSing k # fromEnum :: SomeSing k -> Int # enumFrom :: SomeSing k -> [SomeSing k] # enumFromThen :: SomeSing k -> SomeSing k -> [SomeSing k] # enumFromTo :: SomeSing k -> SomeSing k -> [SomeSing k] # enumFromThenTo :: SomeSing k -> SomeSing k -> SomeSing k -> [SomeSing k] # | |
| SEq k => Eq (SomeSing k) Source # | |
| SNum k => Num (SomeSing k) Source # | |
Defined in Data.Singletons.Base.SomeSing | |
| SOrd k => Ord (SomeSing k) Source # | |
Defined in Data.Singletons.Base.SomeSing | |
| ShowSing k => Show (SomeSing k) Source # | |
| SIsString k => IsString (SomeSing k) Source # | |
Defined in Data.Singletons.Base.SomeSing Methods fromString :: String -> SomeSing k # | |
| SSemigroup k => Semigroup (SomeSing k) Source # | |
| SMonoid k => Monoid (SomeSing k) Source # | |
Orphan instances
| SBounded k => Bounded (SomeSing k) Source # | |
| SEnum k => Enum (SomeSing k) Source # | |
Methods succ :: SomeSing k -> SomeSing k # pred :: SomeSing k -> SomeSing k # fromEnum :: SomeSing k -> Int # enumFrom :: SomeSing k -> [SomeSing k] # enumFromThen :: SomeSing k -> SomeSing k -> [SomeSing k] # enumFromTo :: SomeSing k -> SomeSing k -> [SomeSing k] # enumFromThenTo :: SomeSing k -> SomeSing k -> SomeSing k -> [SomeSing k] # | |
| SEq k => Eq (SomeSing k) Source # | |
| SNum k => Num (SomeSing k) Source # | |
| SOrd k => Ord (SomeSing k) Source # | |
| ShowSing k => Show (SomeSing k) Source # | |
| SIsString k => IsString (SomeSing k) Source # | |
Methods fromString :: String -> SomeSing k # | |
| SSemigroup k => Semigroup (SomeSing k) Source # | |
| SMonoid k => Monoid (SomeSing k) Source # | |