Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
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 type PContraSubcategory (PStar f) :: (S -> Type) -> Constraint Source # type PCoSubcategory (PStar f) :: (S -> Type) -> Constraint Source # 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 |
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 type PSubcategory (PStar f a) :: (S -> Type) -> Constraint Source # 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 |