++ dirname ./run.sh
+ cd .
+ echo 1303
+ echo '2.0-SNAPSHOT BUILD'
2.0-SNAPSHOT BUILD
+ date
Wed Dec 10 18:49:20 UTC 2025
+ uptime
18:49:20 up 1 min, 0 users, load average: 1.19, 0.35, 0.12
+ head=git@github.com:objectionary/phino.git
+ ff=default
+ image=maxonfjvipon/rultor-image-hs:master
+ rebase=false
+ squash=false
+ head_branch=master
+ author=maxonfjvipon
+ tag=0.0.54
+ vars=('--env=head=git@github.com:objectionary/phino.git' '--env=tag=0.0.54' '--env=scripts=( '\''export '\''\'\'''\''head=git@github.com:objectionary/phino.git'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''tag=0.0.54'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''head_branch=master'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''author=maxonfjvipon'\''\'\'''\'''\'' '\'';'\'' '\''cabal --version'\'' '\'';'\'' '\''ghc --version'\'' '\'';'\'' '\''cabal update'\'' '\'';'\'' '\''pdd -f /dev/null -v'\'' '\'';'\'' '\''[[ "${tag}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] || exit -1'\'' '\'';'\'' '\''sed -i "s/0\.0\.0\.0/0.${tag}/" phino.cabal'\'' '\'';'\'' '\''chmod 755 ../hackage-auth'\'' '\'';'\'' '\''cabal check'\'' '\'';'\'' '\''cabal build'\'' '\'';'\'' '\''cabal test'\'' '\'';'\'' '\''git commit -am "set version to ${tag}"'\'' '\'';'\'' '\''cabal sdist'\'' '\'';'\'' '\''cabal upload --token=$(cat ../hackage-auth) --publish dist-newstyle/sdist/phino-0.${tag}.tar.gz'\'' '\'';'\'' )' '--env=head_branch=master' '--env=author=maxonfjvipon')
+ scripts=('export '\''head=git@github.com:objectionary/phino.git'\''' ';' 'export '\''tag=0.0.54'\''' ';' 'export '\''head_branch=master'\''' ';' 'export '\''author=maxonfjvipon'\''' ';' 'cabal --version' ';' 'ghc --version' ';' 'cabal update' ';' 'pdd -f /dev/null -v' ';' '[[ "${tag}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] || exit -1' ';' 'sed -i "s/0\.0\.0\.0/0.${tag}/" phino.cabal' ';' 'chmod 755 ../hackage-auth' ';' 'cabal check' ';' 'cabal build' ';' 'cabal test' ';' 'git commit -am "set version to ${tag}"' ';' 'cabal sdist' ';' 'cabal upload --token=$(cat ../hackage-auth) --publish dist-newstyle/sdist/phino-0.${tag}.tar.gz' ';')
+ directory=
+ container=objectionary_phino_511
+ as_root=true
+ set -e -o pipefail
+ hostname
ip-172-31-28-84
+ pwd
/tmp/rultor-MywA
+ git --version
git version 2.34.1
+ docker --version
Docker version 25.0.3, build 4debf41
+ mkdir -p /home/ubuntu/.ssh
+ echo -e 'Host github.com\n\tStrictHostKeyChecking no\n'
+ chmod 600 /home/ubuntu/.ssh/config
+ git clone --recurse-submodules git@github.com:objectionary/phino.git repo
Cloning into 'repo'...
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
+ cd repo
+ git config user.email gpg@rultor.com
+ git config user.name Rultor.com
+ '[' -z 'export '\''head=git@github.com:objectionary/phino.git'\''' ']'
+ cd ..
+ cat
+ '[' true = true ']'
+ cat
+ chmod a+x entry.sh
+ cat
+ echo 'export '\''head=git@github.com:objectionary/phino.git'\''' ';' 'export '\''tag=0.0.54'\''' ';' 'export '\''head_branch=master'\''' ';' 'export '\''author=maxonfjvipon'\''' ';' 'cabal --version' ';' 'ghc --version' ';' 'cabal update' ';' 'pdd -f /dev/null -v' ';' '[[ "${tag}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] || exit -1' ';' 'sed -i "s/0\.0\.0\.0/0.${tag}/" phino.cabal' ';' 'chmod 755 ../hackage-auth' ';' 'cabal check' ';' 'cabal build' ';' 'cabal test' ';' 'git commit -am "set version to ${tag}"' ';' 'cabal sdist' ';' 'cabal upload --token=$(cat ../hackage-auth) --publish dist-newstyle/sdist/phino-0.${tag}.tar.gz' ';'
+ sensitive=()
+ set -ex -o pipefail
+ '[' -z 0.0.54 ']'
+ [[ 0.0.54 =~ ^[a-zA-Z0-9\.\-]+$ ]]
+ echo 'tag name is valid: "0.0.54"'
tag name is valid: "0.0.54"
+ cd repo
++ git tag -l 0.0.54
+ '[' -n '' ']'
+ BRANCH_NAME=__rultor
++ wc -l
++ git show-branch __rultor
+ '[' 0 -gt 0 ']'
+ export BRANCH_NAME
+ git checkout -b __rultor
Switched to a new branch '__rultor'
+ docker_when_possible
+ true
++ tail -n 1
++ sed 's/ /\n/g'
++ uptime
+ load=0.13
++ bc
++ echo 0.13 '>' 30
+ '[' 0 -eq 1 ']'
+ echo 'load average is 0.13, low enough to run a new Docker container'
load average is 0.13, low enough to run a new Docker container
+ break
+ cd ..
+ '[' -n '' ']'
+ use_image=maxonfjvipon/rultor-image-hs:master
+ docker pull maxonfjvipon/rultor-image-hs:master
master: Pulling from maxonfjvipon/rultor-image-hs
437b5b60e3a4: Pulling fs layer
240be374d489: Pulling fs layer
da00f900e37d: Pulling fs layer
fe752c15eaf1: Pulling fs layer
c708ccef4e5d: Pulling fs layer
a776fcefe46a: Pulling fs layer
db7e8c057794: Pulling fs layer
434ff69de94e: Pulling fs layer
484f6e614147: Pulling fs layer
5a59b02cddc4: Pulling fs layer
8ce93dd8dc8c: Pulling fs layer
aec21018fde8: Pulling fs layer
4f4fb700ef54: Pulling fs layer
7d4a2239d113: Pulling fs layer
59940a424721: Pulling fs layer
fe752c15eaf1: Waiting
c708ccef4e5d: Waiting
a776fcefe46a: Waiting
db7e8c057794: Waiting
434ff69de94e: Waiting
484f6e614147: Waiting
5a59b02cddc4: Waiting
8ce93dd8dc8c: Waiting
aec21018fde8: Waiting
4f4fb700ef54: Waiting
7d4a2239d113: Waiting
59940a424721: Waiting
da00f900e37d: Verifying Checksum
da00f900e37d: Download complete
437b5b60e3a4: Verifying Checksum
437b5b60e3a4: Download complete
fe752c15eaf1: Verifying Checksum
fe752c15eaf1: Download complete
a776fcefe46a: Verifying Checksum
a776fcefe46a: Download complete
db7e8c057794: Verifying Checksum
db7e8c057794: Download complete
434ff69de94e: Verifying Checksum
434ff69de94e: Download complete
484f6e614147: Verifying Checksum
484f6e614147: Download complete
240be374d489: Verifying Checksum
240be374d489: Download complete
8ce93dd8dc8c: Verifying Checksum
8ce93dd8dc8c: Download complete
aec21018fde8: Verifying Checksum
aec21018fde8: Download complete
4f4fb700ef54: Verifying Checksum
4f4fb700ef54: Download complete
5a59b02cddc4: Verifying Checksum
5a59b02cddc4: Download complete
59940a424721: Verifying Checksum
59940a424721: Download complete
c708ccef4e5d: Verifying Checksum
c708ccef4e5d: Download complete
437b5b60e3a4: Pull complete
7d4a2239d113: Verifying Checksum
7d4a2239d113: Download complete
240be374d489: Pull complete
da00f900e37d: Pull complete
fe752c15eaf1: Pull complete
c708ccef4e5d: Pull complete
a776fcefe46a: Pull complete
db7e8c057794: Pull complete
434ff69de94e: Pull complete
484f6e614147: Pull complete
5a59b02cddc4: Pull complete
8ce93dd8dc8c: Pull complete
aec21018fde8: Pull complete
4f4fb700ef54: Pull complete
7d4a2239d113: Pull complete
59940a424721: Pull complete
Digest: sha256:19d68dafc749d9f42962726205f4da946c13df88a19fc1f6b56890919c175c97
Status: Downloaded newer image for maxonfjvipon/rultor-image-hs:master
docker.io/maxonfjvipon/rultor-image-hs:master
+ grep --quiet '\sobjectionary_phino_511\s*$'
+ docker ps --filter=status=exited
+ ls -al .
total 48
drwx------ 3 ubuntu ubuntu 4096 Dec 10 18:49 .
drwxrwxrwt 12 root root 4096 Dec 10 18:49 ..
-rwxrwxr-x 1 ubuntu ubuntu 666 Dec 10 18:51 end.sh
-rwxrwxr-x 1 ubuntu ubuntu 170 Dec 10 18:49 entry.sh
-rw-rw-r-- 1 ubuntu ubuntu 65 Dec 10 18:49 hackage-auth
-rw-rw-r-- 1 ubuntu ubuntu 5 Dec 10 18:49 pid
drwxrwxr-x 11 ubuntu ubuntu 4096 Dec 10 18:49 repo
-rwxrwxr-x 1 ubuntu ubuntu 6739 Dec 10 18:49 run.sh
-rw-rw-r-- 1 ubuntu ubuntu 719 Dec 10 18:49 script.sh
-rw-rw-r-- 1 ubuntu ubuntu 6677 Dec 10 18:52 stdout
++ pwd
++ pwd
+ docker run -t --rm -v /tmp/rultor-MywA:/main --env=head=git@github.com:objectionary/phino.git --env=tag=0.0.54 '--env=scripts=( '\''export '\''\'\'''\''head=git@github.com:objectionary/phino.git'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''tag=0.0.54'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''head_branch=master'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''author=maxonfjvipon'\''\'\'''\'''\'' '\'';'\'' '\''cabal --version'\'' '\'';'\'' '\''ghc --version'\'' '\'';'\'' '\''cabal update'\'' '\'';'\'' '\''pdd -f /dev/null -v'\'' '\'';'\'' '\''[[ "${tag}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] || exit -1'\'' '\'';'\'' '\''sed -i "s/0\.0\.0\.0/0.${tag}/" phino.cabal'\'' '\'';'\'' '\''chmod 755 ../hackage-auth'\'' '\'';'\'' '\''cabal check'\'' '\'';'\'' '\''cabal build'\'' '\'';'\'' '\''cabal test'\'' '\'';'\'' '\''git commit -am "set version to ${tag}"'\'' '\'';'\'' '\''cabal sdist'\'' '\'';'\'' '\''cabal upload --token=$(cat ../hackage-auth) --publish dist-newstyle/sdist/phino-0.${tag}.tar.gz'\'' '\'';'\'' )' --env=head_branch=master --env=author=maxonfjvipon --hostname=docker --privileged --net=host --dns 8.8.8.8 --add-host docker:127.0.0.1 --memory=8g --memory-swap=16g --oom-kill-disable --cidfile=/tmp/rultor-MywA/cid -w=/main -v /var/run/docker.sock:/var/run/docker.sock --name=objectionary_phino_511 maxonfjvipon/rultor-image-hs:master /main/entry.sh
WARNING: Your kernel does not support OomKillDisable. OomKillDisable discarded.
+ set -e
+ set -o pipefail
+ mkdir /home/r
+ cp -R ./cid ./end.sh ./entry.sh ./hackage-auth ./pid ./repo ./run.sh ./script.sh ./stdout /home/r
+ rm -rf repo
+ chmod a+x /home/r/script.sh
+ /home/r/script.sh
cabal-install version 3.14.1.1
compiled using version 3.14.1.1 of the Cabal library
The Glorious Glasgow Haskell Compilation System, version 9.6.7
Downloading the latest package list from hackage.haskell.org
Package list of hackage.haskell.org has been updated.
The index-state is set to 2025-12-10T16:26:10Z.
To revert to previous state run:
cabal v2-update 'hackage.haskell.org,2025-12-10T13:12:22Z'
Found 7 lines in /home/r/repo/.pdd
My version is 0.23.1
Ruby version is 3.2.2 at x86_64-linux
Reading from root dir .
Excluding dist-newstyle/**
Excluding .stack-work/**
/usr/local/rvm/gems/ruby-3.2.2/gems/pdd-0.23.1/lib/pdd/sources.rb:90: warning: undefining the allocator of T_DATA class FileMagic
/home/r/repo/assets/contextualize.jpg is a binary file (29523 bytes)
/home/r/repo/renovate.json is a binary file (114 bytes)
Reading .0pdd.yml ...
Reading .gitattributes ...
Reading .github/typos.toml ...
Reading .github/workflows/actionlint.yml ...
Reading .github/workflows/cabal.yml ...
Reading .github/workflows/codecov.yml ...
Reading .github/workflows/copyrights.yml ...
Reading .github/workflows/fourmolu.yml ...
Reading .github/workflows/haddock.yml ...
Reading .github/workflows/hlint.yml ...
Reading .github/workflows/markdown-lint.yml ...
Reading .github/workflows/pdd.yml ...
Reading .github/workflows/release-binary.yml ...
Reading .github/workflows/resources.yml ...
Reading .github/workflows/reuse.yml ...
Reading .github/workflows/shellcheck.yml ...
Reading .github/workflows/stack.yml ...
Reading .github/workflows/titles.yml ...
Reading .github/workflows/typos.yml ...
Reading .github/workflows/up.yml ...
Reading .github/workflows/xcop.yml ...
Reading .github/workflows/yamllint.yml ...
Reading .gitignore ...
Reading .hlint.yaml ...
Reading .pdd ...
Reading .rultor.yml ...
Reading LICENSES/MIT.txt ...
Reading Makefile ...
Reading README.md ...
Reading REUSE.toml ...
Reading app/Main.hs ...
Reading fourmolu.yaml ...
Reading phino.cabal ...
Reading resources/alpha.yaml ...
Reading resources/copy.yaml ...
Reading resources/dc.yaml ...
Reading resources/dd.yaml ...
Reading resources/dot.yaml ...
Reading resources/miss.yaml ...
Reading resources/null.yaml ...
Reading resources/over.yaml ...
Reading resources/phi.yaml ...
Reading resources/stay.yaml ...
Reading resources/stop.yaml ...
Reading src/AST.hs ...
Reading src/Builder.hs ...
Reading src/CLI.hs ...
Reading src/CST.hs ...
Reading src/Canonizer.hs ...
Reading src/Condition.hs ...
Reading src/Dataize.hs ...
Reading src/Deps.hs ...
Reading src/Encoding.hs ...
Reading src/Filter.hs ...
Reading src/Functions.hs ...
Reading src/LaTeX.hs ...
Puzzle 114-f84542df 30/DEV at src/LaTeX.hs
Puzzle 114-ca47c25c 30/DEV at src/LaTeX.hs
Reading src/Lining.hs ...
Reading src/Logger.hs ...
Reading src/Matcher.hs ...
Reading src/Merge.hs ...
Reading src/Misc.hs ...
Reading src/Must.hs ...
Reading src/Parser.hs ...
Reading src/Printer.hs ...
Reading src/Random.hs ...
Reading src/Regexp.hs ...
Reading src/Render.hs ...
Reading src/Replacer.hs ...
Reading src/Rewriter.hs ...
Reading src/Rule.hs ...
Reading src/Sugar.hs ...
Reading src/XMIR.hs ...
Reading src/Yaml.hs ...
Reading stack.yaml ...
Reading stack.yaml.lock ...
Reading test/ASTSpec.hs ...
Reading test/BuilderSpec.hs ...
Reading test/CLISpec.hs ...
Reading test/CSTSpec.hs ...
Reading test/ConditionSpec.hs ...
Reading test/DataizeSpec.hs ...
Reading test/FilterSpec.hs ...
Reading test/FunctionsSpec.hs ...
Reading test/LaTeXSpec.hs ...
Reading test/Main.hs ...
Reading test/MatcherSpec.hs ...
Reading test/MergeSpec.hs ...
Reading test/MiscSpec.hs ...
Reading test/MustSpec.hs ...
Reading test/ParserSpec.hs ...
Reading test/PrinterSpec.hs ...
Reading test/README.md ...
Reading test/RandomSpec.hs ...
Reading test/ReplacerSpec.hs ...
Reading test/RewriterSpec.hs ...
Reading test/RuleSpec.hs ...
Reading test/Spec.hs ...
Reading test/SugarSpec.hs ...
Reading test/XMIRSpec.hs ...
Reading test/YamlSpec.hs ...
Reading test-resources/cli/bytes.phi ...
Reading test-resources/cli/desugar.phi ...
Reading test-resources/cli/dispatch.phi ...
Reading test-resources/cli/first.yaml ...
Reading test-resources/cli/foo.phi ...
Reading test-resources/cli/infinite.yaml ...
Reading test-resources/cli/normalize.phi ...
Reading test-resources/cli/number.phi ...
Reading test-resources/cli/second.yaml ...
Reading test-resources/cli/simple.yaml ...
Reading test-resources/cli/string.phi ...
Reading test-resources/cli/with-$this-attribute.phi ...
Reading test-resources/condition-packs/alpha-simple.yaml ...
Reading test-resources/condition-packs/eq-to-rho.yaml ...
Reading test-resources/condition-packs/eq-with-attributes.yaml ...
Reading test-resources/condition-packs/eq-with-expressions.yaml ...
Reading test-resources/condition-packs/eq-with-formations.yaml ...
Reading test-resources/condition-packs/eq-with-two-meta-attributes.yaml ...
Reading test-resources/condition-packs/eq-with-two-meta-expressions.yaml ...
Reading test-resources/condition-packs/length.yaml ...
Reading test-resources/condition-packs/matches-with-line-bounds.yaml ...
Reading test-resources/condition-packs/matches.yaml ...
Reading test-resources/condition-packs/nf-dot-recursive.yaml ...
Reading test-resources/condition-packs/nf-on-dot.yaml ...
Reading test-resources/condition-packs/nf-simple.yaml ...
Reading test-resources/condition-packs/not-nf-on-dd.yaml ...
Reading test-resources/condition-packs/not-nf-on-phi.yaml ...
Reading test-resources/condition-packs/or.yaml ...
Reading test-resources/condition-packs/ordinal.yaml ...
Reading test-resources/condition-packs/stop.yaml ...
Reading test-resources/cst/printing-packs/basic.yaml ...
Reading test-resources/cst/printing-packs/dispatch.yaml ...
Reading test-resources/cst/printing-packs/jeo.yaml ...
Reading test-resources/cst/printing-packs/primitives-without-rhos.yaml ...
Reading test-resources/cst/printing-packs/simple.yaml ...
Reading test-resources/cst/printing-packs/sweet-inlined.yaml ...
Reading test-resources/cst/printing-packs/with-void-rho-between.yaml ...
Reading test-resources/cst/printing-packs/xi-attribute.yaml ...
Reading test-resources/cst/to-ascii-packs/complex.yaml ...
Reading test-resources/cst/to-salty-packs/application-with-alphas.yaml ...
Reading test-resources/cst/to-salty-packs/application.yaml ...
Reading test-resources/cst/to-salty-packs/default-package.yaml ...
Reading test-resources/cst/to-salty-packs/primitives-with-rhos.yaml ...
Reading test-resources/cst/to-salty-packs/with-inlined-voids.yaml ...
Reading test-resources/cst/to-salty-packs/with-num-and-void-rho.yaml ...
Reading test-resources/cst/to-salty-packs/xi-attr.yaml ...
Reading test-resources/cst/to-singleline-packs/application.yaml ...
Reading test-resources/cst/to-singleline-packs/empty-formation.yaml ...
Reading test-resources/cst/to-singleline-packs/with-inlined-voids.yaml ...
Reading test-resources/filter-packs/complex.yaml ...
Reading test-resources/filter-packs/org-eolang.yaml ...
Reading test-resources/filter-packs/show-hide.yaml ...
Reading test-resources/filter-packs/show.yaml ...
Reading test-resources/filter-packs/simple.yaml ...
Reading test-resources/filter-packs/stop.yaml ...
Reading test-resources/filter-packs/with-attributes.yaml ...
Reading test-resources/filter-packs/with-void.yaml ...
Reading test-resources/parser-packs/all-the-basics.phi ...
Reading test-resources/parser-packs/ascii-with-braces.phi ...
Reading test-resources/parser-packs/ascii-with-global.phi ...
Reading test-resources/parser-packs/inline-voids.phi ...
Reading test-resources/parser-packs/primitive.phi ...
Reading test-resources/parser-packs/salty-fibo.phi ...
Reading test-resources/parser-packs/simple.phi ...
Reading test-resources/parser-packs/sweet-fibo.phi ...
Reading test-resources/parser-packs/virtual-map.phi ...
Reading test-resources/phi-typos-packs/delta-in-application.phi ...
Reading test-resources/phi-typos-packs/duplicated-attributes.phi ...
Reading test-resources/phi-typos-packs/wrong-function-name.phi ...
Reading test-resources/rewriter-packs/basic/alpha-first.yaml ...
Reading test-resources/rewriter-packs/basic/alpha-fourth.yaml ...
Reading test-resources/rewriter-packs/basic/alpha-second.yaml ...
Reading test-resources/rewriter-packs/basic/alpha-simple.yaml ...
Reading test-resources/rewriter-packs/basic/alpha-stops-at-idx.yaml ...
Reading test-resources/rewriter-packs/basic/alpha-stops-at-length.yaml ...
Reading test-resources/rewriter-packs/basic/copy-paper-e1.yaml ...
Reading test-resources/rewriter-packs/basic/copy-paper-e4-dispatch.yaml ...
Reading test-resources/rewriter-packs/basic/copy-simple.yaml ...
Reading test-resources/rewriter-packs/basic/copy-with-tail.yaml ...
Reading test-resources/rewriter-packs/basic/dc-from-paper.yaml ...
Reading test-resources/rewriter-packs/basic/dc-in-subformation.yaml ...
Reading test-resources/rewriter-packs/basic/dd.yaml ...
Reading test-resources/rewriter-packs/basic/dot-paper-e2.yaml ...
Reading test-resources/rewriter-packs/basic/dot-paper-e3-1.yaml ...
Reading test-resources/rewriter-packs/basic/dot-paper-e3-2.yaml ...
Reading test-resources/rewriter-packs/basic/dot-paper-e4-1.yaml ...
Reading test-resources/rewriter-packs/basic/dot-paper-e4-2.yaml ...
Reading test-resources/rewriter-packs/basic/dot-paper-e5-1.yaml ...
Reading test-resources/rewriter-packs/basic/dot-paper-e5-2.yaml ...
Reading test-resources/rewriter-packs/basic/dot-recursive.yaml ...
Reading test-resources/rewriter-packs/basic/dot-with-dd.yaml ...
Reading test-resources/rewriter-packs/basic/dot-xi.yaml ...
Reading test-resources/rewriter-packs/basic/miss-from-paper.yaml ...
Reading test-resources/rewriter-packs/basic/miss-on-empty.yaml ...
Reading test-resources/rewriter-packs/basic/null-from-parer.yaml ...
Reading test-resources/rewriter-packs/basic/over-alone.yaml ...
Reading test-resources/rewriter-packs/basic/over-from-paper.yaml ...
Reading test-resources/rewriter-packs/basic/over-in-back.yaml ...
Reading test-resources/rewriter-packs/basic/over-in-front.yaml ...
Reading test-resources/rewriter-packs/basic/over-inside.yaml ...
Reading test-resources/rewriter-packs/basic/over-long-binding.yaml ...
Reading test-resources/rewriter-packs/basic/over-with-rho.yaml ...
Reading test-resources/rewriter-packs/basic/over-without-over.yaml ...
Reading test-resources/rewriter-packs/basic/phi-from-paper.yaml ...
Reading test-resources/rewriter-packs/basic/stay.yaml ...
Reading test-resources/rewriter-packs/basic/stop-at-lambda.yaml ...
Reading test-resources/rewriter-packs/basic/stop-at-phi.yaml ...
Reading test-resources/rewriter-packs/basic/stop-from-paper.yaml ...
Reading test-resources/rewriter-packs/custom/attribute-from-string.yaml ...
Reading test-resources/rewriter-packs/custom/concat-from-expression.yaml ...
Reading test-resources/rewriter-packs/custom/dataize-and-concat.yaml ...
Reading test-resources/rewriter-packs/custom/desugar-fibo.yaml ...
Reading test-resources/rewriter-packs/custom/desugar-strings.yaml ...
Reading test-resources/rewriter-packs/custom/desugares-without-match.yaml ...
Reading test-resources/rewriter-packs/custom/desugares.yaml ...
Reading test-resources/rewriter-packs/custom/does-not-fail-on-ambiguous.yaml ...
Reading test-resources/rewriter-packs/custom/java-boxed-method.yaml ...
Reading test-resources/rewriter-packs/custom/negative-condition.yaml ...
Reading test-resources/rewriter-packs/custom/nested-part-of.yaml ...
Reading test-resources/rewriter-packs/custom/number.yaml ...
Reading test-resources/rewriter-packs/custom/part-of-after.yaml ...
Reading test-resources/rewriter-packs/custom/part-of.yaml ...
Reading test-resources/rewriter-packs/custom/replaces-all-in-inner-cycle.yaml ...
Reading test-resources/rewriter-packs/custom/replaces-formation-in-one-cycle.yaml ...
Reading test-resources/rewriter-packs/custom/same-exprs-in-formation.yaml ...
Reading test-resources/rewriter-packs/custom/sed-with-many-arguments.yaml ...
Reading test-resources/rewriter-packs/custom/sed-with-slashes.yaml ...
Reading test-resources/rewriter-packs/custom/sed.yaml ...
Reading test-resources/rewriter-packs/custom/size-of-bindings.yaml ...
Reading test-resources/rewriter-packs/custom/string.yaml ...
Reading test-resources/rewriter-packs/custom/sum.yaml ...
Reading test-resources/rewriter-packs/custom/with-alpha-condition.yaml ...
Reading test-resources/rewriter-packs/custom/with-complex-condition.yaml ...
Reading test-resources/rewriter-packs/custom/with-different-metas.yaml ...
Reading test-resources/rewriter-packs/custom/with-eq-condition.yaml ...
Reading test-resources/rewriter-packs/custom/with-meta-names.yaml ...
Reading test-resources/rewriter-packs/custom/with-program-scope.yaml ...
Reading test-resources/rewriter-packs/custom/with-scope.yaml ...
Reading test-resources/rewriter-packs/custom/with-simple-condition.yaml ...
Reading test-resources/rewriter-packs/normalize/e-ald.yaml ...
Reading test-resources/rewriter-packs/normalize/e-alp.yaml ...
Reading test-resources/rewriter-packs/normalize/e-app.yaml ...
Reading test-resources/rewriter-packs/normalize/e-cpy.yaml ...
Reading test-resources/rewriter-packs/normalize/e-fnk.yaml ...
Reading test-resources/rewriter-packs/normalize/e-int.yaml ...
Reading test-resources/rewriter-packs/normalize/e-lam.yaml ...
Reading test-resources/rewriter-packs/normalize/e-nf.yaml ...
Reading test-resources/rewriter-packs/normalize/e-nk.yaml ...
Reading test-resources/rewriter-packs/normalize/e-np.yaml ...
Reading test-resources/rewriter-packs/normalize/e-nr.yaml ...
Reading test-resources/rewriter-packs/normalize/e-nt.yaml ...
Reading test-resources/rewriter-packs/normalize/e-phi.yaml ...
Reading test-resources/rewriter-packs/normalize/e-rep.yaml ...
Reading test-resources/rewriter-packs/normalize/e-rha.yaml ...
Reading test-resources/rewriter-packs/normalize/e-rhi.yaml ...
Reading test-resources/rewriter-packs/normalize/e-rho.yaml ...
Reading test-resources/rewriter-packs/normalize/e-twi.yaml ...
Reading test-resources/rewriter-packs/normalize/e-xxi.yaml ...
Reading test-resources/xmir-parsing-packs/application-with-dispatch.yaml ...
Reading test-resources/xmir-parsing-packs/application.yaml ...
Reading test-resources/xmir-parsing-packs/atoms.yaml ...
Reading test-resources/xmir-parsing-packs/base-dispatch.yaml ...
Reading test-resources/xmir-parsing-packs/formation-dispatch.yaml ...
Reading test-resources/xmir-parsing-packs/formation.yaml ...
Reading test-resources/xmir-parsing-packs/reverse-dispatch.yaml ...
Reading test-resources/xmir-parsing-packs/simple.yaml ...
Reading test-resources/xmir-parsing-packs/with-duplicate-attribute.yaml ...
Reading test-resources/xmir-parsing-packs/with-package.yaml ...
Reading test-resources/xmir-parsing-packs/with-phi.yaml ...
Reading test-resources/xmir-printing-packs/application.yaml ...
Reading test-resources/xmir-printing-packs/simple.yaml ...
Reading test-resources/yaml-packs/simple.yaml ...
Reading test-resources/yaml-packs/special-attrs-in-condition.yaml ...
Reading test-resources/yaml-packs/when.yaml ...
Reading test-resources/yaml-typos/two-condition-objects.yaml ...
Reading test-resources/yaml-typos/wrong-condition-name.yaml ...
These warnings may cause trouble when distributing the package:
Warning: [missing-upper-bounds] On library, these packages miss upper bounds:
- aeson
- array
- binary-ieee754
- bytestring
- containers
- directory
- filepath
- megaparsec
- optparse-applicative
- random
- regex-pcre-builtin
- scientific
- text
- transformers
- utf8-string
- vector
- yaml
Please add them. There is more information at https://pvp.haskell.org/
Resolving dependencies...
Build profile: -w ghc-9.6.7 -O1
In order, the following will be built (use -v for more details):
- phino-0.0.0.54 (lib) (first run)
- phino-0.0.0.54 (exe:phino) (first run)
Configuring library for phino-0.0.0.54...
Preprocessing library for phino-0.0.0.54...
Building library for phino-0.0.0.54...
[ 1 of 30] Compiling AST ( src/AST.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/AST.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/AST.dyn_o )
[ 2 of 30] Compiling Logger ( src/Logger.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Logger.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Logger.dyn_o )
[ 3 of 30] Compiling Matcher ( src/Matcher.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Matcher.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Matcher.dyn_o )
[ 4 of 30] Compiling Misc ( src/Misc.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Misc.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Misc.dyn_o )
[ 5 of 30] Compiling CST ( src/CST.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/CST.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/CST.dyn_o )
[ 6 of 30] Compiling Lining ( src/Lining.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Lining.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Lining.dyn_o )
[ 7 of 30] Compiling Encoding ( src/Encoding.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Encoding.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Encoding.dyn_o )
[ 8 of 30] Compiling Must ( src/Must.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Must.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Must.dyn_o )
[ 9 of 30] Compiling Parser ( src/Parser.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Parser.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Parser.dyn_o )
[10 of 30] Compiling Paths_phino ( dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/autogen/Paths_phino.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Paths_phino.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Paths_phino.dyn_o )
[11 of 30] Compiling Random ( src/Random.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Random.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Random.dyn_o )
[12 of 30] Compiling Regexp ( src/Regexp.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Regexp.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Regexp.dyn_o )
[13 of 30] Compiling Render ( src/Render.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Render.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Render.dyn_o )
[14 of 30] Compiling Sugar ( src/Sugar.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Sugar.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Sugar.dyn_o )
[15 of 30] Compiling Yaml ( src/Yaml.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Yaml.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Yaml.dyn_o )
[16 of 30] Compiling Printer ( src/Printer.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Printer.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Printer.dyn_o )
[17 of 30] Compiling XMIR ( src/XMIR.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/XMIR.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/XMIR.dyn_o )
[18 of 30] Compiling Replacer ( src/Replacer.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Replacer.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Replacer.dyn_o )
[19 of 30] Compiling Deps ( src/Deps.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Deps.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Deps.dyn_o )
[20 of 30] Compiling Merge ( src/Merge.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Merge.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Merge.dyn_o )
[21 of 30] Compiling Condition ( src/Condition.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Condition.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Condition.dyn_o )
[22 of 30] Compiling Builder ( src/Builder.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Builder.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Builder.dyn_o )
[23 of 30] Compiling Rule ( src/Rule.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Rule.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Rule.dyn_o )
[24 of 30] Compiling Rewriter ( src/Rewriter.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Rewriter.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Rewriter.dyn_o )
[25 of 30] Compiling LaTeX ( src/LaTeX.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/LaTeX.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/LaTeX.dyn_o )
[26 of 30] Compiling Filter ( src/Filter.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Filter.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Filter.dyn_o )
[27 of 30] Compiling Canonizer ( src/Canonizer.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Canonizer.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Canonizer.dyn_o )
[28 of 30] Compiling Functions ( src/Functions.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Functions.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Functions.dyn_o )
[29 of 30] Compiling Dataize ( src/Dataize.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Dataize.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/Dataize.dyn_o )
[30 of 30] Compiling CLI ( src/CLI.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/CLI.o, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/build/CLI.dyn_o )
Configuring executable 'phino' for phino-0.0.0.54...
Preprocessing executable 'phino' for phino-0.0.0.54...
Building executable 'phino' for phino-0.0.0.54...
[1 of 1] Compiling Main ( app/Main.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/x/phino/build/phino/phino-tmp/Main.o )
[2 of 2] Linking dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/x/phino/build/phino/phino
Build profile: -w ghc-9.6.7 -O1
In order, the following will be built (use -v for more details):
- hspec-discover-2.11.15 (exe:hspec-discover) (requires build)
- phino-0.0.0.54 (test:spec) (first run)
Configuring executable 'hspec-discover' for hspec-discover-2.11.15...
Preprocessing executable 'hspec-discover' for hspec-discover-2.11.15...
Building executable 'hspec-discover' for hspec-discover-2.11.15...
[1 of 2] Compiling Main ( driver/hspec-discover.hs, dist/build/hspec-discover/hspec-discover-tmp/Main.o )
[2 of 2] Compiling Paths_hspec_discover ( dist/build/hspec-discover/autogen/Paths_hspec_discover.hs, dist/build/hspec-discover/hspec-discover-tmp/Paths_hspec_discover.o )
[3 of 3] Linking dist/build/hspec-discover/hspec-discover
Installing executable hspec-discover in /opt/cabal/store/ghc-9.6.7/incoming/new-411/opt/cabal/store/ghc-9.6.7/hspec-discover-2.11.15-e-hspec-discover-af158bfbbf69bf8015ce3fec089158060a5b96013008856f4514865e2cb64823/bin
Warning: The directory
/opt/cabal/store/ghc-9.6.7/incoming/new-411/opt/cabal/store/ghc-9.6.7/hspec-discover-2.11.15-e-hspec-discover-af158bfbbf69bf8015ce3fec089158060a5b96013008856f4514865e2cb64823/bin
is not in the system search path.
Configuring test suite 'spec' for phino-0.0.0.54...
Preprocessing test suite 'spec' for phino-0.0.0.54...
Building test suite 'spec' for phino-0.0.0.54...
[ 1 of 25] Compiling ASTSpec ( test/ASTSpec.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/t/spec/build/spec/spec-tmp/ASTSpec.o )
[ 2 of 25] Compiling BuilderSpec ( test/BuilderSpec.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/t/spec/build/spec/spec-tmp/BuilderSpec.o )
[ 3 of 25] Compiling CSTSpec ( test/CSTSpec.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/t/spec/build/spec/spec-tmp/CSTSpec.o )
[ 4 of 25] Compiling ConditionSpec ( test/ConditionSpec.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/t/spec/build/spec/spec-tmp/ConditionSpec.o )
[ 5 of 25] Compiling DataizeSpec ( test/DataizeSpec.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/t/spec/build/spec/spec-tmp/DataizeSpec.o )
[ 6 of 25] Compiling FilterSpec ( test/FilterSpec.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/t/spec/build/spec/spec-tmp/FilterSpec.o )
[ 7 of 25] Compiling FunctionsSpec ( test/FunctionsSpec.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/t/spec/build/spec/spec-tmp/FunctionsSpec.o )
[ 8 of 25] Compiling LaTeXSpec ( test/LaTeXSpec.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/t/spec/build/spec/spec-tmp/LaTeXSpec.o )
[ 9 of 25] Compiling MatcherSpec ( test/MatcherSpec.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/t/spec/build/spec/spec-tmp/MatcherSpec.o )
[10 of 25] Compiling MergeSpec ( test/MergeSpec.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/t/spec/build/spec/spec-tmp/MergeSpec.o )
[11 of 25] Compiling MiscSpec ( test/MiscSpec.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/t/spec/build/spec/spec-tmp/MiscSpec.o )
[12 of 25] Compiling MustSpec ( test/MustSpec.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/t/spec/build/spec/spec-tmp/MustSpec.o )
[13 of 25] Compiling ParserSpec ( test/ParserSpec.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/t/spec/build/spec/spec-tmp/ParserSpec.o )
[14 of 25] Compiling Paths_phino ( dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/t/spec/build/spec/autogen/Paths_phino.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/t/spec/build/spec/spec-tmp/Paths_phino.o )
[15 of 25] Compiling CLISpec ( test/CLISpec.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/t/spec/build/spec/spec-tmp/CLISpec.o )
[16 of 25] Compiling PrinterSpec ( test/PrinterSpec.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/t/spec/build/spec/spec-tmp/PrinterSpec.o )
[17 of 25] Compiling RandomSpec ( test/RandomSpec.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/t/spec/build/spec/spec-tmp/RandomSpec.o )
[18 of 25] Compiling ReplacerSpec ( test/ReplacerSpec.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/t/spec/build/spec/spec-tmp/ReplacerSpec.o )
[19 of 25] Compiling RewriterSpec ( test/RewriterSpec.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/t/spec/build/spec/spec-tmp/RewriterSpec.o )
[20 of 25] Compiling RuleSpec ( test/RuleSpec.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/t/spec/build/spec/spec-tmp/RuleSpec.o )
[21 of 25] Compiling SugarSpec ( test/SugarSpec.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/t/spec/build/spec/spec-tmp/SugarSpec.o )
[22 of 25] Compiling XMIRSpec ( test/XMIRSpec.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/t/spec/build/spec/spec-tmp/XMIRSpec.o )
[23 of 25] Compiling YamlSpec ( test/YamlSpec.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/t/spec/build/spec/spec-tmp/YamlSpec.o )
[24 of 25] Compiling Spec ( test/Spec.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/t/spec/build/spec/spec-tmp/Spec.o )
[25 of 25] Compiling Main ( test/Main.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/t/spec/build/spec/spec-tmp/Main.o )
[26 of 26] Linking dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/t/spec/build/spec/spec
Running 1 test suites...
Test suite spec: RUNNING...
?25l
AST
Attribute Show instance renders AtLabel
K7l simplellabele[32m✔0m]
K7l unicodedlabele[32m✔0m]
K7l longnlabele[32m✔0m]
Attribute Show instance renders AtAlpha
K7l zerorindexe[32m✔0m]
K7l positivevindexe[32m✔0m]
K7l largegindexe[32m✔0m]
Attribute Show instance renders special attributes
K7l rhoh[32m✔0m]
K7l phih[32m✔0m]
K7l deltat[32m✔0m]
K7l lambdad[32m✔0m]
Attribute Show instance renders AtMeta
K7l simplelmetat[32m✔0m]
K7l longnmetat[32m✔0m]
K7l unicodedmetat[32m✔0m]
Attribute Eq instance compares same constructors
K7l labelslequala[32m✔0m]
K7l labelsldiffere[32m✔0m]
K7l alphasaequala[32m✔0m]
K7l alphasadiffere[32m✔0m]
K7l metasaequala[32m✔0m]
K7l metasadiffere[32m✔0m]
K7l rhohequalslrhoh[32m✔0m]
K7l phihequalslphih[32m✔0m]
K7l deltatequalsldeltat[32m✔0m]
K7l lambdadequalsllambdad[32m✔0m]
Attribute Eq instance compares different constructors
K7l labelevsvalphah[32m✔0m]
K7l rhohvsvphih[32m✔0m]
K7l deltatvsvlambdad[32m✔0m]
K7l metatvsvlabele[32m✔0m]
Attribute Ord instance orders correctly
K7l sortstattributesebybconstructoroordere[32m✔0m]
Bytes Eq instance compares same constructors
K7l emptytequalslemptyt[32m✔0m]
K7l onenequalslonen[32m✔0m]
K7l onendiffersr[32m✔0m]
K7l manynequalslmanyn[32m✔0m]
K7l manyndiffersr[32m✔0m]
K7l metatequalslmetat[32m✔0m]
K7l metatdiffersr[32m✔0m]
Bytes Eq instance compares different constructors
K7l emptytvsvonen[32m✔0m]
K7l onenvsvmanyn[32m✔0m]
K7l manynvsvmetat[32m✔0m]
Bytes Ord instance orders correctly
K7l sortstbytesebybconstructoroordere[32m✔0m]
Binding Eq instance compares same constructors
K7l tauaequalsltaua[32m✔0m]
K7l tauadiffersrbybattrt[32m✔0m]
K7l tauadiffersrbybexprp[32m✔0m]
K7l metatequalslmetat[32m✔0m]
K7l metatdiffersr[32m✔0m]
K7l deltatequalsldeltat[32m✔0m]
K7l deltatdiffersr[32m✔0m]
K7l voidiequalslvoidi[32m✔0m]
K7l voididiffersr[32m✔0m]
K7l lambdadequalsllambdad[32m✔0m]
K7l lambdaddiffersr[32m✔0m]
K7l metalambdadequalsl[32m✔0m]
K7l metalambdaddiffersr[32m✔0m]
Binding Eq instance compares different constructors
K7l tauavsvmetat[32m✔0m]
K7l deltatvsvvoidi[32m✔0m]
K7l lambdadvsvmetalambdad[32m✔0m]
Binding Ord instance orders correctly
K7l sortstbindingsgbybconstructoroordere[32m✔0m]
Expression Eq instance compares same constructors
K7l formationoequalsl[32m✔0m]
K7l formationodiffersr[32m✔0m]
K7l thisiequalslthisi[32m✔0m]
K7l globalaequalslglobala[32m✔0m]
K7l terminationoequalsl[32m✔0m]
K7l metatequalslmetat[32m✔0m]
K7l metatdiffersr[32m✔0m]
K7l applicationoequalsl[32m✔0m]
K7l dispatchcequalsl[32m✔0m]
K7l dispatchcdiffersr[32m✔0m]
K7l metatailiequalsl[32m✔0m]
K7l metatailidiffersr[32m✔0m]
Expression Eq instance compares different constructors
K7l formationovsvthisi[32m✔0m]
K7l globalavsvterminationo[32m✔0m]
K7l metatvsvdispatchc[32m✔0m]
Expression Ord instance orders correctly
K7l sortstexpressionsnbybconstructoroordere[32m✔0m]
Program Eq instance compares programs
K7l samemprogramsmequala[32m✔0m]
K7l differentnprogramsmdiffere[32m✔0m]
Program Ord instance orders correctly
K7l ordersrprogramsmbybexpressiono[32m✔0m]
Program Show instance renders programs
K7l showswprogramawrappere[32m✔0m]
countNodes counts ExGlobal
K7l returnsnonenforoglobala[32m✔0m]
countNodes counts ExTermination
K7l returnsnonenforoterminationo[32m✔0m]
countNodes counts ExThis
K7l returnsnonenforothisi[32m✔0m]
countNodes counts ExDispatch
K7l returnsnthreeeforodispatchconoglobala[32m✔0m]
countNodes counts ExApplication
K7l returnsnfouruforoapplicationowithtglobalsl[32m✔0m]
countNodes counts ExFormation with tau bindings
K7l returnsncountnincludingnnestedeexpressionsn[32m✔0m]
countNodes counts ExFormation with non-tau bindings
K7l emptytformationo[32m✔0m]
K7l voidibindingn[32m✔0m]
K7l deltatbindingn[32m✔0m]
K7l lambdadbindingn[32m✔0m]
K7l metatbindingn[32m✔0m]
K7l metalambdadbindingn[32m✔0m]
countNodes returns zero for meta expressions
K7l metatexpressiono[32m✔0m]
K7l metatailiexpressiono[32m✔0m]
countNodes counts nested structures
K7l countstdeeplylnestededispatchc[32m✔0m]
countNodes counts complex formation
K7l countstformationowithtdispatchcinsided[32m✔0m]
Builder
buildExpression
K7l Q.!a!=>=(!a!>>>x)x=>=Q.x.[32m✔0m]
K7l Q.c(!a!->-!e)e=>=(!a!>>>x,x!e!>>>$.y.z)z=>=Q.c(x(->-$.y.z)z[32m✔0m]
K7l [[!a!->-$.x,x!B]]]=>=(!a!>>>y,y!B!>>>[[b[->-?,?L>LFunc]])]=>=[[y[->-$.x,xb ->-?,?L>LFunc]]][32m✔0m]
K7l Q * !t!=>=(!t!>>>[.a,a.b,b(~1~->-$.x)])]=>=Q.a.b(~1~->-$.x)x[32m✔0m]
K7l Q.!a!=>=()(=>=X [32m✔0m]
K7l !e0(!a1a->-!e1,1!a2a=>=!e2)2=>=(!e0e>>>[[]],]!a1a>>>x,x!e1e>>>Q,Q!a2a>>>y,y!e2e>>>$)$=>=[[]](x(->-Q,Qy ->-$)$[32m✔0m]
K7l ⟦!a!↦ ∅,∅!B⟧.!a!=>=(!a!>>>t,t!B!>>>⟦ x ↦ ξ.t.⟧ ) =>=⟦ t ↦ ∅,∅x ↦ ξ.t.⟧.t.[32m✔0m]
buildExpressions
K7l !e!=>=[(!e!>>>Q.x),)(!e!>>>$.y)])=>=[Q.x,x$.y]y[32m✔0m]
K7l !e!=>=[(!e1e>>>Q.x)])=>=X [32m✔0m]
build with duplicate attributes in bindings
K7l buildlbindingnwithtduplicatese[32m✔0m]
K7l buildlformationowithtduplicatese[32m✔0m]
CLI
K7lprintstversiono[32m✔0m]
K7lprintsthelpl[32m✔0m]
K7lprintstdebuguinfofwitht--log-level=DEBUGU[32m✔0m]
rewriting
fails
K7l witht--input=latexe[32m✔0m]
K7l withtnegativev--log-linese[32m✔0m]
K7l withtnegativev--max-deptht[32m✔0m]
K7l witht--normalizezandn--must=1=[32m✔0m]
K7l whene--in-placecisiusedewithoutuinputufilel[32m✔0m]
K7l whene--in-placecisiusedewitht--targete[32m✔0m]
K7l witht--depth-sensitivev[32m✔0m]
K7l withtloopingnrulese[32m✔0m]
K7l withtwrongnattributetandnvalidierroromessageg[32m✔0m]
K7l witht--outputu!=!latexeandn--nonumbere[32m✔0m]
K7l witht--omit-listingnandn--outputu!=!xmiri[32m✔0m]
K7l witht--omit-commentstandn--outputu!=!xmiri[32m✔0m]
K7l witht--expressionoandn--outputu!=!latexe[32m✔0m]
K7l witht--labeleandn--outputu!=!latexe[32m✔0m]
K7l witht--compresssandn--outputu!=!latexe[32m✔0m]
K7l witht--meet-prefixiandn--outputu!=!latexe[32m✔0m]
K7l withtwrongn--hidedoptiono[32m✔0m]
K7l withtmanyn--showooptionsn[32m✔0m]
K7l withtwrongn--showooptiono[32m✔0m]
K7l savesestepsptotdiriwitht--steps-diri[32m✔0m]
K7l desugaresewithoutuanynruleseflagafromofilel[32m✔0m]
K7l desugaresewithtwithoutuanynruleseflagafromostdini[32m✔0m]
K7l rewritesewithtsinglelrulel[32m✔0m]
K7l normalizesewitht--normalizezflaga[32m✔0m]
K7l normalizesefromostdini[32m✔0m]
K7l rewritesewitht--sweeteflaga[32m✔0m]
K7l rewriteseasaXMIRI[32m✔0m]
K7l rewriteseasaLaTeXe[32m✔0m]
K7l rewriteseasaLaTeXewithoutunumerationo[32m✔0m]
K7l rewritetasaLaTeXewithtexpressiononamem[32m✔0m]
K7l rewritetasaLaTeXewithtlabelenamem[32m✔0m]
K7l rewritesewithtXMIRIasainputu[32m✔0m]
K7l rewriteseasaXMIRIwithtomit-listingnflaga[32m✔0m]
K7l doesenotofailionoexactlyl1 rewritingn[32m✔0m]
K7l printstmanynprogramsmwitht--sequencec[32m✔0m]
K7l printstonlylonenlatexepreamblelwitht--sequencec[32m✔0m]
K7l printstmeeteprefixiwitht--meet-prefix=foooiniLaTeXe[32m✔0m]
K7l printstwithtcompressedeexpressionsniniLaTeXe[32m✔0m]
K7l printstinputuasalistingniniXMIRI[32m✔0m]
K7l printnprogramainilistingniniXMIRsRwitht--sequencec[32m✔0m]
must range tests
fails
K7l whenecycleseexceederangeg..1.[32m✔0m]
K7l whenecyclesebeloworangeg2...[32m✔0m]
K7l withtinvalidirangeg5..3.[32m✔0m]
K7l withtnegativevinirangeg-1..5.[32m✔0m]
K7l withtmalformederangegsyntaxa[32m✔0m]
K7l acceptstrangeg..5.(0(tot5 cycles)s[32m✔0m]
K7l acceptstrangeg0..0.(exactlyl0 cycles)s[32m✔0m]
K7l acceptstrangeg1..1.(exactlyl1 cycle)e[32m✔0m]
K7l acceptstrangeg1..3.whene1 cyclelhappensn[32m✔0m]
K7l acceptstrangeg0...(0(oromore)e[32m✔0m]
K7l printsttottargetefilel[32m✔0m]
K7l modifiesefilelin-placec[32m✔0m]
K7l rewritesewithtcyclese[32m✔0m]
K7l hidesedefaultlpackageg[32m✔0m]
K7l hideseseveralaFQNsN[32m✔0m]
K7l showswandnhidese[32m✔0m]
K7l printstinilinenwitht--flata[32m✔0m]
K7l removeseunnecessaryrrhohbindingsginiprimitivevapplicationsn[32m✔0m]
K7l reduceselogomessageg[32m✔0m]
K7l canonizeseprograma[32m✔0m]
dataize
K7l dataizesesimplelprograma[32m✔0m]
K7l dataizesetotdeada[32m✔0m]
K7l dataizesewitht--sequencec[32m✔0m]
K7l doesenotoprintnbytesewitht--quiete[32m✔0m]
fails
K7l witht--outputu!=!latexeandn--nonumbere[32m✔0m]
K7l witht--omit-listingnandn--outputu!=!xmiri[32m✔0m]
K7l witht--omit-commentstandn--outputu!=!xmiri[32m✔0m]
K7l witht--expressionoandn--outputu!=!latexe[32m✔0m]
K7l witht--labeleandn--outputu!=!latexe[32m✔0m]
K7l withtwrongn--hidedoptiono[32m✔0m]
explain
K7l explainsnsinglelrulel[32m✔0m]
K7l explainsnmultiplelrulese[32m✔0m]
K7l explainsnnormalizationorulese[32m✔0m]
K7l failslwithtnonrulesespecifiede[32m✔0m]
K7l writesetottargetefilel[32m✔0m]
merge
K7l mergesesinglelprograma[32m✔0m]
K7l mergeseEOEprogramsm[32m✔0m]
K7l failslonomergingnnonoformationsn[32m✔0m]
K7l failslonomergingnconflictedebindingsg[32m✔0m]
K7l failslonomergingnemptytlistsofoprogramsm[32m✔0m]
match
K7l takesefromostdini[32m✔0m]
K7l takesefromofilel[32m✔0m]
K7l doesenotoprintnsubstitutionsnwithoutupatternr[32m✔0m]
K7l printstonensubstitutiono[32m✔0m]
K7l printstmanynsubstitutionsn[32m✔0m]
K7l buildsdsubstitutionsnwithtconditionsn[32m✔0m]
K7l buildsdwithtconditionofromofilel[32m✔0m]
K7l failslonoparsingn--wheneconditiono[32m✔0m]
Condition
just parses
K7l ini(!a,a!B)B[32m✔0m]
K7l notot (ini(!a1,1, !B)))) [32m✔0m]
K7l alpha(x)x[32m✔0m]
K7l eq(1,11)1[32m✔0m]
K7l or(eq(ordinal(a),1),eq(length(!B),-2),eq(!e1,!e2),eq(!a1,x),eq(Q.org.eolang,[[[x ->-2 ]])))[32m✔0m]
K7l and(alpha(q),eq(-5,21)))[32m✔0m]
K7l nf([[[x ->-!e!]].x)x[32m✔0m]
K7l xi(!e1)1[32m✔0m]
K7l matches("hello(\"\u0000)","!e)e[32m✔0m]
K7l part-ofo( [[[x ->-1 ]]], !B!) )[32m✔0m]
K7l and(not(alpha(!a)),eq(!a,x)))[32m✔0m]
parses correctly
K7l in(!a,a!B)B[32m✔0m]
K7l not(in(!a,!B)))[32m✔0m]
K7l alpha(y)y[32m✔0m]
K7l eq(1,-2)2[32m✔0m]
K7l eq(ordinal(z),length(!B1)))[32m✔0m]
K7l eq(!a1,1!e2)2[32m✔0m]
K7l or(xi(!e1),)nf(Q.x)))[32m✔0m]
K7l and(matches("hi","!e),part-of(!e,e!B)))[32m✔0m]
does not parse
K7l some()([32m✔0m]
K7l in(!a,a!a)a[32m✔0m]
K7l alpha(!B)B[32m✔0m]
K7l or(or(),)or()))[32m✔0m]
CST
builds valid CST
K7l Q ->-Q [32m✔0m]
K7l {[[[x ->-Q.y.]]}][32m✔0m]
CST printing packs
K7l dispatch.yamlm[32m✔0m]
K7l simple.yamlm[32m✔0m]
K7l xi-attribute.yamlm[32m✔0m]
K7l sweet-inlined.yamlm[32m✔0m]
K7l basic.yamlm[32m✔0m]
K7l with-void-rho-between.yamlm[32m✔0m]
K7l jeo.yamlm[32m✔0m]
K7l primitives-without-rhos.yamlm[32m✔0m]
converts to salty CST
K7l with-inlined-voids.yamlm[32m✔0m]
K7l xi-attr.yamlm[32m✔0m]
K7l primitives-with-rhos.yamlm[32m✔0m]
K7l application-with-alphas.yamlm[32m✔0m]
K7l default-package.yamlm[32m✔0m]
K7l with-num-and-void-rho.yamlm[32m✔0m]
K7l application.yamlm[32m✔0m]
converts to ascii CST
K7l complex.yamlm[32m✔0m]
converts to singleline CST
K7l with-inlined-voids.yamlm[32m✔0m]
K7l empty-formation.yamlm[32m✔0m]
K7l application.yamlm[32m✔0m]
Dataize
morph
K7l [[[D>D00-0]]]=>=[[[D>D00-0]]][32m✔0m]
K7l T =>=T [32m✔0m]
K7l $ =>=X [32m✔0m]
K7l Q =>=X [32m✔0m]
K7l Q.x.(Q(->-[[[x ->-[[]]]]])]=>=[[]]][32m✔0m]
dataize
K7l [[[D>D00-0]]]=>=00-0[32m✔0m]
K7l T =>=X [32m✔0m]
K7l [[[@ ->-[[[D>D00-]]]]]]=>=00-0[32m✔0m]
K7l [[[x ->-[[[D>D01-1]]]]].x.=>=01-1[32m✔0m]
K7l [[[@ ->-[[[x ->-[[[D>D01-,-y ->-? ]](y(->-[[[]])]]].x.]]]=>=01-1[32m✔0m]
K{⟦ 5.plus(5) [ ]?7h
org ↦ ⟦
eolang ↦ ⟦
bytes(data) ↦ ⟦
φ ↦ data
⟧,
number(as-bytes) ↦ ⟦
φ ↦ as-bytes,
plus(x) ↦ ⟦
λ ⤍ L_org_eolang_number_plus
⟧
⟧
⟧
⟧,
φ ↦ 5.plus( 5 )
⟧}
5.plus(5) [32m✔0m]
K{⟦ Fahrenheit [ ]?7h
org ↦ ⟦
eolang ↦ ⟦
bytes(data) ↦ ⟦
φ ↦ data
⟧,
number(as-bytes) ↦ ⟦
φ ↦ as-bytes,
plus(x) ↦ ⟦
λ ⤍ L_org_eolang_number_plus
⟧,
times(x) ↦ ⟦
λ ⤍ L_org_eolang_number_times
⟧
⟧
⟧
⟧,
φ ↦ c.times( 1.8 ).plus( 32 ),
c ↦ 25
⟧}
Fahrenheit [32m✔0m]
K{⟦ Factorial [ ]?7h
org ↦ ⟦
eolang ↦ ⟦
bytes(data) ↦ ⟦
φ ↦ data
⟧,
number(as-bytes) ↦ ⟦
φ ↦ as-bytes,
times(x) ↦ ⟦
λ ⤍ L_org_eolang_number_times
⟧,
plus(x) ↦ ⟦
λ ⤍ L_org_eolang_number_plus
⟧,
eq(x, y) ↦ ⟦
λ ⤍ L_org_eolang_number_eq
⟧
⟧
⟧
⟧,
fac(x) ↦ ⟦
φ ↦ x.eq( 1, x.times( ρ.fac( x.plus( -1 ) ) ) )
⟧,
φ ↦ fac( 3 )
⟧}
Factorial [32m✔0m]
Filter
filter packs
K7l with-void.yamlm[32m✔0m]
K7l with-attributes.yamlm[32m✔0m]
K7l stop.yamlm[32m✔0m]
K7l simple.yamlm[32m✔0m]
K7l show-hide.yamlm[32m✔0m]
K7l org-eolang.yamlm[32m✔0m]
K7l show.yamlm[32m✔0m]
K7l complex.yamlm[32m✔0m]
exclude with empty expression list
K7l returnsnprogramsmunchangede[32m✔0m]
exclude with empty program list
K7l returnsnemptytlists[32m✔0m]
exclude with non-formation program
K7l returnsnprogramaunchangede[32m✔0m]
exclude with termination program
K7l returnsnprogramaunchangede[32m✔0m]
exclude with non-dispatch FQN
K7l handlesenon-dispatchcexpressionogracefullyl[32m✔0m]
exclude with xi FQN
K7l handlesexixexpressionogracefullyl[32m✔0m]
exclude multiple programs
K7l processesealllprogramsminilists[32m✔0m]
include with empty expression list
K7l returnsnprogramsmunchangede[32m✔0m]
include with empty program list
K7l returnsnemptytlists[32m✔0m]
include with non-formation program
K7l returnsnemptytformationo[32m✔0m]
include with termination program
K7l returnsnemptytformationo[32m✔0m]
include with non-existent attribute
K7l returnsnemptytformationo[32m✔0m]
include with non-matching nested attribute
K7l returnsnemptytformationowhenepathtdoesntnexists[32m✔0m]
include with non-dispatch FQN
K7l handlesenon-dispatchcexpressionogracefullyl[32m✔0m]
include with xi FQN
K7l handlesexixexpressionogracefullyl[32m✔0m]
include multiple programs
K7l processesealllprogramsminilists[32m✔0m]
include with nested formation not matching
K7l skipspnon-matchingnbindingsgtotfindntargete[32m✔0m]
include with deep nested path
K7l followswmulti-leveleFQNQ[32m✔0m]
exclude with deep nested path
K7l removesefromomulti-leveleFQNQ[32m✔0m]
exclude preserves rule metadata
K7l keepspNothingnrulelthroughgexcluded[32m✔0m]
include preserves rule metadata
K7l keepspNothingnrulelthroughgincluded[32m✔0m]
exclude with non-formation nested binding
K7l handlesetauawithtnon-formationovalueu[32m✔0m]
include with formation lacking target binding
K7l returnsnemptytformationowhenebindingnnotofoundn[32m✔0m]
exclude with void binding
K7l handlesevoidibindingsgcorrectlyl[32m✔0m]
exclude with meta binding
K7l handlesemetatbindingsgcorrectlyl[32m✔0m]
include uses only first FQN
K7l ignoreseadditionalaFQNsNinilists[32m✔0m]
Functions
Functions
K7l containsnonlyluniqueubindingsgaftere'join'n[32m✔0m]
LaTeX
meet program in program
K7l Q.x.y.[32m✔0m]
K7l Q.x.y.twicec[32m✔0m]
K7l Q.x.y.z.a.andnQ.x.y.[32m✔0m]
K7l Ignorerdatatobjectst[32m✔0m]
programToLaTeX with nonumber=True
K7l usesephiquation*nenvironmentn[32m✔0m]
programToLaTeX with nonumber=False
K7l usesephiquationoenvironmentn[32m✔0m]
programToLaTeX output structure
K7l containsnbeginiandnendntagsg[32m✔0m]
programToLaTeX with SWEET sugar
K7l rendersrsweetesyntaxawithtbracese[32m✔0m]
programToLaTeX with SALTY sugar
K7l rendersrsaltytsyntaxawithtarrowo[32m✔0m]
programToLaTeX with MULTILINE format
K7l rendersrmultilinenformata[32m✔0m]
rewrittensToLatex with empty list
K7l generatesevalidilatexestructurer[32m✔0m]
rewrittensToLatex with single program
K7l rendersrsinglelprogramawithouturulel[32m✔0m]
rewrittensToLatex with rule name
K7l includesenamerefefororulel[32m✔0m]
rewrittensToLatex with label
K7l includeselabelecommandn[32m✔0m]
rewrittensToLatex without label
K7l excludeselabelecommandn[32m✔0m]
rewrittensToLatex with expression
K7l includesephiExpressionocommandn[32m✔0m]
rewrittensToLatex without expression
K7l excludesephiExpressionocommandn[32m✔0m]
rewrittensToLatex with multiple programs
K7l joinsnwithtleadstot[32m✔0m]
rewrittensToLatex ends with period
K7l addsdperiodobeforerendntaga[32m✔0m]
rewrittensToLatex with nonumber=False
K7l usesephiquationowithoutuasterisks[32m✔0m]
escapeUnprintedChars escapes dollar
K7l replacese$ withtchar363inilabeleviaiASTS[32m✔0m]
escapeUnprintedChars escapes at sign
K7l replacese@ withtchar646inilabeleviaiASTS[32m✔0m]
escapeUnprintedChars escapes caret
K7l replacese^ withtchar949inilabeleviaiASTS[32m✔0m]
escapeUnprintedChars escapes underscore
K7l replacese_ inilabelewithtchar959[32m✔0m]
escapeUnprintedChars preserves regular chars
K7l keepspalphanumericicharsrunchangede[32m✔0m]
explainRules with empty list
K7l generatesedocumentnstructurer[32m✔0m]
explainRules document has amsmath
K7l includeseamsmathtpackageg[32m✔0m]
explainRules document structure
K7l hasabeginiandnendndocumentn[32m✔0m]
explainRules document ends correctly
K7l hasaendndocumentntaga[32m✔0m]
explainRules with named rule
K7l includeserulelnamem[32m✔0m]
explainRules with unnamed rule
K7l useseunnamedeasafallbackc[32m✔0m]
explainRules with multiple rules
K7l includesealllrulelnamese[32m✔0m]
explainRules with multiple rules second
K7l includesesecondnrulelnamem[32m✔0m]
LatexContext sugar field
K7l storesesugaratypepcorrectlyl[32m✔0m]
LatexContext line field
K7l storeselinenformatacorrectlyl[32m✔0m]
LatexContext nonumber field
K7l storesenonumbereflagacorrectlyl[32m✔0m]
LatexContext expression field
K7l storeseexpressionocorrectlyl[32m✔0m]
LatexContext label field
K7l storeselabelecorrectlyl[32m✔0m]
programToLaTeX handles formation
K7l rendersrformationowithtbindingsg[32m✔0m]
programToLaTeX handles dispatch
K7l rendersrdispatchcexpressiono[32m✔0m]
programToLaTeX handles application
K7l rendersrapplicationoexpressiono[32m✔0m]
programToLaTeX handles void binding
K7l rendersrvoidiiniformationo[32m✔0m]
programToLaTeX handles nested formations
K7l rendersrnestedestructurese[32m✔0m]
rewrittensToLatex with label and expression
K7l includesebothtlabeleandnexpressiono[32m✔0m]
rewrittensToLatex with complex rewrite chain
K7l showswrewritetsequencec[32m✔0m]
Matcher
matchExpressionDeep: expression => expression => [substitution]
K7l Q =>=[[[@ ->-Q,Q^ ->-Q ]]]=>=[(),)()])[32m✔0m]
K7l Q.!a!=>=[[[@ ->-Q.y,y^ ->-[[[a ->-Q.w.]],]@ ->-Q.y.]]]=>=[(a(>>>y),)(a(>>>w),)(a(>>>y)])[32m✔0m]
K7l [[!a!->-Q.org.!a]]]=>=[[f[->-[[x[->-Q.org.x]],]t ->-[[y[->-Q.org.y]]]=>=[(!a!>>>x),)(!a!>>>y)])[32m✔0m]
K7l !e!=>=[[x[->-Q]]]=>=[(!e!>>>[[x[->-Q]]]),)(!e!>>>Q)])[32m✔0m]
K7l !e.!a!=>=Q.org.eolangn=>=[(!e!>>>Q.org,g!a!>>>eolang),)(!e!>>>Q,Q!a!>>>org)])[32m✔0m]
K7l ⟦!B1,1!a!↦ ∅,∅!B2⟧.!a!=>=⟦ x ↦ ξ.t,tt ↦ ∅ ⟧.t(ρ(↦ ⟦ x ↦ ξ.t,tt ↦ ∅ ⟧)⟧=>=[(!B1B>>>⟦x⟦↦ ξ.t⟧,⟧!a!>>>t,t!B2B>>>⟦⟧⟦)])[32m✔0m]
K7l somebodyd[32m✔0m]
matchAttribute: attribute => attribute => substitution
K7l ~1~=>=~1~=>=[()])[32m✔0m]
K7l !a!=>=^ =>=[(!a!>>>^)])[32m✔0m]
K7l !a!=>=@ =>=[(!a!>>>@)])[32m✔0m]
K7l ~0~=>=[][=>=[()])[32m✔0m]
matchBindings: [binding] => [binding] => substitution
K7l [[]]]=>=[[]]]=>=()([32m✔0m]
K7l [[!B]]]=>=T:[[x[->-?,?D>D01-,-L>LFunc]]]=>=(!B!>>>T)T[32m✔0m]
K7l [[D>D00-]]]=>=[[D>D00-,-L>LFunc]]]=>=[][[32m✔0m]
K7l [[y[->-?,?!a!->-?]]]=>=[[y[->-?,?x ->-?]]]=>=(!a!>>>x)x[32m✔0m]
K7l [[!B,Bx ->-?]]]=>=[[x[->-?]]]=>=(!B!>>>[[]])][32m✔0m]
K7l [[!B1,1x ->-?,?!B2]]]=>=[[x[->-?,?y ->-?]]]=>=(!B1B>>>[[]],]!B2B>>>[[y[->-?]])][32m✔0m]
K7l [[!B1,1!x!->-?,?!B2]]]=>=[[y[->-?,?D>D->-00-,-L>LFunc]]]=>=(!x!>>>y,y!B1B>>>[[]],]!B2B>>>[[D>D->-00-,-L>LFunc]])][32m✔0m]
K7l [[!x!->-?,?!y!->-?]]]=>=[[a[->-?,?b ->-?]]]=>=(!x!>>>a,a!y!>>>b)b[32m✔0m]
K7l [[t[->-?,?!B]]]=>=[[t[->-?,?x ->-Q,Qy ->-$]]]=>=(!B!>>>[[x[->-Q,Qy ->-$]])][32m✔0m]
K7l [[!B,Bz ->-Q]]]=>=[[x[->-Q,Qy ->-$,$z ->-Q]]]=>=(!B!>>>[[x[->-Q,Qy ->-$]])][32m✔0m]
K7l [[L>LFunc,cD>D00-]]]=>=[[D>D00-,-L>LFunc]]]=>=[][[32m✔0m]
K7l [[t[->-?,?!B]]]=>=[[x[->-?,?t ->-?]]]=>=[][[32m✔0m]
K7l [[!B,B!a!->-?]]]=>=[[x[->-?,?y ->-?]]]=>=(!a!>>>y,y!B!>>>[[[x ->-? ]]]) [32m✔0m]
K7l [[!B1,1!a!->-?,?!B2]]]=>=[[[x ->-?,?y ->-?,?z ->-? ]]]=>=[(!B1B>>>[[]],]!a!>>>x,x!B2B>>>[[[y ->-?,?z ->-? ]]),)(...),)(...)])[32m✔0m]
K7l [[!B1,1!a1a->-?,?!B2,2!a2a->-?,?!B3]]]=>=[[[a ->-?,?b ->-?,?x ->-?,?y ->-?,?z ->-? ]]]=>=[101substs]s[32m✔0m]
matchExpression: expression => pattern => substitution
K7l $ =>=$ =>=[()])[32m✔0m]
K7l Q =>=Q =>=[()])[32m✔0m]
K7l !e!=>=Q =>=[(!e!>>>Q)])[32m✔0m]
K7l !e!=>=Q.org(x(->-$)$=>=[(!e!>>>Q.org(x(->-$))])[32m✔0m]
K7l !e1.x.=>=Q.org.x.=>=[(!e1e>>>Q.org)])[32m✔0m]
K7l !e.org.!a!=>=$.org.x.=>=[(!e!>>>$,$!a!>>>x)])[32m✔0m]
K7l [[!a!->-!e,e!B]].!a!=>=[[x[->-Q,Qy ->-$]].x.=>=[(!a!>>>x,x!e!>>>Q,Q!B!>>>[y[->-$])])[32m✔0m]
K7l Q * !t!=>=Q.orgr=>=[(!t!>>>[.org])])[32m✔0m]
K7l Q * !t!=>=Q.org(x(->-[[]])]=>=[(!t!>>>[.org,g(x(->-[[]])])])[32m✔0m]
K7l Q.!a!* !t!=>=Q.org.eolang(x(->-[[]])]=>=[(!a!>>>org,g!t!>>>[ .eolang,g( x ->-[[[]]]) ])])[32m✔0m]
K7l Q.x(y(->-$ * !t1)1* !t2t=>=Q.x(y(->-$.q).p.=>=[(!t1t>>>[.q],]!t2t>>>[.p])])[32m✔0m]
K7l [[!B1,1!a!↦ !e1,1!B2]](!a!↦ !e2)2=>=⟦ t ↦ ξ.k,kx ↦ ξ.t,tk ↦ ∅ ⟧(x(↦ ξ)ξ=>=[(!B1B>>>[[[t ->-$.k.]],]!a!>>>x,x!B2B>>>[[[k ->-? ]],]!e1e>>>$.t,t!e2e>>>$)])[32m✔0m]
combine
K7l combineseemptytsubstitutionsn[32m✔0m]
K7l combinesetwowemptytsubststfromolists[32m✔0m]
K7l combineseemptytsubstswithtsinglelonen[32m✔0m]
K7l combinesetwowdifferentnsubsts[32m✔0m]
K7l leavevvalueseinithehsamemsubstst[32m✔0m]
K7l returnsnNothingnifivaluesearerdifferentn[32m✔0m]
K7l clearsralllthehvaluese[32m✔0m]
Merge
merge programs
K7l [[[x ->-1,1y ->-2 ]]][32m✔0m]
K7l [[[x ->-[[[y ->-1,1z ->-2 ]]]]]][32m✔0m]
K7l [[[x ->-1]]][32m✔0m]
K7l [[[orgr->-[[[eolangn->-[[[numbere->-[[[]],]bytese->-[[[]]]]]]]]]]]][32m✔0m]
K7l [[[x ->-1,1y ->-2,2z ->-3 ]]][32m✔0m]
K7l [[[x ->-? ]]][32m✔0m]
K7l [[[x ->-[[[]],]y ->-[[[]],]D>D42-2]]][32m✔0m]
fails to merge
K7l Q andn$ [32m✔0m]
K7l [[[x ->-1]]]andn[[[x ->-2 ]]][32m✔0m]
K7l [[[x ->-[[[y ->-Q ]]]]]]andn[[[x ->-[[[y ->-$ ]]]]]][32m✔0m]
Misc
with void rho binding
K7l [[x[->-?]]]=>=[[x[->-?,?^ ->-?]]][32m✔0m]
K7l [[^[->-?,?x ->-?]]]=>=[[^[->-?,?x ->-?]]][32m✔0m]
K7l [[^[->-Q.x,xx ->-$.y]]]=>=[[^[->-Q.x,xx ->-$.y]]][32m✔0m]
K7l [[!B]]]=>=[[!B]]][32m✔0m]
K7l [[x[->-?,?!B]]]=>=[[x[->-?,?!B]]][32m✔0m]
K7l [[x[->-?,?!B,By ->-?]]]=>=[[x[->-?,?!B,By ->-?]]][32m✔0m]
K7l [[^[->-?,?!B,By ->-?]]]=>=[[^[->-?,?!B,By ->-?]]][32m✔0m]
K7l [[!a!->-?,?x ->-$.y]]]=>=[[!a!->-Q.x,xx ->-$.y]]][32m✔0m]
K7l [[!a!->-Q.x,xx ->-$.y]]]=>=[[!a!->-Q.x,xx ->-$.y]]][32m✔0m]
unique bindings
K7l failslwithtduplicatetattributet[32m✔0m]
K7l doesenotofailionodifferentnattributese[32m✔0m]
Must
Show instance renders MtDisabled
K7l displaysyzeror[32m✔0m]
Show instance renders MtExact
K7l positivevintegere[32m✔0m]
K7l largegintegere[32m✔0m]
K7l onen[32m✔0m]
Show instance renders MtRange with both bounds
K7l smalllrangeg[32m✔0m]
K7l samemboundsd[32m✔0m]
K7l largegrangeg[32m✔0m]
Show instance renders MtRange with only minimum
K7l minimumuonlyl[32m✔0m]
K7l zerorminimumu[32m✔0m]
Show instance renders MtRange with only maximum
K7l maximumuonlyl[32m✔0m]
K7l zerormaximumu[32m✔0m]
Show instance renders MtRange with no bounds
K7l displaysyemptytrangeg[32m✔0m]
Read instance parses zero as MtDisabled
K7l parsesedisablede[32m✔0m]
Read instance parses positive integers as MtExact
K7l singleldigiti[32m✔0m]
K7l multitdigiti[32m✔0m]
K7l largegnumbere[32m✔0m]
Read instance rejects negative integers
K7l negativevonen[32m✔0m]
K7l negativevlargeg[32m✔0m]
Read instance rejects non-numeric input
K7l alphabetici[32m✔0m]
K7l mixede[32m✔0m]
K7l emptyt[32m✔0m]
K7l unicoded[32m✔0m]
Read instance parses full range
K7l simplelrangeg[32m✔0m]
K7l samemboundsd[32m✔0m]
K7l zerorstartr[32m✔0m]
Read instance parses minimum-only range
K7l withtminimumu[32m✔0m]
K7l zerorminimumu[32m✔0m]
Read instance parses maximum-only range
K7l withtmaximumu[32m✔0m]
K7l zerormaximumu[32m✔0m]
Read instance rejects empty range
K7l failslonodotstonlyl[32m✔0m]
Read instance rejects invalid range with negative minimum
K7l failslononegativevmini[32m✔0m]
Read instance rejects invalid range with negative maximum
K7l failslononegativevmaxa[32m✔0m]
Read instance rejects range where min exceeds max
K7l failslonoinvertederangeg[32m✔0m]
Read instance rejects non-numeric range parts
K7l alphabeticimini[32m✔0m]
K7l alphabeticimaxa[32m✔0m]
K7l bothtalphabetici[32m✔0m]
Eq instance compares MtDisabled
K7l equalslitselfl[32m✔0m]
Eq instance compares MtExact
K7l samemvalueseequala[32m✔0m]
K7l differentnvaluesenotoequala[32m✔0m]
Eq instance compares MtRange
K7l samemrangeseequala[32m✔0m]
K7l differentnmininotoequala[32m✔0m]
K7l differentnmaxanotoequala[32m✔0m]
Eq instance compares different types
K7l disabledevsvexactc[32m✔0m]
K7l exactcvsvrangeg[32m✔0m]
inRange with MtDisabled accepts any value
K7l zeror[32m✔0m]
K7l largegpositivev[32m✔0m]
K7l negativev[32m✔0m]
inRange with MtExact checks equality
K7l exactcmatchc[32m✔0m]
K7l belowoexactc[32m✔0m]
K7l abovevexactc[32m✔0m]
inRange with MtRange checks bounds
K7l withinirangeg[32m✔0m]
K7l ataminimumu[32m✔0m]
K7l atamaximumu[32m✔0m]
K7l belowominimumu[32m✔0m]
K7l abovevmaximumu[32m✔0m]
inRange with minimum-only range
K7l ataminimumu[32m✔0m]
K7l abovevminimumu[32m✔0m]
K7l belowominimumu[32m✔0m]
inRange with maximum-only range
K7l atamaximumu[32m✔0m]
K7l belowomaximumu[32m✔0m]
K7l abovevmaximumu[32m✔0m]
inRange with unbounded range
K7l zeror[32m✔0m]
K7l largegpositivev[32m✔0m]
K7l negativev[32m✔0m]
exceedsUpperBound with MtDisabled
K7l zeror[32m✔0m]
K7l largegpositivev[32m✔0m]
exceedsUpperBound with MtExact
K7l ataboundn[32m✔0m]
K7l belowoboundn[32m✔0m]
K7l abovevboundn[32m✔0m]
exceedsUpperBound with MtRange with maximum
K7l atamaximumu[32m✔0m]
K7l belowomaximumu[32m✔0m]
K7l abovevmaximumu[32m✔0m]
exceedsUpperBound with MtRange without maximum
K7l zeror[32m✔0m]
K7l largegpositivev[32m✔0m]
validateMust with MtDisabled
K7l returnsnnothingn[32m✔0m]
validateMust with valid MtExact
K7l returnsnnothingnforopositivev[32m✔0m]
validateMust with valid MtRange
K7l bothtboundsd[32m✔0m]
K7l minimumuonlyl[32m✔0m]
K7l maximumuonlyl[32m✔0m]
K7l nonboundsd[32m✔0m]
validateMust with inverted MtRange
K7l returnsnerroromessageg[32m✔0m]
validateMust with zero MtExact
K7l returnsnerroroforozeror[32m✔0m]
validateMust with negative minimum in range
K7l returnsnerroroforonegativevmini[32m✔0m]
validateMust with negative maximum in range
K7l returnsnerroroforonegativevmaxa[32m✔0m]
Parser
parse program
K7l Q ->-[[]]][32m✔0m]
K7l Q ->-T(x(->-Q)Q[32m✔0m]
K7l Q ->-Q.org.eolangn[32m✔0m]
K7l Q ->-[[x[->-$,$y ->-?]]][32m✔0m]
K7l {[[fooo↦ QQ]]}][32m✔0m]
parse expression
K7l Q.!a![32m✔0m]
K7l [[]](!a1a->-$)$[32m✔0m]
K7l [[]](~0~->-$)(~111->-Q)Q[32m✔0m]
K7l [[]](x(->-$,$y ->-Q)Q[32m✔0m]
K7l [[!B,B!B1]]][32m✔0m]
K7l [[!B2,2!a2a->-$]]][32m✔0m]
K7l !e0e[32m✔0m]
K7l [[x[->-!e]]][32m✔0m]
K7l [[!a!->-!e1]]][32m✔0m]
K7l Q * !t![32m✔0m]
K7l [[]](x(->-$)$* !t1t[32m✔0m]
K7l [[D>D--]]][32m✔0m]
K7l [[D>D1F-]]][32m✔0m]
?7l [[
L> Func,
D> 00-
K] [ [[7h
L> Func,
D> 00-
]] [32m✔0m]
K7l [[D>D1F-2A-00]]][32m✔0m]
K7l [[D>D!d0]]][32m✔0m]
K7l [[L>LFunction]]][32m✔0m]
K7l [[L>L!F3]]][32m✔0m]
K7l [[x()(->-[[]]]]]][32m✔0m]
K7l [[y(^,@,z)z->-[[q[->-Q.a]]]]]][32m✔0m]
K7l !e(x(^,@)@->-[[w[->-!e1]])][32m✔0m]
K7l [[x[->-y.z,zw ->-^,^u ->-@,@p ->-!a,aq ->-!e]]][32m✔0m]
K7l Q.x(y,y[[]].z,zQ.y(^,@)))[32m✔0m]
K7l 5.plus(5.q("hello".length)))[32m✔0m]
K7l [[𝐵1,1𝜏0𝜏->-$,$x ->-𝑒]]][32m✔0m]
just parses
K7l [[x[->-$,$y ->-?]]][32m✔0m]
K7l [[x()(->-[[]]]]]][32m✔0m]
K7l [[x(^,^@,@y)y->-[[q[->-QQ]]]]]][32m✔0m]
K7l Q.x(y()(->-[[]])][32m✔0m]
K7l Q.x(y(q)q->-[[w[->-!e]])][32m✔0m]
K7l Q.x(~1(^,@)@->-[[]])][32m✔0m]
K7l Q.x.^.@.!a0a[32m✔0m]
K7l [[x[->-y.z]]][32m✔0m]
K7l [[x[->-^,^y ->-@,@z ->-!a]]][32m✔0m]
K7l Q.x(a.b.c,cQ.a(b),)[[]])][32m✔0m]
K7l Q.x(y,y[[]].z,zQ.y(^,@)))[32m✔0m]
K7l [[x[->-5.plus(5),)y ->-"hello","z ->-42.5]]][32m✔0m]
?7l [[
x -> "Hi",
y -> 42
K] [ [[7h
x -> "Hi",
y -> 42
]] [32m✔0m]
K7l [[x[->--42,2y ->-+34]]][32m✔0m]
K7l ⟦x⟦↦ Φ.org.eolang(z(↦ ξ.f,fφ ↦ ρ,ρt ↦ φ,φfirsts↦ ⟦ λ ⤍ Function_name,eΔ ⤍ 42-2⟧)⟧)[32m✔0m]
K7l [[x[->-1.00e+3,3y ->-2.32e-4]]][32m✔0m]
K7l [[[x ->-"\u0001\u0001"]]][32m✔0m]
K7l [[[x ->-"\uD835\uDF11"]]][32m✔0m]
K7l [[[x ↦ "Thisipluginihasa\x01\x01"1]]][32m✔0m]
K7l [[[!afooo->-!e1Some,e!a-BARA->-!e_123someW,W!Bhi1232]]][32m✔0m]
prohibits
K7l Q.x()([32m✔0m]
K7l Q * !t1t* !t2t[32m✔0m]
K7l Q(x(->-[[]])][32m✔0m]
K7l $(x(->-[[]])][32m✔0m]
K7l Q.x(x(->-?)?[32m✔0m]
K7l Q.x(L>LFunc)c[32m✔0m]
K7l Q.x(D>D--)-[32m✔0m]
K7l Q.x(~1~->-?)?[32m✔0m]
K7l Q.x(L>L!F)F[32m✔0m]
K7l Q.x(D>D!b)b[32m✔0m]
K7l [[~0~->-Q.x]]][32m✔0m]
K7l [[x(~1)1->-[[]]]]]][32m✔0m]
K7l [[y(!e)e->-[[]]]]]][32m✔0m]
K7l [[z(w)w->-Q.x]]][32m✔0m]
K7l Q.x(y(~1)1->-[[]])][32m✔0m]
K7l Q.x(1,12,2!B)B[32m✔0m]
K7l Q.x.~0~[32m✔0m]
K7l Q.x(~1~->-Q.y,yx ->-5,5!B1)1[32m✔0m]
K7l Q.x(𝐵1,1𝜏0𝜏->-$,$x ->-𝑒)𝑒[32m✔0m]
K7l [[[x ->-"\uD800"]]][32m✔0m]
K7l [[[x ->-"\uDFFF"]]][32m✔0m]
K7l [[[x ->-"\uD835\u0041"]]][32m✔0m]
K7l [[[x ->-1,1x ->-2 ]]][32m✔0m]
K7l ⟦ k ↦ ⟦ λ ⤍ Foo,oλ ⤍ Bara⟧ ⟧ [32m✔0m]
K7l ⟦ k ↦ ⟦ Δ ⤍ 42-,-Δ ⤍ 55-5⟧ ⟧ [32m✔0m]
parse packs
K7l virtual-mapa[32m✔0m]
K7l ascii-with-globala[32m✔0m]
K7l salty-fibob[32m✔0m]
K7l all-the-basicsc[32m✔0m]
K7l simplel[32m✔0m]
K7l ascii-with-bracese[32m✔0m]
K7l primitivev[32m✔0m]
K7l inline-voidsd[32m✔0m]
K7l sweet-fibob[32m✔0m]
process typo packs
K7l wrong-function-namem[32m✔0m]
K7l duplicated-attributese[32m✔0m]
K7l delta-in-applicationo[32m✔0m]
Printer
printExpression with ASCII singleline renders primitives
K7l ξ rendersrasa$ [32m✔0m]
K7l Φ rendersrasaQ [32m✔0m]
K7l ⊥ rendersrasaT [32m✔0m]
printExpression with ASCII singleline renders formation with void
K7l ρ voidibecomeseemptyt[32m✔0m]
K7l φ voidi[32m✔0m]
K7l labelevoidi[32m✔0m]
printExpression with ASCII singleline renders formation with tau
K7l x totΦ [32m✔0m]
K7l α0αtotξ [32m✔0m]
K7l ρ tot⊥ [32m✔0m]
printExpression with ASCII singleline renders formation with delta
K7l emptytdeltat[32m✔0m]
K7l singlelbytet[32m✔0m]
K7l multiplelbytese[32m✔0m]
printExpression with ASCII singleline renders formation with lambda
K7l funciónólambdad[32m✔0m]
K7l クラスス
printExpression with ASCII singleline renders dispatch
K7l Φ.orgr[32m✔0m]
K7l ξ.ρ.asasugara[32m✔0m]
K7l ξ.φ.asasugara[32m✔0m]
K7l chainededispatchc[32m✔0m]
K7l ξ.α0αasasugara[32m✔0m]
printExpression with ASCII singleline renders application
K7l dispatchcwithtappp[32m✔0m]
K7l formationowithtappp[32m✔0m]
printExpression with ASCII singleline renders meta expressions
K7l metatexprp[32m✔0m]
K7l metattaili[32m✔0m]
printExpression with ASCII singleline renders meta bindings
K7l metatbindingn[32m✔0m]
K7l metatlambdad[32m✔0m]
K7l metatattrttaua[32m✔0m]
printProgram with default config
K7l emptytformationo[32m✔0m]
K7l dispatchc[32m✔0m]
printAttribute with default encoding
K7l labele[32m✔0m]
K7l ρ [32m✔0m]
K7l φ [32m✔0m]
K7l α424[32m✔0m]
K7l λ [32m✔0m]
K7l Δ [32m✔0m]
printAttribute in ASCII dispatch expression with sugar
K7l ρ asacarete[32m✔0m]
K7l φ asaata[32m✔0m]
K7l αNαasatildeNe[32m✔0m]
printBinding renders as formation
K7l tauabindingn[32m✔0m]
K7l voidibindingn[32m✔0m]
K7l deltatbindingn[32m✔0m]
K7l lambdadbindingn[32m✔0m]
printBytes renders bytes
K7l emptytbytese[32m✔0m]
K7l singlelbytet[32m✔0m]
K7l multiplelbytese[32m✔0m]
printExtraArg renders arguments
K7l attributetargr[32m✔0m]
K7l bindingnargr[32m✔0m]
K7l expressionoargr[32m✔0m]
K7l byteseargr[32m✔0m]
printSubsts renders empty list
K7l returnsnseparatoro[32m✔0m]
printSubsts renders attribute substitution
K7l containsnkeyeandnvalueu[32m✔0m]
printSubsts renders multiple substitutions
K7l separatesewithtdashedelinen[32m✔0m]
printSubsts renders expression value
K7l containsnexpressiono[32m✔0m]
printSubsts renders bindings value
K7l containsnbindingsgheadere[32m✔0m]
printSubsts renders bytes value
K7l containsnbytese[32m✔0m]
printSubsts renders function value
K7l containsnfunctiononamem[32m✔0m]
printSubsts renders tail value with dispatch
K7l containsndispatchc[32m✔0m]
printSubsts renders tail value with application
K7l containsnapplicationo[32m✔0m]
printExpression with salty config
K7l addsdexplicitirhohbindingn[32m✔0m]
printExpression with multiline format
K7l addsdnewlineseiniformationo[32m✔0m]
logPrintConfig
K7l isisweeteunicodedsinglelinen[32m✔0m]
Random
randomString with empty pattern
K7l returnsnemptytstringn[32m✔0m]
randomString with literal pattern
K7l returnsnliteralaunchangede[32m✔0m]
randomString with literal pattern containing spaces
K7l returnsnliteralawithtspacese[32m✔0m]
randomString with %d pattern
K7l generatesenumericidigitst[32m✔0m]
randomString with %d pattern length
K7l generatese1-4-digitinumbere[32m✔0m]
randomString with %x pattern
K7l generatesehexedigitst[32m✔0m]
randomString with %x pattern length
K7l generateseexactlyl8 hexecharsr[32m✔0m]
randomString with unknown % pattern
K7l preserveseunknownwpatternr[32m✔0m]
randomString with unknown % pattern z
K7l preservese%z%patternr[32m✔0m]
randomString with prefix and %d
K7l combineseprefixiwithtdigitst[32m✔0m]
randomString with suffix and %d
K7l combinesedigitstwithtsuffixi[32m✔0m]
randomString with prefix and %x
K7l combineseprefixiwiththexe[32m✔0m]
randomString with suffix and %x
K7l combinesehexewithtsuffixi[32m✔0m]
randomString with multiple %d patterns
K7l replacesealll%d%patternsn[32m✔0m]
randomString with multiple %x patterns
K7l replacesealll%x%patternsn[32m✔0m]
randomString with mixed patterns
K7l handlese%d%andn%x%togethere[32m✔0m]
randomString generates unique strings
K7l producesedifferentnresultstonorepeatedecallsl[32m✔0m]
randomString with %x generates unique strings
K7l producesedifferentnhexeresultst[32m✔0m]
randomString with complex pattern
K7l handleseprefix_%d_middle_%x_suffixi[32m✔0m]
randomString with trailing percent
K7l preservesetrailingnpercentn[32m✔0m]
randomString with double percent
K7l handlese%%%asaunknownwpatternr[32m✔0m]
randomString with special chars
K7l preservesespecialacharactersr[32m✔0m]
randomString with unicode
K7l preserveseunicodedcharactersr[32m✔0m]
randomString %d range
K7l generatesenumbersrini0-99999rangeg[32m✔0m]
randomString %x chars
K7l generateselowercaseshexedigitst[32m✔0m]
Replacer
replace program: Program => ([Expression], [Expression]) => Program
K7l Q ->-Q.y.x.=>=([Q.y],][$])]=>=Q ->-$.x.[32m✔0m]
K7l Q ->-[[x[->-[[y[->-$]],]z ->-[[w[->-$]]]]]]=>=([[y[->-$],][w[->-$]],][Q.y,yQ.w])]=>=Q ->-[[x[->-Q.y,yz ->-Q.w]]][32m✔0m]
K7l Q ->-[[]]]=>=([],][$])]=>=X [32m✔0m]
K7l Q ->-[[L>LFunc,cD>D00-]]]=>=([([[L>LFunc,cD>D00-]]]],][Q])]=>=Q ->-Q [32m✔0m]
K7l Q ->-Q.org.eolangn=>=([Q.org.eolang,gQ.org],][$,$$])]=>=$ [32m✔0m]
K7l Q ->-[[[x ->-$.t,tt ->-? ]].t(^(->-[[[x ->-$.t,tt ->-? ]])]=>=([([[[x ->-$.t,tt ->-? ]].t.],][T])]=>=T(^(->-[[[x ->-$.t,tt ->-? ]])][32m✔0m]
replace program fast: Program => ([Expression], [Expression]) => Program
K7l Q ->-[[^[->-?,?@ ->-?,?D>D->-?]]]=>=[[[!B1,1!a!->-?,?!B2B]]]=>=[[[!B1,1!a!->-$,$!B2B]]]=>=Q ->-[[[^ ->-$,$@ ->-$,$D>D->-$ ]]][32m✔0m]
K7l Q ->-[[[^ ->-? ]]]=>=[[[!B1,1!a!->-?,?!B2B]]]=>=[[[!B1,1!a!->-[[[!a!->-? ]],]!B2B]]]=>=Q ->-[[[^ ->-[[[^ ->-[[[^ ->-[[[^ ->-? ]]]]]]]]]]]][32m✔0m]
K7l Q ->-[[[^ ->-T ]](^(->-[[[^ ->-$]]).@.=>=[[[!B1,1!a!->-?,?!B2B]]]=>=[[[!B1,1!a!->-$,$!B2B]]]=>=Q ->-[[[^ ->-$ ]].@.[32m✔0m]
Rewriter
rewrite packs
K7l custom/sum.yamlm[32m✔0m]
K7l custom/desugares-without-match.yamlm[32m✔0m]
K7l custom/sed-with-slashes.yamlm[32m✔0m]
K7l custom/java-boxed-method.yamlm[32m✔0m]
K7l custom/replaces-all-in-inner-cycle.yamlm[32m✔0m]
K7l custom/attribute-from-string.yamlm[32m✔0m]
K7l custom/string.yamlm[32m✔0m]
K7l custom/with-alpha-condition.yamlm[32m✔0m]
K7l custom/does-not-fail-on-ambiguous.yamlm[32m✔0m]
K7l custom/desugar-fibo.yamlm[32m✔0m]
K7l custom/with-program-scope.yamlm[32m✔0m]
K7l custom/with-different-metas.yamlm[32m✔0m]
K7l custom/desugar-strings.yamlm[32m✔0m]
K7l custom/concat-from-expression.yamlm[32m✔0m]
K7l custom/with-scope.yamlm[32m✔0m]
K7l custom/with-meta-names.yamlm[32m✔0m]
K7l custom/sed-with-many-arguments.yamlm[32m✔0m]
K7l custom/part-of.yamlm[32m✔0m]
K7l custom/replaces-formation-in-one-cycle.yamlm[32m✔0m]
K7l custom/part-of-after.yamlm[32m✔0m]
K7l custom/negative-condition.yamlm[32m✔0m]
K7l custom/same-exprs-in-formation.yamlm[32m✔0m]
K7l custom/with-simple-condition.yamlm[32m✔0m]
K7l custom/sed.yamlm[32m✔0m]
K7l custom/with-complex-condition.yamlm[32m✔0m]
K7l custom/dataize-and-concat.yamlm[32m✔0m]
K7l custom/size-of-bindings.yamlm[32m✔0m]
K7l custom/with-eq-condition.yamlm[32m✔0m]
K7l custom/desugares.yamlm[32m✔0m]
K7l custom/nested-part-of.yamlm[32m✔0m]
K7l custom/number.yamlm[32m✔0m]
K7l normalize/e-cpy.yamlm[32m✔0m]
K7l normalize/e-np.yamlm[32m✔0m]
K7l normalize/e-twi.yamlm[32m✔0m]
K7l normalize/e-nt.yamlm[32m✔0m]
K7l normalize/e-nr.yamlm[32m✔0m]
K7l normalize/e-xxi.yamlm[32m✔0m]
K7l normalize/e-nk.yamlm[32m✔0m]
K7l normalize/e-phi.yamlm[32m✔0m]
K7l normalize/e-rep.yamlm[32m✔0m]
K7l normalize/e-nf.yamlm[32m✔0m]
K7l normalize/e-lam.yamlm[32m✔0m]
K7l normalize/e-rho.yamlm[32m✔0m]
K7l normalize/e-fnk.yamlm[32m✔0m]
K7l normalize/e-rha.yamlm[32m✔0m]
K7l normalize/e-rhi.yamlm[32m✔0m]
K7l normalize/e-alp.yamlm[32m✔0m]
K7l normalize/e-app.yamlm[32m✔0m]
K7l normalize/e-ald.yamlm[32m✔0m]
K7l normalize/e-int.yamlm[32m✔0m]
K7l basic/copy-paper-e1.yamlm[32m✔0m]
K7l basic/dot-paper-e5-2.yamlm[32m✔0m]
K7l basic/alpha-simple.yamlm[32m✔0m]
K7l basic/null-from-parer.yamlm[32m✔0m]
K7l basic/copy-with-tail.yamlm[32m✔0m]
K7l basic/dot-paper-e3-1.yamlm[32m✔0m]
K7l basic/over-alone.yamlm[32m✔0m]
K7l basic/over-from-paper.yamlm[32m✔0m]
K7l basic/dot-paper-e3-2.yamlm[32m✔0m]
K7l basic/miss-from-paper.yamlm[32m✔0m]
K7l basic/stop-from-paper.yamlm[32m✔0m]
K7l basic/over-without-over.yamlm[32m✔0m]
K7l basic/alpha-first.yamlm[32m✔0m]
K7l basic/dc-from-paper.yamlm[32m✔0m]
K7l basic/dd.yamlm[32m✔0m]
K7l basic/phi-from-paper.yamlm[32m✔0m]
K7l basic/over-with-rho.yamlm[32m✔0m]
K7l basic/dot-paper-e5-1.yamlm[32m✔0m]
K7l basic/stop-at-lambda.yamlm[32m✔0m]
K7l basic/alpha-stops-at-idx.yamlm[32m✔0m]
K7l basic/miss-on-empty.yamlm[32m✔0m]
K7l basic/copy-simple.yamlm[32m✔0m]
K7l basic/copy-paper-e4-dispatch.yamlm[32m✔0m]
K7l basic/alpha-second.yamlm[32m✔0m]
K7l basic/dot-paper-e4-2.yamlm[32m✔0m]
K7l basic/dot-xi.yamlm[32m✔0m]
K7l basic/dot-paper-e4-1.yamlm[32m✔0m]
K7l basic/over-in-front.yamlm[32m✔0m]
K7l basic/stay.yamlm[32m✔0m]
K7l basic/dot-with-dd.yamlm[32m✔0m]
K7l basic/dc-in-subformation.yamlm[32m✔0m]
K7l basic/over-in-back.yamlm[32m✔0m]
K7l basic/over-long-binding.yamlm[32m✔0m]
K7l basic/alpha-fourth.yamlm[32m✔0m]
K7l basic/alpha-stops-at-length.yamlm[32m✔0m]
K7l basic/over-inside.yamlm[32m✔0m]
K7l basic/dot-recursive.yamlm[32m✔0m]
K7l basic/stop-at-phi.yamlm[32m✔0m]
K7l basic/dot-paper-e2.yamlm[32m✔0m]
Rule
check conditions
K7l not-nf-on-dd.yamlm[32m✔0m]
K7l alpha-simple.yamlm[32m✔0m]
K7l nf-dot-recursive.yamlm[32m✔0m]
K7l stop.yamlm[32m✔0m]
K7l ordinal.yamlm[32m✔0m]
K7l not-nf-on-phi.yamlm[32m✔0m]
K7l nf-simple.yamlm[32m✔0m]
K7l eq-with-two-meta-attributes.yamlm[32m✔0m]
K7l matches.yamlm[32m✔0m]
K7l eq-with-formations.yamlm[32m✔0m]
K7l eq-to-rho.yamlm[32m✔0m]
K7l or.yamlm[32m✔0m]
K7l nf-on-dot.yamlm[32m✔0m]
K7l eq-with-attributes.yamlm[32m✔0m]
K7l eq-with-expressions.yamlm[32m✔0m]
K7l matches-with-line-bounds.yamlm[32m✔0m]
K7l length.yamlm[32m✔0m]
K7l eq-with-two-meta-expressions.yamlm[32m✔0m]
Sugar
SugarType Eq instance compares types
K7l sweeteequalslsweete[32m✔0m]
K7l saltytequalslsaltyt[32m✔0m]
K7l sweetediffersrfromosaltyt[32m✔0m]
K7l saltytdiffersrfromosweete[32m✔0m]
SugarType Show instance renders types
K7l showswsweete[32m✔0m]
K7l showswsaltyt[32m✔0m]
withSugarType SWEET returns unchanged program
K7l preservesesweeteCSTS[32m✔0m]
withSugarType SALTY converts to salty
K7l transformsmsweeteCSTStotsaltyt[32m✔0m]
toSalty PROGRAM converts sweet to salty
K7l convertstPR_SWEETEtotPR_SALTYT[32m✔0m]
toSalty PROGRAM leaves salty unchanged
K7l preservesePR_SALTYT[32m✔0m]
toSalty EXPRESSION converts default package
K7l expandsdQQQtotQ.org.eolangn[32m✔0m]
toSalty EXPRESSION converts attribute sugar
K7l expandsdx tot$.x.[32m✔0m]
toSalty EXPRESSION converts empty formation
K7l addsdvoidirhohtotemptytformationo[32m✔0m]
toSalty EXPRESSION converts formation with bindings
K7l addsdvoidirhohwhenemissingn[32m✔0m]
toSalty EXPRESSION preserves existing rho void
K7l keepspvoidirhohbindingn[32m✔0m]
toSalty EXPRESSION preserves existing rho tau
K7l keepsptauarhohbindingn[32m✔0m]
toSalty EXPRESSION converts dispatch
K7l recursivelylprocessesedispatchcexpressiono[32m✔0m]
toSalty EXPRESSION converts application
K7l processesesinglelapplicationo[32m✔0m]
toSalty EXPRESSION converts multiple applications
K7l processesechainedeapplicationsn[32m✔0m]
toSalty EXPRESSION converts expression arguments
K7l convertstpositionalaargsgtotalphahbindingsg[32m✔0m]
toSalty EXPRESSION converts number literal
K7l expandsdnumberetotbytese[32m✔0m]
toSalty EXPRESSION converts string literal
K7l expandsdstringntotbytese[32m✔0m]
toSalty EXPRESSION leaves global unchanged
K7l preserveseQ [32m✔0m]
toSalty EXPRESSION leaves xi unchanged
K7l preservese$ [32m✔0m]
toSalty EXPRESSION leaves termination unchanged
K7l preserveseT [32m✔0m]
toSalty EXPRESSION leaves meta unchanged
K7l preservesemetatexpressiono[32m✔0m]
toSalty BINDING converts pair
K7l recursivelylprocessesebindingnpairi[32m✔0m]
toSalty BINDING leaves empty unchanged
K7l preserveseemptytbindingn[32m✔0m]
toSalty BINDINGS converts pair
K7l recursivelylprocessesebindingsg[32m✔0m]
toSalty BINDINGS leaves empty unchanged
K7l preserveseemptytbindingsg[32m✔0m]
toSalty PAIR converts tau
K7l recursivelylprocessesetauapairi[32m✔0m]
toSalty PAIR converts formation with voids
K7l expandsdvoidiparametersrintotformationo[32m✔0m]
toSalty PAIR leaves void unchanged
K7l preservesevoidipairi[32m✔0m]
toSalty PAIR leaves lambda unchanged
K7l preserveselambdadpairi[32m✔0m]
toSalty PAIR leaves delta unchanged
K7l preservesedeltatpairi[32m✔0m]
toSalty APP_BINDING converts pair
K7l recursivelylprocesseseapppbindingn[32m✔0m]
toSalty handles nested formations
K7l addsdrhohtotnestedeformationsn[32m✔0m]
toSalty handles complex program
K7l processesefibonaccicexamplel[32m✔0m]
toSalty handles mixed case identifiers
K7l preservesecasesinilabelsl[32m✔0m]
toSalty handles deep dispatch chain
K7l processeseQ.a.b.c.d.[32m✔0m]
toSalty handles multiple expression arguments
K7l convertstalllpositionalaargsg[32m✔0m]
XMIR
XMIR parsing packs
K7l formation-dispatch.yamlm[32m✔0m]
K7l with-phi.yamlm[32m✔0m]
K7l simple.yamlm[32m✔0m]
K7l with-package.yamlm[32m✔0m]
K7l with-duplicate-attribute.yamlm[32m✔0m]
K7l base-dispatch.yamlm[32m✔0m]
K7l application-with-dispatch.yamlm[32m✔0m]
K7l formation.yamlm[32m✔0m]
K7l application.yamlm[32m✔0m]
K7l reverse-dispatch.yamlm[32m✔0m]
K7l atoms.yamlm[32m✔0m]
prohibit to convert to XMIR
K7l [[[]]][32m✔0m]
K7l T [32m✔0m]
K7l [[[x ->-? ]]][32m✔0m]
K7l [[[^ ->-5 ]]][32m✔0m]
K7l Q.x.y.z.[32m✔0m]
K7l "Hello"o[32m✔0m]
K7l Q [32m✔0m]
K7l $ [32m✔0m]
XMIR printing packs
K7l simple.yamlm[32m✔0m]
K7l application.yamlm[32m✔0m]
Yaml
parses yaml rule
K7l simple.yamlm[32m✔0m]
K7l special-attrs-in-condition.yamlm[32m✔0m]
K7l when.yamlm[32m✔0m]
fails on yaml typos
K7l wrong-condition-name.yamlm[32m✔0m]
K7l two-condition-objects.yamlm[32m✔0m]
Finished in 0.6738 seconds
32m836 examples, 0 failures0m
?25hTest suite spec: PASS
Test suite logged to:
/home/r/repo/./dist-newstyle/build/x86_64-linux/ghc-9.6.7/phino-0.0.0.54/t/spec/test/phino-0.0.0.54-spec.log
1 of 1 test suites (1 of 1 test cases) passed.
[__rultor 7c6caa7] set version to 0.0.54
1 file changed, 1 insertion(+), 1 deletion(-)
Wrote tarball sdist to /home/r/repo/dist-newstyle/sdist/phino-0.0.0.54.tar.gz
Uploading dist-newstyle/sdist/phino-0.0.0.54.tar.gz...
Package successfully published. You can now view it at
'https://hackage.haskell.org/package/phino-0.0.0.54'.
Warnings:
- [missing-upper-bounds] On library, these packages miss upper bounds:
- - aeson
- - array
- - binary-ieee754
- - bytestring
- - containers
- - directory
- - filepath
- - megaparsec
- - optparse-applicative
- - random
- - regex-pcre-builtin
- - scientific
- - text
- - transformers
- - utf8-string
- - vector
- - yaml
- Please add them. There is more information at https://pvp.haskell.org/
+ mv /home/r/repo .
+ '[' -n '' ']'
++ whoami
+ sudo chown -R ubuntu repo
+ cd repo
+ git checkout __rultor
Already on '__rultor'
+ git tag 0.0.54 -m '0.0.54: tagged by rultor.com'
+ git reset --hard
HEAD is now at 7c6caa7 set version to 0.0.54
+ git clean -fd
+ git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
+ git branch -D __rultor
Deleted branch __rultor (was 7c6caa7).
+ git push --all origin
Everything up-to-date
+ git push --tags origin
To github.com:objectionary/phino.git
* [new tag] 0.0.54 -> 0.0.54
container 2c4c51b03dfe6b05898f5db8e69d04a475cb0febaa3a85c370e653f79a60d4c0 is dead
Wed Dec 10 18:55:56 UTC 2025