:: String_ -> _ Int
Throw an error, escaping the current computation up to the nearest
catchError (if any).
runThrow (throwError e >>= k) = runThrow (throwError e)
Like
throwEnvelopeErr but without providing a message.
>>> import Control.Monad.Except (runExcept)
>>> throwEnvelopeErr "BAD_ERROR" "a very bad error occurred!" :: Either (Err String) Int
Left (Err {errErr = "BAD_ERROR", errExtra = Just "a very bad error occurred!"})
A higher-order generalisation of
replicate. For example
foo :: IO (String, String, String)
foo = replicateT getLine
> foo
Hello
world
!
("Hello","world","!")
A higher-order generalisation of
sequenceA. For example
> sequenceT (print 3110, putStrLn World) :: IO ((), ())
3110
World
((),())
Return the value of the variable or throw an error.