pandora-0.2.8: 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.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.Joint.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.Joint.Transformer.Comonadic

Methods

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

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

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

Defined in Pandora.Paradigm.Primary.Transformer.Construction