The implementation of this library is closely modeled after the core abstraction in the Haskell library. This does not at all concern itself with persistence, interpretation of effects and so on.