Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Compose two HyperType
s.
Inspired by hyperfunctions' Category
instance.
Synopsis
- newtype HCompose a b h = HCompose {
- getHCompose :: a # HCompose b (GetHyperType h)
- _HCompose :: Iso (HCompose a0 b0 # h0) (HCompose a1 b1 # h1) (a0 # HCompose b0 h0) (a1 # HCompose b1 h1)
- data W_HCompose a b n where
- W_HCompose :: HWitness a a0 -> HWitness b b0 -> W_HCompose a b (HCompose a0 b0)
- class HComposeConstraint1 (c :: HyperType -> Constraint) (h0 :: HyperType) (h1 :: HyperType)
- decompose :: forall a0 b0 a1 b1. (Recursively HFunctor a0, Recursively HFunctor b0, Recursively HFunctor a1, Recursively HFunctor b1) => Iso (Pure # HCompose a0 b0) (Pure # HCompose a1 b1) (a0 # b0) (a1 # b1)
- decompose' :: forall a b. (Recursively HFunctor a, Recursively HFunctor b) => Iso' (Pure # HCompose a b) (a # b)
- hcomposed :: (Profunctor p, Functor f) => Optic p f (a0 # HCompose b0 c0) (a1 # HCompose b1 c1) (HCompose a2 b2 # c2) (HCompose a3 b3 # c3) -> Optic p f (HCompose a0 b0 # c0) (HCompose a1 b1 # c1) (a2 # HCompose b2 c2) (a3 # HCompose b3 c3)
Documentation
newtype HCompose a b h Source #
Compose two HyperType
s as an external and internal layer
HCompose | |
|
Instances
_HCompose :: Iso (HCompose a0 b0 # h0) (HCompose a1 b1 # h1) (a0 # HCompose b0 h0) (a1 # HCompose b1 h1) Source #
data W_HCompose a b n where Source #
W_HCompose :: HWitness a a0 -> HWitness b b0 -> W_HCompose a b (HCompose a0 b0) |
class HComposeConstraint1 (c :: HyperType -> Constraint) (h0 :: HyperType) (h1 :: HyperType) Source #
hComposeConstraint1
Instances
c (HCompose h0 h1) => HComposeConstraint1 c h0 h1 Source # | |
Defined in Hyper.Combinator.Compose hComposeConstraint1 :: Dict (c (HCompose h0 h1)) |
decompose :: forall a0 b0 a1 b1. (Recursively HFunctor a0, Recursively HFunctor b0, Recursively HFunctor a1, Recursively HFunctor b1) => Iso (Pure # HCompose a0 b0) (Pure # HCompose a1 b1) (a0 # b0) (a1 # b1) Source #
Inject Pure between two hypertypes.
decompose' :: forall a b. (Recursively HFunctor a, Recursively HFunctor b) => Iso' (Pure # HCompose a b) (a # b) Source #