From 7d78db96d674d914c1c134c16d90aa6b59b5afef Mon Sep 17 00:00:00 2001 From: Danila Fedorin Date: Sun, 26 Nov 2023 00:44:43 -0800 Subject: [PATCH] Add a useful helper function to the instantiation state Signed-off-by: Danila Fedorin --- src/Bergamot/Syntax.elm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Bergamot/Syntax.elm b/src/Bergamot/Syntax.elm index 6c239be..06c6325 100644 --- a/src/Bergamot/Syntax.elm +++ b/src/Bergamot/Syntax.elm @@ -1,4 +1,9 @@ -module Bergamot.Syntax exposing (Term(..), instantiate, emptyInstantiationState, unify, emptyUnificationState, reify) +module Bergamot.Syntax exposing + ( Term(..), Metavariable, UnificationVar + , instantiate, instantiateList, InstantiationState, emptyInstantiationState, resetVars + , unify, unifyList, UnificationState, emptyUnificationState + , reify + ) import Set exposing (Set) import Dict exposing (Dict) @@ -23,6 +28,9 @@ type alias InstantiationState = emptyInstantiationState = { counter = 0, vars = Dict.empty } +resetVars : InstantiationState -> InstantiationState +resetVars is = { is | vars = Dict.empty } + metavariable : Metavariable -> InstantiationState -> (UnificationVar, InstantiationState) metavariable mv is = case Dict.get mv is.vars of