Allocate resources which are guaranteed to be released.
This is a simplified, standalone version of the ResourceT
transformer that was originally developed as part of the conduit
package. That version of ResourceT
was supported by a complicated hierarchy of type classes, the main purpose of which was to enable the usage of ResourceT
on top of the ST
monad. However, this doesn't really make much sense conceptually, and the reason it was done is because conduits are very closely tied to ResourceT
, and an instance for ST
would enable the usage of ResourceT
in pure code.
This package completely does away with the supporting type class hierarchy, and as such, this version of ResourceT
can only be used with IO
or IO
-like monads.
This package is motivated by a belief that the iteratee problem and the resource finalization problem are orthogonal. This package is ideal for usage with the pipes
library.