build checks.x86_64-linux.nixpkgs-24_11

Reproduce this run
  1. 37.25 s [post-build-hook] copying path '/nix/store/ql6w69mizlxij3zc5dvpkqqdbfkq9qns-genvalidity-hspec-1.0.0.3.tar.gz.drv' to 'https://cache.staging.nix-ci.com'...
  2. 37.49 s [post-build-hook] copying path '/nix/store/zdhhh3bvwrv7ka4s8jlzlxg0mfpchjcf-genvalidity-1.1.1.0.drv' to 'https://cache.staging.nix-ci.com'...
  3. 37.75 s [post-build-hook] copying path '/nix/store/6kbn0vdb2hr9y2gkx8x8lb23bki48alj-genvalidity-property-1.0.0.0.drv' to 'https://cache.staging.nix-ci.com'...
  4. 37.93 s [post-build-hook] copying path '/nix/store/mqpyxr7b9avhqcgfrlngsky1g1g66g4k-genvalidity-hspec-1.0.0.3.drv' to 'https://cache.staging.nix-ci.com'...
  5. 38.11 s [post-build-hook] copying path '/nix/store/c5faz32x2cyxds8yblss4h8y6zklvlyj-genvalidity-text-1.0.0.1.drv' to 'https://cache.staging.nix-ci.com'...
  6. 38.11 s [post-build-hook] copying path '/nix/store/yac77fn9ssf55af4h34ilzpyqnqld34n-genvalidity-containers-1.0.0.2.drv' to 'https://cache.staging.nix-ci.com'...
  7. 38.11 s [post-build-hook] copying path '/nix/store/6xxpx81hj2rmpiy5i78by6sym71mdpkz-genvalidity-hspec-optics-1.0.0.0.drv' to 'https://cache.staging.nix-ci.com'...
  8. 38.32 s [post-build-hook] copying path '/nix/store/7yzrccwnvzfvgjwda2b3sk7w9fb2cbmn-cursor-gen-source-0.4.0.0.drv' to 'https://cache.staging.nix-ci.com'...
  9. 38.94 s Progress: 3 of 6 built, 21 of 21 downloaded from cache
  10. 39.01 s Building cursor-gen
  11. 39.13 s [cursor-gen] Phase: setupCompilerEnvironmentPhase
  12. 39.13 s [cursor-gen] Build with /nix/store/imm84m7fafsybsaxlkvpv8inf2dwgkh5-ghc-9.6.6.
  13. 39.30 s [cursor-gen] Phase: unpackPhase
  14. 39.30 s [cursor-gen] unpacking source archive /nix/store/cpxab2fh850afdncvprsk8sx2jrgzgxl-cursor-gen-source-0.4.0.0/cursor-gen-0.4.0.0.tar.gz
  15. 39.31 s [cursor-gen] source root is cursor-gen-0.4.0.0
  16. 39.31 s [cursor-gen] setting SOURCE_DATE_EPOCH to timestamp 1780346442 of file cursor-gen-0.4.0.0/test/Spec.hs
  17. 39.31 s [cursor-gen] warning: file cursor-gen-0.4.0.0/test/Spec.hs may be generated; SOURCE_DATE_EPOCH may be non-deterministic
  18. 39.32 s [cursor-gen] Phase: patchPhase
  19. 39.32 s [cursor-gen] Phase: compileBuildDriverPhase
  20. 39.33 s [cursor-gen] setupCompileFlags: -package-db=/build/tmp.rphszVqJDW/setup-package.conf.d -threaded
  21. 39.37 s [cursor-gen] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.rphszVqJDW/Main.o )
  22. 39.41 s [cursor-gen] [2 of 2] Linking Setup
  23. 40.46 s [cursor-gen] Phase: updateAutotoolsGnuConfigScriptsPhase
  24. 40.47 s [cursor-gen] Phase: configurePhase
  25. 40.47 s [cursor-gen] configureFlags: --verbose --prefix=/nix/store/5pzifz9p13qnvjj2f81cqs3asmshjkll-cursor-gen-0.4.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/nix/store/jqccvcnkb15bpgai8s0w8ra5sxxxh3ps-cursor-gen-0.4.0.0-doc/share/doc/cursor-gen-0.4.0.0 --with-gcc=gcc --package-db=/build/tmp.rphszVqJDW/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/3f3aa75rg5xjv498n1i9gzmlh06an73p-ncurses-6.4.20221231/lib --extra-lib-dirs=/nix/store/s8rgz1c5dwpcw607p9s7pig3ig19hbvl-libffi-3.4.6/lib --extra-lib-dirs=/nix/store/mz53myclg9kxbfp85yswy7c25h5qpwvf-elfutils-0.191/lib --extra-lib-dirs=/nix/store/k2jdvz2f8fzgc4q7k519l5mmv1x75d9s-gmp-with-cxx-6.3.0/lib
  26. 40.48 s [cursor-gen] Using Parsec parser
  27. 40.48 s [cursor-gen] Configuring cursor-gen-0.4.0.0...
  28. 40.78 s [cursor-gen] Dependency QuickCheck: using QuickCheck-2.14.3
  29. 40.78 s [cursor-gen] Dependency base <5: using base-4.18.2.1
  30. 40.78 s [cursor-gen] Dependency containers: using containers-0.6.7
  31. 40.78 s [cursor-gen] Dependency cursor >=0.2: using cursor-0.3.2.0
  32. 40.78 s [cursor-gen] Dependency genvalidity >=0.8: using genvalidity-1.1.1.0
  33. 40.78 s [cursor-gen] Dependency genvalidity-containers: using genvalidity-containers-1.0.0.2
  34. 40.78 s [cursor-gen] Dependency genvalidity-text >=0.6: using genvalidity-text-1.0.0.1
  35. 40.78 s [cursor-gen] Dependency text: using text-2.0.2
  36. 40.78 s [cursor-gen] Dependency QuickCheck: using QuickCheck-2.14.3
  37. 40.78 s [cursor-gen] Dependency base <5: using base-4.18.2.1
  38. 40.78 s [cursor-gen] Dependency containers: using containers-0.6.7
  39. 40.78 s [cursor-gen] Dependency cursor: using cursor-0.3.2.0
  40. 40.78 s [cursor-gen] Dependency cursor-gen: using cursor-gen-0.4.0.0
  41. 40.78 s [cursor-gen] Dependency genvalidity-hspec: using genvalidity-hspec-1.0.0.3
  42. 40.78 s [cursor-gen] Dependency genvalidity-hspec-optics: using genvalidity-hspec-optics-1.0.0.0
  43. 40.78 s [cursor-gen] Dependency hspec: using hspec-2.11.9
  44. 40.78 s [cursor-gen] Dependency microlens: using microlens-0.4.13.1
  45. 40.78 s [cursor-gen] Dependency pretty-show: using pretty-show-1.10
  46. 40.78 s [cursor-gen] Dependency text: using text-2.0.2
  47. 41.04 s [cursor-gen] Source component graph:
  48. 41.04 s [cursor-gen] component lib
  49. 41.04 s [cursor-gen] component test:cursor-test dependency lib
  50. 41.04 s [cursor-gen] Configured component graph:
  51. 41.04 s [cursor-gen] component cursor-gen-0.4.0.0-6ALASydxdrrAFK2oOBGjG9
  52. 41.04 s [cursor-gen] include QuickCheck-2.14.3-2ib5howz5bF8WgkuPDgHew
  53. 41.04 s [cursor-gen] include base-4.18.2.1
  54. 41.04 s [cursor-gen] include containers-0.6.7
  55. 41.04 s [cursor-gen] include cursor-0.3.2.0-99VyfZONNPtBpUOMgTG6b5
  56. 41.04 s [cursor-gen] include genvalidity-1.1.1.0-2rUmIqnFSOoBp0hNYBULmv
  57. 41.04 s [cursor-gen] include genvalidity-containers-1.0.0.2-3ixNolyiuPV1Cd2yhR9hIn
  58. 41.04 s [cursor-gen] include genvalidity-text-1.0.0.1-5FUaEUeJZSDIFhRd0kyjgL
  59. 41.04 s [cursor-gen] include text-2.0.2
  60. 41.04 s [cursor-gen] component cursor-gen-0.4.0.0-8PJFZKaOrrL6ALdGWVxYSb-cursor-test
  61. 41.04 s [cursor-gen] include QuickCheck-2.14.3-2ib5howz5bF8WgkuPDgHew
  62. 41.04 s [cursor-gen] include base-4.18.2.1
  63. 41.04 s [cursor-gen] include containers-0.6.7
  64. 41.04 s [cursor-gen] include cursor-0.3.2.0-99VyfZONNPtBpUOMgTG6b5
  65. 41.04 s [cursor-gen] include cursor-gen-0.4.0.0-6ALASydxdrrAFK2oOBGjG9
  66. 41.04 s [cursor-gen] include genvalidity-hspec-1.0.0.3-BnwEoLPLh2jJtz4qMHw0NS
  67. 41.04 s [cursor-gen] include genvalidity-hspec-optics-1.0.0.0-8uOlPh0yonFATIB2J4CFNN
  68. 41.04 s [cursor-gen] include hspec-2.11.9-K4kdq1ZGqnN7rZ0uL9rUZi
  69. 41.04 s [cursor-gen] include microlens-0.4.13.1-KYxyai9RKt756hvMHa07OI
  70. 41.04 s [cursor-gen] include pretty-show-1.10-Hkt8Fo77lI39LZgAuw0Xz
  71. 41.04 s [cursor-gen] include text-2.0.2
  72. 41.04 s [cursor-gen] Linked component graph:
  73. 41.04 s [cursor-gen] unit cursor-gen-0.4.0.0-6ALASydxdrrAFK2oOBGjG9
  74. 41.04 s [cursor-gen] include QuickCheck-2.14.3-2ib5howz5bF8WgkuPDgHew
  75. 41.04 s [cursor-gen] include base-4.18.2.1
  76. 41.04 s [cursor-gen] include containers-0.6.7
  77. 41.04 s [cursor-gen] include cursor-0.3.2.0-99VyfZONNPtBpUOMgTG6b5
  78. 41.05 s [cursor-gen] include genvalidity-1.1.1.0-2rUmIqnFSOoBp0hNYBULmv
  79. 41.05 s [cursor-gen] include genvalidity-containers-1.0.0.2-3ixNolyiuPV1Cd2yhR9hIn
  80. 41.05 s [cursor-gen] include genvalidity-text-1.0.0.1-5FUaEUeJZSDIFhRd0kyjgL
  81. 41.05 s [cursor-gen] include text-2.0.2
  82. 41.05 s [cursor-gen] Cursor.Forest.Gen=cursor-gen-0.4.0.0-6ALASydxdrrAFK2oOBGjG9:Cursor.Forest.Gen,Cursor.List.Gen=cursor-gen-0.4.0.0-6ALASydxdrrAFK2oOBGjG9:Cursor.List.Gen,Cursor.List.NonEmpty.Gen=cursor-gen-0.4.0.0-6ALASydxdrrAFK2oOBGjG9:Cursor.List.NonEmpty.Gen,Cursor.Map.Gen=cursor-gen-0.4.0.0-6ALASydxdrrAFK2oOBGjG9:Cursor.Map.Gen,Cursor.Map.KeyValue.Gen=cursor-gen-0.4.0.0-6ALASydxdrrAFK2oOBGjG9:Cursor.Map.KeyValue.Gen,Cursor.Simple.Forest.Gen=cursor-gen-0.4.0.0-6ALASydxdrrAFK2oOBGjG9:Cursor.Simple.Forest.Gen,Cursor.Simple.List.NonEmpty.Gen=cursor-gen-0.4.0.0-6ALASydxdrrAFK2oOBGjG9:Cursor.Simple.List.NonEmpty.Gen,Cursor.Simple.Map.Gen=cursor-gen-0.4.0.0-6ALASydxdrrAFK2oOBGjG9:Cursor.Simple.Map.Gen,Cursor.Simple.Map.KeyValue.Gen=cursor-gen-0.4.0.0-6ALASydxdrrAFK2oOBGjG9:Cursor.Simple.Map.KeyValue.Gen,Cursor.Simple.Tree.Gen=cursor-gen-0.4.0.0-6ALASydxdrrAFK2oOBGjG9:Cursor.Simple.Tree.Gen,Cursor.Text.Gen=cursor-gen-0.4.0.0-6ALASydxdrrAFK2oOBGjG9:Cursor.Text.Gen,Cursor.TextField.Gen=cursor-gen-0.4.0.0-6ALASydxdrrAFK2oOBGjG9:Cursor.TextField.Gen,Cursor.Tree.Gen=cursor-gen-0.4.0.0-6ALASydxdrrAFK2oOBGjG9:Cursor.Tree.Gen
  83. 41.05 s [cursor-gen] unit cursor-gen-0.4.0.0-8PJFZKaOrrL6ALdGWVxYSb-cursor-test
  84. 41.05 s [cursor-gen] include QuickCheck-2.14.3-2ib5howz5bF8WgkuPDgHew
  85. 41.05 s [cursor-gen] include base-4.18.2.1
  86. 41.05 s [cursor-gen] include containers-0.6.7
  87. 41.05 s [cursor-gen] include cursor-0.3.2.0-99VyfZONNPtBpUOMgTG6b5
  88. 41.05 s [cursor-gen] include cursor-gen-0.4.0.0-6ALASydxdrrAFK2oOBGjG9
  89. 41.05 s [cursor-gen] include genvalidity-hspec-1.0.0.3-BnwEoLPLh2jJtz4qMHw0NS
  90. 41.05 s [cursor-gen] include genvalidity-hspec-optics-1.0.0.0-8uOlPh0yonFATIB2J4CFNN
  91. 41.05 s [cursor-gen] include hspec-2.11.9-K4kdq1ZGqnN7rZ0uL9rUZi
  92. 41.05 s [cursor-gen] include microlens-0.4.13.1-KYxyai9RKt756hvMHa07OI
  93. 41.05 s [cursor-gen] include pretty-show-1.10-Hkt8Fo77lI39LZgAuw0Xz
  94. 41.05 s [cursor-gen] include text-2.0.2
  95. 41.05 s [cursor-gen] Ready component graph:
  96. 41.05 s [cursor-gen] definite cursor-gen-0.4.0.0-6ALASydxdrrAFK2oOBGjG9
  97. 41.05 s [cursor-gen] depends QuickCheck-2.14.3-2ib5howz5bF8WgkuPDgHew
  98. 41.05 s [cursor-gen] depends base-4.18.2.1
  99. 41.05 s [cursor-gen] depends containers-0.6.7
  100. 41.05 s [cursor-gen] depends cursor-0.3.2.0-99VyfZONNPtBpUOMgTG6b5
  101. 41.05 s [cursor-gen] depends genvalidity-1.1.1.0-2rUmIqnFSOoBp0hNYBULmv
  102. 41.05 s [cursor-gen] depends genvalidity-containers-1.0.0.2-3ixNolyiuPV1Cd2yhR9hIn
  103. 41.05 s [cursor-gen] depends genvalidity-text-1.0.0.1-5FUaEUeJZSDIFhRd0kyjgL
  104. 41.05 s [cursor-gen] depends text-2.0.2
  105. 41.05 s [cursor-gen] definite cursor-gen-0.4.0.0-8PJFZKaOrrL6ALdGWVxYSb-cursor-test
  106. 41.05 s [cursor-gen] depends QuickCheck-2.14.3-2ib5howz5bF8WgkuPDgHew
  107. 41.05 s [cursor-gen] depends base-4.18.2.1
  108. 41.05 s [cursor-gen] depends containers-0.6.7
  109. 41.05 s [cursor-gen] depends cursor-0.3.2.0-99VyfZONNPtBpUOMgTG6b5
  110. 41.05 s [cursor-gen] depends cursor-gen-0.4.0.0-6ALASydxdrrAFK2oOBGjG9
  111. 41.05 s [cursor-gen] depends genvalidity-hspec-1.0.0.3-BnwEoLPLh2jJtz4qMHw0NS
  112. 41.05 s [cursor-gen] depends genvalidity-hspec-optics-1.0.0.0-8uOlPh0yonFATIB2J4CFNN
  113. 41.05 s [cursor-gen] depends hspec-2.11.9-K4kdq1ZGqnN7rZ0uL9rUZi
  114. 41.05 s [cursor-gen] depends microlens-0.4.13.1-KYxyai9RKt756hvMHa07OI
  115. 41.05 s [cursor-gen] depends pretty-show-1.10-Hkt8Fo77lI39LZgAuw0Xz
  116. 41.05 s [cursor-gen] depends text-2.0.2
  117. 41.05 s [cursor-gen] Using Cabal-3.10.3.0 compiled by ghc-9.6
  118. 41.05 s [cursor-gen] Using compiler: ghc-9.6.6
  119. 41.05 s [cursor-gen] Using install prefix:
  120. 41.05 s [cursor-gen] /nix/store/5pzifz9p13qnvjj2f81cqs3asmshjkll-cursor-gen-0.4.0.0
  121. 41.05 s [cursor-gen] Executables installed in:
  122. 41.05 s [cursor-gen] /nix/store/5pzifz9p13qnvjj2f81cqs3asmshjkll-cursor-gen-0.4.0.0/bin
  123. 41.05 s [cursor-gen] Libraries installed in:
  124. 41.05 s [cursor-gen] /nix/store/5pzifz9p13qnvjj2f81cqs3asmshjkll-cursor-gen-0.4.0.0/lib/ghc-9.6.6/lib/x86_64-linux-ghc-9.6.6/cursor-gen-0.4.0.0-6ALASydxdrrAFK2oOBGjG9
  125. 41.05 s [cursor-gen] Dynamic Libraries installed in:
  126. 41.05 s [cursor-gen] /nix/store/5pzifz9p13qnvjj2f81cqs3asmshjkll-cursor-gen-0.4.0.0/lib/ghc-9.6.6/lib/x86_64-linux-ghc-9.6.6
  127. 41.05 s [cursor-gen] Private executables installed in:
  128. 41.05 s [cursor-gen] /nix/store/5pzifz9p13qnvjj2f81cqs3asmshjkll-cursor-gen-0.4.0.0/libexec/x86_64-linux-ghc-9.6.6/cursor-gen-0.4.0.0
  129. 41.05 s [cursor-gen] Data files installed in:
  130. 41.05 s [cursor-gen] /nix/store/5pzifz9p13qnvjj2f81cqs3asmshjkll-cursor-gen-0.4.0.0/share/x86_64-linux-ghc-9.6.6/cursor-gen-0.4.0.0
  131. 41.05 s [cursor-gen] Documentation installed in:
  132. 41.05 s [cursor-gen] /nix/store/jqccvcnkb15bpgai8s0w8ra5sxxxh3ps-cursor-gen-0.4.0.0-doc/share/doc/cursor-gen-0.4.0.0
  133. 41.05 s [cursor-gen] Configuration files installed in:
  134. 41.05 s [cursor-gen] /nix/store/5pzifz9p13qnvjj2f81cqs3asmshjkll-cursor-gen-0.4.0.0/etc
  135. 41.05 s [cursor-gen] No alex found
  136. 41.05 s [cursor-gen] Using ar found on system at:
  137. 41.05 s [cursor-gen] /nix/store/kmaz78bn767ffazkpf8zbq3plnh45nfm-binutils-wrapper-2.43.1/bin/ar
  138. 41.05 s [cursor-gen] No c2hs found
  139. 41.05 s [cursor-gen] No cpphs found
  140. 41.05 s [cursor-gen] No doctest found
  141. 41.05 s [cursor-gen] Using gcc version 13.3.0 given by user at:
  142. 41.05 s [cursor-gen] /nix/store/mzfk1sdv6bxvdh9slvddpj734ck99idi-gcc-wrapper-13.3.0/bin/gcc
  143. 41.05 s [cursor-gen] Using ghc version 9.6.6 found on system at:
  144. 41.05 s [cursor-gen] /nix/store/imm84m7fafsybsaxlkvpv8inf2dwgkh5-ghc-9.6.6/bin/ghc
  145. 41.05 s [cursor-gen] Using ghc-pkg version 9.6.6 found on system at:
  146. 41.05 s [cursor-gen] /nix/store/imm84m7fafsybsaxlkvpv8inf2dwgkh5-ghc-9.6.6/bin/ghc-pkg-9.6.6
  147. 41.05 s [cursor-gen] No ghcjs found
  148. 41.05 s [cursor-gen] No ghcjs-pkg found
  149. 41.05 s [cursor-gen] No greencard found
  150. 41.05 s [cursor-gen] Using haddock version 2.29.2 found on system at:
  151. 41.05 s [cursor-gen] /nix/store/imm84m7fafsybsaxlkvpv8inf2dwgkh5-ghc-9.6.6/bin/haddock-ghc-9.6.6
  152. 41.05 s [cursor-gen] No happy found
  153. 41.05 s [cursor-gen] Using haskell-suite found on system at: haskell-suite-dummy-location
  154. 41.05 s [cursor-gen] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
  155. 41.05 s [cursor-gen] No hmake found
  156. 41.05 s [cursor-gen] Using hpc version 0.68 found on system at:
  157. 41.05 s [cursor-gen] /nix/store/imm84m7fafsybsaxlkvpv8inf2dwgkh5-ghc-9.6.6/bin/hpc-ghc-9.6.6
  158. 41.05 s [cursor-gen] Using hsc2hs version 0.68.9 found on system at:
  159. 41.05 s [cursor-gen] /nix/store/imm84m7fafsybsaxlkvpv8inf2dwgkh5-ghc-9.6.6/bin/hsc2hs-ghc-9.6.6
  160. 41.05 s [cursor-gen] Using hscolour version 1.25 found on system at:
  161. 41.05 s [cursor-gen] /nix/store/1486f5wc7jkiy8v60jdh30zr93aiswai-hscolour-1.25/bin/HsColour
  162. 41.05 s [cursor-gen] No jhc found
  163. 41.05 s [cursor-gen] Using ld found on system at:
  164. 41.05 s [cursor-gen] /nix/store/kmaz78bn767ffazkpf8zbq3plnh45nfm-binutils-wrapper-2.43.1/bin/ld.gold
  165. 41.05 s [cursor-gen] No pkg-config found
  166. 41.05 s [cursor-gen] Using runghc version 9.6.6 found on system at:
  167. 41.05 s [cursor-gen] /nix/store/imm84m7fafsybsaxlkvpv8inf2dwgkh5-ghc-9.6.6/bin/runghc-9.6.6
  168. 41.05 s [cursor-gen] Using strip version 2.43 found on system at:
  169. 41.05 s [cursor-gen] /nix/store/mzfk1sdv6bxvdh9slvddpj734ck99idi-gcc-wrapper-13.3.0/bin/strip
  170. 41.05 s [cursor-gen] Using tar found on system at:
  171. 41.05 s [cursor-gen] /nix/store/prkjsk3l0l253yn0y2zqpyjjjsnk91gw-gnutar-1.35/bin/tar
  172. 41.05 s [cursor-gen] No uhc found
  173. 41.40 s [cursor-gen] Phase: buildPhase
  174. 41.45 s [cursor-gen] Preprocessing library for cursor-gen-0.4.0.0..
  175. 41.46 s [cursor-gen] Building library for cursor-gen-0.4.0.0..
  176. 41.54 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 )
  177. 41.75 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 )
  178. 41.89 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 )
  179. 41.89 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 )
  180. 41.97 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 )
  181. 41.97 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 )
  182. 41.99 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 )
  183. 41.99 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 )
  184. 41.99 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 )
  185. 41.99 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 )
  186. 42.22 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 )
  187. 42.24 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 )
  188. 42.25 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 )
  189. 42.29 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 )
  190. 42.49 s [cursor-gen] [ 1 of 14] Compiling Cursor.List.Gen ( src/Cursor/List/Gen.hs, dist/build/Cursor/List/Gen.p_o )
  191. 42.73 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 )
  192. 42.88 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 )
  193. 42.88 s [cursor-gen] [ 4 of 14] Compiling Cursor.Map.Gen ( src/Cursor/Map/Gen.hs, dist/build/Cursor/Map/Gen.p_o )
  194. 43.02 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 )
  195. 43.02 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 )
  196. 43.11 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 )
  197. 43.11 s [cursor-gen] [ 8 of 14] Compiling Cursor.Text.Gen ( src/Cursor/Text/Gen.hs, dist/build/Cursor/Text/Gen.p_o )
  198. 43.11 s [cursor-gen] [ 9 of 14] Compiling Cursor.TextField.Gen ( src/Cursor/TextField/Gen.hs, dist/build/Cursor/TextField/Gen.p_o )
  199. 43.11 s [cursor-gen] [10 of 14] Compiling Cursor.Tree.Gen ( src/Cursor/Tree/Gen.hs, dist/build/Cursor/Tree/Gen.p_o )
  200. 43.17 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 )
  201. 43.25 s [cursor-gen] [12 of 14] Compiling Cursor.Forest.Gen ( src/Cursor/Forest/Gen.hs, dist/build/Cursor/Forest/Gen.p_o )
  202. 43.26 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 )
  203. 43.35 s [cursor-gen] [14 of 14] Compiling Paths_cursor_gen ( dist/build/autogen/Paths_cursor_gen.hs, dist/build/Paths_cursor_gen.p_o )
  204. 45.47 s [cursor-gen] Preprocessing test suite 'cursor-test' for cursor-gen-0.4.0.0..
  205. 45.47 s [cursor-gen] Building test suite 'cursor-test' for cursor-gen-0.4.0.0..
  206. 45.61 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 )
  207. 45.95 s [cursor-gen] [ 2 of 22] Compiling Cursor.ListSpec ( test/Cursor/ListSpec.hs, dist/build/cursor-test/cursor-test-tmp/Cursor/ListSpec.o )
  208. 47.05 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 )
  209. 47.07 s [cursor-gen] [ 4 of 22] Compiling Cursor.MapSpec ( test/Cursor/MapSpec.hs, dist/build/cursor-test/cursor-test-tmp/Cursor/MapSpec.o )
  210. 47.07 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 )
  211. 48.98 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 )
  212. 48.98 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 )
  213. 48.98 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 )
  214. 48.98 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 )
  215. 48.98 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 )
  216. 48.98 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 )
  217. 48.98 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 )
  218. 48.98 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 )
  219. 48.98 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 )
  220. 48.98 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 )
  221. 48.98 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 )
  222. 48.98 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 )
  223. 48.98 s [cursor-gen] [18 of 22] Compiling Cursor.TextFieldSpec ( test/Cursor/TextFieldSpec.hs, dist/build/cursor-test/cursor-test-tmp/Cursor/TextFieldSpec.o )
  224. 48.98 s [cursor-gen] [19 of 22] Compiling Cursor.TextSpec ( test/Cursor/TextSpec.hs, dist/build/cursor-test/cursor-test-tmp/Cursor/TextSpec.o )
  225. 48.98 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 )
  226. 48.98 s [cursor-gen] [21 of 22] Compiling Main ( test/Spec.hs, dist/build/cursor-test/cursor-test-tmp/Main.o )
  227. 49.06 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 )
  228. 49.38 s [cursor-gen] [23 of 23] Linking dist/build/cursor-test/cursor-test
  229. 50.21 s [cursor-gen] Phase: checkPhase
  230. 50.23 s [cursor-gen] Running 1 test suites...
  231. 50.23 s [cursor-gen] Test suite cursor-test: RUNNING...
  232. 50.26 s [cursor-gen]
  233. 50.26 s [cursor-gen] Cursor.List
  234. 50.26 s [cursor-gen] Eq (ListCursor Bool)
  235. 50.26 s [cursor-gen] (==) :: (ListCursor Bool) -> (ListCursor Bool) -> Bool
  236. 50.26 s [cursor-gen] is reflexive for "valid (ListCursor Bool)"s [✔]
  237. 50.26 s [cursor-gen] +++ OK, passed 100 tests.
  238. 50.26 s [cursor-gen] is symmetric for "valid (ListCursor Bool)"s [✔]
  239. 50.26 s [cursor-gen] +++ OK, passed 100 tests.
  240. 50.26 s [cursor-gen] is transitive for "valid (ListCursor Bool)"s [✔]
  241. 50.26 s [cursor-gen] +++ OK, passed 100 tests.
  242. 50.26 s [cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid (ListCursor Bool)"s [✔]
  243. 50.26 s [cursor-gen] +++ OK, passed 100 tests.
  244. 50.30 s [cursor-gen] (/=) :: (ListCursor Bool) -> (ListCursor Bool) -> Bool
  245. 50.30 s [cursor-gen] is antireflexive for "valid (ListCursor Bool)"s [✔]
  246. 50.30 s [cursor-gen] +++ OK, passed 100 tests.
  247. 50.30 s [cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid (ListCursor Bool)"s [✔]
  248. 50.30 s [cursor-gen] +++ OK, passed 100 tests.
  249. 50.30 s [cursor-gen] Functor ListCursor
  250. 50.30 s [cursor-gen] fmap :: (a -> b) -> ListCursor a -> ListCursor b
  251. 50.30 s [cursor-gen] satisfies the first Fuctor law: 'fmap id == id' for "ListCursor of ints :: (ListCursor Int)" [✔]
  252. 50.30 s [cursor-gen] +++ OK, passed 100 tests.
  253. 50.30 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)" [✔]
  254. 50.30 s [cursor-gen] +++ OK, passed 100 tests.
  255. 50.30 s [cursor-gen] (<$) :: a -> ListCursor b -> ListCursor a
  256. 50.30 s [cursor-gen] is equivalent to its default implementation for "int :: Int" and "ListCursor of ints :: (ListCursor Int)" [✔]
  257. 50.30 s [cursor-gen] +++ OK, passed 100 tests.
  258. 50.30 s [cursor-gen] GenValid (ListCursor Bool)
  259. 50.30 s [cursor-gen] genValid :: Gen (ListCursor Bool)
  260. 50.30 s [cursor-gen] only generates valid '(ListCursor Bool)'s [✔]
  261. 50.30 s [cursor-gen] +++ OK, passed 100 tests.
  262. 50.30 s [cursor-gen] emptyListCursor
  263. 50.30 s [cursor-gen] is valid [✔]
  264. 50.30 s [cursor-gen] makeListCursor
  265. 50.30 s [cursor-gen] produces valid list cursors [✔]
  266. 50.30 s [cursor-gen] +++ OK, passed 100 tests.
  267. 50.30 s [cursor-gen] makeListCursorWithSelection
  268. 50.30 s [cursor-gen] produces valid list cursors [✔]
  269. 50.30 s [cursor-gen] +++ OK, passed 100 tests.
  270. 50.30 s [cursor-gen] rebuildListCursor
  271. 50.30 s [cursor-gen] produces valid lists [✔]
  272. 50.30 s [cursor-gen] +++ OK, passed 100 tests.
  273. 50.30 s [cursor-gen] is the inverse of makeListCursor [✔]
  274. 50.30 s [cursor-gen] +++ OK, passed 100 tests.
  275. 50.31 s [cursor-gen] is the inverse of makeListCursorWithSelection for any index [✔]
  276. 50.31 s [cursor-gen] +++ OK, passed 100 tests.
  277. 50.31 s [cursor-gen] listCursorNull
  278. 50.31 s [cursor-gen] produces valid bools [✔]
  279. 50.31 s [cursor-gen] +++ OK, passed 100 tests.
  280. 50.31 s [cursor-gen] listCursorLength
  281. 50.31 s [cursor-gen] produces valid bools [✔]
  282. 50.31 s [cursor-gen] +++ OK, passed 100 tests.
  283. 50.31 s [cursor-gen] listCursorIndex
  284. 50.31 s [cursor-gen] produces valid indices [✔]
  285. 50.31 s [cursor-gen] +++ OK, passed 100 tests.
  286. 50.31 s [cursor-gen] listCursorSelectPrev
  287. 50.31 s [cursor-gen] produces valid cursors [✔]
  288. 50.31 s [cursor-gen] +++ OK, passed 100 tests.
  289. 50.31 s [cursor-gen] is a movement [✔]
  290. 50.31 s [cursor-gen] +++ OK, passed 100 tests.
  291. 50.31 s [cursor-gen] selects the previous position [‐]
  292. 50.31 s [cursor-gen] # PENDING: No reason given
  293. 50.31 s [cursor-gen] listCursorSelectNext
  294. 50.31 s [cursor-gen] produces valid cursors [✔]
  295. 50.31 s [cursor-gen] +++ OK, passed 100 tests.
  296. 50.31 s [cursor-gen] is a movement [✔]
  297. 50.31 s [cursor-gen] +++ OK, passed 100 tests.
  298. 50.31 s [cursor-gen] selects the next position [‐]
  299. 50.31 s [cursor-gen] # PENDING: No reason given
  300. 50.31 s [cursor-gen] listCursorSelectIndex
  301. 50.31 s [cursor-gen] produces valid cursors [✔]
  302. 50.31 s [cursor-gen] +++ OK, passed 100 tests.
  303. 50.42 s [cursor-gen] is a movement [✔]
  304. 50.42 s [cursor-gen] +++ OK, passed 100 tests.
  305. 50.42 s [cursor-gen] selects the position at the given index [‐]
  306. 50.42 s [cursor-gen] # PENDING: No reason given
  307. 50.42 s [cursor-gen] listCursorPrevItem
  308. 50.42 s [cursor-gen] produces valid items [✔]
  309. 50.42 s [cursor-gen] +++ OK, passed 100 tests.
  310. 50.42 s [cursor-gen] returns the item before the position [‐]
  311. 50.42 s [cursor-gen] # PENDING: No reason given
  312. 50.42 s [cursor-gen] listCursorNextItem
  313. 50.42 s [cursor-gen] produces valid items [✔]
  314. 50.42 s [cursor-gen] +++ OK, passed 100 tests.
  315. 50.42 s [cursor-gen] returns the item after the position [‐]
  316. 50.42 s [cursor-gen] # PENDING: No reason given
  317. 50.42 s [cursor-gen] listCursorPrevUntil
  318. 50.42 s [cursor-gen] produces valid cursors [✔]
  319. 50.42 s [cursor-gen] +++ OK, passed 100 tests.
  320. 50.42 s [cursor-gen] produces a cursor where the previous item either satisfies the predicate or is empty [✔]
  321. 50.42 s [cursor-gen] +++ OK, passed 100 tests.
  322. 50.42 s [cursor-gen] listCursorNextUntil
  323. 50.42 s [cursor-gen] produces valid cursors [✔]
  324. 50.42 s [cursor-gen] +++ OK, passed 100 tests.
  325. 50.43 s [cursor-gen] produces a cursor where the previous item either satisfies the predicate or is empty [✔]
  326. 50.43 s [cursor-gen] +++ OK, passed 100 tests.
  327. 50.43 s [cursor-gen] listCursorSelectStart
  328. 50.43 s [cursor-gen] produces valid cursors [✔]
  329. 50.43 s [cursor-gen] +++ OK, passed 100 tests.
  330. 50.48 s [cursor-gen] is a movement [✔]
  331. 50.48 s [cursor-gen] +++ OK, passed 100 tests.
  332. 50.49 s [cursor-gen] is idempotent [✔]
  333. 50.49 s [cursor-gen] +++ OK, passed 100 tests.
  334. 50.49 s [cursor-gen] selects the starting position [‐]
  335. 50.49 s [cursor-gen] # PENDING: No reason given
  336. 50.50 s [cursor-gen] listCursorSelectEnd
  337. 50.51 s [cursor-gen] produces valid cursors [✔]
  338. 50.51 s [cursor-gen] +++ OK, passed 100 tests.
  339. 50.51 s [cursor-gen] is a movement [✔]
  340. 50.51 s [cursor-gen] +++ OK, passed 100 tests.
  341. 50.52 s [cursor-gen] is idempotent [✔]
  342. 50.52 s [cursor-gen] +++ OK, passed 100 tests.
  343. 50.52 s [cursor-gen] selects the end position [‐]
  344. 50.52 s [cursor-gen] # PENDING: No reason given
  345. 50.52 s [cursor-gen] listCursorInsert
  346. 50.53 s [cursor-gen] produces valids [✔]
  347. 50.53 s [cursor-gen] +++ OK, passed 100 tests.
  348. 50.53 s [cursor-gen] inserts an item before the cursor [‐]
  349. 50.53 s [cursor-gen] # PENDING: No reason given
  350. 50.53 s [cursor-gen] listCursorAppend
  351. 50.53 s [cursor-gen] produces valids [✔]
  352. 50.53 s [cursor-gen] +++ OK, passed 100 tests.
  353. 50.53 s [cursor-gen] inserts an item after the cursor [‐]
  354. 50.53 s [cursor-gen] # PENDING: No reason given
  355. 50.53 s [cursor-gen] listCursorInsertList
  356. 50.53 s [cursor-gen] produces valids [✔]
  357. 50.53 s [cursor-gen] +++ OK, passed 100 tests.
  358. 50.53 s [cursor-gen] listCursorAppendList
  359. 50.53 s [cursor-gen] produces valids [✔]
  360. 50.53 s [cursor-gen] +++ OK, passed 100 tests.
  361. 50.53 s [cursor-gen] listCursorRemove
  362. 50.53 s [cursor-gen] produces valids [✔]
  363. 50.53 s [cursor-gen] +++ OK, passed 100 tests.
  364. 50.53 s [cursor-gen] removes an item before the cursor [‐]
  365. 50.53 s [cursor-gen] # PENDING: No reason given
  366. 50.53 s [cursor-gen] listCursorDelete
  367. 50.53 s [cursor-gen] produces valids [✔]
  368. 50.53 s [cursor-gen] +++ OK, passed 100 tests.
  369. 50.53 s [cursor-gen] removes an item before the cursor [‐]
  370. 50.53 s [cursor-gen] # PENDING: No reason given
  371. 50.53 s [cursor-gen] listCursorSplit
  372. 50.53 s [cursor-gen] produces valids [✔]
  373. 50.53 s [cursor-gen] +++ OK, passed 100 tests.
  374. 50.53 s [cursor-gen] produces two list cursors that rebuild to the rebuilding of the original [✔]
  375. 50.53 s [cursor-gen] +++ OK, passed 100 tests.
  376. 50.53 s [cursor-gen] listCursorCombine
  377. 50.53 s [cursor-gen] produces valids [✔]
  378. 50.53 s [cursor-gen] +++ OK, passed 100 tests.
  379. 50.53 s [cursor-gen] produces a list that rebuilds to the rebuilding of the original two cursors [✔]
  380. 50.53 s [cursor-gen] +++ OK, passed 100 tests.
  381. 50.53 s [cursor-gen] Cursor.List.NonEmpty
  382. 50.53 s [cursor-gen] nonemptyPrepend
  383. 50.53 s [cursor-gen] is equivalent to regular prepend [✔]
  384. 50.53 s [cursor-gen] +++ OK, passed 100 tests.
  385. 50.53 s [cursor-gen] nonemptyAppend
  386. 50.72 s [cursor-gen] is equivalent to regular append [✔]
  387. 50.72 s [cursor-gen] +++ OK, passed 100 tests.
  388. 50.72 s [cursor-gen] Cursor.Map
  389. 50.72 s [cursor-gen] Eq (MapCursor Bool Bool Bool Bool)
  390. 50.72 s [cursor-gen] (==) :: (MapCursor Bool Bool Bool Bool) -> (MapCursor Bool Bool Bool Bool) -> Bool
  391. 50.72 s [cursor-gen] is reflexive for "valid (MapCursor Bool Bool Bool Bool)"s [✔]
  392. 50.72 s [cursor-gen] +++ OK, passed 100 tests.
  393. 50.72 s [cursor-gen] is symmetric for "valid (MapCursor Bool Bool Bool Bool)"s [✔]
  394. 50.72 s [cursor-gen] +++ OK, passed 100 tests.
  395. 50.72 s [cursor-gen] is transitive for "valid (MapCursor Bool Bool Bool Bool)"s [✔]
  396. 50.72 s [cursor-gen] +++ OK, passed 100 tests.
  397. 50.72 s [cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid (MapCursor Bool Bool Bool Bool)"s [✔]
  398. 50.72 s [cursor-gen] +++ OK, passed 100 tests.
  399. 50.72 s [cursor-gen] (/=) :: (MapCursor Bool Bool Bool Bool) -> (MapCursor Bool Bool Bool Bool) -> Bool
  400. 50.72 s [cursor-gen] is antireflexive for "valid (MapCursor Bool Bool Bool Bool)"s [✔]
  401. 50.72 s [cursor-gen] +++ OK, passed 100 tests.
  402. 50.72 s [cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid (MapCursor Bool Bool Bool Bool)"s [✔]
  403. 50.72 s [cursor-gen] +++ OK, passed 100 tests.
  404. 50.72 s [cursor-gen] GenValid (MapCursor Bool Bool Bool Bool)
  405. 50.72 s [cursor-gen] genValid :: Gen (MapCursor Bool Bool Bool Bool)
  406. 50.72 s [cursor-gen] only generates valid '(MapCursor Bool Bool Bool Bool)'s [✔]
  407. 50.72 s [cursor-gen] +++ OK, passed 100 tests.
  408. 50.72 s [cursor-gen] Cursor.Map.KeyValue
  409. 50.72 s [cursor-gen] Eq (KeyValueCursor Bool Bool Bool Bool)
  410. 50.72 s [cursor-gen] (==) :: (KeyValueCursor Bool Bool Bool Bool) -> (KeyValueCursor Bool Bool Bool Bool) -> Bool
  411. 50.72 s [cursor-gen] is reflexive for "valid (KeyValueCursor Bool Bool Bool Bool)"s [✔]
  412. 50.72 s [cursor-gen] +++ OK, passed 100 tests.
  413. 50.72 s [cursor-gen] is symmetric for "valid (KeyValueCursor Bool Bool Bool Bool)"s [✔]
  414. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  415. 50.73 s [cursor-gen] is transitive for "valid (KeyValueCursor Bool Bool Bool Bool)"s [✔]
  416. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  417. 50.73 s [cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid (KeyValueCursor Bool Bool Bool Bool)"s [✔]
  418. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  419. 50.73 s [cursor-gen] (/=) :: (KeyValueCursor Bool Bool Bool Bool) -> (KeyValueCursor Bool Bool Bool Bool) -> Bool
  420. 50.73 s [cursor-gen] is antireflexive for "valid (KeyValueCursor Bool Bool Bool Bool)"s [✔]
  421. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  422. 50.73 s [cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid (KeyValueCursor Bool Bool Bool Bool)"s [✔]
  423. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  424. 50.73 s [cursor-gen] GenValid (KeyValueCursor Bool Bool Bool Bool)
  425. 50.73 s [cursor-gen] genValid :: Gen (KeyValueCursor Bool Bool Bool Bool)
  426. 50.73 s [cursor-gen] only generates valid '(KeyValueCursor Bool Bool Bool Bool)'s [✔]
  427. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  428. 50.73 s [cursor-gen] Eq KeyValueToggle
  429. 50.73 s [cursor-gen] (==) :: KeyValueToggle -> KeyValueToggle -> Bool
  430. 50.73 s [cursor-gen] is reflexive for "valid KeyValueToggle"s [✔]
  431. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  432. 50.73 s [cursor-gen] is symmetric for "valid KeyValueToggle"s [✔]
  433. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  434. 50.73 s [cursor-gen] is transitive for "valid KeyValueToggle"s [✔]
  435. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  436. 50.73 s [cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid KeyValueToggle"s [✔]
  437. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  438. 50.73 s [cursor-gen] (/=) :: KeyValueToggle -> KeyValueToggle -> Bool
  439. 50.73 s [cursor-gen] is antireflexive for "valid KeyValueToggle"s [✔]
  440. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  441. 50.73 s [cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid KeyValueToggle"s [✔]
  442. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  443. 50.73 s [cursor-gen] GenValid KeyValueToggle
  444. 50.73 s [cursor-gen] genValid :: Gen KeyValueToggle
  445. 50.73 s [cursor-gen] only generates valid 'KeyValueToggle's [✔]
  446. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  447. 50.73 s [cursor-gen] Cursor.Simple.Forest
  448. 50.73 s [cursor-gen] Eq (ForestCursor Int Int)
  449. 50.73 s [cursor-gen] (==) :: (ForestCursor Int Int) -> (ForestCursor Int Int) -> Bool
  450. 50.73 s [cursor-gen] is reflexive for "valid (ForestCursor Int Int)"s [✔]
  451. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  452. 50.73 s [cursor-gen] is symmetric for "valid (ForestCursor Int Int)"s [✔]
  453. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  454. 50.73 s [cursor-gen] is transitive for "valid (ForestCursor Int Int)"s [✔]
  455. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  456. 50.73 s [cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid (ForestCursor Int Int)"s [✔]
  457. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  458. 50.73 s [cursor-gen] (/=) :: (ForestCursor Int Int) -> (ForestCursor Int Int) -> Bool
  459. 50.73 s [cursor-gen] is antireflexive for "valid (ForestCursor Int Int)"s [✔]
  460. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  461. 50.73 s [cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid (ForestCursor Int Int)"s [✔]
  462. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  463. 50.73 s [cursor-gen] GenValid (ForestCursor Bool Bool)
  464. 50.73 s [cursor-gen] genValid :: Gen (ForestCursor Bool Bool)
  465. 50.73 s [cursor-gen] only generates valid '(ForestCursor Bool Bool)'s [✔]
  466. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  467. 50.73 s [cursor-gen] shrinkValid :: (ForestCursor Bool Bool -> [ForestCursor Bool Bool])
  468. 50.73 s [cursor-gen] preserves validity for the first 10 elements [✔]
  469. 50.73 s [cursor-gen] +++ OK, passed 50 tests.
  470. 50.73 s [cursor-gen] never shrinks to itself for valid values for the first 10 elements [✔]
  471. 50.73 s [cursor-gen] +++ OK, passed 50 tests.
  472. 50.73 s [cursor-gen] singletonForestCursor
  473. 50.73 s [cursor-gen] produces valid cursors [✔]
  474. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  475. 50.73 s [cursor-gen] makeForestCursor
  476. 50.73 s [cursor-gen] produces valid cursors [✔]
  477. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  478. 50.73 s [cursor-gen] rebuildForestCursor
  479. 50.73 s [cursor-gen] produces valid forests [✔]
  480. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  481. 50.73 s [cursor-gen] is the inverse of makeForestCursor for integers [✔]
  482. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  483. 50.73 s [cursor-gen] forestCursorLestCursorL
  484. 50.73 s [cursor-gen] satisfies the first lens law for valid values and valid values [✔]
  485. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  486. 50.73 s [cursor-gen] satisfies the second lens law for valid values [✔]
  487. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  488. 50.73 s [cursor-gen] satisfies the third lens law for valid values and valid values [✔]
  489. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  490. 50.73 s [cursor-gen] gets valid values from valid values values [✔]
  491. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  492. 50.73 s [cursor-gen] produces valid values when it is used to set valid values values on valid values values [✔]
  493. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  494. 50.73 s [cursor-gen] forestCursorSelectedTreeL
  495. 50.73 s [cursor-gen] satisfies the first lens law for valid values and valid values [✔]
  496. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  497. 50.73 s [cursor-gen] satisfies the second lens law for valid values [✔]
  498. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  499. 50.73 s [cursor-gen] satisfies the third lens law for valid values and valid values [✔]
  500. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  501. 50.73 s [cursor-gen] gets valid values from valid values values [✔]
  502. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  503. 50.73 s [cursor-gen] produces valid values when it is used to set valid values values on valid values values [✔]
  504. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  505. 50.73 s [cursor-gen] forestCursorSelection
  506. 50.73 s [cursor-gen] produces valid ints [✔]
  507. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  508. 50.73 s [cursor-gen] returns the index of the currently selected element [‐]
  509. 50.73 s [cursor-gen] # PENDING: No reason given
  510. 50.73 s [cursor-gen] forestCursorSelectIndex
  511. 50.73 s [cursor-gen] produces valid cursors [✔]
  512. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  513. 50.73 s [cursor-gen] is the identity function when given the current selection [✔]
  514. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  515. 50.73 s [cursor-gen] returns selects the element at the given index [‐]
  516. 50.73 s [cursor-gen] # PENDING: No reason given
  517. 50.73 s [cursor-gen] forestCursorSelectPrevTreeCursor
  518. 50.73 s [cursor-gen] produces valid cursors [✔]
  519. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  520. 50.73 s [cursor-gen] is a movement [✔]
  521. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  522. 50.73 s [cursor-gen] selects the previous tree cursor [‐]
  523. 50.73 s [cursor-gen] # PENDING: No reason given
  524. 50.73 s [cursor-gen] forestCursorSelectNextTreeCursor
  525. 50.73 s [cursor-gen] produces valid cursors [✔]
  526. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  527. 50.73 s [cursor-gen] is a movement [✔]
  528. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  529. 50.73 s [cursor-gen] selects the next tree [‐]
  530. 50.73 s [cursor-gen] # PENDING: No reason given
  531. 50.73 s [cursor-gen] forestCursorSelectFirstTreeCursor
  532. 50.73 s [cursor-gen] produces valid cursors [✔]
  533. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  534. 50.73 s [cursor-gen] is a movement [✔]
  535. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  536. 50.73 s [cursor-gen] selects the first tree [‐]
  537. 50.73 s [cursor-gen] # PENDING: No reason given
  538. 50.73 s [cursor-gen] forestCursorSelectLastTreeCursor
  539. 50.73 s [cursor-gen] produces valid cursors [✔]
  540. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  541. 50.73 s [cursor-gen] is a movement [✔]
  542. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  543. 50.73 s [cursor-gen] selects the last tree [‐]
  544. 50.73 s [cursor-gen] # PENDING: No reason given
  545. 50.73 s [cursor-gen] forestCursorSelectPrev
  546. 50.73 s [cursor-gen] produces valid cursors [✔]
  547. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  548. 50.73 s [cursor-gen] is a movement [✔]
  549. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  550. 50.73 s [cursor-gen] selects the previous node [‐]
  551. 50.73 s [cursor-gen] # PENDING: No reason given
  552. 50.73 s [cursor-gen] Works for this classic example without any collapsing [✔]
  553. 50.73 s [cursor-gen] forestCursorSelectNext
  554. 50.73 s [cursor-gen] produces valid cursors [✔]
  555. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  556. 50.73 s [cursor-gen] is a movement [✔]
  557. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  558. 50.73 s [cursor-gen] selects the next node [‐]
  559. 50.73 s [cursor-gen] # PENDING: No reason given
  560. 50.73 s [cursor-gen] Works for this classic example [✔]
  561. 50.73 s [cursor-gen] forestCursorSelectPrevOnSameLevel
  562. 50.73 s [cursor-gen] produces valid cursors [✔]
  563. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  564. 50.73 s [cursor-gen] is a movement [✔]
  565. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  566. 50.73 s [cursor-gen] selects the previous node on the same level as the current node [‐]
  567. 50.73 s [cursor-gen] # PENDING: No reason given
  568. 50.73 s [cursor-gen] forestCursorSelectNextOnSameLevel
  569. 50.73 s [cursor-gen] produces valid cursors [✔]
  570. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  571. 50.73 s [cursor-gen] is a movement [✔]
  572. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  573. 50.73 s [cursor-gen] selects the next node on the same level as the current node [‐]
  574. 50.73 s [cursor-gen] # PENDING: No reason given
  575. 50.73 s [cursor-gen] forestCursorSelectFirstOnSameLevel
  576. 50.73 s [cursor-gen] produces valid cursors [✔]
  577. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  578. 50.73 s [cursor-gen] is a movement [✔]
  579. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  580. 50.73 s [cursor-gen] selects the previous node on the same level as the current node [‐]
  581. 50.73 s [cursor-gen] # PENDING: No reason given
  582. 50.73 s [cursor-gen] forestCursorSelectLastOnSameLevel
  583. 50.73 s [cursor-gen] produces valid cursors [✔]
  584. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  585. 50.73 s [cursor-gen] is a movement [✔]
  586. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  587. 50.73 s [cursor-gen] selects the next node on the same level as the current node [‐]
  588. 50.73 s [cursor-gen] # PENDING: No reason given
  589. 50.73 s [cursor-gen] forestCursorSelectFirst
  590. 50.73 s [cursor-gen] produces valid cursors [✔]
  591. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  592. 50.73 s [cursor-gen] is a movement [✔]
  593. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  594. 50.73 s [cursor-gen] selects the first node in the forest [‐]
  595. 50.73 s [cursor-gen] # PENDING: No reason given
  596. 50.73 s [cursor-gen] forestCursorSelectLast
  597. 50.73 s [cursor-gen] produces valid cursors [✔]
  598. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  599. 50.73 s [cursor-gen] is a movement [✔]
  600. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  601. 50.73 s [cursor-gen] selects the last node in the forest [‐]
  602. 50.73 s [cursor-gen] # PENDING: No reason given
  603. 50.73 s [cursor-gen] forestCursorSelectAbove
  604. 50.73 s [cursor-gen] produces valid cursors [✔]
  605. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  606. 50.73 s [cursor-gen] is a movement [✔]
  607. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  608. 50.73 s [cursor-gen] selects the parent [‐]
  609. 50.73 s [cursor-gen] # PENDING: No reason given
  610. 50.73 s [cursor-gen] forestCursorSelectBelowAtPos
  611. 50.73 s [cursor-gen] produces valid cursors [✔]
  612. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  613. 50.73 s [cursor-gen] is a movement for any index [✔]
  614. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  615. 50.73 s [cursor-gen] selects the child of the selected node at the given position [‐]
  616. 50.73 s [cursor-gen] # PENDING: No reason given
  617. 50.73 s [cursor-gen] forestCursorSelectBelowAtStart
  618. 50.73 s [cursor-gen] produces valid cursors [✔]
  619. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  620. 50.73 s [cursor-gen] is a movement [✔]
  621. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  622. 50.73 s [cursor-gen] selects the first child of the selected node [‐]
  623. 50.73 s [cursor-gen] # PENDING: No reason given
  624. 50.73 s [cursor-gen] forestCursorSelectBelowAtEnd
  625. 50.73 s [cursor-gen] produces valid cursors [✔]
  626. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  627. 50.73 s [cursor-gen] is a movement [✔]
  628. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  629. 50.73 s [cursor-gen] selects the first child of the selected node [‐]
  630. 50.73 s [cursor-gen] # PENDING: No reason given
  631. 50.73 s [cursor-gen] forestCursorOpenCurrentForest
  632. 50.73 s [cursor-gen] produces valid cursors [✔]
  633. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  634. 50.73 s [cursor-gen] forestCursorCloseCurrentForest
  635. 50.73 s [cursor-gen] produces valid cursors [✔]
  636. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  637. 50.73 s [cursor-gen] forestCursorToggleCurrentForest
  638. 50.73 s [cursor-gen] produces valid cursors [✔]
  639. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  640. 50.73 s [cursor-gen] forestCursorOpenCurrentForestRecursively
  641. 50.73 s [cursor-gen] produces valid cursors [✔]
  642. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  643. 50.73 s [cursor-gen] forestCursorToggleCurrentForestRecursively
  644. 50.73 s [cursor-gen] produces valid cursors [✔]
  645. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  646. 50.73 s [cursor-gen] forestCursorInsertEntireTree
  647. 50.73 s [cursor-gen] produces valid cursors [✔]
  648. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  649. 50.73 s [cursor-gen] inserts a tree cursor before the currently selected tree cursor [‐]
  650. 50.73 s [cursor-gen] # PENDING: No reason given
  651. 50.73 s [cursor-gen] forestCursorInsertAndSelectTreeCursor
  652. 50.73 s [cursor-gen] produces valid cursors [✔]
  653. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  654. 50.73 s [cursor-gen] inserts a tree cursor before the currently selected tree cursor and selects it [‐]
  655. 50.73 s [cursor-gen] # PENDING: No reason given
  656. 50.73 s [cursor-gen] forestCursorAppendEntireTree
  657. 50.73 s [cursor-gen] produces valid cursors [✔]
  658. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  659. 50.73 s [cursor-gen] appends a tree after the currently selected tree cursor [‐]
  660. 50.73 s [cursor-gen] # PENDING: No reason given
  661. 50.73 s [cursor-gen] forestCursorAppendAndSelectTreeCursor
  662. 50.73 s [cursor-gen] produces valid cursors [✔]
  663. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  664. 50.73 s [cursor-gen] appends a tree cursor after the currently selected tree cursor and selects it [‐]
  665. 50.73 s [cursor-gen] # PENDING: No reason given
  666. 50.73 s [cursor-gen] forestCursorInsertTree
  667. 50.73 s [cursor-gen] produces valid cursors [✔]
  668. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  669. 50.73 s [cursor-gen] inserts a tree before the currently selected tree [‐]
  670. 50.73 s [cursor-gen] # PENDING: No reason given
  671. 50.73 s [cursor-gen] forestCursorInsertAndSelectTree
  672. 50.73 s [cursor-gen] produces valid cursors [✔]
  673. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  674. 50.73 s [cursor-gen] inserts a tree before the currently selected tree and selects it [‐]
  675. 50.73 s [cursor-gen] # PENDING: No reason given
  676. 50.73 s [cursor-gen] forestCursorAppendTree
  677. 50.73 s [cursor-gen] produces valid cursors [✔]
  678. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  679. 50.73 s [cursor-gen] appends a tree after the currently selected tree [‐]
  680. 50.73 s [cursor-gen] # PENDING: No reason given
  681. 50.73 s [cursor-gen] forestCursorAppendAndSelectTree
  682. 50.73 s [cursor-gen] produces valid cursors [✔]
  683. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  684. 50.73 s [cursor-gen] appends a tree after the currently selected tree and selects it [‐]
  685. 50.73 s [cursor-gen] # PENDING: No reason given
  686. 50.73 s [cursor-gen] forestCursorInsert
  687. 50.73 s [cursor-gen] produces valid cursors [✔]
  688. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  689. 50.73 s [cursor-gen] inserts a node before the currently selected node [‐]
  690. 50.73 s [cursor-gen] # PENDING: No reason given
  691. 50.73 s [cursor-gen] forestCursorInsertAndSelect
  692. 50.73 s [cursor-gen] produces valid cursors [✔]
  693. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  694. 50.73 s [cursor-gen] inserts a node before the currently selected node and selects it [‐]
  695. 50.73 s [cursor-gen] # PENDING: No reason given
  696. 50.73 s [cursor-gen] forestCursorInsertNodeSingleAndSelect
  697. 50.73 s [cursor-gen] produces valid cursors [✔]
  698. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  699. 50.73 s [cursor-gen] inserts a node before the currently selected node and selects it [‐]
  700. 50.73 s [cursor-gen] # PENDING: No reason given
  701. 50.73 s [cursor-gen] forestCursorInsertNodeAndSelect
  702. 50.73 s [cursor-gen] produces valid cursors [✔]
  703. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  704. 50.73 s [cursor-gen] inserts a node before the currently selected node and selects it [‐]
  705. 50.73 s [cursor-gen] # PENDING: No reason given
  706. 50.73 s [cursor-gen] forestCursorAppend
  707. 50.73 s [cursor-gen] produces valid cursors [✔]
  708. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  709. 50.73 s [cursor-gen] appends a node after the currently selected node [‐]
  710. 50.73 s [cursor-gen] # PENDING: No reason given
  711. 50.73 s [cursor-gen] forestCursorAppendAndSelect
  712. 50.73 s [cursor-gen] produces valid cursors [✔]
  713. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  714. 50.73 s [cursor-gen] appends a node after the currently selected node and selects it [‐]
  715. 50.73 s [cursor-gen] # PENDING: No reason given
  716. 50.73 s [cursor-gen] forestCursorAppendNodeSingleAndSelect
  717. 50.73 s [cursor-gen] produces valid cursors [✔]
  718. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  719. 50.73 s [cursor-gen] appends a node after the currently selected node and selects it [‐]
  720. 50.73 s [cursor-gen] # PENDING: No reason given
  721. 50.73 s [cursor-gen] forestCursorAppendNodeAndSelect
  722. 50.73 s [cursor-gen] produces valid cursors [✔]
  723. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  724. 50.73 s [cursor-gen] appends a node after the currently selected node and selects it [‐]
  725. 50.73 s [cursor-gen] # PENDING: No reason given
  726. 50.73 s [cursor-gen] forestCursorAddChildTreeToNodeAtPos
  727. 50.73 s [cursor-gen] produces valid cursors [✔]
  728. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  729. 50.73 s [cursor-gen] adds a child tree to a node at the given position in the children of that node [‐]
  730. 50.73 s [cursor-gen] # PENDING: No reason given
  731. 50.73 s [cursor-gen] forestCursorAddChildTreeToNodeAtStart
  732. 50.73 s [cursor-gen] produces valid cursors [✔]
  733. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  734. 50.73 s [cursor-gen] adds a child tree to a node at the start the children of that node [‐]
  735. 50.73 s [cursor-gen] # PENDING: No reason given
  736. 50.73 s [cursor-gen] forestCursorAddChildTreeToNodeAtEnd
  737. 50.73 s [cursor-gen] produces valid cursors [✔]
  738. 50.73 s [cursor-gen] +++ OK, passed 100 tests.
  739. 50.73 s [cursor-gen] adds a child tree to a node at the end the children of that node [‐]
  740. 50.73 s [cursor-gen] # PENDING: No reason given
  741. 50.73 s [cursor-gen] forestCursorAddChildToNodeAtPos
  742. 50.73 s [cursor-gen] produces valid cursors [✔]
  743. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  744. 50.74 s [cursor-gen] adds a child to a node at the given position in the children of that node [‐]
  745. 50.74 s [cursor-gen] # PENDING: No reason given
  746. 50.74 s [cursor-gen] forestCursorAddChildToNodeAtStart
  747. 50.74 s [cursor-gen] produces valid cursors [✔]
  748. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  749. 50.74 s [cursor-gen] adds a child to a node at the start the children of that node [‐]
  750. 50.74 s [cursor-gen] # PENDING: No reason given
  751. 50.74 s [cursor-gen] forestCursorAddChildToNodeAtEnd
  752. 50.74 s [cursor-gen] produces valid cursors [✔]
  753. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  754. 50.74 s [cursor-gen] adds a child to a node at the end the children of that node [‐]
  755. 50.74 s [cursor-gen] # PENDING: No reason given
  756. 50.74 s [cursor-gen] forestCursorAddChildTreeToNodeAtPosAndSelect
  757. 50.74 s [cursor-gen] produces valid cursors [✔]
  758. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  759. 50.74 s [cursor-gen] adds a child tree to a node at the given position in the children of that node [‐]
  760. 50.74 s [cursor-gen] # PENDING: No reason given
  761. 50.74 s [cursor-gen] forestCursorAddChildTreeToNodeAtStartAndSelect
  762. 50.74 s [cursor-gen] produces valid cursors [✔]
  763. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  764. 50.74 s [cursor-gen] adds a child tree to a node at the start the children of that node [‐]
  765. 50.74 s [cursor-gen] # PENDING: No reason given
  766. 50.74 s [cursor-gen] forestCursorAddChildTreeToNodeAtEndAndSelect
  767. 50.74 s [cursor-gen] produces valid cursors [✔]
  768. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  769. 50.74 s [cursor-gen] adds a child tree to a node at the end the children of that node [‐]
  770. 50.74 s [cursor-gen] # PENDING: No reason given
  771. 50.74 s [cursor-gen] forestCursorAddChildToNodeAtPosAndSelect
  772. 50.74 s [cursor-gen] produces valid cursors [✔]
  773. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  774. 50.74 s [cursor-gen] adds a child to a node at the given position in the children of that node [‐]
  775. 50.74 s [cursor-gen] # PENDING: No reason given
  776. 50.74 s [cursor-gen] forestCursorAddChildToNodeAtStartAndSelect
  777. 50.74 s [cursor-gen] produces valid cursors [✔]
  778. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  779. 50.74 s [cursor-gen] adds a child to a node at the start the children of that node [‐]
  780. 50.74 s [cursor-gen] # PENDING: No reason given
  781. 50.74 s [cursor-gen] forestCursorAddChildToNodeAtEndAndSelect
  782. 50.74 s [cursor-gen] produces valid cursors [✔]
  783. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  784. 50.74 s [cursor-gen] adds a child to a node at the end the children of that node [‐]
  785. 50.74 s [cursor-gen] # PENDING: No reason given
  786. 50.74 s [cursor-gen] forestCursorAddChildNodeSingleToNodeAtPosAndSelect
  787. 50.74 s [cursor-gen] produces valid cursors [✔]
  788. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  789. 50.74 s [cursor-gen] forestCursorAddChildNodeSingleToNodeAtStartAndSelect
  790. 50.74 s [cursor-gen] produces valid cursors [✔]
  791. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  792. 50.74 s [cursor-gen] forestCursorAddChildNodeSingleToNodeAtEndAndSelect
  793. 50.74 s [cursor-gen] produces valid cursors [✔]
  794. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  795. 50.74 s [cursor-gen] forestCursorAddChildNodeToNodeAtPosAndSelect
  796. 50.74 s [cursor-gen] produces valid cursors [✔]
  797. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  798. 50.74 s [cursor-gen] forestCursorAddChildNodeToNodeAtStartAndSelect
  799. 50.74 s [cursor-gen] produces valid cursors [✔]
  800. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  801. 50.74 s [cursor-gen] forestCursorAddChildNodeToNodeAtEndAndSelect
  802. 50.74 s [cursor-gen] produces valid cursors [✔]
  803. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  804. 50.74 s [cursor-gen] forestCursorAddRoot
  805. 50.74 s [cursor-gen] produces valid cursors [✔]
  806. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  807. 50.74 s [cursor-gen] houses the entire forest under the given node [‐]
  808. 50.74 s [cursor-gen] # PENDING: No reason given
  809. 50.74 s [cursor-gen] forestCursorSwapPrev
  810. 50.74 s [cursor-gen] produces valid cursors [✔]
  811. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  812. 50.74 s [cursor-gen] works on the example from the docs [✔]
  813. 50.74 s [cursor-gen] swaps the current node with the previous node on the same level [‐]
  814. 50.74 s [cursor-gen] # PENDING: No reason given
  815. 50.74 s [cursor-gen] reverts forestCursorSwapNext [✔]
  816. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  817. 50.74 s [cursor-gen] forestCursorSwapNext
  818. 50.74 s [cursor-gen] produces valid cursors [✔]
  819. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  820. 50.74 s [cursor-gen] works on the example from the docs [✔]
  821. 50.74 s [cursor-gen] swaps the current node with the next node on the same level [‐]
  822. 50.74 s [cursor-gen] # PENDING: No reason given
  823. 50.74 s [cursor-gen] reverts forestCursorSwapPrev [✔]
  824. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  825. 50.74 s [cursor-gen] forestCursorRemoveElemAndSelectPrev
  826. 50.74 s [cursor-gen] produces valid cursors [✔]
  827. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  828. 50.74 s [cursor-gen] works for this simple example [✔]
  829. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  830. 50.74 s [cursor-gen] removes the selected element and selects the previous element [‐]
  831. 50.74 s [cursor-gen] # PENDING: No reason given
  832. 50.74 s [cursor-gen] forestCursorDeleteElemAndSelectNext
  833. 50.74 s [cursor-gen] produces valid cursors [✔]
  834. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  835. 50.74 s [cursor-gen] works for this simple example [✔]
  836. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  837. 50.74 s [cursor-gen] deletes the selected element and selects the next element [‐]
  838. 50.74 s [cursor-gen] # PENDING: No reason given
  839. 50.74 s [cursor-gen] forestCursorRemoveElem
  840. 50.74 s [cursor-gen] produces valid cursors [✔]
  841. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  842. 50.74 s [cursor-gen] works for this simple example [✔]
  843. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  844. 50.74 s [cursor-gen] removes the selected element [‐]
  845. 50.74 s [cursor-gen] # PENDING: No reason given
  846. 50.74 s [cursor-gen] forestCursorDeleteElem
  847. 50.74 s [cursor-gen] produces valid cursors [✔]
  848. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  849. 50.74 s [cursor-gen] works for this simple example [✔]
  850. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  851. 50.74 s [cursor-gen] deletes the selected element [‐]
  852. 50.74 s [cursor-gen] # PENDING: No reason given
  853. 50.74 s [cursor-gen] forestCursorRemoveSubTreeAndSelectPrev
  854. 50.74 s [cursor-gen] produces valid cursors [✔]
  855. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  856. 50.74 s [cursor-gen] removes the selected subtree and selects the previous tree [‐]
  857. 50.74 s [cursor-gen] # PENDING: No reason given
  858. 50.74 s [cursor-gen] forestCursorDeleteSubTreeAndSelectNext
  859. 50.74 s [cursor-gen] produces valid cursors [✔]
  860. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  861. 50.74 s [cursor-gen] deletes the selected subtree and selects the next tree [‐]
  862. 50.74 s [cursor-gen] # PENDING: No reason given
  863. 50.74 s [cursor-gen] forestCursorRemoveSubTree
  864. 50.74 s [cursor-gen] produces valid cursors [✔]
  865. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  866. 50.74 s [cursor-gen] removes the selected subtree [‐]
  867. 50.74 s [cursor-gen] # PENDING: No reason given
  868. 50.74 s [cursor-gen] forestCursorDeleteSubTree
  869. 50.74 s [cursor-gen] produces valid cursors [✔]
  870. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  871. 50.74 s [cursor-gen] deletes the selected subtree [‐]
  872. 50.74 s [cursor-gen] # PENDING: No reason given
  873. 50.74 s [cursor-gen] forestCursorPromoteElem
  874. 50.74 s [cursor-gen] produces valids on valids [✔]
  875. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  876. 50.74 s [cursor-gen] works on the example from the documentation [✔]
  877. 50.74 s [cursor-gen] promotes the current node to the level of its parent [‐]
  878. 50.74 s [cursor-gen] # PENDING: No reason given
  879. 50.74 s [cursor-gen] forestCursorDemoteElem
  880. 50.74 s [cursor-gen] produces valids on valids [✔]
  881. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  882. 50.74 s [cursor-gen] works on the example from the documentation [✔]
  883. 50.74 s [cursor-gen] demotes the current node to the level of its children [‐]
  884. 50.74 s [cursor-gen] # PENDING: No reason given
  885. 50.74 s [cursor-gen] forestCursorPromoteSubTree
  886. 50.74 s [cursor-gen] produces valids on valids [✔]
  887. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  888. 50.74 s [cursor-gen] works on the example from the documentation [✔]
  889. 50.74 s [cursor-gen] promotes the current subtree to the level of its parent [‐]
  890. 50.74 s [cursor-gen] # PENDING: No reason given
  891. 50.74 s [cursor-gen] forestCursorDemoteSubTree
  892. 50.74 s [cursor-gen] produces valids on valids [✔]
  893. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  894. 50.74 s [cursor-gen] works on the example from the documentation [✔]
  895. 50.74 s [cursor-gen] demotes the current subtree to the level of its children [‐]
  896. 50.74 s [cursor-gen] # PENDING: No reason given
  897. 50.74 s [cursor-gen] forestCursorDemoteElemUnder
  898. 50.74 s [cursor-gen] produces valids on valids [✔]
  899. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  900. 50.74 s [cursor-gen] Works on the example from the docs [✔]
  901. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  902. 50.74 s [cursor-gen] demotes the current node to the level of its children [‐]
  903. 50.74 s [cursor-gen] # PENDING: No reason given
  904. 50.74 s [cursor-gen] forestCursorDemoteSubTreeUnder
  905. 50.74 s [cursor-gen] produces valids on valids [✔]
  906. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  907. 50.74 s [cursor-gen] Works on the example from the docs [✔]
  908. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  909. 50.74 s [cursor-gen] demotes the current subtree to the level of its children, by adding a root [‐]
  910. 50.74 s [cursor-gen] # PENDING: No reason given
  911. 50.74 s [cursor-gen] Cursor.Simple.List.NonEmpty
  912. 50.74 s [cursor-gen] Eq (NonEmptyCursor Bool Bool)
  913. 50.74 s [cursor-gen] (==) :: (NonEmptyCursor Bool Bool) -> (NonEmptyCursor Bool Bool) -> Bool
  914. 50.74 s [cursor-gen] is reflexive for "valid (NonEmptyCursor Bool Bool)"s [✔]
  915. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  916. 50.74 s [cursor-gen] is symmetric for "valid (NonEmptyCursor Bool Bool)"s [✔]
  917. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  918. 50.74 s [cursor-gen] is transitive for "valid (NonEmptyCursor Bool Bool)"s [✔]
  919. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  920. 50.74 s [cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid (NonEmptyCursor Bool Bool)"s [✔]
  921. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  922. 50.74 s [cursor-gen] (/=) :: (NonEmptyCursor Bool Bool) -> (NonEmptyCursor Bool Bool) -> Bool
  923. 50.74 s [cursor-gen] is antireflexive for "valid (NonEmptyCursor Bool Bool)"s [✔]
  924. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  925. 50.74 s [cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid (NonEmptyCursor Bool Bool)"s [✔]
  926. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  927. 50.74 s [cursor-gen] GenValid (NonEmptyCursor Bool Bool)
  928. 50.74 s [cursor-gen] genValid :: Gen (NonEmptyCursor Bool Bool)
  929. 50.74 s [cursor-gen] only generates valid '(NonEmptyCursor Bool Bool)'s [✔]
  930. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  931. 50.74 s [cursor-gen] makeNonEmptyCursor
  932. 50.74 s [cursor-gen] produces valid cursors [✔]
  933. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  934. 50.74 s [cursor-gen] makeNonEmptyCursorWithSelection
  935. 50.74 s [cursor-gen] produces valid cursors [✔]
  936. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  937. 50.74 s [cursor-gen] is the inverse of rebuildNonEmptyCursor when using the current selection [✔]
  938. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  939. 50.74 s [cursor-gen] singletonNonEmptyCursor
  940. 50.74 s [cursor-gen] produces valid cursors [✔]
  941. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  942. 50.74 s [cursor-gen] rebuildNonEmptyCursor
  943. 50.74 s [cursor-gen] produces valid nonempty lists [✔]
  944. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  945. 50.74 s [cursor-gen] is the inverse of makeNonEmptyCursor for integers [✔]
  946. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  947. 50.74 s [cursor-gen] is the inverse of makeNonEmptyCursorWithSelection for integers, for any index [✔]
  948. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  949. 50.74 s [cursor-gen] nonEmptyCursorElemL
  950. 50.74 s [cursor-gen] satisfies the first lens law for valid values and valid values [✔]
  951. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  952. 50.74 s [cursor-gen] satisfies the second lens law for valid values [✔]
  953. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  954. 50.74 s [cursor-gen] satisfies the third lens law for valid values and valid values [✔]
  955. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  956. 50.74 s [cursor-gen] gets valid values from valid values values [✔]
  957. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  958. 50.74 s [cursor-gen] produces valid values when it is used to set valid values values on valid values values [✔]
  959. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  960. 50.74 s [cursor-gen] nonEmptyCursorSelectPrev
  961. 50.74 s [cursor-gen] produces valid cursors [✔]
  962. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  963. 50.74 s [cursor-gen] is a movement [✔]
  964. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  965. 50.74 s [cursor-gen] selects the previous element [‐]
  966. 50.74 s [cursor-gen] # PENDING: No reason given
  967. 50.74 s [cursor-gen] nonEmptyCursorSelectNext
  968. 50.74 s [cursor-gen] produces valid cursors [✔]
  969. 50.74 s [cursor-gen] +++ OK, passed 100 tests.
  970. 51.36 s [cursor-gen] is a movement [✔]
  971. 51.36 s [cursor-gen] +++ OK, passed 100 tests.
  972. 51.36 s [cursor-gen] selects the next element [‐]
  973. 51.36 s [cursor-gen] # PENDING: No reason given
  974. 51.36 s [cursor-gen] nonEmptyCursorSelectFirst
  975. 51.36 s [cursor-gen] produces valid cursors [✔]
  976. 51.36 s [cursor-gen] +++ OK, passed 100 tests.
  977. 51.36 s [cursor-gen] is a movement [✔]
  978. 51.36 s [cursor-gen] +++ OK, passed 100 tests.
  979. 51.36 s [cursor-gen] is idempotent [✔]
  980. 51.36 s [cursor-gen] +++ OK, passed 100 tests.
  981. 51.36 s [cursor-gen] selects the first element [‐]
  982. 51.36 s [cursor-gen] # PENDING: No reason given
  983. 51.36 s [cursor-gen] nonEmptyCursorSelectLast
  984. 51.36 s [cursor-gen] produces valid cursors [✔]
  985. 51.36 s [cursor-gen] +++ OK, passed 100 tests.
  986. 51.36 s [cursor-gen] is a movement [✔]
  987. 51.36 s [cursor-gen] +++ OK, passed 100 tests.
  988. 51.36 s [cursor-gen] is idempotent [✔]
  989. 51.36 s [cursor-gen] +++ OK, passed 100 tests.
  990. 51.36 s [cursor-gen] selects the last element [‐]
  991. 51.36 s [cursor-gen] # PENDING: No reason given
  992. 51.36 s [cursor-gen] nonEmptyCursorSelection
  993. 51.36 s [cursor-gen] produces valid ints [✔]
  994. 51.36 s [cursor-gen] +++ OK, passed 100 tests.
  995. 51.36 s [cursor-gen] returns the index of the currently selected element [‐]
  996. 51.36 s [cursor-gen] # PENDING: No reason given
  997. 51.36 s [cursor-gen] nonEmptyCursorSelectIndex
  998. 51.36 s [cursor-gen] produces valid cursors [✔]
  999. 51.36 s [cursor-gen] +++ OK, passed 100 tests.
  1000. 51.36 s [cursor-gen] is the identity function when given the current selection [✔]
  1001. 51.36 s [cursor-gen] +++ OK, passed 100 tests.
  1002. 51.36 s [cursor-gen] returns selects the element at the given index [‐]
  1003. 51.36 s [cursor-gen] # PENDING: No reason given
  1004. 51.36 s [cursor-gen] nonEmptyCursorInsert
  1005. 53.03 s [cursor-gen] produces valid cursors [✔]
  1006. 53.03 s [cursor-gen] +++ OK, passed 100 tests.
  1007. 53.03 s [cursor-gen] inserts a character before the cursor [‐]
  1008. 53.12 s [cursor-gen] # PENDING: No reason given
  1009. 53.12 s [cursor-gen] nonEmptyCursorAppend
  1010. 53.12 s [cursor-gen] produces valid cursors [✔]
  1011. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1012. 53.12 s [cursor-gen] inserts a character after the cursor [‐]
  1013. 53.12 s [cursor-gen] # PENDING: No reason given
  1014. 53.12 s [cursor-gen] nonEmptyCursorInsertAndSelect
  1015. 53.12 s [cursor-gen] produces valid cursors [✔]
  1016. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1017. 53.12 s [cursor-gen] inserts a character before the cursor and selects it [‐]
  1018. 53.12 s [cursor-gen] # PENDING: No reason given
  1019. 53.12 s [cursor-gen] nonEmptyCursorAppendAndSelect
  1020. 53.12 s [cursor-gen] produces valid cursors [✔]
  1021. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1022. 53.12 s [cursor-gen] appends a character before the cursor and selects it [‐]
  1023. 53.12 s [cursor-gen] # PENDING: No reason given
  1024. 53.12 s [cursor-gen] nonEmptyCursorInsertAtStart
  1025. 53.12 s [cursor-gen] produces valid cursors [✔]
  1026. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1027. 53.12 s [cursor-gen] inserts a character at the start of the list [‐]
  1028. 53.12 s [cursor-gen] # PENDING: No reason given
  1029. 53.12 s [cursor-gen] nonEmptyCursorAppendAtEnd
  1030. 53.12 s [cursor-gen] produces valid cursors [✔]
  1031. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1032. 53.12 s [cursor-gen] inserts a character at the end of the list [‐]
  1033. 53.12 s [cursor-gen] # PENDING: No reason given
  1034. 53.12 s [cursor-gen] nonEmptyCursorInsertAtStartAndSelect
  1035. 53.12 s [cursor-gen] produces valid cursors [✔]
  1036. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1037. 53.12 s [cursor-gen] inserts a character at the start of the list and selects it [‐]
  1038. 53.12 s [cursor-gen] # PENDING: No reason given
  1039. 53.12 s [cursor-gen] nonEmptyCursorAppendAtEndAndSelect
  1040. 53.12 s [cursor-gen] produces valid cursors [✔]
  1041. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1042. 53.12 s [cursor-gen] appends a character at the end of the list and selects it [‐]
  1043. 53.12 s [cursor-gen] # PENDING: No reason given
  1044. 53.12 s [cursor-gen] nonEmptyCursorRemoveElem
  1045. 53.12 s [cursor-gen] produces valid cursors [✔]
  1046. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1047. 53.12 s [cursor-gen] removes an element [‐]
  1048. 53.12 s [cursor-gen] # PENDING: No reason given
  1049. 53.12 s [cursor-gen] nonEmptyCursorDeleteElem
  1050. 53.12 s [cursor-gen] produces valid cursors [✔]
  1051. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1052. 53.12 s [cursor-gen] nonEmptyCursorSearch
  1053. 53.12 s [cursor-gen] produces valid cursors when looking for an equal element [✔]
  1054. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1055. 53.12 s [cursor-gen] is indeed the right value when it finds a value and is looking for an equal element [✔]
  1056. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1057. 53.12 s [cursor-gen] finds an element if it is in there [✔]
  1058. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1059. 53.12 s [cursor-gen] nonEmptyCursorSelectOrAdd
  1060. 53.12 s [cursor-gen] produces valid cursors when looking for an equal element [✔]
  1061. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1062. 53.12 s [cursor-gen] Cursor.Simple.Map
  1063. 53.12 s [cursor-gen] makeMapCursor
  1064. 53.12 s [cursor-gen] produces valid cursors [✔]
  1065. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1066. 53.12 s [cursor-gen] makeMapCursorWithSelection
  1067. 53.12 s [cursor-gen] produces valid cursors [✔]
  1068. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1069. 53.12 s [cursor-gen] singletonMapCursorKey
  1070. 53.12 s [cursor-gen] produces valid cursors [✔]
  1071. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1072. 53.12 s [cursor-gen] singletonMapCursorValue
  1073. 53.12 s [cursor-gen] produces valid cursors [✔]
  1074. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1075. 53.12 s [cursor-gen] rebuildMapCursor
  1076. 53.12 s [cursor-gen] produces valid Nonempty lists [✔]
  1077. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1078. 53.12 s [cursor-gen] is the inverse of makeMapCursor for integers [✔]
  1079. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1080. 53.12 s [cursor-gen] mapCursorNonEmptyCursorL
  1081. 53.12 s [cursor-gen] satisfies the first lens law for valid values and valid values [✔]
  1082. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1083. 53.12 s [cursor-gen] satisfies the second lens law for valid values [✔]
  1084. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1085. 53.12 s [cursor-gen] satisfies the third lens law for valid values and valid values [✔]
  1086. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1087. 53.12 s [cursor-gen] gets valid values from valid values values [✔]
  1088. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1089. 53.12 s [cursor-gen] produces valid values when it is used to set valid values values on valid values values [✔]
  1090. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1091. 53.12 s [cursor-gen] mapCursorElemL
  1092. 53.12 s [cursor-gen] satisfies the first lens law for valid values and valid values [✔]
  1093. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1094. 53.12 s [cursor-gen] satisfies the second lens law for valid values [✔]
  1095. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1096. 53.12 s [cursor-gen] satisfies the third lens law for valid values and valid values [✔]
  1097. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1098. 53.12 s [cursor-gen] gets valid values from valid values values [✔]
  1099. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1100. 53.12 s [cursor-gen] produces valid values when it is used to set valid values values on valid values values [✔]
  1101. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1102. 53.12 s [cursor-gen] mapCursorSelectKey
  1103. 53.12 s [cursor-gen] produces valid cursors [✔]
  1104. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1105. 53.12 s [cursor-gen] mapCursorSelectValue
  1106. 53.12 s [cursor-gen] produces valid cursors [✔]
  1107. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1108. 53.12 s [cursor-gen] mapCursorToggleSelected
  1109. 53.12 s [cursor-gen] produces valid cursors [✔]
  1110. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1111. 53.12 s [cursor-gen] mapCursorSelectPrev
  1112. 53.12 s [cursor-gen] produces valid cursors [✔]
  1113. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1114. 53.12 s [cursor-gen] is a movement [✔]
  1115. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1116. 53.12 s [cursor-gen] selects the previous element [‐]
  1117. 53.12 s [cursor-gen] # PENDING: No reason given
  1118. 53.12 s [cursor-gen] mapCursorSelectNext
  1119. 53.12 s [cursor-gen] produces valid cursors [✔]
  1120. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1121. 53.12 s [cursor-gen] is a movement [✔]
  1122. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1123. 53.12 s [cursor-gen] selects the next element [‐]
  1124. 53.12 s [cursor-gen] # PENDING: No reason given
  1125. 53.12 s [cursor-gen] mapCursorSelectFirst
  1126. 53.12 s [cursor-gen] produces valid cursors [✔]
  1127. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1128. 53.12 s [cursor-gen] is a movement [✔]
  1129. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1130. 53.12 s [cursor-gen] is idempotent [✔]
  1131. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1132. 53.12 s [cursor-gen] selects the first element [‐]
  1133. 53.12 s [cursor-gen] # PENDING: No reason given
  1134. 53.12 s [cursor-gen] mapCursorSelectLast
  1135. 53.12 s [cursor-gen] produces valid cursors [✔]
  1136. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1137. 53.12 s [cursor-gen] is a movement [✔]
  1138. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1139. 53.12 s [cursor-gen] is idempotent [✔]
  1140. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1141. 53.12 s [cursor-gen] selects the last element [‐]
  1142. 53.12 s [cursor-gen] # PENDING: No reason given
  1143. 53.12 s [cursor-gen] mapCursorSelection
  1144. 53.12 s [cursor-gen] produces valid ints [✔]
  1145. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1146. 53.12 s [cursor-gen] returns the index of the currently selected element [‐]
  1147. 53.12 s [cursor-gen] # PENDING: No reason given
  1148. 53.12 s [cursor-gen] mapCursorSelectIndex
  1149. 53.12 s [cursor-gen] produces valid cursors [✔]
  1150. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1151. 53.12 s [cursor-gen] is the identity function when given the current selection [✔]
  1152. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1153. 53.12 s [cursor-gen] returns selects the element at the given index [‐]
  1154. 53.12 s [cursor-gen] # PENDING: No reason given
  1155. 53.12 s [cursor-gen] mapCursorInsert
  1156. 53.12 s [cursor-gen] produces valid cursors [✔]
  1157. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1158. 53.12 s [cursor-gen] inserts a character before the cursor [‐]
  1159. 53.12 s [cursor-gen] # PENDING: No reason given
  1160. 53.12 s [cursor-gen] mapCursorAppend
  1161. 53.12 s [cursor-gen] produces valid cursors [✔]
  1162. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1163. 53.12 s [cursor-gen] inserts a character after the cursor [‐]
  1164. 53.12 s [cursor-gen] # PENDING: No reason given
  1165. 53.12 s [cursor-gen] mapCursorInsertAndSelectKey
  1166. 53.12 s [cursor-gen] produces valid cursors [✔]
  1167. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1168. 53.12 s [cursor-gen] mapCursorAppendAndSelectKey
  1169. 53.12 s [cursor-gen] produces valid cursors [✔]
  1170. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1171. 53.12 s [cursor-gen] mapCursorInsertAndSelectValue
  1172. 53.12 s [cursor-gen] produces valid cursors [✔]
  1173. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1174. 53.12 s [cursor-gen] mapCursorAppendAndSelectValue
  1175. 53.12 s [cursor-gen] produces valid cursors [✔]
  1176. 53.12 s [cursor-gen] +++ OK, passed 100 tests.
  1177. 53.12 s [cursor-gen] mapCursorRemoveElem
  1178. 53.13 s [cursor-gen] produces valid cursors [✔]
  1179. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1180. 53.13 s [cursor-gen] removes an element [‐]
  1181. 53.13 s [cursor-gen] # PENDING: No reason given
  1182. 53.13 s [cursor-gen] mapCursorDeleteElem
  1183. 53.13 s [cursor-gen] produces valid cursors [✔]
  1184. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1185. 53.13 s [cursor-gen] deletes an element [‐]
  1186. 53.13 s [cursor-gen] # PENDING: No reason given
  1187. 53.13 s [cursor-gen] mapCursorSearch
  1188. 53.13 s [cursor-gen] produces valid cursors when looking for an equal pair [✔]
  1189. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1190. 53.13 s [cursor-gen] is indeed the right value when it finds a value and is looking for an equal element [✔]
  1191. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1192. 53.13 s [cursor-gen] mapCursorSelectOrAdd
  1193. 53.13 s [cursor-gen] produces valid cursors when looking for an equal element [✔]
  1194. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1195. 53.13 s [cursor-gen] Cursor.Simple.Map.KeyValue
  1196. 53.13 s [cursor-gen] makeKeyValueCursorKey
  1197. 53.13 s [cursor-gen] produces valid cursors [✔]
  1198. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1199. 53.13 s [cursor-gen] makeKeyValueCursorValue
  1200. 53.13 s [cursor-gen] produces valid cursors [✔]
  1201. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1202. 53.13 s [cursor-gen] rebuildKeyValueCursor
  1203. 53.13 s [cursor-gen] produces valid tuples [✔]
  1204. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1205. 53.13 s [cursor-gen] keyValueCursorSelection
  1206. 53.13 s [cursor-gen] produces valid selections [✔]
  1207. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1208. 53.13 s [cursor-gen] keyValueCursorSelectKey
  1209. 53.13 s [cursor-gen] produces valid cursors [✔]
  1210. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1211. 53.13 s [cursor-gen] is a movement [✔]
  1212. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1213. 53.13 s [cursor-gen] keyValueCursorSelectValue
  1214. 53.13 s [cursor-gen] produces valid cursors [✔]
  1215. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1216. 53.13 s [cursor-gen] is a movement [✔]
  1217. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1218. 53.13 s [cursor-gen] keyValueCursorToggleSelected
  1219. 53.13 s [cursor-gen] produces valid cursors [✔]
  1220. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1221. 53.13 s [cursor-gen] is a movement [✔]
  1222. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1223. 53.13 s [cursor-gen] Cursor.Simple.Tree.Base
  1224. 53.13 s [cursor-gen] Eq (TreeCursor Int Int)
  1225. 53.13 s [cursor-gen] (==) :: (TreeCursor Int Int) -> (TreeCursor Int Int) -> Bool
  1226. 53.13 s [cursor-gen] is reflexive for "valid (TreeCursor Int Int)"s [✔]
  1227. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1228. 53.13 s [cursor-gen] is symmetric for "valid (TreeCursor Int Int)"s [✔]
  1229. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1230. 53.13 s [cursor-gen] is transitive for "valid (TreeCursor Int Int)"s [✔]
  1231. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1232. 53.13 s [cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid (TreeCursor Int Int)"s [✔]
  1233. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1234. 53.13 s [cursor-gen] (/=) :: (TreeCursor Int Int) -> (TreeCursor Int Int) -> Bool
  1235. 53.13 s [cursor-gen] is antireflexive for "valid (TreeCursor Int Int)"s [✔]
  1236. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1237. 53.13 s [cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid (TreeCursor Int Int)"s [✔]
  1238. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1239. 53.13 s [cursor-gen] GenValid (TreeCursor Bool Bool)
  1240. 53.13 s [cursor-gen] genValid :: Gen (TreeCursor Bool Bool)
  1241. 53.13 s [cursor-gen] only generates valid '(TreeCursor Bool Bool)'s [✔]
  1242. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1243. 53.13 s [cursor-gen] makeTreeCursor
  1244. 53.13 s [cursor-gen] produces valid cursors [✔]
  1245. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1246. 53.13 s [cursor-gen] makeNodeTreeCursor
  1247. 53.13 s [cursor-gen] produces valid cursors [✔]
  1248. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1249. 53.13 s [cursor-gen] makeTreeCursorWithSelection
  1250. 53.13 s [cursor-gen] produces valid cursors [✔]
  1251. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1252. 53.13 s [cursor-gen] singletonTreeCursor
  1253. 53.13 s [cursor-gen] produces valid cursors [✔]
  1254. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1255. 53.13 s [cursor-gen] rebuildTreeCursor
  1256. 53.13 s [cursor-gen] produces valid trees [✔]
  1257. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1258. 53.13 s [cursor-gen] is the inverse of makeTreeCursor for integers [✔]
  1259. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1260. 53.13 s [cursor-gen] is the inverse of makeTreeCursorWithSelection for the current selection [✔]
  1261. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1262. 53.13 s [cursor-gen] Cursor.Simple.Tree.Collapse
  1263. 53.13 s [cursor-gen] treeCursorOpenCurrentForest
  1264. 53.13 s [cursor-gen] produces valid cursors [✔]
  1265. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1266. 53.13 s [cursor-gen] treeCursorCloseCurrentForest
  1267. 53.13 s [cursor-gen] produces valid cursors [✔]
  1268. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1269. 53.13 s [cursor-gen] treeCursorToggleCurrentForest
  1270. 53.13 s [cursor-gen] produces valid cursors [✔]
  1271. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1272. 53.13 s [cursor-gen] treeCursorOpenCurrentForestRecursively
  1273. 53.13 s [cursor-gen] produces valid cursors [✔]
  1274. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1275. 53.13 s [cursor-gen] treeCursorToggleCurrentForestRecursively
  1276. 53.13 s [cursor-gen] produces valid cursors [✔]
  1277. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1278. 53.13 s [cursor-gen] Cursor.Simple.Tree.Delete
  1279. 53.13 s [cursor-gen] treeCursorDeleteSubTreeAndSelectPrevious
  1280. 53.13 s [cursor-gen] produces valids on valids [✔]
  1281. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1282. 53.13 s [cursor-gen] deletes the current subtree selects the previous subtree [‐]
  1283. 53.13 s [cursor-gen] # PENDING: No reason given
  1284. 53.13 s [cursor-gen] treeCursorDeleteSubTreeAndSelectNext
  1285. 53.13 s [cursor-gen] produces valids on valids [✔]
  1286. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1287. 53.13 s [cursor-gen] deletes the current subtree selects the next subtree [‐]
  1288. 53.13 s [cursor-gen] # PENDING: No reason given
  1289. 53.13 s [cursor-gen] treeCursorDeleteSubTreeAndSelectAbove
  1290. 53.13 s [cursor-gen] produces valids on valids [✔]
  1291. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1292. 53.13 s [cursor-gen] deletes the current subtree selects the above node [‐]
  1293. 53.13 s [cursor-gen] # PENDING: No reason given
  1294. 53.13 s [cursor-gen] treeCursorRemoveSubTree
  1295. 53.13 s [cursor-gen] produces valids on valids [✔]
  1296. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1297. 53.13 s [cursor-gen] removes the current subtree [‐]
  1298. 53.13 s [cursor-gen] # PENDING: No reason given
  1299. 53.13 s [cursor-gen] treeCursorDeleteSubTree
  1300. 53.13 s [cursor-gen] produces valids on valids [✔]
  1301. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1302. 53.13 s [cursor-gen] deletes the current subtree [‐]
  1303. 53.13 s [cursor-gen] # PENDING: No reason given
  1304. 53.13 s [cursor-gen] treeCursorDeleteElemAndSelectPrevious
  1305. 53.13 s [cursor-gen] produces valids on valids [✔]
  1306. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1307. 53.13 s [cursor-gen] works for this simple example [✔]
  1308. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1309. 53.13 s [cursor-gen] deletes the current element and selects the previous element [‐]
  1310. 53.13 s [cursor-gen] # PENDING: No reason given
  1311. 53.13 s [cursor-gen] treeCursorDeleteElemAndSelectNext
  1312. 53.13 s [cursor-gen] produces valids on valids [✔]
  1313. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1314. 53.13 s [cursor-gen] works for this simple example [✔]
  1315. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1316. 53.13 s [cursor-gen] deletes the current element and selects the next element [‐]
  1317. 53.13 s [cursor-gen] # PENDING: No reason given
  1318. 53.13 s [cursor-gen] treeCursorDeleteElemAndSelectAbove
  1319. 53.13 s [cursor-gen] produces valids on valids [✔]
  1320. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1321. 53.13 s [cursor-gen] works for this simple example [✔]
  1322. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1323. 53.13 s [cursor-gen] deletes the current element and selects the above element [‐]
  1324. 53.13 s [cursor-gen] # PENDING: No reason given
  1325. 53.13 s [cursor-gen] treeCursorRemoveElem
  1326. 53.13 s [cursor-gen] produces valids on valids [✔]
  1327. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1328. 53.13 s [cursor-gen] removes the current element [‐]
  1329. 53.13 s [cursor-gen] # PENDING: No reason given
  1330. 53.13 s [cursor-gen] treeCursorDeleteElem
  1331. 53.13 s [cursor-gen] produces valids on valids [✔]
  1332. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1333. 53.13 s [cursor-gen] deletes the current element [‐]
  1334. 53.13 s [cursor-gen] # PENDING: No reason given
  1335. 53.13 s [cursor-gen] Cursor.Simple.Tree.Demote
  1336. 53.13 s [cursor-gen] Functor DemoteResult
  1337. 53.13 s [cursor-gen] fmap :: (a -> b) -> DemoteResult a -> DemoteResult b
  1338. 53.13 s [cursor-gen] satisfies the first Fuctor law: 'fmap id == id' for "DemoteResult of ints :: (DemoteResult Int)" [✔]
  1339. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1340. 53.13 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)" [✔]
  1341. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1342. 53.13 s [cursor-gen] (<$) :: a -> DemoteResult b -> DemoteResult a
  1343. 53.13 s [cursor-gen] is equivalent to its default implementation for "int :: Int" and "DemoteResult of ints :: (DemoteResult Int)" [✔]
  1344. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1345. 53.13 s [cursor-gen] treeCursorDemoteElem
  1346. 53.13 s [cursor-gen] produces valids on valids [✔]
  1347. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1348. 53.13 s [cursor-gen] Works on the example from the docs [✔]
  1349. 53.13 s [cursor-gen] demotes the current node to the level of its children [‐]
  1350. 53.13 s [cursor-gen] # PENDING: No reason given
  1351. 53.13 s [cursor-gen] treeCursorDemoteSubTree
  1352. 53.13 s [cursor-gen] produces valids on valids [✔]
  1353. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1354. 53.13 s [cursor-gen] Works on the example from the docs [✔]
  1355. 53.13 s [cursor-gen] demotes the current subtree to the level of its children [‐]
  1356. 53.13 s [cursor-gen] # PENDING: No reason given
  1357. 53.13 s [cursor-gen] treeCursorDemoteElemUnder
  1358. 53.13 s [cursor-gen] produces valids on valids [✔]
  1359. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1360. 53.13 s [cursor-gen] Works on the example from the docs [✔]
  1361. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1362. 53.13 s [cursor-gen] demotes the current node to the level of its children [‐]
  1363. 53.13 s [cursor-gen] # PENDING: No reason given
  1364. 53.13 s [cursor-gen] treeCursorDemoteSubTreeUnder
  1365. 53.13 s [cursor-gen] produces valids on valids [✔]
  1366. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1367. 53.13 s [cursor-gen] Works on the example from the docs [✔]
  1368. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1369. 53.13 s [cursor-gen] demotes the current subtree to the level of its children, by adding a root [‐]
  1370. 53.13 s [cursor-gen] # PENDING: No reason given
  1371. 53.13 s [cursor-gen] Cursor.Simple.Tree.Insert
  1372. 53.13 s [cursor-gen] treeCursorInsert
  1373. 53.13 s [cursor-gen] produces valids on valids [✔]
  1374. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1375. 53.13 s [cursor-gen] inserts the element [‐]
  1376. 53.13 s [cursor-gen] # PENDING: No reason given
  1377. 53.13 s [cursor-gen] treeCursorInsertAndSelect
  1378. 53.13 s [cursor-gen] produces valids on valids [✔]
  1379. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1380. 53.13 s [cursor-gen] inserts and select the element [‐]
  1381. 53.13 s [cursor-gen] # PENDING: No reason given
  1382. 53.13 s [cursor-gen] treeCursorInsertNodeSingleAndSelect
  1383. 53.13 s [cursor-gen] produces valids on valids [✔]
  1384. 53.13 s [cursor-gen] +++ OK, passed 100 tests.
  1385. 53.13 s [cursor-gen] inserts and select the element [‐]
  1386. 53.13 s [cursor-gen] # PENDING: No reason given
  1387. 53.14 s [cursor-gen] treeCursorInsertNodeAndSelect
  1388. 53.14 s [cursor-gen] produces valids on valids [✔]
  1389. 53.14 s [cursor-gen] +++ OK, passed 100 tests.
  1390. 53.14 s [cursor-gen] inserts and select the element [‐]
  1391. 53.14 s [cursor-gen] # PENDING: No reason given
  1392. 53.14 s [cursor-gen] treeCursorAppend
  1393. 53.14 s [cursor-gen] produces valids on valids [✔]
  1394. 53.14 s [cursor-gen] +++ OK, passed 100 tests.
  1395. 53.14 s [cursor-gen] appends the element [‐]
  1396. 53.14 s [cursor-gen] # PENDING: No reason given
  1397. 53.14 s [cursor-gen] treeCursorAppendAndSelect
  1398. 53.14 s [cursor-gen] produces valids on valids [✔]
  1399. 53.14 s [cursor-gen] +++ OK, passed 100 tests.
  1400. 53.14 s [cursor-gen] appends and select the element [‐]
  1401. 53.14 s [cursor-gen] # PENDING: No reason given
  1402. 53.14 s [cursor-gen] treeCursorAppendNodeSingleAndSelect
  1403. 53.14 s [cursor-gen] produces valids on valids [✔]
  1404. 53.14 s [cursor-gen] +++ OK, passed 100 tests.
  1405. 53.14 s [cursor-gen] appends and select the element [‐]
  1406. 53.14 s [cursor-gen] # PENDING: No reason given
  1407. 53.14 s [cursor-gen] treeCursorAppendNodeAndSelect
  1408. 53.14 s [cursor-gen] produces valids on valids [✔]
  1409. 53.14 s [cursor-gen] +++ OK, passed 100 tests.
  1410. 53.14 s [cursor-gen] appends and select the element [‐]
  1411. 53.14 s [cursor-gen] # PENDING: No reason given
  1412. 53.14 s [cursor-gen] treeCursorAddChildAtPos
  1413. 53.14 s [cursor-gen] produces valid cursors [✔]
  1414. 53.14 s [cursor-gen] +++ OK, passed 100 tests.
  1415. 53.14 s [cursor-gen] adds a tree at the given index in the children of the current node [‐]
  1416. 53.14 s [cursor-gen] # PENDING: No reason given
  1417. 53.14 s [cursor-gen] treeCursorAddChildAtStart
  1418. 53.14 s [cursor-gen] produces valid cursors [✔]
  1419. 53.14 s [cursor-gen] +++ OK, passed 100 tests.
  1420. 53.14 s [cursor-gen] adds a tree at the start of the children of the current node [‐]
  1421. 53.14 s [cursor-gen] # PENDING: No reason given
  1422. 53.14 s [cursor-gen] treeCursorAddChildAtEnd
  1423. 53.14 s [cursor-gen] produces valid cursors [✔]
  1424. 53.14 s [cursor-gen] +++ OK, passed 100 tests.
  1425. 53.14 s [cursor-gen] adds a tree at the end of the children of the current node [‐]
  1426. 53.14 s [cursor-gen] # PENDING: No reason given
  1427. 53.14 s [cursor-gen] treeCursorAddChildAtPosAndSelect
  1428. 53.14 s [cursor-gen] produces valid cursors [✔]
  1429. 53.14 s [cursor-gen] +++ OK, passed 100 tests.
  1430. 53.14 s [cursor-gen] adds a tree at the given index in theAndSelect children of the current node [‐]
  1431. 53.14 s [cursor-gen] # PENDING: No reason given
  1432. 53.14 s [cursor-gen] treeCursorAddChildAtStartAndSelect
  1433. 53.14 s [cursor-gen] producesAndSelect valid cursors [✔]
  1434. 53.14 s [cursor-gen] +++ OK, passed 100 tests.
  1435. 53.14 s [cursor-gen] adds a tree at the start of the children of the current node [‐]
  1436. 53.14 s [cursor-gen] # PENDING: No reason given
  1437. 53.14 s [cursor-gen] treeCursorAddChildAtEndAndSelect
  1438. 53.14 s [cursor-gen] produces valid cursors [✔]
  1439. 53.14 s [cursor-gen] +++ OK, passed 100 tests.
  1440. 53.14 s [cursor-gen] adds a tree at the end of the children of the current node [‐]
  1441. 53.14 s [cursor-gen] # PENDING: No reason given
  1442. 53.14 s [cursor-gen] treeCursorAddChildNodeSingleAtPosAndSelect
  1443. 53.14 s [cursor-gen] produces valid cursors [✔]
  1444. 53.14 s [cursor-gen] +++ OK, passed 100 tests.
  1445. 53.14 s [cursor-gen] treeCursorAddChildNodeSingleAtStartAndSelect
  1446. 53.14 s [cursor-gen] produces valid cursors [✔]
  1447. 53.14 s [cursor-gen] +++ OK, passed 100 tests.
  1448. 53.14 s [cursor-gen] treeCursorAddChildNodeSingleAtEndAndSelect
  1449. 53.14 s [cursor-gen] produces valid cursors [✔]
  1450. 53.14 s [cursor-gen] +++ OK, passed 100 tests.
  1451. 53.14 s [cursor-gen] treeCursorAddChildNodeAtPosAndSelect
  1452. 53.14 s [cursor-gen] produces valid cursors [✔]
  1453. 53.14 s [cursor-gen] +++ OK, passed 100 tests.
  1454. 53.14 s [cursor-gen] treeCursorAddChildNodeAtStartAndSelect
  1455. 53.14 s [cursor-gen] produces valid cursors [✔]
  1456. 53.14 s [cursor-gen] +++ OK, passed 100 tests.
  1457. 53.14 s [cursor-gen] works for this example [✔]
  1458. 53.14 s [cursor-gen] treeCursorAddChildNodeAtEndAndSelect
  1459. 53.14 s [cursor-gen] produces valid cursors [✔]
  1460. 53.14 s [cursor-gen] +++ OK, passed 100 tests.
  1461. 53.14 s [cursor-gen] works for this example [✔]
  1462. 53.14 s [cursor-gen] Cursor.Simple.Tree.Movement
  1463. 53.14 s [cursor-gen] treeCursorSelection
  1464. 53.14 s [cursor-gen] produces valids on valids [✔]
  1465. 53.14 s [cursor-gen] +++ OK, passed 100 tests.
  1466. 53.14 s [cursor-gen] treeCursorSelect
  1467. 53.14 s [cursor-gen] produces valids on valids [✔]
  1468. 53.14 s [cursor-gen] +++ OK, passed 100 tests.
  1469. 53.14 s [cursor-gen] is identity with the current selection [✔]
  1470. 53.14 s [cursor-gen] +++ OK, passed 100 tests.
  1471. 53.14 s [cursor-gen] treeCursorSelectPrevOnSameLevel
  1472. 53.14 s [cursor-gen] produces valids on valids [✔]
  1473. 53.14 s [cursor-gen] +++ OK, passed 100 tests.
  1474. 53.14 s [cursor-gen] is a movement [✔]
  1475. 53.14 s [cursor-gen] +++ OK, passed 100 tests.
  1476. 53.14 s [cursor-gen] selects the previous element [‐]
  1477. 53.14 s [cursor-gen] # PENDING: No reason given
  1478. 53.14 s [cursor-gen] after treeCursorSelectNextOnSameLevel is identity if they don't fail [✔]
  1479. 53.14 s [cursor-gen] +++ OK, passed 100 tests.
  1480. 53.14 s [cursor-gen] treeCursorSelectNextOnSameLevel
  1481. 54.04 s [cursor-gen] produces valids on valids [✔]
  1482. 54.04 s [cursor-gen] +++ OK, passed 100 tests.
  1483. 54.04 s [cursor-gen] is a movement [✔]
  1484. 54.04 s [cursor-gen] +++ OK, passed 100 tests.
  1485. 54.04 s [cursor-gen] selects the next element [‐]
  1486. 54.04 s [cursor-gen] # PENDING: No reason given
  1487. 54.04 s [cursor-gen] after treeCursorSelectPrevOnSameLevel is identity if they don't fail [✔]
  1488. 54.04 s [cursor-gen] +++ OK, passed 100 tests.
  1489. 54.04 s [cursor-gen] treeCursorSelectFirstOnSameLevel
  1490. 54.04 s [cursor-gen] produces valids on valids [✔]
  1491. 54.04 s [cursor-gen] +++ OK, passed 100 tests.
  1492. 54.04 s [cursor-gen] is a movement [✔]
  1493. 54.04 s [cursor-gen] +++ OK, passed 100 tests.
  1494. 54.04 s [cursor-gen] selects the previous element [‐]
  1495. 54.04 s [cursor-gen] # PENDING: No reason given
  1496. 54.04 s [cursor-gen] treeCursorSelectNextOnSameLevel
  1497. 54.04 s [cursor-gen] produces valids on valids [✔]
  1498. 54.04 s [cursor-gen] +++ OK, passed 100 tests.
  1499. 54.04 s [cursor-gen] is a movement [✔]
  1500. 54.04 s [cursor-gen] +++ OK, passed 100 tests.
  1501. 54.04 s [cursor-gen] selects the next element [‐]
  1502. 54.04 s [cursor-gen] # PENDING: No reason given
  1503. 54.04 s [cursor-gen] treeCursorSelectAbovePrev
  1504. 54.04 s [cursor-gen] produces valids on valids [✔]
  1505. 54.04 s [cursor-gen] +++ OK, passed 100 tests.
  1506. 54.04 s [cursor-gen] is a movement [✔]
  1507. 54.04 s [cursor-gen] +++ OK, passed 100 tests.
  1508. 54.04 s [cursor-gen] Works for this classic example [✔]
  1509. 54.04 s [cursor-gen] selects the previous element [‐]
  1510. 54.04 s [cursor-gen] # PENDING: No reason given
  1511. 54.04 s [cursor-gen] after treeCursorSelectAboveNext is identity if they don't fail [✔]
  1512. 54.04 s [cursor-gen] +++ OK, passed 100 tests.
  1513. 54.04 s [cursor-gen] treeCursorSelectAboveNext
  1514. 54.04 s [cursor-gen] produces valids on valids [✔]
  1515. 54.04 s [cursor-gen] +++ OK, passed 100 tests.
  1516. 54.05 s [cursor-gen] is a movement [✔]
  1517. 54.05 s [cursor-gen] +++ OK, passed 100 tests.
  1518. 54.05 s [cursor-gen] Works for this classic example [✔]
  1519. 54.05 s [cursor-gen] selects the next element [‐]
  1520. 54.05 s [cursor-gen] # PENDING: No reason given
  1521. 54.05 s [cursor-gen] after treeCursorSelectAbovePrev is identity if they don't fail [✔]
  1522. 54.05 s [cursor-gen] +++ OK, passed 100 tests.
  1523. 54.05 s [cursor-gen] treeCursorSelectPrev
  1524. 54.05 s [cursor-gen] produces valids on valids [✔]
  1525. 54.05 s [cursor-gen] +++ OK, passed 100 tests.
  1526. 54.05 s [cursor-gen] is a movement [✔]
  1527. 54.05 s [cursor-gen] +++ OK, passed 100 tests.
  1528. 54.05 s [cursor-gen] selects the previous element [‐]
  1529. 54.05 s [cursor-gen] # PENDING: No reason given
  1530. 54.05 s [cursor-gen] after treeCursorSelectNext is identity if they don't fail [✔]
  1531. 54.05 s [cursor-gen] +++ OK, passed 100 tests.
  1532. 54.05 s [cursor-gen] treeCursorSelectNext
  1533. 54.05 s [cursor-gen] produces valids on valids [✔]
  1534. 54.05 s [cursor-gen] +++ OK, passed 100 tests.
  1535. 54.05 s [cursor-gen] is a movement [✔]
  1536. 54.05 s [cursor-gen] +++ OK, passed 100 tests.
  1537. 54.05 s [cursor-gen] selects the next element [‐]
  1538. 54.05 s [cursor-gen] # PENDING: No reason given
  1539. 54.05 s [cursor-gen] after treeCursorSelectPrev is identity if they don't fail [✔]
  1540. 54.05 s [cursor-gen] +++ OK, passed 100 tests.
  1541. 54.05 s [cursor-gen] treeCursorSelectFirst
  1542. 54.05 s [cursor-gen] produces valids on valids [✔]
  1543. 54.05 s [cursor-gen] +++ OK, passed 100 tests.
  1544. 54.05 s [cursor-gen] is a movement [✔]
  1545. 54.05 s [cursor-gen] +++ OK, passed 100 tests.
  1546. 54.05 s [cursor-gen] selects the first element [‐]
  1547. 54.05 s [cursor-gen] # PENDING: No reason given
  1548. 54.05 s [cursor-gen] is idempotent [✔]
  1549. 54.05 s [cursor-gen] +++ OK, passed 100 tests.
  1550. 54.05 s [cursor-gen] treeCursorSelectLast
  1551. 54.05 s [cursor-gen] produces valids on valids [✔]
  1552. 54.05 s [cursor-gen] +++ OK, passed 100 tests.
  1553. 54.06 s [cursor-gen] is a movement [✔]
  1554. 54.06 s [cursor-gen] +++ OK, passed 100 tests.
  1555. 54.06 s [cursor-gen] selects the last element [‐]
  1556. 54.06 s [cursor-gen] # PENDING: No reason given
  1557. 54.06 s [cursor-gen] is idempotent [✔]
  1558. 54.06 s [cursor-gen] +++ OK, passed 100 tests.
  1559. 54.06 s [cursor-gen] treeCursorSelectAbove
  1560. 54.06 s [cursor-gen] produces valids on valids [✔]
  1561. 54.06 s [cursor-gen] +++ OK, passed 100 tests.
  1562. 54.06 s [cursor-gen] is a movement [✔]
  1563. 54.06 s [cursor-gen] +++ OK, passed 100 tests.
  1564. 54.06 s [cursor-gen] selects the element above [‐]
  1565. 54.06 s [cursor-gen] # PENDING: No reason given
  1566. 54.06 s [cursor-gen] after treeCursorSelectBelow is identity if they don't fail [✔]
  1567. 54.06 s [cursor-gen] +++ OK, passed 100 tests.
  1568. 54.06 s [cursor-gen] treeCursorSelectBelowAtPos
  1569. 54.06 s [cursor-gen] produces valids on valids [✔]
  1570. 54.06 s [cursor-gen] +++ OK, passed 100 tests.
  1571. 54.06 s [cursor-gen] is a movement [✔]
  1572. 54.06 s [cursor-gen] +++ OK, passed 100 tests.
  1573. 54.06 s [cursor-gen] selects the element n-th below [‐]
  1574. 54.06 s [cursor-gen] # PENDING: No reason given
  1575. 54.06 s [cursor-gen] treeCursorSelectBelowAtStart
  1576. 54.06 s [cursor-gen] produces valids on valids [✔]
  1577. 54.06 s [cursor-gen] +++ OK, passed 100 tests.
  1578. 54.06 s [cursor-gen] is a movement [✔]
  1579. 54.06 s [cursor-gen] +++ OK, passed 100 tests.
  1580. 54.06 s [cursor-gen] selects the first child below [‐]
  1581. 54.06 s [cursor-gen] # PENDING: No reason given
  1582. 54.06 s [cursor-gen] treeCursorSelectBelowAtEnd
  1583. 54.06 s [cursor-gen] produces valids on valids [✔]
  1584. 54.06 s [cursor-gen] +++ OK, passed 100 tests.
  1585. 54.06 s [cursor-gen] is a movement [✔]
  1586. 54.06 s [cursor-gen] +++ OK, passed 100 tests.
  1587. 54.06 s [cursor-gen] selects the last child below [‐]
  1588. 54.06 s [cursor-gen] # PENDING: No reason given
  1589. 54.06 s [cursor-gen] treeCursorSelectBelowAtStartRecursively
  1590. 54.06 s [cursor-gen] produces valids on valids [✔]
  1591. 54.06 s [cursor-gen] +++ OK, passed 100 tests.
  1592. 54.06 s [cursor-gen] is a movement [✔]
  1593. 54.06 s [cursor-gen] +++ OK, passed 100 tests.
  1594. 54.06 s [cursor-gen] selects the first child below, recursively [‐]
  1595. 54.06 s [cursor-gen] # PENDING: No reason given
  1596. 54.06 s [cursor-gen] treeCursorSelectBelowAtEndRecursively
  1597. 54.06 s [cursor-gen] produces valids on valids [✔]
  1598. 54.06 s [cursor-gen] +++ OK, passed 100 tests.
  1599. 54.06 s [cursor-gen] is a movement [✔]
  1600. 54.06 s [cursor-gen] +++ OK, passed 100 tests.
  1601. 54.06 s [cursor-gen] selects the last child below, recursively [‐]
  1602. 54.06 s [cursor-gen] # PENDING: No reason given
  1603. 54.06 s [cursor-gen] Cursor.Simple.Tree.Promote
  1604. 54.06 s [cursor-gen] Functor PromoteElemResult
  1605. 54.06 s [cursor-gen] fmap :: (a -> b) -> PromoteElemResult a -> PromoteElemResult b
  1606. 54.06 s [cursor-gen] satisfies the first Fuctor law: 'fmap id == id' for "PromoteElemResult of ints :: (PromoteElemResult Int)" [✔]
  1607. 54.06 s [cursor-gen] +++ OK, passed 100 tests.
  1608. 54.06 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)" [✔]
  1609. 54.06 s [cursor-gen] +++ OK, passed 100 tests.
  1610. 54.06 s [cursor-gen] (<$) :: a -> PromoteElemResult b -> PromoteElemResult a
  1611. 54.06 s [cursor-gen] is equivalent to its default implementation for "int :: Int" and "PromoteElemResult of ints :: (PromoteElemResult Int)" [✔]
  1612. 54.06 s [cursor-gen] +++ OK, passed 100 tests.
  1613. 54.06 s [cursor-gen] Applicative PromoteElemResult
  1614. 54.06 s [cursor-gen] pure :: a -> PromoteElemResult a and (<*>) :: PromoteElemResult (a -> b) -> PromoteElemResult a -> PromoteElemResult b
  1615. 54.06 s [cursor-gen] satisfy the identity law: 'pure id <*> v = v' for "PromoteElemResult of ints :: (PromoteElemResult Int)" [✔]
  1616. 54.06 s [cursor-gen] +++ OK, passed 100 tests.
  1617. 54.07 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)" [✔]
  1618. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1619. 54.07 s [cursor-gen] satisfy the homomorphism law: 'pure f <*> pure x = pure (f x)' for "increments :: (Int -> Int)" sequenced with "int :: Int" [✔]
  1620. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1621. 54.07 s [cursor-gen] satisfy the interchange law: 'u <*> pure y = pure ($ y) <*> u' for "PromoteElemResult of increments :: (PromoteElemResult (Int -> Int))" sequenced with "int :: Int" [✔]
  1622. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1623. 54.07 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)" [✔]
  1624. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1625. 54.07 s [cursor-gen] (*>) :: PromoteElemResult a -> PromoteElemResult b -> PromoteElemResult b
  1626. 54.07 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" [✔]
  1627. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1628. 54.07 s [cursor-gen] (<*) :: PromoteElemResult a -> PromoteElemResult b -> PromoteElemResult a
  1629. 54.07 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)" [✔]
  1630. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1631. 54.07 s [cursor-gen] Monad PromoteElemResult
  1632. 54.07 s [cursor-gen] return :: a -> PromoteElemResult a and (>>=) :: PromoteElemResult a -> (b -> PromoteElemResult a) -> PromoteElemResult b
  1633. 54.07 s [cursor-gen] satisfy the first Monad law: 'return a >>= k = k a' for "int :: Int" and "perturbations using the int :: (Int -> PromoteElemResult Int)" [✔]
  1634. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1635. 54.07 s [cursor-gen] satisfy the second Monad law: 'm >>= return = m' for "PromoteElemResult of ints :: (PromoteElemResult Int)" [✔]
  1636. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1637. 54.07 s [cursor-gen] (>>=) :: PromoteElemResult a -> (b -> PromoteElemResult a) -> PromoteElemResult b
  1638. 54.07 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)" [✔]
  1639. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1640. 54.07 s [cursor-gen] relation with Applicative PromoteElemResult
  1641. 54.07 s [cursor-gen] satisfies 'pure = return' for "PromoteElemResult of ints :: (PromoteElemResult Int)" [✔]
  1642. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1643. 54.07 s [cursor-gen] satisfies '(<*>) = ap' for "PromoteElemResult of additions :: (PromoteElemResult (Int -> Int))" and "PromoteElemResult of ints :: (PromoteElemResult Int)" [✔]
  1644. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1645. 54.07 s [cursor-gen] satisfies '(>>) = (*>)' for "PromoteElemResult of ints :: (PromoteElemResult Int)" and "PromoteElemResult of ints :: (PromoteElemResult Int)" [✔]
  1646. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1647. 54.07 s [cursor-gen] relation with Functor PromoteElemResult
  1648. 54.07 s [cursor-gen] satisfies 'fmap f xs = xs >>= return . f' for "increments :: (Int -> Int)" and "PromoteElemResult of ints :: (PromoteElemResult Int)" [✔]
  1649. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1650. 54.07 s [cursor-gen] treeCursorPromoteElem
  1651. 54.07 s [cursor-gen] produces valids on valids [✔]
  1652. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1653. 54.07 s [cursor-gen] Works on the example from the docs [✔]
  1654. 54.07 s [cursor-gen] promotes the current node to the level of its parent [‐]
  1655. 54.07 s [cursor-gen] # PENDING: No reason given
  1656. 54.07 s [cursor-gen] Functor PromoteResult
  1657. 54.07 s [cursor-gen] fmap :: (a -> b) -> PromoteResult a -> PromoteResult b
  1658. 54.07 s [cursor-gen] satisfies the first Fuctor law: 'fmap id == id' for "PromoteResult of ints :: (PromoteResult Int)" [✔]
  1659. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1660. 54.07 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)" [✔]
  1661. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1662. 54.07 s [cursor-gen] (<$) :: a -> PromoteResult b -> PromoteResult a
  1663. 54.07 s [cursor-gen] is equivalent to its default implementation for "int :: Int" and "PromoteResult of ints :: (PromoteResult Int)" [✔]
  1664. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1665. 54.07 s [cursor-gen] Applicative PromoteResult
  1666. 54.07 s [cursor-gen] pure :: a -> PromoteResult a and (<*>) :: PromoteResult (a -> b) -> PromoteResult a -> PromoteResult b
  1667. 54.07 s [cursor-gen] satisfy the identity law: 'pure id <*> v = v' for "PromoteResult of ints :: (PromoteResult Int)" [✔]
  1668. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1669. 54.07 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)" [✔]
  1670. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1671. 54.07 s [cursor-gen] satisfy the homomorphism law: 'pure f <*> pure x = pure (f x)' for "increments :: (Int -> Int)" sequenced with "int :: Int" [✔]
  1672. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1673. 54.07 s [cursor-gen] satisfy the interchange law: 'u <*> pure y = pure ($ y) <*> u' for "PromoteResult of increments :: (PromoteResult (Int -> Int))" sequenced with "int :: Int" [✔]
  1674. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1675. 54.07 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)" [✔]
  1676. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1677. 54.07 s [cursor-gen] (*>) :: PromoteResult a -> PromoteResult b -> PromoteResult b
  1678. 54.07 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" [✔]
  1679. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1680. 54.07 s [cursor-gen] (<*) :: PromoteResult a -> PromoteResult b -> PromoteResult a
  1681. 54.07 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)" [✔]
  1682. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1683. 54.07 s [cursor-gen] Monad PromoteResult
  1684. 54.07 s [cursor-gen] return :: a -> PromoteResult a and (>>=) :: PromoteResult a -> (b -> PromoteResult a) -> PromoteResult b
  1685. 54.07 s [cursor-gen] satisfy the first Monad law: 'return a >>= k = k a' for "int :: Int" and "perturbations using the int :: (Int -> PromoteResult Int)" [✔]
  1686. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1687. 54.07 s [cursor-gen] satisfy the second Monad law: 'm >>= return = m' for "PromoteResult of ints :: (PromoteResult Int)" [✔]
  1688. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1689. 54.07 s [cursor-gen] (>>=) :: PromoteResult a -> (b -> PromoteResult a) -> PromoteResult b
  1690. 54.07 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)" [✔]
  1691. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1692. 54.07 s [cursor-gen] relation with Applicative PromoteResult
  1693. 54.07 s [cursor-gen] satisfies 'pure = return' for "PromoteResult of ints :: (PromoteResult Int)" [✔]
  1694. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1695. 54.07 s [cursor-gen] satisfies '(<*>) = ap' for "PromoteResult of additions :: (PromoteResult (Int -> Int))" and "PromoteResult of ints :: (PromoteResult Int)" [✔]
  1696. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1697. 54.07 s [cursor-gen] satisfies '(>>) = (*>)' for "PromoteResult of ints :: (PromoteResult Int)" and "PromoteResult of ints :: (PromoteResult Int)" [✔]
  1698. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1699. 54.07 s [cursor-gen] relation with Functor PromoteResult
  1700. 54.07 s [cursor-gen] satisfies 'fmap f xs = xs >>= return . f' for "increments :: (Int -> Int)" and "PromoteResult of ints :: (PromoteResult Int)" [✔]
  1701. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1702. 54.07 s [cursor-gen] treeCursorPromoteSubTree
  1703. 54.07 s [cursor-gen] produces valids on valids [✔]
  1704. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1705. 54.07 s [cursor-gen] Works on the example from the docs [✔]
  1706. 54.07 s [cursor-gen] promotes the current subtree to the level of its parent [‐]
  1707. 54.07 s [cursor-gen] # PENDING: No reason given
  1708. 54.07 s [cursor-gen] Cursor.Simple.Tree.Swap
  1709. 54.07 s [cursor-gen] Functor SwapResult
  1710. 54.07 s [cursor-gen] fmap :: (a -> b) -> SwapResult a -> SwapResult b
  1711. 54.07 s [cursor-gen] satisfies the first Fuctor law: 'fmap id == id' for "SwapResult of ints :: (SwapResult Int)" [✔]
  1712. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1713. 54.07 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)" [✔]
  1714. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1715. 54.07 s [cursor-gen] (<$) :: a -> SwapResult b -> SwapResult a
  1716. 54.07 s [cursor-gen] is equivalent to its default implementation for "int :: Int" and "SwapResult of ints :: (SwapResult Int)" [✔]
  1717. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1718. 54.07 s [cursor-gen] treeCursorSwapPrev
  1719. 54.07 s [cursor-gen] produces valids on valids [✔]
  1720. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1721. 54.07 s [cursor-gen] works on the example from the docs [✔]
  1722. 54.07 s [cursor-gen] reverts treeCursorSwapNext [✔]
  1723. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1724. 54.07 s [cursor-gen] swaps the current node with the previous node [‐]
  1725. 54.07 s [cursor-gen] # PENDING: No reason given
  1726. 54.07 s [cursor-gen] treeCursorSwapNext
  1727. 54.07 s [cursor-gen] produces valids on valids [✔]
  1728. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1729. 54.07 s [cursor-gen] works on the example from the docs [✔]
  1730. 54.07 s [cursor-gen] reverts treeCursorSwapNext [✔]
  1731. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1732. 54.07 s [cursor-gen] swaps the current node with the next node [‐]
  1733. 54.07 s [cursor-gen] # PENDING: No reason given
  1734. 54.07 s [cursor-gen] Cursor.Text
  1735. 54.07 s [cursor-gen] Eq TextCursor
  1736. 54.07 s [cursor-gen] (==) :: TextCursor -> TextCursor -> Bool
  1737. 54.07 s [cursor-gen] is reflexive for "valid TextCursor"s [✔]
  1738. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1739. 54.07 s [cursor-gen] is symmetric for "valid TextCursor"s [✔]
  1740. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1741. 54.07 s [cursor-gen] is transitive for "valid TextCursor"s [✔]
  1742. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1743. 54.07 s [cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid TextCursor"s [✔]
  1744. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1745. 54.07 s [cursor-gen] (/=) :: TextCursor -> TextCursor -> Bool
  1746. 54.07 s [cursor-gen] is antireflexive for "valid TextCursor"s [✔]
  1747. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1748. 54.07 s [cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid TextCursor"s [✔]
  1749. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1750. 54.07 s [cursor-gen] GenValid TextCursor
  1751. 54.07 s [cursor-gen] genValid :: Gen TextCursor
  1752. 54.07 s [cursor-gen] only generates valid 'TextCursor's [✔]
  1753. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1754. 54.07 s [cursor-gen] Validity TextCursor
  1755. 54.07 s [cursor-gen] considers a text cursor with a newline in the previous characters invalid [✔]
  1756. 54.07 s [cursor-gen] considers a text cursor with a newline in the next characters invalid [✔]
  1757. 54.07 s [cursor-gen] considers a text cursor with an unsafe character in the previous characters invalid [✔]
  1758. 54.07 s [cursor-gen] considers a text cursor with an unsafe character in the next characters invalid [✔]
  1759. 54.07 s [cursor-gen] emptyTextCursor
  1760. 54.07 s [cursor-gen] is valid [✔]
  1761. 54.07 s [cursor-gen] makeTextCursor
  1762. 54.07 s [cursor-gen] produces valid list cursors [✔]
  1763. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1764. 54.07 s [cursor-gen] makeTextCursorWithSelection
  1765. 54.07 s [cursor-gen] produces valid list cursors [✔]
  1766. 54.07 s [cursor-gen] +++ OK, passed 100 tests.
  1767. 54.07 s [cursor-gen] rebuildTextCursor
  1768. 54.08 s [cursor-gen] produces valid lists [✔]
  1769. 54.08 s [cursor-gen] +++ OK, passed 100 tests.
  1770. 54.08 s [cursor-gen] is the inverse of makeTextCursor [✔]
  1771. 54.08 s [cursor-gen] +++ OK, passed 100 tests.
  1772. 54.08 s [cursor-gen] is the inverse of makeTextCursorWithSelection for any index [✔]
  1773. 54.08 s [cursor-gen] +++ OK, passed 100 tests.
  1774. 54.08 s [cursor-gen] textCursorNull
  1775. 54.08 s [cursor-gen] produces valid bools [✔]
  1776. 54.08 s [cursor-gen] +++ OK, passed 100 tests.
  1777. 54.08 s [cursor-gen] textCursorLength
  1778. 54.08 s [cursor-gen] produces valid ints [✔]
  1779. 54.08 s [cursor-gen] +++ OK, passed 100 tests.
  1780. 54.08 s [cursor-gen] textCursorIndex
  1781. 54.08 s [cursor-gen] produces valid indices [✔]
  1782. 54.08 s [cursor-gen] +++ OK, passed 100 tests.
  1783. 54.08 s [cursor-gen] textCursorSelectPrev
  1784. 54.08 s [cursor-gen] produces valid cursors [✔]
  1785. 54.08 s [cursor-gen] +++ OK, passed 100 tests.
  1786. 54.08 s [cursor-gen] is a movement [✔]
  1787. 54.08 s [cursor-gen] +++ OK, passed 100 tests.
  1788. 54.08 s [cursor-gen] selects the previous position [‐]
  1789. 54.08 s [cursor-gen] # PENDING: No reason given
  1790. 54.08 s [cursor-gen] textCursorSelectNext
  1791. 54.08 s [cursor-gen] produces valid cursors [✔]
  1792. 54.08 s [cursor-gen] +++ OK, passed 100 tests.
  1793. 54.08 s [cursor-gen] is a movement [✔]
  1794. 54.08 s [cursor-gen] +++ OK, passed 100 tests.
  1795. 54.08 s [cursor-gen] selects the next position [‐]
  1796. 54.08 s [cursor-gen] # PENDING: No reason given
  1797. 54.08 s [cursor-gen] textCursorSelectIndex
  1798. 54.08 s [cursor-gen] produces valid cursors [✔]
  1799. 54.08 s [cursor-gen] +++ OK, passed 100 tests.
  1800. 54.09 s [cursor-gen] is a movement [✔]
  1801. 54.09 s [cursor-gen] +++ OK, passed 100 tests.
  1802. 54.09 s [cursor-gen] selects the position at the given index [‐]
  1803. 54.09 s [cursor-gen] # PENDING: No reason given
  1804. 54.09 s [cursor-gen] produces a cursor that has the given selection for valid selections in the cursor [✔]
  1805. 54.09 s [cursor-gen] +++ OK, passed 100 tests.
  1806. 54.09 s [cursor-gen] textCursorSelectStart
  1807. 54.09 s [cursor-gen] produces valid cursors [✔]
  1808. 54.09 s [cursor-gen] +++ OK, passed 100 tests.
  1809. 54.09 s [cursor-gen] is a movement [✔]
  1810. 54.09 s [cursor-gen] +++ OK, passed 100 tests.
  1811. 54.09 s [cursor-gen] is idempotent [✔]
  1812. 54.09 s [cursor-gen] +++ OK, passed 100 tests.
  1813. 54.09 s [cursor-gen] selects the starting position [‐]
  1814. 54.09 s [cursor-gen] # PENDING: No reason given
  1815. 54.09 s [cursor-gen] textCursorSelectEnd
  1816. 54.09 s [cursor-gen] produces valid cursors [✔]
  1817. 54.09 s [cursor-gen] +++ OK, passed 100 tests.
  1818. 54.09 s [cursor-gen] is a movement [✔]
  1819. 54.09 s [cursor-gen] +++ OK, passed 100 tests.
  1820. 54.09 s [cursor-gen] is idempotent [✔]
  1821. 54.09 s [cursor-gen] +++ OK, passed 100 tests.
  1822. 54.09 s [cursor-gen] selects the end position [‐]
  1823. 54.09 s [cursor-gen] # PENDING: No reason given
  1824. 54.09 s [cursor-gen] textCursorPrevChar
  1825. 54.09 s [cursor-gen] produces valid items [✔]
  1826. 54.09 s [cursor-gen] +++ OK, passed 100 tests.
  1827. 54.09 s [cursor-gen] returns the item before the position [‐]
  1828. 54.09 s [cursor-gen] # PENDING: No reason given
  1829. 54.10 s [cursor-gen] textCursorNextChar
  1830. 54.10 s [cursor-gen] produces valid items [✔]
  1831. 54.10 s [cursor-gen] +++ OK, passed 100 tests.
  1832. 54.10 s [cursor-gen] returns the item after the position [‐]
  1833. 54.10 s [cursor-gen] # PENDING: No reason given
  1834. 54.10 s [cursor-gen] textCursorSelectBeginWord
  1835. 54.10 s [cursor-gen] produces valid items [✔]
  1836. 54.10 s [cursor-gen] +++ OK, passed 100 tests.
  1837. 54.10 s [cursor-gen] is a movement [✔]
  1838. 54.10 s [cursor-gen] +++ OK, passed 100 tests.
  1839. 54.10 s [cursor-gen] is idempotent [✔]
  1840. 54.10 s [cursor-gen] +++ OK, passed 100 tests (89% non trivial).
  1841. 54.10 s [cursor-gen] works for this example [✔]
  1842. 54.10 s [cursor-gen] works for this example [✔]
  1843. 54.10 s [cursor-gen] works for this example [✔]
  1844. 54.10 s [cursor-gen] works for this example [✔]
  1845. 54.10 s [cursor-gen] textCursorSelectEndWord
  1846. 54.10 s [cursor-gen] produces valid items [✔]
  1847. 54.10 s [cursor-gen] +++ OK, passed 100 tests.
  1848. 54.10 s [cursor-gen] is a movement [✔]
  1849. 54.10 s [cursor-gen] +++ OK, passed 100 tests.
  1850. 54.10 s [cursor-gen] is idempotent [✔]
  1851. 54.10 s [cursor-gen] +++ OK, passed 100 tests (89% non trivial).
  1852. 54.10 s [cursor-gen] works for this example [✔]
  1853. 54.10 s [cursor-gen] works for this example [✔]
  1854. 54.10 s [cursor-gen] works for this example [✔]
  1855. 54.10 s [cursor-gen] works for this example [✔]
  1856. 54.10 s [cursor-gen] textCursorSelectNextWord
  1857. 54.11 s [cursor-gen] produces valid items [✔]
  1858. 54.11 s [cursor-gen] +++ OK, passed 100 tests.
  1859. 54.11 s [cursor-gen] is a movement [✔]
  1860. 54.11 s [cursor-gen] +++ OK, passed 100 tests.
  1861. 54.11 s [cursor-gen] works for this example [✔]
  1862. 54.11 s [cursor-gen] works for this example [✔]
  1863. 54.11 s [cursor-gen] works for this example [✔]
  1864. 54.11 s [cursor-gen] works for this example [✔]
  1865. 54.11 s [cursor-gen] goes to the end of the cursor [✔]
  1866. 54.11 s [cursor-gen] chooses the next word correctly [✔]
  1867. 54.11 s [cursor-gen] textCursorSelectPrevWord
  1868. 54.11 s [cursor-gen] produces valid items [✔]
  1869. 54.11 s [cursor-gen] +++ OK, passed 100 tests.
  1870. 54.11 s [cursor-gen] is a movement [✔]
  1871. 54.11 s [cursor-gen] +++ OK, passed 100 tests.
  1872. 54.11 s [cursor-gen] works for this example [✔]
  1873. 54.11 s [cursor-gen] works for this example [✔]
  1874. 54.11 s [cursor-gen] works for this example [✔]
  1875. 54.11 s [cursor-gen] works for this example [✔]
  1876. 54.11 s [cursor-gen] goes to the beginning of the cursor [✔]
  1877. 54.11 s [cursor-gen] chooses the previous word correctly [✔]
  1878. 54.11 s [cursor-gen] textCursorInsert
  1879. 54.11 s [cursor-gen] produces valids [✔]
  1880. 54.11 s [cursor-gen] +++ OK, passed 100 tests.
  1881. 54.11 s [cursor-gen] inserts an item before the cursor [‐]
  1882. 54.11 s [cursor-gen] # PENDING: No reason given
  1883. 54.11 s [cursor-gen] textCursorAppend
  1884. 54.11 s [cursor-gen] produces valids [✔]
  1885. 54.11 s [cursor-gen] +++ OK, passed 100 tests.
  1886. 54.11 s [cursor-gen] inserts an item after the cursor [‐]
  1887. 54.11 s [cursor-gen] # PENDING: No reason given
  1888. 54.11 s [cursor-gen] textCursorInsertString
  1889. 54.11 s [cursor-gen] produces valids [✔]
  1890. 54.11 s [cursor-gen] +++ OK, passed 100 tests.
  1891. 54.11 s [cursor-gen] works for this example [✔]
  1892. 54.11 s [cursor-gen] textCursorAppendString
  1893. 54.12 s [cursor-gen] produces valids [✔]
  1894. 54.12 s [cursor-gen] +++ OK, passed 100 tests.
  1895. 54.12 s [cursor-gen] textCursorInsertText
  1896. 54.12 s [cursor-gen] produces valids [✔]
  1897. 54.12 s [cursor-gen] +++ OK, passed 100 tests.
  1898. 54.12 s [cursor-gen] textCursorAppendText
  1899. 54.12 s [cursor-gen] produces valids [✔]
  1900. 54.12 s [cursor-gen] +++ OK, passed 100 tests.
  1901. 54.12 s [cursor-gen] textCursorRemove
  1902. 54.12 s [cursor-gen] produces valids [✔]
  1903. 54.12 s [cursor-gen] +++ OK, passed 100 tests.
  1904. 54.12 s [cursor-gen] removes an item before the cursor [‐]
  1905. 54.12 s [cursor-gen] # PENDING: No reason given
  1906. 54.12 s [cursor-gen] textCursorDelete
  1907. 54.12 s [cursor-gen] produces valids [✔]
  1908. 54.12 s [cursor-gen] +++ OK, passed 100 tests.
  1909. 54.12 s [cursor-gen] removes an item before the cursor [‐]
  1910. 54.12 s [cursor-gen] # PENDING: No reason given
  1911. 54.12 s [cursor-gen] textCursorSplit
  1912. 54.12 s [cursor-gen] produces valids [✔]
  1913. 54.12 s [cursor-gen] +++ OK, passed 100 tests.
  1914. 54.12 s [cursor-gen] produces two list cursors that rebuild to the rebuilding of the original [✔]
  1915. 54.12 s [cursor-gen] +++ OK, passed 100 tests.
  1916. 54.12 s [cursor-gen] textCursorCombine
  1917. 54.13 s [cursor-gen] produces valids [✔]
  1918. 54.13 s [cursor-gen] +++ OK, passed 100 tests.
  1919. 54.13 s [cursor-gen] produces a list that rebuilds to the rebuilding of the original two cursors [✔]
  1920. 54.13 s [cursor-gen] +++ OK, passed 100 tests.
  1921. 54.13 s [cursor-gen] Cursor.TextField
  1922. 54.13 s [cursor-gen] Eq TextFieldCursor
  1923. 54.13 s [cursor-gen] (==) :: TextFieldCursor -> TextFieldCursor -> Bool
  1924. 54.13 s [cursor-gen] is reflexive for "valid TextFieldCursor"s [✔]
  1925. 54.13 s [cursor-gen] +++ OK, passed 100 tests.
  1926. 54.13 s [cursor-gen] is symmetric for "valid TextFieldCursor"s [✔]
  1927. 54.13 s [cursor-gen] +++ OK, passed 100 tests.
  1928. 54.13 s [cursor-gen] is transitive for "valid TextFieldCursor"s [✔]
  1929. 54.13 s [cursor-gen] +++ OK, passed 100 tests.
  1930. 54.13 s [cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid TextFieldCursor"s [✔]
  1931. 54.13 s [cursor-gen] +++ OK, passed 100 tests.
  1932. 54.13 s [cursor-gen] (/=) :: TextFieldCursor -> TextFieldCursor -> Bool
  1933. 54.13 s [cursor-gen] is antireflexive for "valid TextFieldCursor"s [✔]
  1934. 54.13 s [cursor-gen] +++ OK, passed 100 tests.
  1935. 54.13 s [cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid TextFieldCursor"s [✔]
  1936. 54.13 s [cursor-gen] +++ OK, passed 100 tests.
  1937. 54.13 s [cursor-gen] GenValid TextFieldCursor
  1938. 54.13 s [cursor-gen] genValid :: Gen TextFieldCursor
  1939. 54.13 s [cursor-gen] only generates valid 'TextFieldCursor's [✔]
  1940. 54.13 s [cursor-gen] +++ OK, passed 100 tests.
  1941. 54.13 s [cursor-gen] Validity TextFieldCursor
  1942. 54.13 s [cursor-gen] consider a textfield with a newline in the previous lines invalid [✔]
  1943. 54.13 s [cursor-gen] +++ OK, passed 100 tests.
  1944. 54.13 s [cursor-gen] consider a textfield with a newline in the next lines invalid [✔]
  1945. 54.13 s [cursor-gen] +++ OK, passed 100 tests.
  1946. 54.13 s [cursor-gen] makeTextFieldCursor
  1947. 54.13 s [cursor-gen] produces a valid cursor for "\n" [✔]
  1948. 54.13 s [cursor-gen] produces a valid cursor for "\n\n" [✔]
  1949. 54.13 s [cursor-gen] produces valid cursors [✔]
  1950. 54.13 s [cursor-gen] +++ OK, passed 100 tests.
  1951. 54.13 s [cursor-gen] makeTextFieldCursorWithSelection
  1952. 54.13 s [cursor-gen] produces a valid cursor for "\n" [✔]
  1953. 54.13 s [cursor-gen] +++ OK, passed 100 tests.
  1954. 54.13 s [cursor-gen] produces a valid cursor for "\n\n" [✔]
  1955. 54.13 s [cursor-gen] +++ OK, passed 100 tests.
  1956. 54.13 s [cursor-gen] produces valid cursors [✔]
  1957. 54.13 s [cursor-gen] +++ OK, passed 100 tests.
  1958. 54.14 s [cursor-gen] is the inverse of rebuildTextFieldCursor when using the current selection [✔]
  1959. 54.14 s [cursor-gen] +++ OK, passed 100 tests.
  1960. 54.14 s [cursor-gen] rebuildTextFieldCursorLines
  1961. 54.14 s [cursor-gen] produces valid lists [✔]
  1962. 54.14 s [cursor-gen] +++ OK, passed 100 tests.
  1963. 54.14 s [cursor-gen] produces texts without newlines [✔]
  1964. 54.14 s [cursor-gen] +++ OK, passed 100 tests.
  1965. 54.14 s [cursor-gen] rebuildTextFieldCursor
  1966. 54.14 s [cursor-gen] produces valid texts [✔]
  1967. 54.14 s [cursor-gen] +++ OK, passed 100 tests.
  1968. 54.14 s [cursor-gen] is the inverse of makeTextFieldCursor [✔]
  1969. 54.14 s [cursor-gen] +++ OK, passed 100 tests.
  1970. 54.15 s [cursor-gen] is the inverse of makeTextFieldCursorWithSelection for integers, for any index [✔]
  1971. 54.15 s [cursor-gen] +++ OK, passed 100 tests.
  1972. 54.15 s [cursor-gen] textFieldCursorSelection
  1973. 54.15 s [cursor-gen] produces valid tuples [✔]
  1974. 54.15 s [cursor-gen] +++ OK, passed 100 tests.
  1975. 54.15 s [cursor-gen] emptyTextFieldCursor
  1976. 54.15 s [cursor-gen] is valid [✔]
  1977. 54.15 s [cursor-gen] nullTextFieldCursor
  1978. 54.15 s [cursor-gen] produces valid [✔]
  1979. 54.15 s [cursor-gen] +++ OK, passed 100 tests.
  1980. 54.15 s [cursor-gen] textFieldCursorSelectPrevLine
  1981. 54.15 s [cursor-gen] produces valid cursors [✔]
  1982. 54.15 s [cursor-gen] +++ OK, passed 100 tests.
  1983. 54.15 s [cursor-gen] is a movement [✔]
  1984. 54.15 s [cursor-gen] +++ OK, passed 100 tests.
  1985. 54.15 s [cursor-gen] selects the previous line [‐]
  1986. 54.15 s [cursor-gen] # PENDING: No reason given
  1987. 54.15 s [cursor-gen] textFieldCursorSelectNextLine
  1988. 54.15 s [cursor-gen] produces valid cursors [✔]
  1989. 54.15 s [cursor-gen] +++ OK, passed 100 tests.
  1990. 54.16 s [cursor-gen] is a movement [✔]
  1991. 54.16 s [cursor-gen] +++ OK, passed 100 tests.
  1992. 54.16 s [cursor-gen] selects the next line [‐]
  1993. 54.16 s [cursor-gen] # PENDING: No reason given
  1994. 54.16 s [cursor-gen] textFieldCursorSelectFirstLine
  1995. 54.16 s [cursor-gen] produces valid cursors [✔]
  1996. 54.16 s [cursor-gen] +++ OK, passed 100 tests.
  1997. 54.16 s [cursor-gen] is a movement [✔]
  1998. 54.16 s [cursor-gen] +++ OK, passed 100 tests.
  1999. 54.16 s [cursor-gen] is idempotent [✔]
  2000. 54.16 s [cursor-gen] +++ OK, passed 100 tests.
  2001. 54.16 s [cursor-gen] selects the first line [‐]
  2002. 54.16 s [cursor-gen] # PENDING: No reason given
  2003. 54.16 s [cursor-gen] textFieldCursorSelectLastLine
  2004. 54.16 s [cursor-gen] produces valid cursors [✔]
  2005. 54.16 s [cursor-gen] +++ OK, passed 100 tests.
  2006. 54.17 s [cursor-gen] is a movement [✔]
  2007. 54.17 s [cursor-gen] +++ OK, passed 100 tests.
  2008. 54.17 s [cursor-gen] is idempotent [✔]
  2009. 54.17 s [cursor-gen] +++ OK, passed 100 tests.
  2010. 54.17 s [cursor-gen] selects the last line [‐]
  2011. 54.17 s [cursor-gen] # PENDING: No reason given
  2012. 54.17 s [cursor-gen] textFieldCursorSelectPrevChar
  2013. 54.17 s [cursor-gen] produces valid cursors [✔]
  2014. 54.17 s [cursor-gen] +++ OK, passed 100 tests.
  2015. 54.17 s [cursor-gen] selects the previous character on the current line [‐]
  2016. 54.17 s [cursor-gen] # PENDING: No reason given
  2017. 54.17 s [cursor-gen] textFieldCursorSelectNextChar
  2018. 54.17 s [cursor-gen] produces valid cursors [✔]
  2019. 54.17 s [cursor-gen] +++ OK, passed 100 tests.
  2020. 54.17 s [cursor-gen] selects the previous character on the current line [‐]
  2021. 54.17 s [cursor-gen] # PENDING: No reason given
  2022. 54.17 s [cursor-gen] textFieldCursorSelectBeginWord
  2023. 54.18 s [cursor-gen] produces valid cursors [✔]
  2024. 54.18 s [cursor-gen] +++ OK, passed 100 tests.
  2025. 54.18 s [cursor-gen] textFieldCursorSelectEndWord
  2026. 54.18 s [cursor-gen] produces valid cursors [✔]
  2027. 54.18 s [cursor-gen] +++ OK, passed 100 tests.
  2028. 54.18 s [cursor-gen] textFieldCursorSelectPrevWord
  2029. 54.18 s [cursor-gen] produces valid cursors [✔]
  2030. 54.18 s [cursor-gen] +++ OK, passed 100 tests.
  2031. 54.18 s [cursor-gen] textFieldCursorSelectNextWord
  2032. 54.18 s [cursor-gen] produces valid cursors [✔]
  2033. 54.18 s [cursor-gen] +++ OK, passed 100 tests.
  2034. 54.18 s [cursor-gen] textFieldCursorIndexOnLine
  2035. 54.18 s [cursor-gen] produces valid indices [✔]
  2036. 54.18 s [cursor-gen] +++ OK, passed 100 tests.
  2037. 54.18 s [cursor-gen] returns the index on the current line [‐]
  2038. 54.18 s [cursor-gen] # PENDING: No reason given
  2039. 54.18 s [cursor-gen] textFieldCursorSelectIndexOnLine
  2040. 54.18 s [cursor-gen] produces valid cursors for any index [✔]
  2041. 54.18 s [cursor-gen] +++ OK, passed 100 tests.
  2042. 54.18 s [cursor-gen] selects the given index on the current line [‐]
  2043. 54.19 s [cursor-gen] # PENDING: No reason given
  2044. 54.19 s [cursor-gen] textFieldCursorInsertChar
  2045. 54.19 s [cursor-gen] produces valid cursors [✔]
  2046. 54.19 s [cursor-gen] +++ OK, passed 100 tests.
  2047. 54.19 s [cursor-gen] inserts a character before the cursor on the current line [‐]
  2048. 54.19 s [cursor-gen] # PENDING: No reason given
  2049. 54.19 s [cursor-gen] textFieldCursorAppendChar
  2050. 54.19 s [cursor-gen] produces valid cursors [✔]
  2051. 54.19 s [cursor-gen] +++ OK, passed 100 tests.
  2052. 54.19 s [cursor-gen] inserts a character after the cursor on the currrent line [‐]
  2053. 54.19 s [cursor-gen] # PENDING: No reason given
  2054. 54.19 s [cursor-gen] textFieldCursorInsertNewline
  2055. 54.19 s [cursor-gen] produces valid cursors [✔]
  2056. 54.19 s [cursor-gen] +++ OK, passed 100 tests.
  2057. 54.19 s [cursor-gen] inserts a new line [‐]
  2058. 54.19 s [cursor-gen] # PENDING: No reason given
  2059. 54.19 s [cursor-gen] textFieldCursorAppendNewline
  2060. 54.19 s [cursor-gen] produces valid cursors [✔]
  2061. 54.19 s [cursor-gen] +++ OK, passed 100 tests.
  2062. 54.19 s [cursor-gen] textFieldCursorRemove
  2063. 54.19 s [cursor-gen] produces valid cursors [✔]
  2064. 54.19 s [cursor-gen] +++ OK, passed 100 tests.
  2065. 54.19 s [cursor-gen] removes empty text field cursor [✔]
  2066. 54.19 s [cursor-gen] removes a character or a line [‐]
  2067. 54.19 s [cursor-gen] # PENDING: No reason given
  2068. 54.19 s [cursor-gen] textFieldCursorDelete
  2069. 54.20 s [cursor-gen] produces valid cursors [✔]
  2070. 54.20 s [cursor-gen] +++ OK, passed 100 tests.
  2071. 54.20 s [cursor-gen] removes empty text field cursor [✔]
  2072. 54.20 s [cursor-gen] deletes a character or a line [‐]
  2073. 54.20 s [cursor-gen] # PENDING: No reason given
  2074. 54.20 s [cursor-gen] textFieldCursorSelectStartOfLine
  2075. 54.20 s [cursor-gen] produces valid cursors [✔]
  2076. 54.20 s [cursor-gen] +++ OK, passed 100 tests.
  2077. 54.20 s [cursor-gen] selects the start of the current line [‐]
  2078. 54.20 s [cursor-gen] # PENDING: No reason given
  2079. 54.20 s [cursor-gen] textFieldCursorSelectEndOfLine
  2080. 54.20 s [cursor-gen] produces valid cursors [✔]
  2081. 54.20 s [cursor-gen] +++ OK, passed 100 tests.
  2082. 54.20 s [cursor-gen] selects the end of the current line [‐]
  2083. 54.20 s [cursor-gen] # PENDING: No reason given
  2084. 54.20 s [cursor-gen] Cursor.Tree.Types
  2085. 54.20 s [cursor-gen] Eq TreeCursorSelection
  2086. 54.20 s [cursor-gen] (==) :: TreeCursorSelection -> TreeCursorSelection -> Bool
  2087. 54.20 s [cursor-gen] is reflexive for "valid TreeCursorSelection"s [✔]
  2088. 54.20 s [cursor-gen] +++ OK, passed 100 tests.
  2089. 54.20 s [cursor-gen] is symmetric for "valid TreeCursorSelection"s [✔]
  2090. 54.20 s [cursor-gen] +++ OK, passed 100 tests.
  2091. 54.20 s [cursor-gen] is transitive for "valid TreeCursorSelection"s [✔]
  2092. 54.20 s [cursor-gen] +++ OK, passed 100 tests.
  2093. 54.20 s [cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid TreeCursorSelection"s [✔]
  2094. 54.20 s [cursor-gen] +++ OK, passed 100 tests.
  2095. 54.20 s [cursor-gen] (/=) :: TreeCursorSelection -> TreeCursorSelection -> Bool
  2096. 54.20 s [cursor-gen] is antireflexive for "valid TreeCursorSelection"s [✔]
  2097. 54.20 s [cursor-gen] +++ OK, passed 100 tests.
  2098. 54.20 s [cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid TreeCursorSelection"s [✔]
  2099. 54.20 s [cursor-gen] +++ OK, passed 100 tests.
  2100. 54.20 s [cursor-gen] GenValid TreeCursorSelection
  2101. 54.20 s [cursor-gen] genValid :: Gen TreeCursorSelection
  2102. 54.20 s [cursor-gen] only generates valid 'TreeCursorSelection's [✔]
  2103. 54.20 s [cursor-gen] +++ OK, passed 100 tests.
  2104. 54.20 s [cursor-gen] shrinkValid :: (TreeCursorSelection -> [TreeCursorSelection])
  2105. 54.20 s [cursor-gen] preserves validity for the first 10 elements [✔]
  2106. 54.20 s [cursor-gen] +++ OK, passed 100 tests.
  2107. 54.20 s [cursor-gen] never shrinks to itself for valid values for the first 10 elements [✔]
  2108. 54.20 s [cursor-gen] +++ OK, passed 100 tests.
  2109. 54.20 s [cursor-gen] Eq (SwapResult Bool)
  2110. 54.20 s [cursor-gen] (==) :: (SwapResult Bool) -> (SwapResult Bool) -> Bool
  2111. 54.20 s [cursor-gen] is reflexive for "valid (SwapResult Bool)"s [✔]
  2112. 54.20 s [cursor-gen] +++ OK, passed 100 tests.
  2113. 54.21 s [cursor-gen] is symmetric for "valid (SwapResult Bool)"s [✔]
  2114. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2115. 54.21 s [cursor-gen] is transitive for "valid (SwapResult Bool)"s [✔]
  2116. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2117. 54.21 s [cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid (SwapResult Bool)"s [✔]
  2118. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2119. 54.21 s [cursor-gen] (/=) :: (SwapResult Bool) -> (SwapResult Bool) -> Bool
  2120. 54.21 s [cursor-gen] is antireflexive for "valid (SwapResult Bool)"s [✔]
  2121. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2122. 54.21 s [cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid (SwapResult Bool)"s [✔]
  2123. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2124. 54.21 s [cursor-gen] GenValid (SwapResult Bool)
  2125. 54.21 s [cursor-gen] genValid :: Gen (SwapResult Bool)
  2126. 54.21 s [cursor-gen] only generates valid '(SwapResult Bool)'s [✔]
  2127. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2128. 54.21 s [cursor-gen] shrinkValid :: (SwapResult Bool -> [SwapResult Bool])
  2129. 54.21 s [cursor-gen] preserves validity for the first 10 elements [✔]
  2130. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2131. 54.21 s [cursor-gen] never shrinks to itself for valid values for the first 10 elements [✔]
  2132. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2133. 54.21 s [cursor-gen] Eq (PromoteElemResult Bool)
  2134. 54.21 s [cursor-gen] (==) :: (PromoteElemResult Bool) -> (PromoteElemResult Bool) -> Bool
  2135. 54.21 s [cursor-gen] is reflexive for "valid (PromoteElemResult Bool)"s [✔]
  2136. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2137. 54.21 s [cursor-gen] is symmetric for "valid (PromoteElemResult Bool)"s [✔]
  2138. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2139. 54.21 s [cursor-gen] is transitive for "valid (PromoteElemResult Bool)"s [✔]
  2140. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2141. 54.21 s [cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid (PromoteElemResult Bool)"s [✔]
  2142. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2143. 54.21 s [cursor-gen] (/=) :: (PromoteElemResult Bool) -> (PromoteElemResult Bool) -> Bool
  2144. 54.21 s [cursor-gen] is antireflexive for "valid (PromoteElemResult Bool)"s [✔]
  2145. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2146. 54.21 s [cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid (PromoteElemResult Bool)"s [✔]
  2147. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2148. 54.21 s [cursor-gen] GenValid (PromoteElemResult Bool)
  2149. 54.21 s [cursor-gen] genValid :: Gen (PromoteElemResult Bool)
  2150. 54.21 s [cursor-gen] only generates valid '(PromoteElemResult Bool)'s [✔]
  2151. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2152. 54.21 s [cursor-gen] shrinkValid :: (PromoteElemResult Bool -> [PromoteElemResult Bool])
  2153. 54.21 s [cursor-gen] preserves validity for the first 10 elements [✔]
  2154. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2155. 54.21 s [cursor-gen] never shrinks to itself for valid values for the first 10 elements [✔]
  2156. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2157. 54.21 s [cursor-gen] Eq (PromoteResult Bool)
  2158. 54.21 s [cursor-gen] (==) :: (PromoteResult Bool) -> (PromoteResult Bool) -> Bool
  2159. 54.21 s [cursor-gen] is reflexive for "valid (PromoteResult Bool)"s [✔]
  2160. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2161. 54.21 s [cursor-gen] is symmetric for "valid (PromoteResult Bool)"s [✔]
  2162. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2163. 54.21 s [cursor-gen] is transitive for "valid (PromoteResult Bool)"s [✔]
  2164. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2165. 54.21 s [cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid (PromoteResult Bool)"s [✔]
  2166. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2167. 54.21 s [cursor-gen] (/=) :: (PromoteResult Bool) -> (PromoteResult Bool) -> Bool
  2168. 54.21 s [cursor-gen] is antireflexive for "valid (PromoteResult Bool)"s [✔]
  2169. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2170. 54.21 s [cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid (PromoteResult Bool)"s [✔]
  2171. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2172. 54.21 s [cursor-gen] GenValid (PromoteResult Bool)
  2173. 54.21 s [cursor-gen] genValid :: Gen (PromoteResult Bool)
  2174. 54.21 s [cursor-gen] only generates valid '(PromoteResult Bool)'s [✔]
  2175. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2176. 54.21 s [cursor-gen] shrinkValid :: (PromoteResult Bool -> [PromoteResult Bool])
  2177. 54.21 s [cursor-gen] preserves validity for the first 10 elements [✔]
  2178. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2179. 54.21 s [cursor-gen] never shrinks to itself for valid values for the first 10 elements [✔]
  2180. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2181. 54.21 s [cursor-gen] Eq (DemoteResult Bool)
  2182. 54.21 s [cursor-gen] (==) :: (DemoteResult Bool) -> (DemoteResult Bool) -> Bool
  2183. 54.21 s [cursor-gen] is reflexive for "valid (DemoteResult Bool)"s [✔]
  2184. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2185. 54.21 s [cursor-gen] is symmetric for "valid (DemoteResult Bool)"s [✔]
  2186. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2187. 54.21 s [cursor-gen] is transitive for "valid (DemoteResult Bool)"s [✔]
  2188. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2189. 54.21 s [cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid (DemoteResult Bool)"s [✔]
  2190. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2191. 54.21 s [cursor-gen] (/=) :: (DemoteResult Bool) -> (DemoteResult Bool) -> Bool
  2192. 54.21 s [cursor-gen] is antireflexive for "valid (DemoteResult Bool)"s [✔]
  2193. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2194. 54.21 s [cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid (DemoteResult Bool)"s [✔]
  2195. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2196. 54.21 s [cursor-gen] GenValid (DemoteResult Bool)
  2197. 54.21 s [cursor-gen] genValid :: Gen (DemoteResult Bool)
  2198. 54.21 s [cursor-gen] only generates valid '(DemoteResult Bool)'s [✔]
  2199. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2200. 54.21 s [cursor-gen] shrinkValid :: (DemoteResult Bool -> [DemoteResult Bool])
  2201. 54.21 s [cursor-gen] preserves validity for the first 10 elements [✔]
  2202. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2203. 54.21 s [cursor-gen] never shrinks to itself for valid values for the first 10 elements [✔]
  2204. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2205. 54.21 s [cursor-gen] Eq (CTree Bool)
  2206. 54.21 s [cursor-gen] (==) :: (CTree Bool) -> (CTree Bool) -> Bool
  2207. 54.21 s [cursor-gen] is reflexive for "valid (CTree Bool)"s [✔]
  2208. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2209. 54.21 s [cursor-gen] is symmetric for "valid (CTree Bool)"s [✔]
  2210. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2211. 54.21 s [cursor-gen] is transitive for "valid (CTree Bool)"s [✔]
  2212. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2213. 54.21 s [cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid (CTree Bool)"s [✔]
  2214. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2215. 54.21 s [cursor-gen] (/=) :: (CTree Bool) -> (CTree Bool) -> Bool
  2216. 54.21 s [cursor-gen] is antireflexive for "valid (CTree Bool)"s [✔]
  2217. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2218. 54.21 s [cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid (CTree Bool)"s [✔]
  2219. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2220. 54.21 s [cursor-gen] GenValid (CTree Bool)
  2221. 54.21 s [cursor-gen] genValid :: Gen (CTree Bool)
  2222. 54.21 s [cursor-gen] only generates valid '(CTree Bool)'s [✔]
  2223. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2224. 54.21 s [cursor-gen] shrinkValid :: (CTree Bool -> [CTree Bool])
  2225. 54.21 s [cursor-gen] preserves validity for the first 10 elements [✔]
  2226. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2227. 54.21 s [cursor-gen] never shrinks to itself for valid values for the first 10 elements [✔]
  2228. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2229. 54.21 s [cursor-gen] Eq (CForest Bool)
  2230. 54.21 s [cursor-gen] (==) :: (CForest Bool) -> (CForest Bool) -> Bool
  2231. 54.21 s [cursor-gen] is reflexive for "valid (CForest Bool)"s [✔]
  2232. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2233. 54.21 s [cursor-gen] is symmetric for "valid (CForest Bool)"s [✔]
  2234. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2235. 54.21 s [cursor-gen] is transitive for "valid (CForest Bool)"s [✔]
  2236. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2237. 54.21 s [cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid (CForest Bool)"s [✔]
  2238. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2239. 54.21 s [cursor-gen] (/=) :: (CForest Bool) -> (CForest Bool) -> Bool
  2240. 54.21 s [cursor-gen] is antireflexive for "valid (CForest Bool)"s [✔]
  2241. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2242. 54.21 s [cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid (CForest Bool)"s [✔]
  2243. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2244. 54.21 s [cursor-gen] GenValid (CForest Bool)
  2245. 54.21 s [cursor-gen] genValid :: Gen (CForest Bool)
  2246. 54.21 s [cursor-gen] only generates valid '(CForest Bool)'s [✔]
  2247. 54.21 s [cursor-gen] +++ OK, passed 100 tests.
  2248. 54.21 s [cursor-gen] shrinkValid :: (CForest Bool -> [CForest Bool])
  2249. 54.22 s [cursor-gen] preserves validity for the first 10 elements [✔]
  2250. 54.22 s [cursor-gen] +++ OK, passed 100 tests.
  2251. 54.22 s [cursor-gen] never shrinks to itself for valid values for the first 10 elements [✔]
  2252. 54.22 s [cursor-gen] +++ OK, passed 100 tests.
  2253. 54.22 s [cursor-gen] Eq (TreeAbove Bool)
  2254. 54.22 s [cursor-gen] (==) :: (TreeAbove Bool) -> (TreeAbove Bool) -> Bool
  2255. 54.22 s [cursor-gen] is reflexive for "valid (TreeAbove Bool)"s [✔]
  2256. 54.22 s [cursor-gen] +++ OK, passed 100 tests.
  2257. 54.22 s [cursor-gen] is symmetric for "valid (TreeAbove Bool)"s [✔]
  2258. 54.22 s [cursor-gen] +++ OK, passed 100 tests.
  2259. 54.22 s [cursor-gen] is transitive for "valid (TreeAbove Bool)"s [✔]
  2260. 54.22 s [cursor-gen] +++ OK, passed 100 tests.
  2261. 54.22 s [cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid (TreeAbove Bool)"s [✔]
  2262. 54.22 s [cursor-gen] +++ OK, passed 100 tests.
  2263. 54.22 s [cursor-gen] (/=) :: (TreeAbove Bool) -> (TreeAbove Bool) -> Bool
  2264. 54.22 s [cursor-gen] is antireflexive for "valid (TreeAbove Bool)"s [✔]
  2265. 54.22 s [cursor-gen] +++ OK, passed 100 tests.
  2266. 54.22 s [cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid (TreeAbove Bool)"s [✔]
  2267. 54.22 s [cursor-gen] +++ OK, passed 100 tests.
  2268. 54.22 s [cursor-gen] GenValid (TreeAbove Bool)
  2269. 54.22 s [cursor-gen] genValid :: Gen (TreeAbove Bool)
  2270. 54.22 s [cursor-gen] only generates valid '(TreeAbove Bool)'s [✔]
  2271. 54.22 s [cursor-gen] +++ OK, passed 100 tests.
  2272. 54.22 s [cursor-gen] shrinkValid :: (TreeAbove Bool -> [TreeAbove Bool])
  2273. 54.22 s [cursor-gen] preserves validity for the first 10 elements [✔]
  2274. 54.22 s [cursor-gen] +++ OK, passed 100 tests.
  2275. 54.23 s [cursor-gen] never shrinks to itself for valid values for the first 10 elements [✔]
  2276. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2277. 54.23 s [cursor-gen] treeAboveLeftsL
  2278. 54.23 s [cursor-gen] satisfies the first lens law for valid values and valid values [✔]
  2279. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2280. 54.23 s [cursor-gen] satisfies the second lens law for valid values [✔]
  2281. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2282. 54.23 s [cursor-gen] satisfies the third lens law for valid values and valid values [✔]
  2283. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2284. 54.23 s [cursor-gen] gets valid values from valid values values [✔]
  2285. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2286. 54.23 s [cursor-gen] produces valid values when it is used to set valid values values on valid values values [✔]
  2287. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2288. 54.23 s [cursor-gen] treeAboveAboveL
  2289. 54.23 s [cursor-gen] satisfies the first lens law for valid values and valid values [✔]
  2290. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2291. 54.23 s [cursor-gen] satisfies the second lens law for valid values [✔]
  2292. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2293. 54.23 s [cursor-gen] satisfies the third lens law for valid values and valid values [✔]
  2294. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2295. 54.23 s [cursor-gen] gets valid values from valid values values [✔]
  2296. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2297. 54.23 s [cursor-gen] produces valid values when it is used to set valid values values on valid values values [✔]
  2298. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2299. 54.23 s [cursor-gen] treeAboveNodeL
  2300. 54.23 s [cursor-gen] satisfies the first lens law for valid values and valid values [✔]
  2301. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2302. 54.23 s [cursor-gen] satisfies the second lens law for valid values [✔]
  2303. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2304. 54.23 s [cursor-gen] satisfies the third lens law for valid values and valid values [✔]
  2305. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2306. 54.23 s [cursor-gen] gets valid values from valid values values [✔]
  2307. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2308. 54.23 s [cursor-gen] produces valid values when it is used to set valid values values on valid values values [✔]
  2309. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2310. 54.23 s [cursor-gen] treeAboveRightsL
  2311. 54.23 s [cursor-gen] satisfies the first lens law for valid values and valid values [✔]
  2312. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2313. 54.23 s [cursor-gen] satisfies the second lens law for valid values [✔]
  2314. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2315. 54.23 s [cursor-gen] satisfies the third lens law for valid values and valid values [✔]
  2316. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2317. 54.23 s [cursor-gen] gets valid values from valid values values [✔]
  2318. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2319. 54.23 s [cursor-gen] produces valid values when it is used to set valid values values on valid values values [✔]
  2320. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2321. 54.23 s [cursor-gen] Eq (TreeCursor Bool Word)
  2322. 54.23 s [cursor-gen] (==) :: (TreeCursor Bool Word) -> (TreeCursor Bool Word) -> Bool
  2323. 54.23 s [cursor-gen] is reflexive for "valid (TreeCursor Bool Word)"s [✔]
  2324. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2325. 54.23 s [cursor-gen] is symmetric for "valid (TreeCursor Bool Word)"s [✔]
  2326. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2327. 54.23 s [cursor-gen] is transitive for "valid (TreeCursor Bool Word)"s [✔]
  2328. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2329. 54.23 s [cursor-gen] is equivalent to (\a b -> not $ a /= b) for "valid (TreeCursor Bool Word)"s [✔]
  2330. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2331. 54.23 s [cursor-gen] (/=) :: (TreeCursor Bool Word) -> (TreeCursor Bool Word) -> Bool
  2332. 54.23 s [cursor-gen] is antireflexive for "valid (TreeCursor Bool Word)"s [✔]
  2333. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2334. 54.23 s [cursor-gen] is equivalent to (\a b -> not $ a == b) for "valid (TreeCursor Bool Word)"s [✔]
  2335. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2336. 54.23 s [cursor-gen] GenValid (TreeCursor Bool Bool)
  2337. 54.23 s [cursor-gen] genValid :: Gen (TreeCursor Bool Bool)
  2338. 54.23 s [cursor-gen] only generates valid '(TreeCursor Bool Bool)'s [✔]
  2339. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2340. 54.23 s [cursor-gen] shrinkValid :: (TreeCursor Word Bool -> [TreeCursor Word Bool])
  2341. 54.23 s [cursor-gen] preserves validity for the first 10 elements [✔]
  2342. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2343. 54.23 s [cursor-gen] never shrinks to itself for valid values for the first 10 elements [✔]
  2344. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2345. 54.23 s [cursor-gen] treeCursorAboveL
  2346. 54.23 s [cursor-gen] satisfies the first lens law for valid values and valid values [✔]
  2347. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2348. 54.23 s [cursor-gen] satisfies the second lens law for valid values [✔]
  2349. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2350. 54.23 s [cursor-gen] satisfies the third lens law for valid values and valid values [✔]
  2351. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2352. 54.23 s [cursor-gen] gets valid values from valid values values [✔]
  2353. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2354. 54.23 s [cursor-gen] produces valid values when it is used to set valid values values on valid values values [✔]
  2355. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2356. 54.23 s [cursor-gen] treeCursorCurrentL
  2357. 54.23 s [cursor-gen] satisfies the first lens law for valid values and valid values [✔]
  2358. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2359. 54.23 s [cursor-gen] satisfies the second lens law for valid values [✔]
  2360. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2361. 54.23 s [cursor-gen] satisfies the third lens law for valid values and valid values [✔]
  2362. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2363. 54.23 s [cursor-gen] gets valid values from valid values values [✔]
  2364. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2365. 54.23 s [cursor-gen] produces valid values when it is used to set valid values values on valid values values [✔]
  2366. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2367. 54.23 s [cursor-gen] treeCursorBelowL
  2368. 54.23 s [cursor-gen] satisfies the first lens law for valid values and valid values [✔]
  2369. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2370. 54.23 s [cursor-gen] satisfies the second lens law for valid values [✔]
  2371. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2372. 54.23 s [cursor-gen] satisfies the third lens law for valid values and valid values [✔]
  2373. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2374. 54.23 s [cursor-gen] gets valid values from valid values values [✔]
  2375. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2376. 54.23 s [cursor-gen] produces valid values when it is used to set valid values values on valid values values [✔]
  2377. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2378. 54.23 s [cursor-gen] treeCursorCurrentSubTreeL
  2379. 54.23 s [cursor-gen] satisfies the first lens law for valid values and valid values [✔]
  2380. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2381. 54.23 s [cursor-gen] satisfies the second lens law for valid values [✔]
  2382. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2383. 54.23 s [cursor-gen] satisfies the third lens law for valid values and valid values [✔]
  2384. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2385. 54.23 s [cursor-gen] gets valid values from valid values values [✔]
  2386. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2387. 54.23 s [cursor-gen] produces valid values when it is used to set valid values values on valid values values [✔]
  2388. 54.23 s [cursor-gen] +++ OK, passed 100 tests.
  2389. 54.23 s [cursor-gen]
  2390. 54.23 s [cursor-gen] Finished in 3.9882 seconds
  2391. 54.23 s [cursor-gen] 881 examples, 0 failures, 173 pending
  2392. 54.33 s [cursor-gen] Test suite cursor-test: PASS
  2393. 54.33 s [cursor-gen] Test suite logged to: dist/test/cursor-gen-0.4.0.0-cursor-test.log
  2394. 54.33 s [cursor-gen] 1 of 1 test suites (1 of 1 test cases) passed.
  2395. 55.31 s [cursor-gen] Phase: haddockPhase
  2396. 55.43 s [cursor-gen] Preprocessing library for cursor-gen-0.4.0.0..
  2397. 55.43 s [cursor-gen] Running Haddock on library for cursor-gen-0.4.0.0..
  2398. 55.49 s [cursor-gen] Warning: --source-* options are ignored when --hyperlinked-source is enabled.
  2399. 55.69 s [cursor-gen] 0% ( 0 / 3) in 'Cursor.List.Gen'
  2400. 55.69 s [cursor-gen] Missing documentation for:
  2401. 55.69 s [cursor-gen] Module header
  2402. 55.69 s [cursor-gen] listCursorWithGen (src/Cursor/List/Gen.hs:24)
  2403. 55.69 s [cursor-gen] listCursorWithIndex0 (src/Cursor/List/Gen.hs:27)
  2404. 55.71 s [cursor-gen] 0% ( 0 / 5) in 'Cursor.List.NonEmpty.Gen'
  2405. 55.71 s [cursor-gen] Missing documentation for:
  2406. 55.71 s [cursor-gen] Module header
  2407. 55.71 s [cursor-gen] genNonEmptyCursorBy (src/Cursor/List/NonEmpty/Gen.hs:23)
  2408. 55.71 s [cursor-gen] nonEmptyElemOf (src/Cursor/List/NonEmpty/Gen.hs:37)
  2409. 55.71 s [cursor-gen] nonEmptyWithIndex0 (src/Cursor/List/NonEmpty/Gen.hs:40)
  2410. 55.71 s [cursor-gen] nonEmptyWith (src/Cursor/List/NonEmpty/Gen.hs:43)
  2411. 55.72 s [cursor-gen] 0% ( 0 / 3) in 'Cursor.Map.KeyValue.Gen'
  2412. 55.72 s [cursor-gen] Missing documentation for:
  2413. 55.72 s [cursor-gen] Module header
  2414. 55.72 s [cursor-gen] genKeyValueCursorBy (src/Cursor/Map/KeyValue/Gen.hs:22)
  2415. 55.72 s [cursor-gen] genKeyValueCursorByDependent (src/Cursor/Map/KeyValue/Gen.hs:26)
  2416. 55.73 s [cursor-gen] 0% ( 0 / 3) in 'Cursor.Map.Gen'
  2417. 55.73 s [cursor-gen] Missing documentation for:
  2418. 55.73 s [cursor-gen] Module header
  2419. 55.73 s [cursor-gen] genMapCursorBy (src/Cursor/Map/Gen.hs:20)
  2420. 55.73 s [cursor-gen] genMapCursorByDependent (src/Cursor/Map/Gen.hs:25)
  2421. 55.73 s [cursor-gen] 0% ( 0 / 4) in 'Cursor.Simple.List.NonEmpty.Gen'
  2422. 55.73 s [cursor-gen] Missing documentation for:
  2423. 55.73 s [cursor-gen] Module header
  2424. 55.73 s [cursor-gen] nonEmptyElemOf (src/Cursor/Simple/List/NonEmpty/Gen.hs:12)
  2425. 55.73 s [cursor-gen] nonEmptyWithIndex0 (src/Cursor/Simple/List/NonEmpty/Gen.hs:15)
  2426. 55.73 s [cursor-gen] nonEmptyWith (src/Cursor/Simple/List/NonEmpty/Gen.hs:18)
  2427. 55.73 s [cursor-gen] 0% ( 0 / 1) in 'Cursor.Simple.Map.Gen'
  2428. 55.73 s [cursor-gen] Missing documentation for:
  2429. 55.73 s [cursor-gen] Module header
  2430. 55.73 s [cursor-gen] 0% ( 0 / 1) in 'Cursor.Simple.Map.KeyValue.Gen'
  2431. 55.73 s [cursor-gen] Missing documentation for:
  2432. 55.73 s [cursor-gen] Module header
  2433. 55.74 s [cursor-gen] 0% ( 0 / 7) in 'Cursor.Text.Gen'
  2434. 55.74 s [cursor-gen] Missing documentation for:
  2435. 55.74 s [cursor-gen] Module header
  2436. 55.74 s [cursor-gen] genSafeChar (src/Cursor/Text/Gen.hs:26)
  2437. 55.74 s [cursor-gen] genTextCursorChar (src/Cursor/Text/Gen.hs:32)
  2438. 55.74 s [cursor-gen] textCursorSentenceGen (src/Cursor/Text/Gen.hs:41)
  2439. 55.74 s [cursor-gen] textCursorWithGen (src/Cursor/Text/Gen.hs:35)
  2440. 55.74 s [cursor-gen] textCursorWithIndex0 (src/Cursor/Text/Gen.hs:38)
  2441. 55.74 s [cursor-gen] shrinkSentence (src/Cursor/Text/Gen.hs:47)
  2442. 55.75 s [cursor-gen] 0% ( 0 / 1) in 'Cursor.TextField.Gen'
  2443. 55.75 s [cursor-gen] Missing documentation for:
  2444. 55.75 s [cursor-gen] Module header
  2445. 55.76 s [cursor-gen] 0% ( 0 / 1) in 'Cursor.Tree.Gen'
  2446. 55.76 s [cursor-gen] Missing documentation for:
  2447. 55.76 s [cursor-gen] Module header
  2448. 55.78 s [cursor-gen] 0% ( 0 / 1) in 'Cursor.Simple.Tree.Gen'
  2449. 55.78 s [cursor-gen] Missing documentation for:
  2450. 55.78 s [cursor-gen] Module header
  2451. 55.78 s [cursor-gen] 0% ( 0 / 1) in 'Cursor.Forest.Gen'
  2452. 55.78 s [cursor-gen] Missing documentation for:
  2453. 55.78 s [cursor-gen] Module header
  2454. 55.78 s [cursor-gen] 0% ( 0 / 1) in 'Cursor.Simple.Forest.Gen'
  2455. 55.78 s [cursor-gen] Missing documentation for:
  2456. 55.78 s [cursor-gen] Module header
  2457. 58.00 s [cursor-gen] Documentation created: dist/doc/html/cursor-gen/,
  2458. 58.00 s [cursor-gen] dist/doc/html/cursor-gen/cursor-gen.txt
  2459. 58.04 s [cursor-gen] Preprocessing test suite 'cursor-test' for cursor-gen-0.4.0.0..
  2460. 58.22 s [cursor-gen] Phase: installPhase
  2461. 58.22 s [cursor-gen] Installing library in /nix/store/5pzifz9p13qnvjj2f81cqs3asmshjkll-cursor-gen-0.4.0.0/lib/ghc-9.6.6/lib/x86_64-linux-ghc-9.6.6/cursor-gen-0.4.0.0-6ALASydxdrrAFK2oOBGjG9
  2462. 58.37 s [cursor-gen] Phase: fixupPhase
  2463. 58.39 s [cursor-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/5pzifz9p13qnvjj2f81cqs3asmshjkll-cursor-gen-0.4.0.0
  2464. 58.39 s [cursor-gen] shrinking /nix/store/5pzifz9p13qnvjj2f81cqs3asmshjkll-cursor-gen-0.4.0.0/lib/ghc-9.6.6/lib/x86_64-linux-ghc-9.6.6/libHScursor-gen-0.4.0.0-6ALASydxdrrAFK2oOBGjG9-ghc9.6.6.so
  2465. 58.41 s [cursor-gen] checking for references to /build/ in /nix/store/5pzifz9p13qnvjj2f81cqs3asmshjkll-cursor-gen-0.4.0.0...
  2466. 58.42 s [cursor-gen] patching script interpreter paths in /nix/store/5pzifz9p13qnvjj2f81cqs3asmshjkll-cursor-gen-0.4.0.0
  2467. 58.43 s [cursor-gen] stripping (with command strip and flags -S -p) in /nix/store/5pzifz9p13qnvjj2f81cqs3asmshjkll-cursor-gen-0.4.0.0/lib
  2468. 58.48 s [cursor-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/jqccvcnkb15bpgai8s0w8ra5sxxxh3ps-cursor-gen-0.4.0.0-doc
  2469. 58.49 s [cursor-gen] checking for references to /build/ in /nix/store/jqccvcnkb15bpgai8s0w8ra5sxxxh3ps-cursor-gen-0.4.0.0-doc...
  2470. 58.49 s [cursor-gen] patching script interpreter paths in /nix/store/jqccvcnkb15bpgai8s0w8ra5sxxxh3ps-cursor-gen-0.4.0.0-doc
  2471. 58.54 s [post-build-hook] Uploading to cachix cache "cursor": /nix/store/5pzifz9p13qnvjj2f81cqs3asmshjkll-cursor-gen-0.4.0.0 /nix/store/jqccvcnkb15bpgai8s0w8ra5sxxxh3ps-cursor-gen-0.4.0.0-doc
  2472. 58.93 s [post-build-hook] Pushing 3 paths (84 are already present) using zstd to cache cursor ⏳
  2473. 58.93 s [post-build-hook]
  2474. 59.34 s [post-build-hook] Pushing /nix/store/5pzifz9p13qnvjj2f81cqs3asmshjkll-cursor-gen-0.4.0.0 (2.23 MiB)
  2475. 59.35 s [post-build-hook] Pushing /nix/store/sk59zgr2kcdnwsjk26c79n0dl6s72pvr-mpfr-4.2.1 (775.71 KiB)
  2476. 59.37 s [post-build-hook] Pushing /nix/store/jqccvcnkb15bpgai8s0w8ra5sxxxh3ps-cursor-gen-0.4.0.0-doc (489.75 KiB)
  2477. 60.98 s [post-build-hook]
  2478. 60.98 s [post-build-hook] All done.
  2479. 61.00 s [post-build-hook] Uploading to the NixCI staging cache: /nix/store/5pzifz9p13qnvjj2f81cqs3asmshjkll-cursor-gen-0.4.0.0 /nix/store/jqccvcnkb15bpgai8s0w8ra5sxxxh3ps-cursor-gen-0.4.0.0-doc
  2480. 61.26 s [post-build-hook] copying 2 paths...
  2481. 61.26 s [post-build-hook] copying path '/nix/store/jqccvcnkb15bpgai8s0w8ra5sxxxh3ps-cursor-gen-0.4.0.0-doc' to 'https://cache.staging.nix-ci.com'...
  2482. 61.52 s [post-build-hook] copying path '/nix/store/5pzifz9p13qnvjj2f81cqs3asmshjkll-cursor-gen-0.4.0.0' to 'https://cache.staging.nix-ci.com'...
  2483. 62.65 s [post-build-hook] copying 1 paths...
  2484. 62.65 s [post-build-hook] copying path '/nix/store/xzg3vqf72r813bsicamdp62ggw37d7zz-cursor-gen-0.4.0.0.drv' to 'https://cache.staging.nix-ci.com'...
  2485. 62.89 s Progress: 4 of 6 built, 21 of 21 downloaded from cache
  2486. 62.93 s Building cursor-release
  2487. 62.96 s [cursor-release] /nix/store/5pzifz9p13qnvjj2f81cqs3asmshjkll-cursor-gen-0.4.0.0/nix-support:
  2488. 62.96 s [cursor-release] propagated-build-inputs: Keeping existing link to /nix/store/5jbn6gvg30q103ljwykkwv16g191dc5r-cursor-0.3.2.0/nix-support/propagated-build-inputs
  2489. 63.00 s [post-build-hook] Uploading to cachix cache "cursor": /nix/store/7qip7v0y6yslj96zy6ki1792ng49wr6p-cursor-release
  2490. 63.37 s [post-build-hook] Pushing 1 paths (87 are already present) using zstd to cache cursor ⏳
  2491. 63.51 s [post-build-hook]
  2492. 63.76 s [post-build-hook] Pushing /nix/store/7qip7v0y6yslj96zy6ki1792ng49wr6p-cursor-release (49.54 KiB)
  2493. 64.83 s [post-build-hook]
  2494. 64.83 s [post-build-hook] All done.
  2495. 64.85 s [post-build-hook] Uploading to the NixCI staging cache: /nix/store/7qip7v0y6yslj96zy6ki1792ng49wr6p-cursor-release
  2496. 65.50 s [post-build-hook] copying 1 paths...
  2497. 65.50 s [post-build-hook] copying path '/nix/store/7qip7v0y6yslj96zy6ki1792ng49wr6p-cursor-release' to 'https://cache.staging.nix-ci.com'...
  2498. 67.85 s [post-build-hook] copying 1 paths...
  2499. 67.85 s [post-build-hook] copying path '/nix/store/0y2lvwl2sdis78j73l7m212dlilvjzm5-cursor-release.drv' to 'https://cache.staging.nix-ci.com'...
  2500. 68.43 s Progress: 5 of 6 built, 21 of 21 downloaded from cache