singletons-2.5.1: A framework for generating singleton types

Copyright | (C) 2018 Ryan Scott
License | BSD-style (see LICENSE)
Maintainer | Ryan Scott
Stability | experimental
Portability | non-portable
Safe Haskell | None
Language | Haskell2010

Data.Singletons.Prelude.Monoid

Contents

- Defunctionalization symbols
- Orphan instances

Description

Defines the promoted version of `Monoid`, `PMonoid`, and the singleton version, `SMonoid`.

Synopsis

- class PSemigroup a => PMonoid (a :: Type) where
  - type Mempty :: a
  - type Mappend (arg :: a) (arg :: a) :: a
  - type Mconcat (arg :: [a]) :: a
- class SSemigroup a => SMonoid a where
  - sMempty :: Sing (MemptySym0 :: a)
  - sMappend :: forall (t :: a) (t :: a). Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t :: a)
  - sMconcat :: forall (t :: [a]). Sing t -> Sing (Apply MconcatSym0 t :: a)
- data family Sing :: k -> Type
- type family GetDual (a :: Dual a) :: a where ...
- type family GetAll (a :: All) :: Bool where ...
- type family GetAny (a :: Any) :: Bool where ...
- type family GetSum (a :: Sum a) :: a where ...
- type family GetProduct (a :: Product a) :: a where ...
- type family GetFirst (a :: First a) :: Maybe a where ...
- type family GetLast (a :: Last a) :: Maybe a where ...
- type SDual = (Sing :: Dual a -> Type)
- type SAll = (Sing :: All -> Type)
- type SAny = (Sing :: Any -> Type)
- type SSum = (Sing :: Sum a -> Type)
- type SProduct = (Sing :: Product a -> Type)
- type SFirst = (Sing :: First a -> Type)
- type SLast = (Sing :: Last a -> Type)
- type MemptySym0 = Mempty
- data MappendSym0 :: forall a6989586621680326608. (~>) a6989586621680326608 ((~>) a6989586621680326608 a6989586621680326608)
- data MappendSym1 (arg6989586621680326993 :: a6989586621680326608) :: (~>) a6989586621680326608 a6989586621680326608
- type MappendSym2 (arg6989586621680326993 :: a6989586621680326608) (arg6989586621680326994 :: a6989586621680326608) = Mappend arg6989586621680326993 arg6989586621680326994
- data MconcatSym0 :: forall a6989586621680326608. (~>) [a6989586621680326608] a6989586621680326608
- type MconcatSym1 (arg6989586621680326997 :: [a6989586621680326608]) = Mconcat arg6989586621680326997
- data DualSym0 :: forall (a6989586621679085203 :: Type). (~>) a6989586621679085203 (Dual (a6989586621679085203 :: Type))
- type DualSym1 (t6989586621679820145 :: a6989586621679085203) = Dual t6989586621679820145
- data GetDualSym0 :: forall a6989586621679085203. (~>) (Dual a6989586621679085203) a6989586621679085203
- type GetDualSym1 (a6989586621679820142 :: Dual a6989586621679085203) = GetDual a6989586621679820142
- data AllSym0 :: (~>) Bool All
- type AllSym1 (t6989586621679820159 :: Bool) = All t6989586621679820159
- data GetAllSym0 :: (~>) All Bool
- type GetAllSym1 (a6989586621679820156 :: All) = GetAll a6989586621679820156
- data AnySym0 :: (~>) Bool Any
- type AnySym1 (t6989586621679820173 :: Bool) = Any t6989586621679820173
- data GetAnySym0 :: (~>) Any Bool
- type GetAnySym1 (a6989586621679820170 :: Any) = GetAny a6989586621679820170
- data SumSym0 :: forall (a6989586621679085188 :: Type). (~>) a6989586621679085188 (Sum (a6989586621679085188 :: Type))
- type SumSym1 (t6989586621679820190 :: a6989586621679085188) = Sum t6989586621679820190
- data GetSumSym0 :: forall a6989586621679085188. (~>) (Sum a6989586621679085188) a6989586621679085188
- type GetSumSym1 (a6989586621679820187 :: Sum a6989586621679085188) = GetSum a6989586621679820187
- data ProductSym0 :: forall (a6989586621679085193 :: Type). (~>) a6989586621679085193 (Product (a6989586621679085193 :: Type))
- type ProductSym1 (t6989586621679820207 :: a6989586621679085193) = Product t6989586621679820207
- data GetProductSym0 :: forall a6989586621679085193. (~>) (Product a6989586621679085193) a6989586621679085193
- type GetProductSym1 (a6989586621679820204 :: Product a6989586621679085193) = GetProduct a6989586621679820204
- data FirstSym0 :: forall (a6989586621679085232 :: Type). (~>) (Maybe a6989586621679085232) (First (a6989586621679085232 :: Type))
- type FirstSym1 (t6989586621680330523 :: Maybe a6989586621679085232) = First t6989586621680330523
- data GetFirstSym0 :: forall a6989586621679085232. (~>) (First a6989586621679085232) (Maybe a6989586621679085232)
- type GetFirstSym1 (a6989586621680330520 :: First a6989586621679085232) = GetFirst a6989586621680330520
- data LastSym0 :: forall (a6989586621679085227 :: Type). (~>) (Maybe a6989586621679085227) (Last (a6989586621679085227 :: Type))
- type LastSym1 (t6989586621680330544 :: Maybe a6989586621679085227) = Last t6989586621680330544
- data GetLastSym0 :: forall a6989586621679085227. (~>) (Last a6989586621679085227) (Maybe a6989586621679085227)
- type GetLastSym1 (a6989586621680330541 :: Last a6989586621679085227) = GetLast a6989586621680330541

# Documentation

class PSemigroup a => PMonoid (a :: Type) Source #

Associated Types

type Mempty :: a Source #

type Mappend (arg :: a) (arg :: a) :: a Source #

type Mconcat (arg :: [a]) :: a Source #

Instances

