Build:
  1. 0
2026-02-27 04:04.16: New job: test preface.1.1.0 with ocaml-secondary-compiler.4.08.1-1, using opam dev
                              from https://github.com/ocaml/opam-repository.git#refs/pull/29451/head (09d7830dd4a7cd4cfc1725bd69ec5b222eae677d)
                              on debian-13-ocaml-5.4/amd64

To reproduce locally:

cd $(mktemp -d)
git clone --recursive "https://github.com/ocaml/opam-repository.git" && cd "opam-repository" && git fetch origin "refs/pull/29451/head" && git reset --hard 09d7830d
git fetch origin master
git merge --no-edit 5abb4f44e937819c2e438ab71bc23607a7cad3da
cat > ../Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:debian-13-ocaml-5.4@sha256:4add1601135529e9f2e403a25c1c640231c0e871e87f88cf8feab4be5095104c
USER 1000:1000
WORKDIR /home/opam
RUN sudo ln -f /usr/bin/opam-dev /usr/bin/opam
RUN opam init --reinit -ni
RUN opam option solver=builtin-0install && opam config report
ENV OPAMDOWNLOADJOBS="1"
ENV OPAMERRLOGLEN="0"
ENV OPAMPRECISETRACKING="1"
ENV CI="true"
ENV OPAM_REPO_CI="true"
RUN rm -rf opam-repository/
COPY --chown=1000:1000 . opam-repository/
RUN opam repository set-url --strict default opam-repository/
RUN opam update --depexts || true
RUN opam pin add -k version -yn ocaml-secondary-compiler.4.08.1-1 4.08.1-1
RUN opam reinstall ocaml-secondary-compiler.4.08.1-1; \
    res=$?; \
    test "$res" != 31 && exit "$res"; \
    export OPAMCLI=2.0; \
    build_dir=$(opam var prefix)/.opam-switch/build; \
    failed=$(ls "$build_dir"); \
    partial_fails=""; \
    for pkg in $failed; do \
    if opam show -f x-ci-accept-failures: "$pkg" | grep -qF "\"debian-13\""; then \
    echo "A package failed and has been disabled for CI using the 'x-ci-accept-failures' field."; \
    fi; \
    test "$pkg" != 'ocaml-secondary-compiler.4.08.1-1' && partial_fails="$partial_fails $pkg"; \
    done; \
    test "${partial_fails}" != "" && echo "opam-repo-ci detected dependencies failing: ${partial_fails}"; \
    exit 1
RUN opam reinstall preface.1.1.0; \
    res=$?; \
    test "$res" != 31 && exit "$res"; \
    export OPAMCLI=2.0; \
    build_dir=$(opam var prefix)/.opam-switch/build; \
    failed=$(ls "$build_dir"); \
    partial_fails=""; \
    for pkg in $failed; do \
    if opam show -f x-ci-accept-failures: "$pkg" | grep -qF "\"debian-13\""; then \
    echo "A package failed and has been disabled for CI using the 'x-ci-accept-failures' field."; \
    fi; \
    test "$pkg" != 'preface.1.1.0' && partial_fails="$partial_fails $pkg"; \
    done; \
    test "${partial_fails}" != "" && echo "opam-repo-ci detected dependencies failing: ${partial_fails}"; \
    exit 1
RUN (opam reinstall --with-test preface.1.1.0) || true
RUN opam reinstall --with-test --verbose preface.1.1.0; \
    res=$?; \
    test "$res" != 31 && exit "$res"; \
    export OPAMCLI=2.0; \
    build_dir=$(opam var prefix)/.opam-switch/build; \
    failed=$(ls "$build_dir"); \
    partial_fails=""; \
    for pkg in $failed; do \
    if opam show -f x-ci-accept-failures: "$pkg" | grep -qF "\"debian-13\""; then \
    echo "A package failed and has been disabled for CI using the 'x-ci-accept-failures' field."; \
    fi; \
    test "$pkg" != 'preface.1.1.0' && partial_fails="$partial_fails $pkg"; \
    done; \
    test "${partial_fails}" != "" && echo "opam-repo-ci detected dependencies failing: ${partial_fails}"; \
    exit 1

END-OF-DOCKERFILE
docker build -f ../Dockerfile .

