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

Plutarch.Extra.Comonad

Synopsis

Documentation

class PFunctor w => PExtend (w :: (S -> Type) -> S -> Type) where Source #

Since: 1.0.0

Methods

pextend :: forall (a :: S -> Type) (b :: S -> Type) (s :: S). (PSubcategory w a, PSubcategory w b) => Term s ((w a :--> b) :--> (w a :--> w b)) Source #

Instances

Instances details
PExtend PIdentity Source #

Since: 1.0.0

Instance details

Defined in Plutarch.Extra.Identity

Methods

pextend :: forall (a :: S -> Type) (b :: S -> Type) (s :: S). (PSubcategory PIdentity a, PSubcategory PIdentity b) => Term s ((PIdentity a :--> b) :--> (PIdentity a :--> PIdentity b)) Source #

PExtend PSum Source #

Since: 1.0.0

Instance details

Defined in Plutarch.Extra.Sum

Methods

pextend :: forall (a :: S -> Type) (b :: S -> Type) (s :: S). (PSubcategory PSum a, PSubcategory PSum b) => Term s ((PSum a :--> b) :--> (PSum a :--> PSum b)) Source #

PExtend PList Source #

Applies the given function over every proper suffix of a PList, from longest to shortest, and returns their results in a PList.

Since: 1.0.0

Instance details

Defined in Plutarch.Extra.Comonad

Methods

pextend :: forall (a :: S -> Type) (b :: S -> Type) (s :: S). (PSubcategory PList a, PSubcategory PList b) => Term s ((PList a :--> b) :--> (PList a :--> PList b)) Source #

PExtend (PPair a) Source #

Since: 1.0.0

Instance details

Defined in Plutarch.Extra.Comonad

Methods

pextend :: forall (a0 :: S -> Type) (b :: S -> Type) (s :: S). (PSubcategory (PPair a) a0, PSubcategory (PPair a) b) => Term s ((PPair a a0 :--> b) :--> (PPair a a0 :--> PPair a b)) Source #

PExtend (PTagged tag) Source #

Since: 1.0.0

Instance details

Defined in Plutarch.Extra.Tagged

Methods

pextend :: forall (a :: S -> Type) (b :: S -> Type) (s :: S). (PSubcategory (PTagged tag) a, PSubcategory (PTagged tag) b) => Term s ((PTagged tag a :--> b) :--> (PTagged tag a :--> PTagged tag b)) Source #

class PExtend w => PComonad (w :: (S -> Type) -> S -> Type) where Source #

Since: 1.0.0

Methods

pextract :: forall (a :: S -> Type) (s :: S). PSubcategory w a => Term s (w a :--> a) Source #

Instances

Instances details
PComonad PIdentity Source #

Since: 1.0.0

Instance details

Defined in Plutarch.Extra.Identity

Methods

pextract :: forall (a :: S -> Type) (s :: S). PSubcategory PIdentity a => Term s (PIdentity a :--> a) Source #

PComonad PSum Source #

Since: 1.0.0

Instance details

Defined in Plutarch.Extra.Sum

Methods

pextract :: forall (a :: S -> Type) (s :: S). PSubcategory PSum a => Term s (PSum a :--> a) Source #

PComonad (PPair a) Source #

Since: 1.0.0

Instance details

Defined in Plutarch.Extra.Comonad

Methods

pextract :: forall (a0 :: S -> Type) (s :: S). PSubcategory (PPair a) a0 => Term s (PPair a a0 :--> a0) Source #

PComonad (PTagged tag) Source #

Since: 1.0.0

Instance details

Defined in Plutarch.Extra.Tagged

Methods

pextract :: forall (a :: S -> Type) (s :: S). PSubcategory (PTagged tag) a => Term s (PTagged tag a :--> a) Source #