@@ -87,8 +87,14 @@ t_strip = T.dropAround isSpace `eq` T.strip
8787tl_strip = TL. dropAround isSpace `eq` TL. strip
8888t_splitAt n = L. splitAt n `eqP` (unpack2 . T. splitAt n)
8989tl_splitAt n = L. splitAt n `eqP` (unpack2 . TL. splitAt (fromIntegral n))
90- t_span p = L. span p `eqP` (unpack2 . T. span p)
91- tl_span p = L. span p `eqP` (unpack2 . TL. span p)
90+ t_span p = L. span p `eqP` (unpack2 . T. span p)
91+ tl_span p = L. span p `eqP` (unpack2 . TL. span p)
92+ t_spanEnd p = spanEnd p `eqP` (unpack2 . T. spanEnd p)
93+ tl_spanEnd p = spanEnd p `eqP` (unpack2 . TL. spanEnd p)
94+
95+ spanEnd :: (a -> Bool ) -> [a ] -> ([a ], [a ])
96+ spanEnd p l = case span p $ reverse l of
97+ (s, e) -> (reverse e, reverse s)
9298
9399t_breakOn_id s = squid `eq` (uncurry T. append . T. breakOn s)
94100 where squid t | T. null s = error " empty"
@@ -110,6 +116,13 @@ tl_breakOnEnd_end (NotEmpty s) t =
110116 in k `TL.isSuffixOf` t && (TL. null m || s `TL.isSuffixOf` m)
111117t_break p = L. break p `eqP` (unpack2 . T. break p)
112118tl_break p = L. break p `eqP` (unpack2 . TL. break p)
119+ t_breakEnd p = breakEnd p `eqP` (unpack2 . T. breakEnd p)
120+ tl_breakEnd p = breakEnd p `eqP` (unpack2 . TL. breakEnd p)
121+
122+ breakEnd :: (a -> Bool ) -> [a ] -> ([a ], [a ])
123+ breakEnd p l = case break p $ reverse l of
124+ (s, e) -> (reverse e, reverse s)
125+
113126t_group = L. group `eqP` (map unpackS . T. group)
114127tl_group = L. group `eqP` (map unpackS . TL. group)
115128t_groupBy p = L. groupBy p `eqP` (map unpackS . T. groupBy p)
@@ -275,6 +288,8 @@ testSubstrings =
275288 testProperty " tl_splitAt" tl_splitAt,
276289 testProperty " t_span" t_span,
277290 testProperty " tl_span" tl_span,
291+ testProperty " t_spanEnd" t_spanEnd,
292+ testProperty " tl_spanEnd" tl_spanEnd,
278293 testProperty " t_breakOn_id" t_breakOn_id,
279294 testProperty " tl_breakOn_id" tl_breakOn_id,
280295 testProperty " t_breakOn_start" t_breakOn_start,
@@ -283,6 +298,8 @@ testSubstrings =
283298 testProperty " tl_breakOnEnd_end" tl_breakOnEnd_end,
284299 testProperty " t_break" t_break,
285300 testProperty " tl_break" tl_break,
301+ testProperty " t_breakEnd" t_breakEnd,
302+ testProperty " tl_breakEnd" tl_breakEnd,
286303 testProperty " t_group" t_group,
287304 testProperty " tl_group" tl_group,
288305 testProperty " t_groupBy" t_groupBy,
0 commit comments