From ecb2dbe7af23578144a8db0def9a674c8517e4f4 Mon Sep 17 00:00:00 2001 From: David Roundy Date: Mon, 13 Aug 2007 16:35:00 +0200 Subject: fix bug in Combo where we ignored changes in super. darcs-hash:20070813143500-72aca-d8723648629f37b6a93e210a361b7da1cdc9123f.gz --- Combo.hs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'Combo.hs') diff --git a/Combo.hs b/Combo.hs index ccb956d..da9070f 100644 --- a/Combo.hs +++ b/Combo.hs @@ -48,9 +48,9 @@ combo super origls = Layout { doLayout = \r s -> arrange r (integrate s), modify where arrange _ [] = return ([], Nothing) arrange r [w] = return ([(w,r)], Nothing) arrange rinput origws = - do lrs <- fst `fmap` - runLayout super rinput (differentiate $ take (length origws) origls) - let lwrs [] _ = [] + do (lrs, msuper') <- runLayout super rinput (differentiate $ take (length origws) origls) + let super' = maybe super id msuper' + lwrs [] _ = [] lwrs [((l,_),r)] ws = [((l,r),differentiate ws)] lwrs (((l,n),r):xs) ws = ((l,r),differentiate $ take len1 ws) : lwrs xs (drop len1 ws) where len1 = min n (length ws - length xs) @@ -58,7 +58,7 @@ combo super origls = Layout { doLayout = \r s -> arrange r (integrate s), modify let origls' = zipWith foo (out++repeat ([],Nothing)) origls foo (_, Nothing) x = x foo (_, Just l') (_, n) = (l', n) - return (concat $ map fst out, Just $ combo super origls') + return (concat $ map fst out, Just $ combo super' origls') message m = do mls <- broadcastPrivate m (map fst origls) let mls' = (\x->zipWith first (map const x) origls) `fmap` mls msuper <- broadcastPrivate m [super] -- cgit v1.2.3