Safe Haskell | None |
---|---|
Language | Haskell2010 |
Proarrow.Profunctor.Free
Documentation
class (CategoryOf k, Representable (Free ob), forall (b :: k). Ob b => ob (Free ob % b)) => HasFree (ob :: k -> Constraint) where Source Comments #
Methods
lift' :: forall (a :: k) (b :: k). (a ~> b) -> Free ob a b Source Comments #
retract' :: forall (b :: k) (a :: k). ob b => Free ob a b -> a ~> b Source Comments #
Instances
lift :: forall {j} (ob :: j -> Constraint) (a :: j). (HasFree ob, Ob a) => a ~> (Free ob % a) Source Comments #
retract :: forall {k} (ob :: k -> Constraint) (a :: k). (HasFree ob, ob a, Ob a) => (Free ob % a) ~> a Source Comments #
data FreeSub (ob :: OB k) (a :: SUBCAT ob) (b :: k) where Source Comments #
Constructors
FreeSub :: forall {k} (ob :: OB k) (a1 :: k) (b :: k). ob a1 => Free ob a1 b -> FreeSub ob ('SUB a1 :: SUBCAT ob) b |
Instances
HasFree ob => Profunctor (FreeSub ob :: SUBCAT ob -> j -> Type) Source Comments # | |
HasFree ob => Representable (FreeSub ob :: SUBCAT ob -> j -> Type) Source Comments # | |
Defined in Proarrow.Profunctor.Free Methods index :: forall (a :: SUBCAT ob) (b :: j). FreeSub ob a b -> a ~> (FreeSub ob % b) Source Comments # tabulate :: forall (b :: j) (a :: SUBCAT ob). Ob b => (a ~> (FreeSub ob % b)) -> FreeSub ob a b Source Comments # repMap :: forall (a :: j) (b :: j). (a ~> b) -> (FreeSub ob % a) ~> (FreeSub ob % b) Source Comments # | |
HasFree ob => Adjunction (FreeSub ob :: SUBCAT ob -> k -> Type) (Forget ob :: k -> SUBCAT ob -> Type) Source Comments # | |
type (FreeSub ob :: SUBCAT ob -> j -> Type) % (a :: j) Source Comments # | |
data Ap (f :: k -> Type) (a :: k) where Source Comments #
Constructors
Pure :: forall {k} (a :: k) (f :: k -> Type). ((Unit :: k) ~> a) -> Ap f a | |
Eff :: forall {k} (f :: k -> Type) (a :: k). f a -> Ap f a | |
LiftA2 :: forall {k} (a1 :: k) (b :: k) (a :: k) (f :: k -> Type). (Ob a1, Ob b) => ((a1 ** b) ~> a) -> Ap f a1 -> Ap f b -> Ap f a |
data FreePromonad (p :: k -> k -> Type) (a :: k) (b :: k) where Source Comments #
Constructors
Unit :: forall {k} (a :: k) (b :: k) (p :: k -> k -> Type). (a ~> b) -> FreePromonad p a b | |
Comp :: forall {k} (p :: k -> k -> Type) (b1 :: k) (b :: k) (a :: k). p b1 b -> FreePromonad p a b1 -> FreePromonad p a b |
Instances
Profunctor p => Profunctor (FreePromonad p :: j -> j -> Type) Source Comments # | |
Defined in Proarrow.Profunctor.Free Methods dimap :: forall (c :: j) (a :: j) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> FreePromonad p a b -> FreePromonad p c d Source Comments # (\\) :: forall (a :: j) (b :: j) r. ((Ob a, Ob b) => r) -> FreePromonad p a b -> r Source Comments # | |
Profunctor p => Promonad (FreePromonad p :: k -> k -> Type) Source Comments # | |
Defined in Proarrow.Profunctor.Free Methods id :: forall (a :: k). Ob a => FreePromonad p a a Source Comments # (.) :: forall (b :: k) (c :: k) (a :: k). FreePromonad p b c -> FreePromonad p a b -> FreePromonad p a c Source Comments # | |
Functor (FreePromonad :: (k -> k -> Type) -> k -> k -> Type) Source Comments # | |
Defined in Proarrow.Profunctor.Free Methods map :: forall (a :: k -> k -> Type) (b :: k -> k -> Type). (a ~> b) -> FreePromonad a ~> FreePromonad b Source Comments # |
class (forall k. CategoryOf k => c (f k)) => HasFreeK (c :: Kind -> Constraint) (f :: Kind -> Kind) | c -> f where Source Comments #
Associated Types
type Lift (c :: Kind -> Constraint) (f :: Kind -> Kind) (a :: k) :: f k Source Comments #
type Retract (c :: Kind -> Constraint) (f :: Kind -> Kind) (a :: f k) :: k Source Comments #
Methods
liftK :: forall k (a :: k) (b :: k). CategoryOf k => (a ~> b) -> Lift c f a ~> Lift c f b Source Comments #
retractK :: forall k (a :: f k) (b :: f k). c k => (a ~> b) -> Retract c f a ~> Retract c f b Source Comments #