build packages.x86_64-linux.default

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