Copyright | (c) 2005, Amr Sabry, Chung-chieh Shan, Oleg Kiselyov, and Daniel P. Friedman |
---|---|
License | GPLv2 or higher, see LICENSE.txt |
Maintainer | Mihai.Codescu@dfki.de |
Stability | provisional |
Portability | portable |
Safe Haskell | Safe-Inferred |
Logic Monad Transformer: MonadPlusT with interleave, bindi, ifte and once Definition and implementation of generic operations, in terms of msplit
Documentation
class MonadTrans t => LogicT t where
msplit :: (Monad m, MonadPlus (t m)) => t m a -> t m (Maybe (a, t m a))
interleave :: (Monad m, MonadPlus (t m)) => t m a -> t m a -> t m a
gsuccess :: (Monad m, MonadPlus (t m)) => a -> t m a
gfail :: (Monad m, MonadPlus (t m)) => t m a
bindi :: (Monad m, MonadPlus (t m)) => t m a -> (a -> t m b) -> t m b
ifte :: (Monad m, MonadPlus (t m)) => t m a -> (a -> t m b) -> t m b -> t m b