@@ -391,8 +391,8 @@ evictOldestAckedIds = \items n ->
391391 in diff items toEvict
392392
393393safeCompareLoop = \s1 s2 n result ->
394− if n <= 0 && s1 == "" && s2 == ""
395− then result
394+ if n <= 0
395+ then result + (if s1 == "" then 0 else 1) + (if s2 == "" then 0 else 1)
396396 else safeCompareLoop (drop 1 s1) (drop 1 s2) (n - 1) (result + (if take 1 s1 == take 1 s2 then 0 else 1))
397397
398398safeCompare = \a b ->
@@ -407,7 +407,9 @@ sendToEach = \servers action ->
407407 let rest = do s <- servers; where not (s == server); yield s
408408 if server == ""
409409 then yield {}
410− else action server
410+ else do
411+ action server
412+ sendToEach rest action
411413
412414pruneExpired = \t -> do
413415 challenges <- *challenges