summaryrefslogtreecommitdiff
path: root/src/GF/Grammar/MMacros.hs
diff options
context:
space:
mode:
authorkrasimir <krasimir@chalmers.se>2009-09-21 06:56:39 +0000
committerkrasimir <krasimir@chalmers.se>2009-09-21 06:56:39 +0000
commitaf831e01a7baf6de9ac3a475368f7315c99797a7 (patch)
tree17e1bc841881069cb51a652489a8efb3e6f26db0 /src/GF/Grammar/MMacros.hs
parent96786c1136332efa9a889227c524ef8fe4e47fe8 (diff)
refactoring in GF.Grammar.Macros
Diffstat (limited to 'src/GF/Grammar/MMacros.hs')
-rw-r--r--src/GF/Grammar/MMacros.hs9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/GF/Grammar/MMacros.hs b/src/GF/Grammar/MMacros.hs
index a0852421d..a7f746b66 100644
--- a/src/GF/Grammar/MMacros.hs
+++ b/src/GF/Grammar/MMacros.hs
@@ -134,10 +134,10 @@ getMetaAtom a = case a of
_ -> Bad "the active node is not meta"
-}
cat2val :: Context -> Cat -> Val
-cat2val cont cat = vClos $ mkApp (qq cat) [Meta i | i <- [1..length cont]]
+cat2val cont cat = vClos $ mkApp (uncurry Q cat) [Meta i | i <- [1..length cont]]
val2cat :: Val -> Err Cat
-val2cat v = val2exp v >>= valCat
+val2cat v = liftM valCat (val2exp v)
substTerm :: [Ident] -> Substitution -> Term -> Term
substTerm ss g c = case c of
@@ -183,7 +183,7 @@ val2expP safe v = case v of
else substVal g e
VClos g e -> substVal g e
VApp f c -> liftM2 App (val2expP safe f) (val2expP safe c)
- VCn c -> return $ qq c
+ VCn c -> return $ uncurry Q c
VGen i x -> if safe
then Bad (render (text "unsafe val2exp" <+> ppValue Unqualified 0 v))
else return $ Vr $ x --- in editing, no alpha conversions presentv
@@ -214,9 +214,6 @@ freeVarsExp e = case e of
Prod _ x a b -> freeVarsExp a ++ filter (/=x) (freeVarsExp b)
_ -> [] --- thus applies to abstract syntax only
-mkJustProd :: Context -> Term -> Term
-mkJustProd cont typ = mkProd (cont,typ,[])
-
int2var :: Int -> Ident
int2var = identC . BS.pack . ('$':) . show