| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Plutarch.Extra.Star
Type
newtype PStar (f :: (S -> Type) -> S -> Type) (a :: S -> Type) (b :: S -> Type) (s :: S) Source #
The (profunctorial) view over a Kleisli arrow. Its name comes from category
theory, as it is one of the ways we can lift a functor (in this case, f)
into a profunctor.
This essentially enables us to work with a :--> f b using PSemigroupoid
and PCategory operations as easily as we do a :--> b, provided that f
is at least a PBind. With the addition of a PApplicative (for identities),
we become a full PCategory. Furthermore, we can also compose freely with
ordinary Plutarch :--> at both ends of a PStar, provided f is at
least PFunctor.
Since: 3.0.1
Instances
| (PApplicative f, PBind f) => PCategory (PStar f) Source # | Strengthening |
Defined in Plutarch.Extra.Star | |
| PBind f => PSemigroupoid (PStar f) Source # | Strengthening Since: 3.0.1 |
Defined in Plutarch.Extra.Star | |
| PFunctor f => PProfunctor (PStar f) Source # | If Since: 3.1.0 |
Defined in Plutarch.Extra.Star Associated Types type PContraSubcategory (PStar f) :: (S -> Type) -> Constraint Source # type PCoSubcategory (PStar f) :: (S -> Type) -> Constraint Source # Methods pdimap :: forall (a :: S -> Type) (b :: S -> Type) (c :: S -> Type) (d :: S -> Type) (s :: S). (PContraSubcategory (PStar f) a, PContraSubcategory (PStar f) b, PCoSubcategory (PStar f) c, PCoSubcategory (PStar f) d) => Term s ((a :--> b) :--> ((c :--> d) :--> (PStar f b c :--> PStar f a d))) Source # plmap :: forall (a :: S -> Type) (b :: S -> Type) (c :: S -> Type) (s :: S). (PContraSubcategory (PStar f) a, PContraSubcategory (PStar f) b, PCoSubcategory (PStar f) c) => Term s ((a :--> b) :--> (PStar f b c :--> PStar f a c)) Source # prmap :: forall (a :: S -> Type) (c :: S -> Type) (d :: S -> Type) (s :: S). (PContraSubcategory (PStar f) a, PCoSubcategory (PStar f) c, PCoSubcategory (PStar f) d) => Term s ((c :--> d) :--> (PStar f a c :--> PStar f a d)) Source # | |
| PApplicative f => PApplicative (PStar f a) Source # | Strengthening to Since: 3.0.1 |
| PApply f => PApply (PStar f a) Source # | Strengthening to Since: 3.0.1 |
Defined in Plutarch.Extra.Star | |
| PBind f => PBind (PStar f a) Source # | Strengthening to Since: 3.0.1 |
| PFunctor f => PFunctor (PStar f a) Source # | This essentially makes Since: 3.0.1 |
Defined in Plutarch.Extra.Star Associated Types type PSubcategory (PStar f a) :: (S -> Type) -> Constraint Source # Methods pfmap :: forall (a0 :: S -> Type) (b :: S -> Type) (s :: S). (PSubcategory (PStar f a) a0, PSubcategory (PStar f a) b) => Term s ((a0 :--> b) :--> (PStar f a a0 :--> PStar f a b)) Source # pfconst :: forall (a0 :: S -> Type) (b :: S -> Type) (s :: S). (PSubcategory (PStar f a) a0, PSubcategory (PStar f a) b) => Term s (a0 :--> (PStar f a b :--> PStar f a a0)) Source # | |
| DerivePlutusType (PStar f a b) Source # | Since: 3.0.1 |
Defined in Plutarch.Extra.Star | |
| PlutusType (PStar f a b) Source # | |
Defined in Plutarch.Extra.Star | |
| Generic (PStar f a b s) Source # | |
| type PCoSubcategory (PStar f) Source # | |
Defined in Plutarch.Extra.Star | |
| type PContraSubcategory (PStar f) Source # | |
Defined in Plutarch.Extra.Star | |
| type PSubcategory (PStar f a) Source # | |
Defined in Plutarch.Extra.Star | |
| type DPTStrat (PStar f a b) Source # | |
Defined in Plutarch.Extra.Star | |
| type PContravariant' (PStar f a b) Source # | |
Defined in Plutarch.Extra.Star | |
| type PCovariant' (PStar f a b) Source # | |
Defined in Plutarch.Extra.Star | |
| type PInner (PStar f a b) Source # | Since: 3.0.1 |
Defined in Plutarch.Extra.Star | |
| type PVariant' (PStar f a b) Source # | |
| type Rep (PStar f a b s) Source # | Since: 3.0.1 |
Defined in Plutarch.Extra.Star | |