From 06acca1f679dc5e750a7f708800ec88272e577de Mon Sep 17 00:00:00 2001 From: aarne Date: Thu, 31 May 2007 18:46:29 +0000 Subject: [PATCH] syntax interfaces --- src/GF/Compile/Rebuild.hs | 10 ++++------ 1 file 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