Portability | semi-portable (Rank2Types, MPTCs,...) |
---|---|
Stability | highly experimental |
Maintainer | wren@community.haskell.org |
A ranked variant of Control.Unification.STVar.
- data STRVar s t a
- data STRBinding s a
- runSTRBinding :: (forall s. STRBinding s a) -> a
Documentation
A ranked unification variable implemented by STRef
s. In
addition to the STRef
for the term itself, we also track the
variable's ID (to support visited-sets) and rank (to support
weighted path compression).
Variable (STRVar s t) | |
Unifiable t => RankedBindingMonad (STRVar s t) t (STRBinding s) | |
Unifiable t => BindingMonad (STRVar s t) t (STRBinding s) | |
Show (STRVar s t a) |
data STRBinding s a Source
A monad for handling STRVar
bindings.
Monad (STRBinding s) | |
Functor (STRBinding s) | |
Applicative (STRBinding s) | |
Unifiable t => RankedBindingMonad (STRVar s t) t (STRBinding s) | |
Unifiable t => BindingMonad (STRVar s t) t (STRBinding s) |
runSTRBinding :: (forall s. STRBinding s a) -> aSource