summaryrefslogtreecommitdiff
path: root/src/GF/Grammar/Unify.hs
diff options
context:
space:
mode:
authorkrasimir <krasimir@chalmers.se>2009-09-20 10:28:27 +0000
committerkrasimir <krasimir@chalmers.se>2009-09-20 10:28:27 +0000
commita29a8e4f60960122874c737d32e9d41a3575208b (patch)
tree01bc816779410a378df386eaca2a5ae354ae5a10 /src/GF/Grammar/Unify.hs
parent81ca1a57445bbf68d40d2812ee6ef521f9f81240 (diff)
rename MetaSymb in GF.Grammar.Grammar to MetaId to match the convention in PGF
Diffstat (limited to 'src/GF/Grammar/Unify.hs')
-rw-r--r--src/GF/Grammar/Unify.hs8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/GF/Grammar/Unify.hs b/src/GF/Grammar/Unify.hs
index b48301186..8ac5351e1 100644
--- a/src/GF/Grammar/Unify.hs
+++ b/src/GF/Grammar/Unify.hs
@@ -38,7 +38,7 @@ unifyVal cs0 = do
(_,VClos (_:_) _) -> True
_ -> False
-type Unifier = [(MetaSymb, Term)]
+type Unifier = [(MetaId, Term)]
type Constrs = [(Term, Term)]
unifyAll :: Constrs -> Unifier -> (Unifier,Constrs)
@@ -68,7 +68,7 @@ unify e1 e2 g =
(RecType xs,RecType ys) | xs == ys -> return g
_ -> Bad (render (text "fail unify" <+> ppTerm Unqualified 0 e1))
-extend :: Unifier -> MetaSymb -> Term -> Err Unifier
+extend :: Unifier -> MetaId -> Term -> Err Unifier
extend g s t | (t == Meta s) = return g
| occCheck s t = Bad (render (text "occurs check" <+> ppTerm Unqualified 0 t))
| True = return ((s, t) : g)
@@ -81,14 +81,14 @@ subst_all s u =
t' <- (subst_all l t) --- successive substs - why ?
return $ substMetas [a] t'
-substMetas :: [(MetaSymb,Term)] -> Term -> Term
+substMetas :: [(MetaId,Term)] -> Term -> Term
substMetas subst trm = case trm of
Meta x -> case lookup x subst of
Just t -> t
_ -> trm
_ -> composSafeOp (substMetas subst) trm
-occCheck :: MetaSymb -> Term -> Bool
+occCheck :: MetaId -> Term -> Bool
occCheck s u = case u of
Meta v -> s == v
App c a -> occCheck s c || occCheck s a