@@ -26,14 +26,14 @@ dequeueMatching (CQueue arrived incoming) matches =
26 modifyMVar arrived (checkArrived [])
26 modifyMVar arrived (checkArrived [])
28 checkArrived :: [a] -> [a] -> IO ([a], a)
28 checkArrived :: [a] -> [a] -> IO ([a], a)
29− checkArrived xs' [] = checkIncomming xs'
29+ checkArrived xs' [] = checkIncoming xs'
30 checkArrived xs' (x:xs)
30 checkArrived xs' (x:xs)
31 | matches x = return (reverse xs' ++ xs, x)
31 | matches x = return (reverse xs' ++ xs, x)
32 | otherwise = checkArrived (x:xs') xs
32 | otherwise = checkArrived (x:xs') xs
34− checkIncomming :: [a] -> IO ([a], a)
34+ checkIncoming :: [a] -> IO ([a], a)
35− checkIncomming xs' = do
35+ checkIncoming xs' = do
36 x <- readChan incoming
36 x <- readChan incoming
37 if matches x
37 if matches x
38 then return (reverse xs', x)
38 then return (reverse xs', x)
39− else checkIncomming (x:xs')
39+ else checkIncoming (x:xs')