build packages.x86_64-linux.default
36.22 s
[cursor-gen] setting SOURCE_DATE_EPOCH to timestamp 1780346383 of file "cursor-gen-0.4.0.0/test/Spec.hs"
36.22 s
[cursor-gen] warning: file "cursor-gen-0.4.0.0/test/Spec.hs" may be generated; SOURCE_DATE_EPOCH may be non-deterministic
36.22 s
[cursor-gen] Phase: patchPhase
36.23 s
[cursor-gen] Phase: compileBuildDriverPhase
36.23 s
[cursor-gen] setupCompileFlags: -package-db=/build/tmp.VKIqAPgwJs/setup-package.conf.d -threaded
36.26 s
[cursor-gen] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.VKIqAPgwJs/Main.o )
36.32 s
[cursor-gen] [2 of 2] Linking Setup
37.38 s
[cursor-gen] Phase: updateAutotoolsGnuConfigScriptsPhase
37.39 s
[cursor-gen] Phase: configurePhase
37.40 s
[cursor-gen] configureFlags: --verbose --prefix=/nix/store/ssqxavqs2zqy8z3iz6zhwkq3xg8vxr5y-cursor-gen-0.4.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/nix/store/bqf2k803xnkq9j31nm64lvz8v9v8n0hd-cursor-gen-0.4.0.0-doc/share/doc/cursor-gen-0.4.0.0 --with-gcc=gcc --package-db=/build/tmp.VKIqAPgwJs/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-option=-Wall --ghc-option=-Werror --extra-lib-dirs=/nix/store/vfmnmqsnfiiqmphy7ffh2zqynsxfck1q-ncurses-6.5/lib --extra-lib-dirs=/nix/store/90c412b9wqhfny300rg5s2gpsbrqb31q-libffi-3.4.8/lib --extra-lib-dirs=/nix/store/cly4pxh7avd579girjmpxmx8z6ad4dyp-elfutils-0.192/lib --extra-lib-dirs=/nix/store/kxhsmlrscry4pvbpwkbbbxsksmzg0gp0-gmp-with-cxx-6.3.0/lib
37.40 s
[cursor-gen] Using Parsec parser
37.40 s
[cursor-gen] Configuring cursor-gen-0.4.0.0...
37.66 s
[cursor-gen] Dependency QuickCheck: using QuickCheck-2.14.3
37.68 s
[cursor-gen] Dependency base <5: using base-4.19.2.0
37.68 s
[cursor-gen] Dependency containers: using containers-0.6.8
37.68 s
[cursor-gen] Dependency cursor >=0.2: using cursor-0.3.2.0
37.68 s
[cursor-gen] Dependency genvalidity >=0.8: using genvalidity-1.1.1.0
37.68 s
[cursor-gen] Dependency genvalidity-containers: using genvalidity-containers-1.0.0.2
37.68 s
[cursor-gen] Dependency genvalidity-text >=0.6: using genvalidity-text-1.0.0.1
37.68 s
[cursor-gen] Dependency text: using text-2.1.1
37.68 s
[cursor-gen] Dependency QuickCheck: using QuickCheck-2.14.3
37.68 s
[cursor-gen] Dependency base <5: using base-4.19.2.0
37.68 s
[cursor-gen] Dependency containers: using containers-0.6.8
37.68 s
[cursor-gen] Dependency cursor: using cursor-0.3.2.0
37.68 s
[cursor-gen] Dependency cursor-gen: using cursor-gen-0.4.0.0
37.68 s
[cursor-gen] Dependency genvalidity-hspec: using genvalidity-hspec-1.0.0.3
37.68 s
[cursor-gen] Dependency genvalidity-hspec-optics: using genvalidity-hspec-optics-1.0.0.0
37.68 s
[cursor-gen] Dependency hspec: using hspec-2.11.12
37.68 s
[cursor-gen] Dependency microlens: using microlens-0.4.13.1
37.68 s
[cursor-gen] Dependency pretty-show: using pretty-show-1.10
37.68 s
[cursor-gen] Dependency text: using text-2.1.1
37.86 s
[cursor-gen] Source component graph:
37.86 s
[cursor-gen] component lib
37.86 s
[cursor-gen] component test:cursor-test dependency lib
37.86 s
[cursor-gen] Configured component graph:
37.86 s
[cursor-gen] component cursor-gen-0.4.0.0-AF3KCLruzAw4Qb4LWx0JC3
37.86 s
[cursor-gen] include QuickCheck-2.14.3-827hvYtscdr2IanDOJjWgT
37.86 s
[cursor-gen] include base-4.19.2.0-213b
37.86 s
[cursor-gen] include containers-0.6.8-70da
37.86 s
[cursor-gen] include cursor-0.3.2.0-5gxcwywD2RVDx0O9FfmDrl
37.86 s
[cursor-gen] include genvalidity-1.1.1.0-KyNgGPmiy3sAHfTMB2sHim
37.86 s
[cursor-gen] include genvalidity-containers-1.0.0.2-GNNZACt1U6A8DkpcU8B9Cj
37.86 s
[cursor-gen] include genvalidity-text-1.0.0.1-3oKboUjEVAkDFEZMvVcMAx
37.86 s
[cursor-gen] include text-2.1.1-c123
37.86 s
[cursor-gen] component cursor-gen-0.4.0.0-IDYxMXykrKH5pQJHxqmy4K-cursor-test
37.86 s
[cursor-gen] include QuickCheck-2.14.3-827hvYtscdr2IanDOJjWgT
37.86 s
[cursor-gen] include base-4.19.2.0-213b
37.86 s
[cursor-gen] include containers-0.6.8-70da
37.86 s
[cursor-gen] include cursor-0.3.2.0-5gxcwywD2RVDx0O9FfmDrl
37.86 s
[cursor-gen] include cursor-gen-0.4.0.0-AF3KCLruzAw4Qb4LWx0JC3
37.86 s
[cursor-gen] include genvalidity-hspec-1.0.0.3-9ltNlGAvr8vJGdAZFztilS
37.86 s
[cursor-gen] include genvalidity-hspec-optics-1.0.0.0-CcsVw7NqK9k6Vs2hj7Y1GQ
37.86 s
[cursor-gen] include hspec-2.11.12-K7qSIvutqLZ9LMAKH045Vj
37.86 s
[cursor-gen] include microlens-0.4.13.1-1JnoFfAQlYv2GxkbObuU5m
37.86 s
[cursor-gen] include pretty-show-1.10-FWHtJzTIzA7DghMPc6tVx7
37.86 s
[cursor-gen] include text-2.1.1-c123
37.86 s
[cursor-gen] Linked component graph:
37.86 s
[cursor-gen] unit cursor-gen-0.4.0.0-AF3KCLruzAw4Qb4LWx0JC3
37.86 s
[cursor-gen] include QuickCheck-2.14.3-827hvYtscdr2IanDOJjWgT
37.86 s
[cursor-gen] include base-4.19.2.0-213b
37.86 s
[cursor-gen] include containers-0.6.8-70da
37.86 s
[cursor-gen] include cursor-0.3.2.0-5gxcwywD2RVDx0O9FfmDrl
37.86 s
[cursor-gen] include genvalidity-1.1.1.0-KyNgGPmiy3sAHfTMB2sHim
37.86 s
[cursor-gen] include genvalidity-containers-1.0.0.2-GNNZACt1U6A8DkpcU8B9Cj
37.86 s
[cursor-gen] include genvalidity-text-1.0.0.1-3oKboUjEVAkDFEZMvVcMAx
37.86 s
[cursor-gen] include text-2.1.1-c123
37.86 s
[cursor-gen] Cursor.Forest.Gen=cursor-gen-0.4.0.0-AF3KCLruzAw4Qb4LWx0JC3:Cursor.Forest.Gen,Cursor.List.Gen=cursor-gen-0.4.0.0-AF3KCLruzAw4Qb4LWx0JC3:Cursor.List.Gen,Cursor.List.NonEmpty.Gen=cursor-gen-0.4.0.0-AF3KCLruzAw4Qb4LWx0JC3:Cursor.List.NonEmpty.Gen,Cursor.Map.Gen=cursor-gen-0.4.0.0-AF3KCLruzAw4Qb4LWx0JC3:Cursor.Map.Gen,Cursor.Map.KeyValue.Gen=cursor-gen-0.4.0.0-AF3KCLruzAw4Qb4LWx0JC3:Cursor.Map.KeyValue.Gen,Cursor.Simple.Forest.Gen=cursor-gen-0.4.0.0-AF3KCLruzAw4Qb4LWx0JC3:Cursor.Simple.Forest.Gen,Cursor.Simple.List.NonEmpty.Gen=cursor-gen-0.4.0.0-AF3KCLruzAw4Qb4LWx0JC3:Cursor.Simple.List.NonEmpty.Gen,Cursor.Simple.Map.Gen=cursor-gen-0.4.0.0-AF3KCLruzAw4Qb4LWx0JC3:Cursor.Simple.Map.Gen,Cursor.Simple.Map.KeyValue.Gen=cursor-gen-0.4.0.0-AF3KCLruzAw4Qb4LWx0JC3:Cursor.Simple.Map.KeyValue.Gen,Cursor.Simple.Tree.Gen=cursor-gen-0.4.0.0-AF3KCLruzAw4Qb4LWx0JC3:Cursor.Simple.Tree.Gen,Cursor.Text.Gen=cursor-gen-0.4.0.0-AF3KCLruzAw4Qb4LWx0JC3:Cursor.Text.Gen,Cursor.TextField.Gen=cursor-gen-0.4.0.0-AF3KCLruzAw4Qb4LWx0JC3:Cursor.TextField.Gen,Cursor.Tree.Gen=cursor-gen-0.4.0.0-AF3KCLruzAw4Qb4LWx0JC3:Cursor.Tree.Gen
37.86 s
[cursor-gen] unit cursor-gen-0.4.0.0-IDYxMXykrKH5pQJHxqmy4K-cursor-test
37.86 s
[cursor-gen] include QuickCheck-2.14.3-827hvYtscdr2IanDOJjWgT
37.86 s
[cursor-gen] include base-4.19.2.0-213b
37.86 s
[cursor-gen] include containers-0.6.8-70da
37.86 s
[cursor-gen] include cursor-0.3.2.0-5gxcwywD2RVDx0O9FfmDrl
37.86 s
[cursor-gen] include cursor-gen-0.4.0.0-AF3KCLruzAw4Qb4LWx0JC3
37.86 s
[cursor-gen] include genvalidity-hspec-1.0.0.3-9ltNlGAvr8vJGdAZFztilS
37.86 s
[cursor-gen] include genvalidity-hspec-optics-1.0.0.0-CcsVw7NqK9k6Vs2hj7Y1GQ
37.86 s
[cursor-gen] include hspec-2.11.12-K7qSIvutqLZ9LMAKH045Vj
37.86 s
[cursor-gen] include microlens-0.4.13.1-1JnoFfAQlYv2GxkbObuU5m
37.86 s
[cursor-gen] include pretty-show-1.10-FWHtJzTIzA7DghMPc6tVx7
37.86 s
[cursor-gen] include text-2.1.1-c123
37.86 s
[cursor-gen] Ready component graph:
37.86 s
[cursor-gen] definite cursor-gen-0.4.0.0-AF3KCLruzAw4Qb4LWx0JC3
37.86 s
[cursor-gen] depends QuickCheck-2.14.3-827hvYtscdr2IanDOJjWgT
37.86 s
[cursor-gen] depends base-4.19.2.0-213b
37.86 s
[cursor-gen] depends containers-0.6.8-70da
37.86 s
[cursor-gen] depends cursor-0.3.2.0-5gxcwywD2RVDx0O9FfmDrl
37.86 s
[cursor-gen] depends genvalidity-1.1.1.0-KyNgGPmiy3sAHfTMB2sHim
37.86 s
[cursor-gen] depends genvalidity-containers-1.0.0.2-GNNZACt1U6A8DkpcU8B9Cj
37.86 s
[cursor-gen] depends genvalidity-text-1.0.0.1-3oKboUjEVAkDFEZMvVcMAx
37.86 s
[cursor-gen] depends text-2.1.1-c123
37.86 s
[cursor-gen] definite cursor-gen-0.4.0.0-IDYxMXykrKH5pQJHxqmy4K-cursor-test
37.86 s
[cursor-gen] depends QuickCheck-2.14.3-827hvYtscdr2IanDOJjWgT
37.86 s
[cursor-gen] depends base-4.19.2.0-213b
37.86 s
[cursor-gen] depends containers-0.6.8-70da
37.86 s
[cursor-gen] depends cursor-0.3.2.0-5gxcwywD2RVDx0O9FfmDrl
37.86 s
[cursor-gen] depends cursor-gen-0.4.0.0-AF3KCLruzAw4Qb4LWx0JC3
37.86 s
[cursor-gen] depends genvalidity-hspec-1.0.0.3-9ltNlGAvr8vJGdAZFztilS
37.86 s
[cursor-gen] depends genvalidity-hspec-optics-1.0.0.0-CcsVw7NqK9k6Vs2hj7Y1GQ
37.86 s
[cursor-gen] depends hspec-2.11.12-K7qSIvutqLZ9LMAKH045Vj
37.86 s
[cursor-gen] depends microlens-0.4.13.1-1JnoFfAQlYv2GxkbObuU5m
37.86 s
[cursor-gen] depends pretty-show-1.10-FWHtJzTIzA7DghMPc6tVx7
37.86 s
[cursor-gen] depends text-2.1.1-c123
37.86 s
[cursor-gen] Using Cabal-3.10.3.0 compiled by ghc-9.8
37.86 s
[cursor-gen] Using compiler: ghc-9.8.4
37.86 s
[cursor-gen] Using install prefix:
37.86 s
[cursor-gen] /nix/store/ssqxavqs2zqy8z3iz6zhwkq3xg8vxr5y-cursor-gen-0.4.0.0
37.86 s
[cursor-gen] Executables installed in:
37.86 s
[cursor-gen] /nix/store/ssqxavqs2zqy8z3iz6zhwkq3xg8vxr5y-cursor-gen-0.4.0.0/bin
37.86 s
[cursor-gen] Libraries installed in:
37.86 s
[cursor-gen] /nix/store/ssqxavqs2zqy8z3iz6zhwkq3xg8vxr5y-cursor-gen-0.4.0.0/lib/ghc-9.8.4/lib/x86_64-linux-ghc-9.8.4/cursor-gen-0.4.0.0-AF3KCLruzAw4Qb4LWx0JC3
37.86 s
[cursor-gen] Dynamic Libraries installed in:
37.86 s
[cursor-gen] /nix/store/ssqxavqs2zqy8z3iz6zhwkq3xg8vxr5y-cursor-gen-0.4.0.0/lib/ghc-9.8.4/lib/x86_64-linux-ghc-9.8.4
37.86 s
[cursor-gen] Private executables installed in:
37.86 s
[cursor-gen] /nix/store/ssqxavqs2zqy8z3iz6zhwkq3xg8vxr5y-cursor-gen-0.4.0.0/libexec/x86_64-linux-ghc-9.8.4/cursor-gen-0.4.0.0
37.86 s
[cursor-gen] Data files installed in:
37.86 s
[cursor-gen] /nix/store/ssqxavqs2zqy8z3iz6zhwkq3xg8vxr5y-cursor-gen-0.4.0.0/share/x86_64-linux-ghc-9.8.4/cursor-gen-0.4.0.0
37.86 s
[cursor-gen] Documentation installed in:
37.86 s
[cursor-gen] /nix/store/bqf2k803xnkq9j31nm64lvz8v9v8n0hd-cursor-gen-0.4.0.0-doc/share/doc/cursor-gen-0.4.0.0
37.86 s
[cursor-gen] Configuration files installed in:
37.86 s
[cursor-gen] /nix/store/ssqxavqs2zqy8z3iz6zhwkq3xg8vxr5y-cursor-gen-0.4.0.0/etc
37.86 s
[cursor-gen] No alex found
37.86 s
[cursor-gen] Using ar found on system at:
37.86 s
[cursor-gen] /nix/store/hhfm5fkvb1alg1np5a69m2qlcjqhr062-binutils-wrapper-2.44/bin/ar
37.86 s
[cursor-gen] No c2hs found
37.86 s
[cursor-gen] No cpphs found
37.86 s
[cursor-gen] No doctest found
37.86 s
[cursor-gen] Using gcc version 14.2.1 given by user at:
37.86 s
[cursor-gen] /nix/store/0fsnicvfpf55nkza12cjnad0w84d6ba7-gcc-wrapper-14.2.1.20250322/bin/gcc
37.86 s
[cursor-gen] Using ghc version 9.8.4 found on system at:
37.86 s
[cursor-gen] /nix/store/xmvlqc3f0sfij7083klg3z6i4yr4rvsz-ghc-9.8.4/bin/ghc
37.86 s
[cursor-gen] Using ghc-pkg version 9.8.4 found on system at:
37.86 s
[cursor-gen] /nix/store/xmvlqc3f0sfij7083klg3z6i4yr4rvsz-ghc-9.8.4/bin/ghc-pkg-9.8.4
37.86 s
[cursor-gen] No ghcjs found
37.86 s
[cursor-gen] No ghcjs-pkg found
37.86 s
[cursor-gen] No greencard found
37.86 s
[cursor-gen] Using haddock version 2.30.0 found on system at:
37.86 s
[cursor-gen] /nix/store/xmvlqc3f0sfij7083klg3z6i4yr4rvsz-ghc-9.8.4/bin/haddock-ghc-9.8.4
37.86 s
[cursor-gen] No happy found
37.86 s
[cursor-gen] Using haskell-suite found on system at: haskell-suite-dummy-location
37.86 s
[cursor-gen] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
37.86 s
[cursor-gen] No hmake found
37.86 s
[cursor-gen] Using hpc version 0.69 found on system at:
37.86 s
[cursor-gen] /nix/store/xmvlqc3f0sfij7083klg3z6i4yr4rvsz-ghc-9.8.4/bin/hpc-ghc-9.8.4
37.86 s
[cursor-gen] Using hsc2hs version 0.68.10 found on system at:
37.86 s
[cursor-gen] /nix/store/xmvlqc3f0sfij7083klg3z6i4yr4rvsz-ghc-9.8.4/bin/hsc2hs-ghc-9.8.4
37.86 s
[cursor-gen] Using hscolour version 1.25 found on system at:
37.86 s
[cursor-gen] /nix/store/73cxm2im955zxgj14s66rfk0yjqlcapx-hscolour-1.25/bin/HsColour
37.86 s
[cursor-gen] No jhc found
37.86 s
[cursor-gen] Using ld found on system at:
37.86 s
[cursor-gen] /nix/store/hhfm5fkvb1alg1np5a69m2qlcjqhr062-binutils-wrapper-2.44/bin/ld.gold
37.86 s
[cursor-gen] No pkg-config found
37.86 s
[cursor-gen] Using runghc version 9.8.4 found on system at:
37.86 s
[cursor-gen] /nix/store/xmvlqc3f0sfij7083klg3z6i4yr4rvsz-ghc-9.8.4/bin/runghc-9.8.4
37.86 s
[cursor-gen] Using strip version 2.44 found on system at:
37.86 s
[cursor-gen] /nix/store/0fsnicvfpf55nkza12cjnad0w84d6ba7-gcc-wrapper-14.2.1.20250322/bin/strip
37.86 s
[cursor-gen] Using tar found on system at:
37.86 s
[cursor-gen] /nix/store/wrxvqj822kz8746608lgns7h8mkpn79f-gnutar-1.35/bin/tar
37.86 s
[cursor-gen] No uhc found
37.97 s
[cursor-gen] Phase: buildPhase
38.01 s
[cursor-gen] Preprocessing library for cursor-gen-0.4.0.0..
38.02 s
[cursor-gen] Building library for cursor-gen-0.4.0.0..
38.10 s
[cursor-gen] [ 1 of 14] Compiling Cursor.List.Gen ( src/Cursor/List/Gen.hs, dist/build/Cursor/List/Gen.o, dist/build/Cursor/List/Gen.dyn_o )
38.32 s
[cursor-gen] [ 2 of 14] Compiling Cursor.List.NonEmpty.Gen ( src/Cursor/List/NonEmpty/Gen.hs, dist/build/Cursor/List/NonEmpty/Gen.o, dist/build/Cursor/List/NonEmpty/Gen.dyn_o )
38.49 s
[cursor-gen] [ 3 of 14] Compiling Cursor.Map.KeyValue.Gen ( src/Cursor/Map/KeyValue/Gen.hs, dist/build/Cursor/Map/KeyValue/Gen.o, dist/build/Cursor/Map/KeyValue/Gen.dyn_o )
38.49 s
[cursor-gen] [ 4 of 14] Compiling Cursor.Map.Gen ( src/Cursor/Map/Gen.hs, dist/build/Cursor/Map/Gen.o, dist/build/Cursor/Map/Gen.dyn_o )
38.57 s
[cursor-gen] [ 5 of 14] Compiling Cursor.Simple.List.NonEmpty.Gen ( src/Cursor/Simple/List/NonEmpty/Gen.hs, dist/build/Cursor/Simple/List/NonEmpty/Gen.o, dist/build/Cursor/Simple/List/NonEmpty/Gen.dyn_o )
38.57 s
[cursor-gen] [ 6 of 14] Compiling Cursor.Simple.Map.Gen ( src/Cursor/Simple/Map/Gen.hs, dist/build/Cursor/Simple/Map/Gen.o, dist/build/Cursor/Simple/Map/Gen.dyn_o )
38.59 s
[cursor-gen] [ 7 of 14] Compiling Cursor.Simple.Map.KeyValue.Gen ( src/Cursor/Simple/Map/KeyValue/Gen.hs, dist/build/Cursor/Simple/Map/KeyValue/Gen.o, dist/build/Cursor/Simple/Map/KeyValue/Gen.dyn_o )
38.59 s
[cursor-gen] [ 8 of 14] Compiling Cursor.Text.Gen ( src/Cursor/Text/Gen.hs, dist/build/Cursor/Text/Gen.o, dist/build/Cursor/Text/Gen.dyn_o )
38.59 s
[cursor-gen] [ 9 of 14] Compiling Cursor.TextField.Gen ( src/Cursor/TextField/Gen.hs, dist/build/Cursor/TextField/Gen.o, dist/build/Cursor/TextField/Gen.dyn_o )
38.59 s
[cursor-gen] [10 of 14] Compiling Cursor.Tree.Gen ( src/Cursor/Tree/Gen.hs, dist/build/Cursor/Tree/Gen.o, dist/build/Cursor/Tree/Gen.dyn_o )
38.81 s
[cursor-gen] [11 of 14] Compiling Cursor.Simple.Tree.Gen ( src/Cursor/Simple/Tree/Gen.hs, dist/build/Cursor/Simple/Tree/Gen.o, dist/build/Cursor/Simple/Tree/Gen.dyn_o )
38.83 s
[cursor-gen] [12 of 14] Compiling Cursor.Forest.Gen ( src/Cursor/Forest/Gen.hs, dist/build/Cursor/Forest/Gen.o, dist/build/Cursor/Forest/Gen.dyn_o )
38.84 s
[cursor-gen] [13 of 14] Compiling Cursor.Simple.Forest.Gen ( src/Cursor/Simple/Forest/Gen.hs, dist/build/Cursor/Simple/Forest/Gen.o, dist/build/Cursor/Simple/Forest/Gen.dyn_o )
38.86 s
[cursor-gen] [14 of 14] Compiling Paths_cursor_gen ( dist/build/autogen/Paths_cursor_gen.hs, dist/build/Paths_cursor_gen.o, dist/build/Paths_cursor_gen.dyn_o )
39.05 s
[cursor-gen] [ 1 of 14] Compiling Cursor.List.Gen ( src/Cursor/List/Gen.hs, dist/build/Cursor/List/Gen.p_o )
39.30 s
[cursor-gen] [ 2 of 14] Compiling Cursor.List.NonEmpty.Gen ( src/Cursor/List/NonEmpty/Gen.hs, dist/build/Cursor/List/NonEmpty/Gen.p_o )
39.46 s
[cursor-gen] [ 3 of 14] Compiling Cursor.Map.KeyValue.Gen ( src/Cursor/Map/KeyValue/Gen.hs, dist/build/Cursor/Map/KeyValue/Gen.p_o )
39.46 s
[cursor-gen] [ 4 of 14] Compiling Cursor.Map.Gen ( src/Cursor/Map/Gen.hs, dist/build/Cursor/Map/Gen.p_o )
39.62 s
[cursor-gen] [ 5 of 14] Compiling Cursor.Simple.List.NonEmpty.Gen ( src/Cursor/Simple/List/NonEmpty/Gen.hs, dist/build/Cursor/Simple/List/NonEmpty/Gen.p_o )
39.62 s
[cursor-gen] [ 6 of 14] Compiling Cursor.Simple.Map.Gen ( src/Cursor/Simple/Map/Gen.hs, dist/build/Cursor/Simple/Map/Gen.p_o )
39.71 s
[cursor-gen] [ 7 of 14] Compiling Cursor.Simple.Map.KeyValue.Gen ( src/Cursor/Simple/Map/KeyValue/Gen.hs, dist/build/Cursor/Simple/Map/KeyValue/Gen.p_o )
39.72 s
[cursor-gen] [ 8 of 14] Compiling Cursor.Text.Gen ( src/Cursor/Text/Gen.hs, dist/build/Cursor/Text/Gen.p_o )
39.72 s
[cursor-gen] [ 9 of 14] Compiling Cursor.TextField.Gen ( src/Cursor/TextField/Gen.hs, dist/build/Cursor/TextField/Gen.p_o )
39.72 s
[cursor-gen] [10 of 14] Compiling Cursor.Tree.Gen ( src/Cursor/Tree/Gen.hs, dist/build/Cursor/Tree/Gen.p_o )
39.77 s
[cursor-gen] [11 of 14] Compiling Cursor.Simple.Tree.Gen ( src/Cursor/Simple/Tree/Gen.hs, dist/build/Cursor/Simple/Tree/Gen.p_o )
39.99 s
[cursor-gen] [12 of 14] Compiling Cursor.Forest.Gen ( src/Cursor/Forest/Gen.hs, dist/build/Cursor/Forest/Gen.p_o )
39.99 s
[cursor-gen] [13 of 14] Compiling Cursor.Simple.Forest.Gen ( src/Cursor/Simple/Forest/Gen.hs, dist/build/Cursor/Simple/Forest/Gen.p_o )
40.08 s
[cursor-gen] [14 of 14] Compiling Paths_cursor_gen ( dist/build/autogen/Paths_cursor_gen.hs, dist/build/Paths_cursor_gen.p_o )
41.12 s
[cursor-gen] Preprocessing test suite 'cursor-test' for cursor-gen-0.4.0.0..
41.12 s
[cursor-gen] Building test suite 'cursor-test' for cursor-gen-0.4.0.0..
41.24 s
[cursor-gen] [ 1 of 22] Compiling Cursor.List.NonEmptySpec ( test/Cursor/List/NonEmptySpec.hs, dist/build/cursor-test/cursor-test-tmp/Cursor/List/NonEmptySpec.o )
42.18 s
[cursor-gen] [ 2 of 22] Compiling Cursor.ListSpec ( test/Cursor/ListSpec.hs, dist/build/cursor-test/cursor-test-tmp/Cursor/ListSpec.o )
43.27 s
[cursor-gen] [ 3 of 22] Compiling Cursor.Map.KeyValueSpec ( test/Cursor/Map/KeyValueSpec.hs, dist/build/cursor-test/cursor-test-tmp/Cursor/Map/KeyValueSpec.o )
43.32 s
[cursor-gen] [ 4 of 22] Compiling Cursor.MapSpec ( test/Cursor/MapSpec.hs, dist/build/cursor-test/cursor-test-tmp/Cursor/MapSpec.o )
43.32 s
[cursor-gen] [ 5 of 22] Compiling Cursor.Simple.ForestSpec ( test/Cursor/Simple/ForestSpec.hs, dist/build/cursor-test/cursor-test-tmp/Cursor/Simple/ForestSpec.o )
45.30 s
[cursor-gen] [ 6 of 22] Compiling Cursor.Simple.List.NonEmptySpec ( test/Cursor/Simple/List/NonEmptySpec.hs, dist/build/cursor-test/cursor-test-tmp/Cursor/Simple/List/NonEmptySpec.o )
45.30 s
[cursor-gen] [ 7 of 22] Compiling Cursor.Simple.Map.KeyValueSpec ( test/Cursor/Simple/Map/KeyValueSpec.hs, dist/build/cursor-test/cursor-test-tmp/Cursor/Simple/Map/KeyValueSpec.o )
45.30 s
[cursor-gen] [ 8 of 22] Compiling Cursor.Simple.MapSpec ( test/Cursor/Simple/MapSpec.hs, dist/build/cursor-test/cursor-test-tmp/Cursor/Simple/MapSpec.o )
45.30 s
[cursor-gen] [ 9 of 22] Compiling Cursor.Simple.Tree.CollapseSpec ( test/Cursor/Simple/Tree/CollapseSpec.hs, dist/build/cursor-test/cursor-test-tmp/Cursor/Simple/Tree/CollapseSpec.o )
45.30 s
[cursor-gen] [10 of 22] Compiling Cursor.Simple.Tree.InsertSpec ( test/Cursor/Simple/Tree/InsertSpec.hs, dist/build/cursor-test/cursor-test-tmp/Cursor/Simple/Tree/InsertSpec.o )
45.30 s
[cursor-gen] [11 of 22] Compiling Cursor.Simple.Tree.TestUtils ( test/Cursor/Simple/Tree/TestUtils.hs, dist/build/cursor-test/cursor-test-tmp/Cursor/Simple/Tree/TestUtils.o )
45.30 s
[cursor-gen] [12 of 22] Compiling Cursor.Simple.Tree.SwapSpec ( test/Cursor/Simple/Tree/SwapSpec.hs, dist/build/cursor-test/cursor-test-tmp/Cursor/Simple/Tree/SwapSpec.o )
45.30 s
[cursor-gen] [13 of 22] Compiling Cursor.Simple.Tree.PromoteSpec ( test/Cursor/Simple/Tree/PromoteSpec.hs, dist/build/cursor-test/cursor-test-tmp/Cursor/Simple/Tree/PromoteSpec.o )
45.30 s
[cursor-gen] [14 of 22] Compiling Cursor.Simple.Tree.MovementSpec ( test/Cursor/Simple/Tree/MovementSpec.hs, dist/build/cursor-test/cursor-test-tmp/Cursor/Simple/Tree/MovementSpec.o )
45.30 s
[cursor-gen] [15 of 22] Compiling Cursor.Simple.Tree.DemoteSpec ( test/Cursor/Simple/Tree/DemoteSpec.hs, dist/build/cursor-test/cursor-test-tmp/Cursor/Simple/Tree/DemoteSpec.o )
45.30 s
[cursor-gen] [16 of 22] Compiling Cursor.Simple.Tree.DeleteSpec ( test/Cursor/Simple/Tree/DeleteSpec.hs, dist/build/cursor-test/cursor-test-tmp/Cursor/Simple/Tree/DeleteSpec.o )
45.30 s
[cursor-gen] [17 of 22] Compiling Cursor.Simple.Tree.BaseSpec ( test/Cursor/Simple/Tree/BaseSpec.hs, dist/build/cursor-test/cursor-test-tmp/Cursor/Simple/Tree/BaseSpec.o )
45.30 s
[cursor-gen] [18 of 22] Compiling Cursor.TextFieldSpec ( test/Cursor/TextFieldSpec.hs, dist/build/cursor-test/cursor-test-tmp/Cursor/TextFieldSpec.o )
45.30 s
[cursor-gen] [19 of 22] Compiling Cursor.TextSpec ( test/Cursor/TextSpec.hs, dist/build/cursor-test/cursor-test-tmp/Cursor/TextSpec.o )
45.38 s
[cursor-gen] [20 of 22] Compiling Cursor.Tree.TypesSpec ( test/Cursor/Tree/TypesSpec.hs, dist/build/cursor-test/cursor-test-tmp/Cursor/Tree/TypesSpec.o )
45.38 s
[cursor-gen] [21 of 22] Compiling Main ( test/Spec.hs, dist/build/cursor-test/cursor-test-tmp/Main.o )
45.39 s
[cursor-gen] [22 of 22] Compiling Paths_cursor_gen ( dist/build/cursor-test/autogen/Paths_cursor_gen.hs, dist/build/cursor-test/cursor-test-tmp/Paths_cursor_gen.o )
45.69 s
[cursor-gen] [23 of 23] Linking dist/build/cursor-test/cursor-test
46.56 s
[cursor-gen] Phase: checkPhase
46.59 s
[cursor-gen] Running 1 test suites...
46.59 s
[cursor-gen] Test suite cursor-test: RUNNING...
46.63 s
[cursor-gen]
46.64 s
[cursor-gen] Cursor.List
46.64 s
[cursor-gen] Eq (ListCursor Bool)
46.64 s
[cursor-gen] (==) :: (ListCursor Bool) -> (ListCursor Bool) -> Bool
46.64 s
[cursor-gen] is reflexive for "valid (ListCursor Bool)"s [✔]
46.64 s
[cursor-gen] +++ OK, passed 100 tests.
46.64 s
[cursor-gen] is symmetric for "valid (ListCursor Bool)"s [✔]
46.64 s
[cursor-gen] +++ OK, passed 100 tests.
46.64 s
[cursor-gen] is transitive for "valid (ListCursor Bool)"s [✔]
46.64 s
[cursor-gen] +++ OK, passed 100 tests.
46.64 s
[cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid (ListCursor Bool)"s [✔]
46.64 s
[cursor-gen] +++ OK, passed 100 tests.
46.64 s
[cursor-gen] (/=) :: (ListCursor Bool) -> (ListCursor Bool) -> Bool
46.64 s
[cursor-gen] is antireflexive for "valid (ListCursor Bool)"s [✔]
46.64 s
[cursor-gen] +++ OK, passed 100 tests.
46.64 s
[cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid (ListCursor Bool)"s [✔]
46.64 s
[cursor-gen] +++ OK, passed 100 tests.
46.64 s
[cursor-gen] Functor ListCursor
46.64 s
[cursor-gen] fmap :: (a -> b) -> ListCursor a -> ListCursor b
46.64 s
[cursor-gen] satisfies the first Fuctor law: 'fmap id == id' for "ListCursor of ints :: (ListCursor Int)" [✔]
46.64 s
[cursor-gen] +++ OK, passed 100 tests.
46.64 s
[cursor-gen] satisfieds the second Functor law: 'fmap (f . g) == fmap f . fmap g' for "ListCursor of ints :: (ListCursor Int)" 's given to "increments :: (Int -> Int)" and "scalings :: (Int -> Int)" [✔]
46.64 s
[cursor-gen] +++ OK, passed 100 tests.
46.64 s
[cursor-gen] (<$) :: a -> ListCursor b -> ListCursor a
46.64 s
[cursor-gen] is equivalent to its default implementation for "int :: Int" and "ListCursor of ints :: (ListCursor Int)" [✔]
46.64 s
[cursor-gen] +++ OK, passed 100 tests.
46.64 s
[cursor-gen] GenValid (ListCursor Bool)
46.64 s
[cursor-gen] genValid :: Gen (ListCursor Bool)
46.64 s
[cursor-gen] only generates valid '(ListCursor Bool)'s [✔]
46.64 s
[cursor-gen] +++ OK, passed 100 tests.
46.64 s
[cursor-gen] emptyListCursor
46.64 s
[cursor-gen] is valid [✔]
46.64 s
[cursor-gen] makeListCursor
46.64 s
[cursor-gen] produces valid list cursors [✔]
46.64 s
[cursor-gen] +++ OK, passed 100 tests.
46.64 s
[cursor-gen] makeListCursorWithSelection
46.64 s
[cursor-gen] produces valid list cursors [✔]
46.64 s
[cursor-gen] +++ OK, passed 100 tests.
46.65 s
[cursor-gen] rebuildListCursor
46.65 s
[cursor-gen] produces valid lists [✔]
46.65 s
[cursor-gen] +++ OK, passed 100 tests.
46.65 s
[cursor-gen] is the inverse of makeListCursor [✔]
46.65 s
[cursor-gen] +++ OK, passed 100 tests.
46.65 s
[cursor-gen] is the inverse of makeListCursorWithSelection for any index [✔]
46.65 s
[cursor-gen] +++ OK, passed 100 tests.
46.65 s
[cursor-gen] listCursorNull
46.65 s
[cursor-gen] produces valid bools [✔]
46.65 s
[cursor-gen] +++ OK, passed 100 tests.
46.65 s
[cursor-gen] listCursorLength
46.65 s
[cursor-gen] produces valid bools [✔]
46.65 s
[cursor-gen] +++ OK, passed 100 tests.
46.65 s
[cursor-gen] listCursorIndex
46.65 s
[cursor-gen] produces valid indices [✔]
46.65 s
[cursor-gen] +++ OK, passed 100 tests.
46.65 s
[cursor-gen] listCursorSelectPrev
46.65 s
[cursor-gen] produces valid cursors [✔]
46.65 s
[cursor-gen] +++ OK, passed 100 tests.
46.65 s
[cursor-gen] is a movement [✔]
46.65 s
[cursor-gen] +++ OK, passed 100 tests.
46.65 s
[cursor-gen] selects the previous position [‐]
46.65 s
[cursor-gen] # PENDING: No reason given
46.65 s
[cursor-gen] listCursorSelectNext
46.65 s
[cursor-gen] produces valid cursors [✔]
46.65 s
[cursor-gen] +++ OK, passed 100 tests.
46.65 s
[cursor-gen] is a movement [✔]
46.65 s
[cursor-gen] +++ OK, passed 100 tests.
46.65 s
[cursor-gen] selects the next position [‐]
46.65 s
[cursor-gen] # PENDING: No reason given
46.65 s
[cursor-gen] listCursorSelectIndex
46.65 s
[cursor-gen] produces valid cursors [✔]
46.65 s
[cursor-gen] +++ OK, passed 100 tests.
46.65 s
[cursor-gen] is a movement [✔]
46.65 s
[cursor-gen] +++ OK, passed 100 tests.
46.65 s
[cursor-gen] selects the position at the given index [‐]
46.65 s
[cursor-gen] # PENDING: No reason given
46.65 s
[cursor-gen] listCursorPrevItem
46.65 s
[cursor-gen] produces valid items [✔]
46.65 s
[cursor-gen] +++ OK, passed 100 tests.
46.65 s
[cursor-gen] returns the item before the position [‐]
46.65 s
[cursor-gen] # PENDING: No reason given
46.65 s
[cursor-gen] listCursorNextItem
46.66 s
[cursor-gen] produces valid items [✔]
46.66 s
[cursor-gen] +++ OK, passed 100 tests.
46.66 s
[cursor-gen] returns the item after the position [‐]
46.66 s
[cursor-gen] # PENDING: No reason given
46.66 s
[cursor-gen] listCursorPrevUntil
46.66 s
[cursor-gen] produces valid cursors [✔]
46.66 s
[cursor-gen] +++ OK, passed 100 tests.
46.66 s
[cursor-gen] produces a cursor where the previous item either satisfies the predicate or is empty [✔]
46.66 s
[cursor-gen] +++ OK, passed 100 tests.
46.66 s
[cursor-gen] listCursorNextUntil
46.66 s
[cursor-gen] produces valid cursors [✔]
46.66 s
[cursor-gen] +++ OK, passed 100 tests.
46.66 s
[cursor-gen] produces a cursor where the previous item either satisfies the predicate or is empty [✔]
46.66 s
[cursor-gen] +++ OK, passed 100 tests.
46.66 s
[cursor-gen] listCursorSelectStart
46.66 s
[cursor-gen] produces valid cursors [✔]
46.66 s
[cursor-gen] +++ OK, passed 100 tests.
46.66 s
[cursor-gen] is a movement [✔]
46.66 s
[cursor-gen] +++ OK, passed 100 tests.
46.66 s
[cursor-gen] is idempotent [✔]
46.66 s
[cursor-gen] +++ OK, passed 100 tests.
46.66 s
[cursor-gen] selects the starting position [‐]
46.66 s
[cursor-gen] # PENDING: No reason given
46.66 s
[cursor-gen] listCursorSelectEnd
46.66 s
[cursor-gen] produces valid cursors [✔]
46.66 s
[cursor-gen] +++ OK, passed 100 tests.
46.66 s
[cursor-gen] is a movement [✔]
46.66 s
[cursor-gen] +++ OK, passed 100 tests.
46.66 s
[cursor-gen] is idempotent [✔]
46.66 s
[cursor-gen] +++ OK, passed 100 tests.
46.66 s
[cursor-gen] selects the end position [‐]
46.66 s
[cursor-gen] # PENDING: No reason given
46.66 s
[cursor-gen] listCursorInsert
46.66 s
[cursor-gen] produces valids [✔]
46.66 s
[cursor-gen] +++ OK, passed 100 tests.
46.66 s
[cursor-gen] inserts an item before the cursor [‐]
46.66 s
[cursor-gen] # PENDING: No reason given
46.66 s
[cursor-gen] listCursorAppend
46.66 s
[cursor-gen] produces valids [✔]
46.66 s
[cursor-gen] +++ OK, passed 100 tests.
46.66 s
[cursor-gen] inserts an item after the cursor [‐]
46.66 s
[cursor-gen] # PENDING: No reason given
46.66 s
[cursor-gen] listCursorInsertList
46.67 s
[cursor-gen] produces valids [✔]
46.67 s
[cursor-gen] +++ OK, passed 100 tests.
46.67 s
[cursor-gen] listCursorAppendList
46.67 s
[cursor-gen] produces valids [✔]
46.67 s
[cursor-gen] +++ OK, passed 100 tests.
46.67 s
[cursor-gen] listCursorRemove
46.67 s
[cursor-gen] produces valids [✔]
46.67 s
[cursor-gen] +++ OK, passed 100 tests.
46.67 s
[cursor-gen] removes an item before the cursor [‐]
46.67 s
[cursor-gen] # PENDING: No reason given
46.67 s
[cursor-gen] listCursorDelete
46.67 s
[cursor-gen] produces valids [✔]
46.67 s
[cursor-gen] +++ OK, passed 100 tests.
46.67 s
[cursor-gen] removes an item before the cursor [‐]
46.67 s
[cursor-gen] # PENDING: No reason given
46.67 s
[cursor-gen] listCursorSplit
46.67 s
[cursor-gen] produces valids [✔]
46.67 s
[cursor-gen] +++ OK, passed 100 tests.
46.67 s
[cursor-gen] produces two list cursors that rebuild to the rebuilding of the original [✔]
46.67 s
[cursor-gen] +++ OK, passed 100 tests.
46.67 s
[cursor-gen] listCursorCombine
46.67 s
[cursor-gen] produces valids [✔]
46.67 s
[cursor-gen] +++ OK, passed 100 tests.
46.67 s
[cursor-gen] produces a list that rebuilds to the rebuilding of the original two cursors [✔]
46.67 s
[cursor-gen] +++ OK, passed 100 tests.
46.67 s
[cursor-gen] Cursor.List.NonEmpty
46.67 s
[cursor-gen] nonemptyPrepend
46.67 s
[cursor-gen] is equivalent to regular prepend [✔]
46.67 s
[cursor-gen] +++ OK, passed 100 tests.
46.67 s
[cursor-gen] nonemptyAppend
46.67 s
[cursor-gen] is equivalent to regular append [✔]
46.67 s
[cursor-gen] +++ OK, passed 100 tests.
46.67 s
[cursor-gen] Cursor.Map
46.67 s
[cursor-gen] Eq (MapCursor Bool Bool Bool Bool)
46.67 s
[cursor-gen] (==) :: (MapCursor Bool Bool Bool Bool) -> (MapCursor Bool Bool Bool Bool) -> Bool
46.67 s
[cursor-gen] is reflexive for "valid (MapCursor Bool Bool Bool Bool)"s [✔]
46.67 s
[cursor-gen] +++ OK, passed 100 tests.
46.67 s
[cursor-gen] is symmetric for "valid (MapCursor Bool Bool Bool Bool)"s [✔]
46.67 s
[cursor-gen] +++ OK, passed 100 tests.
46.67 s
[cursor-gen] is transitive for "valid (MapCursor Bool Bool Bool Bool)"s [✔]
46.67 s
[cursor-gen] +++ OK, passed 100 tests.
46.67 s
[cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid (MapCursor Bool Bool Bool Bool)"s [✔]
46.67 s
[cursor-gen] +++ OK, passed 100 tests.
46.67 s
[cursor-gen] (/=) :: (MapCursor Bool Bool Bool Bool) -> (MapCursor Bool Bool Bool Bool) -> Bool
46.67 s
[cursor-gen] is antireflexive for "valid (MapCursor Bool Bool Bool Bool)"s [✔]
46.67 s
[cursor-gen] +++ OK, passed 100 tests.
46.67 s
[cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid (MapCursor Bool Bool Bool Bool)"s [✔]
46.67 s
[cursor-gen] +++ OK, passed 100 tests.
46.67 s
[cursor-gen] GenValid (MapCursor Bool Bool Bool Bool)
46.67 s
[cursor-gen] genValid :: Gen (MapCursor Bool Bool Bool Bool)
46.67 s
[cursor-gen] only generates valid '(MapCursor Bool Bool Bool Bool)'s [✔]
46.67 s
[cursor-gen] +++ OK, passed 100 tests.
46.67 s
[cursor-gen] Cursor.Map.KeyValue
46.67 s
[cursor-gen] Eq (KeyValueCursor Bool Bool Bool Bool)
46.67 s
[cursor-gen] (==) :: (KeyValueCursor Bool Bool Bool Bool) -> (KeyValueCursor Bool Bool Bool Bool) -> Bool
46.67 s
[cursor-gen] is reflexive for "valid (KeyValueCursor Bool Bool Bool Bool)"s [✔]
46.67 s
[cursor-gen] +++ OK, passed 100 tests.
46.67 s
[cursor-gen] is symmetric for "valid (KeyValueCursor Bool Bool Bool Bool)"s [✔]
46.67 s
[cursor-gen] +++ OK, passed 100 tests.
46.67 s
[cursor-gen] is transitive for "valid (KeyValueCursor Bool Bool Bool Bool)"s [✔]
46.67 s
[cursor-gen] +++ OK, passed 100 tests.
46.67 s
[cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid (KeyValueCursor Bool Bool Bool Bool)"s [✔]
46.67 s
[cursor-gen] +++ OK, passed 100 tests.
46.67 s
[cursor-gen] (/=) :: (KeyValueCursor Bool Bool Bool Bool) -> (KeyValueCursor Bool Bool Bool Bool) -> Bool
46.67 s
[cursor-gen] is antireflexive for "valid (KeyValueCursor Bool Bool Bool Bool)"s [✔]
46.67 s
[cursor-gen] +++ OK, passed 100 tests.
46.67 s
[cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid (KeyValueCursor Bool Bool Bool Bool)"s [✔]
46.67 s
[cursor-gen] +++ OK, passed 100 tests.
46.67 s
[cursor-gen] GenValid (KeyValueCursor Bool Bool Bool Bool)
46.67 s
[cursor-gen] genValid :: Gen (KeyValueCursor Bool Bool Bool Bool)
46.67 s
[cursor-gen] only generates valid '(KeyValueCursor Bool Bool Bool Bool)'s [✔]
46.67 s
[cursor-gen] +++ OK, passed 100 tests.
46.68 s
[cursor-gen] Eq KeyValueToggle
46.68 s
[cursor-gen] (==) :: KeyValueToggle -> KeyValueToggle -> Bool
46.68 s
[cursor-gen] is reflexive for "valid KeyValueToggle"s [✔]
46.68 s
[cursor-gen] +++ OK, passed 100 tests.
46.68 s
[cursor-gen] is symmetric for "valid KeyValueToggle"s [✔]
46.68 s
[cursor-gen] +++ OK, passed 100 tests.
46.68 s
[cursor-gen] is transitive for "valid KeyValueToggle"s [✔]
46.68 s
[cursor-gen] +++ OK, passed 100 tests.
46.68 s
[cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid KeyValueToggle"s [✔]
46.68 s
[cursor-gen] +++ OK, passed 100 tests.
46.68 s
[cursor-gen] (/=) :: KeyValueToggle -> KeyValueToggle -> Bool
46.68 s
[cursor-gen] is antireflexive for "valid KeyValueToggle"s [✔]
46.68 s
[cursor-gen] +++ OK, passed 100 tests.
46.68 s
[cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid KeyValueToggle"s [✔]
46.68 s
[cursor-gen] +++ OK, passed 100 tests.
46.68 s
[cursor-gen] GenValid KeyValueToggle
46.68 s
[cursor-gen] genValid :: Gen KeyValueToggle
46.68 s
[cursor-gen] only generates valid 'KeyValueToggle's [✔]
46.68 s
[cursor-gen] +++ OK, passed 100 tests.
46.68 s
[cursor-gen] Cursor.Simple.Forest
46.68 s
[cursor-gen] Eq (ForestCursor Int Int)
46.68 s
[cursor-gen] (==) :: (ForestCursor Int Int) -> (ForestCursor Int Int) -> Bool
46.68 s
[cursor-gen] is reflexive for "valid (ForestCursor Int Int)"s [✔]
46.68 s
[cursor-gen] +++ OK, passed 100 tests.
46.68 s
[cursor-gen] is symmetric for "valid (ForestCursor Int Int)"s [✔]
46.68 s
[cursor-gen] +++ OK, passed 100 tests.
46.68 s
[cursor-gen] is transitive for "valid (ForestCursor Int Int)"s [✔]
46.68 s
[cursor-gen] +++ OK, passed 100 tests.
46.68 s
[cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid (ForestCursor Int Int)"s [✔]
46.68 s
[cursor-gen] +++ OK, passed 100 tests.
46.68 s
[cursor-gen] (/=) :: (ForestCursor Int Int) -> (ForestCursor Int Int) -> Bool
46.68 s
[cursor-gen] is antireflexive for "valid (ForestCursor Int Int)"s [✔]
46.68 s
[cursor-gen] +++ OK, passed 100 tests.
46.68 s
[cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid (ForestCursor Int Int)"s [✔]
46.68 s
[cursor-gen] +++ OK, passed 100 tests.
46.68 s
[cursor-gen] GenValid (ForestCursor Bool Bool)
46.68 s
[cursor-gen] genValid :: Gen (ForestCursor Bool Bool)
46.68 s
[cursor-gen] only generates valid '(ForestCursor Bool Bool)'s [✔]
46.68 s
[cursor-gen] +++ OK, passed 100 tests.
46.68 s
[cursor-gen] shrinkValid :: (ForestCursor Bool Bool -> [ForestCursor Bool Bool])
46.68 s
[cursor-gen] preserves validity for the first 10 elements [✔]
46.68 s
[cursor-gen] +++ OK, passed 50 tests.
46.68 s
[cursor-gen] never shrinks to itself for valid values for the first 10 elements [✔]
46.68 s
[cursor-gen] +++ OK, passed 50 tests.
46.68 s
[cursor-gen] singletonForestCursor
46.68 s
[cursor-gen] produces valid cursors [✔]
46.68 s
[cursor-gen] +++ OK, passed 100 tests.
46.68 s
[cursor-gen] makeForestCursor
46.68 s
[cursor-gen] produces valid cursors [✔]
46.68 s
[cursor-gen] +++ OK, passed 100 tests.
46.68 s
[cursor-gen] rebuildForestCursor
46.68 s
[cursor-gen] produces valid forests [✔]
46.68 s
[cursor-gen] +++ OK, passed 100 tests.
46.69 s
[cursor-gen] is the inverse of makeForestCursor for integers [✔]
46.69 s
[cursor-gen] +++ OK, passed 100 tests.
46.69 s
[cursor-gen] forestCursorLestCursorL
46.69 s
[cursor-gen] satisfies the first lens law for valid values and valid values [✔]
46.69 s
[cursor-gen] +++ OK, passed 100 tests.
46.69 s
[cursor-gen] satisfies the second lens law for valid values [✔]
46.69 s
[cursor-gen] +++ OK, passed 100 tests.
46.69 s
[cursor-gen] satisfies the third lens law for valid values and valid values [✔]
46.69 s
[cursor-gen] +++ OK, passed 100 tests.
46.69 s
[cursor-gen] gets valid values from valid values values [✔]
46.69 s
[cursor-gen] +++ OK, passed 100 tests.
46.69 s
[cursor-gen] produces valid values when it is used to set valid values values on valid values values [✔]
46.69 s
[cursor-gen] +++ OK, passed 100 tests.
46.69 s
[cursor-gen] forestCursorSelectedTreeL
46.69 s
[cursor-gen] satisfies the first lens law for valid values and valid values [✔]
46.69 s
[cursor-gen] +++ OK, passed 100 tests.
46.69 s
[cursor-gen] satisfies the second lens law for valid values [✔]
46.69 s
[cursor-gen] +++ OK, passed 100 tests.
46.69 s
[cursor-gen] satisfies the third lens law for valid values and valid values [✔]
46.69 s
[cursor-gen] +++ OK, passed 100 tests.
46.69 s
[cursor-gen] gets valid values from valid values values [✔]
46.69 s
[cursor-gen] +++ OK, passed 100 tests.
46.69 s
[cursor-gen] produces valid values when it is used to set valid values values on valid values values [✔]
46.69 s
[cursor-gen] +++ OK, passed 100 tests.
46.69 s
[cursor-gen] forestCursorSelection
46.69 s
[cursor-gen] produces valid ints [✔]
46.69 s
[cursor-gen] +++ OK, passed 100 tests.
46.69 s
[cursor-gen] returns the index of the currently selected element [‐]
46.69 s
[cursor-gen] # PENDING: No reason given
46.69 s
[cursor-gen] forestCursorSelectIndex
46.69 s
[cursor-gen] produces valid cursors [✔]
46.69 s
[cursor-gen] +++ OK, passed 100 tests.
46.69 s
[cursor-gen] is the identity function when given the current selection [✔]
46.69 s
[cursor-gen] +++ OK, passed 100 tests.
46.69 s
[cursor-gen] returns selects the element at the given index [‐]
46.69 s
[cursor-gen] # PENDING: No reason given
46.69 s
[cursor-gen] forestCursorSelectPrevTreeCursor
46.69 s
[cursor-gen] produces valid cursors [✔]
46.69 s
[cursor-gen] +++ OK, passed 100 tests.
46.70 s
[cursor-gen] is a movement [✔]
46.70 s
[cursor-gen] +++ OK, passed 100 tests.
46.70 s
[cursor-gen] selects the previous tree cursor [‐]
46.70 s
[cursor-gen] # PENDING: No reason given
46.70 s
[cursor-gen] forestCursorSelectNextTreeCursor
46.70 s
[cursor-gen] produces valid cursors [✔]
46.70 s
[cursor-gen] +++ OK, passed 100 tests.
46.70 s
[cursor-gen] is a movement [✔]
46.70 s
[cursor-gen] +++ OK, passed 100 tests.
46.70 s
[cursor-gen] selects the next tree [‐]
46.70 s
[cursor-gen] # PENDING: No reason given
46.70 s
[cursor-gen] forestCursorSelectFirstTreeCursor
46.71 s
[cursor-gen] produces valid cursors [✔]
46.71 s
[cursor-gen] +++ OK, passed 100 tests.
46.71 s
[cursor-gen] is a movement [✔]
46.71 s
[cursor-gen] +++ OK, passed 100 tests.
46.71 s
[cursor-gen] selects the first tree [‐]
46.71 s
[cursor-gen] # PENDING: No reason given
46.71 s
[cursor-gen] forestCursorSelectLastTreeCursor
46.71 s
[cursor-gen] produces valid cursors [✔]
46.71 s
[cursor-gen] +++ OK, passed 100 tests.
46.71 s
[cursor-gen] is a movement [✔]
46.71 s
[cursor-gen] +++ OK, passed 100 tests.
46.71 s
[cursor-gen] selects the last tree [‐]
46.71 s
[cursor-gen] # PENDING: No reason given
46.71 s
[cursor-gen] forestCursorSelectPrev
46.72 s
[cursor-gen] produces valid cursors [✔]
46.72 s
[cursor-gen] +++ OK, passed 100 tests.
46.72 s
[cursor-gen] is a movement [✔]
46.72 s
[cursor-gen] +++ OK, passed 100 tests.
46.72 s
[cursor-gen] selects the previous node [‐]
46.72 s
[cursor-gen] # PENDING: No reason given
46.72 s
[cursor-gen] Works for this classic example without any collapsing [✔]
46.72 s
[cursor-gen] forestCursorSelectNext
46.72 s
[cursor-gen] produces valid cursors [✔]
46.72 s
[cursor-gen] +++ OK, passed 100 tests.
46.72 s
[cursor-gen] is a movement [✔]
46.73 s
[cursor-gen] +++ OK, passed 100 tests.
46.73 s
[cursor-gen] selects the next node [‐]
46.73 s
[cursor-gen] # PENDING: No reason given
46.73 s
[cursor-gen] Works for this classic example [✔]
46.73 s
[cursor-gen] forestCursorSelectPrevOnSameLevel
46.73 s
[cursor-gen] produces valid cursors [✔]
46.73 s
[cursor-gen] +++ OK, passed 100 tests.
46.73 s
[cursor-gen] is a movement [✔]
46.73 s
[cursor-gen] +++ OK, passed 100 tests.
46.73 s
[cursor-gen] selects the previous node on the same level as the current node [‐]
46.73 s
[cursor-gen] # PENDING: No reason given
46.73 s
[cursor-gen] forestCursorSelectNextOnSameLevel
46.73 s
[cursor-gen] produces valid cursors [✔]
46.73 s
[cursor-gen] +++ OK, passed 100 tests.
46.74 s
[cursor-gen] is a movement [✔]
46.74 s
[cursor-gen] +++ OK, passed 100 tests.
46.74 s
[cursor-gen] selects the next node on the same level as the current node [‐]
46.74 s
[cursor-gen] # PENDING: No reason given
46.74 s
[cursor-gen] forestCursorSelectFirstOnSameLevel
46.74 s
[cursor-gen] produces valid cursors [✔]
46.74 s
[cursor-gen] +++ OK, passed 100 tests.
46.74 s
[cursor-gen] is a movement [✔]
46.74 s
[cursor-gen] +++ OK, passed 100 tests.
46.74 s
[cursor-gen] selects the previous node on the same level as the current node [‐]
46.74 s
[cursor-gen] # PENDING: No reason given
46.74 s
[cursor-gen] forestCursorSelectLastOnSameLevel
46.74 s
[cursor-gen] produces valid cursors [✔]
46.74 s
[cursor-gen] +++ OK, passed 100 tests.
46.75 s
[cursor-gen] is a movement [✔]
46.75 s
[cursor-gen] +++ OK, passed 100 tests.
46.75 s
[cursor-gen] selects the next node on the same level as the current node [‐]
46.75 s
[cursor-gen] # PENDING: No reason given
46.75 s
[cursor-gen] forestCursorSelectFirst
46.75 s
[cursor-gen] produces valid cursors [✔]
46.75 s
[cursor-gen] +++ OK, passed 100 tests.
46.75 s
[cursor-gen] is a movement [✔]
46.75 s
[cursor-gen] +++ OK, passed 100 tests.
46.75 s
[cursor-gen] selects the first node in the forest [‐]
46.75 s
[cursor-gen] # PENDING: No reason given
46.75 s
[cursor-gen] forestCursorSelectLast
46.75 s
[cursor-gen] produces valid cursors [✔]
46.75 s
[cursor-gen] +++ OK, passed 100 tests.
46.76 s
[cursor-gen] is a movement [✔]
46.76 s
[cursor-gen] +++ OK, passed 100 tests.
46.76 s
[cursor-gen] selects the last node in the forest [‐]
46.76 s
[cursor-gen] # PENDING: No reason given
46.76 s
[cursor-gen] forestCursorSelectAbove
46.76 s
[cursor-gen] produces valid cursors [✔]
46.76 s
[cursor-gen] +++ OK, passed 100 tests.
46.76 s
[cursor-gen] is a movement [✔]
46.76 s
[cursor-gen] +++ OK, passed 100 tests.
46.76 s
[cursor-gen] selects the parent [‐]
46.76 s
[cursor-gen] # PENDING: No reason given
46.76 s
[cursor-gen] forestCursorSelectBelowAtPos
46.76 s
[cursor-gen] produces valid cursors [✔]
46.76 s
[cursor-gen] +++ OK, passed 100 tests.
46.76 s
[cursor-gen] is a movement for any index [✔]
46.76 s
[cursor-gen] +++ OK, passed 100 tests.
46.76 s
[cursor-gen] selects the child of the selected node at the given position [‐]
46.76 s
[cursor-gen] # PENDING: No reason given
46.76 s
[cursor-gen] forestCursorSelectBelowAtStart
46.76 s
[cursor-gen] produces valid cursors [✔]
46.76 s
[cursor-gen] +++ OK, passed 100 tests.
46.76 s
[cursor-gen] is a movement [✔]
46.76 s
[cursor-gen] +++ OK, passed 100 tests.
46.76 s
[cursor-gen] selects the first child of the selected node [‐]
46.76 s
[cursor-gen] # PENDING: No reason given
46.76 s
[cursor-gen] forestCursorSelectBelowAtEnd
46.76 s
[cursor-gen] produces valid cursors [✔]
46.76 s
[cursor-gen] +++ OK, passed 100 tests.
46.76 s
[cursor-gen] is a movement [✔]
46.76 s
[cursor-gen] +++ OK, passed 100 tests.
46.76 s
[cursor-gen] selects the first child of the selected node [‐]
46.76 s
[cursor-gen] # PENDING: No reason given
46.76 s
[cursor-gen] forestCursorOpenCurrentForest
46.77 s
[cursor-gen] produces valid cursors [✔]
46.77 s
[cursor-gen] +++ OK, passed 100 tests.
46.77 s
[cursor-gen] forestCursorCloseCurrentForest
46.77 s
[cursor-gen] produces valid cursors [✔]
46.77 s
[cursor-gen] +++ OK, passed 100 tests.
46.77 s
[cursor-gen] forestCursorToggleCurrentForest
46.77 s
[cursor-gen] produces valid cursors [✔]
46.77 s
[cursor-gen] +++ OK, passed 100 tests.
46.77 s
[cursor-gen] forestCursorOpenCurrentForestRecursively
46.77 s
[cursor-gen] produces valid cursors [✔]
46.77 s
[cursor-gen] +++ OK, passed 100 tests.
46.77 s
[cursor-gen] forestCursorToggleCurrentForestRecursively
46.77 s
[cursor-gen] produces valid cursors [✔]
46.77 s
[cursor-gen] +++ OK, passed 100 tests.
46.77 s
[cursor-gen] forestCursorInsertEntireTree
46.77 s
[cursor-gen] produces valid cursors [✔]
46.77 s
[cursor-gen] +++ OK, passed 100 tests.
46.77 s
[cursor-gen] inserts a tree cursor before the currently selected tree cursor [‐]
46.77 s
[cursor-gen] # PENDING: No reason given
46.77 s
[cursor-gen] forestCursorInsertAndSelectTreeCursor
46.77 s
[cursor-gen] produces valid cursors [✔]
46.77 s
[cursor-gen] +++ OK, passed 100 tests.
46.77 s
[cursor-gen] inserts a tree cursor before the currently selected tree cursor and selects it [‐]
46.77 s
[cursor-gen] # PENDING: No reason given
46.77 s
[cursor-gen] forestCursorAppendEntireTree
46.77 s
[cursor-gen] produces valid cursors [✔]
46.77 s
[cursor-gen] +++ OK, passed 100 tests.
46.77 s
[cursor-gen] appends a tree after the currently selected tree cursor [‐]
46.77 s
[cursor-gen] # PENDING: No reason given
46.77 s
[cursor-gen] forestCursorAppendAndSelectTreeCursor
46.78 s
[cursor-gen] produces valid cursors [✔]
46.78 s
[cursor-gen] +++ OK, passed 100 tests.
46.78 s
[cursor-gen] appends a tree cursor after the currently selected tree cursor and selects it [‐]
46.78 s
[cursor-gen] # PENDING: No reason given
46.78 s
[cursor-gen] forestCursorInsertTree
46.78 s
[cursor-gen] produces valid cursors [✔]
46.78 s
[cursor-gen] +++ OK, passed 100 tests.
46.78 s
[cursor-gen] inserts a tree before the currently selected tree [‐]
46.78 s
[cursor-gen] # PENDING: No reason given
46.78 s
[cursor-gen] forestCursorInsertAndSelectTree
46.78 s
[cursor-gen] produces valid cursors [✔]
46.78 s
[cursor-gen] +++ OK, passed 100 tests.
46.78 s
[cursor-gen] inserts a tree before the currently selected tree and selects it [‐]
46.78 s
[cursor-gen] # PENDING: No reason given
46.78 s
[cursor-gen] forestCursorAppendTree
46.78 s
[cursor-gen] produces valid cursors [✔]
46.78 s
[cursor-gen] +++ OK, passed 100 tests.
46.78 s
[cursor-gen] appends a tree after the currently selected tree [‐]
46.78 s
[cursor-gen] # PENDING: No reason given
46.78 s
[cursor-gen] forestCursorAppendAndSelectTree
46.79 s
[cursor-gen] produces valid cursors [✔]
46.79 s
[cursor-gen] +++ OK, passed 100 tests.
46.79 s
[cursor-gen] appends a tree after the currently selected tree and selects it [‐]
46.79 s
[cursor-gen] # PENDING: No reason given
46.79 s
[cursor-gen] forestCursorInsert
46.79 s
[cursor-gen] produces valid cursors [✔]
46.79 s
[cursor-gen] +++ OK, passed 100 tests.
46.79 s
[cursor-gen] inserts a node before the currently selected node [‐]
46.79 s
[cursor-gen] # PENDING: No reason given
46.79 s
[cursor-gen] forestCursorInsertAndSelect
46.79 s
[cursor-gen] produces valid cursors [✔]
46.79 s
[cursor-gen] +++ OK, passed 100 tests.
46.79 s
[cursor-gen] inserts a node before the currently selected node and selects it [‐]
46.79 s
[cursor-gen] # PENDING: No reason given
46.79 s
[cursor-gen] forestCursorInsertNodeSingleAndSelect
46.79 s
[cursor-gen] produces valid cursors [✔]
46.79 s
[cursor-gen] +++ OK, passed 100 tests.
46.79 s
[cursor-gen] inserts a node before the currently selected node and selects it [‐]
46.79 s
[cursor-gen] # PENDING: No reason given
46.79 s
[cursor-gen] forestCursorInsertNodeAndSelect
46.79 s
[cursor-gen] produces valid cursors [✔]
46.79 s
[cursor-gen] +++ OK, passed 100 tests.
46.79 s
[cursor-gen] inserts a node before the currently selected node and selects it [‐]
46.79 s
[cursor-gen] # PENDING: No reason given
46.79 s
[cursor-gen] forestCursorAppend
46.80 s
[cursor-gen] produces valid cursors [✔]
46.80 s
[cursor-gen] +++ OK, passed 100 tests.
46.80 s
[cursor-gen] appends a node after the currently selected node [‐]
46.80 s
[cursor-gen] # PENDING: No reason given
46.80 s
[cursor-gen] forestCursorAppendAndSelect
46.80 s
[cursor-gen] produces valid cursors [✔]
46.80 s
[cursor-gen] +++ OK, passed 100 tests.
46.80 s
[cursor-gen] appends a node after the currently selected node and selects it [‐]
46.80 s
[cursor-gen] # PENDING: No reason given
46.80 s
[cursor-gen] forestCursorAppendNodeSingleAndSelect
46.80 s
[cursor-gen] produces valid cursors [✔]
46.80 s
[cursor-gen] +++ OK, passed 100 tests.
46.80 s
[cursor-gen] appends a node after the currently selected node and selects it [‐]
46.80 s
[cursor-gen] # PENDING: No reason given
46.80 s
[cursor-gen] forestCursorAppendNodeAndSelect
46.80 s
[cursor-gen] produces valid cursors [✔]
46.80 s
[cursor-gen] +++ OK, passed 100 tests.
46.80 s
[cursor-gen] appends a node after the currently selected node and selects it [‐]
46.80 s
[cursor-gen] # PENDING: No reason given
46.80 s
[cursor-gen] forestCursorAddChildTreeToNodeAtPos
46.80 s
[cursor-gen] produces valid cursors [✔]
46.80 s
[cursor-gen] +++ OK, passed 100 tests.
46.80 s
[cursor-gen] adds a child tree to a node at the given position in the children of that node [‐]
46.80 s
[cursor-gen] # PENDING: No reason given
46.80 s
[cursor-gen] forestCursorAddChildTreeToNodeAtStart
46.80 s
[cursor-gen] produces valid cursors [✔]
46.80 s
[cursor-gen] +++ OK, passed 100 tests.
46.80 s
[cursor-gen] adds a child tree to a node at the start the children of that node [‐]
46.80 s
[cursor-gen] # PENDING: No reason given
46.80 s
[cursor-gen] forestCursorAddChildTreeToNodeAtEnd
46.81 s
[cursor-gen] produces valid cursors [✔]
46.81 s
[cursor-gen] +++ OK, passed 100 tests.
46.81 s
[cursor-gen] adds a child tree to a node at the end the children of that node [‐]
46.81 s
[cursor-gen] # PENDING: No reason given
46.81 s
[cursor-gen] forestCursorAddChildToNodeAtPos
46.81 s
[cursor-gen] produces valid cursors [✔]
46.81 s
[cursor-gen] +++ OK, passed 100 tests.
46.81 s
[cursor-gen] adds a child to a node at the given position in the children of that node [‐]
46.81 s
[cursor-gen] # PENDING: No reason given
46.81 s
[cursor-gen] forestCursorAddChildToNodeAtStart
46.81 s
[cursor-gen] produces valid cursors [✔]
46.81 s
[cursor-gen] +++ OK, passed 100 tests.
46.81 s
[cursor-gen] adds a child to a node at the start the children of that node [‐]
46.81 s
[cursor-gen] # PENDING: No reason given
46.81 s
[cursor-gen] forestCursorAddChildToNodeAtEnd
46.81 s
[cursor-gen] produces valid cursors [✔]
46.81 s
[cursor-gen] +++ OK, passed 100 tests.
46.81 s
[cursor-gen] adds a child to a node at the end the children of that node [‐]
46.81 s
[cursor-gen] # PENDING: No reason given
46.81 s
[cursor-gen] forestCursorAddChildTreeToNodeAtPosAndSelect
46.81 s
[cursor-gen] produces valid cursors [✔]
46.81 s
[cursor-gen] +++ OK, passed 100 tests.
46.81 s
[cursor-gen] adds a child tree to a node at the given position in the children of that node [‐]
46.81 s
[cursor-gen] # PENDING: No reason given
46.81 s
[cursor-gen] forestCursorAddChildTreeToNodeAtStartAndSelect
46.82 s
[cursor-gen] produces valid cursors [✔]
46.82 s
[cursor-gen] +++ OK, passed 100 tests.
46.82 s
[cursor-gen] adds a child tree to a node at the start the children of that node [‐]
46.82 s
[cursor-gen] # PENDING: No reason given
46.82 s
[cursor-gen] forestCursorAddChildTreeToNodeAtEndAndSelect
46.82 s
[cursor-gen] produces valid cursors [✔]
46.82 s
[cursor-gen] +++ OK, passed 100 tests.
46.82 s
[cursor-gen] adds a child tree to a node at the end the children of that node [‐]
46.82 s
[cursor-gen] # PENDING: No reason given
46.82 s
[cursor-gen] forestCursorAddChildToNodeAtPosAndSelect
46.82 s
[cursor-gen] produces valid cursors [✔]
46.82 s
[cursor-gen] +++ OK, passed 100 tests.
46.82 s
[cursor-gen] adds a child to a node at the given position in the children of that node [‐]
46.82 s
[cursor-gen] # PENDING: No reason given
46.82 s
[cursor-gen] forestCursorAddChildToNodeAtStartAndSelect
46.82 s
[cursor-gen] produces valid cursors [✔]
46.82 s
[cursor-gen] +++ OK, passed 100 tests.
46.82 s
[cursor-gen] adds a child to a node at the start the children of that node [‐]
46.82 s
[cursor-gen] # PENDING: No reason given
46.82 s
[cursor-gen] forestCursorAddChildToNodeAtEndAndSelect
46.82 s
[cursor-gen] produces valid cursors [✔]
46.82 s
[cursor-gen] +++ OK, passed 100 tests.
46.82 s
[cursor-gen] adds a child to a node at the end the children of that node [‐]
46.82 s
[cursor-gen] # PENDING: No reason given
46.82 s
[cursor-gen] forestCursorAddChildNodeSingleToNodeAtPosAndSelect
46.82 s
[cursor-gen] produces valid cursors [✔]
46.82 s
[cursor-gen] +++ OK, passed 100 tests.
46.82 s
[cursor-gen] forestCursorAddChildNodeSingleToNodeAtStartAndSelect
46.82 s
[cursor-gen] produces valid cursors [✔]
46.82 s
[cursor-gen] +++ OK, passed 100 tests.
46.82 s
[cursor-gen] forestCursorAddChildNodeSingleToNodeAtEndAndSelect
46.83 s
[cursor-gen] produces valid cursors [✔]
46.83 s
[cursor-gen] +++ OK, passed 100 tests.
46.83 s
[cursor-gen] forestCursorAddChildNodeToNodeAtPosAndSelect
46.83 s
[cursor-gen] produces valid cursors [✔]
46.83 s
[cursor-gen] +++ OK, passed 100 tests.
46.83 s
[cursor-gen] forestCursorAddChildNodeToNodeAtStartAndSelect
46.83 s
[cursor-gen] produces valid cursors [✔]
46.83 s
[cursor-gen] +++ OK, passed 100 tests.
46.83 s
[cursor-gen] forestCursorAddChildNodeToNodeAtEndAndSelect
46.83 s
[cursor-gen] produces valid cursors [✔]
46.83 s
[cursor-gen] +++ OK, passed 100 tests.
46.83 s
[cursor-gen] forestCursorAddRoot
46.83 s
[cursor-gen] produces valid cursors [✔]
46.83 s
[cursor-gen] +++ OK, passed 100 tests.
46.83 s
[cursor-gen] houses the entire forest under the given node [‐]
46.83 s
[cursor-gen] # PENDING: No reason given
46.83 s
[cursor-gen] forestCursorSwapPrev
46.83 s
[cursor-gen] produces valid cursors [✔]
46.83 s
[cursor-gen] +++ OK, passed 100 tests.
46.83 s
[cursor-gen] works on the example from the docs [✔]
46.83 s
[cursor-gen] swaps the current node with the previous node on the same level [‐]
46.83 s
[cursor-gen] # PENDING: No reason given
46.84 s
[cursor-gen] reverts forestCursorSwapNext [✔]
46.84 s
[cursor-gen] +++ OK, passed 100 tests.
46.84 s
[cursor-gen] forestCursorSwapNext
46.84 s
[cursor-gen] produces valid cursors [✔]
46.84 s
[cursor-gen] +++ OK, passed 100 tests.
46.84 s
[cursor-gen] works on the example from the docs [✔]
46.84 s
[cursor-gen] swaps the current node with the next node on the same level [‐]
46.84 s
[cursor-gen] # PENDING: No reason given
46.84 s
[cursor-gen] reverts forestCursorSwapPrev [✔]
46.84 s
[cursor-gen] +++ OK, passed 100 tests.
46.84 s
[cursor-gen] forestCursorRemoveElemAndSelectPrev
46.84 s
[cursor-gen] produces valid cursors [✔]
46.84 s
[cursor-gen] +++ OK, passed 100 tests.
46.84 s
[cursor-gen] works for this simple example [✔]
46.84 s
[cursor-gen] +++ OK, passed 100 tests.
46.84 s
[cursor-gen] removes the selected element and selects the previous element [‐]
46.84 s
[cursor-gen] # PENDING: No reason given
46.84 s
[cursor-gen] forestCursorDeleteElemAndSelectNext
46.84 s
[cursor-gen] produces valid cursors [✔]
46.84 s
[cursor-gen] +++ OK, passed 100 tests.
46.84 s
[cursor-gen] works for this simple example [✔]
46.84 s
[cursor-gen] +++ OK, passed 100 tests.
46.84 s
[cursor-gen] deletes the selected element and selects the next element [‐]
46.84 s
[cursor-gen] # PENDING: No reason given
46.84 s
[cursor-gen] forestCursorRemoveElem
46.85 s
[cursor-gen] produces valid cursors [✔]
46.85 s
[cursor-gen] +++ OK, passed 100 tests.
46.85 s
[cursor-gen] works for this simple example [✔]
46.85 s
[cursor-gen] +++ OK, passed 100 tests.
46.85 s
[cursor-gen] removes the selected element [‐]
46.85 s
[cursor-gen] # PENDING: No reason given
46.85 s
[cursor-gen] forestCursorDeleteElem
46.85 s
[cursor-gen] produces valid cursors [✔]
46.85 s
[cursor-gen] +++ OK, passed 100 tests.
46.85 s
[cursor-gen] works for this simple example [✔]
46.85 s
[cursor-gen] +++ OK, passed 100 tests.
46.85 s
[cursor-gen] deletes the selected element [‐]
46.85 s
[cursor-gen] # PENDING: No reason given
46.85 s
[cursor-gen] forestCursorRemoveSubTreeAndSelectPrev
46.86 s
[cursor-gen] produces valid cursors [✔]
46.86 s
[cursor-gen] +++ OK, passed 100 tests.
46.86 s
[cursor-gen] removes the selected subtree and selects the previous tree [‐]
46.86 s
[cursor-gen] # PENDING: No reason given
46.86 s
[cursor-gen] forestCursorDeleteSubTreeAndSelectNext
46.86 s
[cursor-gen] produces valid cursors [✔]
46.86 s
[cursor-gen] +++ OK, passed 100 tests.
46.86 s
[cursor-gen] deletes the selected subtree and selects the next tree [‐]
46.86 s
[cursor-gen] # PENDING: No reason given
46.86 s
[cursor-gen] forestCursorRemoveSubTree
46.86 s
[cursor-gen] produces valid cursors [✔]
46.86 s
[cursor-gen] +++ OK, passed 100 tests.
46.86 s
[cursor-gen] removes the selected subtree [‐]
46.86 s
[cursor-gen] # PENDING: No reason given
46.86 s
[cursor-gen] forestCursorDeleteSubTree
46.86 s
[cursor-gen] produces valid cursors [✔]
46.86 s
[cursor-gen] +++ OK, passed 100 tests.
46.86 s
[cursor-gen] deletes the selected subtree [‐]
46.86 s
[cursor-gen] # PENDING: No reason given
46.86 s
[cursor-gen] forestCursorPromoteElem
46.87 s
[cursor-gen] produces valids on valids [✔]
46.87 s
[cursor-gen] +++ OK, passed 100 tests.
46.87 s
[cursor-gen] works on the example from the documentation [✔]
46.87 s
[cursor-gen] promotes the current node to the level of its parent [‐]
46.87 s
[cursor-gen] # PENDING: No reason given
46.87 s
[cursor-gen] forestCursorDemoteElem
46.87 s
[cursor-gen] produces valids on valids [✔]
46.87 s
[cursor-gen] +++ OK, passed 100 tests.
46.87 s
[cursor-gen] works on the example from the documentation [✔]
46.87 s
[cursor-gen] demotes the current node to the level of its children [‐]
46.87 s
[cursor-gen] # PENDING: No reason given
46.87 s
[cursor-gen] forestCursorPromoteSubTree
46.87 s
[cursor-gen] produces valids on valids [✔]
46.87 s
[cursor-gen] +++ OK, passed 100 tests.
46.87 s
[cursor-gen] works on the example from the documentation [✔]
46.87 s
[cursor-gen] promotes the current subtree to the level of its parent [‐]
46.87 s
[cursor-gen] # PENDING: No reason given
46.87 s
[cursor-gen] forestCursorDemoteSubTree
46.87 s
[cursor-gen] produces valids on valids [✔]
46.87 s
[cursor-gen] +++ OK, passed 100 tests.
46.87 s
[cursor-gen] works on the example from the documentation [✔]
46.87 s
[cursor-gen] demotes the current subtree to the level of its children [‐]
46.87 s
[cursor-gen] # PENDING: No reason given
46.87 s
[cursor-gen] forestCursorDemoteElemUnder
46.87 s
[cursor-gen] produces valids on valids [✔]
46.87 s
[cursor-gen] +++ OK, passed 100 tests.
46.87 s
[cursor-gen] Works on the example from the docs [✔]
46.87 s
[cursor-gen] +++ OK, passed 100 tests.
46.87 s
[cursor-gen] demotes the current node to the level of its children [‐]
46.87 s
[cursor-gen] # PENDING: No reason given
46.87 s
[cursor-gen] forestCursorDemoteSubTreeUnder
46.87 s
[cursor-gen] produces valids on valids [✔]
46.87 s
[cursor-gen] +++ OK, passed 100 tests.
46.87 s
[cursor-gen] Works on the example from the docs [✔]
46.87 s
[cursor-gen] +++ OK, passed 100 tests.
46.87 s
[cursor-gen] demotes the current subtree to the level of its children, by adding a root [‐]
46.87 s
[cursor-gen] # PENDING: No reason given
46.87 s
[cursor-gen] Cursor.Simple.List.NonEmpty
46.87 s
[cursor-gen] Eq (NonEmptyCursor Bool Bool)
46.87 s
[cursor-gen] (==) :: (NonEmptyCursor Bool Bool) -> (NonEmptyCursor Bool Bool) -> Bool
46.87 s
[cursor-gen] is reflexive for "valid (NonEmptyCursor Bool Bool)"s [✔]
46.87 s
[cursor-gen] +++ OK, passed 100 tests.
46.87 s
[cursor-gen] is symmetric for "valid (NonEmptyCursor Bool Bool)"s [✔]
46.87 s
[cursor-gen] +++ OK, passed 100 tests.
46.87 s
[cursor-gen] is transitive for "valid (NonEmptyCursor Bool Bool)"s [✔]
46.87 s
[cursor-gen] +++ OK, passed 100 tests.
46.87 s
[cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid (NonEmptyCursor Bool Bool)"s [✔]
46.87 s
[cursor-gen] +++ OK, passed 100 tests.
46.87 s
[cursor-gen] (/=) :: (NonEmptyCursor Bool Bool) -> (NonEmptyCursor Bool Bool) -> Bool
46.87 s
[cursor-gen] is antireflexive for "valid (NonEmptyCursor Bool Bool)"s [✔]
46.87 s
[cursor-gen] +++ OK, passed 100 tests.
46.87 s
[cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid (NonEmptyCursor Bool Bool)"s [✔]
46.87 s
[cursor-gen] +++ OK, passed 100 tests.
46.87 s
[cursor-gen] GenValid (NonEmptyCursor Bool Bool)
46.87 s
[cursor-gen] genValid :: Gen (NonEmptyCursor Bool Bool)
46.87 s
[cursor-gen] only generates valid '(NonEmptyCursor Bool Bool)'s [✔]
46.87 s
[cursor-gen] +++ OK, passed 100 tests.
46.87 s
[cursor-gen] makeNonEmptyCursor
46.88 s
[cursor-gen] produces valid cursors [✔]
46.88 s
[cursor-gen] +++ OK, passed 100 tests.
46.88 s
[cursor-gen] makeNonEmptyCursorWithSelection
46.88 s
[cursor-gen] produces valid cursors [✔]
46.88 s
[cursor-gen] +++ OK, passed 100 tests.
46.88 s
[cursor-gen] is the inverse of rebuildNonEmptyCursor when using the current selection [✔]
46.88 s
[cursor-gen] +++ OK, passed 100 tests.
46.88 s
[cursor-gen] singletonNonEmptyCursor
46.88 s
[cursor-gen] produces valid cursors [✔]
46.88 s
[cursor-gen] +++ OK, passed 100 tests.
46.88 s
[cursor-gen] rebuildNonEmptyCursor
46.88 s
[cursor-gen] produces valid nonempty lists [✔]
46.88 s
[cursor-gen] +++ OK, passed 100 tests.
46.88 s
[cursor-gen] is the inverse of makeNonEmptyCursor for integers [✔]
46.88 s
[cursor-gen] +++ OK, passed 100 tests.
46.88 s
[cursor-gen] is the inverse of makeNonEmptyCursorWithSelection for integers, for any index [✔]
46.88 s
[cursor-gen] +++ OK, passed 100 tests.
46.88 s
[cursor-gen] nonEmptyCursorElemL
46.88 s
[cursor-gen] satisfies the first lens law for valid values and valid values [✔]
46.88 s
[cursor-gen] +++ OK, passed 100 tests.
46.88 s
[cursor-gen] satisfies the second lens law for valid values [✔]
46.88 s
[cursor-gen] +++ OK, passed 100 tests.
46.88 s
[cursor-gen] satisfies the third lens law for valid values and valid values [✔]
46.88 s
[cursor-gen] +++ OK, passed 100 tests.
46.88 s
[cursor-gen] gets valid values from valid values values [✔]
46.88 s
[cursor-gen] +++ OK, passed 100 tests.
46.88 s
[cursor-gen] produces valid values when it is used to set valid values values on valid values values [✔]
46.88 s
[cursor-gen] +++ OK, passed 100 tests.
46.88 s
[cursor-gen] nonEmptyCursorSelectPrev
46.88 s
[cursor-gen] produces valid cursors [✔]
46.88 s
[cursor-gen] +++ OK, passed 100 tests.
46.88 s
[cursor-gen] is a movement [✔]
46.88 s
[cursor-gen] +++ OK, passed 100 tests.
46.88 s
[cursor-gen] selects the previous element [‐]
46.88 s
[cursor-gen] # PENDING: No reason given
46.88 s
[cursor-gen] nonEmptyCursorSelectNext
46.88 s
[cursor-gen] produces valid cursors [✔]
46.88 s
[cursor-gen] +++ OK, passed 100 tests.
46.88 s
[cursor-gen] is a movement [✔]
46.88 s
[cursor-gen] +++ OK, passed 100 tests.
46.88 s
[cursor-gen] selects the next element [‐]
46.88 s
[cursor-gen] # PENDING: No reason given
46.88 s
[cursor-gen] nonEmptyCursorSelectFirst
46.88 s
[cursor-gen] produces valid cursors [✔]
46.88 s
[cursor-gen] +++ OK, passed 100 tests.
46.88 s
[cursor-gen] is a movement [✔]
46.88 s
[cursor-gen] +++ OK, passed 100 tests.
46.88 s
[cursor-gen] is idempotent [✔]
46.88 s
[cursor-gen] +++ OK, passed 100 tests.
46.88 s
[cursor-gen] selects the first element [‐]
46.88 s
[cursor-gen] # PENDING: No reason given
46.88 s
[cursor-gen] nonEmptyCursorSelectLast
46.88 s
[cursor-gen] produces valid cursors [✔]
46.88 s
[cursor-gen] +++ OK, passed 100 tests.
46.89 s
[cursor-gen] is a movement [✔]
46.89 s
[cursor-gen] +++ OK, passed 100 tests.
46.89 s
[cursor-gen] is idempotent [✔]
46.89 s
[cursor-gen] +++ OK, passed 100 tests.
46.89 s
[cursor-gen] selects the last element [‐]
46.89 s
[cursor-gen] # PENDING: No reason given
46.89 s
[cursor-gen] nonEmptyCursorSelection
46.89 s
[cursor-gen] produces valid ints [✔]
46.89 s
[cursor-gen] +++ OK, passed 100 tests.
46.89 s
[cursor-gen] returns the index of the currently selected element [‐]
46.89 s
[cursor-gen] # PENDING: No reason given
46.89 s
[cursor-gen] nonEmptyCursorSelectIndex
46.89 s
[cursor-gen] produces valid cursors [✔]
46.89 s
[cursor-gen] +++ OK, passed 100 tests.
46.89 s
[cursor-gen] is the identity function when given the current selection [✔]
46.89 s
[cursor-gen] +++ OK, passed 100 tests.
46.89 s
[cursor-gen] returns selects the element at the given index [‐]
46.89 s
[cursor-gen] # PENDING: No reason given
46.89 s
[cursor-gen] nonEmptyCursorInsert
46.89 s
[cursor-gen] produces valid cursors [✔]
46.89 s
[cursor-gen] +++ OK, passed 100 tests.
46.89 s
[cursor-gen] inserts a character before the cursor [‐]
46.89 s
[cursor-gen] # PENDING: No reason given
46.89 s
[cursor-gen] nonEmptyCursorAppend
46.89 s
[cursor-gen] produces valid cursors [✔]
46.89 s
[cursor-gen] +++ OK, passed 100 tests.
46.89 s
[cursor-gen] inserts a character after the cursor [‐]
46.89 s
[cursor-gen] # PENDING: No reason given
46.89 s
[cursor-gen] nonEmptyCursorInsertAndSelect
46.89 s
[cursor-gen] produces valid cursors [✔]
46.89 s
[cursor-gen] +++ OK, passed 100 tests.
46.89 s
[cursor-gen] inserts a character before the cursor and selects it [‐]
46.89 s
[cursor-gen] # PENDING: No reason given
46.89 s
[cursor-gen] nonEmptyCursorAppendAndSelect
46.89 s
[cursor-gen] produces valid cursors [✔]
46.89 s
[cursor-gen] +++ OK, passed 100 tests.
46.89 s
[cursor-gen] appends a character before the cursor and selects it [‐]
46.89 s
[cursor-gen] # PENDING: No reason given
46.89 s
[cursor-gen] nonEmptyCursorInsertAtStart
46.89 s
[cursor-gen] produces valid cursors [✔]
46.89 s
[cursor-gen] +++ OK, passed 100 tests.
46.89 s
[cursor-gen] inserts a character at the start of the list [‐]
46.89 s
[cursor-gen] # PENDING: No reason given
46.89 s
[cursor-gen] nonEmptyCursorAppendAtEnd
46.89 s
[cursor-gen] produces valid cursors [✔]
46.89 s
[cursor-gen] +++ OK, passed 100 tests.
46.89 s
[cursor-gen] inserts a character at the end of the list [‐]
46.89 s
[cursor-gen] # PENDING: No reason given
46.89 s
[cursor-gen] nonEmptyCursorInsertAtStartAndSelect
46.89 s
[cursor-gen] produces valid cursors [✔]
46.89 s
[cursor-gen] +++ OK, passed 100 tests.
46.89 s
[cursor-gen] inserts a character at the start of the list and selects it [‐]
46.89 s
[cursor-gen] # PENDING: No reason given
46.89 s
[cursor-gen] nonEmptyCursorAppendAtEndAndSelect
46.90 s
[cursor-gen] produces valid cursors [✔]
46.90 s
[cursor-gen] +++ OK, passed 100 tests.
46.90 s
[cursor-gen] appends a character at the end of the list and selects it [‐]
46.90 s
[cursor-gen] # PENDING: No reason given
46.90 s
[cursor-gen] nonEmptyCursorRemoveElem
46.90 s
[cursor-gen] produces valid cursors [✔]
46.90 s
[cursor-gen] +++ OK, passed 100 tests.
46.90 s
[cursor-gen] removes an element [‐]
46.90 s
[cursor-gen] # PENDING: No reason given
46.90 s
[cursor-gen] nonEmptyCursorDeleteElem
46.90 s
[cursor-gen] produces valid cursors [✔]
46.90 s
[cursor-gen] +++ OK, passed 100 tests.
46.90 s
[cursor-gen] nonEmptyCursorSearch
46.90 s
[cursor-gen] produces valid cursors when looking for an equal element [✔]
46.90 s
[cursor-gen] +++ OK, passed 100 tests.
46.90 s
[cursor-gen] is indeed the right value when it finds a value and is looking for an equal element [✔]
46.90 s
[cursor-gen] +++ OK, passed 100 tests.
46.90 s
[cursor-gen] finds an element if it is in there [✔]
46.90 s
[cursor-gen] +++ OK, passed 100 tests.
46.90 s
[cursor-gen] nonEmptyCursorSelectOrAdd
46.90 s
[cursor-gen] produces valid cursors when looking for an equal element [✔]
46.90 s
[cursor-gen] +++ OK, passed 100 tests.
46.90 s
[cursor-gen] Cursor.Simple.Map
46.90 s
[cursor-gen] makeMapCursor
46.90 s
[cursor-gen] produces valid cursors [✔]
46.90 s
[cursor-gen] +++ OK, passed 100 tests.
46.90 s
[cursor-gen] makeMapCursorWithSelection
46.90 s
[cursor-gen] produces valid cursors [✔]
46.90 s
[cursor-gen] +++ OK, passed 100 tests.
46.90 s
[cursor-gen] singletonMapCursorKey
46.90 s
[cursor-gen] produces valid cursors [✔]
46.90 s
[cursor-gen] +++ OK, passed 100 tests.
46.90 s
[cursor-gen] singletonMapCursorValue
46.90 s
[cursor-gen] produces valid cursors [✔]
46.90 s
[cursor-gen] +++ OK, passed 100 tests.
46.90 s
[cursor-gen] rebuildMapCursor
46.90 s
[cursor-gen] produces valid Nonempty lists [✔]
46.90 s
[cursor-gen] +++ OK, passed 100 tests.
46.90 s
[cursor-gen] is the inverse of makeMapCursor for integers [✔]
46.90 s
[cursor-gen] +++ OK, passed 100 tests.
46.90 s
[cursor-gen] mapCursorNonEmptyCursorL
46.90 s
[cursor-gen] satisfies the first lens law for valid values and valid values [✔]
46.90 s
[cursor-gen] +++ OK, passed 100 tests.
46.90 s
[cursor-gen] satisfies the second lens law for valid values [✔]
46.90 s
[cursor-gen] +++ OK, passed 100 tests.
46.90 s
[cursor-gen] satisfies the third lens law for valid values and valid values [✔]
46.90 s
[cursor-gen] +++ OK, passed 100 tests.
46.90 s
[cursor-gen] gets valid values from valid values values [✔]
46.90 s
[cursor-gen] +++ OK, passed 100 tests.
46.90 s
[cursor-gen] produces valid values when it is used to set valid values values on valid values values [✔]
46.90 s
[cursor-gen] +++ OK, passed 100 tests.
46.90 s
[cursor-gen] mapCursorElemL
46.90 s
[cursor-gen] satisfies the first lens law for valid values and valid values [✔]
46.90 s
[cursor-gen] +++ OK, passed 100 tests.
46.90 s
[cursor-gen] satisfies the second lens law for valid values [✔]
46.90 s
[cursor-gen] +++ OK, passed 100 tests.
46.91 s
[cursor-gen] satisfies the third lens law for valid values and valid values [✔]
46.91 s
[cursor-gen] +++ OK, passed 100 tests.
46.91 s
[cursor-gen] gets valid values from valid values values [✔]
46.91 s
[cursor-gen] +++ OK, passed 100 tests.
46.91 s
[cursor-gen] produces valid values when it is used to set valid values values on valid values values [✔]
46.91 s
[cursor-gen] +++ OK, passed 100 tests.
46.91 s
[cursor-gen] mapCursorSelectKey
46.91 s
[cursor-gen] produces valid cursors [✔]
46.91 s
[cursor-gen] +++ OK, passed 100 tests.
46.91 s
[cursor-gen] mapCursorSelectValue
46.91 s
[cursor-gen] produces valid cursors [✔]
46.91 s
[cursor-gen] +++ OK, passed 100 tests.
46.91 s
[cursor-gen] mapCursorToggleSelected
46.91 s
[cursor-gen] produces valid cursors [✔]
46.91 s
[cursor-gen] +++ OK, passed 100 tests.
46.91 s
[cursor-gen] mapCursorSelectPrev
46.91 s
[cursor-gen] produces valid cursors [✔]
46.91 s
[cursor-gen] +++ OK, passed 100 tests.
46.91 s
[cursor-gen] is a movement [✔]
46.91 s
[cursor-gen] +++ OK, passed 100 tests.
46.91 s
[cursor-gen] selects the previous element [‐]
46.91 s
[cursor-gen] # PENDING: No reason given
46.91 s
[cursor-gen] mapCursorSelectNext
46.91 s
[cursor-gen] produces valid cursors [✔]
46.91 s
[cursor-gen] +++ OK, passed 100 tests.
46.91 s
[cursor-gen] is a movement [✔]
46.91 s
[cursor-gen] +++ OK, passed 100 tests.
46.91 s
[cursor-gen] selects the next element [‐]
46.91 s
[cursor-gen] # PENDING: No reason given
46.91 s
[cursor-gen] mapCursorSelectFirst
46.91 s
[cursor-gen] produces valid cursors [✔]
46.91 s
[cursor-gen] +++ OK, passed 100 tests.
46.91 s
[cursor-gen] is a movement [✔]
46.91 s
[cursor-gen] +++ OK, passed 100 tests.
46.91 s
[cursor-gen] is idempotent [✔]
46.91 s
[cursor-gen] +++ OK, passed 100 tests.
46.91 s
[cursor-gen] selects the first element [‐]
46.91 s
[cursor-gen] # PENDING: No reason given
46.91 s
[cursor-gen] mapCursorSelectLast
46.91 s
[cursor-gen] produces valid cursors [✔]
46.91 s
[cursor-gen] +++ OK, passed 100 tests.
46.92 s
[cursor-gen] is a movement [✔]
46.92 s
[cursor-gen] +++ OK, passed 100 tests.
46.92 s
[cursor-gen] is idempotent [✔]
46.92 s
[cursor-gen] +++ OK, passed 100 tests.
46.92 s
[cursor-gen] selects the last element [‐]
46.92 s
[cursor-gen] # PENDING: No reason given
46.92 s
[cursor-gen] mapCursorSelection
46.92 s
[cursor-gen] produces valid ints [✔]
46.92 s
[cursor-gen] +++ OK, passed 100 tests.
46.92 s
[cursor-gen] returns the index of the currently selected element [‐]
46.92 s
[cursor-gen] # PENDING: No reason given
46.92 s
[cursor-gen] mapCursorSelectIndex
46.92 s
[cursor-gen] produces valid cursors [✔]
46.92 s
[cursor-gen] +++ OK, passed 100 tests.
46.92 s
[cursor-gen] is the identity function when given the current selection [✔]
46.92 s
[cursor-gen] +++ OK, passed 100 tests.
46.92 s
[cursor-gen] returns selects the element at the given index [‐]
46.92 s
[cursor-gen] # PENDING: No reason given
46.92 s
[cursor-gen] mapCursorInsert
46.92 s
[cursor-gen] produces valid cursors [✔]
46.92 s
[cursor-gen] +++ OK, passed 100 tests.
46.92 s
[cursor-gen] inserts a character before the cursor [‐]
46.92 s
[cursor-gen] # PENDING: No reason given
46.92 s
[cursor-gen] mapCursorAppend
46.92 s
[cursor-gen] produces valid cursors [✔]
46.92 s
[cursor-gen] +++ OK, passed 100 tests.
46.92 s
[cursor-gen] inserts a character after the cursor [‐]
46.92 s
[cursor-gen] # PENDING: No reason given
46.92 s
[cursor-gen] mapCursorInsertAndSelectKey
46.92 s
[cursor-gen] produces valid cursors [✔]
46.92 s
[cursor-gen] +++ OK, passed 100 tests.
46.92 s
[cursor-gen] mapCursorAppendAndSelectKey
46.92 s
[cursor-gen] produces valid cursors [✔]
46.92 s
[cursor-gen] +++ OK, passed 100 tests.
46.92 s
[cursor-gen] mapCursorInsertAndSelectValue
46.92 s
[cursor-gen] produces valid cursors [✔]
46.92 s
[cursor-gen] +++ OK, passed 100 tests.
46.92 s
[cursor-gen] mapCursorAppendAndSelectValue
46.92 s
[cursor-gen] produces valid cursors [✔]
46.92 s
[cursor-gen] +++ OK, passed 100 tests.
46.92 s
[cursor-gen] mapCursorRemoveElem
46.92 s
[cursor-gen] produces valid cursors [✔]
46.92 s
[cursor-gen] +++ OK, passed 100 tests.
46.92 s
[cursor-gen] removes an element [‐]
46.92 s
[cursor-gen] # PENDING: No reason given
46.92 s
[cursor-gen] mapCursorDeleteElem
46.92 s
[cursor-gen] produces valid cursors [✔]
46.92 s
[cursor-gen] +++ OK, passed 100 tests.
46.92 s
[cursor-gen] deletes an element [‐]
46.92 s
[cursor-gen] # PENDING: No reason given
46.92 s
[cursor-gen] mapCursorSearch
46.92 s
[cursor-gen] produces valid cursors when looking for an equal pair [✔]
46.92 s
[cursor-gen] +++ OK, passed 100 tests.
46.93 s
[cursor-gen] is indeed the right value when it finds a value and is looking for an equal element [✔]
46.93 s
[cursor-gen] +++ OK, passed 100 tests.
46.93 s
[cursor-gen] mapCursorSelectOrAdd
46.93 s
[cursor-gen] produces valid cursors when looking for an equal element [✔]
46.93 s
[cursor-gen] +++ OK, passed 100 tests.
46.93 s
[cursor-gen] Cursor.Simple.Map.KeyValue
46.93 s
[cursor-gen] makeKeyValueCursorKey
46.93 s
[cursor-gen] produces valid cursors [✔]
46.93 s
[cursor-gen] +++ OK, passed 100 tests.
46.93 s
[cursor-gen] makeKeyValueCursorValue
46.93 s
[cursor-gen] produces valid cursors [✔]
46.93 s
[cursor-gen] +++ OK, passed 100 tests.
46.93 s
[cursor-gen] rebuildKeyValueCursor
46.93 s
[cursor-gen] produces valid tuples [✔]
46.93 s
[cursor-gen] +++ OK, passed 100 tests.
46.93 s
[cursor-gen] keyValueCursorSelection
46.93 s
[cursor-gen] produces valid selections [✔]
46.93 s
[cursor-gen] +++ OK, passed 100 tests.
46.93 s
[cursor-gen] keyValueCursorSelectKey
46.93 s
[cursor-gen] produces valid cursors [✔]
46.93 s
[cursor-gen] +++ OK, passed 100 tests.
46.93 s
[cursor-gen] is a movement [✔]
46.93 s
[cursor-gen] +++ OK, passed 100 tests.
46.93 s
[cursor-gen] keyValueCursorSelectValue
46.93 s
[cursor-gen] produces valid cursors [✔]
46.93 s
[cursor-gen] +++ OK, passed 100 tests.
46.93 s
[cursor-gen] is a movement [✔]
46.93 s
[cursor-gen] +++ OK, passed 100 tests.
46.93 s
[cursor-gen] keyValueCursorToggleSelected
46.93 s
[cursor-gen] produces valid cursors [✔]
46.93 s
[cursor-gen] +++ OK, passed 100 tests.
46.93 s
[cursor-gen] is a movement [✔]
46.93 s
[cursor-gen] +++ OK, passed 100 tests.
46.93 s
[cursor-gen] Cursor.Simple.Tree.Base
46.93 s
[cursor-gen] Eq (TreeCursor Int Int)
46.93 s
[cursor-gen] (==) :: (TreeCursor Int Int) -> (TreeCursor Int Int) -> Bool
46.93 s
[cursor-gen] is reflexive for "valid (TreeCursor Int Int)"s [✔]
46.93 s
[cursor-gen] +++ OK, passed 100 tests.
46.93 s
[cursor-gen] is symmetric for "valid (TreeCursor Int Int)"s [✔]
46.93 s
[cursor-gen] +++ OK, passed 100 tests.
46.93 s
[cursor-gen] is transitive for "valid (TreeCursor Int Int)"s [✔]
46.93 s
[cursor-gen] +++ OK, passed 100 tests.
46.93 s
[cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid (TreeCursor Int Int)"s [✔]
46.93 s
[cursor-gen] +++ OK, passed 100 tests.
46.93 s
[cursor-gen] (/=) :: (TreeCursor Int Int) -> (TreeCursor Int Int) -> Bool
46.93 s
[cursor-gen] is antireflexive for "valid (TreeCursor Int Int)"s [✔]
46.93 s
[cursor-gen] +++ OK, passed 100 tests.
46.93 s
[cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid (TreeCursor Int Int)"s [✔]
46.93 s
[cursor-gen] +++ OK, passed 100 tests.
46.93 s
[cursor-gen] GenValid (TreeCursor Bool Bool)
46.93 s
[cursor-gen] genValid :: Gen (TreeCursor Bool Bool)
46.93 s
[cursor-gen] only generates valid '(TreeCursor Bool Bool)'s [✔]
46.93 s
[cursor-gen] +++ OK, passed 100 tests.
46.93 s
[cursor-gen] makeTreeCursor
46.93 s
[cursor-gen] produces valid cursors [✔]
46.93 s
[cursor-gen] +++ OK, passed 100 tests.
46.93 s
[cursor-gen] makeNodeTreeCursor
46.93 s
[cursor-gen] produces valid cursors [✔]
46.93 s
[cursor-gen] +++ OK, passed 100 tests.
46.93 s
[cursor-gen] makeTreeCursorWithSelection
46.93 s
[cursor-gen] produces valid cursors [✔]
46.93 s
[cursor-gen] +++ OK, passed 100 tests.
46.93 s
[cursor-gen] singletonTreeCursor
46.93 s
[cursor-gen] produces valid cursors [✔]
46.93 s
[cursor-gen] +++ OK, passed 100 tests.
46.93 s
[cursor-gen] rebuildTreeCursor
46.93 s
[cursor-gen] produces valid trees [✔]
46.93 s
[cursor-gen] +++ OK, passed 100 tests.
46.93 s
[cursor-gen] is the inverse of makeTreeCursor for integers [✔]
46.93 s
[cursor-gen] +++ OK, passed 100 tests.
46.93 s
[cursor-gen] is the inverse of makeTreeCursorWithSelection for the current selection [✔]
46.93 s
[cursor-gen] +++ OK, passed 100 tests.
46.93 s
[cursor-gen] Cursor.Simple.Tree.Collapse
46.93 s
[cursor-gen] treeCursorOpenCurrentForest
46.94 s
[cursor-gen] produces valid cursors [✔]
46.94 s
[cursor-gen] +++ OK, passed 100 tests.
46.94 s
[cursor-gen] treeCursorCloseCurrentForest
46.94 s
[cursor-gen] produces valid cursors [✔]
46.94 s
[cursor-gen] +++ OK, passed 100 tests.
46.94 s
[cursor-gen] treeCursorToggleCurrentForest
46.94 s
[cursor-gen] produces valid cursors [✔]
46.94 s
[cursor-gen] +++ OK, passed 100 tests.
46.94 s
[cursor-gen] treeCursorOpenCurrentForestRecursively
46.94 s
[cursor-gen] produces valid cursors [✔]
46.94 s
[cursor-gen] +++ OK, passed 100 tests.
46.94 s
[cursor-gen] treeCursorToggleCurrentForestRecursively
46.94 s
[cursor-gen] produces valid cursors [✔]
46.94 s
[cursor-gen] +++ OK, passed 100 tests.
46.94 s
[cursor-gen] Cursor.Simple.Tree.Delete
46.94 s
[cursor-gen] treeCursorDeleteSubTreeAndSelectPrevious
46.94 s
[cursor-gen] produces valids on valids [✔]
46.94 s
[cursor-gen] +++ OK, passed 100 tests.
46.94 s
[cursor-gen] deletes the current subtree selects the previous subtree [‐]
46.94 s
[cursor-gen] # PENDING: No reason given
46.94 s
[cursor-gen] treeCursorDeleteSubTreeAndSelectNext
46.94 s
[cursor-gen] produces valids on valids [✔]
46.94 s
[cursor-gen] +++ OK, passed 100 tests.
46.94 s
[cursor-gen] deletes the current subtree selects the next subtree [‐]
46.94 s
[cursor-gen] # PENDING: No reason given
46.94 s
[cursor-gen] treeCursorDeleteSubTreeAndSelectAbove
46.94 s
[cursor-gen] produces valids on valids [✔]
46.94 s
[cursor-gen] +++ OK, passed 100 tests.
46.94 s
[cursor-gen] deletes the current subtree selects the above node [‐]
46.94 s
[cursor-gen] # PENDING: No reason given
46.94 s
[cursor-gen] treeCursorRemoveSubTree
46.94 s
[cursor-gen] produces valids on valids [✔]
46.94 s
[cursor-gen] +++ OK, passed 100 tests.
46.94 s
[cursor-gen] removes the current subtree [‐]
46.94 s
[cursor-gen] # PENDING: No reason given
46.94 s
[cursor-gen] treeCursorDeleteSubTree
46.94 s
[cursor-gen] produces valids on valids [✔]
46.94 s
[cursor-gen] +++ OK, passed 100 tests.
46.94 s
[cursor-gen] deletes the current subtree [‐]
46.94 s
[cursor-gen] # PENDING: No reason given
46.94 s
[cursor-gen] treeCursorDeleteElemAndSelectPrevious
46.94 s
[cursor-gen] produces valids on valids [✔]
46.94 s
[cursor-gen] +++ OK, passed 100 tests.
46.94 s
[cursor-gen] works for this simple example [✔]
46.94 s
[cursor-gen] +++ OK, passed 100 tests.
46.94 s
[cursor-gen] deletes the current element and selects the previous element [‐]
46.94 s
[cursor-gen] # PENDING: No reason given
46.94 s
[cursor-gen] treeCursorDeleteElemAndSelectNext
46.94 s
[cursor-gen] produces valids on valids [✔]
46.94 s
[cursor-gen] +++ OK, passed 100 tests.
46.95 s
[cursor-gen] works for this simple example [✔]
46.95 s
[cursor-gen] +++ OK, passed 100 tests.
46.95 s
[cursor-gen] deletes the current element and selects the next element [‐]
46.95 s
[cursor-gen] # PENDING: No reason given
46.95 s
[cursor-gen] treeCursorDeleteElemAndSelectAbove
46.95 s
[cursor-gen] produces valids on valids [✔]
46.95 s
[cursor-gen] +++ OK, passed 100 tests.
46.95 s
[cursor-gen] works for this simple example [✔]
46.95 s
[cursor-gen] +++ OK, passed 100 tests.
46.95 s
[cursor-gen] deletes the current element and selects the above element [‐]
46.95 s
[cursor-gen] # PENDING: No reason given
46.95 s
[cursor-gen] treeCursorRemoveElem
46.95 s
[cursor-gen] produces valids on valids [✔]
46.95 s
[cursor-gen] +++ OK, passed 100 tests.
46.95 s
[cursor-gen] removes the current element [‐]
46.95 s
[cursor-gen] # PENDING: No reason given
46.95 s
[cursor-gen] treeCursorDeleteElem
46.95 s
[cursor-gen] produces valids on valids [✔]
46.95 s
[cursor-gen] +++ OK, passed 100 tests.
46.95 s
[cursor-gen] deletes the current element [‐]
46.95 s
[cursor-gen] # PENDING: No reason given
46.95 s
[cursor-gen] Cursor.Simple.Tree.Demote
46.95 s
[cursor-gen] Functor DemoteResult
46.95 s
[cursor-gen] fmap :: (a -> b) -> DemoteResult a -> DemoteResult b
46.95 s
[cursor-gen] satisfies the first Fuctor law: 'fmap id == id' for "DemoteResult of ints :: (DemoteResult Int)" [✔]
46.95 s
[cursor-gen] +++ OK, passed 100 tests.
46.95 s
[cursor-gen] satisfieds the second Functor law: 'fmap (f . g) == fmap f . fmap g' for "DemoteResult of ints :: (DemoteResult Int)" 's given to "increments :: (Int -> Int)" and "scalings :: (Int -> Int)" [✔]
46.95 s
[cursor-gen] +++ OK, passed 100 tests.
46.95 s
[cursor-gen] (<$) :: a -> DemoteResult b -> DemoteResult a
46.95 s
[cursor-gen] is equivalent to its default implementation for "int :: Int" and "DemoteResult of ints :: (DemoteResult Int)" [✔]
46.95 s
[cursor-gen] +++ OK, passed 100 tests.
46.95 s
[cursor-gen] treeCursorDemoteElem
46.95 s
[cursor-gen] produces valids on valids [✔]
46.95 s
[cursor-gen] +++ OK, passed 100 tests.
46.95 s
[cursor-gen] Works on the example from the docs [✔]
46.95 s
[cursor-gen] demotes the current node to the level of its children [‐]
46.95 s
[cursor-gen] # PENDING: No reason given
46.95 s
[cursor-gen] treeCursorDemoteSubTree
46.95 s
[cursor-gen] produces valids on valids [✔]
46.95 s
[cursor-gen] +++ OK, passed 100 tests.
46.95 s
[cursor-gen] Works on the example from the docs [✔]
46.95 s
[cursor-gen] demotes the current subtree to the level of its children [‐]
46.95 s
[cursor-gen] # PENDING: No reason given
46.95 s
[cursor-gen] treeCursorDemoteElemUnder
46.95 s
[cursor-gen] produces valids on valids [✔]
46.95 s
[cursor-gen] +++ OK, passed 100 tests.
46.95 s
[cursor-gen] Works on the example from the docs [✔]
46.95 s
[cursor-gen] +++ OK, passed 100 tests.
46.95 s
[cursor-gen] demotes the current node to the level of its children [‐]
46.95 s
[cursor-gen] # PENDING: No reason given
46.95 s
[cursor-gen] treeCursorDemoteSubTreeUnder
46.95 s
[cursor-gen] produces valids on valids [✔]
46.95 s
[cursor-gen] +++ OK, passed 100 tests.
46.95 s
[cursor-gen] Works on the example from the docs [✔]
46.95 s
[cursor-gen] +++ OK, passed 100 tests.
46.95 s
[cursor-gen] demotes the current subtree to the level of its children, by adding a root [‐]
46.95 s
[cursor-gen] # PENDING: No reason given
46.95 s
[cursor-gen] Cursor.Simple.Tree.Insert
46.95 s
[cursor-gen] treeCursorInsert
46.95 s
[cursor-gen] produces valids on valids [✔]
46.95 s
[cursor-gen] +++ OK, passed 100 tests.
46.95 s
[cursor-gen] inserts the element [‐]
46.95 s
[cursor-gen] # PENDING: No reason given
46.95 s
[cursor-gen] treeCursorInsertAndSelect
46.95 s
[cursor-gen] produces valids on valids [✔]
46.95 s
[cursor-gen] +++ OK, passed 100 tests.
46.95 s
[cursor-gen] inserts and select the element [‐]
46.95 s
[cursor-gen] # PENDING: No reason given
46.95 s
[cursor-gen] treeCursorInsertNodeSingleAndSelect
46.95 s
[cursor-gen] produces valids on valids [✔]
46.95 s
[cursor-gen] +++ OK, passed 100 tests.
46.95 s
[cursor-gen] inserts and select the element [‐]
46.95 s
[cursor-gen] # PENDING: No reason given
46.95 s
[cursor-gen] treeCursorInsertNodeAndSelect
46.96 s
[cursor-gen] produces valids on valids [✔]
46.96 s
[cursor-gen] +++ OK, passed 100 tests.
46.96 s
[cursor-gen] inserts and select the element [‐]
46.96 s
[cursor-gen] # PENDING: No reason given
46.96 s
[cursor-gen] treeCursorAppend
46.96 s
[cursor-gen] produces valids on valids [✔]
46.96 s
[cursor-gen] +++ OK, passed 100 tests.
46.96 s
[cursor-gen] appends the element [‐]
46.96 s
[cursor-gen] # PENDING: No reason given
46.96 s
[cursor-gen] treeCursorAppendAndSelect
46.96 s
[cursor-gen] produces valids on valids [✔]
46.96 s
[cursor-gen] +++ OK, passed 100 tests.
46.96 s
[cursor-gen] appends and select the element [‐]
46.96 s
[cursor-gen] # PENDING: No reason given
46.96 s
[cursor-gen] treeCursorAppendNodeSingleAndSelect
46.96 s
[cursor-gen] produces valids on valids [✔]
46.96 s
[cursor-gen] +++ OK, passed 100 tests.
46.96 s
[cursor-gen] appends and select the element [‐]
46.96 s
[cursor-gen] # PENDING: No reason given
46.96 s
[cursor-gen] treeCursorAppendNodeAndSelect
46.96 s
[cursor-gen] produces valids on valids [✔]
46.96 s
[cursor-gen] +++ OK, passed 100 tests.
46.96 s
[cursor-gen] appends and select the element [‐]
46.96 s
[cursor-gen] # PENDING: No reason given
46.96 s
[cursor-gen] treeCursorAddChildAtPos
46.96 s
[cursor-gen] produces valid cursors [✔]
46.96 s
[cursor-gen] +++ OK, passed 100 tests.
46.96 s
[cursor-gen] adds a tree at the given index in the children of the current node [‐]
46.96 s
[cursor-gen] # PENDING: No reason given
46.96 s
[cursor-gen] treeCursorAddChildAtStart
46.96 s
[cursor-gen] produces valid cursors [✔]
46.96 s
[cursor-gen] +++ OK, passed 100 tests.
46.96 s
[cursor-gen] adds a tree at the start of the children of the current node [‐]
46.96 s
[cursor-gen] # PENDING: No reason given
46.96 s
[cursor-gen] treeCursorAddChildAtEnd
46.96 s
[cursor-gen] produces valid cursors [✔]
46.96 s
[cursor-gen] +++ OK, passed 100 tests.
46.96 s
[cursor-gen] adds a tree at the end of the children of the current node [‐]
46.96 s
[cursor-gen] # PENDING: No reason given
46.96 s
[cursor-gen] treeCursorAddChildAtPosAndSelect
46.96 s
[cursor-gen] produces valid cursors [✔]
46.96 s
[cursor-gen] +++ OK, passed 100 tests.
46.96 s
[cursor-gen] adds a tree at the given index in theAndSelect children of the current node [‐]
46.96 s
[cursor-gen] # PENDING: No reason given
46.96 s
[cursor-gen] treeCursorAddChildAtStartAndSelect
46.96 s
[cursor-gen] producesAndSelect valid cursors [✔]
46.97 s
[cursor-gen] +++ OK, passed 100 tests.
46.97 s
[cursor-gen] adds a tree at the start of the children of the current node [‐]
46.97 s
[cursor-gen] # PENDING: No reason given
46.97 s
[cursor-gen] treeCursorAddChildAtEndAndSelect
46.97 s
[cursor-gen] produces valid cursors [✔]
46.97 s
[cursor-gen] +++ OK, passed 100 tests.
46.97 s
[cursor-gen] adds a tree at the end of the children of the current node [‐]
46.97 s
[cursor-gen] # PENDING: No reason given
46.97 s
[cursor-gen] treeCursorAddChildNodeSingleAtPosAndSelect
46.97 s
[cursor-gen] produces valid cursors [✔]
46.97 s
[cursor-gen] +++ OK, passed 100 tests.
46.97 s
[cursor-gen] treeCursorAddChildNodeSingleAtStartAndSelect
46.97 s
[cursor-gen] produces valid cursors [✔]
46.97 s
[cursor-gen] +++ OK, passed 100 tests.
46.97 s
[cursor-gen] treeCursorAddChildNodeSingleAtEndAndSelect
46.97 s
[cursor-gen] produces valid cursors [✔]
46.97 s
[cursor-gen] +++ OK, passed 100 tests.
46.97 s
[cursor-gen] treeCursorAddChildNodeAtPosAndSelect
46.97 s
[cursor-gen] produces valid cursors [✔]
46.97 s
[cursor-gen] +++ OK, passed 100 tests.
46.97 s
[cursor-gen] treeCursorAddChildNodeAtStartAndSelect
46.97 s
[cursor-gen] produces valid cursors [✔]
46.97 s
[cursor-gen] +++ OK, passed 100 tests.
46.97 s
[cursor-gen] works for this example [✔]
46.97 s
[cursor-gen] treeCursorAddChildNodeAtEndAndSelect
46.97 s
[cursor-gen] produces valid cursors [✔]
46.97 s
[cursor-gen] +++ OK, passed 100 tests.
46.97 s
[cursor-gen] works for this example [✔]
46.97 s
[cursor-gen] Cursor.Simple.Tree.Movement
46.97 s
[cursor-gen] treeCursorSelection
46.97 s
[cursor-gen] produces valids on valids [✔]
46.97 s
[cursor-gen] +++ OK, passed 100 tests.
46.97 s
[cursor-gen] treeCursorSelect
46.97 s
[cursor-gen] produces valids on valids [✔]
46.97 s
[cursor-gen] +++ OK, passed 100 tests.
46.97 s
[cursor-gen] is identity with the current selection [✔]
46.97 s
[cursor-gen] +++ OK, passed 100 tests.
46.97 s
[cursor-gen] treeCursorSelectPrevOnSameLevel
46.97 s
[cursor-gen] produces valids on valids [✔]
46.98 s
[cursor-gen] +++ OK, passed 100 tests.
46.98 s
[cursor-gen] is a movement [✔]
46.98 s
[cursor-gen] +++ OK, passed 100 tests.
46.98 s
[cursor-gen] selects the previous element [‐]
46.98 s
[cursor-gen] # PENDING: No reason given
46.98 s
[cursor-gen] after treeCursorSelectNextOnSameLevel is identity if they don't fail [✔]
46.98 s
[cursor-gen] +++ OK, passed 100 tests.
46.98 s
[cursor-gen] treeCursorSelectNextOnSameLevel
46.98 s
[cursor-gen] produces valids on valids [✔]
46.98 s
[cursor-gen] +++ OK, passed 100 tests.
46.98 s
[cursor-gen] is a movement [✔]
46.98 s
[cursor-gen] +++ OK, passed 100 tests.
46.98 s
[cursor-gen] selects the next element [‐]
46.98 s
[cursor-gen] # PENDING: No reason given
46.98 s
[cursor-gen] after treeCursorSelectPrevOnSameLevel is identity if they don't fail [✔]
46.98 s
[cursor-gen] +++ OK, passed 100 tests.
46.98 s
[cursor-gen] treeCursorSelectFirstOnSameLevel
46.98 s
[cursor-gen] produces valids on valids [✔]
46.98 s
[cursor-gen] +++ OK, passed 100 tests.
46.98 s
[cursor-gen] is a movement [✔]
46.98 s
[cursor-gen] +++ OK, passed 100 tests.
46.98 s
[cursor-gen] selects the previous element [‐]
46.98 s
[cursor-gen] # PENDING: No reason given
46.98 s
[cursor-gen] treeCursorSelectNextOnSameLevel
46.98 s
[cursor-gen] produces valids on valids [✔]
46.98 s
[cursor-gen] +++ OK, passed 100 tests.
46.98 s
[cursor-gen] is a movement [✔]
46.98 s
[cursor-gen] +++ OK, passed 100 tests.
46.98 s
[cursor-gen] selects the next element [‐]
46.98 s
[cursor-gen] # PENDING: No reason given
46.98 s
[cursor-gen] treeCursorSelectAbovePrev
46.98 s
[cursor-gen] produces valids on valids [✔]
46.98 s
[cursor-gen] +++ OK, passed 100 tests.
46.98 s
[cursor-gen] is a movement [✔]
46.98 s
[cursor-gen] +++ OK, passed 100 tests.
46.98 s
[cursor-gen] Works for this classic example [✔]
46.98 s
[cursor-gen] selects the previous element [‐]
46.98 s
[cursor-gen] # PENDING: No reason given
46.98 s
[cursor-gen] after treeCursorSelectAboveNext is identity if they don't fail [✔]
46.98 s
[cursor-gen] +++ OK, passed 100 tests.
46.98 s
[cursor-gen] treeCursorSelectAboveNext
46.98 s
[cursor-gen] produces valids on valids [✔]
46.98 s
[cursor-gen] +++ OK, passed 100 tests.
46.98 s
[cursor-gen] is a movement [✔]
46.98 s
[cursor-gen] +++ OK, passed 100 tests.
46.98 s
[cursor-gen] Works for this classic example [✔]
46.98 s
[cursor-gen] selects the next element [‐]
46.98 s
[cursor-gen] # PENDING: No reason given
46.98 s
[cursor-gen] after treeCursorSelectAbovePrev is identity if they don't fail [✔]
46.98 s
[cursor-gen] +++ OK, passed 100 tests.
46.98 s
[cursor-gen] treeCursorSelectPrev
46.98 s
[cursor-gen] produces valids on valids [✔]
46.98 s
[cursor-gen] +++ OK, passed 100 tests.
46.99 s
[cursor-gen] is a movement [✔]
46.99 s
[cursor-gen] +++ OK, passed 100 tests.
46.99 s
[cursor-gen] selects the previous element [‐]
46.99 s
[cursor-gen] # PENDING: No reason given
46.99 s
[cursor-gen] after treeCursorSelectNext is identity if they don't fail [✔]
46.99 s
[cursor-gen] +++ OK, passed 100 tests.
46.99 s
[cursor-gen] treeCursorSelectNext
46.99 s
[cursor-gen] produces valids on valids [✔]
46.99 s
[cursor-gen] +++ OK, passed 100 tests.
46.99 s
[cursor-gen] is a movement [✔]
46.99 s
[cursor-gen] +++ OK, passed 100 tests.
46.99 s
[cursor-gen] selects the next element [‐]
46.99 s
[cursor-gen] # PENDING: No reason given
46.99 s
[cursor-gen] after treeCursorSelectPrev is identity if they don't fail [✔]
46.99 s
[cursor-gen] +++ OK, passed 100 tests.
46.99 s
[cursor-gen] treeCursorSelectFirst
46.99 s
[cursor-gen] produces valids on valids [✔]
46.99 s
[cursor-gen] +++ OK, passed 100 tests.
46.99 s
[cursor-gen] is a movement [✔]
46.99 s
[cursor-gen] +++ OK, passed 100 tests.
46.99 s
[cursor-gen] selects the first element [‐]
46.99 s
[cursor-gen] # PENDING: No reason given
46.99 s
[cursor-gen] is idempotent [✔]
46.99 s
[cursor-gen] +++ OK, passed 100 tests.
46.99 s
[cursor-gen] treeCursorSelectLast
46.99 s
[cursor-gen] produces valids on valids [✔]
46.99 s
[cursor-gen] +++ OK, passed 100 tests.
46.99 s
[cursor-gen] is a movement [✔]
46.99 s
[cursor-gen] +++ OK, passed 100 tests.
46.99 s
[cursor-gen] selects the last element [‐]
46.99 s
[cursor-gen] # PENDING: No reason given
46.99 s
[cursor-gen] is idempotent [✔]
46.99 s
[cursor-gen] +++ OK, passed 100 tests.
46.99 s
[cursor-gen] treeCursorSelectAbove
46.99 s
[cursor-gen] produces valids on valids [✔]
46.99 s
[cursor-gen] +++ OK, passed 100 tests.
46.99 s
[cursor-gen] is a movement [✔]
46.99 s
[cursor-gen] +++ OK, passed 100 tests.
46.99 s
[cursor-gen] selects the element above [‐]
46.99 s
[cursor-gen] # PENDING: No reason given
46.99 s
[cursor-gen] after treeCursorSelectBelow is identity if they don't fail [✔]
46.99 s
[cursor-gen] +++ OK, passed 100 tests.
46.99 s
[cursor-gen] treeCursorSelectBelowAtPos
47.00 s
[cursor-gen] produces valids on valids [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] is a movement [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] selects the element n-th below [‐]
47.00 s
[cursor-gen] # PENDING: No reason given
47.00 s
[cursor-gen] treeCursorSelectBelowAtStart
47.00 s
[cursor-gen] produces valids on valids [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] is a movement [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] selects the first child below [‐]
47.00 s
[cursor-gen] # PENDING: No reason given
47.00 s
[cursor-gen] treeCursorSelectBelowAtEnd
47.00 s
[cursor-gen] produces valids on valids [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] is a movement [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] selects the last child below [‐]
47.00 s
[cursor-gen] # PENDING: No reason given
47.00 s
[cursor-gen] treeCursorSelectBelowAtStartRecursively
47.00 s
[cursor-gen] produces valids on valids [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] is a movement [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] selects the first child below, recursively [‐]
47.00 s
[cursor-gen] # PENDING: No reason given
47.00 s
[cursor-gen] treeCursorSelectBelowAtEndRecursively
47.00 s
[cursor-gen] produces valids on valids [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] is a movement [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] selects the last child below, recursively [‐]
47.00 s
[cursor-gen] # PENDING: No reason given
47.00 s
[cursor-gen] Cursor.Simple.Tree.Promote
47.00 s
[cursor-gen] Functor PromoteElemResult
47.00 s
[cursor-gen] fmap :: (a -> b) -> PromoteElemResult a -> PromoteElemResult b
47.00 s
[cursor-gen] satisfies the first Fuctor law: 'fmap id == id' for "PromoteElemResult of ints :: (PromoteElemResult Int)" [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] satisfieds the second Functor law: 'fmap (f . g) == fmap f . fmap g' for "PromoteElemResult of ints :: (PromoteElemResult Int)" 's given to "increments :: (Int -> Int)" and "scalings :: (Int -> Int)" [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] (<$) :: a -> PromoteElemResult b -> PromoteElemResult a
47.00 s
[cursor-gen] is equivalent to its default implementation for "int :: Int" and "PromoteElemResult of ints :: (PromoteElemResult Int)" [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] Applicative PromoteElemResult
47.00 s
[cursor-gen] pure :: a -> PromoteElemResult a and (<*>) :: PromoteElemResult (a -> b) -> PromoteElemResult a -> PromoteElemResult b
47.00 s
[cursor-gen] satisfy the identity law: 'pure id <*> v = v' for "PromoteElemResult of ints :: (PromoteElemResult Int)" [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] satisfy the composition law: 'pure (.) <*> u <*> v <*> w = u <*> (v <*> w)' for "PromoteElemResult of scalings :: (PromoteElemResult (Int -> Int))" composed with "PromoteElemResult of increments :: (PromoteElemResult (Int -> Int))" and applied to "PromoteElemResult of ints :: (PromoteElemResult Int)" [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] satisfy the homomorphism law: 'pure f <*> pure x = pure (f x)' for "increments :: (Int -> Int)" sequenced with "int :: Int" [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] satisfy the interchange law: 'u <*> pure y = pure ($ y) <*> u' for "PromoteElemResult of increments :: (PromoteElemResult (Int -> Int))" sequenced with "int :: Int" [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] satisfy the law about the functor instance: fmap f x = pure f <*> x for "increments :: (Int -> Int)" mapped over "PromoteElemResult of ints :: (PromoteElemResult Int)" [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] (*>) :: PromoteElemResult a -> PromoteElemResult b -> PromoteElemResult b
47.00 s
[cursor-gen] is equivalent to its default implementation 'u Type> v = pure (const id) <*> u <*> v' for "PromoteElemResult of ints :: (PromoteElemResult Int)" in front of "PromoteElemResult of ints :: Int" [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] (<*) :: PromoteElemResult a -> PromoteElemResult b -> PromoteElemResult a
47.00 s
[cursor-gen] is equivalent to its default implementation 'u <* v = pure const <*> u <*> v' for "PromoteElemResult of ints :: Int" behind "PromoteElemResult of ints :: (PromoteElemResult Int)" [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] Monad PromoteElemResult
47.00 s
[cursor-gen] return :: a -> PromoteElemResult a and (>>=) :: PromoteElemResult a -> (b -> PromoteElemResult a) -> PromoteElemResult b
47.00 s
[cursor-gen] satisfy the first Monad law: 'return a >>= k = k a' for "int :: Int" and "perturbations using the int :: (Int -> PromoteElemResult Int)" [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] satisfy the second Monad law: 'm >>= return = m' for "PromoteElemResult of ints :: (PromoteElemResult Int)" [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] (>>=) :: PromoteElemResult a -> (b -> PromoteElemResult a) -> PromoteElemResult b
47.00 s
[cursor-gen] satisfies the third Monad law: 'm >>= (x -> k x >>= h) = (m >>= k) >>= h' for "PromoteElemResult of ints :: (PromoteElemResult Int)" "perturbations using the int :: (Int -> PromoteElemResult Int)" and "perturbations using the double the int :: (Int -> PromoteElemResult Int)" [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] relation with Applicative PromoteElemResult
47.00 s
[cursor-gen] satisfies 'pure = return' for "PromoteElemResult of ints :: (PromoteElemResult Int)" [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] satisfies '(<*>) = ap' for "PromoteElemResult of additions :: (PromoteElemResult (Int -> Int))" and "PromoteElemResult of ints :: (PromoteElemResult Int)" [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] satisfies '(>>) = (*>)' for "PromoteElemResult of ints :: (PromoteElemResult Int)" and "PromoteElemResult of ints :: (PromoteElemResult Int)" [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] relation with Functor PromoteElemResult
47.00 s
[cursor-gen] satisfies 'fmap f xs = xs >>= return . f' for "increments :: (Int -> Int)" and "PromoteElemResult of ints :: (PromoteElemResult Int)" [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] treeCursorPromoteElem
47.00 s
[cursor-gen] produces valids on valids [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] Works on the example from the docs [✔]
47.00 s
[cursor-gen] promotes the current node to the level of its parent [‐]
47.00 s
[cursor-gen] # PENDING: No reason given
47.00 s
[cursor-gen] Functor PromoteResult
47.00 s
[cursor-gen] fmap :: (a -> b) -> PromoteResult a -> PromoteResult b
47.00 s
[cursor-gen] satisfies the first Fuctor law: 'fmap id == id' for "PromoteResult of ints :: (PromoteResult Int)" [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] satisfieds the second Functor law: 'fmap (f . g) == fmap f . fmap g' for "PromoteResult of ints :: (PromoteResult Int)" 's given to "increments :: (Int -> Int)" and "scalings :: (Int -> Int)" [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] (<$) :: a -> PromoteResult b -> PromoteResult a
47.00 s
[cursor-gen] is equivalent to its default implementation for "int :: Int" and "PromoteResult of ints :: (PromoteResult Int)" [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] Applicative PromoteResult
47.00 s
[cursor-gen] pure :: a -> PromoteResult a and (<*>) :: PromoteResult (a -> b) -> PromoteResult a -> PromoteResult b
47.00 s
[cursor-gen] satisfy the identity law: 'pure id <*> v = v' for "PromoteResult of ints :: (PromoteResult Int)" [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] satisfy the composition law: 'pure (.) <*> u <*> v <*> w = u <*> (v <*> w)' for "PromoteResult of scalings :: (PromoteResult (Int -> Int))" composed with "PromoteResult of increments :: (PromoteResult (Int -> Int))" and applied to "PromoteResult of ints :: (PromoteResult Int)" [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] satisfy the homomorphism law: 'pure f <*> pure x = pure (f x)' for "increments :: (Int -> Int)" sequenced with "int :: Int" [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] satisfy the interchange law: 'u <*> pure y = pure ($ y) <*> u' for "PromoteResult of increments :: (PromoteResult (Int -> Int))" sequenced with "int :: Int" [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] satisfy the law about the functor instance: fmap f x = pure f <*> x for "increments :: (Int -> Int)" mapped over "PromoteResult of ints :: (PromoteResult Int)" [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] (*>) :: PromoteResult a -> PromoteResult b -> PromoteResult b
47.00 s
[cursor-gen] is equivalent to its default implementation 'u Type> v = pure (const id) <*> u <*> v' for "PromoteResult of ints :: (PromoteResult Int)" in front of "PromoteResult of ints :: Int" [✔]
47.00 s
[cursor-gen] +++ OK, passed 100 tests.
47.00 s
[cursor-gen] (<*) :: PromoteResult a -> PromoteResult b -> PromoteResult a
47.00 s
[cursor-gen] is equivalent to its default implementation 'u <* v = pure const <*> u <*> v' for "PromoteResult of ints :: Int" behind "PromoteResult of ints :: (PromoteResult Int)" [✔]
47.01 s
[cursor-gen] +++ OK, passed 100 tests.
47.01 s
[cursor-gen] Monad PromoteResult
47.01 s
[cursor-gen] return :: a -> PromoteResult a and (>>=) :: PromoteResult a -> (b -> PromoteResult a) -> PromoteResult b
47.01 s
[cursor-gen] satisfy the first Monad law: 'return a >>= k = k a' for "int :: Int" and "perturbations using the int :: (Int -> PromoteResult Int)" [✔]
47.01 s
[cursor-gen] +++ OK, passed 100 tests.
47.01 s
[cursor-gen] satisfy the second Monad law: 'm >>= return = m' for "PromoteResult of ints :: (PromoteResult Int)" [✔]
47.01 s
[cursor-gen] +++ OK, passed 100 tests.
47.01 s
[cursor-gen] (>>=) :: PromoteResult a -> (b -> PromoteResult a) -> PromoteResult b
47.01 s
[cursor-gen] satisfies the third Monad law: 'm >>= (x -> k x >>= h) = (m >>= k) >>= h' for "PromoteResult of ints :: (PromoteResult Int)" "perturbations using the int :: (Int -> PromoteResult Int)" and "perturbations using the double the int :: (Int -> PromoteResult Int)" [✔]
47.01 s
[cursor-gen] +++ OK, passed 100 tests.
47.01 s
[cursor-gen] relation with Applicative PromoteResult
47.01 s
[cursor-gen] satisfies 'pure = return' for "PromoteResult of ints :: (PromoteResult Int)" [✔]
47.01 s
[cursor-gen] +++ OK, passed 100 tests.
47.01 s
[cursor-gen] satisfies '(<*>) = ap' for "PromoteResult of additions :: (PromoteResult (Int -> Int))" and "PromoteResult of ints :: (PromoteResult Int)" [✔]
47.01 s
[cursor-gen] +++ OK, passed 100 tests.
47.01 s
[cursor-gen] satisfies '(>>) = (*>)' for "PromoteResult of ints :: (PromoteResult Int)" and "PromoteResult of ints :: (PromoteResult Int)" [✔]
47.01 s
[cursor-gen] +++ OK, passed 100 tests.
47.01 s
[cursor-gen] relation with Functor PromoteResult
47.01 s
[cursor-gen] satisfies 'fmap f xs = xs >>= return . f' for "increments :: (Int -> Int)" and "PromoteResult of ints :: (PromoteResult Int)" [✔]
47.01 s
[cursor-gen] +++ OK, passed 100 tests.
47.01 s
[cursor-gen] treeCursorPromoteSubTree
47.01 s
[cursor-gen] produces valids on valids [✔]
47.01 s
[cursor-gen] +++ OK, passed 100 tests.
47.01 s
[cursor-gen] Works on the example from the docs [✔]
47.01 s
[cursor-gen] promotes the current subtree to the level of its parent [‐]
47.01 s
[cursor-gen] # PENDING: No reason given
47.01 s
[cursor-gen] Cursor.Simple.Tree.Swap
47.01 s
[cursor-gen] Functor SwapResult
47.01 s
[cursor-gen] fmap :: (a -> b) -> SwapResult a -> SwapResult b
47.01 s
[cursor-gen] satisfies the first Fuctor law: 'fmap id == id' for "SwapResult of ints :: (SwapResult Int)" [✔]
47.01 s
[cursor-gen] +++ OK, passed 100 tests.
47.01 s
[cursor-gen] satisfieds the second Functor law: 'fmap (f . g) == fmap f . fmap g' for "SwapResult of ints :: (SwapResult Int)" 's given to "increments :: (Int -> Int)" and "scalings :: (Int -> Int)" [✔]
47.01 s
[cursor-gen] +++ OK, passed 100 tests.
47.01 s
[cursor-gen] (<$) :: a -> SwapResult b -> SwapResult a
47.01 s
[cursor-gen] is equivalent to its default implementation for "int :: Int" and "SwapResult of ints :: (SwapResult Int)" [✔]
47.01 s
[cursor-gen] +++ OK, passed 100 tests.
47.01 s
[cursor-gen] treeCursorSwapPrev
47.01 s
[cursor-gen] produces valids on valids [✔]
47.01 s
[cursor-gen] +++ OK, passed 100 tests.
47.01 s
[cursor-gen] works on the example from the docs [✔]
47.01 s
[cursor-gen] reverts treeCursorSwapNext [✔]
47.01 s
[cursor-gen] +++ OK, passed 100 tests.
47.01 s
[cursor-gen] swaps the current node with the previous node [‐]
47.01 s
[cursor-gen] # PENDING: No reason given
47.01 s
[cursor-gen] treeCursorSwapNext
47.01 s
[cursor-gen] produces valids on valids [✔]
47.01 s
[cursor-gen] +++ OK, passed 100 tests.
47.01 s
[cursor-gen] works on the example from the docs [✔]
47.01 s
[cursor-gen] reverts treeCursorSwapNext [✔]
47.01 s
[cursor-gen] +++ OK, passed 100 tests.
47.01 s
[cursor-gen] swaps the current node with the next node [‐]
47.01 s
[cursor-gen] # PENDING: No reason given
47.01 s
[cursor-gen] Cursor.Text
47.01 s
[cursor-gen] Eq TextCursor
47.01 s
[cursor-gen] (==) :: TextCursor -> TextCursor -> Bool
47.01 s
[cursor-gen] is reflexive for "valid TextCursor"s [✔]
47.01 s
[cursor-gen] +++ OK, passed 100 tests.
47.01 s
[cursor-gen] is symmetric for "valid TextCursor"s [✔]
47.01 s
[cursor-gen] +++ OK, passed 100 tests.
47.01 s
[cursor-gen] is transitive for "valid TextCursor"s [✔]
47.01 s
[cursor-gen] +++ OK, passed 100 tests.
47.01 s
[cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid TextCursor"s [✔]
47.01 s
[cursor-gen] +++ OK, passed 100 tests.
47.01 s
[cursor-gen] (/=) :: TextCursor -> TextCursor -> Bool
47.01 s
[cursor-gen] is antireflexive for "valid TextCursor"s [✔]
47.01 s
[cursor-gen] +++ OK, passed 100 tests.
47.01 s
[cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid TextCursor"s [✔]
47.01 s
[cursor-gen] +++ OK, passed 100 tests.
47.01 s
[cursor-gen] GenValid TextCursor
47.01 s
[cursor-gen] genValid :: Gen TextCursor
47.01 s
[cursor-gen] only generates valid 'TextCursor's [✔]
47.01 s
[cursor-gen] +++ OK, passed 100 tests.
47.01 s
[cursor-gen] Validity TextCursor
47.01 s
[cursor-gen] considers a text cursor with a newline in the previous characters invalid [✔]
47.01 s
[cursor-gen] considers a text cursor with a newline in the next characters invalid [✔]
47.01 s
[cursor-gen] considers a text cursor with an unsafe character in the previous characters invalid [✔]
47.01 s
[cursor-gen] considers a text cursor with an unsafe character in the next characters invalid [✔]
47.01 s
[cursor-gen] emptyTextCursor
47.01 s
[cursor-gen] is valid [✔]
47.01 s
[cursor-gen] makeTextCursor
47.01 s
[cursor-gen] produces valid list cursors [✔]
47.01 s
[cursor-gen] +++ OK, passed 100 tests.
47.01 s
[cursor-gen] makeTextCursorWithSelection
47.01 s
[cursor-gen] produces valid list cursors [✔]
47.01 s
[cursor-gen] +++ OK, passed 100 tests.
47.01 s
[cursor-gen] rebuildTextCursor
47.01 s
[cursor-gen] produces valid lists [✔]
47.01 s
[cursor-gen] +++ OK, passed 100 tests.
47.01 s
[cursor-gen] is the inverse of makeTextCursor [✔]
47.01 s
[cursor-gen] +++ OK, passed 100 tests.
47.01 s
[cursor-gen] is the inverse of makeTextCursorWithSelection for any index [✔]
47.01 s
[cursor-gen] +++ OK, passed 100 tests.
47.01 s
[cursor-gen] textCursorNull
47.01 s
[cursor-gen] produces valid bools [✔]
47.01 s
[cursor-gen] +++ OK, passed 100 tests.
47.02 s
[cursor-gen] textCursorLength
47.02 s
[cursor-gen] produces valid ints [✔]
47.02 s
[cursor-gen] +++ OK, passed 100 tests.
47.02 s
[cursor-gen] textCursorIndex
47.02 s
[cursor-gen] produces valid indices [✔]
47.02 s
[cursor-gen] +++ OK, passed 100 tests.
47.02 s
[cursor-gen] textCursorSelectPrev
47.02 s
[cursor-gen] produces valid cursors [✔]
47.02 s
[cursor-gen] +++ OK, passed 100 tests.
47.02 s
[cursor-gen] is a movement [✔]
47.02 s
[cursor-gen] +++ OK, passed 100 tests.
47.02 s
[cursor-gen] selects the previous position [‐]
47.02 s
[cursor-gen] # PENDING: No reason given
47.02 s
[cursor-gen] textCursorSelectNext
47.02 s
[cursor-gen] produces valid cursors [✔]
47.02 s
[cursor-gen] +++ OK, passed 100 tests.
47.02 s
[cursor-gen] is a movement [✔]
47.02 s
[cursor-gen] +++ OK, passed 100 tests.
47.02 s
[cursor-gen] selects the next position [‐]
47.02 s
[cursor-gen] # PENDING: No reason given
47.02 s
[cursor-gen] textCursorSelectIndex
47.02 s
[cursor-gen] produces valid cursors [✔]
47.02 s
[cursor-gen] +++ OK, passed 100 tests.
47.03 s
[cursor-gen] is a movement [✔]
47.03 s
[cursor-gen] +++ OK, passed 100 tests.
47.03 s
[cursor-gen] selects the position at the given index [‐]
47.03 s
[cursor-gen] # PENDING: No reason given
47.03 s
[cursor-gen] produces a cursor that has the given selection for valid selections in the cursor [✔]
47.03 s
[cursor-gen] +++ OK, passed 100 tests.
47.03 s
[cursor-gen] textCursorSelectStart
47.03 s
[cursor-gen] produces valid cursors [✔]
47.03 s
[cursor-gen] +++ OK, passed 100 tests.
47.03 s
[cursor-gen] is a movement [✔]
47.03 s
[cursor-gen] +++ OK, passed 100 tests.
47.03 s
[cursor-gen] is idempotent [✔]
47.03 s
[cursor-gen] +++ OK, passed 100 tests.
47.03 s
[cursor-gen] selects the starting position [‐]
47.03 s
[cursor-gen] # PENDING: No reason given
47.03 s
[cursor-gen] textCursorSelectEnd
47.03 s
[cursor-gen] produces valid cursors [✔]
47.03 s
[cursor-gen] +++ OK, passed 100 tests.
47.03 s
[cursor-gen] is a movement [✔]
47.03 s
[cursor-gen] +++ OK, passed 100 tests.
47.03 s
[cursor-gen] is idempotent [✔]
47.03 s
[cursor-gen] +++ OK, passed 100 tests.
47.03 s
[cursor-gen] selects the end position [‐]
47.03 s
[cursor-gen] # PENDING: No reason given
47.03 s
[cursor-gen] textCursorPrevChar
47.04 s
[cursor-gen] produces valid items [✔]
47.04 s
[cursor-gen] +++ OK, passed 100 tests.
47.04 s
[cursor-gen] returns the item before the position [‐]
47.04 s
[cursor-gen] # PENDING: No reason given
47.04 s
[cursor-gen] textCursorNextChar
47.04 s
[cursor-gen] produces valid items [✔]
47.04 s
[cursor-gen] +++ OK, passed 100 tests.
47.04 s
[cursor-gen] returns the item after the position [‐]
47.04 s
[cursor-gen] # PENDING: No reason given
47.04 s
[cursor-gen] textCursorSelectBeginWord
47.04 s
[cursor-gen] produces valid items [✔]
47.04 s
[cursor-gen] +++ OK, passed 100 tests.
47.04 s
[cursor-gen] is a movement [✔]
47.04 s
[cursor-gen] +++ OK, passed 100 tests.
47.04 s
[cursor-gen] is idempotent [✔]
47.04 s
[cursor-gen] +++ OK, passed 100 tests (89% non trivial).
47.04 s
[cursor-gen] works for this example [✔]
47.04 s
[cursor-gen] works for this example [✔]
47.04 s
[cursor-gen] works for this example [✔]
47.04 s
[cursor-gen] works for this example [✔]
47.04 s
[cursor-gen] textCursorSelectEndWord
47.04 s
[cursor-gen] produces valid items [✔]
47.04 s
[cursor-gen] +++ OK, passed 100 tests.
47.04 s
[cursor-gen] is a movement [✔]
47.04 s
[cursor-gen] +++ OK, passed 100 tests.
47.04 s
[cursor-gen] is idempotent [✔]
47.04 s
[cursor-gen] +++ OK, passed 100 tests (89% non trivial).
47.04 s
[cursor-gen] works for this example [✔]
47.04 s
[cursor-gen] works for this example [✔]
47.04 s
[cursor-gen] works for this example [✔]
47.04 s
[cursor-gen] works for this example [✔]
47.04 s
[cursor-gen] textCursorSelectNextWord
47.05 s
[cursor-gen] produces valid items [✔]
47.05 s
[cursor-gen] +++ OK, passed 100 tests.
47.05 s
[cursor-gen] is a movement [✔]
47.05 s
[cursor-gen] +++ OK, passed 100 tests.
47.05 s
[cursor-gen] works for this example [✔]
47.05 s
[cursor-gen] works for this example [✔]
47.05 s
[cursor-gen] works for this example [✔]
47.05 s
[cursor-gen] works for this example [✔]
47.05 s
[cursor-gen] goes to the end of the cursor [✔]
47.05 s
[cursor-gen] chooses the next word correctly [✔]
47.05 s
[cursor-gen] textCursorSelectPrevWord
47.05 s
[cursor-gen] produces valid items [✔]
47.05 s
[cursor-gen] +++ OK, passed 100 tests.
47.05 s
[cursor-gen] is a movement [✔]
47.05 s
[cursor-gen] +++ OK, passed 100 tests.
47.05 s
[cursor-gen] works for this example [✔]
47.05 s
[cursor-gen] works for this example [✔]
47.05 s
[cursor-gen] works for this example [✔]
47.05 s
[cursor-gen] works for this example [✔]
47.05 s
[cursor-gen] goes to the beginning of the cursor [✔]
47.05 s
[cursor-gen] chooses the previous word correctly [✔]
47.05 s
[cursor-gen] textCursorInsert
47.05 s
[cursor-gen] produces valids [✔]
47.05 s
[cursor-gen] +++ OK, passed 100 tests.
47.05 s
[cursor-gen] inserts an item before the cursor [‐]
47.05 s
[cursor-gen] # PENDING: No reason given
47.05 s
[cursor-gen] textCursorAppend
47.06 s
[cursor-gen] produces valids [✔]
47.06 s
[cursor-gen] +++ OK, passed 100 tests.
47.06 s
[cursor-gen] inserts an item after the cursor [‐]
47.06 s
[cursor-gen] # PENDING: No reason given
47.06 s
[cursor-gen] textCursorInsertString
47.06 s
[cursor-gen] produces valids [✔]
47.06 s
[cursor-gen] +++ OK, passed 100 tests.
47.06 s
[cursor-gen] works for this example [✔]
47.06 s
[cursor-gen] textCursorAppendString
47.06 s
[cursor-gen] produces valids [✔]
47.06 s
[cursor-gen] +++ OK, passed 100 tests.
47.06 s
[cursor-gen] textCursorInsertText
47.06 s
[cursor-gen] produces valids [✔]
47.06 s
[cursor-gen] +++ OK, passed 100 tests.
47.06 s
[cursor-gen] textCursorAppendText
47.06 s
[cursor-gen] produces valids [✔]
47.06 s
[cursor-gen] +++ OK, passed 100 tests.
47.06 s
[cursor-gen] textCursorRemove
47.06 s
[cursor-gen] produces valids [✔]
47.06 s
[cursor-gen] +++ OK, passed 100 tests.
47.06 s
[cursor-gen] removes an item before the cursor [‐]
47.06 s
[cursor-gen] # PENDING: No reason given
47.06 s
[cursor-gen] textCursorDelete
47.06 s
[cursor-gen] produces valids [✔]
47.06 s
[cursor-gen] +++ OK, passed 100 tests.
47.06 s
[cursor-gen] removes an item before the cursor [‐]
47.06 s
[cursor-gen] # PENDING: No reason given
47.06 s
[cursor-gen] textCursorSplit
47.06 s
[cursor-gen] produces valids [✔]
47.06 s
[cursor-gen] +++ OK, passed 100 tests.
47.07 s
[cursor-gen] produces two list cursors that rebuild to the rebuilding of the original [✔]
47.07 s
[cursor-gen] +++ OK, passed 100 tests.
47.07 s
[cursor-gen] textCursorCombine
47.07 s
[cursor-gen] produces valids [✔]
47.07 s
[cursor-gen] +++ OK, passed 100 tests.
47.07 s
[cursor-gen] produces a list that rebuilds to the rebuilding of the original two cursors [✔]
47.07 s
[cursor-gen] +++ OK, passed 100 tests.
47.07 s
[cursor-gen] Cursor.TextField
47.07 s
[cursor-gen] Eq TextFieldCursor
47.07 s
[cursor-gen] (==) :: TextFieldCursor -> TextFieldCursor -> Bool
47.07 s
[cursor-gen] is reflexive for "valid TextFieldCursor"s [✔]
47.07 s
[cursor-gen] +++ OK, passed 100 tests.
47.07 s
[cursor-gen] is symmetric for "valid TextFieldCursor"s [✔]
47.07 s
[cursor-gen] +++ OK, passed 100 tests.
47.07 s
[cursor-gen] is transitive for "valid TextFieldCursor"s [✔]
47.07 s
[cursor-gen] +++ OK, passed 100 tests.
47.07 s
[cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid TextFieldCursor"s [✔]
47.07 s
[cursor-gen] +++ OK, passed 100 tests.
47.07 s
[cursor-gen] (/=) :: TextFieldCursor -> TextFieldCursor -> Bool
47.07 s
[cursor-gen] is antireflexive for "valid TextFieldCursor"s [✔]
47.07 s
[cursor-gen] +++ OK, passed 100 tests.
47.07 s
[cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid TextFieldCursor"s [✔]
47.07 s
[cursor-gen] +++ OK, passed 100 tests.
47.07 s
[cursor-gen] GenValid TextFieldCursor
47.07 s
[cursor-gen] genValid :: Gen TextFieldCursor
47.07 s
[cursor-gen] only generates valid 'TextFieldCursor's [✔]
47.07 s
[cursor-gen] +++ OK, passed 100 tests.
47.07 s
[cursor-gen] Validity TextFieldCursor
47.07 s
[cursor-gen] consider a textfield with a newline in the previous lines invalid [✔]
47.07 s
[cursor-gen] +++ OK, passed 100 tests.
47.07 s
[cursor-gen] consider a textfield with a newline in the next lines invalid [✔]
47.07 s
[cursor-gen] +++ OK, passed 100 tests.
47.07 s
[cursor-gen] makeTextFieldCursor
47.07 s
[cursor-gen] produces a valid cursor for "\n" [✔]
47.07 s
[cursor-gen] produces a valid cursor for "\n\n" [✔]
47.07 s
[cursor-gen] produces valid cursors [✔]
47.07 s
[cursor-gen] +++ OK, passed 100 tests.
47.07 s
[cursor-gen] makeTextFieldCursorWithSelection
47.07 s
[cursor-gen] produces a valid cursor for "\n" [✔]
47.07 s
[cursor-gen] +++ OK, passed 100 tests.
47.07 s
[cursor-gen] produces a valid cursor for "\n\n" [✔]
47.07 s
[cursor-gen] +++ OK, passed 100 tests.
47.07 s
[cursor-gen] produces valid cursors [✔]
47.07 s
[cursor-gen] +++ OK, passed 100 tests.
47.08 s
[cursor-gen] is the inverse of rebuildTextFieldCursor when using the current selection [✔]
47.08 s
[cursor-gen] +++ OK, passed 100 tests.
47.08 s
[cursor-gen] rebuildTextFieldCursorLines
47.08 s
[cursor-gen] produces valid lists [✔]
47.08 s
[cursor-gen] +++ OK, passed 100 tests.
47.08 s
[cursor-gen] produces texts without newlines [✔]
47.08 s
[cursor-gen] +++ OK, passed 100 tests.
47.08 s
[cursor-gen] rebuildTextFieldCursor
47.09 s
[cursor-gen] produces valid texts [✔]
47.09 s
[cursor-gen] +++ OK, passed 100 tests.
47.09 s
[cursor-gen] is the inverse of makeTextFieldCursor [✔]
47.09 s
[cursor-gen] +++ OK, passed 100 tests.
47.09 s
[cursor-gen] is the inverse of makeTextFieldCursorWithSelection for integers, for any index [✔]
47.09 s
[cursor-gen] +++ OK, passed 100 tests.
47.09 s
[cursor-gen] textFieldCursorSelection
47.09 s
[cursor-gen] produces valid tuples [✔]
47.09 s
[cursor-gen] +++ OK, passed 100 tests.
47.09 s
[cursor-gen] emptyTextFieldCursor
47.09 s
[cursor-gen] is valid [✔]
47.09 s
[cursor-gen] nullTextFieldCursor
47.09 s
[cursor-gen] produces valid [✔]
47.09 s
[cursor-gen] +++ OK, passed 100 tests.
47.09 s
[cursor-gen] textFieldCursorSelectPrevLine
47.09 s
[cursor-gen] produces valid cursors [✔]
47.09 s
[cursor-gen] +++ OK, passed 100 tests.
47.09 s
[cursor-gen] is a movement [✔]
47.09 s
[cursor-gen] +++ OK, passed 100 tests.
47.09 s
[cursor-gen] selects the previous line [‐]
47.09 s
[cursor-gen] # PENDING: No reason given
47.09 s
[cursor-gen] textFieldCursorSelectNextLine
47.10 s
[cursor-gen] produces valid cursors [✔]
47.10 s
[cursor-gen] +++ OK, passed 100 tests.
47.10 s
[cursor-gen] is a movement [✔]
47.10 s
[cursor-gen] +++ OK, passed 100 tests.
47.10 s
[cursor-gen] selects the next line [‐]
47.10 s
[cursor-gen] # PENDING: No reason given
47.10 s
[cursor-gen] textFieldCursorSelectFirstLine
47.10 s
[cursor-gen] produces valid cursors [✔]
47.10 s
[cursor-gen] +++ OK, passed 100 tests.
47.10 s
[cursor-gen] is a movement [✔]
47.10 s
[cursor-gen] +++ OK, passed 100 tests.
47.11 s
[cursor-gen] is idempotent [✔]
47.11 s
[cursor-gen] +++ OK, passed 100 tests.
47.11 s
[cursor-gen] selects the first line [‐]
47.11 s
[cursor-gen] # PENDING: No reason given
47.11 s
[cursor-gen] textFieldCursorSelectLastLine
47.11 s
[cursor-gen] produces valid cursors [✔]
47.11 s
[cursor-gen] +++ OK, passed 100 tests.
47.11 s
[cursor-gen] is a movement [✔]
47.11 s
[cursor-gen] +++ OK, passed 100 tests.
47.11 s
[cursor-gen] is idempotent [✔]
47.11 s
[cursor-gen] +++ OK, passed 100 tests.
47.11 s
[cursor-gen] selects the last line [‐]
47.11 s
[cursor-gen] # PENDING: No reason given
47.11 s
[cursor-gen] textFieldCursorSelectPrevChar
47.11 s
[cursor-gen] produces valid cursors [✔]
47.11 s
[cursor-gen] +++ OK, passed 100 tests.
47.11 s
[cursor-gen] selects the previous character on the current line [‐]
47.11 s
[cursor-gen] # PENDING: No reason given
47.11 s
[cursor-gen] textFieldCursorSelectNextChar
47.12 s
[cursor-gen] produces valid cursors [✔]
47.12 s
[cursor-gen] +++ OK, passed 100 tests.
47.12 s
[cursor-gen] selects the previous character on the current line [‐]
47.12 s
[cursor-gen] # PENDING: No reason given
47.12 s
[cursor-gen] textFieldCursorSelectBeginWord
47.12 s
[cursor-gen] produces valid cursors [✔]
47.12 s
[cursor-gen] +++ OK, passed 100 tests.
47.12 s
[cursor-gen] textFieldCursorSelectEndWord
47.12 s
[cursor-gen] produces valid cursors [✔]
47.12 s
[cursor-gen] +++ OK, passed 100 tests.
47.12 s
[cursor-gen] textFieldCursorSelectPrevWord
47.12 s
[cursor-gen] produces valid cursors [✔]
47.12 s
[cursor-gen] +++ OK, passed 100 tests.
47.12 s
[cursor-gen] textFieldCursorSelectNextWord
47.13 s
[cursor-gen] produces valid cursors [✔]
47.13 s
[cursor-gen] +++ OK, passed 100 tests.
47.13 s
[cursor-gen] textFieldCursorIndexOnLine
47.13 s
[cursor-gen] produces valid indices [✔]
47.13 s
[cursor-gen] +++ OK, passed 100 tests.
47.13 s
[cursor-gen] returns the index on the current line [‐]
47.13 s
[cursor-gen] # PENDING: No reason given
47.13 s
[cursor-gen] textFieldCursorSelectIndexOnLine
47.13 s
[cursor-gen] produces valid cursors for any index [✔]
47.13 s
[cursor-gen] +++ OK, passed 100 tests.
47.13 s
[cursor-gen] selects the given index on the current line [‐]
47.13 s
[cursor-gen] # PENDING: No reason given
47.13 s
[cursor-gen] textFieldCursorInsertChar
47.13 s
[cursor-gen] produces valid cursors [✔]
47.13 s
[cursor-gen] +++ OK, passed 100 tests.
47.13 s
[cursor-gen] inserts a character before the cursor on the current line [‐]
47.13 s
[cursor-gen] # PENDING: No reason given
47.13 s
[cursor-gen] textFieldCursorAppendChar
47.13 s
[cursor-gen] produces valid cursors [✔]
47.13 s
[cursor-gen] +++ OK, passed 100 tests.
47.13 s
[cursor-gen] inserts a character after the cursor on the currrent line [‐]
47.13 s
[cursor-gen] # PENDING: No reason given
47.13 s
[cursor-gen] textFieldCursorInsertNewline
47.13 s
[cursor-gen] produces valid cursors [✔]
47.13 s
[cursor-gen] +++ OK, passed 100 tests.
47.13 s
[cursor-gen] inserts a new line [‐]
47.13 s
[cursor-gen] # PENDING: No reason given
47.13 s
[cursor-gen] textFieldCursorAppendNewline
47.14 s
[cursor-gen] produces valid cursors [✔]
47.14 s
[cursor-gen] +++ OK, passed 100 tests.
47.14 s
[cursor-gen] textFieldCursorRemove
47.14 s
[cursor-gen] produces valid cursors [✔]
47.14 s
[cursor-gen] +++ OK, passed 100 tests.
47.14 s
[cursor-gen] removes empty text field cursor [✔]
47.14 s
[cursor-gen] removes a character or a line [‐]
47.14 s
[cursor-gen] # PENDING: No reason given
47.14 s
[cursor-gen] textFieldCursorDelete
47.14 s
[cursor-gen] produces valid cursors [✔]
47.14 s
[cursor-gen] +++ OK, passed 100 tests.
47.14 s
[cursor-gen] removes empty text field cursor [✔]
47.14 s
[cursor-gen] deletes a character or a line [‐]
47.14 s
[cursor-gen] # PENDING: No reason given
47.14 s
[cursor-gen] textFieldCursorSelectStartOfLine
47.14 s
[cursor-gen] produces valid cursors [✔]
47.14 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] selects the start of the current line [‐]
47.15 s
[cursor-gen] # PENDING: No reason given
47.15 s
[cursor-gen] textFieldCursorSelectEndOfLine
47.15 s
[cursor-gen] produces valid cursors [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] selects the end of the current line [‐]
47.15 s
[cursor-gen] # PENDING: No reason given
47.15 s
[cursor-gen] Cursor.Tree.Types
47.15 s
[cursor-gen] Eq TreeCursorSelection
47.15 s
[cursor-gen] (==) :: TreeCursorSelection -> TreeCursorSelection -> Bool
47.15 s
[cursor-gen] is reflexive for "valid TreeCursorSelection"s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] is symmetric for "valid TreeCursorSelection"s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] is transitive for "valid TreeCursorSelection"s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid TreeCursorSelection"s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] (/=) :: TreeCursorSelection -> TreeCursorSelection -> Bool
47.15 s
[cursor-gen] is antireflexive for "valid TreeCursorSelection"s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid TreeCursorSelection"s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] GenValid TreeCursorSelection
47.15 s
[cursor-gen] genValid :: Gen TreeCursorSelection
47.15 s
[cursor-gen] only generates valid 'TreeCursorSelection's [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] shrinkValid :: (TreeCursorSelection -> [TreeCursorSelection])
47.15 s
[cursor-gen] preserves validity for the first 10 elements [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] never shrinks to itself for valid values for the first 10 elements [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] Eq (SwapResult Bool)
47.15 s
[cursor-gen] (==) :: (SwapResult Bool) -> (SwapResult Bool) -> Bool
47.15 s
[cursor-gen] is reflexive for "valid (SwapResult Bool)"s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] is symmetric for "valid (SwapResult Bool)"s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] is transitive for "valid (SwapResult Bool)"s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid (SwapResult Bool)"s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] (/=) :: (SwapResult Bool) -> (SwapResult Bool) -> Bool
47.15 s
[cursor-gen] is antireflexive for "valid (SwapResult Bool)"s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid (SwapResult Bool)"s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] GenValid (SwapResult Bool)
47.15 s
[cursor-gen] genValid :: Gen (SwapResult Bool)
47.15 s
[cursor-gen] only generates valid '(SwapResult Bool)'s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] shrinkValid :: (SwapResult Bool -> [SwapResult Bool])
47.15 s
[cursor-gen] preserves validity for the first 10 elements [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] never shrinks to itself for valid values for the first 10 elements [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] Eq (PromoteElemResult Bool)
47.15 s
[cursor-gen] (==) :: (PromoteElemResult Bool) -> (PromoteElemResult Bool) -> Bool
47.15 s
[cursor-gen] is reflexive for "valid (PromoteElemResult Bool)"s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] is symmetric for "valid (PromoteElemResult Bool)"s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] is transitive for "valid (PromoteElemResult Bool)"s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid (PromoteElemResult Bool)"s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] (/=) :: (PromoteElemResult Bool) -> (PromoteElemResult Bool) -> Bool
47.15 s
[cursor-gen] is antireflexive for "valid (PromoteElemResult Bool)"s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid (PromoteElemResult Bool)"s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] GenValid (PromoteElemResult Bool)
47.15 s
[cursor-gen] genValid :: Gen (PromoteElemResult Bool)
47.15 s
[cursor-gen] only generates valid '(PromoteElemResult Bool)'s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] shrinkValid :: (PromoteElemResult Bool -> [PromoteElemResult Bool])
47.15 s
[cursor-gen] preserves validity for the first 10 elements [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] never shrinks to itself for valid values for the first 10 elements [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] Eq (PromoteResult Bool)
47.15 s
[cursor-gen] (==) :: (PromoteResult Bool) -> (PromoteResult Bool) -> Bool
47.15 s
[cursor-gen] is reflexive for "valid (PromoteResult Bool)"s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] is symmetric for "valid (PromoteResult Bool)"s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] is transitive for "valid (PromoteResult Bool)"s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid (PromoteResult Bool)"s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] (/=) :: (PromoteResult Bool) -> (PromoteResult Bool) -> Bool
47.15 s
[cursor-gen] is antireflexive for "valid (PromoteResult Bool)"s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid (PromoteResult Bool)"s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] GenValid (PromoteResult Bool)
47.15 s
[cursor-gen] genValid :: Gen (PromoteResult Bool)
47.15 s
[cursor-gen] only generates valid '(PromoteResult Bool)'s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] shrinkValid :: (PromoteResult Bool -> [PromoteResult Bool])
47.15 s
[cursor-gen] preserves validity for the first 10 elements [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] never shrinks to itself for valid values for the first 10 elements [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] Eq (DemoteResult Bool)
47.15 s
[cursor-gen] (==) :: (DemoteResult Bool) -> (DemoteResult Bool) -> Bool
47.15 s
[cursor-gen] is reflexive for "valid (DemoteResult Bool)"s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] is symmetric for "valid (DemoteResult Bool)"s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] is transitive for "valid (DemoteResult Bool)"s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid (DemoteResult Bool)"s [✔]
47.15 s
[cursor-gen] +++ OK, passed 100 tests.
47.15 s
[cursor-gen] (/=) :: (DemoteResult Bool) -> (DemoteResult Bool) -> Bool
47.16 s
[cursor-gen] is antireflexive for "valid (DemoteResult Bool)"s [✔]
47.16 s
[cursor-gen] +++ OK, passed 100 tests.
47.16 s
[cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid (DemoteResult Bool)"s [✔]
47.16 s
[cursor-gen] +++ OK, passed 100 tests.
47.16 s
[cursor-gen] GenValid (DemoteResult Bool)
47.16 s
[cursor-gen] genValid :: Gen (DemoteResult Bool)
47.16 s
[cursor-gen] only generates valid '(DemoteResult Bool)'s [✔]
47.16 s
[cursor-gen] +++ OK, passed 100 tests.
47.16 s
[cursor-gen] shrinkValid :: (DemoteResult Bool -> [DemoteResult Bool])
47.16 s
[cursor-gen] preserves validity for the first 10 elements [✔]
47.16 s
[cursor-gen] +++ OK, passed 100 tests.
47.16 s
[cursor-gen] never shrinks to itself for valid values for the first 10 elements [✔]
47.16 s
[cursor-gen] +++ OK, passed 100 tests.
47.16 s
[cursor-gen] Eq (CTree Bool)
47.16 s
[cursor-gen] (==) :: (CTree Bool) -> (CTree Bool) -> Bool
47.16 s
[cursor-gen] is reflexive for "valid (CTree Bool)"s [✔]
47.16 s
[cursor-gen] +++ OK, passed 100 tests.
47.16 s
[cursor-gen] is symmetric for "valid (CTree Bool)"s [✔]
47.16 s
[cursor-gen] +++ OK, passed 100 tests.
47.16 s
[cursor-gen] is transitive for "valid (CTree Bool)"s [✔]
47.16 s
[cursor-gen] +++ OK, passed 100 tests.
47.16 s
[cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid (CTree Bool)"s [✔]
47.16 s
[cursor-gen] +++ OK, passed 100 tests.
47.16 s
[cursor-gen] (/=) :: (CTree Bool) -> (CTree Bool) -> Bool
47.16 s
[cursor-gen] is antireflexive for "valid (CTree Bool)"s [✔]
47.16 s
[cursor-gen] +++ OK, passed 100 tests.
47.16 s
[cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid (CTree Bool)"s [✔]
47.16 s
[cursor-gen] +++ OK, passed 100 tests.
47.16 s
[cursor-gen] GenValid (CTree Bool)
47.16 s
[cursor-gen] genValid :: Gen (CTree Bool)
47.16 s
[cursor-gen] only generates valid '(CTree Bool)'s [✔]
47.16 s
[cursor-gen] +++ OK, passed 100 tests.
47.16 s
[cursor-gen] shrinkValid :: (CTree Bool -> [CTree Bool])
47.16 s
[cursor-gen] preserves validity for the first 10 elements [✔]
47.16 s
[cursor-gen] +++ OK, passed 100 tests.
47.16 s
[cursor-gen] never shrinks to itself for valid values for the first 10 elements [✔]
47.16 s
[cursor-gen] +++ OK, passed 100 tests.
47.16 s
[cursor-gen] Eq (CForest Bool)
47.16 s
[cursor-gen] (==) :: (CForest Bool) -> (CForest Bool) -> Bool
47.16 s
[cursor-gen] is reflexive for "valid (CForest Bool)"s [✔]
47.16 s
[cursor-gen] +++ OK, passed 100 tests.
47.16 s
[cursor-gen] is symmetric for "valid (CForest Bool)"s [✔]
47.16 s
[cursor-gen] +++ OK, passed 100 tests.
47.16 s
[cursor-gen] is transitive for "valid (CForest Bool)"s [✔]
47.16 s
[cursor-gen] +++ OK, passed 100 tests.
47.16 s
[cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid (CForest Bool)"s [✔]
47.16 s
[cursor-gen] +++ OK, passed 100 tests.
47.16 s
[cursor-gen] (/=) :: (CForest Bool) -> (CForest Bool) -> Bool
47.16 s
[cursor-gen] is antireflexive for "valid (CForest Bool)"s [✔]
47.16 s
[cursor-gen] +++ OK, passed 100 tests.
47.16 s
[cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid (CForest Bool)"s [✔]
47.16 s
[cursor-gen] +++ OK, passed 100 tests.
47.16 s
[cursor-gen] GenValid (CForest Bool)
47.16 s
[cursor-gen] genValid :: Gen (CForest Bool)
47.16 s
[cursor-gen] only generates valid '(CForest Bool)'s [✔]
47.16 s
[cursor-gen] +++ OK, passed 100 tests.
47.16 s
[cursor-gen] shrinkValid :: (CForest Bool -> [CForest Bool])
47.16 s
[cursor-gen] preserves validity for the first 10 elements [✔]
47.16 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] never shrinks to itself for valid values for the first 10 elements [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] Eq (TreeAbove Bool)
47.17 s
[cursor-gen] (==) :: (TreeAbove Bool) -> (TreeAbove Bool) -> Bool
47.17 s
[cursor-gen] is reflexive for "valid (TreeAbove Bool)"s [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] is symmetric for "valid (TreeAbove Bool)"s [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] is transitive for "valid (TreeAbove Bool)"s [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid (TreeAbove Bool)"s [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] (/=) :: (TreeAbove Bool) -> (TreeAbove Bool) -> Bool
47.17 s
[cursor-gen] is antireflexive for "valid (TreeAbove Bool)"s [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid (TreeAbove Bool)"s [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] GenValid (TreeAbove Bool)
47.17 s
[cursor-gen] genValid :: Gen (TreeAbove Bool)
47.17 s
[cursor-gen] only generates valid '(TreeAbove Bool)'s [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] shrinkValid :: (TreeAbove Bool -> [TreeAbove Bool])
47.17 s
[cursor-gen] preserves validity for the first 10 elements [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] never shrinks to itself for valid values for the first 10 elements [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] treeAboveLeftsL
47.17 s
[cursor-gen] satisfies the first lens law for valid values and valid values [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] satisfies the second lens law for valid values [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] satisfies the third lens law for valid values and valid values [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] gets valid values from valid values values [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] produces valid values when it is used to set valid values values on valid values values [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] treeAboveAboveL
47.17 s
[cursor-gen] satisfies the first lens law for valid values and valid values [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] satisfies the second lens law for valid values [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] satisfies the third lens law for valid values and valid values [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] gets valid values from valid values values [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] produces valid values when it is used to set valid values values on valid values values [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] treeAboveNodeL
47.17 s
[cursor-gen] satisfies the first lens law for valid values and valid values [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] satisfies the second lens law for valid values [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] satisfies the third lens law for valid values and valid values [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] gets valid values from valid values values [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] produces valid values when it is used to set valid values values on valid values values [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] treeAboveRightsL
47.17 s
[cursor-gen] satisfies the first lens law for valid values and valid values [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] satisfies the second lens law for valid values [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] satisfies the third lens law for valid values and valid values [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] gets valid values from valid values values [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] produces valid values when it is used to set valid values values on valid values values [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] Eq (TreeCursor Bool Word)
47.17 s
[cursor-gen] (==) :: (TreeCursor Bool Word) -> (TreeCursor Bool Word) -> Bool
47.17 s
[cursor-gen] is reflexive for "valid (TreeCursor Bool Word)"s [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] is symmetric for "valid (TreeCursor Bool Word)"s [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] is transitive for "valid (TreeCursor Bool Word)"s [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid (TreeCursor Bool Word)"s [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] (/=) :: (TreeCursor Bool Word) -> (TreeCursor Bool Word) -> Bool
47.17 s
[cursor-gen] is antireflexive for "valid (TreeCursor Bool Word)"s [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid (TreeCursor Bool Word)"s [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] GenValid (TreeCursor Bool Bool)
47.17 s
[cursor-gen] genValid :: Gen (TreeCursor Bool Bool)
47.17 s
[cursor-gen] only generates valid '(TreeCursor Bool Bool)'s [✔]
47.17 s
[cursor-gen] +++ OK, passed 100 tests.
47.17 s
[cursor-gen] shrinkValid :: (TreeCursor Word Bool -> [TreeCursor Word Bool])
47.18 s
[cursor-gen] preserves validity for the first 10 elements [✔]
47.18 s
[cursor-gen] +++ OK, passed 100 tests.
47.18 s
[cursor-gen] never shrinks to itself for valid values for the first 10 elements [✔]
47.18 s
[cursor-gen] +++ OK, passed 100 tests.
47.18 s
[cursor-gen] treeCursorAboveL
47.18 s
[cursor-gen] satisfies the first lens law for valid values and valid values [✔]
47.18 s
[cursor-gen] +++ OK, passed 100 tests.
47.18 s
[cursor-gen] satisfies the second lens law for valid values [✔]
47.18 s
[cursor-gen] +++ OK, passed 100 tests.
47.18 s
[cursor-gen] satisfies the third lens law for valid values and valid values [✔]
47.18 s
[cursor-gen] +++ OK, passed 100 tests.
47.18 s
[cursor-gen] gets valid values from valid values values [✔]
47.18 s
[cursor-gen] +++ OK, passed 100 tests.
47.18 s
[cursor-gen] produces valid values when it is used to set valid values values on valid values values [✔]
47.18 s
[cursor-gen] +++ OK, passed 100 tests.
47.18 s
[cursor-gen] treeCursorCurrentL
47.18 s
[cursor-gen] satisfies the first lens law for valid values and valid values [✔]
47.18 s
[cursor-gen] +++ OK, passed 100 tests.
47.18 s
[cursor-gen] satisfies the second lens law for valid values [✔]
47.18 s
[cursor-gen] +++ OK, passed 100 tests.
47.18 s
[cursor-gen] satisfies the third lens law for valid values and valid values [✔]
47.18 s
[cursor-gen] +++ OK, passed 100 tests.
47.18 s
[cursor-gen] gets valid values from valid values values [✔]
47.18 s
[cursor-gen] +++ OK, passed 100 tests.
47.18 s
[cursor-gen] produces valid values when it is used to set valid values values on valid values values [✔]
47.18 s
[cursor-gen] +++ OK, passed 100 tests.
47.18 s
[cursor-gen] treeCursorBelowL
47.18 s
[cursor-gen] satisfies the first lens law for valid values and valid values [✔]
47.18 s
[cursor-gen] +++ OK, passed 100 tests.
47.18 s
[cursor-gen] satisfies the second lens law for valid values [✔]
47.18 s
[cursor-gen] +++ OK, passed 100 tests.
47.18 s
[cursor-gen] satisfies the third lens law for valid values and valid values [✔]
47.18 s
[cursor-gen] +++ OK, passed 100 tests.
47.18 s
[cursor-gen] gets valid values from valid values values [✔]
47.18 s
[cursor-gen] +++ OK, passed 100 tests.
47.18 s
[cursor-gen] produces valid values when it is used to set valid values values on valid values values [✔]
47.18 s
[cursor-gen] +++ OK, passed 100 tests.
47.18 s
[cursor-gen] treeCursorCurrentSubTreeL
47.18 s
[cursor-gen] satisfies the first lens law for valid values and valid values [✔]
47.18 s
[cursor-gen] +++ OK, passed 100 tests.
47.18 s
[cursor-gen] satisfies the second lens law for valid values [✔]
47.18 s
[cursor-gen] +++ OK, passed 100 tests.
47.18 s
[cursor-gen] satisfies the third lens law for valid values and valid values [✔]
47.18 s
[cursor-gen] +++ OK, passed 100 tests.
47.18 s
[cursor-gen] gets valid values from valid values values [✔]
47.18 s
[cursor-gen] +++ OK, passed 100 tests.
47.18 s
[cursor-gen] produces valid values when it is used to set valid values values on valid values values [✔]
47.18 s
[cursor-gen] +++ OK, passed 100 tests.
47.18 s
[cursor-gen]
47.18 s
[cursor-gen] Finished in 0.5775 seconds
47.18 s
[cursor-gen] 881 examples, 0 failures, 173 pending
47.34 s
[cursor-gen] Test suite cursor-test: PASS
47.34 s
[cursor-gen] Test suite logged to: dist/test/cursor-gen-0.4.0.0-cursor-test.log
47.34 s
[cursor-gen] 1 of 1 test suites (1 of 1 test cases) passed.
47.34 s
[cursor-gen] Phase: haddockPhase
47.45 s
[cursor-gen] Preprocessing library for cursor-gen-0.4.0.0..
47.45 s
[cursor-gen] Running Haddock on library for cursor-gen-0.4.0.0..
47.49 s
[cursor-gen] Warning: --source-* options are ignored when --hyperlinked-source is enabled.
47.60 s
[cursor-gen] [ 1 of 14] Compiling Cursor.List.Gen ( src/Cursor/List/Gen.hs, nothing )
49.09 s
[cursor-gen] [ 2 of 14] Compiling Cursor.List.NonEmpty.Gen ( src/Cursor/List/NonEmpty/Gen.hs, nothing )
49.09 s
[cursor-gen] [ 3 of 14] Compiling Cursor.Map.KeyValue.Gen ( src/Cursor/Map/KeyValue/Gen.hs, nothing )
49.36 s
[cursor-gen] [ 4 of 14] Compiling Cursor.Map.Gen ( src/Cursor/Map/Gen.hs, nothing )
49.36 s
[cursor-gen] [ 5 of 14] Compiling Cursor.Simple.List.NonEmpty.Gen ( src/Cursor/Simple/List/NonEmpty/Gen.hs, nothing )
49.36 s
[cursor-gen] [ 6 of 14] Compiling Cursor.Simple.Map.Gen ( src/Cursor/Simple/Map/Gen.hs, nothing )
49.36 s
[cursor-gen] [ 7 of 14] Compiling Cursor.Simple.Map.KeyValue.Gen ( src/Cursor/Simple/Map/KeyValue/Gen.hs, nothing )
49.36 s
[cursor-gen] [ 8 of 14] Compiling Cursor.Text.Gen ( src/Cursor/Text/Gen.hs, nothing )
49.36 s
[cursor-gen] [ 9 of 14] Compiling Cursor.TextField.Gen ( src/Cursor/TextField/Gen.hs, nothing )
49.36 s
[cursor-gen] [10 of 14] Compiling Cursor.Tree.Gen ( src/Cursor/Tree/Gen.hs, nothing )
49.36 s
[cursor-gen] [11 of 14] Compiling Cursor.Simple.Tree.Gen ( src/Cursor/Simple/Tree/Gen.hs, nothing )
49.36 s
[cursor-gen] [12 of 14] Compiling Cursor.Forest.Gen ( src/Cursor/Forest/Gen.hs, nothing )
49.36 s
[cursor-gen] [13 of 14] Compiling Cursor.Simple.Forest.Gen ( src/Cursor/Simple/Forest/Gen.hs, nothing )
49.36 s
[cursor-gen] [14 of 14] Compiling Paths_cursor_gen ( dist/build/autogen/Paths_cursor_gen.hs, nothing )
49.36 s
[cursor-gen] Haddock coverage:
49.36 s
[cursor-gen] 0% ( 0 / 3) in 'Cursor.List.Gen'
49.36 s
[cursor-gen] Missing documentation for:
49.36 s
[cursor-gen] Module header
49.36 s
[cursor-gen] listCursorWithGen (src/Cursor/List/Gen.hs:25)
49.36 s
[cursor-gen] listCursorWithIndex0 (src/Cursor/List/Gen.hs:28)
49.36 s
[cursor-gen] 0% ( 0 / 5) in 'Cursor.List.NonEmpty.Gen'
49.36 s
[cursor-gen] Missing documentation for:
49.36 s
[cursor-gen] Module header
49.36 s
[cursor-gen] genNonEmptyCursorBy (src/Cursor/List/NonEmpty/Gen.hs:24)
49.36 s
[cursor-gen] nonEmptyElemOf (src/Cursor/List/NonEmpty/Gen.hs:38)
49.36 s
[cursor-gen] nonEmptyWithIndex0 (src/Cursor/List/NonEmpty/Gen.hs:41)
49.36 s
[cursor-gen] nonEmptyWith (src/Cursor/List/NonEmpty/Gen.hs:44)
49.36 s
[cursor-gen] 0% ( 0 / 3) in 'Cursor.Map.KeyValue.Gen'
49.36 s
[cursor-gen] Missing documentation for:
49.36 s
[cursor-gen] Module header
49.36 s
[cursor-gen] genKeyValueCursorBy (src/Cursor/Map/KeyValue/Gen.hs:23)
49.36 s
[cursor-gen] genKeyValueCursorByDependent (src/Cursor/Map/KeyValue/Gen.hs:27)
49.36 s
[cursor-gen] 0% ( 0 / 3) in 'Cursor.Map.Gen'
49.36 s
[cursor-gen] Missing documentation for:
49.36 s
[cursor-gen] Module header
49.36 s
[cursor-gen] genMapCursorBy (src/Cursor/Map/Gen.hs:21)
49.36 s
[cursor-gen] genMapCursorByDependent (src/Cursor/Map/Gen.hs:26)
49.36 s
[cursor-gen] 0% ( 0 / 4) in 'Cursor.Simple.List.NonEmpty.Gen'
49.36 s
[cursor-gen] Missing documentation for:
49.36 s
[cursor-gen] Module header
49.36 s
[cursor-gen] nonEmptyElemOf (src/Cursor/Simple/List/NonEmpty/Gen.hs:13)
49.36 s
[cursor-gen] nonEmptyWithIndex0 (src/Cursor/Simple/List/NonEmpty/Gen.hs:16)
49.36 s
[cursor-gen] nonEmptyWith (src/Cursor/Simple/List/NonEmpty/Gen.hs:19)
49.36 s
[cursor-gen] 0% ( 0 / 1) in 'Cursor.Simple.Map.Gen'
49.36 s
[cursor-gen] Missing documentation for:
49.36 s
[cursor-gen] Module header
49.36 s
[cursor-gen] 0% ( 0 / 1) in 'Cursor.Simple.Map.KeyValue.Gen'
49.36 s
[cursor-gen] Missing documentation for:
49.36 s
[cursor-gen] Module header
49.36 s
[cursor-gen] 0% ( 0 / 7) in 'Cursor.Text.Gen'
49.36 s
[cursor-gen] Missing documentation for:
49.36 s
[cursor-gen] Module header
49.36 s
[cursor-gen] genSafeChar (src/Cursor/Text/Gen.hs:27)
49.36 s
[cursor-gen] genTextCursorChar (src/Cursor/Text/Gen.hs:33)
49.36 s
[cursor-gen] textCursorSentenceGen (src/Cursor/Text/Gen.hs:42)
49.36 s
[cursor-gen] textCursorWithGen (src/Cursor/Text/Gen.hs:36)
49.36 s
[cursor-gen] textCursorWithIndex0 (src/Cursor/Text/Gen.hs:39)
49.36 s
[cursor-gen] shrinkSentence (src/Cursor/Text/Gen.hs:48)
49.36 s
[cursor-gen] 0% ( 0 / 1) in 'Cursor.TextField.Gen'
49.36 s
[cursor-gen] Missing documentation for:
49.36 s
[cursor-gen] Module header
49.36 s
[cursor-gen] 0% ( 0 / 1) in 'Cursor.Tree.Gen'
49.36 s
[cursor-gen] Missing documentation for:
49.36 s
[cursor-gen] Module header
49.36 s
[cursor-gen] 0% ( 0 / 1) in 'Cursor.Simple.Tree.Gen'
49.36 s
[cursor-gen] Missing documentation for:
49.36 s
[cursor-gen] Module header
49.36 s
[cursor-gen] 0% ( 0 / 1) in 'Cursor.Forest.Gen'
49.36 s
[cursor-gen] Missing documentation for:
49.36 s
[cursor-gen] Module header
49.36 s
[cursor-gen] 0% ( 0 / 1) in 'Cursor.Simple.Forest.Gen'
49.36 s
[cursor-gen] Missing documentation for:
49.36 s
[cursor-gen] Module header
51.36 s
[cursor-gen] Documentation created: dist/doc/html/cursor-gen/,
51.36 s
[cursor-gen] dist/doc/html/cursor-gen/cursor-gen.txt
51.41 s
[cursor-gen] Preprocessing test suite 'cursor-test' for cursor-gen-0.4.0.0..
51.42 s
[cursor-gen] Phase: installPhase
51.47 s
[cursor-gen] Installing library in /nix/store/ssqxavqs2zqy8z3iz6zhwkq3xg8vxr5y-cursor-gen-0.4.0.0/lib/ghc-9.8.4/lib/x86_64-linux-ghc-9.8.4/cursor-gen-0.4.0.0-AF3KCLruzAw4Qb4LWx0JC3
51.72 s
[cursor-gen] Phase: fixupPhase
51.74 s
[cursor-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/ssqxavqs2zqy8z3iz6zhwkq3xg8vxr5y-cursor-gen-0.4.0.0
51.75 s
[cursor-gen] shrinking /nix/store/ssqxavqs2zqy8z3iz6zhwkq3xg8vxr5y-cursor-gen-0.4.0.0/lib/ghc-9.8.4/lib/x86_64-linux-ghc-9.8.4/libHScursor-gen-0.4.0.0-AF3KCLruzAw4Qb4LWx0JC3-ghc9.8.4.so
51.76 s
[cursor-gen] checking for references to /build/ in /nix/store/ssqxavqs2zqy8z3iz6zhwkq3xg8vxr5y-cursor-gen-0.4.0.0...
51.77 s
[cursor-gen] patching script interpreter paths in /nix/store/ssqxavqs2zqy8z3iz6zhwkq3xg8vxr5y-cursor-gen-0.4.0.0
51.78 s
[cursor-gen] stripping (with command strip and flags -S -p) in /nix/store/ssqxavqs2zqy8z3iz6zhwkq3xg8vxr5y-cursor-gen-0.4.0.0/lib
51.83 s
[cursor-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/bqf2k803xnkq9j31nm64lvz8v9v8n0hd-cursor-gen-0.4.0.0-doc
51.83 s
[cursor-gen] checking for references to /build/ in /nix/store/bqf2k803xnkq9j31nm64lvz8v9v8n0hd-cursor-gen-0.4.0.0-doc...
51.84 s
[cursor-gen] patching script interpreter paths in /nix/store/bqf2k803xnkq9j31nm64lvz8v9v8n0hd-cursor-gen-0.4.0.0-doc
52.09 s
[post-build-hook] Uploading to cachix cache "cursor": /nix/store/bqf2k803xnkq9j31nm64lvz8v9v8n0hd-cursor-gen-0.4.0.0-doc /nix/store/ssqxavqs2zqy8z3iz6zhwkq3xg8vxr5y-cursor-gen-0.4.0.0
52.50 s
[post-build-hook] Pushing 3 paths (87 are already present) using zstd to cache cursor ⏳
52.50 s
[post-build-hook]
52.90 s
[post-build-hook] Pushing /nix/store/bqf2k803xnkq9j31nm64lvz8v9v8n0hd-cursor-gen-0.4.0.0-doc (489.55 KiB)
52.90 s
[post-build-hook] Pushing /nix/store/ssqxavqs2zqy8z3iz6zhwkq3xg8vxr5y-cursor-gen-0.4.0.0 (2.23 MiB)
52.96 s
[post-build-hook] Pushing /nix/store/8syylmkvnn7lg2nar9fddpp5izb4gh56-attr-2.5.2 (90.55 KiB)
54.32 s
[post-build-hook]
54.32 s
[post-build-hook] All done.
54.34 s
[post-build-hook] Uploading to the NixCI staging cache: /nix/store/bqf2k803xnkq9j31nm64lvz8v9v8n0hd-cursor-gen-0.4.0.0-doc /nix/store/ssqxavqs2zqy8z3iz6zhwkq3xg8vxr5y-cursor-gen-0.4.0.0
54.60 s
[post-build-hook] copying 2 paths...
54.60 s
[post-build-hook] copying path '/nix/store/bqf2k803xnkq9j31nm64lvz8v9v8n0hd-cursor-gen-0.4.0.0-doc' to 'https://cache.staging.nix-ci.com'...
54.89 s
[post-build-hook] copying path '/nix/store/ssqxavqs2zqy8z3iz6zhwkq3xg8vxr5y-cursor-gen-0.4.0.0' to 'https://cache.staging.nix-ci.com'...
55.80 s
[post-build-hook] copying 1 paths...
55.80 s
[post-build-hook] copying path '/nix/store/dp0wg2zamk803b8rcf5p32p74mnp6f2w-cursor-gen-0.4.0.0.drv' to 'https://cache.staging.nix-ci.com'...
56.05 s
Progress: 4 of 6 built, 20 of 20 downloaded from cache
56.09 s
Building cursor-release
56.13 s
[cursor-release] /nix/store/ssqxavqs2zqy8z3iz6zhwkq3xg8vxr5y-cursor-gen-0.4.0.0/nix-support:
56.13 s
[cursor-release] propagated-build-inputs: Keeping existing link to /nix/store/3slj6zra6g3vscwci1fabq00p7f03w4l-cursor-0.3.2.0/nix-support/propagated-build-inputs
56.17 s
[post-build-hook] Uploading to cachix cache "cursor": /nix/store/hjz0mx8rbl94y84hz6ax8cfabb2rmgwk-cursor-release
56.90 s
[post-build-hook] Pushing 1 paths (90 are already present) using zstd to cache cursor ⏳
56.90 s
[post-build-hook]
57.36 s
[post-build-hook] Pushing /nix/store/hjz0mx8rbl94y84hz6ax8cfabb2rmgwk-cursor-release (49.54 KiB)
58.43 s
[post-build-hook]
58.43 s
[post-build-hook] All done.
58.46 s
[post-build-hook] Uploading to the NixCI staging cache: /nix/store/hjz0mx8rbl94y84hz6ax8cfabb2rmgwk-cursor-release
58.74 s
[post-build-hook] copying 1 paths...
58.74 s
[post-build-hook] copying path '/nix/store/hjz0mx8rbl94y84hz6ax8cfabb2rmgwk-cursor-release' to 'https://cache.staging.nix-ci.com'...
59.23 s
[post-build-hook] copying 1 paths...
59.23 s
[post-build-hook] copying path '/nix/store/7razbx7cchmy849q3cw4cj2vdfivzjxf-cursor-release.drv' to 'https://cache.staging.nix-ci.com'...
59.43 s
Progress: 5 of 6 built, 20 of 20 downloaded from cache