Copyright | (C) 2018 Ryan Scott |
---|---|
License | BSD-style (see LICENSE) |
Maintainer | Richard Eisenberg (rae@cs.brynmawr.edu) |
Stability | experimental |
Portability | non-portable |
Safe Haskell | None |
Language | GHC2021 |
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 (GetConst t)
- data ConstSym0 (a1 :: TyFun a (Const a b))
- type family ConstSym1 (a6989586621680067841 :: a) :: Const a b where ...
- data GetConstSym0 (a1 :: TyFun (Const a b) a)
- type family GetConstSym1 (a6989586621680067844 :: 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 |
Defunctionalization symbols
data ConstSym0 (a1 :: TyFun a (Const a b)) Source #
Instances
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 suppressUnusedWarnings :: () # | |
type Apply (GetConstSym0 :: TyFun (Const a b) a -> Type) (a6989586621680067844 :: Const a b) Source # | |
Defined in Data.Functor.Const.Singletons |
type family GetConstSym1 (a6989586621680067844 :: Const a b) :: a where ... Source #
GetConstSym1 (a6989586621680067844 :: Const a b) = GetConst a6989586621680067844 |
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 # | |||||||||
sPure :: forall a (t :: a). Sing t -> Sing (Pure t :: Const m a) Source # (%<*>) :: forall a b (t1 :: Const m (a ~> b)) (t2 :: Const m a). Sing t1 -> Sing t2 -> Sing (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 (LiftA2 t1 t2 t3) Source # (%*>) :: forall a b (t1 :: Const m a) (t2 :: Const m b). Sing t1 -> Sing t2 -> Sing (t1 *> t2) Source # (%<*) :: forall a b (t1 :: Const m a) (t2 :: Const m b). Sing t1 -> Sing t2 -> Sing (t1 <* t2) Source # | |||||||||
SFunctor (Const m :: Type -> Type) Source # | |||||||||
PFoldable (Const m :: Type -> Type) Source # | |||||||||
SFoldable (Const m :: Type -> Type) Source # | |||||||||
sFold :: forall m0 (t1 :: Const m m0). SMonoid m0 => Sing t1 -> Sing (Fold t1) Source # sFoldMap :: forall a m0 (t1 :: a ~> m0) (t2 :: Const m a). SMonoid m0 => Sing t1 -> Sing t2 -> Sing (FoldMap t1 t2) Source # sFoldr :: forall a b (t1 :: a ~> (b ~> b)) (t2 :: b) (t3 :: Const m a). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Foldr 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 (Foldr' 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 (Foldl 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 (Foldl' t1 t2 t3) Source # sFoldr1 :: forall a (t1 :: a ~> (a ~> a)) (t2 :: Const m a). Sing t1 -> Sing t2 -> Sing (Foldr1 t1 t2) Source # sFoldl1 :: forall a (t1 :: a ~> (a ~> a)) (t2 :: Const m a). Sing t1 -> Sing t2 -> Sing (Foldl1 t1 t2) Source # sToList :: forall a (t1 :: Const m a). Sing t1 -> Sing (ToList t1) Source # sNull :: forall a (t1 :: Const m a). Sing t1 -> Sing (Null t1) Source # sLength :: forall a (t1 :: Const m a). Sing t1 -> Sing (Length t1) Source # sElem :: forall a (t1 :: a) (t2 :: Const m a). SEq a => Sing t1 -> Sing t2 -> Sing (Elem t1 t2) Source # sMaximum :: forall a (t1 :: Const m a). SOrd a => Sing t1 -> Sing (Maximum t1) Source # sMinimum :: forall a (t1 :: Const m a). SOrd a => Sing t1 -> Sing (Minimum t1) Source # sSum :: forall a (t1 :: Const m a). SNum a => Sing t1 -> Sing (Sum t1) Source # sProduct :: forall a (t1 :: Const m a). SNum a => Sing t1 -> Sing (Product 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 # | |||||||||
PMonoid (Const a b) Source # | |||||||||
| |||||||||
SMonoid a => SMonoid (Const a b) Source # | |||||||||
POrd (Const a b) Source # | |||||||||
SOrd a => SOrd (Const a b) Source # | |||||||||
sCompare :: forall (t1 :: Const a b) (t2 :: Const a b). Sing t1 -> Sing t2 -> Sing (Compare t1 t2) Source # (%<) :: forall (t1 :: Const a b) (t2 :: Const a b). Sing t1 -> Sing t2 -> Sing (t1 < t2) Source # (%<=) :: forall (t1 :: Const a b) (t2 :: Const a b). Sing t1 -> Sing t2 -> Sing (t1 <= t2) Source # (%>) :: forall (t1 :: Const a b) (t2 :: Const a b). Sing t1 -> Sing t2 -> Sing (t1 > t2) Source # (%>=) :: forall (t1 :: Const a b) (t2 :: Const a b). Sing t1 -> Sing t2 -> Sing (t1 >= t2) Source # sMax :: forall (t1 :: Const a b) (t2 :: Const a b). Sing t1 -> Sing t2 -> Sing (Max t1 t2) Source # sMin :: forall (t1 :: Const a b) (t2 :: Const a b). Sing t1 -> Sing t2 -> Sing (Min t1 t2) Source # | |||||||||
PSemigroup (Const a b) Source # | |||||||||
SSemigroup a => SSemigroup (Const a b) Source # | |||||||||
PBounded (Const a b) Source # | |||||||||
| |||||||||
PEnum (Const a b) Source # | |||||||||
SBounded a => SBounded (Const a b) Source # | |||||||||
SEnum a => SEnum (Const a b) Source # | |||||||||
sSucc :: forall (t :: Const a b). Sing t -> Sing (Succ t) Source # sPred :: forall (t :: Const a b). Sing t -> Sing (Pred t) Source # sToEnum :: forall (t :: Natural). Sing t -> Sing (ToEnum t :: Const a b) Source # sFromEnum :: forall (t :: Const a b). Sing t -> Sing (FromEnum t) Source # sEnumFromTo :: forall (t1 :: Const a b) (t2 :: Const a b). Sing t1 -> Sing t2 -> Sing (EnumFromTo t1 t2) Source # sEnumFromThenTo :: forall (t1 :: Const a b) (t2 :: Const a b) (t3 :: Const a b). Sing t1 -> Sing t2 -> Sing t3 -> Sing (EnumFromThenTo t1 t2 t3) Source # | |||||||||
PNum (Const a b) Source # | |||||||||
SNum a => SNum (Const a b) Source # | |||||||||
(%+) :: forall (t1 :: Const a b) (t2 :: Const a b). Sing t1 -> Sing t2 -> Sing (t1 + t2) Source # (%-) :: forall (t1 :: Const a b) (t2 :: Const a b). Sing t1 -> Sing t2 -> Sing (t1 - t2) Source # (%*) :: forall (t1 :: Const a b) (t2 :: Const a b). Sing t1 -> Sing t2 -> Sing (t1 * t2) Source # sNegate :: forall (t :: Const a b). Sing t -> Sing (Negate t) Source # sAbs :: forall (t :: Const a b). Sing t -> Sing (Abs t) Source # sSignum :: forall (t :: Const a b). Sing t -> Sing (Signum t) Source # sFromInteger :: forall (t :: Natural). Sing t -> Sing (FromInteger t :: Const a b) Source # | |||||||||
PShow (Const a b) Source # | |||||||||
SShow a => SShow (Const a b) Source # | |||||||||
sShowsPrec :: forall (t1 :: Natural) (t2 :: Const a b) (t3 :: Symbol). Sing t1 -> Sing t2 -> Sing t3 -> Sing (ShowsPrec t1 t2 t3) Source # sShow_ :: forall (t :: Const a b). Sing t -> Sing (Show_ t) Source # sShowList :: forall (t1 :: [Const a b]) (t2 :: Symbol). Sing t1 -> Sing t2 -> Sing (ShowList t1 t2) Source # | |||||||||
SingI n => SingI ('Const n :: Const a b) Source # | |||||||||