Copyright | (c) Sergey Vinokurov 2018 |
---|---|
License | Apache-2.0 (see LICENSE) |
Maintainer | serg.foo@gmail.com |
Safe Haskell | Safe-Inferred |
Language | GHC2021 |
Synopsis
- data Value (s :: k)
Documentation
Value that is independent of environment (Env
) that produced it.
Incidentally, this implies that it's "protected" against Emacs GC and
thus will not unexpectedly go out of scope.
In order to prevent memory leaks, value is registered in the Emacs
monad than produced it and will be freed when the monad finishes.
To make the connection clear the value is tagged with parameter
s
, which serves the same purpose as tag of the ST
monad. That
is, it ensures that value cannot leave the scope of the monad that
produced it.