-- | Convenience specialization to avoid "Default Constraint" warnings
settleTester :: [QueueAction Int] -> [Maybe [Int]] -> Assertion
settleTester = testActions $
        TestableChunkedQueue
            newTMChunkedQueueIO
            (drainAndSettleTMChunkedQueue 20000)
            ((fmap collapseMaybe) . atomically . tryDrainTMChunkedQueue)
            writeTMChunkedQueue
            closeTMChunkedQueue

    where
        collapseMaybe Nothing = mempty
        collapseMaybe (Just xs) = xs
settleTester :: [QueueAction Int] -> [Maybe [Int]] -> Assertion
settleTester = testActions $
        TestableChunkedQueue
            newTMChunkedQueueIO
            (drainAndSettleTMChunkedQueue 20000)
            ((fmap collapseMaybe) . atomically . tryDrainTMChunkedQueue)
            writeTMChunkedQueue
            closeTMChunkedQueue

    where
        collapseMaybe Nothing = mempty
        collapseMaybe (Just xs) = xs
settleTester = testActions $
        TestableChunkedQueue
            newTMChunkedQueueIO
            (drainAndSettleTMChunkedQueue 20000)
            ((fmap collapseMaybe) . atomically . tryDrainTMChunkedQueue)
            writeTMChunkedQueue
            closeTMChunkedQueue

    where
        collapseMaybe Nothing = mempty
        collapseMaybe (Just xs) = xs