PMonoid Ordering Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Associated Types type Mempty :: a Source # type Mappend arg arg :: a Source # type Mconcat arg :: a Source #
PMonoid Symbol Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Associated Types type Mempty :: a Source # type Mappend arg arg :: a Source # type Mconcat arg :: a Source #
PMonoid () Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Associated Types type Mempty :: a Source # type Mappend arg arg :: a Source # type Mconcat arg :: a Source #
PMonoid All Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Associated Types type Mempty :: a Source # type Mappend arg arg :: a Source # type Mconcat arg :: a Source #
PMonoid Any Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Associated Types type Mempty :: a Source # type Mappend arg arg :: a Source # type Mconcat arg :: a Source #
PMonoid [a] Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Associated Types type Mempty :: a Source # type Mappend arg arg :: a Source # type Mconcat arg :: a Source #
PMonoid (Maybe a) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Associated Types type Mempty :: a Source # type Mappend arg arg :: a Source # type Mconcat arg :: a Source #
PMonoid (Min a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Associated Types type Mempty :: a Source # type Mappend arg arg :: a Source # type Mconcat arg :: a Source #
PMonoid (Max a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Associated Types type Mempty :: a Source # type Mappend arg arg :: a Source # type Mconcat arg :: a Source #
PMonoid (WrappedMonoid m) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Associated Types type Mempty :: a Source # type Mappend arg arg :: a Source # type Mconcat arg :: a Source #
PMonoid (Option a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Associated Types type Mempty :: a Source # type Mappend arg arg :: a Source # type Mconcat arg :: a Source #
PMonoid (Identity a) Source # |
Instance details Defined in Data.Singletons.Prelude.Identity Associated Types type Mempty :: a Source # type Mappend arg arg :: a Source # type Mconcat arg :: a Source #
PMonoid (First a) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Associated Types type Mempty :: a Source # type Mappend arg arg :: a Source # type Mconcat arg :: a Source #
PMonoid (Last a) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Associated Types type Mempty :: a Source # type Mappend arg arg :: a Source # type Mconcat arg :: a Source #
PMonoid (Dual a) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Associated Types type Mempty :: a Source # type Mappend arg arg :: a Source # type Mconcat arg :: a Source #
PMonoid (Sum a) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Associated Types type Mempty :: a Source # type Mappend arg arg :: a Source # type Mconcat arg :: a Source #
PMonoid (Product a) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Associated Types type Mempty :: a Source # type Mappend arg arg :: a Source # type Mconcat arg :: a Source #
PMonoid (Down a) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Associated Types type Mempty :: a Source # type Mappend arg arg :: a Source # type Mconcat arg :: a Source #
PMonoid (a, b) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Associated Types type Mempty :: a Source # type Mappend arg arg :: a Source # type Mconcat arg :: a Source #
PMonoid (a ~> b) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Associated Types type Mempty :: a Source # type Mappend arg arg :: a Source # type Mconcat arg :: a Source #
PMonoid (a, b, c) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Associated Types type Mempty :: a Source # type Mappend arg arg :: a Source # type Mconcat arg :: a Source #
PMonoid (Const a b) Source # |
Instance details Defined in Data.Singletons.Prelude.Const Associated Types type Mempty :: a Source # type Mappend arg arg :: a Source # type Mconcat arg :: a Source #
PMonoid (a, b, c, d) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Associated Types type Mempty :: a Source # type Mappend arg arg :: a Source # type Mconcat arg :: a Source #
PMonoid (a, b, c, d, e) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Associated Types type Mempty :: a Source # type Mappend arg arg :: a Source # type Mconcat arg :: a Source #

class SSemigroup a => SMonoid a where Source #

Minimal complete definition

sMempty

Methods

sMempty :: Sing (MemptySym0 :: a) Source #

sMappend :: forall (t :: a) (t :: a). Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t :: a) Source #

sMconcat :: forall (t :: [a]). Sing t -> Sing (Apply MconcatSym0 t :: a) Source #

sMappend :: forall (t :: a) (t :: a). (Apply (Apply MappendSym0 t) t :: a) ~ Apply (Apply Mappend_6989586621680327011Sym0 t) t => Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t :: a) Source #

sMconcat :: forall (t :: [a]). (Apply MconcatSym0 t :: a) ~ Apply Mconcat_6989586621680327021Sym0 t => Sing t -> Sing (Apply MconcatSym0 t :: a) Source #

Instances

SMonoid Ordering Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods sMempty :: Sing MemptySym0 Source # sMappend :: Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t) Source # sMconcat :: Sing t -> Sing (Apply MconcatSym0 t) Source #
SMonoid Symbol Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods sMempty :: Sing MemptySym0 Source # sMappend :: Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t) Source # sMconcat :: Sing t -> Sing (Apply MconcatSym0 t) Source #
SMonoid () Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods sMempty :: Sing MemptySym0 Source # sMappend :: Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t) Source # sMconcat :: Sing t -> Sing (Apply MconcatSym0 t) Source #
SMonoid All Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods sMempty :: Sing MemptySym0 Source # sMappend :: Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t) Source # sMconcat :: Sing t -> Sing (Apply MconcatSym0 t) Source #
SMonoid Any Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods sMempty :: Sing MemptySym0 Source # sMappend :: Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t) Source # sMconcat :: Sing t -> Sing (Apply MconcatSym0 t) Source #
SMonoid [a] Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods sMempty :: Sing MemptySym0 Source # sMappend :: Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t) Source # sMconcat :: Sing t -> Sing (Apply MconcatSym0 t) Source #
SSemigroup a => SMonoid (Maybe a) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods sMempty :: Sing MemptySym0 Source # sMappend :: Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t) Source # sMconcat :: Sing t -> Sing (Apply MconcatSym0 t) Source #
(SOrd a, SBounded a) => SMonoid (Min a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Methods sMempty :: Sing MemptySym0 Source # sMappend :: Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t) Source # sMconcat :: Sing t -> Sing (Apply MconcatSym0 t) Source #
(SOrd a, SBounded a) => SMonoid (Max a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Methods sMempty :: Sing MemptySym0 Source # sMappend :: Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t) Source # sMconcat :: Sing t -> Sing (Apply MconcatSym0 t) Source #
SMonoid m => SMonoid (WrappedMonoid m) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Methods sMempty :: Sing MemptySym0 Source # sMappend :: Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t) Source # sMconcat :: Sing t -> Sing (Apply MconcatSym0 t) Source #
SSemigroup a => SMonoid (Option a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Methods sMempty :: Sing MemptySym0 Source # sMappend :: Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t) Source # sMconcat :: Sing t -> Sing (Apply MconcatSym0 t) Source #
SMonoid a => SMonoid (Identity a) Source # |
Instance details Defined in Data.Singletons.Prelude.Identity Methods sMempty :: Sing MemptySym0 Source # sMappend :: Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t) Source # sMconcat :: Sing t -> Sing (Apply MconcatSym0 t) Source #
SMonoid (First a) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods sMempty :: Sing MemptySym0 Source # sMappend :: Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t) Source # sMconcat :: Sing t -> Sing (Apply MconcatSym0 t) Source #
SMonoid (Last a) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods sMempty :: Sing MemptySym0 Source # sMappend :: Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t) Source # sMconcat :: Sing t -> Sing (Apply MconcatSym0 t) Source #
SMonoid a => SMonoid (Dual a) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods sMempty :: Sing MemptySym0 Source # sMappend :: Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t) Source # sMconcat :: Sing t -> Sing (Apply MconcatSym0 t) Source #
SNum a => SMonoid (Sum a) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods sMempty :: Sing MemptySym0 Source # sMappend :: Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t) Source # sMconcat :: Sing t -> Sing (Apply MconcatSym0 t) Source #
SNum a => SMonoid (Product a) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods sMempty :: Sing MemptySym0 Source # sMappend :: Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t) Source # sMconcat :: Sing t -> Sing (Apply MconcatSym0 t) Source #
SMonoid a => SMonoid (Down a) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods sMempty :: Sing MemptySym0 Source # sMappend :: Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t) Source # sMconcat :: Sing t -> Sing (Apply MconcatSym0 t) Source #
(SMonoid a, SMonoid b) => SMonoid (a, b) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods sMempty :: Sing MemptySym0 Source # sMappend :: Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t) Source # sMconcat :: Sing t -> Sing (Apply MconcatSym0 t) Source #
SMonoid b => SMonoid (a ~> b) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods sMempty :: Sing MemptySym0 Source # sMappend :: Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t) Source # sMconcat :: Sing t -> Sing (Apply MconcatSym0 t) Source #
(SMonoid a, SMonoid b, SMonoid c) => SMonoid (a, b, c) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods sMempty :: Sing MemptySym0 Source # sMappend :: Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t) Source # sMconcat :: Sing t -> Sing (Apply MconcatSym0 t) Source #
SMonoid a => SMonoid (Const a b) Source # |
Instance details Defined in Data.Singletons.Prelude.Const Methods sMempty :: Sing MemptySym0 Source # sMappend :: Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t) Source # sMconcat :: Sing t -> Sing (Apply MconcatSym0 t) Source #
(SMonoid a, SMonoid b, SMonoid c, SMonoid d) => SMonoid (a, b, c, d) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods sMempty :: Sing MemptySym0 Source # sMappend :: Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t) Source # sMconcat :: Sing t -> Sing (Apply MconcatSym0 t) Source #
(SMonoid a, SMonoid b, SMonoid c, SMonoid d, SMonoid e) => SMonoid (a, b, c, d, e) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods sMempty :: Sing MemptySym0 Source # sMappend :: Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t) Source # sMconcat :: Sing t -> Sing (Apply MconcatSym0 t) Source #

data family Sing :: k -> Type Source #

The singleton kind-indexed data family.

Instances

SDecide k => TestCoercion (Sing :: k -> Type) Source # |
Instance details Defined in Data.Singletons.Decide Methods testCoercion :: Sing a -> Sing b -> Maybe (Coercion a b) Source #
SDecide k => TestEquality (Sing :: k -> Type) Source # |
Instance details Defined in Data.Singletons.Decide Methods testEquality :: Sing a -> Sing b -> Maybe (a :~: b) Source #
Show (SSymbol s) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> SSymbol s -> ShowS Source # show :: SSymbol s -> String Source # showList :: [SSymbol s] -> ShowS Source #
Show (SNat n) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> SNat n -> ShowS Source # show :: SNat n -> String Source # showList :: [SNat n] -> ShowS Source #
Eq (Sing a) Source # |
Instance details Defined in Data.Singletons.TypeRepTYPE Methods (==) :: Sing a -> Sing a -> Bool Source # (/=) :: Sing a -> Sing a -> Bool Source #
Ord (Sing a) Source # |
Instance details Defined in Data.Singletons.TypeRepTYPE Methods compare :: Sing a -> Sing a -> Ordering Source # (<) :: Sing a -> Sing a -> Bool Source # (<=) :: Sing a -> Sing a -> Bool Source # (>) :: Sing a -> Sing a -> Bool Source # (>=) :: Sing a -> Sing a -> Bool Source # max :: Sing a -> Sing a -> Sing a Source # min :: Sing a -> Sing a -> Sing a Source #
Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
(ShowSing a, ShowSing [a]) => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing a => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
(ShowSing a, ShowSing b) => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
Show (Sing a) Source # |
Instance details Defined in Data.Singletons.TypeRepTYPE Methods showsPrec :: Int -> Sing a -> ShowS Source # show :: Sing a -> String Source # showList :: [Sing a] -> ShowS Source #
Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
(ShowSing a, ShowSing b) => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
(ShowSing a, ShowSing b, ShowSing c) => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
(ShowSing a, ShowSing b, ShowSing c, ShowSing d) => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
(ShowSing a, ShowSing b, ShowSing c, ShowSing d, ShowSing e) => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
(ShowSing a, ShowSing b, ShowSing c, ShowSing d, ShowSing e, ShowSing f) => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
(ShowSing a, ShowSing b, ShowSing c, ShowSing d, ShowSing e, ShowSing f, ShowSing g) => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing a => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing a => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
(ShowSing a, ShowSing b) => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing a => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing a => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing m => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing (Maybe a) => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing a => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing (Maybe a) => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing (Maybe a) => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing a => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing Bool => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing Bool => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing a => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing a => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
(ShowSing a, ShowSing [a]) => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
data Sing (a :: Bool) Source # |

Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (a :: Bool) where

- SFalse :: forall (a :: Bool). Sing False
- STrue :: forall (a :: Bool). Sing True

data Sing (a :: Ordering) Source # |

Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (a :: Ordering) where

- SLT :: forall (a :: Ordering). Sing LT
- SEQ :: forall (a :: Ordering). Sing EQ
- SGT :: forall (a :: Ordering). Sing GT

data Sing (n :: Nat) Source # |

Instance details

Defined in Data.Singletons.TypeLits.Internal

data Sing (n :: Nat) where

- SNat :: forall (n :: Nat). KnownNat n => Sing n

data Sing (n :: Symbol) Source # |

Instance details

Defined in Data.Singletons.TypeLits.Internal

data Sing (n :: Symbol) where

- SSym :: forall (n :: Symbol). KnownSymbol n => Sing n

data Sing (a :: ()) Source # |

Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (a :: ()) where

- STuple0 :: forall (a :: ()). Sing ()

data Sing (a :: Void) Source # |
Instance details Defined in Data.Singletons.Prelude.Instances data Sing (a :: Void)
data Sing (a :: All) Source # |

Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (a :: All) where

- SAll :: forall (a :: All) (n :: Bool). {..} -> Sing (All n)

data Sing (a :: Any) Source # |

Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (a :: Any) where

- SAny :: forall (a :: Any) (n :: Bool). {..} -> Sing (Any n)

data Sing (a :: PErrorMessage) Source # |

Instance details

Defined in Data.Singletons.TypeError

data Sing (a :: PErrorMessage) where

- SText :: forall (a :: PErrorMessage) (t :: Symbol). Sing t -> Sing (Text t)
- SShowType :: forall (a :: PErrorMessage) t (ty :: t). Sing ty -> Sing (ShowType ty :: ErrorMessage' Symbol)
- (:%<>:) :: forall (a :: PErrorMessage) (e1 :: ErrorMessage' Symbol) (e2 :: ErrorMessage' Symbol). Sing e1 -> Sing e2 -> Sing (e1 :<>: e2)
- (:%$$:) :: forall (a :: PErrorMessage) (e1 :: ErrorMessage' Symbol) (e2 :: ErrorMessage' Symbol). Sing e1 -> Sing e2 -> Sing (e1 :$$: e2)

data Sing (b :: [a]) Source # |

Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (b :: [a]) where

- SNil :: forall k (b :: [k]). Sing ([] :: [k])
- SCons :: forall a (b :: [a]) (n :: a) (n :: [a]). Sing n -> Sing n -> Sing (n ': n)

data Sing (b :: Maybe a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (b :: Maybe a) where

- SNothing :: forall a (b :: Maybe a). Sing (Nothing :: Maybe a)
- SJust :: forall a (b :: Maybe a) (n :: a). Sing n -> Sing (Just n)

newtype Sing (a :: TYPE rep) Source #

A choice of singleton for the kind ``TYPE` rep` (for some `RuntimeRep` `rep`), an instantiation of which is the famous kind `Type`.

Conceivably, one could generalize this instance to `Sing :: k -> Type` for any kind `k`, and remove all other `Sing` instances. We don't adopt this design, however, since it is far more convenient in practice to work with explicit singleton values than `TypeRep`s (for instance, `TypeRep`s are more difficult to pattern match on, and require extra runtime checks).

We cannot produce explicit singleton values for everything in ``TYPE` rep`, however, since it is an open kind, so we reach for `TypeRep` in this one particular case.

Instance details Defined in Data.Singletons.TypeRepTYPE newtype Sing (a :: TYPE rep) = STypeRep (TypeRep a)
data Sing (b :: Min a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (b :: Min a) where

- SMin :: forall a (b :: Min a) (n :: a). {..} -> Sing (Min n)

data Sing (b :: Max a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (b :: Max a) where

- SMax :: forall a (b :: Max a) (n :: a). {..} -> Sing (Max n)

data Sing (b :: First a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (b :: First a) where

- SFirst :: forall a (b :: First a) (n :: a). {..} -> Sing (First n)

data Sing (b :: Last a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (b :: Last a) where

- SLast :: forall a (b :: Last a) (n :: a). {..} -> Sing (Last n)

data Sing (a :: WrappedMonoid m) Source # |

Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (a :: WrappedMonoid m) where

- SWrapMonoid :: forall m (a :: WrappedMonoid m) (n :: m). {..} -> Sing (WrapMonoid n)

data Sing (b :: Option a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (b :: Option a) where

- SOption :: forall a (b :: Option a) (n :: Maybe a). {..} -> Sing (Option n)

data Sing (b :: Identity a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (b :: Identity a) where

- SIdentity :: forall a (b :: Identity a) (n :: a). {..} -> Sing (Identity n)

data Sing (b :: First a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Monoid

data Sing (b :: First a) where

- SFirst :: forall a (b :: First a) (n :: Maybe a). {..} -> Sing (First n)

data Sing (b :: Last a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Monoid

data Sing (b :: Last a) where

- SLast :: forall a (b :: Last a) (n :: Maybe a). {..} -> Sing (Last n)

data Sing (b :: Dual a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (b :: Dual a) where

- SDual :: forall a (b :: Dual a) (n :: a). {..} -> Sing (Dual n)

data Sing (b :: Sum a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (b :: Sum a) where

- SSum :: forall a (b :: Sum a) (n :: a). {..} -> Sing (Sum n)

data Sing (b :: Product a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (b :: Product a) where

- SProduct :: forall a (b :: Product a) (n :: a). {..} -> Sing (Product n)

data Sing (b :: Down a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Ord

data Sing (b :: Down a) where

- SDown :: forall a (b :: Down a) (n :: a). Sing n -> Sing (Down n)

data Sing (b :: NonEmpty a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (b :: NonEmpty a) where

- (:%|) :: forall a (b :: NonEmpty a) (n :: a) (n :: [a]). Sing n -> Sing n -> Sing (n :| n)

data Sing (c :: Either a b) Source # |

Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (c :: Either a b) where

- SLeft :: forall a b (c :: Either a b) (n :: a). Sing n -> Sing (Left n :: Either a b)
- SRight :: forall a b (c :: Either a b) (n :: b). Sing n -> Sing (Right n :: Either a b)

data Sing (c :: (a, b)) Source # |

Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (c :: (a, b)) where

- STuple2 :: forall a b (c :: (a, b)) (n :: a) (n :: b). Sing n -> Sing n -> Sing ((,) n n)

data Sing (c :: Arg a b) Source # |

Instance details

Defined in Data.Singletons.Prelude.Semigroup

data Sing (c :: Arg a b) where

- SArg :: forall a b (c :: Arg a b) (n :: a) (n :: b). Sing n -> Sing n -> Sing (Arg n n)

newtype Sing (f :: k1 ~> k2) Source # |

Instance details

Defined in Data.Singletons.Internal

newtype Sing (f :: k1 ~> k2) = SLambda {

- applySing :: forall (t :: k1). Sing t -> Sing (f @@ t)

}

data Sing (d :: (a, b, c)) Source # |

Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (d :: (a, b, c)) where

- STuple3 :: forall a b c (d :: (a, b, c)) (n :: a) (n :: b) (n :: c). Sing n -> Sing n -> Sing n -> Sing ((,,) n n n)

data Sing (c :: Const a b) Source # |

Instance details

Defined in Data.Singletons.Prelude.Const

data Sing (c :: Const a b) where

- SConst :: forall k a (b :: k) (c :: Const a b) (a :: a). {..} -> Sing (Const a :: Const a b)

data Sing (e :: (a, b, c, d)) Source # |

Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (e :: (a, b, c, d)) where

- STuple4 :: forall a b c d (e :: (a, b, c, d)) (n :: a) (n :: b) (n :: c) (n :: d). Sing n -> Sing n -> Sing n -> Sing n -> Sing ((,,,) n n n n)

data Sing (f :: (a, b, c, d, e)) Source # |

Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (f :: (a, b, c, d, e)) where

- STuple5 :: forall a b c d e (f :: (a, b, c, d, e)) (n :: a) (n :: b) (n :: c) (n :: d) (n :: e). Sing n -> Sing n -> Sing n -> Sing n -> Sing n -> Sing ((,,,,) n n n n n)

data Sing (g :: (a, b, c, d, e, f)) Source # |

Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (g :: (a, b, c, d, e, f)) where

- STuple6 :: forall a b c d e f (g :: (a, b, c, d, e, f)) (n :: a) (n :: b) (n :: c) (n :: d) (n :: e) (n :: f). Sing n -> Sing n -> Sing n -> Sing n -> Sing n -> Sing n -> Sing ((,,,,,) n n n n n n)

data Sing (h :: (a, b, c, d, e, f, g)) Source # |

Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (h :: (a, b, c, d, e, f, g)) where

- STuple7 :: forall a b c d e f g (h :: (a, b, c, d, e, f, g)) (n :: a) (n :: b) (n :: c) (n :: d) (n :: e) (n :: f) (n :: g). Sing n -> Sing n -> Sing n -> Sing n -> Sing n -> Sing n -> Sing n -> Sing ((,,,,,,) n n n n n n n)

type family GetDual (a :: Dual a) :: a where ... Source #

Equations

GetDual (Dual field) = field |

type family GetAll (a :: All) :: Bool where ... Source #

Equations

GetAll (All field) = field |

type family GetAny (a :: Any) :: Bool where ... Source #

Equations

GetAny (Any field) = field |

type family GetSum (a :: Sum a) :: a where ... Source #

Equations

GetSum (Sum field) = field |

type family GetProduct (a :: Product a) :: a where ... Source #

Equations

GetProduct (Product field) = field |

type family GetFirst (a :: First a) :: Maybe a where ... Source #

Equations

GetFirst (First field) = field |

type family GetLast (a :: Last a) :: Maybe a where ... Source #

Equations

GetLast (Last field) = field |

type SDual = (Sing :: Dual a -> Type) Source #

type SAll = (Sing :: All -> Type) Source #

type SAny = (Sing :: Any -> Type) Source #

type SSum = (Sing :: Sum a -> Type) Source #

type SProduct = (Sing :: Product a -> Type) Source #

type SFirst = (Sing :: First a -> Type) Source #

type SLast = (Sing :: Last a -> Type) Source #

## Defunctionalization symbols

type MemptySym0 = Mempty Source #

data MappendSym0 :: forall a6989586621680326608. (~>) a6989586621680326608 ((~>) a6989586621680326608 a6989586621680326608) Source #

Instances

SMonoid a => SingI (MappendSym0 :: TyFun a (a ~> a) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods sing :: Sing MappendSym0 Source #
SuppressUnusedWarnings (MappendSym0 :: TyFun a6989586621680326608 (a6989586621680326608 ~> a6989586621680326608) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods suppressUnusedWarnings :: () Source #
type Apply (MappendSym0 :: TyFun a6989586621680326608 (a6989586621680326608 ~> a6989586621680326608) -> Type) (arg6989586621680326993 :: a6989586621680326608) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid type Apply (MappendSym0 :: TyFun a6989586621680326608 (a6989586621680326608 ~> a6989586621680326608) -> Type) (arg6989586621680326993 :: a6989586621680326608) = MappendSym1 arg6989586621680326993

data MappendSym1 (arg6989586621680326993 :: a6989586621680326608) :: (~>) a6989586621680326608 a6989586621680326608 Source #

Instances

(SMonoid a, SingI d) => SingI (MappendSym1 d :: TyFun a a -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods sing :: Sing (MappendSym1 d) Source #
SuppressUnusedWarnings (MappendSym1 arg6989586621680326993 :: TyFun a6989586621680326608 a6989586621680326608 -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods suppressUnusedWarnings :: () Source #
type Apply (MappendSym1 arg6989586621680326993 :: TyFun a a -> Type) (arg6989586621680326994 :: a) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid type Apply (MappendSym1 arg6989586621680326993 :: TyFun a a -> Type) (arg6989586621680326994 :: a) = Mappend arg6989586621680326993 arg6989586621680326994

type MappendSym2 (arg6989586621680326993 :: a6989586621680326608) (arg6989586621680326994 :: a6989586621680326608) = Mappend arg6989586621680326993 arg6989586621680326994 Source #

data MconcatSym0 :: forall a6989586621680326608. (~>) [a6989586621680326608] a6989586621680326608 Source #

Instances

SMonoid a => SingI (MconcatSym0 :: TyFun [a] a -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods sing :: Sing MconcatSym0 Source #
SuppressUnusedWarnings (MconcatSym0 :: TyFun [a6989586621680326608] a6989586621680326608 -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods suppressUnusedWarnings :: () Source #
type Apply (MconcatSym0 :: TyFun [a] a -> Type) (arg6989586621680326997 :: [a]) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid type Apply (MconcatSym0 :: TyFun [a] a -> Type) (arg6989586621680326997 :: [a]) = Mconcat arg6989586621680326997

type MconcatSym1 (arg6989586621680326997 :: [a6989586621680326608]) = Mconcat arg6989586621680326997 Source #

data DualSym0 :: forall (a6989586621679085203 :: Type). (~>) a6989586621679085203 (Dual (a6989586621679085203 :: Type)) Source #

Instances

SingI (DualSym0 :: TyFun a (Dual a) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Methods sing :: Sing DualSym0 Source #
SuppressUnusedWarnings (DualSym0 :: TyFun a6989586621679085203 (Dual a6989586621679085203) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Methods suppressUnusedWarnings :: () Source #
type Apply (DualSym0 :: TyFun a (Dual a) -> Type) (t6989586621679820145 :: a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal type Apply (DualSym0 :: TyFun a (Dual a) -> Type) (t6989586621679820145 :: a) = Dual t6989586621679820145

type DualSym1 (t6989586621679820145 :: a6989586621679085203) = Dual t6989586621679820145 Source #

data GetDualSym0 :: forall a6989586621679085203. (~>) (Dual a6989586621679085203) a6989586621679085203 Source #

Instances

SuppressUnusedWarnings (GetDualSym0 :: TyFun (Dual a6989586621679085203) a6989586621679085203 -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Methods suppressUnusedWarnings :: () Source #
type Apply (GetDualSym0 :: TyFun (Dual a) a -> Type) (a6989586621679820142 :: Dual a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal type Apply (GetDualSym0 :: TyFun (Dual a) a -> Type) (a6989586621679820142 :: Dual a) = GetDual a6989586621679820142

type GetDualSym1 (a6989586621679820142 :: Dual a6989586621679085203) = GetDual a6989586621679820142 Source #

data AllSym0 :: (~>) Bool All Source #

Instances

SingI AllSym0 Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Methods sing :: Sing AllSym0 Source #
SuppressUnusedWarnings AllSym0 Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Methods suppressUnusedWarnings :: () Source #
type Apply AllSym0 (t6989586621679820159 :: Bool) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal type Apply AllSym0 (t6989586621679820159 :: Bool) = All t6989586621679820159

type AllSym1 (t6989586621679820159 :: Bool) = All t6989586621679820159 Source #

data GetAllSym0 :: (~>) All Bool Source #

Instances

SuppressUnusedWarnings GetAllSym0 Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Methods suppressUnusedWarnings :: () Source #
type Apply GetAllSym0 (a6989586621679820156 :: All) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal type Apply GetAllSym0 (a6989586621679820156 :: All) = GetAll a6989586621679820156

type GetAllSym1 (a6989586621679820156 :: All) = GetAll a6989586621679820156 Source #

data AnySym0 :: (~>) Bool Any Source #

Instances

SingI AnySym0 Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Methods sing :: Sing AnySym0 Source #
SuppressUnusedWarnings AnySym0 Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Methods suppressUnusedWarnings :: () Source #
type Apply AnySym0 (t6989586621679820173 :: Bool) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal type Apply AnySym0 (t6989586621679820173 :: Bool) = Any t6989586621679820173

type AnySym1 (t6989586621679820173 :: Bool) = Any t6989586621679820173 Source #

data GetAnySym0 :: (~>) Any Bool Source #

Instances

SuppressUnusedWarnings GetAnySym0 Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Methods suppressUnusedWarnings :: () Source #
type Apply GetAnySym0 (a6989586621679820170 :: Any) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal type Apply GetAnySym0 (a6989586621679820170 :: Any) = GetAny a6989586621679820170

type GetAnySym1 (a6989586621679820170 :: Any) = GetAny a6989586621679820170 Source #

data SumSym0 :: forall (a6989586621679085188 :: Type). (~>) a6989586621679085188 (Sum (a6989586621679085188 :: Type)) Source #

Instances

SingI (SumSym0 :: TyFun a (Sum a) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Methods sing :: Sing SumSym0 Source #
SuppressUnusedWarnings (SumSym0 :: TyFun a6989586621679085188 (Sum a6989586621679085188) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Methods suppressUnusedWarnings :: () Source #
type Apply (SumSym0 :: TyFun a (Sum a) -> Type) (t6989586621679820190 :: a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal type Apply (SumSym0 :: TyFun a (Sum a) -> Type) (t6989586621679820190 :: a) = Sum t6989586621679820190

type SumSym1 (t6989586621679820190 :: a6989586621679085188) = Sum t6989586621679820190 Source #

data GetSumSym0 :: forall a6989586621679085188. (~>) (Sum a6989586621679085188) a6989586621679085188 Source #

Instances

SuppressUnusedWarnings (GetSumSym0 :: TyFun (Sum a6989586621679085188) a6989586621679085188 -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Methods suppressUnusedWarnings :: () Source #
type Apply (GetSumSym0 :: TyFun (Sum a) a -> Type) (a6989586621679820187 :: Sum a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal type Apply (GetSumSym0 :: TyFun (Sum a) a -> Type) (a6989586621679820187 :: Sum a) = GetSum a6989586621679820187

type GetSumSym1 (a6989586621679820187 :: Sum a6989586621679085188) = GetSum a6989586621679820187 Source #

data ProductSym0 :: forall (a6989586621679085193 :: Type). (~>) a6989586621679085193 (Product (a6989586621679085193 :: Type)) Source #

Instances

SingI (ProductSym0 :: TyFun a (Product a) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Methods sing :: Sing ProductSym0 Source #
SuppressUnusedWarnings (ProductSym0 :: TyFun a6989586621679085193 (Product a6989586621679085193) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Methods suppressUnusedWarnings :: () Source #
type Apply (ProductSym0 :: TyFun a (Product a) -> Type) (t6989586621679820207 :: a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal type Apply (ProductSym0 :: TyFun a (Product a) -> Type) (t6989586621679820207 :: a) = Product t6989586621679820207

type ProductSym1 (t6989586621679820207 :: a6989586621679085193) = Product t6989586621679820207 Source #

data GetProductSym0 :: forall a6989586621679085193. (~>) (Product a6989586621679085193) a6989586621679085193 Source #

Instances

SuppressUnusedWarnings (GetProductSym0 :: TyFun (Product a6989586621679085193) a6989586621679085193 -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Methods suppressUnusedWarnings :: () Source #
type Apply (GetProductSym0 :: TyFun (Product a) a -> Type) (a6989586621679820204 :: Product a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal type Apply (GetProductSym0 :: TyFun (Product a) a -> Type) (a6989586621679820204 :: Product a) = GetProduct a6989586621679820204

type GetProductSym1 (a6989586621679820204 :: Product a6989586621679085193) = GetProduct a6989586621679820204 Source #

data FirstSym0 :: forall (a6989586621679085232 :: Type). (~>) (Maybe a6989586621679085232) (First (a6989586621679085232 :: Type)) Source #

Instances

SingI (FirstSym0 :: TyFun (Maybe a) (First a) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods sing :: Sing FirstSym0 Source #
SuppressUnusedWarnings (FirstSym0 :: TyFun (Maybe a6989586621679085232) (First a6989586621679085232) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods suppressUnusedWarnings :: () Source #
type Apply (FirstSym0 :: TyFun (Maybe a) (First a) -> Type) (t6989586621680330523 :: Maybe a) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid type Apply (FirstSym0 :: TyFun (Maybe a) (First a) -> Type) (t6989586621680330523 :: Maybe a) = First t6989586621680330523

type FirstSym1 (t6989586621680330523 :: Maybe a6989586621679085232) = First t6989586621680330523 Source #

data GetFirstSym0 :: forall a6989586621679085232. (~>) (First a6989586621679085232) (Maybe a6989586621679085232) Source #

Instances

SuppressUnusedWarnings (GetFirstSym0 :: TyFun (First a6989586621679085232) (Maybe a6989586621679085232) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods suppressUnusedWarnings :: () Source #
type Apply (GetFirstSym0 :: TyFun (First a) (Maybe a) -> Type) (a6989586621680330520 :: First a) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid type Apply (GetFirstSym0 :: TyFun (First a) (Maybe a) -> Type) (a6989586621680330520 :: First a) = GetFirst a6989586621680330520

type GetFirstSym1 (a6989586621680330520 :: First a6989586621679085232) = GetFirst a6989586621680330520 Source #

data LastSym0 :: forall (a6989586621679085227 :: Type). (~>) (Maybe a6989586621679085227) (Last (a6989586621679085227 :: Type)) Source #

Instances

SingI (LastSym0 :: TyFun (Maybe a) (Last a) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods sing :: Sing LastSym0 Source #
SuppressUnusedWarnings (LastSym0 :: TyFun (Maybe a6989586621679085227) (Last a6989586621679085227) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods suppressUnusedWarnings :: () Source #
type Apply (LastSym0 :: TyFun (Maybe a) (Last a) -> Type) (t6989586621680330544 :: Maybe a) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid type Apply (LastSym0 :: TyFun (Maybe a) (Last a) -> Type) (t6989586621680330544 :: Maybe a) = Last t6989586621680330544

type LastSym1 (t6989586621680330544 :: Maybe a6989586621679085227) = Last t6989586621680330544 Source #

data GetLastSym0 :: forall a6989586621679085227. (~>) (Last a6989586621679085227) (Maybe a6989586621679085227) Source #

Instances

SuppressUnusedWarnings (GetLastSym0 :: TyFun (Last a6989586621679085227) (Maybe a6989586621679085227) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods suppressUnusedWarnings :: () Source #
type Apply (GetLastSym0 :: TyFun (Last a) (Maybe a) -> Type) (a6989586621680330541 :: Last a) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid type Apply (GetLastSym0 :: TyFun (Last a) (Maybe a) -> Type) (a6989586621680330541 :: Last a) = GetLast a6989586621680330541

type GetLastSym1 (a6989586621680330541 :: Last a6989586621679085227) = GetLast a6989586621680330541 Source #

# Orphan instances

SMonad First Source # |
Instance details Methods (%>>=) :: Sing t -> Sing t -> Sing (Apply (Apply (>>=@#@$) t) t) Source # (%>>) :: Sing t -> Sing t -> Sing (Apply (Apply (>>@#@$) t) t) Source # sReturn :: Sing t -> Sing (Apply ReturnSym0 t) Source # sFail :: Sing t -> Sing (Apply FailSym0 t) Source #
SMonad Last Source # |
Instance details Methods (%>>=) :: Sing t -> Sing t -> Sing (Apply (Apply (>>=@#@$) t) t) Source # (%>>) :: Sing t -> Sing t -> Sing (Apply (Apply (>>@#@$) t) t) Source # sReturn :: Sing t -> Sing (Apply ReturnSym0 t) Source # sFail :: Sing t -> Sing (Apply FailSym0 t) Source #
SApplicative First Source # |
Instance details Methods sPure :: Sing t -> Sing (Apply PureSym0 t) Source # (%<*>) :: Sing t -> Sing t -> Sing (Apply (Apply (<*>@#@$) t) t) Source # sLiftA2 :: Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply LiftA2Sym0 t) t) t) Source # (%*>) :: Sing t -> Sing t -> Sing (Apply (Apply (*>@#@$) t) t) Source # (%<*) :: Sing t -> Sing t -> Sing (Apply (Apply (<*@#@$) t) t) Source #
SApplicative Last Source # |
Instance details Methods sPure :: Sing t -> Sing (Apply PureSym0 t) Source # (%<*>) :: Sing t -> Sing t -> Sing (Apply (Apply (<*>@#@$) t) t) Source # sLiftA2 :: Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply LiftA2Sym0 t) t) t) Source # (%*>) :: Sing t -> Sing t -> Sing (Apply (Apply (*>@#@$) t) t) Source # (%<*) :: Sing t -> Sing t -> Sing (Apply (Apply (<*@#@$) t) t) Source #
SFunctor First Source # |
Instance details Methods sFmap :: Sing t -> Sing t -> Sing (Apply (Apply FmapSym0 t) t) Source # (%<$) :: Sing t -> Sing t -> Sing (Apply (Apply (<$@#@$) t) t) Source #
SFunctor Last Source # |
Instance details Methods sFmap :: Sing t -> Sing t -> Sing (Apply (Apply FmapSym0 t) t) Source # (%<$) :: Sing t -> Sing t -> Sing (Apply (Apply (<$@#@$) t) t) Source #
PMonad First Source # |
Instance details Associated Types type arg >>= arg :: m b Source # type arg >> arg :: m b Source # type Return arg :: m a Source # type Fail arg :: m a Source #
PMonad Last Source # |
Instance details Associated Types type arg >>= arg :: m b Source # type arg >> arg :: m b Source # type Return arg :: m a Source # type Fail arg :: m a Source #
PApplicative First Source # |
Instance details Associated Types type Pure arg :: f a Source # type arg <*> arg :: f b Source # type LiftA2 arg arg arg :: f c Source # type arg *> arg :: f b Source # type arg <* arg :: f a Source #
PApplicative Last Source # |
Instance details Associated Types type Pure arg :: f a Source # type arg <*> arg :: f b Source # type LiftA2 arg arg arg :: f c Source # type arg *> arg :: f b Source # type arg <* arg :: f a Source #
PFunctor First Source # |
Instance details Associated Types type Fmap arg arg :: f b Source # type arg <$ arg :: f a Source #
PFunctor Last Source # |
Instance details Associated Types type Fmap arg arg :: f b Source # type arg <$ arg :: f a Source #
SingKind a => SingKind (First a) Source # |
Instance details Associated Types type Demote (First a) = (r :: Type) Source # Methods fromSing :: Sing a0 -> Demote (First a) Source # toSing :: Demote (First a) -> SomeSing (First a) Source #
SingKind a => SingKind (Last a) Source # |
Instance details Associated Types type Demote (Last a) = (r :: Type) Source # Methods fromSing :: Sing a0 -> Demote (Last a) Source # toSing :: Demote (Last a) -> SomeSing (Last a) Source #
SDecide (Maybe a) => SDecide (First a) Source # |
Instance details Methods (%~) :: Sing a0 -> Sing b -> Decision (a0 :~: b) Source #
SDecide (Maybe a) => SDecide (Last a) Source # |
Instance details Methods (%~) :: Sing a0 -> Sing b -> Decision (a0 :~: b) Source #
PEq (First a) Source # |
Instance details Associated Types type x == y :: Bool Source # type x /= y :: Bool Source #
PEq (Last a) Source # |
Instance details Associated Types type x == y :: Bool Source # type x /= y :: Bool Source #
SEq (Maybe a) => SEq (First a) Source # |
Instance details Methods (%==) :: Sing a0 -> Sing b -> Sing (a0 == b) Source # (%/=) :: Sing a0 -> Sing b -> Sing (a0 /= b) Source #
SEq (Maybe a) => SEq (Last a) Source # |
Instance details Methods (%==) :: Sing a0 -> Sing b -> Sing (a0 == b) Source # (%/=) :: Sing a0 -> Sing b -> Sing (a0 /= b) Source #
SOrd (Maybe a) => SOrd (First a) Source # |

Instance details

Methods

sCompare :: Sing t -> Sing t -> Sing (Apply (Apply CompareSym0 t) t) Source #

(%<) :: Sing t -> Sing t -> Sing (Apply (Apply (<@#@$) t) t) Source #

(%<=) :: Sing t -> Sing t -> Sing (Apply (Apply (<=@#@$) t) t) Source #

(%>) :: Sing t -> Sing t -> Sing (Apply (Apply (>@#@$) t) t) Source #

(%>=) :: Sing t -> Sing t -> Sing (Apply (Apply (>=@#@$) t) t) Source #

sMax :: Sing t -> Sing t -> Sing (Apply (Apply MaxSym0 t) t) Source #

sMin :: Sing t -> Sing t -> Sing (Apply (Apply MinSym0 t) t) Source #

SOrd (Maybe a) => SOrd (Last a) Source # |

Instance details

Methods

sCompare :: Sing t -> Sing t -> Sing (Apply (Apply CompareSym0 t) t) Source #

(%<) :: Sing t -> Sing t -> Sing (Apply (Apply (<@#@$) t) t) Source #

(%<=) :: Sing t -> Sing t -> Sing (Apply (Apply (<=@#@$) t) t) Source #

(%>) :: Sing t -> Sing t -> Sing (Apply (Apply (>@#@$) t) t) Source #

(%>=) :: Sing t -> Sing t -> Sing (Apply (Apply (>=@#@$) t) t) Source #

sMax :: Sing t -> Sing t -> Sing (Apply (Apply MaxSym0 t) t) Source #

sMin :: Sing t -> Sing t -> Sing (Apply (Apply MinSym0 t) t) Source #

POrd (First a) Source # |
Instance details Associated Types type Compare arg arg :: Ordering Source # type arg < arg :: Bool Source # type arg <= arg :: Bool Source # type arg > arg :: Bool Source # type arg >= arg :: Bool Source # type Max arg arg :: a Source # type Min arg arg :: a Source #
POrd (Last a) Source # |
Instance details Associated Types type Compare arg arg :: Ordering Source # type arg < arg :: Bool Source # type arg <= arg :: Bool Source # type arg > arg :: Bool Source # type arg >= arg :: Bool Source # type Max arg arg :: a Source # type Min arg arg :: a Source #
SSemigroup (First a) Source # |
Instance details Methods (%<>) :: Sing t -> Sing t -> Sing (Apply (Apply (<>@#@$) t) t) Source # sSconcat :: Sing t -> Sing (Apply SconcatSym0 t) Source #
SSemigroup (Last a) Source # |
Instance details Methods (%<>) :: Sing t -> Sing t -> Sing (Apply (Apply (<>@#@$) t) t) Source # sSconcat :: Sing t -> Sing (Apply SconcatSym0 t) Source #
PSemigroup (First a) Source # |
Instance details Associated Types type arg <> arg :: a Source # type Sconcat arg :: a Source #
PSemigroup (Last a) Source # |
Instance details Associated Types type arg <> arg :: a Source # type Sconcat arg :: a Source #
SShow (Maybe a) => SShow (First a) Source # |
Instance details Methods sShowsPrec :: Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply ShowsPrecSym0 t) t) t) Source # sShow_ :: Sing t -> Sing (Apply Show_Sym0 t) Source # sShowList :: Sing t -> Sing t -> Sing (Apply (Apply ShowListSym0 t) t) Source #
SShow (Maybe a) => SShow (Last a) Source # |
Instance details Methods sShowsPrec :: Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply ShowsPrecSym0 t) t) t) Source # sShow_ :: Sing t -> Sing (Apply Show_Sym0 t) Source # sShowList :: Sing t -> Sing t -> Sing (Apply (Apply ShowListSym0 t) t) Source #
PShow (First a) Source # |
Instance details Associated Types type ShowsPrec arg arg arg :: Symbol Source # type Show_ arg :: Symbol Source # type ShowList arg arg :: Symbol Source #
PShow (Last a) Source # |
Instance details Associated Types type ShowsPrec arg arg arg :: Symbol Source # type Show_ arg :: Symbol Source # type ShowList arg arg :: Symbol Source #
SingI n => SingI (First n :: First a) Source # |
Instance details Methods sing :: Sing (First0 n) Source #
SingI n => SingI (Last n :: Last a) Source # |
Instance details Methods sing :: Sing (Last0 n) Source #
ShowSing (Maybe a) => Show (Sing z) Source # |
Instance details Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing (Maybe a) => Show (Sing z) Source # |
Instance details Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
SingI (TyCon1 (Last :: Maybe a -> Last a) :: Maybe a ~> Last a) Source # |
Instance details Methods sing :: Sing (TyCon1 Last0) Source #
SingI (TyCon1 (First :: Maybe a -> First a) :: Maybe a ~> First a) Source # |
Instance details Methods sing :: Sing (TyCon1 First0) Source #