pandora-0.3.4: A box of patterns and paradigms
Safe HaskellSafe-Inferred
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

Instances details
Alternative Maybe Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Maybe

Methods

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

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

Alternative (Proxy :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Proxy

Methods

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

alter :: Proxy a -> Proxy a -> Proxy a Source #

Alternative (Validation e) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Validation

Methods

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

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

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

Defined in Pandora.Paradigm.Primary.Transformer.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 (Jack t) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Transformer.Jack

Methods

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

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

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

Defined in Pandora.Paradigm.Primary.Transformer.Instruction

Alternative (Conclusion e) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Conclusion

Methods

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

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

Alternative (Schematic Monad t u) => Alternative (t :> u) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Effect.Transformer.Monadic

Methods

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

alter :: (t :> u) a -> (t :> u) a -> (t :> u) a Source #

Alternative (Schematic Comonad t u) => Alternative (t :< u) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Effect.Transformer.Comonadic

Methods

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

alter :: (t :< u) a -> (t :< u) a -> (t :< u) a Source #

(Applicative t, Covariant t', Alternative u) => Alternative ((t <:<.>:> t') := u) Source # 
Instance details

Defined in Pandora.Paradigm.Schemes.TUT

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 #

(Covariant u, Alternative t) => Alternative (t <:.> u) Source # 
Instance details

Defined in Pandora.Paradigm.Schemes.TU

Methods

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

alter :: (t <:.> u) a -> (t <:.> u) a -> (t <:.> u) a Source #