Copyright | (C) 2018 Ryan Scott |
---|---|
License | BSD-style (see LICENSE) |
Maintainer | Richard Eisenberg ([email protected]) |
Stability | experimental |
Portability | non-portable |
Safe Haskell | None |
Language | GHC2021 |
Data.Functor.Const.Singletons
Description
Exports the promoted and singled versions of the Const
data type.
Synopsis
- type family Sing :: k -> Type
- data SConst (a1 :: Const a b) where
- type family GetConst (a1 :: Const a b) :: a where ...
- sGetConst :: forall {k} a (b :: k) (t :: Const a b). Sing t -> Sing (Apply (GetConstSym0 :: TyFun (Const a b) a -> Type) t)
- data ConstSym0 (z :: TyFun a (Const a b))
- type family ConstSym1 (x :: a) :: Const a b where ...
- data GetConstSym0 (a1 :: TyFun (Const a b) a)
- type family GetConstSym1 (a6989586621680681956 :: Const a b) :: a where ...
The Const
singleton
type family Sing :: k -> Type #
Instances
data SConst (a1 :: Const a b) where Source #
Instances
SDecide a => TestCoercion (SConst :: Const a b -> Type) Source # | |
Defined in Data.Functor.Const.Singletons | |
SDecide a => TestEquality (SConst :: Const a b -> Type) Source # | |
Defined in Data.Functor.Const.Singletons | |
Eq (SConst z) Source # | |
Ord (SConst z) Source # | |
Defined in Data.Functor.Const.Singletons |
sGetConst :: forall {k} a (b :: k) (t :: Const a b). Sing t -> Sing (Apply (GetConstSym0 :: TyFun (Const a b) a -> Type) t) Source #
Defunctionalization symbols
data GetConstSym0 (a1 :: TyFun (Const a b) a) Source #
Instances
SingI (GetConstSym0 :: TyFun (Const a b) a -> Type) Source # | |
Defined in Data.Functor.Const.Singletons | |
SuppressUnusedWarnings (GetConstSym0 :: TyFun (Const a b) a -> Type) Source # | |
Defined in Data.Functor.Const.Singletons Methods suppressUnusedWarnings :: () # | |
type Apply (GetConstSym0 :: TyFun (Const a b) a -> Type) (a6989586621680681956 :: Const a b) Source # | |
Defined in Data.Functor.Const.Singletons |
type family GetConstSym1 (a6989586621680681956 :: Const a b) :: a where ... Source #
Equations
GetConstSym1 (a6989586621680681956 :: Const a b) = GetConst a6989586621680681956 |
Orphan instances
SingI1 ('Const :: k1 -> Const k1 b) Source # | |||||||||
PApplicative (Const m :: Type -> Type) Source # | |||||||||
PFunctor (Const m :: Type -> Type) Source # | |||||||||
SMonoid m => SApplicative (Const m :: Type -> Type) Source # | |||||||||
Methods sPure :: forall a (t :: a). Sing t -> Sing (Apply (PureSym0 :: TyFun a (Const m a) -> Type) t) Source # (%<*>) :: forall a b (t1 :: Const m (a ~> b)) (t2 :: Const m a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((<*>@#@$) :: TyFun (Const m (a ~> b)) (Const m a ~> Const m b) -> Type) t1) t2) Source # sLiftA2 :: forall a b c (t1 :: a ~> (b ~> c)) (t2 :: Const m a) (t3 :: Const m b). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply (LiftA2Sym0 :: TyFun (a ~> (b ~> c)) (Const m a ~> (Const m b ~> Const m c)) -> Type) t1) t2) t3) Source # (%*>) :: forall a b (t1 :: Const m a) (t2 :: Const m b). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((*>@#@$) :: TyFun (Const m a) (Const m b ~> Const m b) -> Type) t1) t2) Source # (%<*) :: forall a b (t1 :: Const m a) (t2 :: Const m b). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((<*@#@$) :: TyFun (Const m a) (Const m b ~> Const m a) -> Type) t1) t2) Source # | |||||||||
SFunctor (Const m :: Type -> Type) Source # | |||||||||
Methods sFmap :: forall a b (t1 :: a ~> b) (t2 :: Const m a). Sing t1 -> Sing t2 -> Sing (Apply (Apply (FmapSym0 :: TyFun (a ~> b) (Const m a ~> Const m b) -> Type) t1) t2) Source # (%<$) :: forall a b (t1 :: a) (t2 :: Const m b). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((<$@#@$) :: TyFun a (Const m b ~> Const m a) -> Type) t1) t2) Source # | |||||||||
PFoldable (Const m :: Type -> Type) Source # | |||||||||
SFoldable (Const m :: Type -> Type) Source # | |||||||||
Methods sFold :: forall m0 (t1 :: Const m m0). SMonoid m0 => Sing t1 -> Sing (Apply (FoldSym0 :: TyFun (Const m m) m -> Type) t1) Source # sFoldMap :: forall a m0 (t1 :: a ~> m0) (t2 :: Const m a). SMonoid m0 => Sing t1 -> Sing t2 -> Sing (Apply (Apply (FoldMapSym0 :: TyFun (a ~> m) (Const m a ~> m) -> Type) t1) t2) Source # sFoldr :: forall a b (t1 :: a ~> (b ~> b)) (t2 :: b) (t3 :: Const m a). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply (FoldrSym0 :: TyFun (a ~> (b ~> b)) (b ~> (Const m a ~> b)) -> Type) t1) t2) t3) Source # sFoldr' :: forall a b (t1 :: a ~> (b ~> b)) (t2 :: b) (t3 :: Const m a). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply (Foldr'Sym0 :: TyFun (a ~> (b ~> b)) (b ~> (Const m a ~> b)) -> Type) t1) t2) t3) Source # sFoldl :: forall b a (t1 :: b ~> (a ~> b)) (t2 :: b) (t3 :: Const m a). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply (FoldlSym0 :: TyFun (b ~> (a ~> b)) (b ~> (Const m a ~> b)) -> Type) t1) t2) t3) Source # sFoldl' :: forall b a (t1 :: b ~> (a ~> b)) (t2 :: b) (t3 :: Const m a). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply (Foldl'Sym0 :: TyFun (b ~> (a ~> b)) (b ~> (Const m a ~> b)) -> Type) t1) t2) t3) Source # sFoldr1 :: forall a (t1 :: a ~> (a ~> a)) (t2 :: Const m a). Sing t1 -> Sing t2 -> Sing (Apply (Apply (Foldr1Sym0 :: TyFun (a ~> (a ~> a)) (Const m a ~> a) -> Type) t1) t2) Source # sFoldl1 :: forall a (t1 :: a ~> (a ~> a)) (t2 :: Const m a). Sing t1 -> Sing t2 -> Sing (Apply (Apply (Foldl1Sym0 :: TyFun (a ~> (a ~> a)) (Const m a ~> a) -> Type) t1) t2) Source # sToList :: forall a (t1 :: Const m a). Sing t1 -> Sing (Apply (ToListSym0 :: TyFun (Const m a) [a] -> Type) t1) Source # sNull :: forall a (t1 :: Const m a). Sing t1 -> Sing (Apply (NullSym0 :: TyFun (Const m a) Bool -> Type) t1) Source # sLength :: forall a (t1 :: Const m a). Sing t1 -> Sing (Apply (LengthSym0 :: TyFun (Const m a) Natural -> Type) t1) Source # sElem :: forall a (t1 :: a) (t2 :: Const m a). SEq a => Sing t1 -> Sing t2 -> Sing (Apply (Apply (ElemSym0 :: TyFun a (Const m a ~> Bool) -> Type) t1) t2) Source # sMaximum :: forall a (t1 :: Const m a). SOrd a => Sing t1 -> Sing (Apply (MaximumSym0 :: TyFun (Const m a) a -> Type) t1) Source # sMinimum :: forall a (t1 :: Const m a). SOrd a => Sing t1 -> Sing (Apply (MinimumSym0 :: TyFun (Const m a) a -> Type) t1) Source # sSum :: forall a (t1 :: Const m a). SNum a => Sing t1 -> Sing (Apply (SumSym0 :: TyFun (Const m a) a -> Type) t1) Source # sProduct :: forall a (t1 :: Const m a). SNum a => Sing t1 -> Sing (Apply (ProductSym0 :: TyFun (Const m a) a -> Type) t1) Source # | |||||||||
SingKind a => SingKind (Const a b) Source # | |||||||||
SDecide a => SDecide (Const a b) Source # | |||||||||
PEq (Const a b) Source # | |||||||||
SEq a => SEq (Const a b) Source # | |||||||||
Methods (%==) :: forall (t1 :: Const a b) (t2 :: Const a b). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun (Const a b) (Const a b ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: Const a b) (t2 :: Const a b). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun (Const a b) (Const a b ~> Bool) -> Type) t1) t2) Source # | |||||||||
PMonoid (Const a b) Source # | |||||||||
Associated Types
| |||||||||
SMonoid a => SMonoid (Const a b) Source # | |||||||||
Methods sMempty :: Sing (MemptySym0 :: Const a b) Source # sMappend :: forall (t1 :: Const a b) (t2 :: Const a b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (MappendSym0 :: TyFun (Const a b) (Const a b ~> Const a b) -> Type) t1) t2) Source # sMconcat :: forall (t :: [Const a b]). Sing t -> Sing (Apply (MconcatSym0 :: TyFun [Const a b] (Const a b) -> Type) t) Source # | |||||||||
POrd (Const a b) Source # | |||||||||
SOrd a => SOrd (Const a b) Source # | |||||||||
Methods sCompare :: forall (t1 :: Const a b) (t2 :: Const a b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (CompareSym0 :: TyFun (Const a b) (Const a b ~> Ordering) -> Type) t1) t2) Source # (%<) :: forall (t1 :: Const a b) (t2 :: Const a b). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((<@#@$) :: TyFun (Const a b) (Const a b ~> Bool) -> Type) t1) t2) Source # (%<=) :: forall (t1 :: Const a b) (t2 :: Const a b). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((<=@#@$) :: TyFun (Const a b) (Const a b ~> Bool) -> Type) t1) t2) Source # (%>) :: forall (t1 :: Const a b) (t2 :: Const a b). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((>@#@$) :: TyFun (Const a b) (Const a b ~> Bool) -> Type) t1) t2) Source # (%>=) :: forall (t1 :: Const a b) (t2 :: Const a b). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((>=@#@$) :: TyFun (Const a b) (Const a b ~> Bool) -> Type) t1) t2) Source # sMax :: forall (t1 :: Const a b) (t2 :: Const a b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (MaxSym0 :: TyFun (Const a b) (Const a b ~> Const a b) -> Type) t1) t2) Source # sMin :: forall (t1 :: Const a b) (t2 :: Const a b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (MinSym0 :: TyFun (Const a b) (Const a b ~> Const a b) -> Type) t1) t2) Source # | |||||||||
PSemigroup (Const a b) Source # | |||||||||
SSemigroup a => SSemigroup (Const a b) Source # | |||||||||
Methods (%<>) :: forall (t1 :: Const a b) (t2 :: Const a b). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((<>@#@$) :: TyFun (Const a b) (Const a b ~> Const a b) -> Type) t1) t2) Source # sSconcat :: forall (t :: NonEmpty (Const a b)). Sing t -> Sing (Apply (SconcatSym0 :: TyFun (NonEmpty (Const a b)) (Const a b) -> Type) t) Source # | |||||||||
PBounded (Const a b) Source # | |||||||||
Associated Types
| |||||||||
PEnum (Const a b) Source # | |||||||||
SBounded a => SBounded (Const a b) Source # | |||||||||
SEnum a => SEnum (Const a b) Source # | |||||||||
Methods sSucc :: forall (t :: Const a b). Sing t -> Sing (Apply (SuccSym0 :: TyFun (Const a b) (Const a b) -> Type) t) Source # sPred :: forall (t :: Const a b). Sing t -> Sing (Apply (PredSym0 :: TyFun (Const a b) (Const a b) -> Type) t) Source # sToEnum :: forall (t :: Natural). Sing t -> Sing (Apply (ToEnumSym0 :: TyFun Natural (Const a b) -> Type) t) Source # sFromEnum :: forall (t :: Const a b). Sing t -> Sing (Apply (FromEnumSym0 :: TyFun (Const a b) Natural -> Type) t) Source # sEnumFromTo :: forall (t1 :: Const a b) (t2 :: Const a b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (EnumFromToSym0 :: TyFun (Const a b) (Const a b ~> [Const a b]) -> Type) t1) t2) Source # sEnumFromThenTo :: forall (t1 :: Const a b) (t2 :: Const a b) (t3 :: Const a b). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply (EnumFromThenToSym0 :: TyFun (Const a b) (Const a b ~> (Const a b ~> [Const a b])) -> Type) t1) t2) t3) Source # | |||||||||
PNum (Const a b) Source # | |||||||||
SNum a => SNum (Const a b) Source # | |||||||||
Methods (%+) :: forall (t1 :: Const a b) (t2 :: Const a b). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((+@#@$) :: TyFun (Const a b) (Const a b ~> Const a b) -> Type) t1) t2) Source # (%-) :: forall (t1 :: Const a b) (t2 :: Const a b). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((-@#@$) :: TyFun (Const a b) (Const a b ~> Const a b) -> Type) t1) t2) Source # (%*) :: forall (t1 :: Const a b) (t2 :: Const a b). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((*@#@$) :: TyFun (Const a b) (Const a b ~> Const a b) -> Type) t1) t2) Source # sNegate :: forall (t :: Const a b). Sing t -> Sing (Apply (NegateSym0 :: TyFun (Const a b) (Const a b) -> Type) t) Source # sAbs :: forall (t :: Const a b). Sing t -> Sing (Apply (AbsSym0 :: TyFun (Const a b) (Const a b) -> Type) t) Source # sSignum :: forall (t :: Const a b). Sing t -> Sing (Apply (SignumSym0 :: TyFun (Const a b) (Const a b) -> Type) t) Source # sFromInteger :: forall (t :: Natural). Sing t -> Sing (Apply (FromIntegerSym0 :: TyFun Natural (Const a b) -> Type) t) Source # | |||||||||
PShow (Const a b) Source # | |||||||||
SShow a => SShow (Const a b) Source # | |||||||||
Methods sShowsPrec :: forall (t1 :: Natural) (t2 :: Const a b) (t3 :: Symbol). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply (ShowsPrecSym0 :: TyFun Natural (Const a b ~> (Symbol ~> Symbol)) -> Type) t1) t2) t3) Source # sShow_ :: forall (t :: Const a b). Sing t -> Sing (Apply (Show_Sym0 :: TyFun (Const a b) Symbol -> Type) t) Source # sShowList :: forall (t1 :: [Const a b]) (t2 :: Symbol). Sing t1 -> Sing t2 -> Sing (Apply (Apply (ShowListSym0 :: TyFun [Const a b] (Symbol ~> Symbol) -> Type) t1) t2) Source # | |||||||||
SingI a2 => SingI ('Const a2 :: Const a1 b) Source # | |||||||||