pandora-0.1.9: A box of patterns and paradigms

Safe HaskellSafe
LanguageHaskell2010

Pandora.Pattern.Functor.Traversable

Synopsis

Documentation

class Covariant t => Traversable t where Source #

Let f :: (Applicative t, Applicative g) => t a -> u a
Let p :: (Pointable t, Pointable g) => t a -> u a
When providing a new instance, you should ensure it satisfies the four laws:
* Naturality of traversing: g . traverse f ≡ traverse (g . f)
* Naturality of sequencing: f . sequence = sequence . comap f
* Preserving point: p (point x) ≡ point x
* Preserving apply: f (x <*> y) ≡ f x <*> f y

Minimal complete definition

(->>)

Methods

(->>) :: (Pointable u, Applicative u) => t a -> (a -> u b) -> (u :.: t) >< b infixl 5 Source #

Infix version of traverse

traverse :: (Pointable u, Applicative u) => (a -> u b) -> t a -> (u :.: t) >< b Source #

Prefix version of ->>

sequence :: (Pointable u, Applicative u) => (t :.: u) a -> (u :.: t) >< a Source #

The dual of distribute

(->>>) :: (Pointable u, Applicative u, Traversable v) => ((v :.: t) >< a) -> (a -> u b) -> (u :.: (v :.: t)) >< b infixl 5 Source #

Infix versions of traverse with various nesting levels

(->>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w) => ((w :.: (v :.: t)) >< a) -> (a -> u b) -> (u :.: (w :.: (v :.: t))) >< b infixl 5 Source #

(->>>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w, Traversable j) => ((j :.: (w :.: (v :.: t))) >< a) -> (a -> u b) -> (u :.: (j :.: (w :.: (v :.: t)))) >< b infixl 5 Source #

Instances
Traversable Wye Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Wye

Methods

(->>) :: (Pointable u, Applicative u) => Wye a -> (a -> u b) -> (u :.: Wye) >< b Source #

traverse :: (Pointable u, Applicative u) => (a -> u b) -> Wye a -> (u :.: Wye) >< b Source #

sequence :: (Pointable u, Applicative u) => (Wye :.: u) a -> (u :.: Wye) >< a Source #

(->>>) :: (Pointable u, Applicative u, Traversable v) => ((v :.: Wye) >< a) -> (a -> u b) -> (u :.: (v :.: Wye)) >< b Source #

(->>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w) => ((w :.: (v :.: Wye)) >< a) -> (a -> u b) -> (u :.: (w :.: (v :.: Wye))) >< b Source #

(->>>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w, Traversable j) => ((j :.: (w :.: (v :.: Wye))) >< a) -> (a -> u b) -> (u :.: (j :.: (w :.: (v :.: Wye)))) >< b Source #

Traversable Edges Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Edges

Methods

(->>) :: (Pointable u, Applicative u) => Edges a -> (a -> u b) -> (u :.: Edges) >< b Source #

traverse :: (Pointable u, Applicative u) => (a -> u b) -> Edges a -> (u :.: Edges) >< b Source #

sequence :: (Pointable u, Applicative u) => (Edges :.: u) a -> (u :.: Edges) >< a Source #

(->>>) :: (Pointable u, Applicative u, Traversable v) => ((v :.: Edges) >< a) -> (a -> u b) -> (u :.: (v :.: Edges)) >< b Source #

(->>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w) => ((w :.: (v :.: Edges)) >< a) -> (a -> u b) -> (u :.: (w :.: (v :.: Edges))) >< b Source #

(->>>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w, Traversable j) => ((j :.: (w :.: (v :.: Edges))) >< a) -> (a -> u b) -> (u :.: (j :.: (w :.: (v :.: Edges)))) >< b Source #

Traversable Maybe Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Maybe

Methods

(->>) :: (Pointable u, Applicative u) => Maybe a -> (a -> u b) -> (u :.: Maybe) >< b Source #

traverse :: (Pointable u, Applicative u) => (a -> u b) -> Maybe a -> (u :.: Maybe) >< b Source #

sequence :: (Pointable u, Applicative u) => (Maybe :.: u) a -> (u :.: Maybe) >< a Source #