2026-02-27 04:04.16: Using cache hint "ocaml/opam:debian-13-ocaml-5.4@sha256:4add1601135529e9f2e403a25c1c640231c0e871e87f88cf8feab4be5095104c-ocaml-secondary-compiler.4.08.1-1-preface.1.1.0-09d7830dd4a7cd4cfc1725bd69ec5b222eae677d"
2026-02-27 04:04.16: Using OBuilder spec:
((from ocaml/opam:debian-13-ocaml-5.4@sha256:4add1601135529e9f2e403a25c1c640231c0e871e87f88cf8feab4be5095104c)
 (user (uid 1000) (gid 1000))
 (workdir /home/opam)
 (run (shell "sudo ln -f /usr/bin/opam-dev /usr/bin/opam"))
 (run (network host)
      (shell "opam init --reinit --config .opamrc-sandbox -ni"))
 (run (shell "opam option solver=builtin-0install && opam config report"))
 (env OPAMDOWNLOADJOBS 1)
 (env OPAMERRLOGLEN 0)
 (env OPAMPRECISETRACKING 1)
 (env CI true)
 (env OPAM_REPO_CI true)
 (run (shell "rm -rf opam-repository/"))
 (copy (src .) (dst opam-repository/))
 (run (shell "opam repository set-url --strict default opam-repository/"))
 (run (network host)
      (shell "opam update --depexts || true"))
 (run (shell "opam pin add -k version -yn ocaml-secondary-compiler.4.08.1-1 4.08.1-1"))
 (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
      (network host)
      (shell  "opam reinstall ocaml-secondary-compiler.4.08.1-1;\
             \n        res=$?;\
             \n        test \"$res\" != 31 && exit \"$res\";\
             \n        export OPAMCLI=2.0;\
             \n        build_dir=$(opam var prefix)/.opam-switch/build;\
             \n        failed=$(ls \"$build_dir\");\
             \n        partial_fails=\"\";\
             \n        for pkg in $failed; do\
             \n          if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
             \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
             \n          fi;\
             \n          test \"$pkg\" != 'ocaml-secondary-compiler.4.08.1-1' && partial_fails=\"$partial_fails $pkg\";\
             \n        done;\
             \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
             \n        exit 1"))
 (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
      (network host)
      (shell  "opam reinstall preface.1.1.0;\
             \n        res=$?;\
             \n        test \"$res\" != 31 && exit \"$res\";\
             \n        export OPAMCLI=2.0;\
             \n        build_dir=$(opam var prefix)/.opam-switch/build;\
             \n        failed=$(ls \"$build_dir\");\
             \n        partial_fails=\"\";\
             \n        for pkg in $failed; do\
             \n          if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
             \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
             \n          fi;\
             \n          test \"$pkg\" != 'preface.1.1.0' && partial_fails=\"$partial_fails $pkg\";\
             \n        done;\
             \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
             \n        exit 1"))
 (run (network host)
      (shell "(opam reinstall --with-test preface.1.1.0) || true"))
 (run (shell  "opam reinstall --with-test --verbose preface.1.1.0;\
             \n        res=$?;\
             \n        test \"$res\" != 31 && exit \"$res\";\
             \n        export OPAMCLI=2.0;\
             \n        build_dir=$(opam var prefix)/.opam-switch/build;\
             \n        failed=$(ls \"$build_dir\");\
             \n        partial_fails=\"\";\
             \n        for pkg in $failed; do\
             \n          if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
             \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
             \n          fi;\
             \n          test \"$pkg\" != 'preface.1.1.0' && partial_fails=\"$partial_fails $pkg\";\
             \n        done;\
             \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
             \n        exit 1"))
)

2026-02-27 04:04.16: Waiting for resource in pool OCluster
2026-03-02 04:41.05: Waiting for worker…
2026-03-02 04:44.15: Got resource from pool OCluster
Building on laodoke.caelum.ci.dev
All commits already cached
Updating files:  60% (11170/18334)
Updating files:  61% (11184/18334)
Updating files:  62% (11368/18334)
Updating files:  63% (11551/18334)
Updating files:  64% (11734/18334)
Updating files:  65% (11918/18334)
Updating files:  66% (12101/18334)
Updating files:  67% (12284/18334)
Updating files:  68% (12468/18334)
Updating files:  69% (12651/18334)
Updating files:  70% (12834/18334)
Updating files:  71% (13018/18334)
Updating files:  72% (13201/18334)
Updating files:  73% (13384/18334)
Updating files:  74% (13568/18334)
Updating files:  75% (13751/18334)
Updating files:  76% (13934/18334)
Updating files:  77% (14118/18334)
Updating files:  78% (14301/18334)
Updating files:  79% (14484/18334)
Updating files:  80% (14668/18334)
Updating files:  81% (14851/18334)
Updating files:  82% (15034/18334)
Updating files:  83% (15218/18334)
Updating files:  84% (15401/18334)
Updating files:  85% (15584/18334)
Updating files:  86% (15768/18334)
Updating files:  87% (15951/18334)
Updating files:  88% (16134/18334)
Updating files:  89% (16318/18334)
Updating files:  90% (16501/18334)
Updating files:  91% (16684/18334)
Updating files:  92% (16868/18334)
Updating files:  93% (17051/18334)
Updating files:  94% (17234/18334)
Updating files:  95% (17418/18334)
Updating files:  96% (17601/18334)
Updating files:  97% (17784/18334)
Updating files:  98% (17968/18334)
Updating files:  99% (18151/18334)
Updating files: 100% (18334/18334)
Updating files: 100% (18334/18334), done.
HEAD is now at 5abb4f44e9 Merge pull request #29466 from mseri/release-doi2bib-0.9.1
Merge made by the 'ort' strategy.
 .../ocaml-base-compiler.3.07+1/opam                    |  1 +
 .../ocaml-base-compiler.3.07+2/opam                    |  1 +
 .../ocaml-base-compiler/ocaml-base-compiler.3.07/opam  |  1 +
 .../ocaml-base-compiler.3.08.0/opam                    |  1 +
 .../ocaml-base-compiler.3.08.1/opam                    |  1 +
 .../ocaml-base-compiler.3.08.2/opam                    |  1 +
 .../ocaml-base-compiler.3.08.3/opam                    |  1 +
 .../ocaml-base-compiler.3.08.4/opam                    |  1 +
 .../ocaml-base-compiler.3.09.0/opam                    |  1 +
 .../ocaml-base-compiler.3.09.1/opam                    |  1 +
 .../ocaml-base-compiler.3.09.2/opam                    |  1 +
 .../ocaml-base-compiler.3.09.3/opam                    |  1 +
 .../ocaml-base-compiler.3.10.0/opam                    |  1 +
 .../ocaml-base-compiler.3.10.1/opam                    |  1 +
 .../ocaml-base-compiler.3.10.2/opam                    |  1 +
 .../ocaml-base-compiler.3.11.0/opam                    |  1 +
 .../ocaml-base-compiler.3.11.1/opam                    |  1 +
 .../ocaml-base-compiler.3.11.2/opam                    |  1 +
 .../ocaml-base-compiler.3.12.0/opam                    |  1 +
 .../ocaml-base-compiler.3.12.1/opam                    |  1 +
 .../ocaml-base-compiler.4.00.0/opam                    |  1 +
 .../ocaml-base-compiler.4.00.1/opam                    |  1 +
 .../ocaml-base-compiler.4.01.0/opam                    |  1 +
 .../ocaml-base-compiler.4.02.0/opam                    |  1 +
 .../ocaml-base-compiler.4.02.1/opam                    |  1 +
 .../ocaml-base-compiler.4.02.2/opam                    |  1 +
 .../ocaml-base-compiler.4.02.3/opam                    |  1 +
 .../ocaml-base-compiler.4.03.0/opam                    |  1 +
 .../ocaml-base-compiler.4.04.0/opam                    |  1 +
 .../ocaml-base-compiler.4.04.1/opam                    |  1 +
 .../ocaml-base-compiler.4.04.2/opam                    |  1 +
 .../ocaml-base-compiler.4.05.0/opam                    |  1 +
 .../ocaml-base-compiler.4.06.0/opam                    |  1 +
 .../ocaml-base-compiler.4.06.1/opam                    |  1 +
 .../ocaml-base-compiler.4.07.0/opam                    |  1 +
 .../ocaml-base-compiler.4.07.1/opam                    |  1 +
 .../ocaml-base-compiler.4.08.0/opam                    |  1 +
 .../ocaml-base-compiler.4.08.1/opam                    |  1 +
 .../ocaml-base-compiler.4.09.0/opam                    |  1 +
 .../ocaml-base-compiler.4.09.1/opam                    |  1 +
 .../ocaml-base-compiler.4.10.0/opam                    |  1 +
 .../ocaml-base-compiler.4.10.1/opam                    |  1 +
 .../ocaml-base-compiler.4.10.2/opam                    |  1 +
 .../ocaml-base-compiler.4.11.0/opam                    |  1 +
 .../ocaml-base-compiler.4.11.1/opam                    |  1 +
 .../ocaml-base-compiler.4.11.2/opam                    |  1 +
 .../ocaml-base-compiler.4.12.0/opam                    |  1 +
 .../ocaml-base-compiler.4.12.1/opam                    |  1 +
 .../ocaml-base-compiler.4.13.0/opam                    |  1 +
 .../ocaml-base-compiler.4.13.1/opam                    |  1 +
 .../ocaml-base-compiler.4.14.0/opam                    |  1 +
 .../ocaml-base-compiler.4.14.1/opam                    |  1 +
 .../ocaml-base-compiler.4.14.2/opam                    |  1 +
 .../ocaml-base-compiler.4.14.2~rc1/opam                |  1 +
 .../ocaml-base-compiler.4.14.3/opam                    |  1 +
 .../ocaml-base-compiler/ocaml-base-compiler.5.0.0/opam |  5 ++++-
 .../ocaml-base-compiler/ocaml-base-compiler.5.1.0/opam |  5 ++++-
 .../ocaml-base-compiler/ocaml-base-compiler.5.1.1/opam |  5 ++++-
 .../ocaml-base-compiler/ocaml-base-compiler.5.2.0/opam |  5 ++++-
 .../ocaml-base-compiler/ocaml-base-compiler.5.2.1/opam |  5 ++++-
 packages/ocaml-compiler/ocaml-compiler.5.3.0/opam      |  1 +
 packages/ocaml-compiler/ocaml-compiler.5.3/opam        |  1 +
 packages/ocaml-compiler/ocaml-compiler.5.4.0/opam      |  1 +
 .../ocaml-compiler/ocaml-compiler.5.4.0~alpha1/opam    |  1 +
 .../ocaml-compiler/ocaml-compiler.5.4.0~beta1/opam     |  1 +
 .../ocaml-compiler/ocaml-compiler.5.4.0~beta2/opam     |  1 +
 packages/ocaml-compiler/ocaml-compiler.5.4.0~rc1/opam  |  1 +
 packages/ocaml-compiler/ocaml-compiler.5.4.1/opam      |  1 +
 packages/ocaml-compiler/ocaml-compiler.5.4/opam        |  1 +
 .../ocaml-secondary-compiler.4.08.1-1/opam             |  1 +
 .../ocaml-secondary-compiler.4.08.1/opam               |  1 +
 .../ocaml-secondary-compiler.4.14.2/opam               |  1 +
 .../ocaml-variants.3.09.1+metaocaml/opam               |  1 +
 .../ocaml-variants.4.00.0+debug-runtime/opam           |  1 +
 packages/ocaml-variants/ocaml-variants.4.00.1+BER/opam |  1 +
 packages/ocaml-variants/ocaml-variants.4.00.1+PIC/opam |  1 +
 .../ocaml-variants.4.00.1+debug-runtime/opam           |  1 +
 .../ocaml-variants.4.00.1+open-types/opam              |  1 +
 .../ocaml-variants.4.00.1+raspberrypi/opam             |  1 +
 .../ocaml-variants.4.00.1+short-types/opam             |  1 +
 .../ocaml-variants/ocaml-variants.4.01.0+32bit/opam    |  1 +
 packages/ocaml-variants/ocaml-variants.4.01.0+BER/opam |  1 +
 packages/ocaml-variants/ocaml-variants.4.01.0+PIC/opam |  1 +
 .../ocaml-variants.4.01.0+armv6-freebsd/opam           |  1 +
 packages/ocaml-variants/ocaml-variants.4.01.0+fp/opam  |  1 +
 packages/ocaml-variants/ocaml-variants.4.01.0+lsb/opam |  1 +
 .../ocaml-variants.4.01.0+musl+static/opam             |  1 +
 .../ocaml-variants/ocaml-variants.4.01.0+musl/opam     |  1 +
 .../ocaml-variants.4.01.0+open-types/opam              |  1 +
 .../ocaml-variants/ocaml-variants.4.01.0+profile/opam  |  1 +
 packages/ocaml-variants/ocaml-variants.4.02.0+PIC/opam |  1 +
 .../ocaml-variants.4.02.0+improved-errors/opam         |  1 +
 .../ocaml-variants/ocaml-variants.4.02.1+32bit/opam    |  1 +
 packages/ocaml-variants/ocaml-variants.4.02.1+BER/opam |  1 +
 packages/ocaml-variants/ocaml-variants.4.02.1+PIC/opam |  1 +
 packages/ocaml-variants/ocaml-variants.4.02.1+fp/opam  |  1 +
 .../ocaml-variants.4.02.1+modular-implicits-ber/opam   |  1 +
 .../ocaml-variants.4.02.1+modular-implicits/opam       |  1 +
 .../ocaml-variants.4.02.1+musl+static/opam             |  1 +
 .../ocaml-variants/ocaml-variants.4.02.1+musl/opam     |  1 +
 .../ocaml-variants.4.02.2+improved-errors/opam         |  1 +
 .../ocaml-variants/ocaml-variants.4.02.3+32bit/opam    |  1 +
 packages/ocaml-variants/ocaml-variants.4.02.3+PIC/opam |  1 +
 .../ocaml-variants/ocaml-variants.4.02.3+buckle-1/opam |  1 +
 .../ocaml-variants.4.02.3+buckle-master/opam           |  1 +
 .../ocaml-variants.4.02.3+bytecode-only/opam           |  1 +
 .../ocaml-variants.4.02.3+curried-constr/opam          |  1 +
 packages/ocaml-variants/ocaml-variants.4.02.3+fp/opam  |  1 +
 .../ocaml-variants.4.02.3+musl+static/opam             |  1 +
 .../ocaml-variants/ocaml-variants.4.02.3+musl/opam     |  1 +
 .../ocaml-variants/ocaml-variants.4.02.4+trunk/opam    |  1 +
 .../ocaml-variants/ocaml-variants.4.03.0+32bit/opam    |  1 +
 .../ocaml-variants/ocaml-variants.4.03.0+fPIC/opam     |  1 +
 .../ocaml-variants/ocaml-variants.4.03.0+flambda/opam  |  1 +
 .../ocaml-variants.4.03.0+fp+flambda/opam              |  1 +
 packages/ocaml-variants/ocaml-variants.4.03.0+fp/opam  |  1 +
 .../ocaml-variants.4.03.0+statistical-memprof/opam     |  1 +
 .../ocaml-variants/ocaml-variants.4.03.1+trunk/opam    |  1 +
 .../ocaml-variants/ocaml-variants.4.04.0+32bit/opam    |  1 +
 packages/ocaml-variants/ocaml-variants.4.04.0+BER/opam |  1 +
 packages/ocaml-variants/ocaml-variants.4.04.0+afl/opam |  1 +
 .../ocaml-variants.4.04.0+bytecode-only/opam           |  1 +
 .../ocaml-variants/ocaml-variants.4.04.0+fPIC/opam     |  1 +
 .../ocaml-variants/ocaml-variants.4.04.0+flambda/opam  |  1 +
 .../ocaml-variants.4.04.0+fp+flambda/opam              |  1 +
 packages/ocaml-variants/ocaml-variants.4.04.0+fp/opam  |  1 +
 .../ocaml-variants.4.04.0+safe-string/opam             |  1 +
 .../ocaml-variants.4.04.0+spacetime/opam               |  1 +
 .../ocaml-variants.4.04.0+trunk+forced_lto/opam        |  1 +
 .../ocaml-variants/ocaml-variants.4.04.1+32bit/opam    |  1 +
 .../ocaml-variants.4.04.1+bytecode-only/opam           |  1 +
 .../ocaml-variants.4.04.1+copatterns/opam              |  1 +
 .../ocaml-variants/ocaml-variants.4.04.1+fPIC/opam     |  1 +
 .../ocaml-variants/ocaml-variants.4.04.1+flambda/opam  |  1 +
 .../ocaml-variants.4.04.1+fp+flambda/opam              |  1 +
 packages/ocaml-variants/ocaml-variants.4.04.1+fp/opam  |  1 +
 .../ocaml-variants.4.04.1+safe-string/opam             |  1 +
 .../ocaml-variants.4.04.1+spacetime/opam               |  1 +
 .../ocaml-variants/ocaml-variants.4.04.2+32bit/opam    |  1 +
 .../ocaml-variants.4.04.2+bytecode-only/opam           |  1 +
 .../ocaml-variants/ocaml-variants.4.04.2+fPIC/opam     |  1 +
 .../ocaml-variants/ocaml-variants.4.04.2+flambda/opam  |  1 +
 .../ocaml-variants.4.04.2+fp+flambda/opam              |  1 +
 packages/ocaml-variants/ocaml-variants.4.04.2+fp/opam  |  1 +
 .../ocaml-variants.4.04.2+safe-string/opam             |  1 +
 .../ocaml-variants.4.04.2+spacetime/opam               |  1 +
 .../ocaml-variants.4.04.2+statistical-memprof/opam     |  1 +
 .../ocaml-variants/ocaml-variants.4.04.3+trunk/opam    |  1 +
 .../ocaml-variants/ocaml-variants.4.05.0+32bit/opam    |  1 +
 packages/ocaml-variants/ocaml-variants.4.05.0+afl/opam |  1 +
 .../ocaml-variants.4.05.0+bytecode-only/opam           |  1 +
 .../ocaml-variants/ocaml-variants.4.05.0+flambda/opam  |  1 +
 packages/ocaml-variants/ocaml-variants.4.05.0+lto/opam |  1 +
 .../ocaml-variants.4.05.0+musl+flambda/opam            |  1 +
 .../ocaml-variants.4.05.0+musl+static+flambda/opam     |  1 +
 .../ocaml-variants.4.05.0+safe-string/opam             |  1 +
 .../ocaml-variants.4.05.0+spacetime/opam               |  1 +
 .../ocaml-variants.4.05.0+statistical-memprof/opam     |  1 +
 .../ocaml-variants.4.05.1+trunk+afl/opam               |  1 +
 .../ocaml-variants.4.05.1+trunk+flambda/opam           |  1 +
 .../ocaml-variants.4.05.1+trunk+fp+flambda/opam        |  1 +
 .../ocaml-variants/ocaml-variants.4.05.1+trunk+fp/opam |  1 +
 .../ocaml-variants.4.05.1+trunk+safe-string/opam       |  1 +
 .../ocaml-variants/ocaml-variants.4.05.1+trunk/opam    |  1 +
 .../ocaml-variants/ocaml-variants.4.06.0+32bit/opam    |  1 +
 packages/ocaml-variants/ocaml-variants.4.06.0+afl/opam |  1 +
 .../ocaml-variants.4.06.0+bytecode-only/opam           |  1 +
 .../ocaml-variants.4.06.0+default-unsafe-string/opam   |  1 +
 .../opam                                               |  1 +
 .../ocaml-variants/ocaml-variants.4.06.0+flambda/opam  |  1 +
 .../ocaml-variants.4.06.0+force-safe-string/opam       |  1 +
 .../ocaml-variants.4.06.0+fp+flambda/opam              |  1 +
 packages/ocaml-variants/ocaml-variants.4.06.0+fp/opam  |  1 +
 .../ocaml-variants.4.06.0+musl+flambda/opam            |  1 +
 .../ocaml-variants.4.06.0+musl+static+flambda/opam     |  1 +
 .../ocaml-variants.4.06.0+no-flat-float-array/opam     |  1 +
 .../ocaml-variants.4.06.0+spacetime/opam               |  1 +
 .../ocaml-variants.4.06.0+statistical-memprof/opam     |  1 +
 .../ocaml-variants/ocaml-variants.4.06.1+32bit/opam    |  1 +
 packages/ocaml-variants/ocaml-variants.4.06.1+afl/opam |  1 +
 .../ocaml-variants.4.06.1+bytecode-only/opam           |  1 +
 .../ocaml-variants.4.06.1+default-unsafe-string/opam   |  1 +
 .../ocaml-variants/ocaml-variants.4.06.1+flambda/opam  |  1 +
 .../ocaml-variants.4.06.1+force-safe-string/opam       |  1 +
 .../ocaml-variants.4.06.1+fp+flambda/opam              |  1 +
 packages/ocaml-variants/ocaml-variants.4.06.1+fp/opam  |  1 +
 packages/ocaml-variants/ocaml-variants.4.06.1+lto/opam |  1 +
 .../ocaml-variants.4.06.1+musl+flambda/opam            |  1 +
 .../ocaml-variants.4.06.1+musl+static+flambda/opam     |  1 +
 .../ocaml-variants.4.06.1+no-flat-float-array/opam     |  1 +
 .../opam                                               |  1 +
 .../ocaml-variants/ocaml-variants.4.06.1+rescript/opam |  1 +
 .../ocaml-variants.4.06.1+statistical-memprof/opam     |  1 +
 .../ocaml-variants/ocaml-variants.4.06.1+termux/opam   |  1 +
 .../ocaml-variants.4.06.2+trunk+afl/opam               |  1 +
 .../ocaml-variants.4.06.2+trunk+flambda/opam           |  1 +
 .../ocaml-variants.4.06.2+trunk+force-safe-string/opam |  1 +
 .../ocaml-variants.4.06.2+trunk+fp+flambda/opam        |  1 +
 .../ocaml-variants/ocaml-variants.4.06.2+trunk+fp/opam |  1 +
 .../ocaml-variants/ocaml-variants.4.06.2+trunk/opam    |  1 +
 .../ocaml-variants/ocaml-variants.4.07.0+32bit/opam    |  1 +
 packages/ocaml-variants/ocaml-variants.4.07.0+afl/opam |  1 +
 .../ocaml-variants.4.07.0+bytecode-only/opam           |  1 +
 .../ocaml-variants.4.07.0+default-unsafe-string/opam   |  1 +
 .../opam                                               |  1 +
 .../ocaml-variants/ocaml-variants.4.07.0+flambda/opam  |  1 +
 .../ocaml-variants.4.07.0+force-safe-string/opam       |  1 +
 .../ocaml-variants.4.07.0+fp+flambda/opam              |  1 +
 packages/ocaml-variants/ocaml-variants.4.07.0+fp/opam  |  1 +
 .../ocaml-variants.4.07.0+no-flat-float-array/opam     |  1 +
 .../ocaml-variants.4.07.0+spacetime/opam               |  1 +
 .../ocaml-variants/ocaml-variants.4.07.1+32bit/opam    |  1 +
 packages/ocaml-variants/ocaml-variants.4.07.1+BER/opam |  1 +
 packages/ocaml-variants/ocaml-variants.4.07.1+afl/opam |  1 +
 .../ocaml-variants.4.07.1+bytecode-only/opam           |  1 +
 .../ocaml-variants.4.07.1+default-unsafe-string/opam   |  1 +
 .../opam                                               |  1 +
 .../ocaml-variants/ocaml-variants.4.07.1+flambda/opam  |  1 +
 .../ocaml-variants.4.07.1+force-safe-string/opam       |  1 +
 .../ocaml-variants.4.07.1+fp+flambda/opam              |  1 +
 packages/ocaml-variants/ocaml-variants.4.07.1+fp/opam  |  1 +
 .../ocaml-variants.4.07.1+musl+flambda/opam            |  1 +
 .../ocaml-variants.4.07.1+musl+static+flambda/opam     |  1 +
 .../ocaml-variants.4.07.1+no-flat-float-array/opam     |  1 +
 .../ocaml-variants.4.07.1+spacetime/opam               |  1 +
 .../ocaml-variants.4.07.1+statistical-memprof/opam     |  1 +
 .../ocaml-variants.4.07.2+trunk+afl/opam               |  1 +
 .../opam                                               |  1 +
 .../ocaml-variants.4.07.2+trunk+flambda/opam           |  1 +
 .../ocaml-variants.4.07.2+trunk+fp+flambda/opam        |  1 +
 .../ocaml-variants/ocaml-variants.4.07.2+trunk+fp/opam |  1 +
 .../ocaml-variants/ocaml-variants.4.07.2+trunk/opam    |  1 +
 .../ocaml-variants/ocaml-variants.4.08.0+32bit/opam    |  1 +
 packages/ocaml-variants/ocaml-variants.4.08.0+afl/opam |  1 +
 .../ocaml-variants.4.08.0+bytecode-only/opam           |  1 +
 .../ocaml-variants.4.08.0+default-unsafe-string/opam   |  1 +
 .../opam                                               |  1 +
 .../ocaml-variants/ocaml-variants.4.08.0+flambda/opam  |  1 +
 .../ocaml-variants.4.08.0+force-safe-string/opam       |  1 +
 .../ocaml-variants.4.08.0+fp+flambda/opam              |  1 +
 packages/ocaml-variants/ocaml-variants.4.08.0+fp/opam  |  1 +
 .../ocaml-variants.4.08.0+musl+flambda/opam            |  1 +
 .../ocaml-variants.4.08.0+musl+static+flambda/opam     |  1 +
 .../ocaml-variants.4.08.0+no-flat-float-array/opam     |  1 +
 .../ocaml-variants.4.08.0+spacetime/opam               |  1 +
 .../ocaml-variants/ocaml-variants.4.08.1+32bit/opam    |  1 +
 packages/ocaml-variants/ocaml-variants.4.08.1+afl/opam |  1 +
 .../ocaml-variants.4.08.1+bytecode-only/opam           |  1 +
 .../ocaml-variants.4.08.1+default-unsafe-string/opam   |  1 +
 .../opam                                               |  1 +
 .../ocaml-variants/ocaml-variants.4.08.1+flambda/opam  |  1 +
 .../ocaml-variants.4.08.1+force-safe-string/opam       |  1 +
 .../ocaml-variants.4.08.1+fp+flambda/opam              |  1 +
 packages/ocaml-variants/ocaml-variants.4.08.1+fp/opam  |  1 +
 .../ocaml-variants.4.08.1+musl+flambda/opam            |  1 +
 .../ocaml-variants.4.08.1+musl+static+flambda/opam     |  1 +
 .../ocaml-variants.4.08.1+spacetime/opam               |  1 +
 .../ocaml-variants.4.08.2+trunk+afl/opam               |  1 +
 .../opam                                               |  1 +
 .../ocaml-variants.4.08.2+trunk+flambda/opam           |  1 +
 .../ocaml-variants.4.08.2+trunk+force-safe-string/opam |  1 +
 .../ocaml-variants.4.08.2+trunk+fp+flambda/opam        |  1 +
 .../ocaml-variants/ocaml-variants.4.08.2+trunk+fp/opam |  1 +
 .../ocaml-variants/ocaml-variants.4.08.2+trunk/opam    |  1 +
 .../ocaml-variants/ocaml-variants.4.09.0+32bit/opam    |  1 +
 packages/ocaml-variants/ocaml-variants.4.09.0+afl/opam |  1 +
 .../ocaml-variants.4.09.0+bytecode-only/opam           |  1 +
 .../ocaml-variants.4.09.0+default-unsafe-string/opam   |  1 +
 .../opam                                               |  1 +
 .../ocaml-variants/ocaml-variants.4.09.0+flambda/opam  |  1 +
 .../ocaml-variants.4.09.0+force-safe-string/opam       |  1 +
 .../ocaml-variants.4.09.0+fp+flambda/opam              |  1 +
 packages/ocaml-variants/ocaml-variants.4.09.0+fp/opam  |  1 +
 .../ocaml-variants.4.09.0+musl+flambda/opam            |  1 +
 .../ocaml-variants.4.09.0+musl+static+flambda/opam     |  1 +
 .../ocaml-variants.4.09.0+no-flat-float-array/opam     |  1 +
 .../ocaml-variants.4.09.0+spacetime/opam               |  1 +
 .../ocaml-variants/ocaml-variants.4.09.1+32bit/opam    |  1 +
 .../ocaml-variants.4.09.1+afl+flambda/opam             |  1 +
 packages/ocaml-variants/ocaml-variants.4.09.1+afl/opam |  1 +
 .../ocaml-variants.4.09.1+bytecode-only/opam           |  1 +
 .../ocaml-variants.4.09.1+default-unsafe-string/opam   |  1 +
 .../opam                                               |  1 +
 .../ocaml-variants/ocaml-variants.4.09.1+flambda/opam  |  1 +
 .../ocaml-variants.4.09.1+force-safe-string/opam       |  1 +
 .../ocaml-variants.4.09.1+fp+flambda/opam              |  1 +
 packages/ocaml-variants/ocaml-variants.4.09.1+fp/opam  |  1 +
 .../ocaml-variants.4.09.1+musl+flambda/opam            |  1 +
 .../ocaml-variants.4.09.1+musl+static+flambda/opam     |  1 +
 .../ocaml-variants.4.09.1+no-flat-float-array/opam     |  1 +
 .../ocaml-variants.4.09.1+spacetime/opam               |  1 +
 .../ocaml-variants.4.09.2+trunk+afl/opam               |  1 +
 .../opam                                               |  1 +
 .../ocaml-variants.4.09.2+trunk+flambda/opam           |  1 +
 .../ocaml-variants.4.09.2+trunk+fp+flambda/opam        |  1 +
 .../ocaml-variants/ocaml-variants.4.09.2+trunk+fp/opam |  1 +
 .../ocaml-variants/ocaml-variants.4.09.2+trunk/opam    |  1 +
 .../ocaml-variants/ocaml-variants.4.10.0+32bit/opam    |  1 +
 packages/ocaml-variants/ocaml-variants.4.10.0+afl/opam |  1 +
 .../ocaml-variants.4.10.0+bytecode-only/opam           |  1 +
 .../ocaml-variants.4.10.0+default-unsafe-string/opam   |  1 +
 .../opam                                               |  1 +
 .../ocaml-variants/ocaml-variants.4.10.0+flambda/opam  |  1 +
 .../ocaml-variants.4.10.0+fp+flambda/opam              |  1 +
 packages/ocaml-variants/ocaml-variants.4.10.0+fp/opam  |  1 +
 .../ocaml-variants.4.10.0+musl+flambda/opam            |  1 +
 .../ocaml-variants.4.10.0+musl+static+flambda/opam     |  1 +
 .../ocaml-variants/ocaml-variants.4.10.0+nnpcheck/opam |  1 +
 .../ocaml-variants.4.10.0+no-flat-float-array/opam     |  1 +
 .../ocaml-variants.4.10.0+spacetime/opam               |  1 +
 .../ocaml-variants/ocaml-variants.4.10.1+32bit/opam    |  1 +
 packages/ocaml-variants/ocaml-variants.4.10.1+afl/opam |  1 +
 .../ocaml-variants.4.10.1+bytecode-only/opam           |  1 +
 .../ocaml-variants.4.10.1+default-unsafe-string/opam   |  1 +
 .../opam                                               |  1 +
 .../ocaml-variants/ocaml-variants.4.10.1+flambda/opam  |  1 +
 .../ocaml-variants.4.10.1+fp+flambda/opam              |  1 +
 packages/ocaml-variants/ocaml-variants.4.10.1+fp/opam  |  1 +
 .../ocaml-variants.4.10.1+musl+flambda/opam            |  1 +
 .../ocaml-variants.4.10.1+musl+static+flambda/opam     |  1 +
 .../ocaml-variants.4.10.1+no-flat-float-array/opam     |  1 +
 .../ocaml-variants/ocaml-variants.4.10.1+rc1+afl/opam  |  1 +
 .../ocaml-variants.4.10.1+spacetime/opam               |  1 +
 .../ocaml-variants/ocaml-variants.4.10.2+32bit/opam    |  1 +
 packages/ocaml-variants/ocaml-variants.4.10.2+afl/opam |  1 +
 .../ocaml-variants.4.10.2+bytecode-only/opam           |  1 +
 .../ocaml-variants.4.10.2+default-unsafe-string/opam   |  1 +
 .../opam                                               |  1 +
 .../ocaml-variants/ocaml-variants.4.10.2+flambda/opam  |  1 +
 .../ocaml-variants.4.10.2+fp+flambda/opam              |  1 +
 packages/ocaml-variants/ocaml-variants.4.10.2+fp/opam  |  1 +
 .../ocaml-variants.4.10.2+musl+flambda/opam            |  1 +
 .../ocaml-variants.4.10.2+musl+static+flambda/opam     |  1 +
 .../ocaml-variants.4.10.2+no-flat-float-array/opam     |  1 +
 .../ocaml-variants/ocaml-variants.4.10.2+rescript/opam |  1 +
 .../ocaml-variants.4.10.2+spacetime/opam               |  1 +
 .../ocaml-variants.4.10.3+trunk+afl/opam               |  1 +
 .../ocaml-variants.4.10.3+trunk+flambda/opam           |  1 +
 .../ocaml-variants/ocaml-variants.4.10.3+trunk+fp/opam |  1 +
 .../ocaml-variants/ocaml-variants.4.10.3+trunk/opam    |  1 +
 .../ocaml-variants/ocaml-variants.4.11.0+32bit/opam    |  1 +
 packages/ocaml-variants/ocaml-variants.4.11.0+afl/opam |  1 +
 .../ocaml-variants.4.11.0+bytecode-only/opam           |  1 +
 .../ocaml-variants.4.11.0+default-unsafe-string/opam   |  1 +
 .../opam                                               |  1 +
 .../ocaml-variants/ocaml-variants.4.11.0+flambda/opam  |  1 +
 .../ocaml-variants.4.11.0+fp+flambda/opam              |  1 +
 packages/ocaml-variants/ocaml-variants.4.11.0+fp/opam  |  1 +
 .../ocaml-variants.4.11.0+musl+flambda/opam            |  1 +
 .../ocaml-variants.4.11.0+musl+static+flambda/opam     |  1 +
 .../ocaml-variants.4.11.0+no-flat-float-array/opam     |  1 +
 .../ocaml-variants.4.11.0+spacetime/opam               |  1 +
 .../ocaml-variants/ocaml-variants.4.11.1+32bit/opam    |  1 +
 .../ocaml-variants.4.11.1+BER+flambda/opam             |  1 +
 packages/ocaml-variants/ocaml-variants.4.11.1+BER/opam |  1 +
 packages/ocaml-variants/ocaml-variants.4.11.1+afl/opam |  1 +
 .../ocaml-variants.4.11.1+bytecode-only/opam           |  1 +
 .../ocaml-variants.4.11.1+default-unsafe-string/opam   |  1 +
 .../opam                                               |  1 +
 .../ocaml-variants/ocaml-variants.4.11.1+flambda/opam  |  1 +
 .../ocaml-variants.4.11.1+fp+flambda/opam              |  1 +
 packages/ocaml-variants/ocaml-variants.4.11.1+fp/opam  |  1 +
 .../ocaml-variants.4.11.1+musl+flambda/opam            |  1 +
 .../ocaml-variants.4.11.1+musl+static+flambda/opam     |  1 +
 .../ocaml-variants.4.11.1+no-flat-float-array/opam     |  1 +
 .../ocaml-variants.4.11.1+spacetime/opam               |  1 +
 .../ocaml-variants/ocaml-variants.4.11.2+32bit/opam    |  1 +
 packages/ocaml-variants/ocaml-variants.4.11.2+afl/opam |  1 +
 .../ocaml-variants.4.11.2+bytecode-only/opam           |  1 +
 .../ocaml-variants.4.11.2+default-unsafe-string/opam   |  1 +
 .../opam                                               |  1 +
 .../ocaml-variants/ocaml-variants.4.11.2+flambda/opam  |  1 +
 .../ocaml-variants.4.11.2+fp+flambda/opam              |  1 +
 packages/ocaml-variants/ocaml-variants.4.11.2+fp/opam  |  1 +
 .../ocaml-variants.4.11.2+musl+flambda/opam            |  1 +
 .../ocaml-variants.4.11.2+musl+static+flambda/opam     |  1 +
 .../ocaml-variants.4.11.2+no-flat-float-array/opam     |  1 +
 .../ocaml-variants.4.11.2+spacetime/opam               |  1 +
 .../ocaml-variants.4.11.3+trunk+afl/opam               |  1 +
 .../ocaml-variants.4.11.3+trunk+flambda/opam           |  1 +
 .../ocaml-variants/ocaml-variants.4.11.3+trunk+fp/opam |  1 +
 .../ocaml-variants/ocaml-variants.4.11.3+trunk/opam    |  1 +
 .../ocaml-variants.4.12.0+domains+effects/opam         |  1 +
 .../ocaml-variants/ocaml-variants.4.12.0+domains/opam  |  1 +
 .../ocaml-variants/ocaml-variants.4.12.0+options/opam  |  1 +
 .../ocaml-variants/ocaml-variants.4.12.1+options/opam  |  1 +
 .../ocaml-variants/ocaml-variants.4.12.2+trunk/opam    |  1 +
 .../ocaml-variants/ocaml-variants.4.13.0+options/opam  |  1 +
 .../ocaml-variants/ocaml-variants.4.13.1+options/opam  |  1 +
 .../ocaml-variants/ocaml-variants.4.13.2+trunk/opam    |  1 +
 .../ocaml-variants/ocaml-variants.4.14.0+options/opam  |  1 +
 packages/ocaml-variants/ocaml-variants.4.14.1+BER/opam |  1 +
 .../ocaml-variants/ocaml-variants.4.14.1+options/opam  |  1 +
 .../ocaml-variants/ocaml-variants.4.14.2+options/opam  |  1 +
 .../ocaml-variants.4.14.2~rc1+options/opam             |  1 +
 .../ocaml-variants/ocaml-variants.4.14.3+options/opam  |  1 +
 .../ocaml-variants/ocaml-variants.4.14.4+trunk/opam    |  1 +
 .../ocaml-variants/ocaml-variants.5.0.0+options/opam   |  1 +
 packages/ocaml-variants/ocaml-variants.5.0.0+tsan/opam |  1 +
 .../ocaml-variants/ocaml-variants.5.0.1+trunk/opam     |  1 +
 .../ocaml-variants/ocaml-variants.5.1.0+options/opam   |  1 +
 packages/ocaml-variants/ocaml-variants.5.1.0+tsan/opam |  1 +
 .../ocaml-variants.5.1.1+effect-syntax/opam            |  1 +
 .../ocaml-variants.5.1.1+flambda2+trunk/opam           |  1 +
 .../ocaml-variants/ocaml-variants.5.1.1+flambda2/opam  |  1 +
 .../ocaml-variants/ocaml-variants.5.1.1+options/opam   |  1 +
 packages/ocaml-variants/ocaml-variants.5.1.1+tsan/opam |  1 +
 .../ocaml-variants/ocaml-variants.5.1.2+trunk/opam     |  1 +
 packages/ocaml-variants/ocaml-variants.5.2.0+msvc/opam |  1 +
 .../ocaml-variants/ocaml-variants.5.2.0+options/opam   |  1 +
 .../ocaml-variants.5.2.0+statmemprof/opam              |  1 +
 .../ocaml-variants/ocaml-variants.5.2.1+options/opam   |  1 +
 .../ocaml-variants.5.2.1~rc1+options/opam              |  1 +
 .../ocaml-variants/ocaml-variants.5.2.2+trunk/opam     |  1 +
 packages/ocaml-variants/ocaml-variants.5.3.0+BER/opam  |  1 +
 packages/ocamlbuild/ocamlbuild.0.14.0/opam             |  1 +
 packages/ocamlbuild/ocamlbuild.0.14.1/opam             |  1 +
 packages/ocamlbuild/ocamlbuild.0.14.2+win/opam         |  1 +
 packages/ocamlbuild/ocamlbuild.0.14.2/opam             |  1 +
 packages/ocamlbuild/ocamlbuild.0.14.3+win/opam         |  1 +
 packages/ocamlbuild/ocamlbuild.0.14.3/opam             |  1 +
 packages/ocamlbuild/ocamlbuild.0.15.0/opam             |  1 +
 packages/ocamlbuild/ocamlbuild.0.16.1/opam             |  1 +
 packages/ocamlfind/ocamlfind.1.8.0/opam                |  1 +
 packages/ocamlfind/ocamlfind.1.8.1/opam                |  1 +
 packages/ocamlfind/ocamlfind.1.9.1/opam                |  1 +
 packages/ocamlfind/ocamlfind.1.9.2/opam                |  1 +
 packages/ocamlfind/ocamlfind.1.9.3/opam                |  1 +
 packages/ocamlfind/ocamlfind.1.9.5/opam                |  1 +
 packages/ocamlfind/ocamlfind.1.9.6/opam                |  1 +
 packages/ocamlfind/ocamlfind.1.9.8/opam                |  1 +
 packages/relocatable/relocatable.packages/opam         | 18 ++++++++++++++++++
 432 files changed, 464 insertions(+), 5 deletions(-)
 create mode 100644 packages/relocatable/relocatable.packages/opam

(from ocaml/opam:debian-13-ocaml-5.4@sha256:4add1601135529e9f2e403a25c1c640231c0e871e87f88cf8feab4be5095104c)
2026-03-02 04:44.42 ---> using "3c18c9e472a4f76bc128dc0a5a1e21158ba3dbd0d6773ace6ec33f0cfe6fac9b" from cache

/: (user (uid 1000) (gid 1000))

/: (workdir /home/opam)

/home/opam: (run (shell "sudo ln -f /usr/bin/opam-dev /usr/bin/opam"))
2026-03-02 04:44.42 ---> using "7a3442ad99cd957e3ce65df65cad40aee4354c6d524c7813b8b589bc410c187e" from cache

/home/opam: (run (network host)
                 (shell "opam init --reinit --config .opamrc-sandbox -ni"))
Configuring from /home/opam/.opamrc-sandbox, then /home/opam/.opamrc, and finally from built-in defaults.
Checking for available remotes: rsync and local, git.
  - you won't be able to use mercurial repositories unless you install the hg command on your system.
  - you won't be able to use darcs repositories unless you install the darcs command on your system.

Continue? [Y/n] y
This version of opam requires an update to the layout of /home/opam/.opam from version 2.0 to version 2.2, which can't be reverted.
You may want to back it up before going further.

Format upgrade done.

<><> Updating repositories ><><><><><><><><><><><><><><><><><><><><><><><><><><>
[default] Initialised
2026-03-02 04:44.42 ---> using "4214446d06a5b764dff5167574d07a5b4441731262795df63d7a3c5f64e1a189" from cache

/home/opam: (run (shell "opam option solver=builtin-0install && opam config report"))
Set to 'builtin-0install' the field solver in global configuration
# opam config report
# opam-version         2.5.0
# self-upgrade         no
# system               arch=x86_64 os=linux os-distribution=debian os-version=13
# solver               builtin-0install
# install-criteria     -changed,-count[avoid-version,solution]
# upgrade-criteria     -count[avoid-version,solution]
# jobs                 71
# repositories         1 (version-controlled)
# pinned               1 (version)
# current-switch       5.4
# invariant            ["ocaml-base-compiler" {>= "5.4.0"}]
# compiler-packages    ocaml-base-compiler.5.4.0, ocaml-compiler.5.4.0, ocaml-options-vanilla.1
# ocaml:native         true
# ocaml:native-tools   true
# ocaml:native-dynlink true
# ocaml:stubsdir       /home/opam/.opam/5.4/lib/ocaml/stublibs:/home/opam/.opam/5.4/lib/ocaml
# ocaml:preinstalled   false
# ocaml:compiler       5.4.0
2026-03-02 04:44.42 ---> using "8bf276ecf196c09ac4fb294f887dce47d9744c212aabbbad5d313f0a4179272a" from cache

/home/opam: (env OPAMDOWNLOADJOBS 1)

/home/opam: (env OPAMERRLOGLEN 0)

/home/opam: (env OPAMPRECISETRACKING 1)

/home/opam: (env CI true)

/home/opam: (env OPAM_REPO_CI true)

/home/opam: (run (shell "rm -rf opam-repository/"))
2026-03-02 04:44.42 ---> using "c04e3f046c8eaf07d3d8f4b30debe47a6f7742bcdbfbfeb4d464149613cd35cd" from cache

/home/opam: (copy (src .) (dst opam-repository/))
2026-03-02 04:44.43 ---> using "f28d2d55603b70a3956974bde95e68526d52d43abb5c3f086de712d28b994566" from cache

/home/opam: (run (shell "opam repository set-url --strict default opam-repository/"))
[default] Initialised
2026-03-02 04:44.43 ---> using "3775e9b8ca53e7a42e175e2f214e7d345a02bf22f9dd6d271ae720654f277192" from cache

/home/opam: (run (network host)
                 (shell "opam update --depexts || true"))
+ /usr/bin/sudo "apt-get" "update"
- Hit:1 http://deb.debian.org/debian trixie InRelease
- Get:2 http://deb.debian.org/debian trixie-updates InRelease [47.3 kB]
- Get:3 http://deb.debian.org/debian-security trixie-security InRelease [43.4 kB]
- Get:4 http://deb.debian.org/debian-security trixie-security/main amd64 Packages [113 kB]
- Fetched 203 kB in 0s (1230 kB/s)
- Reading package lists...
- 
2026-03-02 04:44.43 ---> using "a6fcf1eb697bb2cbcd49a3ac591b228ed4dfb5d9211b39971561804e137638fa" from cache

/home/opam: (run (shell "opam pin add -k version -yn ocaml-secondary-compiler.4.08.1-1 4.08.1-1"))
ocaml-secondary-compiler is now pinned to version 4.08.1-1
2026-03-02 04:44.43 ---> using "b44739e461a05019571129e607d8f83c09b00ce64ac384037276720e0cfa00bc" from cache

/home/opam: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
                 (network host)
                 (shell  "opam reinstall ocaml-secondary-compiler.4.08.1-1;\
                        \n        res=$?;\
                        \n        test \"$res\" != 31 && exit \"$res\";\
                        \n        export OPAMCLI=2.0;\
                        \n        build_dir=$(opam var prefix)/.opam-switch/build;\
                        \n        failed=$(ls \"$build_dir\");\
                        \n        partial_fails=\"\";\
                        \n        for pkg in $failed; do\
                        \n          if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
                        \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
                        \n          fi;\
                        \n          test \"$pkg\" != 'ocaml-secondary-compiler.4.08.1-1' && partial_fails=\"$partial_fails $pkg\";\
                        \n        done;\
                        \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
                        \n        exit 1"))
ocaml-secondary-compiler.4.08.1-1 is not installed. Install it? [Y/n] y
The following actions will be performed:
=== install 1 package
  - install ocaml-secondary-compiler 4.08.1-1 (pinned)

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved ocaml-secondary-compiler.4.08.1-1  (cached)
-> installed ocaml-secondary-compiler.4.08.1-1
Done.
# To update the current shell environment, run: eval $(opam env)
2026-03-02 04:44.43 ---> using "706491e990339b7da27f75607fd0a10bd654feebf3b990f4484bddb57d6a5a74" from cache

/home/opam: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
                 (network host)
                 (shell  "opam reinstall preface.1.1.0;\
                        \n        res=$?;\
                        \n        test \"$res\" != 31 && exit \"$res\";\
                        \n        export OPAMCLI=2.0;\
                        \n        build_dir=$(opam var prefix)/.opam-switch/build;\
                        \n        failed=$(ls \"$build_dir\");\
                        \n        partial_fails=\"\";\
                        \n        for pkg in $failed; do\
                        \n          if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
                        \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
                        \n          fi;\
                        \n          test \"$pkg\" != 'preface.1.1.0' && partial_fails=\"$partial_fails $pkg\";\
                        \n        done;\
                        \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
                        \n        exit 1"))
preface.1.1.0 is not installed. Install it? [Y/n] y
The following actions will be performed:
=== install 3 packages
  - install dune        3.21.1 [required by preface]
  - install preface     1.1.0
  - install qcheck-core 0.91   [required by preface]

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved dune.3.21.1  (cached)
-> retrieved preface.1.1.0  (cached)
-> retrieved qcheck-core.0.91  (cached)
-> installed dune.3.21.1
-> installed qcheck-core.0.91
-> installed preface.1.1.0
Done.
# To update the current shell environment, run: eval $(opam env)
2026-03-02 04:46.54 ---> saved as "7319438437b9ad8ceb6af603ce46fd61c64adf7fb6bbde677b50522c5a5a74fc"

/home/opam: (run (network host)
                 (shell "(opam reinstall --with-test preface.1.1.0) || true"))
The following actions will be performed:
=== recompile 1 package
  - recompile preface            1.1.0
=== install 19 packages
  - install   alcotest           1.9.1  [required by preface]
  - install   astring            0.8.5  [required by alcotest, mdx]
  - install   camlp-streams      5.0.1  [required by mdx]
  - install   cmdliner           2.1.0  [required by alcotest, mdx]
  - install   cppo               1.8.0  [required by mdx]
  - install   csexp              1.5.2  [required by mdx]
  - install   fmt                0.11.0 [required by alcotest, mdx]
  - install   logs               0.10.0 [required by mdx]
  - install   mdx                2.5.1  [required by preface]
  - install   ocaml-syntax-shims 1.0.0  [required by alcotest]
  - install   ocaml-version      4.0.3  [required by mdx]
  - install   ocamlbuild         0.16.1 [required by uutf, astring, fmt, logs]
  - install   ocamlfind          1.9.8  [required by mdx]
  - install   qcheck-alcotest    0.91   [required by preface]
  - install   re                 1.14.0 [required by alcotest, mdx]
  - install   result             1.5    [required by mdx]
  - install   stdlib-shims       0.3.0  [required by alcotest]
  - install   topkg              1.1.1  [required by uutf, astring, fmt, logs]
  - install   uutf               1.0.4  [required by alcotest]

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved alcotest.1.9.1  (https://opam.ocaml.org/cache)
-> retrieved astring.0.8.5  (https://opam.ocaml.org/cache)
-> retrieved camlp-streams.5.0.1  (https://opam.ocaml.org/cache)
-> retrieved cmdliner.2.1.0  (https://opam.ocaml.org/cache)
-> retrieved cppo.1.8.0  (https://opam.ocaml.org/cache)
-> retrieved csexp.1.5.2  (https://opam.ocaml.org/cache)
-> retrieved fmt.0.11.0  (https://opam.ocaml.org/cache)
-> retrieved logs.0.10.0  (https://opam.ocaml.org/cache)
-> retrieved mdx.2.5.1  (https://opam.ocaml.org/cache)
-> installed csexp.1.5.2
-> installed camlp-streams.5.0.1
-> retrieved ocaml-syntax-shims.1.0.0  (https://opam.ocaml.org/cache)
-> retrieved ocaml-version.4.0.3  (https://opam.ocaml.org/cache)
-> retrieved ocamlbuild.0.16.1  (https://opam.ocaml.org/cache)
-> retrieved ocamlfind.1.9.8  (https://opam.ocaml.org/cache)
-> installed ocaml-version.4.0.3
-> retrieved preface.1.1.0  (https://opam.ocaml.org/cache)
-> retrieved qcheck-alcotest.0.91  (https://opam.ocaml.org/cache)
-> retrieved re.1.14.0  (https://opam.ocaml.org/cache)
-> retrieved result.1.5  (https://opam.ocaml.org/cache)
-> retrieved stdlib-shims.0.3.0  (https://opam.ocaml.org/cache)
-> retrieved topkg.1.1.1  (https://opam.ocaml.org/cache)
-> retrieved uutf.1.0.4  (https://opam.ocaml.org/cache)
-> installed result.1.5
-> installed cppo.1.8.0
-> installed stdlib-shims.0.3.0
-> installed ocaml-syntax-shims.1.0.0
-> installed re.1.14.0
-> installed ocamlfind.1.9.8
-> installed cmdliner.2.1.0
-> removed   preface.1.1.0
-> installed ocamlbuild.0.16.1
-> installed topkg.1.1.1
-> installed fmt.0.11.0
-> installed uutf.1.0.4
-> installed astring.0.8.5
-> installed logs.0.10.0
-> installed alcotest.1.9.1
-> installed qcheck-alcotest.0.91
-> installed mdx.2.5.1
-> installed preface.1.1.0
Done.
# To update the current shell environment, run: eval $(opam env)
2026-03-02 04:49.26 ---> saved as "7ec9091c10b336bf62375213564650b5856d1337faa20e9253eb4a00c15153d1"

/home/opam: (run (shell  "opam reinstall --with-test --verbose preface.1.1.0;\
                        \n        res=$?;\
                        \n        test \"$res\" != 31 && exit \"$res\";\
                        \n        export OPAMCLI=2.0;\
                        \n        build_dir=$(opam var prefix)/.opam-switch/build;\
                        \n        failed=$(ls \"$build_dir\");\
                        \n        partial_fails=\"\";\
                        \n        for pkg in $failed; do\
                        \n          if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
                        \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
                        \n          fi;\
                        \n          test \"$pkg\" != 'preface.1.1.0' && partial_fails=\"$partial_fails $pkg\";\
                        \n        done;\
                        \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
                        \n        exit 1"))
The following actions will be performed:
=== recompile 1 package
  - recompile preface 1.1.0

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
Processing  1/4: [preface.1.1.0: extract]
-> retrieved preface.1.1.0  (cached)
Processing  2/4: [preface: dune build]
+ /home/opam/.opam/opam-init/hooks/sandbox.sh "build" "dune" "build" "-p" "preface" "-j" "71" (CWD=/home/opam/.opam/5.4/.opam-switch/build/preface.1.1.0)
- (cd _build/default && /home/opam/.opam/5.4/bin/ocamlc.opt -w -40 -g -bin-annot -bin-annot-occurrences -I lib/preface_qcheck/.preface_qcheck.objs/byte -I /home/opam/.opam/5.4/lib/ocaml/unix -I /home/opam/.opam/5.4/lib/qcheck-core -I lib/preface_core/.preface_core.objs/byte -I lib/preface_laws/.preface_laws.objs/byte -I lib/preface_make/.preface_make.objs/byte -I lib/preface_specs/.preface_specs.objs/byte -cmi-file lib/preface_qcheck/.preface_qcheck.objs/byte/preface_qcheck__Util.cmi -no-alias-deps -open Preface_qcheck__ -o lib/preface_qcheck/.preface_qcheck.objs/byte/preface_qcheck__Util.cmo -c -impl lib/preface_qcheck/util.ml)
- File "lib/preface_qcheck/util.ml", line 11, characters 2-11:
- 11 |   frequency [ (5, left >|= Either.left); (5, right >|= Either.right) ]
-        ^^^^^^^^^
- Alert deprecated: QCheck2.Gen.frequency
- Use [oneof_weighted] instead
- 
- File "lib/preface_qcheck/util.ml", line 16, characters 2-11:
- 16 |   frequency
-        ^^^^^^^^^
- Alert deprecated: QCheck2.Gen.frequency
- Use [oneof_weighted] instead
- 
- File "lib/preface_qcheck/util.ml", line 22, characters 2-11:
- 22 |   frequency [ (7, ok >|= Result.ok); (3, error >|= Result.error) ]
-        ^^^^^^^^^
- Alert deprecated: QCheck2.Gen.frequency
- Use [oneof_weighted] instead
- (cd _build/default && /home/opam/.opam/5.4/bin/ocamlopt.opt -w -40 -g -I lib/preface_qcheck/.preface_qcheck.objs/byte -I lib/preface_qcheck/.preface_qcheck.objs/native -I /home/opam/.opam/5.4/lib/ocaml/unix -I /home/opam/.opam/5.4/lib/qcheck-core -I lib/preface_core/.preface_core.objs/byte -I lib/preface_core/.preface_core.objs/native -I lib/preface_laws/.preface_laws.objs/byte -I lib/preface_laws/.preface_laws.objs/native -I lib/preface_make/.preface_make.objs/byte -I lib/preface_make/.preface_make.objs/native -I lib/preface_specs/.preface_specs.objs/byte -I lib/preface_specs/.preface_specs.objs/native -cmi-file lib/preface_qcheck/.preface_qcheck.objs/byte/preface_qcheck__Util.cmi -no-alias-deps -open Preface_qcheck__ -o lib/preface_qcheck/.preface_qcheck.objs/native/preface_qcheck__Util.cmx -c -impl lib/preface_qcheck/util.ml)
- File "lib/preface_qcheck/util.ml", line 11, characters 2-11:
- 11 |   frequency [ (5, left >|= Either.left); (5, right >|= Either.right) ]
-        ^^^^^^^^^
- Alert deprecated: QCheck2.Gen.frequency
- Use [oneof_weighted] instead
- 
- File "lib/preface_qcheck/util.ml", line 16, characters 2-11:
- 16 |   frequency
-        ^^^^^^^^^
- Alert deprecated: QCheck2.Gen.frequency
- Use [oneof_weighted] instead
- 
- File "lib/preface_qcheck/util.ml", line 22, characters 2-11:
- 22 |   frequency [ (7, ok >|= Result.ok); (3, error >|= Result.error) ]
-        ^^^^^^^^^
- Alert deprecated: QCheck2.Gen.frequency
- Use [oneof_weighted] instead
Processing  2/4: [preface: dune runtest]
+ /home/opam/.opam/opam-init/hooks/sandbox.sh "build" "dune" "runtest" "-p" "preface" (CWD=/home/opam/.opam/5.4/.opam-switch/build/preface.1.1.0)
- (cd _build/default/test/preface_core_test && ./preface_core_test.exe)
- Testing `Preface_core'.
- This run has ID `2G1CL4I8'.
- 
-   [OK]          Nonempty_list          0   Create.
-   [OK]          Nonempty_list          1   From_list with element in list.
-   [OK]          Nonempty_list          2   From_list with one element in list.
-   [OK]          Nonempty_list          3   From_list without element in list.
-   [OK]          Nonempty_list          4   Create list from non empty list wi...
-   [OK]          Nonempty_list          5   Create list from non empty list.
-   [OK]          Nonempty_list          6   Should extract head.
-   [OK]          Nonempty_list          7   Should extract empty tail.
-   [OK]          Nonempty_list          8   Should extract tail.
-   [OK]          Nonempty_list          9   Should have length 1.
-   [OK]          Nonempty_list         10   Should have length 4.
-   [OK]          Nonempty_list         11   Should cons.
-   [OK]          Nonempty_list         12   Should rev singleton.
-   [OK]          Nonempty_list         13   Should rev.
-   [OK]          Nonempty_list         14   Should iteri 1.
-   [OK]          Nonempty_list         15   Should iteri 2.
-   [OK]          Nonempty_list         16   Should iter 1.
-   [OK]          Nonempty_list         17   Should iter 2.
-   [OK]          Nonempty_list         18   Should mapi 1.
-   [OK]          Nonempty_list         19   Should mapi 2.
-   [OK]          Nonempty_list         20   Should map 1.
-   [OK]          Nonempty_list         21   Should map 2.
-   [OK]          Nonempty_list         22   Should fold left 1.
-   [OK]          Nonempty_list         23   Should fold left 2.
-   [OK]          Nonempty_list         24   Should fold right 1.
-   [OK]          Nonempty_list         25   Should fold right 2.
-   [OK]          Nonempty_list         26   Should append.
-   [OK]          Nonempty_list         27   Should flatten 1.
-   [OK]          Nonempty_list         28   Should flatten 2.
-   [OK]          Nonempty_list         29   Should rev_append.
-   [OK]          Fun                    0   Right to left composition.
-   [OK]          Fun                    1   Right to left infix composition.
-   [OK]          Fun                    2   Left to right composition.
-   [OK]          Fun                    3   Left to right infix composition.
- 
- Full test results in `~/.opam/5.4/.opam-switch/build/preface.1.1.0/_build/default/test/preface_core_test/_build/_tests/Preface_core'.
- Test Successful in 0.009s. 34 tests run.
- (cd _build/default && /home/opam/.opam/5.4/bin/ocamlopt.opt -w -40 -g -I test/preface_laws_test/.preface_laws_test.eobjs/byte -I test/preface_laws_test/.preface_laws_test.eobjs/native -I /home/opam/.opam/5.4/lib/alcotest -I /home/opam/.opam/5.4/lib/alcotest/engine -I /home/opam/.opam/5.4/lib/alcotest/stdlib_ext -I /home/opam/.opam/5.4/lib/astring -I /home/opam/.opam/5.4/lib/cmdliner -I /home/opam/.opam/5.4/lib/fmt -I /home/opam/.opam/5.4/lib/fmt/cli -I /home/opam/.opam/5.4/lib/fmt/tty -I /home/opam/.opam/5.4/lib/ocaml/unix -I /home/opam/.opam/5.4/lib/qcheck-alcotest -I /home/opam/.opam/5.4/lib/qcheck-core -I /home/opam/.opam/5.4/lib/qcheck-core/runner -I /home/opam/.opam/5.4/lib/re -I /home/opam/.opam/5.4/lib/stdlib-shims -I /home/opam/.opam/5.4/lib/uutf -I lib/preface/.Preface.objs/byte -I lib/preface/.Preface.objs/native -I lib/preface_core/.preface_core.objs/byte -I lib/preface_core/.preface_core.objs/native -I lib/preface_laws/.preface_laws.objs/byte -I lib/preface_laws/.preface_laws.objs/native -I lib/preface_make/.preface_make.objs/byte -I lib/preface_make/.preface_make.objs/native -I lib/preface_qcheck/.preface_qcheck.objs/byte -I lib/preface_qcheck/.preface_qcheck.objs/native -I lib/preface_specs/.preface_specs.objs/byte -I lib/preface_specs/.preface_specs.objs/native -I lib/preface_stdlib/.preface_stdlib.objs/byte -I lib/preface_stdlib/.preface_stdlib.objs/native -cmi-file test/preface_laws_test/.preface_laws_test.eobjs/byte/dune__exe__Req.cmi -no-alias-deps -open Dune__exe -o test/preface_laws_test/.preface_laws_test.eobjs/native/dune__exe__Req.cmx -c -impl test/preface_laws_test/req.ml)
- File "test/preface_laws_test/req.ml", line 276, characters 4-13:
- 276 |     frequency
-           ^^^^^^^^^
- Alert deprecated: QCheck2.Gen.frequency
- Use [oneof_weighted] instead
- (cd _build/default/test/preface_stdlib_test && ./preface_stdlib_test.exe)
- Testing `Preface_stdlib'.
- This run has ID `NUEZF1KI'.
- 
-   [OK]          Identity               0   Select left.
-   [OK]          Identity               1   Select right.
-   [OK]          Identity               2   Branch left.
-   [OK]          Identity               3   Branch right.
-   [OK]          Identity               4   If then left.
-   [OK]          Identity               5   If else right.
-   [OK]          Identity               6   Infix select left.
-   [OK]          Identity               7   Infix select right.
-   [OK]          Identity               8   Or true false.
-   [OK]          Identity               9   Or true true.
-   [OK]          Identity              10   Or false false.
-   [OK]          Identity              11   Or false true.
-   [OK]          Identity              12   And true false.
-   [OK]          Identity              13   And true true.
-   [OK]          Identity              14   And false false.
-   [OK]          Identity              15   And false true.
-   [OK]          Continuation           0   Map.
-   [OK]          Continuation           1   Apply.
-   [OK]          Continuation           2   Bind.
-   [OK]          List                   0   Fold_map over values.
-   [OK]          List                   1   Fold_map over empty.
-   [OK]          List                   2   Sequence with valid input and appl...
-   [OK]          List                   3   Sequence with invalid input and ap...
-   [OK]          List                   4   Sequence with valid input with monad.
-   [OK]          List                   5   Sequence with invalid input with m...
-   [OK]          Nonempty_list          0   Traverse through nonempty list ove...
-   [OK]          Nonempty_list          1   Traverse through nonempty list ove...
-   [OK]          Nonempty_list          2   Traverse through nonempty list ove...
-   [OK]          Nonempty_list          3   Traverse through nonempty list ove...
-   [OK]          Seq                    0   Fold_map over values.
-   [OK]          Seq                    1   Fold_map over empty.
-   [OK]          Seq                    2   Sequence with valid input and appl...
-   [OK]          Seq                    3   Sequence with invalid input and ap...
-   [OK]          Seq                    4   Sequence with valid input with monad.
-   [OK]          Seq                    5   Sequence with invalid input with m...
-   [OK]          Option                 0   Map scenario 1.
-   [OK]          Option                 1   Map scenario 2.
-   [OK]          Option                 2   Parallel validation 1.
-   [OK]          Option                 3   Parallel validation 2.
-   [OK]          Option                 4   Parallel validation 3.
-   [OK]          Option                 5   Parallel validation 4.
-   [OK]          Option                 6   Sequential validation 1.
-   [OK]          Option                 7   Sequential validation 2.
-   [OK]          Option                 8   Sequential validation 3.
-   [OK]          Option                 9   Sequential validation 4.
-   [OK]          Option                10   Sequential computing 1.
-   [OK]          Option                11   Sequential computing 2.
-   [OK]          Option                12   Fold_map over values.
-   [OK]          Option                13   Fold_map over empty.
-   [OK]          Option                14   If over valid predicate.
-   [OK]          Option                15   If over invalid predicate.
-   [OK]          Option                16   Unless over valid predicate.
-   [OK]          Option                17   Unless over invalid predicate.
-   [OK]          Option                18   Or with a first valid value.
-   [OK]          Option                19   Or with a second valid value.
-   [OK]          Option                20   Or with invalid on both.
-   [OK]          State                  0   Should retrieve value.
-   [OK]          State                  1   Should retrieve and set new value.
-   [OK]          State                  2   Should modify a value.
-   [OK]          State                  3   Should set and modify a value.
-   [OK]          State                  4   Should get and modify a value.
-   [OK]          State                  5   Should set modify and get a value.
-   [OK]          State                  6   Should get modify and get a value.
-   [OK]          Stream                 0   Extract.
-   [OK]          Stream                 1   Extend.
-   [OK]          Stream                 2   Infix Extend.
-   [OK]          Stream                 3   Flipped Infix Extend.
-   [OK]          Stream                 4   Compose right to left.
-   [OK]          Stream                 5   Lift.
-   [OK]          Stream                 6   Lift2.
-   [OK]          Stream                 7   Lift3.
-   [OK]          Stream                 8   Syntax Extend.
-   [OK]          Stream                 9   Compose left to right.
-   [OK]          Stream                10   Infix Compose left to right.
-   [OK]          Stream                11   Infix Compose right to left.
-   [OK]          Stream                12   Apply.
-   [OK]          Stream                13   Inverse apply.
-   [OK]          Stream                14   Discard first.
-   [OK]          Stream                15   Discard second.
-   [OK]          Stream                16   Get head.
-   [OK]          Stream                17   Get head of tail.
-   [OK]          Stream                18   Cons.
-   [OK]          Stream                19   Access with valid offset.
-   [OK]          Stream                20   Access with invalid offset.
-   [OK]          Stream                21   Get fibonacci numbers.
-   [OK]          Stream                22   Drop and take.
-   [OK]          Stream                23   Takewhile.
-   [OK]          Stream                24   Dropwhile.
-   [OK]          Try                    0   Simple validation with success.
-   [OK]          Try                    1   Simple validation failure (for name).
-   [OK]          Try                    2   Simple validation failure (for age).
-   [OK]          Pair                   0   fst.
-   [OK]          Pair                   1   snd.
-   [OK]          Pair                   2   swap.
-   [OK]          Pair                   3   curry.
-   [OK]          Pair                   4   uncurry.
-   [OK]          Pair                   5   &.
-   [OK]          Pair                   6   map &.
-   [OK]          Predicate              0   negate.
-   [OK]          Predicate              1   tautology.
-   [OK]          Predicate              2   contradiction.
-   [OK]          Store                  0   Test for pos.
-   [OK]          Store                  1   Test for seek.
-   [OK]          Store                  2   Test for seeks.
-   [OK]          Store                  3   Test for warehouse pos.
-   [OK]          Store                  4   Test for warehouse extract.
-   [OK]          Store                  5   Test for warehouse peek.
-   [OK]          Store                  6   Test for warehouse peeks.
-   [OK]          Store                  7   Test for warehouse seek.
-   [OK]          Store                  8   Test for warehouse seeks.
-   [OK]          Store                  9   Test for warehouse experiment.
-   [OK]          Env                    0   Test for ask.
-   [OK]          Env                    1   Test for asks 1.
-   [OK]          Env                    2   Test for asks 2.
-   [OK]          Env                    3   Test for get_char.
-   [OK]          Env                    4   test for truncate settings.
-   [OK]          Env                    5   test for padding settings.
-   [OK]          Env                    6   test for pipelining padding and tr...
-   [OK]          Env                    7   test for pipelining padding and tr...
-   [OK]          Traced                 0   Test for traced with neutral sum.
-   [OK]          Traced                 1   Test for traced sum.
-   [OK]          Traced                 2   Test for traced sum with extend.
- 
- Full test results in `~/.opam/5.4/.opam-switch/build/preface.1.1.0/_build/default/test/preface_stdlib_test/_build/_tests/Preface_stdlib'.
- Test Successful in 0.027s. 122 tests run.
- (cd _build/default && /home/opam/.opam/5.4/bin/ocamlopt.opt -w -40 -g -I test/preface_laws_test/.preface_laws_test.eobjs/byte -I test/preface_laws_test/.preface_laws_test.eobjs/native -I /home/opam/.opam/5.4/lib/alcotest -I /home/opam/.opam/5.4/lib/alcotest/engine -I /home/opam/.opam/5.4/lib/alcotest/stdlib_ext -I /home/opam/.opam/5.4/lib/astring -I /home/opam/.opam/5.4/lib/cmdliner -I /home/opam/.opam/5.4/lib/fmt -I /home/opam/.opam/5.4/lib/fmt/cli -I /home/opam/.opam/5.4/lib/fmt/tty -I /home/opam/.opam/5.4/lib/ocaml/unix -I /home/opam/.opam/5.4/lib/qcheck-alcotest -I /home/opam/.opam/5.4/lib/qcheck-core -I /home/opam/.opam/5.4/lib/qcheck-core/runner -I /home/opam/.opam/5.4/lib/re -I /home/opam/.opam/5.4/lib/stdlib-shims -I /home/opam/.opam/5.4/lib/uutf -I lib/preface/.Preface.objs/byte -I lib/preface/.Preface.objs/native -I lib/preface_core/.preface_core.objs/byte -I lib/preface_core/.preface_core.objs/native -I lib/preface_laws/.preface_laws.objs/byte -I lib/preface_laws/.preface_laws.objs/native -I lib/preface_make/.preface_make.objs/byte -I lib/preface_make/.preface_make.objs/native -I lib/preface_qcheck/.preface_qcheck.objs/byte -I lib/preface_qcheck/.preface_qcheck.objs/native -I lib/preface_specs/.preface_specs.objs/byte -I lib/preface_specs/.preface_specs.objs/native -I lib/preface_stdlib/.preface_stdlib.objs/byte -I lib/preface_stdlib/.preface_stdlib.objs/native -cmi-file test/preface_laws_test/.preface_laws_test.eobjs/byte/dune__exe__Misc.cmi -no-alias-deps -open Dune__exe -o test/preface_laws_test/.preface_laws_test.eobjs/native/dune__exe__Misc.cmx -c -impl test/preface_laws_test/misc.ml)
- File "test/preface_laws_test/misc.ml", line 37, characters 4-13:
- 37 |     frequency [ (3, pure Lt); (3, pure Eq); (3, pure Gt) ]
-          ^^^^^^^^^
- Alert deprecated: QCheck2.Gen.frequency
- Use [oneof_weighted] instead
- (cd _build/default/test/preface_examples_test && ./preface_example_test.exe)
- Testing `Preface examples'.
- This run has ID `PNDBYOE8'.
- 
-   [OK]          The Arrow tutorial                                        0   run circuit using total....
-   [OK]          The Arrow tutorial                                        1   run circuit which compute average....
-   [OK]          The Arrow tutorial                                        2   run circuit which return true first and false after....
-   [OK]          The Arrow tutorial                                        3   run circuit wich store a value and returns it when it get a new one....
-   [OK]          Formlet using Validate                                    0   Simple validation with success....
-   [OK]          Formlet using Validate                                    1   Simple validation with failure (for age)....
-   [OK]          Formlet using Validate                                    2   Simple validation with failure (for firstname and lastname)....
-   [OK]          Formlet using Validate                                    3   Simple validation with failure (unchecked rules)....
-   [OK]          Formlet using Validate                                    4   Simple validation with failure (everything is bad)....
-   [OK]          Free Applicative Formlet                                  0   test with valid user....
-   [OK]          Free Applicative Formlet                                  1   test with missing field name....
-   [OK]          Free Applicative Formlet                                  2   test with missing field name and invalid age....
-   [OK]          Free Applicative Formlet                                  3   static analysis: count....
-   [OK]          Free Applicative Formlet                                  4   static analysis: fields....
-   [OK]          Shape validation using Validate                           0   Simple validation of Circle....
-   [OK]          Shape validation using Validate                           1   Simple validation of Rectangle....
-   [OK]          Shape validation using Validate                           2   Simple validation of Rectangle with one failure....
-   [OK]          Shape validation using Validate                           3   Simple validation of Rectangle with two failures....
-   [OK]          Free Monad console IO                                     0   write hello....
-   [OK]          Free Monad console IO                                     1   write hello alice....
-   [OK]          Free Monad console IO                                     2   read alice....
-   [OK]          Free Monad console IO                                     3   read alice twice....
-   [OK]          Free Monad console IO                                     4   read alice and write it....
-   [OK]          Free Monad console IO                                     5   read alice and write hello....
-   [OK]          Free Monad console IO                                     6   read alice and write hello using id monad....
-   [OK]          Free Monad console IO                                     7   test `need interaction` when interaction is needed....
-   [OK]          Free Monad console IO                                     8   test `need interaction` when interaction is not needed....
-   [OK]          Free Monad console IO using Functor Sum                   0   write hello....
-   [OK]          Free Monad console IO using Functor Sum                   1   write hello alice....
-   [OK]          Free Monad console IO using Functor Sum                   2   read alice....
-   [OK]          Free Monad console IO using Functor Sum                   3   read alice twice....
-   [OK]          Free Monad console IO using Functor Sum                   4   read alice and write it....
-   [OK]          Free Monad console IO using Functor Sum                   5   read alice and write hello....
-   [OK]          Freer Monad console IO                                    0   write hello....
-   [OK]          Freer Monad console IO                                    1   write hello alice....
-   [OK]          Freer Monad console IO                                    2   read alice....
-   [OK]          Freer Monad console IO                                    3   read alice twice....
-   [OK]          Freer Monad console IO                                    4   read alice and write it....
-   [OK]          Freer Monad console IO                                    5   read alice and write hello....
-   [OK]          Freer Monad OS effect                                     0   Happy path: perform program without path....
-   [OK]          Freer Monad OS effect                                     1   Happy path: perform program with path....
-   [OK]          Freer Monad OS effect                                     2   Unhappy path: perform program without path....
-   [OK]          Freer Monad OS effect with explicit continuation          0   Happy path: perform program without path....
-   [OK]          Freer Monad OS effect with explicit continuation          1   Happy path: perform program with path....
-   [OK]          Freer Monad OS effect with explicit continuation          2   Unhappy path: perform program without path....
-   [OK]          Freer To Monad                                            0   Program that returns Ok....
-   [OK]          Freer To Monad                                            1   Program that returns Error....
-   [OK]          Free Selective Ping Pong                                  0   test reading ping, writing pong....
-   [OK]          Free Selective Ping Pong                                  1   test reading not_ping, writing nothing....
-   [OK]          Free Selective Ping Pong                                  2   static analysis over effects....
-   [OK]          Freer Selective Ping Pong                                 0   test reading ping, writing pong....
-   [OK]          Freer Selective Ping Pong                                 1   test reading not_ping, writing nothing....
-   [OK]          Templating using Reader                                   0   Should transform a constant....
-   [OK]          Templating using Reader                                   1   Should transform a variable....
-   [OK]          Templating using Reader                                   2   Should not transform a variable....
-   [OK]          Templating using Reader                                   3   Should not transform a sequence of constants and variable....
-   [OK]          Read Debruijn term using Reader                           0   Should transform a bind variable....
-   [OK]          Read Debruijn term using Reader                           1   Should transform a free variable....
-   [OK]          Read Debruijn term using Reader                           2   Should transform a identity abtraction....
-   [OK]          Read Debruijn term using Reader                           3   Should transform an application....
-   [OK]          Over Approximation                                        0   over approximation with Selective.if_....
-   [OK]          Under Approximation                                       0   under approximation with Selective.if_....
-   [OK]          Xml to Stax reader                                        0   Should transform a pcdata....
-   [OK]          Xml to Stax reader                                        1   Should transform a tag....
-   [OK]          Xml to Stax reader                                        2   Should transform a sequence....
-   [OK]          Xml to Stax reader                                        3   Should transform empty....
-   [OK]          Dependencies computing using Traced Comonad               0   Deps for preface_make....
-   [OK]          Dependencies computing using Traced Comonad               1   Deps for preface_stdlib....
-   [OK]          Dependencies computing using Traced Comonad               2   Deps for preface_specs....
-   [OK]          Dependencies computing using Traced Comonad               3   Deps for preface_preface....
-   [OK]          Pretty Printer using contravariants functors              0   Pretty print a Ford Mustang....
-   [OK]          Pretty Printer using contravariants functors              1   Pretty print a Toyota Corolla....
- 
- Full test results in `~/.opam/5.4/.opam-switch/build/preface.1.1.0/_build/default/test/preface_examples_test/_build/_tests/Preface examples'.
- Test Successful in 0.011s. 72 tests run.
- (cd _build/default/test/preface_laws_test && ./preface_laws_test.exe)
- qcheck random seed: 697540510
- Testing `Preface Laws'.
- This run has ID `UU5RHC09'.
- 
-   [OK]          Sum monoid                                                                                  0   (a <|> b) <|> c = a <|> (b <|> c)....
-   [OK]          Sum monoid                                                                                  1   neutral <|> x = x....
-   [OK]          Sum monoid                                                                                  2   x <|> neutral = x....
-   [OK]          Prod Monoid                                                                                 0   (a <|> b) <|> c = a <|> (b <|> c)....
-   [OK]          Prod Monoid                                                                                 1   neutral <|> x = x....
-   [OK]          Prod Monoid                                                                                 2   x <|> neutral = x....
-   [OK]          Bool Meet_semilattice                                                                       0   meet x (meet y z) = meet (meet x y) z....
-   [OK]          Bool Meet_semilattice                                                                       1   meet x y = meet y x....
-   [OK]          Bool Meet_semilattice                                                                       2   meet x x = x....
-   [OK]          Ord Meet_semilattice                                                                        0   meet x (meet y z) = meet (meet x y) z....
-   [OK]          Ord Meet_semilattice                                                                        1   meet x y = meet y x....
-   [OK]          Ord Meet_semilattice                                                                        2   meet x x = x....
-   [OK]          Bool Join_semilattice                                                                       0   join x (join y z) = join (join x y) z....
-   [OK]          Bool Join_semilattice                                                                       1   join x y = join y x....
-   [OK]          Bool Join_semilattice                                                                       2   join x x = x....
-   [OK]          Bool Bounded_meet_semilattice                                                               0   meet x (meet y z) = meet (meet x y) z....
-   [OK]          Bool Bounded_meet_semilattice                                                               1   meet x y = meet y x....
-   [OK]          Bool Bounded_meet_semilattice                                                               2   meet x x = x....
-   [OK]          Bool Bounded_meet_semilattice                                                               3   meet x top = x....
-   [OK]          Bool Bounded_join_semilattice                                                               0   join x (join y z) = join (join x y) z....
-   [OK]          Bool Bounded_join_semilattice                                                               1   join x y = join y x....
-   [OK]          Bool Bounded_join_semilattice                                                               2   join x x = x....
-   [OK]          Bool Bounded_join_semilattice                                                               3   join x bottom = x....
-   [OK]          Bool Bounded_lattice                                                                        0   join x (join y z) = join (join x y) z....
-   [OK]          Bool Bounded_lattice                                                                        1   join x y = join y x....
-   [OK]          Bool Bounded_lattice                                                                        2   join x x = x....
-   [OK]          Bool Bounded_lattice                                                                        3   join x bottom = x....
-   [OK]          Bool Bounded_lattice                                                                        4   meet x (meet y z) = meet (meet x y) z....
-   [OK]          Bool Bounded_lattice                                                                        5   meet x y = meet y x....
-   [OK]          Bool Bounded_lattice                                                                        6   meet x x = x....
-   [OK]          Bool Bounded_lattice                                                                        7   meet x top = x....
-   [OK]          Bool Bounded_lattice                                                                        8   meet a (join a b) = a....
-   [OK]          Bool Bounded_lattice                                                                        9   meet a (join a b) = a....
-   [OK]          Bool lattice                                                                                0   join x (join y z) = join (join x y) z....
-   [OK]          Bool lattice                                                                                1   join x y = join y x....
-   [OK]          Bool lattice                                                                                2   join x x = x....
-   [OK]          Bool lattice                                                                                3   meet x (meet y z) = meet (meet x y) z....
-   [OK]          Bool lattice                                                                                4   meet x y = meet y x....
-   [OK]          Bool lattice                                                                                5   meet x x = x....
-   [OK]          Bool lattice                                                                                6   meet a (join a b) = a....
-   [OK]          Bool lattice                                                                                7   join a (meet a b) = a....
-   [OK]          Ord Join_semilattice                                                                        0   join x (join y z) = join (join x y) z....
-   [OK]          Ord Join_semilattice                                                                        1   join x y = join y x....
-   [OK]          Ord Join_semilattice                                                                        2   join x x = x....
-   [OK]          YOCaml Profunctor                                                                           0   dimap id id = id....
-   [OK]          YOCaml Profunctor                                                                           1   contramap_fst id = id....
-   [OK]          YOCaml Profunctor                                                                           2   map_snd id = id....
-   [OK]          YOCaml Profunctor                                                                           3   dimap f g = contramap_fst f % map_snd g....
-   [OK]          YOCaml Profunctor                                                                           4   dimap (f % g) (h % i) = dimap f h % dimap g i....
-   [OK]          YOCaml Profunctor                                                                           5   contramap_fst (f % g) = contramap_fst f % contramap_fst g....
-   [OK]          YOCaml Profunctor                                                                           6   map_snd (f % g) = map_snd f % map_snd g....
-   [OK]          YOCaml Strong                                                                               0   dimap id id = id....
-   [OK]          YOCaml Strong                                                                               1   contramap_fst id = id....
-   [OK]          YOCaml Strong                                                                               2   map_snd id = id....
-   [OK]          YOCaml Strong                                                                               3   dimap f g = contramap_fst f % map_snd g....
-   [OK]          YOCaml Strong                                                                               4   dimap (f % g) (h % i) = dimap f h % dimap g i....
-   [OK]          YOCaml Strong                                                                               5   contramap_fst (f % g) = contramap_fst f % contramap_fst g....
-   [OK]          YOCaml Strong                                                                               6   map_snd (f % g) = map_snd f % map_snd g....
-   [OK]          YOCaml Strong                                                                               7   fst = dimap swap swap % snd....
-   [OK]          YOCaml Strong                                                                               8   contramap_fst (fun (x, _) -> x) = map_snd (fun (x, _) -> x) % fst....
-   [OK]          YOCaml Strong                                                                               9   contramap_fst (Fun.Strong.snd f) % fst = map_snd (Fun.Strong.snd f) % fst....
-   [OK]          YOCaml Strong                                                                              10   fst % fst = dimap assoc unassoc % fst....
-   [OK]          YOCaml Strong                                                                              11   snd = dimap swap swap % fst....
-   [OK]          YOCaml Strong                                                                              12   contramap_fst (fun (_, x) -> x) = map_snd (fun (_, x) -> x) % snd....
-   [OK]          YOCaml Strong                                                                              13   contramap_fst (Fun.Strong.fst f) % snd = map_snd (Fun.Strong.fst f) % snd....
-   [OK]          YOCaml Strong                                                                              14   snd % snd = dimap unassoc assoc  % snd....
-   [OK]          YOCaml Choice                                                                               0   dimap id id = id....
-   [OK]          YOCaml Choice                                                                               1   contramap_fst id = id....
-   [OK]          YOCaml Choice                                                                               2   map_snd id = id....
-   [OK]          YOCaml Choice                                                                               3   dimap f g = contramap_fst f % map_snd g....
-   [OK]          YOCaml Choice                                                                               4   dimap (f % g) (h % i) = dimap f h % dimap g i....
-   [OK]          YOCaml Choice                                                                               5   contramap_fst (f % g) = contramap_fst f % contramap_fst g....
-   [OK]          YOCaml Choice                                                                               6   map_snd (f % g) = map_snd f % map_snd g....
-   [OK]          YOCaml Choice                                                                               7   left = dimap swap swap % right....
-   [OK]          YOCaml Choice                                                                               8   map_snd Either.left = contramap_fst Either.left % left....
-   [OK]          YOCaml Choice                                                                               9   contramap_fst (Fun.Choice.right f) % left = map_snd (Fun.Choice.right f) % left....
-   [OK]          YOCaml Choice                                                                              10   left % left = dimap assoc unassoc % left....
-   [OK]          YOCaml Choice                                                                              11   right = dimap swap swap % left....
-   [OK]          YOCaml Choice                                                                              12   map_snd Either.right = contramap_fst Either.right % right....
-   [OK]          YOCaml Choice                                                                              13   contramap_fst (Fun.Choice.left f) % right = map_snd (Fun.Choice.left f) % right....
-   [OK]          YOCaml Choice                                                                              14   right % right = dimap unassoc assoc % left....
-   [OK]          YOCaml Semigroupoid                                                                         0   f % (g % h) = (f % g) % h....
-   [OK]          YOCaml Categrory                                                                            0   f % (g % h) = (f % g) % h....
-   [OK]          YOCaml Categrory                                                                            1   f % id = f....
-   [OK]          YOCaml Categrory                                                                            2   id % f = f....
-   [OK]          YOCaml Arrow                                                                                0   f % (g % h) = (f % g) % h....
-   [OK]          YOCaml Arrow                                                                                1   f % id = f....
-   [OK]          YOCaml Arrow                                                                                2   id % f = f....
-   [OK]          YOCaml Arrow                                                                                3   arrow Fun.id = id....
-   [OK]          YOCaml Arrow                                                                                4   arrow (fun x -> f (g x)) = arrow f >>> arrow g....
-   [OK]          YOCaml Arrow                                                                                5   fst (arrow f) = arrow (fun (x, y) -> (f x, y))....
-   [OK]          YOCaml Arrow                                                                                6   fst (f >>> g) = fst f >>> fst g....
-   [OK]          YOCaml Arrow                                                                                7   fst f >>> arrow Stdlib.fst = arrow Stdlib.fst >>> f....
-   [OK]          YOCaml Arrow                                                                                8   fst f >>> arrow Fun.Arrow.(id *** g) = arrow Fun.Arrow.(id *** g) >>> fst g....
-   [OK]          YOCaml Arrow                                                                                9   (fst (fst f)) >>> arrow assoc = arrow assoc >>> fst f....
-   [OK]          YOCaml Arrow Choice                                                                         0   f % (g % h) = (f % g) % h....
-   [OK]          YOCaml Arrow Choice                                                                         1   f % id = f....
-   [OK]          YOCaml Arrow Choice                                                                         2   id % f = f....
-   [OK]          YOCaml Arrow Choice                                                                         3   arrow Fun.id = id....
-   [OK]          YOCaml Arrow Choice                                                                         4   arrow (fun x -> f (g x)) = arrow f >>> arrow g....
-   [OK]          YOCaml Arrow Choice                                                                         5   fst (arrow f) = arrow (fun (x, y) -> (f x, y))....
-   [OK]          YOCaml Arrow Choice                                                                         6   fst (f >>> g) = fst f >>> fst g....
-   [OK]          YOCaml Arrow Choice                                                                         7   fst f >>> arrow Stdlib.fst = arrow Stdlib.fst >>> f....
-   [OK]          YOCaml Arrow Choice                                                                         8   fst f >>> arrow Fun.Arrow.(id *** g) = arrow Fun.Arrow.(id *** g) >>> fst g....
-   [OK]          YOCaml Arrow Choice                                                                         9   (fst (fst f)) >>> arrow assoc = arrow assoc >>> fst f....
-   [OK]          YOCaml Arrow Choice                                                                        10   left (arrow f) = arrow Fun.Arrow_choice.(left f)....
-   [OK]          YOCaml Arrow Choice                                                                        11   left (f >>> g) = left f >>> left g....
-   [OK]          YOCaml Arrow Choice                                                                        12   f >>> arrow Either.left = arrow Either.left >>> left f....
-   [OK]          YOCaml Arrow Choice                                                                        13   left >>> arrow Fun.Arrow_choice.(id +++ g) = arrow Fun.Arrow_choice.(id +++ g) >>> left f....
-   [OK]          YOCaml Arrow Choice                                                                        14   left (left f) >>> arrow assoc_either = arrow assoc_either >>> left f....
-   [OK]          Over Sum Applicative                                                                        0   map id = id....
-   [OK]          Over Sum Applicative                                                                        1   map (f % g) = (map f) % (map g)....
-   [OK]          Over Sum Applicative                                                                        2   u *> v = (id <$ u) <*> v....
-   [OK]          Over Sum Applicative                                                                        3   u <* v = lift2 const u v....
-   [OK]          Over Sum Applicative                                                                        4   pure id <*> x = x....
-   [OK]          Over Sum Applicative                                                                        5   pure f <*> pure x = pure f x....
-   [OK]          Over Sum Applicative                                                                        6   f <*> pure x = pure ((|>) x) <*> f....
-   [OK]          Over Sum Applicative                                                                        7   pure ( % ) <*> u <*> v <*> w = u <*> (v <*> w)....
-   [OK]          Over Sum Applicative                                                                        8   map f x = pure f <*> x....
-   [OK]          Over Sum Selective                                                                          0   map id = id....
-   [OK]          Over Sum Selective                                                                          1   map (f % g) = (map f) % (map g)....
-   [OK]          Over Sum Selective                                                                          2   u *> v = (id <$ u) <*> v....
-   [OK]          Over Sum Selective                                                                          3   u <* v = lift2 const u v....
-   [OK]          Over Sum Selective                                                                          4   pure id <*> x = x....
-   [OK]          Over Sum Selective                                                                          5   pure f <*> pure x = pure f x....
-   [OK]          Over Sum Selective                                                                          6   f <*> pure x = pure ((|>) x) <*> f....
-   [OK]          Over Sum Selective                                                                          7   pure ( % ) <*> u <*> v <*> w = u <*> (v <*> w)....
-   [OK]          Over Sum Selective                                                                          8   map f x = pure f <*> x....
-   [OK]          Over Sum Selective                                                                          9   x <*? pure Fun.id = Either.case Fun.id Fun.id <$> x....
-   [OK]          Over Sum Selective                                                                         10   pure x <*? (y *> z) = (pure x <*? y) *> (pure x <*? z)....
-   [OK]          Over Sum Selective                                                                         11   x <*? (y <*? z) = (Either.(map_right right) <$> x) <*? ((fun x a -> Either.map ~left:(fun x -> (x, a)) ~right:(fun f -> f a) x) <$> y) <*? (uncurry <$> z)....
-   [OK]          Over Sum Selective                                                                         12   f <$> select x y = select (Either.map_right f <$> x) (map f <$> y)....
-   [OK]          Over Sum Selective                                                                         13   select (Either.map_left f <$> x) y = select x ((%>) f) <$> y)....
-   [OK]          Over Sum Selective                                                                         14   select x (f <$> y) = select (Either.map_left (flip f) <$> x) ((|>) <$> y)....
-   [OK]          Over Sum Selective                                                                         15   x <*? pure y = Either.case y Fun.id <$> x....
-   [OK]          Under Sum Applicative                                                                       0   map id = id....
-   [OK]          Under Sum Applicative                                                                       1   map (f % g) = (map f) % (map g)....
-   [OK]          Under Sum Applicative                                                                       2   u *> v = (id <$ u) <*> v....
-   [OK]          Under Sum Applicative                                                                       3   u <* v = lift2 const u v....
-   [OK]          Under Sum Applicative                                                                       4   pure id <*> x = x....
-   [OK]          Under Sum Applicative                                                                       5   pure f <*> pure x = pure f x....
-   [OK]          Under Sum Applicative                                                                       6   f <*> pure x = pure ((|>) x) <*> f....
-   [OK]          Under Sum Applicative                                                                       7   pure ( % ) <*> u <*> v <*> w = u <*> (v <*> w)....
-   [OK]          Under Sum Applicative                                                                       8   map f x = pure f <*> x....
-   [OK]          Under Sum Selective                                                                         0   map id = id....
-   [OK]          Under Sum Selective                                                                         1   map (f % g) = (map f) % (map g)....
-   [OK]          Under Sum Selective                                                                         2   u *> v = (id <$ u) <*> v....
-   [OK]          Under Sum Selective                                                                         3   u <* v = lift2 const u v....
-   [OK]          Under Sum Selective                                                                         4   pure id <*> x = x....
-   [OK]          Under Sum Selective                                                                         5   pure f <*> pure x = pure f x....
-   [OK]          Under Sum Selective                                                                         6   f <*> pure x = pure ((|>) x) <*> f....
-   [OK]          Under Sum Selective                                                                         7   pure ( % ) <*> u <*> v <*> w = u <*> (v <*> w)....
-   [OK]          Under Sum Selective                                                                         8   map f x = pure f <*> x....
-   [OK]          Under Sum Selective                                                                         9   x <*? pure Fun.id = Either.case Fun.id Fun.id <$> x....
-   [OK]          Under Sum Selective                                                                        10   pure x <*? (y *> z) = (pure x <*? y) *> (pure x <*? z)....
-   [OK]          Under Sum Selective                                                                        11   x <*? (y <*? z) = (Either.(map_right right) <$> x) <*? ((fun x a -> Either.map ~left:(fun x -> (x, a)) ~right:(fun f -> f a) x) <$> y) <*? (uncurry <$> z)....
-   [OK]          Under Sum Selective                                                                        12   f <$> select x y = select (Either.map_right f <$> x) (map f <$> y)....
-   [OK]          Under Sum Selective                                                                        13   select (Either.map_left f <$> x) y = select x ((%>) f) <$> y)....
-   [OK]          Under Sum Selective                                                                        14   select x (f <$> y) = select (Either.map_left (flip f) <$> x) ((|>) <$> y)....
-   [OK]          Under Sum Selective                                                                        15   x <*? pure y = Either.case y Fun.id <$> x....
-   [OK]          Over Prod Applicative                                                                       0   map id = id....
-   [OK]          Over Prod Applicative                                                                       1   map (f % g) = (map f) % (map g)....
-   [OK]          Over Prod Applicative                                                                       2   u *> v = (id <$ u) <*> v....
-   [OK]          Over Prod Applicative                                                                       3   u <* v = lift2 const u v....
-   [OK]          Over Prod Applicative                                                                       4   pure id <*> x = x....
-   [OK]          Over Prod Applicative                                                                       5   pure f <*> pure x = pure f x....
-   [OK]          Over Prod Applicative                                                                       6   f <*> pure x = pure ((|>) x) <*> f....
-   [OK]          Over Prod Applicative                                                                       7   pure ( % ) <*> u <*> v <*> w = u <*> (v <*> w)....
-   [OK]          Over Prod Applicative                                                                       8   map f x = pure f <*> x....
-   [OK]          Over Prod Selective                                                                         0   map id = id....
-   [OK]          Over Prod Selective                                                                         1   map (f % g) = (map f) % (map g)....
-   [OK]          Over Prod Selective                                                                         2   u *> v = (id <$ u) <*> v....
-   [OK]          Over Prod Selective                                                                         3   u <* v = lift2 const u v....
-   [OK]          Over Prod Selective                                                                         4   pure id <*> x = x....
-   [OK]          Over Prod Selective                                                                         5   pure f <*> pure x = pure f x....
-   [OK]          Over Prod Selective                                                                         6   f <*> pure x = pure ((|>) x) <*> f....
-   [OK]          Over Prod Selective                                                                         7   pure ( % ) <*> u <*> v <*> w = u <*> (v <*> w)....
-   [OK]          Over Prod Selective                                                                         8   map f x = pure f <*> x....
-   [OK]          Over Prod Selective                                                                         9   x <*? pure Fun.id = Either.case Fun.id Fun.id <$> x....
-   [OK]          Over Prod Selective                                                                        10   pure x <*? (y *> z) = (pure x <*? y) *> (pure x <*? z)....
-   [OK]          Over Prod Selective                                                                        11   x <*? (y <*? z) = (Either.(map_right right) <$> x) <*? ((fun x a -> Either.map ~left:(fun x -> (x, a)) ~right:(fun f -> f a) x) <$> y) <*? (uncurry <$> z)....
-   [OK]          Over Prod Selective                                                                        12   f <$> select x y = select (Either.map_right f <$> x) (map f <$> y)....
-   [OK]          Over Prod Selective                                                                        13   select (Either.map_left f <$> x) y = select x ((%>) f) <$> y)....
-   [OK]          Over Prod Selective                                                                        14   select x (f <$> y) = select (Either.map_left (flip f) <$> x) ((|>) <$> y)....
-   [OK]          Over Prod Selective                                                                        15   x <*? pure y = Either.case y Fun.id <$> x....
-   [OK]          Under Prod Applicative                                                                      0   map id = id....
-   [OK]          Under Prod Applicative                                                                      1   map (f % g) = (map f) % (map g)....
-   [OK]          Under Prod Applicative                                                                      2   u *> v = (id <$ u) <*> v....
-   [OK]          Under Prod Applicative                                                                      3   u <* v = lift2 const u v....
-   [OK]          Under Prod Applicative                                                                      4   pure id <*> x = x....
-   [OK]          Under Prod Applicative                                                                      5   pure f <*> pure x = pure f x....
-   [OK]          Under Prod Applicative                                                                      6   f <*> pure x = pure ((|>) x) <*> f....
-   [OK]          Under Prod Applicative                                                                      7   pure ( % ) <*> u <*> v <*> w = u <*> (v <*> w)....
-   [OK]          Under Prod Applicative                                                                      8   map f x = pure f <*> x....
-   [OK]          Under Prod Selective                                                                        0   map id = id....
-   [OK]          Under Prod Selective                                                                        1   map (f % g) = (map f) % (map g)....
-   [OK]          Under Prod Selective                                                                        2   u *> v = (id <$ u) <*> v....
-   [OK]          Under Prod Selective                                                                        3   u <* v = lift2 const u v....
-   [OK]          Under Prod Selective                                                                        4   pure id <*> x = x....
-   [OK]          Under Prod Selective                                                                        5   pure f <*> pure x = pure f x....
-   [OK]          Under Prod Selective                                                                        6   f <*> pure x = pure ((|>) x) <*> f....
-   [OK]          Under Prod Selective                                                                        7   pure ( % ) <*> u <*> v <*> w = u <*> (v <*> w)....
-   [OK]          Under Prod Selective                                                                        8   map f x = pure f <*> x....
-   [OK]          Under Prod Selective                                                                        9   x <*? pure Fun.id = Either.case Fun.id Fun.id <$> x....
-   [OK]          Under Prod Selective                                                                       10   pure x <*? (y *> z) = (pure x <*? y) *> (pure x <*? z)....
-   [OK]          Under Prod Selective                                                                       11   x <*? (y <*? z) = (Either.(map_right right) <$> x) <*? ((fun x a -> Either.map ~left:(fun x -> (x, a)) ~right:(fun f -> f a) x) <$> y) <*? (uncurry <$> z)....
-   [OK]          Under Prod Selective                                                                       12   f <$> select x y = select (Either.map_right f <$> x) (map f <$> y)....
-   [OK]          Under Prod Selective                                                                       13   select (Either.map_left f <$> x) y = select x ((%>) f) <$> y)....
-   [OK]          Under Prod Selective                                                                       14   select x (f <$> y) = select (Either.map_left (flip f) <$> x) ((|>) <$> y)....
-   [OK]          Under Prod Selective                                                                       15   x <*? pure y = Either.case y Fun.id <$> x....
-   [OK]          Identity Invariant                                                                          0   invmap id id = id....
-   [OK]          Identity Invariant                                                                          1   (invmap g g') % (invmap f f') = invmap (g % g') (f % f')....
-   [OK]          Identity Functor                                                                            0   map id = id....
-   [OK]          Identity Functor                                                                            1   map (f % g) = (map f) % (map g)....
-   [OK]          Identity Apply                                                                              0   map id = id....
-   [OK]          Identity Apply                                                                              1   map (f % g) = (map f) % (map g)....
-   [OK]          Identity Apply                                                                              2   u *> v = (id <$ u) <*> v....
-   [OK]          Identity Apply                                                                              3   u <* v = lift2 const u v....
-   [OK]          Identity Applicative                                                                        0   map id = id....
-   [OK]          Identity Applicative                                                                        1   map (f % g) = (map f) % (map g)....
-   [OK]          Identity Applicative                                                                        2   u *> v = (id <$ u) <*> v....
-   [OK]          Identity Applicative                                                                        3   u <* v = lift2 const u v....
-   [OK]          Identity Applicative                                                                        4   pure id <*> x = x....
-   [OK]          Identity Applicative                                                                        5   pure f <*> pure x = pure f x....
-   [OK]          Identity Applicative                                                                        6   f <*> pure x = pure ((|>) x) <*> f....
-   [OK]          Identity Applicative                                                                        7   pure ( % ) <*> u <*> v <*> w = u <*> (v <*> w)....
-   [OK]          Identity Applicative                                                                        8   map f x = pure f <*> x....
-   [OK]          Identity Selective                                                                          0   map id = id....
-   [OK]          Identity Selective                                                                          1   map (f % g) = (map f) % (map g)....
-   [OK]          Identity Selective                                                                          2   u *> v = (id <$ u) <*> v....
-   [OK]          Identity Selective                                                                          3   u <* v = lift2 const u v....
-   [OK]          Identity Selective                                                                          4   pure id <*> x = x....
-   [OK]          Identity Selective                                                                          5   pure f <*> pure x = pure f x....
-   [OK]          Identity Selective                                                                          6   f <*> pure x = pure ((|>) x) <*> f....
-   [OK]          Identity Selective                                                                          7   pure ( % ) <*> u <*> v <*> w = u <*> (v <*> w)....
-   [OK]          Identity Selective                                                                          8   map f x = pure f <*> x....
-   [OK]          Identity Selective                                                                          9   x <*? pure Fun.id = Either.case Fun.id Fun.id <$> x....
-   [OK]          Identity Selective                                                                         10   pure x <*? (y *> z) = (pure x <*? y) *> (pure x <*? z)....
-   [OK]          Identity Selective                                                                         11   x <*? (y <*? z) = (Either.(map_right right) <$> x) <*? ((fun x a -> Either.map ~left:(fun x -> (x, a)) ~right:(fun f -> f a) x) <$> y) <*? (uncurry <$> z)....
-   [OK]          Identity Selective                                                                         12   f <$> select x y = select (Either.map_right f <$> x) (map f <$> y)....
-   [OK]          Identity Selective                                                                         13   select (Either.map_left f <$> x) y = select x ((%>) f) <$> y)....
-   [OK]          Identity Selective                                                                         14   select x (f <$> y) = select (Either.map_left (flip f) <$> x) ((|>) <$> y)....
-   [OK]          Identity Selective                                                                         15   x <*? pure y = Either.case y Fun.id <$> x....
-   [OK]          Identity Selective                                                                         16   f <*> x = select (map Either.left f) (map ( |> ) x....
-   [OK]          Identity Selective                                                                         17   x *> (y <*? z) = (x *> y) <*? z....
-   [OK]          Identity Bind                                                                               0   map id = id....
-   [OK]          Identity Bind                                                                               1   map (f % g) = (map f) % (map g)....
-   [OK]          Identity Bind                                                                               2   join % join = join % map join....
-   [OK]          Identity Bind                                                                               3   map f % join = join % map (map f)....
-   [OK]          Identity Bind                                                                               4   x >>= (fun y -> f y >>= g) = (x >>= f) >>= g....
-   [OK]          Identity Bind                                                                               5   (f >=> g) >=> h = f >=> (g >=> h)....
-   [OK]          Identity Monad                                                                              0   map id = id....
-   [OK]          Identity Monad                                                                              1   map (f % g) = (map f) % (map g)....
-   [OK]          Identity Monad                                                                              2   join % join = join % map join....
-   [OK]          Identity Monad                                                                              3   map f % join = join % map (map f)....
-   [OK]          Identity Monad                                                                              4   x >>= (fun y -> f y >>= g) = (x >>= f) >>= g....
-   [OK]          Identity Monad                                                                              5   (f >=> g) >=> h = f >=> (g >=> h)....
-   [OK]          Identity Monad                                                                              6   join % map return = id = join % return....
-   [OK]          Identity Monad                                                                              7   map f % return = return % f....
-   [OK]          Identity Monad                                                                              8   return x >>= f = f x....
-   [OK]          Identity Monad                                                                              9   x >>= return = x....
-   [OK]          Identity Monad                                                                             10   return >=> f = f....
-   [OK]          Identity Monad                                                                             11   f >=> return = f....
-   [OK]          Identity Comonad                                                                            0   map id = id....
-   [OK]          Identity Comonad                                                                            1   map (f % g) = (map f) % (map g)....
-   [OK]          Identity Comonad                                                                            2   extend extract = id....
-   [OK]          Identity Comonad                                                                            3   extract % extend = f....
-   [OK]          Identity Comonad                                                                            4   extend f % extend g = extend (f % extend g)....
-   [OK]          Identity Comonad                                                                            5   f =>= extract = f....
-   [OK]          Identity Comonad                                                                            6   extract =>= f = f....
-   [OK]          Identity Comonad                                                                            7   (f =>= g) =>= h = f =>= (g =>= h)....
-   [OK]          Identity Comonad                                                                            8   extract % duplicate = id....
-   [OK]          Identity Comonad                                                                            9   map extract % duplicate = id....
-   [OK]          Identity Comonad                                                                           10   duplicate % duplicate = map duplicate % duplicate....
-   [OK]          Identity Comonad                                                                           11   extend f = map f % duplicate....
-   [OK]          Identity Comonad                                                                           12   duplicate = extend id....
-   [OK]          Identity Comonad                                                                           13   map f = extend (f % extract)....
-   [OK]          Option Invariant                                                                            0   invmap id id = id....
-   [OK]          Option Invariant                                                                            1   (invmap g g') % (invmap f f') = invmap (g % g') (f % f')....
-   [OK]          Option Functor                                                                              0   map id = id....
-   [OK]          Option Functor                                                                              1   map (f % g) = (map f) % (map g)....
-   [OK]          Option Alt                                                                                  0   map id = id....
-   [OK]          Option Alt                                                                                  1   map (f % g) = (map f) % (map g)....
-   [OK]          Option Alt                                                                                  2   (a <|> b) <|> c = a <|> (b <|> c)....
-   [OK]          Option Alt                                                                                  3   f <$> (a <|> b) = (f <$> a) <|> (f <$> b)....
-   [OK]          Option Apply                                                                                0   map id = id....
-   [OK]          Option Apply                                                                                1   map (f % g) = (map f) % (map g)....
-   [OK]          Option Apply                                                                                2   u *> v = (id <$ u) <*> v....
-   [OK]          Option Apply                                                                                3   u <* v = lift2 const u v....
-   [OK]          Option Applicative                                                                          0   map id = id....
-   [OK]          Option Applicative                                                                          1   map (f % g) = (map f) % (map g)....
-   [OK]          Option Applicative                                                                          2   u *> v = (id <$ u) <*> v....
-   [OK]          Option Applicative                                                                          3   u <* v = lift2 const u v....
-   [OK]          Option Applicative                                                                          4   pure id <*> x = x....
-   [OK]          Option Applicative                                                                          5   pure f <*> pure x = pure f x....
-   [OK]          Option Applicative                                                                          6   f <*> pure x = pure ((|>) x) <*> f....
- ...TRUNCATED BY DUNE...
-   [OK]          Try Applicative                                                                             4   pure id <*> x = x....
-   [OK]          Try Applicative                                                                             5   pure f <*> pure x = pure f x....
-   [OK]          Try Applicative                                                                             6   f <*> pure x = pure ((|>) x) <*> f....
-   [OK]          Try Applicative                                                                             7   pure ( % ) <*> u <*> v <*> w = u <*> (v <*> w)....
-   [OK]          Try Applicative                                                                             8   map f x = pure f <*> x....
-   [OK]          Try Selective                                                                               0   map id = id....
-   [OK]          Try Selective                                                                               1   map (f % g) = (map f) % (map g)....
-   [OK]          Try Selective                                                                               2   u *> v = (id <$ u) <*> v....
-   [OK]          Try Selective                                                                               3   u <* v = lift2 const u v....
-   [OK]          Try Selective                                                                               4   pure id <*> x = x....
-   [OK]          Try Selective                                                                               5   pure f <*> pure x = pure f x....
-   [OK]          Try Selective                                                                               6   f <*> pure x = pure ((|>) x) <*> f....
-   [OK]          Try Selective                                                                               7   pure ( % ) <*> u <*> v <*> w = u <*> (v <*> w)....
-   [OK]          Try Selective                                                                               8   map f x = pure f <*> x....
-   [OK]          Try Selective                                                                               9   x <*? pure Fun.id = Either.case Fun.id Fun.id <$> x....
-   [OK]          Try Selective                                                                              10   pure x <*? (y *> z) = (pure x <*? y) *> (pure x <*? z)....
-   [OK]          Try Selective                                                                              11   x <*? (y <*? z) = (Either.(map_right right) <$> x) <*? ((fun x a -> Either.map ~left:(fun x -> (x, a)) ~right:(fun f -> f a) x) <$> y) <*? (uncurry <$> z)....
-   [OK]          Try Selective                                                                              12   f <$> select x y = select (Either.map_right f <$> x) (map f <$> y)....
-   [OK]          Try Selective                                                                              13   select (Either.map_left f <$> x) y = select x ((%>) f) <$> y)....
-   [OK]          Try Selective                                                                              14   select x (f <$> y) = select (Either.map_left (flip f) <$> x) ((|>) <$> y)....
-   [OK]          Try Selective                                                                              15   x <*? pure y = Either.case y Fun.id <$> x....
-   [OK]          Try Selective                                                                              16   f <*> x = select (map Either.left f) (map ( |> ) x....
-   [OK]          Try Selective                                                                              17   x *> (y <*? z) = (x *> y) <*? z....
-   [OK]          Try Bind                                                                                    0   map id = id....
-   [OK]          Try Bind                                                                                    1   map (f % g) = (map f) % (map g)....
-   [OK]          Try Bind                                                                                    2   join % join = join % map join....
-   [OK]          Try Bind                                                                                    3   map f % join = join % map (map f)....
-   [OK]          Try Bind                                                                                    4   x >>= (fun y -> f y >>= g) = (x >>= f) >>= g....
-   [OK]          Try Bind                                                                                    5   (f >=> g) >=> h = f >=> (g >=> h)....
-   [OK]          Try Monad                                                                                   0   map id = id....
-   [OK]          Try Monad                                                                                   1   map (f % g) = (map f) % (map g)....
-   [OK]          Try Monad                                                                                   2   join % join = join % map join....
-   [OK]          Try Monad                                                                                   3   map f % join = join % map (map f)....
-   [OK]          Try Monad                                                                                   4   x >>= (fun y -> f y >>= g) = (x >>= f) >>= g....
-   [OK]          Try Monad                                                                                   5   (f >=> g) >=> h = f >=> (g >=> h)....
-   [OK]          Try Monad                                                                                   6   join % map return = id = join % return....
-   [OK]          Try Monad                                                                                   7   map f % return = return % f....
-   [OK]          Try Monad                                                                                   8   return x >>= f = f x....
-   [OK]          Try Monad                                                                                   9   x >>= return = x....
-   [OK]          Try Monad                                                                                  10   return >=> f = f....
-   [OK]          Try Monad                                                                                  11   f >=> return = f....
-   [OK]          Try Foldable                                                                                0   fold_right f x z = (fold_map (module Endo) f x) z....
-   [OK]          Try Foldable                                                                                1   fold_left f z x = (fold_map (module Dual(Endo)) (Fun.flip f) x) z....
-   [OK]          Try Foldable                                                                                2   reduce (module M) = fold_map (module M) id....
-   [OK]          Try Traversable Monad                                                                       0   traverse id x = x....
-   [OK]          Try Traversable Applicative (using Option and Result)                                       0   traverse id x = x....
-   [OK]          Try Traversable Applicative (using Option and Result)                                       1   traverse (compose % map g % g) = compose % map (traverse g) % traverse f....
-   [OK]          Try Traversable Applicative (using Option and Result)                                       2   t % traverse f = traverse (t % f)....
-   [OK]          Validate Invariant                                                                          0   invmap id id = id....
-   [OK]          Validate Invariant                                                                          1   (invmap g g') % (invmap f f') = invmap (g % g') (f % f')....
-   [OK]          Validate Functor                                                                            0   map id = id....
-   [OK]          Validate Functor                                                                            1   map (f % g) = (map f) % (map g)....
-   [OK]          Validate Alt                                                                                0   map id = id....
-   [OK]          Validate Alt                                                                                1   map (f % g) = (map f) % (map g)....
-   [OK]          Validate Alt                                                                                2   (a <|> b) <|> c = a <|> (b <|> c)....
-   [OK]          Validate Alt                                                                                3   f <$> (a <|> b) = (f <$> a) <|> (f <$> b)....
-   [OK]          Validate Apply                                                                              0   map id = id....
-   [OK]          Validate Apply                                                                              1   map (f % g) = (map f) % (map g)....
-   [OK]          Validate Apply                                                                              2   u *> v = (id <$ u) <*> v....
-   [OK]          Validate Apply                                                                              3   u <* v = lift2 const u v....
-   [OK]          Validate Applicative                                                                        0   map id = id....
-   [OK]          Validate Applicative                                                                        1   map (f % g) = (map f) % (map g)....
-   [OK]          Validate Applicative                                                                        2   u *> v = (id <$ u) <*> v....
-   [OK]          Validate Applicative                                                                        3   u <* v = lift2 const u v....
-   [OK]          Validate Applicative                                                                        4   pure id <*> x = x....
-   [OK]          Validate Applicative                                                                        5   pure f <*> pure x = pure f x....
-   [OK]          Validate Applicative                                                                        6   f <*> pure x = pure ((|>) x) <*> f....
-   [OK]          Validate Applicative                                                                        7   pure ( % ) <*> u <*> v <*> w = u <*> (v <*> w)....
-   [OK]          Validate Applicative                                                                        8   map f x = pure f <*> x....
-   [OK]          Validate Selective                                                                          0   map id = id....
-   [OK]          Validate Selective                                                                          1   map (f % g) = (map f) % (map g)....
-   [OK]          Validate Selective                                                                          2   u *> v = (id <$ u) <*> v....
-   [OK]          Validate Selective                                                                          3   u <* v = lift2 const u v....
-   [OK]          Validate Selective                                                                          4   pure id <*> x = x....
-   [OK]          Validate Selective                                                                          5   pure f <*> pure x = pure f x....
-   [OK]          Validate Selective                                                                          6   f <*> pure x = pure ((|>) x) <*> f....
-   [OK]          Validate Selective                                                                          7   pure ( % ) <*> u <*> v <*> w = u <*> (v <*> w)....
-   [OK]          Validate Selective                                                                          8   map f x = pure f <*> x....
-   [OK]          Validate Selective                                                                          9   x <*? pure Fun.id = Either.case Fun.id Fun.id <$> x....
-   [OK]          Validate Selective                                                                         10   pure x <*? (y *> z) = (pure x <*? y) *> (pure x <*? z)....
-   [OK]          Validate Selective                                                                         11   x <*? (y <*? z) = (Either.(map_right right) <$> x) <*? ((fun x a -> Either.map ~left:(fun x -> (x, a)) ~right:(fun f -> f a) x) <$> y) <*? (uncurry <$> z)....
-   [OK]          Validate Selective                                                                         12   f <$> select x y = select (Either.map_right f <$> x) (map f <$> y)....
-   [OK]          Validate Selective                                                                         13   select (Either.map_left f <$> x) y = select x ((%>) f) <$> y)....
-   [OK]          Validate Selective                                                                         14   select x (f <$> y) = select (Either.map_left (flip f) <$> x) ((|>) <$> y)....
-   [OK]          Validate Selective                                                                         15   x <*? pure y = Either.case y Fun.id <$> x....
-   [OK]          Validate Bind                                                                               0   map id = id....
-   [OK]          Validate Bind                                                                               1   map (f % g) = (map f) % (map g)....
-   [OK]          Validate Bind                                                                               2   join % join = join % map join....
-   [OK]          Validate Bind                                                                               3   map f % join = join % map (map f)....
-   [OK]          Validate Bind                                                                               4   x >>= (fun y -> f y >>= g) = (x >>= f) >>= g....
-   [OK]          Validate Bind                                                                               5   (f >=> g) >=> h = f >=> (g >=> h)....
-   [OK]          Validate Monad                                                                              0   map id = id....
-   [OK]          Validate Monad                                                                              1   map (f % g) = (map f) % (map g)....
-   [OK]          Validate Monad                                                                              2   join % join = join % map join....
-   [OK]          Validate Monad                                                                              3   map f % join = join % map (map f)....
-   [OK]          Validate Monad                                                                              4   x >>= (fun y -> f y >>= g) = (x >>= f) >>= g....
-   [OK]          Validate Monad                                                                              5   (f >=> g) >=> h = f >=> (g >=> h)....
-   [OK]          Validate Monad                                                                              6   join % map return = id = join % return....
-   [OK]          Validate Monad                                                                              7   map f % return = return % f....
-   [OK]          Validate Monad                                                                              8   return x >>= f = f x....
-   [OK]          Validate Monad                                                                              9   x >>= return = x....
-   [OK]          Validate Monad                                                                             10   return >=> f = f....
-   [OK]          Validate Monad                                                                             11   f >=> return = f....
-   [OK]          Validate Foldable                                                                           0   fold_right f x z = (fold_map (module Endo) f x) z....
-   [OK]          Validate Foldable                                                                           1   fold_left f z x = (fold_map (module Dual(Endo)) (Fun.flip f) x) z....
-   [OK]          Validate Foldable                                                                           2   reduce (module M) = fold_map (module M) id....
-   [OK]          Validate Traversable Monad                                                                  0   traverse id x = x....
-   [OK]          Validate Traversable Applicative (using Option and Result)                                  0   traverse id x = x....
-   [OK]          Validate Traversable Applicative (using Option and Result)                                  1   traverse (compose % map g % g) = compose % map (traverse g) % traverse f....
-   [OK]          Validate Traversable Applicative (using Option and Result)                                  2   t % traverse f = traverse (t % f)....
-   [OK]          Fun Profunctor                                                                              0   dimap id id = id....
-   [OK]          Fun Profunctor                                                                              1   contramap_fst id = id....
-   [OK]          Fun Profunctor                                                                              2   map_snd id = id....
-   [OK]          Fun Profunctor                                                                              3   dimap f g = contramap_fst f % map_snd g....
-   [OK]          Fun Profunctor                                                                              4   dimap (f % g) (h % i) = dimap f h % dimap g i....
-   [OK]          Fun Profunctor                                                                              5   contramap_fst (f % g) = contramap_fst f % contramap_fst g....
-   [OK]          Fun Profunctor                                                                              6   map_snd (f % g) = map_snd f % map_snd g....
-   [OK]          Fun Strong                                                                                  0   dimap id id = id....
-   [OK]          Fun Strong                                                                                  1   contramap_fst id = id....
-   [OK]          Fun Strong                                                                                  2   map_snd id = id....
-   [OK]          Fun Strong                                                                                  3   dimap f g = contramap_fst f % map_snd g....
-   [OK]          Fun Strong                                                                                  4   dimap (f % g) (h % i) = dimap f h % dimap g i....
-   [OK]          Fun Strong                                                                                  5   contramap_fst (f % g) = contramap_fst f % contramap_fst g....
-   [OK]          Fun Strong                                                                                  6   map_snd (f % g) = map_snd f % map_snd g....
-   [OK]          Fun Strong                                                                                  7   fst = dimap swap swap % snd....
-   [OK]          Fun Strong                                                                                  8   contramap_fst (fun (x, _) -> x) = map_snd (fun (x, _) -> x) % fst....
-   [OK]          Fun Strong                                                                                  9   contramap_fst (Fun.Strong.snd f) % fst = map_snd (Fun.Strong.snd f) % fst....
-   [OK]          Fun Strong                                                                                 10   fst % fst = dimap assoc unassoc % fst....
-   [OK]          Fun Strong                                                                                 11   snd = dimap swap swap % fst....
-   [OK]          Fun Strong                                                                                 12   contramap_fst (fun (_, x) -> x) = map_snd (fun (_, x) -> x) % snd....
-   [OK]          Fun Strong                                                                                 13   contramap_fst (Fun.Strong.fst f) % snd = map_snd (Fun.Strong.fst f) % snd....
-   [OK]          Fun Strong                                                                                 14   snd % snd = dimap unassoc assoc  % snd....
-   [OK]          Fun Choice                                                                                  0   dimap id id = id....
-   [OK]          Fun Choice                                                                                  1   contramap_fst id = id....
-   [OK]          Fun Choice                                                                                  2   map_snd id = id....
-   [OK]          Fun Choice                                                                                  3   dimap f g = contramap_fst f % map_snd g....
-   [OK]          Fun Choice                                                                                  4   dimap (f % g) (h % i) = dimap f h % dimap g i....
-   [OK]          Fun Choice                                                                                  5   contramap_fst (f % g) = contramap_fst f % contramap_fst g....
-   [OK]          Fun Choice                                                                                  6   map_snd (f % g) = map_snd f % map_snd g....
-   [OK]          Fun Choice                                                                                  7   left = dimap swap swap % right....
-   [OK]          Fun Choice                                                                                  8   map_snd Either.left = contramap_fst Either.left % left....
-   [OK]          Fun Choice                                                                                  9   contramap_fst (Fun.Choice.right f) % left = map_snd (Fun.Choice.right f) % left....
-   [OK]          Fun Choice                                                                                 10   left % left = dimap assoc unassoc % left....
-   [OK]          Fun Choice                                                                                 11   right = dimap swap swap % left....
-   [OK]          Fun Choice                                                                                 12   map_snd Either.right = contramap_fst Either.right % right....
-   [OK]          Fun Choice                                                                                 13   contramap_fst (Fun.Choice.left f) % right = map_snd (Fun.Choice.left f) % right....
-   [OK]          Fun Choice                                                                                 14   right % right = dimap unassoc assoc % left....
-   [OK]          Fun Closed                                                                                  0   dimap id id = id....
-   [OK]          Fun Closed                                                                                  1   contramap_fst id = id....
-   [OK]          Fun Closed                                                                                  2   map_snd id = id....
-   [OK]          Fun Closed                                                                                  3   dimap f g = contramap_fst f % map_snd g....
-   [OK]          Fun Closed                                                                                  4   dimap (f % g) (h % i) = dimap f h % dimap g i....
-   [OK]          Fun Closed                                                                                  5   contramap_fst (f % g) = contramap_fst f % contramap_fst g....
-   [OK]          Fun Closed                                                                                  6   map_snd (f % g) = map_snd f % map_snd g....
-   [OK]          Fun Closed                                                                                  7   contrampa_fst (fun x -> x % f) % closed = map_snd (fun x -> x % f) % closed....
-   [OK]          Fun Closed                                                                                  8   closed % closed = dimap uncurry curry % closed....
-   [OK]          Fun Closed                                                                                  9   dimap const (fun f -> f ()) % closed = id....
-   [OK]          Fun Semigroupoid                                                                            0   f % (g % h) = (f % g) % h....
-   [OK]          Fun Category                                                                                0   f % (g % h) = (f % g) % h....
-   [OK]          Fun Category                                                                                1   f % id = f....
-   [OK]          Fun Category                                                                                2   id % f = f....
-   [OK]          Fun Arrow                                                                                   0   f % (g % h) = (f % g) % h....
-   [OK]          Fun Arrow                                                                                   1   f % id = f....
-   [OK]          Fun Arrow                                                                                   2   id % f = f....
-   [OK]          Fun Arrow                                                                                   3   arrow Fun.id = id....
-   [OK]          Fun Arrow                                                                                   4   arrow (fun x -> f (g x)) = arrow f >>> arrow g....
-   [OK]          Fun Arrow                                                                                   5   fst (arrow f) = arrow (fun (x, y) -> (f x, y))....
-   [OK]          Fun Arrow                                                                                   6   fst (f >>> g) = fst f >>> fst g....
-   [OK]          Fun Arrow                                                                                   7   fst f >>> arrow Stdlib.fst = arrow Stdlib.fst >>> f....
-   [OK]          Fun Arrow                                                                                   8   fst f >>> arrow Fun.Arrow.(id *** g) = arrow Fun.Arrow.(id *** g) >>> fst g....
-   [OK]          Fun Arrow                                                                                   9   (fst (fst f)) >>> arrow assoc = arrow assoc >>> fst f....
-   [OK]          Fun Arrow Choice                                                                            0   f % (g % h) = (f % g) % h....
-   [OK]          Fun Arrow Choice                                                                            1   f % id = f....
-   [OK]          Fun Arrow Choice                                                                            2   id % f = f....
-   [OK]          Fun Arrow Choice                                                                            3   arrow Fun.id = id....
-   [OK]          Fun Arrow Choice                                                                            4   arrow (fun x -> f (g x)) = arrow f >>> arrow g....
-   [OK]          Fun Arrow Choice                                                                            5   fst (arrow f) = arrow (fun (x, y) -> (f x, y))....
-   [OK]          Fun Arrow Choice                                                                            6   fst (f >>> g) = fst f >>> fst g....
-   [OK]          Fun Arrow Choice                                                                            7   fst f >>> arrow Stdlib.fst = arrow Stdlib.fst >>> f....
-   [OK]          Fun Arrow Choice                                                                            8   fst f >>> arrow Fun.Arrow.(id *** g) = arrow Fun.Arrow.(id *** g) >>> fst g....
-   [OK]          Fun Arrow Choice                                                                            9   (fst (fst f)) >>> arrow assoc = arrow assoc >>> fst f....
-   [OK]          Fun Arrow Choice                                                                           10   left (arrow f) = arrow Fun.Arrow_choice.(left f)....
-   [OK]          Fun Arrow Choice                                                                           11   left (f >>> g) = left f >>> left g....
-   [OK]          Fun Arrow Choice                                                                           12   f >>> arrow Either.left = arrow Either.left >>> left f....
-   [OK]          Fun Arrow Choice                                                                           13   left >>> arrow Fun.Arrow_choice.(id +++ g) = arrow Fun.Arrow_choice.(id +++ g) >>> left f....
-   [OK]          Fun Arrow Choice                                                                           14   left (left f) >>> arrow assoc_either = arrow assoc_either >>> left f....
-   [OK]          Fun Arrow Apply                                                                             0   f % (g % h) = (f % g) % h....
-   [OK]          Fun Arrow Apply                                                                             1   f % id = f....
-   [OK]          Fun Arrow Apply                                                                             2   id % f = f....
-   [OK]          Fun Arrow Apply                                                                             3   arrow Fun.id = id....
-   [OK]          Fun Arrow Apply                                                                             4   arrow (fun x -> f (g x)) = arrow f >>> arrow g....
-   [OK]          Fun Arrow Apply                                                                             5   fst (arrow f) = arrow (fun (x, y) -> (f x, y))....
-   [OK]          Fun Arrow Apply                                                                             6   fst (f >>> g) = fst f >>> fst g....
-   [OK]          Fun Arrow Apply                                                                             7   fst f >>> arrow Stdlib.fst = arrow Stdlib.fst >>> f....
-   [OK]          Fun Arrow Apply                                                                             8   fst f >>> arrow Fun.Arrow.(id *** g) = arrow Fun.Arrow.(id *** g) >>> fst g....
-   [OK]          Fun Arrow Apply                                                                             9   (fst (fst f)) >>> arrow assoc = arrow assoc >>> fst f....
-   [OK]          Fun Arrow Apply                                                                            10   fst (arrow (fun x -> arrow (fun y -> (x, y)))) >>> apply = id....
-   [OK]          Fun Arrow Apply                                                                            11   fst (arrow (fun x -> g >>> x)) >>> apply = snd g >>> apply....
-   [OK]          Fun Arrow Apply                                                                            12   fst (arrow (fun x -> x >>> h)) >>> apply = apply >>> h....
-   [OK]          Predicate Invariant                                                                         0   invmap id id = id....
-   [OK]          Predicate Invariant                                                                         1   (invmap g g') % (invmap f f') = invmap (g % g') (f % f')....
-   [OK]          Predicate Contravariant                                                                     0   contramap id = id....
-   [OK]          Predicate Contravariant                                                                     1   contramap (g % f) = (contramap f) % (contramap g)....
-   [OK]          Predicate Divisible                                                                         0   contramap id = id....
-   [OK]          Predicate Divisible                                                                         1   contramap (g % f) = (contramap f) % (contramap g)....
-   [OK]          Predicate Divisible                                                                         2   divide (fun x -> (x, x)) m conquer = m....
-   [OK]          Predicate Divisible                                                                         3   divide (fun x -> (x, x)) conquer m = m....
-   [OK]          Predicate Divisible                                                                         4   divide (fun x -> (x, x)) (divide delta m n) o = divide (fun x -> (x, x)) m (divide delta n o)....
-   [OK]          Predicate Divisible                                                                         5   divide f m conquer = contramap (fst % f)....
-   [OK]          Predicate Divisible                                                                         6   divide f conquer m = contramap (snd % f)....
-   [OK]          Predicate Decidable                                                                         0   contramap id = id....
-   [OK]          Predicate Decidable                                                                         1   contramap (g % f) = (contramap f) % (contramap g)....
-   [OK]          Predicate Decidable                                                                         2   divide (fun x -> (x, x)) m conquer = m....
-   [OK]          Predicate Decidable                                                                         3   divide (fun x -> (x, x)) conquer m = m....
-   [OK]          Predicate Decidable                                                                         4   divide (fun x -> (x, x)) (divide delta m n) o = divide (fun x -> (x, x)) m (divide delta n o)....
-   [OK]          Predicate Decidable                                                                         5   divide f m conquer = contramap (fst % f)....
-   [OK]          Predicate Decidable                                                                         6   divide f conquer m = contramap (snd % f)....
-   [OK]          Predicate Decidable                                                                         7   choose Either.left m (lose f) = m....
-   [OK]          Predicate Decidable                                                                         8   choose Either.right (lose f) m = m....
-   [OK]          Equivalence Invariant                                                                       0   invmap id id = id....
-   [OK]          Equivalence Invariant                                                                       1   (invmap g g') % (invmap f f') = invmap (g % g') (f % f')....
-   [OK]          Equivalence Contravariant                                                                   0   contramap id = id....
-   [OK]          Equivalence Contravariant                                                                   1   contramap (g % f) = (contramap f) % (contramap g)....
-   [OK]          Equivalence Divisible                                                                       0   contramap id = id....
-   [OK]          Equivalence Divisible                                                                       1   contramap (g % f) = (contramap f) % (contramap g)....
-   [OK]          Equivalence Divisible                                                                       2   divide (fun x -> (x, x)) m conquer = m....
-   [OK]          Equivalence Divisible                                                                       3   divide (fun x -> (x, x)) conquer m = m....
-   [OK]          Equivalence Divisible                                                                       4   divide (fun x -> (x, x)) (divide delta m n) o = divide (fun x -> (x, x)) m (divide delta n o)....
-   [OK]          Equivalence Divisible                                                                       5   divide f m conquer = contramap (fst % f)....
-   [OK]          Equivalence Divisible                                                                       6   divide f conquer m = contramap (snd % f)....
-   [OK]          Equivalence Decidable                                                                       0   contramap id = id....
-   [OK]          Equivalence Decidable                                                                       1   contramap (g % f) = (contramap f) % (contramap g)....
-   [OK]          Equivalence Decidable                                                                       2   divide (fun x -> (x, x)) m conquer = m....
-   [OK]          Equivalence Decidable                                                                       3   divide (fun x -> (x, x)) conquer m = m....
-   [OK]          Equivalence Decidable                                                                       4   divide (fun x -> (x, x)) (divide delta m n) o = divide (fun x -> (x, x)) m (divide delta n o)....
-   [OK]          Equivalence Decidable                                                                       5   divide f m conquer = contramap (fst % f)....
-   [OK]          Equivalence Decidable                                                                       6   divide f conquer m = contramap (snd % f)....
-   [OK]          Equivalence Decidable                                                                       7   choose Either.left m (lose f) = m....
-   [OK]          Equivalence Decidable                                                                       8   choose Either.right (lose f) m = m....
-   [OK]          Continuation Invariant                                                                      0   invmap id id = id....
-   [OK]          Continuation Invariant                                                                      1   (invmap g g') % (invmap f f') = invmap (g % g') (f % f')....
-   [OK]          Continuation Functor                                                                        0   map id = id....
-   [OK]          Continuation Functor                                                                        1   map (f % g) = (map f) % (map g)....
-   [OK]          Continuation Apply                                                                          0   map id = id....
-   [OK]          Continuation Apply                                                                          1   map (f % g) = (map f) % (map g)....
-   [OK]          Continuation Apply                                                                          2   u *> v = (id <$ u) <*> v....
-   [OK]          Continuation Apply                                                                          3   u <* v = lift2 const u v....
-   [OK]          Continuation Applicative                                                                    0   map id = id....
-   [OK]          Continuation Applicative                                                                    1   map (f % g) = (map f) % (map g)....
-   [OK]          Continuation Applicative                                                                    2   u *> v = (id <$ u) <*> v....
-   [OK]          Continuation Applicative                                                                    3   u <* v = lift2 const u v....
-   [OK]          Continuation Applicative                                                                    4   pure id <*> x = x....
-   [OK]          Continuation Applicative                                                                    5   pure f <*> pure x = pure f x....
-   [OK]          Continuation Applicative                                                                    6   f <*> pure x = pure ((|>) x) <*> f....
-   [OK]          Continuation Applicative                                                                    7   pure ( % ) <*> u <*> v <*> w = u <*> (v <*> w)....
-   [OK]          Continuation Applicative                                                                    8   map f x = pure f <*> x....
-   [OK]          Continuation Bind                                                                           0   map id = id....
-   [OK]          Continuation Bind                                                                           1   map (f % g) = (map f) % (map g)....
-   [OK]          Continuation Bind                                                                           2   join % join = join % map join....
-   [OK]          Continuation Bind                                                                           3   map f % join = join % map (map f)....
-   [OK]          Continuation Bind                                                                           4   x >>= (fun y -> f y >>= g) = (x >>= f) >>= g....
-   [OK]          Continuation Bind                                                                           5   (f >=> g) >=> h = f >=> (g >=> h)....
-   [OK]          Continuation Monad                                                                          0   map id = id....
-   [OK]          Continuation Monad                                                                          1   map (f % g) = (map f) % (map g)....
-   [OK]          Continuation Monad                                                                          2   join % join = join % map join....
-   [OK]          Continuation Monad                                                                          3   map f % join = join % map (map f)....
-   [OK]          Continuation Monad                                                                          4   x >>= (fun y -> f y >>= g) = (x >>= f) >>= g....
-   [OK]          Continuation Monad                                                                          5   (f >=> g) >=> h = f >=> (g >=> h)....
-   [OK]          Continuation Monad                                                                          6   join % map return = id = join % return....
-   [OK]          Continuation Monad                                                                          7   map f % return = return % f....
-   [OK]          Continuation Monad                                                                          8   return x >>= f = f x....
-   [OK]          Continuation Monad                                                                          9   x >>= return = x....
-   [OK]          Continuation Monad                                                                         10   return >=> f = f....
-   [OK]          Continuation Monad                                                                         11   f >=> return = f....
-   [OK]          Identity Writer Monad over Sum monoid                                                       0   map id = id....
-   [OK]          Identity Writer Monad over Sum monoid                                                       1   map (f % g) = (map f) % (map g)....
-   [OK]          Identity Writer Monad over Sum monoid                                                       2   join % join = join % map join....
-   [OK]          Identity Writer Monad over Sum monoid                                                       3   map f % join = join % map (map f)....
-   [OK]          Identity Writer Monad over Sum monoid                                                       4   x >>= (fun y -> f y >>= g) = (x >>= f) >>= g....
-   [OK]          Identity Writer Monad over Sum monoid                                                       5   (f >=> g) >=> h = f >=> (g >=> h)....
-   [OK]          Identity Writer Monad over Sum monoid                                                       6   join % map return = id = join % return....
-   [OK]          Identity Writer Monad over Sum monoid                                                       7   map f % return = return % f....
-   [OK]          Identity Writer Monad over Sum monoid                                                       8   return x >>= f = f x....
-   [OK]          Identity Writer Monad over Sum monoid                                                       9   x >>= return = x....
-   [OK]          Identity Writer Monad over Sum monoid                                                      10   return >=> f = f....
-   [OK]          Identity Writer Monad over Sum monoid                                                      11   f >=> return = f....
-   [OK]          Identity Writer Functor Over Sum monoid                                                     0   map id = id....
-   [OK]          Identity Writer Functor Over Sum monoid                                                     1   map (f % g) = (map f) % (map g)....
-   [OK]          Identity Writer Applicative Over Sum Monoid                                                 0   map id = id....
-   [OK]          Identity Writer Applicative Over Sum Monoid                                                 1   map (f % g) = (map f) % (map g)....
-   [OK]          Identity Writer Invariant Over Sum Monoid                                                   0   map id = id....
-   [OK]          Identity Writer Invariant Over Sum Monoid                                                   1   map (f % g) = (map f) % (map g)....
- 
- Full test results in `~/.opam/5.4/.opam-switch/build/preface.1.1.0/_build/default/test/preface_laws_test/_build/_tests/Preface Laws'.
- Test Successful in 71.095s. 1345 tests run.
-> compiled  preface.1.1.0
-> removed   preface.1.1.0
-> installed preface.1.1.0
Done.
# To update the current shell environment, run: eval $(opam env)
2026-03-02 04:51.11 ---> saved as "19703bed1a5911925beec0670dea3d21ee5792d8b18804d6fc4780c935deda0e"
Job succeeded
2026-03-02 04:52.09: Job succeeded