Safe Haskell | None |
---|---|
Language | Haskell2010 |
A pure data structures implementation of unification variables state
Synopsis
- newtype UVar (t :: Knot) = UVar Int
- _UVar :: forall t t. Iso (UVar t) (UVar t) Int Int
- newtype Binding t = Binding (Seq (UTerm UVar t))
- _Binding :: forall t t. Iso (Binding t) (Binding t) (Seq (UTerm UVar t)) (Seq (UTerm UVar t))
- emptyBinding :: Binding t
- bindingDict :: MonadState s m => ALens' s (Tree Binding t) -> BindingDict UVar m t
Documentation
newtype UVar (t :: Knot) Source #
A unification variable identifier pure state based unification
The state of unification variables implemented in a pure data structure
Instances
Constraints (Binding t) Eq => Eq (Binding t) Source # | |
Constraints (Binding t) Ord => Ord (Binding t) Source # | |
Defined in AST.Unify.Binding | |
Constraints (Binding t) Show => Show (Binding t) Source # | |
Generic (Binding t) Source # | |
Constraints (Binding t) Binary => Binary (Binding t) Source # | |
Constraints (Binding t) NFData => NFData (Binding t) Source # | |
Defined in AST.Unify.Binding | |
type Rep (Binding t) Source # | |
Defined in AST.Unify.Binding |
_Binding :: forall t t. Iso (Binding t) (Binding t) (Seq (UTerm UVar t)) (Seq (UTerm UVar t)) Source #
emptyBinding :: Binding t Source #
An empty Binding
bindingDict :: MonadState s m => ALens' s (Tree Binding t) -> BindingDict UVar m t Source #
A BindingDict
for UVar
s in a MonadState
whose state contains a Binding