The library allows you to allocate memory in a region yielding a regional
pointer to it. When the region terminates all pointers are automatically
freed. Most importantly, a pointer can't be returned from the region. So it's
impossible to reference unallocated memory.
The primary technique used in this package is called "Lightweight monadic
regions" which was [invented][1] by Oleg Kiselyov and Chung-chieh Shan.
This technique is implemented in the [regions] package which is re-exported from
this library.
This library provides wrappers around all the `Ptr` functions from the
[`Foreign.*`][foreign] modules of the `base` library.
[1]: http://okmij.org/ftp/Haskell/regions.html#light-weight
[regions]: http://hackage.haskell.org/package/regions
[foreign]: http://hackage.haskell.org/packages/archive/base/latest/doc/html/Foreign.html