testProducer' :: Producer a => Int -> [a] -> ByteString -> IO ()
testProducer' idx (hd:[]) b = do
    let dsz = defaultSize hd
        (b1,b2) = bSplitAt dsz b
        x = one b1 idx
    x `shouldBe` hd
    Data.ByteString.Lazy.null b2 `shouldBe` True
    return ()
testProducer' idx (hd:tl) b = do
    let dsz = defaultSize hd
        (b1,b2) = bSplitAt dsz b
        x = one b1 idx