TVar is:module
Transactional variables, for use with
MonadSTM.
Deviations: There is no
Eq instance for
MonadSTM the
TVar type. Furthermore, the
newTVarIO and
mkWeakTVar functions are not provided.
This data structure holds an updateable environment which is used when
compiling module loops.
This module defines a state monad for functional pointers represented
by integers as keys into an
IntMap. This technique was
independently discovered by Dijkstra et al. This module extends the
approach by using a state monad transformer, which can be made into a
backtracking state monad by setting the underlying monad to some
MonadLogic (part of the
logict library, described by
Kiselyov et al.).
- Atze Dijkstra, Arie Middelkoop, S. Doaitse Swierstra (2008)
Efficient Functional Unification and Substitution, Technical
Report UU-CS-2008-027, Utrecht University.
- Oleg Kiselyov, Chung-chieh Shan, Daniel P. Friedman, and Amr Sabry
(2005) Backtracking, Interleaving, and Terminating Monad
Transformers, ICFP.
This module defines an implementation of unification variables using
the
ST monad.
Data type for holding variation-axis values.
The minimum, default, and maximum values are in un-normalized, user
scales.
<note>Note: at present, the only flag defined for
flags is
HB_OT_VAR_AXIS_FLAG_HIDDEN.</note>
Since: 2.2.0