Build:
- 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