liqwid-plutarch-extra-3.21.1: A collection of Plutarch extras from Liqwid Labs
Safe HaskellSafe-Inferred
LanguageHaskell2010

Plutarch.Extra.Category

Synopsis

Documentation

class PProfunctor p => PSemigroupoid (p :: (S -> Type) -> (S -> Type) -> S -> Type) where Source #

Since: 1.0.0

Methods

(#>>>) :: forall (a :: S -> Type) (b :: S -> Type) (c :: S -> Type) (s :: S). (PContraSubcategory p a, PContraSubcategory p b, PCoSubcategory p b, PCoSubcategory p c) => Term s (p a b) -> Term s (p b c) -> Term s (p a c) Source #

Instances

Instances details
PSemigroupoid (:-->) Source #

Since: 1.0.0

Instance details

Defined in Plutarch.Extra.Category

Methods

(#>>>) :: forall (a :: S -> Type) (b :: S -> Type) (c :: S -> Type) (s :: S). (PContraSubcategory (:-->) a, PContraSubcategory (:-->) b, PCoSubcategory (:-->) b, PCoSubcategory (:-->) c) => Term s (a :--> b) -> Term s (b :--> c) -> Term s (a :--> c) Source #

PBind f => PSemigroupoid (PStar f) Source #

Strengthening f to PBind allows us to compose PStar f computations like ordinary Plutarch functions.

Since: 3.0.1

Instance details

Defined in Plutarch.Extra.Star

Methods

(#>>>) :: forall (a :: S -> Type) (b :: S -> Type) (c :: S -> Type) (s :: S). (PContraSubcategory (PStar f) a, PContraSubcategory (PStar f) b, PCoSubcategory (PStar f) b, PCoSubcategory (PStar f) c) => Term s (PStar f a b) -> Term s (PStar f b c) -> Term s (PStar f a c) Source #

class PSemigroupoid p => PCategory (p :: (S -> Type) -> (S -> Type) -> S -> Type) where Source #

Since: 1.0.0

Methods

pidentity :: forall (a :: S -> Type) (s :: S). (PContraSubcategory p a, PCoSubcategory p a) => Term s (p a a) Source #

Instances

Instances details
PCategory (:-->) Source #

Since: 1.0.0

Instance details

Defined in Plutarch.Extra.Category

Methods

pidentity :: forall (a :: S -> Type) (s :: S). (PContraSubcategory (:-->) a, PCoSubcategory (:-->) a) => Term s (a :--> a) Source #

(PApplicative f, PBind f) => PCategory (PStar f) Source #

Strengthening f by adding PApplicative gives us an identity, which makes us a full category, on par with Plut as evidenced by :-->. , @since 3.0.1

Instance details

Defined in Plutarch.Extra.Star

Methods

pidentity :: forall (a :: S -> Type) (s :: S). (PContraSubcategory (PStar f) a, PCoSubcategory (PStar f) a) => Term s (PStar f a a) Source #

pconst :: forall (p :: (S -> Type) -> (S -> Type) -> S -> Type) (a :: S -> Type) (b :: S -> Type) (s :: S). (PContraSubcategory p b, PCategory p, PCoSubcategory p b, PCoSubcategory p a) => Term s (a :--> p b a) Source #

Since: 1.0.0

(#<<<) :: forall (p :: (S -> Type) -> (S -> Type) -> S -> Type) (a :: S -> Type) (b :: S -> Type) (c :: S -> Type) (s :: S). (PSemigroupoid p, PContraSubcategory p a, PContraSubcategory p b, PCoSubcategory p b, PCoSubcategory p c) => Term s (p b c) -> Term s (p a b) -> Term s (p a c) infixr 1 Source #

Since: 1.0.0