@@ -618,8 +618,14 @@ t_strip = T.dropAround isSpace `eq` T.strip
618618tl_strip = TL. dropAround isSpace `eq` TL. strip
619619t_splitAt n = L. splitAt n `eqP` (unpack2 . T. splitAt n)
620620tl_splitAt n = L. splitAt n `eqP` (unpack2 . TL. splitAt (fromIntegral n))
621- t_span p = L. span p `eqP` (unpack2 . T. span p)
622- tl_span p = L. span p `eqP` (unpack2 . TL. span p)
621+ t_span p = L. span p `eqP` (unpack2 . T. span p)
622+ tl_span p = L. span p `eqP` (unpack2 . TL. span p)
623+ t_spanEnd p = spanEnd p `eqP` (unpack2 . T. spanEnd p)
624+ tl_spanEnd p = spanEnd p `eqP` (unpack2 . TL. spanEnd p)
625+
626+ spanEnd :: (a -> Bool ) -> [a ] -> ([a ], [a ])
627+ spanEnd p l = case span p $ reverse l of
628+ (s, e) -> (reverse e, reverse s)
623629
624630t_breakOn_id s = squid `eq` (uncurry T. append . T. breakOn s)
625631 where squid t | T. null s = error " empty"
@@ -641,6 +647,13 @@ tl_breakOnEnd_end (NotEmpty s) t =
641647 in k `TL.isSuffixOf` t && (TL. null m || s `TL.isSuffixOf` m)
642648t_break p = L. break p `eqP` (unpack2 . T. break p)
643649tl_break p = L. break p `eqP` (unpack2 . TL. break p)
650+ t_breakEnd p = breakEnd p `eqP` (unpack2 . T. breakEnd p)
651+ tl_breakEnd p = breakEnd p `eqP` (unpack2 . TL. breakEnd p)
652+
653+ breakEnd :: (a -> Bool ) -> [a ] -> ([a ], [a ])
654+ breakEnd p l = case break p $ reverse l of
655+ (s, e) -> (reverse e, reverse s)
656+
644657t_group = L. group `eqP` (map unpackS . T. group)
645658tl_group = L. group `eqP` (map unpackS . TL. group)
646659t_groupBy p = L. groupBy p `eqP` (map unpackS . T. groupBy p)
@@ -1264,6 +1277,8 @@ tests =
12641277 testProperty " tl_splitAt" tl_splitAt,
12651278 testProperty " t_span" t_span,
12661279 testProperty " tl_span" tl_span,
1280+ testProperty " t_spanEnd" t_spanEnd,
1281+ testProperty " tl_spanEnd" tl_spanEnd,
12671282 testProperty " t_breakOn_id" t_breakOn_id,
12681283 testProperty " tl_breakOn_id" tl_breakOn_id,
12691284 testProperty " t_breakOn_start" t_breakOn_start,
@@ -1272,6 +1287,8 @@ tests =
12721287 testProperty " tl_breakOnEnd_end" tl_breakOnEnd_end,
12731288 testProperty " t_break" t_break,
12741289 testProperty " tl_break" tl_break,
1290+ testProperty " t_breakEnd" t_breakEnd,
1291+ testProperty " tl_breakEnd" tl_breakEnd,
12751292 testProperty " t_group" t_group,
12761293 testProperty " tl_group" tl_group,
12771294 testProperty " t_groupBy" t_groupBy,
0 commit comments