:: Handle -> IO a -package:bindings-DSL

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.
Read n bytes *or* characters, depending on the implementation into a ByteString, directly from the specified Handle Whether or not this function is lazy depends on the instance; laziness is preferred.
Read a single line from a handle
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.