Copyright | (C) 2018 Ryan Scott |
---|---|
License | BSD-style (see LICENSE) |
Maintainer | Ryan Scott |
Stability | experimental |
Portability | non-portable |
Safe Haskell | Safe-Inferred |
Language | GHC2021 |
Synopsis
- class PMonoid a where
- class SSemigroup a => SMonoid a where
- sMempty :: Sing (MemptySym0 :: a) :: Type
- sMappend :: forall (t :: a) (t :: a). Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t :: a) :: Type
- sMconcat :: forall (t :: [a]). Sing t -> Sing (Apply MconcatSym0 t :: a) :: Type
- type family Sing :: k -> Type
- data SDual :: forall (a :: Type). Dual a -> Type where
- data SAll :: All -> Type where
- data SAny :: Any -> Type where
- data SSum :: forall (a :: Type). Sum a -> Type where
- data SProduct :: forall (a :: Type). Product a -> Type where
- data SFirst :: forall (a :: Type). First a -> Type where
- data SLast :: forall (a :: Type). Last a -> Type where
- type family GetDual (a :: Dual (a :: Type)) :: a where ...
- type family GetAll (a :: All) :: Bool where ...
- type family GetAny (a :: Any) :: Bool where ...
- type family GetSum (a :: Sum (a :: Type)) :: a where ...
- type family GetProduct (a :: Product (a :: Type)) :: a where ...
- type family GetFirst (a :: First (a :: Type)) :: Maybe a where ...
- type family GetLast (a :: Last (a :: Type)) :: Maybe a where ...
- sGetDual :: forall (a :: Type) (t :: Dual (a :: Type)). Sing t -> Sing (Apply GetDualSym0 t :: a)
- sGetAll :: forall (t :: All). Sing t -> Sing (Apply GetAllSym0 t :: Bool) :: Type
- sGetAny :: forall (t :: Any). Sing t -> Sing (Apply GetAnySym0 t :: Bool) :: Type
- sGetSum :: forall (a :: Type) (t :: Sum (a :: Type)). Sing t -> Sing (Apply GetSumSym0 t :: a)
- sGetProduct :: forall (a :: Type) (t :: Product (a :: Type)). Sing t -> Sing (Apply GetProductSym0 t :: a)
- sGetFirst :: forall (a :: Type) (t :: First (a :: Type)). Sing t -> Sing (Apply GetFirstSym0 t :: Maybe a)
- sGetLast :: forall (a :: Type) (t :: Last (a :: Type)). Sing t -> Sing (Apply GetLastSym0 t :: Maybe a)
- type family MemptySym0 :: a where ...
- data MappendSym0 :: (~>) a ((~>) a a)
- data MappendSym1 (a6989586621680031457 :: a) :: (~>) a a
- type family MappendSym2 (a6989586621680031457 :: a) (a6989586621680031458 :: a) :: a where ...
- data MconcatSym0 :: (~>) [a] a
- type family MconcatSym1 (a6989586621680031461 :: [a]) :: a where ...
- data DualSym0 :: (~>) a (Dual (a :: Type))
- type family DualSym1 (a6989586621679553316 :: a) :: Dual (a :: Type) where ...
- data GetDualSym0 :: (~>) (Dual (a :: Type)) a
- type family GetDualSym1 (a6989586621679553319 :: Dual (a :: Type)) :: a where ...
- data AllSym0 :: (~>) Bool All
- type family AllSym1 (a6989586621679553333 :: Bool) :: All where ...
- data GetAllSym0 :: (~>) All Bool
- type family GetAllSym1 (a6989586621679553336 :: All) :: Bool where ...
- data AnySym0 :: (~>) Bool Any
- type family AnySym1 (a6989586621679553349 :: Bool) :: Any where ...
- data GetAnySym0 :: (~>) Any Bool
- type family GetAnySym1 (a6989586621679553352 :: Any) :: Bool where ...
- data SumSym0 :: (~>) a (Sum (a :: Type))
- type family SumSym1 (a6989586621679553368 :: a) :: Sum (a :: Type) where ...
- data GetSumSym0 :: (~>) (Sum (a :: Type)) a
- type family GetSumSym1 (a6989586621679553371 :: Sum (a :: Type)) :: a where ...
- data ProductSym0 :: (~>) a (Product (a :: Type))
- type family ProductSym1 (a6989586621679553387 :: a) :: Product (a :: Type) where ...
- data GetProductSym0 :: (~>) (Product (a :: Type)) a
- type family GetProductSym1 (a6989586621679553390 :: Product (a :: Type)) :: a where ...
- data FirstSym0 :: (~>) (Maybe a) (First (a :: Type))
- type family FirstSym1 (a6989586621680036071 :: Maybe a) :: First (a :: Type) where ...
- data GetFirstSym0 :: (~>) (First (a :: Type)) (Maybe a)
- type family GetFirstSym1 (a6989586621680036074 :: First (a :: Type)) :: Maybe a where ...
- data LastSym0 :: (~>) (Maybe a) (Last (a :: Type))
- type family LastSym1 (a6989586621680036095 :: Maybe a) :: Last (a :: Type) where ...
- data GetLastSym0 :: (~>) (Last (a :: Type)) (Maybe a)
- type family GetLastSym1 (a6989586621680036098 :: Last (a :: Type)) :: Maybe a where ...
Documentation
Instances
PMonoid All Source # | |
PMonoid Any Source # | |
PMonoid Ordering Source # | |
PMonoid () Source # | |
PMonoid Symbol Source # | |
PMonoid (Identity a) Source # | |
PMonoid (First a) Source # | |
PMonoid (Last a) Source # | |
PMonoid (Down a) Source # | |
PMonoid (Max a) Source # | |
PMonoid (Min a) Source # | |
PMonoid (WrappedMonoid m) Source # | |
PMonoid (Dual a) Source # | |
PMonoid (Product a) Source # | |
PMonoid (Sum a) Source # | |
PMonoid (Maybe a) Source # | |
PMonoid [a] Source # | |
PMonoid (Proxy s) Source # | |
PMonoid (a ~> b) Source # | |
PMonoid (a, b) Source # | |
PMonoid (Const a b) Source # | |
PMonoid (a, b, c) Source # | |
PMonoid (a, b, c, d) Source # | |
PMonoid (a, b, c, d, e) Source # | |
class SSemigroup a => SMonoid a where Source #
sMempty :: Sing (MemptySym0 :: a) :: Type Source #
sMappend :: forall (t :: a) (t :: a). Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t :: a) :: Type Source #
default sMappend :: forall (t :: a) (t :: a). (Apply (Apply MappendSym0 t) t :: a) ~ Apply (Apply Mappend_6989586621680031464Sym0 t) t => Sing t -> Sing t -> Sing (Apply (Apply MappendSym0 t) t :: a) :: Type Source #
sMconcat :: forall (t :: [a]). Sing t -> Sing (Apply MconcatSym0 t :: a) :: Type Source #
default sMconcat :: forall (t :: [a]). (Apply MconcatSym0 t :: a) ~ Apply Mconcat_6989586621680031478Sym0 t => Sing t -> Sing (Apply MconcatSym0 t :: a) :: Type Source #
Instances
SMonoid All Source # | |
SMonoid Any Source # | |
SMonoid Ordering Source # | |
SMonoid () Source # | |
SMonoid Symbol Source # | |
SMonoid a => SMonoid (Identity a) Source # | |
SMonoid (First a) Source # | |
SMonoid (Last a) Source # | |
SMonoid a => SMonoid (Down a) Source # | |
(SOrd a, SBounded a) => SMonoid (Max a) Source # | |
(SOrd a, SBounded a) => SMonoid (Min a) Source # | |
SMonoid m => SMonoid (WrappedMonoid m) Source # | |
SMonoid a => SMonoid (Dual a) Source # | |
SNum a => SMonoid (Product a) Source # | |
SNum a => SMonoid (Sum a) Source # | |
SSemigroup a => SMonoid (Maybe a) Source # | |
SMonoid [a] Source # | |
SMonoid (Proxy s) Source # | |
SMonoid b => SMonoid (a ~> b) Source # | |
(SMonoid a, SMonoid b) => SMonoid (a, b) Source # | |
SMonoid a => SMonoid (Const a b) Source # | |
(SMonoid a, SMonoid b, SMonoid c) => SMonoid (a, b, c) Source # | |
(SMonoid a, SMonoid b, SMonoid c, SMonoid d) => SMonoid (a, b, c, d) Source # | |
(SMonoid a, SMonoid b, SMonoid c, SMonoid d, SMonoid e) => SMonoid (a, b, c, d, e) Source # | |
type family Sing :: k -> Type #
The singleton kind-indexed type family.
Instances
data SDual :: forall (a :: Type). Dual a -> Type where Source #
Instances
SDecide a => TestCoercion (SDual :: Dual a -> Type) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers testCoercion :: forall (a0 :: k) (b :: k). SDual a0 -> SDual b -> Maybe (Coercion a0 b) | |
SDecide a => TestEquality (SDual :: Dual a -> Type) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers testEquality :: forall (a0 :: k) (b :: k). SDual a0 -> SDual b -> Maybe (a0 :~: b) | |
ShowSing a => Show (SDual z) | |
data SAll :: All -> Type where Source #
Instances
SDecide Bool => TestCoercion SAll Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers testCoercion :: forall (a :: k) (b :: k). SAll a -> SAll b -> Maybe (Coercion a b) | |
SDecide Bool => TestEquality SAll Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers testEquality :: forall (a :: k) (b :: k). SAll a -> SAll b -> Maybe (a :~: b) | |
ShowSing Bool => Show (SAll z) | |
data SAny :: Any -> Type where Source #
Instances
SDecide Bool => TestCoercion SAny Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers testCoercion :: forall (a :: k) (b :: k). SAny a -> SAny b -> Maybe (Coercion a b) | |
SDecide Bool => TestEquality SAny Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers testEquality :: forall (a :: k) (b :: k). SAny a -> SAny b -> Maybe (a :~: b) | |
ShowSing Bool => Show (SAny z) | |
data SSum :: forall (a :: Type). Sum a -> Type where Source #
Instances
SDecide a => TestCoercion (SSum :: Sum a -> Type) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers testCoercion :: forall (a0 :: k) (b :: k). SSum a0 -> SSum b -> Maybe (Coercion a0 b) | |
SDecide a => TestEquality (SSum :: Sum a -> Type) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers testEquality :: forall (a0 :: k) (b :: k). SSum a0 -> SSum b -> Maybe (a0 :~: b) | |
ShowSing a => Show (SSum z) | |
data SProduct :: forall (a :: Type). Product a -> Type where Source #
Instances
SDecide a => TestCoercion (SProduct :: Product a -> Type) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers testCoercion :: forall (a0 :: k) (b :: k). SProduct a0 -> SProduct b -> Maybe (Coercion a0 b) | |
SDecide a => TestEquality (SProduct :: Product a -> Type) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers testEquality :: forall (a0 :: k) (b :: k). SProduct a0 -> SProduct b -> Maybe (a0 :~: b) | |
ShowSing a => Show (SProduct z) | |
data SFirst :: forall (a :: Type). First a -> Type where Source #
Instances
SDecide (Maybe a) => TestCoercion (SFirst :: First a -> Type) Source # | |
Defined in Data.Monoid.Singletons testCoercion :: forall (a0 :: k) (b :: k). SFirst a0 -> SFirst b -> Maybe (Coercion a0 b) | |
SDecide (Maybe a) => TestEquality (SFirst :: First a -> Type) Source # | |
Defined in Data.Monoid.Singletons testEquality :: forall (a0 :: k) (b :: k). SFirst a0 -> SFirst b -> Maybe (a0 :~: b) | |
ShowSing (Maybe a) => Show (SFirst z) Source # | |
data SLast :: forall (a :: Type). Last a -> Type where Source #
Instances
SDecide (Maybe a) => TestCoercion (SLast :: Last a -> Type) Source # | |
Defined in Data.Monoid.Singletons testCoercion :: forall (a0 :: k) (b :: k). SLast a0 -> SLast b -> Maybe (Coercion a0 b) | |
SDecide (Maybe a) => TestEquality (SLast :: Last a -> Type) Source # | |
Defined in Data.Monoid.Singletons testEquality :: forall (a0 :: k) (b :: k). SLast a0 -> SLast b -> Maybe (a0 :~: b) | |
ShowSing (Maybe a) => Show (SLast z) Source # | |
type family GetProduct (a :: Product (a :: Type)) :: a where ... Source #
GetProduct ('Product field) = field |
type family GetFirst (a :: First (a :: Type)) :: Maybe a where ... Source #
GetFirst ('First field) = field |
type family GetLast (a :: Last (a :: Type)) :: Maybe a where ... Source #
GetLast ('Last field) = field |
sGetDual :: forall (a :: Type) (t :: Dual (a :: Type)). Sing t -> Sing (Apply GetDualSym0 t :: a) Source #
sGetSum :: forall (a :: Type) (t :: Sum (a :: Type)). Sing t -> Sing (Apply GetSumSym0 t :: a) Source #
sGetProduct :: forall (a :: Type) (t :: Product (a :: Type)). Sing t -> Sing (Apply GetProductSym0 t :: a) Source #
sGetFirst :: forall (a :: Type) (t :: First (a :: Type)). Sing t -> Sing (Apply GetFirstSym0 t :: Maybe a) Source #
sGetLast :: forall (a :: Type) (t :: Last (a :: Type)). Sing t -> Sing (Apply GetLastSym0 t :: Maybe a) Source #
Defunctionalization symbols
type family MemptySym0 :: a where ... Source #
data MappendSym0 :: (~>) a ((~>) a a) Source #
Instances
SMonoid a => SingI (MappendSym0 :: TyFun a (a ~> a) -> Type) Source # | |
Defined in Data.Monoid.Singletons sing :: Sing MappendSym0 # | |
SuppressUnusedWarnings (MappendSym0 :: TyFun a (a ~> a) -> Type) Source # | |
Defined in Data.Monoid.Singletons suppressUnusedWarnings :: () # | |
type Apply (MappendSym0 :: TyFun a (a ~> a) -> Type) (a6989586621680031457 :: a) Source # | |
Defined in Data.Monoid.Singletons type Apply (MappendSym0 :: TyFun a (a ~> a) -> Type) (a6989586621680031457 :: a) = MappendSym1 a6989586621680031457 |
data MappendSym1 (a6989586621680031457 :: a) :: (~>) a a Source #
Instances
SMonoid a => SingI1 (MappendSym1 :: a -> TyFun a a -> Type) Source # | |
Defined in Data.Monoid.Singletons liftSing :: forall (x :: k1). Sing x -> Sing (MappendSym1 x) # | |
(SMonoid a, SingI d) => SingI (MappendSym1 d :: TyFun a a -> Type) Source # | |
Defined in Data.Monoid.Singletons sing :: Sing (MappendSym1 d) # | |
SuppressUnusedWarnings (MappendSym1 a6989586621680031457 :: TyFun a a -> Type) Source # | |
Defined in Data.Monoid.Singletons suppressUnusedWarnings :: () # | |
type Apply (MappendSym1 a6989586621680031457 :: TyFun a a -> Type) (a6989586621680031458 :: a) Source # | |
Defined in Data.Monoid.Singletons type Apply (MappendSym1 a6989586621680031457 :: TyFun a a -> Type) (a6989586621680031458 :: a) = Mappend a6989586621680031457 a6989586621680031458 |
type family MappendSym2 (a6989586621680031457 :: a) (a6989586621680031458 :: a) :: a where ... Source #
MappendSym2 a6989586621680031457 a6989586621680031458 = Mappend a6989586621680031457 a6989586621680031458 |
data MconcatSym0 :: (~>) [a] a Source #
Instances
SMonoid a => SingI (MconcatSym0 :: TyFun [a] a -> Type) Source # | |
Defined in Data.Monoid.Singletons sing :: Sing MconcatSym0 # | |
SuppressUnusedWarnings (MconcatSym0 :: TyFun [a] a -> Type) Source # | |
Defined in Data.Monoid.Singletons suppressUnusedWarnings :: () # | |
type Apply (MconcatSym0 :: TyFun [a] a -> Type) (a6989586621680031461 :: [a]) Source # | |
Defined in Data.Monoid.Singletons type Apply (MconcatSym0 :: TyFun [a] a -> Type) (a6989586621680031461 :: [a]) = Mconcat a6989586621680031461 |
type family MconcatSym1 (a6989586621680031461 :: [a]) :: a where ... Source #
MconcatSym1 a6989586621680031461 = Mconcat a6989586621680031461 |
data DualSym0 :: (~>) a (Dual (a :: Type)) Source #
Instances
SingI (DualSym0 :: TyFun a (Dual a) -> Type) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers | |
SuppressUnusedWarnings (DualSym0 :: TyFun a (Dual a) -> Type) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers suppressUnusedWarnings :: () # | |
type Apply (DualSym0 :: TyFun a (Dual a) -> Type) (a6989586621679553316 :: a) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers |
type family DualSym1 (a6989586621679553316 :: a) :: Dual (a :: Type) where ... Source #
DualSym1 a6989586621679553316 = 'Dual a6989586621679553316 |
data GetDualSym0 :: (~>) (Dual (a :: Type)) a Source #
Instances
SingI (GetDualSym0 :: TyFun (Dual a) a -> Type) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers sing :: Sing GetDualSym0 # | |
SuppressUnusedWarnings (GetDualSym0 :: TyFun (Dual a) a -> Type) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers suppressUnusedWarnings :: () # | |
type Apply (GetDualSym0 :: TyFun (Dual a) a -> Type) (a6989586621679553319 :: Dual a) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers type Apply (GetDualSym0 :: TyFun (Dual a) a -> Type) (a6989586621679553319 :: Dual a) = GetDual a6989586621679553319 |
type family GetDualSym1 (a6989586621679553319 :: Dual (a :: Type)) :: a where ... Source #
GetDualSym1 a6989586621679553319 = GetDual a6989586621679553319 |
data AllSym0 :: (~>) Bool All Source #
Instances
SingI AllSym0 Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers | |
SuppressUnusedWarnings AllSym0 Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers suppressUnusedWarnings :: () # | |
type Apply AllSym0 (a6989586621679553333 :: Bool) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers |
type family AllSym1 (a6989586621679553333 :: Bool) :: All where ... Source #
AllSym1 a6989586621679553333 = 'All a6989586621679553333 |
data GetAllSym0 :: (~>) All Bool Source #
Instances
SingI GetAllSym0 Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers sing :: Sing GetAllSym0 # | |
SuppressUnusedWarnings GetAllSym0 Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers suppressUnusedWarnings :: () # | |
type Apply GetAllSym0 (a6989586621679553336 :: All) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers |
type family GetAllSym1 (a6989586621679553336 :: All) :: Bool where ... Source #
GetAllSym1 a6989586621679553336 = GetAll a6989586621679553336 |
data AnySym0 :: (~>) Bool Any Source #
Instances
SingI AnySym0 Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers | |
SuppressUnusedWarnings AnySym0 Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers suppressUnusedWarnings :: () # | |
type Apply AnySym0 (a6989586621679553349 :: Bool) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers |
type family AnySym1 (a6989586621679553349 :: Bool) :: Any where ... Source #
AnySym1 a6989586621679553349 = 'Any a6989586621679553349 |
data GetAnySym0 :: (~>) Any Bool Source #
Instances
SingI GetAnySym0 Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers sing :: Sing GetAnySym0 # | |
SuppressUnusedWarnings GetAnySym0 Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers suppressUnusedWarnings :: () # | |
type Apply GetAnySym0 (a6989586621679553352 :: Any) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers |
type family GetAnySym1 (a6989586621679553352 :: Any) :: Bool where ... Source #
GetAnySym1 a6989586621679553352 = GetAny a6989586621679553352 |
data SumSym0 :: (~>) a (Sum (a :: Type)) Source #
Instances
SingI (SumSym0 :: TyFun a (Sum a) -> Type) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers | |
SuppressUnusedWarnings (SumSym0 :: TyFun a (Sum a) -> Type) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers suppressUnusedWarnings :: () # | |
type Apply (SumSym0 :: TyFun a (Sum a) -> Type) (a6989586621679553368 :: a) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers |
type family SumSym1 (a6989586621679553368 :: a) :: Sum (a :: Type) where ... Source #
SumSym1 a6989586621679553368 = 'Sum a6989586621679553368 |
data GetSumSym0 :: (~>) (Sum (a :: Type)) a Source #
Instances
SingI (GetSumSym0 :: TyFun (Sum a) a -> Type) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers sing :: Sing GetSumSym0 # | |
SuppressUnusedWarnings (GetSumSym0 :: TyFun (Sum a) a -> Type) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers suppressUnusedWarnings :: () # | |
type Apply (GetSumSym0 :: TyFun (Sum a) a -> Type) (a6989586621679553371 :: Sum a) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers type Apply (GetSumSym0 :: TyFun (Sum a) a -> Type) (a6989586621679553371 :: Sum a) = GetSum a6989586621679553371 |
type family GetSumSym1 (a6989586621679553371 :: Sum (a :: Type)) :: a where ... Source #
GetSumSym1 a6989586621679553371 = GetSum a6989586621679553371 |
data ProductSym0 :: (~>) a (Product (a :: Type)) Source #
Instances
SingI (ProductSym0 :: TyFun a (Product a) -> Type) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers sing :: Sing ProductSym0 # | |
SuppressUnusedWarnings (ProductSym0 :: TyFun a (Product a) -> Type) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers suppressUnusedWarnings :: () # | |
type Apply (ProductSym0 :: TyFun a (Product a) -> Type) (a6989586621679553387 :: a) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers type Apply (ProductSym0 :: TyFun a (Product a) -> Type) (a6989586621679553387 :: a) = 'Product a6989586621679553387 |
type family ProductSym1 (a6989586621679553387 :: a) :: Product (a :: Type) where ... Source #
ProductSym1 a6989586621679553387 = 'Product a6989586621679553387 |
data GetProductSym0 :: (~>) (Product (a :: Type)) a Source #
Instances
SingI (GetProductSym0 :: TyFun (Product a) a -> Type) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers sing :: Sing GetProductSym0 # | |
SuppressUnusedWarnings (GetProductSym0 :: TyFun (Product a) a -> Type) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers suppressUnusedWarnings :: () # | |
type Apply (GetProductSym0 :: TyFun (Product a) a -> Type) (a6989586621679553390 :: Product a) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers type Apply (GetProductSym0 :: TyFun (Product a) a -> Type) (a6989586621679553390 :: Product a) = GetProduct a6989586621679553390 |
type family GetProductSym1 (a6989586621679553390 :: Product (a :: Type)) :: a where ... Source #
GetProductSym1 a6989586621679553390 = GetProduct a6989586621679553390 |
data FirstSym0 :: (~>) (Maybe a) (First (a :: Type)) Source #
Instances
SingI (FirstSym0 :: TyFun (Maybe a) (First a) -> Type) Source # | |
Defined in Data.Monoid.Singletons | |
SuppressUnusedWarnings (FirstSym0 :: TyFun (Maybe a) (First a) -> Type) Source # | |
Defined in Data.Monoid.Singletons suppressUnusedWarnings :: () # | |
type Apply (FirstSym0 :: TyFun (Maybe a) (First a) -> Type) (a6989586621680036071 :: Maybe a) Source # | |
Defined in Data.Monoid.Singletons |
type family FirstSym1 (a6989586621680036071 :: Maybe a) :: First (a :: Type) where ... Source #
FirstSym1 a6989586621680036071 = 'First a6989586621680036071 |
data GetFirstSym0 :: (~>) (First (a :: Type)) (Maybe a) Source #
Instances
SingI (GetFirstSym0 :: TyFun (First a) (Maybe a) -> Type) Source # | |
Defined in Data.Monoid.Singletons sing :: Sing GetFirstSym0 # | |
SuppressUnusedWarnings (GetFirstSym0 :: TyFun (First a) (Maybe a) -> Type) Source # | |
Defined in Data.Monoid.Singletons suppressUnusedWarnings :: () # | |
type Apply (GetFirstSym0 :: TyFun (First a) (Maybe a) -> Type) (a6989586621680036074 :: First a) Source # | |
Defined in Data.Monoid.Singletons type Apply (GetFirstSym0 :: TyFun (First a) (Maybe a) -> Type) (a6989586621680036074 :: First a) = GetFirst a6989586621680036074 |
type family GetFirstSym1 (a6989586621680036074 :: First (a :: Type)) :: Maybe a where ... Source #
GetFirstSym1 a6989586621680036074 = GetFirst a6989586621680036074 |
data LastSym0 :: (~>) (Maybe a) (Last (a :: Type)) Source #
Instances
SingI (LastSym0 :: TyFun (Maybe a) (Last a) -> Type) Source # | |
Defined in Data.Monoid.Singletons | |
SuppressUnusedWarnings (LastSym0 :: TyFun (Maybe a) (Last a) -> Type) Source # | |
Defined in Data.Monoid.Singletons suppressUnusedWarnings :: () # | |
type Apply (LastSym0 :: TyFun (Maybe a) (Last a) -> Type) (a6989586621680036095 :: Maybe a) Source # | |
Defined in Data.Monoid.Singletons |
type family LastSym1 (a6989586621680036095 :: Maybe a) :: Last (a :: Type) where ... Source #
LastSym1 a6989586621680036095 = 'Last a6989586621680036095 |
data GetLastSym0 :: (~>) (Last (a :: Type)) (Maybe a) Source #
Instances
SingI (GetLastSym0 :: TyFun (Last a) (Maybe a) -> Type) Source # | |
Defined in Data.Monoid.Singletons sing :: Sing GetLastSym0 # | |
SuppressUnusedWarnings (GetLastSym0 :: TyFun (Last a) (Maybe a) -> Type) Source # | |
Defined in Data.Monoid.Singletons suppressUnusedWarnings :: () # | |
type Apply (GetLastSym0 :: TyFun (Last a) (Maybe a) -> Type) (a6989586621680036098 :: Last a) Source # | |
Defined in Data.Monoid.Singletons type Apply (GetLastSym0 :: TyFun (Last a) (Maybe a) -> Type) (a6989586621680036098 :: Last a) = GetLast a6989586621680036098 |
type family GetLastSym1 (a6989586621680036098 :: Last (a :: Type)) :: Maybe a where ... Source #
GetLastSym1 a6989586621680036098 = GetLast a6989586621680036098 |
Orphan instances
PApplicative First Source # | |
PApplicative Last Source # | |
PFunctor First Source # | |
PFunctor Last Source # | |
PMonad First Source # | |
PMonad Last Source # | |
SApplicative First Source # | |
sPure :: forall a (t :: a). Sing t -> Sing (Apply PureSym0 t) Source # (%<*>) :: forall a b (t1 :: First (a ~> b)) (t2 :: First a). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<*>@#@$) t1) t2) Source # sLiftA2 :: forall a b c (t1 :: a ~> (b ~> c)) (t2 :: First a) (t3 :: First b). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply LiftA2Sym0 t1) t2) t3) Source # (%*>) :: forall a b (t1 :: First a) (t2 :: First b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (*>@#@$) t1) t2) Source # (%<*) :: forall a b (t1 :: First a) (t2 :: First b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<*@#@$) t1) t2) Source # | |
SApplicative Last Source # | |
sPure :: forall a (t :: a). Sing t -> Sing (Apply PureSym0 t) Source # (%<*>) :: forall a b (t1 :: Last (a ~> b)) (t2 :: Last a). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<*>@#@$) t1) t2) Source # sLiftA2 :: forall a b c (t1 :: a ~> (b ~> c)) (t2 :: Last a) (t3 :: Last b). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply LiftA2Sym0 t1) t2) t3) Source # (%*>) :: forall a b (t1 :: Last a) (t2 :: Last b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (*>@#@$) t1) t2) Source # (%<*) :: forall a b (t1 :: Last a) (t2 :: Last b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<*@#@$) t1) t2) Source # | |
SFunctor First Source # | |
SFunctor Last Source # | |
SMonad First Source # | |
(%>>=) :: forall a b (t1 :: First a) (t2 :: a ~> First b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (>>=@#@$) t1) t2) Source # (%>>) :: forall a b (t1 :: First a) (t2 :: First b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (>>@#@$) t1) t2) Source # sReturn :: forall a (t :: a). Sing t -> Sing (Apply ReturnSym0 t) Source # | |
SMonad Last Source # | |
(%>>=) :: forall a b (t1 :: Last a) (t2 :: a ~> Last b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (>>=@#@$) t1) t2) Source # (%>>) :: forall a b (t1 :: Last a) (t2 :: Last b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (>>@#@$) t1) t2) Source # sReturn :: forall a (t :: a). Sing t -> Sing (Apply ReturnSym0 t) Source # | |
SingKind a => SingKind (First a) Source # | |
SingKind a => SingKind (Last a) Source # | |
SDecide (Maybe a) => SDecide (First a) Source # | |
SDecide (Maybe a) => SDecide (Last a) Source # | |
PEq (First a) Source # | |
PEq (Last a) Source # | |
SEq (Maybe a) => SEq (First a) Source # | |
SEq (Maybe a) => SEq (Last a) Source # | |
POrd (First a) Source # | |
POrd (Last a) Source # | |
SOrd (Maybe a) => SOrd (First a) Source # | |
sCompare :: forall (t1 :: First a) (t2 :: First a). Sing t1 -> Sing t2 -> Sing (Apply (Apply CompareSym0 t1) t2) Source # (%<) :: forall (t1 :: First a) (t2 :: First a). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<@#@$) t1) t2) Source # (%<=) :: forall (t1 :: First a) (t2 :: First a). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<=@#@$) t1) t2) Source # (%>) :: forall (t1 :: First a) (t2 :: First a). Sing t1 -> Sing t2 -> Sing (Apply (Apply (>@#@$) t1) t2) Source # (%>=) :: forall (t1 :: First a) (t2 :: First a). Sing t1 -> Sing t2 -> Sing (Apply (Apply (>=@#@$) t1) t2) Source # sMax :: forall (t1 :: First a) (t2 :: First a). Sing t1 -> Sing t2 -> Sing (Apply (Apply MaxSym0 t1) t2) Source # sMin :: forall (t1 :: First a) (t2 :: First a). Sing t1 -> Sing t2 -> Sing (Apply (Apply MinSym0 t1) t2) Source # | |
SOrd (Maybe a) => SOrd (Last a) Source # | |
sCompare :: forall (t1 :: Last a) (t2 :: Last a). Sing t1 -> Sing t2 -> Sing (Apply (Apply CompareSym0 t1) t2) Source # (%<) :: forall (t1 :: Last a) (t2 :: Last a). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<@#@$) t1) t2) Source # (%<=) :: forall (t1 :: Last a) (t2 :: Last a). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<=@#@$) t1) t2) Source # (%>) :: forall (t1 :: Last a) (t2 :: Last a). Sing t1 -> Sing t2 -> Sing (Apply (Apply (>@#@$) t1) t2) Source # (%>=) :: forall (t1 :: Last a) (t2 :: Last a). Sing t1 -> Sing t2 -> Sing (Apply (Apply (>=@#@$) t1) t2) Source # sMax :: forall (t1 :: Last a) (t2 :: Last a). Sing t1 -> Sing t2 -> Sing (Apply (Apply MaxSym0 t1) t2) Source # sMin :: forall (t1 :: Last a) (t2 :: Last a). Sing t1 -> Sing t2 -> Sing (Apply (Apply MinSym0 t1) t2) Source # | |
PSemigroup (First a) Source # | |
PSemigroup (Last a) Source # | |
SSemigroup (First a) Source # | |
SSemigroup (Last a) Source # | |
PShow (First a) Source # | |
PShow (Last a) Source # | |
SShow (Maybe a) => SShow (First a) Source # | |
sShowsPrec :: forall (t1 :: Natural) (t2 :: First a) (t3 :: Symbol). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply ShowsPrecSym0 t1) t2) t3) Source # sShow_ :: forall (t :: First a). Sing t -> Sing (Apply Show_Sym0 t) Source # sShowList :: forall (t1 :: [First a]) (t2 :: Symbol). Sing t1 -> Sing t2 -> Sing (Apply (Apply ShowListSym0 t1) t2) Source # | |
SShow (Maybe a) => SShow (Last a) Source # | |
sShowsPrec :: forall (t1 :: Natural) (t2 :: Last a) (t3 :: Symbol). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply ShowsPrecSym0 t1) t2) t3) Source # sShow_ :: forall (t :: Last a). Sing t -> Sing (Apply Show_Sym0 t) Source # sShowList :: forall (t1 :: [Last a]) (t2 :: Symbol). Sing t1 -> Sing t2 -> Sing (Apply (Apply ShowListSym0 t1) t2) Source # | |
SingI1 ('First :: Maybe a -> First a) Source # | |
SingI1 ('Last :: Maybe a -> Last a) Source # | |
SingI n => SingI ('First n :: First a) Source # | |
SingI n => SingI ('Last n :: Last a) Source # | |