Region owns resources and automatically frees them on exit. It is a plain old ADT, so it is possible to pass it to functions, put into mutable references, store in regular data types.
Resources can be freed earler or transfered to other regions.
Region itself can be used as any other resource. E.g. one region can own other one.
The library doesn't pretend to solve double throw issue.
- fix warnings with ghc-7.10.1