@@ -618,8 +618,14 @@ t_strip = T.dropAround isSpace `eq` T.strip
618
618
tl_strip = TL. dropAround isSpace `eq` TL. strip
619
619
t_splitAt n = L. splitAt n `eqP` (unpack2 . T. splitAt n)
620
620
tl_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)
623
629
624
630
t_breakOn_id s = squid `eq` (uncurry T. append . T. breakOn s)
625
631
where squid t | T. null s = error " empty"
@@ -641,6 +647,13 @@ tl_breakOnEnd_end (NotEmpty s) t =
641
647
in k `TL.isSuffixOf` t && (TL. null m || s `TL.isSuffixOf` m)
642
648
t_break p = L. break p `eqP` (unpack2 . T. break p)
643
649
tl_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
+
644
657
t_group = L. group `eqP` (map unpackS . T. group)
645
658
tl_group = L. group `eqP` (map unpackS . TL. group)
646
659
t_groupBy p = L. groupBy p `eqP` (map unpackS . T. groupBy p)
@@ -1264,6 +1277,8 @@ tests =
1264
1277
testProperty " tl_splitAt" tl_splitAt,
1265
1278
testProperty " t_span" t_span,
1266
1279
testProperty " tl_span" tl_span,
1280
+ testProperty " t_spanEnd" t_spanEnd,
1281
+ testProperty " tl_spanEnd" tl_spanEnd,
1267
1282
testProperty " t_breakOn_id" t_breakOn_id,
1268
1283
testProperty " tl_breakOn_id" tl_breakOn_id,
1269
1284
testProperty " t_breakOn_start" t_breakOn_start,
@@ -1272,6 +1287,8 @@ tests =
1272
1287
testProperty " tl_breakOnEnd_end" tl_breakOnEnd_end,
1273
1288
testProperty " t_break" t_break,
1274
1289
testProperty " tl_break" tl_break,
1290
+ testProperty " t_breakEnd" t_breakEnd,
1291
+ testProperty " tl_breakEnd" tl_breakEnd,
1275
1292
testProperty " t_group" t_group,
1276
1293
testProperty " tl_group" tl_group,
1277
1294
testProperty " t_groupBy" t_groupBy,
0 commit comments