diff options
| author | aarne <aarne@cs.chalmers.se> | 2007-05-31 18:46:29 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2007-05-31 18:46:29 +0000 |
| commit | 06acca1f679dc5e750a7f708800ec88272e577de (patch) | |
| tree | e37ed84042ca3a004a01c627983f3d67f2c8bb2b /src/GF/Compile/Rebuild.hs | |
| parent | e7b7def3130881852ff4acd1845dd31266c166fe (diff) | |
syntax interfaces
Diffstat (limited to 'src/GF/Compile/Rebuild.hs')
| -rw-r--r-- | src/GF/Compile/Rebuild.hs | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/GF/Compile/Rebuild.hs b/src/GF/Compile/Rebuild.hs index 52224c4a1..06f4b663e 100644 --- a/src/GF/Compile/Rebuild.hs +++ b/src/GF/Compile/Rebuild.hs @@ -49,13 +49,11 @@ rebuildModule ms mo@(i,mi) = do --- to avoid double inclusions, in instance I of I0 = J0 ** ... case extends m of [] -> return $ replaceJudgements m js' - j0:jj -> do - m0 <- lookupModMod gr j0 - let notInM0 c _ = not $ isInBinTree c $ jments m0 + j0s -> do + m0s <- mapM (lookupModMod gr) j0s + let notInM0 c _ = all (not . isInBinTree c . jments) m0s let js2 = filterBinTree notInM0 js' - if null jj - then return $ replaceJudgements m js2 - else Bad "FIXME: handle multiple inheritance in instance" + return $ replaceJudgements m js2 return $ ModMod m' _ -> return mi |
