Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
class (CategoryOf k, Representable (Free ob), forall (b :: k). Ob b => ob (Free ob % b)) => HasFree (ob :: k -> Constraint) where Source Comments #
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 #
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 => Representable (FreeSub ob :: SUBCAT ob -> j -> Type) Source Comments # | |
Defined in Proarrow.Profunctor.Free 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 # | |
HasFree ob => Profunctor (FreeSub ob :: SUBCAT ob -> k -> Type) Source Comments # | |
type (FreeSub ob :: SUBCAT ob -> j -> Type) % (a :: j) Source Comments # | |
data Ap (f :: k -> Type) (a :: k) where Source Comments #
Pure :: forall {k} (a :: k) (f :: k -> Type). El 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 #
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 :: k -> k -> Type) Source Comments # | |
Defined in Proarrow.Profunctor.Free dimap :: forall (c :: k) (a :: k) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> FreePromonad p a b -> FreePromonad p c d Source Comments # (\\) :: forall (a :: k) (b :: k) 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 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 map :: forall (a :: k -> k -> Type) (b :: k -> k -> Type). (a ~> b) -> FreePromonad a ~> FreePromonad b Source Comments # |
class Ob (Lift c f a) => ObLift (c :: Kind -> Constraint) (f :: Kind -> Kind) k (a :: k) Source Comments #
class Ob (Retract c f a) => ObRetract (c :: Kind -> Constraint) (f :: Kind -> Kind) k (a :: f k) Source Comments #
class (forall (a :: k). ObLift c f k a, forall (a :: f k). ObRetract c f k a) => ObLiftRetract (c :: Kind -> Constraint) (f :: Kind -> Kind) k Source Comments #
Instances
(forall (a :: k). ObLift c f k a, forall (a :: f k). ObRetract c f k a) => ObLiftRetract c f k Source Comments # | |
Defined in Proarrow.Profunctor.Free |
class (forall k. CategoryOf k => c (f k), forall k. ObLiftRetract c f k) => HasFreeK (c :: Kind -> Constraint) (f :: Kind -> Kind) | c -> f where Source Comments #
data FreeMonoid (p :: k +-> k) (a :: k) (b :: k) where Source Comments #
Nil :: forall {k} (a :: k) (b :: k) (p :: k +-> k). (Ob a, Ob b) => FreeMonoid p a b | |
Cons :: forall {k} (p :: k +-> k) (a :: k) (b :: k). p a b -> FreeMonoid p a b -> FreeMonoid p a b |
Instances
Profunctor p => Profunctor (FreeMonoid p :: k -> k -> Type) Source Comments # | |
Defined in Proarrow.Profunctor.Free dimap :: forall (c :: k) (a :: k) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> FreeMonoid p a b -> FreeMonoid p c d Source Comments # (\\) :: forall (a :: k) (b :: k) r. ((Ob a, Ob b) => r) -> FreeMonoid p a b -> r Source Comments # | |
Profunctor p => Monoid ('PR (FreeMonoid p) :: PROD (k -> k -> Type)) Source Comments # | |
Defined in Proarrow.Profunctor.Free |
data family FreeMonoidF (b :: k) :: k Source Comments #
Instances
(Cartesian k, Representable (FreeMonoid ((~>) :: CAT k)), Ob b, (FreeMonoid ((~>) :: CAT k) % b) ~ FreeMonoidF b, Ob (FreeMonoid ((~>) :: CAT k) % b)) => Monoid (FreeMonoidF b :: k) Source Comments # | |
Defined in Proarrow.Profunctor.Free mempty :: (Unit :: k) ~> FreeMonoidF b Source Comments # mappend :: (FreeMonoidF b ** FreeMonoidF b) ~> FreeMonoidF b Source Comments # |
class Monoid (FreeMonoid ((~>) :: CAT k) % b) => FreeMonoidIsMonoid (b :: k) Source Comments #
Instances
Monoid (FreeMonoid ((~>) :: CAT k) % b) => FreeMonoidIsMonoid (b :: k) Source Comments # | |
Defined in Proarrow.Profunctor.Free |