Copyright | (C) 2013 Richard Eisenberg |
---|---|
License | BSD-style (see LICENSE) |
Maintainer | Ryan Scott |
Stability | experimental |
Portability | non-portable |
Safe Haskell | Safe-Inferred |
Language | GHC2021 |
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
SIsString k => IsString (SomeSing k) | |
Defined in Data.Singletons.Base.SomeSing fromString :: String -> SomeSing k | |
SMonoid k => Monoid (SomeSing k) | |
SSemigroup k => Semigroup (SomeSing k) | |
SBounded k => Bounded (SomeSing k) | |
Defined in Data.Singletons.Base.SomeSing | |
SEnum k => Enum (SomeSing k) | |
Defined in Data.Singletons.Base.SomeSing | |
SNum k => Num (SomeSing k) | |
Defined in Data.Singletons.Base.SomeSing | |
ShowSing k => Show (SomeSing k) | |
SEq k => Eq (SomeSing k) | |
SOrd k => Ord (SomeSing k) | |
Defined in Data.Singletons.Base.SomeSing |
Orphan instances
SIsString k => IsString (SomeSing k) Source # | |
fromString :: String -> SomeSing k | |
SMonoid k => Monoid (SomeSing k) Source # | |
SSemigroup k => Semigroup (SomeSing k) Source # | |
SBounded k => Bounded (SomeSing k) Source # | |
SEnum k => Enum (SomeSing k) Source # | |
SNum k => Num (SomeSing k) Source # | |
ShowSing k => Show (SomeSing k) Source # | |
SEq k => Eq (SomeSing k) Source # | |
SOrd k => Ord (SomeSing k) Source # | |