(->>>) :: (Pointable u, Applicative u, Traversable v) => ((v :.: Maybe) >< a) -> (a -> u b) -> (u :.: (v :.: Maybe)) >< b Source #

(->>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w) => ((w :.: (v :.: Maybe)) >< a) -> (a -> u b) -> (u :.: (w :.: (v :.: Maybe))) >< b Source #

(->>>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w, Traversable j) => ((j :.: (w :.: (v :.: Maybe))) >< a) -> (a -> u b) -> (u :.: (j :.: (w :.: (v :.: Maybe)))) >< b Source #

Traversable Stack Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Stack

Methods

(->>) :: (Pointable u, Applicative u) => Stack a -> (a -> u b) -> (u :.: Stack) >< b Source #

traverse :: (Pointable u, Applicative u) => (a -> u b) -> Stack a -> (u :.: Stack) >< b Source #

sequence :: (Pointable u, Applicative u) => (Stack :.: u) a -> (u :.: Stack) >< a Source #

(->>>) :: (Pointable u, Applicative u, Traversable v) => ((v :.: Stack) >< a) -> (a -> u b) -> (u :.: (v :.: Stack)) >< b Source #

(->>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w) => ((w :.: (v :.: Stack)) >< a) -> (a -> u b) -> (u :.: (w :.: (v :.: Stack))) >< b Source #

(->>>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w, Traversable j) => ((j :.: (w :.: (v :.: Stack))) >< a) -> (a -> u b) -> (u :.: (j :.: (w :.: (v :.: Stack)))) >< b Source #

Traversable Identity Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Identity

Methods

(->>) :: (Pointable u, Applicative u) => Identity a -> (a -> u b) -> (u :.: Identity) >< b Source #

traverse :: (Pointable u, Applicative u) => (a -> u b) -> Identity a -> (u :.: Identity) >< b Source #

sequence :: (Pointable u, Applicative u) => (Identity :.: u) a -> (u :.: Identity) >< a Source #

(->>>) :: (Pointable u, Applicative u, Traversable v) => ((v :.: Identity) >< a) -> (a -> u b) -> (u :.: (v :.: Identity)) >< b Source #

(->>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w) => ((w :.: (v :.: Identity)) >< a) -> (a -> u b) -> (u :.: (w :.: (v :.: Identity))) >< b Source #

(->>>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w, Traversable j) => ((j :.: (w :.: (v :.: Identity))) >< a) -> (a -> u b) -> (u :.: (j :.: (w :.: (v :.: Identity)))) >< b Source #

Traversable (Variation e) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Variation

Methods

(->>) :: (Pointable u, Applicative u) => Variation e a -> (a -> u b) -> (u :.: Variation e) >< b Source #

traverse :: (Pointable u, Applicative u) => (a -> u b) -> Variation e a -> (u :.: Variation e) >< b Source #

sequence :: (Pointable u, Applicative u) => (Variation e :.: u) a -> (u :.: Variation e) >< a Source #

(->>>) :: (Pointable u, Applicative u, Traversable v) => ((v :.: Variation e) >< a) -> (a -> u b) -> (u :.: (v :.: Variation e)) >< b Source #

(->>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w) => ((w :.: (v :.: Variation e)) >< a) -> (a -> u b) -> (u :.: (w :.: (v :.: Variation e))) >< b Source #

(->>>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w, Traversable j) => ((j :.: (w :.: (v :.: Variation e))) >< a) -> (a -> u b) -> (u :.: (j :.: (w :.: (v :.: Variation e)))) >< b Source #

