Safe Haskell | None |
---|---|
Language | Haskell2010 |
Control.Super.Monad.Alternative
Description
WARNING: This module is an experiment to see how Alternative
may be encoded.
The authors are not aware of any generalized applicatives that make use of Alternative
.
Hence, we do not know if this encoding of it is sufficient.
Therefore, the encoding is not in its final form and may change in the future.
- class Functor f => AlternativeEmpty f where
- type AlternativeEmptyCts f :: Constraint
- class (Functor f, Functor g, Functor h) => AlternativeAlt f g h where
- type AlternativeAltCts f g h :: Constraint
Documentation
class Functor f => AlternativeEmpty f where Source #
The encoding of the empty
operation.
Return
is not a superclass, because the indices or constraints involved
in an AlternativeEmpty
instance may differ from those involved with the Return
instance.
WARNING: This module is an experiment to see how Alternative
may be encoded.
The authors are not aware of any generalized applicatives that make use of Alternative
.
Hence, we do not know if this encoding of it is sufficient.
Therefore, the encoding is not in its final form and may change in the future.
Minimal complete definition
Associated Types
type AlternativeEmptyCts f :: Constraint Source #
Methods
empty :: AlternativeEmptyCts f => f a Source #
Instances
AlternativeEmpty [] Source # | |
AlternativeEmpty Maybe Source # | |
AlternativeEmpty IO Source # | |
AlternativeEmpty Option Source # | |
AlternativeEmpty STM Source # | |
AlternativeEmpty ReadPrec Source # | |
AlternativeEmpty ReadP Source # | |
AlternativeEmpty (U1 *) Source # | |
AlternativeEmpty (Proxy *) Source # | |
AlternativeEmpty f => AlternativeEmpty (Rec1 * f) Source # | |
AlternativeEmpty f => AlternativeEmpty (Alt * f) Source # | |
(AlternativeEmpty f, AlternativeEmpty g) => AlternativeEmpty ((:*:) * f g) Source # | |
(AlternativeEmpty f, AlternativeEmpty f') => AlternativeEmpty (Product * f f') Source # | |
AlternativeEmpty f => AlternativeEmpty (M1 * i c f) Source # | |
(AlternativeEmpty f, AlternativeEmpty g) => AlternativeEmpty ((:.:) * * f g) Source # | |
(AlternativeEmpty f, AlternativeEmpty f') => AlternativeEmpty (Compose * * f f') Source # | |
class (Functor f, Functor g, Functor h) => AlternativeAlt f g h where Source #
The encoding of the <|>
operation.
Applicative
is not a superclass, because the indices or constraints involved
in an Alternative
instance may differ from those involved with the Applicative
instance.
WARNING: This module is an experiment to see how Alternative
may be encoded.
The authors are not aware of any generalized applicatives that make use of Alternative
.
Hence, we do not know if this encoding of it is sufficient.
Therefore, the encoding is not in its final form and may change in the future.
Minimal complete definition
Associated Types
type AlternativeAltCts f g h :: Constraint Source #
Methods
(<|>) :: AlternativeAltCts f g h => f a -> g a -> h a Source #
Instances