@@ -74,10 +74,13 @@ prop_minimum = L.minimum `eqEP` T.minimum
7474prop_scanl f z = L.scanl f z `eqP` (unpack . T.scanl f z)
7575
7676prop_replicate n = L.replicate n `eq` (unpack . T.replicate n)
77−prop_unfoldr f = L.unfoldr f `eq` (unpack . T.unfoldr f)
78− where types = f :: Int -> Maybe (Char,Int)
79−prop_unfoldrN n f = (L.take n . L.unfoldr f) `eq` (unpack . T.unfoldrN n f)
80− where types = f :: Int -> Maybe (Char,Int)
77+prop_unfoldr n = L.unfoldr f `eq` (unpack . T.unfoldr f)
78+ where f c | fromEnum c * 100 > n = Nothing
79+ | otherwise = Just (c, succ c)
80+
81+prop_unfoldrN n m = (L.take n . L.unfoldr f) `eq` (unpack . T.unfoldrN n f)
82+ where f c | fromEnum c * 100 > m = Nothing
83+ | otherwise = Just (c, succ c)
8184
8285prop_take n = L.take n `eqP` (unpack . T.take n)
8386prop_drop n = L.drop n `eqP` (unpack . T.drop n)
@@ -158,8 +161,8 @@ tests = [
158161 ("prop_scanl", mytest prop_scanl),
159162
160163 ("prop_replicate", mytest prop_replicate),
161−--("prop_unfoldr", mytest prop_unfoldr),
162−--("prop_unfoldrN", mytest prop_unfoldrN),
164+ ("prop_unfoldr", mytest prop_unfoldr),
165+ ("prop_unfoldrN", mytest prop_unfoldrN),
163166
164167 ("prop_take", mytest prop_take),
165168 ("prop_drop", mytest prop_drop),