@@ -27,6 +27,10 @@ import System.Random (Random)
27
27
import Data.Functor.Identity
28
28
import Control.Monad.Trans.Writer
29
29
30
+ #if MIN_VERSION_base(4,4,0)
31
+ import Control.Monad.Zip
32
+ #endif
33
+
30
34
#define COMMON_CONTEXT(a, v) \
31
35
VANILLA_CONTEXT (a, v), VECTOR_CONTEXT (a, v)
32
36
@@ -452,12 +456,23 @@ testPolymorphicFunctions _ = $(testProperties [
452
456
constructrN xs n f = constructrN (f xs : xs) (n- 1 ) f
453
457
454
458
testTuplyFunctions :: forall a v . (COMMON_CONTEXT (a , v ), VECTOR_CONTEXT ((a , a ), v ), VECTOR_CONTEXT ((a , a , a ), v )) => v a -> [Test ]
455
- testTuplyFunctions _ = $ (testProperties ['prop_zip, 'prop_zip3 , 'prop_unzip, 'prop_unzip3 ])
459
+ testTuplyFunctions _ = $ (testProperties [ 'prop_zip, 'prop_zip3
460
+ , 'prop_unzip, 'prop_unzip3
461
+ #if MIN_VERSION_base(4,4,0)
462
+ , 'prop_mzip, 'prop_munzip
463
+ #endif
464
+ ])
456
465
where
457
466
prop_zip :: P (v a -> v a -> v (a , a )) = V. zip `eq` zip
458
467
prop_zip3 :: P (v a -> v a -> v a -> v (a , a , a )) = V. zip3 `eq` zip3
459
468
prop_unzip :: P (v (a , a ) -> (v a , v a )) = V. unzip `eq` unzip
460
469
prop_unzip3 :: P (v (a , a , a ) -> (v a , v a , v a )) = V. unzip3 `eq` unzip3
470
+ #if MIN_VERSION_base(4,4,0)
471
+ prop_mzip :: P (Data.Vector. Vector a -> Data.Vector. Vector a -> Data.Vector. Vector (a , a ))
472
+ = mzip `eq` zip
473
+ prop_munzip :: P (Data.Vector. Vector (a , a ) -> (Data.Vector. Vector a , Data.Vector. Vector a ))
474
+ = munzip `eq` unzip
475
+ #endif
461
476
462
477
testOrdFunctions :: forall a v . (COMMON_CONTEXT (a , v ), Ord a , Ord (v a )) => v a -> [Test ]
463
478
testOrdFunctions _ = $ (testProperties
0 commit comments