| Portability | semi-portable (Rank2Types, MPTCs,...) |
|---|---|
| Stability | highly experimental |
| Maintainer | wren@community.haskell.org |
| Safe Haskell | None |
Control.Unification.Ranked.STVar
Description
A ranked variant of Control.Unification.STVar.
- data STRVar s t
- data STRBinding s a
- runSTRBinding :: (forall s. STRBinding s a) -> a
Documentation
A ranked unification variable implemented by STRefs. 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).
Instances
| (BindingMonad t (STRVar s t) (STRBinding s), Unifiable t) => RankedBindingMonad t (STRVar s t) (STRBinding s) | |
| (Variable (STRVar s t), Applicative (STRBinding s), Monad (STRBinding s), Unifiable t) => BindingMonad t (STRVar s t) (STRBinding s) | |
| Eq (STRVar s t) | |
| Show (STRVar s t) | |
| Eq (STRVar s t) => Variable (STRVar s t) |
data STRBinding s a Source
A monad for handling STRVar bindings.
Instances
| (BindingMonad t (STRVar s t) (STRBinding s), Unifiable t) => RankedBindingMonad t (STRVar s t) (STRBinding s) | |
| (Variable (STRVar s t), Applicative (STRBinding s), Monad (STRBinding s), Unifiable t) => BindingMonad t (STRVar s t) (STRBinding s) | |
| Monad (STRBinding s) | |
| Functor (STRBinding s) | |
| Functor (STRBinding s) => Applicative (STRBinding s) |
runSTRBinding :: (forall s. STRBinding s a) -> aSource