From 759ee4f926107eb2babf665261b3e9e034b8a2f1 Mon Sep 17 00:00:00 2001 From: aarne Date: Fri, 3 Oct 2008 07:57:40 +0000 Subject: [PATCH] fixed the over-expansion of record variants in PGF.Linearize --- src/PGF/Linearize.hs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/PGF/Linearize.hs b/src/PGF/Linearize.hs index 3db937a19..53bf9fdf4 100644 --- a/src/PGF/Linearize.hs +++ b/src/PGF/Linearize.hs @@ -67,9 +67,18 @@ linTree pgf lang = lin lin (Var x) = TM (prCId x) lin (Meta i) = TM (show i) - comp = compute pgf lang + comp ls t = variants [compute pgf lang ts t | ts <- combinations (map unvariants ls)] look = lookLin pgf lang +variants :: [Term] -> Term +variants ts = case ts of + [t] -> t + _ -> FV ts + +unvariants :: Term -> [Term] +unvariants t = case t of + FV ts -> ts + _ -> [t] compute :: PGF -> CId -> [Term] -> Term -> Term compute pgf lang args = comp where