@@ -4167,33 +4167,43 @@ splitOnAny subseq f m = undefined -- D.fromStreamD $ D.splitOnAny f subseq (D.to
41674167-- | Like 'splitSuffixBy' but the separator is a sequence of elements, instead
41684168-- of a predicate for a single element.
41694169--
4170−-- > splitSuffixOn_ pat xs = S.toList $ S.splitSuffixOn (A.fromList pat) (FL.toList) (S.fromList xs)
4170+-- > splitOnSuffixSeq_ pat xs = S.toList $ S.splitOnSuffixSeq (A.fromList pat) (FL.toList) (S.fromList xs)
41714171--
4172−-- >>> splitSuffixOn_ "." ""
4172+-- >>> splitOnSuffixSeq_ "." ""
41734173-- []
41744174--
4175−-- >>> splitSuffixOn_ "." "."
4175+-- >>> splitOnSuffixSeq_ "." "."
41764176-- [""]
41774177--
4178−-- >>> splitSuffixOn_ "." "a"
4178+-- >>> splitOnSuffixSeq_ "." "a"
41794179-- ["a"]
41804180--
4181−-- >>> splitSuffixOn_ "." ".a"
4181+-- >>> splitOnSuffixSeq_ "." ".a"
41824182-- > ["","a"]
41834183--
4184−-- >>> splitSuffixOn_ "." "a."
4184+-- >>> splitOnSuffixSeq_ "." "a."
41854185-- > ["a"]
41864186--
4187−-- >>> splitSuffixOn_ "." "a.b"
4187+-- >>> splitOnSuffixSeq_ "." "a.b"
41884188-- > ["a","b"]
41894189--
4190−-- >>> splitSuffixOn_ "." "a.b."
4190+-- >>> splitOnSuffixSeq_ "." "a.b."
41914191-- > ["a","b"]
41924192--
4193−-- >>> splitSuffixOn_ "." "a..b.."
4193+-- >>> splitOnSuffixSeq_ "." "a..b.."
41944194-- > ["a","","b",""]
41954195--
4196−-- > lines = splitSuffixOn "\n"
4196+-- > lines = splitOnSuffixSeq "\n"
4197+--
4198+-- 'splitOnSuffixSeq' is an inverse of 'intercalateSuffix'. The following law
4199+-- always holds:
4200+--
4201+-- > intercalateSuffix . splitOnSuffixSeq == id
4202+--
4203+-- The following law holds when the separator is non-empty and contains none of
4204+-- the elements present in the input lists:
4205+--
4206+-- > splitSuffixOn . intercalateSuffix == id
41974207--
41984208-- /Internal/
41994209{-# INLINE splitOnSuffixSeq #-}
@@ -4201,7 +4211,7 @@ splitOnSuffixSeq
42014211 :: (IsStream t, MonadIO m, Storable a, Enum a, Eq a)
42024212 => Array a -> Fold m a b -> t m a -> t m b
42034213splitOnSuffixSeq patt f m =
4204− D.fromStreamD $ D.splitSuffixOn False patt f (D.toStreamD m)
4214+ D.fromStreamD $ D.splitOnSuffixSeq False patt f (D.toStreamD m)
42054215
42064216{-
42074217-- | Like 'splitOn' but drops any empty splits.
@@ -4254,32 +4264,32 @@ splitBySeq
42544264splitBySeq patt f m =
42554265 intersperseM (fold f (A.toStream patt)) $ splitOnSeq patt f m
42564266
4257−-- | Like 'splitSuffixOn' but keeps the suffix intact in the splits.
4267+-- | Like 'splitOnSuffixSeq' but keeps the suffix intact in the splits.
42584268--
4259−-- > splitSuffixOn'_ pat xs = S.toList $ FL.splitSuffixOn' (A.fromList pat) (FL.toList) (S.fromList xs)
4269+-- > splitWithSuffixSeq'_ pat xs = S.toList $ S.splitWithSuffixSeq (A.fromList pat) (FL.toList) (S.fromList xs)
42604270--
4261−-- >>> splitSuffixOn'_ "." ""
4271+-- >>> splitWithSuffixSeq' "." ""
42624272-- [""]
42634273--
4264−-- >>> splitSuffixOn'_ "." "."
4274+-- >>> splitWithSuffixSeq' "." "."
42654275-- ["."]
42664276--
4267−-- >>> splitSuffixOn'_ "." "a"
4277+-- >>> splitWithSuffixSeq' "." "a"
42684278-- ["a"]
42694279--
4270−-- >>> splitSuffixOn'_ "." ".a"
4280+-- >>> splitWithSuffixSeq' "." ".a"
42714281-- > [".","a"]
42724282--
4273−-- >>> splitSuffixOn'_ "." "a."
4283+-- >>> splitWithSuffixSeq' "." "a."
42744284-- > ["a."]
42754285--
4276−-- >>> splitSuffixOn'_ "." "a.b"
4286+-- >>> splitWithSuffixSeq' "." "a.b"
42774287-- > ["a.","b"]
42784288--
4279−-- >>> splitSuffixOn'_ "." "a.b."
4289+-- >>> splitWithSuffixSeq' "." "a.b."
42804290-- > ["a.","b."]
42814291--
4282−-- >>> splitSuffixOn'_ "." "a..b.."
4292+-- >>> splitWithSuffixSeq' "." "a..b.."
42834293-- > ["a.",".","b.","."]
42844294--
42854295-- /Internal/
@@ -4288,16 +4298,16 @@ splitWithSuffixSeq
42884298 :: (IsStream t, MonadIO m, Storable a, Enum a, Eq a)
42894299 => Array a -> Fold m a b -> t m a -> t m b
42904300splitWithSuffixSeq patt f m =
4291− D.fromStreamD $ D.splitSuffixOn True patt f (D.toStreamD m)
4301+ D.fromStreamD $ D.splitOnSuffixSeq True patt f (D.toStreamD m)
42924302
42934303{-
42944304-- This can be implemented easily using Rabin Karp
42954305-- | Split post any one of the given patterns.
4296−{-# INLINE splitSuffixOnAny #-}
4297−splitSuffixOnAny
4306+{-# INLINE splitOnSuffixSeqAny #-}
4307+splitOnSuffixSeqAny
42984308 :: (IsStream t, Monad m, Storable a, Integral a)
42994309 => [Array a] -> Fold m a b -> t m a -> t m b
4300−splitSuffixOnAny subseq f m = undefined
4310+splitOnSuffixSeqAny subseq f m = undefined
43014311 -- D.fromStreamD $ D.splitPostAny f subseq (D.toStreamD m)
43024312-}
43034313