@@ -181,6 +181,7 @@ sf_tail p = (tail . L.filter p) `eqP` (unpackS . S.tail . S.filter p)
181181t_tail = tail `eqP` (unpackS . T.tail)
182182tl_tail = tail `eqP` (unpackS . TL.tail)
183183s_init = init `eqP` (unpackS . S.init)
184+s_init_s = init `eqP` (unpackS . S.unstream . S.init)
184185sf_init p = (init . L.filter p) `eqP` (unpackS . S.init . S.filter p)
185186t_init = init `eqP` (unpackS . T.init)
186187tl_init = init `eqP` (unpackS . TL.init)
@@ -194,12 +195,14 @@ t_length = length `eqP` T.length
194195tl_length = length `eqP` (fromIntegral . TL.length)
195196
196197s_map f = map f `eqP` (unpackS . S.map f)
198+s_map_s f = map f `eqP` (unpackS . S.unstream . S.map f)
197199sf_map p f = (map f . L.filter p) `eqP` (unpackS . S.map f . S.filter p)
198200t_map f = map f `eqP` (unpackS . T.map f)
199201tl_map f = map f `eqP` (unpackS . TL.map f)
200202t_intercalate c = unsquare (L.intercalate c `eq` (unpackS . T.intercalate (packS c) . map packS))
201203tl_intercalate c = unsquare (L.intercalate c `eq` (unpackS . TL.intercalate (TL.pack c) . map TL.pack))
202204s_intersperse c = L.intersperse c `eqP` (unpackS . S.intersperse c)
205+s_intersperse_s c = L.intersperse c `eqP` (unpackS . S.unstream . S.intersperse c)
203206sf_intersperse p c= (L.intersperse c . L.filter p) `eqP` (unpackS . S.intersperse c . S.filter p)
204207t_intersperse c = L.intersperse c `eqP` (unpackS . T.intersperse c)
205208tl_intersperse c = L.intersperse c `eqP` (unpackS . TL.intersperse c)
@@ -247,6 +250,7 @@ justifyLeft k c s = s ++ L.replicate (k - length s) c
247250justifyRight m n s = L.replicate (m - length s) n ++ s
248251
249252s_justifyLeft k c = justifyLeft k c `eqP` (unpackS . S.justifyLeftI k c)
253+s_justifyLeft_s k c = justifyLeft k c `eqP` (unpackS . S.unstream . S.justifyLeftI k c)
250254sf_justifyLeft p k c =
251255 (justifyLeft k c . L.filter p) `eqP` (unpackS . S.justifyLeftI k c . S.filter p)
252256t_justifyLeft k c = justifyLeft k c `eqP` (unpackS . T.justifyLeft k c)
@@ -282,6 +286,7 @@ sf_foldr1 p f = (L.foldr1 f . L.filter p) `eqP` (S.foldr1 f . S.filter p)
282286t_foldr1 f = L.foldr1 f `eqP` T.foldr1 f
283287tl_foldr1 f = L.foldr1 f `eqP` TL.foldr1 f
284288
289+s_concat_s = unsquare (L.concat `eq` (unpackS . S.unstream . S.concat . map packS))
285290sf_concat p = unsquare ((L.concat . map (L.filter p)) `eq` (unpackS . S.concat . map (S.filter p . packS)))
286291t_concat = unsquare (L.concat `eq` (unpackS . T.concat . map packS))
287292tl_concat = unsquare (L.concat `eq` (unpackS . TL.concat . map TL.pack))
@@ -358,10 +363,12 @@ s_take_drop m = (L.take n . L.drop n) `eqP` (unpackS . S.take n . S.drop n)
358363s_take_drop_s m = (L.take n . L.drop n) `eqP` (unpackS . S.unstream . S.take n . S.drop n)
359364 where n = small m
360365s_takeWhile p = L.takeWhile p `eqP` (unpackS . S.takeWhile p)
366+s_takeWhile_s p = L.takeWhile p `eqP` (unpackS . S.unstream . S.takeWhile p)
361367sf_takeWhile q p = (L.takeWhile p . L.filter q) `eqP` (unpackS . S.takeWhile p . S.filter q)
362368t_takeWhile p = L.takeWhile p `eqP` (unpackS . T.takeWhile p)
363369tl_takeWhile p = L.takeWhile p `eqP` (unpackS . TL.takeWhile p)
364370s_dropWhile p = L.dropWhile p `eqP` (unpackS . S.dropWhile p)
371+s_dropWhile_s p = L.dropWhile p `eqP` (unpackS . S.unstream . S.dropWhile p)
365372sf_dropWhile q p = (L.dropWhile p . L.filter q) `eqP` (unpackS . S.dropWhile p . S.filter q)
366373t_dropWhile p = L.dropWhile p `eqP` (unpackS . T.dropWhile p)
367374tl_dropWhile p = L.dropWhile p `eqP` (unpackS . S.dropWhile p)
@@ -608,6 +615,7 @@ tests = [
608615 testProperty "t_tail" t_tail,
609616 testProperty "tl_tail" tl_tail,
610617 testProperty "s_init" s_init,
618+ testProperty "s_init_s" s_init_s,
611619 testProperty "sf_init" sf_init,
612620 testProperty "t_init" t_init,
613621 testProperty "tl_init" tl_init,
@@ -623,12 +631,14 @@ tests = [
623631
624632 testGroup "transformations" [
625633 testProperty "s_map" s_map,
634+ testProperty "s_map_s" s_map_s,
626635 testProperty "sf_map" sf_map,
627636 testProperty "t_map" t_map,
628637 testProperty "tl_map" tl_map,
629638 testProperty "t_intercalate" t_intercalate,
630639 testProperty "tl_intercalate" tl_intercalate,
631640 testProperty "s_intersperse" s_intersperse,
641+ testProperty "s_intersperse_s" s_intersperse_s,
632642 testProperty "sf_intersperse" sf_intersperse,
633643 testProperty "t_intersperse" t_intersperse,
634644 testProperty "tl_intersperse" tl_intersperse,
@@ -655,6 +665,7 @@ tests = [
655665
656666 testGroup "justification" [
657667 testProperty "s_justifyLeft" s_justifyLeft,
668+ testProperty "s_justifyLeft_s" s_justifyLeft_s,
658669 testProperty "sf_justifyLeft" sf_justifyLeft,
659670 testProperty "t_justifyLeft" t_justifyLeft,
660671 testProperty "tl_justifyLeft" tl_justifyLeft,
@@ -684,6 +695,7 @@ tests = [
684695 testProperty "tl_foldr1" tl_foldr1,
685696
686697 testGroup "special" [
698+ testProperty "s_concat_s" s_concat_s,
687699 testProperty "sf_concat" sf_concat,
688700 testProperty "t_concat" t_concat,
689701 testProperty "tl_concat" tl_concat,
@@ -752,11 +764,13 @@ tests = [
752764 testProperty "s_take_drop" s_take_drop,
753765 testProperty "s_take_drop_s" s_take_drop_s,
754766 testProperty "s_takeWhile" s_takeWhile,
767+ testProperty "s_takeWhile_s" s_takeWhile_s,
755768 testProperty "sf_takeWhile" sf_takeWhile,
756769 testProperty "t_takeWhile" t_takeWhile,
757770 testProperty "tl_takeWhile" tl_takeWhile,
758771 testProperty "sf_dropWhile" sf_dropWhile,
759772 testProperty "s_dropWhile" s_dropWhile,
773+ testProperty "s_dropWhile_s" s_dropWhile_s,
760774 testProperty "t_dropWhile" t_dropWhile,
761775 testProperty "tl_dropWhile" tl_dropWhile,
762776 testProperty "t_dropWhileEnd" t_dropWhileEnd,