StrategyLib-4.0.0.0ContentsIndex
Data.Generics.Strafunski.StrategyLib.MonadicFunctions
Portabilityportable
Stabilityexperimental
MaintainerRalf Laemmel, Joost Visser
Contents
Prototypes for strategy combinators seq, let, choice
Guards and conditionals
Description
This module is part of StrategyLib, a library of functional strategy combinators, including combinators for generic traversal. This module defines auxilliary monadic functions, some of which serve as parametric polymorphic prototypes for actual strategy combinators.
Synopsis
mseq :: Monad m => (a -> m b) -> (b -> m c) -> a -> m c
mlet :: Monad m => (a -> m b) -> (b -> a -> m c) -> a -> m c
mchoice :: MonadPlus m => (a -> m b) -> (a -> m b) -> a -> m b
argtype :: MonadPlus m => (x -> y) -> x -> m ()
valtype :: MonadPlus m => x -> x -> m ()
ifM :: MonadPlus m => m a -> (a -> m c) -> m c -> m c
Prototypes for strategy combinators seq, let, choice
mseq :: Monad m => (a -> m b) -> (b -> m c) -> a -> m c
Sequential composition of monadic functions
mlet :: Monad m => (a -> m b) -> (b -> a -> m c) -> a -> m c
Sequential composition with value passing; a kind of monadic let.
mchoice :: MonadPlus m => (a -> m b) -> (a -> m b) -> a -> m b
Choice combinator for monadic functions
Guards and conditionals
argtype :: MonadPlus m => (x -> y) -> x -> m ()
Type guard described by the argument type of a function.
valtype :: MonadPlus m => x -> x -> m ()
Type guard described by a type of a value.
ifM :: MonadPlus m => m a -> (a -> m c) -> m c -> m c
A kind of monadic conditional.
Produced by Haddock version 0.8