| Copyright | (c) 2010 2011 Simon Meier |
|---|---|
| License | GPL v3 (see LICENSE) |
| Maintainer | Simon Meier <iridcode@gmail.com> |
| Portability | GHC only |
| Safe Haskell | None |
| Language | Haskell98 |
Control.Monad.Disj
Description
Computations that need perform case distinctions.
- class Monad m => MonadDisj m where
- contradictory :: MonadDisj m => m a
- contradictoryIf :: MonadDisj m => Bool -> m ()
- contradiction :: MonadDisj m => String -> m a
- contradictionIf :: MonadDisj m => Bool -> String -> m ()
- disjunctions :: MonadDisj m => [m a] -> m a
- disjunctionOfList :: MonadDisj m => [a] -> m a
- newtype DisjT m a = DisjT {}
- disjT :: m [a] -> DisjT m a
- runDisjT :: DisjT m a -> m [a]
- module Control.Monad
- module Control.Monad.Fix
- module Control.Monad.Trans
MonadDisj class
class Monad m => MonadDisj m where #
Minimal complete definition
Methods
contradictoryBecause :: Maybe String -> m a #
Mark a contradiction.
disjunction :: m a -> m a -> m a #
Disjoin two computations.
contradictory :: MonadDisj m => m a #
contradictory denotes the logical false.
contradictoryIf :: MonadDisj m => Bool -> m () #
contradictoryIf b is logically equivalent to not b
contradiction :: MonadDisj m => String -> m a #
contradiction reason denotes the logical false, but also
provides the reason as meta-information.
contradictionIf :: MonadDisj m => Bool -> String -> m () #
contradictionIf b reason is logically equivalent to not b, but also
provides the reason as meta-information.
disjunctions :: MonadDisj m => [m a] -> m a #
disjunctions ds builds the disjunction of all the ds values.
disjunctionOfList :: MonadDisj m => [a] -> m a #
disjunctionOfList xs build the disjunction of the values in list xs.
The DisjT monad transformer
A disjunction of atoms of type a.
Instances
| MonadTrans DisjT # | |
| MonadReader r m => MonadReader r (DisjT m) # | |
| Monad m => Monad (DisjT m) # | |
| Functor m => Functor (DisjT m) # | |
| Applicative m => Applicative (DisjT m) # | |
| Monad m => MonadDisj (DisjT m) # | |
Convencience exports
module Control.Monad
module Control.Monad.Fix
module Control.Monad.Trans