$ /nix/store/9ypz3flqsrl5xl495mm8h645gadjsxi1-coreutils-9.11/bin/timeout --kill-after=15s 7200s /nix/store/23zk8sgzamrbmj1fday15szf7f2279s8-nix-2.34.7/bin/nix --extra-experimental-features nix-command --extra-experimental-features flakes --log-format internal-json build --no-link --print-out-paths git+https://github.com/sellout/duoids?ref=renovate%2Flock-file-maintenance&rev=aeca24e0ba147679323a49b0d71b1010da9c6629#packages.x86_64-linux.ghc9122_all --print-build-logs warning: ignoring untrusted flake configuration setting 'allow-import-from-derivation'. Pass '--accept-flake-config' to trust it warning: ignoring untrusted flake configuration setting 'extra-experimental-features'. Pass '--accept-flake-config' to trust it warning: ignoring untrusted flake configuration setting 'extra-substituters'. Pass '--accept-flake-config' to trust it warning: ignoring untrusted flake configuration setting 'extra-trusted-public-keys'. Pass '--accept-flake-config' to trust it warning: ignoring untrusted flake configuration setting 'sandbox'. Pass '--accept-flake-config' to trust it warning: ignoring untrusted flake configuration setting 'use-registries'. Pass '--accept-flake-config' to trust it  Downloading cached pretty-show-1.10-data from https://cache.nix-ci.com Downloading cached barbies-2.1.1.0-doc from https://cache.nix-ci.com Downloading cached concurrent-output-1.10.21-doc from https://cache.nix-ci.com Downloading cached erf-2.0.0.0-doc from https://cache.nix-ci.com Downloading cached haskell-lexer-1.2.1-doc from https://cache.nix-ci.com Downloading cached lifted-base-0.2.3.12-doc from https://cache.nix-ci.com Downloading cached wl-pprint-annotated-0.1.0.1-doc from https://cache.nix-ci.com Downloading cached hscolour from https://cache.nix-ci.com Downloading cached Cabal-syntax-3.12.1.0-doc from https://cache.nix-ci.com Downloading cached cabal-doctest-1.0.12-doc from https://cache.nix-ci.com Downloading cached inspection-testing-0.6.2-doc from https://cache.nix-ci.com Downloading cached ghc-paths-0.1.0.12-doc from https://cache.nix-ci.com Downloading cached jailbreak-cabal from https://cache.nix-ci.com Downloading cached ChasingBottoms-1.3.1.17-doc from https://cache.nix-ci.com Downloading cached tasty-quickcheck-0.11.1-doc from https://cache.nix-ci.com Downloading cached wherefrom-compat-0.1.1.1-doc from https://cache.nix-ci.com Progress: 0 of 36 built, 1 of 43 downloaded from cache (15 downloading) Progress: 0 of 36 built, 2 of 43 downloaded from cache (14 downloading) Downloading cached wl-pprint-annotated from https://cache.nix-ci.com Progress: 0 of 36 built, 3 of 43 downloaded from cache (14 downloading) Downloading cached erf from https://cache.nix-ci.com Progress: 0 of 36 built, 4 of 43 downloaded from cache (14 downloading) Downloading cached lifted-async-0.10.2.7-doc from https://cache.nix-ci.com Downloading cached lifted-base from https://cache.nix-ci.com Progress: 0 of 36 built, 5 of 43 downloaded from cache (15 downloading) Downloading cached concurrent-output from https://cache.nix-ci.com Progress: 0 of 36 built, 6 of 43 downloaded from cache (15 downloading) Downloading cached doctest-0.24.2-doc from https://cache.nix-ci.com Progress: 0 of 36 built, 7 of 43 downloaded from cache (15 downloading) Downloading cached ghc-paths from https://cache.nix-ci.com Progress: 0 of 35 built, 8 of 43 downloaded from cache (15 downloading) Downloading cached haskell-lexer from https://cache.nix-ci.com Progress: 0 of 35 built, 9 of 43 downloaded from cache (15 downloading) Downloading cached pretty-show-1.10-doc from https://cache.nix-ci.com Progress: 0 of 35 built, 10 of 43 downloaded from cache (15 downloading) Downloading cached tasty-quickcheck from https://cache.nix-ci.com Progress: 0 of 35 built, 11 of 43 downloaded from cache (15 downloading) Downloading cached barbies from https://cache.nix-ci.com Progress: 0 of 35 built, 12 of 43 downloaded from cache (15 downloading) Downloading cached inspection-testing from https://cache.nix-ci.com Progress: 0 of 35 built, 13 of 43 downloaded from cache (15 downloading) Downloading cached tasty-inspection-testing-0.2.1-doc from https://cache.nix-ci.com Progress: 0 of 35 built, 14 of 43 downloaded from cache (15 downloading) Downloading cached wherefrom-compat from https://cache.nix-ci.com Progress: 0 of 35 built, 15 of 43 downloaded from cache (15 downloading) Downloading cached ChasingBottoms from https://cache.nix-ci.com Progress: 0 of 34 built, 16 of 43 downloaded from cache (15 downloading) Progress: 0 of 34 built, 17 of 43 downloaded from cache (14 downloading) Downloading cached lifted-async from https://cache.nix-ci.com Progress: 0 of 33 built, 18 of 43 downloaded from cache (14 downloading) Progress: 0 of 32 built, 19 of 43 downloaded from cache (13 downloading) Progress: 0 of 31 built, 20 of 43 downloaded from cache (12 downloading) Progress: 0 of 31 built, 21 of 43 downloaded from cache (11 downloading) Downloading cached doctest from https://sellout.cachix.org Progress: 0 of 31 built, 22 of 43 downloaded from cache (11 downloading) Progress: 0 of 30 built, 23 of 43 downloaded from cache (10 downloading) Downloading cached hedgehog-1.5-doc from https://cache.nix-ci.com Progress: 0 of 30 built, 24 of 43 downloaded from cache (10 downloading) Progress: 0 of 29 built, 25 of 43 downloaded from cache (9 downloading) Progress: 0 of 28 built, 26 of 43 downloaded from cache (8 downloading) Downloading cached pretty-show from https://cache.nix-ci.com Progress: 0 of 27 built, 27 of 43 downloaded from cache (8 downloading) Downloading cached Cabal-3.12.1.0-doc from https://cache.nix-ci.com Progress: 0 of 27 built, 28 of 43 downloaded from cache (9 downloading) Downloading cached Cabal-syntax from https://cache.nix-ci.com Progress: 0 of 26 built, 29 of 43 downloaded from cache (8 downloading) Progress: 0 of 25 built, 30 of 43 downloaded from cache (7 downloading) Downloading cached tasty-hedgehog-1.4.0.2-doc from https://cache.nix-ci.com Progress: 0 of 25 built, 31 of 43 downloaded from cache (7 downloading) Progress: 0 of 25 built, 32 of 43 downloaded from cache (6 downloading) Progress: 0 of 24 built, 33 of 43 downloaded from cache (5 downloading) Downloading cached tasty-inspection-testing from https://cache.nix-ci.com Progress: 0 of 23 built, 34 of 43 downloaded from cache (5 downloading) Downloading cached hedgehog from https://cache.nix-ci.com Progress: 0 of 22 built, 35 of 43 downloaded from cache (5 downloading) Progress: 0 of 22 built, 36 of 43 downloaded from cache (4 downloading) Progress: 0 of 22 built, 37 of 43 downloaded from cache (3 downloading) Progress: 0 of 21 built, 38 of 43 downloaded from cache (2 downloading) Downloading cached tasty-hedgehog from https://cache.nix-ci.com Progress: 0 of 20 built, 39 of 43 downloaded from cache (2 downloading) Progress: 0 of 19 built, 40 of 43 downloaded from cache (1 downloading) Downloading cached Cabal from https://cache.nix-ci.com Progress: 0 of 19 built, 41 of 43 downloaded from cache (1 downloading) Building /nix/store/ky0jn5rgd99f7m5053dqbc7ssfra3h61-vector-0.13.2.0.drv [vector] Phase: setupCompilerEnvironmentPhase [vector] Build with /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2. Progress: 0 of 18 built (1 building), 42 of 43 downloaded from cache Downloading cached cabal-doctest from https://cache.nix-ci.com Progress: 0 of 17 built (1 building), 43 of 43 downloaded from cache Building /nix/store/mcqv3lw617q3fa2bj5px52d67dl3if1c-duoids-0.0.1.0.drv [vector] Phase: unpackPhase [vector] unpacking source archive /nix/store/ysi2m95adzhn3nmggwppnxvmps3a93x3-vector-0.13.2.0.tar.gz [vector] source root is vector-0.13.2.0 [vector] setting SOURCE_DATE_EPOCH to timestamp 1000000000 of file "vector-0.13.2.0/vector.cabal" [vector] Phase: patchPhase [vector] Replace Cabal file with edited version from mirror://hackage/vector-0.13.2.0/revision/2.cabal. [vector] Run jailbreak-cabal to lift version restrictions on build inputs. [vector] Phase: compileBuildDriverPhase [vector] setupCompileFlags: -package-db=/build/tmp.mGNR15s5od/setup-package.conf.d -threaded [duoids] Phase: setupCompilerEnvironmentPhase [duoids] Build with /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2. [vector] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.mGNR15s5od/Main.o ) [duoids] Phase: unpackPhase [duoids] unpacking source archive /nix/store/j3nhvvhbp8d5l29mqdaf8f513lxyga6r-z8smrhvl4j2a1x1vb5nv502a87a6wsx7-source/./core [duoids] source root is core [duoids] Phase: patchPhase [vector] [2 of 2] Linking Setup [duoids] Phase: compileBuildDriverPhase [duoids] setupCompileFlags: -package-db=/build/tmp.atY5Pg3FL4/setup-package.conf.d -threaded [duoids] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.atY5Pg3FL4/Main.o ) [duoids] [2 of 2] Linking Setup [duoids] Phase: updateAutotoolsGnuConfigScriptsPhase [duoids] Phase: configurePhase [vector] Phase: updateAutotoolsGnuConfigScriptsPhase [duoids] configureFlags: --verbose --prefix=/nix/store/dxchzkr03dgfn7fwrd25dnkc7dzwhcka-duoids-0.0.1.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/nix/store/jlvngamji60zzgwx0d0rwhjnx02j7xgx-duoids-0.0.1.0-doc/share/doc/duoids-0.0.1.0 --with-gcc=gcc --package-db=/build/tmp.atY5Pg3FL4/package.conf.d --ghc-option=-j16 --ghc-option=+RTS --ghc-option=-A64M --ghc-option=-RTS --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --enable-static --disable-executable-dynamic --enable-tests --disable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-option=-haddock --ghc-options=-Werror --extra-lib-dirs=/nix/store/ffyzkisqs4vc4mg28bwwlyqjf8i9ph6b-ncurses-6.5/lib --extra-lib-dirs=/nix/store/n28qgdj8c1q41kf7n4y1jxa6ckp85m3c-libffi-3.5.2/lib --extra-lib-dirs=/nix/store/1b6h99dw7bk4wbn77kbalih42zbc67m1-elfutils-0.194/lib --extra-lib-dirs=/nix/store/hi0ar880110k6jsmmili7dh1gq3cg2a9-gmp-with-cxx-6.3.0/lib --extra-lib-dirs=/nix/store/g09cflpnp4g80q56sj9dng1qzv4v4ybc-numactl-2.0.18/lib --extra-lib-dirs=/nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/lib [vector] Phase: configurePhase [duoids] Using Parsec parser [duoids] Configuring duoids-0.0.1.0... [vector] configureFlags: --verbose --prefix=/nix/store/71ln3bc26gqnrxbky6iaic4k8npwd9d2-vector-0.13.2.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --with-gcc=gcc --package-db=/build/tmp.mGNR15s5od/package.conf.d --ghc-option=-j16 --ghc-option=+RTS --ghc-option=-A64M --ghc-option=-RTS --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --enable-static --disable-executable-dynamic --enable-tests --disable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --extra-lib-dirs=/nix/store/ffyzkisqs4vc4mg28bwwlyqjf8i9ph6b-ncurses-6.5/lib --extra-lib-dirs=/nix/store/n28qgdj8c1q41kf7n4y1jxa6ckp85m3c-libffi-3.5.2/lib --extra-lib-dirs=/nix/store/1b6h99dw7bk4wbn77kbalih42zbc67m1-elfutils-0.194/lib --extra-lib-dirs=/nix/store/hi0ar880110k6jsmmili7dh1gq3cg2a9-gmp-with-cxx-6.3.0/lib --extra-lib-dirs=/nix/store/g09cflpnp4g80q56sj9dng1qzv4v4ybc-numactl-2.0.18/lib --extra-lib-dirs=/nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/lib [vector] Using Parsec parser [vector] Configuring vector-0.13.2.0... [duoids] Warning: Unknown/unsupported 'ghc' version detected (Cabal 3.14.1.0 supports [duoids] 'ghc' version < 9.12): [duoids] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc is version [duoids] 9.12.2 [vector] Warning: Unknown/unsupported 'ghc' version detected (Cabal 3.14.1.0 supports [vector] 'ghc' version < 9.12): [vector] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc is version [vector] 9.12.2 [duoids] Flags chosen: lint=False, noisy-deprecations=True [vector] Flags chosen: boundschecks=True, internalchecks=False, unsafechecks=False, [vector] wall=False [vector] Dependency base: using base-4.21.0.0 [vector] Dependency deepseq: using deepseq-1.5.1.0 [vector] Dependency primitive: using primitive-0.9.1.0 [vector] Dependency vector-stream: using vector-stream-0.1.0.1 [vector] Dependency base: using base-4.21.0.0 [vector] Dependency random: using random-1.2.1.3 [vector] Dependency tasty: using tasty-1.5.3 [vector] Dependency vector: using vector-0.13.2.0 [vector] Dependency QuickCheck: using QuickCheck-2.15.0.1 [vector] Dependency base: using base-4.21.0.0 [vector] Dependency base-orphans: using base-orphans-0.9.3 [vector] Dependency primitive: using primitive-0.9.1.0 [vector] Dependency random: using random-1.2.1.3 [vector] Dependency tasty: using tasty-1.5.3 [vector] Dependency tasty-hunit: using tasty-hunit-0.10.2 [vector] Dependency tasty-quickcheck: using tasty-quickcheck-0.11.1 [vector] Dependency template-haskell: using template-haskell-2.23.0.0 [vector] Dependency transformers: using transformers-0.6.1.2 [vector] Dependency vector: using vector-0.13.2.0 [vector] Dependency QuickCheck: using QuickCheck-2.15.0.1 [vector] Dependency base: using base-4.21.0.0 [vector] Dependency base-orphans: using base-orphans-0.9.3 [vector] Dependency primitive: using primitive-0.9.1.0 [vector] Dependency random: using random-1.2.1.3 [vector] Dependency tasty: using tasty-1.5.3 [vector] Dependency tasty-hunit: using tasty-hunit-0.10.2 [vector] Dependency tasty-quickcheck: using tasty-quickcheck-0.11.1 [vector] Dependency template-haskell: using template-haskell-2.23.0.0 [vector] Dependency transformers: using transformers-0.6.1.2 [vector] Dependency vector: using vector-0.13.2.0 [vector] Dependency base: using base-4.21.0.0 [vector] Dependency doctest: using doctest-0.24.2 [vector] Dependency primitive: using primitive-0.9.1.0 [vector] Dependency vector: using vector-0.13.2.0 [vector] Dependency base: using base-4.21.0.0 [vector] Dependency primitive: using primitive-0.9.1.0 [vector] Dependency tasty: using tasty-1.5.3 [vector] Dependency tasty-inspection-testing: using tasty-inspection-testing-0.2.1 [vector] Dependency vector: using vector-0.13.2.0 [vector] Source component graph: [vector]  component lib [vector]  component lib:benchmarks-O2 dependency lib [vector]  component test:vector-doctest dependency lib [vector]  component test:vector-inspection dependency lib [vector]  component test:vector-tests-O0 dependency lib [vector]  component test:vector-tests-O2 dependency lib [vector] Configured component graph: [vector]  component vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH [vector]  include base-4.21.0.0-b334 [vector]  include deepseq-1.5.1.0-3c62 [vector]  include primitive-0.9.1.0-GUZ9pmn8oTWdoWsH4TBO0 [vector]  include vector-stream-0.1.0.1-ChLtnSdgBTn6SMCUdrCJ9I [vector]  component vector-0.13.2.0-K7RaEIChlREEqHxVuF3SH8-benchmarks-O2 [vector]  include base-4.21.0.0-b334 [vector]  include random-1.2.1.3-JGcOiyH1u317hgRB7TWWFV [vector]  include tasty-1.5.3-1P3AH5KqZrKLTVMzNZdHkm [vector]  include vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH [vector]  component vector-0.13.2.0-9hnhm1pD0j88NVy1x16lJk-vector-doctest [vector]  include base-4.21.0.0-b334 [vector]  include doctest-0.24.2-7dcRhyR7fwsJGtJTyCZo6u [vector]  include primitive-0.9.1.0-GUZ9pmn8oTWdoWsH4TBO0 [vector]  include vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH [vector]  component vector-0.13.2.0-DbskmzUAIx21PcGJKbvD6R-vector-inspection [vector]  include base-4.21.0.0-b334 [vector]  include primitive-0.9.1.0-GUZ9pmn8oTWdoWsH4TBO0 [vector]  include tasty-1.5.3-1P3AH5KqZrKLTVMzNZdHkm [vector]  include tasty-inspection-testing-0.2.1-4BytlpkEFY7JoNGJ0ndPgt [vector]  include vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH [vector]  component vector-0.13.2.0-6MB9OaQQVEdLiug5Yrv4Qb-vector-tests-O0 [vector]  include QuickCheck-2.15.0.1-4a6QuHFK3EgHKorV6DzjdR [vector]  include base-4.21.0.0-b334 [vector]  include base-orphans-0.9.3-21QsAxVCjWHDf2LYb4emj [vector]  include primitive-0.9.1.0-GUZ9pmn8oTWdoWsH4TBO0 [vector]  include random-1.2.1.3-JGcOiyH1u317hgRB7TWWFV [vector]  include tasty-1.5.3-1P3AH5KqZrKLTVMzNZdHkm [vector]  include tasty-hunit-0.10.2-JRT4tyEuMHKBzpxUU6VUG8 [vector]  include tasty-quickcheck-0.11.1-Ca4DEyt784fFBsV7HOinsy [vector]  include template-haskell-2.23.0.0-4ee9 [vector]  include transformers-0.6.1.2-2558 [vector]  include vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH [vector]  component vector-0.13.2.0-AXOUAscy1QX2RfxcSXsPHR-vector-tests-O2 [vector]  include QuickCheck-2.15.0.1-4a6QuHFK3EgHKorV6DzjdR [vector]  include base-4.21.0.0-b334 [vector]  include base-orphans-0.9.3-21QsAxVCjWHDf2LYb4emj [vector]  include primitive-0.9.1.0-GUZ9pmn8oTWdoWsH4TBO0 [vector]  include random-1.2.1.3-JGcOiyH1u317hgRB7TWWFV [vector]  include tasty-1.5.3-1P3AH5KqZrKLTVMzNZdHkm [vector]  include tasty-hunit-0.10.2-JRT4tyEuMHKBzpxUU6VUG8 [vector]  include tasty-quickcheck-0.11.1-Ca4DEyt784fFBsV7HOinsy [vector]  include template-haskell-2.23.0.0-4ee9 [vector]  include transformers-0.6.1.2-2558 [vector]  include vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH [vector] Linked component graph: [vector]  unit vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH [vector]  include base-4.21.0.0-b334 [vector]  include deepseq-1.5.1.0-3c62 [vector]  include primitive-0.9.1.0-GUZ9pmn8oTWdoWsH4TBO0 [vector]  include vector-stream-0.1.0.1-ChLtnSdgBTn6SMCUdrCJ9I [vector]  Data.Vector=vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH:Data.Vector,Data.Vector.Fusion.Bundle=vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH:Data.Vector.Fusion.Bundle,Data.Vector.Fusion.Bundle.Monadic=vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH:Data.Vector.Fusion.Bundle.Monadic,Data.Vector.Fusion.Bundle.Size=vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH:Data.Vector.Fusion.Bundle.Size,Data.Vector.Fusion.Stream.Monadic=vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH:Data.Vector.Fusion.Stream.Monadic,Data.Vector.Fusion.Util=vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH:Data.Vector.Fusion.Util,Data.Vector.Generic=vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH:Data.Vector.Generic,Data.Vector.Generic.Base=vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH:Data.Vector.Generic.Base,Data.Vector.Generic.Mutable=vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH:Data.Vector.Generic.Mutable,Data.Vector.Generic.Mutable.Base=vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH:Data.Vector.Generic.Mutable.Base,Data.Vector.Generic.New=vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH:Data.Vector.Generic.New,Data.Vector.Internal.Check=vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH:Data.Vector.Internal.Check,Data.Vector.Mutable=vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH:Data.Vector.Mutable,Data.Vector.Primitive=vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH:Data.Vector.Primitive,Data.Vector.Primitive.Mutable=vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH:Data.Vector.Primitive.Mutable,Data.Vector.Storable=vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH:Data.Vector.Storable,Data.Vector.Storable.Internal=vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH:Data.Vector.Storable.Internal,Data.Vector.Storable.Mutable=vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH:Data.Vector.Storable.Mutable,Data.Vector.Strict=vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH:Data.Vector.Strict,Data.Vector.Strict.Mutable=vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH:Data.Vector.Strict.Mutable,Data.Vector.Unboxed=vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH:Data.Vector.Unboxed,Data.Vector.Unboxed.Base=vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH:Data.Vector.Unboxed.Base,Data.Vector.Unboxed.Mutable=vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH:Data.Vector.Unboxed.Mutable [vector]  unit vector-0.13.2.0-K7RaEIChlREEqHxVuF3SH8-benchmarks-O2 [vector]  include base-4.21.0.0-b334 [vector]  include random-1.2.1.3-JGcOiyH1u317hgRB7TWWFV [vector]  include tasty-1.5.3-1P3AH5KqZrKLTVMzNZdHkm [vector]  include vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH [duoids] Dependency base >=4.16.0 && <4.17 || >=4.17.0 && <4.18 || >=4.18.0 && <4.19 || [duoids] >=4.19.0 && <4.20 || >=4.20.0 && <4.21 || >=4.21.0 && <4.22 || >=4.22.0 && [duoids] <4.23: using base-4.21.0.0 [duoids] Dependency ghc-compat-plugin >=0.1.0 && <0.2: using ghc-compat-plugin-0.1.0.1 [duoids] Dependency base >=4.16.0 && <4.17 || >=4.17.0 && <4.18 || >=4.18.0 && <4.19 || [duoids] >=4.19.0 && <4.20 || >=4.20.0 && <4.21 || >=4.21.0 && <4.22 || >=4.22.0 && [duoids] <4.23: using base-4.21.0.0 [duoids] Dependency doctest >=0.18.2 && <0.19 || >=0.20.1 && <0.21 || >=0.21.1 && <0.22 [duoids] || >=0.22.6 && <0.23 || >=0.24.0 && <0.25 || >=0.25.0 && <0.26: using [duoids] doctest-0.24.2 [duoids] Dependency duoids: using duoids-0.0.1.0 [duoids] Dependency ghc-compat-plugin >=0.1.0 && <0.2: using ghc-compat-plugin-0.1.0.1 [duoids] Source component graph: [duoids]  component lib [duoids]  component test:doctests dependency lib [duoids] Configured component graph: [duoids]  component duoids-0.0.1.0-Jzc4b5W36dXEvfr963zxkm [duoids]  include base-4.21.0.0-b334 [duoids]  include ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [duoids]  component duoids-0.0.1.0-Bq2SppO46459RsGnpgwAUJ-doctests [duoids]  include base-4.21.0.0-b334 [duoids]  include doctest-0.24.2-7dcRhyR7fwsJGtJTyCZo6u [duoids]  include duoids-0.0.1.0-Jzc4b5W36dXEvfr963zxkm [duoids]  include ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [duoids] Linked component graph: [duoids]  unit duoids-0.0.1.0-Jzc4b5W36dXEvfr963zxkm [duoids]  include base-4.21.0.0-b334 [duoids]  include ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [duoids]  Control.Duoidal=duoids-0.0.1.0-Jzc4b5W36dXEvfr963zxkm:Control.Duoidal,Control.Duoidal.Either=duoids-0.0.1.0-Jzc4b5W36dXEvfr963zxkm:Control.Duoidal.Either,Control.Duoidal.Laws=duoids-0.0.1.0-Jzc4b5W36dXEvfr963zxkm:Control.Duoidal.Laws,Data.Duoid=duoids-0.0.1.0-Jzc4b5W36dXEvfr963zxkm:Data.Duoid,Data.Duoid.Laws=duoids-0.0.1.0-Jzc4b5W36dXEvfr963zxkm:Data.Duoid.Laws [duoids]  unit duoids-0.0.1.0-Bq2SppO46459RsGnpgwAUJ-doctests [duoids]  include base-4.21.0.0-b334 [duoids]  include doctest-0.24.2-7dcRhyR7fwsJGtJTyCZo6u [duoids]  include duoids-0.0.1.0-Jzc4b5W36dXEvfr963zxkm [duoids]  include ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [duoids] Ready component graph: [duoids]  definite duoids-0.0.1.0-Jzc4b5W36dXEvfr963zxkm [duoids]  depends base-4.21.0.0-b334 [duoids]  depends ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [duoids]  definite duoids-0.0.1.0-Bq2SppO46459RsGnpgwAUJ-doctests [duoids]  depends base-4.21.0.0-b334 [duoids]  depends doctest-0.24.2-7dcRhyR7fwsJGtJTyCZo6u [duoids]  depends duoids-0.0.1.0-Jzc4b5W36dXEvfr963zxkm [duoids]  depends ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [duoids] Using Cabal-3.14.1.0 compiled by ghc-9.12 [duoids] Using compiler: ghc-9.12.2 [duoids] Using install prefix: [duoids] /nix/store/dxchzkr03dgfn7fwrd25dnkc7dzwhcka-duoids-0.0.1.0 [duoids] Executables installed in: [duoids] /nix/store/dxchzkr03dgfn7fwrd25dnkc7dzwhcka-duoids-0.0.1.0/bin [duoids] Libraries installed in: [duoids] /nix/store/dxchzkr03dgfn7fwrd25dnkc7dzwhcka-duoids-0.0.1.0/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/duoids-0.0.1.0-Jzc4b5W36dXEvfr963zxkm [duoids] Dynamic Libraries installed in: [duoids] /nix/store/dxchzkr03dgfn7fwrd25dnkc7dzwhcka-duoids-0.0.1.0/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3 [duoids] Private executables installed in: [duoids] /nix/store/dxchzkr03dgfn7fwrd25dnkc7dzwhcka-duoids-0.0.1.0/libexec/x86_64-linux-ghc-9.12.2-82d3/duoids-0.0.1.0 [duoids] Data files installed in: [duoids] /nix/store/dxchzkr03dgfn7fwrd25dnkc7dzwhcka-duoids-0.0.1.0/share/x86_64-linux-ghc-9.12.2-82d3/duoids-0.0.1.0 [duoids] Documentation installed in: [duoids] /nix/store/jlvngamji60zzgwx0d0rwhjnx02j7xgx-duoids-0.0.1.0-doc/share/doc/duoids-0.0.1.0 [duoids] Configuration files installed in: [duoids] /nix/store/dxchzkr03dgfn7fwrd25dnkc7dzwhcka-duoids-0.0.1.0/etc [duoids] No alex found [duoids] Using ar found on system at: [duoids] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar [duoids] No c2hs found [duoids] No cpphs found [duoids] Using doctest version 0.24.2 found on system at: [duoids] /nix/store/39gb85lds43f7spl5690pdk8d65fpr5l-doctest-0.24.2/bin/doctest [duoids] Using gcc version 14.3.0 given by user at: [duoids] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc [duoids] Using ghc version 9.12.2 found on system at: [duoids] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc [duoids] Using ghc-pkg version 9.12.2 found on system at: [duoids] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc-pkg-9.12.2 [duoids] No ghcjs found [duoids] No ghcjs-pkg found [duoids] No greencard found [duoids] Using haddock version 2.30.0 found on system at: [duoids] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/haddock-ghc-9.12.2 [duoids] No happy found [duoids] No haskell-suite found [duoids] No haskell-suite-pkg found [duoids] No hmake found [duoids] Using hpc version 0.69 found on system at: [duoids] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/hpc-ghc-9.12.2 [duoids] Using hsc2hs version 0.68.10 found on system at: [duoids] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/hsc2hs-ghc-9.12.2 [duoids] Using hscolour version 1.25 found on system at: [duoids] /nix/store/02s9rad0jn6nj8z96k357im73hkzqsnw-hscolour-1.25/bin/HsColour [duoids] No jhc found [duoids] Using ld found on system at: [duoids] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld [duoids] No pkg-config found [duoids] Using runghc version 9.12.2 found on system at: [duoids] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/runghc-9.12.2 [duoids] Using strip version 2.44 found on system at: [duoids] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip [duoids] Using tar found on system at: [duoids] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar [duoids] No uhc found [vector]  Bench.Vector.Algo.AwShCC=vector-0.13.2.0-K7RaEIChlREEqHxVuF3SH8-benchmarks-O2:Bench.Vector.Algo.AwShCC,Bench.Vector.Algo.FindIndexR=vector-0.13.2.0-K7RaEIChlREEqHxVuF3SH8-benchmarks-O2:Bench.Vector.Algo.FindIndexR,Bench.Vector.Algo.HybCC=vector-0.13.2.0-K7RaEIChlREEqHxVuF3SH8-benchmarks-O2:Bench.Vector.Algo.HybCC,Bench.Vector.Algo.Leaffix=vector-0.13.2.0-K7RaEIChlREEqHxVuF3SH8-benchmarks-O2:Bench.Vector.Algo.Leaffix,Bench.Vector.Algo.ListRank=vector-0.13.2.0-K7RaEIChlREEqHxVuF3SH8-benchmarks-O2:Bench.Vector.Algo.ListRank,Bench.Vector.Algo.MutableSet=vector-0.13.2.0-K7RaEIChlREEqHxVuF3SH8-benchmarks-O2:Bench.Vector.Algo.MutableSet,Bench.Vector.Algo.NextPermutation=vector-0.13.2.0-K7RaEIChlREEqHxVuF3SH8-benchmarks-O2:Bench.Vector.Algo.NextPermutation,Bench.Vector.Algo.Quickhull=vector-0.13.2.0-K7RaEIChlREEqHxVuF3SH8-benchmarks-O2:Bench.Vector.Algo.Quickhull,Bench.Vector.Algo.Rootfix=vector-0.13.2.0-K7RaEIChlREEqHxVuF3SH8-benchmarks-O2:Bench.Vector.Algo.Rootfix,Bench.Vector.Algo.Spectral=vector-0.13.2.0-K7RaEIChlREEqHxVuF3SH8-benchmarks-O2:Bench.Vector.Algo.Spectral,Bench.Vector.Algo.Tridiag=vector-0.13.2.0-K7RaEIChlREEqHxVuF3SH8-benchmarks-O2:Bench.Vector.Algo.Tridiag,Bench.Vector.Tasty=vector-0.13.2.0-K7RaEIChlREEqHxVuF3SH8-benchmarks-O2:Bench.Vector.Tasty,Bench.Vector.TestData.Graph=vector-0.13.2.0-K7RaEIChlREEqHxVuF3SH8-benchmarks-O2:Bench.Vector.TestData.Graph,Bench.Vector.TestData.ParenTree=vector-0.13.2.0-K7RaEIChlREEqHxVuF3SH8-benchmarks-O2:Bench.Vector.TestData.ParenTree [vector]  unit vector-0.13.2.0-9hnhm1pD0j88NVy1x16lJk-vector-doctest [vector]  include base-4.21.0.0-b334 [vector]  include doctest-0.24.2-7dcRhyR7fwsJGtJTyCZo6u [vector]  include primitive-0.9.1.0-GUZ9pmn8oTWdoWsH4TBO0 [vector]  include vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH [vector]  unit vector-0.13.2.0-DbskmzUAIx21PcGJKbvD6R-vector-inspection [vector]  include base-4.21.0.0-b334 [vector]  include primitive-0.9.1.0-GUZ9pmn8oTWdoWsH4TBO0 [vector]  include tasty-1.5.3-1P3AH5KqZrKLTVMzNZdHkm [vector]  include tasty-inspection-testing-0.2.1-4BytlpkEFY7JoNGJ0ndPgt [vector]  include vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH [vector]  unit vector-0.13.2.0-6MB9OaQQVEdLiug5Yrv4Qb-vector-tests-O0 [vector]  include QuickCheck-2.15.0.1-4a6QuHFK3EgHKorV6DzjdR [vector]  include base-4.21.0.0-b334 [vector]  include base-orphans-0.9.3-21QsAxVCjWHDf2LYb4emj [vector]  include primitive-0.9.1.0-GUZ9pmn8oTWdoWsH4TBO0 [vector]  include random-1.2.1.3-JGcOiyH1u317hgRB7TWWFV [vector]  include tasty-1.5.3-1P3AH5KqZrKLTVMzNZdHkm [vector]  include tasty-hunit-0.10.2-JRT4tyEuMHKBzpxUU6VUG8 [vector]  include tasty-quickcheck-0.11.1-Ca4DEyt784fFBsV7HOinsy [vector]  include template-haskell-2.23.0.0-4ee9 [vector]  include transformers-0.6.1.2-2558 [vector]  include vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH [vector]  unit vector-0.13.2.0-AXOUAscy1QX2RfxcSXsPHR-vector-tests-O2 [vector]  include QuickCheck-2.15.0.1-4a6QuHFK3EgHKorV6DzjdR [vector]  include base-4.21.0.0-b334 [vector]  include base-orphans-0.9.3-21QsAxVCjWHDf2LYb4emj [vector]  include primitive-0.9.1.0-GUZ9pmn8oTWdoWsH4TBO0 [vector]  include random-1.2.1.3-JGcOiyH1u317hgRB7TWWFV [vector]  include tasty-1.5.3-1P3AH5KqZrKLTVMzNZdHkm [vector]  include tasty-hunit-0.10.2-JRT4tyEuMHKBzpxUU6VUG8 [vector]  include tasty-quickcheck-0.11.1-Ca4DEyt784fFBsV7HOinsy [vector]  include template-haskell-2.23.0.0-4ee9 [vector]  include transformers-0.6.1.2-2558 [vector]  include vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH [vector] Ready component graph: [vector]  definite vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH [vector]  depends base-4.21.0.0-b334 [vector]  depends deepseq-1.5.1.0-3c62 [vector]  depends primitive-0.9.1.0-GUZ9pmn8oTWdoWsH4TBO0 [vector]  depends vector-stream-0.1.0.1-ChLtnSdgBTn6SMCUdrCJ9I [vector]  definite vector-0.13.2.0-6MB9OaQQVEdLiug5Yrv4Qb-vector-tests-O0 [vector]  depends QuickCheck-2.15.0.1-4a6QuHFK3EgHKorV6DzjdR [vector]  depends base-4.21.0.0-b334 [vector]  depends base-orphans-0.9.3-21QsAxVCjWHDf2LYb4emj [vector]  depends primitive-0.9.1.0-GUZ9pmn8oTWdoWsH4TBO0 [vector]  depends random-1.2.1.3-JGcOiyH1u317hgRB7TWWFV [vector]  depends tasty-1.5.3-1P3AH5KqZrKLTVMzNZdHkm [vector]  depends tasty-hunit-0.10.2-JRT4tyEuMHKBzpxUU6VUG8 [vector]  depends tasty-quickcheck-0.11.1-Ca4DEyt784fFBsV7HOinsy [vector]  depends template-haskell-2.23.0.0-4ee9 [vector]  depends transformers-0.6.1.2-2558 [vector]  depends vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH [vector]  definite vector-0.13.2.0-9hnhm1pD0j88NVy1x16lJk-vector-doctest [vector]  depends base-4.21.0.0-b334 [vector]  depends doctest-0.24.2-7dcRhyR7fwsJGtJTyCZo6u [vector]  depends primitive-0.9.1.0-GUZ9pmn8oTWdoWsH4TBO0 [vector]  depends vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH [vector]  definite vector-0.13.2.0-AXOUAscy1QX2RfxcSXsPHR-vector-tests-O2 [vector]  depends QuickCheck-2.15.0.1-4a6QuHFK3EgHKorV6DzjdR [vector]  depends base-4.21.0.0-b334 [vector]  depends base-orphans-0.9.3-21QsAxVCjWHDf2LYb4emj [vector]  depends primitive-0.9.1.0-GUZ9pmn8oTWdoWsH4TBO0 [vector]  depends random-1.2.1.3-JGcOiyH1u317hgRB7TWWFV [vector]  depends tasty-1.5.3-1P3AH5KqZrKLTVMzNZdHkm [vector]  depends tasty-hunit-0.10.2-JRT4tyEuMHKBzpxUU6VUG8 [vector]  depends tasty-quickcheck-0.11.1-Ca4DEyt784fFBsV7HOinsy [vector]  depends template-haskell-2.23.0.0-4ee9 [vector]  depends transformers-0.6.1.2-2558 [vector]  depends vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH [vector]  definite vector-0.13.2.0-DbskmzUAIx21PcGJKbvD6R-vector-inspection [vector]  depends base-4.21.0.0-b334 [vector]  depends primitive-0.9.1.0-GUZ9pmn8oTWdoWsH4TBO0 [vector]  depends tasty-1.5.3-1P3AH5KqZrKLTVMzNZdHkm [vector]  depends tasty-inspection-testing-0.2.1-4BytlpkEFY7JoNGJ0ndPgt [vector]  depends vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH [vector]  definite vector-0.13.2.0-K7RaEIChlREEqHxVuF3SH8-benchmarks-O2 [vector]  depends base-4.21.0.0-b334 [vector]  depends random-1.2.1.3-JGcOiyH1u317hgRB7TWWFV [vector]  depends tasty-1.5.3-1P3AH5KqZrKLTVMzNZdHkm [vector]  depends vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH [vector] Using Cabal-3.14.1.0 compiled by ghc-9.12 [vector] Using compiler: ghc-9.12.2 [vector] Using install prefix: [vector] /nix/store/71ln3bc26gqnrxbky6iaic4k8npwd9d2-vector-0.13.2.0 [vector] Executables installed in: [vector] /nix/store/71ln3bc26gqnrxbky6iaic4k8npwd9d2-vector-0.13.2.0/bin [vector] Libraries installed in: [vector] /nix/store/71ln3bc26gqnrxbky6iaic4k8npwd9d2-vector-0.13.2.0/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH [vector] Dynamic Libraries installed in: [vector] /nix/store/71ln3bc26gqnrxbky6iaic4k8npwd9d2-vector-0.13.2.0/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3 [vector] Private executables installed in: [vector] /nix/store/71ln3bc26gqnrxbky6iaic4k8npwd9d2-vector-0.13.2.0/libexec/x86_64-linux-ghc-9.12.2-82d3/vector-0.13.2.0 [vector] Data files installed in: [vector] /nix/store/71ln3bc26gqnrxbky6iaic4k8npwd9d2-vector-0.13.2.0/share/x86_64-linux-ghc-9.12.2-82d3/vector-0.13.2.0 [vector] Documentation installed in: [vector] /nix/store/71ln3bc26gqnrxbky6iaic4k8npwd9d2-vector-0.13.2.0/share/doc/x86_64-linux-ghc-9.12.2-82d3/vector-0.13.2.0 [vector] Configuration files installed in: [vector] /nix/store/71ln3bc26gqnrxbky6iaic4k8npwd9d2-vector-0.13.2.0/etc [vector] No alex found [vector] Using ar found on system at: [vector] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar [vector] No c2hs found [vector] No cpphs found [vector] Using doctest version 0.24.2 found on system at: [vector] /nix/store/39gb85lds43f7spl5690pdk8d65fpr5l-doctest-0.24.2/bin/doctest [vector] Using gcc version 14.3.0 given by user at: [vector] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc [vector] Using ghc version 9.12.2 found on system at: [vector] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc [vector] Using ghc-pkg version 9.12.2 found on system at: [vector] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc-pkg-9.12.2 [vector] No ghcjs found [vector] No ghcjs-pkg found [vector] No greencard found [vector] Using haddock version 2.30.0 found on system at: [vector] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/haddock-ghc-9.12.2 [vector] No happy found [vector] No haskell-suite found [vector] No haskell-suite-pkg found [vector] No hmake found [vector] Using hpc version 0.69 found on system at: [vector] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/hpc-ghc-9.12.2 [vector] Using hsc2hs version 0.68.10 found on system at: [vector] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/hsc2hs-ghc-9.12.2 [vector] Using hscolour version 1.25 found on system at: [vector] /nix/store/02s9rad0jn6nj8z96k357im73hkzqsnw-hscolour-1.25/bin/HsColour [vector] No jhc found [vector] Using ld found on system at: [vector] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld [vector] No pkg-config found [vector] Using runghc version 9.12.2 found on system at: [vector] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/runghc-9.12.2 [vector] Using strip version 2.44 found on system at: [vector] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip [vector] Using tar found on system at: [vector] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar [vector] No uhc found [duoids] Phase: buildPhase [vector] Phase: buildPhase [duoids] Preprocessing library for duoids-0.0.1.0... [duoids] Building library for duoids-0.0.1.0... [vector] Preprocessing library for vector-0.13.2.0... [vector] Building library for vector-0.13.2.0... [duoids] [1 of 6] Compiling Control.Duoidal.Async ( src/Control/Duoidal/Async.hs, dist/build/Control/Duoidal/Async.o, dist/build/Control/Duoidal/Async.dyn_o ) [vector] [ 1 of 23] Compiling Data.Vector.Fusion.Stream.Monadic ( src/Data/Vector/Fusion/Stream/Monadic.hs, dist/build/Data/Vector/Fusion/Stream/Monadic.o, dist/build/Data/Vector/Fusion/Stream/Monadic.dyn_o ) [vector] [ 2 of 23] Compiling Data.Vector.Fusion.Util ( src/Data/Vector/Fusion/Util.hs, dist/build/Data/Vector/Fusion/Util.o, dist/build/Data/Vector/Fusion/Util.dyn_o ) [vector] [ 3 of 23] Compiling Data.Vector.Fusion.Bundle.Size ( src/Data/Vector/Fusion/Bundle/Size.hs, dist/build/Data/Vector/Fusion/Bundle/Size.o, dist/build/Data/Vector/Fusion/Bundle/Size.dyn_o ) [duoids] [2 of 6] Compiling Data.Duoid ( src/Data/Duoid.hs, dist/build/Data/Duoid.o, dist/build/Data/Duoid.dyn_o ) [vector] [ 4 of 23] Compiling Data.Vector.Generic.Mutable.Base ( src/Data/Vector/Generic/Mutable/Base.hs, dist/build/Data/Vector/Generic/Mutable/Base.o, dist/build/Data/Vector/Generic/Mutable/Base.dyn_o ) [vector] [ 5 of 23] Compiling Data.Vector.Generic.Base ( src/Data/Vector/Generic/Base.hs, dist/build/Data/Vector/Generic/Base.o, dist/build/Data/Vector/Generic/Base.dyn_o ) [vector] [ 6 of 23] Compiling Data.Vector.Internal.Check ( src/Data/Vector/Internal/Check.hs, dist/build/Data/Vector/Internal/Check.o, dist/build/Data/Vector/Internal/Check.dyn_o ) [vector] [ 7 of 23] Compiling Data.Vector.Fusion.Bundle.Monadic ( src/Data/Vector/Fusion/Bundle/Monadic.hs, dist/build/Data/Vector/Fusion/Bundle/Monadic.o, dist/build/Data/Vector/Fusion/Bundle/Monadic.dyn_o ) [duoids] [3 of 6] Compiling Control.Duoidal ( src/Control/Duoidal.hs, dist/build/Control/Duoidal.o, dist/build/Control/Duoidal.dyn_o ) [duoids] [4 of 6] Compiling Control.Duoidal.Either ( src/Control/Duoidal/Either.hs, dist/build/Control/Duoidal/Either.o, dist/build/Control/Duoidal/Either.dyn_o ) [duoids] [5 of 6] Compiling Data.Duoid.Laws ( src/Data/Duoid/Laws.hs, dist/build/Data/Duoid/Laws.o, dist/build/Data/Duoid/Laws.dyn_o ) [duoids] [6 of 6] Compiling Control.Duoidal.Laws ( src/Control/Duoidal/Laws.hs, dist/build/Control/Duoidal/Laws.o, dist/build/Control/Duoidal/Laws.dyn_o ) [duoids] [1 of 6] Compiling Control.Duoidal.Async ( src/Control/Duoidal/Async.hs, dist/build/Control/Duoidal/Async.p_o ) [duoids] [2 of 6] Compiling Data.Duoid ( src/Data/Duoid.hs, dist/build/Data/Duoid.p_o ) [vector] [ 8 of 23] Compiling Data.Vector.Fusion.Bundle ( src/Data/Vector/Fusion/Bundle.hs, dist/build/Data/Vector/Fusion/Bundle.o, dist/build/Data/Vector/Fusion/Bundle.dyn_o ) [duoids] [3 of 6] Compiling Control.Duoidal ( src/Control/Duoidal.hs, dist/build/Control/Duoidal.p_o ) [duoids] [4 of 6] Compiling Control.Duoidal.Either ( src/Control/Duoidal/Either.hs, dist/build/Control/Duoidal/Either.p_o ) [duoids] [5 of 6] Compiling Data.Duoid.Laws ( src/Data/Duoid/Laws.hs, dist/build/Data/Duoid/Laws.p_o ) [duoids] [6 of 6] Compiling Control.Duoidal.Laws ( src/Control/Duoidal/Laws.hs, dist/build/Control/Duoidal/Laws.p_o ) [vector] [ 9 of 23] Compiling Data.Vector.Generic.Mutable ( src/Data/Vector/Generic/Mutable.hs, dist/build/Data/Vector/Generic/Mutable.o, dist/build/Data/Vector/Generic/Mutable.dyn_o ) [duoids] Preprocessing test suite 'doctests' for duoids-0.0.1.0... [duoids] Building test suite 'doctests' for duoids-0.0.1.0... [duoids] [1 of 2] Compiling Build_doctests ( dist/build/doctests/autogen/Build_doctests.hs, dist/build/doctests/doctests-tmp/Build_doctests.o ) [duoids] [2 of 2] Compiling Main ( tests/doctests.hs, dist/build/doctests/doctests-tmp/Main.o ) [vector] [10 of 23] Compiling Data.Vector.Generic.New ( src/Data/Vector/Generic/New.hs, dist/build/Data/Vector/Generic/New.o, dist/build/Data/Vector/Generic/New.dyn_o ) [vector] [11 of 23] Compiling Data.Vector.Generic ( src/Data/Vector/Generic.hs, dist/build/Data/Vector/Generic.o, dist/build/Data/Vector/Generic.dyn_o ) [duoids] [3 of 3] Linking dist/build/doctests/doctests [duoids] Phase: checkPhase [duoids] Running 1 test suites... [duoids] Test suite doctests: RUNNING... [duoids] on the commandline: warning: [GHC-98887] [duoids]  -XTemplateHaskell is not allowed in Safe Haskell; ignoring -XTemplateHaskell [duoids]  [duoids] on the commandline: warning: [GHC-98887] [duoids]  -XTemplateHaskell is not allowed in Safe Haskell; ignoring -XTemplateHaskell [duoids]  [duoids] on the commandline: warning: [GHC-98887] [duoids]  -XTemplateHaskell is not allowed in Safe Haskell; ignoring -XTemplateHaskell [duoids]  [duoids] on the commandline: warning: [GHC-98887] [duoids]  -XTemplateHaskell is not allowed in Safe Haskell; ignoring -XTemplateHaskell [duoids]  [duoids] on the commandline: warning: [GHC-98887] [duoids]  -XTemplateHaskell is not allowed in Safe Haskell; ignoring -XTemplateHaskell [duoids]  [duoids] on the commandline: warning: [GHC-98887] [duoids]  -XTemplateHaskell is not allowed in Safe Haskell; ignoring -XTemplateHaskell [duoids]  [duoids] on the commandline: warning: [GHC-98887] [duoids]  -XTemplateHaskell is not allowed in Safe Haskell; ignoring -XTemplateHaskell [duoids]  [duoids] on the commandline: warning: [GHC-98887] [duoids]  -XTemplateHaskell is not allowed in Safe Haskell; ignoring -XTemplateHaskell [duoids]  [duoids] on the commandline: warning: [GHC-98887] [duoids]  -XTemplateHaskell is not allowed in Safe Haskell; ignoring -XTemplateHaskell [duoids]  [duoids] on the commandline: warning: [GHC-98887] [duoids]  -XTemplateHaskell is not allowed in Safe Haskell; ignoring -XTemplateHaskell [duoids]  [duoids] Examples: 5 Tried: 5 Errors: 0 Failures: 0 [duoids] NameLib Nothing [duoids] ---------------------------------------- [duoids] Test suite doctests: PASS [duoids] Test suite logged to: dist/test/duoids-0.0.1.0-doctests.log [duoids] 1 of 1 test suites (1 of 1 test cases) passed. [duoids] Phase: haddockPhase [duoids] Preprocessing library for duoids-0.0.1.0... [duoids] Running Haddock on library for duoids-0.0.1.0... [vector] [12 of 23] Compiling Data.Vector.Mutable ( src/Data/Vector/Mutable.hs, dist/build/Data/Vector/Mutable.o, dist/build/Data/Vector/Mutable.dyn_o ) [vector] src/Data/Vector/Mutable.hs:99:20: warning: []8;;https://errors.haskell.org/messages/GHC-90584\GHC-90584]8;;\] [-Wderiving-typeable] [vector]  • Deriving ‘Typeable’ has no effect: all types now auto-derive Typeable [vector]  • In the data declaration for ‘MVector’ [vector]  | [vector] 99 | deriving ( Typeable ) [vector]  | ^^^^^^^^ [vector]  [vector] [13 of 23] Compiling Data.Vector ( src/Data/Vector.hs, dist/build/Data/Vector.o, dist/build/Data/Vector.dyn_o ) [vector] src/Data/Vector.hs:222:20: warning: []8;;https://errors.haskell.org/messages/GHC-90584\GHC-90584]8;;\] [-Wderiving-typeable] [vector]  • Deriving ‘Typeable’ has no effect: all types now auto-derive Typeable [vector]  • In the data declaration for ‘Vector’ [vector]  | [vector] 222 | deriving ( Typeable ) [vector]  | ^^^^^^^^ [vector]  [duoids] [1 of 6] Compiling Control.Duoidal.Async ( src/Control/Duoidal/Async.hs, nothing ) [HIE file is missing] [duoids] [2 of 6] Compiling Data.Duoid ( src/Data/Duoid.hs, nothing ) [HIE file is missing] [duoids] [3 of 6] Compiling Control.Duoidal ( src/Control/Duoidal.hs, nothing ) [HIE file is missing] [duoids] [4 of 6] Compiling Control.Duoidal.Either ( src/Control/Duoidal/Either.hs, nothing ) [HIE file is missing] [duoids] [5 of 6] Compiling Data.Duoid.Laws ( src/Data/Duoid/Laws.hs, nothing ) [HIE file is missing] [duoids] [6 of 6] Compiling Control.Duoidal.Laws ( src/Control/Duoidal/Laws.hs, nothing ) [HIE file is missing] [duoids] Haddock coverage: [duoids] Warning: 'Alternative' is out of scope. [duoids]  If you qualify the identifier, haddock can try to link it anyway. [duoids] Warning: 'Applicative' is out of scope. [duoids]  If you qualify the identifier, haddock can try to link it anyway. [duoids] Warning: 'cancel' is out of scope. [duoids]  If you qualify the identifier, haddock can try to link it anyway. [duoids] Warning: 'Par' is ambiguous. It is defined [duoids]  * at src/Data/Duoid.hs:62:5 [duoids]  * at src/Data/Duoid.hs:58:1 [duoids]  You may be able to disambiguate the identifier by qualifying it or [duoids]  by specifying the type/value namespace explicitly. [duoids]  Defaulting to the one defined at src/Data/Duoid.hs:58:1 [duoids] Warning: 'Seq' is ambiguous. It is defined [duoids]  * at src/Data/Duoid.hs:118:5 [duoids]  * at src/Data/Duoid.hs:114:1 [duoids]  You may be able to disambiguate the identifier by qualifying it or [duoids]  by specifying the type/value namespace explicitly. [duoids]  Defaulting to the one defined at src/Data/Duoid.hs:114:1 [duoids]  100% ( 10 / 10) in 'Data.Duoid' [duoids] Warning: 'ExceptT' is out of scope. [duoids]  If you qualify the identifier, haddock can try to link it anyway. [duoids] Warning: 'Parallel' is ambiguous. It is defined [duoids]  * at src/Control/Duoidal.hs:238:5 [duoids]  * at src/Control/Duoidal.hs:234:1 [duoids]  You may be able to disambiguate the identifier by qualifying it or [duoids]  by specifying the type/value namespace explicitly. [duoids]  Defaulting to the one defined at src/Control/Duoidal.hs:234:1 [duoids] Warning: 'Sequential' is ambiguous. It is defined [duoids]  * at src/Control/Duoidal.hs:308:5 [duoids]  * at src/Control/Duoidal.hs:304:1 [duoids]  You may be able to disambiguate the identifier by qualifying it or [duoids]  by specifying the type/value namespace explicitly. [duoids]  Defaulting to the one defined at src/Control/Duoidal.hs:304:1 [duoids] Warning: 'NoDefaultPrelude' is out of scope. [duoids]  If you qualify the identifier, haddock can try to link it anyway. [duoids] Warning: 'Validation' is out of scope. [duoids]  If you qualify the identifier, haddock can try to link it anyway. [duoids] Warning: 'fail' is out of scope. [duoids]  If you qualify the identifier, haddock can try to link it anyway. [duoids] Warning: 'MonadFail' is out of scope. [duoids]  If you qualify the identifier, haddock can try to link it anyway. [duoids] Warning: 'Commutative' is ambiguous. It is defined [duoids]  * at src/Control/Duoidal.hs:774:5 [duoids]  * at src/Control/Duoidal.hs:770:1 [duoids]  You may be able to disambiguate the identifier by qualifying it or [duoids]  by specifying the type/value namespace explicitly. [duoids]  Defaulting to the one defined at src/Control/Duoidal.hs:770:1 [duoids] Warning: 'Writer' is out of scope. [duoids]  If you qualify the identifier, haddock can try to link it anyway. [duoids] Warning: 'Set' is out of scope. [duoids]  If you qualify the identifier, haddock can try to link it anyway. [duoids] Warning: 'Char' is out of scope. [duoids]  If you qualify the identifier, haddock can try to link it anyway. [duoids] Warning: 'Const' is ambiguous. It is defined [duoids]  * in ‘GHC.Internal.Data.Functor.Const’ [duoids]  * in ‘GHC.Internal.Data.Functor.Const’ [duoids]  You may be able to disambiguate the identifier by qualifying it or [duoids]  by specifying the type/value namespace explicitly. [duoids]  Defaulting to the one defined in ‘GHC.Internal.Data.Functor.Const’ [duoids] Warning: 'Normal' is ambiguous. It is defined [duoids]  * at src/Control/Duoidal.hs:395:1 [duoids]  * at src/Data/Duoid.hs:183:1 [duoids]  You may be able to disambiguate the identifier by qualifying it or [duoids]  by specifying the type/value namespace explicitly. [duoids]  Defaulting to the one defined at src/Data/Duoid.hs:183:1 [duoids]  100% ( 60 / 60) in 'Control.Duoidal' [duoids]  100% ( 2 / 2) in 'Control.Duoidal.Either' [duoids] Warning: 'Normal' is out of scope. [duoids]  If you qualify the identifier, haddock can try to link it anyway. [duoids] Warning: 'Law' is ambiguous. It is defined [duoids]  * at src/Data/Duoid/Laws.hs:38:5 [duoids]  * at src/Data/Duoid/Laws.hs:34:1 [duoids]  You may be able to disambiguate the identifier by qualifying it or [duoids]  by specifying the type/value namespace explicitly. [duoids]  Defaulting to the one defined at src/Data/Duoid/Laws.hs:34:1 [duoids]  100% ( 12 / 12) in 'Data.Duoid.Laws' [duoids]  100% ( 6 / 6) in 'Control.Duoidal.Laws' [duoids] Warning: Data.Duoid: could not find link destinations for: [duoids]  - Data.Duoid.Rep1_Comm [duoids]  - Data.Duoid.Rep1_Par [duoids]  - Data.Duoid.Rep1_Seq [duoids]  - Data.Duoid.Rep_Comm [duoids]  - Data.Duoid.Rep_Par [duoids]  - Data.Duoid.Rep_Seq [duoids] Warning: Control.Duoidal: could not find link destinations for: [duoids]  - Control.Duoidal.Rep1_Commutative [duoids]  - Control.Duoidal.Rep1_Parallel [duoids]  - Control.Duoidal.Rep1_Sequential [duoids]  - Control.Duoidal.Rep_Commutative [duoids]  - Control.Duoidal.Rep_Parallel [duoids]  - Control.Duoidal.Rep_Sequential [duoids] Warning: Data.Duoid.Laws: could not find link destinations for: [duoids]  - Data.Duoid.Laws.Rep1_NormalLaws [duoids]  - Data.Duoid.Laws.Rep_Law [duoids]  - Data.Duoid.Laws.Rep_Laws [duoids]  - Data.Duoid.Laws.Rep_NormalLaws [vector] [14 of 23] Compiling Data.Vector.Primitive.Mutable ( src/Data/Vector/Primitive/Mutable.hs, dist/build/Data/Vector/Primitive/Mutable.o, dist/build/Data/Vector/Primitive/Mutable.dyn_o ) [vector] src/Data/Vector/Primitive/Mutable.hs:115:20: warning: []8;;https://errors.haskell.org/messages/GHC-90584\GHC-90584]8;;\] [-Wderiving-typeable] [vector]  • Deriving ‘Typeable’ has no effect: all types now auto-derive Typeable [vector]  • In the data declaration for ‘MVector’ [vector]  | [vector] 115 | deriving ( Typeable ) [vector]  | ^^^^^^^^ [vector]  [vector] [15 of 23] Compiling Data.Vector.Primitive ( src/Data/Vector/Primitive.hs, dist/build/Data/Vector/Primitive.o, dist/build/Data/Vector/Primitive.dyn_o ) [vector] src/Data/Vector/Primitive.hs:209:14: warning: []8;;https://errors.haskell.org/messages/GHC-90584\GHC-90584]8;;\] [-Wderiving-typeable] [vector]  • Deriving ‘Typeable’ has no effect: all types now auto-derive Typeable [vector]  • In the data declaration for ‘Vector’ [vector]  | [vector] 209 | deriving ( Typeable ) [vector]  | ^^^^^^^^ [vector]  [vector] [16 of 23] Compiling Data.Vector.Storable.Internal ( src/Data/Vector/Storable/Internal.hs, dist/build/Data/Vector/Storable/Internal.o, dist/build/Data/Vector/Storable/Internal.dyn_o ) [vector] [17 of 23] Compiling Data.Vector.Storable.Mutable ( src/Data/Vector/Storable/Mutable.hs, dist/build/Data/Vector/Storable/Mutable.o, dist/build/Data/Vector/Storable/Mutable.dyn_o ) [vector] src/Data/Vector/Storable/Mutable.hs:134:20: warning: []8;;https://errors.haskell.org/messages/GHC-90584\GHC-90584]8;;\] [-Wderiving-typeable] [vector]  • Deriving ‘Typeable’ has no effect: all types now auto-derive Typeable [vector]  • In the data declaration for ‘MVector’ [vector]  | [vector] 134 | deriving ( Typeable ) [vector]  | ^^^^^^^^ [vector]  [vector] [18 of 23] Compiling Data.Vector.Storable ( src/Data/Vector/Storable.hs, dist/build/Data/Vector/Storable.o, dist/build/Data/Vector/Storable.dyn_o ) [vector] src/Data/Vector/Storable.hs:219:20: warning: []8;;https://errors.haskell.org/messages/GHC-90584\GHC-90584]8;;\] [-Wderiving-typeable] [vector]  • Deriving ‘Typeable’ has no effect: all types now auto-derive Typeable [vector]  • In the data declaration for ‘Vector’ [vector]  | [vector] 219 | deriving ( Typeable ) [vector]  | ^^^^^^^^ [vector]  [vector] [19 of 23] Compiling Data.Vector.Strict.Mutable ( src/Data/Vector/Strict/Mutable.hs, dist/build/Data/Vector/Strict/Mutable.o, dist/build/Data/Vector/Strict/Mutable.dyn_o ) [vector] src/Data/Vector/Strict/Mutable.hs:97:20: warning: []8;;https://errors.haskell.org/messages/GHC-90584\GHC-90584]8;;\] [-Wderiving-typeable] [vector]  • Deriving ‘Typeable’ has no effect: all types now auto-derive Typeable [vector]  • In the newtype declaration for ‘MVector’ [vector]  | [vector] 97 | deriving ( Typeable ) [vector]  | ^^^^^^^^ [vector]  [vector] [20 of 23] Compiling Data.Vector.Strict ( src/Data/Vector/Strict.hs, dist/build/Data/Vector/Strict.o, dist/build/Data/Vector/Strict.dyn_o ) [vector] src/Data/Vector/Strict.hs:221:13: warning: []8;;https://errors.haskell.org/messages/GHC-90584\GHC-90584]8;;\] [-Wderiving-typeable] [vector]  • Deriving ‘Typeable’ has no effect: all types now auto-derive Typeable [vector]  • In the newtype declaration for ‘Vector’ [vector]  | [vector] 221 | deriving (Typeable, Foldable.Foldable, Semigroup, Monoid) [vector]  | ^^^^^^^^ [vector]  [duoids] Documentation created: dist/doc/html/duoids, dist/doc/html/duoids/duoids.txt [vector] [21 of 23] Compiling Data.Vector.Unboxed.Base ( src/Data/Vector/Unboxed/Base.hs, dist/build/Data/Vector/Unboxed/Base.o, dist/build/Data/Vector/Unboxed/Base.dyn_o ) [duoids] Preprocessing test suite 'doctests' for duoids-0.0.1.0... [vector] src/Data/Vector/Unboxed/Base.hs:97:1: warning: []8;;https://errors.haskell.org/messages/GHC-90584\GHC-90584]8;;\] [-Wderiving-typeable] [vector]  • Deriving ‘Typeable’ has no effect: all types now auto-derive Typeable [vector]  • In the stand-alone deriving instance for ‘Typeable Vector’ [vector]  | [vector] 97 | deriving instance Typeable Vector [vector]  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [vector]  [vector] src/Data/Vector/Unboxed/Base.hs:98:1: warning: []8;;https://errors.haskell.org/messages/GHC-90584\GHC-90584]8;;\] [-Wderiving-typeable] [vector]  • Deriving ‘Typeable’ has no effect: all types now auto-derive Typeable [vector]  • In the stand-alone deriving instance for ‘Typeable MVector’ [vector]  | [vector] 98 | deriving instance Typeable MVector [vector]  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [vector]  [duoids] Phase: installPhase [duoids] Installing library in /nix/store/dxchzkr03dgfn7fwrd25dnkc7dzwhcka-duoids-0.0.1.0/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/duoids-0.0.1.0-Jzc4b5W36dXEvfr963zxkm [duoids] Phase: fixupPhase [duoids] shrinking RPATHs of ELF executables and libraries in /nix/store/dxchzkr03dgfn7fwrd25dnkc7dzwhcka-duoids-0.0.1.0 [duoids] shrinking /nix/store/dxchzkr03dgfn7fwrd25dnkc7dzwhcka-duoids-0.0.1.0/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/libHSduoids-0.0.1.0-Jzc4b5W36dXEvfr963zxkm-ghc9.12.2.so [duoids] checking for references to /build/ in /nix/store/dxchzkr03dgfn7fwrd25dnkc7dzwhcka-duoids-0.0.1.0... [duoids] patching script interpreter paths in /nix/store/dxchzkr03dgfn7fwrd25dnkc7dzwhcka-duoids-0.0.1.0 [duoids] stripping (with command strip and flags -S -p) in /nix/store/dxchzkr03dgfn7fwrd25dnkc7dzwhcka-duoids-0.0.1.0/lib [duoids] shrinking RPATHs of ELF executables and libraries in /nix/store/jlvngamji60zzgwx0d0rwhjnx02j7xgx-duoids-0.0.1.0-doc [duoids] checking for references to /build/ in /nix/store/jlvngamji60zzgwx0d0rwhjnx02j7xgx-duoids-0.0.1.0-doc... [duoids] patching script interpreter paths in /nix/store/jlvngamji60zzgwx0d0rwhjnx02j7xgx-duoids-0.0.1.0-doc [duoids:post-build] Uploading to cachix cache "sellout": /nix/store/dxchzkr03dgfn7fwrd25dnkc7dzwhcka-duoids-0.0.1.0 /nix/store/jlvngamji60zzgwx0d0rwhjnx02j7xgx-duoids-0.0.1.0-doc [duoids:post-build] Pushing 2 paths (72 are already present) using zstd to cache sellout ⏳ [duoids:post-build]  [duoids:post-build] Pushing /nix/store/dxchzkr03dgfn7fwrd25dnkc7dzwhcka-duoids-0.0.1.0 (8.03 MiB) [duoids:post-build] Pushing /nix/store/jlvngamji60zzgwx0d0rwhjnx02j7xgx-duoids-0.0.1.0-doc (2.26 MiB) [duoids:post-build]  [duoids:post-build] All done. [duoids:post-build] Uploading to the NixCI cache: /nix/store/dxchzkr03dgfn7fwrd25dnkc7dzwhcka-duoids-0.0.1.0 /nix/store/jlvngamji60zzgwx0d0rwhjnx02j7xgx-duoids-0.0.1.0-doc [duoids:post-build] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [duoids:post-build] copying 2 paths... [duoids:post-build] copying path '/nix/store/jlvngamji60zzgwx0d0rwhjnx02j7xgx-duoids-0.0.1.0-doc' to 'https://cache.nix-ci.com'... [duoids:post-build] copying path '/nix/store/dxchzkr03dgfn7fwrd25dnkc7dzwhcka-duoids-0.0.1.0' to 'https://cache.nix-ci.com'... [duoids:post-build] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [duoids:post-build] copying 2 paths... [duoids:post-build] copying path '/nix/store/vh5b14b2jiyz9ppb2nzbwzgh1yyr3x14-doctest-0.24.2.drv' to 'https://cache.nix-ci.com'... [duoids:post-build] copying path '/nix/store/mcqv3lw617q3fa2bj5px52d67dl3if1c-duoids-0.0.1.0.drv' to 'https://cache.nix-ci.com'... Progress: 1 of 17 built (1 building), 43 of 43 downloaded from cache Building /nix/store/r4qbh0nx4xdav1brmczrk08kh22icqzb-duoidal-transformers-0.0.1.0.drv Building /nix/store/7zdasvd6vyppkvgr76ry6yh3qy0k06zv-duoids-hedgehog-0.0.1.0.drv [vector] [22 of 23] Compiling Data.Vector.Unboxed ( src/Data/Vector/Unboxed.hs, dist/build/Data/Vector/Unboxed.o, dist/build/Data/Vector/Unboxed.dyn_o ) [duoidal-transformers] Phase: setupCompilerEnvironmentPhase [duoidal-transformers] Build with /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2. [duoids-hedgehog] Phase: setupCompilerEnvironmentPhase [duoids-hedgehog] Build with /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2. [duoidal-transformers] Phase: unpackPhase [duoidal-transformers] unpacking source archive /nix/store/j3nhvvhbp8d5l29mqdaf8f513lxyga6r-z8smrhvl4j2a1x1vb5nv502a87a6wsx7-source/./transformers [duoidal-transformers] source root is transformers [duoidal-transformers] Phase: patchPhase [duoidal-transformers] Phase: compileBuildDriverPhase [duoidal-transformers] setupCompileFlags: -package-db=/build/tmp.3i36JQBN9H/setup-package.conf.d -threaded [duoidal-transformers] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.3i36JQBN9H/Main.o ) [duoidal-transformers] [2 of 2] Linking Setup [duoids-hedgehog] Phase: unpackPhase [duoids-hedgehog] unpacking source archive /nix/store/j3nhvvhbp8d5l29mqdaf8f513lxyga6r-z8smrhvl4j2a1x1vb5nv502a87a6wsx7-source/./hedgehog [duoids-hedgehog] source root is hedgehog [duoids-hedgehog] Phase: patchPhase [duoids-hedgehog] Phase: compileBuildDriverPhase [duoids-hedgehog] setupCompileFlags: -package-db=/build/tmp.CNG6AtDHgd/setup-package.conf.d -threaded [duoids-hedgehog] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.CNG6AtDHgd/Main.o ) [duoids-hedgehog] [2 of 2] Linking Setup [duoidal-transformers] Phase: updateAutotoolsGnuConfigScriptsPhase [duoidal-transformers] Phase: configurePhase [duoidal-transformers] configureFlags: --verbose --prefix=/nix/store/scmby30dka4njfxm1w6njdavhbdi3dv6-duoidal-transformers-0.0.1.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/nix/store/v3mp985hqrlllakk3b2c2i0x5r8268dl-duoidal-transformers-0.0.1.0-doc/share/doc/duoidal-transformers-0.0.1.0 --with-gcc=gcc --package-db=/build/tmp.3i36JQBN9H/package.conf.d --ghc-option=-j16 --ghc-option=+RTS --ghc-option=-A64M --ghc-option=-RTS --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --enable-static --disable-executable-dynamic --enable-tests --disable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-option=-haddock --ghc-options=-Werror --extra-lib-dirs=/nix/store/ffyzkisqs4vc4mg28bwwlyqjf8i9ph6b-ncurses-6.5/lib --extra-lib-dirs=/nix/store/n28qgdj8c1q41kf7n4y1jxa6ckp85m3c-libffi-3.5.2/lib --extra-lib-dirs=/nix/store/1b6h99dw7bk4wbn77kbalih42zbc67m1-elfutils-0.194/lib --extra-lib-dirs=/nix/store/hi0ar880110k6jsmmili7dh1gq3cg2a9-gmp-with-cxx-6.3.0/lib --extra-lib-dirs=/nix/store/g09cflpnp4g80q56sj9dng1qzv4v4ybc-numactl-2.0.18/lib --extra-lib-dirs=/nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/lib [duoidal-transformers] Using Parsec parser [duoidal-transformers] Configuring duoidal-transformers-0.0.1.0... [duoidal-transformers] Warning: Unknown/unsupported 'ghc' version detected (Cabal 3.14.1.0 supports [duoidal-transformers] 'ghc' version < 9.12): [duoidal-transformers] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc is version [duoidal-transformers] 9.12.2 [duoids-hedgehog] Phase: updateAutotoolsGnuConfigScriptsPhase [duoids-hedgehog] Phase: configurePhase [duoids-hedgehog] configureFlags: --verbose --prefix=/nix/store/b23lx4bcxv7k9d65q88921y71rbk250l-duoids-hedgehog-0.0.1.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/nix/store/jd7djwacx5cr6lf90fi0c1d1r8dgg5nw-duoids-hedgehog-0.0.1.0-doc/share/doc/duoids-hedgehog-0.0.1.0 --with-gcc=gcc --package-db=/build/tmp.CNG6AtDHgd/package.conf.d --ghc-option=-j16 --ghc-option=+RTS --ghc-option=-A64M --ghc-option=-RTS --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --enable-static --disable-executable-dynamic --enable-tests --disable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-option=-haddock --ghc-options=-Werror --extra-lib-dirs=/nix/store/ffyzkisqs4vc4mg28bwwlyqjf8i9ph6b-ncurses-6.5/lib --extra-lib-dirs=/nix/store/n28qgdj8c1q41kf7n4y1jxa6ckp85m3c-libffi-3.5.2/lib --extra-lib-dirs=/nix/store/1b6h99dw7bk4wbn77kbalih42zbc67m1-elfutils-0.194/lib --extra-lib-dirs=/nix/store/hi0ar880110k6jsmmili7dh1gq3cg2a9-gmp-with-cxx-6.3.0/lib --extra-lib-dirs=/nix/store/g09cflpnp4g80q56sj9dng1qzv4v4ybc-numactl-2.0.18/lib --extra-lib-dirs=/nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/lib [duoids-hedgehog] Using Parsec parser [duoids-hedgehog] Configuring duoids-hedgehog-0.0.1.0... [duoids-hedgehog] Warning: Unknown/unsupported 'ghc' version detected (Cabal 3.14.1.0 supports [duoids-hedgehog] 'ghc' version < 9.12): [duoids-hedgehog] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc is version [duoids-hedgehog] 9.12.2 [duoidal-transformers] Flags chosen: lint=False, noisy-deprecations=True [duoids-hedgehog] Flags chosen: lint=False, noisy-deprecations=True [duoidal-transformers] Dependency base >=4.16.0 && <4.17 || >=4.17.0 && <4.18 || >=4.18.0 && <4.19 || [duoidal-transformers] >=4.19.0 && <4.20 || >=4.20.0 && <4.21 || >=4.21.0 && <4.22 || >=4.22.0 && [duoidal-transformers] <4.23: using base-4.21.0.0 [duoidal-transformers] Dependency duoids >=0.0.1 && <0.1: using duoids-0.0.1.0 [duoidal-transformers] Dependency ghc-compat-plugin >=0.1.0 && <0.2: using ghc-compat-plugin-0.1.0.1 [duoidal-transformers] Dependency transformers >=0.5.6 && <0.6 || >=0.6.1 && <0.7: using [duoidal-transformers] transformers-0.6.1.2 [duoidal-transformers] Dependency base >=4.16.0 && <4.17 || >=4.17.0 && <4.18 || >=4.18.0 && <4.19 || [duoidal-transformers] >=4.19.0 && <4.20 || >=4.20.0 && <4.21 || >=4.21.0 && <4.22 || >=4.22.0 && [duoidal-transformers] <4.23: using base-4.21.0.0 [duoidal-transformers] Dependency doctest >=0.18.2 && <0.19 || >=0.20.1 && <0.21 || >=0.21.1 && <0.22 [duoidal-transformers] || >=0.22.6 && <0.23 || >=0.24.0 && <0.25 || >=0.25.0 && <0.26: using [duoidal-transformers] doctest-0.24.2 [duoidal-transformers] Dependency duoidal-transformers: using duoidal-transformers-0.0.1.0 [duoidal-transformers] Dependency ghc-compat-plugin >=0.1.0 && <0.2: using ghc-compat-plugin-0.1.0.1 [duoidal-transformers] Source component graph: [duoidal-transformers]  component lib [duoidal-transformers]  component test:doctests dependency lib [duoidal-transformers] Configured component graph: [duoidal-transformers]  component duoidal-transformers-0.0.1.0-Hk9hLhwJEJqLsmdo1mSY2N [duoidal-transformers]  include base-4.21.0.0-b334 [duoidal-transformers]  include duoids-0.0.1.0-Jzc4b5W36dXEvfr963zxkm [duoidal-transformers]  include ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [duoidal-transformers]  include transformers-0.6.1.2-2558 [duoidal-transformers]  component duoidal-transformers-0.0.1.0-AHERlYPmsY3HgBmv1v3ILb-doctests [duoidal-transformers]  include base-4.21.0.0-b334 [duoidal-transformers]  include doctest-0.24.2-7dcRhyR7fwsJGtJTyCZo6u [duoidal-transformers]  include duoidal-transformers-0.0.1.0-Hk9hLhwJEJqLsmdo1mSY2N [duoidal-transformers]  include ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [duoidal-transformers] Linked component graph: [duoidal-transformers]  unit duoidal-transformers-0.0.1.0-Hk9hLhwJEJqLsmdo1mSY2N [duoidal-transformers]  include base-4.21.0.0-b334 [duoidal-transformers]  include duoids-0.0.1.0-Jzc4b5W36dXEvfr963zxkm [duoidal-transformers]  include ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [duoidal-transformers]  include transformers-0.6.1.2-2558 [duoidal-transformers]  Control.Duoidal.Trans.Class=duoidal-transformers-0.0.1.0-Hk9hLhwJEJqLsmdo1mSY2N:Control.Duoidal.Trans.Class,Control.Duoidal.Trans.Orphans=duoidal-transformers-0.0.1.0-Hk9hLhwJEJqLsmdo1mSY2N:Control.Duoidal.Trans.Orphans [duoidal-transformers]  unit duoidal-transformers-0.0.1.0-AHERlYPmsY3HgBmv1v3ILb-doctests [duoidal-transformers]  include base-4.21.0.0-b334 [duoidal-transformers]  include doctest-0.24.2-7dcRhyR7fwsJGtJTyCZo6u [duoidal-transformers]  include duoidal-transformers-0.0.1.0-Hk9hLhwJEJqLsmdo1mSY2N [duoidal-transformers]  include ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [duoidal-transformers] Ready component graph: [duoidal-transformers]  definite duoidal-transformers-0.0.1.0-Hk9hLhwJEJqLsmdo1mSY2N [duoidal-transformers]  depends base-4.21.0.0-b334 [duoidal-transformers]  depends duoids-0.0.1.0-Jzc4b5W36dXEvfr963zxkm [duoidal-transformers]  depends ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [duoidal-transformers]  depends transformers-0.6.1.2-2558 [duoidal-transformers]  definite duoidal-transformers-0.0.1.0-AHERlYPmsY3HgBmv1v3ILb-doctests [duoidal-transformers]  depends base-4.21.0.0-b334 [duoidal-transformers]  depends doctest-0.24.2-7dcRhyR7fwsJGtJTyCZo6u [duoidal-transformers]  depends duoidal-transformers-0.0.1.0-Hk9hLhwJEJqLsmdo1mSY2N [duoidal-transformers]  depends ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [duoidal-transformers] Using Cabal-3.14.1.0 compiled by ghc-9.12 [duoidal-transformers] Using compiler: ghc-9.12.2 [duoidal-transformers] Using install prefix: [duoidal-transformers] /nix/store/scmby30dka4njfxm1w6njdavhbdi3dv6-duoidal-transformers-0.0.1.0 [duoidal-transformers] Executables installed in: [duoidal-transformers] /nix/store/scmby30dka4njfxm1w6njdavhbdi3dv6-duoidal-transformers-0.0.1.0/bin [duoidal-transformers] Libraries installed in: [duoidal-transformers] /nix/store/scmby30dka4njfxm1w6njdavhbdi3dv6-duoidal-transformers-0.0.1.0/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/duoidal-transformers-0.0.1.0-Hk9hLhwJEJqLsmdo1mSY2N [duoidal-transformers] Dynamic Libraries installed in: [duoidal-transformers] /nix/store/scmby30dka4njfxm1w6njdavhbdi3dv6-duoidal-transformers-0.0.1.0/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3 [duoidal-transformers] Private executables installed in: [duoidal-transformers] /nix/store/scmby30dka4njfxm1w6njdavhbdi3dv6-duoidal-transformers-0.0.1.0/libexec/x86_64-linux-ghc-9.12.2-82d3/duoidal-transformers-0.0.1.0 [duoidal-transformers] Data files installed in: [duoidal-transformers] /nix/store/scmby30dka4njfxm1w6njdavhbdi3dv6-duoidal-transformers-0.0.1.0/share/x86_64-linux-ghc-9.12.2-82d3/duoidal-transformers-0.0.1.0 [duoidal-transformers] Documentation installed in: [duoidal-transformers] /nix/store/v3mp985hqrlllakk3b2c2i0x5r8268dl-duoidal-transformers-0.0.1.0-doc/share/doc/duoidal-transformers-0.0.1.0 [duoidal-transformers] Configuration files installed in: [duoidal-transformers] /nix/store/scmby30dka4njfxm1w6njdavhbdi3dv6-duoidal-transformers-0.0.1.0/etc [duoidal-transformers] No alex found [duoidal-transformers] Using ar found on system at: [duoidal-transformers] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar [duoidal-transformers] No c2hs found [duoidal-transformers] No cpphs found [duoidal-transformers] Using doctest version 0.24.2 found on system at: [duoidal-transformers] /nix/store/39gb85lds43f7spl5690pdk8d65fpr5l-doctest-0.24.2/bin/doctest [duoidal-transformers] Using gcc version 14.3.0 given by user at: [duoidal-transformers] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc [duoidal-transformers] Using ghc version 9.12.2 found on system at: [duoidal-transformers] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc [duoidal-transformers] Using ghc-pkg version 9.12.2 found on system at: [duoidal-transformers] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc-pkg-9.12.2 [duoidal-transformers] No ghcjs found [duoidal-transformers] No ghcjs-pkg found [duoidal-transformers] No greencard found [duoidal-transformers] Using haddock version 2.30.0 found on system at: [duoidal-transformers] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/haddock-ghc-9.12.2 [duoidal-transformers] No happy found [duoidal-transformers] No haskell-suite found [duoidal-transformers] No haskell-suite-pkg found [duoidal-transformers] No hmake found [duoidal-transformers] Using hpc version 0.69 found on system at: [duoidal-transformers] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/hpc-ghc-9.12.2 [duoidal-transformers] Using hsc2hs version 0.68.10 found on system at: [duoidal-transformers] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/hsc2hs-ghc-9.12.2 [duoidal-transformers] Using hscolour version 1.25 found on system at: [duoidal-transformers] /nix/store/02s9rad0jn6nj8z96k357im73hkzqsnw-hscolour-1.25/bin/HsColour [duoidal-transformers] No jhc found [duoidal-transformers] Using ld found on system at: [duoidal-transformers] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld [duoidal-transformers] No pkg-config found [duoidal-transformers] Using runghc version 9.12.2 found on system at: [duoidal-transformers] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/runghc-9.12.2 [duoidal-transformers] Using strip version 2.44 found on system at: [duoidal-transformers] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip [duoidal-transformers] Using tar found on system at: [duoidal-transformers] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar [duoidal-transformers] No uhc found [duoids-hedgehog] Dependency base >=4.16.0 && <4.17 || >=4.17.0 && <4.18 || >=4.18.0 && <4.19 || [duoids-hedgehog] >=4.19.0 && <4.20 || >=4.20.0 && <4.21 || >=4.21.0 && <4.22 || >=4.22.0 && [duoids-hedgehog] <4.23: using base-4.21.0.0 [duoids-hedgehog] Dependency duoids >=0.0.1 && <0.1: using duoids-0.0.1.0 [duoids-hedgehog] Dependency ghc-compat-plugin >=0.1.0 && <0.2: using ghc-compat-plugin-0.1.0.1 [duoids-hedgehog] Dependency hedgehog >=1.1 && <1.3 || >=1.4 && <1.6 || >=1.7 && <1.8: using [duoids-hedgehog] hedgehog-1.5 [duoids-hedgehog] Dependency base >=4.16.0 && <4.17 || >=4.17.0 && <4.18 || >=4.18.0 && <4.19 || [duoids-hedgehog] >=4.19.0 && <4.20 || >=4.20.0 && <4.21 || >=4.21.0 && <4.22 || >=4.22.0 && [duoids-hedgehog] <4.23: using base-4.21.0.0 [duoids-hedgehog] Dependency duoids-hedgehog: using duoids-hedgehog-0.0.1.0 [duoids-hedgehog] Dependency ghc-compat-plugin >=0.1.0 && <0.2: using ghc-compat-plugin-0.1.0.1 [duoids-hedgehog] Dependency hedgehog >=1.1 && <1.3 || >=1.4 && <1.6 || >=1.7 && <1.8: using [duoids-hedgehog] hedgehog-1.5 [duoids-hedgehog] Dependency base >=4.16.0 && <4.17 || >=4.17.0 && <4.18 || >=4.18.0 && <4.19 || [duoids-hedgehog] >=4.19.0 && <4.20 || >=4.20.0 && <4.21 || >=4.21.0 && <4.22 || >=4.22.0 && [duoids-hedgehog] <4.23: using base-4.21.0.0 [duoids-hedgehog] Dependency doctest >=0.18.2 && <0.19 || >=0.20.1 && <0.21 || >=0.21.1 && <0.22 [duoids-hedgehog] || >=0.22.6 && <0.23 || >=0.24.0 && <0.25 || >=0.25.0 && <0.26: using [duoids-hedgehog] doctest-0.24.2 [duoids-hedgehog] Dependency duoids-hedgehog: using duoids-hedgehog-0.0.1.0 [duoids-hedgehog] Dependency ghc-compat-plugin >=0.1.0 && <0.2: using ghc-compat-plugin-0.1.0.1 [duoids-hedgehog] Source component graph: [duoids-hedgehog]  component lib [duoids-hedgehog]  component test:doctests dependency lib [duoids-hedgehog]  component test:laws dependency lib [duoids-hedgehog] Configured component graph: [duoids-hedgehog]  component duoids-hedgehog-0.0.1.0-4PBiwjtwbFHLQ9OHdta2tZ [duoids-hedgehog]  include base-4.21.0.0-b334 [duoids-hedgehog]  include duoids-0.0.1.0-Jzc4b5W36dXEvfr963zxkm [duoids-hedgehog]  include ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [duoids-hedgehog]  include hedgehog-1.5-3LP1um1Ps6qGX0qFDBaPPL [duoids-hedgehog]  component duoids-hedgehog-0.0.1.0-8OXb4LxNLUQAdkrZwh9F9Z-doctests [duoids-hedgehog]  include base-4.21.0.0-b334 [duoids-hedgehog]  include doctest-0.24.2-7dcRhyR7fwsJGtJTyCZo6u [duoids-hedgehog]  include duoids-hedgehog-0.0.1.0-4PBiwjtwbFHLQ9OHdta2tZ [duoids-hedgehog]  include ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [duoids-hedgehog]  component duoids-hedgehog-0.0.1.0-9cxzkk9jdOg27IslNUQkp5-laws [duoids-hedgehog]  include base-4.21.0.0-b334 [duoids-hedgehog]  include duoids-hedgehog-0.0.1.0-4PBiwjtwbFHLQ9OHdta2tZ [duoids-hedgehog]  include ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [duoids-hedgehog]  include hedgehog-1.5-3LP1um1Ps6qGX0qFDBaPPL [duoids-hedgehog] Linked component graph: [duoids-hedgehog]  unit duoids-hedgehog-0.0.1.0-4PBiwjtwbFHLQ9OHdta2tZ [duoids-hedgehog]  include base-4.21.0.0-b334 [duoids-hedgehog]  include duoids-0.0.1.0-Jzc4b5W36dXEvfr963zxkm [duoids-hedgehog]  include ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [duoids-hedgehog]  include hedgehog-1.5-3LP1um1Ps6qGX0qFDBaPPL [duoids-hedgehog]  Test.Duoid=duoids-hedgehog-0.0.1.0-4PBiwjtwbFHLQ9OHdta2tZ:Test.Duoid,Test.Duoidal=duoids-hedgehog-0.0.1.0-4PBiwjtwbFHLQ9OHdta2tZ:Test.Duoidal [duoids-hedgehog]  unit duoids-hedgehog-0.0.1.0-8OXb4LxNLUQAdkrZwh9F9Z-doctests [duoids-hedgehog]  include base-4.21.0.0-b334 [duoids-hedgehog]  include doctest-0.24.2-7dcRhyR7fwsJGtJTyCZo6u [duoids-hedgehog]  include duoids-hedgehog-0.0.1.0-4PBiwjtwbFHLQ9OHdta2tZ [duoids-hedgehog]  include ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [duoids-hedgehog]  unit duoids-hedgehog-0.0.1.0-9cxzkk9jdOg27IslNUQkp5-laws [duoids-hedgehog]  include base-4.21.0.0-b334 [duoids-hedgehog]  include duoids-hedgehog-0.0.1.0-4PBiwjtwbFHLQ9OHdta2tZ [duoids-hedgehog]  include ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [duoids-hedgehog]  include hedgehog-1.5-3LP1um1Ps6qGX0qFDBaPPL [duoids-hedgehog] Ready component graph: [duoids-hedgehog]  definite duoids-hedgehog-0.0.1.0-4PBiwjtwbFHLQ9OHdta2tZ [duoids-hedgehog]  depends base-4.21.0.0-b334 [duoids-hedgehog]  depends duoids-0.0.1.0-Jzc4b5W36dXEvfr963zxkm [duoids-hedgehog]  depends ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [duoids-hedgehog]  depends hedgehog-1.5-3LP1um1Ps6qGX0qFDBaPPL [duoids-hedgehog]  definite duoids-hedgehog-0.0.1.0-8OXb4LxNLUQAdkrZwh9F9Z-doctests [duoids-hedgehog]  depends base-4.21.0.0-b334 [duoids-hedgehog]  depends doctest-0.24.2-7dcRhyR7fwsJGtJTyCZo6u [duoids-hedgehog]  depends duoids-hedgehog-0.0.1.0-4PBiwjtwbFHLQ9OHdta2tZ [duoids-hedgehog]  depends ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [duoids-hedgehog]  definite duoids-hedgehog-0.0.1.0-9cxzkk9jdOg27IslNUQkp5-laws [duoids-hedgehog]  depends base-4.21.0.0-b334 [duoids-hedgehog]  depends duoids-hedgehog-0.0.1.0-4PBiwjtwbFHLQ9OHdta2tZ [duoids-hedgehog]  depends ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [duoids-hedgehog]  depends hedgehog-1.5-3LP1um1Ps6qGX0qFDBaPPL [duoids-hedgehog] Using Cabal-3.14.1.0 compiled by ghc-9.12 [duoids-hedgehog] Using compiler: ghc-9.12.2 [duoids-hedgehog] Using install prefix: [duoids-hedgehog] /nix/store/b23lx4bcxv7k9d65q88921y71rbk250l-duoids-hedgehog-0.0.1.0 [duoids-hedgehog] Executables installed in: [duoids-hedgehog] /nix/store/b23lx4bcxv7k9d65q88921y71rbk250l-duoids-hedgehog-0.0.1.0/bin [duoids-hedgehog] Libraries installed in: [duoids-hedgehog] /nix/store/b23lx4bcxv7k9d65q88921y71rbk250l-duoids-hedgehog-0.0.1.0/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/duoids-hedgehog-0.0.1.0-4PBiwjtwbFHLQ9OHdta2tZ [duoids-hedgehog] Dynamic Libraries installed in: [duoids-hedgehog] /nix/store/b23lx4bcxv7k9d65q88921y71rbk250l-duoids-hedgehog-0.0.1.0/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3 [duoids-hedgehog] Private executables installed in: [duoids-hedgehog] /nix/store/b23lx4bcxv7k9d65q88921y71rbk250l-duoids-hedgehog-0.0.1.0/libexec/x86_64-linux-ghc-9.12.2-82d3/duoids-hedgehog-0.0.1.0 [duoids-hedgehog] Data files installed in: [duoids-hedgehog] /nix/store/b23lx4bcxv7k9d65q88921y71rbk250l-duoids-hedgehog-0.0.1.0/share/x86_64-linux-ghc-9.12.2-82d3/duoids-hedgehog-0.0.1.0 [duoids-hedgehog] Documentation installed in: [duoids-hedgehog] /nix/store/jd7djwacx5cr6lf90fi0c1d1r8dgg5nw-duoids-hedgehog-0.0.1.0-doc/share/doc/duoids-hedgehog-0.0.1.0 [duoids-hedgehog] Configuration files installed in: [duoids-hedgehog] /nix/store/b23lx4bcxv7k9d65q88921y71rbk250l-duoids-hedgehog-0.0.1.0/etc [duoids-hedgehog] No alex found [duoids-hedgehog] Using ar found on system at: [duoids-hedgehog] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar [duoids-hedgehog] No c2hs found [duoids-hedgehog] No cpphs found [duoids-hedgehog] Using doctest version 0.24.2 found on system at: [duoids-hedgehog] /nix/store/39gb85lds43f7spl5690pdk8d65fpr5l-doctest-0.24.2/bin/doctest [duoids-hedgehog] Using gcc version 14.3.0 given by user at: [duoids-hedgehog] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc [duoids-hedgehog] Using ghc version 9.12.2 found on system at: [duoids-hedgehog] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc [duoids-hedgehog] Using ghc-pkg version 9.12.2 found on system at: [duoids-hedgehog] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc-pkg-9.12.2 [duoids-hedgehog] No ghcjs found [duoids-hedgehog] No ghcjs-pkg found [duoids-hedgehog] No greencard found [duoids-hedgehog] Using haddock version 2.30.0 found on system at: [duoids-hedgehog] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/haddock-ghc-9.12.2 [duoids-hedgehog] No happy found [duoids-hedgehog] No haskell-suite found [duoids-hedgehog] No haskell-suite-pkg found [duoids-hedgehog] No hmake found [duoids-hedgehog] Using hpc version 0.69 found on system at: [duoids-hedgehog] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/hpc-ghc-9.12.2 [duoids-hedgehog] Using hsc2hs version 0.68.10 found on system at: [duoids-hedgehog] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/hsc2hs-ghc-9.12.2 [duoids-hedgehog] Using hscolour version 1.25 found on system at: [duoids-hedgehog] /nix/store/02s9rad0jn6nj8z96k357im73hkzqsnw-hscolour-1.25/bin/HsColour [duoids-hedgehog] No jhc found [duoids-hedgehog] Using ld found on system at: [duoids-hedgehog] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld [duoids-hedgehog] No pkg-config found [duoids-hedgehog] Using runghc version 9.12.2 found on system at: [duoids-hedgehog] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/runghc-9.12.2 [duoids-hedgehog] Using strip version 2.44 found on system at: [duoids-hedgehog] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip [duoids-hedgehog] Using tar found on system at: [duoids-hedgehog] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar [duoids-hedgehog] No uhc found [duoidal-transformers] Phase: buildPhase [duoidal-transformers] Preprocessing library for duoidal-transformers-0.0.1.0... [duoidal-transformers] Building library for duoidal-transformers-0.0.1.0... [duoidal-transformers] [1 of 2] Compiling Control.Duoidal.Trans.Class ( src/Control/Duoidal/Trans/Class.hs, dist/build/Control/Duoidal/Trans/Class.o, dist/build/Control/Duoidal/Trans/Class.dyn_o ) [duoids-hedgehog] Phase: buildPhase [duoids-hedgehog] Preprocessing library for duoids-hedgehog-0.0.1.0... [duoids-hedgehog] Building library for duoids-hedgehog-0.0.1.0... [duoids-hedgehog] [1 of 2] Compiling Test.Duoid ( src/Test/Duoid.hs, dist/build/Test/Duoid.o, dist/build/Test/Duoid.dyn_o ) [duoidal-transformers] [2 of 2] Compiling Control.Duoidal.Trans.Orphans ( src/Control/Duoidal/Trans/Orphans.hs, dist/build/Control/Duoidal/Trans/Orphans.o, dist/build/Control/Duoidal/Trans/Orphans.dyn_o ) [vector] [23 of 23] Compiling Data.Vector.Unboxed.Mutable ( src/Data/Vector/Unboxed/Mutable.hs, dist/build/Data/Vector/Unboxed/Mutable.o, dist/build/Data/Vector/Unboxed/Mutable.dyn_o ) [duoidal-transformers] [1 of 2] Compiling Control.Duoidal.Trans.Class ( src/Control/Duoidal/Trans/Class.hs, dist/build/Control/Duoidal/Trans/Class.p_o ) [duoids-hedgehog] [2 of 2] Compiling Test.Duoidal ( src/Test/Duoidal.hs, dist/build/Test/Duoidal.o, dist/build/Test/Duoidal.dyn_o ) [vector] [ 1 of 23] Compiling Data.Vector.Fusion.Stream.Monadic ( src/Data/Vector/Fusion/Stream/Monadic.hs, dist/build/Data/Vector/Fusion/Stream/Monadic.p_o ) [vector] [ 2 of 23] Compiling Data.Vector.Fusion.Util ( src/Data/Vector/Fusion/Util.hs, dist/build/Data/Vector/Fusion/Util.p_o ) [duoids-hedgehog] [1 of 2] Compiling Test.Duoid ( src/Test/Duoid.hs, dist/build/Test/Duoid.p_o ) [vector] [ 3 of 23] Compiling Data.Vector.Fusion.Bundle.Size ( src/Data/Vector/Fusion/Bundle/Size.hs, dist/build/Data/Vector/Fusion/Bundle/Size.p_o ) [duoidal-transformers] [2 of 2] Compiling Control.Duoidal.Trans.Orphans ( src/Control/Duoidal/Trans/Orphans.hs, dist/build/Control/Duoidal/Trans/Orphans.p_o ) [vector] [ 4 of 23] Compiling Data.Vector.Generic.Mutable.Base ( src/Data/Vector/Generic/Mutable/Base.hs, dist/build/Data/Vector/Generic/Mutable/Base.p_o ) [vector] [ 5 of 23] Compiling Data.Vector.Generic.Base ( src/Data/Vector/Generic/Base.hs, dist/build/Data/Vector/Generic/Base.p_o ) [vector] [ 6 of 23] Compiling Data.Vector.Internal.Check ( src/Data/Vector/Internal/Check.hs, dist/build/Data/Vector/Internal/Check.p_o ) [vector] [ 7 of 23] Compiling Data.Vector.Fusion.Bundle.Monadic ( src/Data/Vector/Fusion/Bundle/Monadic.hs, dist/build/Data/Vector/Fusion/Bundle/Monadic.p_o ) [duoids-hedgehog] [2 of 2] Compiling Test.Duoidal ( src/Test/Duoidal.hs, dist/build/Test/Duoidal.p_o ) [duoidal-transformers] Preprocessing test suite 'doctests' for duoidal-transformers-0.0.1.0... [duoidal-transformers] Building test suite 'doctests' for duoidal-transformers-0.0.1.0... [duoidal-transformers] [1 of 2] Compiling Build_doctests ( dist/build/doctests/autogen/Build_doctests.hs, dist/build/doctests/doctests-tmp/Build_doctests.o ) [duoidal-transformers] [2 of 2] Compiling Main ( tests/doctests.hs, dist/build/doctests/doctests-tmp/Main.o ) [duoids-hedgehog] Preprocessing test suite 'doctests' for duoids-hedgehog-0.0.1.0... [duoids-hedgehog] Building test suite 'doctests' for duoids-hedgehog-0.0.1.0... [duoids-hedgehog] [1 of 2] Compiling Build_doctests ( dist/build/doctests/autogen/Build_doctests.hs, dist/build/doctests/doctests-tmp/Build_doctests.o ) [duoidal-transformers] [3 of 3] Linking dist/build/doctests/doctests [duoids-hedgehog] [2 of 2] Compiling Main ( tests/doctests.hs, dist/build/doctests/doctests-tmp/Main.o ) [vector] [ 8 of 23] Compiling Data.Vector.Fusion.Bundle ( src/Data/Vector/Fusion/Bundle.hs, dist/build/Data/Vector/Fusion/Bundle.p_o ) [duoids-hedgehog] [3 of 3] Linking dist/build/doctests/doctests [vector] [ 9 of 23] Compiling Data.Vector.Generic.Mutable ( src/Data/Vector/Generic/Mutable.hs, dist/build/Data/Vector/Generic/Mutable.p_o ) [duoidal-transformers] Phase: checkPhase [duoidal-transformers] Running 1 test suites... [duoidal-transformers] Test suite doctests: RUNNING... [duoidal-transformers] on the commandline: warning: [GHC-98887] [duoidal-transformers]  -XTemplateHaskell is not allowed in Safe Haskell; ignoring -XTemplateHaskell [duoidal-transformers]  [duoidal-transformers] on the commandline: warning: [GHC-98887] [duoidal-transformers]  -XTemplateHaskell is not allowed in Safe Haskell; ignoring -XTemplateHaskell [duoidal-transformers]  [duoidal-transformers] on the commandline: warning: [GHC-98887] [duoidal-transformers]  -XTemplateHaskell is not allowed in Safe Haskell; ignoring -XTemplateHaskell [duoidal-transformers]  [duoidal-transformers] Examples: 0 Tried: 0 Errors: 0 Failures: 0 [duoidal-transformers] NameLib Nothing [duoidal-transformers] ---------------------------------------- [duoidal-transformers] Test suite doctests: PASS [duoidal-transformers] Test suite logged to: dist/test/duoidal-transformers-0.0.1.0-doctests.log [duoidal-transformers] 1 of 1 test suites (1 of 1 test cases) passed. [duoidal-transformers] Phase: haddockPhase [duoids-hedgehog] Preprocessing test suite 'laws' for duoids-hedgehog-0.0.1.0... [duoids-hedgehog] Building test suite 'laws' for duoids-hedgehog-0.0.1.0... [duoids-hedgehog] [1 of 1] Compiling Main ( tests/laws.hs, dist/build/laws/laws-tmp/Main.o ) [duoidal-transformers] Preprocessing library for duoidal-transformers-0.0.1.0... [duoidal-transformers] Running Haddock on library for duoidal-transformers-0.0.1.0... [duoids-hedgehog] [2 of 2] Linking dist/build/laws/laws [duoidal-transformers] [1 of 2] Compiling Control.Duoidal.Trans.Class ( src/Control/Duoidal/Trans/Class.hs, nothing ) [HIE file is missing] [vector] [10 of 23] Compiling Data.Vector.Generic.New ( src/Data/Vector/Generic/New.hs, dist/build/Data/Vector/Generic/New.p_o ) [duoidal-transformers] [2 of 2] Compiling Control.Duoidal.Trans.Orphans ( src/Control/Duoidal/Trans/Orphans.hs, nothing ) [HIE file is missing] [duoidal-transformers] Haddock coverage: [duoidal-transformers] Warning: 'MonadTrans' is out of scope. [duoidal-transformers]  If you qualify the identifier, haddock can try to link it anyway. [vector] [11 of 23] Compiling Data.Vector.Generic ( src/Data/Vector/Generic.hs, dist/build/Data/Vector/Generic.p_o ) [duoidal-transformers]  100% ( 3 / 3) in 'Control.Duoidal.Trans.Class' [duoidal-transformers]  100% ( 1 / 1) in 'Control.Duoidal.Trans.Orphans' [duoids-hedgehog] Phase: checkPhase [duoids-hedgehog] Running 2 test suites... [duoids-hedgehog] Test suite doctests: RUNNING... [duoids-hedgehog] Examples: 0 Tried: 0 Errors: 0 Failures: 0 [duoids-hedgehog] NameLib Nothing [duoids-hedgehog] ---------------------------------------- [duoids-hedgehog] Test suite doctests: PASS [duoids-hedgehog] Test suite logged to: dist/test/duoids-hedgehog-0.0.1.0-doctests.log [duoids-hedgehog] Test suite laws: RUNNING... [duoids-hedgehog] ━━━ Duoid Int ━━━ [duoids-hedgehog]  ✓ interchange passed 100 tests. [duoids-hedgehog]  ✓ splitUnit passed 100 tests. [duoids-hedgehog]  ✓ joinUnit passed 100 tests. [duoids-hedgehog]  ✓ swapUnit passed 100 tests. [duoids-hedgehog]  ✓ 4 succeeded. [duoids-hedgehog] ━━━ Duoid Int16 ━━━ [duoids-hedgehog]  ✓ interchange passed 100 tests. [duoids-hedgehog]  ✓ splitUnit passed 100 tests. [duoids-hedgehog]  ✓ joinUnit passed 100 tests. [duoids-hedgehog]  ✓ swapUnit passed 100 tests. [duoids-hedgehog]  ✓ 4 succeeded. [duoids-hedgehog] ━━━ Duoid Int32 ━━━ [duoids-hedgehog]  ✓ interchange passed 100 tests. [duoids-hedgehog]  ✓ splitUnit passed 100 tests. [duoids-hedgehog]  ✓ joinUnit passed 100 tests. [duoids-hedgehog]  ✓ swapUnit passed 100 tests. [duoids-hedgehog]  ✓ 4 succeeded. [duoids-hedgehog] ━━━ Duoid Int64 ━━━ [duoids-hedgehog]  ✓ interchange passed 100 tests. [duoids-hedgehog]  ✓ splitUnit passed 100 tests. [duoids-hedgehog]  ✓ joinUnit passed 100 tests. [duoids-hedgehog]  ✓ swapUnit passed 100 tests. [duoids-hedgehog]  ✓ 4 succeeded. [duoids-hedgehog] ━━━ Duoid Int8 ━━━ [duoids-hedgehog]  ✓ interchange passed 100 tests. [duoids-hedgehog]  ✓ splitUnit passed 100 tests. [duoids-hedgehog]  ✓ joinUnit passed 100 tests. [duoids-hedgehog]  ✓ swapUnit passed 100 tests. [duoids-hedgehog]  ✓ 4 succeeded. [duoids-hedgehog] ━━━ Duoid.Normal Natural ━━━ [duoids-hedgehog]  ✓ unswapUnit passed 100 tests. [duoids-hedgehog]  ✓ interchange passed 100 tests. [duoids-hedgehog]  ✓ splitUnit passed 100 tests. [duoids-hedgehog]  ✓ joinUnit passed 100 tests. [duoids-hedgehog]  ✓ swapUnit passed 100 tests. [duoids-hedgehog]  ✓ 5 succeeded. [duoids-hedgehog] ━━━ Duoid.Normal (Ratio Natural) ━━━ [duoids-hedgehog]  ✓ unswapUnit passed 100 tests. [duoids-hedgehog]  ✓ interchange passed 100 tests. [duoids-hedgehog]  ✓ splitUnit passed 100 tests. [duoids-hedgehog]  ✓ joinUnit passed 100 tests. [duoids-hedgehog]  ✓ swapUnit passed 100 tests. [duoids-hedgehog]  ✓ 5 succeeded. [duoids-hedgehog] ━━━ Duoid (Ratio Integer) ━━━ [duoids-hedgehog]  ✓ interchange passed 100 tests. [duoids-hedgehog]  ✓ splitUnit passed 100 tests. [duoids-hedgehog]  ✓ joinUnit passed 100 tests. [duoids-hedgehog]  ✓ swapUnit passed 100 tests. [duoids-hedgehog]  ✓ 4 succeeded. [duoids-hedgehog] ━━━ Duoid.Normal Word ━━━ [duoids-hedgehog]  ✓ unswapUnit passed 100 tests. [duoids-hedgehog]  ✓ interchange passed 100 tests. [duoids-hedgehog]  ✓ splitUnit passed 100 tests. [duoids-hedgehog]  ✓ joinUnit passed 100 tests. [duoids-hedgehog]  ✓ swapUnit passed 100 tests. [duoids-hedgehog]  ✓ 5 succeeded. [duoids-hedgehog] ━━━ Duoid.Normal Word16 ━━━ [duoids-hedgehog]  ✓ unswapUnit passed 100 tests. [duoids-hedgehog]  ✓ interchange passed 100 tests. [duoids-hedgehog]  ✓ splitUnit passed 100 tests. [duoids-hedgehog]  ✓ joinUnit passed 100 tests. [duoids-hedgehog]  ✓ swapUnit passed 100 tests. [duoids-hedgehog]  ✓ 5 succeeded. [duoids-hedgehog] ━━━ Duoid.Normal Word32 ━━━ [duoids-hedgehog]  ✓ unswapUnit passed 100 tests. [duoids-hedgehog]  ✓ interchange passed 100 tests. [duoids-hedgehog]  ✓ splitUnit passed 100 tests. [duoids-hedgehog]  ✓ joinUnit passed 100 tests. [duoids-hedgehog]  ✓ swapUnit passed 100 tests. [duoids-hedgehog]  ✓ 5 succeeded. [duoids-hedgehog] ━━━ Duoid.Normal Word64 ━━━ [duoids-hedgehog]  ✓ unswapUnit passed 100 tests. [duoids-hedgehog]  ✓ interchange passed 100 tests. [duoids-hedgehog]  ✓ splitUnit passed 100 tests. [duoids-hedgehog]  ✓ joinUnit passed 100 tests. [duoids-hedgehog]  ✓ swapUnit passed 100 tests. [duoids-hedgehog]  ✓ 5 succeeded. [duoids-hedgehog] ━━━ Duoid.Normal Word8 ━━━ [duoids-hedgehog]  ✓ unswapUnit passed 100 tests. [duoids-hedgehog]  ✓ interchange passed 100 tests. [duoids-hedgehog]  ✓ splitUnit passed 100 tests. [duoids-hedgehog]  ✓ joinUnit passed 100 tests. [duoids-hedgehog]  ✓ swapUnit passed 100 tests. [duoids-hedgehog]  ✓ 5 succeeded. [duoids-hedgehog] Test suite laws: PASS [duoids-hedgehog] Test suite logged to: dist/test/duoids-hedgehog-0.0.1.0-laws.log [duoids-hedgehog] 2 of 2 test suites (2 of 2 test cases) passed. [duoids-hedgehog] Phase: haddockPhase [duoids-hedgehog] Preprocessing library for duoids-hedgehog-0.0.1.0... [duoids-hedgehog] Running Haddock on library for duoids-hedgehog-0.0.1.0... [duoids-hedgehog] [1 of 2] Compiling Test.Duoid ( src/Test/Duoid.hs, nothing ) [HIE file is missing] [duoids-hedgehog] [2 of 2] Compiling Test.Duoidal ( src/Test/Duoidal.hs, nothing ) [HIE file is missing] [duoids-hedgehog] Haddock coverage: [duoids-hedgehog]  100% ( 3 / 3) in 'Test.Duoid' [duoids-hedgehog]  100% ( 2 / 2) in 'Test.Duoidal' [vector] [12 of 23] Compiling Data.Vector.Mutable ( src/Data/Vector/Mutable.hs, dist/build/Data/Vector/Mutable.p_o ) [vector] src/Data/Vector/Mutable.hs:99:20: warning: []8;;https://errors.haskell.org/messages/GHC-90584\GHC-90584]8;;\] [-Wderiving-typeable] [vector]  • Deriving ‘Typeable’ has no effect: all types now auto-derive Typeable [vector]  • In the data declaration for ‘MVector’ [vector]  | [vector] 99 | deriving ( Typeable ) [vector]  | ^^^^^^^^ [vector]  [vector] [13 of 23] Compiling Data.Vector ( src/Data/Vector.hs, dist/build/Data/Vector.p_o ) [vector] src/Data/Vector.hs:222:20: warning: []8;;https://errors.haskell.org/messages/GHC-90584\GHC-90584]8;;\] [-Wderiving-typeable] [vector]  • Deriving ‘Typeable’ has no effect: all types now auto-derive Typeable [vector]  • In the data declaration for ‘Vector’ [vector]  | [vector] 222 | deriving ( Typeable ) [vector]  | ^^^^^^^^ [vector]  [duoidal-transformers] Documentation created: dist/doc/html/duoidal-transformers, [duoidal-transformers] dist/doc/html/duoidal-transformers/duoidal-transformers.txt [duoidal-transformers] Preprocessing test suite 'doctests' for duoidal-transformers-0.0.1.0... [duoidal-transformers] Phase: installPhase [duoidal-transformers] Installing library in /nix/store/scmby30dka4njfxm1w6njdavhbdi3dv6-duoidal-transformers-0.0.1.0/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/duoidal-transformers-0.0.1.0-Hk9hLhwJEJqLsmdo1mSY2N [duoidal-transformers] Phase: fixupPhase [duoidal-transformers] shrinking RPATHs of ELF executables and libraries in /nix/store/scmby30dka4njfxm1w6njdavhbdi3dv6-duoidal-transformers-0.0.1.0 [duoidal-transformers] shrinking /nix/store/scmby30dka4njfxm1w6njdavhbdi3dv6-duoidal-transformers-0.0.1.0/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/libHSduoidal-transformers-0.0.1.0-Hk9hLhwJEJqLsmdo1mSY2N-ghc9.12.2.so [duoidal-transformers] checking for references to /build/ in /nix/store/scmby30dka4njfxm1w6njdavhbdi3dv6-duoidal-transformers-0.0.1.0... [duoidal-transformers] patching script interpreter paths in /nix/store/scmby30dka4njfxm1w6njdavhbdi3dv6-duoidal-transformers-0.0.1.0 [duoidal-transformers] stripping (with command strip and flags -S -p) in /nix/store/scmby30dka4njfxm1w6njdavhbdi3dv6-duoidal-transformers-0.0.1.0/lib [duoidal-transformers] shrinking RPATHs of ELF executables and libraries in /nix/store/v3mp985hqrlllakk3b2c2i0x5r8268dl-duoidal-transformers-0.0.1.0-doc [duoidal-transformers] checking for references to /build/ in /nix/store/v3mp985hqrlllakk3b2c2i0x5r8268dl-duoidal-transformers-0.0.1.0-doc... [duoidal-transformers] patching script interpreter paths in /nix/store/v3mp985hqrlllakk3b2c2i0x5r8268dl-duoidal-transformers-0.0.1.0-doc [duoidal-transformers:post-build] Uploading to cachix cache "sellout": /nix/store/scmby30dka4njfxm1w6njdavhbdi3dv6-duoidal-transformers-0.0.1.0 /nix/store/v3mp985hqrlllakk3b2c2i0x5r8268dl-duoidal-transformers-0.0.1.0-doc [duoidal-transformers:post-build] Pushing 2 paths (74 are already present) using zstd to cache sellout ⏳ [duoidal-transformers:post-build]  [duoidal-transformers:post-build] Pushing /nix/store/v3mp985hqrlllakk3b2c2i0x5r8268dl-duoidal-transformers-0.0.1.0-doc (347.18 KiB) [duoidal-transformers:post-build] Pushing /nix/store/scmby30dka4njfxm1w6njdavhbdi3dv6-duoidal-transformers-0.0.1.0 (676.22 KiB) [duoidal-transformers:post-build]  [duoidal-transformers:post-build] All done. [duoidal-transformers:post-build] Uploading to the NixCI cache: /nix/store/scmby30dka4njfxm1w6njdavhbdi3dv6-duoidal-transformers-0.0.1.0 /nix/store/v3mp985hqrlllakk3b2c2i0x5r8268dl-duoidal-transformers-0.0.1.0-doc [duoidal-transformers:post-build] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [duoidal-transformers:post-build] copying 2 paths... [duoidal-transformers:post-build] copying path '/nix/store/v3mp985hqrlllakk3b2c2i0x5r8268dl-duoidal-transformers-0.0.1.0-doc' to 'https://cache.nix-ci.com'... [duoidal-transformers:post-build] copying path '/nix/store/scmby30dka4njfxm1w6njdavhbdi3dv6-duoidal-transformers-0.0.1.0' to 'https://cache.nix-ci.com'... [duoidal-transformers:post-build] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [duoidal-transformers:post-build] copying 1 paths... [duoidal-transformers:post-build] copying path '/nix/store/r4qbh0nx4xdav1brmczrk08kh22icqzb-duoidal-transformers-0.0.1.0.drv' to 'https://cache.nix-ci.com'... Progress: 2 of 16 built (2 building), 43 of 43 downloaded from cache [duoids-hedgehog] Documentation created: dist/doc/html/duoids-hedgehog, [duoids-hedgehog] dist/doc/html/duoids-hedgehog/duoids-hedgehog.txt [vector] [14 of 23] Compiling Data.Vector.Primitive.Mutable ( src/Data/Vector/Primitive/Mutable.hs, dist/build/Data/Vector/Primitive/Mutable.p_o ) [vector] src/Data/Vector/Primitive/Mutable.hs:115:20: warning: []8;;https://errors.haskell.org/messages/GHC-90584\GHC-90584]8;;\] [-Wderiving-typeable] [vector]  • Deriving ‘Typeable’ has no effect: all types now auto-derive Typeable [vector]  • In the data declaration for ‘MVector’ [vector]  | [vector] 115 | deriving ( Typeable ) [vector]  | ^^^^^^^^ [vector]  [vector] [15 of 23] Compiling Data.Vector.Primitive ( src/Data/Vector/Primitive.hs, dist/build/Data/Vector/Primitive.p_o ) [vector] src/Data/Vector/Primitive.hs:209:14: warning: []8;;https://errors.haskell.org/messages/GHC-90584\GHC-90584]8;;\] [-Wderiving-typeable] [vector]  • Deriving ‘Typeable’ has no effect: all types now auto-derive Typeable [vector]  • In the data declaration for ‘Vector’ [vector]  | [vector] 209 | deriving ( Typeable ) [vector]  | ^^^^^^^^ [vector]  [vector] [16 of 23] Compiling Data.Vector.Storable.Internal ( src/Data/Vector/Storable/Internal.hs, dist/build/Data/Vector/Storable/Internal.p_o ) [vector] [17 of 23] Compiling Data.Vector.Storable.Mutable ( src/Data/Vector/Storable/Mutable.hs, dist/build/Data/Vector/Storable/Mutable.p_o ) [vector] src/Data/Vector/Storable/Mutable.hs:134:20: warning: []8;;https://errors.haskell.org/messages/GHC-90584\GHC-90584]8;;\] [-Wderiving-typeable] [vector]  • Deriving ‘Typeable’ has no effect: all types now auto-derive Typeable [vector]  • In the data declaration for ‘MVector’ [vector]  | [vector] 134 | deriving ( Typeable ) [vector]  | ^^^^^^^^ [vector]  [vector] [18 of 23] Compiling Data.Vector.Storable ( src/Data/Vector/Storable.hs, dist/build/Data/Vector/Storable.p_o ) [vector] src/Data/Vector/Storable.hs:219:20: warning: []8;;https://errors.haskell.org/messages/GHC-90584\GHC-90584]8;;\] [-Wderiving-typeable] [vector]  • Deriving ‘Typeable’ has no effect: all types now auto-derive Typeable [vector]  • In the data declaration for ‘Vector’ [vector]  | [vector] 219 | deriving ( Typeable ) [vector]  | ^^^^^^^^ [vector]  [vector] [19 of 23] Compiling Data.Vector.Strict.Mutable ( src/Data/Vector/Strict/Mutable.hs, dist/build/Data/Vector/Strict/Mutable.p_o ) [vector] src/Data/Vector/Strict/Mutable.hs:97:20: warning: []8;;https://errors.haskell.org/messages/GHC-90584\GHC-90584]8;;\] [-Wderiving-typeable] [vector]  • Deriving ‘Typeable’ has no effect: all types now auto-derive Typeable [vector]  • In the newtype declaration for ‘MVector’ [vector]  | [vector] 97 | deriving ( Typeable ) [vector]  | ^^^^^^^^ [vector]  [vector] [20 of 23] Compiling Data.Vector.Strict ( src/Data/Vector/Strict.hs, dist/build/Data/Vector/Strict.p_o ) [vector] src/Data/Vector/Strict.hs:221:13: warning: []8;;https://errors.haskell.org/messages/GHC-90584\GHC-90584]8;;\] [-Wderiving-typeable] [vector]  • Deriving ‘Typeable’ has no effect: all types now auto-derive Typeable [vector]  • In the newtype declaration for ‘Vector’ [vector]  | [vector] 221 | deriving (Typeable, Foldable.Foldable, Semigroup, Monoid) [vector]  | ^^^^^^^^ [vector]  [duoids-hedgehog] Preprocessing test suite 'doctests' for duoids-hedgehog-0.0.1.0... [duoids-hedgehog] Preprocessing test suite 'laws' for duoids-hedgehog-0.0.1.0... [duoids-hedgehog] Phase: installPhase [duoids-hedgehog] Installing library in /nix/store/b23lx4bcxv7k9d65q88921y71rbk250l-duoids-hedgehog-0.0.1.0/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/duoids-hedgehog-0.0.1.0-4PBiwjtwbFHLQ9OHdta2tZ [duoids-hedgehog] Phase: fixupPhase [duoids-hedgehog] shrinking RPATHs of ELF executables and libraries in /nix/store/b23lx4bcxv7k9d65q88921y71rbk250l-duoids-hedgehog-0.0.1.0 [duoids-hedgehog] shrinking /nix/store/b23lx4bcxv7k9d65q88921y71rbk250l-duoids-hedgehog-0.0.1.0/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/libHSduoids-hedgehog-0.0.1.0-4PBiwjtwbFHLQ9OHdta2tZ-ghc9.12.2.so [duoids-hedgehog] checking for references to /build/ in /nix/store/b23lx4bcxv7k9d65q88921y71rbk250l-duoids-hedgehog-0.0.1.0... [duoids-hedgehog] patching script interpreter paths in /nix/store/b23lx4bcxv7k9d65q88921y71rbk250l-duoids-hedgehog-0.0.1.0 [duoids-hedgehog] stripping (with command strip and flags -S -p) in /nix/store/b23lx4bcxv7k9d65q88921y71rbk250l-duoids-hedgehog-0.0.1.0/lib [duoids-hedgehog] shrinking RPATHs of ELF executables and libraries in /nix/store/jd7djwacx5cr6lf90fi0c1d1r8dgg5nw-duoids-hedgehog-0.0.1.0-doc [duoids-hedgehog] checking for references to /build/ in /nix/store/jd7djwacx5cr6lf90fi0c1d1r8dgg5nw-duoids-hedgehog-0.0.1.0-doc... [duoids-hedgehog] patching script interpreter paths in /nix/store/jd7djwacx5cr6lf90fi0c1d1r8dgg5nw-duoids-hedgehog-0.0.1.0-doc [duoids-hedgehog:post-build] Uploading to cachix cache "sellout": /nix/store/b23lx4bcxv7k9d65q88921y71rbk250l-duoids-hedgehog-0.0.1.0 /nix/store/jd7djwacx5cr6lf90fi0c1d1r8dgg5nw-duoids-hedgehog-0.0.1.0-doc [duoids-hedgehog:post-build] Pushing 2 paths (136 are already present) using zstd to cache sellout ⏳ [duoids-hedgehog:post-build]  [duoids-hedgehog:post-build] Pushing /nix/store/jd7djwacx5cr6lf90fi0c1d1r8dgg5nw-duoids-hedgehog-0.0.1.0-doc (306.13 KiB) [duoids-hedgehog:post-build] Pushing /nix/store/b23lx4bcxv7k9d65q88921y71rbk250l-duoids-hedgehog-0.0.1.0 (607.55 KiB) [duoids-hedgehog:post-build]  [duoids-hedgehog:post-build] All done. [duoids-hedgehog:post-build] Uploading to the NixCI cache: /nix/store/b23lx4bcxv7k9d65q88921y71rbk250l-duoids-hedgehog-0.0.1.0 /nix/store/jd7djwacx5cr6lf90fi0c1d1r8dgg5nw-duoids-hedgehog-0.0.1.0-doc [duoids-hedgehog:post-build] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [duoids-hedgehog:post-build] copying 2 paths... [duoids-hedgehog:post-build] copying path '/nix/store/jd7djwacx5cr6lf90fi0c1d1r8dgg5nw-duoids-hedgehog-0.0.1.0-doc' to 'https://cache.nix-ci.com'... [duoids-hedgehog:post-build] copying path '/nix/store/b23lx4bcxv7k9d65q88921y71rbk250l-duoids-hedgehog-0.0.1.0' to 'https://cache.nix-ci.com'... [duoids-hedgehog:post-build] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [duoids-hedgehog:post-build] copying 1 paths... [duoids-hedgehog:post-build] copying path '/nix/store/7zdasvd6vyppkvgr76ry6yh3qy0k06zv-duoids-hedgehog-0.0.1.0.drv' to 'https://cache.nix-ci.com'... Progress: 3 of 15 built (1 building), 43 of 43 downloaded from cache [vector] [21 of 23] Compiling Data.Vector.Unboxed.Base ( src/Data/Vector/Unboxed/Base.hs, dist/build/Data/Vector/Unboxed/Base.p_o ) [vector] src/Data/Vector/Unboxed/Base.hs:97:1: warning: []8;;https://errors.haskell.org/messages/GHC-90584\GHC-90584]8;;\] [-Wderiving-typeable] [vector]  • Deriving ‘Typeable’ has no effect: all types now auto-derive Typeable [vector]  • In the stand-alone deriving instance for ‘Typeable Vector’ [vector]  | [vector] 97 | deriving instance Typeable Vector [vector]  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [vector]  [vector] src/Data/Vector/Unboxed/Base.hs:98:1: warning: []8;;https://errors.haskell.org/messages/GHC-90584\GHC-90584]8;;\] [-Wderiving-typeable] [vector]  • Deriving ‘Typeable’ has no effect: all types now auto-derive Typeable [vector]  • In the stand-alone deriving instance for ‘Typeable MVector’ [vector]  | [vector] 98 | deriving instance Typeable MVector [vector]  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [vector]  [vector] [22 of 23] Compiling Data.Vector.Unboxed ( src/Data/Vector/Unboxed.hs, dist/build/Data/Vector/Unboxed.p_o ) [vector] [23 of 23] Compiling Data.Vector.Unboxed.Mutable ( src/Data/Vector/Unboxed/Mutable.hs, dist/build/Data/Vector/Unboxed/Mutable.p_o ) [vector] Preprocessing test suite 'vector-tests-O0' for vector-0.13.2.0... [vector] Building test suite 'vector-tests-O0' for vector-0.13.2.0... [vector] [ 1 of 12] Compiling Boilerplater ( tests/Boilerplater.hs, dist/build/vector-tests-O0/vector-tests-O0-tmp/Boilerplater.o, dist/build/vector-tests-O0/vector-tests-O0-tmp/Boilerplater.dyn_o ) [vector] [ 2 of 12] Compiling Tests.Vector.UnitTests ( tests/Tests/Vector/UnitTests.hs, dist/build/vector-tests-O0/vector-tests-O0-tmp/Tests/Vector/UnitTests.o, dist/build/vector-tests-O0/vector-tests-O0-tmp/Tests/Vector/UnitTests.dyn_o ) [vector] [ 3 of 12] Compiling Utilities ( tests/Utilities.hs, dist/build/vector-tests-O0/vector-tests-O0-tmp/Utilities.o, dist/build/vector-tests-O0/vector-tests-O0-tmp/Utilities.dyn_o ) [vector] tests/Utilities.hs:244:17: warning: []8;;https://errors.haskell.org/messages/GHC-63394\GHC-63394]8;;\] [-Wx-partial] [vector]  In the use of ‘tail’ [vector]  (imported from Prelude, but defined in GHC.Internal.List): [vector]  "This is a partial function, it throws an error on empty lists. Replace it with 'drop' 1, or use pattern matching or 'GHC.Internal.Data.List.uncons' instead. Consider refactoring to use "Data.List.NonEmpty"." [vector]  | [vector] 244 | postscanl f z = tail . scanl f z [vector]  | ^^^^ [vector]  [vector] tests/Utilities.hs:245:16: warning: []8;;https://errors.haskell.org/messages/GHC-63394\GHC-63394]8;;\] [-Wx-partial] [vector]  In the use of ‘tail’ [vector]  (imported from Prelude, but defined in GHC.Internal.List): [vector]  "This is a partial function, it throws an error on empty lists. Replace it with 'drop' 1, or use pattern matching or 'GHC.Internal.Data.List.uncons' instead. Consider refactoring to use "Data.List.NonEmpty"." [vector]  | [vector] 245 | prescanr f z = tail . scanr f z [vector]  | ^^^^ [vector]  [vector] [ 4 of 12] Compiling Tests.Vector.Property ( tests/Tests/Vector/Property.hs, dist/build/vector-tests-O0/vector-tests-O0-tmp/Tests/Vector/Property.o, dist/build/vector-tests-O0/vector-tests-O0-tmp/Tests/Vector/Property.dyn_o ) [vector] tests/Tests/Vector/Property.hs:243:68: warning: []8;;https://errors.haskell.org/messages/GHC-63394\GHC-63394]8;;\] [-Wx-partial] [vector]  In the use of ‘head’ [vector]  (imported from Data.List, but defined in GHC.Internal.List): [vector]  "This is a partial function, it throws an error on empty lists. Use pattern matching, 'Data.List.uncons' or 'Data.Maybe.listToMaybe' instead. Consider refactoring to use "Data.List.NonEmpty"." [vector]  | [vector] 243 | prop_head :: P (v a -> a) = not . V.null ===> V.head `eq` head [vector]  | ^^^^ [vector]  [vector] tests/Tests/Vector/Property.hs:256:76: warning: []8;;https://errors.haskell.org/messages/GHC-63394\GHC-63394]8;;\] [-Wx-partial] [vector]  In the use of ‘head’ [vector]  (imported from Data.List, but defined in GHC.Internal.List): [vector]  "This is a partial function, it throws an error on empty lists. Use pattern matching, 'Data.List.uncons' or 'Data.Maybe.listToMaybe' instead. Consider refactoring to use "Data.List.NonEmpty"." [vector]  | [vector] 256 | prop_unsafeHead :: P (v a -> a) = not . V.null ===> V.unsafeHead `eq` head [vector]  | ^^^^ [vector]  [vector] tests/Tests/Vector/Property.hs:272:65: warning: []8;;https://errors.haskell.org/messages/GHC-63394\GHC-63394]8;;\] [-Wx-partial] [vector]  In the use of ‘tail’ [vector]  (imported from Data.List, but defined in GHC.Internal.List): [vector]  "This is a partial function, it throws an error on empty lists. Replace it with 'drop' 1, or use pattern matching or 'GHC.Internal.Data.List.uncons' instead. Consider refactoring to use "Data.List.NonEmpty"." [vector]  | [vector] 272 | prop_tail :: P (v a -> v a) = not . V.null ===> V.tail `eq` tail [vector]  | ^^^^ [vector]  [vector] tests/Tests/Vector/Property.hs:439:26: warning: []8;;https://errors.haskell.org/messages/GHC-63394\GHC-63394]8;;\] [-Wx-partial] [vector]  In the use of ‘head’ [vector]  (imported from Data.List, but defined in GHC.Internal.List): [vector]  "This is a partial function, it throws an error on empty lists. Use pattern matching, 'Data.List.uncons' or 'Data.Maybe.listToMaybe' instead. Consider refactoring to use "Data.List.NonEmpty"." [vector]  | [vector] 439 | = V.uniq `eq` (map head . group) [vector]  | ^^^^ [vector]  [vector] [ 5 of 12] Compiling Tests.Vector.Unboxed ( tests/Tests/Vector/Unboxed.hs, dist/build/vector-tests-O0/vector-tests-O0-tmp/Tests/Vector/Unboxed.o, dist/build/vector-tests-O0/vector-tests-O0-tmp/Tests/Vector/Unboxed.dyn_o ) [vector] [ 6 of 12] Compiling Tests.Vector.Strict ( tests/Tests/Vector/Strict.hs, dist/build/vector-tests-O0/vector-tests-O0-tmp/Tests/Vector/Strict.o, dist/build/vector-tests-O0/vector-tests-O0-tmp/Tests/Vector/Strict.dyn_o ) [vector] [ 7 of 12] Compiling Tests.Vector.Storable ( tests/Tests/Vector/Storable.hs, dist/build/vector-tests-O0/vector-tests-O0-tmp/Tests/Vector/Storable.o, dist/build/vector-tests-O0/vector-tests-O0-tmp/Tests/Vector/Storable.dyn_o ) [vector] [ 8 of 12] Compiling Tests.Vector.Primitive ( tests/Tests/Vector/Primitive.hs, dist/build/vector-tests-O0/vector-tests-O0-tmp/Tests/Vector/Primitive.o, dist/build/vector-tests-O0/vector-tests-O0-tmp/Tests/Vector/Primitive.dyn_o ) [vector] [ 9 of 12] Compiling Tests.Vector.Boxed ( tests/Tests/Vector/Boxed.hs, dist/build/vector-tests-O0/vector-tests-O0-tmp/Tests/Vector/Boxed.o, dist/build/vector-tests-O0/vector-tests-O0-tmp/Tests/Vector/Boxed.dyn_o ) [vector] [10 of 12] Compiling Tests.Move ( tests/Tests/Move.hs, dist/build/vector-tests-O0/vector-tests-O0-tmp/Tests/Move.o, dist/build/vector-tests-O0/vector-tests-O0-tmp/Tests/Move.dyn_o ) [vector] [11 of 12] Compiling Tests.Bundle ( tests/Tests/Bundle.hs, dist/build/vector-tests-O0/vector-tests-O0-tmp/Tests/Bundle.o, dist/build/vector-tests-O0/vector-tests-O0-tmp/Tests/Bundle.dyn_o ) [vector] tests/Tests/Bundle.hs:16:29: warning: []8;;https://errors.haskell.org/messages/GHC-38856\GHC-38856]8;;\] [-Wunused-imports] [vector]  The import of ‘foldl'’ from module ‘Data.List’ is redundant [vector]  | [vector] 16 | import Data.List (foldl', foldl1', unfoldr, find, findIndex) [vector]  | ^^^^^^ [vector]  [vector] tests/Tests/Bundle.hs:76:77: warning: []8;;https://errors.haskell.org/messages/GHC-63394\GHC-63394]8;;\] [-Wx-partial] [vector]  In the use of ‘head’ [vector]  (imported from Prelude, but defined in GHC.Internal.List): [vector]  "This is a partial function, it throws an error on empty lists. Use pattern matching, 'Data.List.uncons' or 'Data.Maybe.listToMaybe' instead. Consider refactoring to use "Data.List.NonEmpty"." [vector]  | [vector] 76 | prop_head :: P (S.Bundle v a -> a) = not . S.null ===> S.head `eq` head [vector]  | ^^^^ [vector]  [vector] tests/Tests/Bundle.hs:92:83: warning: []8;;https://errors.haskell.org/messages/GHC-63394\GHC-63394]8;;\] [-Wx-partial] [vector]  In the use of ‘tail’ [vector]  (imported from Prelude, but defined in GHC.Internal.List): [vector]  "This is a partial function, it throws an error on empty lists. Replace it with 'drop' 1, or use pattern matching or 'GHC.Internal.Data.List.uncons' instead. Consider refactoring to use "Data.List.NonEmpty"." [vector]  | [vector] 92 | prop_tail :: P (S.Bundle v a -> S.Bundle v a) = not . S.null ===> S.tail `eq` tail [vector]  | ^^^^ [vector]  [vector] [12 of 12] Compiling Main ( tests/Main.hs, dist/build/vector-tests-O0/vector-tests-O0-tmp/Main.o, dist/build/vector-tests-O0/vector-tests-O0-tmp/Main.dyn_o ) [vector] [13 of 13] Linking dist/build/vector-tests-O0/vector-tests-O0 [vector] Preprocessing test suite 'vector-doctest' for vector-0.13.2.0... [vector] Building test suite 'vector-doctest' for vector-0.13.2.0... [vector] [1 of 1] Compiling Main ( tests/doctests.hs, dist/build/vector-doctest/vector-doctest-tmp/Main.o ) [vector] [2 of 2] Linking dist/build/vector-doctest/vector-doctest [vector] Preprocessing test suite 'vector-tests-O2' for vector-0.13.2.0... [vector] Building test suite 'vector-tests-O2' for vector-0.13.2.0... [vector] [ 1 of 12] Compiling Boilerplater ( tests/Boilerplater.hs, dist/build/vector-tests-O2/vector-tests-O2-tmp/Boilerplater.o, dist/build/vector-tests-O2/vector-tests-O2-tmp/Boilerplater.dyn_o ) [vector] [ 2 of 12] Compiling Tests.Vector.UnitTests ( tests/Tests/Vector/UnitTests.hs, dist/build/vector-tests-O2/vector-tests-O2-tmp/Tests/Vector/UnitTests.o, dist/build/vector-tests-O2/vector-tests-O2-tmp/Tests/Vector/UnitTests.dyn_o ) [vector] [ 3 of 12] Compiling Utilities ( tests/Utilities.hs, dist/build/vector-tests-O2/vector-tests-O2-tmp/Utilities.o, dist/build/vector-tests-O2/vector-tests-O2-tmp/Utilities.dyn_o ) [vector] tests/Utilities.hs:244:17: warning: []8;;https://errors.haskell.org/messages/GHC-63394\GHC-63394]8;;\] [-Wx-partial] [vector]  In the use of ‘tail’ [vector]  (imported from Prelude, but defined in GHC.Internal.List): [vector]  "This is a partial function, it throws an error on empty lists. Replace it with 'drop' 1, or use pattern matching or 'GHC.Internal.Data.List.uncons' instead. Consider refactoring to use "Data.List.NonEmpty"." [vector]  | [vector] 244 | postscanl f z = tail . scanl f z [vector]  | ^^^^ [vector]  [vector] tests/Utilities.hs:245:16: warning: []8;;https://errors.haskell.org/messages/GHC-63394\GHC-63394]8;;\] [-Wx-partial] [vector]  In the use of ‘tail’ [vector]  (imported from Prelude, but defined in GHC.Internal.List): [vector]  "This is a partial function, it throws an error on empty lists. Replace it with 'drop' 1, or use pattern matching or 'GHC.Internal.Data.List.uncons' instead. Consider refactoring to use "Data.List.NonEmpty"." [vector]  | [vector] 245 | prescanr f z = tail . scanr f z [vector]  | ^^^^ [vector]  [vector] [ 4 of 12] Compiling Tests.Vector.Property ( tests/Tests/Vector/Property.hs, dist/build/vector-tests-O2/vector-tests-O2-tmp/Tests/Vector/Property.o, dist/build/vector-tests-O2/vector-tests-O2-tmp/Tests/Vector/Property.dyn_o ) [vector] tests/Tests/Vector/Property.hs:243:68: warning: []8;;https://errors.haskell.org/messages/GHC-63394\GHC-63394]8;;\] [-Wx-partial] [vector]  In the use of ‘head’ [vector]  (imported from Data.List, but defined in GHC.Internal.List): [vector]  "This is a partial function, it throws an error on empty lists. Use pattern matching, 'Data.List.uncons' or 'Data.Maybe.listToMaybe' instead. Consider refactoring to use "Data.List.NonEmpty"." [vector]  | [vector] 243 | prop_head :: P (v a -> a) = not . V.null ===> V.head `eq` head [vector]  | ^^^^ [vector]  [vector] tests/Tests/Vector/Property.hs:256:76: warning: []8;;https://errors.haskell.org/messages/GHC-63394\GHC-63394]8;;\] [-Wx-partial] [vector]  In the use of ‘head’ [vector]  (imported from Data.List, but defined in GHC.Internal.List): [vector]  "This is a partial function, it throws an error on empty lists. Use pattern matching, 'Data.List.uncons' or 'Data.Maybe.listToMaybe' instead. Consider refactoring to use "Data.List.NonEmpty"." [vector]  | [vector] 256 | prop_unsafeHead :: P (v a -> a) = not . V.null ===> V.unsafeHead `eq` head [vector]  | ^^^^ [vector]  [vector] tests/Tests/Vector/Property.hs:272:65: warning: []8;;https://errors.haskell.org/messages/GHC-63394\GHC-63394]8;;\] [-Wx-partial] [vector]  In the use of ‘tail’ [vector]  (imported from Data.List, but defined in GHC.Internal.List): [vector]  "This is a partial function, it throws an error on empty lists. Replace it with 'drop' 1, or use pattern matching or 'GHC.Internal.Data.List.uncons' instead. Consider refactoring to use "Data.List.NonEmpty"." [vector]  | [vector] 272 | prop_tail :: P (v a -> v a) = not . V.null ===> V.tail `eq` tail [vector]  | ^^^^ [vector]  [vector] tests/Tests/Vector/Property.hs:439:26: warning: []8;;https://errors.haskell.org/messages/GHC-63394\GHC-63394]8;;\] [-Wx-partial] [vector]  In the use of ‘head’ [vector]  (imported from Data.List, but defined in GHC.Internal.List): [vector]  "This is a partial function, it throws an error on empty lists. Use pattern matching, 'Data.List.uncons' or 'Data.Maybe.listToMaybe' instead. Consider refactoring to use "Data.List.NonEmpty"." [vector]  | [vector] 439 | = V.uniq `eq` (map head . group) [vector]  | ^^^^ [vector]  [vector] [ 5 of 12] Compiling Tests.Vector.Unboxed ( tests/Tests/Vector/Unboxed.hs, dist/build/vector-tests-O2/vector-tests-O2-tmp/Tests/Vector/Unboxed.o, dist/build/vector-tests-O2/vector-tests-O2-tmp/Tests/Vector/Unboxed.dyn_o ) [vector] [ 6 of 12] Compiling Tests.Vector.Strict ( tests/Tests/Vector/Strict.hs, dist/build/vector-tests-O2/vector-tests-O2-tmp/Tests/Vector/Strict.o, dist/build/vector-tests-O2/vector-tests-O2-tmp/Tests/Vector/Strict.dyn_o ) [vector] [ 7 of 12] Compiling Tests.Vector.Storable ( tests/Tests/Vector/Storable.hs, dist/build/vector-tests-O2/vector-tests-O2-tmp/Tests/Vector/Storable.o, dist/build/vector-tests-O2/vector-tests-O2-tmp/Tests/Vector/Storable.dyn_o ) [vector] [ 8 of 12] Compiling Tests.Vector.Primitive ( tests/Tests/Vector/Primitive.hs, dist/build/vector-tests-O2/vector-tests-O2-tmp/Tests/Vector/Primitive.o, dist/build/vector-tests-O2/vector-tests-O2-tmp/Tests/Vector/Primitive.dyn_o ) [vector] [ 9 of 12] Compiling Tests.Vector.Boxed ( tests/Tests/Vector/Boxed.hs, dist/build/vector-tests-O2/vector-tests-O2-tmp/Tests/Vector/Boxed.o, dist/build/vector-tests-O2/vector-tests-O2-tmp/Tests/Vector/Boxed.dyn_o ) [vector] [10 of 12] Compiling Tests.Move ( tests/Tests/Move.hs, dist/build/vector-tests-O2/vector-tests-O2-tmp/Tests/Move.o, dist/build/vector-tests-O2/vector-tests-O2-tmp/Tests/Move.dyn_o ) [vector] [11 of 12] Compiling Tests.Bundle ( tests/Tests/Bundle.hs, dist/build/vector-tests-O2/vector-tests-O2-tmp/Tests/Bundle.o, dist/build/vector-tests-O2/vector-tests-O2-tmp/Tests/Bundle.dyn_o ) [vector] tests/Tests/Bundle.hs:16:29: warning: []8;;https://errors.haskell.org/messages/GHC-38856\GHC-38856]8;;\] [-Wunused-imports] [vector]  The import of ‘foldl'’ from module ‘Data.List’ is redundant [vector]  | [vector] 16 | import Data.List (foldl', foldl1', unfoldr, find, findIndex) [vector]  | ^^^^^^ [vector]  [vector] tests/Tests/Bundle.hs:76:77: warning: []8;;https://errors.haskell.org/messages/GHC-63394\GHC-63394]8;;\] [-Wx-partial] [vector]  In the use of ‘head’ [vector]  (imported from Prelude, but defined in GHC.Internal.List): [vector]  "This is a partial function, it throws an error on empty lists. Use pattern matching, 'Data.List.uncons' or 'Data.Maybe.listToMaybe' instead. Consider refactoring to use "Data.List.NonEmpty"." [vector]  | [vector] 76 | prop_head :: P (S.Bundle v a -> a) = not . S.null ===> S.head `eq` head [vector]  | ^^^^ [vector]  [vector] tests/Tests/Bundle.hs:92:83: warning: []8;;https://errors.haskell.org/messages/GHC-63394\GHC-63394]8;;\] [-Wx-partial] [vector]  In the use of ‘tail’ [vector]  (imported from Prelude, but defined in GHC.Internal.List): [vector]  "This is a partial function, it throws an error on empty lists. Replace it with 'drop' 1, or use pattern matching or 'GHC.Internal.Data.List.uncons' instead. Consider refactoring to use "Data.List.NonEmpty"." [vector]  | [vector] 92 | prop_tail :: P (S.Bundle v a -> S.Bundle v a) = not . S.null ===> S.tail `eq` tail [vector]  | ^^^^ [vector]  [vector] [12 of 12] Compiling Main ( tests/Main.hs, dist/build/vector-tests-O2/vector-tests-O2-tmp/Main.o, dist/build/vector-tests-O2/vector-tests-O2-tmp/Main.dyn_o ) [vector] [13 of 13] Linking dist/build/vector-tests-O2/vector-tests-O2 [vector] Preprocessing test suite 'vector-inspection' for vector-0.13.2.0... [vector] Building test suite 'vector-inspection' for vector-0.13.2.0... [vector] [1 of 4] Compiling Inspect ( tests-inspect/Inspect.hs, dist/build/vector-inspection/vector-inspection-tmp/Inspect.o ) [vector] [2 of 4] Compiling Inspect.DerivingVia.OtherFoo ( tests-inspect/Inspect/DerivingVia/OtherFoo.hs, dist/build/vector-inspection/vector-inspection-tmp/Inspect/DerivingVia/OtherFoo.o, dist/build/vector-inspection/vector-inspection-tmp/Inspect/DerivingVia/OtherFoo.dyn_o ) [vector] [3 of 4] Compiling Inspect.DerivingVia ( tests-inspect/Inspect/DerivingVia.hs, dist/build/vector-inspection/vector-inspection-tmp/Inspect/DerivingVia.o ) [vector] [4 of 4] Compiling Main ( tests-inspect/main.hs, dist/build/vector-inspection/vector-inspection-tmp/Main.o ) [vector] [5 of 5] Linking dist/build/vector-inspection/vector-inspection [vector] Preprocessing library 'benchmarks-O2' for vector-0.13.2.0... [vector] Building library 'benchmarks-O2' for vector-0.13.2.0... [vector] [ 1 of 14] Compiling Bench.Vector.Algo.AwShCC ( benchlib/Bench/Vector/Algo/AwShCC.hs, dist/build/benchmarks-O2/Bench/Vector/Algo/AwShCC.o, dist/build/benchmarks-O2/Bench/Vector/Algo/AwShCC.dyn_o ) [vector] [ 2 of 14] Compiling Bench.Vector.Algo.FindIndexR ( benchlib/Bench/Vector/Algo/FindIndexR.hs, dist/build/benchmarks-O2/Bench/Vector/Algo/FindIndexR.o, dist/build/benchmarks-O2/Bench/Vector/Algo/FindIndexR.dyn_o ) [vector] [ 3 of 14] Compiling Bench.Vector.Algo.HybCC ( benchlib/Bench/Vector/Algo/HybCC.hs, dist/build/benchmarks-O2/Bench/Vector/Algo/HybCC.o, dist/build/benchmarks-O2/Bench/Vector/Algo/HybCC.dyn_o ) [vector] [ 4 of 14] Compiling Bench.Vector.Algo.Leaffix ( benchlib/Bench/Vector/Algo/Leaffix.hs, dist/build/benchmarks-O2/Bench/Vector/Algo/Leaffix.o, dist/build/benchmarks-O2/Bench/Vector/Algo/Leaffix.dyn_o ) [vector] [ 5 of 14] Compiling Bench.Vector.Algo.ListRank ( benchlib/Bench/Vector/Algo/ListRank.hs, dist/build/benchmarks-O2/Bench/Vector/Algo/ListRank.o, dist/build/benchmarks-O2/Bench/Vector/Algo/ListRank.dyn_o ) [vector] [ 6 of 14] Compiling Bench.Vector.Algo.MutableSet ( benchlib/Bench/Vector/Algo/MutableSet.hs, dist/build/benchmarks-O2/Bench/Vector/Algo/MutableSet.o, dist/build/benchmarks-O2/Bench/Vector/Algo/MutableSet.dyn_o ) [vector] [ 7 of 14] Compiling Bench.Vector.Algo.NextPermutation ( benchlib/Bench/Vector/Algo/NextPermutation.hs, dist/build/benchmarks-O2/Bench/Vector/Algo/NextPermutation.o, dist/build/benchmarks-O2/Bench/Vector/Algo/NextPermutation.dyn_o ) [vector] [ 8 of 14] Compiling Bench.Vector.Algo.Quickhull ( benchlib/Bench/Vector/Algo/Quickhull.hs, dist/build/benchmarks-O2/Bench/Vector/Algo/Quickhull.o, dist/build/benchmarks-O2/Bench/Vector/Algo/Quickhull.dyn_o ) [vector] [ 9 of 14] Compiling Bench.Vector.Algo.Rootfix ( benchlib/Bench/Vector/Algo/Rootfix.hs, dist/build/benchmarks-O2/Bench/Vector/Algo/Rootfix.o, dist/build/benchmarks-O2/Bench/Vector/Algo/Rootfix.dyn_o ) [vector] [10 of 14] Compiling Bench.Vector.Algo.Spectral ( benchlib/Bench/Vector/Algo/Spectral.hs, dist/build/benchmarks-O2/Bench/Vector/Algo/Spectral.o, dist/build/benchmarks-O2/Bench/Vector/Algo/Spectral.dyn_o ) [vector] [11 of 14] Compiling Bench.Vector.Algo.Tridiag ( benchlib/Bench/Vector/Algo/Tridiag.hs, dist/build/benchmarks-O2/Bench/Vector/Algo/Tridiag.o, dist/build/benchmarks-O2/Bench/Vector/Algo/Tridiag.dyn_o ) [vector] [12 of 14] Compiling Bench.Vector.Tasty ( benchlib/Bench/Vector/Tasty.hs, dist/build/benchmarks-O2/Bench/Vector/Tasty.o, dist/build/benchmarks-O2/Bench/Vector/Tasty.dyn_o ) [vector] [13 of 14] Compiling Bench.Vector.TestData.Graph ( benchlib/Bench/Vector/TestData/Graph.hs, dist/build/benchmarks-O2/Bench/Vector/TestData/Graph.o, dist/build/benchmarks-O2/Bench/Vector/TestData/Graph.dyn_o ) [vector] [14 of 14] Compiling Bench.Vector.TestData.ParenTree ( benchlib/Bench/Vector/TestData/ParenTree.hs, dist/build/benchmarks-O2/Bench/Vector/TestData/ParenTree.o, dist/build/benchmarks-O2/Bench/Vector/TestData/ParenTree.dyn_o ) [vector] [ 1 of 14] Compiling Bench.Vector.Algo.AwShCC ( benchlib/Bench/Vector/Algo/AwShCC.hs, dist/build/benchmarks-O2/Bench/Vector/Algo/AwShCC.p_o ) [vector] [ 2 of 14] Compiling Bench.Vector.Algo.FindIndexR ( benchlib/Bench/Vector/Algo/FindIndexR.hs, dist/build/benchmarks-O2/Bench/Vector/Algo/FindIndexR.p_o ) [vector] [ 3 of 14] Compiling Bench.Vector.Algo.HybCC ( benchlib/Bench/Vector/Algo/HybCC.hs, dist/build/benchmarks-O2/Bench/Vector/Algo/HybCC.p_o ) [vector] [ 4 of 14] Compiling Bench.Vector.Algo.Leaffix ( benchlib/Bench/Vector/Algo/Leaffix.hs, dist/build/benchmarks-O2/Bench/Vector/Algo/Leaffix.p_o ) [vector] [ 5 of 14] Compiling Bench.Vector.Algo.ListRank ( benchlib/Bench/Vector/Algo/ListRank.hs, dist/build/benchmarks-O2/Bench/Vector/Algo/ListRank.p_o ) [vector] [ 6 of 14] Compiling Bench.Vector.Algo.MutableSet ( benchlib/Bench/Vector/Algo/MutableSet.hs, dist/build/benchmarks-O2/Bench/Vector/Algo/MutableSet.p_o ) [vector] [ 7 of 14] Compiling Bench.Vector.Algo.NextPermutation ( benchlib/Bench/Vector/Algo/NextPermutation.hs, dist/build/benchmarks-O2/Bench/Vector/Algo/NextPermutation.p_o ) [vector] [ 8 of 14] Compiling Bench.Vector.Algo.Quickhull ( benchlib/Bench/Vector/Algo/Quickhull.hs, dist/build/benchmarks-O2/Bench/Vector/Algo/Quickhull.p_o ) [vector] [ 9 of 14] Compiling Bench.Vector.Algo.Rootfix ( benchlib/Bench/Vector/Algo/Rootfix.hs, dist/build/benchmarks-O2/Bench/Vector/Algo/Rootfix.p_o ) [vector] [10 of 14] Compiling Bench.Vector.Algo.Spectral ( benchlib/Bench/Vector/Algo/Spectral.hs, dist/build/benchmarks-O2/Bench/Vector/Algo/Spectral.p_o ) [vector] [11 of 14] Compiling Bench.Vector.Algo.Tridiag ( benchlib/Bench/Vector/Algo/Tridiag.hs, dist/build/benchmarks-O2/Bench/Vector/Algo/Tridiag.p_o ) [vector] [12 of 14] Compiling Bench.Vector.Tasty ( benchlib/Bench/Vector/Tasty.hs, dist/build/benchmarks-O2/Bench/Vector/Tasty.p_o ) [vector] [13 of 14] Compiling Bench.Vector.TestData.Graph ( benchlib/Bench/Vector/TestData/Graph.hs, dist/build/benchmarks-O2/Bench/Vector/TestData/Graph.p_o ) [vector] [14 of 14] Compiling Bench.Vector.TestData.ParenTree ( benchlib/Bench/Vector/TestData/ParenTree.hs, dist/build/benchmarks-O2/Bench/Vector/TestData/ParenTree.p_o ) [vector] buildPhase completed in 2 minutes 5 seconds [vector] Phase: checkPhase [vector] Running 2 test suites... [vector] Test suite vector-tests-O0: RUNNING... [vector] toplevel [vector]  Data.Vector.Fusion.Bundle [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  extract: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  prescanl: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  scanl1': OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  and: OK [vector]  +++ OK, passed 100 tests. [vector]  or: OK [vector]  +++ OK, passed 100 tests. [vector]  Tests.Vector.Boxed [vector]  Bool [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 11 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 21 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  zip: OK [vector]  +++ OK, passed 100 tests. [vector]  zip3: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip3: OK [vector]  +++ OK, passed 100 tests. [vector]  indexed: OK [vector]  +++ OK, passed 100 tests. [vector]  update: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK [vector]  +++ OK, passed 100 tests. [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK [vector]  +++ OK, passed 100 tests. [vector]  fmap: OK [vector]  +++ OK, passed 100 tests. [vector]  return: OK [vector]  +++ OK, passed 100 tests. [vector]  bind: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mzip: OK [vector]  +++ OK, passed 100 tests. [vector]  munzip: OK [vector]  +++ OK, passed 100 tests. [vector]  applicative_pure: OK [vector]  +++ OK, passed 100 tests. [vector]  applicative_appl: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  alternative_empty: OK [vector]  +++ OK, passed 100 tests. [vector]  alternative_or: OK [vector]  +++ OK, passed 100 tests. [vector]  sequence: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  sequence_: OK [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  and: OK [vector]  +++ OK, passed 100 tests. [vector]  or: OK [vector]  +++ OK, passed 100 tests. [vector]  Int [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 11 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  zip: OK [vector]  +++ OK, passed 100 tests. [vector]  zip3: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip3: OK [vector]  +++ OK, passed 100 tests. [vector]  indexed: OK [vector]  +++ OK, passed 100 tests. [vector]  update: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  fmap: OK [vector]  +++ OK, passed 100 tests. [vector]  return: OK [vector]  +++ OK, passed 100 tests. [vector]  bind: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mzip: OK [vector]  +++ OK, passed 100 tests. [vector]  munzip: OK [vector]  +++ OK, passed 100 tests. [vector]  applicative_pure: OK [vector]  +++ OK, passed 100 tests. [vector]  applicative_appl: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  alternative_empty: OK [vector]  +++ OK, passed 100 tests. [vector]  alternative_or: OK [vector]  +++ OK, passed 100 tests. [vector]  sequence: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  sequence_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  sum: OK [vector]  +++ OK, passed 100 tests. [vector]  product: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromTo: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenTo: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  unstream [vector]  unstream == vunstream (exact): OK [vector]  +++ OK, passed 100 tests. [vector]  unstream == vunstream (unknown): OK [vector]  +++ OK, passed 100 tests. [vector]  unstreamR ~= vunstream (exact): OK [vector]  +++ OK, passed 100 tests. [vector]  unstreamR ~= vunstream (unknown): OK [vector]  +++ OK, passed 100 tests. [vector]  Tests.Vector.Primitive [vector]  Int [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 11 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK [vector]  +++ OK, passed 100 tests; 22 discarded. [vector]  ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 21 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  sum: OK [vector]  +++ OK, passed 100 tests. [vector]  product: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromTo: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenTo: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  Double [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 21 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 11 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK (0.01s) [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK (0.01s) [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  foldr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK (0.01s) [vector]  +++ OK, passed 100 tests; 11 discarded. [vector]  foldr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK (0.01s) [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  ifoldl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 24 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  sum: OK [vector]  +++ OK, passed 100 tests. [vector]  product: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromTo: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenTo: OK [vector]  +++ OK, passed 100 tests; 4 discarded. [vector]  unstream [vector]  unstream == vunstream (exact): OK [vector]  +++ OK, passed 100 tests. [vector]  unstream == vunstream (unknown): OK [vector]  +++ OK, passed 100 tests. [vector]  unstreamR ~= vunstream (exact): OK [vector]  +++ OK, passed 100 tests. [vector]  unstreamR ~= vunstream (unknown): OK [vector]  +++ OK, passed 100 tests. [vector]  Tests.Vector.Storable [vector]  Data.Vector.Storable.Vector (Int) [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 22 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 11 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 26 discarded. [vector]  foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 23 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 22 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  sum: OK [vector]  +++ OK, passed 100 tests. [vector]  product: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromTo: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenTo: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  Data.Vector.Storable.Vector (Double) [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 22 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK (0.01s) [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  foldl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK (0.01s) [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  foldr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  foldr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK (0.01s) [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  ifoldl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  sum: OK [vector]  +++ OK, passed 100 tests. [vector]  product: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromTo: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenTo: OK [vector]  +++ OK, passed 100 tests; 10 discarded. [vector]  unstream [vector]  unstream == vunstream (exact): OK [vector]  +++ OK, passed 100 tests. [vector]  unstream == vunstream (unknown): OK [vector]  +++ OK, passed 100 tests. [vector]  unstreamR ~= vunstream (exact): OK [vector]  +++ OK, passed 100 tests. [vector]  unstreamR ~= vunstream (unknown): OK [vector]  +++ OK, passed 100 tests. [vector]  Tests.Vector.Strict [vector]  Bool [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 11 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 11 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 22 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 23 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  zip: OK [vector]  +++ OK, passed 100 tests. [vector]  zip3: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip3: OK [vector]  +++ OK, passed 100 tests. [vector]  indexed: OK [vector]  +++ OK, passed 100 tests. [vector]  update: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK [vector]  +++ OK, passed 100 tests. [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK [vector]  +++ OK, passed 100 tests. [vector]  fmap: OK [vector]  +++ OK, passed 100 tests. [vector]  return: OK [vector]  +++ OK, passed 100 tests. [vector]  bind: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mzip: OK [vector]  +++ OK, passed 100 tests. [vector]  munzip: OK [vector]  +++ OK, passed 100 tests. [vector]  applicative_pure: OK [vector]  +++ OK, passed 100 tests. [vector]  applicative_appl: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  alternative_empty: OK [vector]  +++ OK, passed 100 tests. [vector]  alternative_or: OK [vector]  +++ OK, passed 100 tests. [vector]  sequence: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  sequence_: OK [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  and: OK [vector]  +++ OK, passed 100 tests. [vector]  or: OK [vector]  +++ OK, passed 100 tests. [vector]  Int [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 11 discarded. [vector]  foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 23 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 22 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  zip: OK [vector]  +++ OK, passed 100 tests. [vector]  zip3: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip3: OK [vector]  +++ OK, passed 100 tests. [vector]  indexed: OK [vector]  +++ OK, passed 100 tests. [vector]  update: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK [vector]  +++ OK, passed 100 tests. [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK [vector]  +++ OK, passed 100 tests. [vector]  fmap: OK [vector]  +++ OK, passed 100 tests. [vector]  return: OK [vector]  +++ OK, passed 100 tests. [vector]  bind: OK [vector]  +++ OK, passed 100 tests. [vector]  mzip: OK [vector]  +++ OK, passed 100 tests. [vector]  munzip: OK [vector]  +++ OK, passed 100 tests. [vector]  applicative_pure: OK [vector]  +++ OK, passed 100 tests. [vector]  applicative_appl: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  alternative_empty: OK [vector]  +++ OK, passed 100 tests. [vector]  alternative_or: OK [vector]  +++ OK, passed 100 tests. [vector]  sequence: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  sequence_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  sum: OK [vector]  +++ OK, passed 100 tests. [vector]  product: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromTo: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenTo: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  unstream [vector]  unstream == vunstream (exact): OK [vector]  +++ OK, passed 100 tests. [vector]  unstream == vunstream (unknown): OK [vector]  +++ OK, passed 100 tests. [vector]  unstreamR ~= vunstream (exact): OK [vector]  +++ OK, passed 100 tests. [vector]  unstreamR ~= vunstream (unknown): OK [vector]  +++ OK, passed 100 tests. [vector]  Tests.Vector.Unboxed [vector]  () [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 25 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK [vector]  +++ OK, passed 100 tests; 21 discarded. [vector]  foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 21 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 23 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 22 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 29 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  zip: OK [vector]  +++ OK, passed 100 tests. [vector]  zip3: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip3: OK [vector]  +++ OK, passed 100 tests. [vector]  indexed: OK [vector]  +++ OK, passed 100 tests. [vector]  update: OK [vector]  +++ OK, passed 100 tests. [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  (Bool) [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 21 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 24 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 10 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 27 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  zip: OK [vector]  +++ OK, passed 100 tests. [vector]  zip3: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip3: OK [vector]  +++ OK, passed 100 tests. [vector]  indexed: OK [vector]  +++ OK, passed 100 tests. [vector]  update: OK [vector]  +++ OK, passed 100 tests. [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  and: OK [vector]  +++ OK, passed 100 tests. [vector]  or: OK [vector]  +++ OK, passed 100 tests. [vector]  (Int) [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 21 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 11 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK [vector]  +++ OK, passed 100 tests; 21 discarded. [vector]  foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 23 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  zip: OK [vector]  +++ OK, passed 100 tests. [vector]  zip3: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip3: OK [vector]  +++ OK, passed 100 tests. [vector]  indexed: OK [vector]  +++ OK, passed 100 tests. [vector]  update: OK [vector]  +++ OK, passed 100 tests. [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  sum: OK [vector]  +++ OK, passed 100 tests. [vector]  product: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromTo: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenTo: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  (Float) [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK [vector]  +++ OK, passed 100 tests; 21 discarded. [vector]  ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 10 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 21 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  zip: OK [vector]  +++ OK, passed 100 tests. [vector]  zip3: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip3: OK [vector]  +++ OK, passed 100 tests. [vector]  indexed: OK [vector]  +++ OK, passed 100 tests. [vector]  update: OK [vector]  +++ OK, passed 100 tests. [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  sum: OK [vector]  +++ OK, passed 100 tests. [vector]  product: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromTo: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenTo: OK [vector]  +++ OK, passed 100 tests; 8 discarded. [vector]  (Double) [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK (0.05s) [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  foldl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK (0.01s) [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  foldr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  foldr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  ifoldl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 21 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 11 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 22 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  zip: OK [vector]  +++ OK, passed 100 tests. [vector]  zip3: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip3: OK [vector]  +++ OK, passed 100 tests. [vector]  indexed: OK [vector]  +++ OK, passed 100 tests. [vector]  update: OK [vector]  +++ OK, passed 100 tests. [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  sum: OK [vector]  +++ OK, passed 100 tests. [vector]  product: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromTo: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenTo: OK [vector]  +++ OK, passed 100 tests; 3 discarded. [vector]  (Int,Bool) [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  zip: OK [vector]  +++ OK, passed 100 tests. [vector]  zip3: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip3: OK [vector]  +++ OK, passed 100 tests. [vector]  indexed: OK [vector]  +++ OK, passed 100 tests. [vector]  update: OK [vector]  +++ OK, passed 100 tests. [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  (Int,Bool,Int) [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK (0.06s) [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK (0.05s) [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK (0.05s) [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.06s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK [vector]  +++ OK, passed 100 tests; 21 discarded. [vector]  ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK (0.05s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK (0.05s) [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 25 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  zip: OK [vector]  +++ OK, passed 100 tests. [vector]  zip3: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip3: OK [vector]  +++ OK, passed 100 tests. [vector]  indexed: OK [vector]  +++ OK, passed 100 tests. [vector]  update: OK [vector]  +++ OK, passed 100 tests. [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK (0.05s) [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream [vector]  unstream == vunstream (exact): OK [vector]  +++ OK, passed 100 tests. [vector]  unstream == vunstream (unknown): OK [vector]  +++ OK, passed 100 tests. [vector]  unstreamR ~= vunstream (exact): OK [vector]  +++ OK, passed 100 tests. [vector]  unstreamR ~= vunstream (unknown): OK [vector]  +++ OK, passed 100 tests. [vector]  Data.Vector.Storable.Vector Alignment [vector]  Aligned Double: OK [vector]  Aligned Int: OK [vector]  Regression tests [vector]  enumFromTo crash #188 [vector]  Word8: OK [vector]  Word16: OK [vector]  Word32: OK [vector]  Word64: OK [vector]  Word: OK [vector]  Int8: OK [vector]  Int16: OK [vector]  Int32: OK [vector]  Int64: OK [vector]  Int: OK [vector]  Char: OK [vector]  Negative tests [vector]  slice out of bounds #257 [vector]  Boxed [vector]  Negative ix: OK [vector]  Negative size: OK [vector]  Negative ix and size: OK [vector]  Too large ix: OK [vector]  Too large size: OK [vector]  Too large ix and size: OK [vector]  Overflow: OK [vector]  OutOfMemory: OK [vector]  Primitive [vector]  Negative ix: OK [vector]  Negative size: OK [vector]  Negative ix and size: OK [vector]  Too large ix: OK [vector]  Too large size: OK [vector]  Too large ix and size: OK [vector]  Overflow: OK [vector]  OutOfMemory: OK [vector]  Storable [vector]  Negative ix: OK [vector]  Negative size: OK [vector]  Negative ix and size: OK [vector]  Too large ix: OK [vector]  Too large size: OK [vector]  Too large ix and size: OK [vector]  Overflow: OK [vector]  OutOfMemory: OK [vector]  Unboxed [vector]  Negative ix: OK [vector]  Negative size: OK [vector]  Negative ix and size: OK [vector]  Too large ix: OK [vector]  Too large size: OK [vector]  Too large ix and size: OK [vector]  Overflow: OK [vector]  OutOfMemory: OK [vector]  take #282 [vector]  Boxed: OK [vector]  Primitive: OK [vector]  Storable: OK [vector]  Unboxed: OK [vector]  Data.Vector [vector]  MonadFix: OK [vector]  toFromArray: OK [vector]  toFromArraySlice: OK [vector]  toFromArraySliceUnsafe: OK [vector]  toFromMutableArray: OK [vector]  Data.Vector.Mutable (Move): OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  Data.Vector.Primitive.Mutable (Move): OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  Data.Vector.Unboxed.Mutable (Move): OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  Data.Vector.Storable.Mutable (Move): OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  Data.Vector.Generic.Mutable (nextPermutation): OK [vector]  +++ OK, passed 100 tests. [vector]  Data.Vector.Generic.Mutable (prevPermutation): OK [vector]  +++ OK, passed 100 tests. [vector]  Data.Vector.Generic.Mutable (nextPermutation then prevPermutation = id): OK [vector]  +++ OK, passed 100 tests. [vector]  Data.Vector.Generic.Mutable (prevPermutation then nextPermutation = id): OK [vector]  +++ OK, passed 100 tests. [vector]  [vector] All 2808 tests passed (12.57s) [vector] Test suite vector-tests-O0: PASS [vector] Test suite logged to: dist/test/vector-0.13.2.0-vector-tests-O0.log [vector] Test suite vector-tests-O2: RUNNING... [vector] toplevel [vector]  Data.Vector.Fusion.Bundle [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  extract: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 26 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  prescanl: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  scanl1': OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  and: OK [vector]  +++ OK, passed 100 tests. [vector]  or: OK [vector]  +++ OK, passed 100 tests. [vector]  Tests.Vector.Boxed [vector]  Bool [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 21 discarded. [vector]  foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 22 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 23 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 24 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  zip: OK [vector]  +++ OK, passed 100 tests. [vector]  zip3: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip3: OK [vector]  +++ OK, passed 100 tests. [vector]  indexed: OK [vector]  +++ OK, passed 100 tests. [vector]  update: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK [vector]  +++ OK, passed 100 tests. [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK [vector]  +++ OK, passed 100 tests. [vector]  fmap: OK [vector]  +++ OK, passed 100 tests. [vector]  return: OK [vector]  +++ OK, passed 100 tests. [vector]  bind: OK [vector]  +++ OK, passed 100 tests. [vector]  mzip: OK [vector]  +++ OK, passed 100 tests. [vector]  munzip: OK [vector]  +++ OK, passed 100 tests. [vector]  applicative_pure: OK [vector]  +++ OK, passed 100 tests. [vector]  applicative_appl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  alternative_empty: OK [vector]  +++ OK, passed 100 tests. [vector]  alternative_or: OK [vector]  +++ OK, passed 100 tests. [vector]  sequence: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  sequence_: OK [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  and: OK [vector]  +++ OK, passed 100 tests. [vector]  or: OK [vector]  +++ OK, passed 100 tests. [vector]  Int [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK [vector]  +++ OK, passed 100 tests; 22 discarded. [vector]  foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 22 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 22 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 21 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  zip: OK [vector]  +++ OK, passed 100 tests. [vector]  zip3: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip3: OK [vector]  +++ OK, passed 100 tests. [vector]  indexed: OK [vector]  +++ OK, passed 100 tests. [vector]  update: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK [vector]  +++ OK, passed 100 tests. [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK [vector]  +++ OK, passed 100 tests. [vector]  fmap: OK [vector]  +++ OK, passed 100 tests. [vector]  return: OK [vector]  +++ OK, passed 100 tests. [vector]  bind: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mzip: OK [vector]  +++ OK, passed 100 tests. [vector]  munzip: OK [vector]  +++ OK, passed 100 tests. [vector]  applicative_pure: OK [vector]  +++ OK, passed 100 tests. [vector]  applicative_appl: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  alternative_empty: OK [vector]  +++ OK, passed 100 tests. [vector]  alternative_or: OK [vector]  +++ OK, passed 100 tests. [vector]  sequence: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  sequence_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  sum: OK [vector]  +++ OK, passed 100 tests. [vector]  product: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromTo: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenTo: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  unstream [vector]  unstream == vunstream (exact): OK [vector]  +++ OK, passed 100 tests. [vector]  unstream == vunstream (unknown): OK [vector]  +++ OK, passed 100 tests. [vector]  unstreamR ~= vunstream (exact): OK [vector]  +++ OK, passed 100 tests. [vector]  unstreamR ~= vunstream (unknown): OK [vector]  +++ OK, passed 100 tests. [vector]  Tests.Vector.Primitive [vector]  Int [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 23 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK [vector]  +++ OK, passed 100 tests; 22 discarded. [vector]  ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 11 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 21 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 21 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 22 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  sum: OK [vector]  +++ OK, passed 100 tests. [vector]  product: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromTo: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenTo: OK [vector]  +++ OK, passed 100 tests; 11 discarded. [vector]  Double [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 21 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 22 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  foldl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK (0.01s) [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  foldr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK (0.01s) [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  ifoldl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 10 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  sum: OK [vector]  +++ OK, passed 100 tests. [vector]  product: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromTo: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenTo: OK [vector]  +++ OK, passed 100 tests; 1 discarded. [vector]  unstream [vector]  unstream == vunstream (exact): OK [vector]  +++ OK, passed 100 tests. [vector]  unstream == vunstream (unknown): OK [vector]  +++ OK, passed 100 tests. [vector]  unstreamR ~= vunstream (exact): OK [vector]  +++ OK, passed 100 tests. [vector]  unstreamR ~= vunstream (unknown): OK [vector]  +++ OK, passed 100 tests. [vector]  Tests.Vector.Storable [vector]  Data.Vector.Storable.Vector (Int) [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 21 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 22 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 21 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 11 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 11 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  sum: OK [vector]  +++ OK, passed 100 tests. [vector]  product: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromTo: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenTo: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  Data.Vector.Storable.Vector (Double) [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 24 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.05s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK (0.01s) [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  foldr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  ifoldl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 26 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 24 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  sum: OK [vector]  +++ OK, passed 100 tests. [vector]  product: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromTo: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenTo: OK [vector]  +++ OK, passed 100 tests; 3 discarded. [vector]  unstream [vector]  unstream == vunstream (exact): OK [vector]  +++ OK, passed 100 tests. [vector]  unstream == vunstream (unknown): OK [vector]  +++ OK, passed 100 tests. [vector]  unstreamR ~= vunstream (exact): OK [vector]  +++ OK, passed 100 tests. [vector]  unstreamR ~= vunstream (unknown): OK [vector]  +++ OK, passed 100 tests. [vector]  Tests.Vector.Strict [vector]  Bool [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 22 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 22 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  zip: OK [vector]  +++ OK, passed 100 tests. [vector]  zip3: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip3: OK [vector]  +++ OK, passed 100 tests. [vector]  indexed: OK [vector]  +++ OK, passed 100 tests. [vector]  update: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK [vector]  +++ OK, passed 100 tests. [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK [vector]  +++ OK, passed 100 tests. [vector]  fmap: OK [vector]  +++ OK, passed 100 tests. [vector]  return: OK [vector]  +++ OK, passed 100 tests. [vector]  bind: OK [vector]  +++ OK, passed 100 tests. [vector]  mzip: OK [vector]  +++ OK, passed 100 tests. [vector]  munzip: OK [vector]  +++ OK, passed 100 tests. [vector]  applicative_pure: OK [vector]  +++ OK, passed 100 tests. [vector]  applicative_appl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  alternative_empty: OK [vector]  +++ OK, passed 100 tests. [vector]  alternative_or: OK [vector]  +++ OK, passed 100 tests. [vector]  sequence: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  sequence_: OK [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  and: OK [vector]  +++ OK, passed 100 tests. [vector]  or: OK [vector]  +++ OK, passed 100 tests. [vector]  Int [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 22 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 25 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  zip: OK [vector]  +++ OK, passed 100 tests. [vector]  zip3: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip3: OK [vector]  +++ OK, passed 100 tests. [vector]  indexed: OK [vector]  +++ OK, passed 100 tests. [vector]  update: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK [vector]  +++ OK, passed 100 tests. [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK [vector]  +++ OK, passed 100 tests. [vector]  fmap: OK [vector]  +++ OK, passed 100 tests. [vector]  return: OK [vector]  +++ OK, passed 100 tests. [vector]  bind: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mzip: OK [vector]  +++ OK, passed 100 tests. [vector]  munzip: OK [vector]  +++ OK, passed 100 tests. [vector]  applicative_pure: OK [vector]  +++ OK, passed 100 tests. [vector]  applicative_appl: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  alternative_empty: OK [vector]  +++ OK, passed 100 tests. [vector]  alternative_or: OK [vector]  +++ OK, passed 100 tests. [vector]  sequence: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  sequence_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  sum: OK [vector]  +++ OK, passed 100 tests. [vector]  product: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromTo: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenTo: OK [vector]  +++ OK, passed 100 tests; 11 discarded. [vector]  unstream [vector]  unstream == vunstream (exact): OK [vector]  +++ OK, passed 100 tests. [vector]  unstream == vunstream (unknown): OK [vector]  +++ OK, passed 100 tests. [vector]  unstreamR ~= vunstream (exact): OK [vector]  +++ OK, passed 100 tests. [vector]  unstreamR ~= vunstream (unknown): OK [vector]  +++ OK, passed 100 tests. [vector]  Tests.Vector.Unboxed [vector]  () [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 22 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 21 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK [vector]  +++ OK, passed 100 tests; 21 discarded. [vector]  ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 21 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  zip: OK [vector]  +++ OK, passed 100 tests. [vector]  zip3: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip3: OK [vector]  +++ OK, passed 100 tests. [vector]  indexed: OK [vector]  +++ OK, passed 100 tests. [vector]  update: OK [vector]  +++ OK, passed 100 tests. [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  (Bool) [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 11 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 21 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  zip: OK [vector]  +++ OK, passed 100 tests. [vector]  zip3: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip3: OK [vector]  +++ OK, passed 100 tests. [vector]  indexed: OK [vector]  +++ OK, passed 100 tests. [vector]  update: OK [vector]  +++ OK, passed 100 tests. [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  and: OK [vector]  +++ OK, passed 100 tests. [vector]  or: OK [vector]  +++ OK, passed 100 tests. [vector]  (Int) [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 21 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 25 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  zip: OK [vector]  +++ OK, passed 100 tests. [vector]  zip3: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip3: OK [vector]  +++ OK, passed 100 tests. [vector]  indexed: OK [vector]  +++ OK, passed 100 tests. [vector]  update: OK [vector]  +++ OK, passed 100 tests. [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  sum: OK [vector]  +++ OK, passed 100 tests. [vector]  product: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromTo: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenTo: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  (Float) [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 21 discarded. [vector]  foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 22 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 21 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 23 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  zip: OK [vector]  +++ OK, passed 100 tests. [vector]  zip3: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip3: OK [vector]  +++ OK, passed 100 tests. [vector]  indexed: OK [vector]  +++ OK, passed 100 tests. [vector]  update: OK [vector]  +++ OK, passed 100 tests. [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  sum: OK [vector]  +++ OK, passed 100 tests. [vector]  product: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromTo: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenTo: OK [vector]  +++ OK, passed 100 tests; 2 discarded. [vector]  (Double) [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 22 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK (0.01s) [vector]  +++ OK, passed 100 tests; 25 discarded. [vector]  foldr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK (0.01s) [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  foldr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK (0.01s) [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  ifoldl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 22 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  zip: OK [vector]  +++ OK, passed 100 tests. [vector]  zip3: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip3: OK [vector]  +++ OK, passed 100 tests. [vector]  indexed: OK [vector]  +++ OK, passed 100 tests. [vector]  update: OK [vector]  +++ OK, passed 100 tests. [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  sum: OK [vector]  +++ OK, passed 100 tests. [vector]  product: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenN: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromTo: OK [vector]  +++ OK, passed 100 tests. [vector]  enumFromThenTo: OK [vector]  +++ OK, passed 100 tests; 1 discarded. [vector]  (Int,Bool) [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 11 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 22 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.05s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK [vector]  +++ OK, passed 100 tests; 21 discarded. [vector]  foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 11 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 19 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  zip: OK [vector]  +++ OK, passed 100 tests. [vector]  zip3: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip3: OK [vector]  +++ OK, passed 100 tests. [vector]  indexed: OK [vector]  +++ OK, passed 100 tests. [vector]  update: OK [vector]  +++ OK, passed 100 tests. [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  (Int,Bool,Int) [vector]  fromList.toList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  toList.fromList == id: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream.stream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  stream.unstream == id: OK [vector]  +++ OK, passed 100 tests. [vector]  eq: OK [vector]  +++ OK, passed 100 tests. [vector]  length: OK [vector]  +++ OK, passed 100 tests. [vector]  null: OK [vector]  +++ OK, passed 100 tests. [vector]  index: OK [vector]  +++ OK, passed 100 tests; 22 discarded. [vector]  safeIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  head: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  last: OK [vector]  +++ OK, passed 100 tests; 33 discarded. [vector]  unsafeIndex: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  unsafeHead: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  unsafeLast: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  slice: OK [vector]  +++ OK, passed 100 tests. [vector]  init: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  tail: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  take: OK [vector]  +++ OK, passed 100 tests. [vector]  drop: OK [vector]  +++ OK, passed 100 tests. [vector]  splitAt: OK [vector]  +++ OK, passed 100 tests. [vector]  empty: OK [vector]  +++ OK, passed 100 tests. [vector]  singleton: OK [vector]  +++ OK, passed 100 tests. [vector]  replicate: OK [vector]  +++ OK, passed 100 tests. [vector]  generate: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateN: OK [vector]  +++ OK, passed 100 tests. [vector]  iterateNM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  generateM: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  replicateM: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  create: OK [vector]  +++ OK, passed 100 tests. [vector]  createT: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactN: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrNM: OK [vector]  +++ OK, passed 100 tests. [vector]  unfoldrExactNM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  constructN: OK [vector]  +++ OK, passed 100 tests. [vector]  constructrN: OK [vector]  +++ OK, passed 100 tests. [vector]  cons: OK [vector]  +++ OK, passed 100 tests. [vector]  snoc: OK [vector]  +++ OK, passed 100 tests. [vector]  append: OK [vector]  +++ OK, passed 100 tests. [vector]  concat: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  force: OK [vector]  +++ OK, passed 100 tests. [vector]  upd: OK [vector]  +++ OK, passed 100 tests. [vector]  accum: OK [vector]  +++ OK, passed 100 tests. [vector]  reverse: OK [vector]  +++ OK, passed 100 tests. [vector]  backpermute: OK [vector]  +++ OK, passed 100 tests. [vector]  map: OK [vector]  +++ OK, passed 100 tests. [vector]  imap: OK [vector]  +++ OK, passed 100 tests. [vector]  concatMap: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM: OK [vector]  +++ OK, passed 100 tests. [vector]  mapM_: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  forM: OK [vector]  +++ OK, passed 100 tests. [vector]  forM_: OK (0.05s) [vector]  +++ OK, passed 100 tests. [vector]  imapM: OK [vector]  +++ OK, passed 100 tests. [vector]  imapM_: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  zipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWith3: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  izipWithM_: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  zipWithM: OK [vector]  +++ OK, passed 100 tests. [vector]  zipWithM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  filter: OK [vector]  +++ OK, passed 100 tests. [vector]  ifilter: OK [vector]  +++ OK, passed 100 tests. [vector]  filterM: OK (0.05s) [vector]  +++ OK, passed 100 tests. [vector]  uniq: OK [vector]  +++ OK, passed 100 tests. [vector]  mapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  imapMaybe: OK [vector]  +++ OK, passed 100 tests. [vector]  takeWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  dropWhile: OK [vector]  +++ OK, passed 100 tests. [vector]  partition: OK [vector]  +++ OK, passed 100 tests. [vector]  partitionWith: OK [vector]  +++ OK, passed 100 tests. [vector]  span: OK [vector]  +++ OK, passed 100 tests. [vector]  break: OK [vector]  +++ OK, passed 100 tests. [vector]  spanR: OK [vector]  +++ OK, passed 100 tests. [vector]  breakR: OK [vector]  +++ OK, passed 100 tests. [vector]  groupBy: OK [vector]  +++ OK, passed 100 tests. [vector]  elem: OK [vector]  +++ OK, passed 100 tests. [vector]  notElem: OK [vector]  +++ OK, passed 100 tests. [vector]  find: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndexR: OK [vector]  +++ OK, passed 100 tests. [vector]  findIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndex: OK [vector]  +++ OK, passed 100 tests. [vector]  elemIndices: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  foldl1': OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1: OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  foldr1': OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  ifoldM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  ifoldM'_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  all: OK [vector]  +++ OK, passed 100 tests. [vector]  any: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanl': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl: OK [vector]  +++ OK, passed 100 tests. [vector]  scanl': OK [vector]  +++ OK, passed 100 tests. [vector]  scanl1: OK (0.01s) [vector]  +++ OK, passed 100 tests. [vector]  scanl1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanl': OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr: OK [vector]  +++ OK, passed 100 tests. [vector]  prescanr': OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  postscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr': OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1: OK [vector]  +++ OK, passed 100 tests. [vector]  scanr1': OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr: OK [vector]  +++ OK, passed 100 tests. [vector]  iscanr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_read: OK [vector]  +++ OK, passed 100 tests; 20 discarded. [vector]  mut_write: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  mut_modify: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  mut_generate: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_generateM: OK (0.02s) [vector]  +++ OK, passed 100 tests. [vector]  mut_mapM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_imapM_: OK (0.05s) [vector]  +++ OK, passed 100 tests. [vector]  mut_forM_: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  mut_iforM_: OK (0.03s) [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldr': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldl': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_foldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldM': OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM: OK [vector]  +++ OK, passed 100 tests. [vector]  mut_ifoldrM': OK [vector]  +++ OK, passed 100 tests. [vector]  compare: OK [vector]  +++ OK, passed 100 tests. [vector]  maximum: OK [vector]  +++ OK, passed 100 tests; 11 discarded. [vector]  minimum: OK [vector]  +++ OK, passed 100 tests; 11 discarded. [vector]  minIndex: OK [vector]  +++ OK, passed 100 tests; 17 discarded. [vector]  maxIndex: OK [vector]  +++ OK, passed 100 tests; 14 discarded. [vector]  maximumBy: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  minimumBy: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  maximumOn: OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  minimumOn: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  maxIndexBy: OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  minIndexBy: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  ListFirstMaxIndexWins: OK [vector]  +++ OK, passed 100 tests; 15 discarded. [vector]  FalseListFirstMaxIndexWins: OK [vector]  +++ OK, failed as expected. Exception: 'Prelude.foldr1: empty list' (after 1 test): [vector]  [] [vector]  zip: OK [vector]  +++ OK, passed 100 tests. [vector]  zip3: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip: OK [vector]  +++ OK, passed 100 tests. [vector]  unzip3: OK [vector]  +++ OK, passed 100 tests. [vector]  indexed: OK [vector]  +++ OK, passed 100 tests. [vector]  update: OK [vector]  +++ OK, passed 100 tests. [vector]  mempty: OK [vector]  +++ OK, passed 100 tests. [vector]  mappend: OK [vector]  +++ OK, passed 100 tests. [vector]  mconcat: OK (0.04s) [vector]  +++ OK, passed 100 tests. [vector]  glength: OK [vector]  +++ OK, passed 100 tests. [vector]  unstream [vector]  unstream == vunstream (exact): OK [vector]  +++ OK, passed 100 tests. [vector]  unstream == vunstream (unknown): OK [vector]  +++ OK, passed 100 tests. [vector]  unstreamR ~= vunstream (exact): OK [vector]  +++ OK, passed 100 tests. [vector]  unstreamR ~= vunstream (unknown): OK [vector]  +++ OK, passed 100 tests. [vector]  Data.Vector.Storable.Vector Alignment [vector]  Aligned Double: OK [vector]  Aligned Int: OK [vector]  Regression tests [vector]  enumFromTo crash #188 [vector]  Word8: OK [vector]  Word16: OK [vector]  Word32: OK [vector]  Word64: OK [vector]  Word: OK [vector]  Int8: OK [vector]  Int16: OK [vector]  Int32: OK [vector]  Int64: OK [vector]  Int: OK [vector]  Char: OK [vector]  Negative tests [vector]  slice out of bounds #257 [vector]  Boxed [vector]  Negative ix: OK [vector]  Negative size: OK [vector]  Negative ix and size: OK [vector]  Too large ix: OK [vector]  Too large size: OK [vector]  Too large ix and size: OK [vector]  Overflow: OK [vector]  OutOfMemory: OK [vector]  Primitive [vector]  Negative ix: OK [vector]  Negative size: OK [vector]  Negative ix and size: OK [vector]  Too large ix: OK [vector]  Too large size: OK [vector]  Too large ix and size: OK [vector]  Overflow: OK [vector]  OutOfMemory: OK [vector]  Storable [vector]  Negative ix: OK [vector]  Negative size: OK [vector]  Negative ix and size: OK [vector]  Too large ix: OK [vector]  Too large size: OK [vector]  Too large ix and size: OK [vector]  Overflow: OK [vector]  OutOfMemory: OK [vector]  Unboxed [vector]  Negative ix: OK [vector]  Negative size: OK [vector]  Negative ix and size: OK [vector]  Too large ix: OK [vector]  Too large size: OK [vector]  Too large ix and size: OK [vector]  Overflow: OK [vector]  OutOfMemory: OK [vector]  take #282 [vector]  Boxed: OK [vector]  Primitive: OK [vector]  Storable: OK [vector]  Unboxed: OK [vector]  Data.Vector [vector]  MonadFix: OK [vector]  toFromArray: OK [vector]  toFromArraySlice: OK [vector]  toFromArraySliceUnsafe: OK [vector]  toFromMutableArray: OK [vector]  Data.Vector.Mutable (Move): OK [vector]  +++ OK, passed 100 tests; 18 discarded. [vector]  Data.Vector.Primitive.Mutable (Move): OK [vector]  +++ OK, passed 100 tests; 12 discarded. [vector]  Data.Vector.Unboxed.Mutable (Move): OK [vector]  +++ OK, passed 100 tests; 13 discarded. [vector]  Data.Vector.Storable.Mutable (Move): OK [vector]  +++ OK, passed 100 tests; 16 discarded. [vector]  Data.Vector.Generic.Mutable (nextPermutation): OK [vector]  +++ OK, passed 100 tests. [vector]  Data.Vector.Generic.Mutable (prevPermutation): OK [vector]  +++ OK, passed 100 tests. [vector]  Data.Vector.Generic.Mutable (nextPermutation then prevPermutation = id): OK [vector]  +++ OK, passed 100 tests. [vector]  Data.Vector.Generic.Mutable (prevPermutation then nextPermutation = id): OK [vector]  +++ OK, passed 100 tests. [vector]  [vector] All 2808 tests passed (10.62s) [vector] Test suite vector-tests-O2: PASS [vector] Test suite logged to: dist/test/vector-0.13.2.0-vector-tests-O2.log [vector] 2 of 2 test suites (2 of 2 test cases) passed. [vector] Phase: haddockPhase [vector] Phase: installPhase [vector] Installing library in /nix/store/71ln3bc26gqnrxbky6iaic4k8npwd9d2-vector-0.13.2.0/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH [vector] Installing internal library benchmarks-O2 in /nix/store/71ln3bc26gqnrxbky6iaic4k8npwd9d2-vector-0.13.2.0/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/vector-0.13.2.0-K7RaEIChlREEqHxVuF3SH8-benchmarks-O2 [vector] Phase: fixupPhase [vector] shrinking RPATHs of ELF executables and libraries in /nix/store/71ln3bc26gqnrxbky6iaic4k8npwd9d2-vector-0.13.2.0 [vector] shrinking /nix/store/71ln3bc26gqnrxbky6iaic4k8npwd9d2-vector-0.13.2.0/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/libHSvector-0.13.2.0-K7RaEIChlREEqHxVuF3SH8-benchmarks-O2-ghc9.12.2.so [vector] shrinking /nix/store/71ln3bc26gqnrxbky6iaic4k8npwd9d2-vector-0.13.2.0/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/libHSvector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH-ghc9.12.2.so [vector] checking for references to /build/ in /nix/store/71ln3bc26gqnrxbky6iaic4k8npwd9d2-vector-0.13.2.0... [vector] patching script interpreter paths in /nix/store/71ln3bc26gqnrxbky6iaic4k8npwd9d2-vector-0.13.2.0 [vector] stripping (with command strip and flags -S -p) in /nix/store/71ln3bc26gqnrxbky6iaic4k8npwd9d2-vector-0.13.2.0/lib [vector:post-build] Uploading to cachix cache "sellout": /nix/store/71ln3bc26gqnrxbky6iaic4k8npwd9d2-vector-0.13.2.0 [vector:post-build] Pushing 1 paths (97 are already present) using zstd to cache sellout ⏳ [vector:post-build]  [vector:post-build] Pushing /nix/store/71ln3bc26gqnrxbky6iaic4k8npwd9d2-vector-0.13.2.0 (54.18 MiB) [vector:post-build]  [vector:post-build] All done. [vector:post-build] Uploading to the NixCI cache: /nix/store/71ln3bc26gqnrxbky6iaic4k8npwd9d2-vector-0.13.2.0 [vector:post-build] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [vector:post-build] copying 1 paths... [vector:post-build] copying path '/nix/store/71ln3bc26gqnrxbky6iaic4k8npwd9d2-vector-0.13.2.0' to 'https://cache.nix-ci.com'... [vector:post-build] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [vector:post-build] copying 1 paths... [vector:post-build] copying path '/nix/store/ky0jn5rgd99f7m5053dqbc7ssfra3h61-vector-0.13.2.0.drv' to 'https://cache.nix-ci.com'... Progress: 4 of 14 built, 43 of 43 downloaded from cache Building /nix/store/zsswivj44k6g1mv7kqsfri8v1ghfgidx-nothunks-0.3.1.drv [nothunks] Phase: setupCompilerEnvironmentPhase [nothunks] Build with /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2. [nothunks] Phase: unpackPhase [nothunks] unpacking source archive /nix/store/y2bnhvmx2j2igw7ad1jf22kp1dlk8pg2-nothunks-0.3.1.tar.gz [nothunks] source root is nothunks-0.3.1 [nothunks] setting SOURCE_DATE_EPOCH to timestamp 1000000000 of file "nothunks-0.3.1/test/Test/NoThunks/Class.hs" [nothunks] Phase: patchPhase [nothunks] Replace Cabal file with edited version from mirror://hackage/nothunks-0.3.1/revision/1.cabal. [nothunks] Run jailbreak-cabal to lift version restrictions on build inputs. [nothunks] Phase: compileBuildDriverPhase [nothunks] setupCompileFlags: -package-db=/build/tmp.02SCxZ57gG/setup-package.conf.d -threaded [nothunks] [1 of 2] Compiling Main ( /nix/store/4mdp8nhyfddh7bllbi7xszz7k9955n79-Setup.hs, /build/tmp.02SCxZ57gG/Main.o ) [nothunks] [2 of 2] Linking Setup [nothunks] Phase: updateAutotoolsGnuConfigScriptsPhase [nothunks] Phase: configurePhase [nothunks] configureFlags: --verbose --prefix=/nix/store/wdd9466w57iwxmyg4rkgk28qpf27cpaw-nothunks-0.3.1 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/nix/store/59pxp3k7s9gkkphzzdc2080x7vmrwpsf-nothunks-0.3.1-doc/share/doc/nothunks-0.3.1 --with-gcc=gcc --package-db=/build/tmp.02SCxZ57gG/package.conf.d --ghc-option=-j16 --ghc-option=+RTS --ghc-option=-A64M --ghc-option=-RTS --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --enable-static --disable-executable-dynamic --enable-tests --disable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-option=-haddock --extra-lib-dirs=/nix/store/ffyzkisqs4vc4mg28bwwlyqjf8i9ph6b-ncurses-6.5/lib --extra-lib-dirs=/nix/store/n28qgdj8c1q41kf7n4y1jxa6ckp85m3c-libffi-3.5.2/lib --extra-lib-dirs=/nix/store/1b6h99dw7bk4wbn77kbalih42zbc67m1-elfutils-0.194/lib --extra-lib-dirs=/nix/store/hi0ar880110k6jsmmili7dh1gq3cg2a9-gmp-with-cxx-6.3.0/lib --extra-lib-dirs=/nix/store/g09cflpnp4g80q56sj9dng1qzv4v4ybc-numactl-2.0.18/lib [nothunks] Using Parsec parser [nothunks] Configuring nothunks-0.3.1... [nothunks] Warning: Unknown/unsupported 'ghc' version detected (Cabal 3.14.1.0 supports [nothunks] 'ghc' version < 9.12): [nothunks] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc is version [nothunks] 9.12.2 [nothunks] Flags chosen: bytestring=True, text=True, vector=True [nothunks] Dependency base: using base-4.21.0.0 [nothunks] Dependency bytestring >=0.10 && <0.13: using bytestring-0.12.2.0 [nothunks] Dependency containers: using containers-0.7 [nothunks] Dependency ghc-heap: using ghc-heap-9.12.2 [nothunks] Dependency stm: using stm-2.5.3.1 [nothunks] Dependency text >=1.2 && <1.3 || >=2 && <2.2: using text-2.1.2 [nothunks] Dependency time: using time-1.14 [nothunks] Dependency vector >=0.12 && <0.14: using vector-0.13.2.0 [nothunks] Dependency wherefrom-compat >=0.1.1 && <0.3: using wherefrom-compat-0.1.1.1 [nothunks] Dependency base: using base-4.21.0.0 [nothunks] Dependency containers: using containers-0.7 [nothunks] Dependency ghc-prim: using ghc-prim-0.13.0 [nothunks] Dependency hedgehog: using hedgehog-1.5 [nothunks] Dependency nothunks: using nothunks-0.3.1 [nothunks] Dependency random: using random-1.2.1.3 [nothunks] Dependency stm: using stm-2.5.3.1 [nothunks] Dependency tasty: using tasty-1.5.3 [nothunks] Dependency tasty-hedgehog: using tasty-hedgehog-1.4.0.2 [nothunks] Source component graph: [nothunks]  component lib [nothunks]  component test:nothunks-test dependency lib [nothunks] Configured component graph: [nothunks]  component nothunks-0.3.1-JxOYUjJU0JmFcpQSwg5Wvl [nothunks]  include base-4.21.0.0-b334 [nothunks]  include bytestring-0.12.2.0-0cf8 [nothunks]  include containers-0.7-d79e [nothunks]  include ghc-heap-9.12.2-832c [nothunks]  include stm-2.5.3.1-ef8d [nothunks]  include text-2.1.2-e822 [nothunks]  include time-1.14-3dc5 [nothunks]  include vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH [nothunks]  include wherefrom-compat-0.1.1.1-A92ja6MztHp7tH6ALtCvHn [nothunks]  component nothunks-0.3.1-3kSAicIDPyE2qJz2aIZqdd-nothunks-test [nothunks]  include base-4.21.0.0-b334 [nothunks]  include containers-0.7-d79e [nothunks]  include ghc-prim-0.13.0-cbf2 [nothunks]  include hedgehog-1.5-3LP1um1Ps6qGX0qFDBaPPL [nothunks]  include nothunks-0.3.1-JxOYUjJU0JmFcpQSwg5Wvl [nothunks]  include random-1.2.1.3-JGcOiyH1u317hgRB7TWWFV [nothunks]  include stm-2.5.3.1-ef8d [nothunks]  include tasty-1.5.3-1P3AH5KqZrKLTVMzNZdHkm [nothunks]  include tasty-hedgehog-1.4.0.2-5ishr1AGQIN1gnZlV75Roe [nothunks] Linked component graph: [nothunks]  unit nothunks-0.3.1-JxOYUjJU0JmFcpQSwg5Wvl [nothunks]  include base-4.21.0.0-b334 [nothunks]  include bytestring-0.12.2.0-0cf8 [nothunks]  include containers-0.7-d79e [nothunks]  include ghc-heap-9.12.2-832c [nothunks]  include stm-2.5.3.1-ef8d [nothunks]  include text-2.1.2-e822 [nothunks]  include time-1.14-3dc5 [nothunks]  include vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH [nothunks]  include wherefrom-compat-0.1.1.1-A92ja6MztHp7tH6ALtCvHn [nothunks]  NoThunks.Class=nothunks-0.3.1-JxOYUjJU0JmFcpQSwg5Wvl:NoThunks.Class [nothunks]  unit nothunks-0.3.1-3kSAicIDPyE2qJz2aIZqdd-nothunks-test [nothunks]  include base-4.21.0.0-b334 [nothunks]  include containers-0.7-d79e [nothunks]  include ghc-prim-0.13.0-cbf2 [nothunks]  include hedgehog-1.5-3LP1um1Ps6qGX0qFDBaPPL [nothunks]  include nothunks-0.3.1-JxOYUjJU0JmFcpQSwg5Wvl [nothunks]  include random-1.2.1.3-JGcOiyH1u317hgRB7TWWFV [nothunks]  include stm-2.5.3.1-ef8d [nothunks]  include tasty-1.5.3-1P3AH5KqZrKLTVMzNZdHkm [nothunks]  include tasty-hedgehog-1.4.0.2-5ishr1AGQIN1gnZlV75Roe [nothunks] Ready component graph: [nothunks]  definite nothunks-0.3.1-JxOYUjJU0JmFcpQSwg5Wvl [nothunks]  depends base-4.21.0.0-b334 [nothunks]  depends bytestring-0.12.2.0-0cf8 [nothunks]  depends containers-0.7-d79e [nothunks]  depends ghc-heap-9.12.2-832c [nothunks]  depends stm-2.5.3.1-ef8d [nothunks]  depends text-2.1.2-e822 [nothunks]  depends time-1.14-3dc5 [nothunks]  depends vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH [nothunks]  depends wherefrom-compat-0.1.1.1-A92ja6MztHp7tH6ALtCvHn [nothunks]  definite nothunks-0.3.1-3kSAicIDPyE2qJz2aIZqdd-nothunks-test [nothunks]  depends base-4.21.0.0-b334 [nothunks]  depends containers-0.7-d79e [nothunks]  depends ghc-prim-0.13.0-cbf2 [nothunks]  depends hedgehog-1.5-3LP1um1Ps6qGX0qFDBaPPL [nothunks]  depends nothunks-0.3.1-JxOYUjJU0JmFcpQSwg5Wvl [nothunks]  depends random-1.2.1.3-JGcOiyH1u317hgRB7TWWFV [nothunks]  depends stm-2.5.3.1-ef8d [nothunks]  depends tasty-1.5.3-1P3AH5KqZrKLTVMzNZdHkm [nothunks]  depends tasty-hedgehog-1.4.0.2-5ishr1AGQIN1gnZlV75Roe [nothunks] Using Cabal-3.14.1.0 compiled by ghc-9.12 [nothunks] Using compiler: ghc-9.12.2 [nothunks] Using install prefix: [nothunks] /nix/store/wdd9466w57iwxmyg4rkgk28qpf27cpaw-nothunks-0.3.1 [nothunks] Executables installed in: [nothunks] /nix/store/wdd9466w57iwxmyg4rkgk28qpf27cpaw-nothunks-0.3.1/bin [nothunks] Libraries installed in: [nothunks] /nix/store/wdd9466w57iwxmyg4rkgk28qpf27cpaw-nothunks-0.3.1/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/nothunks-0.3.1-JxOYUjJU0JmFcpQSwg5Wvl [nothunks] Dynamic Libraries installed in: [nothunks] /nix/store/wdd9466w57iwxmyg4rkgk28qpf27cpaw-nothunks-0.3.1/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3 [nothunks] Private executables installed in: [nothunks] /nix/store/wdd9466w57iwxmyg4rkgk28qpf27cpaw-nothunks-0.3.1/libexec/x86_64-linux-ghc-9.12.2-82d3/nothunks-0.3.1 [nothunks] Data files installed in: [nothunks] /nix/store/wdd9466w57iwxmyg4rkgk28qpf27cpaw-nothunks-0.3.1/share/x86_64-linux-ghc-9.12.2-82d3/nothunks-0.3.1 [nothunks] Documentation installed in: [nothunks] /nix/store/59pxp3k7s9gkkphzzdc2080x7vmrwpsf-nothunks-0.3.1-doc/share/doc/nothunks-0.3.1 [nothunks] Configuration files installed in: [nothunks] /nix/store/wdd9466w57iwxmyg4rkgk28qpf27cpaw-nothunks-0.3.1/etc [nothunks] No alex found [nothunks] Using ar found on system at: [nothunks] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar [nothunks] No c2hs found [nothunks] No cpphs found [nothunks] No doctest found [nothunks] Using gcc version 14.3.0 given by user at: [nothunks] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc [nothunks] Using ghc version 9.12.2 found on system at: [nothunks] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc [nothunks] Using ghc-pkg version 9.12.2 found on system at: [nothunks] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc-pkg-9.12.2 [nothunks] No ghcjs found [nothunks] No ghcjs-pkg found [nothunks] No greencard found [nothunks] Using haddock version 2.30.0 found on system at: [nothunks] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/haddock-ghc-9.12.2 [nothunks] No happy found [nothunks] No haskell-suite found [nothunks] No haskell-suite-pkg found [nothunks] No hmake found [nothunks] Using hpc version 0.69 found on system at: [nothunks] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/hpc-ghc-9.12.2 [nothunks] Using hsc2hs version 0.68.10 found on system at: [nothunks] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/hsc2hs-ghc-9.12.2 [nothunks] Using hscolour version 1.25 found on system at: [nothunks] /nix/store/02s9rad0jn6nj8z96k357im73hkzqsnw-hscolour-1.25/bin/HsColour [nothunks] No jhc found [nothunks] Using ld found on system at: [nothunks] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld [nothunks] No pkg-config found [nothunks] Using runghc version 9.12.2 found on system at: [nothunks] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/runghc-9.12.2 [nothunks] Using strip version 2.44 found on system at: [nothunks] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip [nothunks] Using tar found on system at: [nothunks] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar [nothunks] No uhc found [nothunks] Phase: buildPhase [nothunks] Preprocessing library for nothunks-0.3.1... [nothunks] Building library for nothunks-0.3.1... [nothunks] [1 of 1] Compiling NoThunks.Class ( src/NoThunks/Class.hs, dist/build/NoThunks/Class.o, dist/build/NoThunks/Class.dyn_o ) [nothunks] [1 of 1] Compiling NoThunks.Class ( src/NoThunks/Class.hs, dist/build/NoThunks/Class.p_o ) [nothunks] Preprocessing test suite 'nothunks-test' for nothunks-0.3.1... [nothunks] Building test suite 'nothunks-test' for nothunks-0.3.1... [nothunks] [1 of 2] Compiling Test.NoThunks.Class ( test/Test/NoThunks/Class.hs, dist/build/nothunks-test/nothunks-test-tmp/Test/NoThunks/Class.o ) [nothunks] [2 of 2] Compiling Main ( test/Main.hs, dist/build/nothunks-test/nothunks-test-tmp/Main.o ) [nothunks] [3 of 3] Linking dist/build/nothunks-test/nothunks-test [nothunks] Phase: checkPhase [nothunks] Running 1 test suites... [nothunks] Test suite nothunks-test: RUNNING... [nothunks] Tests [nothunks]  NoThunks.Class [nothunks]  Sanity [nothunks]  IntNotNF: OK [nothunks]  ✓ passed 1 test. [nothunks]  IntIsNF: OK [nothunks]  ✓ passed 1 test. [nothunks]  Pair: OK [nothunks]  ✓ passed 1 test. [nothunks]  Sum: OK [nothunks]  ✓ passed 1 test. [nothunks]  Fn: OK [nothunks]  ✓ passed 1 test. [nothunks]  IO: OK [nothunks]  ✓ passed 1 test. [nothunks]  InspectHeap [nothunks]  Int: OK (0.01s) [nothunks]  ✓ passed 1000 tests. [nothunks]  Just ["Int"] 51% ██████████▏········· [nothunks]  Nothing 49% █████████▊·········· [nothunks]  IntInt: OK (0.02s) [nothunks]  ✓ passed 1000 tests. [nothunks]  Just ["Int","Tuple2"] 36% ███████▎············ [nothunks]  Just ["Tuple2"] 51% ██████████▏········· [nothunks]  Nothing 13% ██▌················· [nothunks]  SumInt: OK (0.02s) [nothunks]  ✓ passed 1000 tests. [nothunks]  Just ["Either"] 32% ██████▍············· [nothunks]  Just ["Int","Either"] 32% ██████▍············· [nothunks]  Nothing 35% ███████············· [nothunks]  ListInt: OK (0.02s) [nothunks]  ✓ passed 1000 tests. [nothunks]  Just ["Int","List"] 22% ████▍··············· [nothunks]  Just ["List"] 43% ████████▌··········· [nothunks]  Nothing 35% ███████············· [nothunks]  IntListInt: OK (0.02s) [nothunks]  ✓ passed 1000 tests. [nothunks]  Just ["Int","List","Tuple2"] 5% █··················· [nothunks]  Just ["Int","Tuple2"] 26% █████▎·············· [nothunks]  Just ["List","Tuple2"] 12% ██▍················· [nothunks]  Just ["Tuple2"] 48% █████████▌·········· [nothunks]  Nothing 8% █▋·················· [nothunks]  SeqInt: ✗ EXPECTED FAILURE failed at test/Test/NoThunks/Class.hs:179:7 [nothunks]  after 14 tests and 2 shrinks. [nothunks]  shrink path: 14:b2 [nothunks]  Just ["Int","Seq"] 50% ██████████·········· [nothunks]  Nothing  43% ████████▌··········· [nothunks]  [nothunks]  ┏━━ test/Test/NoThunks/Class.hs ━━━ [nothunks]  166 ┃ testWithModel :: forall a. FromModel a [nothunks]  167 ┃  => (Maybe ThunkInfo -> Maybe [String] -> Bool) [nothunks]  168 ┃  -> Proxy a [nothunks]  169 ┃  -- ^ Compare @ThunkInfo@. When we use 'noThunks' this [nothunks]  170 ┃  -- can just be @(==)@; however, when we use 'isNormalForm', the [nothunks]  171 ┃  -- context we will get from the model will be too detailed. [nothunks]  172 ┃  -> Property [nothunks]  173 ┃ testWithModel compareInfo _proxy = withTests 1000 $ property $ do [nothunks]  174 ┃  m :: Model a <- forAll genModel [nothunks]    ┃ │ Wrap [nothunks]    ┃ │  { unwrap = [nothunks]    ┃ │  SeqEnqueue [nothunks]    ┃ │  (IntValue 0) [nothunks]    ┃ │  (SeqEnqueue [nothunks]    ┃ │  (IntValue 0) [nothunks]    ┃ │  (SeqEnqueue [nothunks]    ┃ │  (IntValue 0) [nothunks]    ┃ │  (SeqEnqueue [nothunks]    ┃ │  (IntValue 0) [nothunks]    ┃ │  (SeqEnqueue (IntValue 0) (SeqEnqueue (IntValue 0) SeqEmpty))))) [nothunks]    ┃ │  } [nothunks]  175 ┃  collect $ modelUnexpected [] m [nothunks]  176 ┃  fromModel m $ \a -> do [nothunks]  177 ┃  annotate $ show $ modelIsNF [] m [nothunks]    ┃ │ IsNF [nothunks]  178 ┃  isNF <- liftIO $ noThunks [] a [nothunks]  179 ┃  Hedgehog.diff isNF compareInfo (modelUnexpected [] m) [nothunks]    ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [nothunks]    ┃ │ ━━━ Failed (- lhs) (+ rhs) ━━━ [nothunks]    ┃ │ - Just [nothunks]    ┃ │ - ThunkInfo [nothunks]    ┃ │ - { thunkContext = [ "..." , "Seq Int" ] , thunkInfo = Nothing } [nothunks]    ┃ │ + Nothing [nothunks]  [nothunks]  This failure can be reproduced by running: [nothunks]  > recheckAt (Seed 13935198873513635300 5580946004779282297) "14:b2" EXPECTED FAILURE [nothunks]  [nothunks] OK (0.02s) [nothunks]  ✓ passed 1 test. [nothunks]  Model [nothunks]  Int: OK (0.01s) [nothunks]  ✓ passed 1000 tests. [nothunks]  Just ["Int"] 46% █████████▎·········· [nothunks]  Nothing 54% ██████████▋········· [nothunks]  IntInt: OK (0.02s) [nothunks]  ✓ passed 1000 tests. [nothunks]  Just ["Int","Tuple2"] 38% ███████▌············ [nothunks]  Just ["Tuple2"] 50% ██████████·········· [nothunks]  Nothing 12% ██▎················· [nothunks]  SumInt: OK (0.01s) [nothunks]  ✓ passed 1000 tests. [nothunks]  Just ["Either"] 33% ██████▌············· [nothunks]  Just ["Int","Either"] 33% ██████▌············· [nothunks]  Nothing 34% ██████▊············· [nothunks]  ListInt: OK (0.02s) [nothunks]  ✓ passed 1000 tests. [nothunks]  Just ["Int","List"] 21% ████▏··············· [nothunks]  Just ["List"] 46% █████████··········· [nothunks]  Nothing 34% ██████▋············· [nothunks]  IntListInt: OK (0.01s) [nothunks]  ✓ passed 1000 tests. [nothunks]  Just ["Int","List","Tuple2"] 4% ▉··················· [nothunks]  Just ["Int","Tuple2"] 26% █████▏·············· [nothunks]  Just ["List","Tuple2"] 10% ██·················· [nothunks]  Just ["Tuple2"] 51% ██████████▏········· [nothunks]  Nothing 8% █▋·················· [nothunks]  SeqInt: OK (0.07s) [nothunks]  ✓ passed 1000 tests. [nothunks]  Just ["Int","Seq"] 46% █████████▎·········· [nothunks]  Nothing 54% ██████████▋········· [nothunks]  AllowThunksIn: OK (0.02s) [nothunks]  ✓ passed 1000 tests. [nothunks]  Just ["Int","field2","Record"] 23% ████▌··············· [nothunks]  Just ["Record"] 52% ██████████▍········· [nothunks]  Nothing 25% █████··············· [nothunks]  Fn: OK [nothunks]  ✓ passed 1000 tests. [nothunks]  Just ["->"] 23% ████▋··············· [nothunks]  Nothing 77% ███████████████▎···· [nothunks]  IO: OK [nothunks]  ✓ passed 1000 tests. [nothunks]  Just ["IO"] 24% ████▊··············· [nothunks]  Nothing 76% ███████████████▏···· [nothunks]  ThunkFreeFn: OK [nothunks]  ✓ passed 1000 tests. [nothunks]  Just ["->"] 24% ████▊··············· [nothunks]  Just ["...","->"] 40% ████████············ [nothunks]  Nothing 36% ███████▏············ [nothunks]  ThunkFreeIO: OK (0.01s) [nothunks]  ✓ passed 1000 tests. [nothunks]  Just ["...","IO"] 36% ███████▏············ [nothunks]  Just ["IO"] 24% ████▋··············· [nothunks]  Nothing 40% ████████············ [nothunks]  MutableVars [nothunks]  IORef [nothunks]  NotNF: OK [nothunks]  ✓ passed 1 test. [nothunks]  NF: OK [nothunks]  ✓ passed 1 test. [nothunks]  NotNFPure: OK [nothunks]  ✓ passed 1 test. [nothunks]  NFPure: OK [nothunks]  ✓ passed 1 test. [nothunks]  NotNFAtomically: OK [nothunks]  ✓ passed 1 test. [nothunks]  NFAtomically: OK [nothunks]  ✓ passed 1 test. [nothunks]  MVar [nothunks]  NotNF: OK [nothunks]  ✓ passed 1 test. [nothunks]  NF: OK [nothunks]  ✓ passed 1 test. [nothunks]  NotNFPure: OK [nothunks]  ✓ passed 1 test. [nothunks]  NFPure: OK [nothunks]  ✓ passed 1 test. [nothunks]  NotNFAtomically: OK [nothunks]  ✓ passed 1 test. [nothunks]  NFAtomically: OK [nothunks]  ✓ passed 1 test. [nothunks]  TVar [nothunks]  NotNF: OK [nothunks]  ✓ passed 1 test. [nothunks]  NF: OK [nothunks]  ✓ passed 1 test. [nothunks]  NotNFPure: OK [nothunks]  ✓ passed 1 test. [nothunks]  NFPure: OK [nothunks]  ✓ passed 1 test. [nothunks]  NotNFAtomically: OK [nothunks]  ✓ passed 1 test. [nothunks]  NFAtomically: OK [nothunks]  ✓ passed 1 test. [nothunks]  [nothunks] All 41 tests passed (0.31s) [nothunks] Test suite nothunks-test: PASS [nothunks] Test suite logged to: dist/test/nothunks-0.3.1-nothunks-test.log [nothunks] 1 of 1 test suites (1 of 1 test cases) passed. [nothunks] Phase: haddockPhase [nothunks] Preprocessing library for nothunks-0.3.1... [nothunks] Running Haddock on library for nothunks-0.3.1... [nothunks] Warning: The documentation for the following packages are not installed. No [nothunks] links will be generated to these packages: vector-0.13.2.0 [nothunks] [1 of 1] Compiling NoThunks.Class ( src/NoThunks/Class.hs, nothing ) [HIE file is missing] [nothunks] Haddock coverage: [nothunks] Warning: 'ThunkInfo' is ambiguous. It is defined [nothunks]  * at src/NoThunks/Class.hs:230:18 [nothunks]  * at src/NoThunks/Class.hs:230:1 [nothunks]  You may be able to disambiguate the identifier by qualifying it or [nothunks]  by specifying the type/value namespace explicitly. [nothunks]  Defaulting to the one defined at src/NoThunks/Class.hs:230:1 [nothunks] Warning: 'GHC' is out of scope. [nothunks]  If you qualify the identifier, haddock can try to link it anyway. [nothunks] Warning: 'a' is out of scope. [nothunks]  If you qualify the identifier, haddock can try to link it anyway. [nothunks] Warning: 'AllowThunksIn' is ambiguous. It is defined [nothunks]  * at src/NoThunks/Class.hs:334:48 [nothunks]  * at src/NoThunks/Class.hs:334:1 [nothunks]  You may be able to disambiguate the identifier by qualifying it or [nothunks]  by specifying the type/value namespace explicitly. [nothunks]  Defaulting to the one defined at src/NoThunks/Class.hs:334:1 [nothunks] Warning: 'InspectHeap' is ambiguous. It is defined [nothunks]  * at src/NoThunks/Class.hs:353:25 [nothunks]  * at src/NoThunks/Class.hs:353:1 [nothunks]  You may be able to disambiguate the identifier by qualifying it or [nothunks]  by specifying the type/value namespace explicitly. [nothunks]  Defaulting to the one defined at src/NoThunks/Class.hs:353:1 [nothunks] Warning: 'InspectHeapNamed' is ambiguous. It is defined [nothunks]  * at src/NoThunks/Class.hs:358:47 [nothunks]  * at src/NoThunks/Class.hs:358:1 [nothunks]  You may be able to disambiguate the identifier by qualifying it or [nothunks]  by specifying the type/value namespace explicitly. [nothunks]  Defaulting to the one defined at src/NoThunks/Class.hs:358:1 [nothunks] Warning: 'OnlyCheckWhnf' is ambiguous. It is defined [nothunks]  * at src/NoThunks/Class.hs:308:27 [nothunks]  * at src/NoThunks/Class.hs:308:1 [nothunks]  You may be able to disambiguate the identifier by qualifying it or [nothunks]  by specifying the type/value namespace explicitly. [nothunks]  Defaulting to the one defined at src/NoThunks/Class.hs:308:1 [nothunks]  95% ( 20 / 21) in 'NoThunks.Class' [nothunks]  Missing documentation for: [nothunks]  Module header [nothunks] Warning: NoThunks.Class: could not find link destinations for: [nothunks]  - NoThunks.Class.Elem [nothunks]  - NoThunks.Class.GShowTypeOf [nothunks]  - NoThunks.Class.GWRecordField [nothunks]  - NoThunks.Class.HasFields [nothunks]  - Data.Vector.Unboxed.Base.Vector [nothunks]  - Data.Vector.Vector [nothunks]  - NoThunks.Class.checkContainsThunks [nothunks] Documentation created: dist/doc/html/nothunks, [nothunks] dist/doc/html/nothunks/nothunks.txt [nothunks] Preprocessing test suite 'nothunks-test' for nothunks-0.3.1... [nothunks] Phase: installPhase [nothunks] Installing library in /nix/store/wdd9466w57iwxmyg4rkgk28qpf27cpaw-nothunks-0.3.1/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/nothunks-0.3.1-JxOYUjJU0JmFcpQSwg5Wvl [nothunks] Phase: fixupPhase [nothunks] shrinking RPATHs of ELF executables and libraries in /nix/store/wdd9466w57iwxmyg4rkgk28qpf27cpaw-nothunks-0.3.1 [nothunks] shrinking /nix/store/wdd9466w57iwxmyg4rkgk28qpf27cpaw-nothunks-0.3.1/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/libHSnothunks-0.3.1-JxOYUjJU0JmFcpQSwg5Wvl-ghc9.12.2.so [nothunks] checking for references to /build/ in /nix/store/wdd9466w57iwxmyg4rkgk28qpf27cpaw-nothunks-0.3.1... [nothunks] patching script interpreter paths in /nix/store/wdd9466w57iwxmyg4rkgk28qpf27cpaw-nothunks-0.3.1 [nothunks] stripping (with command strip and flags -S -p) in /nix/store/wdd9466w57iwxmyg4rkgk28qpf27cpaw-nothunks-0.3.1/lib [nothunks] shrinking RPATHs of ELF executables and libraries in /nix/store/59pxp3k7s9gkkphzzdc2080x7vmrwpsf-nothunks-0.3.1-doc [nothunks] checking for references to /build/ in /nix/store/59pxp3k7s9gkkphzzdc2080x7vmrwpsf-nothunks-0.3.1-doc... [nothunks] patching script interpreter paths in /nix/store/59pxp3k7s9gkkphzzdc2080x7vmrwpsf-nothunks-0.3.1-doc [nothunks:post-build] Uploading to cachix cache "sellout": /nix/store/59pxp3k7s9gkkphzzdc2080x7vmrwpsf-nothunks-0.3.1-doc /nix/store/wdd9466w57iwxmyg4rkgk28qpf27cpaw-nothunks-0.3.1 [nothunks:post-build] Pushing 2 paths (100 are already present) using zstd to cache sellout ⏳ [nothunks:post-build]  [nothunks:post-build] Pushing /nix/store/wdd9466w57iwxmyg4rkgk28qpf27cpaw-nothunks-0.3.1 (2.86 MiB) [nothunks:post-build] Pushing /nix/store/59pxp3k7s9gkkphzzdc2080x7vmrwpsf-nothunks-0.3.1-doc (839.31 KiB) [nothunks:post-build]  [nothunks:post-build] All done. [nothunks:post-build] Uploading to the NixCI cache: /nix/store/59pxp3k7s9gkkphzzdc2080x7vmrwpsf-nothunks-0.3.1-doc /nix/store/wdd9466w57iwxmyg4rkgk28qpf27cpaw-nothunks-0.3.1 [nothunks:post-build] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [nothunks:post-build] copying 2 paths... [nothunks:post-build] copying path '/nix/store/59pxp3k7s9gkkphzzdc2080x7vmrwpsf-nothunks-0.3.1-doc' to 'https://cache.nix-ci.com'... [nothunks:post-build] copying path '/nix/store/wdd9466w57iwxmyg4rkgk28qpf27cpaw-nothunks-0.3.1' to 'https://cache.nix-ci.com'... [nothunks:post-build] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [nothunks:post-build] copying 1 paths... [nothunks:post-build] copying path '/nix/store/zsswivj44k6g1mv7kqsfri8v1ghfgidx-nothunks-0.3.1.drv' to 'https://cache.nix-ci.com'... Progress: 5 of 14 built, 43 of 43 downloaded from cache Building /nix/store/2ivbb618b8h11ny2wdx7qjywgjg4d7kb-unordered-containers-0.2.20.1.drv [unordered-containers] Phase: setupCompilerEnvironmentPhase [unordered-containers] Build with /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2. [unordered-containers] Phase: unpackPhase [unordered-containers] unpacking source archive /nix/store/3jhrx7bdq3fc4fyqvqr344f82lb9n9iv-unordered-containers-0.2.20.1.tar.gz [unordered-containers] source root is unordered-containers-0.2.20.1 [unordered-containers] setting SOURCE_DATE_EPOCH to timestamp 1000000000 of file "unordered-containers-0.2.20.1/unordered-containers.cabal" [unordered-containers] Phase: patchPhase [unordered-containers] Phase: compileBuildDriverPhase [unordered-containers] setupCompileFlags: -package-db=/build/tmp.hwGSJkgYiV/setup-package.conf.d -threaded [unordered-containers] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.hwGSJkgYiV/Main.o ) [unordered-containers] [2 of 2] Linking Setup [unordered-containers] Phase: updateAutotoolsGnuConfigScriptsPhase [unordered-containers] Phase: configurePhase [unordered-containers] configureFlags: --verbose --prefix=/nix/store/ni8p0nj55465mk1q3xc74b2h4vy41182-unordered-containers-0.2.20.1 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/nix/store/r8fiibcxm6cb3mgmz9mrnfxcsnwnswch-unordered-containers-0.2.20.1-doc/share/doc/unordered-containers-0.2.20.1 --with-gcc=gcc --package-db=/build/tmp.hwGSJkgYiV/package.conf.d --ghc-option=-j16 --ghc-option=+RTS --ghc-option=-A64M --ghc-option=-RTS --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --enable-static --disable-executable-dynamic --enable-tests --disable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-option=-haddock --extra-lib-dirs=/nix/store/ffyzkisqs4vc4mg28bwwlyqjf8i9ph6b-ncurses-6.5/lib --extra-lib-dirs=/nix/store/n28qgdj8c1q41kf7n4y1jxa6ckp85m3c-libffi-3.5.2/lib --extra-lib-dirs=/nix/store/1b6h99dw7bk4wbn77kbalih42zbc67m1-elfutils-0.194/lib --extra-lib-dirs=/nix/store/hi0ar880110k6jsmmili7dh1gq3cg2a9-gmp-with-cxx-6.3.0/lib --extra-lib-dirs=/nix/store/g09cflpnp4g80q56sj9dng1qzv4v4ybc-numactl-2.0.18/lib [unordered-containers] Using Parsec parser [unordered-containers] Configuring unordered-containers-0.2.20.1... [unordered-containers] Warning: Unknown/unsupported 'ghc' version detected (Cabal 3.14.1.0 supports [unordered-containers] 'ghc' version < 9.12): [unordered-containers] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc is version [unordered-containers] 9.12.2 [unordered-containers] Flags chosen: debug=False [unordered-containers] Dependency base >=4.10 && <5: using base-4.21.0.0 [unordered-containers] Dependency deepseq >=1.4.3: using deepseq-1.5.1.0 [unordered-containers] Dependency hashable >=1.4 && <1.6: using hashable-1.5.0.0 [unordered-containers] Dependency template-haskell <2.24: using template-haskell-2.23.0.0 [unordered-containers] Dependency ChasingBottoms: using ChasingBottoms-1.3.1.17 [unordered-containers] Dependency HUnit: using HUnit-1.6.2.0 [unordered-containers] Dependency QuickCheck >=2.4.0.1: using QuickCheck-2.15.0.1 [unordered-containers] Dependency base: using base-4.21.0.0 [unordered-containers] Dependency containers >=0.5.8: using containers-0.7 [unordered-containers] Dependency hashable: using hashable-1.5.0.0 [unordered-containers] Dependency nothunks >=0.1.3: using nothunks-0.3.1 [unordered-containers] Dependency random: using random-1.2.1.3 [unordered-containers] Dependency tasty >=1.4.0.3: using tasty-1.5.3 [unordered-containers] Dependency tasty-hunit >=0.10.0.3: using tasty-hunit-0.10.2 [unordered-containers] Dependency tasty-quickcheck >=0.10.1.2: using tasty-quickcheck-0.11.1 [unordered-containers] Dependency unordered-containers: using unordered-containers-0.2.20.1 [unordered-containers] Source component graph: [unordered-containers]  component lib [unordered-containers]  component test:unordered-containers-tests dependency lib [unordered-containers] Configured component graph: [unordered-containers]  component unordered-containers-0.2.20.1-3ZsWQAs3PjGLjwQKK8XWLF [unordered-containers]  include base-4.21.0.0-b334 [unordered-containers]  include deepseq-1.5.1.0-3c62 [unordered-containers]  include hashable-1.5.0.0-LjYCr2INJa96D1zV0qVgRV [unordered-containers]  include template-haskell-2.23.0.0-4ee9 [unordered-containers]  component unordered-containers-0.2.20.1-33hNwrDDYUvDIxwoJthJjL-unordered-containers-tests [unordered-containers]  include ChasingBottoms-1.3.1.17-5GE1PYLkkwE5eKyEuTckWY [unordered-containers]  include HUnit-1.6.2.0-3ZugMwA5Fqe3c2fSrjhIxu [unordered-containers]  include QuickCheck-2.15.0.1-4a6QuHFK3EgHKorV6DzjdR [unordered-containers]  include base-4.21.0.0-b334 [unordered-containers]  include containers-0.7-d79e [unordered-containers]  include hashable-1.5.0.0-LjYCr2INJa96D1zV0qVgRV [unordered-containers]  include nothunks-0.3.1-JxOYUjJU0JmFcpQSwg5Wvl [unordered-containers]  include random-1.2.1.3-JGcOiyH1u317hgRB7TWWFV [unordered-containers]  include tasty-1.5.3-1P3AH5KqZrKLTVMzNZdHkm [unordered-containers]  include tasty-hunit-0.10.2-JRT4tyEuMHKBzpxUU6VUG8 [unordered-containers]  include tasty-quickcheck-0.11.1-Ca4DEyt784fFBsV7HOinsy [unordered-containers]  include unordered-containers-0.2.20.1-3ZsWQAs3PjGLjwQKK8XWLF [unordered-containers] Linked component graph: [unordered-containers]  unit unordered-containers-0.2.20.1-3ZsWQAs3PjGLjwQKK8XWLF [unordered-containers]  include base-4.21.0.0-b334 [unordered-containers]  include deepseq-1.5.1.0-3c62 [unordered-containers]  include hashable-1.5.0.0-LjYCr2INJa96D1zV0qVgRV [unordered-containers]  include template-haskell-2.23.0.0-4ee9 [unordered-containers]  Data.HashMap.Internal=unordered-containers-0.2.20.1-3ZsWQAs3PjGLjwQKK8XWLF:Data.HashMap.Internal,Data.HashMap.Internal.Array=unordered-containers-0.2.20.1-3ZsWQAs3PjGLjwQKK8XWLF:Data.HashMap.Internal.Array,Data.HashMap.Internal.Debug=unordered-containers-0.2.20.1-3ZsWQAs3PjGLjwQKK8XWLF:Data.HashMap.Internal.Debug,Data.HashMap.Internal.List=unordered-containers-0.2.20.1-3ZsWQAs3PjGLjwQKK8XWLF:Data.HashMap.Internal.List,Data.HashMap.Internal.Strict=unordered-containers-0.2.20.1-3ZsWQAs3PjGLjwQKK8XWLF:Data.HashMap.Internal.Strict,Data.HashMap.Lazy=unordered-containers-0.2.20.1-3ZsWQAs3PjGLjwQKK8XWLF:Data.HashMap.Lazy,Data.HashMap.Strict=unordered-containers-0.2.20.1-3ZsWQAs3PjGLjwQKK8XWLF:Data.HashMap.Strict,Data.HashSet=unordered-containers-0.2.20.1-3ZsWQAs3PjGLjwQKK8XWLF:Data.HashSet,Data.HashSet.Internal=unordered-containers-0.2.20.1-3ZsWQAs3PjGLjwQKK8XWLF:Data.HashSet.Internal [unordered-containers]  unit unordered-containers-0.2.20.1-33hNwrDDYUvDIxwoJthJjL-unordered-containers-tests [unordered-containers]  include ChasingBottoms-1.3.1.17-5GE1PYLkkwE5eKyEuTckWY [unordered-containers]  include HUnit-1.6.2.0-3ZugMwA5Fqe3c2fSrjhIxu [unordered-containers]  include QuickCheck-2.15.0.1-4a6QuHFK3EgHKorV6DzjdR [unordered-containers]  include base-4.21.0.0-b334 [unordered-containers]  include containers-0.7-d79e [unordered-containers]  include hashable-1.5.0.0-LjYCr2INJa96D1zV0qVgRV [unordered-containers]  include nothunks-0.3.1-JxOYUjJU0JmFcpQSwg5Wvl [unordered-containers]  include random-1.2.1.3-JGcOiyH1u317hgRB7TWWFV [unordered-containers]  include tasty-1.5.3-1P3AH5KqZrKLTVMzNZdHkm [unordered-containers]  include tasty-hunit-0.10.2-JRT4tyEuMHKBzpxUU6VUG8 [unordered-containers]  include tasty-quickcheck-0.11.1-Ca4DEyt784fFBsV7HOinsy [unordered-containers]  include unordered-containers-0.2.20.1-3ZsWQAs3PjGLjwQKK8XWLF [unordered-containers] Ready component graph: [unordered-containers]  definite unordered-containers-0.2.20.1-3ZsWQAs3PjGLjwQKK8XWLF [unordered-containers]  depends base-4.21.0.0-b334 [unordered-containers]  depends deepseq-1.5.1.0-3c62 [unordered-containers]  depends hashable-1.5.0.0-LjYCr2INJa96D1zV0qVgRV [unordered-containers]  depends template-haskell-2.23.0.0-4ee9 [unordered-containers]  definite unordered-containers-0.2.20.1-33hNwrDDYUvDIxwoJthJjL-unordered-containers-tests [unordered-containers]  depends ChasingBottoms-1.3.1.17-5GE1PYLkkwE5eKyEuTckWY [unordered-containers]  depends HUnit-1.6.2.0-3ZugMwA5Fqe3c2fSrjhIxu [unordered-containers]  depends QuickCheck-2.15.0.1-4a6QuHFK3EgHKorV6DzjdR [unordered-containers]  depends base-4.21.0.0-b334 [unordered-containers]  depends containers-0.7-d79e [unordered-containers]  depends hashable-1.5.0.0-LjYCr2INJa96D1zV0qVgRV [unordered-containers]  depends nothunks-0.3.1-JxOYUjJU0JmFcpQSwg5Wvl [unordered-containers]  depends random-1.2.1.3-JGcOiyH1u317hgRB7TWWFV [unordered-containers]  depends tasty-1.5.3-1P3AH5KqZrKLTVMzNZdHkm [unordered-containers]  depends tasty-hunit-0.10.2-JRT4tyEuMHKBzpxUU6VUG8 [unordered-containers]  depends tasty-quickcheck-0.11.1-Ca4DEyt784fFBsV7HOinsy [unordered-containers]  depends unordered-containers-0.2.20.1-3ZsWQAs3PjGLjwQKK8XWLF [unordered-containers] Using Cabal-3.14.1.0 compiled by ghc-9.12 [unordered-containers] Using compiler: ghc-9.12.2 [unordered-containers] Using install prefix: [unordered-containers] /nix/store/ni8p0nj55465mk1q3xc74b2h4vy41182-unordered-containers-0.2.20.1 [unordered-containers] Executables installed in: [unordered-containers] /nix/store/ni8p0nj55465mk1q3xc74b2h4vy41182-unordered-containers-0.2.20.1/bin [unordered-containers] Libraries installed in: [unordered-containers] /nix/store/ni8p0nj55465mk1q3xc74b2h4vy41182-unordered-containers-0.2.20.1/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/unordered-containers-0.2.20.1-3ZsWQAs3PjGLjwQKK8XWLF [unordered-containers] Dynamic Libraries installed in: [unordered-containers] /nix/store/ni8p0nj55465mk1q3xc74b2h4vy41182-unordered-containers-0.2.20.1/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3 [unordered-containers] Private executables installed in: [unordered-containers] /nix/store/ni8p0nj55465mk1q3xc74b2h4vy41182-unordered-containers-0.2.20.1/libexec/x86_64-linux-ghc-9.12.2-82d3/unordered-containers-0.2.20.1 [unordered-containers] Data files installed in: [unordered-containers] /nix/store/ni8p0nj55465mk1q3xc74b2h4vy41182-unordered-containers-0.2.20.1/share/x86_64-linux-ghc-9.12.2-82d3/unordered-containers-0.2.20.1 [unordered-containers] Documentation installed in: [unordered-containers] /nix/store/r8fiibcxm6cb3mgmz9mrnfxcsnwnswch-unordered-containers-0.2.20.1-doc/share/doc/unordered-containers-0.2.20.1 [unordered-containers] Configuration files installed in: [unordered-containers] /nix/store/ni8p0nj55465mk1q3xc74b2h4vy41182-unordered-containers-0.2.20.1/etc [unordered-containers] No alex found [unordered-containers] Using ar found on system at: [unordered-containers] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar [unordered-containers] No c2hs found [unordered-containers] No cpphs found [unordered-containers] No doctest found [unordered-containers] Using gcc version 14.3.0 given by user at: [unordered-containers] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc [unordered-containers] Using ghc version 9.12.2 found on system at: [unordered-containers] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc [unordered-containers] Using ghc-pkg version 9.12.2 found on system at: [unordered-containers] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc-pkg-9.12.2 [unordered-containers] No ghcjs found [unordered-containers] No ghcjs-pkg found [unordered-containers] No greencard found [unordered-containers] Using haddock version 2.30.0 found on system at: [unordered-containers] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/haddock-ghc-9.12.2 [unordered-containers] No happy found [unordered-containers] No haskell-suite found [unordered-containers] No haskell-suite-pkg found [unordered-containers] No hmake found [unordered-containers] Using hpc version 0.69 found on system at: [unordered-containers] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/hpc-ghc-9.12.2 [unordered-containers] Using hsc2hs version 0.68.10 found on system at: [unordered-containers] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/hsc2hs-ghc-9.12.2 [unordered-containers] Using hscolour version 1.25 found on system at: [unordered-containers] /nix/store/02s9rad0jn6nj8z96k357im73hkzqsnw-hscolour-1.25/bin/HsColour [unordered-containers] No jhc found [unordered-containers] Using ld found on system at: [unordered-containers] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld [unordered-containers] No pkg-config found [unordered-containers] Using runghc version 9.12.2 found on system at: [unordered-containers] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/runghc-9.12.2 [unordered-containers] Using strip version 2.44 found on system at: [unordered-containers] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip [unordered-containers] Using tar found on system at: [unordered-containers] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar [unordered-containers] No uhc found [unordered-containers] Phase: buildPhase [unordered-containers] Preprocessing library for unordered-containers-0.2.20.1... [unordered-containers] Building library for unordered-containers-0.2.20.1... [unordered-containers] Data/HashMap/Internal.hs:12:14-23: warning: []8;;https://errors.haskell.org/messages/GHC-53692\GHC-53692]8;;\] [-Wdeprecated-flags] [unordered-containers]  -XTypeInType is deprecated: use -XDataKinds and -XPolyKinds instead [unordered-containers]  | [unordered-containers] 12 | {-# LANGUAGE TypeInType #-} [unordered-containers]  | ^^^^^^^^^^ [unordered-containers]  [unordered-containers] [1 of 9] Compiling Data.HashMap.Internal.Array ( Data/HashMap/Internal/Array.hs, dist/build/Data/HashMap/Internal/Array.o, dist/build/Data/HashMap/Internal/Array.dyn_o ) [unordered-containers] Data/HashMap/Internal/Array.hs:83:1-35: warning: []8;;https://errors.haskell.org/messages/GHC-66111\GHC-66111]8;;\] [-Wunused-imports] [unordered-containers]  The import of ‘Control.Applicative’ is redundant [unordered-containers]  except perhaps to import instances from ‘Control.Applicative’ [unordered-containers]  To import instances alone, use: import Control.Applicative() [unordered-containers]  | [unordered-containers] 83 | import Control.Applicative (liftA2) [unordered-containers]  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [unordered-containers]  [unordered-containers] Data/HashMap/Internal/Array.hs:162:20-43: warning: []8;;https://errors.haskell.org/messages/GHC-68441\GHC-68441]8;;\] [-Wdeprecations] [unordered-containers]  In the use of ‘sizeofSmallMutableArray#’ [unordered-containers]  (imported from GHC.Exts, but defined in GHC.Prim): [unordered-containers]  Deprecated: " Use 'getSizeofSmallMutableArray#' instead " [unordered-containers]  | [unordered-containers] 162 | lengthM mary = I# (sizeofSmallMutableArray# (unMArray mary)) [unordered-containers]  | ^^^^^^^^^^^^^^^^^^^^^^^^ [unordered-containers]  [unordered-containers] [2 of 9] Compiling Data.HashMap.Internal.List ( Data/HashMap/Internal/List.hs, dist/build/Data/HashMap/Internal/List.o, dist/build/Data/HashMap/Internal/List.dyn_o ) [unordered-containers] [3 of 9] Compiling Data.HashMap.Internal ( Data/HashMap/Internal.hs, dist/build/Data/HashMap/Internal.o, dist/build/Data/HashMap/Internal.dyn_o ) [unordered-containers] [4 of 9] Compiling Data.HashMap.Internal.Debug ( Data/HashMap/Internal/Debug.hs, dist/build/Data/HashMap/Internal/Debug.o, dist/build/Data/HashMap/Internal/Debug.dyn_o ) [unordered-containers] [5 of 9] Compiling Data.HashMap.Internal.Strict ( Data/HashMap/Internal/Strict.hs, dist/build/Data/HashMap/Internal/Strict.o, dist/build/Data/HashMap/Internal/Strict.dyn_o ) [unordered-containers] [6 of 9] Compiling Data.HashSet.Internal ( Data/HashSet/Internal.hs, dist/build/Data/HashSet/Internal.o, dist/build/Data/HashSet/Internal.dyn_o ) [unordered-containers] [7 of 9] Compiling Data.HashSet ( Data/HashSet.hs, dist/build/Data/HashSet.o, dist/build/Data/HashSet.dyn_o ) [unordered-containers] [8 of 9] Compiling Data.HashMap.Strict ( Data/HashMap/Strict.hs, dist/build/Data/HashMap/Strict.o, dist/build/Data/HashMap/Strict.dyn_o ) [unordered-containers] [9 of 9] Compiling Data.HashMap.Lazy ( Data/HashMap/Lazy.hs, dist/build/Data/HashMap/Lazy.o, dist/build/Data/HashMap/Lazy.dyn_o ) [unordered-containers] Data/HashMap/Internal.hs:12:14-23: warning: []8;;https://errors.haskell.org/messages/GHC-53692\GHC-53692]8;;\] [-Wdeprecated-flags] [unordered-containers]  -XTypeInType is deprecated: use -XDataKinds and -XPolyKinds instead [unordered-containers]  | [unordered-containers] 12 | {-# LANGUAGE TypeInType #-} [unordered-containers]  | ^^^^^^^^^^ [unordered-containers]  [unordered-containers] [1 of 9] Compiling Data.HashMap.Internal.Array ( Data/HashMap/Internal/Array.hs, dist/build/Data/HashMap/Internal/Array.p_o ) [unordered-containers] Data/HashMap/Internal/Array.hs:83:1-35: warning: []8;;https://errors.haskell.org/messages/GHC-66111\GHC-66111]8;;\] [-Wunused-imports] [unordered-containers]  The import of ‘Control.Applicative’ is redundant [unordered-containers]  except perhaps to import instances from ‘Control.Applicative’ [unordered-containers]  To import instances alone, use: import Control.Applicative() [unordered-containers]  | [unordered-containers] 83 | import Control.Applicative (liftA2) [unordered-containers]  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [unordered-containers]  [unordered-containers] Data/HashMap/Internal/Array.hs:162:20-43: warning: []8;;https://errors.haskell.org/messages/GHC-68441\GHC-68441]8;;\] [-Wdeprecations] [unordered-containers]  In the use of ‘sizeofSmallMutableArray#’ [unordered-containers]  (imported from GHC.Exts, but defined in GHC.Prim): [unordered-containers]  Deprecated: " Use 'getSizeofSmallMutableArray#' instead " [unordered-containers]  | [unordered-containers] 162 | lengthM mary = I# (sizeofSmallMutableArray# (unMArray mary)) [unordered-containers]  | ^^^^^^^^^^^^^^^^^^^^^^^^ [unordered-containers]  [unordered-containers] [2 of 9] Compiling Data.HashMap.Internal.List ( Data/HashMap/Internal/List.hs, dist/build/Data/HashMap/Internal/List.p_o ) [unordered-containers] [3 of 9] Compiling Data.HashMap.Internal ( Data/HashMap/Internal.hs, dist/build/Data/HashMap/Internal.p_o ) [unordered-containers] [4 of 9] Compiling Data.HashMap.Internal.Debug ( Data/HashMap/Internal/Debug.hs, dist/build/Data/HashMap/Internal/Debug.p_o ) [unordered-containers] [5 of 9] Compiling Data.HashMap.Internal.Strict ( Data/HashMap/Internal/Strict.hs, dist/build/Data/HashMap/Internal/Strict.p_o ) [unordered-containers] [6 of 9] Compiling Data.HashSet.Internal ( Data/HashSet/Internal.hs, dist/build/Data/HashSet/Internal.p_o ) [unordered-containers] [7 of 9] Compiling Data.HashSet ( Data/HashSet.hs, dist/build/Data/HashSet.p_o ) [unordered-containers] [8 of 9] Compiling Data.HashMap.Strict ( Data/HashMap/Strict.hs, dist/build/Data/HashMap/Strict.p_o ) [unordered-containers] [9 of 9] Compiling Data.HashMap.Lazy ( Data/HashMap/Lazy.hs, dist/build/Data/HashMap/Lazy.p_o ) [unordered-containers] Preprocessing test suite 'unordered-containers-tests' for unordered-containers-0.2.20.1... [unordered-containers] Building test suite 'unordered-containers-tests' for unordered-containers-0.2.20.1... [unordered-containers] [1 of 9] Compiling Properties.List ( tests/Properties/List.hs, dist/build/unordered-containers-tests/unordered-containers-tests-tmp/Properties/List.o ) [unordered-containers] [2 of 9] Compiling Regressions ( tests/Regressions.hs, dist/build/unordered-containers-tests/unordered-containers-tests-tmp/Regressions.o ) [unordered-containers] tests/Regressions.hs:93:16: warning: []8;;https://errors.haskell.org/messages/GHC-63394\GHC-63394]8;;\] [-Wx-partial] [unordered-containers]  In the use of ‘head’ [unordered-containers]  (imported from Prelude, but defined in GHC.Internal.List): [unordered-containers]  "This is a partial function, it throws an error on empty lists. Use pattern matching, 'Data.List.uncons' or 'Data.Maybe.listToMaybe' instead. Consider refactoring to use "Data.List.NonEmpty"." [unordered-containers]  | [unordered-containers] 93 | k = head keys [unordered-containers]  | ^^^^ [unordered-containers]  [unordered-containers] [3 of 9] Compiling Util.Key ( tests/Util/Key.hs, dist/build/unordered-containers-tests/unordered-containers-tests-tmp/Util/Key.o ) [unordered-containers] [4 of 9] Compiling Strictness ( tests/Strictness.hs, dist/build/unordered-containers-tests/unordered-containers-tests-tmp/Strictness.o ) [unordered-containers] tests/Strictness.hs:7:1: warning: []8;;https://errors.haskell.org/messages/GHC-66111\GHC-66111]8;;\] [-Wunused-imports] [unordered-containers]  The import of ‘Data.Foldable’ is redundant [unordered-containers]  except perhaps to import instances from ‘Data.Foldable’ [unordered-containers]  To import instances alone, use: import Data.Foldable() [unordered-containers]  | [unordered-containers] 7 | import Data.Foldable (foldl') [unordered-containers]  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [unordered-containers]  [unordered-containers] [5 of 9] Compiling Properties.HashSet ( tests/Properties/HashSet.hs, dist/build/unordered-containers-tests/unordered-containers-tests-tmp/Properties/HashSet.o ) [unordered-containers] [6 of 9] Compiling Properties.HashMapStrict ( tests/Properties/HashMapStrict.hs, dist/build/unordered-containers-tests/unordered-containers-tests-tmp/Properties/HashMapStrict.o ) [unordered-containers] [7 of 9] Compiling Properties.HashMapLazy ( tests/Properties/HashMapLazy.hs, dist/build/unordered-containers-tests/unordered-containers-tests-tmp/Properties/HashMapLazy.o ) [unordered-containers] [8 of 9] Compiling Properties ( tests/Properties.hs, dist/build/unordered-containers-tests/unordered-containers-tests-tmp/Properties.o ) [unordered-containers] [9 of 9] Compiling Main ( tests/Main.hs, dist/build/unordered-containers-tests/unordered-containers-tests-tmp/Main.o ) [unordered-containers] [10 of 10] Linking dist/build/unordered-containers-tests/unordered-containers-tests [unordered-containers] Phase: checkPhase [unordered-containers] Running 1 test suites... [unordered-containers] Test suite unordered-containers-tests: RUNNING... [unordered-containers] All [unordered-containers]  Properties [unordered-containers]  Data.HashMap.Lazy [unordered-containers]  instances [unordered-containers]  Eq [unordered-containers]  ==: OK (0.02s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  /=: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  Ord [unordered-containers]  compare reflexive: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  compare transitive: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  compare antisymmetric: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  Ord => Eq: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  Read/Show: OK (0.07s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  Functor: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  Foldable: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  Bifoldable [unordered-containers]  bifoldMap: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  bifoldr: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  bifoldl: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  Hashable: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  empty [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 1 test. [unordered-containers]  singleton [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  size: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  member: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  lookup: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  !?: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  insert [unordered-containers]  model: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  insertWith [unordered-containers]  insertWith: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  delete [unordered-containers]  model: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  adjust [unordered-containers]  model: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  update [unordered-containers]  model: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  alter [unordered-containers]  model: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  alterF [unordered-containers]  model [unordered-containers]  []: OK (0.02s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  adjust: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  insert: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  insertWith: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  delete: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  lookup: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  isSubmapOf [unordered-containers]  model: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  m ⊆ m: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  m1 ⊆ m1 ∪ m2: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  m1\m2 ⊆ m1: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  m1 ∩ m2 ≠ ∅ ⇒ m1 ⊈ m1\m2 : OK [unordered-containers]  +++ OK, passed 100 tests; 202 discarded. [unordered-containers]  delete k m ⊆ m: OK [unordered-containers]  +++ OK, passed 100 tests; 16 discarded. [unordered-containers]  m ⊈ delete k m : OK [unordered-containers]  +++ OK, passed 100 tests; 16 discarded. [unordered-containers]  k ∉ m ⇒ m ⊆ insert k v m: OK [unordered-containers]  +++ OK, passed 100 tests; 12 discarded. [unordered-containers]  k ∉ m ⇒ insert k v m ⊈ m: OK [unordered-containers]  +++ OK, passed 100 tests; 8 discarded. [unordered-containers]  union [unordered-containers]  model: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  unionWith [unordered-containers]  model: OK (0.02s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  unionWithKey [unordered-containers]  model: OK (0.03s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  unions [unordered-containers]  model: OK (0.31s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK (0.21s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  difference [unordered-containers]  model: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  differenceWith [unordered-containers]  model: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  intersection [unordered-containers]  model: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  intersectionWith [unordered-containers]  model: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  intersectionWithKey [unordered-containers]  model: OK (0.02s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  compose [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  map [unordered-containers]  model: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  traverseWithKey [unordered-containers]  model: OK (0.15s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  mapKeys [unordered-containers]  model: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK (0.10s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  foldr: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  foldl: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  foldrWithKey: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  foldlWithKey: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  foldrWithKey': OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  foldlWithKey': OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  foldl': OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  foldr': OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  foldMapWithKey: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  filter [unordered-containers]  model: OK (0.02s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  filterWithKey [unordered-containers]  model: OK (0.28s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK (0.12s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  mapMaybe [unordered-containers]  model: OK (0.03s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  mapMaybeWithKey [unordered-containers]  model: OK (0.30s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK (0.13s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  elems: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  keys: OK (0.02s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  fromList [unordered-containers]  model: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  fromListWith [unordered-containers]  model: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  fromListWithKey [unordered-containers]  model: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  toList: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  Data.HashMap.Strict [unordered-containers]  instances [unordered-containers]  Eq [unordered-containers]  ==: OK (0.02s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  /=: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  Ord [unordered-containers]  compare reflexive: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  compare transitive: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  compare antisymmetric: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  Ord => Eq: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  Read/Show: OK (0.11s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  Functor: OK (0.03s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  Foldable: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  Bifoldable [unordered-containers]  bifoldMap: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  bifoldr: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  bifoldl: OK (0.02s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  Hashable: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  empty [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 1 test. [unordered-containers]  singleton [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  size: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  member: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  lookup: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  !?: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  insert [unordered-containers]  model: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  insertWith [unordered-containers]  insertWith: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  delete [unordered-containers]  model: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  adjust [unordered-containers]  model: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  update [unordered-containers]  model: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  alter [unordered-containers]  model: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  alterF [unordered-containers]  model [unordered-containers]  []: OK (0.06s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  adjust: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  insert: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  insertWith: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  delete: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  lookup: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK (0.02s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  isSubmapOf [unordered-containers]  model: OK (0.02s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  m ⊆ m: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  m1 ⊆ m1 ∪ m2: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  m1\m2 ⊆ m1: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  m1 ∩ m2 ≠ ∅ ⇒ m1 ⊈ m1\m2 : OK (0.02s) [unordered-containers]  +++ OK, passed 100 tests; 131 discarded. [unordered-containers]  delete k m ⊆ m: OK [unordered-containers]  +++ OK, passed 100 tests; 14 discarded. [unordered-containers]  m ⊈ delete k m : OK [unordered-containers]  +++ OK, passed 100 tests; 14 discarded. [unordered-containers]  k ∉ m ⇒ m ⊆ insert k v m: OK [unordered-containers]  +++ OK, passed 100 tests; 9 discarded. [unordered-containers]  k ∉ m ⇒ insert k v m ⊈ m: OK [unordered-containers]  +++ OK, passed 100 tests; 17 discarded. [unordered-containers]  union [unordered-containers]  model: OK (0.02s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  unionWith [unordered-containers]  model: OK (0.03s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK (0.02s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  unionWithKey [unordered-containers]  model: OK (0.04s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK (0.03s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  unions [unordered-containers]  model: OK (0.34s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK (0.25s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  difference [unordered-containers]  model: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  differenceWith [unordered-containers]  model: OK (0.02s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK (0.02s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  intersection [unordered-containers]  model: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK (0.02s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  intersectionWith [unordered-containers]  model: OK (0.02s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK (0.02s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  intersectionWithKey [unordered-containers]  model: OK (0.04s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK (0.02s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  compose [unordered-containers]  valid: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  map [unordered-containers]  model: OK (0.03s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  traverseWithKey [unordered-containers]  model: OK (0.04s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  mapKeys [unordered-containers]  model: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK (0.12s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  foldr: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  foldl: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  foldrWithKey: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  foldlWithKey: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  foldrWithKey': OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  foldlWithKey': OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  foldl': OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  foldr': OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  foldMapWithKey: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  filter [unordered-containers]  model: OK (0.02s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK (0.03s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  filterWithKey [unordered-containers]  model: OK (0.26s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK (0.17s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  mapMaybe [unordered-containers]  model: OK (0.03s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK (0.02s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  mapMaybeWithKey [unordered-containers]  model: OK (0.27s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK (0.21s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  elems: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  keys: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  fromList [unordered-containers]  model: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  fromListWith [unordered-containers]  model: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  fromListWithKey [unordered-containers]  model: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  valid: OK (0.02s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  toList: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  Data.HashSet [unordered-containers]  instances [unordered-containers]  Eq [unordered-containers]  ==: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  == permutations: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  /=: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  Ord [unordered-containers]  compare reflexive: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  compare transitive: OK (0.02s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  compare antisymmetric: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  Ord => Eq: OK (0.02s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  Read/Show: OK (0.13s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  Foldable: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  Hashable: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  size: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  member: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  insert: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  delete: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  union: OK (0.02s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  map: OK (0.18s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  foldr: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  foldl': OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  filter: OK (0.20s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  toList: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  Data.HashMap.Internal.List [unordered-containers]  isPermutationBy: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  isPermutationBy of different length: OK [unordered-containers]  +++ OK, passed 100 tests; 17 discarded. [unordered-containers]  pUnorderedCompare: OK (0.04s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  modelUnorderedCompare [unordered-containers]  reflexive: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  anti-symmetric: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  transitive: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  Regression tests [unordered-containers]  issue32: OK [unordered-containers]  issue39a: OK [unordered-containers]  issue39b: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  issue254 lazy: OK [unordered-containers]  issue254 strict: OK [unordered-containers]  issue379 [unordered-containers]  Lazy.unionWith: OK [unordered-containers]  union: OK [unordered-containers]  Strict.unionWith: OK [unordered-containers]  Strict.unionWithKey: OK [unordered-containers]  issue381 [unordered-containers]  mapMaybe: OK [unordered-containers]  mapMaybeWithKey: OK [unordered-containers]  issue382: OK [unordered-containers]  issue383: OK [unordered-containers]  issue420: OK [unordered-containers]  issue491 [unordered-containers]  1: OK [unordered-containers]  2: OK [unordered-containers]  3: OK [unordered-containers]  Strictness [unordered-containers]  HashMap.Strict [unordered-containers]  singleton is key-strict: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  singleton is value-strict: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  member is key-strict: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  lookup is key-strict: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  lookupDefault is key-strict: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  findWithDefault is key-strict: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  ! is key-strict: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  delete is key-strict: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  adjust is key-strict: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  adjust is value-strict: OK (0.01s) [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  insert is key-strict: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  insert is value-strict: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  insertWith is key-strict: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  insertWith is value-strict: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  fromList is key-strict: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  fromList is value-strict: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  fromListWith is key-strict: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  fromListWith is value-strict: OK [unordered-containers]  +++ OK, passed 100 tests. [unordered-containers]  [unordered-containers] All 257 tests passed (0.48s) [unordered-containers] Test suite unordered-containers-tests: PASS [unordered-containers] Test suite logged to: [unordered-containers] dist/test/unordered-containers-0.2.20.1-unordered-containers-tests.log [unordered-containers] 1 of 1 test suites (1 of 1 test cases) passed. [unordered-containers] Phase: haddockPhase [unordered-containers] Preprocessing library for unordered-containers-0.2.20.1... [unordered-containers] Running Haddock on library for unordered-containers-0.2.20.1... [unordered-containers] Data/HashMap/Internal.hs:12:14-23: warning: []8;;https://errors.haskell.org/messages/GHC-53692\GHC-53692]8;;\] [-Wdeprecated-flags] [unordered-containers]  -XTypeInType is deprecated: use -XDataKinds and -XPolyKinds instead [unordered-containers]  | [unordered-containers] 12 | {-# LANGUAGE TypeInType #-} [unordered-containers]  | ^^^^^^^^^^ [unordered-containers]  [unordered-containers] [1 of 9] Compiling Data.HashMap.Internal.Array ( Data/HashMap/Internal/Array.hs, nothing ) [Flags changed] [unordered-containers] Data/HashMap/Internal/Array.hs:83:1-35: warning: []8;;https://errors.haskell.org/messages/GHC-66111\GHC-66111]8;;\] [-Wunused-imports] [unordered-containers]  The import of ‘Control.Applicative’ is redundant [unordered-containers]  except perhaps to import instances from ‘Control.Applicative’ [unordered-containers]  To import instances alone, use: import Control.Applicative() [unordered-containers]  | [unordered-containers] 83 | import Control.Applicative (liftA2) [unordered-containers]  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [unordered-containers]  [unordered-containers] Data/HashMap/Internal/Array.hs:162:20-43: warning: []8;;https://errors.haskell.org/messages/GHC-68441\GHC-68441]8;;\] [-Wdeprecations] [unordered-containers]  In the use of ‘sizeofSmallMutableArray#’ [unordered-containers]  (imported from GHC.Exts, but defined in GHC.Prim): [unordered-containers]  Deprecated: " Use 'getSizeofSmallMutableArray#' instead " [unordered-containers]  | [unordered-containers] 162 | lengthM mary = I# (sizeofSmallMutableArray# (unMArray mary)) [unordered-containers]  | ^^^^^^^^^^^^^^^^^^^^^^^^ [unordered-containers]  [unordered-containers] [2 of 9] Compiling Data.HashMap.Internal.List ( Data/HashMap/Internal/List.hs, nothing ) [Flags changed] [unordered-containers] [3 of 9] Compiling Data.HashMap.Internal ( Data/HashMap/Internal.hs, nothing ) [Flags changed] [unordered-containers] [4 of 9] Compiling Data.HashMap.Internal.Debug ( Data/HashMap/Internal/Debug.hs, nothing ) [Flags changed] [unordered-containers] [5 of 9] Compiling Data.HashMap.Internal.Strict ( Data/HashMap/Internal/Strict.hs, nothing ) [Flags changed] [unordered-containers] [6 of 9] Compiling Data.HashSet.Internal ( Data/HashSet/Internal.hs, nothing ) [Flags changed] [unordered-containers] [7 of 9] Compiling Data.HashSet ( Data/HashSet.hs, nothing ) [Flags changed] [unordered-containers] [8 of 9] Compiling Data.HashMap.Strict ( Data/HashMap/Strict.hs, nothing ) [Flags changed] [unordered-containers] [9 of 9] Compiling Data.HashMap.Lazy ( Data/HashMap/Lazy.hs, nothing ) [Flags changed] [unordered-containers] Haddock coverage: [unordered-containers]  33% ( 16 / 48) in 'Data.HashMap.Internal.Array' [unordered-containers]  Missing documentation for: [unordered-containers]  Array (Data/HashMap/Internal/Array.hs:125) [unordered-containers]  MArray (Data/HashMap/Internal/Array.hs:157) [unordered-containers]  new_ (Data/HashMap/Internal/Array.hs:208) [unordered-containers]  singleton (Data/HashMap/Internal/Array.hs:225) [unordered-containers]  singletonM (Data/HashMap/Internal/Array.hs:229) [unordered-containers]  snoc (Data/HashMap/Internal/Array.hs:233) [unordered-containers]  pair (Data/HashMap/Internal/Array.hs:242) [unordered-containers]  length (Data/HashMap/Internal/Array.hs:154) [unordered-containers]  lengthM (Data/HashMap/Internal/Array.hs:162) [unordered-containers]  read (Data/HashMap/Internal/Array.hs:249) [unordered-containers]  write (Data/HashMap/Internal/Array.hs:255) [unordered-containers]  index (Data/HashMap/Internal/Array.hs:262) [unordered-containers]  indexM (Data/HashMap/Internal/Array.hs:274) [unordered-containers]  index# (Data/HashMap/Internal/Array.hs:268) [unordered-containers]  sameArray1 (Data/HashMap/Internal/Array.hs:140) [unordered-containers]  unsafeFreeze (Data/HashMap/Internal/Array.hs:280) [unordered-containers]  unsafeThaw (Data/HashMap/Internal/Array.hs:286) [unordered-containers]  unsafeSameArray (Data/HashMap/Internal/Array.hs:136) [unordered-containers]  run (Data/HashMap/Internal/Array.hs:292) [unordered-containers]  cloneM (Data/HashMap/Internal/Array.hs:314) [unordered-containers]  foldl (Data/HashMap/Internal/Array.hs:404) [unordered-containers]  foldl' (Data/HashMap/Internal/Array.hs:375) [unordered-containers]  foldr (Data/HashMap/Internal/Array.hs:394) [unordered-containers]  foldr' (Data/HashMap/Internal/Array.hs:385) [unordered-containers]  foldMap (Data/HashMap/Internal/Array.hs:417) [unordered-containers]  thaw (Data/HashMap/Internal/Array.hs:436) [unordered-containers]  map (Data/HashMap/Internal/Array.hs:461) [unordered-containers]  traverse (Data/HashMap/Internal/Array.hs:537) [unordered-containers]  traverse' (Data/HashMap/Internal/Array.hs:553) [unordered-containers]  toList (Data/HashMap/Internal/Array.hs:529) [unordered-containers]  fromList (Data/HashMap/Internal/Array.hs:494) [unordered-containers]  fromList' (Data/HashMap/Internal/Array.hs:506) [unordered-containers]  25% ( 1 / 4) in 'Data.HashMap.Internal.List' [unordered-containers]  Missing documentation for: [unordered-containers]  isPermutationBy (Data/HashMap/Internal/List.hs:40) [unordered-containers]  deleteBy (Data/HashMap/Internal/List.hs:83) [unordered-containers]  unorderedCompare (Data/HashMap/Internal/List.hs:68) [unordered-containers] Warning: 'at' is out of scope. [unordered-containers]  If you qualify the identifier, haddock can try to link it anyway. [unordered-containers] Warning: 'Leaf' is ambiguous. It is defined [unordered-containers]  * at Data/HashMap/Internal.hs:227:7 [unordered-containers]  * at Data/HashMap/Internal.hs:187:1 [unordered-containers]  You may be able to disambiguate the identifier by qualifying it or [unordered-containers]  by specifying the type/value namespace explicitly. [unordered-containers]  Defaulting to the one defined at Data/HashMap/Internal.hs:187:1 [unordered-containers]  88% ( 93 /105) in 'Data.HashMap.Internal' [unordered-containers]  Missing documentation for: [unordered-containers]  Leaf (Data/HashMap/Internal.hs:187) [unordered-containers]  intersectionWithKey# (Data/HashMap/Internal.hs:1859) [unordered-containers]  updateOrConcatWithKey (Data/HashMap/Internal.hs:2373) [unordered-containers]  equalKeys (Data/HashMap/Internal.hs:513) [unordered-containers]  equalKeys1 (Data/HashMap/Internal.hs:497) [unordered-containers]  lookupRecordCollision (Data/HashMap/Internal.hs:680) [unordered-containers]  LookupRes (Data/HashMap/Internal.hs:659) [unordered-containers]  lookupResToMaybe (Data/HashMap/Internal.hs:662) [unordered-containers]  insert' (Data/HashMap/Internal.hs:808) [unordered-containers]  delete' (Data/HashMap/Internal.hs:1126) [unordered-containers]  insertNewKey (Data/HashMap/Internal.hs:850) [unordered-containers]  insertKeyExists (Data/HashMap/Internal.hs:885) [unordered-containers]  50% ( 3 / 6) in 'Data.HashMap.Internal.Debug' [unordered-containers]  Missing documentation for: [unordered-containers]  valid (Data/HashMap/Internal/Debug.hs:98) [unordered-containers]  Validity (Data/HashMap/Internal/Debug.hs:43) [unordered-containers]  SubHashPath (Data/HashMap/Internal/Debug.hs:75) [unordered-containers] Warning: 'lookup' is out of scope. [unordered-containers]  If you qualify the identifier, haddock can try to link it anyway. [unordered-containers] Warning: 'at' is out of scope. [unordered-containers]  If you qualify the identifier, haddock can try to link it anyway. [unordered-containers]  100% ( 67 / 67) in 'Data.HashMap.Internal.Strict' [unordered-containers] Warning: 'HashSet' is ambiguous. It is defined [unordered-containers]  * at Data/HashSet/Internal.hs:112:21 [unordered-containers]  * at Data/HashSet/Internal.hs:112:1 [unordered-containers]  You may be able to disambiguate the identifier by qualifying it or [unordered-containers]  by specifying the type/value namespace explicitly. [unordered-containers]  Defaulting to the one defined at Data/HashSet/Internal.hs:112:1 [unordered-containers]  100% ( 35 / 35) in 'Data.HashSet.Internal' [unordered-containers] Warning: 'HashSet' is ambiguous. It is defined [unordered-containers]  * at Data/HashSet/Internal.hs:112:21 [unordered-containers]  * at Data/HashSet/Internal.hs:112:1 [unordered-containers]  You may be able to disambiguate the identifier by qualifying it or [unordered-containers]  by specifying the type/value namespace explicitly. [unordered-containers]  Defaulting to the one defined at Data/HashSet/Internal.hs:112:1 [unordered-containers]  100% ( 32 / 32) in 'Data.HashSet' [unordered-containers]  100% ( 69 / 69) in 'Data.HashMap.Strict' [unordered-containers]  100% ( 69 / 69) in 'Data.HashMap.Lazy' [unordered-containers] Warning: Data.HashMap.Internal: could not find link destinations for: [unordered-containers]  - Data.HashMap.Internal.D:R:ItemHashMap [unordered-containers] Warning: Data.HashMap.Internal.Strict: could not find link destinations for: [unordered-containers]  - Data.HashMap.Internal.D:R:ItemHashMap [unordered-containers] Warning: Data.HashSet.Internal: could not find link destinations for: [unordered-containers]  - Data.HashSet.Internal.D:R:ItemHashSet [unordered-containers] Warning: Data.HashSet: could not find link destinations for: [unordered-containers]  - Data.HashSet.Internal.D:R:ItemHashSet [unordered-containers] Warning: Data.HashMap.Strict: could not find link destinations for: [unordered-containers]  - Data.HashMap.Internal.D:R:ItemHashMap [unordered-containers] Warning: Data.HashMap.Lazy: could not find link destinations for: [unordered-containers]  - Data.HashMap.Internal.D:R:ItemHashMap [unordered-containers] Documentation created: dist/doc/html/unordered-containers, [unordered-containers] dist/doc/html/unordered-containers/unordered-containers.txt [unordered-containers] Preprocessing test suite 'unordered-containers-tests' for unordered-containers-0.2.20.1... [unordered-containers] Phase: installPhase [unordered-containers] Installing library in /nix/store/ni8p0nj55465mk1q3xc74b2h4vy41182-unordered-containers-0.2.20.1/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/unordered-containers-0.2.20.1-3ZsWQAs3PjGLjwQKK8XWLF [unordered-containers] Phase: fixupPhase [unordered-containers] shrinking RPATHs of ELF executables and libraries in /nix/store/ni8p0nj55465mk1q3xc74b2h4vy41182-unordered-containers-0.2.20.1 [unordered-containers] shrinking /nix/store/ni8p0nj55465mk1q3xc74b2h4vy41182-unordered-containers-0.2.20.1/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/libHSunordered-containers-0.2.20.1-3ZsWQAs3PjGLjwQKK8XWLF-ghc9.12.2.so [unordered-containers] checking for references to /build/ in /nix/store/ni8p0nj55465mk1q3xc74b2h4vy41182-unordered-containers-0.2.20.1... [unordered-containers] patching script interpreter paths in /nix/store/ni8p0nj55465mk1q3xc74b2h4vy41182-unordered-containers-0.2.20.1 [unordered-containers] stripping (with command strip and flags -S -p) in /nix/store/ni8p0nj55465mk1q3xc74b2h4vy41182-unordered-containers-0.2.20.1/lib [unordered-containers] shrinking RPATHs of ELF executables and libraries in /nix/store/r8fiibcxm6cb3mgmz9mrnfxcsnwnswch-unordered-containers-0.2.20.1-doc [unordered-containers] checking for references to /build/ in /nix/store/r8fiibcxm6cb3mgmz9mrnfxcsnwnswch-unordered-containers-0.2.20.1-doc... [unordered-containers] patching script interpreter paths in /nix/store/r8fiibcxm6cb3mgmz9mrnfxcsnwnswch-unordered-containers-0.2.20.1-doc [unordered-containers:post-build] Uploading to cachix cache "sellout": /nix/store/ni8p0nj55465mk1q3xc74b2h4vy41182-unordered-containers-0.2.20.1 /nix/store/r8fiibcxm6cb3mgmz9mrnfxcsnwnswch-unordered-containers-0.2.20.1-doc [unordered-containers:post-build] Pushing 2 paths (72 are already present) using zstd to cache sellout ⏳ [unordered-containers:post-build]  [unordered-containers:post-build] Pushing /nix/store/r8fiibcxm6cb3mgmz9mrnfxcsnwnswch-unordered-containers-0.2.20.1-doc (4.47 MiB) [unordered-containers:post-build] Pushing /nix/store/ni8p0nj55465mk1q3xc74b2h4vy41182-unordered-containers-0.2.20.1 (9.81 MiB) [unordered-containers:post-build]  [unordered-containers:post-build] All done. [unordered-containers:post-build] Uploading to the NixCI cache: /nix/store/ni8p0nj55465mk1q3xc74b2h4vy41182-unordered-containers-0.2.20.1 /nix/store/r8fiibcxm6cb3mgmz9mrnfxcsnwnswch-unordered-containers-0.2.20.1-doc [unordered-containers:post-build] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [unordered-containers:post-build] copying 2 paths... [unordered-containers:post-build] copying path '/nix/store/r8fiibcxm6cb3mgmz9mrnfxcsnwnswch-unordered-containers-0.2.20.1-doc' to 'https://cache.nix-ci.com'... [unordered-containers:post-build] copying path '/nix/store/ni8p0nj55465mk1q3xc74b2h4vy41182-unordered-containers-0.2.20.1' to 'https://cache.nix-ci.com'... [unordered-containers:post-build] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [unordered-containers:post-build] copying 1 paths... [unordered-containers:post-build] copying path '/nix/store/2ivbb618b8h11ny2wdx7qjywgjg4d7kb-unordered-containers-0.2.20.1.drv' to 'https://cache.nix-ci.com'... Progress: 6 of 14 built, 43 of 43 downloaded from cache Building /nix/store/hfkq61j8kik6qx530limn8vwv0l9ch00-quickcheck-instances-0.3.33.drv [quickcheck-instances] Phase: setupCompilerEnvironmentPhase [quickcheck-instances] Build with /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2. [quickcheck-instances] Phase: unpackPhase [quickcheck-instances] unpacking source archive /nix/store/ix9xgbag8470whifn4mzlsji4yz8vrc1-quickcheck-instances-0.3.33.tar.gz [quickcheck-instances] source root is quickcheck-instances-0.3.33 [quickcheck-instances] setting SOURCE_DATE_EPOCH to timestamp 1000000000 of file "quickcheck-instances-0.3.33/test/Tests.hs" [quickcheck-instances] Phase: patchPhase [quickcheck-instances] Replace Cabal file with edited version from mirror://hackage/quickcheck-instances-0.3.33/revision/1.cabal. [quickcheck-instances] Phase: compileBuildDriverPhase [quickcheck-instances] setupCompileFlags: -package-db=/build/tmp.EYbvXgwUsr/setup-package.conf.d -threaded [quickcheck-instances] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.EYbvXgwUsr/Main.o ) [quickcheck-instances] [2 of 2] Linking Setup [quickcheck-instances] Phase: updateAutotoolsGnuConfigScriptsPhase [quickcheck-instances] Phase: configurePhase [quickcheck-instances] configureFlags: --verbose --prefix=/nix/store/a9s4vyzamw9gnq0np45rdkkns7az0wv9-quickcheck-instances-0.3.33 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/nix/store/xndiwna5pq7grxcwmyk3l3p0a00lj8d3-quickcheck-instances-0.3.33-doc/share/doc/quickcheck-instances-0.3.33 --with-gcc=gcc --package-db=/build/tmp.EYbvXgwUsr/package.conf.d --ghc-option=-j16 --ghc-option=+RTS --ghc-option=-A64M --ghc-option=-RTS --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --enable-static --disable-executable-dynamic --enable-tests --disable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-option=-haddock --extra-lib-dirs=/nix/store/ffyzkisqs4vc4mg28bwwlyqjf8i9ph6b-ncurses-6.5/lib --extra-lib-dirs=/nix/store/n28qgdj8c1q41kf7n4y1jxa6ckp85m3c-libffi-3.5.2/lib --extra-lib-dirs=/nix/store/1b6h99dw7bk4wbn77kbalih42zbc67m1-elfutils-0.194/lib --extra-lib-dirs=/nix/store/hi0ar880110k6jsmmili7dh1gq3cg2a9-gmp-with-cxx-6.3.0/lib --extra-lib-dirs=/nix/store/g09cflpnp4g80q56sj9dng1qzv4v4ybc-numactl-2.0.18/lib [quickcheck-instances] Using Parsec parser [quickcheck-instances] Configuring quickcheck-instances-0.3.33... [quickcheck-instances] Warning: Unknown/unsupported 'ghc' version detected (Cabal 3.14.1.0 supports [quickcheck-instances] 'ghc' version < 9.12): [quickcheck-instances] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc is version [quickcheck-instances] 9.12.2 [quickcheck-instances] Dependency OneTuple >=0.4.2 && <0.5: using OneTuple-0.4.2 [quickcheck-instances] Dependency QuickCheck >=2.14.2 && <2.16.1: using QuickCheck-2.15.0.1 [quickcheck-instances] Dependency array >=0.5.3.0 && <0.6: using array-0.5.8.0 [quickcheck-instances] Dependency base >=4.12.0.0 && <4.22: using base-4.21.0.0 [quickcheck-instances] Dependency bytestring >=0.10.8.2 && <0.13: using bytestring-0.12.2.0 [quickcheck-instances] Dependency case-insensitive >=1.2.0.11 && <1.3: using case-insensitive-1.2.1.0 [quickcheck-instances] Dependency containers >=0.6.0.1 && <0.8: using containers-0.7 [quickcheck-instances] Dependency data-fix >=0.3 && <0.4: using data-fix-0.3.4 [quickcheck-instances] Dependency hashable >=1.4.4.0 && <1.6: using hashable-1.5.0.0 [quickcheck-instances] Dependency integer-logarithms >=1.0.3.1 && <1.1: using [quickcheck-instances] integer-logarithms-1.0.4 [quickcheck-instances] Dependency old-time >=1.1.0.0 && <1.2: using old-time-1.1.0.4 [quickcheck-instances] Dependency primitive >=0.9.0.0 && <0.10: using primitive-0.9.1.0 [quickcheck-instances] Dependency scientific >=0.3.8.0 && <0.4: using scientific-0.3.8.0 [quickcheck-instances] Dependency splitmix >=0.1.0.5 && <0.2: using splitmix-0.1.3.1 [quickcheck-instances] Dependency strict >=0.5 && <0.6: using strict-0.5.1 [quickcheck-instances] Dependency tagged >=0.8.8 && <0.9: using tagged-0.8.9 [quickcheck-instances] Dependency text >=1.2.3.0 && <1.3 || >=2.0 && <2.2: using text-2.1.2 [quickcheck-instances] Dependency text-short >=0.1.4 && <0.2: using text-short-0.1.6 [quickcheck-instances] Dependency these >=1.2.1 && <1.3: using these-1.2.1 [quickcheck-instances] Dependency time-compat >=1.9.4 && <1.10: using time-compat-1.9.8 [quickcheck-instances] Dependency transformers >=0.5.6.2 && <0.7: using transformers-0.6.1.2 [quickcheck-instances] Dependency unordered-containers >=0.2.20 && <0.3: using [quickcheck-instances] unordered-containers-0.2.20.1 [quickcheck-instances] Dependency uuid-types >=1.0.6 && <1.1: using uuid-types-1.0.6 [quickcheck-instances] Dependency vector >=0.13.2.0 && <0.14: using vector-0.13.2.0 [quickcheck-instances] Dependency QuickCheck: using QuickCheck-2.15.0.1 [quickcheck-instances] Dependency base: using base-4.21.0.0 [quickcheck-instances] Dependency containers: using containers-0.7 [quickcheck-instances] Dependency primitive: using primitive-0.9.1.0 [quickcheck-instances] Dependency quickcheck-instances: using quickcheck-instances-0.3.33 [quickcheck-instances] Dependency tagged: using tagged-0.8.9 [quickcheck-instances] Dependency uuid-types: using uuid-types-1.0.6 [quickcheck-instances] Source component graph: [quickcheck-instances]  component lib [quickcheck-instances]  component test:self-test dependency lib [quickcheck-instances] Configured component graph: [quickcheck-instances]  component quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw [quickcheck-instances]  include OneTuple-0.4.2-9yUF7jGnYxaAECoDfDC9gZ [quickcheck-instances]  include QuickCheck-2.15.0.1-4a6QuHFK3EgHKorV6DzjdR [quickcheck-instances]  include array-0.5.8.0-d6d4 [quickcheck-instances]  include base-4.21.0.0-b334 [quickcheck-instances]  include bytestring-0.12.2.0-0cf8 [quickcheck-instances]  include case-insensitive-1.2.1.0-D0PevEiW49I9bqJrOtUHkS [quickcheck-instances]  include containers-0.7-d79e [quickcheck-instances]  include data-fix-0.3.4-LXjketSEK22HJBNry0yp7m [quickcheck-instances]  include hashable-1.5.0.0-LjYCr2INJa96D1zV0qVgRV [quickcheck-instances]  include integer-logarithms-1.0.4-CGEBnVdocb1FsiJy43VXnU [quickcheck-instances]  include old-time-1.1.0.4-4mhjMFh8CF1AsdPcX1m5yD [quickcheck-instances]  include primitive-0.9.1.0-GUZ9pmn8oTWdoWsH4TBO0 [quickcheck-instances]  include scientific-0.3.8.0-Hj5LPtVmr86Dete6DVIqoE [quickcheck-instances]  include splitmix-0.1.3.1-7dKiUNzaWtvEJHSk7DLUx [quickcheck-instances]  include strict-0.5.1-FibWDv1dbC3CqfeTsaTydO [quickcheck-instances]  include tagged-0.8.9-ATKtHawvD517H9kbujx1cx [quickcheck-instances]  include text-2.1.2-e822 [quickcheck-instances]  include text-short-0.1.6-A5U4MHwbAcn3oDMToCfxcX [quickcheck-instances]  include these-1.2.1-75zmMVeYMwmCe5t578HOX6 [quickcheck-instances]  include time-compat-1.9.8-586fbicX6a7IyVf7sZmFEK [quickcheck-instances]  include transformers-0.6.1.2-2558 [quickcheck-instances]  include unordered-containers-0.2.20.1-3ZsWQAs3PjGLjwQKK8XWLF [quickcheck-instances]  include uuid-types-1.0.6-3rbqfPylLliGtuVkIKa2od [quickcheck-instances]  include vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH [quickcheck-instances]  component quickcheck-instances-0.3.33-AnqMYWA5uZpHQqiCilE1uL-self-test [quickcheck-instances]  include QuickCheck-2.15.0.1-4a6QuHFK3EgHKorV6DzjdR [quickcheck-instances]  include base-4.21.0.0-b334 [quickcheck-instances]  include containers-0.7-d79e [quickcheck-instances]  include primitive-0.9.1.0-GUZ9pmn8oTWdoWsH4TBO0 [quickcheck-instances]  include quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw [quickcheck-instances]  include tagged-0.8.9-ATKtHawvD517H9kbujx1cx [quickcheck-instances]  include uuid-types-1.0.6-3rbqfPylLliGtuVkIKa2od [quickcheck-instances] Linked component graph: [quickcheck-instances]  unit quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw [quickcheck-instances]  include OneTuple-0.4.2-9yUF7jGnYxaAECoDfDC9gZ [quickcheck-instances]  include QuickCheck-2.15.0.1-4a6QuHFK3EgHKorV6DzjdR [quickcheck-instances]  include array-0.5.8.0-d6d4 [quickcheck-instances]  include base-4.21.0.0-b334 [quickcheck-instances]  include bytestring-0.12.2.0-0cf8 [quickcheck-instances]  include case-insensitive-1.2.1.0-D0PevEiW49I9bqJrOtUHkS [quickcheck-instances]  include containers-0.7-d79e [quickcheck-instances]  include data-fix-0.3.4-LXjketSEK22HJBNry0yp7m [quickcheck-instances]  include hashable-1.5.0.0-LjYCr2INJa96D1zV0qVgRV [quickcheck-instances]  include integer-logarithms-1.0.4-CGEBnVdocb1FsiJy43VXnU [quickcheck-instances]  include old-time-1.1.0.4-4mhjMFh8CF1AsdPcX1m5yD [quickcheck-instances]  include primitive-0.9.1.0-GUZ9pmn8oTWdoWsH4TBO0 [quickcheck-instances]  include scientific-0.3.8.0-Hj5LPtVmr86Dete6DVIqoE [quickcheck-instances]  include splitmix-0.1.3.1-7dKiUNzaWtvEJHSk7DLUx [quickcheck-instances]  include strict-0.5.1-FibWDv1dbC3CqfeTsaTydO [quickcheck-instances]  include tagged-0.8.9-ATKtHawvD517H9kbujx1cx [quickcheck-instances]  include text-2.1.2-e822 [quickcheck-instances]  include text-short-0.1.6-A5U4MHwbAcn3oDMToCfxcX [quickcheck-instances]  include these-1.2.1-75zmMVeYMwmCe5t578HOX6 [quickcheck-instances]  include time-compat-1.9.8-586fbicX6a7IyVf7sZmFEK [quickcheck-instances]  include transformers-0.6.1.2-2558 [quickcheck-instances]  include unordered-containers-0.2.20.1-3ZsWQAs3PjGLjwQKK8XWLF [quickcheck-instances]  include uuid-types-1.0.6-3rbqfPylLliGtuVkIKa2od [quickcheck-instances]  include vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH [quickcheck-instances]  Test.QuickCheck.Instances=quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw:Test.QuickCheck.Instances,Test.QuickCheck.Instances.Array=quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw:Test.QuickCheck.Instances.Array,Test.QuickCheck.Instances.Array.Byte=quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw:Test.QuickCheck.Instances.Array.Byte,Test.QuickCheck.Instances.ByteString=quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw:Test.QuickCheck.Instances.ByteString,Test.QuickCheck.Instances.CaseInsensitive=quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw:Test.QuickCheck.Instances.CaseInsensitive,Test.QuickCheck.Instances.Containers=quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw:Test.QuickCheck.Instances.Containers,Test.QuickCheck.Instances.DataFix=quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw:Test.QuickCheck.Instances.DataFix,Test.QuickCheck.Instances.Hashable=quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw:Test.QuickCheck.Instances.Hashable,Test.QuickCheck.Instances.Natural=quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw:Test.QuickCheck.Instances.Natural,Test.QuickCheck.Instances.OldTime=quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw:Test.QuickCheck.Instances.OldTime,Test.QuickCheck.Instances.Primitive=quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw:Test.QuickCheck.Instances.Primitive,Test.QuickCheck.Instances.Scientific=quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw:Test.QuickCheck.Instances.Scientific,Test.QuickCheck.Instances.Semigroup=quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw:Test.QuickCheck.Instances.Semigroup,Test.QuickCheck.Instances.Solo=quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw:Test.QuickCheck.Instances.Solo,Test.QuickCheck.Instances.Strict=quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw:Test.QuickCheck.Instances.Strict,Test.QuickCheck.Instances.Tagged=quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw:Test.QuickCheck.Instances.Tagged,Test.QuickCheck.Instances.Text=quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw:Test.QuickCheck.Instances.Text,Test.QuickCheck.Instances.Text.Short=quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw:Test.QuickCheck.Instances.Text.Short,Test.QuickCheck.Instances.These=quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw:Test.QuickCheck.Instances.These,Test.QuickCheck.Instances.Time=quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw:Test.QuickCheck.Instances.Time,Test.QuickCheck.Instances.Transformer=quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw:Test.QuickCheck.Instances.Transformer,Test.QuickCheck.Instances.UUID=quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw:Test.QuickCheck.Instances.UUID,Test.QuickCheck.Instances.UnorderedContainers=quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw:Test.QuickCheck.Instances.UnorderedContainers,Test.QuickCheck.Instances.Vector=quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw:Test.QuickCheck.Instances.Vector,Test.QuickCheck.Instances.Void=quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw:Test.QuickCheck.Instances.Void [quickcheck-instances]  unit quickcheck-instances-0.3.33-AnqMYWA5uZpHQqiCilE1uL-self-test [quickcheck-instances]  include QuickCheck-2.15.0.1-4a6QuHFK3EgHKorV6DzjdR [quickcheck-instances]  include base-4.21.0.0-b334 [quickcheck-instances]  include containers-0.7-d79e [quickcheck-instances]  include primitive-0.9.1.0-GUZ9pmn8oTWdoWsH4TBO0 [quickcheck-instances]  include quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw [quickcheck-instances]  include tagged-0.8.9-ATKtHawvD517H9kbujx1cx [quickcheck-instances]  include uuid-types-1.0.6-3rbqfPylLliGtuVkIKa2od [quickcheck-instances] Ready component graph: [quickcheck-instances]  definite quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw [quickcheck-instances]  depends OneTuple-0.4.2-9yUF7jGnYxaAECoDfDC9gZ [quickcheck-instances]  depends QuickCheck-2.15.0.1-4a6QuHFK3EgHKorV6DzjdR [quickcheck-instances]  depends array-0.5.8.0-d6d4 [quickcheck-instances]  depends base-4.21.0.0-b334 [quickcheck-instances]  depends bytestring-0.12.2.0-0cf8 [quickcheck-instances]  depends case-insensitive-1.2.1.0-D0PevEiW49I9bqJrOtUHkS [quickcheck-instances]  depends containers-0.7-d79e [quickcheck-instances]  depends data-fix-0.3.4-LXjketSEK22HJBNry0yp7m [quickcheck-instances]  depends hashable-1.5.0.0-LjYCr2INJa96D1zV0qVgRV [quickcheck-instances]  depends integer-logarithms-1.0.4-CGEBnVdocb1FsiJy43VXnU [quickcheck-instances]  depends old-time-1.1.0.4-4mhjMFh8CF1AsdPcX1m5yD [quickcheck-instances]  depends primitive-0.9.1.0-GUZ9pmn8oTWdoWsH4TBO0 [quickcheck-instances]  depends scientific-0.3.8.0-Hj5LPtVmr86Dete6DVIqoE [quickcheck-instances]  depends splitmix-0.1.3.1-7dKiUNzaWtvEJHSk7DLUx [quickcheck-instances]  depends strict-0.5.1-FibWDv1dbC3CqfeTsaTydO [quickcheck-instances]  depends tagged-0.8.9-ATKtHawvD517H9kbujx1cx [quickcheck-instances]  depends text-2.1.2-e822 [quickcheck-instances]  depends text-short-0.1.6-A5U4MHwbAcn3oDMToCfxcX [quickcheck-instances]  depends these-1.2.1-75zmMVeYMwmCe5t578HOX6 [quickcheck-instances]  depends time-compat-1.9.8-586fbicX6a7IyVf7sZmFEK [quickcheck-instances]  depends transformers-0.6.1.2-2558 [quickcheck-instances]  depends unordered-containers-0.2.20.1-3ZsWQAs3PjGLjwQKK8XWLF [quickcheck-instances]  depends uuid-types-1.0.6-3rbqfPylLliGtuVkIKa2od [quickcheck-instances]  depends vector-0.13.2.0-3c84fuk6GiA8DWmjwoyPqH [quickcheck-instances]  definite quickcheck-instances-0.3.33-AnqMYWA5uZpHQqiCilE1uL-self-test [quickcheck-instances]  depends QuickCheck-2.15.0.1-4a6QuHFK3EgHKorV6DzjdR [quickcheck-instances]  depends base-4.21.0.0-b334 [quickcheck-instances]  depends containers-0.7-d79e [quickcheck-instances]  depends primitive-0.9.1.0-GUZ9pmn8oTWdoWsH4TBO0 [quickcheck-instances]  depends quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw [quickcheck-instances]  depends tagged-0.8.9-ATKtHawvD517H9kbujx1cx [quickcheck-instances]  depends uuid-types-1.0.6-3rbqfPylLliGtuVkIKa2od [quickcheck-instances] Using Cabal-3.14.1.0 compiled by ghc-9.12 [quickcheck-instances] Using compiler: ghc-9.12.2 [quickcheck-instances] Using install prefix: [quickcheck-instances] /nix/store/a9s4vyzamw9gnq0np45rdkkns7az0wv9-quickcheck-instances-0.3.33 [quickcheck-instances] Executables installed in: [quickcheck-instances] /nix/store/a9s4vyzamw9gnq0np45rdkkns7az0wv9-quickcheck-instances-0.3.33/bin [quickcheck-instances] Libraries installed in: [quickcheck-instances] /nix/store/a9s4vyzamw9gnq0np45rdkkns7az0wv9-quickcheck-instances-0.3.33/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw [quickcheck-instances] Dynamic Libraries installed in: [quickcheck-instances] /nix/store/a9s4vyzamw9gnq0np45rdkkns7az0wv9-quickcheck-instances-0.3.33/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3 [quickcheck-instances] Private executables installed in: [quickcheck-instances] /nix/store/a9s4vyzamw9gnq0np45rdkkns7az0wv9-quickcheck-instances-0.3.33/libexec/x86_64-linux-ghc-9.12.2-82d3/quickcheck-instances-0.3.33 [quickcheck-instances] Data files installed in: [quickcheck-instances] /nix/store/a9s4vyzamw9gnq0np45rdkkns7az0wv9-quickcheck-instances-0.3.33/share/x86_64-linux-ghc-9.12.2-82d3/quickcheck-instances-0.3.33 [quickcheck-instances] Documentation installed in: [quickcheck-instances] /nix/store/xndiwna5pq7grxcwmyk3l3p0a00lj8d3-quickcheck-instances-0.3.33-doc/share/doc/quickcheck-instances-0.3.33 [quickcheck-instances] Configuration files installed in: [quickcheck-instances] /nix/store/a9s4vyzamw9gnq0np45rdkkns7az0wv9-quickcheck-instances-0.3.33/etc [quickcheck-instances] No alex found [quickcheck-instances] Using ar found on system at: [quickcheck-instances] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar [quickcheck-instances] No c2hs found [quickcheck-instances] No cpphs found [quickcheck-instances] No doctest found [quickcheck-instances] Using gcc version 14.3.0 given by user at: [quickcheck-instances] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc [quickcheck-instances] Using ghc version 9.12.2 found on system at: [quickcheck-instances] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc [quickcheck-instances] Using ghc-pkg version 9.12.2 found on system at: [quickcheck-instances] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc-pkg-9.12.2 [quickcheck-instances] No ghcjs found [quickcheck-instances] No ghcjs-pkg found [quickcheck-instances] No greencard found [quickcheck-instances] Using haddock version 2.30.0 found on system at: [quickcheck-instances] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/haddock-ghc-9.12.2 [quickcheck-instances] No happy found [quickcheck-instances] No haskell-suite found [quickcheck-instances] No haskell-suite-pkg found [quickcheck-instances] No hmake found [quickcheck-instances] Using hpc version 0.69 found on system at: [quickcheck-instances] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/hpc-ghc-9.12.2 [quickcheck-instances] Using hsc2hs version 0.68.10 found on system at: [quickcheck-instances] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/hsc2hs-ghc-9.12.2 [quickcheck-instances] Using hscolour version 1.25 found on system at: [quickcheck-instances] /nix/store/02s9rad0jn6nj8z96k357im73hkzqsnw-hscolour-1.25/bin/HsColour [quickcheck-instances] No jhc found [quickcheck-instances] Using ld found on system at: [quickcheck-instances] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld [quickcheck-instances] No pkg-config found [quickcheck-instances] Using runghc version 9.12.2 found on system at: [quickcheck-instances] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/runghc-9.12.2 [quickcheck-instances] Using strip version 2.44 found on system at: [quickcheck-instances] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip [quickcheck-instances] Using tar found on system at: [quickcheck-instances] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar [quickcheck-instances] No uhc found [quickcheck-instances] Phase: buildPhase [quickcheck-instances] Preprocessing library for quickcheck-instances-0.3.33... [quickcheck-instances] Building library for quickcheck-instances-0.3.33... [quickcheck-instances] [ 1 of 26] Compiling Test.QuickCheck.Instances.Containers ( src/Test/QuickCheck/Instances/Containers.hs, dist/build/Test/QuickCheck/Instances/Containers.o, dist/build/Test/QuickCheck/Instances/Containers.dyn_o ) [quickcheck-instances] [ 2 of 26] Compiling Test.QuickCheck.Instances.CustomPrelude ( src/Test/QuickCheck/Instances/CustomPrelude.hs, dist/build/Test/QuickCheck/Instances/CustomPrelude.o, dist/build/Test/QuickCheck/Instances/CustomPrelude.dyn_o ) [quickcheck-instances] [ 3 of 26] Compiling Test.QuickCheck.Instances.CaseInsensitive ( src/Test/QuickCheck/Instances/CaseInsensitive.hs, dist/build/Test/QuickCheck/Instances/CaseInsensitive.o, dist/build/Test/QuickCheck/Instances/CaseInsensitive.dyn_o ) [quickcheck-instances] [ 4 of 26] Compiling Test.QuickCheck.Instances.ByteString ( src/Test/QuickCheck/Instances/ByteString.hs, dist/build/Test/QuickCheck/Instances/ByteString.o, dist/build/Test/QuickCheck/Instances/ByteString.dyn_o ) [quickcheck-instances] [ 5 of 26] Compiling Test.QuickCheck.Instances.Array ( src/Test/QuickCheck/Instances/Array.hs, dist/build/Test/QuickCheck/Instances/Array.o, dist/build/Test/QuickCheck/Instances/Array.dyn_o ) [quickcheck-instances] [ 6 of 26] Compiling Test.QuickCheck.Instances.DataFix ( src/Test/QuickCheck/Instances/DataFix.hs, dist/build/Test/QuickCheck/Instances/DataFix.o, dist/build/Test/QuickCheck/Instances/DataFix.dyn_o ) [quickcheck-instances] [ 7 of 26] Compiling Test.QuickCheck.Instances.Hashable ( src/Test/QuickCheck/Instances/Hashable.hs, dist/build/Test/QuickCheck/Instances/Hashable.o, dist/build/Test/QuickCheck/Instances/Hashable.dyn_o ) [quickcheck-instances] [ 8 of 26] Compiling Test.QuickCheck.Instances.Natural ( src/Test/QuickCheck/Instances/Natural.hs, dist/build/Test/QuickCheck/Instances/Natural.o, dist/build/Test/QuickCheck/Instances/Natural.dyn_o ) [quickcheck-instances] [ 9 of 26] Compiling Test.QuickCheck.Instances.OldTime ( src/Test/QuickCheck/Instances/OldTime.hs, dist/build/Test/QuickCheck/Instances/OldTime.o, dist/build/Test/QuickCheck/Instances/OldTime.dyn_o ) [quickcheck-instances] [10 of 26] Compiling Test.QuickCheck.Instances.Primitive ( src/Test/QuickCheck/Instances/Primitive.hs, dist/build/Test/QuickCheck/Instances/Primitive.o, dist/build/Test/QuickCheck/Instances/Primitive.dyn_o ) [quickcheck-instances] [11 of 26] Compiling Test.QuickCheck.Instances.Array.Byte ( src/Test/QuickCheck/Instances/Array/Byte.hs, dist/build/Test/QuickCheck/Instances/Array/Byte.o, dist/build/Test/QuickCheck/Instances/Array/Byte.dyn_o ) [quickcheck-instances] [12 of 26] Compiling Test.QuickCheck.Instances.Scientific ( src/Test/QuickCheck/Instances/Scientific.hs, dist/build/Test/QuickCheck/Instances/Scientific.o, dist/build/Test/QuickCheck/Instances/Scientific.dyn_o ) [quickcheck-instances] [13 of 26] Compiling Test.QuickCheck.Instances.Semigroup ( src/Test/QuickCheck/Instances/Semigroup.hs, dist/build/Test/QuickCheck/Instances/Semigroup.o, dist/build/Test/QuickCheck/Instances/Semigroup.dyn_o ) [quickcheck-instances] [14 of 26] Compiling Test.QuickCheck.Instances.Solo ( src/Test/QuickCheck/Instances/Solo.hs, dist/build/Test/QuickCheck/Instances/Solo.o, dist/build/Test/QuickCheck/Instances/Solo.dyn_o ) [quickcheck-instances] [15 of 26] Compiling Test.QuickCheck.Instances.Strict ( src/Test/QuickCheck/Instances/Strict.hs, dist/build/Test/QuickCheck/Instances/Strict.o, dist/build/Test/QuickCheck/Instances/Strict.dyn_o ) [quickcheck-instances] [16 of 26] Compiling Test.QuickCheck.Instances.Tagged ( src/Test/QuickCheck/Instances/Tagged.hs, dist/build/Test/QuickCheck/Instances/Tagged.o, dist/build/Test/QuickCheck/Instances/Tagged.dyn_o ) [quickcheck-instances] [17 of 26] Compiling Test.QuickCheck.Instances.Text ( src/Test/QuickCheck/Instances/Text.hs, dist/build/Test/QuickCheck/Instances/Text.o, dist/build/Test/QuickCheck/Instances/Text.dyn_o ) [quickcheck-instances] [18 of 26] Compiling Test.QuickCheck.Instances.Text.Short ( src/Test/QuickCheck/Instances/Text/Short.hs, dist/build/Test/QuickCheck/Instances/Text/Short.o, dist/build/Test/QuickCheck/Instances/Text/Short.dyn_o ) [quickcheck-instances] [19 of 26] Compiling Test.QuickCheck.Instances.These ( src/Test/QuickCheck/Instances/These.hs, dist/build/Test/QuickCheck/Instances/These.o, dist/build/Test/QuickCheck/Instances/These.dyn_o ) [quickcheck-instances] [20 of 26] Compiling Test.QuickCheck.Instances.Time ( src/Test/QuickCheck/Instances/Time.hs, dist/build/Test/QuickCheck/Instances/Time.o, dist/build/Test/QuickCheck/Instances/Time.dyn_o ) [quickcheck-instances] [21 of 26] Compiling Test.QuickCheck.Instances.Transformer ( src/Test/QuickCheck/Instances/Transformer.hs, dist/build/Test/QuickCheck/Instances/Transformer.o, dist/build/Test/QuickCheck/Instances/Transformer.dyn_o ) [quickcheck-instances] [22 of 26] Compiling Test.QuickCheck.Instances.UUID ( src/Test/QuickCheck/Instances/UUID.hs, dist/build/Test/QuickCheck/Instances/UUID.o, dist/build/Test/QuickCheck/Instances/UUID.dyn_o ) [quickcheck-instances] [23 of 26] Compiling Test.QuickCheck.Instances.UnorderedContainers ( src/Test/QuickCheck/Instances/UnorderedContainers.hs, dist/build/Test/QuickCheck/Instances/UnorderedContainers.o, dist/build/Test/QuickCheck/Instances/UnorderedContainers.dyn_o ) [quickcheck-instances] [24 of 26] Compiling Test.QuickCheck.Instances.Vector ( src/Test/QuickCheck/Instances/Vector.hs, dist/build/Test/QuickCheck/Instances/Vector.o, dist/build/Test/QuickCheck/Instances/Vector.dyn_o ) [quickcheck-instances] [25 of 26] Compiling Test.QuickCheck.Instances.Void ( src/Test/QuickCheck/Instances/Void.hs, dist/build/Test/QuickCheck/Instances/Void.o, dist/build/Test/QuickCheck/Instances/Void.dyn_o ) [quickcheck-instances] [26 of 26] Compiling Test.QuickCheck.Instances ( src/Test/QuickCheck/Instances.hs, dist/build/Test/QuickCheck/Instances.o, dist/build/Test/QuickCheck/Instances.dyn_o ) [quickcheck-instances] [ 1 of 26] Compiling Test.QuickCheck.Instances.Containers ( src/Test/QuickCheck/Instances/Containers.hs, dist/build/Test/QuickCheck/Instances/Containers.p_o ) [quickcheck-instances] [ 2 of 26] Compiling Test.QuickCheck.Instances.CustomPrelude ( src/Test/QuickCheck/Instances/CustomPrelude.hs, dist/build/Test/QuickCheck/Instances/CustomPrelude.p_o ) [quickcheck-instances] [ 3 of 26] Compiling Test.QuickCheck.Instances.CaseInsensitive ( src/Test/QuickCheck/Instances/CaseInsensitive.hs, dist/build/Test/QuickCheck/Instances/CaseInsensitive.p_o ) [quickcheck-instances] [ 4 of 26] Compiling Test.QuickCheck.Instances.ByteString ( src/Test/QuickCheck/Instances/ByteString.hs, dist/build/Test/QuickCheck/Instances/ByteString.p_o ) [quickcheck-instances] [ 5 of 26] Compiling Test.QuickCheck.Instances.Array ( src/Test/QuickCheck/Instances/Array.hs, dist/build/Test/QuickCheck/Instances/Array.p_o ) [quickcheck-instances] [ 6 of 26] Compiling Test.QuickCheck.Instances.DataFix ( src/Test/QuickCheck/Instances/DataFix.hs, dist/build/Test/QuickCheck/Instances/DataFix.p_o ) [quickcheck-instances] [ 7 of 26] Compiling Test.QuickCheck.Instances.Hashable ( src/Test/QuickCheck/Instances/Hashable.hs, dist/build/Test/QuickCheck/Instances/Hashable.p_o ) [quickcheck-instances] [ 8 of 26] Compiling Test.QuickCheck.Instances.Natural ( src/Test/QuickCheck/Instances/Natural.hs, dist/build/Test/QuickCheck/Instances/Natural.p_o ) [quickcheck-instances] [ 9 of 26] Compiling Test.QuickCheck.Instances.OldTime ( src/Test/QuickCheck/Instances/OldTime.hs, dist/build/Test/QuickCheck/Instances/OldTime.p_o ) [quickcheck-instances] [10 of 26] Compiling Test.QuickCheck.Instances.Primitive ( src/Test/QuickCheck/Instances/Primitive.hs, dist/build/Test/QuickCheck/Instances/Primitive.p_o ) [quickcheck-instances] [11 of 26] Compiling Test.QuickCheck.Instances.Array.Byte ( src/Test/QuickCheck/Instances/Array/Byte.hs, dist/build/Test/QuickCheck/Instances/Array/Byte.p_o ) [quickcheck-instances] [12 of 26] Compiling Test.QuickCheck.Instances.Scientific ( src/Test/QuickCheck/Instances/Scientific.hs, dist/build/Test/QuickCheck/Instances/Scientific.p_o ) [quickcheck-instances] [13 of 26] Compiling Test.QuickCheck.Instances.Semigroup ( src/Test/QuickCheck/Instances/Semigroup.hs, dist/build/Test/QuickCheck/Instances/Semigroup.p_o ) [quickcheck-instances] [14 of 26] Compiling Test.QuickCheck.Instances.Solo ( src/Test/QuickCheck/Instances/Solo.hs, dist/build/Test/QuickCheck/Instances/Solo.p_o ) [quickcheck-instances] [15 of 26] Compiling Test.QuickCheck.Instances.Strict ( src/Test/QuickCheck/Instances/Strict.hs, dist/build/Test/QuickCheck/Instances/Strict.p_o ) [quickcheck-instances] [16 of 26] Compiling Test.QuickCheck.Instances.Tagged ( src/Test/QuickCheck/Instances/Tagged.hs, dist/build/Test/QuickCheck/Instances/Tagged.p_o ) [quickcheck-instances] [17 of 26] Compiling Test.QuickCheck.Instances.Text ( src/Test/QuickCheck/Instances/Text.hs, dist/build/Test/QuickCheck/Instances/Text.p_o ) [quickcheck-instances] [18 of 26] Compiling Test.QuickCheck.Instances.Text.Short ( src/Test/QuickCheck/Instances/Text/Short.hs, dist/build/Test/QuickCheck/Instances/Text/Short.p_o ) [quickcheck-instances] [19 of 26] Compiling Test.QuickCheck.Instances.These ( src/Test/QuickCheck/Instances/These.hs, dist/build/Test/QuickCheck/Instances/These.p_o ) [quickcheck-instances] [20 of 26] Compiling Test.QuickCheck.Instances.Time ( src/Test/QuickCheck/Instances/Time.hs, dist/build/Test/QuickCheck/Instances/Time.p_o ) [quickcheck-instances] [21 of 26] Compiling Test.QuickCheck.Instances.Transformer ( src/Test/QuickCheck/Instances/Transformer.hs, dist/build/Test/QuickCheck/Instances/Transformer.p_o ) [quickcheck-instances] [22 of 26] Compiling Test.QuickCheck.Instances.UUID ( src/Test/QuickCheck/Instances/UUID.hs, dist/build/Test/QuickCheck/Instances/UUID.p_o ) [quickcheck-instances] [23 of 26] Compiling Test.QuickCheck.Instances.UnorderedContainers ( src/Test/QuickCheck/Instances/UnorderedContainers.hs, dist/build/Test/QuickCheck/Instances/UnorderedContainers.p_o ) [quickcheck-instances] [24 of 26] Compiling Test.QuickCheck.Instances.Vector ( src/Test/QuickCheck/Instances/Vector.hs, dist/build/Test/QuickCheck/Instances/Vector.p_o ) [quickcheck-instances] [25 of 26] Compiling Test.QuickCheck.Instances.Void ( src/Test/QuickCheck/Instances/Void.hs, dist/build/Test/QuickCheck/Instances/Void.p_o ) [quickcheck-instances] [26 of 26] Compiling Test.QuickCheck.Instances ( src/Test/QuickCheck/Instances.hs, dist/build/Test/QuickCheck/Instances.p_o ) [quickcheck-instances] Preprocessing test suite 'self-test' for quickcheck-instances-0.3.33... [quickcheck-instances] Building test suite 'self-test' for quickcheck-instances-0.3.33... [quickcheck-instances] [1 of 1] Compiling Main ( test/Tests.hs, dist/build/self-test/self-test-tmp/Main.o ) [quickcheck-instances] [2 of 2] Linking dist/build/self-test/self-test [quickcheck-instances] Phase: checkPhase [quickcheck-instances] Running 1 test suites... [quickcheck-instances] Test suite self-test: RUNNING... [quickcheck-instances] +++ OK, passed 100 tests. [quickcheck-instances] +++ OK, passed 100 tests. [quickcheck-instances] +++ OK, passed 100 tests. [quickcheck-instances] +++ OK, passed 100 tests. [quickcheck-instances] +++ OK, passed 100 tests. [quickcheck-instances] Test suite self-test: PASS [quickcheck-instances] Test suite logged to: dist/test/quickcheck-instances-0.3.33-self-test.log [quickcheck-instances] 1 of 1 test suites (1 of 1 test cases) passed. [quickcheck-instances] Phase: haddockPhase [quickcheck-instances] Preprocessing library for quickcheck-instances-0.3.33... [quickcheck-instances] Running Haddock on library for quickcheck-instances-0.3.33... [quickcheck-instances] Warning: The documentation for the following packages are not installed. No [quickcheck-instances] links will be generated to these packages: vector-0.13.2.0 [quickcheck-instances] [ 1 of 26] Compiling Test.QuickCheck.Instances.Containers ( src/Test/QuickCheck/Instances/Containers.hs, nothing ) [HIE file is missing] [quickcheck-instances] [ 2 of 26] Compiling Test.QuickCheck.Instances.CustomPrelude ( src/Test/QuickCheck/Instances/CustomPrelude.hs, nothing ) [HIE file is missing] [quickcheck-instances] [ 3 of 26] Compiling Test.QuickCheck.Instances.CaseInsensitive ( src/Test/QuickCheck/Instances/CaseInsensitive.hs, nothing ) [HIE file is missing] [quickcheck-instances] [ 4 of 26] Compiling Test.QuickCheck.Instances.ByteString ( src/Test/QuickCheck/Instances/ByteString.hs, nothing ) [HIE file is missing] [quickcheck-instances] [ 5 of 26] Compiling Test.QuickCheck.Instances.Array ( src/Test/QuickCheck/Instances/Array.hs, nothing ) [HIE file is missing] [quickcheck-instances] [ 6 of 26] Compiling Test.QuickCheck.Instances.DataFix ( src/Test/QuickCheck/Instances/DataFix.hs, nothing ) [HIE file is missing] [quickcheck-instances] [ 7 of 26] Compiling Test.QuickCheck.Instances.Hashable ( src/Test/QuickCheck/Instances/Hashable.hs, nothing ) [HIE file is missing] [quickcheck-instances] [ 8 of 26] Compiling Test.QuickCheck.Instances.Natural ( src/Test/QuickCheck/Instances/Natural.hs, nothing ) [HIE file is missing] [quickcheck-instances] [ 9 of 26] Compiling Test.QuickCheck.Instances.OldTime ( src/Test/QuickCheck/Instances/OldTime.hs, nothing ) [HIE file is missing] [quickcheck-instances] [10 of 26] Compiling Test.QuickCheck.Instances.Primitive ( src/Test/QuickCheck/Instances/Primitive.hs, nothing ) [HIE file is missing] [quickcheck-instances] [11 of 26] Compiling Test.QuickCheck.Instances.Array.Byte ( src/Test/QuickCheck/Instances/Array/Byte.hs, nothing ) [HIE file is missing] [quickcheck-instances] [12 of 26] Compiling Test.QuickCheck.Instances.Scientific ( src/Test/QuickCheck/Instances/Scientific.hs, nothing ) [HIE file is missing] [quickcheck-instances] [13 of 26] Compiling Test.QuickCheck.Instances.Semigroup ( src/Test/QuickCheck/Instances/Semigroup.hs, nothing ) [HIE file is missing] [quickcheck-instances] [14 of 26] Compiling Test.QuickCheck.Instances.Solo ( src/Test/QuickCheck/Instances/Solo.hs, nothing ) [HIE file is missing] [quickcheck-instances] [15 of 26] Compiling Test.QuickCheck.Instances.Strict ( src/Test/QuickCheck/Instances/Strict.hs, nothing ) [HIE file is missing] [quickcheck-instances] [16 of 26] Compiling Test.QuickCheck.Instances.Tagged ( src/Test/QuickCheck/Instances/Tagged.hs, nothing ) [HIE file is missing] [quickcheck-instances] [17 of 26] Compiling Test.QuickCheck.Instances.Text ( src/Test/QuickCheck/Instances/Text.hs, nothing ) [HIE file is missing] [quickcheck-instances] [18 of 26] Compiling Test.QuickCheck.Instances.Text.Short ( src/Test/QuickCheck/Instances/Text/Short.hs, nothing ) [HIE file is missing] [quickcheck-instances] [19 of 26] Compiling Test.QuickCheck.Instances.These ( src/Test/QuickCheck/Instances/These.hs, nothing ) [HIE file is missing] [quickcheck-instances] [20 of 26] Compiling Test.QuickCheck.Instances.Time ( src/Test/QuickCheck/Instances/Time.hs, nothing ) [HIE file is missing] [quickcheck-instances] [21 of 26] Compiling Test.QuickCheck.Instances.Transformer ( src/Test/QuickCheck/Instances/Transformer.hs, nothing ) [HIE file is missing] [quickcheck-instances] [22 of 26] Compiling Test.QuickCheck.Instances.UUID ( src/Test/QuickCheck/Instances/UUID.hs, nothing ) [HIE file is missing] [quickcheck-instances] [23 of 26] Compiling Test.QuickCheck.Instances.UnorderedContainers ( src/Test/QuickCheck/Instances/UnorderedContainers.hs, nothing ) [HIE file is missing] [quickcheck-instances] [24 of 26] Compiling Test.QuickCheck.Instances.Vector ( src/Test/QuickCheck/Instances/Vector.hs, nothing ) [HIE file is missing] [quickcheck-instances] [25 of 26] Compiling Test.QuickCheck.Instances.Void ( src/Test/QuickCheck/Instances/Void.hs, nothing ) [HIE file is missing] [quickcheck-instances] [26 of 26] Compiling Test.QuickCheck.Instances ( src/Test/QuickCheck/Instances.hs, nothing ) [HIE file is missing] [quickcheck-instances] Haddock coverage: [quickcheck-instances]  0% ( 0 / 1) in 'Test.QuickCheck.Instances.Containers' [quickcheck-instances]  Missing documentation for: [quickcheck-instances]  Module header [quickcheck-instances]  0% ( 0 / 1) in 'Test.QuickCheck.Instances.CaseInsensitive' [quickcheck-instances]  Missing documentation for: [quickcheck-instances]  Module header [quickcheck-instances]  0% ( 0 / 1) in 'Test.QuickCheck.Instances.ByteString' [quickcheck-instances]  Missing documentation for: [quickcheck-instances]  Module header [quickcheck-instances]  0% ( 0 / 1) in 'Test.QuickCheck.Instances.Array' [quickcheck-instances]  Missing documentation for: [quickcheck-instances]  Module header [quickcheck-instances]  0% ( 0 / 1) in 'Test.QuickCheck.Instances.DataFix' [quickcheck-instances]  Missing documentation for: [quickcheck-instances]  Module header [quickcheck-instances]  0% ( 0 / 1) in 'Test.QuickCheck.Instances.Hashable' [quickcheck-instances]  Missing documentation for: [quickcheck-instances]  Module header [quickcheck-instances]  0% ( 0 / 1) in 'Test.QuickCheck.Instances.Natural' [quickcheck-instances]  Missing documentation for: [quickcheck-instances]  Module header [quickcheck-instances]  0% ( 0 / 1) in 'Test.QuickCheck.Instances.OldTime' [quickcheck-instances]  Missing documentation for: [quickcheck-instances]  Module header [quickcheck-instances]  0% ( 0 / 1) in 'Test.QuickCheck.Instances.Primitive' [quickcheck-instances]  Missing documentation for: [quickcheck-instances]  Module header [quickcheck-instances]  0% ( 0 / 1) in 'Test.QuickCheck.Instances.Array.Byte' [quickcheck-instances]  Missing documentation for: [quickcheck-instances]  Module header [quickcheck-instances]  0% ( 0 / 1) in 'Test.QuickCheck.Instances.Scientific' [quickcheck-instances]  Missing documentation for: [quickcheck-instances]  Module header [quickcheck-instances]  0% ( 0 / 1) in 'Test.QuickCheck.Instances.Semigroup' [quickcheck-instances]  Missing documentation for: [quickcheck-instances]  Module header [quickcheck-instances]  0% ( 0 / 1) in 'Test.QuickCheck.Instances.Solo' [quickcheck-instances]  Missing documentation for: [quickcheck-instances]  Module header [quickcheck-instances]  0% ( 0 / 1) in 'Test.QuickCheck.Instances.Strict' [quickcheck-instances]  Missing documentation for: [quickcheck-instances]  Module header [quickcheck-instances]  0% ( 0 / 1) in 'Test.QuickCheck.Instances.Tagged' [quickcheck-instances]  Missing documentation for: [quickcheck-instances]  Module header [quickcheck-instances]  0% ( 0 / 1) in 'Test.QuickCheck.Instances.Text' [quickcheck-instances]  Missing documentation for: [quickcheck-instances]  Module header [quickcheck-instances]  0% ( 0 / 1) in 'Test.QuickCheck.Instances.Text.Short' [quickcheck-instances]  Missing documentation for: [quickcheck-instances]  Module header [quickcheck-instances]  0% ( 0 / 1) in 'Test.QuickCheck.Instances.These' [quickcheck-instances]  Missing documentation for: [quickcheck-instances]  Module header [quickcheck-instances]  0% ( 0 / 1) in 'Test.QuickCheck.Instances.Time' [quickcheck-instances]  Missing documentation for: [quickcheck-instances]  Module header [quickcheck-instances]  0% ( 0 / 1) in 'Test.QuickCheck.Instances.Transformer' [quickcheck-instances]  Missing documentation for: [quickcheck-instances]  Module header [quickcheck-instances]  0% ( 0 / 1) in 'Test.QuickCheck.Instances.UUID' [quickcheck-instances]  Missing documentation for: [quickcheck-instances]  Module header [quickcheck-instances]  0% ( 0 / 1) in 'Test.QuickCheck.Instances.UnorderedContainers' [quickcheck-instances]  Missing documentation for: [quickcheck-instances]  Module header [quickcheck-instances]  0% ( 0 / 1) in 'Test.QuickCheck.Instances.Vector' [quickcheck-instances]  Missing documentation for: [quickcheck-instances]  Module header [quickcheck-instances]  0% ( 0 / 1) in 'Test.QuickCheck.Instances.Void' [quickcheck-instances]  Missing documentation for: [quickcheck-instances]  Module header [quickcheck-instances]  100% ( 1 / 1) in 'Test.QuickCheck.Instances' [quickcheck-instances] Warning: Test.QuickCheck.Instances.Vector: could not find link destinations for: [quickcheck-instances]  - Data.Vector.Vector [quickcheck-instances]  - Data.Vector.Strict.Vector [quickcheck-instances]  - Data.Vector.Primitive.Vector [quickcheck-instances]  - Data.Vector.Unboxed.Base.Vector [quickcheck-instances]  - Data.Vector.Storable.Vector [quickcheck-instances]  - Data.Vector.Unboxed.Base.Unbox [quickcheck-instances] Documentation created: dist/doc/html/quickcheck-instances, [quickcheck-instances] dist/doc/html/quickcheck-instances/quickcheck-instances.txt [quickcheck-instances] Preprocessing test suite 'self-test' for quickcheck-instances-0.3.33... [quickcheck-instances] Phase: installPhase [quickcheck-instances] Installing library in /nix/store/a9s4vyzamw9gnq0np45rdkkns7az0wv9-quickcheck-instances-0.3.33/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw [quickcheck-instances] Phase: fixupPhase [quickcheck-instances] shrinking RPATHs of ELF executables and libraries in /nix/store/a9s4vyzamw9gnq0np45rdkkns7az0wv9-quickcheck-instances-0.3.33 [quickcheck-instances] shrinking /nix/store/a9s4vyzamw9gnq0np45rdkkns7az0wv9-quickcheck-instances-0.3.33/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/libHSquickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw-ghc9.12.2.so [quickcheck-instances] checking for references to /build/ in /nix/store/a9s4vyzamw9gnq0np45rdkkns7az0wv9-quickcheck-instances-0.3.33... [quickcheck-instances] patching script interpreter paths in /nix/store/a9s4vyzamw9gnq0np45rdkkns7az0wv9-quickcheck-instances-0.3.33 [quickcheck-instances] stripping (with command strip and flags -S -p) in /nix/store/a9s4vyzamw9gnq0np45rdkkns7az0wv9-quickcheck-instances-0.3.33/lib [quickcheck-instances] shrinking RPATHs of ELF executables and libraries in /nix/store/xndiwna5pq7grxcwmyk3l3p0a00lj8d3-quickcheck-instances-0.3.33-doc [quickcheck-instances] checking for references to /build/ in /nix/store/xndiwna5pq7grxcwmyk3l3p0a00lj8d3-quickcheck-instances-0.3.33-doc... [quickcheck-instances] patching script interpreter paths in /nix/store/xndiwna5pq7grxcwmyk3l3p0a00lj8d3-quickcheck-instances-0.3.33-doc [quickcheck-instances:post-build] Uploading to cachix cache "sellout": /nix/store/a9s4vyzamw9gnq0np45rdkkns7az0wv9-quickcheck-instances-0.3.33 /nix/store/xndiwna5pq7grxcwmyk3l3p0a00lj8d3-quickcheck-instances-0.3.33-doc [quickcheck-instances:post-build] Pushing 2 paths (132 are already present) using zstd to cache sellout ⏳ [quickcheck-instances:post-build]  [quickcheck-instances:post-build] Pushing /nix/store/xndiwna5pq7grxcwmyk3l3p0a00lj8d3-quickcheck-instances-0.3.33-doc (1.51 MiB) [quickcheck-instances:post-build] Pushing /nix/store/a9s4vyzamw9gnq0np45rdkkns7az0wv9-quickcheck-instances-0.3.33 (5.62 MiB) [quickcheck-instances:post-build]  [quickcheck-instances:post-build] All done. [quickcheck-instances:post-build] Uploading to the NixCI cache: /nix/store/a9s4vyzamw9gnq0np45rdkkns7az0wv9-quickcheck-instances-0.3.33 /nix/store/xndiwna5pq7grxcwmyk3l3p0a00lj8d3-quickcheck-instances-0.3.33-doc [quickcheck-instances:post-build] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [quickcheck-instances:post-build] copying 2 paths... [quickcheck-instances:post-build] copying path '/nix/store/xndiwna5pq7grxcwmyk3l3p0a00lj8d3-quickcheck-instances-0.3.33-doc' to 'https://cache.nix-ci.com'... [quickcheck-instances:post-build] copying path '/nix/store/a9s4vyzamw9gnq0np45rdkkns7az0wv9-quickcheck-instances-0.3.33' to 'https://cache.nix-ci.com'... [quickcheck-instances:post-build] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [quickcheck-instances:post-build] copying 1 paths... [quickcheck-instances:post-build] copying path '/nix/store/hfkq61j8kik6qx530limn8vwv0l9ch00-quickcheck-instances-0.3.33.drv' to 'https://cache.nix-ci.com'... Progress: 7 of 14 built, 43 of 43 downloaded from cache Building /nix/store/klkin8nnnnj5ykgmlz1f26r6s2ffp1hd-extra-1.8.1.drv [extra] Phase: setupCompilerEnvironmentPhase [extra] Build with /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2. [extra] Phase: unpackPhase [extra] unpacking source archive /nix/store/3nprda3kdyhj8zkmv2z32yi6n0gwc966-extra-1.8.1.tar.gz [extra] source root is extra-1.8.1 [extra] setting SOURCE_DATE_EPOCH to timestamp 1000000000 of file "extra-1.8.1/test/TestUtil.hs" [extra] Phase: patchPhase [extra] Phase: compileBuildDriverPhase [extra] setupCompileFlags: -package-db=/build/tmp.bjkyo5yKpl/setup-package.conf.d -threaded [extra] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.bjkyo5yKpl/Main.o ) [extra] [2 of 2] Linking Setup [extra] Phase: updateAutotoolsGnuConfigScriptsPhase [extra] Phase: configurePhase [extra] configureFlags: --verbose --prefix=/nix/store/5d4m1b23mmx9drqa6klrxqixywylkvzc-extra-1.8.1 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/nix/store/m5mmb1c6pvbi67xmynqgcdzf30cb71fn-extra-1.8.1-doc/share/doc/extra-1.8.1 --with-gcc=gcc --package-db=/build/tmp.bjkyo5yKpl/package.conf.d --ghc-option=-j16 --ghc-option=+RTS --ghc-option=-A64M --ghc-option=-RTS --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --enable-static --disable-executable-dynamic --enable-tests --disable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-option=-haddock --extra-lib-dirs=/nix/store/ffyzkisqs4vc4mg28bwwlyqjf8i9ph6b-ncurses-6.5/lib --extra-lib-dirs=/nix/store/n28qgdj8c1q41kf7n4y1jxa6ckp85m3c-libffi-3.5.2/lib --extra-lib-dirs=/nix/store/1b6h99dw7bk4wbn77kbalih42zbc67m1-elfutils-0.194/lib --extra-lib-dirs=/nix/store/hi0ar880110k6jsmmili7dh1gq3cg2a9-gmp-with-cxx-6.3.0/lib --extra-lib-dirs=/nix/store/g09cflpnp4g80q56sj9dng1qzv4v4ybc-numactl-2.0.18/lib [extra] Using Parsec parser [extra] Configuring extra-1.8.1... [extra] Warning: Unknown/unsupported 'ghc' version detected (Cabal 3.14.1.0 supports [extra] 'ghc' version < 9.12): [extra] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc is version [extra] 9.12.2 [extra] Dependency base >=4.9 && <5: using base-4.21.0.0 [extra] Dependency clock >=0.7: using clock-0.8.4 [extra] Dependency directory: using directory-1.3.9.0 [extra] Dependency filepath: using filepath-1.5.4.0 [extra] Dependency process: using process-1.6.25.0 [extra] Dependency time: using time-1.14 [extra] Dependency unix: using unix-2.8.6.0 [extra] Dependency QuickCheck >=2.10: using QuickCheck-2.15.0.1 [extra] Dependency base >=4 && <5: using base-4.21.0.0 [extra] Dependency directory: using directory-1.3.9.0 [extra] Dependency extra: using extra-1.8.1 [extra] Dependency filepath: using filepath-1.5.4.0 [extra] Dependency quickcheck-instances >=0.3.17: using quickcheck-instances-0.3.33 [extra] Dependency unix: using unix-2.8.6.0 [extra] Source component graph: [extra]  component lib [extra]  component test:extra-test dependency lib [extra] Configured component graph: [extra]  component extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX [extra]  include base-4.21.0.0-b334 [extra]  include clock-0.8.4-ID3ZHKSe7qB9bOrwwoeq20 [extra]  include directory-1.3.9.0-d362 [extra]  include filepath-1.5.4.0-7227 [extra]  include process-1.6.25.0-bd82 [extra]  include time-1.14-3dc5 [extra]  include unix-2.8.6.0-935f [extra]  component extra-1.8.1-FcxSS1akaIPKLupWFutujD-extra-test [extra]  include QuickCheck-2.15.0.1-4a6QuHFK3EgHKorV6DzjdR [extra]  include base-4.21.0.0-b334 [extra]  include directory-1.3.9.0-d362 [extra]  include extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX [extra]  include filepath-1.5.4.0-7227 [extra]  include quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw [extra]  include unix-2.8.6.0-935f [extra] Linked component graph: [extra]  unit extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX [extra]  include base-4.21.0.0-b334 [extra]  include clock-0.8.4-ID3ZHKSe7qB9bOrwwoeq20 [extra]  include directory-1.3.9.0-d362 [extra]  include filepath-1.5.4.0-7227 [extra]  include process-1.6.25.0-bd82 [extra]  include time-1.14-3dc5 [extra]  include unix-2.8.6.0-935f [extra]  Control.Concurrent.Extra=extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX:Control.Concurrent.Extra,Control.Exception.Extra=extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX:Control.Exception.Extra,Control.Monad.Extra=extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX:Control.Monad.Extra,Data.Either.Extra=extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX:Data.Either.Extra,Data.Foldable.Extra=extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX:Data.Foldable.Extra,Data.IORef.Extra=extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX:Data.IORef.Extra,Data.List.Extra=extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX:Data.List.Extra,Data.List.NonEmpty.Extra=extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX:Data.List.NonEmpty.Extra,Data.Monoid.Extra=extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX:Data.Monoid.Extra,Data.Tuple.Extra=extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX:Data.Tuple.Extra,Data.Typeable.Extra=extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX:Data.Typeable.Extra,Data.Version.Extra=extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX:Data.Version.Extra,Extra=extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX:Extra,Numeric.Extra=extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX:Numeric.Extra,System.Directory.Extra=extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX:System.Directory.Extra,System.Environment.Extra=extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX:System.Environment.Extra,System.IO.Extra=extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX:System.IO.Extra,System.Info.Extra=extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX:System.Info.Extra,System.Process.Extra=extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX:System.Process.Extra,System.Time.Extra=extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX:System.Time.Extra,Text.Read.Extra=extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX:Text.Read.Extra [extra]  unit extra-1.8.1-FcxSS1akaIPKLupWFutujD-extra-test [extra]  include QuickCheck-2.15.0.1-4a6QuHFK3EgHKorV6DzjdR [extra]  include base-4.21.0.0-b334 [extra]  include directory-1.3.9.0-d362 [extra]  include extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX [extra]  include filepath-1.5.4.0-7227 [extra]  include quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw [extra]  include unix-2.8.6.0-935f [extra] Ready component graph: [extra]  definite extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX [extra]  depends base-4.21.0.0-b334 [extra]  depends clock-0.8.4-ID3ZHKSe7qB9bOrwwoeq20 [extra]  depends directory-1.3.9.0-d362 [extra]  depends filepath-1.5.4.0-7227 [extra]  depends process-1.6.25.0-bd82 [extra]  depends time-1.14-3dc5 [extra]  depends unix-2.8.6.0-935f [extra]  definite extra-1.8.1-FcxSS1akaIPKLupWFutujD-extra-test [extra]  depends QuickCheck-2.15.0.1-4a6QuHFK3EgHKorV6DzjdR [extra]  depends base-4.21.0.0-b334 [extra]  depends directory-1.3.9.0-d362 [extra]  depends extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX [extra]  depends filepath-1.5.4.0-7227 [extra]  depends quickcheck-instances-0.3.33-2bomMBz3eEd29bGzKOGSvw [extra]  depends unix-2.8.6.0-935f [extra] Using Cabal-3.14.1.0 compiled by ghc-9.12 [extra] Using compiler: ghc-9.12.2 [extra] Using install prefix: /nix/store/5d4m1b23mmx9drqa6klrxqixywylkvzc-extra-1.8.1 [extra] Executables installed in: [extra] /nix/store/5d4m1b23mmx9drqa6klrxqixywylkvzc-extra-1.8.1/bin [extra] Libraries installed in: [extra] /nix/store/5d4m1b23mmx9drqa6klrxqixywylkvzc-extra-1.8.1/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX [extra] Dynamic Libraries installed in: [extra] /nix/store/5d4m1b23mmx9drqa6klrxqixywylkvzc-extra-1.8.1/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3 [extra] Private executables installed in: [extra] /nix/store/5d4m1b23mmx9drqa6klrxqixywylkvzc-extra-1.8.1/libexec/x86_64-linux-ghc-9.12.2-82d3/extra-1.8.1 [extra] Data files installed in: [extra] /nix/store/5d4m1b23mmx9drqa6klrxqixywylkvzc-extra-1.8.1/share/x86_64-linux-ghc-9.12.2-82d3/extra-1.8.1 [extra] Documentation installed in: [extra] /nix/store/m5mmb1c6pvbi67xmynqgcdzf30cb71fn-extra-1.8.1-doc/share/doc/extra-1.8.1 [extra] Configuration files installed in: [extra] /nix/store/5d4m1b23mmx9drqa6klrxqixywylkvzc-extra-1.8.1/etc [extra] No alex found [extra] Using ar found on system at: [extra] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar [extra] No c2hs found [extra] No cpphs found [extra] No doctest found [extra] Using gcc version 14.3.0 given by user at: [extra] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc [extra] Using ghc version 9.12.2 found on system at: [extra] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc [extra] Using ghc-pkg version 9.12.2 found on system at: [extra] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc-pkg-9.12.2 [extra] No ghcjs found [extra] No ghcjs-pkg found [extra] No greencard found [extra] Using haddock version 2.30.0 found on system at: [extra] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/haddock-ghc-9.12.2 [extra] No happy found [extra] No haskell-suite found [extra] No haskell-suite-pkg found [extra] No hmake found [extra] Using hpc version 0.69 found on system at: [extra] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/hpc-ghc-9.12.2 [extra] Using hsc2hs version 0.68.10 found on system at: [extra] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/hsc2hs-ghc-9.12.2 [extra] Using hscolour version 1.25 found on system at: [extra] /nix/store/02s9rad0jn6nj8z96k357im73hkzqsnw-hscolour-1.25/bin/HsColour [extra] No jhc found [extra] Using ld found on system at: [extra] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld [extra] No pkg-config found [extra] Using runghc version 9.12.2 found on system at: [extra] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/runghc-9.12.2 [extra] Using strip version 2.44 found on system at: [extra] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip [extra] Using tar found on system at: [extra] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar [extra] No uhc found [extra] Phase: buildPhase [extra] Preprocessing library for extra-1.8.1... [extra] Building library for extra-1.8.1... [extra] [ 1 of 22] Compiling Data.IORef.Extra ( src/Data/IORef/Extra.hs, dist/build/Data/IORef/Extra.o, dist/build/Data/IORef/Extra.dyn_o ) [extra] [ 2 of 22] Compiling Data.Monoid.Extra ( src/Data/Monoid/Extra.hs, dist/build/Data/Monoid/Extra.o, dist/build/Data/Monoid/Extra.dyn_o ) [extra] [ 3 of 22] Compiling Data.Tuple.Extra ( src/Data/Tuple/Extra.hs, dist/build/Data/Tuple/Extra.o, dist/build/Data/Tuple/Extra.dyn_o ) [extra] [ 4 of 22] Compiling Data.Typeable.Extra ( src/Data/Typeable/Extra.hs, dist/build/Data/Typeable/Extra.o, dist/build/Data/Typeable/Extra.dyn_o ) [extra] [ 5 of 22] Compiling Numeric.Extra ( src/Numeric/Extra.hs, dist/build/Numeric/Extra.o, dist/build/Numeric/Extra.dyn_o ) [extra] [ 6 of 22] Compiling Partial ( src/Partial.hs, dist/build/Partial.o, dist/build/Partial.dyn_o ) [extra] [ 7 of 22] Compiling Data.List.Extra ( src/Data/List/Extra.hs, dist/build/Data/List/Extra.o, dist/build/Data/List/Extra.dyn_o ) [extra] [ 8 of 22] Compiling Data.Version.Extra ( src/Data/Version/Extra.hs, dist/build/Data/Version/Extra.o, dist/build/Data/Version/Extra.dyn_o ) [extra] [ 9 of 22] Compiling Data.List.NonEmpty.Extra ( src/Data/List/NonEmpty/Extra.hs, dist/build/Data/List/NonEmpty/Extra.o, dist/build/Data/List/NonEmpty/Extra.dyn_o ) [extra] [10 of 22] Compiling Data.Either.Extra ( src/Data/Either/Extra.hs, dist/build/Data/Either/Extra.o, dist/build/Data/Either/Extra.dyn_o ) [extra] [11 of 22] Compiling Control.Exception.Extra ( src/Control/Exception/Extra.hs, dist/build/Control/Exception/Extra.o, dist/build/Control/Exception/Extra.dyn_o ) [extra] [12 of 22] Compiling Control.Monad.Extra ( src/Control/Monad/Extra.hs, dist/build/Control/Monad/Extra.o, dist/build/Control/Monad/Extra.dyn_o ) [extra] [13 of 22] Compiling Data.Foldable.Extra ( src/Data/Foldable/Extra.hs, dist/build/Data/Foldable/Extra.o, dist/build/Data/Foldable/Extra.dyn_o ) [extra] [14 of 22] Compiling Control.Concurrent.Extra ( src/Control/Concurrent/Extra.hs, dist/build/Control/Concurrent/Extra.o, dist/build/Control/Concurrent/Extra.dyn_o ) [extra] [15 of 22] Compiling System.Directory.Extra ( src/System/Directory/Extra.hs, dist/build/System/Directory/Extra.o, dist/build/System/Directory/Extra.dyn_o ) [extra] [16 of 22] Compiling System.Environment.Extra ( src/System/Environment/Extra.hs, dist/build/System/Environment/Extra.o, dist/build/System/Environment/Extra.dyn_o ) [extra] [17 of 22] Compiling System.IO.Extra ( src/System/IO/Extra.hs, dist/build/System/IO/Extra.o, dist/build/System/IO/Extra.dyn_o ) [extra] [18 of 22] Compiling System.Info.Extra ( src/System/Info/Extra.hs, dist/build/System/Info/Extra.o, dist/build/System/Info/Extra.dyn_o ) [extra] [19 of 22] Compiling System.Process.Extra ( src/System/Process/Extra.hs, dist/build/System/Process/Extra.o, dist/build/System/Process/Extra.dyn_o ) [extra] [20 of 22] Compiling System.Time.Extra ( src/System/Time/Extra.hs, dist/build/System/Time/Extra.o, dist/build/System/Time/Extra.dyn_o ) [extra] [21 of 22] Compiling Extra ( src/Extra.hs, dist/build/Extra.o, dist/build/Extra.dyn_o ) [extra] [22 of 22] Compiling Text.Read.Extra ( src/Text/Read/Extra.hs, dist/build/Text/Read/Extra.o, dist/build/Text/Read/Extra.dyn_o ) [extra] [ 1 of 22] Compiling Data.IORef.Extra ( src/Data/IORef/Extra.hs, dist/build/Data/IORef/Extra.p_o ) [extra] [ 2 of 22] Compiling Data.Monoid.Extra ( src/Data/Monoid/Extra.hs, dist/build/Data/Monoid/Extra.p_o ) [extra] [ 3 of 22] Compiling Data.Tuple.Extra ( src/Data/Tuple/Extra.hs, dist/build/Data/Tuple/Extra.p_o ) [extra] [ 4 of 22] Compiling Data.Typeable.Extra ( src/Data/Typeable/Extra.hs, dist/build/Data/Typeable/Extra.p_o ) [extra] [ 5 of 22] Compiling Numeric.Extra ( src/Numeric/Extra.hs, dist/build/Numeric/Extra.p_o ) [extra] [ 6 of 22] Compiling Partial ( src/Partial.hs, dist/build/Partial.p_o ) [extra] [ 7 of 22] Compiling Data.List.Extra ( src/Data/List/Extra.hs, dist/build/Data/List/Extra.p_o ) [extra] [ 8 of 22] Compiling Data.Version.Extra ( src/Data/Version/Extra.hs, dist/build/Data/Version/Extra.p_o ) [extra] [ 9 of 22] Compiling Data.List.NonEmpty.Extra ( src/Data/List/NonEmpty/Extra.hs, dist/build/Data/List/NonEmpty/Extra.p_o ) [extra] [10 of 22] Compiling Data.Either.Extra ( src/Data/Either/Extra.hs, dist/build/Data/Either/Extra.p_o ) [extra] [11 of 22] Compiling Control.Exception.Extra ( src/Control/Exception/Extra.hs, dist/build/Control/Exception/Extra.p_o ) [extra] [12 of 22] Compiling Control.Monad.Extra ( src/Control/Monad/Extra.hs, dist/build/Control/Monad/Extra.p_o ) [extra] [13 of 22] Compiling Data.Foldable.Extra ( src/Data/Foldable/Extra.hs, dist/build/Data/Foldable/Extra.p_o ) [extra] [14 of 22] Compiling Control.Concurrent.Extra ( src/Control/Concurrent/Extra.hs, dist/build/Control/Concurrent/Extra.p_o ) [extra] [15 of 22] Compiling System.Directory.Extra ( src/System/Directory/Extra.hs, dist/build/System/Directory/Extra.p_o ) [extra] [16 of 22] Compiling System.Environment.Extra ( src/System/Environment/Extra.hs, dist/build/System/Environment/Extra.p_o ) [extra] [17 of 22] Compiling System.IO.Extra ( src/System/IO/Extra.hs, dist/build/System/IO/Extra.p_o ) [extra] [18 of 22] Compiling System.Info.Extra ( src/System/Info/Extra.hs, dist/build/System/Info/Extra.p_o ) [extra] [19 of 22] Compiling System.Process.Extra ( src/System/Process/Extra.hs, dist/build/System/Process/Extra.p_o ) [extra] [20 of 22] Compiling System.Time.Extra ( src/System/Time/Extra.hs, dist/build/System/Time/Extra.p_o ) [extra] [21 of 22] Compiling Extra ( src/Extra.hs, dist/build/Extra.p_o ) [extra] [22 of 22] Compiling Text.Read.Extra ( src/Text/Read/Extra.hs, dist/build/Text/Read/Extra.p_o ) [extra] Preprocessing test suite 'extra-test' for extra-1.8.1... [extra] Building test suite 'extra-test' for extra-1.8.1... [extra] [1 of 4] Compiling TestUtil ( test/TestUtil.hs, dist/build/extra-test/extra-test-tmp/TestUtil.o ) [extra] [2 of 4] Compiling TestGen ( test/TestGen.hs, dist/build/extra-test/extra-test-tmp/TestGen.o ) [extra] [3 of 4] Compiling TestCustom ( test/TestCustom.hs, dist/build/extra-test/extra-test-tmp/TestCustom.o ) [extra] [4 of 4] Compiling Test ( test/Test.hs, dist/build/extra-test/extra-test-tmp/Test.o ) [extra] [5 of 5] Linking dist/build/extra-test/extra-test [extra] Phase: checkPhase [extra] Running 1 test suites... [extra] Test suite extra-test: RUNNING... [extra] withTempFile [extra] +++ OK, passed 100 tests. [extra] captureOutput [extra] +++ OK, passed 100 tests. [extra] \(x :: IO Int) -> void (once x) == pure () [extra] +++ OK, passed 100 tests. [extra] \(x :: IO Int) -> join (once x) == x [extra] +++ OK, passed 100 tests. [extra] \(x :: IO Int) -> (do y <- once x; y; y) == x [extra] +++ OK, passed 100 tests. [extra] \(x :: IO Int) -> (do y <- once x; y ||| y) == x [extra] +++ OK, passed 100 tests. [extra] \(x :: IO Int) -> join (onceFork x) == x [extra] +++ OK, passed 100 tests. [extra] \(x :: IO Int) -> (do a <- onceFork x; a; a) == x [extra] +++ OK, passed 100 tests. [extra] stringException "test" == pure "test" [extra] +++ OK, passed 100 tests. [extra] stringException ("test" ++ undefined) == pure "test" [extra] +++ OK, passed 100 tests. [extra] stringException ("test" ++ undefined ++ "hello") == pure "test" [extra] +++ OK, passed 100 tests. [extra] stringException ['t','e','s','t',undefined] == pure "test" [extra] +++ OK, passed 100 tests. [extra] ignore (print 1) == print 1 [extra] +++ OK, passed 100 tests. [extra] ignore (fail "die") == pure () [extra] +++ OK, passed 100 tests. [extra] catch (errorIO "Hello") (\(ErrorCall x) -> pure x) == pure "Hello" [extra] +++ OK, passed 100 tests. [extra] seq (errorIO "foo") (print 1) == print 1 [extra] +++ OK, passed 100 tests. [extra] catch (assertIO True >> pure 1) (\(x :: AssertionFailed) -> pure 2) == pure 1 [extra] +++ OK, passed 100 tests. [extra] seq (assertIO False) (print 1) == print 1 [extra] +++ OK, passed 100 tests. [extra] retry 1 (print "x") == print "x" [extra] +++ OK, passed 100 tests. [extra] retry 3 (fail "die") == fail "die" [extra] +++ OK, passed 100 tests. [extra] whenJust Nothing print == pure () [extra] +++ OK, passed 100 tests. [extra] whenJust (Just 1) print == print 1 [extra] +++ OK, passed 100 tests. [extra] pureIf @Maybe True 5 == Just 5 [extra] +++ OK, passed 100 tests. [extra] pureIf @Maybe False 5 == Nothing [extra] +++ OK, passed 100 tests. [extra] pureIf @[] True 5 == [5] [extra] +++ OK, passed 100 tests. [extra] pureIf @[] False 5 == [] [extra] +++ OK, passed 100 tests. [extra] whenMaybe True (print 1) == fmap Just (print 1) [extra] +++ OK, passed 100 tests. [extra] whenMaybe False (print 1) == pure Nothing [extra] +++ OK, passed 100 tests. [extra] \(x :: Maybe ()) -> unit x == x [extra] +++ OK, passed 100 tests. [extra] guarded even 2 == [2] [extra] +++ OK, passed 100 tests. [extra] guarded odd 2 == Nothing [extra] +++ OK, passed 100 tests. [extra] guarded (not.null) "My Name" == Just "My Name" [extra] +++ OK, passed 100 tests. [extra] guardedA (return . even) 42 == Just [42] [extra] +++ OK, passed 100 tests. [extra] guardedA (return . odd) 42 == Just [] [extra] +++ OK, passed 100 tests. [extra] guardedA (const Nothing) 42 == (Nothing :: Maybe [Int]) [extra] +++ OK, passed 100 tests. [extra] fold1M (\x y -> Just x) [] == undefined [extra] +++ OK, passed 100 tests. [extra] fold1M (\x y -> Just $ x + y) [1, 2, 3] == Just 6 [extra] +++ OK, passed 100 tests. [extra] partitionM (Just . even) [1,2,3] == Just ([2], [1,3]) [extra] +++ OK, passed 100 tests. [extra] partitionM (const Nothing) [1,2,3] == Nothing [extra] +++ OK, passed 100 tests. [extra] loop (\x -> if x < 10 then Left $ x * 2 else Right $ show x) 1 == "16" [extra] +++ OK, passed 100 tests. [extra] Just True ||^ undefined == Just True [extra] +++ OK, passed 100 tests. [extra] Just False ||^ Just True == Just True [extra] +++ OK, passed 100 tests. [extra] Just False ||^ Just False == Just False [extra] +++ OK, passed 100 tests. [extra] Just False &&^ undefined == Just False [extra] +++ OK, passed 100 tests. [extra] Just True &&^ Just True == Just True [extra] +++ OK, passed 100 tests. [extra] Just True &&^ Just False == Just False [extra] +++ OK, passed 100 tests. [extra] anyM Just [False,True ,undefined] == Just True [extra] +++ OK, passed 100 tests. [extra] anyM Just [False,False,undefined] == undefined [extra] +++ OK, passed 100 tests. [extra] \(f :: Int -> Maybe Bool) xs -> anyM f xs == orM (map f xs) [extra] +++ OK, passed 100 tests. [extra] allM Just [True,False,undefined] == Just False [extra] +++ OK, passed 100 tests. [extra] allM Just [True,True ,undefined] == undefined [extra] +++ OK, passed 100 tests. [extra] \(f :: Int -> Maybe Bool) xs -> anyM f xs == orM (map f xs) [extra] +++ OK, passed 100 tests. [extra] orM [Just False,Just True ,undefined] == Just True [extra] +++ OK, passed 100 tests. [extra] orM [Just False,Just False,undefined] == undefined [extra] +++ OK, passed 100 tests. [extra] \xs -> Just (or xs) == orM (map Just xs) [extra] +++ OK, passed 100 tests. [extra] andM [Just True,Just False,undefined] == Just False [extra] +++ OK, passed 100 tests. [extra] andM [Just True,Just True ,undefined] == undefined [extra] +++ OK, passed 100 tests. [extra] \xs -> Just (and xs) == andM (map Just xs) [extra] +++ OK, passed 100 tests. [extra] findM (Just . isUpper) "teST" == Just (Just 'S') [extra] +++ OK, passed 100 tests. [extra] findM (Just . isUpper) "test" == Just Nothing [extra] +++ OK, passed 100 tests. [extra] findM (Just . const True) ["x",undefined] == Just (Just "x") [extra] +++ OK, passed 100 tests. [extra] fromLeft 1 (Left 3) == 3 [extra] +++ OK, passed 100 tests. [extra] fromLeft 1 (Right "foo") == 1 [extra] +++ OK, passed 100 tests. [extra] fromRight 1 (Right 3) == 3 [extra] +++ OK, passed 100 tests. [extra] fromRight 1 (Left "foo") == 1 [extra] +++ OK, passed 100 tests. [extra] \x -> fromLeft' (Left x) == x [extra] +++ OK, passed 100 tests. [extra] \x -> fromLeft' (Right x) == undefined [extra] +++ OK, passed 100 tests. [extra] \x -> fromRight' (Right x) == x [extra] +++ OK, passed 100 tests. [extra] \x -> fromRight' (Left x) == undefined [extra] +++ OK, passed 100 tests. [extra] \x -> fromEither (Left x ) == x [extra] +++ OK, passed 100 tests. [extra] \x -> fromEither (Right x) == x [extra] +++ OK, passed 100 tests. [extra] \a b -> maybeToEither a (Just b) == Right b [extra] +++ OK, passed 100 tests. [extra] \a -> maybeToEither a Nothing == Left a [extra] +++ OK, passed 100 tests. [extra] \x -> eitherToMaybe (Left x) == Nothing [extra] +++ OK, passed 100 tests. [extra] \x -> eitherToMaybe (Right x) == Just x [extra] +++ OK, passed 100 tests. [extra] mapLeft show (Left 1) == Left "1" [extra] +++ OK, passed 100 tests. [extra] mapLeft show (Right True) == Right True [extra] +++ OK, passed 100 tests. [extra] mapRight show (Left 1) == Left 1 [extra] +++ OK, passed 100 tests. [extra] mapRight show (Right True) == Right "True" [extra] +++ OK, passed 100 tests. [extra] \xs -> repeatedly (splitAt 3) xs == chunksOf 3 xs [extra] +++ OK, passed 100 tests. [extra] \xs -> repeatedly word1 (trim xs) == words xs [extra] +++ OK, passed 100 tests. [extra] \xs -> repeatedly line1 xs == lines xs [extra] +++ OK, passed 100 tests. [extra] disjoint [1,2,3] [4,5] == True [extra] +++ OK, passed 100 tests. [extra] disjoint [1,2,3] [4,1] == False [extra] +++ OK, passed 100 tests. [extra] disjointOrd [1,2,3] [4,5] == True [extra] +++ OK, passed 100 tests. [extra] disjointOrd [1,2,3] [4,1] == False [extra] +++ OK, passed 100 tests. [extra] disjointOrdBy (compare `on` (`mod` 7)) [1,2,3] [4,5] == True [extra] +++ OK, passed 100 tests. [extra] disjointOrdBy (compare `on` (`mod` 7)) [1,2,3] [4,8] == False [extra] +++ OK, passed 100 tests. [extra] anySame [1,1,2] == True [extra] +++ OK, passed 100 tests. [extra] anySame [1,2,3] == False [extra] +++ OK, passed 100 tests. [extra] anySame (1:2:1:undefined) == True [extra] +++ OK, passed 100 tests. [extra] anySame [] == False [extra] +++ OK, passed 100 tests. [extra] \xs -> anySame xs == (length (nub xs) < length xs) [extra] +++ OK, passed 100 tests. [extra] allSame [1,1,2] == False [extra] +++ OK, passed 100 tests. [extra] allSame [1,1,1] == True [extra] +++ OK, passed 100 tests. [extra] allSame [1] == True [extra] +++ OK, passed 100 tests. [extra] allSame [] == True [extra] +++ OK, passed 100 tests. [extra] allSame (1:1:2:undefined) == False [extra] +++ OK, passed 100 tests. [extra] \xs -> allSame xs == (length (nub xs) <= 1) [extra] +++ OK, passed 100 tests. [extra] headDef 1 [] == 1 [extra] +++ OK, passed 100 tests. [extra] headDef 1 [2,3,4] == 2 [extra] +++ OK, passed 100 tests. [extra] \x xs -> headDef x xs == fromMaybe x (listToMaybe xs) [extra] +++ OK, passed 100 tests. [extra] lastDef 1 [] == 1 [extra] +++ OK, passed 100 tests. [extra] lastDef 1 [2,3,4] == 4 [extra] +++ OK, passed 100 tests. [extra] \x xs -> lastDef x xs == last (x:xs) [extra] +++ OK, passed 100 tests. [extra] [2,3,4] !? 1 == Just 3 [extra] +++ OK, passed 100 tests. [extra] [2,3,4] !? (-1) == Nothing [extra] +++ OK, passed 100 tests. [extra] [] !? 0 == Nothing [extra] +++ OK, passed 100 tests. [extra] notNull [] == False [extra] +++ OK, passed 100 tests. [extra] notNull [1] == True [extra] +++ OK, passed 100 tests. [extra] \xs -> notNull xs == not (null xs) [extra] +++ OK, passed 100 tests. [extra] list 1 (\v _ -> v - 2) [5,6,7] == 3 [extra] +++ OK, passed 100 tests. [extra] list 1 (\v _ -> v - 2) [] == 1 [extra] +++ OK, passed 100 tests. [extra] \nil cons xs -> maybe nil (uncurry cons) (uncons xs) == list nil cons xs [extra] +++ OK, passed 100 tests. [extra] unsnoc "test" == Just ("tes",'t') [extra] +++ OK, passed 100 tests. [extra] unsnoc "" == Nothing [extra] +++ OK, passed 100 tests. [extra] \xs -> unsnoc xs == if null xs then Nothing else Just (init xs, last xs) [extra] +++ OK, passed 100 tests. [extra] cons 't' "est" == "test" [extra] +++ OK, passed 100 tests. [extra] \x xs -> uncons (cons x xs) == Just (x,xs) [extra] +++ OK, passed 100 tests. [extra] snoc "tes" 't' == "test" [extra] +++ OK, passed 100 tests. [extra] \xs x -> unsnoc (snoc xs x) == Just (xs,x) [extra] +++ OK, passed 100 tests. [extra] enumerate == [False, True] [extra] +++ OK, passed 100 tests. [extra] takeEnd 3 "hello" == "llo" [extra] +++ OK, passed 100 tests. [extra] takeEnd 5 "bye" == "bye" [extra] +++ OK, passed 100 tests. [extra] takeEnd (-1) "bye" == "" [extra] +++ OK, passed 100 tests. [extra] \i xs -> takeEnd i xs `isSuffixOf` xs [extra] +++ OK, passed 100 tests. [extra] \i xs -> length (takeEnd i xs) == min (max 0 i) (length xs) [extra] +++ OK, passed 100 tests. [extra] dropEnd 3 "hello" == "he" [extra] +++ OK, passed 100 tests. [extra] dropEnd 5 "bye" == "" [extra] +++ OK, passed 100 tests. [extra] dropEnd (-1) "bye" == "bye" [extra] +++ OK, passed 100 tests. [extra] \i xs -> dropEnd i xs `isPrefixOf` xs [extra] +++ OK, passed 100 tests. [extra] \i xs -> length (dropEnd i xs) == max 0 (length xs - max 0 i) [extra] +++ OK, passed 100 tests. [extra] \i -> take 3 (dropEnd 5 [i..]) == take 3 [i..] [extra] +++ OK, passed 100 tests. [extra] splitAtEnd 3 "hello" == ("he","llo") [extra] +++ OK, passed 100 tests. [extra] splitAtEnd 3 "he" == ("", "he") [extra] +++ OK, passed 100 tests. [extra] \i xs -> uncurry (++) (splitAt i xs) == xs [extra] +++ OK, passed 100 tests. [extra] \i xs -> splitAtEnd i xs == (dropEnd i xs, takeEnd i xs) [extra] +++ OK, passed 100 tests. [extra] \i xs -> zip [i..] xs == zipFrom i xs [extra] +++ OK, passed 100 tests. [extra] zipFrom False [1..3] == [(False,1),(True, 2)] [extra] +++ OK, passed 100 tests. [extra] \i xs -> zipWithFrom (,) i xs == zipFrom i xs [extra] +++ OK, passed 100 tests. [extra] concatUnzip [("a","AB"),("bc","C")] == ("abc","ABC") [extra] +++ OK, passed 100 tests. [extra] concatUnzip3 [("a","AB",""),("bc","C","123")] == ("abc","ABC","123") [extra] +++ OK, passed 100 tests. [extra] takeWhileEnd even [2,3,4,6] == [4,6] [extra] +++ OK, passed 100 tests. [extra] trim " hello " == "hello" [extra] +++ OK, passed 100 tests. [extra] trimStart " hello " == "hello " [extra] +++ OK, passed 100 tests. [extra] trimEnd " hello " == " hello" [extra] +++ OK, passed 100 tests. [extra] \s -> trim s == trimEnd (trimStart s) [extra] +++ OK, passed 100 tests. [extra] lower "This is A TEST" == "this is a test" [extra] +++ OK, passed 100 tests. [extra] lower "" == "" [extra] +++ OK, passed 100 tests. [extra] upper "This is A TEST" == "THIS IS A TEST" [extra] +++ OK, passed 100 tests. [extra] upper "" == "" [extra] +++ OK, passed 100 tests. [extra] word1 "" == ("", "") [extra] +++ OK, passed 100 tests. [extra] word1 "keyword rest of string" == ("keyword","rest of string") [extra] +++ OK, passed 100 tests. [extra] word1 " keyword\n rest of string" == ("keyword","rest of string") [extra] +++ OK, passed 100 tests. [extra] \s -> fst (word1 s) == concat (take 1 $ words s) [extra] +++ OK, passed 100 tests. [extra] \s -> words (snd $ word1 s) == drop 1 (words s) [extra] +++ OK, passed 100 tests. [extra] line1 "" == ("", "") [extra] +++ OK, passed 100 tests. [extra] line1 "test" == ("test","") [extra] +++ OK, passed 100 tests. [extra] line1 "test\n" == ("test","") [extra] +++ OK, passed 100 tests. [extra] line1 "test\nrest" == ("test","rest") [extra] +++ OK, passed 100 tests. [extra] line1 "test\nrest\nmore" == ("test","rest\nmore") [extra] +++ OK, passed 100 tests. [extra] escapeHTML "this is a test" == "this is a test" [extra] +++ OK, passed 100 tests. [extra] escapeHTML "\"g&t\"" == "<b>"g&t"</n>" [extra] +++ OK, passed 100 tests. [extra] escapeHTML "t'was another test" == "t'was another test" [extra] +++ OK, passed 100 tests. [extra] \xs -> unescapeHTML (escapeHTML xs) == xs [extra] +++ OK, passed 100 tests. [extra] escapeJSON "this is a test" == "this is a test" [extra] +++ OK, passed 100 tests. [extra] escapeJSON "\ttab\nnewline\\" == "\\ttab\\nnewline\\\\" [extra] +++ OK, passed 100 tests. [extra] escapeJSON "\ESC[0mHello" == "\\u001b[0mHello" [extra] +++ OK, passed 100 tests. [extra] \xs -> unescapeJSON (escapeJSON xs) == xs [extra] +++ OK, passed 100 tests. [extra] groupOn abs [1,-1,2] == [[1,-1], [2]] [extra] +++ OK, passed 100 tests. [extra] groupOnKey abs [1,-1,2] == [(1, [1,-1]), (2, [2])] [extra] +++ OK, passed 100 tests. [extra] maximumOn id [] == undefined [extra] +++ OK, passed 100 tests. [extra] maximumOn length ["test","extra","a"] == "extra" [extra] +++ OK, passed 100 tests. [extra] minimumOn id [] == undefined [extra] +++ OK, passed 100 tests. [extra] minimumOn length ["test","extra","a"] == "a" [extra] +++ OK, passed 100 tests. [extra] groupSort [(1,'t'),(3,'t'),(2,'e'),(2,'s')] == [(1,"t"),(2,"es"),(3,"t")] [extra] +++ OK, passed 100 tests. [extra] \xs -> map fst (groupSort xs) == sort (nub (map fst xs)) [extra] +++ OK, passed 100 tests. [extra] \xs -> concatMap snd (groupSort xs) == map snd (sortOn fst xs) [extra] +++ OK, passed 100 tests. [extra] groupSortOn length ["test","of","sized","item"] == [["of"],["test","item"],["sized"]] [extra] +++ OK, passed 100 tests. [extra] groupSortBy (compare `on` length) ["test","of","sized","item"] == [["of"],["test","item"],["sized"]] [extra] +++ OK, passed 100 tests. [extra] sum' [1, 2, 3] == 6 [extra] +++ OK, passed 100 tests. [extra] sumOn' read ["1", "2", "3"] == 6 [extra] +++ OK, passed 100 tests. [extra] product' [1, 2, 4] == 8 [extra] +++ OK, passed 100 tests. [extra] productOn' read ["1", "2", "4"] == 8 [extra] +++ OK, passed 100 tests. [extra] merge "ace" "bd" == "abcde" [extra] +++ OK, passed 100 tests. [extra] \xs ys -> merge (sort xs) (sort ys) == sort (xs ++ ys) [extra] +++ OK, passed 100 tests. [extra] replace "el" "_" "Hello Bella" == "H_lo B_la" [extra] +++ OK, passed 100 tests. [extra] replace "el" "e" "Hello" == "Helo" [extra] +++ OK, passed 100 tests. [extra] replace "" "x" "Hello" == "xHxexlxlxox" [extra] +++ OK, passed 100 tests. [extra] replace "" "x" "" == "x" [extra] +++ OK, passed 100 tests. [extra] \xs ys -> replace xs xs ys == ys [extra] +++ OK, passed 100 tests. [extra] breakEnd isLower "youRE" == ("you","RE") [extra] +++ OK, passed 100 tests. [extra] breakEnd isLower "youre" == ("youre","") [extra] +++ OK, passed 100 tests. [extra] breakEnd isLower "YOURE" == ("","YOURE") [extra] +++ OK, passed 100 tests. [extra] \f xs -> breakEnd (not . f) xs == spanEnd f xs [extra] +++ OK, passed 100 tests. [extra] spanEnd isUpper "youRE" == ("you","RE") [extra] +++ OK, passed 100 tests. [extra] spanEnd (not . isSpace) "x y z" == ("x y ","z") [extra] +++ OK, passed 100 tests. [extra] \f xs -> uncurry (++) (spanEnd f xs) == xs [extra] +++ OK, passed 100 tests. [extra] \f xs -> spanEnd f xs == swap (both reverse (span f (reverse xs))) [extra] +++ OK, passed 100 tests. [extra] wordsBy (== ':') "::xyz:abc::123::" == ["xyz","abc","123"] [extra] +++ OK, passed 100 tests. [extra] \s -> wordsBy isSpace s == words s [extra] +++ OK, passed 100 tests. [extra] linesBy (== ':') "::xyz:abc::123::" == ["","","xyz","abc","","123",""] [extra] +++ OK, passed 100 tests. [extra] \s -> linesBy (== '\n') s == lines s [extra] +++ OK, passed 100 tests. [extra] linesBy (== ';') "my;list;here;" == ["my","list","here"] [extra] +++ OK, passed 100 tests. [extra] firstJust id [Nothing,Just 3] == Just 3 [extra] +++ OK, passed 100 tests. [extra] firstJust id [Nothing,Nothing] == Nothing [extra] +++ OK, passed 100 tests. [extra] drop1 "" == "" [extra] +++ OK, passed 100 tests. [extra] drop1 "test" == "est" [extra] +++ OK, passed 100 tests. [extra] \xs -> drop 1 xs == drop1 xs [extra] +++ OK, passed 100 tests. [extra] dropEnd1 "" == "" [extra] +++ OK, passed 100 tests. [extra] dropEnd1 "test" == "tes" [extra] +++ OK, passed 100 tests. [extra] \xs -> dropEnd 1 xs == dropEnd1 xs [extra] +++ OK, passed 100 tests. [extra] mconcatMap Sum [1,2,3] == Sum 6 [extra] +++ OK, passed 100 tests. [extra] \f xs -> mconcatMap f xs == concatMap f xs [extra] +++ OK, passed 100 tests. [extra] breakOn "::" "a::b::c" == ("a", "::b::c") [extra] +++ OK, passed 100 tests. [extra] breakOn "/" "foobar" == ("foobar", "") [extra] +++ OK, passed 100 tests. [extra] \needle haystack -> let (prefix,match) = breakOn needle haystack in prefix ++ match == haystack [extra] +++ OK, passed 100 tests. [extra] breakOnEnd "::" "a::b::c" == ("a::b::", "c") [extra] +++ OK, passed 100 tests. [extra] splitOn "\r\n" "a\r\nb\r\nd\r\ne" == ["a","b","d","e"] [extra] +++ OK, passed 100 tests. [extra] splitOn "aaa" "aaaXaaaXaaaXaaa" == ["","X","X","X",""] [extra] +++ OK, passed 100 tests. [extra] splitOn "x" "x" == ["",""] [extra] +++ OK, passed 100 tests. [extra] splitOn "x" "" == [""] [extra] +++ OK, passed 100 tests. [extra] \s x -> s /= "" ==> intercalate s (splitOn s x) == x [extra] +++ OK, passed 100 tests; 12 discarded. [extra] \c x -> splitOn [c] x == split (==c) x [extra] +++ OK, passed 100 tests. [extra] split (== 'a') "aabbaca" == ["","","bb","c",""] [extra] +++ OK, passed 100 tests. [extra] split (== 'a') "" == [""] [extra] +++ OK, passed 100 tests. [extra] split (== ':') "::xyz:abc::123::" == ["","","xyz","abc","","123","",""] [extra] +++ OK, passed 100 tests. [extra] split (== ',') "my,list,here" == ["my","list","here"] [extra] +++ OK, passed 100 tests. [extra] dropWhileEnd isSpace "ab cde " == "ab cde" [extra] +++ OK, passed 100 tests. [extra] dropWhileEnd' isSpace "ab cde " == "ab cde" [extra] +++ OK, passed 100 tests. [extra] last (dropWhileEnd even [undefined,3]) == undefined [extra] +++ OK, passed 100 tests. [extra] last (dropWhileEnd' even [undefined,3]) == 3 [extra] +++ OK, passed 100 tests. [extra] head (dropWhileEnd even (3:undefined)) == 3 [extra] +++ OK, passed 100 tests. [extra] head (dropWhileEnd' even (3:undefined)) == undefined [extra] +++ OK, passed 100 tests. [extra] dropPrefix "Mr. " "Mr. Men" == "Men" [extra] +++ OK, passed 100 tests. [extra] dropPrefix "Mr. " "Dr. Men" == "Dr. Men" [extra] +++ OK, passed 100 tests. [extra] dropSuffix "!" "Hello World!" == "Hello World" [extra] +++ OK, passed 100 tests. [extra] dropSuffix "!" "Hello World!!" == "Hello World!" [extra] +++ OK, passed 100 tests. [extra] dropSuffix "!" "Hello World." == "Hello World." [extra] +++ OK, passed 100 tests. [extra] stripSuffix "bar" "foobar" == Just "foo" [extra] +++ OK, passed 100 tests. [extra] stripSuffix "" "baz" == Just "baz" [extra] +++ OK, passed 100 tests. [extra] stripSuffix "foo" "quux" == Nothing [extra] +++ OK, passed 100 tests. [extra] stripInfix "::" "a::b::c" == Just ("a", "b::c") [extra] +++ OK, passed 100 tests. [extra] stripInfix "/" "foobar" == Nothing [extra] +++ OK, passed 100 tests. [extra] stripInfixEnd "::" "a::b::c" == Just ("a::b", "c") [extra] +++ OK, passed 100 tests. [extra] chunksOf 3 "my test" == ["my ","tes","t"] [extra] +++ OK, passed 100 tests. [extra] chunksOf 3 "mytest" == ["myt","est"] [extra] +++ OK, passed 100 tests. [extra] chunksOf 8 "" == [] [extra] +++ OK, passed 100 tests. [extra] chunksOf 0 "test" == undefined [extra] +++ OK, passed 100 tests. [extra] nubSort "this is a test" == " aehist" [extra] +++ OK, passed 100 tests. [extra] \xs -> nubSort xs == nub (sort xs) [extra] +++ OK, passed 100 tests. [extra] nubSortOn length ["a","test","of","this"] == ["a","of","test"] [extra] +++ OK, passed 100 tests. [extra] nubSortBy (compare `on` length) ["a","test","of","this"] == ["a","of","test"] [extra] +++ OK, passed 100 tests. [extra] nubOrd "this is a test" == "this ae" [extra] +++ OK, passed 100 tests. [extra] nubOrd (take 4 ("this" ++ undefined)) == "this" [extra] +++ OK, passed 100 tests. [extra] \xs -> nubOrd xs == nub xs [extra] +++ OK, passed 100 tests. [extra] nubOrdOn length ["a","test","of","this"] == ["a","test","of"] [extra] +++ OK, passed 100 tests. [extra] nubOrdBy (compare `on` length) ["a","test","of","this"] == ["a","test","of"] [extra] +++ OK, passed 100 tests. [extra] zipWithLongest (,) "a" "xyz" == [(Just 'a', Just 'x'), (Nothing, Just 'y'), (Nothing, Just 'z')] [extra] +++ OK, passed 100 tests. [extra] zipWithLongest (,) "a" "x" == [(Just 'a', Just 'x')] [extra] +++ OK, passed 100 tests. [extra] zipWithLongest (,) "" "x" == [(Nothing, Just 'x')] [extra] +++ OK, passed 100 tests. [extra] comparingLength [1,2,3] [False] == GT [extra] +++ OK, passed 100 tests. [extra] comparingLength [1,2] "ab" == EQ [extra] +++ OK, passed 100 tests. [extra] \(xs :: [Int]) (ys :: [Int]) -> comparingLength xs ys == Data.Ord.comparing length xs ys [extra] +++ OK, passed 100 tests. [extra] comparingLength [1,2] (1:2:3:undefined) == LT [extra] +++ OK, passed 100 tests. [extra] comparingLength (1:2:3:undefined) [1,2] == GT [extra] +++ OK, passed 100 tests. [extra] mwhen True "test" == "test" [extra] +++ OK, passed 100 tests. [extra] mwhen False "test" == "" [extra] +++ OK, passed 100 tests. [extra] first succ (1,"test") == (2,"test") [extra] +++ OK, passed 100 tests. [extra] second reverse (1,"test") == (1,"tset") [extra] +++ OK, passed 100 tests. [extra] firstM (\x -> [x-1, x+1]) (1,"test") == [(0,"test"),(2,"test")] [extra] +++ OK, passed 100 tests. [extra] secondM (\x -> [reverse x, x]) (1,"test") == [(1,"tset"),(1,"test")] [extra] +++ OK, passed 100 tests. [extra] (succ *** reverse) (1,"test") == (2,"tset") [extra] +++ OK, passed 100 tests. [extra] (succ &&& pred) 1 == (2,0) [extra] +++ OK, passed 100 tests. [extra] dupe 12 == (12, 12) [extra] +++ OK, passed 100 tests. [extra] both succ (1,2) == (2,3) [extra] +++ OK, passed 100 tests. [extra] first3 succ (1,1,1) == (2,1,1) [extra] +++ OK, passed 100 tests. [extra] second3 succ (1,1,1) == (1,2,1) [extra] +++ OK, passed 100 tests. [extra] third3 succ (1,1,1) == (1,1,2) [extra] +++ OK, passed 100 tests. [extra] \x -> readVersion (showVersion x) == x [extra] +++ OK, passed 100 tests. [extra] readVersion "hello" == undefined [extra] +++ OK, passed 100 tests. [extra] showDP 4 pi == "3.1416" [extra] +++ OK, passed 100 tests. [extra] showDP 0 pi == "3" [extra] +++ OK, passed 100 tests. [extra] showDP 2 3 == "3.00" [extra] +++ OK, passed 100 tests. [extra] withTempDir $ \dir -> do writeFile (dir "foo.txt") ""; withCurrentDirectory dir $ doesFileExist "foo.txt" [extra] +++ OK, passed 100 tests. [extra] withTempDir $ \dir -> do writeFile (dir "test.txt") ""; (== [dir "test.txt"]) <$> listContents dir [extra] +++ OK, passed 100 tests. [extra] listTest listContents ["bar.txt","foo/baz.txt","zoo"] ["bar.txt","foo","zoo"] [extra] +++ OK, passed 100 tests. [extra] listTest listDirectories ["bar.txt","foo/baz.txt","zoo"] ["foo"] [extra] +++ OK, passed 100 tests. [extra] listTest listFiles ["bar.txt","foo/baz.txt","zoo"] ["bar.txt","zoo"] [extra] +++ OK, passed 100 tests. [extra] listTest listFilesRecursive ["bar.txt","zoo","foo" "baz.txt"] ["bar.txt","zoo","foo" "baz.txt"] [extra] +++ OK, passed 100 tests. [extra] listTest (listFilesInside $ pure . not . isPrefixOf "." . takeFileName) ["bar.txt","foo" "baz.txt",".foo" "baz2.txt", "zoo"] ["bar.txt","zoo","foo" "baz.txt"] [extra] +++ OK, passed 100 tests. [extra] listTest (listFilesInside $ const $ pure False) ["bar.txt"] [] [extra] +++ OK, passed 100 tests. [extra] isWindows == (os == "mingw32") [extra] +++ OK, passed 100 tests. [extra] \(filter isHexDigit -> s) -> fmap (== s) $ withTempFile $ \file -> do writeFile file s; readFile' file [extra] +++ OK, passed 100 tests. [extra] \s -> withTempFile $ \file -> do writeFileUTF8 file s; fmap (== s) $ readFileUTF8' file [extra] +++ OK, passed 100 tests. [extra] \(ASCIIString s) -> withTempFile $ \file -> do writeFileBinary file s; fmap (== s) $ readFileBinary' file [extra] +++ OK, passed 100 tests. [extra] captureOutput (print 1) == pure ("1\n",()) [extra] +++ OK, passed 100 tests. [extra] withTempFile doesFileExist == pure True [extra] +++ OK, passed 100 tests. [extra] (doesFileExist =<< withTempFile pure) == pure False [extra] +++ OK, passed 100 tests. [extra] withTempFile readFile' == pure "" [extra] +++ OK, passed 100 tests. [extra] withTempDir doesDirectoryExist == pure True [extra] +++ OK, passed 100 tests. [extra] (doesDirectoryExist =<< withTempDir pure) == pure False [extra] +++ OK, passed 100 tests. [extra] withTempDir listFiles == pure [] [extra] +++ OK, passed 100 tests. [extra] fileEq "does_not_exist1" "does_not_exist2" == undefined [extra] +++ OK, passed 100 tests. [extra] fileEq "does_not_exist" "does_not_exist" == undefined [extra] +++ OK, passed 100 tests. [extra] withTempFile $ \f1 -> fileEq "does_not_exist" f1 == undefined [extra] +++ OK, passed 100 tests. [extra] withTempFile $ \f1 -> withTempFile $ \f2 -> fileEq f1 f2 [extra] +++ OK, passed 100 tests. [extra] withTempFile $ \f1 -> withTempFile $ \f2 -> writeFile f1 "a" >> writeFile f2 "a" >> fileEq f1 f2 [extra] +++ OK, passed 100 tests. [extra] withTempFile $ \f1 -> withTempFile $ \f2 -> writeFile f1 "a" >> writeFile f2 "b" >> notM (fileEq f1 f2) [extra] +++ OK, passed 100 tests. [extra] fmap (round . fst) (duration $ sleep 1) == pure 1 [extra] +++ OK, passed 100 tests. [extra] timeout (-3) (print 1) == pure Nothing [extra] +++ OK, passed 100 tests. [extra] timeout 0.1 (print 1) == fmap Just (print 1) [extra] +++ OK, passed 100 tests. [extra] do (t, _) <- duration $ timeout 0.1 $ sleep 1000; print t; pure $ t < 1 [extra] 0.100271118 [extra] +++ OK, passed 100 tests. [extra] timeout 0.1 (sleep 2 >> print 1) == pure Nothing [extra] +++ OK, passed 100 tests. [extra] showDuration 3.435 == "3.44s" [extra] +++ OK, passed 100 tests. [extra] showDuration 623.8 == "10m24s" [extra] +++ OK, passed 100 tests. [extra] showDuration 62003.8 == "17h13m" [extra] +++ OK, passed 100 tests. [extra] showDuration 1e8 == "27777h47m" [extra] +++ OK, passed 100 tests. [extra] do f <- offsetTime; xs <- replicateM 10 f; pure $ xs == sort xs [extra] +++ OK, passed 100 tests. [extra] do (a,_) <- duration $ sleep 1; pure $ a >= 1 && a <= 1.5 [extra] +++ OK, passed 100 tests. [extra] Extra export [extra] +++ OK, passed 100 tests. [extra] withTempFile [extra] ....done [extra] withTempDir [extra] ....done [extra] retry [extra] +++ OK, passed 100 tests. [extra] barrier [extra] Success (325 tests) [extra] Test suite extra-test: PASS [extra] Test suite logged to: dist/test/extra-1.8.1-extra-test.log [extra] 1 of 1 test suites (1 of 1 test cases) passed. [extra] Phase: haddockPhase [extra] Preprocessing library for extra-1.8.1... [extra] Running Haddock on library for extra-1.8.1... [extra] [ 1 of 22] Compiling Data.IORef.Extra ( src/Data/IORef/Extra.hs, nothing ) [HIE file is missing] [extra] [ 2 of 22] Compiling Data.Monoid.Extra ( src/Data/Monoid/Extra.hs, nothing ) [HIE file is missing] [extra] [ 3 of 22] Compiling Data.Tuple.Extra ( src/Data/Tuple/Extra.hs, nothing ) [HIE file is missing] [extra] [ 4 of 22] Compiling Data.Typeable.Extra ( src/Data/Typeable/Extra.hs, nothing ) [HIE file is missing] [extra] [ 5 of 22] Compiling Numeric.Extra ( src/Numeric/Extra.hs, nothing ) [HIE file is missing] [extra] [ 6 of 22] Compiling Partial ( src/Partial.hs, nothing ) [HIE file is missing] [extra] [ 7 of 22] Compiling Data.List.Extra ( src/Data/List/Extra.hs, nothing ) [HIE file is missing] [extra] [ 8 of 22] Compiling Data.Version.Extra ( src/Data/Version/Extra.hs, nothing ) [HIE file is missing] [extra] [ 9 of 22] Compiling Data.List.NonEmpty.Extra ( src/Data/List/NonEmpty/Extra.hs, nothing ) [HIE file is missing] [extra] [10 of 22] Compiling Data.Either.Extra ( src/Data/Either/Extra.hs, nothing ) [HIE file is missing] [extra] [11 of 22] Compiling Control.Exception.Extra ( src/Control/Exception/Extra.hs, nothing ) [HIE file is missing] [extra] [12 of 22] Compiling Control.Monad.Extra ( src/Control/Monad/Extra.hs, nothing ) [HIE file is missing] [extra] [13 of 22] Compiling Data.Foldable.Extra ( src/Data/Foldable/Extra.hs, nothing ) [HIE file is missing] [extra] [14 of 22] Compiling Control.Concurrent.Extra ( src/Control/Concurrent/Extra.hs, nothing ) [HIE file is missing] [extra] [15 of 22] Compiling System.Directory.Extra ( src/System/Directory/Extra.hs, nothing ) [HIE file is missing] [extra] [16 of 22] Compiling System.Environment.Extra ( src/System/Environment/Extra.hs, nothing ) [HIE file is missing] [extra] [17 of 22] Compiling System.IO.Extra ( src/System/IO/Extra.hs, nothing ) [HIE file is missing] [extra] [18 of 22] Compiling System.Info.Extra ( src/System/Info/Extra.hs, nothing ) [HIE file is missing] [extra] [19 of 22] Compiling System.Process.Extra ( src/System/Process/Extra.hs, nothing ) [HIE file is missing] [extra] [20 of 22] Compiling System.Time.Extra ( src/System/Time/Extra.hs, nothing ) [HIE file is missing] [extra] [21 of 22] Compiling Extra ( src/Extra.hs, nothing ) [HIE file is missing] [extra] [22 of 22] Compiling Text.Read.Extra ( src/Text/Read/Extra.hs, nothing ) [HIE file is missing] [extra] Haddock coverage: [extra]  100% ( 6 / 6) in 'Data.IORef.Extra' [extra]  100% ( 4 / 4) in 'Data.Monoid.Extra' [extra] Warning: 'Arrow' is out of scope. [extra]  If you qualify the identifier, haddock can try to link it anyway. [extra]  100% ( 28 / 28) in 'Data.Tuple.Extra' [extra]  100% ( 2 / 2) in 'Data.Typeable.Extra' [extra]  100% ( 7 / 7) in 'Numeric.Extra' [extra] Warning: 'unzip' is ambiguous. It is defined [extra]  * in ‘GHC.Internal.Data.Functor’ [extra]  * in ‘GHC.Internal.List’ [extra]  You may be able to disambiguate the identifier by qualifying it or [extra]  by specifying the type/value namespace explicitly. [extra]  Defaulting to the one defined in ‘GHC.Internal.List’ [extra] Warning: '(:)' is out of scope. [extra]  If you qualify the identifier, haddock can try to link it anyway. [extra] Warning: 'firstJustM' is out of scope. [extra]  If you qualify the identifier, haddock can try to link it anyway. [extra]  100% ( 85 / 85) in 'Data.List.Extra' [extra] Warning: 'Version' is ambiguous. It is defined [extra]  * in ‘GHC.Internal.Data.Version’ [extra]  * in ‘GHC.Internal.Data.Version’ [extra]  You may be able to disambiguate the identifier by qualifying it or [extra]  by specifying the type/value namespace explicitly. [extra]  Defaulting to the one defined in ‘GHC.Internal.Data.Version’ [extra]  100% ( 3 / 3) in 'Data.Version.Extra' [extra]  100% ( 23 / 23) in 'Data.List.NonEmpty.Extra' [extra] Warning: 'fromJust' is out of scope. [extra]  If you qualify the identifier, haddock can try to link it anyway. [extra]  100% ( 11 / 11) in 'Data.Either.Extra' [extra] Warning: 'AssertionFailed' is ambiguous. It is defined [extra]  * in ‘GHC.Internal.IO.Exception’ [extra]  * in ‘GHC.Internal.IO.Exception’ [extra]  You may be able to disambiguate the identifier by qualifying it or [extra]  by specifying the type/value namespace explicitly. [extra]  Defaulting to the one defined in ‘GHC.Internal.IO.Exception’ [extra] Warning: 'SomeException' is ambiguous. It is defined [extra]  * in ‘GHC.Internal.Exception.Type’ [extra]  * in ‘GHC.Internal.Exception.Type’ [extra]  You may be able to disambiguate the identifier by qualifying it or [extra]  by specifying the type/value namespace explicitly. [extra]  Defaulting to the one defined in ‘GHC.Internal.Exception.Type’ [extra] Warning: 'ErrorCall' is ambiguous. It is defined [extra]  * in ‘GHC.Internal.Exception’ [extra]  * in ‘GHC.Internal.Exception’ [extra]  You may be able to disambiguate the identifier by qualifying it or [extra]  by specifying the type/value namespace explicitly. [extra]  Defaulting to the one defined in ‘GHC.Internal.Exception’ [extra]  100% ( 21 / 21) in 'Control.Exception.Extra' [extra] Warning: 'find' is out of scope. [extra]  If you qualify the identifier, haddock can try to link it anyway. [extra] Warning: 'mconcatMap' is out of scope. [extra]  If you qualify the identifier, haddock can try to link it anyway. [extra] Warning: 'partition' is out of scope. [extra]  If you qualify the identifier, haddock can try to link it anyway. [extra]  100% ( 40 / 40) in 'Control.Monad.Extra' [extra]  92% ( 13 / 14) in 'Data.Foldable.Extra' [extra]  Missing documentation for: [extra]  Module header [extra] Warning: 'Lock' is ambiguous. It is defined [extra]  * at src/Control/Concurrent/Extra.hs:106:16 [extra]  * at src/Control/Concurrent/Extra.hs:106:1 [extra]  You may be able to disambiguate the identifier by qualifying it or [extra]  by specifying the type/value namespace explicitly. [extra]  Defaulting to the one defined at src/Control/Concurrent/Extra.hs:106:1 [extra] Warning: 'Var' is ambiguous. It is defined [extra]  * at src/Control/Concurrent/Extra.hs:146:17 [extra]  * at src/Control/Concurrent/Extra.hs:146:1 [extra]  You may be able to disambiguate the identifier by qualifying it or [extra]  by specifying the type/value namespace explicitly. [extra]  Defaulting to the one defined at src/Control/Concurrent/Extra.hs:146:1 [extra] Warning: 'Barrier' is ambiguous. It is defined [extra]  * at src/Control/Concurrent/Extra.hs:210:21 [extra]  * at src/Control/Concurrent/Extra.hs:210:1 [extra]  You may be able to disambiguate the identifier by qualifying it or [extra]  by specifying the type/value namespace explicitly. [extra]  Defaulting to the one defined at src/Control/Concurrent/Extra.hs:210:1 [extra]  100% ( 27 / 27) in 'Control.Concurrent.Extra' [extra]  100% ( 8 / 8) in 'System.Directory.Extra' [extra]  100% ( 2 / 2) in 'System.Environment.Extra' [extra]  100% ( 26 / 26) in 'System.IO.Extra' [extra]  100% ( 4 / 4) in 'System.Info.Extra' [extra]  100% ( 5 / 5) in 'System.Process.Extra' [extra]  100% ( 8 / 8) in 'System.Time.Extra' [extra]  100% (270 /270) in 'Extra' [extra]  100% ( 2 / 2) in 'Text.Read.Extra' [extra] Warning: Data.Tuple.Extra: could not find link destinations for: [extra]  - GHC.Internal.Generics.Rep1_Solo [extra]  - GHC.Internal.Generics.Rep_Solo [extra] Documentation created: dist/doc/html/extra, dist/doc/html/extra/extra.txt [extra] Preprocessing test suite 'extra-test' for extra-1.8.1... [extra] Phase: installPhase [extra] Installing library in /nix/store/5d4m1b23mmx9drqa6klrxqixywylkvzc-extra-1.8.1/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX [extra] Phase: fixupPhase [extra] shrinking RPATHs of ELF executables and libraries in /nix/store/5d4m1b23mmx9drqa6klrxqixywylkvzc-extra-1.8.1 [extra] shrinking /nix/store/5d4m1b23mmx9drqa6klrxqixywylkvzc-extra-1.8.1/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/libHSextra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX-ghc9.12.2.so [extra] checking for references to /build/ in /nix/store/5d4m1b23mmx9drqa6klrxqixywylkvzc-extra-1.8.1... [extra] patching script interpreter paths in /nix/store/5d4m1b23mmx9drqa6klrxqixywylkvzc-extra-1.8.1 [extra] stripping (with command strip and flags -S -p) in /nix/store/5d4m1b23mmx9drqa6klrxqixywylkvzc-extra-1.8.1/lib [extra] shrinking RPATHs of ELF executables and libraries in /nix/store/m5mmb1c6pvbi67xmynqgcdzf30cb71fn-extra-1.8.1-doc [extra] checking for references to /build/ in /nix/store/m5mmb1c6pvbi67xmynqgcdzf30cb71fn-extra-1.8.1-doc... [extra] patching script interpreter paths in /nix/store/m5mmb1c6pvbi67xmynqgcdzf30cb71fn-extra-1.8.1-doc [extra:post-build] Uploading to cachix cache "sellout": /nix/store/5d4m1b23mmx9drqa6klrxqixywylkvzc-extra-1.8.1 /nix/store/m5mmb1c6pvbi67xmynqgcdzf30cb71fn-extra-1.8.1-doc [extra:post-build] Pushing 2 paths (72 are already present) using zstd to cache sellout ⏳ [extra:post-build]  [extra:post-build] Pushing /nix/store/5d4m1b23mmx9drqa6klrxqixywylkvzc-extra-1.8.1 (4.50 MiB) [extra:post-build] Pushing /nix/store/m5mmb1c6pvbi67xmynqgcdzf30cb71fn-extra-1.8.1-doc (3.08 MiB) [extra:post-build]  [extra:post-build] All done. [extra:post-build] Uploading to the NixCI cache: /nix/store/5d4m1b23mmx9drqa6klrxqixywylkvzc-extra-1.8.1 /nix/store/m5mmb1c6pvbi67xmynqgcdzf30cb71fn-extra-1.8.1-doc [extra:post-build] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [extra:post-build] copying 2 paths... [extra:post-build] copying path '/nix/store/m5mmb1c6pvbi67xmynqgcdzf30cb71fn-extra-1.8.1-doc' to 'https://cache.nix-ci.com'... [extra:post-build] copying path '/nix/store/5d4m1b23mmx9drqa6klrxqixywylkvzc-extra-1.8.1' to 'https://cache.nix-ci.com'... [extra:post-build] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [extra:post-build] copying 1 paths... [extra:post-build] copying path '/nix/store/klkin8nnnnj5ykgmlz1f26r6s2ffp1hd-extra-1.8.1.drv' to 'https://cache.nix-ci.com'... Progress: 8 of 14 built, 43 of 43 downloaded from cache Building /nix/store/wcyb838h79fi5fk0y7w8jznhlnsczw6s-algebraic-graphs-0.7.drv [algebraic-graphs] Phase: setupCompilerEnvironmentPhase [algebraic-graphs] Build with /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2. [algebraic-graphs] Phase: unpackPhase [algebraic-graphs] unpacking source archive /nix/store/gfjyfw1hcshbfclk91difmkphwib8nbd-algebraic-graphs-0.7.tar.gz [algebraic-graphs] source root is algebraic-graphs-0.7 [algebraic-graphs] setting SOURCE_DATE_EPOCH to timestamp 1655769405 of file "algebraic-graphs-0.7/test/Data/Graph/Test/Typed.hs" [algebraic-graphs] Phase: patchPhase [algebraic-graphs] Replace Cabal file with edited version from mirror://hackage/algebraic-graphs-0.7/revision/3.cabal. [algebraic-graphs] applying patch /nix/store/fgaciccwb2z0jmfhs30a1vq03azpd9qd-algebraic-graphs-0.7-allow-inspection-testing-0.6.patch [algebraic-graphs] patching file algebraic-graphs.cabal [algebraic-graphs] Phase: compileBuildDriverPhase [algebraic-graphs] setupCompileFlags: -package-db=/build/tmp.iJYf2ewEpb/setup-package.conf.d -threaded [algebraic-graphs] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.iJYf2ewEpb/Main.o ) [algebraic-graphs] [2 of 2] Linking Setup [algebraic-graphs] Phase: updateAutotoolsGnuConfigScriptsPhase [algebraic-graphs] Phase: configurePhase [algebraic-graphs] configureFlags: --verbose --prefix=/nix/store/fs2iyc6c2n6f5z2x54nny3fsi996p3m1-algebraic-graphs-0.7 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/nix/store/4syljhmgi93jzr8cdmlar9dpmjsd53nv-algebraic-graphs-0.7-doc/share/doc/algebraic-graphs-0.7 --with-gcc=gcc --package-db=/build/tmp.iJYf2ewEpb/package.conf.d --ghc-option=-j16 --ghc-option=+RTS --ghc-option=-A64M --ghc-option=-RTS --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --enable-static --disable-executable-dynamic --enable-tests --disable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-option=-haddock --extra-lib-dirs=/nix/store/ffyzkisqs4vc4mg28bwwlyqjf8i9ph6b-ncurses-6.5/lib --extra-lib-dirs=/nix/store/n28qgdj8c1q41kf7n4y1jxa6ckp85m3c-libffi-3.5.2/lib --extra-lib-dirs=/nix/store/1b6h99dw7bk4wbn77kbalih42zbc67m1-elfutils-0.194/lib --extra-lib-dirs=/nix/store/hi0ar880110k6jsmmili7dh1gq3cg2a9-gmp-with-cxx-6.3.0/lib --extra-lib-dirs=/nix/store/g09cflpnp4g80q56sj9dng1qzv4v4ybc-numactl-2.0.18/lib --extra-lib-dirs=/nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/lib [algebraic-graphs] Using Parsec parser [algebraic-graphs] Configuring algebraic-graphs-0.7... [algebraic-graphs] Warning: Unknown/unsupported 'ghc' version detected (Cabal 3.14.1.0 supports [algebraic-graphs] 'ghc' version < 9.12): [algebraic-graphs] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc is version [algebraic-graphs] 9.12.2 [algebraic-graphs] Dependency array >=0.4 && <0.6: using array-0.5.8.0 [algebraic-graphs] Dependency base >=4.11 && <5: using base-4.21.0.0 [algebraic-graphs] Dependency containers >=0.5.5.1 && <0.8: using containers-0.7 [algebraic-graphs] Dependency deepseq >=1.3.0.1 && <1.6: using deepseq-1.5.1.0 [algebraic-graphs] Dependency transformers >=0.4 && <0.7: using transformers-0.6.1.2 [algebraic-graphs] Dependency QuickCheck >=2.14 && <2.16: using QuickCheck-2.15.0.1 [algebraic-graphs] Dependency algebraic-graphs: using algebraic-graphs-0.7 [algebraic-graphs] Dependency array >=0.4 && <0.6: using array-0.5.8.0 [algebraic-graphs] Dependency base >=4.11 && <5: using base-4.21.0.0 [algebraic-graphs] Dependency containers >=0.5.5.1 && <0.8: using containers-0.7 [algebraic-graphs] Dependency deepseq >=1.3.0.1 && <1.6: using deepseq-1.5.1.0 [algebraic-graphs] Dependency extra >=1.4 && <2: using extra-1.8.1 [algebraic-graphs] Dependency inspection-testing >=0.4.2.2 && <0.7: using [algebraic-graphs] inspection-testing-0.6.2 [algebraic-graphs] Dependency transformers >=0.4 && <0.7: using transformers-0.6.1.2 [algebraic-graphs] Source component graph: [algebraic-graphs]  component lib [algebraic-graphs]  component test:main dependency lib [algebraic-graphs] Configured component graph: [algebraic-graphs]  component algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a [algebraic-graphs]  include array-0.5.8.0-d6d4 [algebraic-graphs]  include base-4.21.0.0-b334 [algebraic-graphs]  include containers-0.7-d79e [algebraic-graphs]  include deepseq-1.5.1.0-3c62 [algebraic-graphs]  include transformers-0.6.1.2-2558 [algebraic-graphs]  component algebraic-graphs-0.7-FKZbJT4N7FF2rJCgZTt0Vb-main [algebraic-graphs]  include QuickCheck-2.15.0.1-4a6QuHFK3EgHKorV6DzjdR [algebraic-graphs]  include algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a [algebraic-graphs]  include array-0.5.8.0-d6d4 [algebraic-graphs]  include base-4.21.0.0-b334 [algebraic-graphs]  include containers-0.7-d79e [algebraic-graphs]  include deepseq-1.5.1.0-3c62 [algebraic-graphs]  include extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX [algebraic-graphs]  include inspection-testing-0.6.2-BXrtKPpIYmk3oPkvyBHJek [algebraic-graphs]  include transformers-0.6.1.2-2558 [algebraic-graphs] Linked component graph: [algebraic-graphs]  unit algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a [algebraic-graphs]  include array-0.5.8.0-d6d4 [algebraic-graphs]  include base-4.21.0.0-b334 [algebraic-graphs]  include containers-0.7-d79e [algebraic-graphs]  include deepseq-1.5.1.0-3c62 [algebraic-graphs]  include transformers-0.6.1.2-2558 [algebraic-graphs]  Algebra.Graph=algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a:Algebra.Graph,Algebra.Graph.Acyclic.AdjacencyMap=algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a:Algebra.Graph.Acyclic.AdjacencyMap,Algebra.Graph.AdjacencyIntMap=algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a:Algebra.Graph.AdjacencyIntMap,Algebra.Graph.AdjacencyIntMap.Algorithm=algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a:Algebra.Graph.AdjacencyIntMap.Algorithm,Algebra.Graph.AdjacencyMap=algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a:Algebra.Graph.AdjacencyMap,Algebra.Graph.AdjacencyMap.Algorithm=algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a:Algebra.Graph.AdjacencyMap.Algorithm,Algebra.Graph.Bipartite.AdjacencyMap=algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a:Algebra.Graph.Bipartite.AdjacencyMap,Algebra.Graph.Bipartite.AdjacencyMap.Algorithm=algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a:Algebra.Graph.Bipartite.AdjacencyMap.Algorithm,Algebra.Graph.Class=algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a:Algebra.Graph.Class,Algebra.Graph.Example.Todo=algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a:Algebra.Graph.Example.Todo,Algebra.Graph.Export=algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a:Algebra.Graph.Export,Algebra.Graph.Export.Dot=algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a:Algebra.Graph.Export.Dot,Algebra.Graph.HigherKinded.Class=algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a:Algebra.Graph.HigherKinded.Class,Algebra.Graph.Internal=algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a:Algebra.Graph.Internal,Algebra.Graph.Label=algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a:Algebra.Graph.Label,Algebra.Graph.Labelled=algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a:Algebra.Graph.Labelled,Algebra.Graph.Labelled.AdjacencyMap=algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a:Algebra.Graph.Labelled.AdjacencyMap,Algebra.Graph.Labelled.Example.Automaton=algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a:Algebra.Graph.Labelled.Example.Automaton,Algebra.Graph.Labelled.Example.Network=algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a:Algebra.Graph.Labelled.Example.Network,Algebra.Graph.NonEmpty=algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a:Algebra.Graph.NonEmpty,Algebra.Graph.NonEmpty.AdjacencyMap=algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a:Algebra.Graph.NonEmpty.AdjacencyMap,Algebra.Graph.Relation=algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a:Algebra.Graph.Relation,Algebra.Graph.Relation.Preorder=algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a:Algebra.Graph.Relation.Preorder,Algebra.Graph.Relation.Reflexive=algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a:Algebra.Graph.Relation.Reflexive,Algebra.Graph.Relation.Symmetric=algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a:Algebra.Graph.Relation.Symmetric,Algebra.Graph.Relation.Transitive=algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a:Algebra.Graph.Relation.Transitive,Algebra.Graph.ToGraph=algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a:Algebra.Graph.ToGraph,Algebra.Graph.Undirected=algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a:Algebra.Graph.Undirected,Data.Graph.Typed=algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a:Data.Graph.Typed [algebraic-graphs]  unit algebraic-graphs-0.7-FKZbJT4N7FF2rJCgZTt0Vb-main [algebraic-graphs]  include QuickCheck-2.15.0.1-4a6QuHFK3EgHKorV6DzjdR [algebraic-graphs]  include algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a [algebraic-graphs]  include array-0.5.8.0-d6d4 [algebraic-graphs]  include base-4.21.0.0-b334 [algebraic-graphs]  include containers-0.7-d79e [algebraic-graphs]  include deepseq-1.5.1.0-3c62 [algebraic-graphs]  include extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX [algebraic-graphs]  include inspection-testing-0.6.2-BXrtKPpIYmk3oPkvyBHJek [algebraic-graphs]  include transformers-0.6.1.2-2558 [algebraic-graphs] Ready component graph: [algebraic-graphs]  definite algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a [algebraic-graphs]  depends array-0.5.8.0-d6d4 [algebraic-graphs]  depends base-4.21.0.0-b334 [algebraic-graphs]  depends containers-0.7-d79e [algebraic-graphs]  depends deepseq-1.5.1.0-3c62 [algebraic-graphs]  depends transformers-0.6.1.2-2558 [algebraic-graphs]  definite algebraic-graphs-0.7-FKZbJT4N7FF2rJCgZTt0Vb-main [algebraic-graphs]  depends QuickCheck-2.15.0.1-4a6QuHFK3EgHKorV6DzjdR [algebraic-graphs]  depends algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a [algebraic-graphs]  depends array-0.5.8.0-d6d4 [algebraic-graphs]  depends base-4.21.0.0-b334 [algebraic-graphs]  depends containers-0.7-d79e [algebraic-graphs]  depends deepseq-1.5.1.0-3c62 [algebraic-graphs]  depends extra-1.8.1-Cv3JP6hZJ5o6wgM112jJGX [algebraic-graphs]  depends inspection-testing-0.6.2-BXrtKPpIYmk3oPkvyBHJek [algebraic-graphs]  depends transformers-0.6.1.2-2558 [algebraic-graphs] Using Cabal-3.14.1.0 compiled by ghc-9.12 [algebraic-graphs] Using compiler: ghc-9.12.2 [algebraic-graphs] Using install prefix: [algebraic-graphs] /nix/store/fs2iyc6c2n6f5z2x54nny3fsi996p3m1-algebraic-graphs-0.7 [algebraic-graphs] Executables installed in: [algebraic-graphs] /nix/store/fs2iyc6c2n6f5z2x54nny3fsi996p3m1-algebraic-graphs-0.7/bin [algebraic-graphs] Libraries installed in: [algebraic-graphs] /nix/store/fs2iyc6c2n6f5z2x54nny3fsi996p3m1-algebraic-graphs-0.7/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a [algebraic-graphs] Dynamic Libraries installed in: [algebraic-graphs] /nix/store/fs2iyc6c2n6f5z2x54nny3fsi996p3m1-algebraic-graphs-0.7/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3 [algebraic-graphs] Private executables installed in: [algebraic-graphs] /nix/store/fs2iyc6c2n6f5z2x54nny3fsi996p3m1-algebraic-graphs-0.7/libexec/x86_64-linux-ghc-9.12.2-82d3/algebraic-graphs-0.7 [algebraic-graphs] Data files installed in: [algebraic-graphs] /nix/store/fs2iyc6c2n6f5z2x54nny3fsi996p3m1-algebraic-graphs-0.7/share/x86_64-linux-ghc-9.12.2-82d3/algebraic-graphs-0.7 [algebraic-graphs] Documentation installed in: [algebraic-graphs] /nix/store/4syljhmgi93jzr8cdmlar9dpmjsd53nv-algebraic-graphs-0.7-doc/share/doc/algebraic-graphs-0.7 [algebraic-graphs] Configuration files installed in: [algebraic-graphs] /nix/store/fs2iyc6c2n6f5z2x54nny3fsi996p3m1-algebraic-graphs-0.7/etc [algebraic-graphs] No alex found [algebraic-graphs] Using ar found on system at: [algebraic-graphs] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar [algebraic-graphs] No c2hs found [algebraic-graphs] No cpphs found [algebraic-graphs] No doctest found [algebraic-graphs] Using gcc version 14.3.0 given by user at: [algebraic-graphs] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc [algebraic-graphs] Using ghc version 9.12.2 found on system at: [algebraic-graphs] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc [algebraic-graphs] Using ghc-pkg version 9.12.2 found on system at: [algebraic-graphs] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc-pkg-9.12.2 [algebraic-graphs] No ghcjs found [algebraic-graphs] No ghcjs-pkg found [algebraic-graphs] No greencard found [algebraic-graphs] Using haddock version 2.30.0 found on system at: [algebraic-graphs] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/haddock-ghc-9.12.2 [algebraic-graphs] No happy found [algebraic-graphs] No haskell-suite found [algebraic-graphs] No haskell-suite-pkg found [algebraic-graphs] No hmake found [algebraic-graphs] Using hpc version 0.69 found on system at: [algebraic-graphs] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/hpc-ghc-9.12.2 [algebraic-graphs] Using hsc2hs version 0.68.10 found on system at: [algebraic-graphs] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/hsc2hs-ghc-9.12.2 [algebraic-graphs] Using hscolour version 1.25 found on system at: [algebraic-graphs] /nix/store/02s9rad0jn6nj8z96k357im73hkzqsnw-hscolour-1.25/bin/HsColour [algebraic-graphs] No jhc found [algebraic-graphs] Using ld found on system at: [algebraic-graphs] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld [algebraic-graphs] No pkg-config found [algebraic-graphs] Using runghc version 9.12.2 found on system at: [algebraic-graphs] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/runghc-9.12.2 [algebraic-graphs] Using strip version 2.44 found on system at: [algebraic-graphs] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip [algebraic-graphs] Using tar found on system at: [algebraic-graphs] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar [algebraic-graphs] No uhc found [algebraic-graphs] Phase: buildPhase [algebraic-graphs] Preprocessing library for algebraic-graphs-0.7... [algebraic-graphs] Building library for algebraic-graphs-0.7... [algebraic-graphs] [ 1 of 29] Compiling Algebra.Graph.AdjacencyMap ( src/Algebra/Graph/AdjacencyMap.hs, dist/build/Algebra/Graph/AdjacencyMap.o, dist/build/Algebra/Graph/AdjacencyMap.dyn_o ) [algebraic-graphs] [ 2 of 29] Compiling Algebra.Graph.AdjacencyIntMap ( src/Algebra/Graph/AdjacencyIntMap.hs, dist/build/Algebra/Graph/AdjacencyIntMap.o, dist/build/Algebra/Graph/AdjacencyIntMap.dyn_o ) [algebraic-graphs] [ 3 of 29] Compiling Algebra.Graph.AdjacencyIntMap.Algorithm ( src/Algebra/Graph/AdjacencyIntMap/Algorithm.hs, dist/build/Algebra/Graph/AdjacencyIntMap/Algorithm.o, dist/build/Algebra/Graph/AdjacencyIntMap/Algorithm.dyn_o ) [algebraic-graphs] [ 4 of 29] Compiling Algebra.Graph.Internal ( src/Algebra/Graph/Internal.hs, dist/build/Algebra/Graph/Internal.o, dist/build/Algebra/Graph/Internal.dyn_o ) [algebraic-graphs] [ 5 of 29] Compiling Algebra.Graph ( src/Algebra/Graph.hs, dist/build/Algebra/Graph.o, dist/build/Algebra/Graph.dyn_o ) [algebraic-graphs] [ 6 of 29] Compiling Algebra.Graph.HigherKinded.Class ( src/Algebra/Graph/HigherKinded/Class.hs, dist/build/Algebra/Graph/HigherKinded/Class.o, dist/build/Algebra/Graph/HigherKinded/Class.dyn_o ) [algebraic-graphs] [ 7 of 29] Compiling Algebra.Graph.Bipartite.AdjacencyMap ( src/Algebra/Graph/Bipartite/AdjacencyMap.hs, dist/build/Algebra/Graph/Bipartite/AdjacencyMap.o, dist/build/Algebra/Graph/Bipartite/AdjacencyMap.dyn_o ) [algebraic-graphs] [ 8 of 29] Compiling Algebra.Graph.Bipartite.AdjacencyMap.Algorithm ( src/Algebra/Graph/Bipartite/AdjacencyMap/Algorithm.hs, dist/build/Algebra/Graph/Bipartite/AdjacencyMap/Algorithm.o, dist/build/Algebra/Graph/Bipartite/AdjacencyMap/Algorithm.dyn_o ) [algebraic-graphs] [ 9 of 29] Compiling Algebra.Graph.Label ( src/Algebra/Graph/Label.hs, dist/build/Algebra/Graph/Label.o, dist/build/Algebra/Graph/Label.dyn_o ) [algebraic-graphs] [10 of 29] Compiling Algebra.Graph.NonEmpty.AdjacencyMap ( src/Algebra/Graph/NonEmpty/AdjacencyMap.hs, dist/build/Algebra/Graph/NonEmpty/AdjacencyMap.o, dist/build/Algebra/Graph/NonEmpty/AdjacencyMap.dyn_o ) [algebraic-graphs] [11 of 29] Compiling Algebra.Graph.AdjacencyMap.Algorithm ( src/Algebra/Graph/AdjacencyMap/Algorithm.hs, dist/build/Algebra/Graph/AdjacencyMap/Algorithm.o, dist/build/Algebra/Graph/AdjacencyMap/Algorithm.dyn_o ) [algebraic-graphs] src/Algebra/Graph/AdjacencyMap/Algorithm.hs:384:43: warning: []8;;https://errors.haskell.org/messages/GHC-63394\GHC-63394]8;;\] [-Wx-partial] [algebraic-graphs]  In the use of ‘head’ [algebraic-graphs]  (imported from Prelude, but defined in GHC.Internal.List): [algebraic-graphs]  "This is a partial function, it throws an error on empty lists. Use pattern matching, 'Data.List.uncons' or 'Data.Maybe.listToMaybe' instead. Consider refactoring to use "Data.List.NonEmpty"." [algebraic-graphs]  | [algebraic-graphs] 384 | exit v = do newComponent <- (v==).snd.head <$> gets boundaryStack [algebraic-graphs]  | ^^^^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/AdjacencyMap/Algorithm.hs:391:21: warning: []8;;https://errors.haskell.org/messages/GHC-63394\GHC-63394]8;;\] [-Wx-partial] [algebraic-graphs]  In the use of ‘tail’ [algebraic-graphs]  (imported from Prelude, but defined in GHC.Internal.List): [algebraic-graphs]  "This is a partial function, it throws an error on empty lists. Replace it with 'drop' 1, or use pattern matching or 'GHC.Internal.Data.List.uncons' instead. Consider refactoring to use "Data.List.NonEmpty"." [algebraic-graphs]  | [algebraic-graphs] 391 | pth' = tail v_pth' -- Here we know that v_pth' starts with v [algebraic-graphs]  | ^^^^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/AdjacencyMap/Algorithm.hs:395:26: warning: []8;;https://errors.haskell.org/messages/GHC-63394\GHC-63394]8;;\] [-Wx-partial] [algebraic-graphs]  In the use of ‘head’ [algebraic-graphs]  (imported from Prelude, but defined in GHC.Internal.List): [algebraic-graphs]  "This is a partial function, it throws an error on empty lists. Use pattern matching, 'Data.List.uncons' or 'Data.Maybe.listToMaybe' instead. Consider refactoring to use "Data.List.NonEmpty"." [algebraic-graphs]  | [algebraic-graphs] 395 | p_v = fst $ head bnd [algebraic-graphs]  | ^^^^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/AdjacencyMap/Algorithm.hs:397:21: warning: []8;;https://errors.haskell.org/messages/GHC-63394\GHC-63394]8;;\] [-Wx-partial] [algebraic-graphs]  In the use of ‘tail’ [algebraic-graphs]  (imported from Prelude, but defined in GHC.Internal.List): [algebraic-graphs]  "This is a partial function, it throws an error on empty lists. Replace it with 'drop' 1, or use pattern matching or 'GHC.Internal.Data.List.uncons' instead. Consider refactoring to use "Data.List.NonEmpty"." [algebraic-graphs]  | [algebraic-graphs] 397 | bnd' = tail bnd [algebraic-graphs]  | ^^^^ [algebraic-graphs]  [algebraic-graphs] [12 of 29] Compiling Algebra.Graph.Acyclic.AdjacencyMap ( src/Algebra/Graph/Acyclic/AdjacencyMap.hs, dist/build/Algebra/Graph/Acyclic/AdjacencyMap.o, dist/build/Algebra/Graph/Acyclic/AdjacencyMap.dyn_o ) [algebraic-graphs] [13 of 29] Compiling Algebra.Graph.ToGraph ( src/Algebra/Graph/ToGraph.hs, dist/build/Algebra/Graph/ToGraph.o, dist/build/Algebra/Graph/ToGraph.dyn_o ) [algebraic-graphs] src/Algebra/Graph/ToGraph.hs:171:32: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 171 | vertexIntSet :: ToVertex t ~ Int => t -> IntSet [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/ToGraph.hs:197:29: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 197 | preIntSet :: ToVertex t ~ Int => Int -> t -> IntSet [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/ToGraph.hs:215:30: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 215 | postIntSet :: ToVertex t ~ Int => Int -> t -> IntSet [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/ToGraph.hs:303:37: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 303 | toAdjacencyIntMap :: ToVertex t ~ Int => t -> AIM.AdjacencyIntMap [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/ToGraph.hs:312:46: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 312 | toAdjacencyIntMapTranspose :: ToVertex t ~ Int => t -> AIM.AdjacencyIntMap [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/ToGraph.hs:452:43: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 452 | adjacencyIntMap :: (ToGraph t, ToVertex t ~ Int) => t -> IntMap IntSet [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/ToGraph.hs:471:52: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 471 | adjacencyIntMapTranspose :: (ToGraph t, ToVertex t ~ Int) => t -> IntMap IntSet [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] [14 of 29] Compiling Algebra.Graph.Relation ( src/Algebra/Graph/Relation.hs, dist/build/Algebra/Graph/Relation.o, dist/build/Algebra/Graph/Relation.dyn_o ) [algebraic-graphs] [15 of 29] Compiling Algebra.Graph.Relation.Symmetric ( src/Algebra/Graph/Relation/Symmetric.hs, dist/build/Algebra/Graph/Relation/Symmetric.o, dist/build/Algebra/Graph/Relation/Symmetric.dyn_o ) [algebraic-graphs] [16 of 29] Compiling Algebra.Graph.NonEmpty ( src/Algebra/Graph/NonEmpty.hs, dist/build/Algebra/Graph/NonEmpty.o, dist/build/Algebra/Graph/NonEmpty.dyn_o ) [algebraic-graphs] [17 of 29] Compiling Algebra.Graph.Labelled.AdjacencyMap ( src/Algebra/Graph/Labelled/AdjacencyMap.hs, dist/build/Algebra/Graph/Labelled/AdjacencyMap.o, dist/build/Algebra/Graph/Labelled/AdjacencyMap.dyn_o ) [algebraic-graphs] [18 of 29] Compiling Algebra.Graph.Labelled ( src/Algebra/Graph/Labelled.hs, dist/build/Algebra/Graph/Labelled.o, dist/build/Algebra/Graph/Labelled.dyn_o ) [algebraic-graphs] [19 of 29] Compiling Algebra.Graph.Labelled.Example.Network ( src/Algebra/Graph/Labelled/Example/Network.hs, dist/build/Algebra/Graph/Labelled/Example/Network.o, dist/build/Algebra/Graph/Labelled/Example/Network.dyn_o ) [algebraic-graphs] [20 of 29] Compiling Algebra.Graph.Labelled.Example.Automaton ( src/Algebra/Graph/Labelled/Example/Automaton.hs, dist/build/Algebra/Graph/Labelled/Example/Automaton.o, dist/build/Algebra/Graph/Labelled/Example/Automaton.dyn_o ) [algebraic-graphs] [21 of 29] Compiling Algebra.Graph.Export ( src/Algebra/Graph/Export.hs, dist/build/Algebra/Graph/Export.o, dist/build/Algebra/Graph/Export.dyn_o ) [algebraic-graphs] src/Algebra/Graph/Export.hs:185:41: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 185 | export :: (Ord a, ToGraph g, ToVertex g ~ a) => (a -> Doc s) -> (a -> a -> Doc s) -> g -> Doc s [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] [22 of 29] Compiling Algebra.Graph.Export.Dot ( src/Algebra/Graph/Export/Dot.hs, dist/build/Algebra/Graph/Export/Dot.o, dist/build/Algebra/Graph/Export/Dot.dyn_o ) [algebraic-graphs] src/Algebra/Graph/Export/Dot.hs:121:63: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 121 | export :: (IsString s, Monoid s, Ord a, ToGraph g, ToVertex g ~ a) => Style a s -> g -> s [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/Export/Dot.hs:165:78: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 165 | exportAsIs :: (IsString s, Monoid s, Ord (ToVertex g), ToGraph g, ToVertex g ~ s) => g -> s [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] [23 of 29] Compiling Algebra.Graph.Undirected ( src/Algebra/Graph/Undirected.hs, dist/build/Algebra/Graph/Undirected.o, dist/build/Algebra/Graph/Undirected.dyn_o ) [algebraic-graphs] [24 of 29] Compiling Algebra.Graph.Class ( src/Algebra/Graph/Class.hs, dist/build/Algebra/Graph/Class.o, dist/build/Algebra/Graph/Class.dyn_o ) [algebraic-graphs] [25 of 29] Compiling Algebra.Graph.Relation.Transitive ( src/Algebra/Graph/Relation/Transitive.hs, dist/build/Algebra/Graph/Relation/Transitive.o, dist/build/Algebra/Graph/Relation/Transitive.dyn_o ) [algebraic-graphs] [26 of 29] Compiling Algebra.Graph.Relation.Reflexive ( src/Algebra/Graph/Relation/Reflexive.hs, dist/build/Algebra/Graph/Relation/Reflexive.o, dist/build/Algebra/Graph/Relation/Reflexive.dyn_o ) [algebraic-graphs] [27 of 29] Compiling Algebra.Graph.Relation.Preorder ( src/Algebra/Graph/Relation/Preorder.hs, dist/build/Algebra/Graph/Relation/Preorder.o, dist/build/Algebra/Graph/Relation/Preorder.dyn_o ) [algebraic-graphs] [28 of 29] Compiling Algebra.Graph.Example.Todo ( src/Algebra/Graph/Example/Todo.hs, dist/build/Algebra/Graph/Example/Todo.o, dist/build/Algebra/Graph/Example/Todo.dyn_o ) [algebraic-graphs] [29 of 29] Compiling Data.Graph.Typed ( src/Data/Graph/Typed.hs, dist/build/Data/Graph/Typed.o, dist/build/Data/Graph/Typed.dyn_o ) [algebraic-graphs] [ 1 of 29] Compiling Algebra.Graph.AdjacencyMap ( src/Algebra/Graph/AdjacencyMap.hs, dist/build/Algebra/Graph/AdjacencyMap.p_o ) [algebraic-graphs] [ 2 of 29] Compiling Algebra.Graph.AdjacencyIntMap ( src/Algebra/Graph/AdjacencyIntMap.hs, dist/build/Algebra/Graph/AdjacencyIntMap.p_o ) [algebraic-graphs] [ 3 of 29] Compiling Algebra.Graph.AdjacencyIntMap.Algorithm ( src/Algebra/Graph/AdjacencyIntMap/Algorithm.hs, dist/build/Algebra/Graph/AdjacencyIntMap/Algorithm.p_o ) [algebraic-graphs] [ 4 of 29] Compiling Algebra.Graph.Internal ( src/Algebra/Graph/Internal.hs, dist/build/Algebra/Graph/Internal.p_o ) [algebraic-graphs] [ 5 of 29] Compiling Algebra.Graph ( src/Algebra/Graph.hs, dist/build/Algebra/Graph.p_o ) [algebraic-graphs] [ 6 of 29] Compiling Algebra.Graph.HigherKinded.Class ( src/Algebra/Graph/HigherKinded/Class.hs, dist/build/Algebra/Graph/HigherKinded/Class.p_o ) [algebraic-graphs] [ 7 of 29] Compiling Algebra.Graph.Bipartite.AdjacencyMap ( src/Algebra/Graph/Bipartite/AdjacencyMap.hs, dist/build/Algebra/Graph/Bipartite/AdjacencyMap.p_o ) [algebraic-graphs] [ 8 of 29] Compiling Algebra.Graph.Bipartite.AdjacencyMap.Algorithm ( src/Algebra/Graph/Bipartite/AdjacencyMap/Algorithm.hs, dist/build/Algebra/Graph/Bipartite/AdjacencyMap/Algorithm.p_o ) [algebraic-graphs] [ 9 of 29] Compiling Algebra.Graph.Label ( src/Algebra/Graph/Label.hs, dist/build/Algebra/Graph/Label.p_o ) [algebraic-graphs] [10 of 29] Compiling Algebra.Graph.NonEmpty.AdjacencyMap ( src/Algebra/Graph/NonEmpty/AdjacencyMap.hs, dist/build/Algebra/Graph/NonEmpty/AdjacencyMap.p_o ) [algebraic-graphs] [11 of 29] Compiling Algebra.Graph.AdjacencyMap.Algorithm ( src/Algebra/Graph/AdjacencyMap/Algorithm.hs, dist/build/Algebra/Graph/AdjacencyMap/Algorithm.p_o ) [algebraic-graphs] src/Algebra/Graph/AdjacencyMap/Algorithm.hs:384:43: warning: []8;;https://errors.haskell.org/messages/GHC-63394\GHC-63394]8;;\] [-Wx-partial] [algebraic-graphs]  In the use of ‘head’ [algebraic-graphs]  (imported from Prelude, but defined in GHC.Internal.List): [algebraic-graphs]  "This is a partial function, it throws an error on empty lists. Use pattern matching, 'Data.List.uncons' or 'Data.Maybe.listToMaybe' instead. Consider refactoring to use "Data.List.NonEmpty"." [algebraic-graphs]  | [algebraic-graphs] 384 | exit v = do newComponent <- (v==).snd.head <$> gets boundaryStack [algebraic-graphs]  | ^^^^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/AdjacencyMap/Algorithm.hs:391:21: warning: []8;;https://errors.haskell.org/messages/GHC-63394\GHC-63394]8;;\] [-Wx-partial] [algebraic-graphs]  In the use of ‘tail’ [algebraic-graphs]  (imported from Prelude, but defined in GHC.Internal.List): [algebraic-graphs]  "This is a partial function, it throws an error on empty lists. Replace it with 'drop' 1, or use pattern matching or 'GHC.Internal.Data.List.uncons' instead. Consider refactoring to use "Data.List.NonEmpty"." [algebraic-graphs]  | [algebraic-graphs] 391 | pth' = tail v_pth' -- Here we know that v_pth' starts with v [algebraic-graphs]  | ^^^^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/AdjacencyMap/Algorithm.hs:395:26: warning: []8;;https://errors.haskell.org/messages/GHC-63394\GHC-63394]8;;\] [-Wx-partial] [algebraic-graphs]  In the use of ‘head’ [algebraic-graphs]  (imported from Prelude, but defined in GHC.Internal.List): [algebraic-graphs]  "This is a partial function, it throws an error on empty lists. Use pattern matching, 'Data.List.uncons' or 'Data.Maybe.listToMaybe' instead. Consider refactoring to use "Data.List.NonEmpty"." [algebraic-graphs]  | [algebraic-graphs] 395 | p_v = fst $ head bnd [algebraic-graphs]  | ^^^^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/AdjacencyMap/Algorithm.hs:397:21: warning: []8;;https://errors.haskell.org/messages/GHC-63394\GHC-63394]8;;\] [-Wx-partial] [algebraic-graphs]  In the use of ‘tail’ [algebraic-graphs]  (imported from Prelude, but defined in GHC.Internal.List): [algebraic-graphs]  "This is a partial function, it throws an error on empty lists. Replace it with 'drop' 1, or use pattern matching or 'GHC.Internal.Data.List.uncons' instead. Consider refactoring to use "Data.List.NonEmpty"." [algebraic-graphs]  | [algebraic-graphs] 397 | bnd' = tail bnd [algebraic-graphs]  | ^^^^ [algebraic-graphs]  [algebraic-graphs] [12 of 29] Compiling Algebra.Graph.Acyclic.AdjacencyMap ( src/Algebra/Graph/Acyclic/AdjacencyMap.hs, dist/build/Algebra/Graph/Acyclic/AdjacencyMap.p_o ) [algebraic-graphs] [13 of 29] Compiling Algebra.Graph.ToGraph ( src/Algebra/Graph/ToGraph.hs, dist/build/Algebra/Graph/ToGraph.p_o ) [algebraic-graphs] src/Algebra/Graph/ToGraph.hs:171:32: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 171 | vertexIntSet :: ToVertex t ~ Int => t -> IntSet [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/ToGraph.hs:197:29: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 197 | preIntSet :: ToVertex t ~ Int => Int -> t -> IntSet [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/ToGraph.hs:215:30: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 215 | postIntSet :: ToVertex t ~ Int => Int -> t -> IntSet [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/ToGraph.hs:303:37: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 303 | toAdjacencyIntMap :: ToVertex t ~ Int => t -> AIM.AdjacencyIntMap [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/ToGraph.hs:312:46: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 312 | toAdjacencyIntMapTranspose :: ToVertex t ~ Int => t -> AIM.AdjacencyIntMap [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/ToGraph.hs:452:43: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 452 | adjacencyIntMap :: (ToGraph t, ToVertex t ~ Int) => t -> IntMap IntSet [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/ToGraph.hs:471:52: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 471 | adjacencyIntMapTranspose :: (ToGraph t, ToVertex t ~ Int) => t -> IntMap IntSet [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] [14 of 29] Compiling Algebra.Graph.Relation ( src/Algebra/Graph/Relation.hs, dist/build/Algebra/Graph/Relation.p_o ) [algebraic-graphs] [15 of 29] Compiling Algebra.Graph.Relation.Symmetric ( src/Algebra/Graph/Relation/Symmetric.hs, dist/build/Algebra/Graph/Relation/Symmetric.p_o ) [algebraic-graphs] [16 of 29] Compiling Algebra.Graph.NonEmpty ( src/Algebra/Graph/NonEmpty.hs, dist/build/Algebra/Graph/NonEmpty.p_o ) [algebraic-graphs] [17 of 29] Compiling Algebra.Graph.Labelled.AdjacencyMap ( src/Algebra/Graph/Labelled/AdjacencyMap.hs, dist/build/Algebra/Graph/Labelled/AdjacencyMap.p_o ) [algebraic-graphs] [18 of 29] Compiling Algebra.Graph.Labelled ( src/Algebra/Graph/Labelled.hs, dist/build/Algebra/Graph/Labelled.p_o ) [algebraic-graphs] [19 of 29] Compiling Algebra.Graph.Labelled.Example.Network ( src/Algebra/Graph/Labelled/Example/Network.hs, dist/build/Algebra/Graph/Labelled/Example/Network.p_o ) [algebraic-graphs] [20 of 29] Compiling Algebra.Graph.Labelled.Example.Automaton ( src/Algebra/Graph/Labelled/Example/Automaton.hs, dist/build/Algebra/Graph/Labelled/Example/Automaton.p_o ) [algebraic-graphs] [21 of 29] Compiling Algebra.Graph.Export ( src/Algebra/Graph/Export.hs, dist/build/Algebra/Graph/Export.p_o ) [algebraic-graphs] src/Algebra/Graph/Export.hs:185:41: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 185 | export :: (Ord a, ToGraph g, ToVertex g ~ a) => (a -> Doc s) -> (a -> a -> Doc s) -> g -> Doc s [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] [22 of 29] Compiling Algebra.Graph.Export.Dot ( src/Algebra/Graph/Export/Dot.hs, dist/build/Algebra/Graph/Export/Dot.p_o ) [algebraic-graphs] src/Algebra/Graph/Export/Dot.hs:121:63: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 121 | export :: (IsString s, Monoid s, Ord a, ToGraph g, ToVertex g ~ a) => Style a s -> g -> s [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/Export/Dot.hs:165:78: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 165 | exportAsIs :: (IsString s, Monoid s, Ord (ToVertex g), ToGraph g, ToVertex g ~ s) => g -> s [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] [23 of 29] Compiling Algebra.Graph.Undirected ( src/Algebra/Graph/Undirected.hs, dist/build/Algebra/Graph/Undirected.p_o ) [algebraic-graphs] [24 of 29] Compiling Algebra.Graph.Class ( src/Algebra/Graph/Class.hs, dist/build/Algebra/Graph/Class.p_o ) [algebraic-graphs] [25 of 29] Compiling Algebra.Graph.Relation.Transitive ( src/Algebra/Graph/Relation/Transitive.hs, dist/build/Algebra/Graph/Relation/Transitive.p_o ) [algebraic-graphs] [26 of 29] Compiling Algebra.Graph.Relation.Reflexive ( src/Algebra/Graph/Relation/Reflexive.hs, dist/build/Algebra/Graph/Relation/Reflexive.p_o ) [algebraic-graphs] [27 of 29] Compiling Algebra.Graph.Relation.Preorder ( src/Algebra/Graph/Relation/Preorder.hs, dist/build/Algebra/Graph/Relation/Preorder.p_o ) [algebraic-graphs] [28 of 29] Compiling Algebra.Graph.Example.Todo ( src/Algebra/Graph/Example/Todo.hs, dist/build/Algebra/Graph/Example/Todo.p_o ) [algebraic-graphs] [29 of 29] Compiling Data.Graph.Typed ( src/Data/Graph/Typed.hs, dist/build/Data/Graph/Typed.p_o ) [algebraic-graphs] Preprocessing test suite 'main' for algebraic-graphs-0.7... [algebraic-graphs] Building test suite 'main' for algebraic-graphs-0.7... [algebraic-graphs] [ 1 of 23] Compiling Algebra.Graph.Test.Arbitrary ( test/Algebra/Graph/Test/Arbitrary.hs, dist/build/main/main-tmp/Algebra/Graph/Test/Arbitrary.o, dist/build/main/main-tmp/Algebra/Graph/Test/Arbitrary.dyn_o ) [algebraic-graphs] [ 2 of 23] Compiling Algebra.Graph.Test.API ( test/Algebra/Graph/Test/API.hs, dist/build/main/main-tmp/Algebra/Graph/Test/API.o, dist/build/main/main-tmp/Algebra/Graph/Test/API.dyn_o ) [algebraic-graphs] [ 3 of 23] Compiling Algebra.Graph.Test ( test/Algebra/Graph/Test.hs, dist/build/main/main-tmp/Algebra/Graph/Test.o, dist/build/main/main-tmp/Algebra/Graph/Test.dyn_o ) [algebraic-graphs] [ 4 of 23] Compiling Algebra.Graph.Test.Acyclic.AdjacencyMap ( test/Algebra/Graph/Test/Acyclic/AdjacencyMap.hs, dist/build/main/main-tmp/Algebra/Graph/Test/Acyclic/AdjacencyMap.o, dist/build/main/main-tmp/Algebra/Graph/Test/Acyclic/AdjacencyMap.dyn_o ) [algebraic-graphs] [ 5 of 23] Compiling Algebra.Graph.Test.Bipartite.AdjacencyMap ( test/Algebra/Graph/Test/Bipartite/AdjacencyMap.hs, dist/build/main/main-tmp/Algebra/Graph/Test/Bipartite/AdjacencyMap.o, dist/build/main/main-tmp/Algebra/Graph/Test/Bipartite/AdjacencyMap.dyn_o ) [algebraic-graphs] test/Algebra/Graph/Test/Bipartite/AdjacencyMap.hs:725:71: warning: []8;;https://errors.haskell.org/messages/GHC-00834\GHC-00834]8;;\] [-Wview-pattern-signatures] [algebraic-graphs]  • Found an unparenthesized pattern signature on the RHS of a view pattern. [algebraic-graphs]  • This code might stop working in a future GHC release [algebraic-graphs]  due to a planned change to the precedence of view patterns, [algebraic-graphs]  unless the view function is an endofunction. [algebraic-graphs]  • Current parse: ‘apply -> (f1 :: Int -> Int)’ [algebraic-graphs]  Future parse: ‘(apply -> f1) :: Int -> Int’ [algebraic-graphs]  Suggested fix: Parenthesize the RHS of the view pattern [algebraic-graphs]  | [algebraic-graphs] 725 | test "bimap f1 g1 . bimap f2 g2 == bimap (f1 . f2) (g1 . g2)" $ \(apply -> f1 :: Int -> Int) (apply -> g1 :: Int -> Int) (apply -> f2 :: Int -> Int) (apply -> g2 :: Int -> Int) x -> [algebraic-graphs]  | ^^^^^^^^^^^^^^^^^^^^^^^^^ [algebraic-graphs]  [algebraic-graphs] test/Algebra/Graph/Test/Bipartite/AdjacencyMap.hs:725:99: warning: []8;;https://errors.haskell.org/messages/GHC-00834\GHC-00834]8;;\] [-Wview-pattern-signatures] [algebraic-graphs]  • Found an unparenthesized pattern signature on the RHS of a view pattern. [algebraic-graphs]  • This code might stop working in a future GHC release [algebraic-graphs]  due to a planned change to the precedence of view patterns, [algebraic-graphs]  unless the view function is an endofunction. [algebraic-graphs]  • Current parse: ‘apply -> (g1 :: Int -> Int)’ [algebraic-graphs]  Future parse: ‘(apply -> g1) :: Int -> Int’ [algebraic-graphs]  Suggested fix: Parenthesize the RHS of the view pattern [algebraic-graphs]  | [algebraic-graphs] 725 | test "bimap f1 g1 . bimap f2 g2 == bimap (f1 . f2) (g1 . g2)" $ \(apply -> f1 :: Int -> Int) (apply -> g1 :: Int -> Int) (apply -> f2 :: Int -> Int) (apply -> g2 :: Int -> Int) x -> [algebraic-graphs]  | ^^^^^^^^^^^^^^^^^^^^^^^^^ [algebraic-graphs]  [algebraic-graphs] test/Algebra/Graph/Test/Bipartite/AdjacencyMap.hs:725:127: warning: []8;;https://errors.haskell.org/messages/GHC-00834\GHC-00834]8;;\] [-Wview-pattern-signatures] [algebraic-graphs]  • Found an unparenthesized pattern signature on the RHS of a view pattern. [algebraic-graphs]  • This code might stop working in a future GHC release [algebraic-graphs]  due to a planned change to the precedence of view patterns, [algebraic-graphs]  unless the view function is an endofunction. [algebraic-graphs]  • Current parse: ‘apply -> (f2 :: Int -> Int)’ [algebraic-graphs]  Future parse: ‘(apply -> f2) :: Int -> Int’ [algebraic-graphs]  Suggested fix: Parenthesize the RHS of the view pattern [algebraic-graphs]  | [algebraic-graphs] 725 | test "bimap f1 g1 . bimap f2 g2 == bimap (f1 . f2) (g1 . g2)" $ \(apply -> f1 :: Int -> Int) (apply -> g1 :: Int -> Int) (apply -> f2 :: Int -> Int) (apply -> g2 :: Int -> Int) x -> [algebraic-graphs]  | ^^^^^^^^^^^^^^^^^^^^^^^^^ [algebraic-graphs]  [algebraic-graphs] test/Algebra/Graph/Test/Bipartite/AdjacencyMap.hs:725:155: warning: []8;;https://errors.haskell.org/messages/GHC-00834\GHC-00834]8;;\] [-Wview-pattern-signatures] [algebraic-graphs]  • Found an unparenthesized pattern signature on the RHS of a view pattern. [algebraic-graphs]  • This code might stop working in a future GHC release [algebraic-graphs]  due to a planned change to the precedence of view patterns, [algebraic-graphs]  unless the view function is an endofunction. [algebraic-graphs]  • Current parse: ‘apply -> (g2 :: Int -> Int)’ [algebraic-graphs]  Future parse: ‘(apply -> g2) :: Int -> Int’ [algebraic-graphs]  Suggested fix: Parenthesize the RHS of the view pattern [algebraic-graphs]  | [algebraic-graphs] 725 | test "bimap f1 g1 . bimap f2 g2 == bimap (f1 . f2) (g1 . g2)" $ \(apply -> f1 :: Int -> Int) (apply -> g1 :: Int -> Int) (apply -> f2 :: Int -> Int) (apply -> g2 :: Int -> Int) x -> [algebraic-graphs]  | ^^^^^^^^^^^^^^^^^^^^^^^^^ [algebraic-graphs]  [algebraic-graphs] [ 6 of 23] Compiling Algebra.Graph.Test.Example.Todo ( test/Algebra/Graph/Test/Example/Todo.hs, dist/build/main/main-tmp/Algebra/Graph/Test/Example/Todo.o, dist/build/main/main-tmp/Algebra/Graph/Test/Example/Todo.dyn_o ) [algebraic-graphs] [ 7 of 23] Compiling Algebra.Graph.Test.Export ( test/Algebra/Graph/Test/Export.hs, dist/build/main/main-tmp/Algebra/Graph/Test/Export.o, dist/build/main/main-tmp/Algebra/Graph/Test/Export.dyn_o ) [algebraic-graphs] [ 8 of 23] Compiling Algebra.Graph.Test.Generic ( test/Algebra/Graph/Test/Generic.hs, dist/build/main/main-tmp/Algebra/Graph/Test/Generic.o, dist/build/main/main-tmp/Algebra/Graph/Test/Generic.dyn_o ) [algebraic-graphs] test/Algebra/Graph/Test/Generic.hs:1501:50: warning: []8;;https://errors.haskell.org/messages/GHC-00834\GHC-00834]8;;\] [-Wview-pattern-signatures] [algebraic-graphs]  • Found an unparenthesized pattern signature on the RHS of a view pattern. [algebraic-graphs]  • This code might stop working in a future GHC release [algebraic-graphs]  due to a planned change to the precedence of view patterns, [algebraic-graphs]  unless the view function is an endofunction. [algebraic-graphs]  • Current parse: ‘apply -> (f :: Int -> Int)’ [algebraic-graphs]  Future parse: ‘(apply -> f) :: Int -> Int’ [algebraic-graphs]  Suggested fix: Parenthesize the RHS of the view pattern [algebraic-graphs]  | [algebraic-graphs] 1501 | test "gmap f . gmap g == gmap (f . g)" $ \(apply -> f :: Int -> Int) (apply -> g :: Int -> Int) x -> [algebraic-graphs]  | ^^^^^^^^^^^^^^^^^^^^^^^^ [algebraic-graphs]  [algebraic-graphs] test/Algebra/Graph/Test/Generic.hs:1501:77: warning: []8;;https://errors.haskell.org/messages/GHC-00834\GHC-00834]8;;\] [-Wview-pattern-signatures] [algebraic-graphs]  • Found an unparenthesized pattern signature on the RHS of a view pattern. [algebraic-graphs]  • This code might stop working in a future GHC release [algebraic-graphs]  due to a planned change to the precedence of view patterns, [algebraic-graphs]  unless the view function is an endofunction. [algebraic-graphs]  • Current parse: ‘apply -> (g :: Int -> Int)’ [algebraic-graphs]  Future parse: ‘(apply -> g) :: Int -> Int’ [algebraic-graphs]  Suggested fix: Parenthesize the RHS of the view pattern [algebraic-graphs]  | [algebraic-graphs] 1501 | test "gmap f . gmap g == gmap (f . g)" $ \(apply -> f :: Int -> Int) (apply -> g :: Int -> Int) x -> [algebraic-graphs]  | ^^^^^^^^^^^^^^^^^^^^^^^^ [algebraic-graphs]  [algebraic-graphs] [ 9 of 23] Compiling Algebra.Graph.Test.AdjacencyMap ( test/Algebra/Graph/Test/AdjacencyMap.hs, dist/build/main/main-tmp/Algebra/Graph/Test/AdjacencyMap.o, dist/build/main/main-tmp/Algebra/Graph/Test/AdjacencyMap.dyn_o ) [algebraic-graphs] [10 of 23] Compiling Algebra.Graph.Test.AdjacencyIntMap ( test/Algebra/Graph/Test/AdjacencyIntMap.hs, dist/build/main/main-tmp/Algebra/Graph/Test/AdjacencyIntMap.o, dist/build/main/main-tmp/Algebra/Graph/Test/AdjacencyIntMap.dyn_o ) [algebraic-graphs] [11 of 23] Compiling Algebra.Graph.Test.Graph ( test/Algebra/Graph/Test/Graph.hs, dist/build/main/main-tmp/Algebra/Graph/Test/Graph.o, dist/build/main/main-tmp/Algebra/Graph/Test/Graph.dyn_o ) [algebraic-graphs] [12 of 23] Compiling Algebra.Graph.Test.Internal ( test/Algebra/Graph/Test/Internal.hs, dist/build/main/main-tmp/Algebra/Graph/Test/Internal.o, dist/build/main/main-tmp/Algebra/Graph/Test/Internal.dyn_o ) [algebraic-graphs] [13 of 23] Compiling Algebra.Graph.Test.Label ( test/Algebra/Graph/Test/Label.hs, dist/build/main/main-tmp/Algebra/Graph/Test/Label.o, dist/build/main/main-tmp/Algebra/Graph/Test/Label.dyn_o ) [algebraic-graphs] [14 of 23] Compiling Algebra.Graph.Test.Labelled.AdjacencyMap ( test/Algebra/Graph/Test/Labelled/AdjacencyMap.hs, dist/build/main/main-tmp/Algebra/Graph/Test/Labelled/AdjacencyMap.o, dist/build/main/main-tmp/Algebra/Graph/Test/Labelled/AdjacencyMap.dyn_o ) [algebraic-graphs] [15 of 23] Compiling Algebra.Graph.Test.Labelled.Graph ( test/Algebra/Graph/Test/Labelled/Graph.hs, dist/build/main/main-tmp/Algebra/Graph/Test/Labelled/Graph.o, dist/build/main/main-tmp/Algebra/Graph/Test/Labelled/Graph.dyn_o ) [algebraic-graphs] [16 of 23] Compiling Algebra.Graph.Test.NonEmpty.AdjacencyMap ( test/Algebra/Graph/Test/NonEmpty/AdjacencyMap.hs, dist/build/main/main-tmp/Algebra/Graph/Test/NonEmpty/AdjacencyMap.o, dist/build/main/main-tmp/Algebra/Graph/Test/NonEmpty/AdjacencyMap.dyn_o ) [algebraic-graphs] [17 of 23] Compiling Algebra.Graph.Test.NonEmpty.Graph ( test/Algebra/Graph/Test/NonEmpty/Graph.hs, dist/build/main/main-tmp/Algebra/Graph/Test/NonEmpty/Graph.o, dist/build/main/main-tmp/Algebra/Graph/Test/NonEmpty/Graph.dyn_o ) [algebraic-graphs] [18 of 23] Compiling Algebra.Graph.Test.Relation ( test/Algebra/Graph/Test/Relation.hs, dist/build/main/main-tmp/Algebra/Graph/Test/Relation.o, dist/build/main/main-tmp/Algebra/Graph/Test/Relation.dyn_o ) [algebraic-graphs] [19 of 23] Compiling Algebra.Graph.Test.Relation.Symmetric ( test/Algebra/Graph/Test/Relation/Symmetric.hs, dist/build/main/main-tmp/Algebra/Graph/Test/Relation/Symmetric.o, dist/build/main/main-tmp/Algebra/Graph/Test/Relation/Symmetric.dyn_o ) [algebraic-graphs] [20 of 23] Compiling Algebra.Graph.Test.RewriteRules ( test/Algebra/Graph/Test/RewriteRules.hs, dist/build/main/main-tmp/Algebra/Graph/Test/RewriteRules.o, dist/build/main/main-tmp/Algebra/Graph/Test/RewriteRules.dyn_o ) [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:43:1: emptyI === emptyIR passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:49:1: vertexI === vertexIR passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:56:1: overlayI === overlayIR passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:63:1: connectI === connectIR passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:69:1: overlaysC `hasNoType` GHC.Types.List passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:76:1: overlaysP === overlaysPR passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:82:1: verticesCP `hasNoType` GHC.Types.List passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:83:1: verticesCP `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:89:1: connectsC `hasNoType` GHC.Types.List passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:96:1: connectsP === connectsPR passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:102:1: isSubgraphOfC `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:108:1: cliqueCP `hasNoType` GHC.Types.List passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:109:1: cliqueCP `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:115:1: edgesCP `hasNoType` GHC.Types.List passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:116:1: edgesCP `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:122:1: starCP `hasNoType` GHC.Types.List passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:123:1: starCP `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:130:1: fmapCP `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:137:1: bindC === bindCR passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:144:1: bindP === bindPR passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:151:1: apC === apCR passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:159:1: apP === apPR passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:165:1: eqC `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:170:1: eqT `hasNoType` Algebra.Graph.AdjacencyMap.AdjacencyMap passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:176:1: ordC `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:181:1: ordT `hasNoType` Algebra.Graph.AdjacencyMap.AdjacencyMap passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:187:1: isEmptyC `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:193:1: sizeC `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:199:1: vertexSetC `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:205:1: vertexSetC `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:210:1: vertexCountT `hasNoType` Data.Set.Internal.Set passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:216:1: edgeCountC `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:221:1: edgeCountT `hasNoType` Data.Set.Internal.Set passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:227:1: vertexListCP `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:228:1: vertexListCP `hasNoType` GHC.Types.List passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:233:1: vertexListT `hasNoType` Data.Set.Internal.Set passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:239:1: edgeSetC `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:244:1: vertexListT `hasNoType` Algebra.Graph.AdjacencyMap.AdjacencyMap passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:250:1: edgeListCP `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:251:1: edgeListCP `hasNoType` GHC.Types.List passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:256:1: edgeListT `hasNoType` Algebra.Graph.AdjacencyMap.AdjacencyMap passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:262:1: hasVertexC `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:268:1: hasEdgeC `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:274:1: adjacencyListC `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:280:1: pathP `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:286:1: circuitP `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:292:1: bicliqueCP `hasNoType` GHC.Types.List passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:293:1: bicliqueCP `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:301:1: replaceVertexCP `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:309:1: mergeVerticesCP `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:316:1: splitVertexCP `hasNoType` GHC.Types.List passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:317:1: splitVertexCP `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:324:1: transposeCP `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:339:1: simplifyC === simplifyCR passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:345:1: composeCP `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:352:1: induceCP `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:359:1: induceJustCP `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] test/Algebra/Graph/Test/RewriteRules.hs:365:1: contextC `hasNoType` Algebra.Graph.Graph passed. [algebraic-graphs] inspection testing successful [algebraic-graphs]  expected successes: 58 [algebraic-graphs] [21 of 23] Compiling Algebra.Graph.Test.Undirected ( test/Algebra/Graph/Test/Undirected.hs, dist/build/main/main-tmp/Algebra/Graph/Test/Undirected.o, dist/build/main/main-tmp/Algebra/Graph/Test/Undirected.dyn_o ) [algebraic-graphs] [22 of 23] Compiling Data.Graph.Test.Typed ( test/Data/Graph/Test/Typed.hs, dist/build/main/main-tmp/Data/Graph/Test/Typed.o, dist/build/main/main-tmp/Data/Graph/Test/Typed.dyn_o ) [algebraic-graphs] [23 of 23] Compiling Main ( test/Main.hs, dist/build/main/main-tmp/Main.o, dist/build/main/main-tmp/Main.dyn_o ) [algebraic-graphs] [24 of 24] Linking dist/build/main/main [algebraic-graphs] Phase: checkPhase [algebraic-graphs] Running 1 test suites... [algebraic-graphs] Test suite main: RUNNING... [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.Show ============ [algebraic-graphs] OK: show empty == "empty" [algebraic-graphs] OK: show (shrink 1) == "vertex 1" [algebraic-graphs] OK: show (shrink $ 1 + 2) == "vertices [1,2]" [algebraic-graphs] OK: show (shrink $ 1 * 2) == "(fromJust . toAcyclic) (edge 1 2)" [algebraic-graphs] OK: show (shrink $ 1 * 2 * 3) == "(fromJust . toAcyclic) (edges [(1,2),(1,3),(2,3)])" [algebraic-graphs] OK: show (shrink $ 1 * 2 + 3) == "(fromJust . toAcyclic) (overlay (vertex 3) (edge 1 2))" [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.fromAcyclic ============ [algebraic-graphs] OK: fromAcyclic empty == empty [algebraic-graphs] OK: fromAcyclic . vertex == vertex [algebraic-graphs] OK: fromAcyclic (shrink $ 1 * 3 * 2) == star 1 [2,3] [algebraic-graphs] OK: vertexCount . fromAcyclic == vertexCount [algebraic-graphs] OK: edgeCount . fromAcyclic == edgeCount [algebraic-graphs] OK: isAcyclic . fromAcyclic == const True [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.empty ============ [algebraic-graphs] OK: isEmpty empty == True [algebraic-graphs] OK: hasVertex x empty == False [algebraic-graphs] OK: vertexCount empty == 0 [algebraic-graphs] OK: edgeCount empty == 0 [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.vertex ============ [algebraic-graphs] OK: isEmpty (vertex x) == False [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y) [algebraic-graphs] OK: vertexCount (vertex x) == 1 [algebraic-graphs] OK: edgeCount (vertex x) == 0 [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.vertices ============ [algebraic-graphs] OK: vertices [] == empty [algebraic-graphs] OK: vertices [x] == vertex x [algebraic-graphs] OK: hasVertex x . vertices == elem x [algebraic-graphs] OK: vertexCount . vertices == length . nub [algebraic-graphs] OK: vertexSet . vertices == Set.fromList [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.union ============ [algebraic-graphs] OK: vertexSet (union x y) == [algebraic-graphs] OK: edgeSet (union x y) == [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.join ============ [algebraic-graphs] OK: vertexSet (join x y) == [algebraic-graphs] OK: edgeSet (join x y) == [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.isSubgraphOf ============ [algebraic-graphs] OK: isSubgraphOf empty x == True [algebraic-graphs] OK: isSubgraphOf (vertex x) empty == False [algebraic-graphs] OK: isSubgraphOf (induce p x) x == True [algebraic-graphs] OK: isSubgraphOf x (transitiveClosure x) == True [algebraic-graphs] OK: isSubgraphOf x y ==> x <= y [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.isEmpty ============ [algebraic-graphs] OK: isEmpty empty == True [algebraic-graphs] OK: isEmpty (vertex x) == False [algebraic-graphs] OK: isEmpty (removeVertex x $ vertex x) == True [algebraic-graphs] OK: isEmpty (removeEdge 1 2 $ shrink $ 1 * 2) == False [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.hasVertex ============ [algebraic-graphs] OK: hasVertex x empty == False [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y) [algebraic-graphs] OK: hasVertex x . removeVertex x == const False [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.hasEdge ============ [algebraic-graphs] OK: hasEdge x y empty == False [algebraic-graphs] OK: hasEdge x y (vertex z) == False [algebraic-graphs] OK: hasEdge 1 2 (shrink $ 1 * 2) == True [algebraic-graphs] OK: hasEdge x y . removeEdge x y == const False [algebraic-graphs] OK: hasEdge x y == elem (x,y) . edgeList [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.vertexCount ============ [algebraic-graphs] OK: vertexCount empty == 0 [algebraic-graphs] OK: vertexCount (vertex x) == 1 [algebraic-graphs] OK: vertexCount == length . vertexList [algebraic-graphs] OK: vertexCount x < vertexCount y ==> x < y [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.edgeCount ============ [algebraic-graphs] OK: edgeCount empty == 0 [algebraic-graphs] OK: edgeCount (vertex x) == 0 [algebraic-graphs] OK: edgeCount (shrink $ 1 * 2) == 1 [algebraic-graphs] OK: edgeCount == length . edgeList [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.vertexList ============ [algebraic-graphs] OK: vertexList empty == [] [algebraic-graphs] OK: vertexList (vertex x) == [x] [algebraic-graphs] OK: vertexList . vertices == nub . sort [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.edgeList ============ [algebraic-graphs] OK: edgeList empty == [] [algebraic-graphs] OK: edgeList (vertex x) == [] [algebraic-graphs] OK: edgeList (shrink $ 2 * 1) == [(2,1)] [algebraic-graphs] OK: edgeList . transpose == sort . map swap . edgeList [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.adjacencyList ============ [algebraic-graphs] OK: adjacencyList empty == [] [algebraic-graphs] OK: adjacencyList (vertex x) == [(x, [])] [algebraic-graphs] OK: adjacencyList (shrink $ 1 * 2) == [(1, [2]), (2, [])] [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.vertexSet ============ [algebraic-graphs] OK: vertexSet empty == Set.empty [algebraic-graphs] OK: vertexSet . vertex == Set.singleton [algebraic-graphs] OK: vertexSet . vertices == Set.fromList [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.edgeSet ============ [algebraic-graphs] OK: edgeSet empty == Set.empty [algebraic-graphs] OK: edgeSet (vertex x) == Set.empty [algebraic-graphs] OK: edgeSet (shrink $ 1 * 2) == Set.singleton (1,2) [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.preSet ============ [algebraic-graphs] OK: preSet x empty == Set.empty [algebraic-graphs] OK: preSet x (vertex x) == Set.empty [algebraic-graphs] OK: preSet 1 (shrink $ 1 * 2) == Set.empty [algebraic-graphs] OK: preSet 2 (shrink $ 1 * 2) == Set.fromList [1] [algebraic-graphs] OK: Set.member x . preSet x == const False [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.postSet ============ [algebraic-graphs] OK: postSet x empty == Set.empty [algebraic-graphs] OK: postSet x (vertex x) == Set.empty [algebraic-graphs] OK: postSet 1 (shrink $ 1 * 2) == Set.fromList [2] [algebraic-graphs] OK: postSet 2 (shrink $ 1 * 2) == Set.empty [algebraic-graphs] OK: Set.member x . postSet x == const False [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.removeVertex ============ [algebraic-graphs] OK: removeVertex x (vertex x) == empty [algebraic-graphs] OK: removeVertex 1 (vertex 2) == vertex 2 [algebraic-graphs] OK: removeVertex 1 (shrink $ 1 * 2) == vertex 2 [algebraic-graphs] OK: removeVertex x . removeVertex x == removeVertex x [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.removeEdge ============ [algebraic-graphs] OK: removeEdge 1 2 (shrink $ 1 * 2) == vertices [1,2] [algebraic-graphs] OK: removeEdge x y . removeEdge x y == removeEdge x y [algebraic-graphs] OK: removeEdge x y . removeVertex x == removeVertex x [algebraic-graphs] OK: removeEdge 1 2 (shrink $ 1 * 2 * 3) == shrink ((1 + 2) * 3) [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.transpose ============ [algebraic-graphs] OK: transpose empty == empty [algebraic-graphs] OK: transpose (vertex x) == vertex x [algebraic-graphs] OK: transpose . transpose == id [algebraic-graphs] OK: edgeList . transpose == sort . map swap . edgeList [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.induce ============ [algebraic-graphs] OK: induce (const True ) x == x [algebraic-graphs] OK: induce (const False) x == empty [algebraic-graphs] OK: induce (/= x) == removeVertex x [algebraic-graphs] OK: induce p . induce q == induce (\x -> p x && q x) [algebraic-graphs] OK: isSubgraphOf (induce p x) x == True [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.induceJust ============ [algebraic-graphs] OK: induceJust (vertex Nothing) == empty [algebraic-graphs] OK: induceJust . vertex . Just == vertex [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.box ============ [algebraic-graphs] OK: edgeList (box (shrink $ 1 * 2) (shrink $ 10 * 20)) == [algebraic-graphs]  [algebraic-graphs] OK: box x y ~~ box y x [algebraic-graphs] OK: box x (vertex ()) ~~ x [algebraic-graphs] OK: box x empty ~~ empty [algebraic-graphs] OK: box x (box y z) ~~ box (box x y) z [algebraic-graphs] OK: transpose (box x y) == box (transpose x) (transpose y) [algebraic-graphs] OK: vertexCount (box x y) == vertexCount x * vertexCount y [algebraic-graphs] OK: edgeCount (box x y) <= vertexCount x * edgeCount y + edgeCount x * vertexCount y [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.transitiveClosure ============ [algebraic-graphs] OK: transitiveClosure empty == empty [algebraic-graphs] OK: transitiveClosure (vertex x) == vertex x [algebraic-graphs] OK: transitiveClosure (shrink $ 1 * 2 + 2 * 3) == shrink (1 * 2 + 1 * 3 + 2 * 3) [algebraic-graphs] OK: transitiveClosure . transitiveClosure == transitiveClosure [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.topSort ============ [algebraic-graphs] OK: topSort empty == [] [algebraic-graphs] OK: topSort (vertex x) == [x] [algebraic-graphs] OK: topSort (shrink $ 1 * (2 + 4) + 3 * 4) == [1, 2, 3, 4] [algebraic-graphs] OK: topSort (join x y) == fmap Left (topSort x) ++ fmap Right (topSort y) [algebraic-graphs] OK: Right . topSort == AM.topSort . fromAcyclic [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.scc ============ [algebraic-graphs] OK: scc empty == empty [algebraic-graphs] OK: scc (vertex x) == vertex (NonEmpty.vertex x) [algebraic-graphs] OK: scc (edge 1 1) == vertex (NonEmpty.edge 1 1) [algebraic-graphs] OK: edgeList $ scc (edge 1 2) == [ (NonEmpty.vertex 1, NonEmpty.vertex 2) ] [algebraic-graphs] OK: edgeList $ scc (3 * 1 * 4 * 1 * 5) == [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.toAcyclic ============ [algebraic-graphs] OK: toAcyclic (path [1,2,3]) == Just (shrink $ 1 * 2 + 2 * 3) [algebraic-graphs] OK: toAcyclic (clique [3,2,1]) == Just (transpose (shrink $ 1 * 2 * 3)) [algebraic-graphs] OK: toAcyclic (circuit [1,2,3]) == Nothing [algebraic-graphs] OK: toAcyclic . fromAcyclic == Just [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.toAcyclicOrd ============ [algebraic-graphs] OK: toAcyclicOrd empty == empty [algebraic-graphs] OK: toAcyclicOrd . vertex == vertex [algebraic-graphs] OK: toAcyclicOrd (1 + 2) == shrink (1 + 2) [algebraic-graphs] OK: toAcyclicOrd (1 * 2) == shrink (1 * 2) [algebraic-graphs] OK: toAcyclicOrd (2 * 1) == shrink (1 + 2) [algebraic-graphs] OK: toAcyclicOrd (1 * 2 * 1) == shrink (1 * 2) [algebraic-graphs] OK: toAcyclicOrd (1 * 2 * 3) == shrink (1 * 2 * 3) [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.shrink ============ [algebraic-graphs] OK: shrink . AM.vertex == vertex [algebraic-graphs] OK: shrink . AM.vertices == vertices [algebraic-graphs] OK: shrink . fromAcyclic == id [algebraic-graphs]  [algebraic-graphs] ============ Acyclic.AdjacencyMap.consistent ============ [algebraic-graphs] OK: Arbitrary [algebraic-graphs] OK: empty [algebraic-graphs] OK: vertex [algebraic-graphs] OK: vertices [algebraic-graphs] OK: union [algebraic-graphs] OK: join [algebraic-graphs] OK: transpose [algebraic-graphs] OK: box [algebraic-graphs] OK: transitiveClosure [algebraic-graphs] OK: scc [algebraic-graphs] OK: toAcyclic [algebraic-graphs] OK: toAcyclicOrd [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap ============ [algebraic-graphs] OK: Axioms of graphs [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.fromAdjacencyMap ============ [algebraic-graphs] OK: fromAdjacencyMap == stars . AdjacencyMap.adjacencyList [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.consistent ============ [algebraic-graphs] OK: Consistency of the Arbitrary instance [algebraic-graphs]  [algebraic-graphs] OK: consistent empty == True [algebraic-graphs] OK: consistent (vertex x) == True [algebraic-graphs] OK: consistent (overlay x y) == True [algebraic-graphs] OK: consistent (connect x y) == True [algebraic-graphs] OK: consistent (edge x y) == True [algebraic-graphs] OK: consistent (edges xs) == True [algebraic-graphs] OK: consistent (stars xs) == True [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.Show ============ [algebraic-graphs] OK: show (empty ) == "empty" [algebraic-graphs] OK: show (1 ) == "vertex 1" [algebraic-graphs] OK: show (1 + 2 ) == "vertices [1,2]" [algebraic-graphs] OK: show (1 * 2 ) == "edge 1 2" [algebraic-graphs] OK: show (1 * 2 * 3) == "edges [(1,2),(1,3),(2,3)]" [algebraic-graphs] OK: show (1 * 2 + 3) == "overlay (vertex 3) (edge 1 2)" [algebraic-graphs]  [algebraic-graphs] OK: show (vertex (-1) ) == "vertex (-1)" [algebraic-graphs] OK: show (vertex (-1) + vertex (-2) ) == "vertices [-2,-1]" [algebraic-graphs] OK: show (vertex (-2) * vertex (-1) ) == "edge (-2) (-1)" [algebraic-graphs] OK: show (vertex (-3) * vertex (-2) * vertex (-1)) == "edges [(-3,-2),(-3,-1),(-2,-1)]" [algebraic-graphs] OK: show (vertex (-3) * vertex (-2) + vertex (-1)) == "overlay (vertex (-1)) (edge (-3) (-2))" [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.Ord ============ [algebraic-graphs] OK: vertex 1 < vertex 2 [algebraic-graphs] OK: vertex 3 < edge 1 2 [algebraic-graphs] OK: vertex 1 < edge 1 1 [algebraic-graphs] OK: edge 1 1 < edge 1 2 [algebraic-graphs] OK: edge 1 2 < edge 1 1 + edge 2 2 [algebraic-graphs] OK: edge 1 2 < edge 1 3 [algebraic-graphs] OK: x <= x + y [algebraic-graphs] OK: x + y <= x * y [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.empty ============ [algebraic-graphs] OK: isEmpty empty == True [algebraic-graphs] OK: hasVertex x empty == False [algebraic-graphs] OK: vertexCount empty == 0 [algebraic-graphs] OK: edgeCount empty == 0 [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.vertex ============ [algebraic-graphs] OK: isEmpty (vertex x) == False [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y) [algebraic-graphs] OK: vertexCount (vertex x) == 1 [algebraic-graphs] OK: edgeCount (vertex x) == 0 [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.edge ============ [algebraic-graphs] OK: edge x y == connect (vertex x) (vertex y) [algebraic-graphs] OK: hasEdge x y (edge x y) == True [algebraic-graphs] OK: edgeCount (edge x y) == 1 [algebraic-graphs] OK: vertexCount (edge 1 1) == 1 [algebraic-graphs] OK: vertexCount (edge 1 2) == 2 [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.overlay ============ [algebraic-graphs] OK: isEmpty (overlay x y) == isEmpty x && isEmpty y [algebraic-graphs] OK: hasVertex z (overlay x y) == hasVertex z x || hasVertex z y [algebraic-graphs] OK: vertexCount (overlay x y) >= vertexCount x [algebraic-graphs] OK: vertexCount (overlay x y) <= vertexCount x + vertexCount y [algebraic-graphs] OK: edgeCount (overlay x y) >= edgeCount x [algebraic-graphs] OK: edgeCount (overlay x y) <= edgeCount x + edgeCount y [algebraic-graphs] OK: vertexCount (overlay 1 2) == 2 [algebraic-graphs] OK: edgeCount (overlay 1 2) == 0 [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.connect ============ [algebraic-graphs] OK: isEmpty (connect x y) == isEmpty x && isEmpty y [algebraic-graphs] OK: hasVertex z (connect x y) == hasVertex z x || hasVertex z y [algebraic-graphs] OK: vertexCount (connect x y) >= vertexCount x [algebraic-graphs] OK: vertexCount (connect x y) <= vertexCount x + vertexCount y [algebraic-graphs] OK: edgeCount (connect x y) >= edgeCount x [algebraic-graphs] OK: edgeCount (connect x y) >= edgeCount y [algebraic-graphs] OK: edgeCount (connect x y) >= vertexCount x * vertexCount y [algebraic-graphs] OK: edgeCount (connect x y) <= vertexCount x * vertexCount y + edgeCount x + edgeCount y [algebraic-graphs] OK: vertexCount (connect 1 2) == 2 [algebraic-graphs] OK: edgeCount (connect 1 2) == 1 [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.vertices ============ [algebraic-graphs] OK: vertices [] == empty [algebraic-graphs] OK: vertices [x] == vertex x [algebraic-graphs] OK: vertices == overlays . map vertex [algebraic-graphs] OK: hasVertex x . vertices == elem x [algebraic-graphs] OK: vertexCount . vertices == length . nub [algebraic-graphs] OK: vertexSet . vertices == Set.fromList [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.edges ============ [algebraic-graphs] OK: edges [] == empty [algebraic-graphs] OK: edges [(x,y)] == edge x y [algebraic-graphs] OK: edges == overlays . map (uncurry edge) [algebraic-graphs] OK: edgeCount . edges == length . nub [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.overlays ============ [algebraic-graphs] OK: overlays [] == empty [algebraic-graphs] OK: overlays [x] == x [algebraic-graphs] OK: overlays [x,y] == overlay x y [algebraic-graphs] OK: overlays == foldr overlay empty [algebraic-graphs] OK: isEmpty . overlays == all isEmpty [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.connects ============ [algebraic-graphs] OK: connects [] == empty [algebraic-graphs] OK: connects [x] == x [algebraic-graphs] OK: connects [x,y] == connect x y [algebraic-graphs] OK: connects == foldr connect empty [algebraic-graphs] OK: isEmpty . connects == all isEmpty [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.fromAdjacencyIntSets ============ [algebraic-graphs] OK: fromAdjacencyIntSets [] == empty [algebraic-graphs] OK: fromAdjacencyIntSets [(x, IntSet.empty)] == vertex x [algebraic-graphs] OK: fromAdjacencyIntSets [(x, IntSet.singleton y)] == edge x y [algebraic-graphs] OK: fromAdjacencyIntSets . map (fmap IntSet.fromList) == stars [algebraic-graphs] OK: overlay (fromAdjacencyIntSets xs) (fromAdjacencyIntSets ys) == fromAdjacencyIntSets (xs ++ ys) [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.isSubgraphOf ============ [algebraic-graphs] OK: isSubgraphOf empty x == True [algebraic-graphs] OK: isSubgraphOf (vertex x) empty == False [algebraic-graphs] OK: isSubgraphOf x (overlay x y) == True [algebraic-graphs] OK: isSubgraphOf (overlay x y) (connect x y) == True [algebraic-graphs] OK: isSubgraphOf (path xs) (circuit xs) == True [algebraic-graphs] OK: isSubgraphOf x y ==> x <= y [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.toGraph et al. ============ [algebraic-graphs] OK: toGraph == foldg Empty Vertex Overlay Connect [algebraic-graphs] OK: foldg == Algebra.Graph.foldg . toGraph [algebraic-graphs] OK: isEmpty == foldg True (const False) (&&) (&&) [algebraic-graphs] OK: size == foldg 1 (const 1) (+) (+) [algebraic-graphs] OK: hasVertex x == foldg False (==x) (||) (||) [algebraic-graphs] OK: hasEdge x y == Algebra.Graph.hasEdge x y . toGraph [algebraic-graphs] OK: vertexCount == Set.size . vertexSet [algebraic-graphs] OK: edgeCount == Set.size . edgeSet [algebraic-graphs] OK: vertexList == Set.toAscList . vertexSet [algebraic-graphs] OK: edgeList == Set.toAscList . edgeSet [algebraic-graphs] OK: vertexSet == foldg Set.empty Set.singleton Set.union Set.union [algebraic-graphs] OK: vertexIntSet == foldg IntSet.empty IntSet.singleton IntSet.union IntSet.union [algebraic-graphs] OK: edgeSet == Algebra.Graph.AdjacencyMap.edgeSet . foldg empty vertex overlay connect [algebraic-graphs] OK: preSet x == Algebra.Graph.AdjacencyMap.preSet x . toAdjacencyMap [algebraic-graphs] OK: preIntSet x == Algebra.Graph.AdjacencyIntMap.preIntSet x . toAdjacencyIntMap [algebraic-graphs] OK: postSet x == Algebra.Graph.AdjacencyMap.postSet x . toAdjacencyMap [algebraic-graphs] OK: postIntSet x == Algebra.Graph.AdjacencyIntMap.postIntSet x . toAdjacencyIntMap [algebraic-graphs] OK: adjacencyList == Algebra.Graph.AdjacencyMap.adjacencyList . toAdjacencyMap [algebraic-graphs] OK: adjacencyMap == Algebra.Graph.AdjacencyMap.adjacencyMap . toAdjacencyMap [algebraic-graphs] OK: adjacencyIntMap == Algebra.Graph.AdjacencyIntMap.adjacencyIntMap . toAdjacencyIntMap [algebraic-graphs] OK: adjacencyMapTranspose == Algebra.Graph.AdjacencyMap.adjacencyMap . toAdjacencyMapTranspose [algebraic-graphs] OK: adjacencyIntMapTranspose == Algebra.Graph.AdjacencyIntMap.adjacencyIntMap . toAdjacencyIntMapTranspose [algebraic-graphs] OK: dfsForest == Algebra.Graph.AdjacencyMap.dfsForest . toAdjacencyMap [algebraic-graphs] OK: dfsForestFrom == Algebra.Graph.AdjacencyMap.dfsForestFrom . toAdjacencyMap [algebraic-graphs] OK: dfs == Algebra.Graph.AdjacencyMap.dfs . toAdjacencyMap [algebraic-graphs] OK: reachable == Algebra.Graph.AdjacencyMap.reachable . toAdjacencyMap [algebraic-graphs] OK: topSort == Algebra.Graph.AdjacencyMap.topSort . toAdjacencyMap [algebraic-graphs] OK: isAcyclic == Algebra.Graph.AdjacencyMap.isAcyclic . toAdjacencyMap [algebraic-graphs] OK: isTopSortOf vs == Algebra.Graph.AdjacencyMap.isTopSortOf vs . toAdjacencyMap [algebraic-graphs] OK: toAdjacencyMap == foldg empty vertex overlay connect [algebraic-graphs] OK: toAdjacencyMapTranspose == foldg empty vertex overlay (flip connect) [algebraic-graphs] OK: toAdjacencyIntMap == foldg empty vertex overlay connect [algebraic-graphs] OK: toAdjacencyIntMapTranspose == foldg empty vertex overlay (flip connect) [algebraic-graphs] OK: isDfsForestOf f == Algebra.Graph.AdjacencyMap.isDfsForestOf f . toAdjacencyMap [algebraic-graphs] OK: isTopSortOf vs == Algebra.Graph.AdjacencyMap.isTopSortOf vs . toAdjacencyMap [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.foldg ============ [algebraic-graphs] OK: foldg empty vertex overlay connect == id [algebraic-graphs] OK: foldg empty vertex overlay (flip connect) == transpose [algebraic-graphs] OK: foldg 1 (const 1) (+) (+) == size [algebraic-graphs] OK: foldg True (const False) (&&) (&&) == isEmpty [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.isEmpty ============ [algebraic-graphs] OK: isEmpty empty == True [algebraic-graphs] OK: isEmpty (overlay empty empty) == True [algebraic-graphs] OK: isEmpty (vertex x) == False [algebraic-graphs] OK: isEmpty (removeVertex x $ vertex x) == True [algebraic-graphs] OK: isEmpty (removeEdge x y $ edge x y) == False [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.hasVertex ============ [algebraic-graphs] OK: hasVertex x empty == False [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y) [algebraic-graphs] OK: hasVertex x . removeVertex x == const False [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.hasEdge ============ [algebraic-graphs] OK: hasEdge x y empty == False [algebraic-graphs] OK: hasEdge x y (vertex z) == False [algebraic-graphs] OK: hasEdge x y (edge x y) == True [algebraic-graphs] OK: hasEdge x y . removeEdge x y == const False [algebraic-graphs] OK: hasEdge x y == elem (x,y) . edgeList [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.vertexCount ============ [algebraic-graphs] OK: vertexCount empty == 0 [algebraic-graphs] OK: vertexCount (vertex x) == 1 [algebraic-graphs] OK: vertexCount == length . vertexList [algebraic-graphs] OK: vertexCount x < vertexCount y ==> x < y [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.edgeCount ============ [algebraic-graphs] OK: edgeCount empty == 0 [algebraic-graphs] OK: edgeCount (vertex x) == 0 [algebraic-graphs] OK: edgeCount (edge x y) == 1 [algebraic-graphs] OK: edgeCount == length . edgeList [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.vertexList ============ [algebraic-graphs] OK: vertexList empty == [] [algebraic-graphs] OK: vertexList (vertex x) == [x] [algebraic-graphs] OK: vertexList . vertices == nub . sort [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.vertexSet ============ [algebraic-graphs] OK: vertexSet empty == Set.empty [algebraic-graphs] OK: vertexSet . vertex == Set.singleton [algebraic-graphs] OK: vertexSet . vertices == Set.fromList [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.vertexIntSet ============ [algebraic-graphs] OK: vertexIntSet empty == IntSet.empty [algebraic-graphs] OK: vertexIntSet . vertex == IntSet.singleton [algebraic-graphs] OK: vertexIntSet . vertices == IntSet.fromList [algebraic-graphs] OK: vertexIntSet . clique == IntSet.fromList [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.edgeList ============ [algebraic-graphs] OK: edgeList empty == [] [algebraic-graphs] OK: edgeList (vertex x) == [] [algebraic-graphs] OK: edgeList (edge x y) == [(x,y)] [algebraic-graphs] OK: edgeList (star 2 [3,1]) == [(2,1), (2,3)] [algebraic-graphs] OK: edgeList . edges == nub . sort [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.edgeSet ============ [algebraic-graphs] OK: edgeSet empty == Set.empty [algebraic-graphs] OK: edgeSet (vertex x) == Set.empty [algebraic-graphs] OK: edgeSet (edge x y) == Set.singleton (x,y) [algebraic-graphs] OK: edgeSet . edges == Set.fromList [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.adjacencyList ============ [algebraic-graphs] OK: adjacencyList empty == [] [algebraic-graphs] OK: adjacencyList (vertex x) == [(x, [])] [algebraic-graphs] OK: adjacencyList (edge 1 2) == [(1, [2]), (2, [])] [algebraic-graphs] OK: adjacencyList (star 2 [3,1]) == [(1, []), (2, [1,3]), (3, [])] [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.preSet ============ [algebraic-graphs] OK: preSet x empty == Set.empty [algebraic-graphs] OK: preSet x (vertex x) == Set.empty [algebraic-graphs] OK: preSet 1 (edge 1 2) == Set.empty [algebraic-graphs] OK: preSet y (edge x y) == Set.fromList [x] [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.preIntSet ============ [algebraic-graphs] OK: preIntSet x empty == IntSet.empty [algebraic-graphs] OK: preIntSet x (vertex x) == IntSet.empty [algebraic-graphs] OK: preIntSet 1 (edge 1 2) == IntSet.empty [algebraic-graphs] OK: preIntSet y (edge x y) == IntSet.fromList [x] [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.postSet ============ [algebraic-graphs] OK: postSet x empty == Set.empty [algebraic-graphs] OK: postSet x (vertex x) == Set.empty [algebraic-graphs] OK: postSet x (edge x y) == Set.fromList [y] [algebraic-graphs] OK: postSet 2 (edge 1 2) == Set.empty [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.postIntSet ============ [algebraic-graphs] OK: postIntSet x empty == IntSet.empty [algebraic-graphs] OK: postIntSet x (vertex x) == IntSet.empty [algebraic-graphs] OK: postIntSet 2 (edge 1 2) == IntSet.empty [algebraic-graphs] OK: postIntSet x (edge x y) == IntSet.fromList [y] [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.path ============ [algebraic-graphs] OK: path [] == empty [algebraic-graphs] OK: path [x] == vertex x [algebraic-graphs] OK: path [x,y] == edge x y [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.circuit ============ [algebraic-graphs] OK: circuit [] == empty [algebraic-graphs] OK: circuit [x] == edge x x [algebraic-graphs] OK: circuit [x,y] == edges [(x,y), (y,x)] [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.clique ============ [algebraic-graphs] OK: clique [] == empty [algebraic-graphs] OK: clique [x] == vertex x [algebraic-graphs] OK: clique [x,y] == edge x y [algebraic-graphs] OK: clique [x,y,z] == edges [(x,y), (x,z), (y,z)] [algebraic-graphs] OK: clique (xs ++ ys) == connect (clique xs) (clique ys) [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.biclique ============ [algebraic-graphs] OK: biclique [] [] == empty [algebraic-graphs] OK: biclique [x] [] == vertex x [algebraic-graphs] OK: biclique [] [y] == vertex y [algebraic-graphs] OK: biclique [x1,x2] [y1,y2] == edges [(x1,y1), (x1,y2), (x2,y1), (x2,y2)] [algebraic-graphs] OK: biclique xs ys == connect (vertices xs) (vertices ys) [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.star ============ [algebraic-graphs] OK: star x [] == vertex x [algebraic-graphs] OK: star x [y] == edge x y [algebraic-graphs] OK: star x [y,z] == edges [(x,y), (x,z)] [algebraic-graphs] OK: star x ys == connect (vertex x) (vertices ys) [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.stars ============ [algebraic-graphs] OK: stars [] == empty [algebraic-graphs] OK: stars [(x, [])] == vertex x [algebraic-graphs] OK: stars [(x, [y])] == edge x y [algebraic-graphs] OK: stars [(x, ys)] == star x ys [algebraic-graphs] OK: stars == overlays . map (uncurry star) [algebraic-graphs] OK: stars . adjacencyList == id [algebraic-graphs] OK: overlay (stars xs) (stars ys) == stars (xs ++ ys) [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.tree ============ [algebraic-graphs] OK: tree (Node x []) == vertex x [algebraic-graphs] OK: tree (Node x [Node y [Node z []]]) == path [x,y,z] [algebraic-graphs] OK: tree (Node x [Node y [], Node z []]) == star x [y,z] [algebraic-graphs] OK: tree (Node 1 [Node 2 [], Node 3 [Node 4 [], Node 5 []]]) == edges [(1,2), (1,3), (3,4), (3,5)] [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.forest ============ [algebraic-graphs] OK: forest [] == empty [algebraic-graphs] OK: forest [x] == tree x [algebraic-graphs] OK: forest [Node 1 [Node 2 [], Node 3 []], Node 4 [Node 5 []]] == edges [(1,2), (1,3), (4,5)] [algebraic-graphs] OK: forest == overlays . map tree [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.removeVertex ============ [algebraic-graphs] OK: removeVertex x (vertex x) == empty [algebraic-graphs] OK: removeVertex 1 (vertex 2) == vertex 2 [algebraic-graphs] OK: removeVertex x (edge x x) == empty [algebraic-graphs] OK: removeVertex 1 (edge 1 2) == vertex 2 [algebraic-graphs] OK: removeVertex x . removeVertex x == removeVertex x [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.removeEdge ============ [algebraic-graphs] OK: removeEdge x y (edge x y) == vertices [x,y] [algebraic-graphs] OK: removeEdge x y . removeEdge x y == removeEdge x y [algebraic-graphs] OK: removeEdge x y . removeVertex x == removeVertex x [algebraic-graphs] OK: removeEdge 1 1 (1 * 1 * 2 * 2) == 1 * 2 * 2 [algebraic-graphs] OK: removeEdge 1 2 (1 * 1 * 2 * 2) == 1 * 1 + 2 * 2 [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.replaceVertex ============ [algebraic-graphs] OK: replaceVertex x x == id [algebraic-graphs] OK: replaceVertex x y (vertex x) == vertex y [algebraic-graphs] OK: replaceVertex x y == mergeVertices (== x) y [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.mergeVertices ============ [algebraic-graphs] OK: mergeVertices (const False) x == id [algebraic-graphs] OK: mergeVertices (== x) y == replaceVertex x y [algebraic-graphs] OK: mergeVertices even 1 (0 * 2) == 1 * 1 [algebraic-graphs] OK: mergeVertices odd 1 (3 + 4 * 5) == 4 * 1 [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.transpose ============ [algebraic-graphs] OK: transpose empty == empty [algebraic-graphs] OK: transpose (vertex x) == vertex x [algebraic-graphs] OK: transpose (edge x y) == edge y x [algebraic-graphs] OK: transpose . transpose == id [algebraic-graphs] OK: edgeList . transpose == sort . map swap . edgeList [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.gmap ============ [algebraic-graphs] OK: gmap f empty == empty [algebraic-graphs] OK: gmap f (vertex x) == vertex (f x) [algebraic-graphs] OK: gmap f (edge x y) == edge (f x) (f y) [algebraic-graphs] OK: gmap id == id [algebraic-graphs] OK: gmap f . gmap g == gmap (f . g) [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.induce ============ [algebraic-graphs] OK: induce (const True ) x == x [algebraic-graphs] OK: induce (const False) x == empty [algebraic-graphs] OK: induce (/= x) == removeVertex x [algebraic-graphs] OK: induce p . induce q == induce (\x -> p x && q x) [algebraic-graphs] OK: isSubgraphOf (induce p x) x == True [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.compose ============ [algebraic-graphs] OK: compose empty x == empty [algebraic-graphs] OK: compose x empty == empty [algebraic-graphs] OK: compose (vertex x) y == empty [algebraic-graphs] OK: compose x (vertex y) == empty [algebraic-graphs] OK: compose x (compose y z) == compose (compose x y) z [algebraic-graphs] OK: compose x (overlay y z) == overlay (compose x y) (compose x z) [algebraic-graphs] OK: compose (overlay x y) z == overlay (compose x z) (compose y z) [algebraic-graphs] OK: compose (edge x y) (edge y z) == edge x z [algebraic-graphs] OK: compose (path [1..5]) (path [1..5]) == edges [(1,3),(2,4),(3,5)] [algebraic-graphs] OK: compose (circuit [1..5]) (circuit [1..5]) == circuit [1,3,5,2,4] [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.closure ============ [algebraic-graphs] OK: closure empty == empty [algebraic-graphs] OK: closure (vertex x) == edge x x [algebraic-graphs] OK: closure (edge x x) == edge x x [algebraic-graphs] OK: closure (edge x y) == edges [(x,x), (x,y), (y,y)] [algebraic-graphs] OK: closure (path $ nub xs) == reflexiveClosure (clique $ nub xs) [algebraic-graphs] OK: closure == reflexiveClosure . transitiveClosure [algebraic-graphs] OK: closure == transitiveClosure . reflexiveClosure [algebraic-graphs] OK: closure . closure == closure [algebraic-graphs] OK: postSet x (closure y) == Set.fromList (reachable y x) [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.reflexiveClosure ============ [algebraic-graphs] OK: reflexiveClosure empty == empty [algebraic-graphs] OK: reflexiveClosure (vertex x) == edge x x [algebraic-graphs] OK: reflexiveClosure (edge x x) == edge x x [algebraic-graphs] OK: reflexiveClosure (edge x y) == edges [(x,x), (x,y), (y,y)] [algebraic-graphs] OK: reflexiveClosure . reflexiveClosure == reflexiveClosure [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.symmetricClosure ============ [algebraic-graphs] OK: symmetricClosure empty == empty [algebraic-graphs] OK: symmetricClosure (vertex x) == vertex x [algebraic-graphs] OK: symmetricClosure (edge x y) == edges [(x,y), (y,x)] [algebraic-graphs] OK: symmetricClosure x == overlay x (transpose x) [algebraic-graphs] OK: symmetricClosure . symmetricClosure == symmetricClosure [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.transitiveClosure ============ [algebraic-graphs] OK: transitiveClosure empty == empty [algebraic-graphs] OK: transitiveClosure (vertex x) == vertex x [algebraic-graphs] OK: transitiveClosure (edge x y) == edge x y [algebraic-graphs] OK: transitiveClosure (path $ nub xs) == clique (nub $ xs) [algebraic-graphs] OK: transitiveClosure . transitiveClosure == transitiveClosure [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.bfsForest ============ [algebraic-graphs] OK: forest $ bfsForest (edge 1 2) [0] == empty [algebraic-graphs] OK: forest $ bfsForest (edge 1 2) [1] == edge 1 2 [algebraic-graphs] OK: forest $ bfsForest (edge 1 2) [2] == vertex 2 [algebraic-graphs] OK: forest $ bfsForest (edge 1 2) [0,1,2] == vertices [1,2] [algebraic-graphs] OK: forest $ bfsForest (edge 1 2) [2,1,0] == vertices [1,2] [algebraic-graphs] OK: forest $ bfsForest (edge 1 1) [1] == vertex 1 [algebraic-graphs] OK: isSubgraphOf (forest $ bfsForest x vs) x == True [algebraic-graphs] OK: bfsForest x (vertexList x) == map ( -> Node v []) (nub $ vertexList x) [algebraic-graphs] OK: bfsForest x [] == [] [algebraic-graphs] OK: bfsForest empty vs == [] [algebraic-graphs] OK: bfsForest (3 * (1 + 4) * (1 + 5)) [1,4] == [algebraic-graphs] OK: forest $ bfsForest (circuit [1..5] + circuit [5,4..1]) [3] == path [3,2,1] + path [3,4,5] [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.bfs ============ [algebraic-graphs] OK: bfs (edge 1 2) [0] == [] [algebraic-graphs] OK: bfs (edge 1 2) [1] == [[1], [2]] [algebraic-graphs] OK: bfs (edge 1 2) [2] == [[2]] [algebraic-graphs] OK: bfs (edge 1 2) [1,2] == [[1,2]] [algebraic-graphs] OK: bfs (edge 1 2) [2,1] == [[2,1]] [algebraic-graphs] OK: bfs (edge 1 1) [1] == [[1]] [algebraic-graphs] OK: bfs empty vs == [] [algebraic-graphs] OK: bfs x [] == [] [algebraic-graphs] OK: bfs (1 * 2 + 3 * 4 + 5 * 6) [1,2] == [[1,2]] [algebraic-graphs] OK: bfs (1 * 2 + 3 * 4 + 5 * 6) [1,3] == [[1,3], [2,4]] [algebraic-graphs] OK: bfs (3 * (1 + 4) * (1 + 5)) [3] == [[3], [1,4,5]] [algebraic-graphs] OK: bfs (circuit [1..5] + circuit [5,4..1]) [2] == [[2], [1,3], [5,4]] [algebraic-graphs] OK: concat $ bfs (circuit [1..5] + circuit [5,4..1]) [3] == [3,2,4,1,5] [algebraic-graphs] OK: map concat . transpose . map levels . bfsForest x == bfs x [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.dfsForest ============ [algebraic-graphs] OK: forest $ dfsForest empty == empty [algebraic-graphs] OK: forest $ dfsForest (edge 1 1) == vertex 1 [algebraic-graphs] OK: forest $ dfsForest (edge 1 2) == edge 1 2 [algebraic-graphs] OK: forest $ dfsForest (edge 2 1) == vertices [1,2] [algebraic-graphs] OK: isSubgraphOf (forest $ dfsForest x) x == True [algebraic-graphs] OK: isDfsForestOf (dfsForest x) x == True [algebraic-graphs] OK: dfsForest . forest . dfsForest == dfsForest [algebraic-graphs] OK: dfsForest (vertices vs) == map (\v -> Node v []) (nub $ sort vs) [algebraic-graphs] OK: dfsForest $ 3 * (1 + 4) * (1 + 5) == [algebraic-graphs] OK: forest (dfsForest $ circuit [1..5] + circuit [5,4..1]) == path [1,2,3,4,5] [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.dfsForestFrom ============ [algebraic-graphs] OK: forest $ dfsForestFrom empty vs == empty [algebraic-graphs] OK: forest $ dfsForestFrom (edge 1 1) [1] == vertex 1 [algebraic-graphs] OK: forest $ dfsForestFrom (edge 1 2) [0] == empty [algebraic-graphs] OK: forest $ dfsForestFrom (edge 1 2) [1] == edge 1 2 [algebraic-graphs] OK: forest $ dfsForestFrom (edge 1 2) [2] == vertex 2 [algebraic-graphs] OK: forest $ dfsForestFrom (edge 1 2) [1,2] == edge 1 2 [algebraic-graphs] OK: forest $ dfsForestFrom (edge 1 2) [2,1] == vertices [1,2] [algebraic-graphs] OK: isSubgraphOf (forest $ dfsForestFrom x vs) x == True [algebraic-graphs] OK: isDfsForestOf (dfsForestFrom x (vertexList x)) x == True [algebraic-graphs] OK: dfsForestFrom x (vertexList x) == dfsForest x [algebraic-graphs] OK: dfsForestFrom x [] == [] [algebraic-graphs] OK: dfsForestFrom (3 * (1 + 4) * (1 + 5)) [1,4] == [algebraic-graphs] OK: forest $ dfsForestFrom (circuit [1..5] + circuit [5,4..1]) [3] == path [3,2,1,5,4] [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.dfs ============ [algebraic-graphs] OK: dfs empty vs == [] [algebraic-graphs] OK: dfs (edge 1 1) [1] == [1] [algebraic-graphs] OK: dfs (edge 1 2) [0] == [] [algebraic-graphs] OK: dfs (edge 1 2) [1] == [1,2] [algebraic-graphs] OK: dfs (edge 1 2) [2] == [2] [algebraic-graphs] OK: dfs (edge 1 2) [1,2] == [1,2] [algebraic-graphs] OK: dfs (edge 1 2) [2,1] == [2,1] [algebraic-graphs] OK: dfs x [] == [] [algebraic-graphs]  [algebraic-graphs] OK: and [ hasVertex v x | v <- dfs x vs ] == True [algebraic-graphs] OK: dfs (3 * (1 + 4) * (1 + 5)) [1,4] == [1,5,4] [algebraic-graphs] OK: dfs (circuit [1..5] + circuit [5,4..1]) [3] == [3,2,1,5,4] [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.dfs ============ [algebraic-graphs] OK: reachable empty x == [] [algebraic-graphs] OK: reachable (vertex 1) 1 == [1] [algebraic-graphs] OK: reachable (edge 1 1) 1 == [1] [algebraic-graphs] OK: reachable (edge 1 2) 0 == [] [algebraic-graphs] OK: reachable (edge 1 2) 1 == [1,2] [algebraic-graphs] OK: reachable (edge 1 2) 2 == [2] [algebraic-graphs] OK: reachable (path [1..8] ) 4 == [4..8] [algebraic-graphs] OK: reachable (circuit [1..8] ) 4 == [4..8] ++ [1..3] [algebraic-graphs] OK: reachable (clique [8,7..1]) 8 == [8] ++ [1..7] [algebraic-graphs]  [algebraic-graphs] OK: and [ hasVertex v x | v <- reachable x y ] == True [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.topSort ============ [algebraic-graphs] OK: topSort (1 * 2 + 3 * 1) == Right [3,1,2] [algebraic-graphs] OK: topSort (path [1..5]) == Right [1..5] [algebraic-graphs] OK: topSort (3 * (1 * 4 + 2 * 5)) == Right [3,1,2,4,5] [algebraic-graphs] OK: topSort (1 * 2 + 2 * 1) == Left (2 :| [1]) [algebraic-graphs] OK: topSort (path [5,4..1] + edge 2 4) == Left (4 :| [3,2]) [algebraic-graphs] OK: topSort (circuit [1..5]) == Left (3 :| [1,2]) [algebraic-graphs] OK: topSort (circuit [1..3] + circuit [3,2,1]) == Left (3 :| [2]) [algebraic-graphs] OK: topSort (1 * 2 + (5 + 2) * 1 + 3 * 4 * 3) == Left (1 :| [2]) [algebraic-graphs] OK: fmap (flip isTopSortOf x) (topSort x) /= Right False [algebraic-graphs] OK: topSort . vertices == Right . nub . sort [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.testIsAcyclic ============ [algebraic-graphs] OK: isAcyclic (1 * 2 + 3 * 1) == True [algebraic-graphs] OK: isAcyclic (1 * 2 + 2 * 1) == False [algebraic-graphs] OK: isAcyclic . circuit == null [algebraic-graphs] OK: isAcyclic == isRight . topSort [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.isDfsForestOf ============ [algebraic-graphs] OK: isDfsForestOf [] empty == True [algebraic-graphs] OK: isDfsForestOf [] (vertex 1) == False [algebraic-graphs] OK: isDfsForestOf [Node 1 []] (vertex 1) == True [algebraic-graphs] OK: isDfsForestOf [Node 1 []] (vertex 2) == False [algebraic-graphs] OK: isDfsForestOf [Node 1 [], Node 1 []] (vertex 1) == False [algebraic-graphs] OK: isDfsForestOf [Node 1 []] (edge 1 1) == True [algebraic-graphs] OK: isDfsForestOf [Node 1 []] (edge 1 2) == False [algebraic-graphs] OK: isDfsForestOf [Node 1 [], Node 2 []] (edge 1 2) == False [algebraic-graphs] OK: isDfsForestOf [Node 2 [], Node 1 []] (edge 1 2) == True [algebraic-graphs] OK: isDfsForestOf [Node 1 [Node 2 []]] (edge 1 2) == True [algebraic-graphs] OK: isDfsForestOf [Node 1 [], Node 2 []] (vertices [1,2]) == True [algebraic-graphs] OK: isDfsForestOf [Node 2 [], Node 1 []] (vertices [1,2]) == True [algebraic-graphs] OK: isDfsForestOf [Node 1 [Node 2 []]] (vertices [1,2]) == False [algebraic-graphs] OK: isDfsForestOf [Node 1 [Node 2 [Node 3 []]]] (path [1,2,3]) == True [algebraic-graphs] OK: isDfsForestOf [Node 1 [Node 3 [Node 2 []]]] (path [1,2,3]) == False [algebraic-graphs] OK: isDfsForestOf [Node 3 [], Node 1 [Node 2 []]] (path [1,2,3]) == True [algebraic-graphs] OK: isDfsForestOf [Node 2 [Node 3 []], Node 1 []] (path [1,2,3]) == True [algebraic-graphs] OK: isDfsForestOf [Node 1 [], Node 2 [Node 3 []]] (path [1,2,3]) == False [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyIntMap.isTopSortOf ============ [algebraic-graphs] OK: isTopSortOf [3,1,2] (1 * 2 + 3 * 1) == True [algebraic-graphs] OK: isTopSortOf [1,2,3] (1 * 2 + 3 * 1) == False [algebraic-graphs] OK: isTopSortOf [] (1 * 2 + 3 * 1) == False [algebraic-graphs] OK: isTopSortOf [] empty == True [algebraic-graphs] OK: isTopSortOf [x] (vertex x) == True [algebraic-graphs] OK: isTopSortOf [x] (edge x x) == False [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap ============ [algebraic-graphs] OK: Axioms of graphs [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.consistent ============ [algebraic-graphs] OK: Consistency of the Arbitrary instance [algebraic-graphs]  [algebraic-graphs] OK: consistent empty == True [algebraic-graphs] OK: consistent (vertex x) == True [algebraic-graphs] OK: consistent (overlay x y) == True [algebraic-graphs] OK: consistent (connect x y) == True [algebraic-graphs] OK: consistent (edge x y) == True [algebraic-graphs] OK: consistent (edges xs) == True [algebraic-graphs] OK: consistent (stars xs) == True [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.Show ============ [algebraic-graphs] OK: show (empty ) == "empty" [algebraic-graphs] OK: show (1 ) == "vertex 1" [algebraic-graphs] OK: show (1 + 2 ) == "vertices [1,2]" [algebraic-graphs] OK: show (1 * 2 ) == "edge 1 2" [algebraic-graphs] OK: show (1 * 2 * 3) == "edges [(1,2),(1,3),(2,3)]" [algebraic-graphs] OK: show (1 * 2 + 3) == "overlay (vertex 3) (edge 1 2)" [algebraic-graphs]  [algebraic-graphs] OK: show (vertex (-1) ) == "vertex (-1)" [algebraic-graphs] OK: show (vertex (-1) + vertex (-2) ) == "vertices [-2,-1]" [algebraic-graphs] OK: show (vertex (-2) * vertex (-1) ) == "edge (-2) (-1)" [algebraic-graphs] OK: show (vertex (-3) * vertex (-2) * vertex (-1)) == "edges [(-3,-2),(-3,-1),(-2,-1)]" [algebraic-graphs] OK: show (vertex (-3) * vertex (-2) + vertex (-1)) == "overlay (vertex (-1)) (edge (-3) (-2))" [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.Ord ============ [algebraic-graphs] OK: vertex 1 < vertex 2 [algebraic-graphs] OK: vertex 3 < edge 1 2 [algebraic-graphs] OK: vertex 1 < edge 1 1 [algebraic-graphs] OK: edge 1 1 < edge 1 2 [algebraic-graphs] OK: edge 1 2 < edge 1 1 + edge 2 2 [algebraic-graphs] OK: edge 1 2 < edge 1 3 [algebraic-graphs] OK: x <= x + y [algebraic-graphs] OK: x + y <= x * y [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.empty ============ [algebraic-graphs] OK: isEmpty empty == True [algebraic-graphs] OK: hasVertex x empty == False [algebraic-graphs] OK: vertexCount empty == 0 [algebraic-graphs] OK: edgeCount empty == 0 [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.vertex ============ [algebraic-graphs] OK: isEmpty (vertex x) == False [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y) [algebraic-graphs] OK: vertexCount (vertex x) == 1 [algebraic-graphs] OK: edgeCount (vertex x) == 0 [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.edge ============ [algebraic-graphs] OK: edge x y == connect (vertex x) (vertex y) [algebraic-graphs] OK: hasEdge x y (edge x y) == True [algebraic-graphs] OK: edgeCount (edge x y) == 1 [algebraic-graphs] OK: vertexCount (edge 1 1) == 1 [algebraic-graphs] OK: vertexCount (edge 1 2) == 2 [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.overlay ============ [algebraic-graphs] OK: isEmpty (overlay x y) == isEmpty x && isEmpty y [algebraic-graphs] OK: hasVertex z (overlay x y) == hasVertex z x || hasVertex z y [algebraic-graphs] OK: vertexCount (overlay x y) >= vertexCount x [algebraic-graphs] OK: vertexCount (overlay x y) <= vertexCount x + vertexCount y [algebraic-graphs] OK: edgeCount (overlay x y) >= edgeCount x [algebraic-graphs] OK: edgeCount (overlay x y) <= edgeCount x + edgeCount y [algebraic-graphs] OK: vertexCount (overlay 1 2) == 2 [algebraic-graphs] OK: edgeCount (overlay 1 2) == 0 [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.connect ============ [algebraic-graphs] OK: isEmpty (connect x y) == isEmpty x && isEmpty y [algebraic-graphs] OK: hasVertex z (connect x y) == hasVertex z x || hasVertex z y [algebraic-graphs] OK: vertexCount (connect x y) >= vertexCount x [algebraic-graphs] OK: vertexCount (connect x y) <= vertexCount x + vertexCount y [algebraic-graphs] OK: edgeCount (connect x y) >= edgeCount x [algebraic-graphs] OK: edgeCount (connect x y) >= edgeCount y [algebraic-graphs] OK: edgeCount (connect x y) >= vertexCount x * vertexCount y [algebraic-graphs] OK: edgeCount (connect x y) <= vertexCount x * vertexCount y + edgeCount x + edgeCount y [algebraic-graphs] OK: vertexCount (connect 1 2) == 2 [algebraic-graphs] OK: edgeCount (connect 1 2) == 1 [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.vertices ============ [algebraic-graphs] OK: vertices [] == empty [algebraic-graphs] OK: vertices [x] == vertex x [algebraic-graphs] OK: vertices == overlays . map vertex [algebraic-graphs] OK: hasVertex x . vertices == elem x [algebraic-graphs] OK: vertexCount . vertices == length . nub [algebraic-graphs] OK: vertexSet . vertices == Set.fromList [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.edges ============ [algebraic-graphs] OK: edges [] == empty [algebraic-graphs] OK: edges [(x,y)] == edge x y [algebraic-graphs] OK: edges == overlays . map (uncurry edge) [algebraic-graphs] OK: edgeCount . edges == length . nub [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.overlays ============ [algebraic-graphs] OK: overlays [] == empty [algebraic-graphs] OK: overlays [x] == x [algebraic-graphs] OK: overlays [x,y] == overlay x y [algebraic-graphs] OK: overlays == foldr overlay empty [algebraic-graphs] OK: isEmpty . overlays == all isEmpty [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.connects ============ [algebraic-graphs] OK: connects [] == empty [algebraic-graphs] OK: connects [x] == x [algebraic-graphs] OK: connects [x,y] == connect x y [algebraic-graphs] OK: connects == foldr connect empty [algebraic-graphs] OK: isEmpty . connects == all isEmpty [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.fromAdjacencySets ============ [algebraic-graphs] OK: fromAdjacencySets [] == empty [algebraic-graphs] OK: fromAdjacencySets [(x, Set.empty)] == vertex x [algebraic-graphs] OK: fromAdjacencySets [(x, Set.singleton y)] == edge x y [algebraic-graphs] OK: fromAdjacencySets . map (fmap Set.fromList) == stars [algebraic-graphs] OK: overlay (fromAdjacencySets xs) (fromAdjacencySets ys) == fromAdjacencySets (xs ++ ys) [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.isSubgraphOf ============ [algebraic-graphs] OK: isSubgraphOf empty x == True [algebraic-graphs] OK: isSubgraphOf (vertex x) empty == False [algebraic-graphs] OK: isSubgraphOf x (overlay x y) == True [algebraic-graphs] OK: isSubgraphOf (overlay x y) (connect x y) == True [algebraic-graphs] OK: isSubgraphOf (path xs) (circuit xs) == True [algebraic-graphs] OK: isSubgraphOf x y ==> x <= y [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.toGraph et al. ============ [algebraic-graphs] OK: toGraph == foldg Empty Vertex Overlay Connect [algebraic-graphs] OK: foldg == Algebra.Graph.foldg . toGraph [algebraic-graphs] OK: isEmpty == foldg True (const False) (&&) (&&) [algebraic-graphs] OK: size == foldg 1 (const 1) (+) (+) [algebraic-graphs] OK: hasVertex x == foldg False (==x) (||) (||) [algebraic-graphs] OK: hasEdge x y == Algebra.Graph.hasEdge x y . toGraph [algebraic-graphs] OK: vertexCount == Set.size . vertexSet [algebraic-graphs] OK: edgeCount == Set.size . edgeSet [algebraic-graphs] OK: vertexList == Set.toAscList . vertexSet [algebraic-graphs] OK: edgeList == Set.toAscList . edgeSet [algebraic-graphs] OK: vertexSet == foldg Set.empty Set.singleton Set.union Set.union [algebraic-graphs] OK: vertexIntSet == foldg IntSet.empty IntSet.singleton IntSet.union IntSet.union [algebraic-graphs] OK: edgeSet == Algebra.Graph.AdjacencyMap.edgeSet . foldg empty vertex overlay connect [algebraic-graphs] OK: preSet x == Algebra.Graph.AdjacencyMap.preSet x . toAdjacencyMap [algebraic-graphs] OK: preIntSet x == Algebra.Graph.AdjacencyIntMap.preIntSet x . toAdjacencyIntMap [algebraic-graphs] OK: postSet x == Algebra.Graph.AdjacencyMap.postSet x . toAdjacencyMap [algebraic-graphs] OK: postIntSet x == Algebra.Graph.AdjacencyIntMap.postIntSet x . toAdjacencyIntMap [algebraic-graphs] OK: adjacencyList == Algebra.Graph.AdjacencyMap.adjacencyList . toAdjacencyMap [algebraic-graphs] OK: adjacencyMap == Algebra.Graph.AdjacencyMap.adjacencyMap . toAdjacencyMap [algebraic-graphs] OK: adjacencyIntMap == Algebra.Graph.AdjacencyIntMap.adjacencyIntMap . toAdjacencyIntMap [algebraic-graphs] OK: adjacencyMapTranspose == Algebra.Graph.AdjacencyMap.adjacencyMap . toAdjacencyMapTranspose [algebraic-graphs] OK: adjacencyIntMapTranspose == Algebra.Graph.AdjacencyIntMap.adjacencyIntMap . toAdjacencyIntMapTranspose [algebraic-graphs] OK: dfsForest == Algebra.Graph.AdjacencyMap.dfsForest . toAdjacencyMap [algebraic-graphs] OK: dfsForestFrom == Algebra.Graph.AdjacencyMap.dfsForestFrom . toAdjacencyMap [algebraic-graphs] OK: dfs == Algebra.Graph.AdjacencyMap.dfs . toAdjacencyMap [algebraic-graphs] OK: reachable == Algebra.Graph.AdjacencyMap.reachable . toAdjacencyMap [algebraic-graphs] OK: topSort == Algebra.Graph.AdjacencyMap.topSort . toAdjacencyMap [algebraic-graphs] OK: isAcyclic == Algebra.Graph.AdjacencyMap.isAcyclic . toAdjacencyMap [algebraic-graphs] OK: isTopSortOf vs == Algebra.Graph.AdjacencyMap.isTopSortOf vs . toAdjacencyMap [algebraic-graphs] OK: toAdjacencyMap == foldg empty vertex overlay connect [algebraic-graphs] OK: toAdjacencyMapTranspose == foldg empty vertex overlay (flip connect) [algebraic-graphs] OK: toAdjacencyIntMap == foldg empty vertex overlay connect [algebraic-graphs] OK: toAdjacencyIntMapTranspose == foldg empty vertex overlay (flip connect) [algebraic-graphs] OK: isDfsForestOf f == Algebra.Graph.AdjacencyMap.isDfsForestOf f . toAdjacencyMap [algebraic-graphs] OK: isTopSortOf vs == Algebra.Graph.AdjacencyMap.isTopSortOf vs . toAdjacencyMap [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.foldg ============ [algebraic-graphs] OK: foldg empty vertex overlay connect == id [algebraic-graphs] OK: foldg empty vertex overlay (flip connect) == transpose [algebraic-graphs] OK: foldg 1 (const 1) (+) (+) == size [algebraic-graphs] OK: foldg True (const False) (&&) (&&) == isEmpty [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.isEmpty ============ [algebraic-graphs] OK: isEmpty empty == True [algebraic-graphs] OK: isEmpty (overlay empty empty) == True [algebraic-graphs] OK: isEmpty (vertex x) == False [algebraic-graphs] OK: isEmpty (removeVertex x $ vertex x) == True [algebraic-graphs] OK: isEmpty (removeEdge x y $ edge x y) == False [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.hasVertex ============ [algebraic-graphs] OK: hasVertex x empty == False [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y) [algebraic-graphs] OK: hasVertex x . removeVertex x == const False [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.hasEdge ============ [algebraic-graphs] OK: hasEdge x y empty == False [algebraic-graphs] OK: hasEdge x y (vertex z) == False [algebraic-graphs] OK: hasEdge x y (edge x y) == True [algebraic-graphs] OK: hasEdge x y . removeEdge x y == const False [algebraic-graphs] OK: hasEdge x y == elem (x,y) . edgeList [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.vertexCount ============ [algebraic-graphs] OK: vertexCount empty == 0 [algebraic-graphs] OK: vertexCount (vertex x) == 1 [algebraic-graphs] OK: vertexCount == length . vertexList [algebraic-graphs] OK: vertexCount x < vertexCount y ==> x < y [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.edgeCount ============ [algebraic-graphs] OK: edgeCount empty == 0 [algebraic-graphs] OK: edgeCount (vertex x) == 0 [algebraic-graphs] OK: edgeCount (edge x y) == 1 [algebraic-graphs] OK: edgeCount == length . edgeList [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.vertexList ============ [algebraic-graphs] OK: vertexList empty == [] [algebraic-graphs] OK: vertexList (vertex x) == [x] [algebraic-graphs] OK: vertexList . vertices == nub . sort [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.vertexSet ============ [algebraic-graphs] OK: vertexSet empty == Set.empty [algebraic-graphs] OK: vertexSet . vertex == Set.singleton [algebraic-graphs] OK: vertexSet . vertices == Set.fromList [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.vertexIntSet ============ [algebraic-graphs] OK: vertexIntSet empty == IntSet.empty [algebraic-graphs] OK: vertexIntSet . vertex == IntSet.singleton [algebraic-graphs] OK: vertexIntSet . vertices == IntSet.fromList [algebraic-graphs] OK: vertexIntSet . clique == IntSet.fromList [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.edgeList ============ [algebraic-graphs] OK: edgeList empty == [] [algebraic-graphs] OK: edgeList (vertex x) == [] [algebraic-graphs] OK: edgeList (edge x y) == [(x,y)] [algebraic-graphs] OK: edgeList (star 2 [3,1]) == [(2,1), (2,3)] [algebraic-graphs] OK: edgeList . edges == nub . sort [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.edgeSet ============ [algebraic-graphs] OK: edgeSet empty == Set.empty [algebraic-graphs] OK: edgeSet (vertex x) == Set.empty [algebraic-graphs] OK: edgeSet (edge x y) == Set.singleton (x,y) [algebraic-graphs] OK: edgeSet . edges == Set.fromList [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.adjacencyList ============ [algebraic-graphs] OK: adjacencyList empty == [] [algebraic-graphs] OK: adjacencyList (vertex x) == [(x, [])] [algebraic-graphs] OK: adjacencyList (edge 1 2) == [(1, [2]), (2, [])] [algebraic-graphs] OK: adjacencyList (star 2 [3,1]) == [(1, []), (2, [1,3]), (3, [])] [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.preSet ============ [algebraic-graphs] OK: preSet x empty == Set.empty [algebraic-graphs] OK: preSet x (vertex x) == Set.empty [algebraic-graphs] OK: preSet 1 (edge 1 2) == Set.empty [algebraic-graphs] OK: preSet y (edge x y) == Set.fromList [x] [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.preIntSet ============ [algebraic-graphs] OK: preIntSet x empty == IntSet.empty [algebraic-graphs] OK: preIntSet x (vertex x) == IntSet.empty [algebraic-graphs] OK: preIntSet 1 (edge 1 2) == IntSet.empty [algebraic-graphs] OK: preIntSet y (edge x y) == IntSet.fromList [x] [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.postSet ============ [algebraic-graphs] OK: postSet x empty == Set.empty [algebraic-graphs] OK: postSet x (vertex x) == Set.empty [algebraic-graphs] OK: postSet x (edge x y) == Set.fromList [y] [algebraic-graphs] OK: postSet 2 (edge 1 2) == Set.empty [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.postIntSet ============ [algebraic-graphs] OK: postIntSet x empty == IntSet.empty [algebraic-graphs] OK: postIntSet x (vertex x) == IntSet.empty [algebraic-graphs] OK: postIntSet 2 (edge 1 2) == IntSet.empty [algebraic-graphs] OK: postIntSet x (edge x y) == IntSet.fromList [y] [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.path ============ [algebraic-graphs] OK: path [] == empty [algebraic-graphs] OK: path [x] == vertex x [algebraic-graphs] OK: path [x,y] == edge x y [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.circuit ============ [algebraic-graphs] OK: circuit [] == empty [algebraic-graphs] OK: circuit [x] == edge x x [algebraic-graphs] OK: circuit [x,y] == edges [(x,y), (y,x)] [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.clique ============ [algebraic-graphs] OK: clique [] == empty [algebraic-graphs] OK: clique [x] == vertex x [algebraic-graphs] OK: clique [x,y] == edge x y [algebraic-graphs] OK: clique [x,y,z] == edges [(x,y), (x,z), (y,z)] [algebraic-graphs] OK: clique (xs ++ ys) == connect (clique xs) (clique ys) [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.biclique ============ [algebraic-graphs] OK: biclique [] [] == empty [algebraic-graphs] OK: biclique [x] [] == vertex x [algebraic-graphs] OK: biclique [] [y] == vertex y [algebraic-graphs] OK: biclique [x1,x2] [y1,y2] == edges [(x1,y1), (x1,y2), (x2,y1), (x2,y2)] [algebraic-graphs] OK: biclique xs ys == connect (vertices xs) (vertices ys) [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.star ============ [algebraic-graphs] OK: star x [] == vertex x [algebraic-graphs] OK: star x [y] == edge x y [algebraic-graphs] OK: star x [y,z] == edges [(x,y), (x,z)] [algebraic-graphs] OK: star x ys == connect (vertex x) (vertices ys) [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.stars ============ [algebraic-graphs] OK: stars [] == empty [algebraic-graphs] OK: stars [(x, [])] == vertex x [algebraic-graphs] OK: stars [(x, [y])] == edge x y [algebraic-graphs] OK: stars [(x, ys)] == star x ys [algebraic-graphs] OK: stars == overlays . map (uncurry star) [algebraic-graphs] OK: stars . adjacencyList == id [algebraic-graphs] OK: overlay (stars xs) (stars ys) == stars (xs ++ ys) [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.tree ============ [algebraic-graphs] OK: tree (Node x []) == vertex x [algebraic-graphs] OK: tree (Node x [Node y [Node z []]]) == path [x,y,z] [algebraic-graphs] OK: tree (Node x [Node y [], Node z []]) == star x [y,z] [algebraic-graphs] OK: tree (Node 1 [Node 2 [], Node 3 [Node 4 [], Node 5 []]]) == edges [(1,2), (1,3), (3,4), (3,5)] [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.forest ============ [algebraic-graphs] OK: forest [] == empty [algebraic-graphs] OK: forest [x] == tree x [algebraic-graphs] OK: forest [Node 1 [Node 2 [], Node 3 []], Node 4 [Node 5 []]] == edges [(1,2), (1,3), (4,5)] [algebraic-graphs] OK: forest == overlays . map tree [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.removeVertex ============ [algebraic-graphs] OK: removeVertex x (vertex x) == empty [algebraic-graphs] OK: removeVertex 1 (vertex 2) == vertex 2 [algebraic-graphs] OK: removeVertex x (edge x x) == empty [algebraic-graphs] OK: removeVertex 1 (edge 1 2) == vertex 2 [algebraic-graphs] OK: removeVertex x . removeVertex x == removeVertex x [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.removeEdge ============ [algebraic-graphs] OK: removeEdge x y (edge x y) == vertices [x,y] [algebraic-graphs] OK: removeEdge x y . removeEdge x y == removeEdge x y [algebraic-graphs] OK: removeEdge x y . removeVertex x == removeVertex x [algebraic-graphs] OK: removeEdge 1 1 (1 * 1 * 2 * 2) == 1 * 2 * 2 [algebraic-graphs] OK: removeEdge 1 2 (1 * 1 * 2 * 2) == 1 * 1 + 2 * 2 [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.replaceVertex ============ [algebraic-graphs] OK: replaceVertex x x == id [algebraic-graphs] OK: replaceVertex x y (vertex x) == vertex y [algebraic-graphs] OK: replaceVertex x y == mergeVertices (== x) y [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.mergeVertices ============ [algebraic-graphs] OK: mergeVertices (const False) x == id [algebraic-graphs] OK: mergeVertices (== x) y == replaceVertex x y [algebraic-graphs] OK: mergeVertices even 1 (0 * 2) == 1 * 1 [algebraic-graphs] OK: mergeVertices odd 1 (3 + 4 * 5) == 4 * 1 [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.transpose ============ [algebraic-graphs] OK: transpose empty == empty [algebraic-graphs] OK: transpose (vertex x) == vertex x [algebraic-graphs] OK: transpose (edge x y) == edge y x [algebraic-graphs] OK: transpose . transpose == id [algebraic-graphs] OK: edgeList . transpose == sort . map swap . edgeList [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.gmap ============ [algebraic-graphs] OK: gmap f empty == empty [algebraic-graphs] OK: gmap f (vertex x) == vertex (f x) [algebraic-graphs] OK: gmap f (edge x y) == edge (f x) (f y) [algebraic-graphs] OK: gmap id == id [algebraic-graphs] OK: gmap f . gmap g == gmap (f . g) [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.induce ============ [algebraic-graphs] OK: induce (const True ) x == x [algebraic-graphs] OK: induce (const False) x == empty [algebraic-graphs] OK: induce (/= x) == removeVertex x [algebraic-graphs] OK: induce p . induce q == induce (\x -> p x && q x) [algebraic-graphs] OK: isSubgraphOf (induce p x) x == True [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.compose ============ [algebraic-graphs] OK: compose empty x == empty [algebraic-graphs] OK: compose x empty == empty [algebraic-graphs] OK: compose (vertex x) y == empty [algebraic-graphs] OK: compose x (vertex y) == empty [algebraic-graphs] OK: compose x (compose y z) == compose (compose x y) z [algebraic-graphs] OK: compose x (overlay y z) == overlay (compose x y) (compose x z) [algebraic-graphs] OK: compose (overlay x y) z == overlay (compose x z) (compose y z) [algebraic-graphs] OK: compose (edge x y) (edge y z) == edge x z [algebraic-graphs] OK: compose (path [1..5]) (path [1..5]) == edges [(1,3),(2,4),(3,5)] [algebraic-graphs] OK: compose (circuit [1..5]) (circuit [1..5]) == circuit [1,3,5,2,4] [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.closure ============ [algebraic-graphs] OK: closure empty == empty [algebraic-graphs] OK: closure (vertex x) == edge x x [algebraic-graphs] OK: closure (edge x x) == edge x x [algebraic-graphs] OK: closure (edge x y) == edges [(x,x), (x,y), (y,y)] [algebraic-graphs] OK: closure (path $ nub xs) == reflexiveClosure (clique $ nub xs) [algebraic-graphs] OK: closure == reflexiveClosure . transitiveClosure [algebraic-graphs] OK: closure == transitiveClosure . reflexiveClosure [algebraic-graphs] OK: closure . closure == closure [algebraic-graphs] OK: postSet x (closure y) == Set.fromList (reachable y x) [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.reflexiveClosure ============ [algebraic-graphs] OK: reflexiveClosure empty == empty [algebraic-graphs] OK: reflexiveClosure (vertex x) == edge x x [algebraic-graphs] OK: reflexiveClosure (edge x x) == edge x x [algebraic-graphs] OK: reflexiveClosure (edge x y) == edges [(x,x), (x,y), (y,y)] [algebraic-graphs] OK: reflexiveClosure . reflexiveClosure == reflexiveClosure [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.symmetricClosure ============ [algebraic-graphs] OK: symmetricClosure empty == empty [algebraic-graphs] OK: symmetricClosure (vertex x) == vertex x [algebraic-graphs] OK: symmetricClosure (edge x y) == edges [(x,y), (y,x)] [algebraic-graphs] OK: symmetricClosure x == overlay x (transpose x) [algebraic-graphs] OK: symmetricClosure . symmetricClosure == symmetricClosure [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.transitiveClosure ============ [algebraic-graphs] OK: transitiveClosure empty == empty [algebraic-graphs] OK: transitiveClosure (vertex x) == vertex x [algebraic-graphs] OK: transitiveClosure (edge x y) == edge x y [algebraic-graphs] OK: transitiveClosure (path $ nub xs) == clique (nub $ xs) [algebraic-graphs] OK: transitiveClosure . transitiveClosure == transitiveClosure [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.box ============ [algebraic-graphs] OK: box x y ~~ box y x [algebraic-graphs] OK: box x (overlay y z) == overlay (box x y) (box x z) [algebraic-graphs] OK: box x (vertex ()) ~~ x [algebraic-graphs] OK: box x empty ~~ empty [algebraic-graphs] OK: box x (box y z) ~~ box (box x y) z [algebraic-graphs] OK: transpose (box x y) == box (transpose x) (transpose y) [algebraic-graphs] OK: vertexCount (box x y) == vertexCount x * vertexCount y [algebraic-graphs] OK: edgeCount (box x y) <= vertexCount x * edgeCount y + edgeCount x * vertexCount y [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.bfsForest ============ [algebraic-graphs] OK: forest $ bfsForest (edge 1 2) [0] == empty [algebraic-graphs] OK: forest $ bfsForest (edge 1 2) [1] == edge 1 2 [algebraic-graphs] OK: forest $ bfsForest (edge 1 2) [2] == vertex 2 [algebraic-graphs] OK: forest $ bfsForest (edge 1 2) [0,1,2] == vertices [1,2] [algebraic-graphs] OK: forest $ bfsForest (edge 1 2) [2,1,0] == vertices [1,2] [algebraic-graphs] OK: forest $ bfsForest (edge 1 1) [1] == vertex 1 [algebraic-graphs] OK: isSubgraphOf (forest $ bfsForest x vs) x == True [algebraic-graphs] OK: bfsForest x (vertexList x) == map ( -> Node v []) (nub $ vertexList x) [algebraic-graphs] OK: bfsForest x [] == [] [algebraic-graphs] OK: bfsForest empty vs == [] [algebraic-graphs] OK: bfsForest (3 * (1 + 4) * (1 + 5)) [1,4] == [algebraic-graphs] OK: forest $ bfsForest (circuit [1..5] + circuit [5,4..1]) [3] == path [3,2,1] + path [3,4,5] [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.bfs ============ [algebraic-graphs] OK: bfs (edge 1 2) [0] == [] [algebraic-graphs] OK: bfs (edge 1 2) [1] == [[1], [2]] [algebraic-graphs] OK: bfs (edge 1 2) [2] == [[2]] [algebraic-graphs] OK: bfs (edge 1 2) [1,2] == [[1,2]] [algebraic-graphs] OK: bfs (edge 1 2) [2,1] == [[2,1]] [algebraic-graphs] OK: bfs (edge 1 1) [1] == [[1]] [algebraic-graphs] OK: bfs empty vs == [] [algebraic-graphs] OK: bfs x [] == [] [algebraic-graphs] OK: bfs (1 * 2 + 3 * 4 + 5 * 6) [1,2] == [[1,2]] [algebraic-graphs] OK: bfs (1 * 2 + 3 * 4 + 5 * 6) [1,3] == [[1,3], [2,4]] [algebraic-graphs] OK: bfs (3 * (1 + 4) * (1 + 5)) [3] == [[3], [1,4,5]] [algebraic-graphs] OK: bfs (circuit [1..5] + circuit [5,4..1]) [2] == [[2], [1,3], [5,4]] [algebraic-graphs] OK: concat $ bfs (circuit [1..5] + circuit [5,4..1]) [3] == [3,2,4,1,5] [algebraic-graphs] OK: map concat . transpose . map levels . bfsForest x == bfs x [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.dfsForest ============ [algebraic-graphs] OK: forest $ dfsForest empty == empty [algebraic-graphs] OK: forest $ dfsForest (edge 1 1) == vertex 1 [algebraic-graphs] OK: forest $ dfsForest (edge 1 2) == edge 1 2 [algebraic-graphs] OK: forest $ dfsForest (edge 2 1) == vertices [1,2] [algebraic-graphs] OK: isSubgraphOf (forest $ dfsForest x) x == True [algebraic-graphs] OK: isDfsForestOf (dfsForest x) x == True [algebraic-graphs] OK: dfsForest . forest . dfsForest == dfsForest [algebraic-graphs] OK: dfsForest (vertices vs) == map (\v -> Node v []) (nub $ sort vs) [algebraic-graphs] OK: dfsForest $ 3 * (1 + 4) * (1 + 5) == [algebraic-graphs] OK: forest (dfsForest $ circuit [1..5] + circuit [5,4..1]) == path [1,2,3,4,5] [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.dfsForestFrom ============ [algebraic-graphs] OK: forest $ dfsForestFrom empty vs == empty [algebraic-graphs] OK: forest $ dfsForestFrom (edge 1 1) [1] == vertex 1 [algebraic-graphs] OK: forest $ dfsForestFrom (edge 1 2) [0] == empty [algebraic-graphs] OK: forest $ dfsForestFrom (edge 1 2) [1] == edge 1 2 [algebraic-graphs] OK: forest $ dfsForestFrom (edge 1 2) [2] == vertex 2 [algebraic-graphs] OK: forest $ dfsForestFrom (edge 1 2) [1,2] == edge 1 2 [algebraic-graphs] OK: forest $ dfsForestFrom (edge 1 2) [2,1] == vertices [1,2] [algebraic-graphs] OK: isSubgraphOf (forest $ dfsForestFrom x vs) x == True [algebraic-graphs] OK: isDfsForestOf (dfsForestFrom x (vertexList x)) x == True [algebraic-graphs] OK: dfsForestFrom x (vertexList x) == dfsForest x [algebraic-graphs] OK: dfsForestFrom x [] == [] [algebraic-graphs] OK: dfsForestFrom (3 * (1 + 4) * (1 + 5)) [1,4] == [algebraic-graphs] OK: forest $ dfsForestFrom (circuit [1..5] + circuit [5,4..1]) [3] == path [3,2,1,5,4] [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.dfs ============ [algebraic-graphs] OK: dfs empty vs == [] [algebraic-graphs] OK: dfs (edge 1 1) [1] == [1] [algebraic-graphs] OK: dfs (edge 1 2) [0] == [] [algebraic-graphs] OK: dfs (edge 1 2) [1] == [1,2] [algebraic-graphs] OK: dfs (edge 1 2) [2] == [2] [algebraic-graphs] OK: dfs (edge 1 2) [1,2] == [1,2] [algebraic-graphs] OK: dfs (edge 1 2) [2,1] == [2,1] [algebraic-graphs] OK: dfs x [] == [] [algebraic-graphs]  [algebraic-graphs] OK: and [ hasVertex v x | v <- dfs x vs ] == True [algebraic-graphs] OK: dfs (3 * (1 + 4) * (1 + 5)) [1,4] == [1,5,4] [algebraic-graphs] OK: dfs (circuit [1..5] + circuit [5,4..1]) [3] == [3,2,1,5,4] [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.dfs ============ [algebraic-graphs] OK: reachable empty x == [] [algebraic-graphs] OK: reachable (vertex 1) 1 == [1] [algebraic-graphs] OK: reachable (edge 1 1) 1 == [1] [algebraic-graphs] OK: reachable (edge 1 2) 0 == [] [algebraic-graphs] OK: reachable (edge 1 2) 1 == [1,2] [algebraic-graphs] OK: reachable (edge 1 2) 2 == [2] [algebraic-graphs] OK: reachable (path [1..8] ) 4 == [4..8] [algebraic-graphs] OK: reachable (circuit [1..8] ) 4 == [4..8] ++ [1..3] [algebraic-graphs] OK: reachable (clique [8,7..1]) 8 == [8] ++ [1..7] [algebraic-graphs]  [algebraic-graphs] OK: and [ hasVertex v x | v <- reachable x y ] == True [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.topSort ============ [algebraic-graphs] OK: topSort (1 * 2 + 3 * 1) == Right [3,1,2] [algebraic-graphs] OK: topSort (path [1..5]) == Right [1..5] [algebraic-graphs] OK: topSort (3 * (1 * 4 + 2 * 5)) == Right [3,1,2,4,5] [algebraic-graphs] OK: topSort (1 * 2 + 2 * 1) == Left (2 :| [1]) [algebraic-graphs] OK: topSort (path [5,4..1] + edge 2 4) == Left (4 :| [3,2]) [algebraic-graphs] OK: topSort (circuit [1..5]) == Left (3 :| [1,2]) [algebraic-graphs] OK: topSort (circuit [1..3] + circuit [3,2,1]) == Left (3 :| [2]) [algebraic-graphs] OK: topSort (1 * 2 + (5 + 2) * 1 + 3 * 4 * 3) == Left (1 :| [2]) [algebraic-graphs] OK: fmap (flip isTopSortOf x) (topSort x) /= Right False [algebraic-graphs] OK: topSort . vertices == Right . nub . sort [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.testIsAcyclic ============ [algebraic-graphs] OK: isAcyclic (1 * 2 + 3 * 1) == True [algebraic-graphs] OK: isAcyclic (1 * 2 + 2 * 1) == False [algebraic-graphs] OK: isAcyclic . circuit == null [algebraic-graphs] OK: isAcyclic == isRight . topSort [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.isDfsForestOf ============ [algebraic-graphs] OK: isDfsForestOf [] empty == True [algebraic-graphs] OK: isDfsForestOf [] (vertex 1) == False [algebraic-graphs] OK: isDfsForestOf [Node 1 []] (vertex 1) == True [algebraic-graphs] OK: isDfsForestOf [Node 1 []] (vertex 2) == False [algebraic-graphs] OK: isDfsForestOf [Node 1 [], Node 1 []] (vertex 1) == False [algebraic-graphs] OK: isDfsForestOf [Node 1 []] (edge 1 1) == True [algebraic-graphs] OK: isDfsForestOf [Node 1 []] (edge 1 2) == False [algebraic-graphs] OK: isDfsForestOf [Node 1 [], Node 2 []] (edge 1 2) == False [algebraic-graphs] OK: isDfsForestOf [Node 2 [], Node 1 []] (edge 1 2) == True [algebraic-graphs] OK: isDfsForestOf [Node 1 [Node 2 []]] (edge 1 2) == True [algebraic-graphs] OK: isDfsForestOf [Node 1 [], Node 2 []] (vertices [1,2]) == True [algebraic-graphs] OK: isDfsForestOf [Node 2 [], Node 1 []] (vertices [1,2]) == True [algebraic-graphs] OK: isDfsForestOf [Node 1 [Node 2 []]] (vertices [1,2]) == False [algebraic-graphs] OK: isDfsForestOf [Node 1 [Node 2 [Node 3 []]]] (path [1,2,3]) == True [algebraic-graphs] OK: isDfsForestOf [Node 1 [Node 3 [Node 2 []]]] (path [1,2,3]) == False [algebraic-graphs] OK: isDfsForestOf [Node 3 [], Node 1 [Node 2 []]] (path [1,2,3]) == True [algebraic-graphs] OK: isDfsForestOf [Node 2 [Node 3 []], Node 1 []] (path [1,2,3]) == True [algebraic-graphs] OK: isDfsForestOf [Node 1 [], Node 2 [Node 3 []]] (path [1,2,3]) == False [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.isTopSortOf ============ [algebraic-graphs] OK: isTopSortOf [3,1,2] (1 * 2 + 3 * 1) == True [algebraic-graphs] OK: isTopSortOf [1,2,3] (1 * 2 + 3 * 1) == False [algebraic-graphs] OK: isTopSortOf [] (1 * 2 + 3 * 1) == False [algebraic-graphs] OK: isTopSortOf [] empty == True [algebraic-graphs] OK: isTopSortOf [x] (vertex x) == True [algebraic-graphs] OK: isTopSortOf [x] (edge x x) == False [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.induceJust ============ [algebraic-graphs] OK: induceJust (vertex Nothing) == empty [algebraic-graphs] OK: induceJust (edge (Just x) Nothing) == vertex x [algebraic-graphs] OK: induceJust . gmap Just == id [algebraic-graphs] OK: induceJust . gmap (\x -> if p x then Just x else Nothing) == induce p [algebraic-graphs]  [algebraic-graphs] ============ AdjacencyMap.scc ============ [algebraic-graphs] OK: scc empty == empty [algebraic-graphs] OK: scc (vertex x) == vertex (NonEmpty.vertex x) [algebraic-graphs] OK: scc (vertices xs) == vertices (map NonEmpty.vertex xs) [algebraic-graphs] OK: scc (edge 1 1) == vertex (NonEmpty.edge 1 1) [algebraic-graphs] OK: scc (edge 1 2) == edge (NonEmpty.vertex 1) (NonEmpty.vertex 2) [algebraic-graphs] OK: scc (circuit (1:xs)) == vertex (NonEmpty.circuit1 (1 :| xs)) [algebraic-graphs] OK: scc (3 * 1 * 4 * 1 * 5) == [algebraic-graphs] OK: isAcyclic . scc == const True [algebraic-graphs] OK: isAcyclic x == (scc x == gmap NonEmpty.vertex x) [algebraic-graphs] OK: scc g == KL.scc g [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.Num ============ [algebraic-graphs] OK: 0 == rightVertex 0 [algebraic-graphs] OK: swap 1 == leftVertex 1 [algebraic-graphs] OK: swap 1 + 2 == vertices [1] [2] [algebraic-graphs] OK: swap 1 * 2 == edge 1 2 [algebraic-graphs] OK: swap 1 + 2 * swap 3 == overlay (leftVertex 1) (edge 3 2) [algebraic-graphs] OK: swap 1 * (2 + swap 3) == connect (leftVertex 1) (vertices [3] [2]) [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.Show ============ [algebraic-graphs] OK: show empty == "empty" [algebraic-graphs] OK: show 1 == "rightVertex 1" [algebraic-graphs] OK: show (swap 2) == "leftVertex 2" [algebraic-graphs] OK: show 1 + 2 == "vertices [] [1,2]" [algebraic-graphs] OK: show (swap (1 + 2)) == "vertices [1,2] []" [algebraic-graphs] OK: show (swap 1 * 2) == "edge 1 2" [algebraic-graphs] OK: show (swap 1 * 2 * swap 3) == "edges [(1,2),(3,2)]" [algebraic-graphs] OK: show (swap 1 * 2 + swap 3) == "overlay (leftVertex 3) (edge 1 2)" [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.Eq ============ [algebraic-graphs] OK: (x == y) == (leftAdjacencyMap x == leftAdjacencyMap y && rightAdjacencyMap x == rightAdjacencyMap y) [algebraic-graphs]  [algebraic-graphs] OK: x + y == y + x [algebraic-graphs] OK: x + (y + z) == (x + y) + z [algebraic-graphs] OK: x * empty == x [algebraic-graphs] OK: empty * x == x [algebraic-graphs] OK: x * y == y * x [algebraic-graphs] OK: x * (y * z) == (x * y) * z [algebraic-graphs] OK: x * (y + z) == x * y + x * z [algebraic-graphs] OK: (x + y) * z == x * z + y * z [algebraic-graphs] OK: x * y * z == x * y + x * z + y * z [algebraic-graphs] OK: x + empty == x [algebraic-graphs] OK: empty + x == x [algebraic-graphs] OK: x + x == x [algebraic-graphs] OK: x * y + x + y == x * y [algebraic-graphs] OK: x * x * x == x * x [algebraic-graphs]  [algebraic-graphs] OK: leftVertex x * leftVertex y == leftVertex x + leftVertex y [algebraic-graphs] OK: rightVertex x * rightVertex y == rightVertex x + rightVertex y [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.leftAdjacencyMap ============ [algebraic-graphs] OK: leftAdjacencyMap empty == Map.empty [algebraic-graphs] OK: leftAdjacencyMap (leftVertex x) == Map.singleton x Set.empty [algebraic-graphs] OK: leftAdjacencyMap (rightVertex x) == Map.empty [algebraic-graphs] OK: leftAdjacencyMap (edge x y) == Map.singleton x (Set.singleton y) [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.rightAdjacencyMap ============ [algebraic-graphs] OK: rightAdjacencyMap empty == Map.empty [algebraic-graphs] OK: rightAdjacencyMap (leftVertex x) == Map.empty [algebraic-graphs] OK: rightAdjacencyMap (rightVertex x) == Map.singleton x Set.empty [algebraic-graphs] OK: rightAdjacencyMap (edge x y) == Map.singleton y (Set.singleton x) [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.empty ============ [algebraic-graphs] OK: isEmpty empty == True [algebraic-graphs] OK: leftAdjacencyMap empty == Map.empty [algebraic-graphs] OK: rightAdjacencyMap empty == Map.empty [algebraic-graphs] OK: hasVertex x empty == False [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.leftVertex ============ [algebraic-graphs] OK: leftAdjacencyMap (leftVertex x) == Map.singleton x Set.empty [algebraic-graphs] OK: rightAdjacencyMap (leftVertex x) == Map.empty [algebraic-graphs] OK: hasLeftVertex x (leftVertex y) == (x == y) [algebraic-graphs] OK: hasRightVertex x (leftVertex y) == False [algebraic-graphs] OK: hasEdge x y (leftVertex z) == False [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.rightVertex ============ [algebraic-graphs] OK: leftAdjacencyMap (rightVertex x) == Map.empty [algebraic-graphs] OK: rightAdjacencyMap (rightVertex x) == Map.singleton x Set.empty [algebraic-graphs] OK: hasLeftVertex x (rightVertex y) == False [algebraic-graphs] OK: hasRightVertex x (rightVertex y) == (x == y) [algebraic-graphs] OK: hasEdge x y (rightVertex z) == False [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.vertex ============ [algebraic-graphs] OK: vertex . Left == leftVertex [algebraic-graphs] OK: vertex . Right == rightVertex [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.edge ============ [algebraic-graphs] OK: edge x y == connect (leftVertex x) (rightVertex y) [algebraic-graphs] OK: leftAdjacencyMap (edge x y) == Map.singleton x (Set.singleton y) [algebraic-graphs] OK: rightAdjacencyMap (edge x y) == Map.singleton y (Set.singleton x) [algebraic-graphs] OK: hasEdge x y (edge x y) == True [algebraic-graphs] OK: hasEdge 1 2 (edge 2 1) == False [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.overlay ============ [algebraic-graphs] OK: isEmpty (overlay x y) == isEmpty x && isEmpty y [algebraic-graphs] OK: hasVertex z (overlay x y) == hasVertex z x || hasVertex z y [algebraic-graphs] OK: vertexCount (overlay x y) >= vertexCount x [algebraic-graphs] OK: vertexCount (overlay x y) <= vertexCount x + vertexCount y [algebraic-graphs] OK: edgeCount (overlay x y) >= edgeCount x [algebraic-graphs] OK: edgeCount (overlay x y) <= edgeCount x + edgeCount y [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.connect ============ [algebraic-graphs] OK: connect (leftVertex x) (leftVertex y) == vertices [x,y] [] [algebraic-graphs] OK: connect (leftVertex x) (rightVertex y) == edge x y [algebraic-graphs] OK: connect (rightVertex x) (leftVertex y) == edge y x [algebraic-graphs] OK: connect (rightVertex x) (rightVertex y) == vertices [] [x,y] [algebraic-graphs] OK: connect (vertices xs1 ys1) (vertices xs2 ys2) == overlay (biclique xs1 ys2) (biclique xs2 ys1) [algebraic-graphs] OK: isEmpty (connect x y) == isEmpty x && isEmpty y [algebraic-graphs] OK: hasVertex z (connect x y) == hasVertex z x || hasVertex z y [algebraic-graphs] OK: vertexCount (connect x y) >= vertexCount x [algebraic-graphs] OK: vertexCount (connect x y) <= vertexCount x + vertexCount y [algebraic-graphs] OK: edgeCount (connect x y) >= edgeCount x [algebraic-graphs] OK: edgeCount (connect x y) >= leftVertexCount x * rightVertexCount y [algebraic-graphs] OK: edgeCount (connect x y) <= leftVertexCount x * rightVertexCount y + rightVertexCount x * leftVertexCount y + edgeCount x + edgeCount y [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.vertices ============ [algebraic-graphs] OK: vertices [] [] == empty [algebraic-graphs] OK: vertices [x] [] == leftVertex x [algebraic-graphs] OK: vertices [] [x] == rightVertex x [algebraic-graphs] OK: vertices xs ys == overlays (map leftVertex xs ++ map rightVertex ys) [algebraic-graphs] OK: hasLeftVertex x (vertices xs ys) == elem x xs [algebraic-graphs] OK: hasRightVertex y (vertices xs ys) == elem y ys [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.edges ============ [algebraic-graphs] OK: edges [] == empty [algebraic-graphs] OK: edges [(x,y)] == edge x y [algebraic-graphs] OK: edges == overlays . map (uncurry edge) [algebraic-graphs] OK: hasEdge x y . edges == elem (x,y) [algebraic-graphs] OK: edgeCount . edges == length . nub [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.overlays ============ [algebraic-graphs] OK: overlays [] == empty [algebraic-graphs] OK: overlays [x] == x [algebraic-graphs] OK: overlays [x,y] == overlay x y [algebraic-graphs] OK: overlays == foldr overlay empty [algebraic-graphs] OK: isEmpty . overlays == all isEmpty [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.connects ============ [algebraic-graphs] OK: connects [] == empty [algebraic-graphs] OK: connects [x] == x [algebraic-graphs] OK: connects [x,y] == connect x y [algebraic-graphs] OK: connects == foldr connect empty [algebraic-graphs] OK: isEmpty . connects == all isEmpty [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.swap ============ [algebraic-graphs] OK: swap empty == empty [algebraic-graphs] OK: swap . leftVertex == rightVertex [algebraic-graphs] OK: swap (vertices xs ys) == vertices ys xs [algebraic-graphs] OK: swap (edge x y) == edge y x [algebraic-graphs] OK: swap . edges == edges . map Data.Tuple.swap [algebraic-graphs] OK: swap . swap == id [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.toBipartite ============ [algebraic-graphs] OK: toBipartite empty == empty [algebraic-graphs] OK: toBipartite (vertex (Left x)) == leftVertex x [algebraic-graphs] OK: toBipartite (vertex (Right x)) == rightVertex x [algebraic-graphs] OK: toBipartite (edge (Left x) (Left y)) == vertices [x,y] [] [algebraic-graphs] OK: toBipartite (edge (Left x) (Right y)) == edge x y [algebraic-graphs] OK: toBipartite (edge (Right x) (Left y)) == edge y x [algebraic-graphs] OK: toBipartite (edge (Right x) (Right y)) == vertices [] [x,y] [algebraic-graphs] OK: toBipartite . clique == uncurry biclique . partitionEithers [algebraic-graphs] OK: toBipartite . fromBipartite == id [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.toBipartiteWith ============ [algebraic-graphs] OK: toBipartiteWith f empty == empty [algebraic-graphs] OK: toBipartiteWith Left x == vertices (vertexList x) [] [algebraic-graphs] OK: toBipartiteWith Right x == vertices [] (vertexList x) [algebraic-graphs] OK: toBipartiteWith f == toBipartite . gmap f [algebraic-graphs] OK: toBipartiteWith id == toBipartite [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.fromBipartite ============ [algebraic-graphs] OK: fromBipartite empty == empty [algebraic-graphs] OK: fromBipartite (leftVertex x) == vertex (Left x) [algebraic-graphs] OK: fromBipartite (edge x y) == edges [(Left x, Right y), (Right y, Left x)] [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.fromBipartiteWith ============ [algebraic-graphs] OK: fromBipartiteWith Left Right == fromBipartite [algebraic-graphs] OK: fromBipartiteWith id id (vertices xs ys) == vertices (xs ++ ys) [algebraic-graphs] OK: fromBipartiteWith id id . edges == symmetricClosure . edges [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.isEmpty ============ [algebraic-graphs] OK: isEmpty empty == True [algebraic-graphs] OK: isEmpty (overlay empty empty) == True [algebraic-graphs] OK: isEmpty (vertex x) == False [algebraic-graphs] OK: isEmpty == (==) empty [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.hasLeftVertex ============ [algebraic-graphs] OK: hasLeftVertex x empty == False [algebraic-graphs] OK: hasLeftVertex x (leftVertex y) == (x == y) [algebraic-graphs] OK: hasLeftVertex x (rightVertex y) == False [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.hasRightVertex ============ [algebraic-graphs] OK: hasRightVertex x empty == False [algebraic-graphs] OK: hasRightVertex x (leftVertex y) == False [algebraic-graphs] OK: hasRightVertex x (rightVertex y) == (x == y) [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.hasVertex ============ [algebraic-graphs] OK: hasVertex . Left == hasLeftVertex [algebraic-graphs] OK: hasVertex . Right == hasRightVertex [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.hasEdge ============ [algebraic-graphs] OK: hasEdge x y empty == False [algebraic-graphs] OK: hasEdge x y (vertex z) == False [algebraic-graphs] OK: hasEdge x y (edge x y) == True [algebraic-graphs] OK: hasEdge x y == elem (x,y) . edgeList [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.leftVertexCount ============ [algebraic-graphs] OK: leftVertexCount empty == 0 [algebraic-graphs] OK: leftVertexCount (leftVertex x) == 1 [algebraic-graphs] OK: leftVertexCount (rightVertex x) == 0 [algebraic-graphs] OK: leftVertexCount (edge x y) == 1 [algebraic-graphs] OK: leftVertexCount . edges == length . nub . map fst [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.rightVertexCount ============ [algebraic-graphs] OK: rightVertexCount empty == 0 [algebraic-graphs] OK: rightVertexCount (leftVertex x) == 0 [algebraic-graphs] OK: rightVertexCount (rightVertex x) == 1 [algebraic-graphs] OK: rightVertexCount (edge x y) == 1 [algebraic-graphs] OK: rightVertexCount . edges == length . nub . map snd [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.vertexCount ============ [algebraic-graphs] OK: vertexCount empty == 0 [algebraic-graphs] OK: vertexCount (vertex x) == 1 [algebraic-graphs] OK: vertexCount (edge x y) == 2 [algebraic-graphs] OK: vertexCount x == leftVertexCount x + rightVertexCount x [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.edgeCount ============ [algebraic-graphs] OK: edgeCount empty == 0 [algebraic-graphs] OK: edgeCount (vertex x) == 0 [algebraic-graphs] OK: edgeCount (edge x y) == 1 [algebraic-graphs] OK: edgeCount . edges == length . nub [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.leftVertexList ============ [algebraic-graphs] OK: leftVertexList empty == [] [algebraic-graphs] OK: leftVertexList (leftVertex x) == [x] [algebraic-graphs] OK: leftVertexList (rightVertex x) == [] [algebraic-graphs] OK: leftVertexList . flip vertices [] == nub . sort [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.rightVertexList ============ [algebraic-graphs] OK: rightVertexList empty == [] [algebraic-graphs] OK: rightVertexList (leftVertex x) == [] [algebraic-graphs] OK: rightVertexList (rightVertex x) == [x] [algebraic-graphs] OK: rightVertexList . vertices [] == nub . sort [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.vertexList ============ [algebraic-graphs] OK: vertexList empty == [] [algebraic-graphs] OK: vertexList (vertex x) == [x] [algebraic-graphs] OK: vertexList (edge x y) == [Left x, Right y] [algebraic-graphs] OK: vertexList (vertices (lefts xs) (rights xs)) == nub (sort xs) [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.edgeList ============ [algebraic-graphs] OK: edgeList empty == [] [algebraic-graphs] OK: edgeList (vertex x) == [] [algebraic-graphs] OK: edgeList (edge x y) == [(x,y)] [algebraic-graphs] OK: edgeList . edges == nub . sort [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.leftVertexSet ============ [algebraic-graphs] OK: leftVertexSet empty == Set.empty [algebraic-graphs] OK: leftVertexSet . leftVertex == Set.singleton [algebraic-graphs] OK: leftVertexSet . rightVertex == const Set.empty [algebraic-graphs] OK: leftVertexSet . flip vertices [] == Set.fromList [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.rightVertexSet ============ [algebraic-graphs] OK: rightVertexSet empty == Set.empty [algebraic-graphs] OK: rightVertexSet . leftVertex == const Set.empty [algebraic-graphs] OK: rightVertexSet . rightVertex == Set.singleton [algebraic-graphs] OK: rightVertexSet . vertices [] == Set.fromList [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.vertexSet ============ [algebraic-graphs] OK: vertexSet empty == Set.empty [algebraic-graphs] OK: vertexSet . vertex == Set.singleton [algebraic-graphs] OK: vertexSet (edge x y) == Set.fromList [Left x, Right y] [algebraic-graphs] OK: vertexSet (vertices (lefts xs) (rights xs)) == Set.fromList xs [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.edgeSet ============ [algebraic-graphs] OK: edgeSet empty == Set.empty [algebraic-graphs] OK: edgeSet (vertex x) == Set.empty [algebraic-graphs] OK: edgeSet (edge x y) == Set.singleton (x,y) [algebraic-graphs] OK: edgeSet . edges == Set.fromList [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.leftAdjacencyList ============ [algebraic-graphs] OK: leftAdjacencyList empty == [] [algebraic-graphs] OK: leftAdjacencyList (vertices [] xs) == [] [algebraic-graphs] OK: leftAdjacencyList (vertices xs []) == [] [algebraic-graphs] OK: leftAdjacencyList (edge x y) == [(x, [y])] [algebraic-graphs] OK: leftAdjacencyList (star x ys) == [(x, nub (sort ys))] [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.rightAdjacencyList ============ [algebraic-graphs] OK: rightAdjacencyList empty == [] [algebraic-graphs] OK: rightAdjacencyList (vertices [] xs) == [(x, []) | x <- nub (sort xs)] [algebraic-graphs] OK: rightAdjacencyList (vertices xs []) == [] [algebraic-graphs] OK: rightAdjacencyList (edge x y) == [(y, [x])] [algebraic-graphs] OK: rightAdjacencyList (star x ys) == [(y, [x]) | y <- nub (sort ys)] [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.evenList ============ [algebraic-graphs] OK: evenList [] == Nil [algebraic-graphs] OK: evenList [(1,2), (3,4)] == [1, 2, 3, 4] :: List Int Int [algebraic-graphs] OK: evenList [(1,'a'), (2,'b')] == Cons 1 (Cons 'a' (Cons 2 (Cons 'b' Nil))) [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.oddList ============ [algebraic-graphs] OK: oddList 1 [] == Cons 1 Nil [algebraic-graphs] OK: oddList 1 [(2,3), (4,5)] == [1, 2, 3, 4, 5] :: List Int Int [algebraic-graphs] OK: oddList 1 [('a',2), ('b',3)] == Cons 1 (Cons 'a' (Cons 2 (Cons 'b' (Cons 3 Nil)))) [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.path ============ [algebraic-graphs] OK: path Nil == empty [algebraic-graphs] OK: path (Cons x Nil) == leftVertex x [algebraic-graphs] OK: path (Cons x (Cons y Nil)) == edge x y [algebraic-graphs] OK: path [1, 2, 3, 4, 5] == edges [(1,2), (3,2), (3,4), (5,4)] [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.circuit ============ [algebraic-graphs] OK: circuit [] == empty [algebraic-graphs] OK: circuit [(x,y)] == edge x y [algebraic-graphs] OK: circuit [(1,2), (3,4), (5,6)] == edges [(1,2), (3,2), (3,4), (5,4), (5,6), (1,6)] [algebraic-graphs] OK: circuit . reverse == swap . circuit . map Data.Tuple.swap [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.biclique ============ [algebraic-graphs] OK: biclique [] [] == empty [algebraic-graphs] OK: biclique xs [] == vertices xs [] [algebraic-graphs] OK: biclique [] ys == vertices [] ys [algebraic-graphs] OK: biclique xs ys == connect (vertices xs []) (vertices [] ys) [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.star ============ [algebraic-graphs] OK: star x [] == leftVertex x [algebraic-graphs] OK: star x [y] == edge x y [algebraic-graphs] OK: star x [y,z] == edges [(x,y), (x,z)] [algebraic-graphs] OK: star x ys == connect (leftVertex x) (vertices [] ys) [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.stars ============ [algebraic-graphs] OK: stars [] == empty [algebraic-graphs] OK: stars [(x, [])] == leftVertex x [algebraic-graphs] OK: stars [(x, [y])] == edge x y [algebraic-graphs] OK: stars [(x, ys)] == star x ys [algebraic-graphs] OK: star x [y,z] == edges [(x,y), (x,z)] [algebraic-graphs] OK: stars == overlays . map (uncurry star) [algebraic-graphs] OK: overlay (stars xs) (stars ys) == stars (xs ++ ys) [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.mesh ============ [algebraic-graphs] OK: mesh xs [] == empty [algebraic-graphs] OK: mesh [] ys == empty [algebraic-graphs] OK: mesh [x] [y] == leftVertex (x,y) [algebraic-graphs] OK: mesh [1,1] ['a','b'] == biclique [(1,'a'), (1,'b')] [(1,'a'), (1,'b')] [algebraic-graphs] OK: mesh [1,2] ['a','b'] == biclique [(1,'a'), (2,'b')] [(1,'b'), (2,'a')] [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.removeLeftVertex ============ [algebraic-graphs] OK: removeLeftVertex x (leftVertex x) == empty [algebraic-graphs] OK: removeLeftVertex 1 (leftVertex 2) == leftVertex 2 [algebraic-graphs] OK: removeLeftVertex x (rightVertex y) == rightVertex y [algebraic-graphs] OK: removeLeftVertex x (edge x y) == rightVertex y [algebraic-graphs] OK: removeLeftVertex x . removeLeftVertex x == removeLeftVertex x [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.removeRightVertex ============ [algebraic-graphs] OK: removeRightVertex x (rightVertex x) == empty [algebraic-graphs] OK: removeRightVertex 1 (rightVertex 2) == rightVertex 2 [algebraic-graphs] OK: removeRightVertex x (leftVertex y) == leftVertex y [algebraic-graphs] OK: removeRightVertex y (edge x y) == leftVertex x [algebraic-graphs] OK: removeRightVertex x . removeRightVertex x == removeRightVertex x [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.removeEdge ============ [algebraic-graphs] OK: removeEdge x y (edge x y) == vertices [x] [y] [algebraic-graphs] OK: removeEdge x y . removeEdge x y == removeEdge x y [algebraic-graphs] OK: removeEdge x y . removeLeftVertex x == removeLeftVertex x [algebraic-graphs] OK: removeEdge x y . removeRightVertex y == removeRightVertex y [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.bimap ============ [algebraic-graphs] OK: bimap f g empty == empty [algebraic-graphs] OK: bimap f g . vertex == vertex . Data.Bifunctor.bimap f g [algebraic-graphs] OK: bimap f g (edge x y) == edge (f x) (g y) [algebraic-graphs] OK: bimap id id == id [algebraic-graphs] OK: bimap f1 g1 . bimap f2 g2 == bimap (f1 . f2) (g1 . g2) [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.box ============ [algebraic-graphs] OK: box (path [0,1]) (path ['a','b']) == [algebraic-graphs]  [algebraic-graphs] OK: box x y ~~ box y x [algebraic-graphs] OK: box x (box y z) ~~ box (box x y) z [algebraic-graphs] OK: box x (box y z) ~~ box (box x y) z [algebraic-graphs] OK: box x (leftVertex ()) ~~ x [algebraic-graphs] OK: box x (rightVertex ()) ~~ swap x [algebraic-graphs] OK: box x empty ~~ empty [algebraic-graphs] OK: vertexCount (box x y) <= vertexCount x * vertexCount y [algebraic-graphs] OK: edgeCount (box x y) <= vertexCount x * edgeCount y + edgeCount x * vertexCount y [algebraic-graphs]  [algebraic-graphs] OK: box == boxWith (,) (,) (,) (,) [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.consistent ============ [algebraic-graphs] OK: consistent empty == True [algebraic-graphs] OK: consistent (vertex x) == True [algebraic-graphs] OK: consistent (edge x y) == True [algebraic-graphs] OK: consistent (edges x) == True [algebraic-graphs] OK: consistent (toBipartite x) == True [algebraic-graphs] OK: consistent (swap x) == True [algebraic-graphs] OK: consistent (circuit xs) == True [algebraic-graphs] OK: consistent (biclique xs ys) == True [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.Algorithm.detectParts ============ [algebraic-graphs] OK: detectParts empty == Right empty [algebraic-graphs] OK: detectParts (vertex 1) == Right (leftVertex 1) [algebraic-graphs] OK: detectParts (edge 1 1) == Left [1] [algebraic-graphs] OK: detectParts (edge 1 2) == Right (edge 1 2) [algebraic-graphs] OK: detectParts (edge 0 (-1)) == Right (edge (-1) 0) [algebraic-graphs] OK: detectParts (1 * (2 + 3)) == Right (edges [(1, 2), (1, 3)]) [algebraic-graphs] OK: detectParts ((1 + 3) * (2 + 4) + 6 * 5) == Right (swap (1 + 3) * (2 + 4) + swap 5 * 6 [algebraic-graphs] OK: detectParts ((1 + 2) * (3 + 4) * (5 + 6)) == Left [1, 3, 2, 4, 5] [algebraic-graphs] OK: detectParts ((1 + 2) * (3 + 4) + (3 + 4) * 5) == Right (swap (1 + 2) * (3 + 4) + swap 5 * (3 + 4)) [algebraic-graphs] OK: detectParts (1 * 2 * 3) == Left [2, 3, 1] [algebraic-graphs] OK: detectParts ((1 * 3 * 4) + 2 * (1 + 2)) == Left [2] [algebraic-graphs] OK: detectParts (clique [1..10]) == Left [1, 2, 3] [algebraic-graphs] OK: detectParts (circuit [1..11]) == Left [1..11] [algebraic-graphs] OK: detectParts (circuit [1..10]) == Right (circuit [(2 * x - 1, 2 * x) | x <- [1..5]]) [algebraic-graphs] OK: detectParts (biclique [] xs) == Right (vertices xs []) [algebraic-graphs] OK: detectParts (biclique (map Left (x:xs)) (map Right ys)) == Right (biclique (map Left (x:xs)) (map Right ys)) [algebraic-graphs] OK: isRight (detectParts (star x ys)) == not (elem x ys) [algebraic-graphs] OK: isRight (detectParts (fromBipartite (toBipartite x))) == True [algebraic-graphs]  [algebraic-graphs] OK: ((all ((flip Set.member) $ edgeSet $ symmetricClosure x) . edgeSet) <$> detectParts x) /= Right False [algebraic-graphs] OK: (Set.map $ fromEither) <$> (vertexSet <$> (detectParts (fromBipartite (toBipartite x)))) == Right (vertexSet x) [algebraic-graphs] OK: fromEither (Bifunctor.bimap ((flip Set.isSubsetOf) (vertexSet x) . Set.fromList) (const True) (detectParts x)) == True [algebraic-graphs] OK: fromEither (Bifunctor.bimap ((flip Set.isSubsetOf) (edgeSet (symmetricClosure x)) . AM.edgeSet . circuit) (const True) (detectParts x)) == True [algebraic-graphs] OK: fromEither (Bifunctor.bimap (((==) 1) . ((flip mod) 2) . length) (const True) (detectParts x)) == True [algebraic-graphs]  [algebraic-graphs] ============ Show (Bipartite.AdjacencyMap.Algorithm.Matching a b) ============ [algebraic-graphs] OK: show (matching []) == "matching []" [algebraic-graphs] OK: show (matching [(2,'a'),(1,'b')]) == "matching [(1,'b'),(2,'a')]" [algebraic-graphs]  [algebraic-graphs] ============ Eq (Bipartite.AdjacencyMap.Algorithm.Matching a b) ============ [algebraic-graphs] OK: (x == y) == ((pairOfLeft x == pairOfLeft y) && (pairOfRight x == pairOfRight y)) [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.Algorithm.pairOfLeft ============ [algebraic-graphs] OK: pairOfLeft (matching []) == Map.empty [algebraic-graphs] OK: pairOfLeft (matching [(2,'a'), (1,'b')]) == Map.fromList [(2,'a'), (1,'b')] [algebraic-graphs] OK: Map.size . pairOfLeft == Map.size . pairOfRight [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.Algorithm.pairOfRight ============ [algebraic-graphs] OK: pairOfRight (matching []) == Map.empty [algebraic-graphs] OK: pairOfRight (matching [(2,'a'), (1,'b')]) == Map.fromList [('a',2), ('b',1)] [algebraic-graphs] OK: Map.size . pairOfRight == Map.size . pairOfLeft [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.Algorithm.matching ============ [algebraic-graphs] OK: matching [(1,'a'), (1,'b')] == matching [(1,'b')] [algebraic-graphs] OK: matching [(1,'a'), (1,'b'), (2,'b'), (2,'a')] == matching [(2,'a')] [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.Algorithm.isMatchingOf ============ [algebraic-graphs] OK: isMatchingOf (matching []) x == True [algebraic-graphs] OK: isMatchingOf (matching xs) empty == null xs [algebraic-graphs] OK: isMatchingOf (matching [(x,y)]) (edge x y) == True [algebraic-graphs] OK: isMatchingOf (matching [(1,2)]) (edge 2 1) == False [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.Algorithm.matchingSize ============ [algebraic-graphs] OK: matchingSize (matching []) == 0 [algebraic-graphs] OK: matchingSize (matching [(2,'a'), (1,'b')]) == 2 [algebraic-graphs] OK: matchingSize (matching [(1,'a'), (1,'b')]) == 1 [algebraic-graphs] OK: matchingSize (matching xs) <= length xs [algebraic-graphs] OK: matchingSize x == Map.size . pairOfLeft [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.Algorithm.maxMatching ============ [algebraic-graphs] OK: maxMatching empty == matching [] [algebraic-graphs] OK: maxMatching (vertices xs ys) == matching [] [algebraic-graphs] OK: maxMatching (path [1,2,3,4]) == matching [(1,2), (3,4)] [algebraic-graphs] OK: matchingSize (maxMatching (circuit [(1,2), (3,4), (5,6)])) == 3 [algebraic-graphs] OK: matchingSize (maxMatching (star x (y:ys))) == 1 [algebraic-graphs] OK: matchingSize (maxMatching (biclique xs ys)) == min (length (nub xs)) (length (nub ys)) [algebraic-graphs] OK: isMatchingOf (maxMatching x) x == True [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.Algorithm.isVertexCoverOf ============ [algebraic-graphs] OK: isVertexCoverOf (xs , ys ) empty == Set.null xs && Set.null ys [algebraic-graphs] OK: isVertexCoverOf (xs , ys ) (leftVertex x) == Set.isSubsetOf xs (Set.singleton x) && Set.null ys [algebraic-graphs] OK: isVertexCoverOf (Set.empty , Set.empty ) (edge x y) == False [algebraic-graphs] OK: isVertexCoverOf (Set.singleton x, ys ) (edge x y) == Set.isSubsetOf ys (Set.singleton y) [algebraic-graphs] OK: isVertexCoverOf (xs , Set.singleton y) (edge x y) == Set.isSubsetOf xs (Set.singleton x) [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.Algorithm.minVertexCover ============ [algebraic-graphs] OK: minVertexCover empty == (Set.empty, Set.empty) [algebraic-graphs] OK: minVertexCover (vertices xs ys) == (Set.empty, Set.empty) [algebraic-graphs] OK: minVertexCover (path [1,2,3]) == (Set.empty, Set.singleton 2) [algebraic-graphs] OK: minVertexCover (star x (1:2:ys)) == (Set.singleton x, Set.empty) [algebraic-graphs] OK: vertexCoverSize (minVertexCover (biclique xs ys)) == min (length (nub xs)) (length (nub ys)) [algebraic-graphs] OK: vertexCoverSize . minVertexCover == matchingSize . maxMatching [algebraic-graphs] OK: isVertexCoverOf (minVertexCover x) x == True [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.Algorithm.isIndependentSetOf ============ [algebraic-graphs] OK: isIndependentSetOf (xs , ys ) empty == Set.null xs && Set.null ys [algebraic-graphs] OK: isIndependentSetOf (xs , ys ) (leftVertex x) == Set.isSubsetOf xs (Set.singleton x) && Set.null ys [algebraic-graphs] OK: isIndependentSetOf (Set.empty , Set.empty ) (edge x y) == True [algebraic-graphs] OK: isIndependentSetOf (Set.singleton x, ys ) (edge x y) == Set.null ys [algebraic-graphs] OK: isIndependentSetOf (xs , Set.singleton y) (edge x y) == Set.null xs [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.Algorithm.maxIndependentSet ============ [algebraic-graphs] OK: maxIndependentSet empty == (Set.empty, Set.empty) [algebraic-graphs] OK: maxIndependentSet (vertices xs ys) == (Set.fromList xs, Set.fromList ys) [algebraic-graphs] OK: maxIndependentSet (path [1,2,3]) == (Set.fromList [1,3], Set.empty) [algebraic-graphs] OK: maxIndependentSet (star x (1:2:ys)) == (Set.empty, Set.fromList (1:2:ys)) [algebraic-graphs] OK: independentSetSize (maxIndependentSet (biclique xs ys)) == max (length (nub xs)) (length (nub ys)) [algebraic-graphs] OK: independentSetSize (maxIndependentSet x) == vertexCount x - vertexCoverSize (minVertexCover x) [algebraic-graphs] OK: isIndependentSetOf (maxIndependentSet x) x == True [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.Algorithm.augmentingPath ============ [algebraic-graphs] OK: augmentingPath (matching []) empty == Left (Set.empty, Set.empty) [algebraic-graphs] OK: augmentingPath (matching []) (edge 1 2) == Right [1,2] [algebraic-graphs] OK: augmentingPath (matching [(1,2)]) (path [1,2,3]) == Left (Set.empty, Set.singleton 2) [algebraic-graphs] OK: augmentingPath (matching [(3,2)]) (path [1,2,3,4]) == Right [1,2,3,4] [algebraic-graphs] OK: isLeft (augmentingPath (maxMatching x) x) == True [algebraic-graphs]  [algebraic-graphs] ============ Bipartite.AdjacencyMap.Algorithm.consistentMatching ============ [algebraic-graphs] OK: consistentMatching (matching xs) == True [algebraic-graphs] OK: consistentMatching (maxMatching x) == True [algebraic-graphs]  [algebraic-graphs] ============ Export.Eq ============ [algebraic-graphs] OK: mempty /= literal "" [algebraic-graphs]  [algebraic-graphs] ============ Export.Ord ============ [algebraic-graphs] OK: mempty < literal "" [algebraic-graphs]  [algebraic-graphs] ============ Export.isEmpty ============ [algebraic-graphs] OK: isEmpty mempty == True [algebraic-graphs] OK: isEmpty (literal "") == False [algebraic-graphs] OK: isEmpty x == (x == mempty) [algebraic-graphs]  [algebraic-graphs] ============ Export.literal ============ [algebraic-graphs] OK: literal "Hello, " <> literal "World!" == literal "Hello, World!" [algebraic-graphs] OK: literal "I am just a string literal" == "I am just a string literal" [algebraic-graphs] OK: render . literal == id [algebraic-graphs]  [algebraic-graphs] ============ Export.render ============ [algebraic-graphs] OK: render (literal "al" <> literal "ga") == "alga" [algebraic-graphs] OK: render mempty == mempty [algebraic-graphs]  [algebraic-graphs] ============ Export.<+> ============ [algebraic-graphs] OK: x <+> mempty == x [algebraic-graphs] OK: mempty <+> x == x [algebraic-graphs] OK: x <+> (y <+> z) == (x <+> y) <+> z [algebraic-graphs] OK: "name" <+> "surname" == "name surname" [algebraic-graphs]  [algebraic-graphs] ============ Export.brackets ============ [algebraic-graphs] OK: brackets "i" == "[i]" [algebraic-graphs] OK: brackets mempty == "[]" [algebraic-graphs]  [algebraic-graphs] ============ Export.doubleQuotes ============ [algebraic-graphs] OK: doubleQuotes "/path/with spaces" == "\"/path/with spaces\"" [algebraic-graphs] OK: doubleQuotes (doubleQuotes mempty) == "\"\"\"\"" [algebraic-graphs]  [algebraic-graphs] ============ Export.indent ============ [algebraic-graphs] OK: indent 0 == id [algebraic-graphs] OK: indent 1 mempty == " " [algebraic-graphs]  [algebraic-graphs] ============ Export.unlines ============ [algebraic-graphs] OK: unlines [] == mempty [algebraic-graphs] OK: unlines [mempty] == "\n" [algebraic-graphs] OK: unlines ["title", "subtitle"] == "title\nsubtitle\n" [algebraic-graphs]  [algebraic-graphs] ============ Export.export ============ [algebraic-graphs] OK: render $ export vDoc eDoc (1 + 2 * (3 + 4) :: Graph Int) [algebraic-graphs]  [algebraic-graphs] ============ Export.Dot.export ============ [algebraic-graphs] OK: export style (1 * 2 + 3 * 4 * 5 :: Graph Int) [algebraic-graphs]  [algebraic-graphs] =========== Export.Dot.attributeQuoting ============ [algebraic-graphs] OK: export style' (1 * 2 + 3 * 4 * 5 :: Graph Int) [algebraic-graphs]  [algebraic-graphs] ============ Export.Dot.exportAsIs ============ [algebraic-graphs] OK: exportAsIs (circuit ["a", "b", "c"] :: Graph String) [algebraic-graphs]  [algebraic-graphs] ============ Export.Dot.exportViaShow ============ [algebraic-graphs] OK: exportViaShow (1 + 2 * (3 + 4) :: Graph Int) [algebraic-graphs]  [algebraic-graphs] ============ Graph ============ [algebraic-graphs] OK: Axioms of graphs [algebraic-graphs] OK: Theorems of graphs [algebraic-graphs]  [algebraic-graphs] ============ Graph.Ord ============ [algebraic-graphs] OK: vertex 1 < vertex 2 [algebraic-graphs] OK: vertex 3 < edge 1 2 [algebraic-graphs] OK: vertex 1 < edge 1 1 [algebraic-graphs] OK: edge 1 1 < edge 1 2 [algebraic-graphs] OK: edge 1 2 < edge 1 1 + edge 2 2 [algebraic-graphs] OK: edge 1 2 < edge 1 3 [algebraic-graphs] OK: x <= x + y [algebraic-graphs] OK: x + y <= x * y [algebraic-graphs]  [algebraic-graphs] ============ Graph.empty ============ [algebraic-graphs] OK: isEmpty empty == True [algebraic-graphs] OK: hasVertex x empty == False [algebraic-graphs] OK: vertexCount empty == 0 [algebraic-graphs] OK: edgeCount empty == 0 [algebraic-graphs]  [algebraic-graphs] ============ Graph.vertex ============ [algebraic-graphs] OK: isEmpty (vertex x) == False [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y) [algebraic-graphs] OK: vertexCount (vertex x) == 1 [algebraic-graphs] OK: edgeCount (vertex x) == 0 [algebraic-graphs]  [algebraic-graphs] ============ Graph.edge ============ [algebraic-graphs] OK: edge x y == connect (vertex x) (vertex y) [algebraic-graphs] OK: hasEdge x y (edge x y) == True [algebraic-graphs] OK: edgeCount (edge x y) == 1 [algebraic-graphs] OK: vertexCount (edge 1 1) == 1 [algebraic-graphs] OK: vertexCount (edge 1 2) == 2 [algebraic-graphs]  [algebraic-graphs] ============ Graph.overlay ============ [algebraic-graphs] OK: isEmpty (overlay x y) == isEmpty x && isEmpty y [algebraic-graphs] OK: hasVertex z (overlay x y) == hasVertex z x || hasVertex z y [algebraic-graphs] OK: vertexCount (overlay x y) >= vertexCount x [algebraic-graphs] OK: vertexCount (overlay x y) <= vertexCount x + vertexCount y [algebraic-graphs] OK: edgeCount (overlay x y) >= edgeCount x [algebraic-graphs] OK: edgeCount (overlay x y) <= edgeCount x + edgeCount y [algebraic-graphs] OK: vertexCount (overlay 1 2) == 2 [algebraic-graphs] OK: edgeCount (overlay 1 2) == 0 [algebraic-graphs]  [algebraic-graphs] ============ Graph.connect ============ [algebraic-graphs] OK: isEmpty (connect x y) == isEmpty x && isEmpty y [algebraic-graphs] OK: hasVertex z (connect x y) == hasVertex z x || hasVertex z y [algebraic-graphs] OK: vertexCount (connect x y) >= vertexCount x [algebraic-graphs] OK: vertexCount (connect x y) <= vertexCount x + vertexCount y [algebraic-graphs] OK: edgeCount (connect x y) >= edgeCount x [algebraic-graphs] OK: edgeCount (connect x y) >= edgeCount y [algebraic-graphs] OK: edgeCount (connect x y) >= vertexCount x * vertexCount y [algebraic-graphs] OK: edgeCount (connect x y) <= vertexCount x * vertexCount y + edgeCount x + edgeCount y [algebraic-graphs] OK: vertexCount (connect 1 2) == 2 [algebraic-graphs] OK: edgeCount (connect 1 2) == 1 [algebraic-graphs]  [algebraic-graphs] ============ Graph.vertices ============ [algebraic-graphs] OK: vertices [] == empty [algebraic-graphs] OK: vertices [x] == vertex x [algebraic-graphs] OK: vertices == overlays . map vertex [algebraic-graphs] OK: hasVertex x . vertices == elem x [algebraic-graphs] OK: vertexCount . vertices == length . nub [algebraic-graphs] OK: vertexSet . vertices == Set.fromList [algebraic-graphs]  [algebraic-graphs] ============ Graph.edges ============ [algebraic-graphs] OK: edges [] == empty [algebraic-graphs] OK: edges [(x,y)] == edge x y [algebraic-graphs] OK: edges == overlays . map (uncurry edge) [algebraic-graphs] OK: edgeCount . edges == length . nub [algebraic-graphs]  [algebraic-graphs] ============ Graph.overlays ============ [algebraic-graphs] OK: overlays [] == empty [algebraic-graphs] OK: overlays [x] == x [algebraic-graphs] OK: overlays [x,y] == overlay x y [algebraic-graphs] OK: overlays == foldr overlay empty [algebraic-graphs] OK: isEmpty . overlays == all isEmpty [algebraic-graphs]  [algebraic-graphs] ============ Graph.connects ============ [algebraic-graphs] OK: connects [] == empty [algebraic-graphs] OK: connects [x] == x [algebraic-graphs] OK: connects [x,y] == connect x y [algebraic-graphs] OK: connects == foldr connect empty [algebraic-graphs] OK: isEmpty . connects == all isEmpty [algebraic-graphs]  [algebraic-graphs] ============ Graph.isSubgraphOf ============ [algebraic-graphs] OK: isSubgraphOf empty x == True [algebraic-graphs] OK: isSubgraphOf (vertex x) empty == False [algebraic-graphs] OK: isSubgraphOf x (overlay x y) == True [algebraic-graphs] OK: isSubgraphOf (overlay x y) (connect x y) == True [algebraic-graphs] OK: isSubgraphOf (path xs) (circuit xs) == True [algebraic-graphs] OK: isSubgraphOf x y ==> x <= y [algebraic-graphs]  [algebraic-graphs] ============ Graph.toGraph et al. ============ [algebraic-graphs] OK: toGraph == foldg Empty Vertex Overlay Connect [algebraic-graphs] OK: foldg == Algebra.Graph.foldg . toGraph [algebraic-graphs] OK: isEmpty == foldg True (const False) (&&) (&&) [algebraic-graphs] OK: size == foldg 1 (const 1) (+) (+) [algebraic-graphs] OK: hasVertex x == foldg False (==x) (||) (||) [algebraic-graphs] OK: hasEdge x y == Algebra.Graph.hasEdge x y . toGraph [algebraic-graphs] OK: vertexCount == Set.size . vertexSet [algebraic-graphs] OK: edgeCount == Set.size . edgeSet [algebraic-graphs] OK: vertexList == Set.toAscList . vertexSet [algebraic-graphs] OK: edgeList == Set.toAscList . edgeSet [algebraic-graphs] OK: vertexSet == foldg Set.empty Set.singleton Set.union Set.union [algebraic-graphs] OK: vertexIntSet == foldg IntSet.empty IntSet.singleton IntSet.union IntSet.union [algebraic-graphs] OK: edgeSet == Algebra.Graph.AdjacencyMap.edgeSet . foldg empty vertex overlay connect [algebraic-graphs] OK: preSet x == Algebra.Graph.AdjacencyMap.preSet x . toAdjacencyMap [algebraic-graphs] OK: preIntSet x == Algebra.Graph.AdjacencyIntMap.preIntSet x . toAdjacencyIntMap [algebraic-graphs] OK: postSet x == Algebra.Graph.AdjacencyMap.postSet x . toAdjacencyMap [algebraic-graphs] OK: postIntSet x == Algebra.Graph.AdjacencyIntMap.postIntSet x . toAdjacencyIntMap [algebraic-graphs] OK: adjacencyList == Algebra.Graph.AdjacencyMap.adjacencyList . toAdjacencyMap [algebraic-graphs] OK: adjacencyMap == Algebra.Graph.AdjacencyMap.adjacencyMap . toAdjacencyMap [algebraic-graphs] OK: adjacencyIntMap == Algebra.Graph.AdjacencyIntMap.adjacencyIntMap . toAdjacencyIntMap [algebraic-graphs] OK: adjacencyMapTranspose == Algebra.Graph.AdjacencyMap.adjacencyMap . toAdjacencyMapTranspose [algebraic-graphs] OK: adjacencyIntMapTranspose == Algebra.Graph.AdjacencyIntMap.adjacencyIntMap . toAdjacencyIntMapTranspose [algebraic-graphs] OK: dfsForest == Algebra.Graph.AdjacencyMap.dfsForest . toAdjacencyMap [algebraic-graphs] OK: dfsForestFrom == Algebra.Graph.AdjacencyMap.dfsForestFrom . toAdjacencyMap [algebraic-graphs] OK: dfs == Algebra.Graph.AdjacencyMap.dfs . toAdjacencyMap [algebraic-graphs] OK: reachable == Algebra.Graph.AdjacencyMap.reachable . toAdjacencyMap [algebraic-graphs] OK: topSort == Algebra.Graph.AdjacencyMap.topSort . toAdjacencyMap [algebraic-graphs] OK: isAcyclic == Algebra.Graph.AdjacencyMap.isAcyclic . toAdjacencyMap [algebraic-graphs] OK: isTopSortOf vs == Algebra.Graph.AdjacencyMap.isTopSortOf vs . toAdjacencyMap [algebraic-graphs] OK: toAdjacencyMap == foldg empty vertex overlay connect [algebraic-graphs] OK: toAdjacencyMapTranspose == foldg empty vertex overlay (flip connect) [algebraic-graphs] OK: toAdjacencyIntMap == foldg empty vertex overlay connect [algebraic-graphs] OK: toAdjacencyIntMapTranspose == foldg empty vertex overlay (flip connect) [algebraic-graphs] OK: isDfsForestOf f == Algebra.Graph.AdjacencyMap.isDfsForestOf f . toAdjacencyMap [algebraic-graphs] OK: isTopSortOf vs == Algebra.Graph.AdjacencyMap.isTopSortOf vs . toAdjacencyMap [algebraic-graphs]  [algebraic-graphs] ============ Graph.foldg ============ [algebraic-graphs] OK: foldg empty vertex overlay connect == id [algebraic-graphs] OK: foldg empty vertex overlay (flip connect) == transpose [algebraic-graphs] OK: foldg 1 (const 1) (+) (+) == size [algebraic-graphs] OK: foldg True (const False) (&&) (&&) == isEmpty [algebraic-graphs]  [algebraic-graphs] ============ Graph.isEmpty ============ [algebraic-graphs] OK: isEmpty empty == True [algebraic-graphs] OK: isEmpty (overlay empty empty) == True [algebraic-graphs] OK: isEmpty (vertex x) == False [algebraic-graphs] OK: isEmpty (removeVertex x $ vertex x) == True [algebraic-graphs] OK: isEmpty (removeEdge x y $ edge x y) == False [algebraic-graphs]  [algebraic-graphs] ============ Graph.hasVertex ============ [algebraic-graphs] OK: hasVertex x empty == False [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y) [algebraic-graphs] OK: hasVertex x . removeVertex x == const False [algebraic-graphs]  [algebraic-graphs] ============ Graph.hasEdge ============ [algebraic-graphs] OK: hasEdge x y empty == False [algebraic-graphs] OK: hasEdge x y (vertex z) == False [algebraic-graphs] OK: hasEdge x y (edge x y) == True [algebraic-graphs] OK: hasEdge x y . removeEdge x y == const False [algebraic-graphs] OK: hasEdge x y == elem (x,y) . edgeList [algebraic-graphs]  [algebraic-graphs] ============ Graph.vertexCount ============ [algebraic-graphs] OK: vertexCount empty == 0 [algebraic-graphs] OK: vertexCount (vertex x) == 1 [algebraic-graphs] OK: vertexCount == length . vertexList [algebraic-graphs] OK: vertexCount x < vertexCount y ==> x < y [algebraic-graphs]  [algebraic-graphs] ============ Graph.edgeCount ============ [algebraic-graphs] OK: edgeCount empty == 0 [algebraic-graphs] OK: edgeCount (vertex x) == 0 [algebraic-graphs] OK: edgeCount (edge x y) == 1 [algebraic-graphs] OK: edgeCount == length . edgeList [algebraic-graphs]  [algebraic-graphs] ============ Graph.vertexList ============ [algebraic-graphs] OK: vertexList empty == [] [algebraic-graphs] OK: vertexList (vertex x) == [x] [algebraic-graphs] OK: vertexList . vertices == nub . sort [algebraic-graphs]  [algebraic-graphs] ============ Graph.vertexSet ============ [algebraic-graphs] OK: vertexSet empty == Set.empty [algebraic-graphs] OK: vertexSet . vertex == Set.singleton [algebraic-graphs] OK: vertexSet . vertices == Set.fromList [algebraic-graphs]  [algebraic-graphs] ============ Graph.vertexIntSet ============ [algebraic-graphs] OK: vertexIntSet empty == IntSet.empty [algebraic-graphs] OK: vertexIntSet . vertex == IntSet.singleton [algebraic-graphs] OK: vertexIntSet . vertices == IntSet.fromList [algebraic-graphs] OK: vertexIntSet . clique == IntSet.fromList [algebraic-graphs]  [algebraic-graphs] ============ Graph.edgeList ============ [algebraic-graphs] OK: edgeList empty == [] [algebraic-graphs] OK: edgeList (vertex x) == [] [algebraic-graphs] OK: edgeList (edge x y) == [(x,y)] [algebraic-graphs] OK: edgeList (star 2 [3,1]) == [(2,1), (2,3)] [algebraic-graphs] OK: edgeList . edges == nub . sort [algebraic-graphs]  [algebraic-graphs] ============ Graph.edgeSet ============ [algebraic-graphs] OK: edgeSet empty == Set.empty [algebraic-graphs] OK: edgeSet (vertex x) == Set.empty [algebraic-graphs] OK: edgeSet (edge x y) == Set.singleton (x,y) [algebraic-graphs] OK: edgeSet . edges == Set.fromList [algebraic-graphs]  [algebraic-graphs] ============ Graph.adjacencyList ============ [algebraic-graphs] OK: adjacencyList empty == [] [algebraic-graphs] OK: adjacencyList (vertex x) == [(x, [])] [algebraic-graphs] OK: adjacencyList (edge 1 2) == [(1, [2]), (2, [])] [algebraic-graphs] OK: adjacencyList (star 2 [3,1]) == [(1, []), (2, [1,3]), (3, [])] [algebraic-graphs]  [algebraic-graphs] ============ Graph.preSet ============ [algebraic-graphs] OK: preSet x empty == Set.empty [algebraic-graphs] OK: preSet x (vertex x) == Set.empty [algebraic-graphs] OK: preSet 1 (edge 1 2) == Set.empty [algebraic-graphs] OK: preSet y (edge x y) == Set.fromList [x] [algebraic-graphs]  [algebraic-graphs] ============ Graph.preIntSet ============ [algebraic-graphs] OK: preIntSet x empty == IntSet.empty [algebraic-graphs] OK: preIntSet x (vertex x) == IntSet.empty [algebraic-graphs] OK: preIntSet 1 (edge 1 2) == IntSet.empty [algebraic-graphs] OK: preIntSet y (edge x y) == IntSet.fromList [x] [algebraic-graphs]  [algebraic-graphs] ============ Graph.postSet ============ [algebraic-graphs] OK: postSet x empty == Set.empty [algebraic-graphs] OK: postSet x (vertex x) == Set.empty [algebraic-graphs] OK: postSet x (edge x y) == Set.fromList [y] [algebraic-graphs] OK: postSet 2 (edge 1 2) == Set.empty [algebraic-graphs]  [algebraic-graphs] ============ Graph.postIntSet ============ [algebraic-graphs] OK: postIntSet x empty == IntSet.empty [algebraic-graphs] OK: postIntSet x (vertex x) == IntSet.empty [algebraic-graphs] OK: postIntSet 2 (edge 1 2) == IntSet.empty [algebraic-graphs] OK: postIntSet x (edge x y) == IntSet.fromList [y] [algebraic-graphs]  [algebraic-graphs] ============ Graph.size ============ [algebraic-graphs] OK: size empty == 1 [algebraic-graphs] OK: size (vertex x) == 1 [algebraic-graphs] OK: size (overlay x y) == size x + size y [algebraic-graphs] OK: size (connect x y) == size x + size y [algebraic-graphs] OK: size x >= 1 [algebraic-graphs] OK: size x >= vertexCount x [algebraic-graphs]  [algebraic-graphs] ============ Graph.path ============ [algebraic-graphs] OK: path [] == empty [algebraic-graphs] OK: path [x] == vertex x [algebraic-graphs] OK: path [x,y] == edge x y [algebraic-graphs]  [algebraic-graphs] ============ Graph.circuit ============ [algebraic-graphs] OK: circuit [] == empty [algebraic-graphs] OK: circuit [x] == edge x x [algebraic-graphs] OK: circuit [x,y] == edges [(x,y), (y,x)] [algebraic-graphs]  [algebraic-graphs] ============ Graph.clique ============ [algebraic-graphs] OK: clique [] == empty [algebraic-graphs] OK: clique [x] == vertex x [algebraic-graphs] OK: clique [x,y] == edge x y [algebraic-graphs] OK: clique [x,y,z] == edges [(x,y), (x,z), (y,z)] [algebraic-graphs] OK: clique (xs ++ ys) == connect (clique xs) (clique ys) [algebraic-graphs]  [algebraic-graphs] ============ Graph.biclique ============ [algebraic-graphs] OK: biclique [] [] == empty [algebraic-graphs] OK: biclique [x] [] == vertex x [algebraic-graphs] OK: biclique [] [y] == vertex y [algebraic-graphs] OK: biclique [x1,x2] [y1,y2] == edges [(x1,y1), (x1,y2), (x2,y1), (x2,y2)] [algebraic-graphs] OK: biclique xs ys == connect (vertices xs) (vertices ys) [algebraic-graphs]  [algebraic-graphs] ============ Graph.star ============ [algebraic-graphs] OK: star x [] == vertex x [algebraic-graphs] OK: star x [y] == edge x y [algebraic-graphs] OK: star x [y,z] == edges [(x,y), (x,z)] [algebraic-graphs] OK: star x ys == connect (vertex x) (vertices ys) [algebraic-graphs]  [algebraic-graphs] ============ Graph.stars ============ [algebraic-graphs] OK: stars [] == empty [algebraic-graphs] OK: stars [(x, [])] == vertex x [algebraic-graphs] OK: stars [(x, [y])] == edge x y [algebraic-graphs] OK: stars [(x, ys)] == star x ys [algebraic-graphs] OK: stars == overlays . map (uncurry star) [algebraic-graphs] OK: stars . adjacencyList == id [algebraic-graphs] OK: overlay (stars xs) (stars ys) == stars (xs ++ ys) [algebraic-graphs]  [algebraic-graphs] ============ Graph.tree ============ [algebraic-graphs] OK: tree (Node x []) == vertex x [algebraic-graphs] OK: tree (Node x [Node y [Node z []]]) == path [x,y,z] [algebraic-graphs] OK: tree (Node x [Node y [], Node z []]) == star x [y,z] [algebraic-graphs] OK: tree (Node 1 [Node 2 [], Node 3 [Node 4 [], Node 5 []]]) == edges [(1,2), (1,3), (3,4), (3,5)] [algebraic-graphs]  [algebraic-graphs] ============ Graph.forest ============ [algebraic-graphs] OK: forest [] == empty [algebraic-graphs] OK: forest [x] == tree x [algebraic-graphs] OK: forest [Node 1 [Node 2 [], Node 3 []], Node 4 [Node 5 []]] == edges [(1,2), (1,3), (4,5)] [algebraic-graphs] OK: forest == overlays . map tree [algebraic-graphs]  [algebraic-graphs] ============ Graph.removeVertex ============ [algebraic-graphs] OK: removeVertex x (vertex x) == empty [algebraic-graphs] OK: removeVertex 1 (vertex 2) == vertex 2 [algebraic-graphs] OK: removeVertex x (edge x x) == empty [algebraic-graphs] OK: removeVertex 1 (edge 1 2) == vertex 2 [algebraic-graphs] OK: removeVertex x . removeVertex x == removeVertex x [algebraic-graphs]  [algebraic-graphs] ============ Graph.removeEdge ============ [algebraic-graphs] OK: removeEdge x y (edge x y) == vertices [x,y] [algebraic-graphs] OK: removeEdge x y . removeEdge x y == removeEdge x y [algebraic-graphs] OK: removeEdge x y . removeVertex x == removeVertex x [algebraic-graphs] OK: removeEdge 1 1 (1 * 1 * 2 * 2) == 1 * 2 * 2 [algebraic-graphs] OK: removeEdge 1 2 (1 * 1 * 2 * 2) == 1 * 1 + 2 * 2 [algebraic-graphs] OK: size (removeEdge x y z) <= 3 * size z [algebraic-graphs]  [algebraic-graphs] ============ Graph.replaceVertex ============ [algebraic-graphs] OK: replaceVertex x x == id [algebraic-graphs] OK: replaceVertex x y (vertex x) == vertex y [algebraic-graphs] OK: replaceVertex x y == mergeVertices (== x) y [algebraic-graphs]  [algebraic-graphs] ============ Graph.mergeVertices ============ [algebraic-graphs] OK: mergeVertices (const False) x == id [algebraic-graphs] OK: mergeVertices (== x) y == replaceVertex x y [algebraic-graphs] OK: mergeVertices even 1 (0 * 2) == 1 * 1 [algebraic-graphs] OK: mergeVertices odd 1 (3 + 4 * 5) == 4 * 1 [algebraic-graphs]  [algebraic-graphs] ============ Graph.transpose ============ [algebraic-graphs] OK: transpose empty == empty [algebraic-graphs] OK: transpose (vertex x) == vertex x [algebraic-graphs] OK: transpose (edge x y) == edge y x [algebraic-graphs] OK: transpose . transpose == id [algebraic-graphs] OK: edgeList . transpose == sort . map swap . edgeList [algebraic-graphs]  [algebraic-graphs] ============ Graph.gmap ============ [algebraic-graphs] OK: gmap f empty == empty [algebraic-graphs] OK: gmap f (vertex x) == vertex (f x) [algebraic-graphs] OK: gmap f (edge x y) == edge (f x) (f y) [algebraic-graphs] OK: gmap id == id [algebraic-graphs] OK: gmap f . gmap g == gmap (f . g) [algebraic-graphs]  [algebraic-graphs] ============ Graph.induce ============ [algebraic-graphs] OK: induce (const True ) x == x [algebraic-graphs] OK: induce (const False) x == empty [algebraic-graphs] OK: induce (/= x) == removeVertex x [algebraic-graphs] OK: induce p . induce q == induce (\x -> p x && q x) [algebraic-graphs] OK: isSubgraphOf (induce p x) x == True [algebraic-graphs]  [algebraic-graphs] ============ Graph.induceJust ============ [algebraic-graphs] OK: induceJust (vertex Nothing) == empty [algebraic-graphs] OK: induceJust (edge (Just x) Nothing) == vertex x [algebraic-graphs] OK: induceJust . gmap Just == id [algebraic-graphs] OK: induceJust . gmap (\x -> if p x then Just x else Nothing) == induce p [algebraic-graphs]  [algebraic-graphs] ============ Graph.compose ============ [algebraic-graphs] OK: compose empty x == empty [algebraic-graphs] OK: compose x empty == empty [algebraic-graphs] OK: compose (vertex x) y == empty [algebraic-graphs] OK: compose x (vertex y) == empty [algebraic-graphs] OK: compose x (compose y z) == compose (compose x y) z [algebraic-graphs] OK: compose x (overlay y z) == overlay (compose x y) (compose x z) [algebraic-graphs] OK: compose (overlay x y) z == overlay (compose x z) (compose y z) [algebraic-graphs] OK: compose (edge x y) (edge y z) == edge x z [algebraic-graphs] OK: compose (path [1..5]) (path [1..5]) == edges [(1,3),(2,4),(3,5)] [algebraic-graphs] OK: compose (circuit [1..5]) (circuit [1..5]) == circuit [1,3,5,2,4] [algebraic-graphs] OK: size (compose x y) <= edgeCount x + edgeCount y + 1 [algebraic-graphs]  [algebraic-graphs] ============ Graph.(===) ============ [algebraic-graphs] OK: x === x == True [algebraic-graphs] OK: x === x + empty == False [algebraic-graphs] OK: x + y === x + y == True [algebraic-graphs] OK: 1 + 2 === 2 + 1 == False [algebraic-graphs] OK: x + y === x * y == False [algebraic-graphs]  [algebraic-graphs] ============ Graph.mesh ============ [algebraic-graphs] OK: mesh xs [] == empty [algebraic-graphs] OK: mesh [] ys == empty [algebraic-graphs] OK: mesh [x] [y] == vertex (x, y) [algebraic-graphs] OK: mesh xs ys == box (path xs) (path ys) [algebraic-graphs] OK: mesh [1..3] "ab" == [algebraic-graphs] OK: size (mesh xs ys) == max 1 (3 * length xs * length ys - length xs - length ys -1) [algebraic-graphs]  [algebraic-graphs] ============ Graph.torus ============ [algebraic-graphs] OK: torus xs [] == empty [algebraic-graphs] OK: torus [] ys == empty [algebraic-graphs] OK: torus [x] [y] == edge (x,y) (x,y) [algebraic-graphs] OK: torus xs ys == box (circuit xs) (circuit ys) [algebraic-graphs] OK: torus [1,2] "ab" == [algebraic-graphs] OK: size (torus xs ys) == max 1 (3 * length xs * length ys) [algebraic-graphs]  [algebraic-graphs] ============ Graph.deBruijn ============ [algebraic-graphs] OK: deBruijn 0 xs == edge [] [] [algebraic-graphs] OK: n > 0 ==> deBruijn n [] == empty [algebraic-graphs] OK: deBruijn 1 [0,1] == edges [ ([0],[0]), ([0],[1]), ([1],[0]), ([1],[1]) ] [algebraic-graphs] OK: deBruijn 2 "0" == edge "00" "00" [algebraic-graphs] OK: deBruijn 2 "01" == [algebraic-graphs] OK: transpose (deBruijn n xs) == gmap reverse $ deBruijn n xs [algebraic-graphs] OK: vertexCount (deBruijn n xs) == (length $ nub xs)^n [algebraic-graphs] OK: n > 0 ==> edgeCount (deBruijn n xs) == (length $ nub xs)^(n + 1) [algebraic-graphs]  [algebraic-graphs] ============ Graph.splitVertex ============ [algebraic-graphs] OK: splitVertex x [] == removeVertex x [algebraic-graphs] OK: splitVertex x [x] == id [algebraic-graphs] OK: splitVertex x [y] == replaceVertex x y [algebraic-graphs] OK: splitVertex 1 [0, 1] $ 1 * (2 + 3) == (0 + 1) * (2 + 3) [algebraic-graphs]  [algebraic-graphs] ============ Graph.bind ============ [algebraic-graphs] OK: bind empty f == empty [algebraic-graphs] OK: bind (vertex x) f == f x [algebraic-graphs] OK: bind (edge x y) f == connect (f x) (f y) [algebraic-graphs] OK: bind (vertices xs) f == overlays (map f xs) [algebraic-graphs] OK: bind x (const empty) == empty [algebraic-graphs] OK: bind x vertex == x [algebraic-graphs] OK: bind (bind x f) g == bind x (\y -> bind (f y) g) [algebraic-graphs]  [algebraic-graphs] ============ Graph.simplify ============ [algebraic-graphs] OK: simplify == id [algebraic-graphs] OK: size (simplify x) <= size x [algebraic-graphs]  [algebraic-graphs] ============ Graph.box ============ [algebraic-graphs] OK: box x y ~~ box y x [algebraic-graphs] OK: box x (overlay y z) == overlay (box x y) (box x z) [algebraic-graphs] OK: box x (vertex ()) ~~ x [algebraic-graphs] OK: box x empty ~~ empty [algebraic-graphs] OK: box x (box y z) ~~ box (box x y) z [algebraic-graphs] OK: transpose (box x y) == box (transpose x) (transpose y) [algebraic-graphs] OK: vertexCount (box x y) == vertexCount x * vertexCount y [algebraic-graphs] OK: edgeCount (box x y) <= vertexCount x * edgeCount y + edgeCount x * vertexCount y [algebraic-graphs]  [algebraic-graphs] ============ Graph.sparsify ============ [algebraic-graphs] OK: sort . reachable x == sort . rights . reachable (sparsify x) . Right [algebraic-graphs] OK: vertexCount (sparsify x) <= vertexCount x + size x + 1 [algebraic-graphs] OK: edgeCount (sparsify x) <= 3 * size x [algebraic-graphs] OK: size (sparsify x) <= 3 * size x [algebraic-graphs]  [algebraic-graphs] ============ Graph.sparsifyKL ============ [algebraic-graphs] OK: sort . reachable x == sort . filter (<= n) . reachable (sparsifyKL n x) [algebraic-graphs] OK: length (vertices $ sparsifyKL n x) <= vertexCount x + size x + 1 [algebraic-graphs] OK: length (edges $ sparsifyKL n x) <= 3 * size x [algebraic-graphs]  [algebraic-graphs] ============ Graph.context ============ [algebraic-graphs] OK: context (const False) x == Nothing [algebraic-graphs] OK: context (== 1) (edge 1 2) == Just (Context [ ] [2 ]) [algebraic-graphs] OK: context (== 2) (edge 1 2) == Just (Context [1 ] [ ]) [algebraic-graphs] OK: context (const True ) (edge 1 2) == Just (Context [1 ] [2 ]) [algebraic-graphs] OK: context (== 4) (3 * 1 * 4 * 1 * 5) == Just (Context [3,1] [1,5]) [algebraic-graphs]  [algebraic-graphs] ============ Graph.buildg ============ [algebraic-graphs] OK: buildg (\e _ _ _ -> e) == empty [algebraic-graphs] OK: buildg (\_ v _ _ -> v x) == vertex x [algebraic-graphs] OK: buildg (\e v o c -> o (foldg e v o c x) (foldg e v o c y)) == overlay x y [algebraic-graphs] OK: buildg (\e v o c -> c (foldg e v o c x) (foldg e v o c y)) == connect x y [algebraic-graphs] OK: buildg (\e v o _ -> foldr o e (map v xs)) == vertices xs [algebraic-graphs] OK: buildg (\e v o c -> foldg e v o (flip c) g) == transpose g [algebraic-graphs]  [algebraic-graphs] ============ Internal.List ============ [algebraic-graphs] OK: pure 1 <> pure 4 == [1, 4] [algebraic-graphs]  [algebraic-graphs] ============ Graph.Label ============ [algebraic-graphs]  [algebraic-graphs] ============ Any: instances ============ [algebraic-graphs] OK: Semiring [algebraic-graphs] OK: StarSemiring [algebraic-graphs] OK: Dioid [algebraic-graphs]  [algebraic-graphs] ============ Distance Int: instances ============ [algebraic-graphs] OK: Semiring [algebraic-graphs] OK: StarSemiring [algebraic-graphs] OK: Dioid [algebraic-graphs]  [algebraic-graphs] ============ Capacity Int: instances ============ [algebraic-graphs] OK: Semiring [algebraic-graphs] OK: StarSemiring [algebraic-graphs] OK: Dioid [algebraic-graphs]  [algebraic-graphs] ============ Minimum (Path Int): instances ============ [algebraic-graphs] OK: LeftNearRing [algebraic-graphs]  [algebraic-graphs] ============ PowerSet (Path Int): instances ============ [algebraic-graphs] OK: Semiring [algebraic-graphs] OK: Dioid [algebraic-graphs]  [algebraic-graphs] ============ Count Int: instances ============ [algebraic-graphs] OK: Semiring [algebraic-graphs] OK: StarSemiring [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.consistent ============ [algebraic-graphs] OK: arbitraryLabelledAdjacencyMap [algebraic-graphs] OK: empty [algebraic-graphs] OK: vertex [algebraic-graphs] OK: edge [algebraic-graphs] OK: overlay [algebraic-graphs] OK: connect [algebraic-graphs] OK: vertices [algebraic-graphs] OK: edges [algebraic-graphs] OK: overlays [algebraic-graphs] OK: fromAdjacencyMaps [algebraic-graphs] OK: removeVertex [algebraic-graphs] OK: removeEdge [algebraic-graphs] OK: replaceVertex [algebraic-graphs] OK: replaceEdge [algebraic-graphs] OK: transpose [algebraic-graphs] OK: gmap [algebraic-graphs] OK: emap [algebraic-graphs] OK: induce [algebraic-graphs] OK: closure [algebraic-graphs] OK: reflexiveClosure [algebraic-graphs] OK: symmetricClosure [algebraic-graphs] OK: transitiveClosure [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.empty ============ [algebraic-graphs] OK: isEmpty empty == True [algebraic-graphs] OK: hasVertex x empty == False [algebraic-graphs] OK: vertexCount empty == 0 [algebraic-graphs] OK: edgeCount empty == 0 [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.vertex ============ [algebraic-graphs] OK: isEmpty (vertex x) == False [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y) [algebraic-graphs] OK: vertexCount (vertex x) == 1 [algebraic-graphs] OK: edgeCount (vertex x) == 0 [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.edge ============ [algebraic-graphs] OK: edge e x y == connect e (vertex x) (vertex y) [algebraic-graphs] OK: edge zero x y == vertices [x,y] [algebraic-graphs] OK: hasEdge x y (edge e x y) == (e /= mempty) [algebraic-graphs] OK: edgeLabel x y (edge e x y) == e [algebraic-graphs] OK: edgeCount (edge e x y) == if e == mempty then 0 else 1 [algebraic-graphs] OK: vertexCount (edge e 1 1) == 1 [algebraic-graphs] OK: vertexCount (edge e 1 2) == 2 [algebraic-graphs] OK: x -- y == edge e x y [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.overlay ============ [algebraic-graphs] OK: isEmpty (overlay x y) == isEmpty x && isEmpty y [algebraic-graphs] OK: hasVertex z (overlay x y) == hasVertex z x || hasVertex z y [algebraic-graphs] OK: vertexCount (overlay x y) >= vertexCount x [algebraic-graphs] OK: vertexCount (overlay x y) <= vertexCount x + vertexCount y [algebraic-graphs] OK: edgeCount (overlay x y) >= edgeCount x [algebraic-graphs] OK: edgeCount (overlay x y) <= edgeCount x + edgeCount y [algebraic-graphs] OK: vertexCount (overlay 1 2) == 2 [algebraic-graphs] OK: edgeCount (overlay 1 2) == 0 [algebraic-graphs]  [algebraic-graphs] OK: edgeLabel x y $ overlay (edge e x y) (edge zero x y) == e [algebraic-graphs] OK: edgeLabel x y $ overlay (edge e x y) (edge f x y) == e <+> f [algebraic-graphs]  [algebraic-graphs] OK: edgeLabel 1 3 $ transitiveClosure (overlay (edge e 1 2) (edge one 2 3)) == e [algebraic-graphs] OK: edgeLabel 1 3 $ transitiveClosure (overlay (edge e 1 2) (edge f 2 3)) == e <.> f [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.connect ============ [algebraic-graphs] OK: isEmpty (connect e x y) == isEmpty x && isEmpty y [algebraic-graphs] OK: hasVertex z (connect e x y) == hasVertex z x || hasVertex z y [algebraic-graphs] OK: vertexCount (connect e x y) >= vertexCount x [algebraic-graphs] OK: vertexCount (connect e x y) <= vertexCount x + vertexCount y [algebraic-graphs] OK: edgeCount (connect e x y) <= vertexCount x * vertexCount y + edgeCount x + edgeCount y [algebraic-graphs] OK: vertexCount (connect e 1 2) == 2 [algebraic-graphs] OK: edgeCount (connect e 1 2) == if e == zero then 0 else 1 [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.vertices ============ [algebraic-graphs] OK: vertices [] == empty [algebraic-graphs] OK: vertices [x] == vertex x [algebraic-graphs] OK: vertices == overlays . map vertex [algebraic-graphs] OK: hasVertex x . vertices == elem x [algebraic-graphs] OK: vertexCount . vertices == length . nub [algebraic-graphs] OK: vertexSet . vertices == Set.fromList [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.edges ============ [algebraic-graphs] OK: edges [] == empty [algebraic-graphs] OK: edges [(e,x,y)] == edge e x y [algebraic-graphs] OK: edges == overlays . map (\(e, x, y) -> edge e x y) [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.overlays ============ [algebraic-graphs] OK: overlays [] == empty [algebraic-graphs] OK: overlays [x] == x [algebraic-graphs] OK: overlays [x,y] == overlay x y [algebraic-graphs] OK: overlays == foldr overlay empty [algebraic-graphs] OK: isEmpty . overlays == all isEmpty [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.fromAdjacencyMaps ============ [algebraic-graphs] OK: fromAdjacencyMaps [] == empty [algebraic-graphs] OK: fromAdjacencyMaps [(x, Map.empty)] == vertex x [algebraic-graphs] OK: fromAdjacencyMaps [(x, Map.singleton y e)] == if e == zero then vertices [x,y] else edge e x y [algebraic-graphs] OK: overlay (fromAdjacencyMaps xs) (fromAdjacencyMaps ys) == fromAdjacencyMaps (xs ++ ys) [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.isSubgraphOf ============ [algebraic-graphs] OK: isSubgraphOf empty x == True [algebraic-graphs] OK: isSubgraphOf (vertex x) empty == False [algebraic-graphs] OK: isSubgraphOf x y ==> x <= y [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.isEmpty ============ [algebraic-graphs] OK: isEmpty empty == True [algebraic-graphs] OK: isEmpty (overlay empty empty) == True [algebraic-graphs] OK: isEmpty (vertex x) == False [algebraic-graphs] OK: isEmpty (removeVertex x $ vertex x) == True [algebraic-graphs] OK: isEmpty (removeEdge x y $ edge e x y) == False [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.hasVertex ============ [algebraic-graphs] OK: hasVertex x empty == False [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y) [algebraic-graphs] OK: hasVertex x . removeVertex x == const False [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.hasEdge ============ [algebraic-graphs] OK: hasEdge x y empty == False [algebraic-graphs] OK: hasEdge x y (vertex z) == False [algebraic-graphs] OK: hasEdge x y (edge e x y) == (e /= zero) [algebraic-graphs] OK: hasEdge x y . removeEdge x y == const False [algebraic-graphs] OK: hasEdge x y == not . null . filter (\(_,ex,ey) -> ex == x && ey == y) . edgeList [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.edgeLabel ============ [algebraic-graphs] OK: edgeLabel x y empty == zero [algebraic-graphs] OK: edgeLabel x y (vertex z) == zero [algebraic-graphs] OK: edgeLabel x y (edge e x y) == e [algebraic-graphs] OK: edgeLabel s t (overlay x y) == edgeLabel s t x + edgeLabel s t y [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.vertexCount ============ [algebraic-graphs] OK: vertexCount empty == 0 [algebraic-graphs] OK: vertexCount (vertex x) == 1 [algebraic-graphs] OK: vertexCount == length . vertexList [algebraic-graphs] OK: vertexCount x < vertexCount y ==> x < y [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.edgeCount ============ [algebraic-graphs] OK: edgeCount empty == 0 [algebraic-graphs] OK: edgeCount (vertex x) == 0 [algebraic-graphs] OK: edgeCount (edge e x y) == if e == zero then 0 else 1 [algebraic-graphs] OK: edgeCount == length . edgeList [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.vertexList ============ [algebraic-graphs] OK: vertexList empty == [] [algebraic-graphs] OK: vertexList (vertex x) == [x] [algebraic-graphs] OK: vertexList . vertices == nub . sort [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.edgeList ============ [algebraic-graphs] OK: edgeList empty == [] [algebraic-graphs] OK: edgeList (vertex x) == [] [algebraic-graphs] OK: edgeList (edge e x y) == if e == zero then [] else [(e,x,y)] [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.vertexSet ============ [algebraic-graphs] OK: vertexSet empty == Set.empty [algebraic-graphs] OK: vertexSet . vertex == Set.singleton [algebraic-graphs] OK: vertexSet . vertices == Set.fromList [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.edgeSet ============ [algebraic-graphs] OK: edgeSet empty == Set.empty [algebraic-graphs] OK: edgeSet (vertex x) == Set.empty [algebraic-graphs] OK: edgeSet (edge e x y) == if e == zero then Set.empty else Set.singleton (e,x,y) [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.preSet ============ [algebraic-graphs] OK: preSet x empty == Set.empty [algebraic-graphs] OK: preSet x (vertex x) == Set.empty [algebraic-graphs] OK: preSet 1 (edge e 1 2) == Set.empty [algebraic-graphs] OK: preSet y (edge e x y) == if e == zero then Set.empty else Set.fromList [x] [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.postSet ============ [algebraic-graphs] OK: postSet x empty == Set.empty [algebraic-graphs] OK: postSet x (vertex x) == Set.empty [algebraic-graphs] OK: postSet x (edge e x y) == if e == zero then Set.empty else Set.fromList [y] [algebraic-graphs] OK: postSet 2 (edge e 1 2) == Set.empty [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.skeleton ============ [algebraic-graphs] OK: hasEdge x y == hasEdge x y . skeleton [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.removeVertex ============ [algebraic-graphs] OK: removeVertex x (vertex x) == empty [algebraic-graphs] OK: removeVertex 1 (vertex 2) == vertex 2 [algebraic-graphs] OK: removeVertex x (edge e x x) == empty [algebraic-graphs] OK: removeVertex 1 (edge e 1 2) == vertex 2 [algebraic-graphs] OK: removeVertex x . removeVertex x == removeVertex x [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.removeEdge ============ [algebraic-graphs] OK: removeEdge x y (edge e x y) == vertices [x,y] [algebraic-graphs] OK: removeEdge x y . removeEdge x y == removeEdge x y [algebraic-graphs] OK: removeEdge x y . removeVertex x == removeVertex x [algebraic-graphs] OK: removeEdge 1 1 (1 * 1 * 2 * 2) == 1 * 2 * 2 [algebraic-graphs] OK: removeEdge 1 2 (1 * 1 * 2 * 2) == 1 * 1 + 2 * 2 [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.replaceVertex ============ [algebraic-graphs] OK: replaceVertex x x == id [algebraic-graphs] OK: replaceVertex x y (vertex x) == vertex y [algebraic-graphs] OK: replaceVertex x y == gmap (\v -> if v == x then y else v) [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.replaceEdge ============ [algebraic-graphs] OK: replaceEdge e x y z == overlay (removeEdge x y z) (edge e x y) [algebraic-graphs] OK: replaceEdge e x y (edge f x y) == edge e x y [algebraic-graphs] OK: edgeLabel x y (replaceEdge e x y z) == e [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.transpose ============ [algebraic-graphs] OK: transpose empty == empty [algebraic-graphs] OK: transpose (vertex x) == vertex x [algebraic-graphs] OK: transpose (edge e x y) == edge e y x [algebraic-graphs] OK: transpose . transpose == id [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.gmap ============ [algebraic-graphs] OK: gmap f empty == empty [algebraic-graphs] OK: gmap f (vertex x) == vertex (f x) [algebraic-graphs] OK: gmap f (edge e x y) == edge e (f x) (f y) [algebraic-graphs] OK: gmap id == id [algebraic-graphs] OK: gmap f . gmap g == gmap (f . g) [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.emap ============ [algebraic-graphs] OK: emap h empty == empty [algebraic-graphs] OK: emap h (vertex x) == vertex x [algebraic-graphs] OK: emap h (edge e x y) == edge (h e) x y [algebraic-graphs] OK: emap h (overlay x y) == overlay (emap h x) (emap h y) [algebraic-graphs] OK: emap h (connect e x y) == connect (h e) (emap h x) (emap h y) [algebraic-graphs] OK: emap id == id [algebraic-graphs] OK: emap g . emap h == emap (g . h) [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.induce ============ [algebraic-graphs] OK: induce (const True ) x == x [algebraic-graphs] OK: induce (const False) x == empty [algebraic-graphs] OK: induce (/= x) == removeVertex x [algebraic-graphs] OK: induce p . induce q == induce (\x -> p x && q x) [algebraic-graphs] OK: isSubgraphOf (induce p x) x == True [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.induceJust ============ [algebraic-graphs] OK: induceJust (vertex Nothing) == empty [algebraic-graphs] OK: induceJust (edge (Just x) Nothing) == vertex x [algebraic-graphs] OK: induceJust . gmap Just == id [algebraic-graphs] OK: induceJust . gmap (\x -> if p x then Just x else Nothing) == induce p [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.closure ============ [algebraic-graphs] OK: closure empty == empty [algebraic-graphs] OK: closure (vertex x) == edge one x x [algebraic-graphs] OK: closure (edge e x x) == edge one x x [algebraic-graphs] OK: closure (edge e x y) == edges [(one,x,x), (e,x,y), (one,y,y)] [algebraic-graphs] OK: closure == reflexiveClosure . transitiveClosure [algebraic-graphs] OK: closure == transitiveClosure . reflexiveClosure [algebraic-graphs] OK: closure . closure == closure [algebraic-graphs] OK: postSet x (closure y) == Set.fromList (reachable y x) [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.reflexiveClosure ============ [algebraic-graphs] OK: reflexiveClosure empty == empty [algebraic-graphs] OK: reflexiveClosure (vertex x) == edge one x x [algebraic-graphs] OK: reflexiveClosure (edge e x x) == edge one x x [algebraic-graphs] OK: reflexiveClosure (edge e x y) == edges [(one,x,x), (e,x,y), (one,y,y)] [algebraic-graphs] OK: reflexiveClosure . reflexiveClosure == reflexiveClosure [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.symmetricClosure ============ [algebraic-graphs] OK: symmetricClosure empty == empty [algebraic-graphs] OK: symmetricClosure (vertex x) == vertex x [algebraic-graphs] OK: symmetricClosure (edge e x y) == edges [(e,x,y), (e,y,x)] [algebraic-graphs] OK: symmetricClosure x == overlay x (transpose x) [algebraic-graphs] OK: symmetricClosure . symmetricClosure == symmetricClosure [algebraic-graphs]  [algebraic-graphs] ============ Labelled.AdjacencyMap.transitiveClosure ============ [algebraic-graphs] OK: transitiveClosure empty == empty [algebraic-graphs] OK: transitiveClosure (vertex x) == vertex x [algebraic-graphs] OK: transitiveClosure (edge e x y) == edge e x y [algebraic-graphs] OK: transitiveClosure . transitiveClosure == transitiveClosure [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.empty ============ [algebraic-graphs] OK: isEmpty empty == True [algebraic-graphs] OK: hasVertex x empty == False [algebraic-graphs] OK: vertexCount empty == 0 [algebraic-graphs] OK: edgeCount empty == 0 [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.vertex ============ [algebraic-graphs] OK: isEmpty (vertex x) == False [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y) [algebraic-graphs] OK: vertexCount (vertex x) == 1 [algebraic-graphs] OK: edgeCount (vertex x) == 0 [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.edge ============ [algebraic-graphs] OK: edge e x y == connect e (vertex x) (vertex y) [algebraic-graphs] OK: edge zero x y == vertices [x,y] [algebraic-graphs] OK: hasEdge x y (edge e x y) == (e /= mempty) [algebraic-graphs] OK: edgeLabel x y (edge e x y) == e [algebraic-graphs] OK: edgeCount (edge e x y) == if e == mempty then 0 else 1 [algebraic-graphs] OK: vertexCount (edge e 1 1) == 1 [algebraic-graphs] OK: vertexCount (edge e 1 2) == 2 [algebraic-graphs] OK: x -- y == edge e x y [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.overlay ============ [algebraic-graphs] OK: isEmpty (overlay x y) == isEmpty x && isEmpty y [algebraic-graphs] OK: hasVertex z (overlay x y) == hasVertex z x || hasVertex z y [algebraic-graphs] OK: vertexCount (overlay x y) >= vertexCount x [algebraic-graphs] OK: vertexCount (overlay x y) <= vertexCount x + vertexCount y [algebraic-graphs] OK: edgeCount (overlay x y) >= edgeCount x [algebraic-graphs] OK: edgeCount (overlay x y) <= edgeCount x + edgeCount y [algebraic-graphs] OK: vertexCount (overlay 1 2) == 2 [algebraic-graphs] OK: edgeCount (overlay 1 2) == 0 [algebraic-graphs]  [algebraic-graphs] OK: edgeLabel x y $ overlay (edge e x y) (edge zero x y) == e [algebraic-graphs] OK: edgeLabel x y $ overlay (edge e x y) (edge f x y) == e <+> f [algebraic-graphs]  [algebraic-graphs] OK: edgeLabel 1 3 $ transitiveClosure (overlay (edge e 1 2) (edge one 2 3)) == e [algebraic-graphs] OK: edgeLabel 1 3 $ transitiveClosure (overlay (edge e 1 2) (edge f 2 3)) == e <.> f [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.connect ============ [algebraic-graphs] OK: isEmpty (connect e x y) == isEmpty x && isEmpty y [algebraic-graphs] OK: hasVertex z (connect e x y) == hasVertex z x || hasVertex z y [algebraic-graphs] OK: vertexCount (connect e x y) >= vertexCount x [algebraic-graphs] OK: vertexCount (connect e x y) <= vertexCount x + vertexCount y [algebraic-graphs] OK: edgeCount (connect e x y) <= vertexCount x * vertexCount y + edgeCount x + edgeCount y [algebraic-graphs] OK: vertexCount (connect e 1 2) == 2 [algebraic-graphs] OK: edgeCount (connect e 1 2) == if e == zero then 0 else 1 [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.vertices ============ [algebraic-graphs] OK: vertices [] == empty [algebraic-graphs] OK: vertices [x] == vertex x [algebraic-graphs] OK: vertices == overlays . map vertex [algebraic-graphs] OK: hasVertex x . vertices == elem x [algebraic-graphs] OK: vertexCount . vertices == length . nub [algebraic-graphs] OK: vertexSet . vertices == Set.fromList [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.edges ============ [algebraic-graphs] OK: edges [] == empty [algebraic-graphs] OK: edges [(e,x,y)] == edge e x y [algebraic-graphs] OK: edges == overlays . map (\(e, x, y) -> edge e x y) [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.overlays ============ [algebraic-graphs] OK: overlays [] == empty [algebraic-graphs] OK: overlays [x] == x [algebraic-graphs] OK: overlays [x,y] == overlay x y [algebraic-graphs] OK: overlays == foldr overlay empty [algebraic-graphs] OK: isEmpty . overlays == all isEmpty [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.foldg ============ [algebraic-graphs] OK: foldg empty vertex connect == id [algebraic-graphs] OK: foldg empty vertex (fmap flip connect) == transpose [algebraic-graphs] OK: foldg 1 (const 1) (const (+)) == size [algebraic-graphs] OK: foldg True (const False) (const (&&)) == isEmpty [algebraic-graphs] OK: foldg False (== x) (const (||)) == hasVertex x [algebraic-graphs] OK: foldg Set.empty Set.singleton (const Set.union) == vertexSet [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.buildg ============ [algebraic-graphs] OK: buildg (\e _ _ -> e) == empty [algebraic-graphs] OK: buildg (\_ v _ -> v x) == vertex x [algebraic-graphs] OK: buildg (\e v c -> c l (foldg e v c x) (foldg e v c y)) == connect l x y [algebraic-graphs] OK: buildg (\e v c -> foldr (c zero) e (map v xs)) == vertices xs [algebraic-graphs] OK: buildg (\e v c -> foldg e v (flip c) g) == transpose g [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.isSubgraphOf ============ [algebraic-graphs] OK: isSubgraphOf empty x == True [algebraic-graphs] OK: isSubgraphOf (vertex x) empty == False [algebraic-graphs] OK: isSubgraphOf x y ==> x <= y [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.isEmpty ============ [algebraic-graphs] OK: isEmpty empty == True [algebraic-graphs] OK: isEmpty (overlay empty empty) == True [algebraic-graphs] OK: isEmpty (vertex x) == False [algebraic-graphs] OK: isEmpty (removeVertex x $ vertex x) == True [algebraic-graphs] OK: isEmpty (removeEdge x y $ edge e x y) == False [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.size ============ [algebraic-graphs] OK: size empty == 1 [algebraic-graphs] OK: size (vertex x) == 1 [algebraic-graphs] OK: size (overlay x y) == size x + size y [algebraic-graphs] OK: size (connect x y) == size x + size y [algebraic-graphs] OK: size x >= 1 [algebraic-graphs] OK: size x >= vertexCount x [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.hasVertex ============ [algebraic-graphs] OK: hasVertex x empty == False [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y) [algebraic-graphs] OK: hasVertex x . removeVertex x == const False [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.hasEdge ============ [algebraic-graphs] OK: hasEdge x y empty == False [algebraic-graphs] OK: hasEdge x y (vertex z) == False [algebraic-graphs] OK: hasEdge x y (edge e x y) == (e /= zero) [algebraic-graphs] OK: hasEdge x y . removeEdge x y == const False [algebraic-graphs] OK: hasEdge x y == not . null . filter (\(_,ex,ey) -> ex == x && ey == y) . edgeList [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.edgeLabel ============ [algebraic-graphs] OK: edgeLabel x y empty == zero [algebraic-graphs] OK: edgeLabel x y (vertex z) == zero [algebraic-graphs] OK: edgeLabel x y (edge e x y) == e [algebraic-graphs] OK: edgeLabel s t (overlay x y) == edgeLabel s t x + edgeLabel s t y [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.vertexCount ============ [algebraic-graphs] OK: vertexCount empty == 0 [algebraic-graphs] OK: vertexCount (vertex x) == 1 [algebraic-graphs] OK: vertexCount == length . vertexList [algebraic-graphs] OK: vertexCount x < vertexCount y ==> x < y [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.edgeCount ============ [algebraic-graphs] OK: edgeCount empty == 0 [algebraic-graphs] OK: edgeCount (vertex x) == 0 [algebraic-graphs] OK: edgeCount (edge e x y) == if e == zero then 0 else 1 [algebraic-graphs] OK: edgeCount == length . edgeList [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.vertexList ============ [algebraic-graphs] OK: vertexList empty == [] [algebraic-graphs] OK: vertexList (vertex x) == [x] [algebraic-graphs] OK: vertexList . vertices == nub . sort [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.edgeList ============ [algebraic-graphs] OK: edgeList empty == [] [algebraic-graphs] OK: edgeList (vertex x) == [] [algebraic-graphs] OK: edgeList (edge e x y) == if e == zero then [] else [(e,x,y)] [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.vertexSet ============ [algebraic-graphs] OK: vertexSet empty == Set.empty [algebraic-graphs] OK: vertexSet . vertex == Set.singleton [algebraic-graphs] OK: vertexSet . vertices == Set.fromList [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.edgeSet ============ [algebraic-graphs] OK: edgeSet empty == Set.empty [algebraic-graphs] OK: edgeSet (vertex x) == Set.empty [algebraic-graphs] OK: edgeSet (edge e x y) == if e == zero then Set.empty else Set.singleton (e,x,y) [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.preSet ============ [algebraic-graphs] OK: preSet x empty == Set.empty [algebraic-graphs] OK: preSet x (vertex x) == Set.empty [algebraic-graphs] OK: preSet 1 (edge e 1 2) == Set.empty [algebraic-graphs] OK: preSet y (edge e x y) == if e == zero then Set.empty else Set.fromList [x] [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.postSet ============ [algebraic-graphs] OK: postSet x empty == Set.empty [algebraic-graphs] OK: postSet x (vertex x) == Set.empty [algebraic-graphs] OK: postSet x (edge e x y) == if e == zero then Set.empty else Set.fromList [y] [algebraic-graphs] OK: postSet 2 (edge e 1 2) == Set.empty [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.removeVertex ============ [algebraic-graphs] OK: removeVertex x (vertex x) == empty [algebraic-graphs] OK: removeVertex 1 (vertex 2) == vertex 2 [algebraic-graphs] OK: removeVertex x (edge e x x) == empty [algebraic-graphs] OK: removeVertex 1 (edge e 1 2) == vertex 2 [algebraic-graphs] OK: removeVertex x . removeVertex x == removeVertex x [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.removeEdge ============ [algebraic-graphs] OK: removeEdge x y (edge e x y) == vertices [x,y] [algebraic-graphs] OK: removeEdge x y . removeEdge x y == removeEdge x y [algebraic-graphs] OK: removeEdge x y . removeVertex x == removeVertex x [algebraic-graphs] OK: removeEdge 1 1 (1 * 1 * 2 * 2) == 1 * 2 * 2 [algebraic-graphs] OK: removeEdge 1 2 (1 * 1 * 2 * 2) == 1 * 1 + 2 * 2 [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.replaceVertex ============ [algebraic-graphs] OK: replaceVertex x x == id [algebraic-graphs] OK: replaceVertex x y (vertex x) == vertex y [algebraic-graphs] OK: replaceVertex x y == fmap (\v -> if v == x then y else v) [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.replaceEdge ============ [algebraic-graphs] OK: replaceEdge e x y z == overlay (removeEdge x y z) (edge e x y) [algebraic-graphs] OK: replaceEdge e x y (edge f x y) == edge e x y [algebraic-graphs] OK: edgeLabel x y (replaceEdge e x y z) == e [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.transpose ============ [algebraic-graphs] OK: transpose empty == empty [algebraic-graphs] OK: transpose (vertex x) == vertex x [algebraic-graphs] OK: transpose (edge e x y) == edge e y x [algebraic-graphs] OK: transpose . transpose == id [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.fmap ============ [algebraic-graphs] OK: fmap f empty == empty [algebraic-graphs] OK: fmap f (vertex x) == vertex (f x) [algebraic-graphs] OK: fmap f (edge e x y) == edge e (f x) (f y) [algebraic-graphs] OK: fmap id == id [algebraic-graphs] OK: fmap f . fmap g == fmap (f . g) [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.emap ============ [algebraic-graphs] OK: emap h empty == empty [algebraic-graphs] OK: emap h (vertex x) == vertex x [algebraic-graphs] OK: emap h (edge e x y) == edge (h e) x y [algebraic-graphs] OK: emap h (overlay x y) == overlay (emap h x) (emap h y) [algebraic-graphs] OK: emap h (connect e x y) == connect (h e) (emap h x) (emap h y) [algebraic-graphs] OK: emap id == id [algebraic-graphs] OK: emap g . emap h == emap (g . h) [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.induce ============ [algebraic-graphs] OK: induce (const True ) x == x [algebraic-graphs] OK: induce (const False) x == empty [algebraic-graphs] OK: induce (/= x) == removeVertex x [algebraic-graphs] OK: induce p . induce q == induce (\x -> p x && q x) [algebraic-graphs] OK: isSubgraphOf (induce p x) x == True [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.induceJust ============ [algebraic-graphs] OK: induceJust (vertex Nothing) == empty [algebraic-graphs] OK: induceJust (edge (Just x) Nothing) == vertex x [algebraic-graphs] OK: induceJust . gmap Just == id [algebraic-graphs] OK: induceJust . gmap (\x -> if p x then Just x else Nothing) == induce p [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.closure ============ [algebraic-graphs] OK: closure empty == empty [algebraic-graphs] OK: closure (vertex x) == edge one x x [algebraic-graphs] OK: closure (edge e x x) == edge one x x [algebraic-graphs] OK: closure (edge e x y) == edges [(one,x,x), (e,x,y), (one,y,y)] [algebraic-graphs] OK: closure == reflexiveClosure . transitiveClosure [algebraic-graphs] OK: closure == transitiveClosure . reflexiveClosure [algebraic-graphs] OK: closure . closure == closure [algebraic-graphs] OK: postSet x (closure y) == Set.fromList (reachable y x) [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.reflexiveClosure ============ [algebraic-graphs] OK: reflexiveClosure empty == empty [algebraic-graphs] OK: reflexiveClosure (vertex x) == edge one x x [algebraic-graphs] OK: reflexiveClosure (edge e x x) == edge one x x [algebraic-graphs] OK: reflexiveClosure (edge e x y) == edges [(one,x,x), (e,x,y), (one,y,y)] [algebraic-graphs] OK: reflexiveClosure . reflexiveClosure == reflexiveClosure [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.symmetricClosure ============ [algebraic-graphs] OK: symmetricClosure empty == empty [algebraic-graphs] OK: symmetricClosure (vertex x) == vertex x [algebraic-graphs] OK: symmetricClosure (edge e x y) == edges [(e,x,y), (e,y,x)] [algebraic-graphs] OK: symmetricClosure x == overlay x (transpose x) [algebraic-graphs] OK: symmetricClosure . symmetricClosure == symmetricClosure [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.transitiveClosure ============ [algebraic-graphs] OK: transitiveClosure empty == empty [algebraic-graphs] OK: transitiveClosure (vertex x) == vertex x [algebraic-graphs] OK: transitiveClosure (edge e x y) == edge e x y [algebraic-graphs] OK: transitiveClosure . transitiveClosure == transitiveClosure [algebraic-graphs]  [algebraic-graphs] ============ Labelled.Graph.context ============ [algebraic-graphs] OK: context (const False) x == Nothing [algebraic-graphs] OK: context (== 1) (edge e 1 2) == if e == zero then Just (Context [] []) else Just (Context [] [(e,2)]) [algebraic-graphs] OK: context (== 2) (edge e 1 2) == if e == zero then Just (Context [] []) else Just (Context [(e,1)] [] ) [algebraic-graphs] OK: context (const True ) (edge e 1 2) == if e == zero then Just (Context [] []) else Just (Context [(e,1)] [(e,2)]) [algebraic-graphs] OK: context (== 4) (3 * 1 * 4 * 1 * 5) == Just (Context [(one,3), (one,1)] [(one,1), (one,5)]) [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap ============ [algebraic-graphs] OK: Axioms of non-empty graphs [algebraic-graphs] OK: Theorems of non-empty graphs [algebraic-graphs]  [algebraic-graphs] ============ Ord (NonEmpty.AdjacencyMap a) ============ [algebraic-graphs] OK: vertex 1 < vertex 2 [algebraic-graphs] OK: vertex 3 < edge 1 2 [algebraic-graphs] OK: vertex 1 < edge 1 1 [algebraic-graphs] OK: edge 1 1 < edge 1 2 [algebraic-graphs] OK: edge 1 2 < edge 1 1 + edge 2 2 [algebraic-graphs] OK: edge 1 2 < edge 1 3 [algebraic-graphs] OK: x <= x + y [algebraic-graphs] OK: x + y <= x * y [algebraic-graphs]  [algebraic-graphs] ============ Show (NonEmpty.AdjacencyMap a) ============ [algebraic-graphs] OK: show (1 :: AdjacencyMap Int) == "vertex 1" [algebraic-graphs] OK: show (1 + 2 :: AdjacencyMap Int) == "vertices1 [1,2]" [algebraic-graphs] OK: show (1 * 2 :: AdjacencyMap Int) == "edge 1 2" [algebraic-graphs] OK: show (1 * 2 * 3 :: AdjacencyMap Int) == "edges1 [(1,2),(1,3),(2,3)]" [algebraic-graphs] OK: show (1 * 2 + 3 :: AdjacencyMap Int) == "overlay (vertex 3) (edge 1 2)" [algebraic-graphs] OK: show (vertex (-1) :: AdjacencyMap Int) == "vertex (-1)" [algebraic-graphs] OK: show (vertex (-1) + vertex (-2) :: AdjacencyMap Int) == "vertices1 [-2,-1]" [algebraic-graphs] OK: show (vertex (-1) * vertex (-2) :: AdjacencyMap Int) == "edge (-1) (-2)" [algebraic-graphs] OK: show (vertex (-1) * vertex (-2) * vertex (-3) :: AdjacencyMap Int) == "edges1 [(-2,-3),(-1,-3),(-1,-2)]" [algebraic-graphs] OK: show (vertex (-1) * vertex (-2) + vertex (-3) :: AdjacencyMap Int) == "overlay (vertex (-3)) (edge (-1) (-2))" [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.toNonEmpty ============ [algebraic-graphs] OK: toNonEmpty empty == Nothing [algebraic-graphs] OK: toNonEmpty . fromNonEmpty == Just [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.fromNonEmpty ============ [algebraic-graphs] OK: isEmpty . fromNonEmpty == const False [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.vertex ============ [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y) [algebraic-graphs] OK: vertexCount (vertex x) == 1 [algebraic-graphs] OK: edgeCount (vertex x) == 0 [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.edge ============ [algebraic-graphs] OK: edge x y == connect (vertex x) (vertex y) [algebraic-graphs] OK: hasEdge x y (edge x y) == True [algebraic-graphs] OK: edgeCount (edge x y) == 1 [algebraic-graphs] OK: vertexCount (edge 1 1) == 1 [algebraic-graphs] OK: vertexCount (edge 1 2) == 2 [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.overlay ============ [algebraic-graphs] OK: hasVertex z (overlay x y) == hasVertex z x || hasVertex z y [algebraic-graphs] OK: vertexCount (overlay x y) >= vertexCount x [algebraic-graphs] OK: vertexCount (overlay x y) <= vertexCount x + vertexCount y [algebraic-graphs] OK: edgeCount (overlay x y) >= edgeCount x [algebraic-graphs] OK: edgeCount (overlay x y) <= edgeCount x + edgeCount y [algebraic-graphs] OK: vertexCount (overlay 1 2) == 2 [algebraic-graphs] OK: edgeCount (overlay 1 2) == 0 [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.connect ============ [algebraic-graphs] OK: hasVertex z (connect x y) == hasVertex z x || hasVertex z y [algebraic-graphs] OK: vertexCount (connect x y) >= vertexCount x [algebraic-graphs] OK: vertexCount (connect x y) <= vertexCount x + vertexCount y [algebraic-graphs] OK: edgeCount (connect x y) >= edgeCount x [algebraic-graphs] OK: edgeCount (connect x y) >= edgeCount y [algebraic-graphs] OK: edgeCount (connect x y) >= vertexCount x * vertexCount y [algebraic-graphs] OK: edgeCount (connect x y) <= vertexCount x * vertexCount y + edgeCount x + edgeCount y [algebraic-graphs] OK: vertexCount (connect 1 2) == 2 [algebraic-graphs] OK: edgeCount (connect 1 2) == 1 [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.vertices1 ============ [algebraic-graphs] OK: vertices1 [x] == vertex x [algebraic-graphs] OK: hasVertex x . vertices1 == elem x [algebraic-graphs] OK: vertexCount . vertices1 == length . nub [algebraic-graphs] OK: vertexSet . vertices1 == Set.fromList . toList [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.edges1 ============ [algebraic-graphs] OK: edges1 [(x,y)] == edge x y [algebraic-graphs] OK: edges1 == overlays1 . fmap (uncurry edge) [algebraic-graphs] OK: edgeCount . edges1 == length . nub [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.overlays1 ============ [algebraic-graphs] OK: overlays1 [x] == x [algebraic-graphs] OK: overlays1 [x,y] == overlay x y [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.connects1 ============ [algebraic-graphs] OK: connects1 [x] == x [algebraic-graphs] OK: connects1 [x,y] == connect x y [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.isSubgraphOf ============ [algebraic-graphs] OK: isSubgraphOf x (overlay x y) == True [algebraic-graphs] OK: isSubgraphOf (overlay x y) (connect x y) == True [algebraic-graphs] OK: isSubgraphOf (path1 xs) (circuit1 xs) == True [algebraic-graphs] OK: isSubgraphOf x y ==> x <= y [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.hasVertex ============ [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y) [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.hasEdge ============ [algebraic-graphs] OK: hasEdge x y (vertex z) == False [algebraic-graphs] OK: hasEdge x y (edge x y) == True [algebraic-graphs] OK: hasEdge x y . removeEdge x y == const False [algebraic-graphs] OK: hasEdge x y == elem (x,y) . edgeList [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.vertexCount ============ [algebraic-graphs] OK: vertexCount (vertex x) == 1 [algebraic-graphs] OK: vertexCount x >= 1 [algebraic-graphs] OK: vertexCount == length . vertexList1 [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.edgeCount ============ [algebraic-graphs] OK: edgeCount (vertex x) == 0 [algebraic-graphs] OK: edgeCount (edge x y) == 1 [algebraic-graphs] OK: edgeCount == length . edgeList [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.vertexList1 ============ [algebraic-graphs] OK: vertexList1 (vertex x) == [x] [algebraic-graphs] OK: vertexList1 . vertices1 == nub . sort [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.edgeList ============ [algebraic-graphs] OK: edgeList (vertex x) == [] [algebraic-graphs] OK: edgeList (edge x y) == [(x,y)] [algebraic-graphs] OK: edgeList (star 2 [3,1]) == [(2,1), (2,3)] [algebraic-graphs] OK: edgeList . edges1 == nub . sort . toList [algebraic-graphs] OK: edgeList . transpose == sort . map swap . edgeList [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.vertexSet ============ [algebraic-graphs] OK: vertexSet . vertex == Set.singleton [algebraic-graphs] OK: vertexSet . vertices1 == Set.fromList . toList [algebraic-graphs] OK: vertexSet . clique1 == Set.fromList . toList [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.edgeSet ============ [algebraic-graphs] OK: edgeSet (vertex x) == Set.empty [algebraic-graphs] OK: edgeSet (edge x y) == Set.singleton (x,y) [algebraic-graphs] OK: edgeSet . edges1 == Set.fromList . toList [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.preSet ============ [algebraic-graphs] OK: preSet x (vertex x) == Set.empty [algebraic-graphs] OK: preSet 1 (edge 1 2) == Set.empty [algebraic-graphs] OK: preSet y (edge x y) == Set.fromList [x] [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.postSet ============ [algebraic-graphs] OK: postSet x (vertex x) == Set.empty [algebraic-graphs] OK: postSet x (edge x y) == Set.fromList [y] [algebraic-graphs] OK: postSet 2 (edge 1 2) == Set.empty [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.path1 ============ [algebraic-graphs] OK: path1 [x] == vertex x [algebraic-graphs] OK: path1 [x,y] == edge x y [algebraic-graphs] OK: path1 . reverse == transpose . path1 [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.circuit1 ============ [algebraic-graphs] OK: circuit1 [x] == edge x x [algebraic-graphs] OK: circuit1 [x,y] == edges1 [(x,y), (y,x)] [algebraic-graphs] OK: circuit1 . reverse == transpose . circuit1 [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.clique1 ============ [algebraic-graphs] OK: clique1 [x] == vertex x [algebraic-graphs] OK: clique1 [x,y] == edge x y [algebraic-graphs] OK: clique1 [x,y,z] == edges1 [(x,y), (x,z), (y,z)] [algebraic-graphs] OK: clique1 (xs <> ys) == connect (clique1 xs) (clique1 ys) [algebraic-graphs] OK: clique1 . reverse == transpose . clique1 [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.biclique1 ============ [algebraic-graphs] OK: biclique1 [x1,x2] [y1,y2] == edges1 [(x1,y1), (x1,y2), (x2,y1), (x2,y2)] [algebraic-graphs] OK: biclique1 xs ys == connect (vertices1 xs) (vertices1 ys) [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.star ============ [algebraic-graphs] OK: star x [] == vertex x [algebraic-graphs] OK: star x [y] == edge x y [algebraic-graphs] OK: star x [y,z] == edges1 [(x,y), (x,z)] [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.stars1 ============ [algebraic-graphs] OK: stars1 [(x, [] )] == vertex x [algebraic-graphs] OK: stars1 [(x, [y])] == edge x y [algebraic-graphs] OK: stars1 [(x, ys )] == star x ys [algebraic-graphs] OK: stars1 == overlays1 . fmap (uncurry star) [algebraic-graphs] OK: overlay (stars1 xs) (stars1 ys) == stars1 (xs <> ys) [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.tree ============ [algebraic-graphs] OK: tree (Node x []) == vertex x [algebraic-graphs] OK: tree (Node x [Node y [Node z []]]) == path1 [x,y,z] [algebraic-graphs] OK: tree (Node x [Node y [], Node z []]) == star x [y,z] [algebraic-graphs] OK: tree (Node 1 [Node 2 [], Node 3 [Node 4 [], Node 5 []]]) == edges1 [(1,2), (1,3), (3,4), (3,5)] [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.removeVertex1 ============ [algebraic-graphs] OK: removeVertex1 x (vertex x) == Nothing [algebraic-graphs] OK: removeVertex1 1 (vertex 2) == Just (vertex 2) [algebraic-graphs] OK: removeVertex1 x (edge x x) == Nothing [algebraic-graphs] OK: removeVertex1 1 (edge 1 2) == Just (vertex 2) [algebraic-graphs] OK: removeVertex1 x >=> removeVertex1 x == removeVertex1 x [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.removeEdge ============ [algebraic-graphs] OK: removeEdge x y (edge x y) == vertices1 [x,y] [algebraic-graphs] OK: removeEdge x y . removeEdge x y == removeEdge x y [algebraic-graphs] OK: removeEdge 1 1 (1 * 1 * 2 * 2) == 1 * 2 * 2 [algebraic-graphs] OK: removeEdge 1 2 (1 * 1 * 2 * 2) == 1 * 1 + 2 * 2 [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.replaceVertex ============ [algebraic-graphs] OK: replaceVertex x x == id [algebraic-graphs] OK: replaceVertex x y (vertex x) == vertex y [algebraic-graphs] OK: replaceVertex x y == mergeVertices (== x) y [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.mergeVertices ============ [algebraic-graphs] OK: mergeVertices (const False) x == id [algebraic-graphs] OK: mergeVertices (== x) y == replaceVertex x y [algebraic-graphs] OK: mergeVertices even 1 (0 * 2) == 1 * 1 [algebraic-graphs] OK: mergeVertices odd 1 (3 + 4 * 5) == 4 * 1 [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.transpose ============ [algebraic-graphs] OK: transpose (vertex x) == vertex x [algebraic-graphs] OK: transpose (edge x y) == edge y x [algebraic-graphs] OK: transpose . transpose == id [algebraic-graphs] OK: edgeList . transpose == sort . map swap . edgeList [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.gmap ============ [algebraic-graphs] OK: gmap f (vertex x) == vertex (f x) [algebraic-graphs] OK: gmap f (edge x y) == edge (f x) (f y) [algebraic-graphs] OK: gmap id == id [algebraic-graphs] OK: gmap f . gmap g == gmap (f . g) [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.induce1 ============ [algebraic-graphs] OK: induce1 (const True ) x == Just x [algebraic-graphs] OK: induce1 (const False) x == Nothing [algebraic-graphs] OK: induce1 (/= x) == removeVertex1 x [algebraic-graphs] OK: induce1 p >=> induce1 q == induce1 (\x -> p x && q x) [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.induceJust1 ============ [algebraic-graphs] OK: induceJust1 (vertex Nothing) == Nothing [algebraic-graphs] OK: induceJust1 (edge (Just x) Nothing) == Just (vertex x) [algebraic-graphs] OK: induceJust1 . gmap Just == Just [algebraic-graphs] OK: induceJust1 . gmap (\x -> if p x then Just x else Nothing) == induce1 p [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.closure ============ [algebraic-graphs] OK: closure (vertex x) == edge x x [algebraic-graphs] OK: closure (edge x x) == edge x x [algebraic-graphs] OK: closure (edge x y) == edges1 [(x,x), (x,y), (y,y)] [algebraic-graphs] OK: closure (path1 $ nub xs) == reflexiveClosure (clique1 $ nub xs) [algebraic-graphs] OK: closure == reflexiveClosure . transitiveClosure [algebraic-graphs] OK: closure == transitiveClosure . reflexiveClosure [algebraic-graphs] OK: closure . closure == closure [algebraic-graphs] OK: postSet x (closure y) == Set.fromList (reachable y x) [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.reflexiveClosure ============ [algebraic-graphs] OK: reflexiveClosure (vertex x) == edge x x [algebraic-graphs] OK: reflexiveClosure (edge x x) == edge x x [algebraic-graphs] OK: reflexiveClosure (edge x y) == edges1 [(x,x), (x,y), (y,y)] [algebraic-graphs] OK: reflexiveClosure . reflexiveClosure == reflexiveClosure [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.symmetricClosure ============ [algebraic-graphs] OK: symmetricClosure (vertex x) == vertex x [algebraic-graphs] OK: symmetricClosure (edge x y) == edges1 [(x,y), (y,x)] [algebraic-graphs] OK: symmetricClosure x == overlay x (transpose x) [algebraic-graphs] OK: symmetricClosure . symmetricClosure == symmetricClosure [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.AdjacencyMap.transitiveClosure ============ [algebraic-graphs] OK: transitiveClosure (vertex x) == vertex x [algebraic-graphs] OK: transitiveClosure (edge x y) == edge x y [algebraic-graphs] OK: transitiveClosure (path1 $ nub xs) == clique1 (nub $ xs) [algebraic-graphs] OK: transitiveClosure . transitiveClosure == transitiveClosure [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.============ [algebraic-graphs] OK: Axioms of non-empty graphs [algebraic-graphs] OK: Theorems of non-empty graphs [algebraic-graphs]  [algebraic-graphs] ============ Ord (NonEmpty.Graph a) ============ [algebraic-graphs] OK: vertex 1 < vertex 2 [algebraic-graphs] OK: vertex 3 < edge 1 2 [algebraic-graphs] OK: vertex 1 < edge 1 1 [algebraic-graphs] OK: edge 1 1 < edge 1 2 [algebraic-graphs] OK: edge 1 2 < edge 1 1 + edge 2 2 [algebraic-graphs] OK: edge 1 2 < edge 1 3 [algebraic-graphs] OK: x <= x + y [algebraic-graphs] OK: x + y <= x * y [algebraic-graphs]  [algebraic-graphs] ============ Functor (NonEmpty.Graph a) ============ [algebraic-graphs] OK: fmap f (vertex x) == vertex (f x) [algebraic-graphs] OK: fmap f (edge x y) == edge (f x) (f y) [algebraic-graphs] OK: fmap id == id [algebraic-graphs] OK: fmap f . fmap g == fmap (f . g) [algebraic-graphs]  [algebraic-graphs] ============ Monad (NonEmpty.Graph a) ============ [algebraic-graphs] OK: (vertex x >>= f) == f x [algebraic-graphs] OK: (edge x y >>= f) == connect (f x) (f y) [algebraic-graphs] OK: (vertices1 xs >>= f) == overlays1 (fmap f xs) [algebraic-graphs] OK: (x >>= vertex) == x [algebraic-graphs] OK: ((x >>= f) >>= g) == (x >>= (\y -> (f y) >>= g)) [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.toNonEmpty ============ [algebraic-graphs] OK: toNonEmpty empty == Nothing [algebraic-graphs] OK: toNonEmpty (toGraph x) == Just (x :: NonEmpty.Graph a) [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.vertex ============ [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y) [algebraic-graphs] OK: vertexCount (vertex x) == 1 [algebraic-graphs] OK: edgeCount (vertex x) == 0 [algebraic-graphs] OK: size (vertex x) == 1 [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.edge ============ [algebraic-graphs] OK: edge x y == connect (vertex x) (vertex y) [algebraic-graphs] OK: hasEdge x y (edge x y) == True [algebraic-graphs] OK: edgeCount (edge x y) == 1 [algebraic-graphs] OK: vertexCount (edge 1 1) == 1 [algebraic-graphs] OK: vertexCount (edge 1 2) == 2 [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.overlay ============ [algebraic-graphs] OK: hasVertex z (overlay x y) == hasVertex z x || hasVertex z y [algebraic-graphs] OK: vertexCount (overlay x y) >= vertexCount x [algebraic-graphs] OK: vertexCount (overlay x y) <= vertexCount x + vertexCount y [algebraic-graphs] OK: edgeCount (overlay x y) >= edgeCount x [algebraic-graphs] OK: edgeCount (overlay x y) <= edgeCount x + edgeCount y [algebraic-graphs] OK: size (overlay x y) == size x + size y [algebraic-graphs] OK: vertexCount (overlay 1 2) == 2 [algebraic-graphs] OK: edgeCount (overlay 1 2) == 0 [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.overlay1 ============ [algebraic-graphs] OK: overlay1 empty x == x [algebraic-graphs] OK: x /= empty ==> overlay1 x y == overlay (fromJust $ toNonEmpty x) y [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.connect ============ [algebraic-graphs] OK: hasVertex z (connect x y) == hasVertex z x || hasVertex z y [algebraic-graphs] OK: vertexCount (connect x y) >= vertexCount x [algebraic-graphs] OK: vertexCount (connect x y) <= vertexCount x + vertexCount y [algebraic-graphs] OK: edgeCount (connect x y) >= edgeCount x [algebraic-graphs] OK: edgeCount (connect x y) >= edgeCount y [algebraic-graphs] OK: edgeCount (connect x y) >= vertexCount x * vertexCount y [algebraic-graphs] OK: edgeCount (connect x y) <= vertexCount x * vertexCount y + edgeCount x + edgeCount y [algebraic-graphs] OK: size (connect x y) == size x + size y [algebraic-graphs] OK: vertexCount (connect 1 2) == 2 [algebraic-graphs] OK: edgeCount (connect 1 2) == 1 [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.vertices1 ============ [algebraic-graphs] OK: vertices1 [x] == vertex x [algebraic-graphs] OK: hasVertex x . vertices1 == elem x [algebraic-graphs] OK: vertexCount . vertices1 == length . nub [algebraic-graphs] OK: vertexSet . vertices1 == Set.fromList . toList [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.edges1 ============ [algebraic-graphs] OK: edges1 [(x,y)] == edge x y [algebraic-graphs] OK: edges1 == overlays1 . fmap (uncurry edge) [algebraic-graphs] OK: edgeCount . edges1 == length . nub [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.overlays1 ============ [algebraic-graphs] OK: overlays1 [x] == x [algebraic-graphs] OK: overlays1 [x,y] == overlay x y [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.connects1 ============ [algebraic-graphs] OK: connects1 [x] == x [algebraic-graphs] OK: connects1 [x,y] == connect x y [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.foldg1 ============ [algebraic-graphs] OK: foldg1 vertex overlay connect == id [algebraic-graphs] OK: foldg1 vertex overlay (flip connect) == transpose [algebraic-graphs] OK: foldg1 (const 1) (+) (+) == size [algebraic-graphs] OK: foldg1 (== x) (||) (||) == hasVertex x [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.isSubgraphOf ============ [algebraic-graphs] OK: isSubgraphOf x (overlay x y) == True [algebraic-graphs] OK: isSubgraphOf (overlay x y) (connect x y) == True [algebraic-graphs] OK: isSubgraphOf (path1 xs) (circuit1 xs) == True [algebraic-graphs] OK: isSubgraphOf x y ==> x <= y [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.(===) ============ [algebraic-graphs] OK: x === x == True [algebraic-graphs] OK: x + y === x + y == True [algebraic-graphs] OK: 1 + 2 === 2 + 1 == False [algebraic-graphs] OK: x + y === x * y == False [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.size ============ [algebraic-graphs] OK: size (vertex x) == 1 [algebraic-graphs] OK: size (overlay x y) == size x + size y [algebraic-graphs] OK: size (connect x y) == size x + size y [algebraic-graphs] OK: size x >= 1 [algebraic-graphs] OK: size x >= vertexCount x [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.hasVertex ============ [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y) [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.hasEdge ============ [algebraic-graphs] OK: hasEdge x y (vertex z) == False [algebraic-graphs] OK: hasEdge x y (edge x y) == True [algebraic-graphs] OK: hasEdge x y . removeEdge x y == const False [algebraic-graphs] OK: hasEdge x y == elem (x,y) . edgeList [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.vertexCount ============ [algebraic-graphs] OK: vertexCount (vertex x) == 1 [algebraic-graphs] OK: vertexCount x >= 1 [algebraic-graphs] OK: vertexCount == length . vertexList1 [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.edgeCount ============ [algebraic-graphs] OK: edgeCount (vertex x) == 0 [algebraic-graphs] OK: edgeCount (edge x y) == 1 [algebraic-graphs] OK: edgeCount == length . edgeList [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.vertexList1 ============ [algebraic-graphs] OK: vertexList1 (vertex x) == [x] [algebraic-graphs] OK: vertexList1 . vertices1 == nub . sort [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.edgeList ============ [algebraic-graphs] OK: edgeList (vertex x) == [] [algebraic-graphs] OK: edgeList (edge x y) == [(x,y)] [algebraic-graphs] OK: edgeList (star 2 [3,1]) == [(2,1), (2,3)] [algebraic-graphs] OK: edgeList . edges1 == nub . sort . toList [algebraic-graphs] OK: edgeList . transpose == sort . map swap . edgeList [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.vertexSet ============ [algebraic-graphs] OK: vertexSet . vertex == Set.singleton [algebraic-graphs] OK: vertexSet . vertices1 == Set.fromList . toList [algebraic-graphs] OK: vertexSet . clique1 == Set.fromList . toList [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.edgeSet ============ [algebraic-graphs] OK: edgeSet (vertex x) == Set.empty [algebraic-graphs] OK: edgeSet (edge x y) == Set.singleton (x,y) [algebraic-graphs] OK: edgeSet . edges1 == Set.fromList . toList [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.path1 ============ [algebraic-graphs] OK: path1 [x] == vertex x [algebraic-graphs] OK: path1 [x,y] == edge x y [algebraic-graphs] OK: path1 . reverse == transpose . path1 [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.circuit1 ============ [algebraic-graphs] OK: circuit1 [x] == edge x x [algebraic-graphs] OK: circuit1 [x,y] == edges1 [(x,y), (y,x)] [algebraic-graphs] OK: circuit1 . reverse == transpose . circuit1 [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.clique1 ============ [algebraic-graphs] OK: clique1 [x] == vertex x [algebraic-graphs] OK: clique1 [x,y] == edge x y [algebraic-graphs] OK: clique1 [x,y,z] == edges1 [(x,y), (x,z), (y,z)] [algebraic-graphs] OK: clique1 (xs <> ys) == connect (clique1 xs) (clique1 ys) [algebraic-graphs] OK: clique1 . reverse == transpose . clique1 [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.biclique1 ============ [algebraic-graphs] OK: biclique1 [x1,x2] [y1,y2] == edges1 [(x1,y1), (x1,y2), (x2,y1), (x2,y2)] [algebraic-graphs] OK: biclique1 xs ys == connect (vertices1 xs) (vertices1 ys) [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.star ============ [algebraic-graphs] OK: star x [] == vertex x [algebraic-graphs] OK: star x [y] == edge x y [algebraic-graphs] OK: star x [y,z] == edges1 [(x,y), (x,z)] [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.stars1 ============ [algebraic-graphs] OK: stars1 [(x, [] )] == vertex x [algebraic-graphs] OK: stars1 [(x, [y])] == edge x y [algebraic-graphs] OK: stars1 [(x, ys )] == star x ys [algebraic-graphs] OK: stars1 == overlays1 . fmap (uncurry star) [algebraic-graphs] OK: overlay (stars1 xs) (stars1 ys) == stars1 (xs <> ys) [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.tree ============ [algebraic-graphs] OK: tree (Node x []) == vertex x [algebraic-graphs] OK: tree (Node x [Node y [Node z []]]) == path1 [x,y,z] [algebraic-graphs] OK: tree (Node x [Node y [], Node z []]) == star x [y,z] [algebraic-graphs] OK: tree (Node 1 [Node 2 [], Node 3 [Node 4 [], Node 5 []]]) == edges1 [(1,2), (1,3), (3,4), (3,5)] [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.mesh1 ============ [algebraic-graphs] OK: mesh1 [x] [y] == vertex (x, y) [algebraic-graphs] OK: mesh1 xs ys == box (path1 xs) (path1 ys) [algebraic-graphs] OK: mesh1 [1,2,3] ['a', 'b'] == [algebraic-graphs] OK: size (mesh xs ys) == max 1 (3 * length xs * length ys - length xs - length ys -1) [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.torus1 ============ [algebraic-graphs] OK: torus1 [x] [y] == edge (x,y) (x,y) [algebraic-graphs] OK: torus1 xs ys == box (circuit1 xs) (circuit1 ys) [algebraic-graphs] OK: torus1 [1,2] ['a', 'b'] == [algebraic-graphs] OK: size (torus1 xs ys) == max 1 (3 * length xs * length ys) [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.removeVertex1 ============ [algebraic-graphs] OK: removeVertex1 x (vertex x) == Nothing [algebraic-graphs] OK: removeVertex1 1 (vertex 2) == Just (vertex 2) [algebraic-graphs] OK: removeVertex1 x (edge x x) == Nothing [algebraic-graphs] OK: removeVertex1 1 (edge 1 2) == Just (vertex 2) [algebraic-graphs] OK: removeVertex1 x >=> removeVertex1 x == removeVertex1 x [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.removeEdge ============ [algebraic-graphs] OK: removeEdge x y (edge x y) == vertices1 [x,y] [algebraic-graphs] OK: removeEdge x y . removeEdge x y == removeEdge x y [algebraic-graphs] OK: removeEdge 1 1 (1 * 1 * 2 * 2) == 1 * 2 * 2 [algebraic-graphs] OK: removeEdge 1 2 (1 * 1 * 2 * 2) == 1 * 1 + 2 * 2 [algebraic-graphs] OK: size (removeEdge x y z) <= 3 * size z [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.replaceVertex ============ [algebraic-graphs] OK: replaceVertex x x == id [algebraic-graphs] OK: replaceVertex x y (vertex x) == vertex y [algebraic-graphs] OK: replaceVertex x y == mergeVertices (== x) y [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.mergeVertices ============ [algebraic-graphs] OK: mergeVertices (const False) x == id [algebraic-graphs] OK: mergeVertices (== x) y == replaceVertex x y [algebraic-graphs] OK: mergeVertices even 1 (0 * 2) == 1 * 1 [algebraic-graphs] OK: mergeVertices odd 1 (3 + 4 * 5) == 4 * 1 [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.splitVertex1 ============ [algebraic-graphs] OK: splitVertex1 x [x] == id [algebraic-graphs] OK: splitVertex1 x [y] == replaceVertex x y [algebraic-graphs] OK: splitVertex1 1 [0,1] $ 1 * (2 + 3) == (0 + 1) * (2 + 3) [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.transpose ============ [algebraic-graphs] OK: transpose (vertex x) == vertex x [algebraic-graphs] OK: transpose (edge x y) == edge y x [algebraic-graphs] OK: transpose . transpose == id [algebraic-graphs] OK: transpose (box x y) == box (transpose x) (transpose y) [algebraic-graphs] OK: edgeList . transpose == sort . map swap . edgeList [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.induce1 ============ [algebraic-graphs] OK: induce1 (const True ) x == Just x [algebraic-graphs] OK: induce1 (const False) x == Nothing [algebraic-graphs] OK: induce1 (/= x) == removeVertex1 x [algebraic-graphs] OK: induce1 p >=> induce1 q == induce1 (\x -> p x && q x) [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.induceJust1 ============ [algebraic-graphs] OK: induceJust1 (vertex Nothing) == Nothing [algebraic-graphs] OK: induceJust1 (edge (Just x) Nothing) == Just (vertex x) [algebraic-graphs] OK: induceJust1 . fmap Just == Just [algebraic-graphs] OK: induceJust1 . fmap (\x -> if p x then Just x else Nothing) == induce1 p [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.simplify ============ [algebraic-graphs] OK: simplify == id [algebraic-graphs] OK: size (simplify x) <= size x [algebraic-graphs] OK: simplify 1 === 1 [algebraic-graphs] OK: simplify (1 + 1) === 1 [algebraic-graphs] OK: simplify (1 + 2 + 1) === 1 + 2 [algebraic-graphs] OK: simplify (1 * 1 * 1) === 1 * 1 [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.sparsify ============ [algebraic-graphs] OK: sort . reachable x == sort . rights . reachable (sparsify x) . Right [algebraic-graphs] OK: vertexCount (sparsify x) <= vertexCount x + size x + 1 [algebraic-graphs] OK: edgeCount (sparsify x) <= 3 * size x [algebraic-graphs] OK: size (sparsify x) <= 3 * size x [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.sparsifyKL ============ [algebraic-graphs] OK: sort . reachable x == sort . filter (<= n) . reachable (sparsifyKL n x) [algebraic-graphs] OK: length (vertices $ sparsifyKL n x) <= vertexCount x + size x + 1 [algebraic-graphs] OK: length (edges $ sparsifyKL n x) <= 3 * size x [algebraic-graphs]  [algebraic-graphs] ============ NonEmpty.Graph.box ============ [algebraic-graphs] OK: box (path1 [0,1]) (path1 ['a','b']) == [algebraic-graphs] OK: box x y ~~ box y x [algebraic-graphs] OK: box x (overlay y z) == overlay (box x y) (box x z) [algebraic-graphs] OK: box x (vertex ()) ~~ x [algebraic-graphs] OK: box x (box y z) ~~ box (box x y) z [algebraic-graphs] OK: transpose (box x y) == box (transpose x) (transpose y) [algebraic-graphs] OK: vertexCount (box x y) == vertexCount x * vertexCount y [algebraic-graphs] OK: edgeCount (box x y) <= vertexCount x * edgeCount y + edgeCount x * vertexCount y [algebraic-graphs]  [algebraic-graphs] ============ Relation ============ [algebraic-graphs] OK: Axioms of graphs [algebraic-graphs]  [algebraic-graphs] ============ Relation.consistent ============ [algebraic-graphs] OK: Consistency of the Arbitrary instance [algebraic-graphs]  [algebraic-graphs] OK: consistent empty == True [algebraic-graphs] OK: consistent (vertex x) == True [algebraic-graphs] OK: consistent (overlay x y) == True [algebraic-graphs] OK: consistent (connect x y) == True [algebraic-graphs] OK: consistent (edge x y) == True [algebraic-graphs] OK: consistent (edges xs) == True [algebraic-graphs] OK: consistent (stars xs) == True [algebraic-graphs]  [algebraic-graphs] ============ Relation.Show ============ [algebraic-graphs] OK: show (empty ) == "empty" [algebraic-graphs] OK: show (1 ) == "vertex 1" [algebraic-graphs] OK: show (1 + 2 ) == "vertices [1,2]" [algebraic-graphs] OK: show (1 * 2 ) == "edge 1 2" [algebraic-graphs] OK: show (1 * 2 * 3) == "edges [(1,2),(1,3),(2,3)]" [algebraic-graphs] OK: show (1 * 2 + 3) == "overlay (vertex 3) (edge 1 2)" [algebraic-graphs]  [algebraic-graphs] OK: show (vertex (-1) ) == "vertex (-1)" [algebraic-graphs] OK: show (vertex (-1) + vertex (-2) ) == "vertices [-2,-1]" [algebraic-graphs] OK: show (vertex (-2) * vertex (-1) ) == "edge (-2) (-1)" [algebraic-graphs] OK: show (vertex (-3) * vertex (-2) * vertex (-1)) == "edges [(-3,-2),(-3,-1),(-2,-1)]" [algebraic-graphs] OK: show (vertex (-3) * vertex (-2) + vertex (-1)) == "overlay (vertex (-1)) (edge (-3) (-2))" [algebraic-graphs]  [algebraic-graphs] ============ Relation.Ord ============ [algebraic-graphs] OK: vertex 1 < vertex 2 [algebraic-graphs] OK: vertex 3 < edge 1 2 [algebraic-graphs] OK: vertex 1 < edge 1 1 [algebraic-graphs] OK: edge 1 1 < edge 1 2 [algebraic-graphs] OK: edge 1 2 < edge 1 1 + edge 2 2 [algebraic-graphs] OK: edge 1 2 < edge 1 3 [algebraic-graphs] OK: x <= x + y [algebraic-graphs] OK: x + y <= x * y [algebraic-graphs]  [algebraic-graphs] ============ Relation.empty ============ [algebraic-graphs] OK: isEmpty empty == True [algebraic-graphs] OK: hasVertex x empty == False [algebraic-graphs] OK: vertexCount empty == 0 [algebraic-graphs] OK: edgeCount empty == 0 [algebraic-graphs]  [algebraic-graphs] ============ Relation.vertex ============ [algebraic-graphs] OK: isEmpty (vertex x) == False [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y) [algebraic-graphs] OK: vertexCount (vertex x) == 1 [algebraic-graphs] OK: edgeCount (vertex x) == 0 [algebraic-graphs]  [algebraic-graphs] ============ Relation.edge ============ [algebraic-graphs] OK: edge x y == connect (vertex x) (vertex y) [algebraic-graphs] OK: hasEdge x y (edge x y) == True [algebraic-graphs] OK: edgeCount (edge x y) == 1 [algebraic-graphs] OK: vertexCount (edge 1 1) == 1 [algebraic-graphs] OK: vertexCount (edge 1 2) == 2 [algebraic-graphs]  [algebraic-graphs] ============ Relation.overlay ============ [algebraic-graphs] OK: isEmpty (overlay x y) == isEmpty x && isEmpty y [algebraic-graphs] OK: hasVertex z (overlay x y) == hasVertex z x || hasVertex z y [algebraic-graphs] OK: vertexCount (overlay x y) >= vertexCount x [algebraic-graphs] OK: vertexCount (overlay x y) <= vertexCount x + vertexCount y [algebraic-graphs] OK: edgeCount (overlay x y) >= edgeCount x [algebraic-graphs] OK: edgeCount (overlay x y) <= edgeCount x + edgeCount y [algebraic-graphs] OK: vertexCount (overlay 1 2) == 2 [algebraic-graphs] OK: edgeCount (overlay 1 2) == 0 [algebraic-graphs]  [algebraic-graphs] ============ Relation.connect ============ [algebraic-graphs] OK: isEmpty (connect x y) == isEmpty x && isEmpty y [algebraic-graphs] OK: hasVertex z (connect x y) == hasVertex z x || hasVertex z y [algebraic-graphs] OK: vertexCount (connect x y) >= vertexCount x [algebraic-graphs] OK: vertexCount (connect x y) <= vertexCount x + vertexCount y [algebraic-graphs] OK: edgeCount (connect x y) >= edgeCount x [algebraic-graphs] OK: edgeCount (connect x y) >= edgeCount y [algebraic-graphs] OK: edgeCount (connect x y) >= vertexCount x * vertexCount y [algebraic-graphs] OK: edgeCount (connect x y) <= vertexCount x * vertexCount y + edgeCount x + edgeCount y [algebraic-graphs] OK: vertexCount (connect 1 2) == 2 [algebraic-graphs] OK: edgeCount (connect 1 2) == 1 [algebraic-graphs]  [algebraic-graphs] ============ Relation.vertices ============ [algebraic-graphs] OK: vertices [] == empty [algebraic-graphs] OK: vertices [x] == vertex x [algebraic-graphs] OK: vertices == overlays . map vertex [algebraic-graphs] OK: hasVertex x . vertices == elem x [algebraic-graphs] OK: vertexCount . vertices == length . nub [algebraic-graphs] OK: vertexSet . vertices == Set.fromList [algebraic-graphs]  [algebraic-graphs] ============ Relation.edges ============ [algebraic-graphs] OK: edges [] == empty [algebraic-graphs] OK: edges [(x,y)] == edge x y [algebraic-graphs] OK: edges == overlays . map (uncurry edge) [algebraic-graphs] OK: edgeCount . edges == length . nub [algebraic-graphs]  [algebraic-graphs] ============ Relation.overlays ============ [algebraic-graphs] OK: overlays [] == empty [algebraic-graphs] OK: overlays [x] == x [algebraic-graphs] OK: overlays [x,y] == overlay x y [algebraic-graphs] OK: overlays == foldr overlay empty [algebraic-graphs] OK: isEmpty . overlays == all isEmpty [algebraic-graphs]  [algebraic-graphs] ============ Relation.connects ============ [algebraic-graphs] OK: connects [] == empty [algebraic-graphs] OK: connects [x] == x [algebraic-graphs] OK: connects [x,y] == connect x y [algebraic-graphs] OK: connects == foldr connect empty [algebraic-graphs] OK: isEmpty . connects == all isEmpty [algebraic-graphs]  [algebraic-graphs] ============ Relation.isSubgraphOf ============ [algebraic-graphs] OK: isSubgraphOf empty x == True [algebraic-graphs] OK: isSubgraphOf (vertex x) empty == False [algebraic-graphs] OK: isSubgraphOf x (overlay x y) == True [algebraic-graphs] OK: isSubgraphOf (overlay x y) (connect x y) == True [algebraic-graphs] OK: isSubgraphOf (path xs) (circuit xs) == True [algebraic-graphs] OK: isSubgraphOf x y ==> x <= y [algebraic-graphs]  [algebraic-graphs] ============ Relation.toGraph et al. ============ [algebraic-graphs] OK: toGraph == foldg Empty Vertex Overlay Connect [algebraic-graphs] OK: foldg == Algebra.Graph.foldg . toGraph [algebraic-graphs] OK: isEmpty == foldg True (const False) (&&) (&&) [algebraic-graphs] OK: size == foldg 1 (const 1) (+) (+) [algebraic-graphs] OK: hasVertex x == foldg False (==x) (||) (||) [algebraic-graphs] OK: hasEdge x y == Algebra.Graph.hasEdge x y . toGraph [algebraic-graphs] OK: vertexCount == Set.size . vertexSet [algebraic-graphs] OK: edgeCount == Set.size . edgeSet [algebraic-graphs] OK: vertexList == Set.toAscList . vertexSet [algebraic-graphs] OK: edgeList == Set.toAscList . edgeSet [algebraic-graphs] OK: vertexSet == foldg Set.empty Set.singleton Set.union Set.union [algebraic-graphs] OK: vertexIntSet == foldg IntSet.empty IntSet.singleton IntSet.union IntSet.union [algebraic-graphs] OK: edgeSet == Algebra.Graph.AdjacencyMap.edgeSet . foldg empty vertex overlay connect [algebraic-graphs] OK: preSet x == Algebra.Graph.AdjacencyMap.preSet x . toAdjacencyMap [algebraic-graphs] OK: preIntSet x == Algebra.Graph.AdjacencyIntMap.preIntSet x . toAdjacencyIntMap [algebraic-graphs] OK: postSet x == Algebra.Graph.AdjacencyMap.postSet x . toAdjacencyMap [algebraic-graphs] OK: postIntSet x == Algebra.Graph.AdjacencyIntMap.postIntSet x . toAdjacencyIntMap [algebraic-graphs] OK: adjacencyList == Algebra.Graph.AdjacencyMap.adjacencyList . toAdjacencyMap [algebraic-graphs] OK: adjacencyMap == Algebra.Graph.AdjacencyMap.adjacencyMap . toAdjacencyMap [algebraic-graphs] OK: adjacencyIntMap == Algebra.Graph.AdjacencyIntMap.adjacencyIntMap . toAdjacencyIntMap [algebraic-graphs] OK: adjacencyMapTranspose == Algebra.Graph.AdjacencyMap.adjacencyMap . toAdjacencyMapTranspose [algebraic-graphs] OK: adjacencyIntMapTranspose == Algebra.Graph.AdjacencyIntMap.adjacencyIntMap . toAdjacencyIntMapTranspose [algebraic-graphs] OK: dfsForest == Algebra.Graph.AdjacencyMap.dfsForest . toAdjacencyMap [algebraic-graphs] OK: dfsForestFrom == Algebra.Graph.AdjacencyMap.dfsForestFrom . toAdjacencyMap [algebraic-graphs] OK: dfs == Algebra.Graph.AdjacencyMap.dfs . toAdjacencyMap [algebraic-graphs] OK: reachable == Algebra.Graph.AdjacencyMap.reachable . toAdjacencyMap [algebraic-graphs] OK: topSort == Algebra.Graph.AdjacencyMap.topSort . toAdjacencyMap [algebraic-graphs] OK: isAcyclic == Algebra.Graph.AdjacencyMap.isAcyclic . toAdjacencyMap [algebraic-graphs] OK: isTopSortOf vs == Algebra.Graph.AdjacencyMap.isTopSortOf vs . toAdjacencyMap [algebraic-graphs] OK: toAdjacencyMap == foldg empty vertex overlay connect [algebraic-graphs] OK: toAdjacencyMapTranspose == foldg empty vertex overlay (flip connect) [algebraic-graphs] OK: toAdjacencyIntMap == foldg empty vertex overlay connect [algebraic-graphs] OK: toAdjacencyIntMapTranspose == foldg empty vertex overlay (flip connect) [algebraic-graphs] OK: isDfsForestOf f == Algebra.Graph.AdjacencyMap.isDfsForestOf f . toAdjacencyMap [algebraic-graphs] OK: isTopSortOf vs == Algebra.Graph.AdjacencyMap.isTopSortOf vs . toAdjacencyMap [algebraic-graphs]  [algebraic-graphs] ============ Relation.foldg ============ [algebraic-graphs] OK: foldg empty vertex overlay connect == id [algebraic-graphs] OK: foldg empty vertex overlay (flip connect) == transpose [algebraic-graphs] OK: foldg 1 (const 1) (+) (+) == size [algebraic-graphs] OK: foldg True (const False) (&&) (&&) == isEmpty [algebraic-graphs]  [algebraic-graphs] ============ Relation.isEmpty ============ [algebraic-graphs] OK: isEmpty empty == True [algebraic-graphs] OK: isEmpty (overlay empty empty) == True [algebraic-graphs] OK: isEmpty (vertex x) == False [algebraic-graphs] OK: isEmpty (removeVertex x $ vertex x) == True [algebraic-graphs] OK: isEmpty (removeEdge x y $ edge x y) == False [algebraic-graphs]  [algebraic-graphs] ============ Relation.hasVertex ============ [algebraic-graphs] OK: hasVertex x empty == False [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y) [algebraic-graphs] OK: hasVertex x . removeVertex x == const False [algebraic-graphs]  [algebraic-graphs] ============ Relation.hasEdge ============ [algebraic-graphs] OK: hasEdge x y empty == False [algebraic-graphs] OK: hasEdge x y (vertex z) == False [algebraic-graphs] OK: hasEdge x y (edge x y) == True [algebraic-graphs] OK: hasEdge x y . removeEdge x y == const False [algebraic-graphs] OK: hasEdge x y == elem (x,y) . edgeList [algebraic-graphs]  [algebraic-graphs] ============ Relation.vertexCount ============ [algebraic-graphs] OK: vertexCount empty == 0 [algebraic-graphs] OK: vertexCount (vertex x) == 1 [algebraic-graphs] OK: vertexCount == length . vertexList [algebraic-graphs] OK: vertexCount x < vertexCount y ==> x < y [algebraic-graphs]  [algebraic-graphs] ============ Relation.edgeCount ============ [algebraic-graphs] OK: edgeCount empty == 0 [algebraic-graphs] OK: edgeCount (vertex x) == 0 [algebraic-graphs] OK: edgeCount (edge x y) == 1 [algebraic-graphs] OK: edgeCount == length . edgeList [algebraic-graphs]  [algebraic-graphs] ============ Relation.vertexList ============ [algebraic-graphs] OK: vertexList empty == [] [algebraic-graphs] OK: vertexList (vertex x) == [x] [algebraic-graphs] OK: vertexList . vertices == nub . sort [algebraic-graphs]  [algebraic-graphs] ============ Relation.vertexSet ============ [algebraic-graphs] OK: vertexSet empty == Set.empty [algebraic-graphs] OK: vertexSet . vertex == Set.singleton [algebraic-graphs] OK: vertexSet . vertices == Set.fromList [algebraic-graphs]  [algebraic-graphs] ============ Relation.vertexIntSet ============ [algebraic-graphs] OK: vertexIntSet empty == IntSet.empty [algebraic-graphs] OK: vertexIntSet . vertex == IntSet.singleton [algebraic-graphs] OK: vertexIntSet . vertices == IntSet.fromList [algebraic-graphs] OK: vertexIntSet . clique == IntSet.fromList [algebraic-graphs]  [algebraic-graphs] ============ Relation.edgeList ============ [algebraic-graphs] OK: edgeList empty == [] [algebraic-graphs] OK: edgeList (vertex x) == [] [algebraic-graphs] OK: edgeList (edge x y) == [(x,y)] [algebraic-graphs] OK: edgeList (star 2 [3,1]) == [(2,1), (2,3)] [algebraic-graphs] OK: edgeList . edges == nub . sort [algebraic-graphs]  [algebraic-graphs] ============ Relation.edgeSet ============ [algebraic-graphs] OK: edgeSet empty == Set.empty [algebraic-graphs] OK: edgeSet (vertex x) == Set.empty [algebraic-graphs] OK: edgeSet (edge x y) == Set.singleton (x,y) [algebraic-graphs] OK: edgeSet . edges == Set.fromList [algebraic-graphs]  [algebraic-graphs] ============ Relation.adjacencyList ============ [algebraic-graphs] OK: adjacencyList empty == [] [algebraic-graphs] OK: adjacencyList (vertex x) == [(x, [])] [algebraic-graphs] OK: adjacencyList (edge 1 2) == [(1, [2]), (2, [])] [algebraic-graphs] OK: adjacencyList (star 2 [3,1]) == [(1, []), (2, [1,3]), (3, [])] [algebraic-graphs]  [algebraic-graphs] ============ Relation.preSet ============ [algebraic-graphs] OK: preSet x empty == Set.empty [algebraic-graphs] OK: preSet x (vertex x) == Set.empty [algebraic-graphs] OK: preSet 1 (edge 1 2) == Set.empty [algebraic-graphs] OK: preSet y (edge x y) == Set.fromList [x] [algebraic-graphs]  [algebraic-graphs] ============ Relation.preIntSet ============ [algebraic-graphs] OK: preIntSet x empty == IntSet.empty [algebraic-graphs] OK: preIntSet x (vertex x) == IntSet.empty [algebraic-graphs] OK: preIntSet 1 (edge 1 2) == IntSet.empty [algebraic-graphs] OK: preIntSet y (edge x y) == IntSet.fromList [x] [algebraic-graphs]  [algebraic-graphs] ============ Relation.postSet ============ [algebraic-graphs] OK: postSet x empty == Set.empty [algebraic-graphs] OK: postSet x (vertex x) == Set.empty [algebraic-graphs] OK: postSet x (edge x y) == Set.fromList [y] [algebraic-graphs] OK: postSet 2 (edge 1 2) == Set.empty [algebraic-graphs]  [algebraic-graphs] ============ Relation.postIntSet ============ [algebraic-graphs] OK: postIntSet x empty == IntSet.empty [algebraic-graphs] OK: postIntSet x (vertex x) == IntSet.empty [algebraic-graphs] OK: postIntSet 2 (edge 1 2) == IntSet.empty [algebraic-graphs] OK: postIntSet x (edge x y) == IntSet.fromList [y] [algebraic-graphs]  [algebraic-graphs] ============ Relation.path ============ [algebraic-graphs] OK: path [] == empty [algebraic-graphs] OK: path [x] == vertex x [algebraic-graphs] OK: path [x,y] == edge x y [algebraic-graphs]  [algebraic-graphs] ============ Relation.circuit ============ [algebraic-graphs] OK: circuit [] == empty [algebraic-graphs] OK: circuit [x] == edge x x [algebraic-graphs] OK: circuit [x,y] == edges [(x,y), (y,x)] [algebraic-graphs]  [algebraic-graphs] ============ Relation.clique ============ [algebraic-graphs] OK: clique [] == empty [algebraic-graphs] OK: clique [x] == vertex x [algebraic-graphs] OK: clique [x,y] == edge x y [algebraic-graphs] OK: clique [x,y,z] == edges [(x,y), (x,z), (y,z)] [algebraic-graphs] OK: clique (xs ++ ys) == connect (clique xs) (clique ys) [algebraic-graphs]  [algebraic-graphs] ============ Relation.biclique ============ [algebraic-graphs] OK: biclique [] [] == empty [algebraic-graphs] OK: biclique [x] [] == vertex x [algebraic-graphs] OK: biclique [] [y] == vertex y [algebraic-graphs] OK: biclique [x1,x2] [y1,y2] == edges [(x1,y1), (x1,y2), (x2,y1), (x2,y2)] [algebraic-graphs] OK: biclique xs ys == connect (vertices xs) (vertices ys) [algebraic-graphs]  [algebraic-graphs] ============ Relation.star ============ [algebraic-graphs] OK: star x [] == vertex x [algebraic-graphs] OK: star x [y] == edge x y [algebraic-graphs] OK: star x [y,z] == edges [(x,y), (x,z)] [algebraic-graphs] OK: star x ys == connect (vertex x) (vertices ys) [algebraic-graphs]  [algebraic-graphs] ============ Relation.stars ============ [algebraic-graphs] OK: stars [] == empty [algebraic-graphs] OK: stars [(x, [])] == vertex x [algebraic-graphs] OK: stars [(x, [y])] == edge x y [algebraic-graphs] OK: stars [(x, ys)] == star x ys [algebraic-graphs] OK: stars == overlays . map (uncurry star) [algebraic-graphs] OK: stars . adjacencyList == id [algebraic-graphs] OK: overlay (stars xs) (stars ys) == stars (xs ++ ys) [algebraic-graphs]  [algebraic-graphs] ============ Relation.tree ============ [algebraic-graphs] OK: tree (Node x []) == vertex x [algebraic-graphs] OK: tree (Node x [Node y [Node z []]]) == path [x,y,z] [algebraic-graphs] OK: tree (Node x [Node y [], Node z []]) == star x [y,z] [algebraic-graphs] OK: tree (Node 1 [Node 2 [], Node 3 [Node 4 [], Node 5 []]]) == edges [(1,2), (1,3), (3,4), (3,5)] [algebraic-graphs]  [algebraic-graphs] ============ Relation.forest ============ [algebraic-graphs] OK: forest [] == empty [algebraic-graphs] OK: forest [x] == tree x [algebraic-graphs] OK: forest [Node 1 [Node 2 [], Node 3 []], Node 4 [Node 5 []]] == edges [(1,2), (1,3), (4,5)] [algebraic-graphs] OK: forest == overlays . map tree [algebraic-graphs]  [algebraic-graphs] ============ Relation.removeVertex ============ [algebraic-graphs] OK: removeVertex x (vertex x) == empty [algebraic-graphs] OK: removeVertex 1 (vertex 2) == vertex 2 [algebraic-graphs] OK: removeVertex x (edge x x) == empty [algebraic-graphs] OK: removeVertex 1 (edge 1 2) == vertex 2 [algebraic-graphs] OK: removeVertex x . removeVertex x == removeVertex x [algebraic-graphs]  [algebraic-graphs] ============ Relation.removeEdge ============ [algebraic-graphs] OK: removeEdge x y (edge x y) == vertices [x,y] [algebraic-graphs] OK: removeEdge x y . removeEdge x y == removeEdge x y [algebraic-graphs] OK: removeEdge x y . removeVertex x == removeVertex x [algebraic-graphs] OK: removeEdge 1 1 (1 * 1 * 2 * 2) == 1 * 2 * 2 [algebraic-graphs] OK: removeEdge 1 2 (1 * 1 * 2 * 2) == 1 * 1 + 2 * 2 [algebraic-graphs]  [algebraic-graphs] ============ Relation.replaceVertex ============ [algebraic-graphs] OK: replaceVertex x x == id [algebraic-graphs] OK: replaceVertex x y (vertex x) == vertex y [algebraic-graphs] OK: replaceVertex x y == mergeVertices (== x) y [algebraic-graphs]  [algebraic-graphs] ============ Relation.mergeVertices ============ [algebraic-graphs] OK: mergeVertices (const False) x == id [algebraic-graphs] OK: mergeVertices (== x) y == replaceVertex x y [algebraic-graphs] OK: mergeVertices even 1 (0 * 2) == 1 * 1 [algebraic-graphs] OK: mergeVertices odd 1 (3 + 4 * 5) == 4 * 1 [algebraic-graphs]  [algebraic-graphs] ============ Relation.transpose ============ [algebraic-graphs] OK: transpose empty == empty [algebraic-graphs] OK: transpose (vertex x) == vertex x [algebraic-graphs] OK: transpose (edge x y) == edge y x [algebraic-graphs] OK: transpose . transpose == id [algebraic-graphs] OK: edgeList . transpose == sort . map swap . edgeList [algebraic-graphs]  [algebraic-graphs] ============ Relation.gmap ============ [algebraic-graphs] OK: gmap f empty == empty [algebraic-graphs] OK: gmap f (vertex x) == vertex (f x) [algebraic-graphs] OK: gmap f (edge x y) == edge (f x) (f y) [algebraic-graphs] OK: gmap id == id [algebraic-graphs] OK: gmap f . gmap g == gmap (f . g) [algebraic-graphs]  [algebraic-graphs] ============ Relation.induce ============ [algebraic-graphs] OK: induce (const True ) x == x [algebraic-graphs] OK: induce (const False) x == empty [algebraic-graphs] OK: induce (/= x) == removeVertex x [algebraic-graphs] OK: induce p . induce q == induce (\x -> p x && q x) [algebraic-graphs] OK: isSubgraphOf (induce p x) x == True [algebraic-graphs]  [algebraic-graphs] ============ Relation.compose ============ [algebraic-graphs] OK: compose empty x == empty [algebraic-graphs] OK: compose x empty == empty [algebraic-graphs] OK: compose (vertex x) y == empty [algebraic-graphs] OK: compose x (vertex y) == empty [algebraic-graphs] OK: compose x (compose y z) == compose (compose x y) z [algebraic-graphs] OK: compose x (overlay y z) == overlay (compose x y) (compose x z) [algebraic-graphs] OK: compose (overlay x y) z == overlay (compose x z) (compose y z) [algebraic-graphs] OK: compose (edge x y) (edge y z) == edge x z [algebraic-graphs] OK: compose (path [1..5]) (path [1..5]) == edges [(1,3),(2,4),(3,5)] [algebraic-graphs] OK: compose (circuit [1..5]) (circuit [1..5]) == circuit [1,3,5,2,4] [algebraic-graphs]  [algebraic-graphs] ============ Relation.closure ============ [algebraic-graphs] OK: closure empty == empty [algebraic-graphs] OK: closure (vertex x) == edge x x [algebraic-graphs] OK: closure (edge x x) == edge x x [algebraic-graphs] OK: closure (edge x y) == edges [(x,x), (x,y), (y,y)] [algebraic-graphs] OK: closure (path $ nub xs) == reflexiveClosure (clique $ nub xs) [algebraic-graphs] OK: closure == reflexiveClosure . transitiveClosure [algebraic-graphs] OK: closure == transitiveClosure . reflexiveClosure [algebraic-graphs] OK: closure . closure == closure [algebraic-graphs] OK: postSet x (closure y) == Set.fromList (reachable y x) [algebraic-graphs]  [algebraic-graphs] ============ Relation.reflexiveClosure ============ [algebraic-graphs] OK: reflexiveClosure empty == empty [algebraic-graphs] OK: reflexiveClosure (vertex x) == edge x x [algebraic-graphs] OK: reflexiveClosure (edge x x) == edge x x [algebraic-graphs] OK: reflexiveClosure (edge x y) == edges [(x,x), (x,y), (y,y)] [algebraic-graphs] OK: reflexiveClosure . reflexiveClosure == reflexiveClosure [algebraic-graphs]  [algebraic-graphs] ============ Relation.symmetricClosure ============ [algebraic-graphs] OK: symmetricClosure empty == empty [algebraic-graphs] OK: symmetricClosure (vertex x) == vertex x [algebraic-graphs] OK: symmetricClosure (edge x y) == edges [(x,y), (y,x)] [algebraic-graphs] OK: symmetricClosure x == overlay x (transpose x) [algebraic-graphs] OK: symmetricClosure . symmetricClosure == symmetricClosure [algebraic-graphs]  [algebraic-graphs] ============ Relation.transitiveClosure ============ [algebraic-graphs] OK: transitiveClosure empty == empty [algebraic-graphs] OK: transitiveClosure (vertex x) == vertex x [algebraic-graphs] OK: transitiveClosure (edge x y) == edge x y [algebraic-graphs] OK: transitiveClosure (path $ nub xs) == clique (nub $ xs) [algebraic-graphs] OK: transitiveClosure . transitiveClosure == transitiveClosure [algebraic-graphs]  [algebraic-graphs] ============ Relation.induceJust ============ [algebraic-graphs] OK: induceJust (vertex Nothing) == empty [algebraic-graphs] OK: induceJust (edge (Just x) Nothing) == vertex x [algebraic-graphs] OK: induceJust . gmap Just == id [algebraic-graphs] OK: induceJust . gmap (\x -> if p x then Just x else Nothing) == induce p [algebraic-graphs]  [algebraic-graphs] ============ ReflexiveRelation ============ [algebraic-graphs] OK: Axioms of reflexive graphs [algebraic-graphs]  [algebraic-graphs] ============ TransitiveRelation ============ [algebraic-graphs] OK: Axioms of transitive graphs [algebraic-graphs] OK: path xs == (clique xs :: TransitiveRelation Int) [algebraic-graphs]  [algebraic-graphs] ============ PreorderRelation ============ [algebraic-graphs] OK: Axioms of preorder graphs [algebraic-graphs] OK: path xs == (clique xs :: PreorderRelation Int) [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation ============ [algebraic-graphs] OK: Axioms of undirected graphs [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.consistent ============ [algebraic-graphs] OK: Consistency of the Arbitrary instance [algebraic-graphs]  [algebraic-graphs] OK: consistent empty == True [algebraic-graphs] OK: consistent (vertex x) == True [algebraic-graphs] OK: consistent (overlay x y) == True [algebraic-graphs] OK: consistent (connect x y) == True [algebraic-graphs] OK: consistent (edge x y) == True [algebraic-graphs] OK: consistent (edges xs) == True [algebraic-graphs] OK: consistent (stars xs) == True [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.Show ============ [algebraic-graphs] OK: show (empty ) == "empty" [algebraic-graphs] OK: show (1 ) == "vertex 1" [algebraic-graphs] OK: show (1 + 2 ) == "vertices [1,2]" [algebraic-graphs] OK: show (1 * 2 ) == "edge 1 2" [algebraic-graphs] OK: show (1 * 2 * 3) == "edges [(1,2),(1,3),(2,3)]" [algebraic-graphs] OK: show (1 * 2 + 3) == "overlay (vertex 3) (edge 1 2)" [algebraic-graphs]  [algebraic-graphs] OK: show (vertex (-1) ) == "vertex (-1)" [algebraic-graphs] OK: show (vertex (-1) + vertex (-2) ) == "vertices [-2,-1]" [algebraic-graphs] OK: show (vertex (-2) * vertex (-1) ) == "edge (-2) (-1)" [algebraic-graphs] OK: show (vertex (-3) * vertex (-2) * vertex (-1)) == "edges [(-3,-2),(-3,-1),(-2,-1)]" [algebraic-graphs] OK: show (vertex (-3) * vertex (-2) + vertex (-1)) == "overlay (vertex (-1)) (edge (-3) (-2))" [algebraic-graphs]  [algebraic-graphs] OK: show (2 * 1 ) == "edge 1 2" [algebraic-graphs] OK: show (1 * 2 * 1) == "edges [(1,1),(1,2)]" [algebraic-graphs] OK: show (3 * 2 * 1) == "edges [(1,2),(1,3),(2,3)]" [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.toSymmetric ============ [algebraic-graphs] OK: toSymmetric (edge 1 2) == edge 1 2 [algebraic-graphs] OK: toSymmetric . fromSymmetric == id [algebraic-graphs] OK: fromSymmetric . toSymmetric == symmetricClosure [algebraic-graphs] OK: vertexCount . toSymmetric == vertexCount [algebraic-graphs] OK: (*2) . edgeCount . toSymmetric >= edgeCount [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.fromSymmetric ============ [algebraic-graphs] OK: fromSymmetric (edge 1 2) == edges [(1,2), (2,1)] [algebraic-graphs] OK: vertexCount . fromSymmetric == vertexCount [algebraic-graphs] OK: edgeCount . fromSymmetric <= (*2) . edgeCount [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.Ord ============ [algebraic-graphs] OK: vertex 1 < vertex 2 [algebraic-graphs] OK: vertex 3 < edge 1 2 [algebraic-graphs] OK: vertex 1 < edge 1 1 [algebraic-graphs] OK: edge 1 1 < edge 1 2 [algebraic-graphs] OK: edge 1 2 < edge 1 1 + edge 2 2 [algebraic-graphs] OK: edge 2 1 < edge 1 3 [algebraic-graphs] OK: edge 1 2 == edge 2 1 [algebraic-graphs] OK: x <= x + y [algebraic-graphs] OK: x + y <= x * y [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.empty ============ [algebraic-graphs] OK: isEmpty empty == True [algebraic-graphs] OK: hasVertex x empty == False [algebraic-graphs] OK: vertexCount empty == 0 [algebraic-graphs] OK: edgeCount empty == 0 [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.vertex ============ [algebraic-graphs] OK: isEmpty (vertex x) == False [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y) [algebraic-graphs] OK: vertexCount (vertex x) == 1 [algebraic-graphs] OK: edgeCount (vertex x) == 0 [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.edge ============ [algebraic-graphs] OK: edge x y == connect (vertex x) (vertex y) [algebraic-graphs] OK: edge x y == edge y x [algebraic-graphs] OK: edge x y == edges [(x,y), (y,x)] [algebraic-graphs] OK: hasEdge x y (edge x y) == True [algebraic-graphs] OK: edgeCount (edge x y) == 1 [algebraic-graphs] OK: vertexCount (edge 1 1) == 1 [algebraic-graphs] OK: vertexCount (edge 1 2) == 2 [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.overlay ============ [algebraic-graphs] OK: isEmpty (overlay x y) == isEmpty x && isEmpty y [algebraic-graphs] OK: hasVertex z (overlay x y) == hasVertex z x || hasVertex z y [algebraic-graphs] OK: vertexCount (overlay x y) >= vertexCount x [algebraic-graphs] OK: vertexCount (overlay x y) <= vertexCount x + vertexCount y [algebraic-graphs] OK: edgeCount (overlay x y) >= edgeCount x [algebraic-graphs] OK: edgeCount (overlay x y) <= edgeCount x + edgeCount y [algebraic-graphs] OK: vertexCount (overlay 1 2) == 2 [algebraic-graphs] OK: edgeCount (overlay 1 2) == 0 [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.connect ============ [algebraic-graphs] OK: connect x y == connect y x [algebraic-graphs] OK: isEmpty (connect x y) == isEmpty x && isEmpty y [algebraic-graphs] OK: hasVertex z (connect x y) == hasVertex z x || hasVertex z y [algebraic-graphs] OK: vertexCount (connect x y) >= vertexCount x [algebraic-graphs] OK: vertexCount (connect x y) <= vertexCount x + vertexCount y [algebraic-graphs] OK: edgeCount (connect x y) >= edgeCount x [algebraic-graphs] OK: edgeCount (connect x y) >= edgeCount y [algebraic-graphs] OK: edgeCount (connect x y) >= vertexCount x * vertexCount y `div` 2 [algebraic-graphs] OK: edgeCount (connect x y) <= vertexCount x * vertexCount y + edgeCount x + edgeCount y [algebraic-graphs] OK: vertexCount (connect 1 2) == 2 [algebraic-graphs] OK: edgeCount (connect 1 2) == 1 [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.vertices ============ [algebraic-graphs] OK: vertices [] == empty [algebraic-graphs] OK: vertices [x] == vertex x [algebraic-graphs] OK: vertices == overlays . map vertex [algebraic-graphs] OK: hasVertex x . vertices == elem x [algebraic-graphs] OK: vertexCount . vertices == length . nub [algebraic-graphs] OK: vertexSet . vertices == Set.fromList [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.edges ============ [algebraic-graphs] OK: edges [] == empty [algebraic-graphs] OK: edges [(x,y)] == edge x y [algebraic-graphs] OK: edges [(x,y), (y,x)] == edge x y [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.overlays ============ [algebraic-graphs] OK: overlays [] == empty [algebraic-graphs] OK: overlays [x] == x [algebraic-graphs] OK: overlays [x,y] == overlay x y [algebraic-graphs] OK: overlays == foldr overlay empty [algebraic-graphs] OK: isEmpty . overlays == all isEmpty [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.connects ============ [algebraic-graphs] OK: connects [] == empty [algebraic-graphs] OK: connects [x] == x [algebraic-graphs] OK: connects [x,y] == connect x y [algebraic-graphs] OK: connects == foldr connect empty [algebraic-graphs] OK: isEmpty . connects == all isEmpty [algebraic-graphs] OK: connects == connects . reverse [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.isSubgraphOf ============ [algebraic-graphs] OK: isSubgraphOf empty x == True [algebraic-graphs] OK: isSubgraphOf (vertex x) empty == False [algebraic-graphs] OK: isSubgraphOf x (overlay x y) == True [algebraic-graphs] OK: isSubgraphOf (overlay x y) (connect x y) == True [algebraic-graphs] OK: isSubgraphOf (path xs) (circuit xs) == True [algebraic-graphs] OK: isSubgraphOf x y ==> x <= y [algebraic-graphs] OK: isSubgraphOf (edge x y) (edge y x) == True [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.toGraph et al. ============ [algebraic-graphs] OK: toGraph == foldg Empty Vertex Overlay Connect [algebraic-graphs] OK: foldg == Algebra.Graph.foldg . toGraph [algebraic-graphs] OK: isEmpty == foldg True (const False) (&&) (&&) [algebraic-graphs] OK: size == foldg 1 (const 1) (+) (+) [algebraic-graphs] OK: hasVertex x == foldg False (==x) (||) (||) [algebraic-graphs] OK: hasEdge x y == Algebra.Graph.hasEdge x y . toGraph [algebraic-graphs] OK: vertexCount == Set.size . vertexSet [algebraic-graphs] OK: edgeCount == Set.size . edgeSet [algebraic-graphs] OK: vertexList == Set.toAscList . vertexSet [algebraic-graphs] OK: edgeList == Set.toAscList . edgeSet [algebraic-graphs] OK: vertexSet == foldg Set.empty Set.singleton Set.union Set.union [algebraic-graphs] OK: vertexIntSet == foldg IntSet.empty IntSet.singleton IntSet.union IntSet.union [algebraic-graphs] OK: adjacencyList == Algebra.Graph.AdjacencyMap.adjacencyList . toAdjacencyMap [algebraic-graphs] OK: adjacencyMap == Algebra.Graph.AdjacencyMap.adjacencyMap . toAdjacencyMap [algebraic-graphs] OK: adjacencyIntMap == Algebra.Graph.AdjacencyIntMap.adjacencyIntMap . toAdjacencyIntMap [algebraic-graphs] OK: adjacencyMapTranspose == Algebra.Graph.AdjacencyMap.adjacencyMap . toAdjacencyMapTranspose [algebraic-graphs] OK: adjacencyIntMapTranspose == Algebra.Graph.AdjacencyIntMap.adjacencyIntMap . toAdjacencyIntMapTranspose [algebraic-graphs] OK: dfsForest == Algebra.Graph.AdjacencyMap.dfsForest . toAdjacencyMap [algebraic-graphs] OK: dfsForestFrom == Algebra.Graph.AdjacencyMap.dfsForestFrom . toAdjacencyMap [algebraic-graphs] OK: dfs == Algebra.Graph.AdjacencyMap.dfs . toAdjacencyMap [algebraic-graphs] OK: reachable == Algebra.Graph.AdjacencyMap.reachable . toAdjacencyMap [algebraic-graphs] OK: topSort == Algebra.Graph.AdjacencyMap.topSort . toAdjacencyMap [algebraic-graphs] OK: isAcyclic == Algebra.Graph.AdjacencyMap.isAcyclic . toAdjacencyMap [algebraic-graphs] OK: isTopSortOf vs == Algebra.Graph.AdjacencyMap.isTopSortOf vs . toAdjacencyMap [algebraic-graphs] OK: toAdjacencyMap == foldg empty vertex overlay connect [algebraic-graphs] OK: toAdjacencyMapTranspose == foldg empty vertex overlay (flip connect) [algebraic-graphs] OK: toAdjacencyIntMap == foldg empty vertex overlay connect [algebraic-graphs] OK: toAdjacencyIntMapTranspose == foldg empty vertex overlay (flip connect) [algebraic-graphs] OK: isDfsForestOf f == Algebra.Graph.AdjacencyMap.isDfsForestOf f . toAdjacencyMap [algebraic-graphs] OK: isTopSortOf vs == Algebra.Graph.AdjacencyMap.isTopSortOf vs . toAdjacencyMap [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.isEmpty ============ [algebraic-graphs] OK: isEmpty empty == True [algebraic-graphs] OK: isEmpty (overlay empty empty) == True [algebraic-graphs] OK: isEmpty (vertex x) == False [algebraic-graphs] OK: isEmpty (removeVertex x $ vertex x) == True [algebraic-graphs] OK: isEmpty (removeEdge x y $ edge x y) == False [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.hasVertex ============ [algebraic-graphs] OK: hasVertex x empty == False [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y) [algebraic-graphs] OK: hasVertex x . removeVertex x == const False [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.hasEdge ============ [algebraic-graphs] OK: hasEdge x y empty == False [algebraic-graphs] OK: hasEdge x y (vertex z) == False [algebraic-graphs] OK: hasEdge x y (edge x y) == True [algebraic-graphs] OK: hasEdge x y (edge y x) == True [algebraic-graphs] OK: hasEdge x y . removeEdge x y == const False [algebraic-graphs] OK: hasEdge x y == elem (min x y, max x y) . edgeList [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.vertexCount ============ [algebraic-graphs] OK: vertexCount empty == 0 [algebraic-graphs] OK: vertexCount (vertex x) == 1 [algebraic-graphs] OK: vertexCount == length . vertexList [algebraic-graphs] OK: vertexCount x < vertexCount y ==> x < y [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.edgeCount ============ [algebraic-graphs] OK: edgeCount empty == 0 [algebraic-graphs] OK: edgeCount (vertex x) == 0 [algebraic-graphs] OK: edgeCount (edge x y) == 1 [algebraic-graphs] OK: edgeCount == length . edgeList [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.vertexList ============ [algebraic-graphs] OK: vertexList empty == [] [algebraic-graphs] OK: vertexList (vertex x) == [x] [algebraic-graphs] OK: vertexList . vertices == nub . sort [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.vertexSet ============ [algebraic-graphs] OK: vertexSet empty == Set.empty [algebraic-graphs] OK: vertexSet . vertex == Set.singleton [algebraic-graphs] OK: vertexSet . vertices == Set.fromList [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.vertexIntSet ============ [algebraic-graphs] OK: vertexIntSet empty == IntSet.empty [algebraic-graphs] OK: vertexIntSet . vertex == IntSet.singleton [algebraic-graphs] OK: vertexIntSet . vertices == IntSet.fromList [algebraic-graphs] OK: vertexIntSet . clique == IntSet.fromList [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.edgeList ============ [algebraic-graphs] OK: edgeList empty == [] [algebraic-graphs] OK: edgeList (vertex x) == [] [algebraic-graphs] OK: edgeList (edge x y) == [(min x y, max y x)] [algebraic-graphs] OK: edgeList (star 2 [3,1]) == [(1,2), (2,3)] [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.edgeSet ============ [algebraic-graphs] OK: edgeSet empty == Set.empty [algebraic-graphs] OK: edgeSet (vertex x) == Set.empty [algebraic-graphs] OK: edgeSet (edge x y) == Set.singleton (min x y, max x y) [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.adjacencyList ============ [algebraic-graphs] OK: adjacencyList empty == [] [algebraic-graphs] OK: adjacencyList (vertex x) == [(x, [])] [algebraic-graphs] OK: adjacencyList (edge 1 2) == [(1, [2]), (2, [1])] [algebraic-graphs] OK: adjacencyList (star 2 [3,1]) == [(1, [2]), (2, [1,3]), (3, [2])] [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.neighbours ============ [algebraic-graphs] OK: neighbours x empty == Set.empty [algebraic-graphs] OK: neighbours x (vertex x) == Set.empty [algebraic-graphs] OK: neighbours x (edge x y) == Set.fromList [y] [algebraic-graphs] OK: neighbours y (edge x y) == Set.fromList [x] [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.path ============ [algebraic-graphs] OK: path [] == empty [algebraic-graphs] OK: path [x] == vertex x [algebraic-graphs] OK: path [x,y] == edge x y [algebraic-graphs] OK: path == path . reverse [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.circuit ============ [algebraic-graphs] OK: circuit [] == empty [algebraic-graphs] OK: circuit [x] == edge x x [algebraic-graphs] OK: circuit [x,y] == edges [(x,y), (y,x)] [algebraic-graphs] OK: circuit == circuit . reverse [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.clique ============ [algebraic-graphs] OK: clique [] == empty [algebraic-graphs] OK: clique [x] == vertex x [algebraic-graphs] OK: clique [x,y] == edge x y [algebraic-graphs] OK: clique [x,y,z] == edges [(x,y), (x,z), (y,z)] [algebraic-graphs] OK: clique (xs ++ ys) == connect (clique xs) (clique ys) [algebraic-graphs] OK: clique == clique . reverse [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.biclique ============ [algebraic-graphs] OK: biclique [] [] == empty [algebraic-graphs] OK: biclique [x] [] == vertex x [algebraic-graphs] OK: biclique [] [y] == vertex y [algebraic-graphs] OK: biclique [x1,x2] [y1,y2] == edges [(x1,y1), (x1,y2), (x2,y1), (x2,y2)] [algebraic-graphs] OK: biclique xs ys == connect (vertices xs) (vertices ys) [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.star ============ [algebraic-graphs] OK: star x [] == vertex x [algebraic-graphs] OK: star x [y] == edge x y [algebraic-graphs] OK: star x [y,z] == edges [(x,y), (x,z)] [algebraic-graphs] OK: star x ys == connect (vertex x) (vertices ys) [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.stars ============ [algebraic-graphs] OK: stars [] == empty [algebraic-graphs] OK: stars [(x, [])] == vertex x [algebraic-graphs] OK: stars [(x, [y])] == edge x y [algebraic-graphs] OK: stars [(x, ys)] == star x ys [algebraic-graphs] OK: stars == overlays . map (uncurry star) [algebraic-graphs] OK: stars . adjacencyList == id [algebraic-graphs] OK: overlay (stars xs) (stars ys) == stars (xs ++ ys) [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.tree ============ [algebraic-graphs] OK: tree (Node x []) == vertex x [algebraic-graphs] OK: tree (Node x [Node y [Node z []]]) == path [x,y,z] [algebraic-graphs] OK: tree (Node x [Node y [], Node z []]) == star x [y,z] [algebraic-graphs] OK: tree (Node 1 [Node 2 [], Node 3 [Node 4 [], Node 5 []]]) == edges [(1,2), (1,3), (3,4), (3,5)] [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.forest ============ [algebraic-graphs] OK: forest [] == empty [algebraic-graphs] OK: forest [x] == tree x [algebraic-graphs] OK: forest [Node 1 [Node 2 [], Node 3 []], Node 4 [Node 5 []]] == edges [(1,2), (1,3), (4,5)] [algebraic-graphs] OK: forest == overlays . map tree [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.removeVertex ============ [algebraic-graphs] OK: removeVertex x (vertex x) == empty [algebraic-graphs] OK: removeVertex 1 (vertex 2) == vertex 2 [algebraic-graphs] OK: removeVertex x (edge x x) == empty [algebraic-graphs] OK: removeVertex 1 (edge 1 2) == vertex 2 [algebraic-graphs] OK: removeVertex x . removeVertex x == removeVertex x [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.removeEdge ============ [algebraic-graphs] OK: removeEdge x y (edge x y) == vertices [x,y] [algebraic-graphs] OK: removeEdge x y . removeEdge x y == removeEdge x y [algebraic-graphs] OK: removeEdge x y . removeVertex x == removeVertex x [algebraic-graphs] OK: removeEdge 1 1 (1 * 1 * 2 * 2) == 1 * 2 * 2 [algebraic-graphs] OK: removeEdge 1 2 (1 * 1 * 2 * 2) == 1 * 1 + 2 * 2 [algebraic-graphs] OK: removeEdge x y == removeEdge y x [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.replaceVertex ============ [algebraic-graphs] OK: replaceVertex x x == id [algebraic-graphs] OK: replaceVertex x y (vertex x) == vertex y [algebraic-graphs] OK: replaceVertex x y == mergeVertices (== x) y [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.mergeVertices ============ [algebraic-graphs] OK: mergeVertices (const False) x == id [algebraic-graphs] OK: mergeVertices (== x) y == replaceVertex x y [algebraic-graphs] OK: mergeVertices even 1 (0 * 2) == 1 * 1 [algebraic-graphs] OK: mergeVertices odd 1 (3 + 4 * 5) == 4 * 1 [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.gmap ============ [algebraic-graphs] OK: gmap f empty == empty [algebraic-graphs] OK: gmap f (vertex x) == vertex (f x) [algebraic-graphs] OK: gmap f (edge x y) == edge (f x) (f y) [algebraic-graphs] OK: gmap id == id [algebraic-graphs] OK: gmap f . gmap g == gmap (f . g) [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.induce ============ [algebraic-graphs] OK: induce (const True ) x == x [algebraic-graphs] OK: induce (const False) x == empty [algebraic-graphs] OK: induce (/= x) == removeVertex x [algebraic-graphs] OK: induce p . induce q == induce (\x -> p x && q x) [algebraic-graphs] OK: isSubgraphOf (induce p x) x == True [algebraic-graphs]  [algebraic-graphs] ============ Symmetric.Relation.induceJust ============ [algebraic-graphs] OK: induceJust (vertex Nothing) == empty [algebraic-graphs] OK: induceJust (edge (Just x) Nothing) == vertex x [algebraic-graphs] OK: induceJust . gmap Just == id [algebraic-graphs] OK: induceJust . gmap (\x -> if p x then Just x else Nothing) == induce p [algebraic-graphs]  [algebraic-graphs] ============ Example.Todo (Holiday) ============ [algebraic-graphs] OK: A todo list is semantically Maybe [a] [algebraic-graphs] OK: The overlay operator (+) adds non-dependent items to the todo list [algebraic-graphs] OK: The connect operator (*) adds dependency between items [algebraic-graphs] OK: Contradictory constraints make the todo list impossible to schedule [algebraic-graphs] OK: Introduce item priority to schedule the todo list [algebraic-graphs] OK: Custom connect operators pull/repel arguments during scheduling [algebraic-graphs]  [algebraic-graphs] ============ Example.Todo (Commandline) ============ [algebraic-graphs] OK: The pull connect operator maintains command line semantics [algebraic-graphs] OK: Swapping flags are allowed by the commutative overlay opeartor [algebraic-graphs] OK: The usual connect operator breaks semantics [algebraic-graphs] OK: Transform command lines by adding optimisation flag [algebraic-graphs]  [algebraic-graphs] ============ Typed ============ [algebraic-graphs]  [algebraic-graphs] ============ Typed.fromAdjacencyMap ============ [algebraic-graphs] OK: toGraphKL (fromAdjacencyMap (1 * 2 + 3 * 1)) == array (0,2) [(0,[1]), (1,[]), (2,[0])] [algebraic-graphs] OK: toGraphKL (fromAdjacencyMap (1 * 2 + 2 * 1)) == array (0,1) [(0,[1]), (1,[0])] [algebraic-graphs] OK: map (fromVertexKL h) (vertices $ toGraphKL h) == vertexList g [algebraic-graphs] OK: map (\(x, y) -> (fromVertexKL h x, fromVertexKL h y)) (edges $ toGraphKL h) == edgeList g [algebraic-graphs]  [algebraic-graphs] ============ Typed.fromAdjacencyIntMap ============ [algebraic-graphs] OK: toGraphKL (fromAdjacencyIntMap (1 * 2 + 3 * 1)) == array (0,2) [(0,[1]), (1,[]), (2,[0])] [algebraic-graphs] OK: toGraphKL (fromAdjacencyIntMap (1 * 2 + 2 * 1)) == array (0,1) [(0,[1]), (1,[0])] [algebraic-graphs] OK: map (fromVertexKL h) (vertices $ toGraphKL h) == IntSet.toAscList (vertexIntSet g) [algebraic-graphs] OK: map (\(x, y) -> (fromVertexKL h x, fromVertexKL h y)) (edges $ toGraphKL h) == edgeList g [algebraic-graphs]  [algebraic-graphs] ============ Typed.dfsForest ============ [algebraic-graphs] OK: forest (dfsForest % edge 1 1) == vertex 1 [algebraic-graphs] OK: forest (dfsForest % edge 1 2) == edge 1 2 [algebraic-graphs] OK: forest (dfsForest % edge 2 1) == vertices [1, 2] [algebraic-graphs] OK: isSubgraphOf (forest $ dfsForest % x) x == True [algebraic-graphs] OK: dfsForest % forest (dfsForest % x) == dfsForest % x [algebraic-graphs] OK: dfsForest % vertices vs == map (\v -> Node v []) (nub $ sort vs) [algebraic-graphs] OK: dfsForest % (3 * (1 + 4) * (1 + 5)) == [algebraic-graphs]  [algebraic-graphs] ============ Typed.dfsForestFrom ============ [algebraic-graphs] OK: forest $ (dfsForestFrom % edge 1 1) [1] == vertex 1 [algebraic-graphs] OK: forest $ (dfsForestFrom % edge 1 2) [0] == empty [algebraic-graphs] OK: forest $ (dfsForestFrom % edge 1 2) [1] == edge 1 2 [algebraic-graphs] OK: forest $ (dfsForestFrom % edge 1 2) [2] == vertex 2 [algebraic-graphs] OK: forest $ (dfsForestFrom % edge 1 2) [2,1] == vertices [1,2] [algebraic-graphs] OK: isSubgraphOf (forest $ dfsForestFrom % x $ vs) x == True [algebraic-graphs] OK: dfsForestFrom % x $ vertexList x == dfsForest % x [algebraic-graphs] OK: dfsForestFrom % vertices vs $ vs == map (\v -> Node v []) (nub vs) [algebraic-graphs] OK: dfsForestFrom % x $ [] == [] [algebraic-graphs] OK: dfsForestFrom % (3 * (1 + 4) * (1 + 5)) $ [1,4] == [algebraic-graphs]  [algebraic-graphs] ============ Typed.dfs ============ [algebraic-graphs] OK: dfs % edge 1 1 $ [1] == [1] [algebraic-graphs] OK: dfs % edge 1 2 $ [0] == [] [algebraic-graphs] OK: dfs % edge 1 2 $ [1] == [1,2] [algebraic-graphs] OK: dfs % edge 1 2 $ [2] == [2] [algebraic-graphs] OK: dfs % edge 1 2 $ [1,2] == [1,2] [algebraic-graphs] OK: dfs % edge 1 2 $ [2,1] == [2,1] [algebraic-graphs] OK: dfs % x $ [] == [] [algebraic-graphs]  [algebraic-graphs] OK: dfs % (3 * (1 + 4) * (1 + 5)) $ [1,4] == [1,5,4] [algebraic-graphs] OK: and [ hasVertex v x | v <- dfs % x $ vs ] == True [algebraic-graphs]  [algebraic-graphs] ============ Typed.topSort ============ [algebraic-graphs] OK: topSort % (1 * 2 + 3 * 1) == [3,1,2] [algebraic-graphs] OK: topSort % (1 * 2 + 2 * 1) == [1,2] [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected ============ [algebraic-graphs] OK: Axioms of undirected graphs [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.Show ============ [algebraic-graphs] OK: show (empty ) == "empty" [algebraic-graphs] OK: show (1 ) == "vertex 1" [algebraic-graphs] OK: show (1 + 2 ) == "vertices [1,2]" [algebraic-graphs] OK: show (1 * 2 ) == "edge 1 2" [algebraic-graphs] OK: show (1 * 2 * 3) == "edges [(1,2),(1,3),(2,3)]" [algebraic-graphs] OK: show (1 * 2 + 3) == "overlay (vertex 3) (edge 1 2)" [algebraic-graphs]  [algebraic-graphs] OK: show (vertex (-1) ) == "vertex (-1)" [algebraic-graphs] OK: show (vertex (-1) + vertex (-2) ) == "vertices [-2,-1]" [algebraic-graphs] OK: show (vertex (-2) * vertex (-1) ) == "edge (-2) (-1)" [algebraic-graphs] OK: show (vertex (-3) * vertex (-2) * vertex (-1)) == "edges [(-3,-2),(-3,-1),(-2,-1)]" [algebraic-graphs] OK: show (vertex (-3) * vertex (-2) + vertex (-1)) == "overlay (vertex (-1)) (edge (-3) (-2))" [algebraic-graphs]  [algebraic-graphs] OK: show (2 * 1 ) == "edge 1 2" [algebraic-graphs] OK: show (1 * 2 * 1) == "edges [(1,1),(1,2)]" [algebraic-graphs] OK: show (3 * 2 * 1) == "edges [(1,2),(1,3),(2,3)]" [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.toUndirected ============ [algebraic-graphs] OK: toUndirected (edge 1 2) == edge 1 2 [algebraic-graphs] OK: toUndirected . fromUndirected == id [algebraic-graphs] OK: vertexCount . toUndirected == vertexCount [algebraic-graphs] OK: (*2) . edgeCount . toUndirected >= edgeCount [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.fromUndirected ============ [algebraic-graphs] OK: fromUndirected (edge 1 2) == edges [(1,2),(2,1)] [algebraic-graphs] OK: toUndirected . fromUndirected == id [algebraic-graphs] OK: vertexCount . fromUndirected == vertexCount [algebraic-graphs] OK: edgeCount . fromUndirected <= (*2) . edgeCount [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.complement ================ [algebraic-graphs] OK: complement empty == empty [algebraic-graphs] OK: complement (vertex x) == vertex x [algebraic-graphs] OK: complement (edge 1 1) == edge 1 1 [algebraic-graphs] OK: complement (edge 1 2) == vertices [1, 2] [algebraic-graphs] OK: complement (star 1 [2, 3]) == overlay (vertex 1) (edge 2 3) [algebraic-graphs] OK: complement . complement == id [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.Ord ============ [algebraic-graphs] OK: vertex 1 < vertex 2 [algebraic-graphs] OK: vertex 3 < edge 1 2 [algebraic-graphs] OK: vertex 1 < edge 1 1 [algebraic-graphs] OK: edge 1 1 < edge 1 2 [algebraic-graphs] OK: edge 1 2 < edge 1 1 + edge 2 2 [algebraic-graphs] OK: edge 2 1 < edge 1 3 [algebraic-graphs] OK: edge 1 2 == edge 2 1 [algebraic-graphs] OK: x <= x + y [algebraic-graphs] OK: x + y <= x * y [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.empty ============ [algebraic-graphs] OK: isEmpty empty == True [algebraic-graphs] OK: hasVertex x empty == False [algebraic-graphs] OK: vertexCount empty == 0 [algebraic-graphs] OK: edgeCount empty == 0 [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.vertex ============ [algebraic-graphs] OK: isEmpty (vertex x) == False [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y) [algebraic-graphs] OK: vertexCount (vertex x) == 1 [algebraic-graphs] OK: edgeCount (vertex x) == 0 [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.edge ============ [algebraic-graphs] OK: edge x y == connect (vertex x) (vertex y) [algebraic-graphs] OK: edge x y == edge y x [algebraic-graphs] OK: edge x y == edges [(x,y), (y,x)] [algebraic-graphs] OK: hasEdge x y (edge x y) == True [algebraic-graphs] OK: edgeCount (edge x y) == 1 [algebraic-graphs] OK: vertexCount (edge 1 1) == 1 [algebraic-graphs] OK: vertexCount (edge 1 2) == 2 [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.overlay ============ [algebraic-graphs] OK: isEmpty (overlay x y) == isEmpty x && isEmpty y [algebraic-graphs] OK: hasVertex z (overlay x y) == hasVertex z x || hasVertex z y [algebraic-graphs] OK: vertexCount (overlay x y) >= vertexCount x [algebraic-graphs] OK: vertexCount (overlay x y) <= vertexCount x + vertexCount y [algebraic-graphs] OK: edgeCount (overlay x y) >= edgeCount x [algebraic-graphs] OK: edgeCount (overlay x y) <= edgeCount x + edgeCount y [algebraic-graphs] OK: vertexCount (overlay 1 2) == 2 [algebraic-graphs] OK: edgeCount (overlay 1 2) == 0 [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.connect ============ [algebraic-graphs] OK: connect x y == connect y x [algebraic-graphs] OK: isEmpty (connect x y) == isEmpty x && isEmpty y [algebraic-graphs] OK: hasVertex z (connect x y) == hasVertex z x || hasVertex z y [algebraic-graphs] OK: vertexCount (connect x y) >= vertexCount x [algebraic-graphs] OK: vertexCount (connect x y) <= vertexCount x + vertexCount y [algebraic-graphs] OK: edgeCount (connect x y) >= edgeCount x [algebraic-graphs] OK: edgeCount (connect x y) >= edgeCount y [algebraic-graphs] OK: edgeCount (connect x y) >= vertexCount x * vertexCount y `div` 2 [algebraic-graphs] OK: edgeCount (connect x y) <= vertexCount x * vertexCount y + edgeCount x + edgeCount y [algebraic-graphs] OK: vertexCount (connect 1 2) == 2 [algebraic-graphs] OK: edgeCount (connect 1 2) == 1 [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.vertices ============ [algebraic-graphs] OK: vertices [] == empty [algebraic-graphs] OK: vertices [x] == vertex x [algebraic-graphs] OK: vertices == overlays . map vertex [algebraic-graphs] OK: hasVertex x . vertices == elem x [algebraic-graphs] OK: vertexCount . vertices == length . nub [algebraic-graphs] OK: vertexSet . vertices == Set.fromList [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.edges ============ [algebraic-graphs] OK: edges [] == empty [algebraic-graphs] OK: edges [(x,y)] == edge x y [algebraic-graphs] OK: edges [(x,y), (y,x)] == edge x y [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.overlays ============ [algebraic-graphs] OK: overlays [] == empty [algebraic-graphs] OK: overlays [x] == x [algebraic-graphs] OK: overlays [x,y] == overlay x y [algebraic-graphs] OK: overlays == foldr overlay empty [algebraic-graphs] OK: isEmpty . overlays == all isEmpty [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.connects ============ [algebraic-graphs] OK: connects [] == empty [algebraic-graphs] OK: connects [x] == x [algebraic-graphs] OK: connects [x,y] == connect x y [algebraic-graphs] OK: connects == foldr connect empty [algebraic-graphs] OK: isEmpty . connects == all isEmpty [algebraic-graphs] OK: connects == connects . reverse [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.isSubgraphOf ============ [algebraic-graphs] OK: isSubgraphOf empty x == True [algebraic-graphs] OK: isSubgraphOf (vertex x) empty == False [algebraic-graphs] OK: isSubgraphOf x (overlay x y) == True [algebraic-graphs] OK: isSubgraphOf (overlay x y) (connect x y) == True [algebraic-graphs] OK: isSubgraphOf (path xs) (circuit xs) == True [algebraic-graphs] OK: isSubgraphOf x y ==> x <= y [algebraic-graphs] OK: isSubgraphOf (edge x y) (edge y x) == True [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.path ============ [algebraic-graphs] OK: path [] == empty [algebraic-graphs] OK: path [x] == vertex x [algebraic-graphs] OK: path [x,y] == edge x y [algebraic-graphs] OK: path == path . reverse [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.circuit ============ [algebraic-graphs] OK: circuit [] == empty [algebraic-graphs] OK: circuit [x] == edge x x [algebraic-graphs] OK: circuit [x,y] == edges [(x,y), (y,x)] [algebraic-graphs] OK: circuit == circuit . reverse [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.clique ============ [algebraic-graphs] OK: clique [] == empty [algebraic-graphs] OK: clique [x] == vertex x [algebraic-graphs] OK: clique [x,y] == edge x y [algebraic-graphs] OK: clique [x,y,z] == edges [(x,y), (x,z), (y,z)] [algebraic-graphs] OK: clique (xs ++ ys) == connect (clique xs) (clique ys) [algebraic-graphs] OK: clique == clique . reverse [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.biclique ============ [algebraic-graphs] OK: biclique [] [] == empty [algebraic-graphs] OK: biclique [x] [] == vertex x [algebraic-graphs] OK: biclique [] [y] == vertex y [algebraic-graphs] OK: biclique [x1,x2] [y1,y2] == edges [(x1,y1), (x1,y2), (x2,y1), (x2,y2)] [algebraic-graphs] OK: biclique xs ys == connect (vertices xs) (vertices ys) [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.star ============ [algebraic-graphs] OK: star x [] == vertex x [algebraic-graphs] OK: star x [y] == edge x y [algebraic-graphs] OK: star x [y,z] == edges [(x,y), (x,z)] [algebraic-graphs] OK: star x ys == connect (vertex x) (vertices ys) [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.stars ============ [algebraic-graphs] OK: stars [] == empty [algebraic-graphs] OK: stars [(x, [])] == vertex x [algebraic-graphs] OK: stars [(x, [y])] == edge x y [algebraic-graphs] OK: stars [(x, ys)] == star x ys [algebraic-graphs] OK: stars == overlays . map (uncurry star) [algebraic-graphs] OK: stars . adjacencyList == id [algebraic-graphs] OK: overlay (stars xs) (stars ys) == stars (xs ++ ys) [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.tree ============ [algebraic-graphs] OK: tree (Node x []) == vertex x [algebraic-graphs] OK: tree (Node x [Node y [Node z []]]) == path [x,y,z] [algebraic-graphs] OK: tree (Node x [Node y [], Node z []]) == star x [y,z] [algebraic-graphs] OK: tree (Node 1 [Node 2 [], Node 3 [Node 4 [], Node 5 []]]) == edges [(1,2), (1,3), (3,4), (3,5)] [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.forest ============ [algebraic-graphs] OK: forest [] == empty [algebraic-graphs] OK: forest [x] == tree x [algebraic-graphs] OK: forest [Node 1 [Node 2 [], Node 3 []], Node 4 [Node 5 []]] == edges [(1,2), (1,3), (4,5)] [algebraic-graphs] OK: forest == overlays . map tree [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.removeVertex ============ [algebraic-graphs] OK: removeVertex x (vertex x) == empty [algebraic-graphs] OK: removeVertex 1 (vertex 2) == vertex 2 [algebraic-graphs] OK: removeVertex x (edge x x) == empty [algebraic-graphs] OK: removeVertex 1 (edge 1 2) == vertex 2 [algebraic-graphs] OK: removeVertex x . removeVertex x == removeVertex x [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.removeEdge ============ [algebraic-graphs] OK: removeEdge x y (edge x y) == vertices [x,y] [algebraic-graphs] OK: removeEdge x y . removeEdge x y == removeEdge x y [algebraic-graphs] OK: removeEdge x y . removeVertex x == removeVertex x [algebraic-graphs] OK: removeEdge 1 1 (1 * 1 * 2 * 2) == 1 * 2 * 2 [algebraic-graphs] OK: removeEdge 1 2 (1 * 1 * 2 * 2) == 1 * 1 + 2 * 2 [algebraic-graphs] OK: removeEdge x y == removeEdge y x [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.replaceVertex ============ [algebraic-graphs] OK: replaceVertex x x == id [algebraic-graphs] OK: replaceVertex x y (vertex x) == vertex y [algebraic-graphs] OK: replaceVertex x y == mergeVertices (== x) y [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.mergeVertices ============ [algebraic-graphs] OK: mergeVertices (const False) x == id [algebraic-graphs] OK: mergeVertices (== x) y == replaceVertex x y [algebraic-graphs] OK: mergeVertices even 1 (0 * 2) == 1 * 1 [algebraic-graphs] OK: mergeVertices odd 1 (3 + 4 * 5) == 4 * 1 [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.gmap ============ [algebraic-graphs] OK: gmap f empty == empty [algebraic-graphs] OK: gmap f (vertex x) == vertex (f x) [algebraic-graphs] OK: gmap f (edge x y) == edge (f x) (f y) [algebraic-graphs] OK: gmap id == id [algebraic-graphs] OK: gmap f . gmap g == gmap (f . g) [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.induce ============ [algebraic-graphs] OK: induce (const True ) x == x [algebraic-graphs] OK: induce (const False) x == empty [algebraic-graphs] OK: induce (/= x) == removeVertex x [algebraic-graphs] OK: induce p . induce q == induce (\x -> p x && q x) [algebraic-graphs] OK: isSubgraphOf (induce p x) x == True [algebraic-graphs]  [algebraic-graphs] ============ Graph.Undirected.induceJust ============ [algebraic-graphs] OK: induceJust (vertex Nothing) == empty [algebraic-graphs] OK: induceJust (edge (Just x) Nothing) == vertex x [algebraic-graphs] OK: induceJust . gmap Just == id [algebraic-graphs] OK: induceJust . gmap (\x -> if p x then Just x else Nothing) == induce p [algebraic-graphs] Test suite main: PASS [algebraic-graphs] Test suite logged to: dist/test/algebraic-graphs-0.7-main.log [algebraic-graphs] 1 of 1 test suites (1 of 1 test cases) passed. [algebraic-graphs] checkPhase completed in 1 minutes 38 seconds [algebraic-graphs] Phase: haddockPhase [algebraic-graphs] Preprocessing library for algebraic-graphs-0.7... [algebraic-graphs] Running Haddock on library for algebraic-graphs-0.7... [algebraic-graphs] [ 1 of 29] Compiling Algebra.Graph.AdjacencyMap ( src/Algebra/Graph/AdjacencyMap.hs, nothing ) [HIE file is missing] [algebraic-graphs] [ 2 of 29] Compiling Algebra.Graph.AdjacencyIntMap ( src/Algebra/Graph/AdjacencyIntMap.hs, nothing ) [HIE file is missing] [algebraic-graphs] [ 3 of 29] Compiling Algebra.Graph.AdjacencyIntMap.Algorithm ( src/Algebra/Graph/AdjacencyIntMap/Algorithm.hs, nothing ) [HIE file is missing] [algebraic-graphs] [ 4 of 29] Compiling Algebra.Graph.Internal ( src/Algebra/Graph/Internal.hs, nothing ) [HIE file is missing] [algebraic-graphs] [ 5 of 29] Compiling Algebra.Graph ( src/Algebra/Graph.hs, nothing ) [HIE file is missing] [algebraic-graphs] [ 6 of 29] Compiling Algebra.Graph.HigherKinded.Class ( src/Algebra/Graph/HigherKinded/Class.hs, nothing ) [HIE file is missing] [algebraic-graphs] [ 7 of 29] Compiling Algebra.Graph.Bipartite.AdjacencyMap ( src/Algebra/Graph/Bipartite/AdjacencyMap.hs, nothing ) [HIE file is missing] [algebraic-graphs] [ 8 of 29] Compiling Algebra.Graph.Bipartite.AdjacencyMap.Algorithm ( src/Algebra/Graph/Bipartite/AdjacencyMap/Algorithm.hs, nothing ) [HIE file is missing] [algebraic-graphs] [ 9 of 29] Compiling Algebra.Graph.Label ( src/Algebra/Graph/Label.hs, nothing ) [HIE file is missing] [algebraic-graphs] [10 of 29] Compiling Algebra.Graph.NonEmpty.AdjacencyMap ( src/Algebra/Graph/NonEmpty/AdjacencyMap.hs, nothing ) [HIE file is missing] [algebraic-graphs] [11 of 29] Compiling Algebra.Graph.AdjacencyMap.Algorithm ( src/Algebra/Graph/AdjacencyMap/Algorithm.hs, nothing ) [HIE file is missing] [algebraic-graphs] src/Algebra/Graph/AdjacencyMap/Algorithm.hs:384:43: warning: []8;;https://errors.haskell.org/messages/GHC-63394\GHC-63394]8;;\] [-Wx-partial] [algebraic-graphs]  In the use of ‘head’ [algebraic-graphs]  (imported from Prelude, but defined in GHC.Internal.List): [algebraic-graphs]  "This is a partial function, it throws an error on empty lists. Use pattern matching, 'Data.List.uncons' or 'Data.Maybe.listToMaybe' instead. Consider refactoring to use "Data.List.NonEmpty"." [algebraic-graphs]  | [algebraic-graphs] 384 | exit v = do newComponent <- (v==).snd.head <$> gets boundaryStack [algebraic-graphs]  | ^^^^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/AdjacencyMap/Algorithm.hs:391:21: warning: []8;;https://errors.haskell.org/messages/GHC-63394\GHC-63394]8;;\] [-Wx-partial] [algebraic-graphs]  In the use of ‘tail’ [algebraic-graphs]  (imported from Prelude, but defined in GHC.Internal.List): [algebraic-graphs]  "This is a partial function, it throws an error on empty lists. Replace it with 'drop' 1, or use pattern matching or 'GHC.Internal.Data.List.uncons' instead. Consider refactoring to use "Data.List.NonEmpty"." [algebraic-graphs]  | [algebraic-graphs] 391 | pth' = tail v_pth' -- Here we know that v_pth' starts with v [algebraic-graphs]  | ^^^^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/AdjacencyMap/Algorithm.hs:395:26: warning: []8;;https://errors.haskell.org/messages/GHC-63394\GHC-63394]8;;\] [-Wx-partial] [algebraic-graphs]  In the use of ‘head’ [algebraic-graphs]  (imported from Prelude, but defined in GHC.Internal.List): [algebraic-graphs]  "This is a partial function, it throws an error on empty lists. Use pattern matching, 'Data.List.uncons' or 'Data.Maybe.listToMaybe' instead. Consider refactoring to use "Data.List.NonEmpty"." [algebraic-graphs]  | [algebraic-graphs] 395 | p_v = fst $ head bnd [algebraic-graphs]  | ^^^^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/AdjacencyMap/Algorithm.hs:397:21: warning: []8;;https://errors.haskell.org/messages/GHC-63394\GHC-63394]8;;\] [-Wx-partial] [algebraic-graphs]  In the use of ‘tail’ [algebraic-graphs]  (imported from Prelude, but defined in GHC.Internal.List): [algebraic-graphs]  "This is a partial function, it throws an error on empty lists. Replace it with 'drop' 1, or use pattern matching or 'GHC.Internal.Data.List.uncons' instead. Consider refactoring to use "Data.List.NonEmpty"." [algebraic-graphs]  | [algebraic-graphs] 397 | bnd' = tail bnd [algebraic-graphs]  | ^^^^ [algebraic-graphs]  [algebraic-graphs] [12 of 29] Compiling Algebra.Graph.Acyclic.AdjacencyMap ( src/Algebra/Graph/Acyclic/AdjacencyMap.hs, nothing ) [HIE file is missing] [algebraic-graphs] [13 of 29] Compiling Algebra.Graph.ToGraph ( src/Algebra/Graph/ToGraph.hs, nothing ) [HIE file is missing] [algebraic-graphs] src/Algebra/Graph/ToGraph.hs:171:32: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 171 | vertexIntSet :: ToVertex t ~ Int => t -> IntSet [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/ToGraph.hs:197:29: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 197 | preIntSet :: ToVertex t ~ Int => Int -> t -> IntSet [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/ToGraph.hs:215:30: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 215 | postIntSet :: ToVertex t ~ Int => Int -> t -> IntSet [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/ToGraph.hs:303:37: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 303 | toAdjacencyIntMap :: ToVertex t ~ Int => t -> AIM.AdjacencyIntMap [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/ToGraph.hs:312:46: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 312 | toAdjacencyIntMapTranspose :: ToVertex t ~ Int => t -> AIM.AdjacencyIntMap [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/ToGraph.hs:452:43: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 452 | adjacencyIntMap :: (ToGraph t, ToVertex t ~ Int) => t -> IntMap IntSet [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/ToGraph.hs:471:52: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 471 | adjacencyIntMapTranspose :: (ToGraph t, ToVertex t ~ Int) => t -> IntMap IntSet [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] [14 of 29] Compiling Algebra.Graph.Relation ( src/Algebra/Graph/Relation.hs, nothing ) [HIE file is missing] [algebraic-graphs] [15 of 29] Compiling Algebra.Graph.Relation.Symmetric ( src/Algebra/Graph/Relation/Symmetric.hs, nothing ) [HIE file is missing] [algebraic-graphs] [16 of 29] Compiling Algebra.Graph.NonEmpty ( src/Algebra/Graph/NonEmpty.hs, nothing ) [HIE file is missing] [algebraic-graphs] [17 of 29] Compiling Algebra.Graph.Labelled.AdjacencyMap ( src/Algebra/Graph/Labelled/AdjacencyMap.hs, nothing ) [HIE file is missing] [algebraic-graphs] [18 of 29] Compiling Algebra.Graph.Labelled ( src/Algebra/Graph/Labelled.hs, nothing ) [HIE file is missing] [algebraic-graphs] [19 of 29] Compiling Algebra.Graph.Labelled.Example.Network ( src/Algebra/Graph/Labelled/Example/Network.hs, nothing ) [HIE file is missing] [algebraic-graphs] [20 of 29] Compiling Algebra.Graph.Labelled.Example.Automaton ( src/Algebra/Graph/Labelled/Example/Automaton.hs, nothing ) [HIE file is missing] [algebraic-graphs] [21 of 29] Compiling Algebra.Graph.Export ( src/Algebra/Graph/Export.hs, nothing ) [HIE file is missing] [algebraic-graphs] src/Algebra/Graph/Export.hs:185:41: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 185 | export :: (Ord a, ToGraph g, ToVertex g ~ a) => (a -> Doc s) -> (a -> a -> Doc s) -> g -> Doc s [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] [22 of 29] Compiling Algebra.Graph.Export.Dot ( src/Algebra/Graph/Export/Dot.hs, nothing ) [HIE file is missing] [algebraic-graphs] src/Algebra/Graph/Export/Dot.hs:121:63: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 121 | export :: (IsString s, Monoid s, Ord a, ToGraph g, ToVertex g ~ a) => Style a s -> g -> s [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] src/Algebra/Graph/Export/Dot.hs:165:78: warning: []8;;https://errors.haskell.org/messages/GHC-58520\GHC-58520]8;;\] [-Wtype-equality-requires-operators] [algebraic-graphs]  The use of ‘~’ without TypeOperators [algebraic-graphs]  will become an error in a future GHC release. [algebraic-graphs]  Suggested fix: [algebraic-graphs]  Perhaps you intended to use the ‘TypeOperators’ extension [algebraic-graphs]  | [algebraic-graphs] 165 | exportAsIs :: (IsString s, Monoid s, Ord (ToVertex g), ToGraph g, ToVertex g ~ s) => g -> s [algebraic-graphs]  | ^ [algebraic-graphs]  [algebraic-graphs] [23 of 29] Compiling Algebra.Graph.Undirected ( src/Algebra/Graph/Undirected.hs, nothing ) [HIE file is missing] [algebraic-graphs] [24 of 29] Compiling Algebra.Graph.Class ( src/Algebra/Graph/Class.hs, nothing ) [HIE file is missing] [algebraic-graphs] [25 of 29] Compiling Algebra.Graph.Relation.Transitive ( src/Algebra/Graph/Relation/Transitive.hs, nothing ) [HIE file is missing] [algebraic-graphs] [26 of 29] Compiling Algebra.Graph.Relation.Reflexive ( src/Algebra/Graph/Relation/Reflexive.hs, nothing ) [HIE file is missing] [algebraic-graphs] [27 of 29] Compiling Algebra.Graph.Relation.Preorder ( src/Algebra/Graph/Relation/Preorder.hs, nothing ) [HIE file is missing] [algebraic-graphs] [28 of 29] Compiling Algebra.Graph.Example.Todo ( src/Algebra/Graph/Example/Todo.hs, nothing ) [HIE file is missing] [algebraic-graphs] [29 of 29] Compiling Data.Graph.Typed ( src/Data/Graph/Typed.hs, nothing ) [HIE file is missing] [algebraic-graphs] Haddock coverage: [algebraic-graphs] Warning: 'empty' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/AdjacencyMap.hs:227:1 [algebraic-graphs]  * in ‘Data.Set.Internal’ [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/AdjacencyMap.hs:227:1 [algebraic-graphs]  100% ( 58 / 58) in 'Algebra.Graph.AdjacencyMap' [algebraic-graphs] Warning: 'empty' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/AdjacencyIntMap.hs:237:1 [algebraic-graphs]  * in ‘Data.Set.Internal’ [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/AdjacencyIntMap.hs:237:1 [algebraic-graphs]  100% ( 56 / 56) in 'Algebra.Graph.AdjacencyIntMap' [algebraic-graphs] Warning: 'nub' is out of scope. [algebraic-graphs]  If you qualify the identifier, haddock can try to link it anyway. [algebraic-graphs] Warning: 'sort' is out of scope. [algebraic-graphs]  If you qualify the identifier, haddock can try to link it anyway. [algebraic-graphs]  93% ( 14 / 15) in 'Algebra.Graph.AdjacencyIntMap.Algorithm' [algebraic-graphs]  Missing documentation for: [algebraic-graphs]  Cycle (src/Algebra/Graph/AdjacencyIntMap/Algorithm.hs:227) [algebraic-graphs] Warning: 'List' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Internal.hs:50:18 [algebraic-graphs]  * at src/Algebra/Graph/Internal.hs:50:1 [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/Internal.hs:50:1 [algebraic-graphs] Warning: 'IsList' is out of scope. [algebraic-graphs]  If you qualify the identifier, haddock can try to link it anyway. [algebraic-graphs]  100% ( 19 / 19) in 'Algebra.Graph.Internal' [algebraic-graphs] Warning: 'Context' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph.hs:1400:18 [algebraic-graphs]  * at src/Algebra/Graph.hs:1400:1 [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph.hs:1400:1 [algebraic-graphs] Warning: 'empty' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph.hs:316:1 [algebraic-graphs]  * in ‘Data.Set.Internal’ [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph.hs:316:1 [algebraic-graphs]  100% ( 61 / 61) in 'Algebra.Graph' [algebraic-graphs] Warning: 'isEmpty' is out of scope. [algebraic-graphs]  If you qualify the identifier, haddock can try to link it anyway. [algebraic-graphs] Warning: 'vertexCount' is out of scope. [algebraic-graphs]  If you qualify the identifier, haddock can try to link it anyway. [algebraic-graphs] Warning: 'edgeCount' is out of scope. [algebraic-graphs]  If you qualify the identifier, haddock can try to link it anyway. [algebraic-graphs] Warning: 'edgeList' is out of scope. [algebraic-graphs]  If you qualify the identifier, haddock can try to link it anyway. [algebraic-graphs] Warning: 'box' is out of scope. [algebraic-graphs]  If you qualify the identifier, haddock can try to link it anyway. [algebraic-graphs] Warning: 'adjacencyList' is out of scope. [algebraic-graphs]  If you qualify the identifier, haddock can try to link it anyway. [algebraic-graphs] Warning: 'hasVertex' is out of scope. [algebraic-graphs]  If you qualify the identifier, haddock can try to link it anyway. [algebraic-graphs] Warning: 'vertexSet' is out of scope. [algebraic-graphs]  If you qualify the identifier, haddock can try to link it anyway. [algebraic-graphs] Warning: 'mplus' is out of scope. [algebraic-graphs]  If you qualify the identifier, haddock can try to link it anyway. [algebraic-graphs]  100% ( 42 / 42) in 'Algebra.Graph.HigherKinded.Class' [algebraic-graphs] Warning: 'swap' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Bipartite/AdjacencyMap.hs:418:1 [algebraic-graphs]  * in ‘GHC.Internal.Data.Tuple’ [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/Bipartite/AdjacencyMap.hs:418:1 [algebraic-graphs] Warning: 'nub' is out of scope. [algebraic-graphs]  If you qualify the identifier, haddock can try to link it anyway. [algebraic-graphs] Warning: 'empty' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Bipartite/AdjacencyMap.hs:250:1 [algebraic-graphs]  * in ‘Data.Set.Internal’ [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/Bipartite/AdjacencyMap.hs:250:1 [algebraic-graphs]  100% ( 63 / 63) in 'Algebra.Graph.Bipartite.AdjacencyMap' [algebraic-graphs] Warning: 'empty' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Bipartite/AdjacencyMap.hs:250:1 [algebraic-graphs]  * in ‘Data.Set.Internal’ [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/Bipartite/AdjacencyMap.hs:250:1 [algebraic-graphs] Warning: 'isRight' is out of scope. [algebraic-graphs]  If you qualify the identifier, haddock can try to link it anyway. [algebraic-graphs] Warning: 'Matching' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Bipartite/AdjacencyMap/Algorithm.hs:169:21 [algebraic-graphs]  * at src/Algebra/Graph/Bipartite/AdjacencyMap/Algorithm.hs:169:1 [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/Bipartite/AdjacencyMap/Algorithm.hs:169:1 [algebraic-graphs]  100% ( 25 / 25) in 'Algebra.Graph.Bipartite.AdjacencyMap.Algorithm' [algebraic-graphs] Warning: 'Optimum' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Label.hs:442:20 [algebraic-graphs]  * at src/Algebra/Graph/Label.hs:442:1 [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/Label.hs:442:1 [algebraic-graphs] Warning: 'Minimum' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Label.hs:314:21 [algebraic-graphs]  * at src/Algebra/Graph/Label.hs:314:1 [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/Label.hs:314:1 [algebraic-graphs] Warning: 'Distance' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Label.hs:241:22 [algebraic-graphs]  * at src/Algebra/Graph/Label.hs:241:1 [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/Label.hs:241:1 [algebraic-graphs] Warning: 'Capacity' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Label.hs:176:22 [algebraic-graphs]  * at src/Algebra/Graph/Label.hs:176:1 [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/Label.hs:176:1 [algebraic-graphs] Warning: 'Count' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Label.hs:209:19 [algebraic-graphs]  * at src/Algebra/Graph/Label.hs:209:1 [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/Label.hs:209:1 [algebraic-graphs]  100% ( 37 / 37) in 'Algebra.Graph.Label' [algebraic-graphs] Warning: 'empty' is out of scope. [algebraic-graphs]  If you qualify the identifier, haddock can try to link it anyway. [algebraic-graphs] Warning: 'edges' is out of scope. [algebraic-graphs]  If you qualify the identifier, haddock can try to link it anyway. [algebraic-graphs] Warning: 'stars' is out of scope. [algebraic-graphs]  If you qualify the identifier, haddock can try to link it anyway. [algebraic-graphs] Warning: 'AdjacencyMap' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/AdjacencyMap.hs:157:1 [algebraic-graphs]  * at src/Algebra/Graph/NonEmpty/AdjacencyMap.hs:152:1 [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/NonEmpty/AdjacencyMap.hs:152:1 [algebraic-graphs] Warning: 'isEmpty' is out of scope. [algebraic-graphs]  If you qualify the identifier, haddock can try to link it anyway. [algebraic-graphs] Warning: 'adjacencyList' is out of scope. [algebraic-graphs]  If you qualify the identifier, haddock can try to link it anyway. [algebraic-graphs] Warning: 'vertexList' is out of scope. [algebraic-graphs]  If you qualify the identifier, haddock can try to link it anyway. [algebraic-graphs]  100% ( 51 / 51) in 'Algebra.Graph.NonEmpty.AdjacencyMap' [algebraic-graphs] Warning: 'vertex' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/AdjacencyMap.hs:239:1 [algebraic-graphs]  * at src/Algebra/Graph/NonEmpty/AdjacencyMap.hs:224:1 [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/NonEmpty/AdjacencyMap.hs:224:1 [algebraic-graphs] Warning: 'edge' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/AdjacencyMap.hs:252:1 [algebraic-graphs]  * at src/Algebra/Graph/NonEmpty/AdjacencyMap.hs:237:1 [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/NonEmpty/AdjacencyMap.hs:237:1 [algebraic-graphs] Warning: 'nub' is out of scope. [algebraic-graphs]  If you qualify the identifier, haddock can try to link it anyway. [algebraic-graphs] Warning: 'sort' is out of scope. [algebraic-graphs]  If you qualify the identifier, haddock can try to link it anyway. [algebraic-graphs]  93% ( 15 / 16) in 'Algebra.Graph.AdjacencyMap.Algorithm' [algebraic-graphs]  Missing documentation for: [algebraic-graphs]  Cycle (src/Algebra/Graph/AdjacencyMap/Algorithm.hs:228) [algebraic-graphs] Warning: 'empty' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Acyclic/AdjacencyMap.hs:132:1 [algebraic-graphs]  * in ‘Data.Set.Internal’ [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/Acyclic/AdjacencyMap.hs:132:1 [algebraic-graphs] Warning: 'vertex' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Acyclic/AdjacencyMap.hs:143:1 [algebraic-graphs]  * at src/Algebra/Graph/AdjacencyMap.hs:239:1 [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/AdjacencyMap.hs:239:1 [algebraic-graphs] Warning: 'vertices' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Acyclic/AdjacencyMap.hs:157:1 [algebraic-graphs]  * at src/Algebra/Graph/AdjacencyMap.hs:309:1 [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/AdjacencyMap.hs:309:1 [algebraic-graphs] Warning: 'vertexCount' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Acyclic/AdjacencyMap.hs:246:1 [algebraic-graphs]  * at src/Algebra/Graph/AdjacencyMap.hs:417:1 [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/AdjacencyMap.hs:417:1 [algebraic-graphs] Warning: 'edgeCount' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Acyclic/AdjacencyMap.hs:258:1 [algebraic-graphs]  * at src/Algebra/Graph/AdjacencyMap.hs:429:1 [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/AdjacencyMap.hs:429:1 [algebraic-graphs]  100% ( 44 / 44) in 'Algebra.Graph.Acyclic.AdjacencyMap' [algebraic-graphs] Warning: 'foldg' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph.hs:482:1 [algebraic-graphs]  * at src/Algebra/Graph/ToGraph.hs:98:5 [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/ToGraph.hs:98:5 [algebraic-graphs]  100% ( 8 / 8) in 'Algebra.Graph.ToGraph' [algebraic-graphs] Warning: 'Relation' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Relation.hs:157:19 [algebraic-graphs]  * at src/Algebra/Graph/Relation.hs:157:1 [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/Relation.hs:157:1 [algebraic-graphs] Warning: 'empty' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Relation.hs:243:1 [algebraic-graphs]  * in ‘Data.Set.Internal’ [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/Relation.hs:243:1 [algebraic-graphs] Warning: 'AdjacencyMap' is out of scope. [algebraic-graphs]  If you qualify the identifier, haddock can try to link it anyway. [algebraic-graphs]  100% ( 56 / 56) in 'Algebra.Graph.Relation' [algebraic-graphs] Warning: 'empty' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Relation/Symmetric.hs:188:1 [algebraic-graphs]  * in ‘Data.Set.Internal’ [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/Relation/Symmetric.hs:188:1 [algebraic-graphs] Warning: 'vertexCount' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Relation.hs:423:1 [algebraic-graphs]  * at src/Algebra/Graph/Relation/Symmetric.hs:372:1 [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/Relation/Symmetric.hs:372:1 [algebraic-graphs] Warning: 'edgeCount' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Relation.hs:435:1 [algebraic-graphs]  * at src/Algebra/Graph/Relation/Symmetric.hs:384:1 [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/Relation/Symmetric.hs:384:1 [algebraic-graphs]  100% ( 48 / 48) in 'Algebra.Graph.Relation.Symmetric' [algebraic-graphs] Warning: 'vertexList' is out of scope. [algebraic-graphs]  If you qualify the identifier, haddock can try to link it anyway. [algebraic-graphs]  100% ( 53 / 53) in 'Algebra.Graph.NonEmpty' [algebraic-graphs] Warning: 'empty' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Labelled/AdjacencyMap.hs:160:1 [algebraic-graphs]  * in ‘Data.Set.Internal’ [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/Labelled/AdjacencyMap.hs:160:1 [algebraic-graphs] Warning: 'hasEdge' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/AdjacencyMap.hs:403:1 [algebraic-graphs]  * at src/Algebra/Graph/Labelled/AdjacencyMap.hs:379:1 [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/Labelled/AdjacencyMap.hs:379:1 [algebraic-graphs]  100% ( 49 / 49) in 'Algebra.Graph.Labelled.AdjacencyMap' [algebraic-graphs] Warning: 'Context' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Labelled.hs:675:20 [algebraic-graphs]  * at src/Algebra/Graph/Labelled.hs:675:1 [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/Labelled.hs:675:1 [algebraic-graphs] Warning: 'empty' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Labelled.hs:191:1 [algebraic-graphs]  * in ‘Data.Set.Internal’ [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/Labelled.hs:191:1 [algebraic-graphs] Warning: 'Focus' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Labelled.hs:642:18 [algebraic-graphs]  * at src/Algebra/Graph/Labelled.hs:642:1 [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/Labelled.hs:642:1 [algebraic-graphs]  100% ( 49 / 49) in 'Algebra.Graph.Labelled' [algebraic-graphs]  100% ( 6 / 6) in 'Algebra.Graph.Labelled.Example.Network' [algebraic-graphs]  100% ( 5 / 5) in 'Algebra.Graph.Labelled.Example.Automaton' [algebraic-graphs] Warning: 'Doc' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Export.hs:57:17 [algebraic-graphs]  * at src/Algebra/Graph/Export.hs:57:1 [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/Export.hs:57:1 [algebraic-graphs]  100% ( 14 / 14) in 'Algebra.Graph.Export' [algebraic-graphs] Warning: 'Style' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Export/Dot.hs:49:18 [algebraic-graphs]  * at src/Algebra/Graph/Export/Dot.hs:49:1 [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/Export/Dot.hs:49:1 [algebraic-graphs] Warning: 'Graph' is out of scope. [algebraic-graphs]  If you qualify the identifier, haddock can try to link it anyway. [algebraic-graphs]  100% ( 11 / 11) in 'Algebra.Graph.Export.Dot' [algebraic-graphs] Warning: 'empty' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Undirected.hs:253:1 [algebraic-graphs]  * in ‘Data.Set.Internal’ [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/Undirected.hs:253:1 [algebraic-graphs]  100% ( 50 / 50) in 'Algebra.Graph.Undirected' [algebraic-graphs]  100% ( 27 / 27) in 'Algebra.Graph.Class' [algebraic-graphs] Warning: 'TransitiveRelation' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Relation/Transitive.hs:39:32 [algebraic-graphs]  * at src/Algebra/Graph/Relation/Transitive.hs:39:1 [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/Relation/Transitive.hs:39:1 [algebraic-graphs] Warning: 'Transitive' is out of scope. [algebraic-graphs]  If you qualify the identifier, haddock can try to link it anyway. [algebraic-graphs]  100% ( 5 / 5) in 'Algebra.Graph.Relation.Transitive' [algebraic-graphs] Warning: 'ReflexiveRelation' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Relation/Reflexive.hs:34:31 [algebraic-graphs]  * at src/Algebra/Graph/Relation/Reflexive.hs:34:1 [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/Relation/Reflexive.hs:34:1 [algebraic-graphs] Warning: 'Reflexive' is out of scope. [algebraic-graphs]  If you qualify the identifier, haddock can try to link it anyway. [algebraic-graphs]  100% ( 5 / 5) in 'Algebra.Graph.Relation.Reflexive' [algebraic-graphs] Warning: 'PreorderRelation' is ambiguous. It is defined [algebraic-graphs]  * at src/Algebra/Graph/Relation/Preorder.hs:44:30 [algebraic-graphs]  * at src/Algebra/Graph/Relation/Preorder.hs:44:1 [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Algebra/Graph/Relation/Preorder.hs:44:1 [algebraic-graphs] Warning: 'Preorder' is out of scope. [algebraic-graphs]  If you qualify the identifier, haddock can try to link it anyway. [algebraic-graphs]  100% ( 5 / 5) in 'Algebra.Graph.Relation.Preorder' [algebraic-graphs]  0% ( 0 / 8) in 'Algebra.Graph.Example.Todo' [algebraic-graphs]  Missing documentation for: [algebraic-graphs]  Module header [algebraic-graphs]  Todo (src/Algebra/Graph/Example/Todo.hs:13) [algebraic-graphs]  todo (src/Algebra/Graph/Example/Todo.hs:42) [algebraic-graphs]  low (src/Algebra/Graph/Example/Todo.hs:23) [algebraic-graphs]  high (src/Algebra/Graph/Example/Todo.hs:27) [algebraic-graphs]  ~*~ (src/Algebra/Graph/Example/Todo.hs:35) [algebraic-graphs]  >*< (src/Algebra/Graph/Example/Todo.hs:39) [algebraic-graphs]  priority (src/Algebra/Graph/Example/Todo.hs:31) [algebraic-graphs] Warning: 'GraphKL' is ambiguous. It is defined [algebraic-graphs]  * at src/Data/Graph/Typed.hs:40:18 [algebraic-graphs]  * at src/Data/Graph/Typed.hs:40:1 [algebraic-graphs]  You may be able to disambiguate the identifier by qualifying it or [algebraic-graphs]  by specifying the type/value namespace explicitly. [algebraic-graphs]  Defaulting to the one defined at src/Data/Graph/Typed.hs:40:1 [algebraic-graphs] Warning: 'array' is out of scope. [algebraic-graphs]  If you qualify the identifier, haddock can try to link it anyway. [algebraic-graphs]  90% ( 10 / 11) in 'Data.Graph.Typed' [algebraic-graphs]  Missing documentation for: [algebraic-graphs]  scc (src/Data/Graph/Typed.hs:192) [algebraic-graphs] Warning: Algebra.Graph.AdjacencyMap: could not find link destinations for: [algebraic-graphs]  - Algebra.Graph.AdjacencyMap.Rep_AdjacencyMap [algebraic-graphs]  - Algebra.Graph.ToGraph.D:R:ToVertexAdjacencyMap0 [algebraic-graphs]  - Algebra.Graph.Class.D:R:VertexAdjacencyMap0 [algebraic-graphs] Warning: Algebra.Graph.AdjacencyIntMap: could not find link destinations for: [algebraic-graphs]  - Algebra.Graph.AdjacencyIntMap.Rep_AdjacencyIntMap [algebraic-graphs]  - Algebra.Graph.ToGraph.D:R:ToVertexAdjacencyIntMap [algebraic-graphs]  - Algebra.Graph.Class.D:R:VertexAdjacencyIntMap [algebraic-graphs] Warning: Algebra.Graph.Internal: could not find link destinations for: [algebraic-graphs]  - Algebra.Graph.Internal.D:R:ItemList [algebraic-graphs] Warning: Algebra.Graph: could not find link destinations for: [algebraic-graphs]  - Algebra.Graph.Rep_Graph [algebraic-graphs]  - Algebra.Graph.ToGraph.D:R:ToVertexGraph [algebraic-graphs]  - Algebra.Graph.Class.D:R:VertexGraph1 [algebraic-graphs] Warning: Algebra.Graph.Bipartite.AdjacencyMap: could not find link destinations for: [algebraic-graphs]  - Algebra.Graph.Bipartite.AdjacencyMap.Rep_AdjacencyMap [algebraic-graphs]  - Algebra.Graph.Bipartite.AdjacencyMap.Rep_List [algebraic-graphs]  - Algebra.Graph.Bipartite.AdjacencyMap.D:R:ItemList [algebraic-graphs] Warning: Algebra.Graph.Bipartite.AdjacencyMap.Algorithm: could not find link destinations for: [algebraic-graphs]  - Algebra.Graph.Bipartite.AdjacencyMap.Algorithm.Rep_Matching [algebraic-graphs] Warning: Algebra.Graph.Label: could not find link destinations for: [algebraic-graphs]  - Algebra.Graph.Label.D:R:ItemLabel [algebraic-graphs]  - Algebra.Graph.Label.D:R:ItemMinimum [algebraic-graphs] Warning: Algebra.Graph.NonEmpty.AdjacencyMap: could not find link destinations for: [algebraic-graphs]  - Algebra.Graph.NonEmpty.AdjacencyMap.Rep_AdjacencyMap [algebraic-graphs]  - Algebra.Graph.ToGraph.D:R:ToVertexAdjacencyMap [algebraic-graphs] Warning: Algebra.Graph.ToGraph: could not find link destinations for: [algebraic-graphs]  - Algebra.Graph.ToGraph.D:R:ToVertexAdjacencyIntMap [algebraic-graphs]  - Algebra.Graph.ToGraph.D:R:ToVertexAdjacencyMap [algebraic-graphs]  - Algebra.Graph.ToGraph.D:R:ToVertexAdjacencyMap0 [algebraic-graphs]  - Algebra.Graph.ToGraph.D:R:ToVertexGraph [algebraic-graphs]  - Algebra.Graph.Relation.D:R:ToVertexRelation [algebraic-graphs]  - Algebra.Graph.Relation.Symmetric.D:R:ToVertexRelation [algebraic-graphs]  - Algebra.Graph.NonEmpty.D:R:ToVertexGraph [algebraic-graphs]  - Algebra.Graph.Labelled.AdjacencyMap.D:R:ToVertexAdjacencyMap [algebraic-graphs]  - Algebra.Graph.Labelled.D:R:ToVertexGraph [algebraic-graphs] Warning: Algebra.Graph.Relation: could not find link destinations for: [algebraic-graphs]  - Algebra.Graph.Relation.D:R:ToVertexRelation [algebraic-graphs]  - Algebra.Graph.Class.D:R:VertexRelation0 [algebraic-graphs] Warning: Algebra.Graph.Relation.Symmetric: could not find link destinations for: [algebraic-graphs]  - Algebra.Graph.Relation.Symmetric.D:R:ToVertexRelation [algebraic-graphs]  - Algebra.Graph.Class.D:R:VertexRelation [algebraic-graphs] Warning: Algebra.Graph.NonEmpty: could not find link destinations for: [algebraic-graphs]  - Algebra.Graph.NonEmpty.D:R:ToVertexGraph [algebraic-graphs] Warning: Algebra.Graph.Labelled.AdjacencyMap: could not find link destinations for: [algebraic-graphs]  - Algebra.Graph.Labelled.AdjacencyMap.Rep_AdjacencyMap [algebraic-graphs]  - Algebra.Graph.Labelled.AdjacencyMap.D:R:ToVertexAdjacencyMap [algebraic-graphs]  - Algebra.Graph.Class.D:R:VertexAdjacencyMap [algebraic-graphs] Warning: Algebra.Graph.Labelled: could not find link destinations for: [algebraic-graphs]  - Algebra.Graph.Labelled.Rep_Graph [algebraic-graphs]  - Algebra.Graph.Labelled.D:R:ToVertexGraph [algebraic-graphs]  - Algebra.Graph.Class.D:R:VertexGraph [algebraic-graphs] Warning: Algebra.Graph.Undirected: could not find link destinations for: [algebraic-graphs]  - Algebra.Graph.Undirected.Rep_Graph [algebraic-graphs]  - Algebra.Graph.Class.D:R:VertexGraph0 [algebraic-graphs] Warning: Algebra.Graph.Class: could not find link destinations for: [algebraic-graphs]  - Algebra.Graph.Class.D:R:VertexAdjacencyIntMap [algebraic-graphs]  - Algebra.Graph.Class.D:R:VertexAdjacencyMap [algebraic-graphs]  - Algebra.Graph.Class.D:R:VertexAdjacencyMap0 [algebraic-graphs]  - Algebra.Graph.Class.D:R:VertexFUN [algebraic-graphs]  - Algebra.Graph.Class.D:R:VertexGraph [algebraic-graphs]  - Algebra.Graph.Class.D:R:VertexGraph0 [algebraic-graphs]  - Algebra.Graph.Class.D:R:VertexGraph1 [algebraic-graphs]  - Algebra.Graph.Class.D:R:VertexMaybe [algebraic-graphs]  - Algebra.Graph.Class.D:R:VertexRelation [algebraic-graphs]  - Algebra.Graph.Class.D:R:VertexRelation0 [algebraic-graphs]  - Algebra.Graph.Class.D:R:VertexTuple2 [algebraic-graphs]  - Algebra.Graph.Class.D:R:VertexTuple3 [algebraic-graphs]  - Algebra.Graph.Class.D:R:VertexUnit [algebraic-graphs]  - Algebra.Graph.Relation.Transitive.D:R:VertexTransitiveRelation [algebraic-graphs]  - Algebra.Graph.Relation.Reflexive.D:R:VertexReflexiveRelation [algebraic-graphs]  - Algebra.Graph.Relation.Preorder.D:R:VertexPreorderRelation [algebraic-graphs]  - Algebra.Graph.Example.Todo.D:R:VertexTodo [algebraic-graphs] Warning: Algebra.Graph.Relation.Transitive: could not find link destinations for: [algebraic-graphs]  - Algebra.Graph.Relation.Transitive.D:R:VertexTransitiveRelation [algebraic-graphs] Warning: Algebra.Graph.Relation.Reflexive: could not find link destinations for: [algebraic-graphs]  - Algebra.Graph.Relation.Reflexive.D:R:VertexReflexiveRelation [algebraic-graphs] Warning: Algebra.Graph.Relation.Preorder: could not find link destinations for: [algebraic-graphs]  - Algebra.Graph.Relation.Preorder.D:R:VertexPreorderRelation [algebraic-graphs] Warning: Algebra.Graph.Example.Todo: could not find link destinations for: [algebraic-graphs]  - Algebra.Graph.Example.Todo.D:R:VertexTodo [algebraic-graphs] Documentation created: dist/doc/html/algebraic-graphs, [algebraic-graphs] dist/doc/html/algebraic-graphs/algebraic-graphs.txt [algebraic-graphs] Preprocessing test suite 'main' for algebraic-graphs-0.7... [algebraic-graphs] Phase: installPhase [algebraic-graphs] Installing library in /nix/store/fs2iyc6c2n6f5z2x54nny3fsi996p3m1-algebraic-graphs-0.7/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a [algebraic-graphs] Phase: fixupPhase [algebraic-graphs] shrinking RPATHs of ELF executables and libraries in /nix/store/fs2iyc6c2n6f5z2x54nny3fsi996p3m1-algebraic-graphs-0.7 [algebraic-graphs] shrinking /nix/store/fs2iyc6c2n6f5z2x54nny3fsi996p3m1-algebraic-graphs-0.7/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/libHSalgebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a-ghc9.12.2.so [algebraic-graphs] checking for references to /build/ in /nix/store/fs2iyc6c2n6f5z2x54nny3fsi996p3m1-algebraic-graphs-0.7... [algebraic-graphs] patching script interpreter paths in /nix/store/fs2iyc6c2n6f5z2x54nny3fsi996p3m1-algebraic-graphs-0.7 [algebraic-graphs] stripping (with command strip and flags -S -p) in /nix/store/fs2iyc6c2n6f5z2x54nny3fsi996p3m1-algebraic-graphs-0.7/lib [algebraic-graphs] shrinking RPATHs of ELF executables and libraries in /nix/store/4syljhmgi93jzr8cdmlar9dpmjsd53nv-algebraic-graphs-0.7-doc [algebraic-graphs] checking for references to /build/ in /nix/store/4syljhmgi93jzr8cdmlar9dpmjsd53nv-algebraic-graphs-0.7-doc... [algebraic-graphs] patching script interpreter paths in /nix/store/4syljhmgi93jzr8cdmlar9dpmjsd53nv-algebraic-graphs-0.7-doc [algebraic-graphs:post-build] Uploading to cachix cache "sellout": /nix/store/4syljhmgi93jzr8cdmlar9dpmjsd53nv-algebraic-graphs-0.7-doc /nix/store/fs2iyc6c2n6f5z2x54nny3fsi996p3m1-algebraic-graphs-0.7 [algebraic-graphs:post-build] Pushing 2 paths (70 are already present) using zstd to cache sellout ⏳ [algebraic-graphs:post-build]  [algebraic-graphs:post-build] Pushing /nix/store/4syljhmgi93jzr8cdmlar9dpmjsd53nv-algebraic-graphs-0.7-doc (10.41 MiB) [algebraic-graphs:post-build] Pushing /nix/store/fs2iyc6c2n6f5z2x54nny3fsi996p3m1-algebraic-graphs-0.7 (25.73 MiB) [algebraic-graphs:post-build]  [algebraic-graphs:post-build] All done. [algebraic-graphs:post-build] Uploading to the NixCI cache: /nix/store/4syljhmgi93jzr8cdmlar9dpmjsd53nv-algebraic-graphs-0.7-doc /nix/store/fs2iyc6c2n6f5z2x54nny3fsi996p3m1-algebraic-graphs-0.7 [algebraic-graphs:post-build] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [algebraic-graphs:post-build] copying 2 paths... [algebraic-graphs:post-build] copying path '/nix/store/4syljhmgi93jzr8cdmlar9dpmjsd53nv-algebraic-graphs-0.7-doc' to 'https://cache.nix-ci.com'... [algebraic-graphs:post-build] copying path '/nix/store/fs2iyc6c2n6f5z2x54nny3fsi996p3m1-algebraic-graphs-0.7' to 'https://cache.nix-ci.com'... [algebraic-graphs:post-build] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [algebraic-graphs:post-build] copying 1 paths... [algebraic-graphs:post-build] copying path '/nix/store/wcyb838h79fi5fk0y7w8jznhlnsczw6s-algebraic-graphs-0.7.drv' to 'https://cache.nix-ci.com'... Progress: 9 of 14 built, 43 of 43 downloaded from cache Building /nix/store/75ihv4bmf46fckrl91pbn7449akgjmz2-algebraic-graph-duoids-0.0.1.0.drv [algebraic-graph-duoids] Phase: setupCompilerEnvironmentPhase [algebraic-graph-duoids] Build with /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2. [algebraic-graph-duoids] Phase: unpackPhase [algebraic-graph-duoids] unpacking source archive /nix/store/j3nhvvhbp8d5l29mqdaf8f513lxyga6r-z8smrhvl4j2a1x1vb5nv502a87a6wsx7-source/./algebraic-graphs [algebraic-graph-duoids] source root is algebraic-graphs [algebraic-graph-duoids] Phase: patchPhase [algebraic-graph-duoids] Phase: compileBuildDriverPhase [algebraic-graph-duoids] setupCompileFlags: -package-db=/build/tmp.hIn77obTa3/setup-package.conf.d -threaded [algebraic-graph-duoids] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.hIn77obTa3/Main.o ) [algebraic-graph-duoids] [2 of 2] Linking Setup [algebraic-graph-duoids] Phase: updateAutotoolsGnuConfigScriptsPhase [algebraic-graph-duoids] Phase: configurePhase [algebraic-graph-duoids] configureFlags: --verbose --prefix=/nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/nix/store/kqis4bsgc73hs0kshbl2dpy6s520dkmi-algebraic-graph-duoids-0.0.1.0-doc/share/doc/algebraic-graph-duoids-0.0.1.0 --with-gcc=gcc --package-db=/build/tmp.hIn77obTa3/package.conf.d --ghc-option=-j16 --ghc-option=+RTS --ghc-option=-A64M --ghc-option=-RTS --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --enable-static --disable-executable-dynamic --enable-tests --disable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-option=-haddock --ghc-options=-Werror --extra-lib-dirs=/nix/store/ffyzkisqs4vc4mg28bwwlyqjf8i9ph6b-ncurses-6.5/lib --extra-lib-dirs=/nix/store/n28qgdj8c1q41kf7n4y1jxa6ckp85m3c-libffi-3.5.2/lib --extra-lib-dirs=/nix/store/1b6h99dw7bk4wbn77kbalih42zbc67m1-elfutils-0.194/lib --extra-lib-dirs=/nix/store/hi0ar880110k6jsmmili7dh1gq3cg2a9-gmp-with-cxx-6.3.0/lib --extra-lib-dirs=/nix/store/g09cflpnp4g80q56sj9dng1qzv4v4ybc-numactl-2.0.18/lib --extra-lib-dirs=/nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/lib [algebraic-graph-duoids] Using Parsec parser [algebraic-graph-duoids] Configuring algebraic-graph-duoids-0.0.1.0... [algebraic-graph-duoids] Warning: Unknown/unsupported 'ghc' version detected (Cabal 3.14.1.0 supports [algebraic-graph-duoids] 'ghc' version < 9.12): [algebraic-graph-duoids] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc is version [algebraic-graph-duoids] 9.12.2 [algebraic-graph-duoids] Flags chosen: lint=False, noisy-deprecations=True [algebraic-graph-duoids] Dependency algebraic-graphs >=0.5 && <0.6 || >=0.6.1 && <0.9: using [algebraic-graph-duoids] algebraic-graphs-0.7 [algebraic-graph-duoids] Dependency base >=4.16.0 && <4.17 || >=4.17.0 && <4.18 || >=4.18.0 && <4.19 || [algebraic-graph-duoids] >=4.19.0 && <4.20 || >=4.20.0 && <4.21 || >=4.21.0 && <4.22 || >=4.22.0 && [algebraic-graph-duoids] <4.23: using base-4.21.0.0 [algebraic-graph-duoids] Dependency duoids >=0.0.1 && <0.1: using duoids-0.0.1.0 [algebraic-graph-duoids] Dependency ghc-compat-plugin >=0.1.0 && <0.2: using ghc-compat-plugin-0.1.0.1 [algebraic-graph-duoids] Dependency algebraic-graph-duoids: using algebraic-graph-duoids-0.0.1.0 [algebraic-graph-duoids] Dependency algebraic-graphs >=0.5 && <0.6 || >=0.6.1 && <0.9: using [algebraic-graph-duoids] algebraic-graphs-0.7 [algebraic-graph-duoids] Dependency base >=4.16.0 && <4.17 || >=4.17.0 && <4.18 || >=4.18.0 && <4.19 || [algebraic-graph-duoids] >=4.19.0 && <4.20 || >=4.20.0 && <4.21 || >=4.21.0 && <4.22 || >=4.22.0 && [algebraic-graph-duoids] <4.23: using base-4.21.0.0 [algebraic-graph-duoids] Dependency duoids-hedgehog >=0.0.1 && <0.1: using duoids-hedgehog-0.0.1.0 [algebraic-graph-duoids] Dependency ghc-compat-plugin >=0.1.0 && <0.2: using ghc-compat-plugin-0.1.0.1 [algebraic-graph-duoids] Dependency hedgehog >=1.1 && <1.3 || >=1.4 && <1.6 || >=1.7 && <1.8: using [algebraic-graph-duoids] hedgehog-1.5 [algebraic-graph-duoids] Dependency algebraic-graph-duoids: using algebraic-graph-duoids-0.0.1.0 [algebraic-graph-duoids] Dependency base >=4.16.0 && <4.17 || >=4.17.0 && <4.18 || >=4.18.0 && <4.19 || [algebraic-graph-duoids] >=4.19.0 && <4.20 || >=4.20.0 && <4.21 || >=4.21.0 && <4.22 || >=4.22.0 && [algebraic-graph-duoids] <4.23: using base-4.21.0.0 [algebraic-graph-duoids] Dependency doctest >=0.18.2 && <0.19 || >=0.20.1 && <0.21 || >=0.21.1 && <0.22 [algebraic-graph-duoids] || >=0.22.6 && <0.23 || >=0.24.0 && <0.25 || >=0.25.0 && <0.26: using [algebraic-graph-duoids] doctest-0.24.2 [algebraic-graph-duoids] Dependency ghc-compat-plugin >=0.1.0 && <0.2: using ghc-compat-plugin-0.1.0.1 [algebraic-graph-duoids] Source component graph: [algebraic-graph-duoids]  component lib [algebraic-graph-duoids]  component test:doctests dependency lib [algebraic-graph-duoids]  component test:laws dependency lib [algebraic-graph-duoids] Configured component graph: [algebraic-graph-duoids]  component algebraic-graph-duoids-0.0.1.0-LVYR75RwDMA4rgV1xNnsfQ [algebraic-graph-duoids]  include algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a [algebraic-graph-duoids]  include base-4.21.0.0-b334 [algebraic-graph-duoids]  include duoids-0.0.1.0-Jzc4b5W36dXEvfr963zxkm [algebraic-graph-duoids]  include ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [algebraic-graph-duoids]  component algebraic-graph-duoids-0.0.1.0-Evx0ap0K7yoGNApluEWKN0-doctests [algebraic-graph-duoids]  include algebraic-graph-duoids-0.0.1.0-LVYR75RwDMA4rgV1xNnsfQ [algebraic-graph-duoids]  include base-4.21.0.0-b334 [algebraic-graph-duoids]  include doctest-0.24.2-7dcRhyR7fwsJGtJTyCZo6u [algebraic-graph-duoids]  include ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [algebraic-graph-duoids]  component algebraic-graph-duoids-0.0.1.0-7V2NvdwbC19B2n8GOOG15z-laws [algebraic-graph-duoids]  include algebraic-graph-duoids-0.0.1.0-LVYR75RwDMA4rgV1xNnsfQ [algebraic-graph-duoids]  include algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a [algebraic-graph-duoids]  include base-4.21.0.0-b334 [algebraic-graph-duoids]  include duoids-hedgehog-0.0.1.0-4PBiwjtwbFHLQ9OHdta2tZ [algebraic-graph-duoids]  include ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [algebraic-graph-duoids]  include hedgehog-1.5-3LP1um1Ps6qGX0qFDBaPPL [algebraic-graph-duoids] Linked component graph: [algebraic-graph-duoids]  unit algebraic-graph-duoids-0.0.1.0-LVYR75RwDMA4rgV1xNnsfQ [algebraic-graph-duoids]  include algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a [algebraic-graph-duoids]  include base-4.21.0.0-b334 [algebraic-graph-duoids]  include duoids-0.0.1.0-Jzc4b5W36dXEvfr963zxkm [algebraic-graph-duoids]  include ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [algebraic-graph-duoids]  Algebra.Graph.Duoid=algebraic-graph-duoids-0.0.1.0-LVYR75RwDMA4rgV1xNnsfQ:Algebra.Graph.Duoid,Algebra.Graph.Duoid.Orphans=algebraic-graph-duoids-0.0.1.0-LVYR75RwDMA4rgV1xNnsfQ:Algebra.Graph.Duoid.Orphans [algebraic-graph-duoids]  unit algebraic-graph-duoids-0.0.1.0-Evx0ap0K7yoGNApluEWKN0-doctests [algebraic-graph-duoids]  include algebraic-graph-duoids-0.0.1.0-LVYR75RwDMA4rgV1xNnsfQ [algebraic-graph-duoids]  include base-4.21.0.0-b334 [algebraic-graph-duoids]  include doctest-0.24.2-7dcRhyR7fwsJGtJTyCZo6u [algebraic-graph-duoids]  include ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [algebraic-graph-duoids]  unit algebraic-graph-duoids-0.0.1.0-7V2NvdwbC19B2n8GOOG15z-laws [algebraic-graph-duoids]  include algebraic-graph-duoids-0.0.1.0-LVYR75RwDMA4rgV1xNnsfQ [algebraic-graph-duoids]  include algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a [algebraic-graph-duoids]  include base-4.21.0.0-b334 [algebraic-graph-duoids]  include duoids-hedgehog-0.0.1.0-4PBiwjtwbFHLQ9OHdta2tZ [algebraic-graph-duoids]  include ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [algebraic-graph-duoids]  include hedgehog-1.5-3LP1um1Ps6qGX0qFDBaPPL [algebraic-graph-duoids] Ready component graph: [algebraic-graph-duoids]  definite algebraic-graph-duoids-0.0.1.0-LVYR75RwDMA4rgV1xNnsfQ [algebraic-graph-duoids]  depends algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a [algebraic-graph-duoids]  depends base-4.21.0.0-b334 [algebraic-graph-duoids]  depends duoids-0.0.1.0-Jzc4b5W36dXEvfr963zxkm [algebraic-graph-duoids]  depends ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [algebraic-graph-duoids]  definite algebraic-graph-duoids-0.0.1.0-Evx0ap0K7yoGNApluEWKN0-doctests [algebraic-graph-duoids]  depends algebraic-graph-duoids-0.0.1.0-LVYR75RwDMA4rgV1xNnsfQ [algebraic-graph-duoids]  depends base-4.21.0.0-b334 [algebraic-graph-duoids]  depends doctest-0.24.2-7dcRhyR7fwsJGtJTyCZo6u [algebraic-graph-duoids]  depends ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [algebraic-graph-duoids]  definite algebraic-graph-duoids-0.0.1.0-7V2NvdwbC19B2n8GOOG15z-laws [algebraic-graph-duoids]  depends algebraic-graph-duoids-0.0.1.0-LVYR75RwDMA4rgV1xNnsfQ [algebraic-graph-duoids]  depends algebraic-graphs-0.7-6hsd2h1oLWFHy0uebcfo9a [algebraic-graph-duoids]  depends base-4.21.0.0-b334 [algebraic-graph-duoids]  depends duoids-hedgehog-0.0.1.0-4PBiwjtwbFHLQ9OHdta2tZ [algebraic-graph-duoids]  depends ghc-compat-plugin-0.1.0.1-mnLYDeGCx98PfHRNXIt5d [algebraic-graph-duoids]  depends hedgehog-1.5-3LP1um1Ps6qGX0qFDBaPPL [algebraic-graph-duoids] Using Cabal-3.14.1.0 compiled by ghc-9.12 [algebraic-graph-duoids] Using compiler: ghc-9.12.2 [algebraic-graph-duoids] Using install prefix: [algebraic-graph-duoids] /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0 [algebraic-graph-duoids] Executables installed in: [algebraic-graph-duoids] /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/bin [algebraic-graph-duoids] Libraries installed in: [algebraic-graph-duoids] /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/algebraic-graph-duoids-0.0.1.0-LVYR75RwDMA4rgV1xNnsfQ [algebraic-graph-duoids] Dynamic Libraries installed in: [algebraic-graph-duoids] /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3 [algebraic-graph-duoids] Private executables installed in: [algebraic-graph-duoids] /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/libexec/x86_64-linux-ghc-9.12.2-82d3/algebraic-graph-duoids-0.0.1.0 [algebraic-graph-duoids] Data files installed in: [algebraic-graph-duoids] /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/share/x86_64-linux-ghc-9.12.2-82d3/algebraic-graph-duoids-0.0.1.0 [algebraic-graph-duoids] Documentation installed in: [algebraic-graph-duoids] /nix/store/kqis4bsgc73hs0kshbl2dpy6s520dkmi-algebraic-graph-duoids-0.0.1.0-doc/share/doc/algebraic-graph-duoids-0.0.1.0 [algebraic-graph-duoids] Configuration files installed in: [algebraic-graph-duoids] /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/etc [algebraic-graph-duoids] No alex found [algebraic-graph-duoids] Using ar found on system at: [algebraic-graph-duoids] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar [algebraic-graph-duoids] No c2hs found [algebraic-graph-duoids] No cpphs found [algebraic-graph-duoids] Using doctest version 0.24.2 found on system at: [algebraic-graph-duoids] /nix/store/39gb85lds43f7spl5690pdk8d65fpr5l-doctest-0.24.2/bin/doctest [algebraic-graph-duoids] Using gcc version 14.3.0 given by user at: [algebraic-graph-duoids] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc [algebraic-graph-duoids] Using ghc version 9.12.2 found on system at: [algebraic-graph-duoids] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc [algebraic-graph-duoids] Using ghc-pkg version 9.12.2 found on system at: [algebraic-graph-duoids] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/ghc-pkg-9.12.2 [algebraic-graph-duoids] No ghcjs found [algebraic-graph-duoids] No ghcjs-pkg found [algebraic-graph-duoids] No greencard found [algebraic-graph-duoids] Using haddock version 2.30.0 found on system at: [algebraic-graph-duoids] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/haddock-ghc-9.12.2 [algebraic-graph-duoids] No happy found [algebraic-graph-duoids] No haskell-suite found [algebraic-graph-duoids] No haskell-suite-pkg found [algebraic-graph-duoids] No hmake found [algebraic-graph-duoids] Using hpc version 0.69 found on system at: [algebraic-graph-duoids] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/hpc-ghc-9.12.2 [algebraic-graph-duoids] Using hsc2hs version 0.68.10 found on system at: [algebraic-graph-duoids] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/hsc2hs-ghc-9.12.2 [algebraic-graph-duoids] Using hscolour version 1.25 found on system at: [algebraic-graph-duoids] /nix/store/02s9rad0jn6nj8z96k357im73hkzqsnw-hscolour-1.25/bin/HsColour [algebraic-graph-duoids] No jhc found [algebraic-graph-duoids] Using ld found on system at: [algebraic-graph-duoids] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld [algebraic-graph-duoids] No pkg-config found [algebraic-graph-duoids] Using runghc version 9.12.2 found on system at: [algebraic-graph-duoids] /nix/store/qb40z3a8ldgckx61vjsi26j7c07ji66f-ghc-9.12.2/bin/runghc-9.12.2 [algebraic-graph-duoids] Using strip version 2.44 found on system at: [algebraic-graph-duoids] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip [algebraic-graph-duoids] Using tar found on system at: [algebraic-graph-duoids] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar [algebraic-graph-duoids] No uhc found [algebraic-graph-duoids] Phase: buildPhase [algebraic-graph-duoids] Preprocessing library for algebraic-graph-duoids-0.0.1.0... [algebraic-graph-duoids] Building library for algebraic-graph-duoids-0.0.1.0... [algebraic-graph-duoids] [1 of 2] Compiling Algebra.Graph.Duoid ( src/Algebra/Graph/Duoid.hs, dist/build/Algebra/Graph/Duoid.o, dist/build/Algebra/Graph/Duoid.dyn_o ) [algebraic-graph-duoids] [2 of 2] Compiling Algebra.Graph.Duoid.Orphans ( src/Algebra/Graph/Duoid/Orphans.hs, dist/build/Algebra/Graph/Duoid/Orphans.o, dist/build/Algebra/Graph/Duoid/Orphans.dyn_o ) [algebraic-graph-duoids] [1 of 2] Compiling Algebra.Graph.Duoid ( src/Algebra/Graph/Duoid.hs, dist/build/Algebra/Graph/Duoid.p_o ) [algebraic-graph-duoids] [2 of 2] Compiling Algebra.Graph.Duoid.Orphans ( src/Algebra/Graph/Duoid/Orphans.hs, dist/build/Algebra/Graph/Duoid/Orphans.p_o ) [algebraic-graph-duoids] Preprocessing test suite 'doctests' for algebraic-graph-duoids-0.0.1.0... [algebraic-graph-duoids] Building test suite 'doctests' for algebraic-graph-duoids-0.0.1.0... [algebraic-graph-duoids] [1 of 2] Compiling Build_doctests ( dist/build/doctests/autogen/Build_doctests.hs, dist/build/doctests/doctests-tmp/Build_doctests.o ) [algebraic-graph-duoids] [2 of 2] Compiling Main ( tests/doctests.hs, dist/build/doctests/doctests-tmp/Main.o ) [algebraic-graph-duoids] [3 of 3] Linking dist/build/doctests/doctests [algebraic-graph-duoids] Preprocessing test suite 'laws' for algebraic-graph-duoids-0.0.1.0... [algebraic-graph-duoids] Building test suite 'laws' for algebraic-graph-duoids-0.0.1.0... [algebraic-graph-duoids] [1 of 1] Compiling Main ( tests/laws.hs, dist/build/laws/laws-tmp/Main.o ) [algebraic-graph-duoids] [2 of 2] Linking dist/build/laws/laws [algebraic-graph-duoids] Phase: checkPhase [algebraic-graph-duoids] Running 2 test suites... [algebraic-graph-duoids] Test suite doctests: RUNNING... [algebraic-graph-duoids] Examples: 0 Tried: 0 Errors: 0 Failures: 0 [algebraic-graph-duoids] NameLib Nothing [algebraic-graph-duoids] ---------------------------------------- [algebraic-graph-duoids] Test suite doctests: PASS [algebraic-graph-duoids] Test suite logged to: dist/test/algebraic-graph-duoids-0.0.1.0-doctests.log [algebraic-graph-duoids] Test suite laws: RUNNING... [algebraic-graph-duoids] ━━━ Duoid.Normal (Graph Word8) ━━━ [algebraic-graph-duoids]  ✓ unswapUnit passed 100 tests. [algebraic-graph-duoids]  ✓ interchange passed 100 tests. [algebraic-graph-duoids]  ✓ splitUnit passed 100 tests. [algebraic-graph-duoids]  ✓ joinUnit passed 100 tests. [algebraic-graph-duoids]  ✓ swapUnit passed 100 tests. [algebraic-graph-duoids]  ✓ 5 succeeded. [algebraic-graph-duoids] Test suite laws: PASS [algebraic-graph-duoids] Test suite logged to: dist/test/algebraic-graph-duoids-0.0.1.0-laws.log [algebraic-graph-duoids] 2 of 2 test suites (2 of 2 test cases) passed. [algebraic-graph-duoids] Phase: haddockPhase [algebraic-graph-duoids] Preprocessing library for algebraic-graph-duoids-0.0.1.0... [algebraic-graph-duoids] Running Haddock on library for algebraic-graph-duoids-0.0.1.0... [algebraic-graph-duoids] [1 of 2] Compiling Algebra.Graph.Duoid ( src/Algebra/Graph/Duoid.hs, nothing ) [HIE file is missing] [algebraic-graph-duoids] [2 of 2] Compiling Algebra.Graph.Duoid.Orphans ( src/Algebra/Graph/Duoid/Orphans.hs, nothing ) [HIE file is missing] [algebraic-graph-duoids] Haddock coverage: [algebraic-graph-duoids]  100% ( 5 / 5) in 'Algebra.Graph.Duoid' [algebraic-graph-duoids]  100% ( 1 / 1) in 'Algebra.Graph.Duoid.Orphans' [algebraic-graph-duoids] Documentation created: dist/doc/html/algebraic-graph-duoids, [algebraic-graph-duoids] dist/doc/html/algebraic-graph-duoids/algebraic-graph-duoids.txt [algebraic-graph-duoids] Preprocessing test suite 'doctests' for algebraic-graph-duoids-0.0.1.0... [algebraic-graph-duoids] Preprocessing test suite 'laws' for algebraic-graph-duoids-0.0.1.0... [algebraic-graph-duoids] Phase: installPhase [algebraic-graph-duoids] Installing library in /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/algebraic-graph-duoids-0.0.1.0-LVYR75RwDMA4rgV1xNnsfQ [algebraic-graph-duoids] Phase: fixupPhase [algebraic-graph-duoids] shrinking RPATHs of ELF executables and libraries in /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0 [algebraic-graph-duoids] shrinking /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-82d3/libHSalgebraic-graph-duoids-0.0.1.0-LVYR75RwDMA4rgV1xNnsfQ-ghc9.12.2.so [algebraic-graph-duoids] checking for references to /build/ in /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0... [algebraic-graph-duoids] patching script interpreter paths in /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0 [algebraic-graph-duoids] stripping (with command strip and flags -S -p) in /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/lib [algebraic-graph-duoids] shrinking RPATHs of ELF executables and libraries in /nix/store/kqis4bsgc73hs0kshbl2dpy6s520dkmi-algebraic-graph-duoids-0.0.1.0-doc [algebraic-graph-duoids] checking for references to /build/ in /nix/store/kqis4bsgc73hs0kshbl2dpy6s520dkmi-algebraic-graph-duoids-0.0.1.0-doc... [algebraic-graph-duoids] patching script interpreter paths in /nix/store/kqis4bsgc73hs0kshbl2dpy6s520dkmi-algebraic-graph-duoids-0.0.1.0-doc [algebraic-graph-duoids:post-build] Uploading to cachix cache "sellout": /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0 /nix/store/kqis4bsgc73hs0kshbl2dpy6s520dkmi-algebraic-graph-duoids-0.0.1.0-doc [algebraic-graph-duoids:post-build] Pushing 2 paths (76 are already present) using zstd to cache sellout ⏳ [algebraic-graph-duoids:post-build]  [algebraic-graph-duoids:post-build] Pushing /nix/store/kqis4bsgc73hs0kshbl2dpy6s520dkmi-algebraic-graph-duoids-0.0.1.0-doc (540.14 KiB) [algebraic-graph-duoids:post-build] Pushing /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0 (1.24 MiB) [algebraic-graph-duoids:post-build]  [algebraic-graph-duoids:post-build] All done. [algebraic-graph-duoids:post-build] Uploading to the NixCI cache: /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0 /nix/store/kqis4bsgc73hs0kshbl2dpy6s520dkmi-algebraic-graph-duoids-0.0.1.0-doc [algebraic-graph-duoids:post-build] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [algebraic-graph-duoids:post-build] copying 2 paths... [algebraic-graph-duoids:post-build] copying path '/nix/store/kqis4bsgc73hs0kshbl2dpy6s520dkmi-algebraic-graph-duoids-0.0.1.0-doc' to 'https://cache.nix-ci.com'... [algebraic-graph-duoids:post-build] copying path '/nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0' to 'https://cache.nix-ci.com'... [algebraic-graph-duoids:post-build] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [algebraic-graph-duoids:post-build] copying 1 paths... [algebraic-graph-duoids:post-build] copying path '/nix/store/75ihv4bmf46fckrl91pbn7449akgjmz2-algebraic-graph-duoids-0.0.1.0.drv' to 'https://cache.nix-ci.com'... Progress: 10 of 14 built, 43 of 43 downloaded from cache Building /nix/store/bl2k01s2lgvm5wllc6f9q1mr7cv4wagp-ghc-9.12.2-with-packages.drv [ghc-9.12.2-with-packages] /nix/store/scmby30dka4njfxm1w6njdavhbdi3dv6-duoidal-transformers-0.0.1.0/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/dxchzkr03dgfn7fwrd25dnkc7dzwhcka-duoids-0.0.1.0/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/b23lx4bcxv7k9d65q88921y71rbk250l-duoids-hedgehog-0.0.1.0/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/fs2iyc6c2n6f5z2x54nny3fsi996p3m1-algebraic-graphs-0.7/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/fs2iyc6c2n6f5z2x54nny3fsi996p3m1-algebraic-graphs-0.7/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/7g5rhcln9b5xc36jq2vizcngpyp61vgv-ghc-compat-plugin-0.1.0.1/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/7g5rhcln9b5xc36jq2vizcngpyp61vgv-ghc-compat-plugin-0.1.0.1/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/q6v155i381w7bwwybxw7j6n48zi29a0r-hedgehog-1.5/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/q6v155i381w7bwwybxw7j6n48zi29a0r-hedgehog-1.5/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/xg51g5848hpl9mps77x2gh0kqp5vpy1v-ansi-terminal-1.1.3/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/xg51g5848hpl9mps77x2gh0kqp5vpy1v-ansi-terminal-1.1.3/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/ipgap254wlcl0bxhd0637mn5k6dhijrs-async-2.2.5/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/ipgap254wlcl0bxhd0637mn5k6dhijrs-async-2.2.5/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/9yp7zgnf5ldsswrcn24lr4wmk6gjs95f-barbies-2.1.1.0/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/9yp7zgnf5ldsswrcn24lr4wmk6gjs95f-barbies-2.1.1.0/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/zag06nyx3hrgh9q0ng1pxjc7fhl02qf6-concurrent-output-1.10.21/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/zag06nyx3hrgh9q0ng1pxjc7fhl02qf6-concurrent-output-1.10.21/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/14hg9mg5gjcfm6mv57msj2gfrhczbfgb-lifted-async-0.10.2.7/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/14hg9mg5gjcfm6mv57msj2gfrhczbfgb-lifted-async-0.10.2.7/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/s67l7qhsmagm8rqynpp5rb3sgbc9a5kf-mmorph-1.2.1/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/s67l7qhsmagm8rqynpp5rb3sgbc9a5kf-mmorph-1.2.1/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/7l39g9km1nh2psckx2x38mmri14fvc9l-monad-control-1.0.3.1/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/7l39g9km1nh2psckx2x38mmri14fvc9l-monad-control-1.0.3.1/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/423avffd1cpailh8mv3fwln1fiiyb6ap-pretty-show-1.10/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/423avffd1cpailh8mv3fwln1fiiyb6ap-pretty-show-1.10/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/wfq9yc6in1kk2934d7f3djrknzf52wlh-primitive-0.9.1.0/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/wfq9yc6in1kk2934d7f3djrknzf52wlh-primitive-0.9.1.0/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/d5vb2zs15rh4k0dhiprx92v727nsb9kh-random-1.2.1.3/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/d5vb2zs15rh4k0dhiprx92v727nsb9kh-random-1.2.1.3/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/2jwii2l1zjhs98x4vj0w8r35bmybwxdg-resourcet-1.3.0/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/2jwii2l1zjhs98x4vj0w8r35bmybwxdg-resourcet-1.3.0/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/vjd636z43wwk701gmwlbgy4nlq4d1xz4-safe-exceptions-0.1.7.4/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/vjd636z43wwk701gmwlbgy4nlq4d1xz4-safe-exceptions-0.1.7.4/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/z9sdjmgzn83ri3hfzhfg8dn7yrl9jhps-transformers-base-0.4.6/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/z9sdjmgzn83ri3hfzhfg8dn7yrl9jhps-transformers-base-0.4.6/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/96nf4ff4shj7yg3r6knm3jws42gxp33r-wl-pprint-annotated-0.1.0.1/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/96nf4ff4shj7yg3r6knm3jws42gxp33r-wl-pprint-annotated-0.1.0.1/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/m0142z9fsakrn9yyicrnqdndww3vgd64-ansi-terminal-types-1.1.3/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/m0142z9fsakrn9yyicrnqdndww3vgd64-ansi-terminal-types-1.1.3/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/n9m44dbds9vzw5xmgficydgzk7hhbmc8-hashable-1.5.0.0/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/n9m44dbds9vzw5xmgficydgzk7hhbmc8-hashable-1.5.0.0/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/8vgq4w4m05fwqyp1lf1xpdw21cwm4vbb-distributive-0.6.2.1/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/8vgq4w4m05fwqyp1lf1xpdw21cwm4vbb-distributive-0.6.2.1/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/2bw7j5ycplznsly2rvppqnp62is235sh-constraints-0.14.2/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/2bw7j5ycplznsly2rvppqnp62is235sh-constraints-0.14.2/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/4gfdxa8hl1w74n5yp3ck2wbj7mzj1cmd-lifted-base-0.2.3.12/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/4gfdxa8hl1w74n5yp3ck2wbj7mzj1cmd-lifted-base-0.2.3.12/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/5jinlayffmmgvsr8m7105q1cjj4gfpz2-transformers-compat-0.7.2/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/5jinlayffmmgvsr8m7105q1cjj4gfpz2-transformers-compat-0.7.2/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/bdc1bdwqz4x1ssfrqwpa5m42s1r0k0xh-splitmix-0.1.3.1/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/bdc1bdwqz4x1ssfrqwpa5m42s1r0k0xh-splitmix-0.1.3.1/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/k62bxh5mp5jkx6fz6p0g2pql3p6axf1x-unliftio-core-0.2.1.0/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/k62bxh5mp5jkx6fz6p0g2pql3p6axf1x-unliftio-core-0.2.1.0/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/kvbnnrw3p2rqry9n0xfr84j9mlhvkkw0-base-orphans-0.9.3/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/kvbnnrw3p2rqry9n0xfr84j9mlhvkkw0-base-orphans-0.9.3/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/sxjk0703g3jy7l7afnyys0xy2hq87vkg-tagged-0.8.9/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/sxjk0703g3jy7l7afnyys0xy2hq87vkg-tagged-0.8.9/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/cfx4qsi8c39l5ayzgx5hw30wpfnncql7-boring-0.2.2/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages] /nix/store/cfx4qsi8c39l5ayzgx5hw30wpfnncql7-boring-0.2.2/nix-support: [ghc-9.12.2-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/8jb6v9x178hpmc4bl96i290fby1wvxcg-algebraic-graph-duoids-0.0.1.0/nix-support/propagated-build-inputs [ghc-9.12.2-with-packages:post-build] Uploading to cachix cache "sellout": /nix/store/43zkx04kdsy2ij33xrmwg9bv6k4m8f3k-ghc-9.12.2-with-packages [ghc-9.12.2-with-packages:post-build] Pushing 1 paths (144 are already present) using zstd to cache sellout ⏳ [ghc-9.12.2-with-packages:post-build]  [ghc-9.12.2-with-packages:post-build] Pushing /nix/store/43zkx04kdsy2ij33xrmwg9bv6k4m8f3k-ghc-9.12.2-with-packages (6.04 MiB) [ghc-9.12.2-with-packages:post-build]  [ghc-9.12.2-with-packages:post-build] All done. [ghc-9.12.2-with-packages:post-build] Uploading to the NixCI cache: /nix/store/43zkx04kdsy2ij33xrmwg9bv6k4m8f3k-ghc-9.12.2-with-packages [ghc-9.12.2-with-packages:post-build] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [ghc-9.12.2-with-packages:post-build] copying 1 paths... [ghc-9.12.2-with-packages:post-build] copying path '/nix/store/43zkx04kdsy2ij33xrmwg9bv6k4m8f3k-ghc-9.12.2-with-packages' to 'https://cache.nix-ci.com'... [ghc-9.12.2-with-packages:post-build] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [ghc-9.12.2-with-packages:post-build] copying 1 paths... [ghc-9.12.2-with-packages:post-build] copying path '/nix/store/bl2k01s2lgvm5wllc6f9q1mr7cv4wagp-ghc-9.12.2-with-packages.drv' to 'https://cache.nix-ci.com'... Progress: 11 of 13 built, 43 of 43 downloaded from cache Building /nix/store/5hxczgcm7i45wdk287vp8zr3pszx72xi-all-packages.drv [all-packages] created 3 symlinks in user environment [all-packages:post-build] Uploading to cachix cache "sellout": /nix/store/d23qaa0mwfi16xpawjyvx46ckdp93p2x-all-packages [all-packages:post-build] Pushing 1 paths (145 are already present) using zstd to cache sellout ⏳ [all-packages:post-build]  [all-packages:post-build] Pushing /nix/store/d23qaa0mwfi16xpawjyvx46ckdp93p2x-all-packages (872.00 B) [all-packages:post-build]  [all-packages:post-build] All done. [all-packages:post-build] Uploading to the NixCI cache: /nix/store/d23qaa0mwfi16xpawjyvx46ckdp93p2x-all-packages [all-packages:post-build] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [all-packages:post-build] copying 1 paths... [all-packages:post-build] copying path '/nix/store/d23qaa0mwfi16xpawjyvx46ckdp93p2x-all-packages' to 'https://cache.nix-ci.com'... [all-packages:post-build] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [all-packages:post-build] copying 1 paths... [all-packages:post-build] copying path '/nix/store/5hxczgcm7i45wdk287vp8zr3pszx72xi-all-packages.drv' to 'https://cache.nix-ci.com'... Progress: 12 of 13 built, 43 of 43 downloaded from cache Progress: 13 of 13 built, 43 of 43 downloaded from cache /nix/store/d23qaa0mwfi16xpawjyvx46ckdp93p2x-all-packages Build succeeded.