:: Handle -> IO a -package:string-class

IOData Wrapper for hGetContents Note: This operation uses lazy I/O. Use NFData to force all data to be read and consequently the internal file handle to be closed.
Read a fully-typed XML document from a file handle.
Reads a line from the specified handle
Read entire handle contents. May be done lazily like hGetContents.
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","!")
Use sequenceT instead. It has a better name.
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.
storableCast works like storableCastArray, except that it takes a single value and returns a single value.