Traversable t => Traversable (Jet t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Jet

Methods

(->>) :: (Pointable u, Applicative u) => Jet t a -> (a -> u b) -> (u :.: Jet t) >< b Source #

traverse :: (Pointable u, Applicative u) => (a -> u b) -> Jet t a -> (u :.: Jet t) >< b Source #

sequence :: (Pointable u, Applicative u) => (Jet t :.: u) a -> (u :.: Jet t) >< a Source #

(->>>) :: (Pointable u, Applicative u, Traversable v) => ((v :.: Jet t) >< a) -> (a -> u b) -> (u :.: (v :.: Jet t)) >< b Source #

(->>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w) => ((w :.: (v :.: Jet t)) >< a) -> (a -> u b) -> (u :.: (w :.: (v :.: Jet t))) >< b Source #

(->>>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w, Traversable j) => ((j :.: (w :.: (v :.: Jet t))) >< a) -> (a -> u b) -> (u :.: (j :.: (w :.: (v :.: Jet t)))) >< b Source #

Traversable t => Traversable (Free t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Free

Methods

(->>) :: (Pointable u, Applicative u) => Free t a -> (a -> u b) -> (u :.: Free t) >< b Source #

traverse :: (Pointable u, Applicative u) => (a -> u b) -> Free t a -> (u :.: Free t) >< b Source #

sequence :: (Pointable u, Applicative u) => (Free t :.: u) a -> (u :.: Free t) >< a Source #

(->>>) :: (Pointable u, Applicative u, Traversable v) => ((v :.: Free t) >< a) -> (a -> u b) -> (u :.: (v :.: Free t)) >< b Source #

(->>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w) => ((w :.: (v :.: Free t)) >< a) -> (a -> u b) -> (u :.: (w :.: (v :.: Free t))) >< b Source #

(->>>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w, Traversable j) => ((j :.: (w :.: (v :.: Free t))) >< a) -> (a -> u b) -> (u :.: (j :.: (w :.: (v :.: Free t)))) >< b Source #

Traversable (Validation e) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Validation

Methods

(->>) :: (Pointable u, Applicative u) => Validation e a -> (a -> u b) -> (u :.: Validation e) >< b Source #

traverse :: (Pointable u, Applicative u) => (a -> u b) -> Validation e a -> (u :.: Validation e) >< b Source #

sequence :: (Pointable u, Applicative u) => (Validation e :.: u) a -> (u :.: Validation e) >< a Source #

(->>>) :: (Pointable u, Applicative u, Traversable v) => ((v :.: Validation e) >< a) -> (a -> u b) -> (u :.: (v :.: Validation e)) >< b Source #

(->>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w) => ((w :.: (v :.: Validation e)) >< a) -> (a -> u b) -> (u :.: (w :.: (v :.: Validation e))) >< b Source #

(->>>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w, Traversable j) => ((j :.: (w :.: (v :.: Validation e))) >< a) -> (a -> u b) -> (u :.: (j :.: (w :.: (v :.: Validation e)))) >< b Source #

Traversable t => Traversable (Twister t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Twister

Methods

(->>) :: (Pointable u, Applicative u) => Twister t a -> (a -> u b) -> (u :.: Twister t) >< b Source #

traverse :: (Pointable u, Applicative u) => (a -> u b) -> Twister t a -> (u :.: Twister t) >< b Source #

sequence :: (Pointable u, Applicative u) => (Twister t :.: u) a -> (u :.: Twister t) >< a Source #

(->>>) :: (Pointable u, Applicative u, Traversable v) => ((v :.: Twister t) >< a) -> (a -> u b) -> (u :.: (v :.: Twister t)) >< b Source #

(->>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w) => ((w :.: (v :.: Twister t)) >< a) -> (a -> u b) -> (u :.: (w :.: (v :.: Twister t))) >< b Source #

(->>>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w, Traversable j) => ((j :.: (w :.: (v :.: Twister t))) >< a) -> (a -> u b) -> (u :.: (j :.: (w :.: (v :.: Twister t)))) >< b Source #

Traversable (Product a) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Product

Methods

(->>) :: (Pointable u, Applicative u) => Product a a0 -> (a0 -> u b) -> (u :.: Product a) >< b Source #

traverse :: (Pointable u, Applicative u) => (a0 -> u b) -> Product a a0 -> (u :.: Product a) >< b Source #

sequence :: (Pointable u, Applicative u) => (Product a :.: u) a0 -> (u :.: Product a) >< a0 Source #

(->>>) :: (Pointable u, Applicative u, Traversable v) => ((v :.: Product a) >< a0) -> (a0 -> u b) -> (u :.: (v :.: Product a)) >< b Source #

(->>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w) => ((w :.: (v :.: Product a)) >< a0) -> (a0 -> u b) -> (u :.: (w :.: (v :.: Product a))) >< b Source #

(->>>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w, Traversable j) => ((j :.: (w :.: (v :.: Product a))) >< a0) -> (a0 -> u b) -> (u :.: (j :.: (w :.: (v :.: Product a)))) >< b Source #

Traversable t => Traversable (Jack t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Jack

Methods

(->>) :: (Pointable u, Applicative u) => Jack t a -> (a -> u b) -> (u :.: Jack t) >< b Source #

traverse :: (Pointable u, Applicative u) => (a -> u b) -> Jack t a -> (u :.: Jack t) >< b Source #

sequence :: (Pointable u, Applicative u) => (Jack t :.: u) a -> (u :.: Jack t) >< a Source #

(->>>) :: (Pointable u, Applicative u, Traversable v) => ((v :.: Jack t) >< a) -> (a -> u b) -> (u :.: (v :.: Jack t)) >< b Source #

(->>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w) => ((w :.: (v :.: Jack t)) >< a) -> (a -> u b) -> (u :.: (w :.: (v :.: Jack t))) >< b Source #

(->>>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w, Traversable j) => ((j :.: (w :.: (v :.: Jack t))) >< a) -> (a -> u b) -> (u :.: (j :.: (w :.: (v :.: Jack t)))) >< b Source #

Traversable (Conclusion e) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Conclusion

Methods

(->>) :: (Pointable u, Applicative u) => Conclusion e a -> (a -> u b) -> (u :.: Conclusion e) >< b Source #

traverse :: (Pointable u, Applicative u) => (a -> u b) -> Conclusion e a -> (u :.: Conclusion e) >< b Source #

sequence :: (Pointable u, Applicative u) => (Conclusion e :.: u) a -> (u :.: Conclusion e) >< a Source #

(->>>) :: (Pointable u, Applicative u, Traversable v) => ((v :.: Conclusion e) >< a) -> (a -> u b) -> (u :.: (v :.: Conclusion e)) >< b Source #

(->>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w) => ((w :.: (v :.: Conclusion e)) >< a) -> (a -> u b) -> (u :.: (w :.: (v :.: Conclusion e))) >< b Source #

(->>>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w, Traversable j) => ((j :.: (w :.: (v :.: Conclusion e))) >< a) -> (a -> u b) -> (u :.: (j :.: (w :.: (v :.: Conclusion e)))) >< b Source #

Traversable (Tagged tag) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Tagged

Methods

(->>) :: (Pointable u, Applicative u) => Tagged tag a -> (a -> u b) -> (u :.: Tagged tag) >< b Source #

traverse :: (Pointable u, Applicative u) => (a -> u b) -> Tagged tag a -> (u :.: Tagged tag) >< b Source #

sequence :: (Pointable u, Applicative u) => (Tagged tag :.: u) a -> (u :.: Tagged tag) >< a Source #

(->>>) :: (Pointable u, Applicative u, Traversable v) => ((v :.: Tagged tag) >< a) -> (a -> u b) -> (u :.: (v :.: Tagged tag)) >< b Source #

(->>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w) => ((w :.: (v :.: Tagged tag)) >< a) -> (a -> u b) -> (u :.: (w :.: (v :.: Tagged tag))) >< b Source #

(->>>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w, Traversable j) => ((j :.: (w :.: (v :.: Tagged tag))) >< a) -> (a -> u b) -> (u :.: (j :.: (w :.: (v :.: Tagged tag)))) >< b Source #

Traversable (Constant a :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Constant

Methods

(->>) :: (Pointable u, Applicative u) => Constant a a0 -> (a0 -> u b) -> (u :.: Constant a) >< b Source #

traverse :: (Pointable u, Applicative u) => (a0 -> u b) -> Constant a a0 -> (u :.: Constant a) >< b Source #

sequence :: (Pointable u, Applicative u) => (Constant a :.: u) a0 -> (u :.: Constant a) >< a0 Source #

(->>>) :: (Pointable u, Applicative u, Traversable v) => ((v :.: Constant a) >< a0) -> (a0 -> u b) -> (u :.: (v :.: Constant a)) >< b Source #

(->>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w) => ((w :.: (v :.: Constant a)) >< a0) -> (a0 -> u b) -> (u :.: (w :.: (v :.: Constant a))) >< b Source #

(->>>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w, Traversable j) => ((j :.: (w :.: (v :.: Constant a))) >< a0) -> (a0 -> u b) -> (u :.: (j :.: (w :.: (v :.: Constant a)))) >< b Source #

(Traversable t, Traversable u) => Traversable (TU Co Co t u) Source # 
Instance details

Defined in Pandora.Pattern.Junction.Schemes.TU

Methods

(->>) :: (Pointable u0, Applicative u0) => TU Co Co t u a -> (a -> u0 b) -> (u0 :.: TU Co Co t u) >< b Source #

traverse :: (Pointable u0, Applicative u0) => (a -> u0 b) -> TU Co Co t u a -> (u0 :.: TU Co Co t u) >< b Source #

sequence :: (Pointable u0, Applicative u0) => (TU Co Co t u :.: u0) a -> (u0 :.: TU Co Co t u) >< a Source #

(->>>) :: (Pointable u0, Applicative u0, Traversable v) => ((v :.: TU Co Co t u) >< a) -> (a -> u0 b) -> (u0 :.: (v :.: TU Co Co t u)) >< b Source #

(->>>>) :: (Pointable u0, Applicative u0, Traversable v, Traversable w) => ((w :.: (v :.: TU Co Co t u)) >< a) -> (a -> u0 b) -> (u0 :.: (w :.: (v :.: TU Co Co t u))) >< b Source #

(->>>>>) :: (Pointable u0, Applicative u0, Traversable v, Traversable w, Traversable j) => ((j :.: (w :.: (v :.: TU Co Co t u))) >< a) -> (a -> u0 b) -> (u0 :.: (j :.: (w :.: (v :.: TU Co Co t u)))) >< b Source #

(Traversable (t u), Traversable u) => Traversable (UTU Co Co t u) Source # 
Instance details

Defined in Pandora.Pattern.Junction.Schemes.UTU

Methods

(->>) :: (Pointable u0, Applicative u0) => UTU Co Co t u a -> (a -> u0 b) -> (u0 :.: UTU Co Co t u) >< b Source #

traverse :: (Pointable u0, Applicative u0) => (a -> u0 b) -> UTU Co Co t u a -> (u0 :.: UTU Co Co t u) >< b Source #

sequence :: (Pointable u0, Applicative u0) => (UTU Co Co t u :.: u0) a -> (u0 :.: UTU Co Co t u) >< a Source #

(->>>) :: (Pointable u0, Applicative u0, Traversable v) => ((v :.: UTU Co Co t u) >< a) -> (a -> u0 b) -> (u0 :.: (v :.: UTU Co Co t u)) >< b Source #

(->>>>) :: (Pointable u0, Applicative u0, Traversable v, Traversable w) => ((w :.: (v :.: UTU Co Co t u)) >< a) -> (a -> u0 b) -> (u0 :.: (w :.: (v :.: UTU Co Co t u))) >< b Source #

(->>>>>) :: (Pointable u0, Applicative u0, Traversable v, Traversable w, Traversable j) => ((j :.: (w :.: (v :.: UTU Co Co t u))) >< a) -> (a -> u0 b) -> (u0 :.: (j :.: (w :.: (v :.: UTU Co Co t u)))) >< b Source #

(Traversable t, Traversable u) => Traversable (UT Co Co t u) Source # 
Instance details

Defined in Pandora.Pattern.Junction.Schemes.UT

Methods

(->>) :: (Pointable u0, Applicative u0) => UT Co Co t u a -> (a -> u0 b) -> (u0 :.: UT Co Co t u) >< b Source #

traverse :: (Pointable u0, Applicative u0) => (a -> u0 b) -> UT Co Co t u a -> (u0 :.: UT Co Co t u) >< b Source #

sequence :: (Pointable u0, Applicative u0) => (UT Co Co t u :.: u0) a -> (u0 :.: UT Co Co t u) >< a Source #

(->>>) :: (Pointable u0, Applicative u0, Traversable v) => ((v :.: UT Co Co t u) >< a) -> (a -> u0 b) -> (u0 :.: (v :.: UT Co Co t u)) >< b Source #

(->>>>) :: (Pointable u0, Applicative u0, Traversable v, Traversable w) => ((w :.: (v :.: UT Co Co t u)) >< a) -> (a -> u0 b) -> (u0 :.: (w :.: (v :.: UT Co Co t u))) >< b Source #

(->>>>>) :: (Pointable u0, Applicative u0, Traversable v, Traversable w, Traversable j) => ((j :.: (w :.: (v :.: UT Co Co t u))) >< a) -> (a -> u0 b) -> (u0 :.: (j :.: (w :.: (v :.: UT Co Co t u)))) >< b Source #

(Traversable t, Traversable u, Traversable v) => Traversable (TUV Co Co Co t u v) Source # 
Instance details

Defined in Pandora.Pattern.Junction.Schemes.TUV

Methods

(->>) :: (Pointable u0, Applicative u0) => TUV Co Co Co t u v a -> (a -> u0 b) -> (u0 :.: TUV Co Co Co t u v) >< b Source #

traverse :: (Pointable u0, Applicative u0) => (a -> u0 b) -> TUV Co Co Co t u v a -> (u0 :.: TUV Co Co Co t u v) >< b Source #

sequence :: (Pointable u0, Applicative u0) => (TUV Co Co Co t u v :.: u0) a -> (u0 :.: TUV Co Co Co t u v) >< a Source #

(->>>) :: (Pointable u0, Applicative u0, Traversable v0) => ((v0 :.: TUV Co Co Co t u v) >< a) -> (a -> u0 b) -> (u0 :.: (v0 :.: TUV Co Co Co t u v)) >< b Source #

(->>>>) :: (Pointable u0, Applicative u0, Traversable v0, Traversable w) => ((w :.: (v0 :.: TUV Co Co Co t u v)) >< a) -> (a -> u0 b) -> (u0 :.: (w :.: (v0 :.: TUV Co Co Co t u v))) >< b Source #

(->>>>>) :: (Pointable u0, Applicative u0, Traversable v0, Traversable w, Traversable j) => ((j :.: (w :.: (v0 :.: TUV Co Co Co t u v))) >< a) -> (a -> u0 b) -> (u0 :.: (j :.: (w :.: (v0 :.: TUV Co Co Co t u v)))) >< b Source #

(Traversable t, Traversable u, Traversable v, Traversable w) => Traversable (TUVW Co Co Co Co t u v w) Source # 
Instance details

Defined in Pandora.Pattern.Junction.Schemes.TUVW

Methods

(->>) :: (Pointable u0, Applicative u0) => TUVW Co Co Co Co t u v w a -> (a -> u0 b) -> (u0 :.: TUVW Co Co Co Co t u v w) >< b Source #

traverse :: (Pointable u0, Applicative u0) => (a -> u0 b) -> TUVW Co Co Co Co t u v w a -> (u0 :.: TUVW Co Co Co Co t u v w) >< b Source #

sequence :: (Pointable u0, Applicative u0) => (TUVW Co Co Co Co t u v w :.: u0) a -> (u0 :.: TUVW Co Co Co Co t u v w) >< a Source #

(->>>) :: (Pointable u0, Applicative u0, Traversable v0) => ((v0 :.: TUVW Co Co Co Co t u v w) >< a) -> (a -> u0 b) -> (u0 :.: (v0 :.: TUVW Co Co Co Co t u v w)) >< b Source #

(->>>>) :: (Pointable u0, Applicative u0, Traversable v0, Traversable w0) => ((w0 :.: (v0 :.: TUVW Co Co Co Co t u v w)) >< a) -> (a -> u0 b) -> (u0 :.: (w0 :.: (v0 :.: TUVW Co Co Co Co t u v w))) >< b Source #

(->>>>>) :: (Pointable u0, Applicative u0, Traversable v0, Traversable w0, Traversable j) => ((j :.: (w0 :.: (v0 :.: TUVW Co Co Co Co t u v w))) >< a) -> (a -> u0 b) -> (u0 :.: (j :.: (w0 :.: (v0 :.: TUVW Co Co Co Co t u v w)))) >< b Source #