transformers-0.5.6.2: Concrete functor and monad transformers
Copyright (c) Ross Paterson 2017
License BSD-style (see the file LICENSE)
Maintainer R.Paterson@city.ac.uk
Stability experimental
Portability portable
Safe Haskell Safe
Language Haskell98

Control.Monad.Trans.Select

Description

Selection monad transformer, modelling search algorithms.

Synopsis

The Select monad

select :: ((a -> r) -> a) -> Select r a Source #

Constructor for computations in the selection monad.

runSelect :: Select r a -> (a -> r) -> a Source #

Runs a Select computation with a function for evaluating answers to select a particular answer. (The inverse of select .)

mapSelect :: (a -> a) -> Select r a -> Select r a Source #

Apply a function to transform the result of a selection computation.

The SelectT monad transformer

newtype SelectT r m a Source #

Selection monad transformer.

SelectT is not a functor on the category of monads, and many operations cannot be lifted through it.

Constructors

SelectT ((a -> m r) -> m a)

Instances

Instances details
MonadTrans ( SelectT r) Source #
Instance details

Defined in Control.Monad.Trans.Select

Methods

lift :: Monad m => m a -> SelectT r m a Source #

Monad m => Monad ( SelectT r m) Source #
Instance details

Defined in Control.Monad.Trans.Select

Functor m => Functor ( SelectT r m) Source #
Instance details

Defined in Control.Monad.Trans.Select

Methods

fmap :: (a -> b) -> SelectT r m a -> SelectT r m b Source #

(<$) :: a -> SelectT r m b -> SelectT r m a Source #

MonadFail m => MonadFail ( SelectT r m) Source #
Instance details

Defined in Control.Monad.Trans.Select

( Functor m, Monad m) => Applicative ( SelectT r m) Source #
Instance details

Defined in Control.Monad.Trans.Select

MonadIO m => MonadIO ( SelectT r m) Source #
Instance details

Defined in Control.Monad.Trans.Select

( Functor m, MonadPlus m) => Alternative ( SelectT r m) Source #
Instance details

Defined in Control.Monad.Trans.Select

MonadPlus m => MonadPlus ( SelectT r m) Source #
Instance details

Defined in Control.Monad.Trans.Select

runSelectT :: SelectT r m a -> (a -> m r) -> m a Source #

Runs a SelectT computation with a function for evaluating answers to select a particular answer. (The inverse of select .)

mapSelectT :: (m a -> m a) -> SelectT r m a -> SelectT r m a Source #

Apply a function to transform the result of a selection computation. This has a more restricted type than the map operations for other monad transformers, because SelectT does not define a functor in the category of monads.

Monad transformation

selectToContT :: Monad m => SelectT r m a -> ContT r m a Source #

Convert a selection computation to a continuation-passing computation.

selectToCont :: Monad m => SelectT r m a -> ContT r m a Source #

Deprecated: Use selectToContT instead

Deprecated name for selectToContT .