aboutsummaryrefslogtreecommitdiff
path: root/tests/bkpregex/str-impls/Str/ByteString.hs
diff options
context:
space:
mode:
authorDaniel Gröber <dxld@darkboxed.org>2017-12-03 01:08:37 +0100
committerDaniel Gröber <dxld@darkboxed.org>2018-01-18 14:10:26 +0100
commit412148ce5f7911e818c6fe1e50981c2cd94858b1 (patch)
tree750ed1a5aaf56e3e5475ab9b6a7d9435e1617e14 /tests/bkpregex/str-impls/Str/ByteString.hs
parent49dca6e8963a8fcd4e30d76d65068e9fa76a4a8d (diff)
ghc-session: Add backpack test project
Diffstat (limited to 'tests/bkpregex/str-impls/Str/ByteString.hs')
-rw-r--r--tests/bkpregex/str-impls/Str/ByteString.hs17
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/bkpregex/str-impls/Str/ByteString.hs b/tests/bkpregex/str-impls/Str/ByteString.hs
new file mode 100644
index 0000000..cd49fed
--- /dev/null
+++ b/tests/bkpregex/str-impls/Str/ByteString.hs
@@ -0,0 +1,17 @@
+module Str.ByteString(module Data.ByteString.Char8, module Str.ByteString) where
+
+import Prelude hiding (length, null, splitAt)
+import Data.ByteString.Char8
+import Data.ByteString
+
+type Str = ByteString
+
+splits :: Str -> [(Str, Str)]
+splits s = fmap (\n -> splitAt n s) [0..length s]
+
+parts :: Str -> [[Str]]
+parts s | null s = [[]]
+ | otherwise = do
+ n <- [1..length s]
+ let (l, r) = splitAt n s
+ fmap (l:) (parts r)