@@ -48,8 +48,8 @@ main = hspec $ do
4848 -- Monoidal Composition ordering checks
4949 ---------------------------------------------------------------------------
5050
51− describe "Serial interleaved (<=>)" $ interleaved (<=>) id
52− describe "Parallel interleaved (<|>)" $ interleaved (<|>) reverse
51+ describe "Serial interleaved (<=>)" $ interleaved (<=>)
52+ describe "Parallel interleaved (<|>)" $ interleaved (<|>)
5353 describe "Left biased parallel time order check" $ parallelCheck (<|)
5454 describe "Fair parallel time order check" $ parallelCheck (<|>)
5555
@@ -104,14 +104,20 @@ main = hspec $ do
104104 let t = timed
105105 in toList (
106106 ((t 8 <|> t 4) <=> (t 2 <|> t 0))
107− <|> ((t 8 <|> t 4) <=> (t 2 <|> t 0)))
108− `shouldReturn` ([4,4,0,0,8,8,2,2])
107+ <|> ((t 9 <|> t 4) <=> (t 2 <|> t 0)))
108+ `shouldReturn` ([4,4,0,0,8,2,9,2])
109109 it "Nest <|>, <=>, <|> (2)" $
110110 let t = timed
111111 in toList (
112112 ((t 4 <|> t 8) <=> (t 0 <|> t 2))
113− <|> ((t 4 <|> t 8) <=> (t 0 <|> t 2)))
114− `shouldReturn` ([4,4,0,0,8,8,2,2])
113+ <|> ((t 4 <|> t 9) <=> (t 0 <|> t 2)))
114+ `shouldReturn` ([4,4,0,0,8,2,9,2])
115+ it "Nest <|>, <|>, <|>" $
116+ let t = timed
117+ in toList (
118+ ((t 4 <|> t 8) <|> (t 0 <|> t 2))
119+ <|> ((t 4 <|> t 8) <|> (t 0 <|> t 2)))
120+ `shouldReturn` ([0,0,2,2,4,4,8,8])
115121
116122 ---------------------------------------------------------------------------
117123 -- Monoidal composition recursion loops
@@ -165,12 +171,11 @@ pureBind f = do
165171
166172interleaved
167173 :: (AsyncT IO Int -> AsyncT IO Int -> AsyncT IO Int)
168− -> ([Int] -> [Int])
169174 -> Spec
170−interleaved f srt =
175+interleaved f =
171176 it "Interleave four" $
172177 toList ((return 0 <> return 1) `f` (return 100 <> return 101))
173− `shouldReturn` (srt [0, 100, 1, 101])
178+ `shouldReturn` ([0, 100, 1, 101])
174179
175180parallelCheck :: (AsyncT IO Int -> AsyncT IO Int -> AsyncT IO Int) -> Spec
176181parallelCheck f = do