diff options
| author | aarne <aarne@cs.chalmers.se> | 2008-10-03 07:57:40 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2008-10-03 07:57:40 +0000 |
| commit | 759ee4f926107eb2babf665261b3e9e034b8a2f1 (patch) | |
| tree | 625211e9d3e4762018a8658c140850416bcb282f /src | |
| parent | 07b38706990dc23784928eb5455836316451c147 (diff) | |
fixed the over-expansion of record variants in PGF.Linearize
Diffstat (limited to 'src')
| -rw-r--r-- | src/PGF/Linearize.hs | 11 |
1 files changed, 10 insertions, 1 deletions
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 |
