@@ -156,6 +156,12 @@ splitOnSuffixSeq str inh =
156156-- inspect $ 'splitOnSuffixSeq `hasNoType` ''Step
157157#endif
158158
159+-- | Split on suffix sequence.
160+splitWithSuffixSeq :: String -> Handle -> IO Int
161+splitWithSuffixSeq str inh =
162+ S.length $ IP.splitWithSuffixSeq (toarr str) FL.drain
163+ $ S.unfold FH.read inh -- >>= print
164+
159165o_1_space_reduce_read_split :: BenchEnv -> [Benchmark]
160166o_1_space_reduce_read_split env =
161167 [ bgroup "split"
@@ -185,6 +191,8 @@ o_1_space_reduce_read_split env =
185191 splitOnSeq "\r\n" inh
186192 , mkBench "S.splitOnSuffixSeq \"\\r\\n\" FL.drain" env $ \inh _ ->
187193 splitOnSuffixSeq "\r\n" inh
194+ , mkBench "S.splitWithSuffixSeq \"\\r\\n\" FL.drain" env $ \inh _ ->
195+ splitWithSuffixSeq "\r\n" inh
188196 , mkBench "S.splitOnSeq \"aa\" FL.drain" env $ \inh _ ->
189197 splitOnSeq "aa" inh
190198 , mkBench "S.splitOnSeq \"aaaa\" FL.drain" env $ \inh _ ->
@@ -201,6 +209,8 @@ o_1_space_reduce_read_split env =
201209 env $ \inh _ -> splitOnSeq100k inh
202210 , mkBenchSmall "S.splitOnSuffixSeq \"abcdefghijklmnopqrstuvwxyz\" FL.drain"
203211 env $ \inh _ -> splitOnSuffixSeq "abcdefghijklmnopqrstuvwxyz" inh
212+ , mkBenchSmall "S.splitWithSuffixSeq \"abcdefghijklmnopqrstuvwxyz\" FL.drain"
213+ env $ \inh _ -> splitWithSuffixSeq "abcdefghijklmnopqrstuvwxyz" inh
204214 ]
205215 ]
206216