@@ -1394,25 +1394,27 @@ beforeProp :: IsStream t => (t IO Int -> SerialT IO Int) -> [Int] -> Property
13941394beforeProp t vec =
13951395 withMaxSuccess maxTestCount $
13961396 monadicIO $ do
1397− ioRef <- run $ newIORef False
1398− strm <-
1399− run $
1400− S.toList . t $ S.before (writeIORef ioRef True) (S.fromList vec)
1397+ ioRef <- run $ newIORef []
1398+ run
1399+ $ S.drain . t
1400+ $ S.before (writeIORef ioRef [0])
1401+ $ S.mapM (\a -> modifyIORef' ioRef (++ [a]) >> return a)
1402+ $ S.fromList vec
14011403 refValue <- run $ readIORef ioRef
1402− assert refValue
1403− assert $ sort strm == sort vec
1404+ listEquals (==) (head refValue : sort (tail refValue)) (0:sort vec)
14041405
14051406afterProp :: IsStream t => (t IO Int -> SerialT IO Int) -> [Int] -> Property
14061407afterProp t vec =
14071408 withMaxSuccess maxTestCount $
14081409 monadicIO $ do
1409− ioRef <- run $ newIORef False
1410− strm <-
1411− run $
1412− S.toList . t $ S.after (writeIORef ioRef True) (S.fromList vec)
1410+ ioRef <- run $ newIORef []
1411+ run
1412+ $ S.drain . t
1413+ $ S.after (modifyIORef' ioRef (0:))
1414+ $ S.mapM (\a -> modifyIORef' ioRef (a:) >> return a)
1415+ $ S.fromList vec
14131416 refValue <- run $ readIORef ioRef
1414− assert refValue
1415− assert $ sort strm == sort vec
1417+ listEquals (==) (head refValue : sort (tail refValue)) (0:sort vec)
14161418
14171419bracketProp :: IsStream t => (t IO Int -> SerialT IO Int) -> [Int] -> Property
14181420bracketProp t vec =