diff options
| author | aarne <aarne@chalmers.se> | 2010-05-06 18:56:18 +0000 |
|---|---|---|
| committer | aarne <aarne@chalmers.se> | 2010-05-06 18:56:18 +0000 |
| commit | c265c5f8c3db1e259f670eb1130fd74aba90de22 (patch) | |
| tree | a7e1895f7e3cd43de5bece5531c701841c752211 | |
| parent | a8f56c61ffaa27ec3d63ad603006e3deb314e9c4 (diff) | |
fixed two bugs in gt
| -rw-r--r-- | src/runtime/haskell/PGF/Generate.hs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/runtime/haskell/PGF/Generate.hs b/src/runtime/haskell/PGF/Generate.hs index d24daab2e..6b3d9c1bf 100644 --- a/src/runtime/haskell/PGF/Generate.hs +++ b/src/runtime/haskell/PGF/Generate.hs @@ -30,7 +30,7 @@ generateForMetas :: Bool -> PGF -> (Type -> [Expr]) -> Expr -> [Expr] generateForMetas breadth pgf gen exp = case exp of EApp f (EMeta _) -> [EApp g a | g <- gener f, a <- genArg g] EApp f x | breadth -> [EApp g a | (g,a) <- zip (gener f) (gener x)] - EApp f x -> [EApp g a | (g,a) <- zip (gener f) (gener x)] + EApp f x -> [EApp g a | g <- gener f, a <- gener x] _ -> if breadth then repeat exp else [exp] where gener = generateForMetas breadth pgf gen @@ -48,7 +48,7 @@ generate pgf ty@(DTyp _ cat _) dp = filter (\e -> case checkExpr pgf e ty of gener 0 c = [EFun f | (f, ([],_)) <- fns c] gener i c = [ tr | - (f, (cs,_)) <- fns c, + (f, (cs,_)) <- fns c, not (null cs), let alts = map (gener (i-1)) cs, ts <- combinations alts, let tr = foldl EApp (EFun f) ts, |
