diff options
| author | krasimir <krasimir@chalmers.se> | 2009-09-20 10:28:27 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2009-09-20 10:28:27 +0000 |
| commit | a29a8e4f60960122874c737d32e9d41a3575208b (patch) | |
| tree | 01bc816779410a378df386eaca2a5ae354ae5a10 /src/GF/Grammar/Unify.hs | |
| parent | 81ca1a57445bbf68d40d2812ee6ef521f9f81240 (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.hs | 8 |
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 |
