diff options
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 |
