build checks.x86_64-linux.nixpkgs-24_05

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