on master help sign in
Rename Target to Stringy

--HG-- extra : convert_revision : 4095b0969e1fb99e86396a86039d8a72d7323944

commit0797072b973a22cd9bcd3b123d4a8959f1f49282 authorBryan O'Sullivan <bos@serpentine.com> dateSun 8 Mar 2009, 05:19 (18 years ago) parent3312996
1 file changed+134−134
tests/Properties.hs+134−134
tests/Properties.hs+134−134
@@ -54,49 +54,49 @@ prop_T_utf16BE = (E.decodeUtf16BE . E.encodeUtf16BE) `eq` id
5454prop_T_utf32LE = (E.decodeUtf32LE . E.encodeUtf32LE) `eq` id
5555prop_T_utf32BE = (E.decodeUtf32BE . E.encodeUtf32BE) `eq` id
5656
57−class Target t where
58− packT :: String -> t
59− unpackT :: t -> String
60− splitAtT :: Int -> t -> (t,t)
61− packTChunkSize :: Int -> String -> t
62− packTChunkSize _ = packT
63−
64−instance Target String where
65− packT = id
66− unpackT = id
67− splitAtT = splitAt
68−
69−instance Target (S.Stream Char) where
70− packT = S.streamList
71− unpackT = S.unstreamList
72− splitAtT n s = (S.take n s, S.drop n s)
73−
74−instance Target T.Text where
75− packT = T.pack
76− unpackT = T.unpack
77− splitAtT = T.splitAt
78−
79−instance Target TL.Text where
80− packTChunkSize k = SL.unstreamChunks k . S.streamList
81− packT = TL.pack
82− unpackT = TL.unpack
83− splitAtT = TL.splitAt . fromIntegral
57+class Stringy s where
58+ packS :: String -> s
59+ unpackS :: s -> String
60+ splitAtS :: Int -> s -> (s,s)
61+ packSChunkSize :: Int -> String -> s
62+ packSChunkSize _ = packS
63+
64+instance Stringy String where
65+ packS = id
66+ unpackS = id
67+ splitAtS = splitAt
68+
69+instance Stringy (S.Stream Char) where
70+ packS = S.streamList
71+ unpackS = S.unstreamList
72+ splitAtS n s = (S.take n s, S.drop n s)
73+
74+instance Stringy T.Text where
75+ packS = T.pack
76+ unpackS = T.unpack
77+ splitAtS = T.splitAt
78+
79+instance Stringy TL.Text where
80+ packSChunkSize k = SL.unstreamChunks k . S.streamList
81+ packS = TL.pack
82+ unpackS = TL.unpack
83+ splitAtS = TL.splitAt . fromIntegral
8484
8585-- Do two functions give the same answer?
8686eq :: (Eq a) => (t -> a) -> (t -> a) -> t -> Bool
8787eq a b s = crashy False $ a s == b s
8888
8989-- What about with the RHS packed?
90−eqP :: (Eq a, Show a, Target t) =>
91− (String -> a) -> (t -> a) -> String -> Word8 -> Bool
90+eqP :: (Eq a, Show a, Stringy s) =>
91+ (String -> a) -> (s -> a) -> String -> Word8 -> Bool
9292eqP a b s w = eq "orig" (a s) (b t) &&
9393 eq "mini" (a s) (b mini) &&
9494 eq "head" (a sa) (b ta) &&
9595 eq "tail" (a sb) (b tb)
96− where t = packT s
97− mini = packTChunkSize 10 s
96+ where t = packS s
97+ mini = packSChunkSize 10 s
9898 (sa,sb) = splitAt m s
99− (ta,tb) = splitAtT m t
99+ (ta,tb) = splitAtS m t
100100 l = length s
101101 m | l == 0 = n
102102 | otherwise = n `mod` l
@@ -105,37 +105,37 @@ eqP a b s w = eq "orig" (a s) (b t) &&
105105 | otherwise = trace (s ++ ": " ++ show a ++ " /= " ++ show b) False
106106
107107-- Or with the string non-empty, and the RHS packed?
108−eqEP :: (Eq a, Target t) =>
109− (String -> a) -> (t -> a) -> NotEmpty String -> Word8 -> Bool
108+eqEP :: (Eq a, Stringy s) =>
109+ (String -> a) -> (s -> a) -> NotEmpty String -> Word8 -> Bool
110110eqEP a b e w = a s == b t &&
111111 a s == b mini &&
112112 (null sa || a sa == b ta) &&
113113 (null sb || a sb == b tb)
114114 where (sa,sb) = splitAt m s
115− (ta,tb) = splitAtT m t
116− t = packT s
117− mini = packTChunkSize 10 s
115+ (ta,tb) = splitAtS m t
116+ t = packS s
117+ mini = packSChunkSize 10 s
118118 l = length s
119119 m | l == 0 = n
120120 | otherwise = n `mod` l
121121 n = fromIntegral w
122122 s = notEmpty e
123123
124−prop_S_cons x = (x:) `eqP` (unpackT . S.cons x)
125−prop_T_cons x = (x:) `eqP` (unpackT . T.cons x)
124+prop_S_cons x = (x:) `eqP` (unpackS . S.cons x)
125+prop_T_cons x = (x:) `eqP` (unpackS . T.cons x)
126126prop_TL_cons x = ((x:) `eqP` (TL.unpack . TL.cons x))
127−prop_S_snoc x = (++ [x]) `eqP` (unpackT . (flip S.snoc) x)
128−prop_T_snoc x = (++ [x]) `eqP` (unpackT . (flip T.snoc) x)
129−prop_TL_snoc x = (++ [x]) `eqP` (unpackT . (flip TL.snoc) x)
130−prop_T_append s = (s++) `eqP` (unpackT . T.append (packT s))
131−prop_T_appendS s = (s++) `eqP` (unpackT . S.unstream . S.append (S.stream (packT s)) . S.stream)
127+prop_S_snoc x = (++ [x]) `eqP` (unpackS . (flip S.snoc) x)
128+prop_T_snoc x = (++ [x]) `eqP` (unpackS . (flip T.snoc) x)
129+prop_TL_snoc x = (++ [x]) `eqP` (unpackS . (flip TL.snoc) x)
130+prop_T_append s = (s++) `eqP` (unpackS . T.append (packS s))
131+prop_T_appendS s = (s++) `eqP` (unpackS . S.unstream . S.append (S.stream (packS s)) . S.stream)
132132
133133uncons (x:xs) = Just (x,xs)
134134uncons _ = Nothing
135135
136−prop_T_uncons s = uncons `eqP` (fmap (second unpackT) . T.uncons)
136+prop_T_uncons s = uncons `eqP` (fmap (second unpackS) . T.uncons)
137137 where types = s :: String
138−prop_TL_uncons s = uncons `eqP` (fmap (second unpackT) . TL.uncons)
138+prop_TL_uncons s = uncons `eqP` (fmap (second unpackS) . TL.uncons)
139139 where types = s :: String
140140prop_S_head = head `eqEP` S.head
141141prop_T_head = head `eqEP` T.head
@@ -143,29 +143,29 @@ prop_TL_head = head `eqEP` TL.head
143143prop_S_last = last `eqEP` S.last
144144prop_T_last = last `eqEP` T.last
145145prop_TL_last = last `eqEP` TL.last
146−prop_S_tail = tail `eqEP` (unpackT . S.tail)
147−prop_T_tail = tail `eqEP` (unpackT . T.tail)
148−prop_TL_tail = tail `eqEP` (unpackT . TL.tail)
149−prop_S_init = init `eqEP` (unpackT . S.init)
150−prop_T_init = init `eqEP` (unpackT . T.init)
151−prop_TL_init = init `eqEP` (unpackT . TL.init)
146+prop_S_tail = tail `eqEP` (unpackS . S.tail)
147+prop_T_tail = tail `eqEP` (unpackS . T.tail)
148+prop_TL_tail = tail `eqEP` (unpackS . TL.tail)
149+prop_S_init = init `eqEP` (unpackS . S.init)
150+prop_T_init = init `eqEP` (unpackS . T.init)
151+prop_TL_init = init `eqEP` (unpackS . TL.init)
152152prop_S_null = null `eqP` S.null
153153prop_T_null = null `eqP` T.null
154154prop_TL_null = null `eqP` TL.null
155155prop_S_length = length `eqP` S.length
156156prop_T_length = length `eqP` T.length
157157prop_TL_length = length `eqP` (fromIntegral . TL.length)
158−prop_T_map f = map f `eqP` (unpackT . T.map f)
159−prop_TL_map f = map f `eqP` (unpackT . TL.map f)
160−prop_T_intercalate c = L.intercalate c `eq` (unpackT . T.intercalate (packT c) . map packT)
161−prop_TL_intercalate c = L.intercalate c `eq` (unpackT . TL.intercalate (TL.pack c) . map TL.pack)
162−prop_T_intersperse c = L.intersperse c `eqP` (unpackT . T.intersperse c)
163−prop_TL_intersperse c = L.intersperse c `eqP` (unpackT . TL.intersperse c)
164−prop_T_transpose = L.transpose `eq` (map unpackT . T.transpose . map packT)
165−prop_TL_transpose = L.transpose `eq` (map unpackT . TL.transpose . map TL.pack)
166−prop_T_reverse = L.reverse `eqP` (unpackT . T.reverse)
167−prop_TL_reverse = L.reverse `eqP` (unpackT . TL.reverse)
168−prop_T_reverse_short n = L.reverse `eqP` (unpackT . S.reverse . shorten n . S.stream)
158+prop_T_map f = map f `eqP` (unpackS . T.map f)
159+prop_TL_map f = map f `eqP` (unpackS . TL.map f)
160+prop_T_intercalate c = L.intercalate c `eq` (unpackS . T.intercalate (packS c) . map packS)
161+prop_TL_intercalate c = L.intercalate c `eq` (unpackS . TL.intercalate (TL.pack c) . map TL.pack)
162+prop_T_intersperse c = L.intersperse c `eqP` (unpackS . T.intersperse c)
163+prop_TL_intersperse c = L.intersperse c `eqP` (unpackS . TL.intersperse c)
164+prop_T_transpose = L.transpose `eq` (map unpackS . T.transpose . map packS)
165+prop_TL_transpose = L.transpose `eq` (map unpackS . TL.transpose . map TL.pack)
166+prop_T_reverse = L.reverse `eqP` (unpackS . T.reverse)
167+prop_TL_reverse = L.reverse `eqP` (unpackS . TL.reverse)
168+prop_T_reverse_short n = L.reverse `eqP` (unpackS . S.reverse . shorten n . S.stream)
169169
170170prop_T_foldl f z = L.foldl f z `eqP` (T.foldl f z)
171171 where types = f :: Char -> Char -> Char
@@ -186,10 +186,10 @@ prop_TL_foldr f z = L.foldr f z `eqP` TL.foldr f z
186186prop_T_foldr1 f = L.foldr1 f `eqEP` T.foldr1 f
187187prop_TL_foldr1 f = L.foldr1 f `eqEP` TL.foldr1 f
188188
189−prop_T_concat = L.concat `eq` (unpackT . T.concat . map packT)
190−prop_TL_concat = L.concat `eq` (unpackT . TL.concat . map TL.pack)
191−prop_T_concatMap f = L.concatMap f `eqP` (unpackT . T.concatMap (packT . f))
192−prop_TL_concatMap f = L.concatMap f `eqP` (unpackT . TL.concatMap (TL.pack . f))
189+prop_T_concat = L.concat `eq` (unpackS . T.concat . map packS)
190+prop_TL_concat = L.concat `eq` (unpackS . TL.concat . map TL.pack)
191+prop_T_concatMap f = L.concatMap f `eqP` (unpackS . T.concatMap (packS . f))
192+prop_TL_concatMap f = L.concatMap f `eqP` (unpackS . TL.concatMap (TL.pack . f))
193193prop_T_any p = L.any p `eqP` T.any p
194194prop_TL_any p = L.any p `eqP` TL.any p
195195prop_T_all p = L.all p `eqP` T.all p
@@ -199,73 +199,73 @@ prop_TL_maximum = L.maximum `eqEP` TL.maximum
199199prop_T_minimum = L.minimum `eqEP` T.minimum
200200prop_TL_minimum = L.minimum `eqEP` TL.minimum
201201
202−prop_T_scanl f z = L.scanl f z `eqP` (unpackT . T.scanl f z)
203−prop_TL_scanl f z = L.scanl f z `eqP` (unpackT . TL.scanl f z)
204−prop_T_scanl1 f = L.scanl1 f `eqP` (unpackT . T.scanl1 f)
205−prop_TL_scanl1 f = L.scanl1 f `eqP` (unpackT . TL.scanl1 f)
206−prop_T_scanr f z = L.scanr f z `eqP` (unpackT . T.scanr f z)
207−prop_TL_scanr f z = L.scanr f z `eqP` (unpackT . TL.scanr f z)
208−prop_T_scanr1 f = L.scanr1 f `eqP` (unpackT . T.scanr1 f)
209−prop_TL_scanr1 f = L.scanr1 f `eqP` (unpackT . TL.scanr1 f)
202+prop_T_scanl f z = L.scanl f z `eqP` (unpackS . T.scanl f z)
203+prop_TL_scanl f z = L.scanl f z `eqP` (unpackS . TL.scanl f z)
204+prop_T_scanl1 f = L.scanl1 f `eqP` (unpackS . T.scanl1 f)
205+prop_TL_scanl1 f = L.scanl1 f `eqP` (unpackS . TL.scanl1 f)
206+prop_T_scanr f z = L.scanr f z `eqP` (unpackS . T.scanr f z)
207+prop_TL_scanr f z = L.scanr f z `eqP` (unpackS . TL.scanr f z)
208+prop_T_scanr1 f = L.scanr1 f `eqP` (unpackS . T.scanr1 f)
209+prop_TL_scanr1 f = L.scanr1 f `eqP` (unpackS . TL.scanr1 f)
210210
211−prop_T_mapAccumL f z = L.mapAccumL f z `eqP` (second unpackT . T.mapAccumL f z)
211+prop_T_mapAccumL f z = L.mapAccumL f z `eqP` (second unpackS . T.mapAccumL f z)
212212 where types = f :: Int -> Char -> (Int,Char)
213−prop_TL_mapAccumL f z = L.mapAccumL f z `eqP` (second unpackT . TL.mapAccumL f z)
213+prop_TL_mapAccumL f z = L.mapAccumL f z `eqP` (second unpackS . TL.mapAccumL f z)
214214 where types = f :: Int -> Char -> (Int,Char)
215−prop_T_mapAccumR f z = L.mapAccumR f z `eqP` (second unpackT . T.mapAccumR f z)
215+prop_T_mapAccumR f z = L.mapAccumR f z `eqP` (second unpackS . T.mapAccumR f z)
216216 where types = f :: Int -> Char -> (Int,Char)
217−prop_TL_mapAccumR f z = L.mapAccumR f z `eqP` (second unpackT . TL.mapAccumR f z)
217+prop_TL_mapAccumR f z = L.mapAccumR f z `eqP` (second unpackS . TL.mapAccumR f z)
218218 where types = f :: Int -> Char -> (Int,Char)
219219
220−prop_T_replicate n = L.replicate n `eq` (unpackT . T.replicate n)
221−prop_TL_replicate n = L.replicate n `eq` (unpackT . TL.replicate n)
220+prop_T_replicate n = L.replicate n `eq` (unpackS . T.replicate n)
221+prop_TL_replicate n = L.replicate n `eq` (unpackS . TL.replicate n)
222222
223223unf :: Int -> Char -> Maybe (Char, Char)
224224unf n c | fromEnum c * 100 > n = Nothing
225225 | otherwise = Just (c, succ c)
226226
227−prop_T_unfoldr n = L.unfoldr (unf n) `eq` (unpackT . T.unfoldr (unf n))
228−prop_TL_unfoldr n = L.unfoldr (unf n) `eq` (unpackT . TL.unfoldr (unf n))
227+prop_T_unfoldr n = L.unfoldr (unf n) `eq` (unpackS . T.unfoldr (unf n))
228+prop_TL_unfoldr n = L.unfoldr (unf n) `eq` (unpackS . TL.unfoldr (unf n))
229229prop_T_unfoldrN n m = (L.take n . L.unfoldr (unf m)) `eq`
230− (unpackT . T.unfoldrN n (unf m))
230+ (unpackS . T.unfoldrN n (unf m))
231231prop_TL_unfoldrN n m = (L.take n . L.unfoldr (unf m)) `eq`
232− (unpackT . TL.unfoldrN (fromIntegral n) (unf m))
233−
234−unpack2 :: (Target t) => (t,t) -> (String,String)
235−unpack2 = unpackT *** unpackT
236−
237−prop_S_take n = L.take n `eqP` (unpackT . S.take n)
238−prop_T_take n = L.take n `eqP` (unpackT . T.take n)
239−prop_TL_take n = L.take n `eqP` (unpackT . TL.take (fromIntegral n))
240−prop_S_drop n = L.drop n `eqP` (unpackT . S.drop n)
241−prop_T_drop n = L.drop n `eqP` (unpackT . T.drop n)
242−prop_TL_drop n = L.drop n `eqP` (unpackT . TL.drop n)
243−prop_S_takeWhile p = L.takeWhile p `eqP` (unpackT . S.takeWhile p)
244−prop_T_takeWhile p = L.takeWhile p `eqP` (unpackT . T.takeWhile p)
245−prop_TL_takeWhile p = L.takeWhile p `eqP` (unpackT . TL.takeWhile p)
246−prop_S_dropWhile p = L.dropWhile p `eqP` (unpackT . S.dropWhile p)
247−prop_T_dropWhile p = L.dropWhile p `eqP` (unpackT . T.dropWhile p)
248−prop_TL_dropWhile p = L.dropWhile p `eqP` (unpackT . S.dropWhile p)
232+ (unpackS . TL.unfoldrN (fromIntegral n) (unf m))
233+
234+unpack2 :: (Stringy s) => (s,s) -> (String,String)
235+unpack2 = unpackS *** unpackS
236+
237+prop_S_take n = L.take n `eqP` (unpackS . S.take n)
238+prop_T_take n = L.take n `eqP` (unpackS . T.take n)
239+prop_TL_take n = L.take n `eqP` (unpackS . TL.take (fromIntegral n))
240+prop_S_drop n = L.drop n `eqP` (unpackS . S.drop n)
241+prop_T_drop n = L.drop n `eqP` (unpackS . T.drop n)
242+prop_TL_drop n = L.drop n `eqP` (unpackS . TL.drop n)
243+prop_S_takeWhile p = L.takeWhile p `eqP` (unpackS . S.takeWhile p)
244+prop_T_takeWhile p = L.takeWhile p `eqP` (unpackS . T.takeWhile p)
245+prop_TL_takeWhile p = L.takeWhile p `eqP` (unpackS . TL.takeWhile p)
246+prop_S_dropWhile p = L.dropWhile p `eqP` (unpackS . S.dropWhile p)
247+prop_T_dropWhile p = L.dropWhile p `eqP` (unpackS . T.dropWhile p)
248+prop_TL_dropWhile p = L.dropWhile p `eqP` (unpackS . S.dropWhile p)
249249prop_T_splitAt n = L.splitAt n `eqP` (unpack2 . T.splitAt n)
250250prop_TL_splitAt n = L.splitAt n `eqP` (unpack2 . TL.splitAt (fromIntegral n))
251251prop_T_span p = L.span p `eqP` (unpack2 . T.span p)
252252prop_TL_span p = L.span p `eqP` (unpack2 . TL.span p)
253253prop_T_break p = L.break p `eqP` (unpack2 . T.break p)
254254prop_TL_break p = L.break p `eqP` (unpack2 . TL.break p)
255−prop_T_group = L.group `eqP` (map unpackT . T.group)
256−prop_TL_group = L.group `eqP` (map unpackT . TL.group)
257−prop_T_groupBy p = L.groupBy p `eqP` (map unpackT . T.groupBy p)
258−prop_TL_groupBy p = L.groupBy p `eqP` (map unpackT . TL.groupBy p)
259−prop_T_inits = L.inits `eqP` (map unpackT . T.inits)
260−prop_TL_inits = L.inits `eqP` (map unpackT . TL.inits)
261−prop_T_tails = L.tails `eqP` (map unpackT . T.tails)
262−prop_TL_tails = L.tails `eqP` (map unpackT . TL.tails)
255+prop_T_group = L.group `eqP` (map unpackS . T.group)
256+prop_TL_group = L.group `eqP` (map unpackS . TL.group)
257+prop_T_groupBy p = L.groupBy p `eqP` (map unpackS . T.groupBy p)
258+prop_TL_groupBy p = L.groupBy p `eqP` (map unpackS . TL.groupBy p)
259+prop_T_inits = L.inits `eqP` (map unpackS . T.inits)
260+prop_TL_inits = L.inits `eqP` (map unpackS . TL.inits)
261+prop_T_tails = L.tails `eqP` (map unpackS . T.tails)
262+prop_TL_tails = L.tails `eqP` (map unpackS . TL.tails)
263263
264264prop_T_split_i c = id `eq` (T.intercalate (T.singleton c) . T.split c)
265265prop_TL_split_i c = id `eq` (TL.intercalate (TL.singleton c) . TL.split c)
266266
267−prop_T_splitWith p = splitWith p `eqP` (map unpackT . T.splitWith p)
268−prop_TL_splitWith p = splitWith p `eqP` (map unpackT . TL.splitWith p)
267+prop_T_splitWith p = splitWith p `eqP` (map unpackS . T.splitWith p)
268+prop_TL_splitWith p = splitWith p `eqP` (map unpackS . TL.splitWith p)
269269
270270splitWith :: (a -> Bool) -> [a] -> [[a]]
271271splitWith _ [] = []
@@ -281,10 +281,10 @@ prop_T_breakSubstringC c
281281 = L.break (==c) `eqP`
282282 (unpack2 . T.breakSubstring (T.singleton c))
283283
284−prop_T_lines = L.lines `eqP` (map unpackT . T.lines)
285−prop_TL_lines = L.lines `eqP` (map unpackT . TL.lines)
284+prop_T_lines = L.lines `eqP` (map unpackS . T.lines)
285+prop_TL_lines = L.lines `eqP` (map unpackS . TL.lines)
286286{-
287−prop_T_lines' = lines' `eqP` (map unpackT . T.lines')
287+prop_T_lines' = lines' `eqP` (map unpackS . T.lines')
288288 where lines' "" = []
289289 lines' s = let (l, s') = break eol s
290290 in l : case s' of
@@ -293,34 +293,34 @@ prop_T_lines' = lines' `eqP` (map unpackT . T.lines')
293293 (_:s'') -> lines' s''
294294 eol c = c == '\r' || c == '\n'
295295-}
296−prop_T_words = L.words `eqP` (map unpackT . T.words)
297−prop_TL_words = L.words `eqP` (map unpackT . TL.words)
298−prop_T_unlines = L.unlines `eq` (unpackT . T.unlines . map packT)
299−prop_TL_unlines = L.unlines `eq` (unpackT . TL.unlines . map packT)
300−prop_T_unwords = L.unwords `eq` (unpackT . T.unwords . map packT)
301−prop_TL_unwords = L.unwords `eq` (unpackT . TL.unwords . map packT)
302−
303−prop_S_isPrefixOf s = L.isPrefixOf s`eqP` (S.isPrefixOf (S.stream $ packT s) . S.stream)
304−prop_T_isPrefixOf s = L.isPrefixOf s`eqP` T.isPrefixOf (packT s)
305−prop_TL_isPrefixOf s = L.isPrefixOf s`eqP` TL.isPrefixOf (packT s)
306−prop_T_isSuffixOf s = L.isSuffixOf s`eqP` T.isSuffixOf (packT s)
307−prop_TL_isSuffixOf s = L.isSuffixOf s`eqP` TL.isSuffixOf (packT s)
308−prop_T_isInfixOf s = L.isInfixOf s `eqP` T.isInfixOf (packT s)
309−prop_TL_isInfixOf s = L.isInfixOf s `eqP` TL.isInfixOf (packT s)
296+prop_T_words = L.words `eqP` (map unpackS . T.words)
297+prop_TL_words = L.words `eqP` (map unpackS . TL.words)
298+prop_T_unlines = L.unlines `eq` (unpackS . T.unlines . map packS)
299+prop_TL_unlines = L.unlines `eq` (unpackS . TL.unlines . map packS)
300+prop_T_unwords = L.unwords `eq` (unpackS . T.unwords . map packS)
301+prop_TL_unwords = L.unwords `eq` (unpackS . TL.unwords . map packS)
302+
303+prop_S_isPrefixOf s = L.isPrefixOf s`eqP` (S.isPrefixOf (S.stream $ packS s) . S.stream)
304+prop_T_isPrefixOf s = L.isPrefixOf s`eqP` T.isPrefixOf (packS s)
305+prop_TL_isPrefixOf s = L.isPrefixOf s`eqP` TL.isPrefixOf (packS s)
306+prop_T_isSuffixOf s = L.isSuffixOf s`eqP` T.isSuffixOf (packS s)
307+prop_TL_isSuffixOf s = L.isSuffixOf s`eqP` TL.isSuffixOf (packS s)
308+prop_T_isInfixOf s = L.isInfixOf s `eqP` T.isInfixOf (packS s)
309+prop_TL_isInfixOf s = L.isInfixOf s `eqP` TL.isInfixOf (packS s)
310310
311311prop_T_elem c = L.elem c `eqP` T.elem c
312312prop_TL_elem c = L.elem c `eqP` TL.elem c
313−prop_T_filter p = L.filter p `eqP` (unpackT . T.filter p)
314−prop_TL_filter p = L.filter p `eqP` (unpackT . TL.filter p)
313+prop_T_filter p = L.filter p `eqP` (unpackS . T.filter p)
314+prop_TL_filter p = L.filter p `eqP` (unpackS . TL.filter p)
315315prop_T_find p = L.find p `eqP` T.find p
316316prop_TL_find p = L.find p `eqP` TL.find p
317317prop_T_partition p = L.partition p `eqP` (unpack2 . T.partition p)
318318prop_TL_partition p = L.partition p `eqP` (unpack2 . TL.partition p)
319319
320320prop_T_index x s = x < L.length s && x >= 0 ==>
321− (L.!!) s x == T.index (packT s) x
321+ (L.!!) s x == T.index (packS s) x
322322prop_TL_index x s = x < L.length s && x >= 0 ==>
323− (L.!!) s x == TL.index (packT s) (fromIntegral x)
323+ (L.!!) s x == TL.index (packS s) (fromIntegral x)
324324prop_T_findIndex p = L.findIndex p `eqP` T.findIndex p
325325prop_TL_findIndex p = (fmap fromIntegral . L.findIndex p) `eqP` TL.findIndex p
326326prop_T_findIndices p = L.findIndices p `eqP` T.findIndices p
@@ -331,8 +331,8 @@ prop_T_elemIndices c = L.elemIndices c`eqP` T.elemIndices c
331331prop_TL_elemIndices c = (fmap fromIntegral . L.elemIndices c) `eqP` TL.elemIndices c
332332prop_T_count c = (L.length . L.elemIndices c) `eqP` T.count c
333333prop_TL_count c = (fromIntegral . L.length . L.elemIndices c) `eqP` TL.count c
334−prop_T_zipWith c s = L.zipWith c s `eqP` (unpackT . T.zipWith c (packT s))
335−prop_TL_zipWith c s = L.zipWith c s `eqP` (unpackT . TL.zipWith c (packT s))
334+prop_T_zipWith c s = L.zipWith c s `eqP` (unpackS . T.zipWith c (packS s))
335+prop_TL_zipWith c s = L.zipWith c s `eqP` (unpackS . TL.zipWith c (packS s))
336336
337337-- Regression tests.
338338prop_S_filter_eq s = S.filter p t == S.streamList (filter p s)