pandora-0.1.3: A box of patterns and paradigms

Safe HaskellSafe
LanguageHaskell2010

Pandora.Pattern.Functor.Alternative

Synopsis

Documentation

class Covariant t => Alternative t where Source #

When providing a new instance, you should ensure it satisfies the two laws:
* Associativity of <+>: (x <+> y) <+> z ≡ x <+> (y <+> z)
* Left-distributes <$> over <+>: f <$> (x <+> y) ≡ (f <$> x) <+> (f <$> y)

Minimal complete definition

(<+>)

Methods

(<+>) :: t a -> t a -> t a infixl 3 Source #

Infix version of alter

alter :: t a -> t a -> t a Source #

Prefix version of <+>

Instances
Alternative Maybe Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Maybe

Methods

(<+>) :: Maybe a -> Maybe a -> Maybe a Source #

alter :: Maybe a -> Maybe a -> Maybe a Source #

Alternative t => Alternative (Yoneda t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Yoneda

Methods

(<+>) :: Yoneda t a -> Yoneda t a -> Yoneda t a Source #

alter :: Yoneda t a -> Yoneda t a -> Yoneda t a Source #

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

Defined in Pandora.Paradigm.Basis.Free

Methods

(<+>) :: Free t a -> Free t a -> Free t a Source #

alter :: Free t a -> Free t a -> Free t a Source #

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

Defined in Pandora.Paradigm.Basis.Jack

Methods

(<+>) :: Jack t a -> Jack t a -> Jack t a Source #

alter :: Jack t a -> Jack t a -> Jack t a Source #

Alternative (Conclusion e) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Conclusion

Methods

(<+>) :: Conclusion e a -> Conclusion e a -> Conclusion e a Source #

alter :: Conclusion e a -> Conclusion e a -> Conclusion e a Source #

Alternative t => Alternative (Environmental e t) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Environmental

Methods

(<+>) :: Environmental e t a -> Environmental e t a -> Environmental e t a Source #

alter :: Environmental e t a -> Environmental e t a -> Environmental e t a Source #

(Covariant (t u), Alternative u) => Alternative (Y t u) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

(<+>) :: Y t u a -> Y t u a -> Y t u a Source #

alter :: Y t u a -> Y t u a -> Y t u a Source #

(Covariant t, Alternative u) => Alternative (T t u) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

(<+>) :: T t u a -> T t u a -> T t u a Source #

alter :: T t u a -> T t u a -> T t u a Source #

(Alternative t, Covariant u) => Alternative (U Co Co t u) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Composition

Methods

(<+>) :: U Co Co t u a -> U Co Co t u a -> U Co Co t u a Source #

alter :: U Co Co t u a -> U Co Co t u a -> U Co Co t u a Source #

(Alternative t, Covariant u, Covariant v) => Alternative (UU Co Co Co t u v) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Composition

Methods

(<+>) :: UU Co Co Co t u v a -> UU Co Co Co t u v a -> UU Co Co Co t u v a Source #

alter :: UU Co Co Co t u v a -> UU Co Co Co t u v a -> UU Co Co Co t u v a Source #

(Alternative t, Covariant u, Covariant v, Covariant w) => Alternative (UUU Co Co Co Co t u v w) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Composition

Methods

(<+>) :: UUU Co Co Co Co t u v w a -> UUU Co Co Co Co t u v w a -> UUU Co Co Co Co t u v w a Source #

alter :: UUU Co Co Co Co t u v w a -> UUU Co Co Co Co t u v w a -> UUU Co Co Co Co t u v w a Source #