databrary-1: Databrary

Safe HaskellNone
LanguageHaskell2010

Control.Invert

Synopsis

Documentation

data InvertM b a Source #

Instances

Monad (InvertM b) Source # 

Methods

(>>=) :: InvertM b a -> (a -> InvertM b b) -> InvertM b b #

(>>) :: InvertM b a -> InvertM b b -> InvertM b b #

return :: a -> InvertM b a #

fail :: String -> InvertM b a #

Functor (InvertM b) Source # 

Methods

fmap :: (a -> b) -> InvertM b a -> InvertM b b #

(<$) :: a -> InvertM b b -> InvertM b a #

Applicative (InvertM b) Source # 

Methods

pure :: a -> InvertM b a #

(<*>) :: InvertM b (a -> b) -> InvertM b a -> InvertM b b #

(*>) :: InvertM b a -> InvertM b b -> InvertM b b #

(<*) :: InvertM b a -> InvertM b b -> InvertM b a #

MonadIO (InvertM b) Source # 

Methods

liftIO :: IO a -> InvertM b a #

runInvert :: InvertM b () -> IO (IO (Maybe b)) Source #

Convert an InvertM action into an IO action that, when called repeatedly, returns Just for each give, and Nothing after the action completes.

give :: b -> InvertM b () Source #