diff options
| author | bjorn <bjorn@bringert.net> | 2008-10-03 08:18:24 +0000 |
|---|---|---|
| committer | bjorn <bjorn@bringert.net> | 2008-10-03 08:18:24 +0000 |
| commit | 59cb392bdadba2df823209a2bdc346effdd739dc (patch) | |
| tree | 2c5f3a1e1eb217821eaceb71a326d9e0918d9e49 /src/PGF | |
| parent | 8290be0eb203044c9a378ab8fda2971ebd196fd8 (diff) | |
Don't build FV terms if there is exactly one variant.
Diffstat (limited to 'src/PGF')
| -rw-r--r-- | src/PGF/Linearize.hs | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/PGF/Linearize.hs b/src/PGF/Linearize.hs index 53bf9fdf4..8ea115d45 100644 --- a/src/PGF/Linearize.hs +++ b/src/PGF/Linearize.hs @@ -60,7 +60,9 @@ linTree pgf lang = lin R ts -> R $ ts ++ (Data.List.map (kks . prCId) xs) TM s -> R $ (TM s) : (Data.List.map (kks . prCId) xs) lin (Fun fun es) = let argVariants = mapM (liftVariants . lin) es - in FV [comp args $ look fun | args <- argVariants] + mkVariants [t] = t + mkVariants ts = FV ts + in mkVariants [comp args $ look fun | args <- argVariants] lin (Lit (LStr s)) = R [kks (show s)] -- quoted lin (Lit (LInt i)) = R [kks (show i)] lin (Lit (LFlt d)) = R [kks (show d)] |
