singletons-base-3.2: A promoted and singled version of the base library
Copyright(C) 2013 Richard Eisenberg
LicenseBSD-style (see LICENSE)
MaintainerRyan Scott
Stabilityexperimental
Portabilitynon-portable
Safe HaskellSafe-Inferred
LanguageGHC2021

Data.Singletons.Base.SomeSing

Description

Provides the SomeSing data type along with instances of Eq, Ord, etc., which are defined as orphans due to SomeSing originally being defined in a separate library (singletons).

Synopsis

Documentation

data SomeSing k where #

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.

Constructors

SomeSing :: forall k (a :: k). Sing a -> SomeSing k 

Instances

Instances details
SIsString k => IsString (SomeSing k) 
Instance details

Defined in Data.Singletons.Base.SomeSing

Methods

fromString :: String -> SomeSing k

SMonoid k => Monoid (SomeSing k) 
Instance details

Defined in Data.Singletons.Base.SomeSing

SSemigroup k => Semigroup (SomeSing k) 
Instance details

Defined in Data.Singletons.Base.SomeSing

Methods

(<>) :: SomeSing k -> SomeSing k -> SomeSing k

sconcat :: NonEmpty (SomeSing k) -> SomeSing k

stimes :: Integral b => b -> SomeSing k -> SomeSing k

SBounded k => Bounded (SomeSing k) 
Instance details

Defined in Data.Singletons.Base.SomeSing

SEnum k => Enum (SomeSing k) 
Instance details

Defined in Data.Singletons.Base.SomeSing

SNum k => Num (SomeSing k) 
Instance details

Defined in Data.Singletons.Base.SomeSing

Methods

(+) :: SomeSing k -> SomeSing k -> SomeSing k

(-) :: SomeSing k -> SomeSing k -> SomeSing k

(*) :: SomeSing k -> SomeSing k -> SomeSing k

negate :: SomeSing k -> SomeSing k

abs :: SomeSing k -> SomeSing k

signum :: SomeSing k -> SomeSing k

fromInteger :: Integer -> SomeSing k

ShowSing k => Show (SomeSing k) 
Instance details

Defined in Data.Singletons.Base.SomeSing

Methods

showsPrec :: Int -> SomeSing k -> ShowS

show :: SomeSing k -> String

showList :: [SomeSing k] -> ShowS

SEq k => Eq (SomeSing k) 
Instance details

Defined in Data.Singletons.Base.SomeSing

Methods

(==) :: SomeSing k -> SomeSing k -> Bool

(/=) :: SomeSing k -> SomeSing k -> Bool

SOrd k => Ord (SomeSing k) 
Instance details

Defined in Data.Singletons.Base.SomeSing

Methods

compare :: SomeSing k -> SomeSing k -> Ordering

(<) :: SomeSing k -> SomeSing k -> Bool

(<=) :: SomeSing k -> SomeSing k -> Bool

(>) :: SomeSing k -> SomeSing k -> Bool

(>=) :: SomeSing k -> SomeSing k -> Bool

max :: SomeSing k -> SomeSing k -> SomeSing k

min :: SomeSing k -> SomeSing k -> SomeSing k

Orphan instances

SIsString k => IsString (SomeSing k) Source # 
Instance details

Methods

fromString :: String -> SomeSing k

SMonoid k => Monoid (SomeSing k) Source # 
Instance details

SSemigroup k => Semigroup (SomeSing k) Source # 
Instance details

Methods

(<>) :: SomeSing k -> SomeSing k -> SomeSing k

sconcat :: NonEmpty (SomeSing k) -> SomeSing k

stimes :: Integral b => b -> SomeSing k -> SomeSing k

SBounded k => Bounded (SomeSing k) Source # 
Instance details

SEnum k => Enum (SomeSing k) Source # 
Instance details

SNum k => Num (SomeSing k) Source # 
Instance details

Methods

(+) :: SomeSing k -> SomeSing k -> SomeSing k

(-) :: SomeSing k -> SomeSing k -> SomeSing k

(*) :: SomeSing k -> SomeSing k -> SomeSing k

negate :: SomeSing k -> SomeSing k

abs :: SomeSing k -> SomeSing k

signum :: SomeSing k -> SomeSing k

fromInteger :: Integer -> SomeSing k

ShowSing k => Show (SomeSing k) Source # 
Instance details

Methods

showsPrec :: Int -> SomeSing k -> ShowS

show :: SomeSing k -> String

showList :: [SomeSing k] -> ShowS

SEq k => Eq (SomeSing k) Source # 
Instance details

Methods

(==) :: SomeSing k -> SomeSing k -> Bool

(/=) :: SomeSing k -> SomeSing k -> Bool

SOrd k => Ord (SomeSing k) Source # 
Instance details

Methods

compare :: SomeSing k -> SomeSing k -> Ordering

(<) :: SomeSing k -> SomeSing k -> Bool

(<=) :: SomeSing k -> SomeSing k -> Bool

(>) :: SomeSing k -> SomeSing k -> Bool

(>=) :: SomeSing k -> SomeSing k -> Bool

max :: SomeSing k -> SomeSing k -> SomeSing k

min :: SomeSing k -> SomeSing k -> SomeSing k