on master help sign in
2025 files changed+65238−781
since splitsnapshots
unifiedsplit
.github/workflows/build_docs.yaml+54 .gitignore+1 app/Main.hs+3−2 docs/.vscode/settings.json+22 docs/bibl.bib+217 docs/default.nix+40 docs/en_pres/img/lsp.png docs/en_pres/img/nixpkgs.png docs/en_pres/pres.md+112 docs/en_pres/pres.pdf docs/localSettings.yaml+7 docs/nix/sources.json+38 docs/nix/sources.nix+171 docs/paper.lhs+1215 docs/pres/img/lsp.png docs/pres/img/nixpkgs.png docs/pres/pres.md+213 docs/pres/pres.pdf docs/pres_2/img/nixpkgs.png docs/pres_2/img/paper.png docs/pres_2/img/ter.png docs/pres_2/pres.md+407 docs/pres_2/pres.pdf docs/project_proposal.tex+131 docs/tech_spec.tex+252 docs/trfrac.sty+193 package.yaml+15−1 paper.pdf src/Control/Monad/Freer/Fresh.hs+21−5 src/Data/Map/MultiKey/Strict.hs+105 src/Data/Map/Shifted/Strict.hs+1−1 src/Tix/Builtins.hs+68 src/Tix/Typechecker.hs+669−403 src/Tix/Types.hs+237−147 stack.yaml+1−1 test/golden/importless/0.1.txt+40 test/golden/importless/0.10.txt+42 test/golden/importless/0.11.1.txt+18 test/golden/importless/0.11.txt+1−1 test/golden/importless/0.12.txt+1−1 test/golden/importless/0.14.1.txt+17 test/golden/importless/0.17.1.txt+17 test/golden/importless/0.18.0.txt+30 test/golden/importless/0.2.txt+55 test/golden/importless/0.20.0.txt+17 test/golden/importless/0.29.txt+42 test/golden/importless/0.3.3.txt+5 test/golden/importless/0.5.1.txt+6 test/golden/importless/0.6.txt+35 test/golden/importless/0.61.txt+62 test/golden/importless/0.7.txt+35 test/golden/importless/0.8.5.txt+33 test/golden/importless/0.9.5.txt+18 test/golden/importless/0.9.6.txt+18 test/golden/importless/0.9.txt+35 test/golden/importless/0.txt+39 test/golden/importless/0.x.txt+41 test/golden/importless/1-default.txt+48 test/golden/importless/1.0.0.txt+43 test/golden/importless/1.0.txt+34 test/golden/importless/1.00.37.txt+34 test/golden/importless/1.10.txt+33 test/golden/importless/1.2.2.txt+42 test/golden/importless/1.2.txt+27 test/golden/importless/1.3.txt+87 test/golden/importless/1.4.txt+16 test/golden/importless/1.5.txt+35 test/golden/importless/1.55.txt+6 test/golden/importless/1.59.txt+7 test/golden/importless/1.6.txt+5−1 test/golden/importless/1.60.txt+7 test/golden/importless/1.65.txt+7 test/golden/importless/1.66.txt+7 test/golden/importless/1.67.txt+12 test/golden/importless/1.68.txt+8 test/golden/importless/1.69.txt+8 test/golden/importless/1.70.txt+8 test/golden/importless/1.71.txt+8 test/golden/importless/1.72.txt+8 test/golden/importless/1.8.5.txt+52 test/golden/importless/1.8.txt+54 test/golden/importless/1.x.txt+36 test/golden/importless/10.5.x.txt+49 test/golden/importless/11.1.txt+49 test/golden/importless/112.01.01.txt+25 test/golden/importless/12.txt+29 test/golden/importless/16.1.2.txt+47 test/golden/importless/17.txt+30 test/golden/importless/1_x.txt+34 test/golden/importless/1compat.txt+8 test/golden/importless/2.0.0.txt+42 test/golden/importless/2.0.txt+31 test/golden/importless/2.1.1.txt+41 test/golden/importless/2.1.txt+5 test/golden/importless/2.10.txt+31 test/golden/importless/2.11.txt+31 test/golden/importless/2.12.txt+30 test/golden/importless/2.13.txt+30 test/golden/importless/2.2.0.txt+35 test/golden/importless/2.2.txt+5 test/golden/importless/2.22.txt+30 test/golden/importless/2.26.txt+32 test/golden/importless/2.4.0.txt+17 test/golden/importless/2.4.txt+79 test/golden/importless/2.5.35.txt+37 test/golden/importless/2.5.txt+6 test/golden/importless/2.6.1.txt+32 test/golden/importless/2.6.13-pre.txt+45 test/golden/importless/2.6.2.txt+31 test/golden/importless/2.64.txt+31 test/golden/importless/2.7-html.txt+10 test/golden/importless/2.7-pdf-a4.txt+10 test/golden/importless/2.7-pdf-letter.txt+10 test/golden/importless/2.7-text.txt+10 test/golden/importless/2.7.7.txt+28 test/golden/importless/2.8.txt+5 test/golden/importless/2.90.txt+42 test/golden/importless/2.txt+34 test/golden/importless/2.x.txt+39 test/golden/importless/2.x.x.txt+47 test/golden/importless/20160331.txt+36 test/golden/importless/25.txt+46 test/golden/importless/26.txt+41 test/golden/importless/2_4.txt+5 test/golden/importless/2bwm.txt+24 test/golden/importless/3.0.txt+5 test/golden/importless/3.0.x.txt+26 test/golden/importless/3.08.0.txt+23 test/golden/importless/3.1.txt+14 test/golden/importless/3.10.0.txt+33 test/golden/importless/3.10.txt+2−1 test/golden/importless/3.11.txt+5 test/golden/importless/3.12.1.txt+42 test/golden/importless/3.12.txt+2−1 test/golden/importless/3.13.txt+2−1 test/golden/importless/3.4.txt+32 test/golden/importless/3.5.txt+8 test/golden/importless/3.6.txt+2−1 test/golden/importless/3.7-html.txt+10 test/golden/importless/3.7-pdf-a4.txt+10 test/golden/importless/3.7-pdf-letter.txt+10 test/golden/importless/3.7-text.txt+10 test/golden/importless/3.7.txt+2−1 test/golden/importless/3.8.txt+2−1 test/golden/importless/3.9.txt+2−1 test/golden/importless/3.txt+33 test/golden/importless/3.x.txt+38 test/golden/importless/38.txt+50 test/golden/importless/3_1.txt+5 test/golden/importless/3dovideo.txt+35 test/golden/importless/4.0.txt+40 test/golden/importless/4.00.1.txt+41 test/golden/importless/4.01.17.txt+35 test/golden/importless/4.1.txt+14 test/golden/importless/4.13a.txt+20 test/golden/importless/4.2.1.txt+32 test/golden/importless/4.2.txt+36 test/golden/importless/4.25.txt+40 test/golden/importless/4.29.txt+33 test/golden/importless/4.3.2.txt+38 test/golden/importless/4.4.txt+46 test/golden/importless/4.9.9.txt+29 test/golden/importless/4.txt+15−1 test/golden/importless/422.txt+26 test/golden/importless/44.0.txt+54 test/golden/importless/5.1.138.txt+20 test/golden/importless/5.2.txt+25 test/golden/importless/5.41.txt+48 test/golden/importless/5.6.txt+33 test/golden/importless/5.6.x.txt+41 test/golden/importless/5.7.txt+40 test/golden/importless/5.7.x.txt+65 test/golden/importless/5.txt+30 test/golden/importless/5.x.txt+33 test/golden/importless/6.3.txt+32 test/golden/importless/6.30.163.46.txt+26 test/golden/importless/6.txt+15−1 test/golden/importless/6.x.txt+27 test/golden/importless/60.txt+53 test/golden/importless/68.txt+60 test/golden/importless/68_sources.txt+3−1 test/golden/importless/6_qt4.txt+39 test/golden/importless/7.3.txt+45 test/golden/importless/7.6.6.txt+46 test/golden/importless/7.x.txt+28 test/golden/importless/78.txt+60 test/golden/importless/8.0.x.txt+56 test/golden/importless/8.5.txt+7 test/golden/importless/8.6.txt+11 test/golden/importless/825_40_1.txt+6−1 test/golden/importless/8_0.txt+11 test/golden/importless/9.2.txt+43 test/golden/importless/9.x.txt+67 test/golden/importless/Cargo.txt+55 test/golden/importless/LASzip2.txt+24 test/golden/importless/Prelude.txt+27 test/golden/importless/R16B02-basho.txt+34 test/golden/importless/R18.txt+5−1 test/golden/importless/R19.txt+6−1 test/golden/importless/R20.txt+4−1 test/golden/importless/R21.txt+4−1 test/golden/importless/_3bmd.txt+16 test/golden/importless/abnf.txt+16 test/golden/importless/account-service-util.txt+28 test/golden/importless/accountsservice.txt+32 test/golden/importless/acpilight.txt+14 test/golden/importless/adb.txt+30 test/golden/importless/addons.txt+478−1 test/golden/importless/advanced.txt+38 test/golden/importless/afterstep.txt+24 test/golden/importless/agent.txt+33 test/golden/importless/aggregator.txt+8−1 test/golden/importless/ais.txt+43 test/golden/importless/akonadi-calendar.txt+23 test/golden/importless/akonadi-contacts.txt+28 test/golden/importless/akonadi-mime.txt+21 test/golden/importless/akonadi-notes.txt+21 test/golden/importless/akonadi-search.txt+26 test/golden/importless/akonadiconsole.txt+31 test/golden/importless/akregator.txt+32 test/golden/importless/alexandria.txt+11 test/golden/importless/alsamixer.app.txt+31 test/golden/importless/alternatives-plugin.txt+29 test/golden/importless/amazon-init.txt+17−1 test/golden/importless/amazon-options.txt+13 test/golden/importless/amd-microcode.txt+16 test/golden/importless/amd.txt+19 test/golden/importless/amdgpu-pro.txt+55 test/golden/importless/amdgpu.txt+10 test/golden/importless/anaphora.txt+12 test/golden/importless/ant-bloody.txt+29 test/golden/importless/ant-dracula.txt+29 test/golden/importless/ant-nebula.txt+29 test/golden/importless/ant.txt+29 test/golden/importless/apcupsd-exporter.txt+31 test/golden/importless/apcupsd.txt+15 test/golden/importless/apeclex.txt+13 test/golden/importless/apiextractor.txt+32 test/golden/importless/appdaemon.txt+71 test/golden/importless/appliance.txt+10−1 test/golden/importless/appmenu-gtk-module.txt+27 test/golden/importless/appstream.txt+11 test/golden/importless/archive-version.txt+8 test/golden/importless/array-utils.txt+11 test/golden/importless/array.txt+23 test/golden/importless/asdf-finalizers.txt+11−1 test/golden/importless/asdf-package-system.txt+11 test/golden/importless/asdf-system-connections.txt+11 test/golden/importless/aspell-with-dicts.txt+8−1 test/golden/importless/assets.txt+29 test/golden/importless/async-rpc-kernel.txt+35 test/golden/importless/ati.txt+28 test/golden/importless/atop.txt+20 test/golden/importless/attica.txt+14 test/golden/importless/attrsOf-conditional-check.txt+9 test/golden/importless/auditd.txt+32 test/golden/importless/auth.txt+33 test/golden/importless/autofig.txt+6 test/golden/importless/automake-1.11.x.txt+34 test/golden/importless/automake-1.15.x.txt+35 test/golden/importless/automake-1.16.x.txt+34 test/golden/importless/autorandr.txt+42 test/golden/importless/autostart.txt+19 test/golden/importless/aws-s3-exporter.txt+27 test/golden/importless/aws-s3-exporter_deps.txt+4−1 test/golden/importless/azure-agent.txt+104 test/golden/importless/azure-bootstrap-blobs.txt+1−1 test/golden/importless/azure-images.txt+1 test/golden/importless/b43.txt+19 test/golden/importless/babel-streams.txt+17 test/golden/importless/babel.txt+15 test/golden/importless/backend.txt+53 test/golden/importless/baloo-widgets.txt+21 test/golden/importless/baloo.txt+26 test/golden/importless/bamf.txt+20 test/golden/importless/bandwhich.txt+26 test/golden/importless/base.txt+41 test/golden/importless/bash-4.4-patches.txt+1−1 test/golden/importless/bash-5.0-patches.txt+1−1 test/golden/importless/bash-my-aws.txt+17 test/golden/importless/bash-tools-test.txt+9−1 test/golden/importless/bcache.txt+6 test/golden/importless/bcachefs.txt+26 test/golden/importless/bcc-git.txt+27 test/golden/importless/bcc.txt+20 test/golden/importless/bean-add.txt+20 test/golden/importless/beautifulsoup.txt+12 test/golden/importless/ber-metaocaml.txt+53 test/golden/importless/berry.txt+24 test/golden/importless/beta.txt+42 test/golden/importless/beta_sources.txt+3−1 test/golden/importless/bg.txt+41 test/golden/importless/bi.txt+27 test/golden/importless/bifunctors.txt+13 test/golden/importless/bin.txt+27 test/golden/importless/bin_prot.txt+26 test/golden/importless/binary-hashes.txt+5−1 test/golden/importless/binary-tarball.txt+25 test/golden/importless/binary.txt+34 test/golden/importless/bintools.txt+8 test/golden/importless/bitcoin-knots.txt+41 test/golden/importless/bitwig-studio1.txt+71 test/golden/importless/bitwig-studio2.txt+12 test/golden/importless/bitwig-studio3.txt+21 test/golden/importless/blackbird.txt+11 test/golden/importless/blackbox-exporter.txt+37 test/golden/importless/bladeRF.txt+19 test/golden/importless/blivet.txt+39 test/golden/importless/blocks-gaps.txt+42 test/golden/importless/blocks.txt+30 test/golden/importless/bloodspilot-client.txt+36 test/golden/importless/bloodspilot-server.txt+25 test/golden/importless/bluedevil.txt+19−1 test/golden/importless/blueman.txt+18 test/golden/importless/bluez-qt.txt+16 test/golden/importless/bolt.txt+22 test/golden/importless/bomber.txt+29 test/golden/importless/boot.txt+27 test/golden/importless/bootstrap.txt+35 test/golden/importless/bordeaux-threads.txt+16 test/golden/importless/bovo.txt+29 test/golden/importless/bower-packages.txt+5−1 test/golden/importless/breeze-grub.txt+1−1 test/golden/importless/breeze-gtk.txt+18 test/golden/importless/breeze-icons.txt+19 test/golden/importless/breeze-qt5.txt+26−1 test/golden/importless/brillo.txt+17 test/golden/importless/brltty.txt+45 test/golden/importless/broadcom-43xx.txt+1−1 test/golden/importless/browser.txt+34 test/golden/importless/browserpass.txt+27 test/golden/importless/bson.txt+21 test/golden/importless/build-rebar3.txt+61 test/golden/importless/build-skaware-package.txt+46 test/golden/importless/build-solution.txt+25 test/golden/importless/build-tools.txt+27 test/golden/importless/build.txt+51 test/golden/importless/buildOcamlJane.txt+27−1 test/golden/importless/builder.txt+24 test/golden/importless/buildnode-xhtml.txt+33 test/golden/importless/buildnode.txt+35 test/golden/importless/builds.txt+43 test/golden/importless/bytes.txt+13 test/golden/importless/caffeine-plus.txt+34 test/golden/importless/calendarsupport.txt+27 test/golden/importless/calibre-server.txt+42 test/golden/importless/camlp4.txt+25 test/golden/importless/canto-daemon.txt+28 test/golden/importless/canvas.txt+14 test/golden/importless/caps2esc.txt+29 test/golden/importless/carnix.txt+209 test/golden/importless/case.kak.txt+28 test/golden/importless/categories.txt+13 test/golden/importless/caveman.txt+80 test/golden/importless/cde.txt+69 test/golden/importless/cdn-deps.txt+1759−1 test/golden/importless/cffi-grovel.txt+18 test/golden/importless/cffi-toolchain.txt+17 test/golden/importless/cffi.txt+20 test/golden/importless/chacha.txt+42 test/golden/importless/channel.txt+10 test/golden/importless/check-plugin.txt+36 test/golden/importless/check_ssl_cert.txt+29 test/golden/importless/checkup.txt+33 test/golden/importless/chipz.txt+11 test/golden/importless/chrome-gnome-shell.txt+34 test/golden/importless/chrootenv.txt+62 test/golden/importless/chunga.txt+14 test/golden/importless/circular-streams.txt+22 test/golden/importless/cl-aa.txt+11 test/golden/importless/cl-annot.txt+11 test/golden/importless/cl-anonfun.txt+11 test/golden/importless/cl-ansi-text.txt+17 test/golden/importless/cl-async-repl.txt+29 test/golden/importless/cl-async-ssl.txt+29 test/golden/importless/cl-async.txt+28 test/golden/importless/cl-base64.txt+16 test/golden/importless/cl-change-case.txt+17 test/golden/importless/cl-cli.txt+14 test/golden/importless/cl-colors.txt+18 test/golden/importless/cl-containers.txt+17 test/golden/importless/cl-cookie.txt+24 test/golden/importless/cl-css.txt+11 test/golden/importless/cl-csv.txt+22 test/golden/importless/cl-dbi.txt+23 test/golden/importless/cl-emb.txt+11 test/golden/importless/cl-fad.txt+18 test/golden/importless/cl-fuse-meta-fs.txt+27 test/golden/importless/cl-fuse.txt+24 test/golden/importless/cl-hooks.txt+20 test/golden/importless/cl-html-parse.txt+11 test/golden/importless/cl-html5-parser.txt+17 test/golden/importless/cl-interpol.txt+18 test/golden/importless/cl-jpeg.txt+11 test/golden/importless/cl-json.txt+12 test/golden/importless/cl-l10n-cldr.txt+11 test/golden/importless/cl-l10n.txt+32 test/golden/importless/cl-libuv.txt+19 test/golden/importless/cl-log.txt+11−1 test/golden/importless/cl-markdown.txt+20 test/golden/importless/cl-markup.txt+11 test/golden/importless/cl-mysql.txt+17 test/golden/importless/cl-paths-ttf.txt+15 test/golden/importless/cl-paths.txt+11 test/golden/importless/cl-pdf.txt+16 test/golden/importless/cl-postgres.txt+18 test/golden/importless/cl-ppcre-template.txt+15 test/golden/importless/cl-ppcre-unicode.txt+18 test/golden/importless/cl-ppcre.txt+15 test/golden/importless/cl-prevalence.txt+15 test/golden/importless/cl-project.txt+25 test/golden/importless/cl-protobufs.txt+18 test/golden/importless/cl-reexport.txt+11 test/golden/importless/cl-smtp.txt+25 test/golden/importless/cl-store.txt+12 test/golden/importless/cl-syntax-annot.txt+18 test/golden/importless/cl-syntax-anonfun.txt+17 test/golden/importless/cl-syntax-markup.txt+17 test/golden/importless/cl-syntax.txt+15 test/golden/importless/cl-test-more.txt+20 test/golden/importless/cl-typesetting.txt+16 test/golden/importless/cl-unicode.txt+16 test/golden/importless/cl-unification.txt+11 test/golden/importless/cl-utilities.txt+11 test/golden/importless/cl-vectors.txt+15 test/golden/importless/cl-who.txt+15 test/golden/importless/cl-xmlspam.txt+21 test/golden/importless/cl_plus_ssl.txt+22 test/golden/importless/clack-handler-hunchentoot.txt+33 test/golden/importless/clack-socket.txt+11 test/golden/importless/clack-test.txt+66 test/golden/importless/clack-v1-compat.txt+70 test/golden/importless/clack.txt+22 test/golden/importless/clean-packaging.txt+8 test/golden/importless/clex.txt+23 test/golden/importless/clfswm.txt+24 test/golden/importless/clickhouse.txt+53 test/golden/importless/clickshare.txt+26 test/golden/importless/client-ip-echo.txt+20 test/golden/importless/clientlib.txt+33 test/golden/importless/clightd.txt+54 test/golden/importless/clightning.txt+49 test/golden/importless/clingo.txt+27 test/golden/importless/clipmenu.txt+35 test/golden/importless/clippy.txt+44 test/golden/importless/clooj.txt+21 test/golden/importless/closer-mop.txt+11 test/golden/importless/closure-common.txt+17 test/golden/importless/closure-html.txt+19 test/golden/importless/clprover.txt+25 test/golden/importless/clsql-postgresql-socket.txt+16 test/golden/importless/clsql-postgresql.txt+16 test/golden/importless/clsql-sqlite3.txt+16 test/golden/importless/clsql-uffi.txt+15 test/golden/importless/clsql.txt+11 test/golden/importless/clss.txt+17 test/golden/importless/clx-truetype.txt+25 test/golden/importless/clx.txt+12 test/golden/importless/cmake-modules.txt+23 test/golden/importless/coda.txt+24 test/golden/importless/cohttp.txt+31 test/golden/importless/collections.txt+69 test/golden/importless/collectors.txt+19 test/golden/importless/colord.txt+23 test/golden/importless/combinators.txt+22 test/golden/importless/command-line-arguments.txt+11 test/golden/importless/common-overrides.txt+11 test/golden/importless/common-path.txt+18 test/golden/importless/common.txt+38 test/golden/importless/community-edition.txt+44 test/golden/importless/community.txt+88 test/golden/importless/comonad.txt+23 test/golden/importless/compiler-rt.txt+55 test/golden/importless/compiler.txt+35 test/golden/importless/component-packages.txt+1061 test/golden/importless/compose-xcodewrapper.txt+5 test/golden/importless/composition.txt+25 test/golden/importless/compyte.txt+7−1 test/golden/importless/condensed.txt+25 test/golden/importless/conf.txt+9 test/golden/importless/config.txt+7 test/golden/importless/configuration-ghc-8.4.x.txt+86 test/golden/importless/configuration-ghc-8.6.x.txt+117 test/golden/importless/configuration-ghc-head.txt+82 test/golden/importless/configuration-tensorflow.txt+30 test/golden/importless/configured-ghcjs-src.txt+17 test/golden/importless/console.txt+27 test/golden/importless/consul-exporter.txt+28 test/golden/importless/container-config.txt+21 test/golden/importless/containerd-shim.txt+28 test/golden/importless/containers.txt+26 test/golden/importless/contrib.txt+62 test/golden/importless/control.txt+41 test/golden/importless/convert.txt+29 test/golden/importless/core_bench.txt+25 test/golden/importless/couchpotato.txt+43 test/golden/importless/cpp-test.txt+14 test/golden/importless/criu.txt+23 test/golden/importless/cryptpad.txt+43 test/golden/importless/cryptsetup.txt+38 test/golden/importless/crystal2nix.txt+18 test/golden/importless/css-lite.txt+11 test/golden/importless/css-selectors-simple-tree.txt+37 test/golden/importless/css-selectors-stp.txt+38 test/golden/importless/css-selectors.txt+37 test/golden/importless/cstore_fdw.txt+32 test/golden/importless/cstruct.txt+22 test/golden/importless/cube.txt+23 test/golden/importless/cups-exporter.txt+37 test/golden/importless/cups-pk-helper.txt+35 test/golden/importless/curaengine.txt+36 test/golden/importless/curry-base.txt+26 test/golden/importless/curry-frontend.txt+35 test/golden/importless/cursive.txt+47 test/golden/importless/cutter.txt+37 test/golden/importless/cwm.txt+24 test/golden/importless/cxml-stp.txt+27 test/golden/importless/cxml.txt+20 test/golden/importless/dante.txt+48 test/golden/importless/darwin.txt+32 test/golden/importless/das_watchdog.txt+31 test/golden/importless/dash.txt+43 test/golden/importless/dashpay.txt+48 test/golden/importless/data-api.txt+24 test/golden/importless/data.txt+27 test/golden/importless/datadog-agent-deps.txt+4−1 test/golden/importless/datadog-process-agent-deps.txt+4−1 test/golden/importless/db3.txt+11−1 test/golden/importless/dbd-mysql.txt+27 test/golden/importless/dbd-postgres.txt+27 test/golden/importless/dbd-sqlite3.txt+30 test/golden/importless/dbi.txt+22 test/golden/importless/dbus-sharp-1.0.txt+25 test/golden/importless/dbus-sharp-glib-1.0.txt+26 test/golden/importless/dconf2nix.txt+23 test/golden/importless/dcrd.txt+26 test/golden/importless/dcrwallet.txt+26 test/golden/importless/dcw.txt+22 test/golden/importless/debian-build.txt+29 test/golden/importless/debian-patches.txt+1−1 test/golden/importless/debug-info.txt+18 test/golden/importless/declare-attrsOf.txt+8 test/golden/importless/declare-coerced-value-unsound.txt+11 test/golden/importless/declare-either.txt+9 test/golden/importless/declare-enable-nested.txt+8 test/golden/importless/declare-enable.txt+8 test/golden/importless/declare-int-between-value.txt+8 test/golden/importless/declare-int-positive-value-nested.txt+8 test/golden/importless/declare-int-positive-value.txt+8 test/golden/importless/declare-int-unsigned-value.txt+8 test/golden/importless/declare-lazyAttrsOf.txt+9 test/golden/importless/declare-oneOf.txt+11 test/golden/importless/declare-submoduleWith-path.txt+7 test/golden/importless/declare-submoduleWith-special.txt+17 test/golden/importless/default-crate-overrides.txt+64 test/golden/importless/define-_module-args-custom.txt+1−1 test/golden/importless/define-attrsOfSub-bar-enable.txt+1−1 test/golden/importless/define-attrsOfSub-bar.txt+1−1 test/golden/importless/define-attrsOfSub-foo-enable-force.txt+3 test/golden/importless/define-attrsOfSub-foo-enable-if.txt+3 test/golden/importless/define-attrsOfSub-foo-enable.txt+1−1 test/golden/importless/define-attrsOfSub-foo-force-enable.txt+3 test/golden/importless/define-attrsOfSub-foo-if-enable.txt+7 test/golden/importless/define-attrsOfSub-foo.txt+1−1 test/golden/importless/define-attrsOfSub-force-foo-enable.txt+3 test/golden/importless/define-attrsOfSub-if-foo-enable.txt+7 test/golden/importless/define-enable-force.txt+1 test/golden/importless/define-enable-with-custom-arg.txt+1−1 test/golden/importless/define-enable.txt+1−1 test/golden/importless/define-force-attrsOfSub-foo-enable.txt+3 test/golden/importless/define-force-enable.txt+1 test/golden/importless/define-if-attrsOfSub-foo-enable.txt+7 test/golden/importless/define-module-check.txt+1−1 test/golden/importless/define-option-dependently-nested.txt+10 test/golden/importless/define-option-dependently.txt+8 test/golden/importless/define-submoduleWith-noshorthand.txt+1−1 test/golden/importless/define-submoduleWith-shorthand.txt+1−1 test/golden/importless/define-value-int-negative.txt+1−1 test/golden/importless/define-value-int-positive.txt+1−1 test/golden/importless/define-value-int-zero.txt+1−1 test/golden/importless/define-value-list.txt+1−1 test/golden/importless/define-value-string-arbitrary.txt+1−1 test/golden/importless/define-value-string-bigint.txt+1−1 test/golden/importless/define-value-string.txt+1−1 test/golden/importless/dep-overrides.txt+21 test/golden/importless/deps.txt+4−1 test/golden/importless/derive.txt+26 test/golden/importless/dero.txt+38 test/golden/importless/descncrunch.txt+26 test/golden/importless/desktop_items.txt+15−1 test/golden/importless/detected.txt+5 test/golden/importless/dev.txt+16 test/golden/importless/devedition_sources.txt+3−1 test/golden/importless/devmon.txt+31 test/golden/importless/dexador.txt+43 test/golden/importless/dfu-util.txt+29 test/golden/importless/dhall-kubernetes.txt+20 test/golden/importless/dhall-packages.txt+16 test/golden/importless/dict.txt+26 test/golden/importless/dictd-db.txt+41 test/golden/importless/dictd-wiktionary.txt+28 test/golden/importless/dictd-wordnet.txt+21 test/golden/importless/digest.txt+36 test/golden/importless/digimend.txt+23 test/golden/importless/disable-bar.txt+1−1 test/golden/importless/disable-declare-enable.txt+1−1 test/golden/importless/disable-define-enable.txt+1−1 test/golden/importless/disable-enable-modules.txt+1−1 test/golden/importless/disable-foo.txt+1−1 test/golden/importless/discover.txt+30−1 test/golden/importless/dispatch.txt+32 test/golden/importless/displaylink.txt+42 test/golden/importless/dissect.txt+11 test/golden/importless/django-crispy-forms.txt+29 test/golden/importless/django-filter.txt+33 test/golden/importless/dleyna-renderer.txt+19 test/golden/importless/dleyna-server.txt+19 test/golden/importless/dmraid.txt+21 test/golden/importless/dnsmasq-exporter.txt+30 test/golden/importless/do-agent.txt+24 test/golden/importless/do-urlencode.txt+16 test/golden/importless/documentation-utils.txt+14 test/golden/importless/dogecoin.txt+49 test/golden/importless/dolphin-plugins.txt+19 test/golden/importless/dolphin.txt+46 test/golden/importless/dom.txt+27 test/golden/importless/dotty-bare.txt+36 test/golden/importless/dotty.txt+13 test/golden/importless/dovecot-exporter-deps.txt+4−1 test/golden/importless/dovecot-exporter.txt+29 test/golden/importless/download.txt+7−1 test/golden/importless/dragon.txt+43 test/golden/importless/drakma.txt+29 test/golden/importless/dsseries.txt+25 test/golden/importless/dust.txt+28 test/golden/importless/dvtm.txt+39 test/golden/importless/dwm.txt+24 test/golden/importless/dynamic-classes.txt+14 test/golden/importless/dynamic-workspaces.txt+35 test/golden/importless/dynamic.txt+34 test/golden/importless/eagle.txt+57 test/golden/importless/easyfocus.txt+40 test/golden/importless/ec2-amis.txt+257 test/golden/importless/ec2-metadata-fetcher.txt+1−1 test/golden/importless/ecryptfs.txt+21 test/golden/importless/edit.txt+31 test/golden/importless/editor.txt+38 test/golden/importless/editors.txt+58 test/golden/importless/egg2nix.txt+30 test/golden/importless/eggs.txt+14 test/golden/importless/electron.txt+27 test/golden/importless/electronplayer.txt+26 test/golden/importless/element-desktop.txt+48 test/golden/importless/elisa.txt+27 test/golden/importless/elm-format.txt+46 test/golden/importless/elm-instrument.txt+48 test/golden/importless/elm-json.txt+34 test/golden/importless/elm-srcs.txt+15−1 test/golden/importless/elm.txt+51 test/golden/importless/elmi-to-json.txt+34 test/golden/importless/emergency-mode.txt+14 test/golden/importless/emscripten-packages.txt+49 test/golden/importless/emulate-app.txt+30 test/golden/importless/emulator.txt+47 test/golden/importless/engine.txt+37 test/golden/importless/engines.txt+20 test/golden/importless/enterprise-edition.txt+55 test/golden/importless/env-locations.txt+19 test/golden/importless/environment.txt+33 test/golden/importless/eos.txt+12−1 test/golden/importless/epmd.txt+37 test/golden/importless/espanso.txt+38 test/golden/importless/esrap-peg.txt+17 test/golden/importless/esrap.txt+16 test/golden/importless/esxi.txt+27 test/golden/importless/eternal.txt+26 test/golden/importless/ethabi.txt+27 test/golden/importless/eventviews.txt+23 test/golden/importless/evilwm.txt+24 test/golden/importless/evolution-data-server.txt+31 test/golden/importless/exfat.txt+11 test/golden/importless/ext.txt+10 test/golden/importless/external-program.txt+16 test/golden/importless/extlinux-conf-builder.txt+9 test/golden/importless/extra-target-flags.txt+14 test/golden/importless/extra.txt+37 test/golden/importless/extract-nuget.txt+16 test/golden/importless/extras.txt+59 test/golden/importless/facetimehd.txt+30 test/golden/importless/fancontrol.txt+34 test/golden/importless/fare-quasiquote-extras.txt+21 test/golden/importless/fare-quasiquote-optima.txt+18 test/golden/importless/fare-quasiquote-readtable.txt+16 test/golden/importless/fare-quasiquote.txt+11 test/golden/importless/fare-utils.txt+11 test/golden/importless/farrp.txt+25 test/golden/importless/fast-http.txt+22 test/golden/importless/fast-io.txt+21 test/golden/importless/faust1.txt+76 test/golden/importless/faust2.txt+102 test/golden/importless/faust2alqt.txt+4 test/golden/importless/faust2alsa.txt+15 test/golden/importless/faust2csound.txt+5 test/golden/importless/faust2firefox.txt+5 test/golden/importless/faust2jack.txt+13 test/golden/importless/faust2jackrust.txt+14 test/golden/importless/faust2jaqt.txt+13 test/golden/importless/faust2ladspa.txt+4 test/golden/importless/faust2lv2.txt+4 test/golden/importless/faustlive.txt+46 test/golden/importless/faxq-default.txt+7−1 test/golden/importless/fcitx-configtool.txt+32 test/golden/importless/fcitx-qt5.txt+34 test/golden/importless/fcitx.txt+46 test/golden/importless/fetch-hex.txt+14 test/golden/importless/fetch-rebar-deps.txt+19 test/golden/importless/fetchNodeModules.txt+15 test/golden/importless/fetchers.txt+1−1 test/golden/importless/ffmpeg-codecs.txt+25 test/golden/importless/ffmpegthumbs.txt+20 test/golden/importless/fiasco.txt+16 test/golden/importless/fieldslib.txt+26 test/golden/importless/filelight.txt+25 test/golden/importless/filters.txt+49 test/golden/importless/firejail.txt+32 test/golden/importless/fiveam.txt+17 test/golden/importless/fixed-points.txt+15 test/golden/importless/flask-oldsessions.txt+29 test/golden/importless/flatpak-builder.txt+17 test/golden/importless/flatpak.txt+48 test/golden/importless/flexi-streams.txt+15 test/golden/importless/fluxbox.txt+24 test/golden/importless/fontdir.txt+14 test/golden/importless/fontforge-fonttools.txt+1 test/golden/importless/fonts.txt+11 test/golden/importless/form-fiddle.txt+15 test/golden/importless/fox-1.6.txt+46 test/golden/importless/frameworkintegration.txt+26 test/golden/importless/frameworks.txt+161 test/golden/importless/free.txt+24 test/golden/importless/freeform-attrsOf.txt+8 test/golden/importless/freeform-lazyAttrsOf.txt+8 test/golden/importless/freeform-nested.txt+7 test/golden/importless/freeform-str-dep-unstr.txt+11 test/golden/importless/freeform-unstr-dep-str.txt+11 test/golden/importless/freeoffice.txt+15 test/golden/importless/freetds.txt+27 test/golden/importless/freicoin.txt+40 test/golden/importless/fritzbox-exporter-deps.txt+4−1 test/golden/importless/frontends.txt+36 test/golden/importless/frostwire-bin.txt+28 test/golden/importless/fs.txt+23 test/golden/importless/fset.txt+15 test/golden/importless/fsm.txt+23 test/golden/importless/fstrim.txt+30 test/golden/importless/full.txt+31 test/golden/importless/fuseki-binary.txt+33 test/golden/importless/fvwm.txt+32 test/golden/importless/game.txt+29 test/golden/importless/gaps.txt+34 test/golden/importless/garbage-pools.txt+11−1 test/golden/importless/garmindev.txt+29 test/golden/importless/gateone.txt+62 test/golden/importless/gawk-with-extensions.txt+7−1 test/golden/importless/gc.txt+37 test/golden/importless/gcab.txt+2 test/golden/importless/gcc-support.txt+22 test/golden/importless/gce-images.txt+8 test/golden/importless/gdal-1_11.txt+49 test/golden/importless/gdk-pixbuf.txt+25 test/golden/importless/gdomap.txt+27 test/golden/importless/geary.txt+31 test/golden/importless/gemset-beta.txt+229−1 test/golden/importless/gemset.txt+537−1 test/golden/importless/gemset_libvirt.txt+98−1 test/golden/importless/generations-dir.txt+45 test/golden/importless/generatorrunner.txt+31 test/golden/importless/generic-builder.txt+36 test/golden/importless/generic-stack-builder.txt+45 test/golden/importless/generic-v3.txt+73 test/golden/importless/generic.txt+42 test/golden/importless/genphrase.txt+31 test/golden/importless/geogebra6.txt+35 test/golden/importless/gerbil-crypto.txt+43 test/golden/importless/gerbil-ethereum.txt+44 test/golden/importless/gerbil-persist.txt+43 test/golden/importless/gerbil-poo.txt+42 test/golden/importless/gerbil-utils.txt+36 test/golden/importless/ghcjs-base.txt+44 test/golden/importless/ghostscript.txt+12 test/golden/importless/gitlab-ci-pipelines-exporter.txt+27 test/golden/importless/gitlab-ci-pipelines-exporter_deps.txt+4−1 test/golden/importless/gjs.txt+6 test/golden/importless/glfw.txt+31 test/golden/importless/glib-networking.txt+26 test/golden/importless/glib-testing.txt+6 test/golden/importless/global-vars.txt+11 test/golden/importless/gmusic.txt+27 test/golden/importless/gnome-initial-setup.txt+41 test/golden/importless/gnome-keyring.txt+37 test/golden/importless/gnome-online-accounts.txt+27 test/golden/importless/gnome-online-miners.txt+29 test/golden/importless/gnome-photos.txt+31 test/golden/importless/gnome-remote-desktop.txt+24 test/golden/importless/gnome-user-share.txt+24 test/golden/importless/gnu.txt+33 test/golden/importless/go-ethereum.txt+37 test/golden/importless/go-shadowsocks2.txt+34 test/golden/importless/go.d.plugin.txt+27 test/golden/importless/goa-plugin.txt+31 test/golden/importless/google_oslogin.txt+45 test/golden/importless/gp2c.txt+28 test/golden/importless/gphoto2.txt+27 test/golden/importless/gphotofs.txt+34 test/golden/importless/gpio-utils.txt+24 test/golden/importless/gppcscconnectionplugin.txt+30 test/golden/importless/granatier.txt+28 test/golden/importless/graphene.txt+2 test/golden/importless/graphical.txt+13 test/golden/importless/graphite2.txt+32 test/golden/importless/graphql.txt+23 test/golden/importless/graphviz-2.0.txt+37 test/golden/importless/graphviz.txt+26 test/golden/importless/greenclip.txt+36 test/golden/importless/grub1.patches.txt+1−1 test/golden/importless/grub2-theme.txt+1−1 test/golden/importless/gshhg.txt+22 test/golden/importless/gsl-1_16.txt+30 test/golden/importless/gsm.txt+43 test/golden/importless/gstreamer.txt+49 test/golden/importless/gtk-greeter.txt+43 test/golden/importless/gtk-icon-cache.txt+16 test/golden/importless/gtk2.txt+41 test/golden/importless/gtkspell3.txt+21 test/golden/importless/gui.txt+54 test/golden/importless/gwenview.txt+35 test/golden/importless/hamster.txt+23 test/golden/importless/hamt.txt+26 test/golden/importless/hdaps.txt+18 test/golden/importless/headerbar-gtk3.txt+39 test/golden/importless/headers.txt+7 test/golden/importless/headless.txt+17 test/golden/importless/hello-world-container.txt+29 test/golden/importless/helper.txt+31 test/golden/importless/helpers.txt+1−1 test/golden/importless/herbstluftwm.txt+34 test/golden/importless/hezarfen.txt+23 test/golden/importless/hfaxd-default.txt+1−1 test/golden/importless/hg.txt+33 test/golden/importless/hidepid.txt+31 test/golden/importless/hls-ghcide.txt+84 test/golden/importless/hpsa.txt+45 test/golden/importless/hrtime.txt+26 test/golden/importless/html.txt+28 test/golden/importless/http-body.txt+37 test/golden/importless/http-getter.txt+24 test/golden/importless/http.txt+29 test/golden/importless/http4idris.txt+25 test/golden/importless/hu_dot_dwim_dot_asdf.txt+11 test/golden/importless/hu_dot_dwim_dot_stefil.txt+16 test/golden/importless/hunchentoot.txt+34 test/golden/importless/hyperkit.txt+37 test/golden/importless/hyperv-guest.txt+36 test/golden/importless/i2p.txt+46 test/golden/importless/i3ipc-glib.txt+38 test/golden/importless/iaia.txt+25 test/golden/importless/ibus-qt.txt+35 test/golden/importless/ibus.txt+24 test/golden/importless/icewm.txt+24 test/golden/importless/icons.txt+27 test/golden/importless/ide.txt+39 test/golden/importless/idle.txt+41 test/golden/importless/idna.txt+14 test/golden/importless/idris-wrapper.txt+17 test/golden/importless/idrishighlighter.txt+27 test/golden/importless/idrisscript.txt+23 test/golden/importless/ieee-floats.txt+12 test/golden/importless/iftop.txt+18 test/golden/importless/iio.txt+22 test/golden/importless/illum.txt+25 test/golden/importless/imapfilter.txt+31 test/golden/importless/impure-deps.txt+51 test/golden/importless/incidenceeditor.txt+25 test/golden/importless/indents.txt+19 test/golden/importless/info.txt+17−1 test/golden/importless/infobar.txt+35 test/golden/importless/init-script.txt+21 test/golden/importless/install-crate.txt+1−1 test/golden/importless/integrations-core.txt+29 test/golden/importless/intel-2200bg.txt+13 test/golden/importless/intel-microcode.txt+18 test/golden/importless/intel.txt+31 test/golden/importless/introspect-environment.txt+11 test/golden/importless/iolib.txt+27 test/golden/importless/iolib_dot_asdf.txt+11 test/golden/importless/iolib_dot_base.txt+18 test/golden/importless/iolib_dot_common-lisp.txt+16 test/golden/importless/iolib_dot_conf.txt+15 test/golden/importless/iolib_dot_grovel.txt+23 test/golden/importless/iotop.txt+16 test/golden/importless/ipadic.txt+15 test/golden/importless/ipkgparser.txt+17 test/golden/importless/iprange.txt+20 test/golden/importless/iproute2.txt+38 test/golden/importless/ironclad.txt+18 test/golden/importless/irqbalance.txt+18 test/golden/importless/iterate.txt+12 test/golden/importless/iucode-tool.txt+28 test/golden/importless/iwd.txt+29 test/golden/importless/ixf.txt+23 test/golden/importless/janePackage.txt+21 test/golden/importless/janePackage_0_12.txt+20 test/golden/importless/janePackage_0_13.txt+20 test/golden/importless/java-test.txt+21 test/golden/importless/java.txt+20 test/golden/importless/jdk-darwin-base.txt+33 test/golden/importless/jdk11-linux.txt+25 test/golden/importless/jdk14-linux.txt+25 test/golden/importless/jgrpp.txt+7 test/golden/importless/jheiling-extras.txt+25 test/golden/importless/jheiling-js.txt+27 test/golden/importless/jmx-httpserver.txt+32 test/golden/importless/jonathan.txt+29 test/golden/importless/js-build-tools.txt+27 test/golden/importless/js.txt+26 test/golden/importless/json-exporter.txt+31 test/golden/importless/json-exporter_deps.txt+4−1 test/golden/importless/json.txt+15 test/golden/importless/jwm-settings-manager.txt+42 test/golden/importless/jwm.txt+24 test/golden/importless/k3b.txt+59 test/golden/importless/kactivities-stats.txt+18 test/golden/importless/kactivities.txt+20 test/golden/importless/kactivitymanagerd.txt+16−1 test/golden/importless/kaddressbook.txt+35 test/golden/importless/kak-ansi.txt+28 test/golden/importless/kak-auto-pairs.txt+28 test/golden/importless/kak-buffers.txt+28 test/golden/importless/kak-fzf.txt+33 test/golden/importless/kak-plumb.txt+29 test/golden/importless/kak-powerline.txt+30 test/golden/importless/kak-prelude.txt+28 test/golden/importless/kak-vertical-selection.txt+28 test/golden/importless/kalarm.txt+53 test/golden/importless/kalarmcal.txt+22 test/golden/importless/kalzium.txt+34 test/golden/importless/kapidox.txt+13 test/golden/importless/kapman.txt+29 test/golden/importless/kapptemplate.txt+29 test/golden/importless/karchive.txt+18 test/golden/importless/kate.txt+45 test/golden/importless/katomic.txt+30 test/golden/importless/kbdlight.txt+17 test/golden/importless/kblackbox.txt+29 test/golden/importless/kblocks.txt+29 test/golden/importless/kbookmarks.txt+23 test/golden/importless/kbounce.txt+30 test/golden/importless/kbreakout.txt+20 test/golden/importless/kcachegrind.txt+26 test/golden/importless/kcalc.txt+28 test/golden/importless/kcalendarcore.txt+14 test/golden/importless/kcalutils.txt+28 test/golden/importless/kcharselect.txt+27 test/golden/importless/kcodecs.txt+17 test/golden/importless/kcolorchooser.txt+20 test/golden/importless/kcompletion.txt+18 test/golden/importless/kconfig.txt+15 test/golden/importless/kcontacts.txt+18 test/golden/importless/kcoreaddons.txt+16 test/golden/importless/kcrash.txt+18 test/golden/importless/kdav.txt+22 test/golden/importless/kdbusaddons.txt+16 test/golden/importless/kde-cli-tools.txt+27−1 test/golden/importless/kdebugsettings.txt+27 test/golden/importless/kdeclarative.txt+24 test/golden/importless/kdeconnect-kde.txt+46 test/golden/importless/kdecoration.txt+15 test/golden/importless/kded.txt+23 test/golden/importless/kdegraphics-mobipocket.txt+19 test/golden/importless/kdegraphics-thumbnailers.txt+22 test/golden/importless/kdenetwork-filesharing.txt+24 test/golden/importless/kdenlive.txt+50 test/golden/importless/kdeplasma-addons.txt+27−1 test/golden/importless/kdesignerplugin.txt+27 test/golden/importless/kdev-php.txt+34 test/golden/importless/kdev-python.txt+35 test/golden/importless/kdevelop-pg-qt.txt+32 test/golden/importless/kdevelop.txt+76 test/golden/importless/kdewebkit.txt+18−1 test/golden/importless/kdf.txt+24 test/golden/importless/kdialog.txt+22 test/golden/importless/kdiamond.txt+31 test/golden/importless/kdnssd.txt+17 test/golden/importless/keditbookmarks.txt+27 test/golden/importless/kemoticons.txt+17 test/golden/importless/kexec.txt+31 test/golden/importless/keybase.txt+37 test/golden/importless/keylight-exporter.txt+30 test/golden/importless/keylight.txt+8 test/golden/importless/kfind.txt+24 test/golden/importless/kfloppy.txt+28 test/golden/importless/kgamma5.txt+12−1 test/golden/importless/kgeography.txt+19 test/golden/importless/kget.txt+32 test/golden/importless/kglobalaccel.txt+20−1 test/golden/importless/kgpg.txt+39 test/golden/importless/kguiaddons.txt+16 test/golden/importless/khelpcenter.txt+18−1 test/golden/importless/kholidays.txt+24 test/golden/importless/khotkeys.txt+24−1 test/golden/importless/khtml.txt+33 test/golden/importless/ki18n.txt+18 test/golden/importless/kidentitymanagement.txt+29 test/golden/importless/kidletime.txt+15 test/golden/importless/kig.txt+21 test/golden/importless/kigo.txt+30 test/golden/importless/killbots.txt+29 test/golden/importless/kimageformats.txt+18 test/golden/importless/kimap.txt+21 test/golden/importless/kinfocenter.txt+28−1 test/golden/importless/kio-extras.txt+49 test/golden/importless/kipi-plugins.txt+34 test/golden/importless/kirigami2.txt+15 test/golden/importless/kitemmodels.txt+14 test/golden/importless/kitemviews.txt+16 test/golden/importless/kitinerary.txt+27 test/golden/importless/kjobwidgets.txt+16 test/golden/importless/kjs.txt+15 test/golden/importless/kjsembed.txt+18 test/golden/importless/kldap.txt+21 test/golden/importless/kleopatra.txt+26 test/golden/importless/klettres.txt+30 test/golden/importless/klines.txt+29 test/golden/importless/klogd.txt+33 test/golden/importless/kmag.txt+28 test/golden/importless/kmahjongg.txt+22 test/golden/importless/kmail-account-wizard.txt+33 test/golden/importless/kmail.txt+56 test/golden/importless/kmailtransport.txt+28 test/golden/importless/kmbox.txt+23 test/golden/importless/kmediaplayer.txt+14 test/golden/importless/kmenuedit.txt+15−1 test/golden/importless/kmime.txt+22 test/golden/importless/kmines.txt+31 test/golden/importless/kmix.txt+29 test/golden/importless/kmod.txt+39 test/golden/importless/kmplot.txt+25 test/golden/importless/kmrcl.txt+11 test/golden/importless/knavalbattle.txt+30 test/golden/importless/knetwalk.txt+29 test/golden/importless/knewstuff.txt+32 test/golden/importless/knights.txt+31 test/golden/importless/knotes.txt+40−1 test/golden/importless/knotifications.txt+20 test/golden/importless/knotifyconfig.txt+20 test/golden/importless/kodi.txt+28 test/golden/importless/kolf.txt+22 test/golden/importless/kollision.txt+29 test/golden/importless/kolourpaint.txt+20 test/golden/importless/kompare.txt+19 test/golden/importless/konqueror.txt+23 test/golden/importless/konquest.txt+21 test/golden/importless/konsole.txt+45 test/golden/importless/kontact.txt+28 test/golden/importless/kontactinterface.txt+23 test/golden/importless/korganizer.txt+35 test/golden/importless/kparts.txt+24 test/golden/importless/kpat.txt+23 test/golden/importless/kpeople.txt+20 test/golden/importless/kpimtextedit.txt+37 test/golden/importless/kpkpass.txt+23 test/golden/importless/kplotting.txt+15 test/golden/importless/kpty.txt+16 test/golden/importless/kqtquickcharts.txt+21 test/golden/importless/kquickcharts.txt+14 test/golden/importless/krdc.txt+36 test/golden/importless/kreversi.txt+27 test/golden/importless/krfb.txt+26 test/golden/importless/krohnkite.txt+35 test/golden/importless/kross.txt+25 test/golden/importless/kruler.txt+22 test/golden/importless/krunner.txt+25 test/golden/importless/kscreen.txt+21−1 test/golden/importless/kscreenlocker.txt+25−1 test/golden/importless/kshisen.txt+30 test/golden/importless/kspaceduel.txt+20 test/golden/importless/ksquares.txt+30 test/golden/importless/ksshaskpass.txt+12−1 test/golden/importless/ksudoku.txt+21 test/golden/importless/ksysguard.txt+18−1 test/golden/importless/ksystemlog.txt+22 test/golden/importless/kteatime.txt+31 test/golden/importless/ktexteditor.txt+28 test/golden/importless/ktextwidgets.txt+23 test/golden/importless/ktimer.txt+28 test/golden/importless/ktnef.txt+24 test/golden/importless/ktouch.txt+42 test/golden/importless/kturtle.txt+29 test/golden/importless/kunitconversion.txt+15 test/golden/importless/kvm-deps.txt+4−1 test/golden/importless/kvm.txt+33 test/golden/importless/kvm2.txt+39 test/golden/importless/kwallet-pam.txt+19−1 test/golden/importless/kwallet.txt+27 test/golden/importless/kwalletmanager.txt+26 test/golden/importless/kwave.txt+44 test/golden/importless/kwayland-integration.txt+11−1 test/golden/importless/kwayland.txt+19 test/golden/importless/kwidgetsaddons.txt+16 test/golden/importless/kwrited.txt+12−1 test/golden/importless/kxmlgui.txt+25 test/golden/importless/kxmlrpcclient.txt+16 test/golden/importless/labs_consol_de.txt+38 test/golden/importless/lack-component.txt+11 test/golden/importless/lack-middleware-backtrace.txt+11 test/golden/importless/lack-util.txt+17 test/golden/importless/lack.txt+19 test/golden/importless/ladspah.txt+25 test/golden/importless/lastfm.txt+39 test/golden/importless/layout-manager.txt+39 test/golden/importless/lazarus.txt+45 test/golden/importless/ledger.txt+12 test/golden/importless/leftwm.txt+24 test/golden/importless/legacy.txt+33 test/golden/importless/lens.txt+25 test/golden/importless/let-plus.txt+17 test/golden/importless/lev.txt+17 test/golden/importless/lfarm-client.txt+22 test/golden/importless/lfarm-common.txt+20 test/golden/importless/lfarm-server.txt+21 test/golden/importless/lfarm-ssl.txt+26 test/golden/importless/lgc.txt+29 test/golden/importless/libarcus.txt+37 test/golden/importless/libbitcoin-client.txt+36 test/golden/importless/libbitcoin-explorer.txt+37 test/golden/importless/libbitcoin-network.txt+36 test/golden/importless/libbitcoin-protocol.txt+38 test/golden/importless/libbitcoin.txt+35 test/golden/importless/libc++abi.txt+43 test/golden/importless/libcroco.txt+32 test/golden/importless/libdislocator.txt+27 test/golden/importless/libdispatch.txt+12 test/golden/importless/libfakeXinerama.txt+31 test/golden/importless/libgdata.txt+11 test/golden/importless/libgravatar.txt+25 test/golden/importless/libjcat.txt+2 test/golden/importless/libkcddb.txt+27 test/golden/importless/libkdcraw.txt+23 test/golden/importless/libkdegames.txt+26 test/golden/importless/libkdepim.txt+29 test/golden/importless/libkexiv2.txt+23 test/golden/importless/libkgapi.txt+27 test/golden/importless/libkipi.txt+24 test/golden/importless/libkleo.txt+27 test/golden/importless/libkmahjongg.txt+26 test/golden/importless/libkomparediff2.txt+10−1 test/golden/importless/libksane.txt+23 test/golden/importless/libksieve.txt+30 test/golden/importless/libmaa.txt+16 test/golden/importless/libnvc.txt+29 test/golden/importless/libopenshot-audio.txt+41 test/golden/importless/libopenshot.txt+48 test/golden/importless/liboping.txt+16 test/golden/importless/library.txt+33 test/golden/importless/libsavitar.txt+35 test/golden/importless/libsigrok4dsl.txt+41 test/golden/importless/libsigrokdecode4dsl.txt+36 test/golden/importless/libtokencap.txt+27 test/golden/importless/libtool2.txt+35 test/golden/importless/libungif.txt+15 test/golden/importless/libunwind.txt+22 test/golden/importless/libusb1.txt+36 test/golden/importless/libxkbcommon_7.txt+38 test/golden/importless/libxmlb.txt+2 test/golden/importless/libxpdf.txt+16 test/golden/importless/licenses.txt+190 test/golden/importless/lift.txt+11 test/golden/importless/light.txt+19 test/golden/importless/lightyear.txt+26 test/golden/importless/limesdr.txt+40 test/golden/importless/linux-4.14.txt+23 test/golden/importless/linux-4.19.txt+23 test/golden/importless/linux-4.4.txt+10 test/golden/importless/linux-4.9.txt+10 test/golden/importless/linux-5.4.txt+23 test/golden/importless/linux-5.8.txt+23 test/golden/importless/linux-5.9.txt+23 test/golden/importless/linux-hardkernel-4.14.txt+22 test/golden/importless/linux-testing-bcachefs.txt+27 test/golden/importless/linux-zen.txt+19 test/golden/importless/linux.txt+15 test/golden/importless/linuxbrowser.txt+35 test/golden/importless/lisp-namespace.txt+11 test/golden/importless/lisp-unit2.txt+22 test/golden/importless/list-of.txt+14 test/golden/importless/litecoin.txt+55 test/golden/importless/lld.txt+32 test/golden/importless/lldb.txt+54 test/golden/importless/lldpd.txt+43 test/golden/importless/llvm.txt+48 test/golden/importless/lnd-exporter.txt+28 test/golden/importless/local-time.txt+18 test/golden/importless/locales.txt+20 test/golden/importless/localtime.txt+34 test/golden/importless/lock-color.txt+47 test/golden/importless/lock-effects.txt+44 test/golden/importless/lock-fancy-rapid.txt+34 test/golden/importless/lock-fancy.txt+40 test/golden/importless/lock-kernel-modules.txt+44 test/golden/importless/lock.txt+45 test/golden/importless/log.txt+3 test/golden/importless/log4cl.txt+17 test/golden/importless/logic.txt+26 test/golden/importless/logkeys.txt+30 test/golden/importless/logmein-hamachi.txt+28 test/golden/importless/lparallel.txt+15 test/golden/importless/lquery.txt+19 test/golden/importless/ltc.txt+44 test/golden/importless/luarocks-nix.txt+9 test/golden/importless/lumina.txt+28 test/golden/importless/lvm2.txt+28 test/golden/importless/lwm.txt+24 test/golden/importless/lwt-unix.txt+26 test/golden/importless/lxcfs.txt+40 test/golden/importless/lxmenu-data.txt+18 test/golden/importless/lyricbar.txt+34 test/golden/importless/m2install.txt+20 test/golden/importless/m32edit.txt+12 test/golden/importless/mac.txt+46 test/golden/importless/machine.txt+24 test/golden/importless/macport.txt+63 test/golden/importless/macvim.txt+52 test/golden/importless/magic-wormhole-mailbox-server.txt+36 test/golden/importless/mail-exporter.txt+37 test/golden/importless/mail-exporter_deps.txt+4−1 test/golden/importless/mailhog.txt+33 test/golden/importless/mailpile.txt+57 test/golden/importless/mainline.txt+4 test/golden/importless/maintainer-list.txt+3003−1 test/golden/importless/make-bootstrap.txt+3−1 test/golden/importless/make-channel.txt+15 test/golden/importless/make-dbus-conf.txt+18 test/golden/importless/make-ext4-fs.txt+23 test/golden/importless/make-fonts-cache.txt+15 test/golden/importless/make-fonts-conf.txt+11 test/golden/importless/make-peer.txt+52 test/golden/importless/make-squashfs.txt+11 test/golden/importless/makeDotElm.txt+20 test/golden/importless/malcontent.txt+21 test/golden/importless/malloc.txt+37 test/golden/importless/man.txt+31 test/golden/importless/map-set.txt+11 test/golden/importless/mapping.txt+23 test/golden/importless/maps.txt+16 test/golden/importless/marble.txt+25 test/golden/importless/marshal.txt+11 test/golden/importless/masari.txt+38 test/golden/importless/masq.txt+13 test/golden/importless/material-theme.txt+29 test/golden/importless/matterircd.txt+30 test/golden/importless/maven-build.txt+31 test/golden/importless/mavenPlugins.txt+55 test/golden/importless/mcelog.txt+36 test/golden/importless/md5.txt+11 test/golden/importless/mem.txt+23 test/golden/importless/menus.txt+19 test/golden/importless/mesos-exporter_deps.txt+4−1 test/golden/importless/messagelib.txt+45 test/golden/importless/metabang-bind.txt+11 test/golden/importless/metacity.txt+25 test/golden/importless/metaocaml-3.09.txt+31 test/golden/importless/metatilities-base.txt+11−1 test/golden/importless/metrics.txt+12 test/golden/importless/mhd.txt+29 test/golden/importless/mikrotik-exporter.txt+28 test/golden/importless/milou.txt+15−1 test/golden/importless/mime.txt+26 test/golden/importless/minimal.txt+12 test/golden/importless/mininet.txt+28 test/golden/importless/minuet.txt+31 test/golden/importless/mirrors.txt+39−1 test/golden/importless/misc-extensions.txt+11 test/golden/importless/mjpg-streamer.txt+55 test/golden/importless/mk-stage0.txt+7−1 test/golden/importless/mk-string-metrics.txt+11 test/golden/importless/mktplcExtRefToFetchArgs.txt+3−1 test/golden/importless/moarvm.txt+36 test/golden/importless/mod.txt+34 test/golden/importless/modem-default.txt+15−1 test/golden/importless/modemmanager-exporter.txt+30 test/golden/importless/modemmanager-qt.txt+15 test/golden/importless/modemmanager.txt+15 test/golden/importless/module-list.txt+1−1 test/golden/importless/modules-closure.txt+23 test/golden/importless/modules.txt+212−1 test/golden/importless/mom.txt+45 test/golden/importless/monit.txt+42 test/golden/importless/mono.txt+24 test/golden/importless/moodle-utils.txt+26 test/golden/importless/moptilities.txt+11 test/golden/importless/mpris.txt+24 test/golden/importless/mpris2.txt+31 test/golden/importless/mptcp-config.txt+17 test/golden/importless/mptcp.txt+30 test/golden/importless/msopenh264.txt+44 test/golden/importless/mspdebug.txt+55 test/golden/importless/mssql.txt+20 test/golden/importless/mstpd.txt+29 test/golden/importless/mt19937.txt+11 test/golden/importless/mtr.txt+22 test/golden/importless/muchsync.txt+35 test/golden/importless/mullvad-vpn.txt+42 test/golden/importless/multi.txt+12 test/golden/importless/multilib.txt+8 test/golden/importless/multipath-tools.txt+25 test/golden/importless/munge.txt+48 test/golden/importless/musicbox-webclient.txt+23 test/golden/importless/mutt.txt+46 test/golden/importless/mwm.txt+24 test/golden/importless/mwprocapture.txt+27 test/golden/importless/myway.txt+21 test/golden/importless/nabi.txt+23 test/golden/importless/nacl.txt+44 test/golden/importless/namecoin.txt+49 test/golden/importless/named-readtables.txt+12 test/golden/importless/nanonote.txt+23 test/golden/importless/neard.txt+18 test/golden/importless/neovim-remote.txt+34 test/golden/importless/net_dot_didierverna_dot_asdf-flv.txt+11 test/golden/importless/netboot.txt+60 test/golden/importless/networkmanager-qt.txt+15 test/golden/importless/new-api.txt+42 test/golden/importless/newlib.txt+16 test/golden/importless/news-updater.txt+27 test/golden/importless/next-gtk-webkit.txt+40 test/golden/importless/nextcloud-exporter-deps.txt+4−1 test/golden/importless/nextcloud-exporter.txt+33 test/golden/importless/ng.txt+49 test/golden/importless/nginx-exporter.txt+37 test/golden/importless/nginxlog-exporter.txt+27 test/golden/importless/nginxlog-exporter_deps.txt+4−1 test/golden/importless/nibbles.txt+12 test/golden/importless/nix-fallback-paths.txt+5−1 test/golden/importless/nix-generate-from-cpan.txt+21 test/golden/importless/nix-prefetch-docker.txt+17 test/golden/importless/nix-update.txt+1−1 test/golden/importless/nixops-autoluks.txt+14 test/golden/importless/nixops-v1_6_1.txt+35 test/golden/importless/nixpkgs-lint.txt+18 test/golden/importless/nm-applet.txt+35 test/golden/importless/no-x-libs.txt+56 test/golden/importless/node.txt+22 test/golden/importless/none.txt+5−1 test/golden/importless/not-detected.txt+3 test/golden/importless/notion.txt+26 test/golden/importless/novacom.txt+28 test/golden/importless/novacomd.txt+32 test/golden/importless/npm.txt+32 test/golden/importless/nqp.txt+35 test/golden/importless/ntfs.txt+11 test/golden/importless/nuget.txt+1−1 test/golden/importless/nullidentdmod.txt+43 test/golden/importless/nvidia-optimus.txt+38 test/golden/importless/nw12.txt+61 test/golden/importless/oauth.txt+46 test/golden/importless/oauth2_proxy_nginx.txt+26 test/golden/importless/obs-ndi.txt+36 test/golden/importless/ocaml.txt+15 test/golden/importless/ocamlbuild.txt+25 test/golden/importless/ocserv.txt+39 test/golden/importless/ofono.txt+31 test/golden/importless/oidentd.txt+35 test/golden/importless/okular.txt+62 test/golden/importless/omegat.txt+31 test/golden/importless/openbox.txt+26 test/golden/importless/openfire.txt+47 test/golden/importless/openmp.txt+26 test/golden/importless/openvpn-exporter-deps.txt+4−1 test/golden/importless/openvpn.txt+20 test/golden/importless/openvpn_learnaddress.txt+28 test/golden/importless/opn2bankeditor.txt+14 test/golden/importless/optima.txt+15 test/golden/importless/org-generated.txt+19 test/golden/importless/oroborus.txt+24 test/golden/importless/osmosdr.txt+48 test/golden/importless/ostree.txt+9 test/golden/importless/otf.txt+30 test/golden/importless/otp.txt+34 test/golden/importless/overlay.txt+16 test/golden/importless/owamp.txt+40 test/golden/importless/oxygen-icons5.txt+19 test/golden/importless/oxygen.txt+24−1 test/golden/importless/pack.txt+27 test/golden/importless/packagekit.txt+29 test/golden/importless/packages-config.txt+9 test/golden/importless/pacman.txt+22 test/golden/importless/pam.txt+10 test/golden/importless/pam_usb.txt+28 test/golden/importless/parenscript.txt+16 test/golden/importless/parse-declarations-1_dot_0.txt+11 test/golden/importless/parse-number.txt+12 test/golden/importless/parser.txt+32 test/golden/importless/parted.txt+42 test/golden/importless/particl-core.txt+46 test/golden/importless/passthru.txt+3 test/golden/importless/paste.txt+31 test/golden/importless/patchsets.txt+8−1 test/golden/importless/patricia.txt+25 test/golden/importless/pcall-queue.txt+15 test/golden/importless/pcall.txt+18 test/golden/importless/pdf_sets.txt+825 test/golden/importless/pdnsd.txt+46 test/golden/importless/pekwm.txt+24 test/golden/importless/perf.txt+69 test/golden/importless/periods.txt+33 test/golden/importless/permutations.txt+23 test/golden/importless/persistenced.txt+33 test/golden/importless/pfds.txt+25 test/golden/importless/pflogsumm.txt+30 test/golden/importless/pg_auto_failover.txt+36 test/golden/importless/pg_bigm.txt+30 test/golden/importless/pg_cron.txt+30 test/golden/importless/pg_ed25519.txt+29 test/golden/importless/pg_hll.txt+30 test/golden/importless/pg_partman.txt+30 test/golden/importless/pg_repack.txt+36 test/golden/importless/pg_safeupdate.txt+23 test/golden/importless/pg_similarity.txt+27 test/golden/importless/pg_topn.txt+30 test/golden/importless/pgjwt.txt+30 test/golden/importless/pgloader.txt+74 test/golden/importless/pgroonga.txt+35 test/golden/importless/pgrouting.txt+34 test/golden/importless/pgtap.txt+35 test/golden/importless/picmi.txt+28 test/golden/importless/pim-data-exporter.txt+37 test/golden/importless/pim-sieve-editor.txt+28 test/golden/importless/pimcommon.txt+42 test/golden/importless/pipelinedb.txt+37 test/golden/importless/pipes.txt+23 test/golden/importless/pk.txt+34 test/golden/importless/plasma-browser-integration.txt+17−1 test/golden/importless/plasma-pa.txt+20−1 test/golden/importless/plasma-workspace-wallpapers.txt+5−1 test/golden/importless/platform-flags.txt+21 test/golden/importless/platform-tools.txt+21 test/golden/importless/platform.txt+25 test/golden/importless/platforms.txt+203 test/golden/importless/plotinus.txt+25 test/golden/importless/plpgsql_check.txt+30 test/golden/importless/plump-dom.txt+11 test/golden/importless/plump-lexer.txt+11−1 test/golden/importless/plump-parser.txt+17 test/golden/importless/plump.txt+16 test/golden/importless/plv8.txt+35 test/golden/importless/plv8_6_x.txt+42 test/golden/importless/pointrelease.txt+20 test/golden/importless/polkit-kde-agent.txt+21−1 test/golden/importless/poms.txt+117−1 test/golden/importless/pony-stable.txt+32 test/golden/importless/port.txt+59 test/golden/importless/posix.txt+14 test/golden/importless/postfix-exporter-deps.txt+4−1 test/golden/importless/postfix-exporter.txt+41 test/golden/importless/postgis.txt+48 test/golden/importless/postgres-exporter.txt+29 test/golden/importless/postmodern.txt+27 test/golden/importless/powerdevil.txt+33−1 test/golden/importless/powerdns.txt+45 test/golden/importless/powertop.txt+30 test/golden/importless/ppx-assert.txt+25 test/golden/importless/ppx-bench.txt+23 test/golden/importless/ppx-bin-prot.txt+21 test/golden/importless/ppx-compare.txt+21 test/golden/importless/ppx-core.txt+18 test/golden/importless/ppx-custom-printf.txt+21 test/golden/importless/ppx-driver.txt+19 test/golden/importless/ppx-enumerate.txt+20 test/golden/importless/ppx-expect.txt+32 test/golden/importless/ppx-fail.txt+21 test/golden/importless/ppx-fields-conv.txt+20 test/golden/importless/ppx-here.txt+19 test/golden/importless/ppx-inline-test.txt+20 test/golden/importless/ppx-jane.txt+36 test/golden/importless/ppx-let.txt+19 test/golden/importless/ppx-optcomp.txt+19 test/golden/importless/ppx-pipebang.txt+20 test/golden/importless/ppx-sexp-conv.txt+21 test/golden/importless/ppx-sexp-message.txt+22 test/golden/importless/ppx-sexp-value.txt+22 test/golden/importless/ppx-type-conv.txt+21 test/golden/importless/ppx-typerep-conv.txt+21 test/golden/importless/ppx-variants-conv.txt+22 test/golden/importless/ppx.txt+29 test/golden/importless/ppx_deriving_json.txt+26 test/golden/importless/pre-configure.txt+18 test/golden/importless/pre.txt+42 test/golden/importless/presets.txt+11 test/golden/importless/pressureaudio.txt+23 test/golden/importless/primary.txt+13 test/golden/importless/print-manager.txt+29 test/golden/importless/prison.txt+17 test/golden/importless/pro.txt+51 test/golden/importless/proc-parse.txt+16 test/golden/importless/process-exporter.txt+31 test/golden/importless/process-exporter_deps.txt+4−1 test/golden/importless/prom2json_deps.txt+4−1 test/golden/importless/protobuf-test.txt+24 test/golden/importless/protobuf.txt+25 test/golden/importless/protocols.txt+32 test/golden/importless/prove-asdf.txt+11 test/golden/importless/prove.txt+20 test/golden/importless/ptester.txt+11 test/golden/importless/pthreads.txt+7 test/golden/importless/pure.txt+20 test/golden/importless/puri.txt+12 test/golden/importless/purpose.txt+19 test/golden/importless/py-configparser.txt+11 test/golden/importless/pyblock.txt+24 test/golden/importless/pybrial.txt+22 test/golden/importless/pykickstart.txt+18 test/golden/importless/pynagsystemd.txt+26 test/golden/importless/pyparted.txt+30 test/golden/importless/pystatus.txt+46 test/golden/importless/python.txt+28 test/golden/importless/qemu-guest-agent.txt+30 test/golden/importless/qemu-guest.txt+11 test/golden/importless/qemu.txt+49 test/golden/importless/qmynd.txt+30 test/golden/importless/qpaeq.txt+48 test/golden/importless/qqc2-desktop-style.txt+17 test/golden/importless/qt-4.txt+30 test/golden/importless/qt-5.txt+26 test/golden/importless/qt.txt+57 test/golden/importless/qt4.txt+28 test/golden/importless/qt5ct.txt+25 test/golden/importless/qtModule.txt+41 test/golden/importless/qtcharts.txt+6−1 test/golden/importless/qtconnectivity.txt+9 test/golden/importless/qtdoc.txt+5−1 test/golden/importless/qtgamepad.txt+14−1 test/golden/importless/qtgraphicaleffects.txt+5−1 test/golden/importless/qtile.txt+26 test/golden/importless/qtimageformats.txt+6−1 test/golden/importless/qtlocation.txt+8 test/golden/importless/qtmacextras.txt+17 test/golden/importless/qtmultimedia.txt+30 test/golden/importless/qtnetworkauth.txt+1−1 test/golden/importless/qtquickcontrols.txt+2−1 test/golden/importless/qtquickcontrols2.txt+5−1 test/golden/importless/qtscript.txt+3−1 test/golden/importless/qtscxml.txt+6−1 test/golden/importless/qtsensors.txt+6−1 test/golden/importless/qtserialbus.txt+6−1 test/golden/importless/qtserialport.txt+8 test/golden/importless/qtspeech.txt+3−1 test/golden/importless/qtsvg.txt+5−1 test/golden/importless/qttranslations.txt+1−1 test/golden/importless/qtvirtualkeyboard.txt+8−1 test/golden/importless/qtwayland.txt+15−1 test/golden/importless/qtwebchannel.txt+6−1 test/golden/importless/qtwebengine.txt+137 test/golden/importless/qtwebglplugin.txt+6−1 test/golden/importless/qtwebsockets.txt+6−1 test/golden/importless/qtwebview.txt+25 test/golden/importless/qtx11extras.txt+1−1 test/golden/importless/qtxmlpatterns.txt+6−1 test/golden/importless/quantities.txt+23 test/golden/importless/query-fs.txt+30 test/golden/importless/quri.txt+18 test/golden/importless/rabbitmq-exporter.txt+29 test/golden/importless/rabbitmq-exporter_deps.txt+4−1 test/golden/importless/racoon.txt+38 test/golden/importless/radeon.txt+1−1 test/golden/importless/raptor.txt+30 test/golden/importless/raspberrypi-builder.txt+18 test/golden/importless/raspberrypi.txt+16 test/golden/importless/rasqal.txt+39 test/golden/importless/ratbagd.txt+18 test/golden/importless/rationals.txt+15 test/golden/importless/ratpoison.txt+24 test/golden/importless/raw.txt+41 test/golden/importless/rdnssd.txt+38 test/golden/importless/rds.txt+41 test/golden/importless/readline-6.2-patches.txt+1−1 test/golden/importless/readline-6.3-patches.txt+1−1 test/golden/importless/readline-7.0-patches.txt+1−1 test/golden/importless/readline-8.0-patches.txt+1−1 test/golden/importless/rebar3-release.txt+52 test/golden/importless/recursion_schemes.txt+29 test/golden/importless/redis-exporter-deps.txt+4−1 test/golden/importless/redis-exporter.txt+37 test/golden/importless/redis.txt+8 test/golden/importless/redland.txt+47 test/golden/importless/refined.txt+24 test/golden/importless/release_sources.txt+3−1 test/golden/importless/remoteshell.txt+5 test/golden/importless/repmgr.txt+35 test/golden/importless/require_exceptions.txt+78−1 test/golden/importless/rest-server.txt+31 test/golden/importless/restbed.txt+34 test/golden/importless/rfc2388.txt+11 test/golden/importless/rng-mirage.txt+31 test/golden/importless/rng.txt+32 test/golden/importless/rngd.txt+38 test/golden/importless/roboschool-fork.txt+43 test/golden/importless/robustirc-bridge.txt+42 test/golden/importless/rocs.txt+41 test/golden/importless/rofi-pass.txt+41 test/golden/importless/romkatv_libgit2.txt+8 test/golden/importless/roundcube-plugin.txt+3−1 test/golden/importless/rove.txt+16 test/golden/importless/rpcbind.txt+24 test/golden/importless/rt.txt+11 test/golden/importless/rtkit.txt+25 test/golden/importless/ruby-packages.txt+1635−1 test/golden/importless/ruby-version.txt+26 test/golden/importless/runtime.txt+25 test/golden/importless/rust-src.txt+6 test/golden/importless/rustfmt.txt+36 test/golden/importless/rvm-patchsets.txt+5−1 test/golden/importless/rxe.txt+39 test/golden/importless/rygel.txt+32 test/golden/importless/s-sql.txt+23 test/golden/importless/s-sysdeps.txt+11 test/golden/importless/s-xml.txt+12 test/golden/importless/sabnzbd.txt+55 test/golden/importless/safeeyes.txt+32 test/golden/importless/sage-env.txt+65 test/golden/importless/sagenb.txt+31 test/golden/importless/salza2.txt+11 test/golden/importless/samtools_0_1_19.txt+26 test/golden/importless/sandbox-shell.txt+5 test/golden/importless/sans.txt+24 test/golden/importless/sasl.txt+44 test/golden/importless/sawfish.txt+24 test/golden/importless/sbv-7.13.txt+44 test/golden/importless/scala-native.txt+21 test/golden/importless/schema.txt+11 test/golden/importless/scm.txt+33 test/golden/importless/screen.txt+19 test/golden/importless/scripts.txt+26 test/golden/importless/sddm-kcm.txt+16−1 test/golden/importless/sdk-pkgs.txt+48 test/golden/importless/sdks.txt+10 test/golden/importless/sdl.txt+23 test/golden/importless/sdl2.txt+25 test/golden/importless/sedutil.txt+17 test/golden/importless/semidirect.txt+16 test/golden/importless/serapeum.txt+44 test/golden/importless/serif.txt+24 test/golden/importless/server.txt+58 test/golden/importless/setoids.txt+15 test/golden/importless/setup-hook.txt+6 test/golden/importless/setup-systemd-units.txt+9−1 test/golden/importless/sexplib.txt+26 test/golden/importless/shader-pack.txt+27 test/golden/importless/shadow.txt+67 test/golden/importless/shards.txt+1−1 test/golden/importless/share.txt+26 test/golden/importless/shared.txt+93 test/golden/importless/shas.txt+51−1 test/golden/importless/shebang-test.txt+16−1 test/golden/importless/shiboken.txt+43 test/golden/importless/shopify-themekit_deps.txt+4−1 test/golden/importless/shrunk.txt+12 test/golden/importless/shutdown.txt+15 test/golden/importless/sickgear.txt+33 test/golden/importless/sickrage.txt+33 test/golden/importless/simple-date.txt+18 test/golden/importless/simple-mpv-webui.txt+28 test/golden/importless/singularity.txt+21 test/golden/importless/skeinjar.txt+17 test/golden/importless/skeinrepo.txt+19 test/golden/importless/skia-deps.txt+3−1 test/golden/importless/slock.txt+19 test/golden/importless/smallwm.txt+24 test/golden/importless/smart-buffer.txt+17 test/golden/importless/smlar.txt+30 test/golden/importless/smproc.txt+25 test/golden/importless/snakeoil-certs.txt+12−1 test/golden/importless/snakeoil-keys.txt+3−1 test/golden/importless/snippets.txt+26 test/golden/importless/snmp-exporter.txt+37 test/golden/importless/socket.txt+21 test/golden/importless/sockets.txt+17 test/golden/importless/softmaker_office.txt+15 test/golden/importless/software_foundations.txt+15 test/golden/importless/solid.txt+20 test/golden/importless/somafm.txt+23 test/golden/importless/sonnet.txt+16 test/golden/importless/soundcloud.txt+23 test/golden/importless/sounds.txt+22 test/golden/importless/source-from-head-fun.txt+3 test/golden/importless/source.txt+5 test/golden/importless/sourceview3.txt+21 test/golden/importless/spago.txt+76 test/golden/importless/specdris.txt+16 test/golden/importless/spectacle.txt+33 test/golden/importless/spectrwm.txt+26 test/golden/importless/spice-vdagentd.txt+26 test/golden/importless/split-sequence.txt+12 test/golden/importless/sponsorblock.txt+34 test/golden/importless/spotify-tunigo.txt+25 test/golden/importless/spotify.txt+27 test/golden/importless/spotifyd.txt+43 test/golden/importless/springlobby.txt+55 test/golden/importless/sqlar.txt+31 test/golden/importless/sqlite.txt+21 test/golden/importless/squeezelite.txt+35 test/golden/importless/src-for-default.txt+6 test/golden/importless/src-info-for-default.txt+1−1 test/golden/importless/src-libs-git.txt+1−1 test/golden/importless/src-libs-svn.txt+1−1 test/golden/importless/src-main.txt+1−1 test/golden/importless/src.txt+1−1 test/golden/importless/srcs.txt+3 test/golden/importless/ssh-keys.txt+6 test/golden/importless/ssm-agent.txt+42 test/golden/importless/stable.txt+4 test/golden/importless/staging.txt+17 test/golden/importless/standalone.txt+81 test/golden/importless/startx.txt+34 test/golden/importless/static-vectors.txt+21 test/golden/importless/statsd-exporter.txt+30 test/golden/importless/status-rust.txt+37 test/golden/importless/status.txt+37 test/golden/importless/steam-hardware.txt+20 test/golden/importless/steam.txt+30 test/golden/importless/steamcmd.txt+34 test/golden/importless/stefil.txt+18 test/golden/importless/stellar-core.txt+44 test/golden/importless/str.txt+18 test/golden/importless/string-case.txt+11 test/golden/importless/stub.txt+21 test/golden/importless/stumpwm.txt+25 test/golden/importless/sumokoin.txt+39 test/golden/importless/sundtek.txt+30 test/golden/importless/surfboard-exporter.txt+32 test/golden/importless/surfboard.txt+18 test/golden/importless/sushi.txt+29 test/golden/importless/swank.txt+11 test/golden/importless/swap-bytes.txt+16 test/golden/importless/swraid.txt+10 test/golden/importless/symbol-munger.txt+15 test/golden/importless/symbols.txt+24 test/golden/importless/syndication.txt+13 test/golden/importless/syntax-highlighting.txt+16 test/golden/importless/syrup.txt+24 test/golden/importless/sysdig.txt+20 test/golden/importless/sysprof.txt+24 test/golden/importless/sysstat.txt+64 test/golden/importless/system-config-printer.txt+22 test/golden/importless/system-fonts.txt+7 test/golden/importless/system-images-android-tv.txt+116−1 test/golden/importless/system-images-android-wear-cn.txt+43−1 test/golden/importless/system-images-android-wear.txt+61−1 test/golden/importless/system-images-android.txt+315−1 test/golden/importless/system-images-google_apis.txt+333−1 test/golden/importless/system-images-google_apis_playstore.txt+65−1 test/golden/importless/systemsettings.txt+30−1 test/golden/importless/systemtap.txt+24 test/golden/importless/tailscale.txt+46 test/golden/importless/tap.txt+26 test/golden/importless/tcpcrypt.txt+36 test/golden/importless/tds_fdw.txt+34 test/golden/importless/team-list.txt+50 test/golden/importless/teamviewer.txt+35 test/golden/importless/telepathy.txt+26 test/golden/importless/temporal_tables.txt+30 test/golden/importless/terminal-server.txt+51 test/golden/importless/terminfo.txt+12−1 test/golden/importless/tes3mp.txt+46 test/golden/importless/tessera.txt+28 test/golden/importless/tesseract3.txt+41 test/golden/importless/tesseract4.txt+41 test/golden/importless/test-case.txt+1−1 test/golden/importless/test.txt+22 test/golden/importless/tfrandom.txt+24 test/golden/importless/threadweaver.txt+14 test/golden/importless/throttled.txt+26 test/golden/importless/tiddlywiki.txt+47 test/golden/importless/tiling.txt+36 test/golden/importless/timescaledb.txt+35 test/golden/importless/tinywm.txt+24 test/golden/importless/tlaps.txt+36 test/golden/importless/tlhydra.txt+17 test/golden/importless/tls-submodule.txt+9 test/golden/importless/tmp.txt+17 test/golden/importless/todo.txt+38 test/golden/importless/tomb.txt+34 test/golden/importless/tomcat-native.txt+32 test/golden/importless/tomladris.txt+27 test/golden/importless/tool.txt+35 test/golden/importless/toolbox.txt+47 test/golden/importless/toolchains.txt+16 test/golden/importless/tools.txt+52 test/golden/importless/tor-arm.txt+36 test/golden/importless/tor-exporter.txt+38 test/golden/importless/tp.txt+24 test/golden/importless/tparsec.txt+26 test/golden/importless/tptp.txt+31 test/golden/importless/traceroute.txt+18 test/golden/importless/tracker-miners.txt+28 test/golden/importless/tracker.txt+28 test/golden/importless/transducers.txt+23 test/golden/importless/translucent.txt+34 test/golden/importless/tray.txt+35 test/golden/importless/trees.txt+16 test/golden/importless/trickster_deps.txt+4−1 test/golden/importless/trivia.txt+25 test/golden/importless/trivia_dot_balland2006.txt+24 test/golden/importless/trivia_dot_level0.txt+11 test/golden/importless/trivia_dot_level1.txt+15 test/golden/importless/trivia_dot_level2.txt+19 test/golden/importless/trivia_dot_quasiquote.txt+25 test/golden/importless/trivia_dot_trivial.txt+20 test/golden/importless/trivial-backtrace.txt+11 test/golden/importless/trivial-clipboard.txt+11 test/golden/importless/trivial-cltl2.txt+11 test/golden/importless/trivial-features.txt+11 test/golden/importless/trivial-file-size.txt+16 test/golden/importless/trivial-garbage.txt+12 test/golden/importless/trivial-gray-streams.txt+11 test/golden/importless/trivial-indent.txt+11 test/golden/importless/trivial-macroexpand-all.txt+11 test/golden/importless/trivial-mimes.txt+11 test/golden/importless/trivial-types.txt+11 test/golden/importless/trivial-utf-8.txt+12 test/golden/importless/tsearch_extras.txt+32 test/golden/importless/tuxedo-keyboard.txt+15 test/golden/importless/tvheadend.txt+54 test/golden/importless/twm.txt+25 test/golden/importless/type-i.txt+22 test/golden/importless/typerep.txt+26 test/golden/importless/tyxml.txt+30 test/golden/importless/tzupdate.txt+33 test/golden/importless/udev-rules.txt+18 test/golden/importless/udev.txt+21 test/golden/importless/udev_rules_type1.txt+32 test/golden/importless/udevil.txt+11 test/golden/importless/udisks2.txt+20 test/golden/importless/uffi.txt+11 test/golden/importless/ui.txt+48 test/golden/importless/uim.txt+29 test/golden/importless/uinput.txt+17 test/golden/importless/uiop.txt+11 test/golden/importless/unfuck.txt+79 test/golden/importless/ungoogled-src.txt+1−1 test/golden/importless/ungoogled.txt+21 test/golden/importless/union_type.txt+23 test/golden/importless/unit-test.txt+11 test/golden/importless/unix-odbc-drivers.txt+16 test/golden/importless/unix-opts.txt+11 test/golden/importless/unix.txt+34 test/golden/importless/unstable.txt+36 test/golden/importless/unwrapped.txt+80 test/golden/importless/update-resolv-conf.txt+34 test/golden/importless/update-systemd-resolved.txt+36 test/golden/importless/update.txt+16−1 test/golden/importless/updateSettings.txt+12 test/golden/importless/uptimed.txt+51 test/golden/importless/uranium.txt+46 test/golden/importless/urserver.txt+35 test/golden/importless/usb-wwan.txt+21 test/golden/importless/usbtop.txt+17 test/golden/importless/user-account.txt+14−1 test/golden/importless/user-manager.txt+15−1 test/golden/importless/usocket.txt+14 test/golden/importless/utils.txt+37 test/golden/importless/uuid.txt+16 test/golden/importless/uvcdynctrl-udev-rules.txt+23−1 test/golden/importless/v10.txt+11−1 test/golden/importless/v12.txt+11−1 test/golden/importless/v14.txt+10−1 test/golden/importless/v3.txt+35 test/golden/importless/v3_4.txt+14 test/golden/importless/v3_6.txt+18 test/golden/importless/v4_0.txt+18 test/golden/importless/v4_2.txt+18 test/golden/importless/variantslib.txt+26 test/golden/importless/varnish-exporter.txt+33 test/golden/importless/vdom.txt+24 test/golden/importless/vecspace.txt+15 test/golden/importless/vhba.txt+27 test/golden/importless/viewer.txt+39 test/golden/importless/vim.txt+17 test/golden/importless/virtualbox-guest.txt+55 test/golden/importless/vkd3d.txt+31 test/golden/importless/vlc.txt+37 test/golden/importless/vnstat.txt+55 test/golden/importless/vom.txt+11 test/golden/importless/vscodeWithConfiguration.txt+16 test/golden/importless/vulkan.txt+42 test/golden/importless/wacom.txt+24 test/golden/importless/wakeonlan.txt+23 test/golden/importless/wallpapers.txt+32 test/golden/importless/wavemon.txt+20 test/golden/importless/waybar.txt+32 test/golden/importless/wayland.txt+41 test/golden/importless/web.txt+32 test/golden/importless/webgl.txt+25 test/golden/importless/wicd.txt+30 test/golden/importless/widevine.txt+24 test/golden/importless/windowlab.txt+26 test/golden/importless/windowmaker.txt+25 test/golden/importless/winetricks.txt+37 test/golden/importless/wireguard-exporter.txt+35 test/golden/importless/with-extensions.txt+18 test/golden/importless/with-fonts.txt+24 test/golden/importless/with-packages.txt+13 test/golden/importless/with-provers.txt+17 test/golden/importless/with-vte.txt+14 test/golden/importless/wk-switch.txt+33 test/golden/importless/wl-pprint.txt+13 test/golden/importless/wlrobs.txt+36 test/golden/importless/wmcalclock.txt+34 test/golden/importless/wmfocus.txt+38 test/golden/importless/wmic-bin.txt+35 test/golden/importless/wmii.txt+24 test/golden/importless/wmsm.app.txt+31 test/golden/importless/wmsystemtray.txt+33 test/golden/importless/woo.txt+36 test/golden/importless/wookie.txt+42 test/golden/importless/wooting.txt+18 test/golden/importless/wownero.txt+41 test/golden/importless/wrapper-rstudio.txt+20 test/golden/importless/wrapper.txt+15 test/golden/importless/wyvern.txt+27 test/golden/importless/x32edit.txt+12 test/golden/importless/xbanish.txt+31 test/golden/importless/xcb-util-xrm.txt+28 test/golden/importless/xdg-desktop-portal-kde.txt+23−1 test/golden/importless/xdg-desktop-portal.txt+6 test/golden/importless/xe-guest-utilities.txt+55 test/golden/importless/xembed.txt+11 test/golden/importless/xen-domU.txt+8−1 test/golden/importless/xfce4-cpugraph-plugin.txt+46 test/golden/importless/xfce4-dockbarx-plugin.txt+48 test/golden/importless/xfce4-embed-plugin.txt+40 test/golden/importless/xfce4-eyes-plugin.txt+41 test/golden/importless/xfce4-fsguard-plugin.txt+41 test/golden/importless/xfce4-genmon-plugin.txt+40 test/golden/importless/xfce4-hardware-monitor-plugin.txt+42 test/golden/importless/xfce4-icon-theme.txt+41 test/golden/importless/xfce4-mailwatch-plugin.txt+41 test/golden/importless/xfce4-mpc-plugin.txt+39 test/golden/importless/xfce4-namebar-plugin.txt+39 test/golden/importless/xfce4-notes-plugin.txt+44 test/golden/importless/xfce4-sensors-plugin.txt+46 test/golden/importless/xfce4-systemload-plugin.txt+40 test/golden/importless/xfce4-timer-plugin.txt+40 test/golden/importless/xfce4-weather-plugin.txt+45 test/golden/importless/xfce4-windowck-plugin.txt+56 test/golden/importless/xfs.txt+33 test/golden/importless/xft.txt+26 test/golden/importless/xfwm4-themes.txt+28 test/golden/importless/xhr.txt+25 test/golden/importless/xhyve.txt+38 test/golden/importless/xkeyboard.txt+12 test/golden/importless/xlib.txt+46 test/golden/importless/xmlbird.txt+33 test/golden/importless/xmls.txt+12 test/golden/importless/xow.txt+19 test/golden/importless/xpath.txt+24 test/golden/importless/xsa-patches.txt+51−1 test/golden/importless/xsane.txt+38 test/golden/importless/xst.txt+35 test/golden/importless/xsubseq.txt+11 test/golden/importless/xterm.txt+34 test/golden/importless/xwayland.txt+38 test/golden/importless/yacc.txt+11 test/golden/importless/yakuake.txt+37 test/golden/importless/yaml.txt+27 test/golden/importless/yampa.txt+16 test/golden/importless/yarn.txt+8 test/golden/importless/yason.txt+15 test/golden/importless/yeahwm.txt+24 test/golden/importless/youtube.txt+22 test/golden/importless/z3.txt+28 test/golden/importless/zdbsp.txt+34 test/golden/importless/zef.txt+32 test/golden/importless/zeitgeist.txt+24 test/golden/importless/zmap.txt+22 test/golden/importless/zpaqd.txt+28 test/golden/importless/zpb-ttf.txt+11 test/golden/importless/zsh-autoenv.txt+20 test/golden/importless/zydas-zd1211.txt+1 test/golden/mine/0.9.nix+5 test/golden/mine/0.9.txt+1 test/golden/mine/agda-packages.nix+6 test/golden/mine/agda-packages.txt+1 test/golden/mine/arbitraryRank.nix+1 test/golden/mine/arbitraryRank.txt+1 test/golden/mine/curry.txt+1−1 test/golden/mine/define-option-dependently-nested.nix+12 test/golden/mine/define-option-dependently-nested.txt+3 test/golden/mine/dhall-packages.nix+14 test/golden/mine/dhall-packages.txt+1 test/golden/mine/inftype.nix+1 test/golden/mine/inftype.txt+1 test/golden/mine/nuget.txt+1−1 test/golden/mine/nums.nix+5 test/golden/mine/nums.txt+1 test/golden/mine/org-generated.nix+6 test/golden/mine/org-generated.txt+1 test/golden/mine/other.nix+6 test/golden/mine/other.txt+1 test/golden/mine/other_row.nix+9 test/golden/mine/other_row.txt+5 test/golden/mine/polyApply.txt+1−1 test/golden/mine/polyArgs.nix+1 test/golden/mine/polyArgs.txt+1 test/golden/mine/subsumption.nix+6 test/golden/mine/subsumption.txt+4 test/golden/mine/subsumption_other.nix+5 test/golden/mine/subsumption_other.txt+1 test/golden/mine/variadic.nix+2 test/golden/mine/variadic.txt+4 test/golden/mine/with.nix+6 test/golden/mine/with.txt+1 test/golden/mine/z3.nix+10 test/golden/mine/z3.txt+3 test/Main.hs → test/src/Main.hs+4−7 tix.code-workspace+12
.github/workflows/build_docs.yamlnew file+54
@@ -0,0 +1,54 @@
1+name: Build docs
2+on:
3+ push:
4+ branches:
5+ - master
6+ paths:
7+ - docs/**
8+ pull_request:
9+ branches:
10+ - master
11+ paths:
12+ - docs/**
13+
14+jobs:
15+ linux:
16+ name: Build docs
17+ runs-on: ubuntu-latest
18+ steps:
19+ - uses: actions/checkout@v2
20+ - uses: cachix/install-nix-action@v13
21+ - name: Build
22+ id: build
23+ run: |
24+ cd docs
25+ mkdir res
26+ for f in $(nix-build)
27+ do
28+ cp $f/*.pdf res
29+ done
30+ - uses: actions/upload-artifact@v2
31+ with:
32+ name: docs
33+ path: docs/res/*.pdf
34+ - uses: "marvinpinto/action-automatic-releases@latest"
35+ with:
36+ repo_token: "${{ secrets.GITHUB_TOKEN }}"
37+ automatic_release_tag: "docs_latest"
38+ # prerelease: true
39+ title: "Docs"
40+ files: |
41+ docs/res/*.pdf
42+ # - name: Create Release
43+ # uses: actions/create-release@v1
44+ # env:
45+ # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
46+ # with:
47+ # tag_name: ${{ github.ref }}
48+ # release_name: Release ${{ github.ref }}
49+ # body: |
50+ # Changes in this Release
51+ # - First Change
52+ # - Second Change
53+ # draft: false
54+ # prerelease: false
.gitignore+1
@@ -1,3 +1,4 @@
11.stack-work/
22*~
33tix.cabal
4+docs/result*
app/Main.hs+3−2
@@ -13,9 +13,10 @@ main = do
1313 case parseNixTextLoc inp of
1414 Failure err -> error $ show err
1515 Success r -> do
16− let (t, errs, uErrs, pErrs, o) = getType r
16+ let (t, errs, infErr, uErrs, pErrs, o) = getType r
1717 BSC.putStrLn . YAML.encode $
1818 o <> "errors" .= fmap show errs
1919 <> "unifying_errors" .= fmap show uErrs
20− <> "resulting_type" .= showNType t
20+ <> "resulting_type" .= renderPretty t
2121 <> "predicate_errors" .= fmap show pErrs
22+ <> "infer_errors" .= fmap show infErr
docs/.vscode/settings.jsonnew file+22
@@ -0,0 +1,22 @@
1+{
2+ "latex-workshop.latex.outDir": "result",
3+ "editor.wordWrap": "on",
4+ "grammarly.userWords": [
5+ "nixpkgs",
6+ "typechecked",
7+ "typechecking"
8+ ],
9+ "latex-workshop.latex.external.build.command": "nix-build",
10+ "latex-workshop.latex.external.build.args": [
11+ "-A",
12+ "%DOCFILE%"
13+ ],
14+ "nixEnvSelector.suggestion": false,
15+ "latex-workshop.latexindent.args": [
16+ "-c",
17+ "%DIR%/",
18+ "%TMPFILE%",
19+ "-y=defaultIndent: '%INDENT%'",
20+ "-l"
21+ ]
22+}
docs/bibl.bibnew file+217
@@ -0,0 +1,217 @@
1+%% This BibTeX bibliography file was created using BibDesk.
2+%% https://bibdesk.sourceforge.io/
3+
4+%% Created for Ilya at 2021-05-15 17:02:08 +0300
5+
6+
7+%% Saved with string encoding Unicode (UTF-8)
8+
9+
10+
11+@webpage{github-source,
12+ date-added = {2021-05-15 17:00:09 +0300},
13+ date-modified = {2021-05-15 17:02:05 +0300},
14+ url = {https://github.com/ilyakooo0/tix}}
15+
16+@article{goldberg2000mercury,
17+ author = {Goldberg, Ken and Gentner, Steve and Sutter, Carl and Wiegley, Jeff},
18+ date-added = {2021-04-25 18:35:16 +0300},
19+ date-modified = {2021-04-25 18:35:16 +0300},
20+ journal = {IEEE Robotics \& Automation Magazine},
21+ number = {1},
22+ pages = {35--40},
23+ publisher = {IEEE},
24+ title = {The mercury project: A feasibility study for internet robots},
25+ volume = {7},
26+ year = {2000}}
27+
28+@article{milner1990definition,
29+ author = {Milner, Robin and Tofte, Mads},
30+ date-added = {2021-04-25 18:31:13 +0300},
31+ date-modified = {2021-04-25 18:31:13 +0300},
32+ publisher = {Citeseer},
33+ title = {The definition of Standard ML},
34+ year = {1990}}
35+
36+@article{kiselyov2013extensible,
37+ author = {Kiselyov, Oleg and Sabry, Amr and Swords, Cameron},
38+ date-added = {2021-04-25 15:05:23 +0300},
39+ date-modified = {2021-04-25 15:05:23 +0300},
40+ journal = {ACM SIGPLAN Notices},
41+ number = {12},
42+ pages = {59--70},
43+ publisher = {ACM New York, NY, USA},
44+ title = {Extensible effects: an alternative to monad transformers},
45+ volume = {48},
46+ year = {2013}}
47+
48+@inproceedings{ploeg2014reflection,
49+ author = {Ploeg, Atze van der and Kiselyov, Oleg},
50+ booktitle = {Proceedings of the 2014 ACM SIGPLAN Symposium on Haskell},
51+ date-added = {2021-04-25 15:04:56 +0300},
52+ date-modified = {2021-04-25 15:04:56 +0300},
53+ pages = {133--144},
54+ title = {Reflection without remorse: revealing a hidden sequence to speed up monadic reflection},
55+ year = {2014}}
56+
57+@article{kiselyov2015freer,
58+ author = {Kiselyov, Oleg and Ishii, Hiromi},
59+ date-added = {2021-04-25 15:04:32 +0300},
60+ date-modified = {2021-04-25 15:04:32 +0300},
61+ journal = {ACM SIGPLAN Notices},
62+ number = {12},
63+ pages = {94--105},
64+ publisher = {ACM New York, NY, USA},
65+ title = {Freer monads, more extensible effects},
66+ volume = {50},
67+ year = {2015}}
68+
69+@inproceedings{liang1995monad,
70+ author = {Liang, Sheng and Hudak, Paul and Jones, Mark},
71+ booktitle = {Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages},
72+ date-added = {2021-04-25 14:47:43 +0300},
73+ date-modified = {2021-04-25 14:47:43 +0300},
74+ pages = {333--343},
75+ title = {Monad transformers and modular interpreters},
76+ year = {1995}}
77+
78+@book{moggi1988computational,
79+ author = {Moggi, Eugenio},
80+ date-added = {2021-04-25 14:44:33 +0300},
81+ date-modified = {2021-04-25 14:44:33 +0300},
82+ publisher = {University of Edinburgh, Department of Computer Science, Laboratory for~{\ldots}},
83+ title = {Computational lambda-calculus and monads},
84+ year = {1988}}
85+
86+@inproceedings{hughes1995design,
87+ author = {Hughes, John},
88+ booktitle = {International School on Advanced Functional Programming},
89+ date-added = {2021-02-23 23:13:30 +0300},
90+ date-modified = {2021-02-23 23:13:30 +0300},
91+ organization = {Springer},
92+ pages = {53--96},
93+ title = {The design of a pretty-printing library},
94+ year = {1995}}
95+
96+@inproceedings{orchard2010haskell,
97+ author = {Orchard, Dominic and Schrijvers, Tom},
98+ booktitle = {International Symposium on Functional and Logic Programming},
99+ date-added = {2021-02-23 23:13:12 +0300},
100+ date-modified = {2021-02-23 23:13:12 +0300},
101+ organization = {Springer},
102+ pages = {56--71},
103+ title = {Haskell type constraints unleashed},
104+ year = {2010}}
105+
106+@inproceedings{serrano2016type,
107+ author = {Serrano, Alejandro and Hage, Jurriaan},
108+ booktitle = {European Symposium on Programming},
109+ date-added = {2021-02-23 23:12:58 +0300},
110+ date-modified = {2021-02-23 23:12:58 +0300},
111+ organization = {Springer},
112+ pages = {672--698},
113+ title = {Type error diagnosis for embedded DSLs by Two-Stage specialized type rules},
114+ year = {2016}}
115+
116+@inproceedings{jones1999typing,
117+ author = {Jones, Mark P},
118+ booktitle = {Haskell workshop},
119+ date-added = {2021-02-23 23:12:45 +0300},
120+ date-modified = {2021-02-23 23:12:45 +0300},
121+ title = {Typing haskell in haskell},
122+ volume = {7},
123+ year = {1999}}
124+
125+@article{leijen2005extensible,
126+ author = {Leijen, Daan},
127+ date-added = {2021-02-23 23:12:32 +0300},
128+ date-modified = {2021-02-23 23:12:32 +0300},
129+ journal = {Trends in Functional Programming},
130+ pages = {179--194},
131+ title = {Extensible records with scoped labels.},
132+ volume = {6},
133+ year = {2005}}
134+
135+@article{morris2019abstracting,
136+ author = {Morris, J Garrett and McKinna, James},
137+ date-added = {2021-02-23 23:12:00 +0300},
138+ date-modified = {2021-02-23 23:12:00 +0300},
139+ journal = {Proceedings of the ACM on Programming Languages},
140+ number = {POPL},
141+ pages = {1--28},
142+ publisher = {ACM New York, NY, USA},
143+ title = {Abstracting extensible data types: or, rows by any other name},
144+ volume = {3},
145+ year = {2019}}
146+
147+@article{jones2005practical,
148+ author = {Jones, Simon Peyton and Vytiniotis, Dimitrios and Weirich, Stephanie and Shields, Mark},
149+ date-added = {2021-02-23 23:11:33 +0300},
150+ date-modified = {2021-02-23 23:11:33 +0300},
151+ journal = {Journal of functional programming},
152+ title = {Practical type inference for arbitrary-rank types},
153+ volume = {17},
154+ year = {2005}}
155+
156+@article{wadler2003prettier,
157+ author = {Wadler, Philip},
158+ date-added = {2021-02-23 23:11:11 +0300},
159+ date-modified = {2021-02-23 23:11:11 +0300},
160+ journal = {The Fun of Programming, Cornerstones of Computing},
161+ pages = {223--243},
162+ publisher = {Citeseer},
163+ title = {A prettier printer},
164+ year = {2003}}
165+
166+@article{mitchell2012shake,
167+ author = {Mitchell, Neil},
168+ date-added = {2021-02-23 23:10:56 +0300},
169+ date-modified = {2021-02-23 23:10:56 +0300},
170+ journal = {ACM SIGPLAN Notices},
171+ number = {9},
172+ pages = {55--66},
173+ publisher = {ACM New York, NY, USA},
174+ title = {Shake before building: Replacing make with Haskell},
175+ volume = {47},
176+ year = {2012}}
177+
178+@misc{vaughanproof,
179+ author = {Vaughan, Jeff},
180+ date-added = {2021-02-23 23:10:39 +0300},
181+ date-modified = {2021-02-23 23:10:39 +0300},
182+ title = {A proof of correctness for the Hindley-Milner type inference algorithm}}
183+
184+@inproceedings{damas1982principal,
185+ author = {Damas, Luis and Milner, Robin},
186+ booktitle = {Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages},
187+ date-added = {2021-02-23 23:10:11 +0300},
188+ date-modified = {2021-02-23 23:10:11 +0300},
189+ pages = {207--212},
190+ title = {Principal type-schemes for functional programs},
191+ year = {1982}}
192+
193+@article{ben2009yaml,
194+ author = {Ben-Kiki, Oren and Evans, Clark and Ingerson, Brian},
195+ date-added = {2021-02-23 23:09:50 +0300},
196+ date-modified = {2021-02-23 23:09:50 +0300},
197+ journal = {Working Draft 2008-05},
198+ title = {Yaml ain't markup language (yaml{\texttrademark}) version 1.1},
199+ volume = {11},
200+ year = {2009}}
201+
202+@inproceedings{dolstra2008nixos,
203+ author = {Dolstra, Eelco and L{\"o}h, Andres},
204+ booktitle = {Proceedings of the 13th ACM SIGPLAN international conference on Functional programming},
205+ pages = {367--378},
206+ title = {NixOS: A purely functional Linux distribution},
207+ year = {2008}}
208+
209+@article{wand1991type,
210+ author = {Wand, Mitchell},
211+ journal = {Information and Computation},
212+ number = {1},
213+ pages = {1--15},
214+ publisher = {Elsevier},
215+ title = {Type inference for record concatenation and multiple inheritance},
216+ volume = {93},
217+ year = {1991}}
docs/default.nixnew file+40
@@ -0,0 +1,40 @@
1+{ sources ? import nix/sources.nix }:
2+let
3+ pkgs = import sources.nixpkgs { };
4+ lhs2tex = file:
5+ let
6+ name = filename file;
7+ x = pkgs.runCommand "lhs2Tex-${name}"
8+ { } ''
9+ mkdir $out
10+ ${pkgs.haskellPackages.lhs2tex}/bin/lhs2TeX --output="$out/${name}.tex" ${file}
11+ '';
12+ in
13+ "${x}/${name}.tex";
14+ filename = x: builtins.head (pkgs.lib.splitString "." (builtins.baseNameOf x));
15+in
16+builtins.listToAttrs (map
17+ (file':
18+ let file = if pkgs.lib.hasSuffix ".lhs" file'.file then lhs2tex file'.file else file'.file;
19+ in
20+ {
21+ name = filename file'.file;
22+ value = pkgs.texFunctions.runLaTeX {
23+ rootFile = file;
24+ # , generatePDF ? true # generate PDF, not DVI
25+ # , generatePS ? false # generate PS in addition to DVI
26+ extraFiles = file'.extraFiles or [ ];
27+ # , compressBlanksInIndex ? true
28+ # , packages ? [ ]
29+ texPackages = {
30+ inherit (pkgs.texlive) scheme-medium IEEEtran polytable lazylist multirow;
31+ };
32+ # , copySources ? false
33+ };
34+ })
35+ [
36+ { file = ./tech_spec.tex; }
37+ { file = ./project_proposal.tex; }
38+ { file = ./paper.lhs; extraFiles = [ ./bibl.bib ./trfrac.sty ]; }
39+ ]
40+)
docs/en_pres/img/lsp.pngnew file

Binary file not shown.

docs/en_pres/img/nixpkgs.pngnew file

Binary file not shown.

docs/en_pres/pres.mdnew file+112
@@ -0,0 +1,112 @@
1+build-lists: false
2+slidenumbers: true
3+
4+[.header: alignment(center), Avenir Next]
5+
6+<br>
7+<br>
8+
9+## Language Server for the Nix Expression Language
10+
11+<br>
12+<br>
13+
14+_Author:_ Kostyuchenko Ilya
15+
16+---
17+
18+> Nix is a powerful package manager that makes package management reliable and reproducible.
19+-- [nixos.org](https://nixos.org)
20+
21+---
22+
23+# Nix
24+
25+- Package manager
26+- Build system*
27+- Ad hoc development environments
28+- Easy (cross-community) dependency management
29+- Reproducible builds
30+- *And much more: NixOS, NixOps, Build Caching, Docker ...*
31+
32+---
33+
34+# Nix Expression Language
35+
36+```nix
37+let pkgs = import ./nixpkgs {};
38+in derivation {
39+ name = "simple";
40+ builder = "${pkgs.bash}/bin/bash";
41+ args = [ ./simple_builder.sh ];
42+ gcc = pkgs.gcc;
43+ coreutils = pkgs.coreutils;
44+ src = ./simple.c;
45+ system = builtins.currentSystem;
46+}
47+```
48+
49+---
50+
51+[.build-lists: true]
52+
53+# Project scope
54+
55+1. Develop a type system (and type checker)
56+2. Develop a Language Server
57+
58+---
59+
60+# Language Server Protocol
61+
62+![inline](img/lsp.png)
63+
64+---
65+
66+# The Nix Ecosystem
67+
68+The central repository contains more than 60000 packages.
69+
70+![right fit](img/nixpkgs.png)
71+
72+---
73+
74+# Existing approaches
75+
76+Type systems for functional languages is an actively researched field.
77+
78+The Hindley–Milner type system_[1]_ is a simple, but well-studied type system for a very simple language. It is fully decidable, does not require annotations. It is the basis for many real-world type systems.
79+
80+---
81+
82+# Methods and algorithms
83+
84+The type system will be heavily influenced by the Hindley–Milner_[1]_ type system.
85+
86+The type system will implement arbitrary-ranked polymorphism_[3]_ with deep instantiation to disambiguate types in existing untyped code.
87+
88+The type system will allow the user to influence type checking by providing explicit type annotations._[4]_
89+
90+---
91+
92+# Methods and algorithms
93+
94+The system will use the Shake build system to manage dependencies and caches._[3]_
95+
96+---
97+
98+# Expected results
99+
100+1. An executable of the Nix expression language server with an integrated type checker.
101+2. A suite of automated tests to check some of the language server functionality.
102+
103+---
104+
105+[.text: text-scale(0.7)]
106+
107+# References
108+
109+1. Damas L., Milner R. Principal type-schemes for functional programs //Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages. – 1982. – С. 207-212.
110+2. Mitchell N. Shake before building: replacing make with haskell //ACM SIGPLAN Notices. – 2012. – Т. 47. – №. 9. – С. 55-66.
111+3. Jones S. P. et al. Practical type inference for arbitrary-rank types //Journal of functional programming. – 2007. – Т. 17. – №. 1. – С. 1-82. MLA
112+4. Stuckey P. J., Sulzmann M., Wazny J. Improved inference for checking type annotations //arXiv preprint cs/0507036. – 2005. MLA
docs/en_pres/pres.pdfnew file

Binary file not shown.

docs/localSettings.yamlnew file+7
@@ -0,0 +1,7 @@
1+verbatimEnvironments:
2+ code: 1
3+
4+defaultIndent: " "
5+
6+fileExtensionPreference:
7+ lhs: 1
docs/nix/sources.jsonnew file+38
@@ -0,0 +1,38 @@
1+{
2+ "GOST": {
3+ "branch": "master",
4+ "description": "BibTEX support for GOST standard bibliographies",
5+ "homepage": "",
6+ "owner": "kia999",
7+ "repo": "GOST",
8+ "rev": "072a2ef457b5dc9e5ddc6bfeb0b6f81d4147a328",
9+ "sha256": "1969lf1jlnnmi6sr44qskac1537s094mk21kqsm30j7qlfmhdk1q",
10+ "type": "tarball",
11+ "url": "https://github.com/kia999/GOST/archive/072a2ef457b5dc9e5ddc6bfeb0b6f81d4147a328.tar.gz",
12+ "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
13+ },
14+ "niv": {
15+ "branch": "master",
16+ "description": "Easy dependency management for Nix projects",
17+ "homepage": "https://github.com/nmattia/niv",
18+ "owner": "nmattia",
19+ "repo": "niv",
20+ "rev": "af958e8057f345ee1aca714c1247ef3ba1c15f5e",
21+ "sha256": "1qjavxabbrsh73yck5dcq8jggvh3r2jkbr6b5nlz5d9yrqm9255n",
22+ "type": "tarball",
23+ "url": "https://github.com/nmattia/niv/archive/af958e8057f345ee1aca714c1247ef3ba1c15f5e.tar.gz",
24+ "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
25+ },
26+ "nixpkgs": {
27+ "branch": "nixpkgs-unstable",
28+ "description": "Nix Packages collection",
29+ "homepage": "",
30+ "owner": "NixOS",
31+ "repo": "nixpkgs",
32+ "rev": "118485230c02d13f62133bce43177ffd49495694",
33+ "sha256": "0qj95jjr8y323zw70lkbngbkvwkchzaic4a5n2b9vwd8lbyf79hq",
34+ "type": "tarball",
35+ "url": "https://github.com/NixOS/nixpkgs/archive/118485230c02d13f62133bce43177ffd49495694.tar.gz",
36+ "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
37+ }
38+}
docs/nix/sources.nixnew file+171
@@ -0,0 +1,171 @@
1+# This file has been generated by Niv.
2+
3+let
4+
5+ #
6+ # The fetchers. fetch_<type> fetches specs of type <type>.
7+ #
8+
9+ fetch_file = pkgs: name: spec:
10+ let
11+ name' = sanitizeName name + "-src";
12+ in
13+ if spec.builtin or true then
14+ builtins_fetchurl { inherit (spec) url sha256; name = name'; }
15+ else
16+ pkgs.fetchurl { inherit (spec) url sha256; name = name'; };
17+
18+ fetch_tarball = pkgs: name: spec:
19+ let
20+ name' = sanitizeName name + "-src";
21+ in
22+ if spec.builtin or true then
23+ builtins_fetchTarball { name = name'; inherit (spec) url sha256; }
24+ else
25+ pkgs.fetchzip { name = name'; inherit (spec) url sha256; };
26+
27+ fetch_git = name: spec:
28+ let
29+ ref =
30+ if spec ? ref then spec.ref else
31+ if spec ? branch then "refs/heads/${spec.branch}" else
32+ if spec ? tag then "refs/tags/${spec.tag}" else
33+ abort "In git source '${name}': Please specify `ref`, `tag` or `branch`!";
34+ in
35+ builtins.fetchGit { url = spec.repo; inherit (spec) rev; inherit ref; };
36+
37+ fetch_local = spec: spec.path;
38+
39+ fetch_builtin-tarball = name: throw
40+ ''[${name}] The niv type "builtin-tarball" is deprecated. You should instead use `builtin = true`.
41+ $ niv modify ${name} -a type=tarball -a builtin=true'';
42+
43+ fetch_builtin-url = name: throw
44+ ''[${name}] The niv type "builtin-url" will soon be deprecated. You should instead use `builtin = true`.
45+ $ niv modify ${name} -a type=file -a builtin=true'';
46+
47+ #
48+ # Various helpers
49+ #
50+
51+ # https://github.com/NixOS/nixpkgs/pull/83241/files#diff-c6f540a4f3bfa4b0e8b6bafd4cd54e8bR695
52+ sanitizeName = name:
53+ (
54+ concatMapStrings (s: if builtins.isList s then "-" else s)
55+ (
56+ builtins.split "[^[:alnum:]+._?=-]+"
57+ ((x: builtins.elemAt (builtins.match "\\.*(.*)" x) 0) name)
58+ )
59+ );
60+
61+ # The set of packages used when specs are fetched using non-builtins.
62+ mkPkgs = sources: system:
63+ let
64+ sourcesNixpkgs =
65+ import (builtins_fetchTarball { inherit (sources.nixpkgs) url sha256; }) { inherit system; };
66+ hasNixpkgsPath = builtins.any (x: x.prefix == "nixpkgs") builtins.nixPath;
67+ hasThisAsNixpkgsPath = <nixpkgs> == ./.;
68+ in
69+ if builtins.hasAttr "nixpkgs" sources
70+ then sourcesNixpkgs
71+ else if hasNixpkgsPath && ! hasThisAsNixpkgsPath then
72+ import <nixpkgs> {}
73+ else
74+ abort
75+ ''
76+ Please specify either <nixpkgs> (through -I or NIX_PATH=nixpkgs=...) or
77+ add a package called "nixpkgs" to your sources.json.
78+ '';
79+
80+ # The actual fetching function.
81+ fetch = pkgs: name: spec:
82+
83+ if ! builtins.hasAttr "type" spec then
84+ abort "ERROR: niv spec ${name} does not have a 'type' attribute"
85+ else if spec.type == "file" then fetch_file pkgs name spec
86+ else if spec.type == "tarball" then fetch_tarball pkgs name spec
87+ else if spec.type == "git" then fetch_git name spec
88+ else if spec.type == "local" then fetch_local spec
89+ else if spec.type == "builtin-tarball" then fetch_builtin-tarball name
90+ else if spec.type == "builtin-url" then fetch_builtin-url name
91+ else
92+ abort "ERROR: niv spec ${name} has unknown type ${builtins.toJSON spec.type}";
93+
94+ # If the environment variable NIV_OVERRIDE_${name} is set, then use
95+ # the path directly as opposed to the fetched source.
96+ replace = name: drv:
97+ let
98+ saneName = stringAsChars (c: if isNull (builtins.match "[a-zA-Z0-9]" c) then "_" else c) name;
99+ ersatz = builtins.getEnv "NIV_OVERRIDE_${saneName}";
100+ in
101+ if ersatz == "" then drv else ersatz;
102+
103+ # Ports of functions for older nix versions
104+
105+ # a Nix version of mapAttrs if the built-in doesn't exist
106+ mapAttrs = builtins.mapAttrs or (
107+ f: set: with builtins;
108+ listToAttrs (map (attr: { name = attr; value = f attr set.${attr}; }) (attrNames set))
109+ );
110+
111+ # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/lists.nix#L295
112+ range = first: last: if first > last then [] else builtins.genList (n: first + n) (last - first + 1);
113+
114+ # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L257
115+ stringToCharacters = s: map (p: builtins.substring p 1 s) (range 0 (builtins.stringLength s - 1));
116+
117+ # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L269
118+ stringAsChars = f: s: concatStrings (map f (stringToCharacters s));
119+ concatMapStrings = f: list: concatStrings (map f list);
120+ concatStrings = builtins.concatStringsSep "";
121+
122+ # https://github.com/NixOS/nixpkgs/blob/8a9f58a375c401b96da862d969f66429def1d118/lib/attrsets.nix#L331
123+ optionalAttrs = cond: as: if cond then as else {};
124+
125+ # fetchTarball version that is compatible between all the versions of Nix
126+ builtins_fetchTarball = { url, name ? null, sha256 }@attrs:
127+ let
128+ inherit (builtins) lessThan nixVersion fetchTarball;
129+ in
130+ if lessThan nixVersion "1.12" then
131+ fetchTarball ({ inherit url; } // (optionalAttrs (!isNull name) { inherit name; }))
132+ else
133+ fetchTarball attrs;
134+
135+ # fetchurl version that is compatible between all the versions of Nix
136+ builtins_fetchurl = { url, name ? null, sha256 }@attrs:
137+ let
138+ inherit (builtins) lessThan nixVersion fetchurl;
139+ in
140+ if lessThan nixVersion "1.12" then
141+ fetchurl ({ inherit url; } // (optionalAttrs (!isNull name) { inherit name; }))
142+ else
143+ fetchurl attrs;
144+
145+ # Create the final "sources" from the config
146+ mkSources = config:
147+ mapAttrs (
148+ name: spec:
149+ if builtins.hasAttr "outPath" spec
150+ then abort
151+ "The values in sources.json should not have an 'outPath' attribute"
152+ else
153+ spec // { outPath = replace name (fetch config.pkgs name spec); }
154+ ) config.sources;
155+
156+ # The "config" used by the fetchers
157+ mkConfig =
158+ { sourcesFile ? if builtins.pathExists ./sources.json then ./sources.json else null
159+ , sources ? if isNull sourcesFile then {} else builtins.fromJSON (builtins.readFile sourcesFile)
160+ , system ? builtins.currentSystem
161+ , pkgs ? mkPkgs sources system
162+ }: rec {
163+ # The sources, i.e. the attribute set of spec name to spec
164+ inherit sources;
165+
166+ # The "pkgs" (evaluated nixpkgs) to use for e.g. non-builtin fetchers
167+ inherit pkgs;
168+ };
169+
170+in
171+mkSources (mkConfig {}) // { __functor = _: settings: mkSources (mkConfig settings); }
docs/paper.lhsnew file+1215
@@ -0,0 +1,1215 @@
1+\documentclass[a4paper,journal,compsoc]{IEEEtran}
2+
3+% \usepackage{float}
4+\usepackage{mathtools}
5+\usepackage{hyperref}
6+\usepackage{microtype}
7+\usepackage{trfrac}
8+\usepackage{multirow}
9+\usepackage{textcomp}
10+% \usepackage{caption}
11+% \usepackage[main=english,russian]{babel}
12+
13+% \selectlanguage{english}
14+
15+% \sectionsAreChapters
16+
17+
18+%include polycode.fmt
19+
20+%format forall = "\forall"
21+%format a = "\alpha"
22+%format a'
23+%format b = "\beta"
24+%format b'
25+%format c = "\gamma"
26+%format c'
27+%format d = "\delta"
28+%format d'
29+%format s = "\sigma"
30+%format m = "\mu"
31+%format r = "\psi"
32+%format x = "\eta"
33+%format x'
34+%format y = "\zeta"
35+%format y'
36+%format ^ = " "
37+%format ^^ = "\;"
38+%format !! = "{\;}''\!\!"
39+%format <> = "\diamond"
40+
41+% \floatstyle{boxed}
42+% \newfloat{figure}{hbp}{lst}
43+
44+\newcommand{\parr}[1]{\medskip\textbf{#1}\hspace{0.6cm}}
45+\newcommand{\strOrNum}{(\text{String} || \text{Number})}
46+
47+
48+% \year{2021}
49+\title{Static analyzer for the Nix Expression Language}
50+% \author{Student, BSE174}{I. I. Kostyuchenko}
51+% \academicTeacher{Associate Professor, PhD}{V. V. Kuliamin}
52+
53+% \documentTitle{Explanatory note}
54+% \documentCode{RU.17701729.04.05-01 ПЗ 01-1}
55+
56+\author{
57+ \IEEEauthorblockN{Kostyuchenko Ilya}
58+ \IEEEauthorblockA{
59+ Faculty of Computer Science,\\
60+ Higher School of Economics,\\
61+ Moscow, Russia
62+ }
63+}
64+
65+\begin{document}
66+\maketitle
67+\thispagestyle{plain}
68+\pagestyle{plain}
69+
70+\begin{abstract}
71+ Configuring and building even the most straightforward software projects is often not simple -- it requires downloading and installing copious amounts of prerequisite software. This often makes reproducing builds of a project on different machines problematic. The Nix package manager aims to address this problem by providing a unified language for describing software packages in a purely functional way. This language is called the Nix Expression Language. Since all of the complexity of software configuration needs to be expressed in the Nix Expression Language, the expressions themselves often become pretty complicated, making it difficult to understand and extend existing expressions without introducing errors. A widespread tool for easing the understandability and correctness of expressions in other languages is static type checking. This paper will explore the techniques that can be used to add static type checking to the Nix Expression Language.
72+\end{abstract}
73+
74+% \begin{otherlanguage}{russian}
75+
76+% \begin{abstract}
77+% Настройка и сборка даже самых простых программных проектов часто бывает непростой задачей -- для этого требуется загрузить и установить большое количество необходимого программного обеспечения. Это часто делает проблематичным воспроизведение сборок проекта на разных компьютерах. Менеджер пакетов Nix стремится решить эту проблему, предоставляя единый язык для описания пакетов программного обеспечения чисто функциональным способом. Этот язык называется языком Nix Expression Language. Поскольку вся сложность конфигурации программного обеспечения должна быть выражена на языке Nix Expression Language, сами выражения часто становятся довольно сложными, что затрудняет понимание и расширение существующих выражений без ошибок. Широко распространенным инструментом для облегчения понимания и проверки корректности выражений на других языках является статическая проверка типов. В этой статье будут рассмотрены методы, которые можно использовать для добавления статической проверки типов в язык выражений Nix Expression Language.
78+% \end{abstract}
79+
80+% \end{otherlanguage}
81+
82+% \parr{Source code} \url{https://github.com/ilyakooo0/tix}
83+
84+% \newpage
85+
86+% \tableofcontents
87+
88+\section*{Introduction}
89+
90+Today developing software is riddled with large amounts of complexity -- newer software is built on top of older software, dragging the whole stack below as dependencies. As a result, building software requires a large number of dependencies to be preinstalled. Modern build systems like Gradle\footnote{\url{https://gradle.org}}, Maven\footnote{\url{https://maven.apache.org}}, and Stack\footnote{\url{https://docs.haskellstack.org/en/stable/README/}} try to mitigate the issue by automatically downloading and installing the required dependencies. However, in most cases, such tools can only manage language-level dependencies, requiring the user to manually install additional libraries and tools.
91+
92+Such manual dependency management leads to several problems. Firstly, when a user wants to work on a project he has not encountered before, he will have to install the required dependencies, leading to additional tedious work. Furthermore, the required versions of project dependencies might conflict with the versions that another project requires. The user will have to manually switch the versions of executables and libraries when switching between projects.
93+
94+So-called virtual environment tools partially solve this problem. A virtual environment is a way of restricting and customizing the available external tools (usually compilers) with the ability to switch between them dynamically. These tools can generally be split into one of two categories:
95+
96+\begin{enumerate}
97+ \item \emph{language-specific tools} which simplify installing and switching between different versions of some tools (usually compilers). Examples of such tools are:
98+ \begin{enumerate}
99+ \item |rustup|\footnote{\url{https://github.com/rust-lang/rustup}} for Rust tools
100+ \item |ghcup|\footnote{\url{https://www.haskell.org/ghcup/}} for Haskell tools
101+ \item |Ruby Version Manager|\footnote{\url{http://rvm.io}} for Ruby tools
102+ \end{enumerate}
103+ \item \emph{general-purpose tools} which automate switching the available tools (or versions of tools) that have been previously installed in some other way:
104+ \begin{enumerate}
105+ \item |direnv|\footnote{\url{https://direnv.net}}
106+ \item |autoenv|\footnote{\url{https://github.com/inishchith/autoenv}}
107+ \item |asdf|\footnote{\url{https://github.com/asdf-vm/asdf}}
108+ \item |ondir|\footnote{\url{https://github.com/alecthomas/ondir}}
109+ \end{enumerate}
110+\end{enumerate}
111+
112+Such tools still require explicit user action: the user needs to explicitly switch between (or install) the necessary tools when switching projects in the case of \emph{language-specific tools}, the user needs to explicitly install the required tools in some other way for them to be imported by \emph{general-purpose tools}.
113+
114+Secondly, manual dependency management impedes the reproducibility of the project builds -- building the same project on multiple machines will, in all likelihood, produce different results since the machines will likely differ in many ways that impact the build, such as having slightly different versions\footnote{``Version'' here refers to actual variations on the bit level, and not just version numbers.} of libraries and executables.
115+
116+Nix~\cite{dolstra2008nixos} attempts to solve the problems mentioned above by describing software project builds in a generic and language-agnostic way. Furthermore, the resulting descriptions define the build process in a complete and deterministic way -- everything that impacts the build in any way needs to be explicitly defined, even system-level libraries are reproducible on the bit level.
117+
118+Defining the build process in such a detailed and pedantic manner is not generally easy and often requires large amounts of boilerplate, which provides much room for error. While most build systems define project builds with static configurations using formats such as YAML~\cite{ben2009yaml}, Nix employs a fully-fledged programming language as its configuration language. This programming language is called the Nix Expression Language\footnote{\url{https://nixos.wiki/wiki/Nix_Expression_Language}}.
119+
120+Using a fully-fledged programming language allows the users to reuse common definitions and create new domain-specific abstractions. This helps to mitigate a lot of the aforementioned potential problems.
121+
122+Nix Expression Language is a dynamic, lazy, purely functional programming language. The purely functional nature of the language aids in build reproducibility guarantees that Nix aims to provide.
123+
124+Even considering the tremendous benefits that using a programming language for build configuration brings, the dynamic nature of the language often still makes it challenging to understand and reuse existing code. This is in part due to the large amounts of code required to describe real-world systems in all of their complexity.\footnote{The standard Nix package repository |nixpkgs| contains 2 million lines of code.}
125+
126+Refactoring existing code is also tricky since the generated expressions are only really checked for correctness\footnote{Here, ``correctness'' is used to mean the absence of evaluation-time errors.} at their evaluation time, and the evaluation time of expressions is difficult to predict due to the lazy nature of the language.
127+
128+A widespread tool for easing development and alleviate the aforementioned problems in other languages is static type checking -- the process of analyzing the types of expressions and detecting type errors in programs without evaluating them.
129+
130+Even though static type checking in most mainstream programming languages does not influence the semantics of the programs, it is nonetheless widely used. This is an indication of the usefulness of static type checking during development. Type checking helps detect likely ``incorrect'' programs without evaluating them (very helpful during refactoring) and aids in understanding existing code since types often expose some semantics of expressions (this is especially true for purely functional programs).
131+
132+The Nix Expression Language does not currently support static type checking of any kind. Of course, retrofitting a static type checker onto an existing dynamic programming language will reject programs that will not produce errors at runtime. However, this is still a goal worth pursuing because even with all of the situations when the type checker produces false negatives, inferring types for existing expressions, as mentioned above, will aid in understanding existing code and surface potentially problematic areas of code to the developer.
133+
134+\section{Nix Expression Language}
135+
136+In this chapter, we will examine the semantics of major terms of the Nix Expression Language. We will, from now on abbreviate \emph{Nix Expression Language} as \emph{Nix} as it is in most cases clear from the context what is being referred to: the language or the system as a whole.
137+
138+\subsection{Atomic types}
139+
140+Atomic types are described in table~\ref{tab:atomicTypes}.
141+
142+\begin{table}[hbp]
143+ \centering
144+ \caption{Table of atomic Nix Expression Language types}
145+ \begin{tabular}{ ||c||p{2cm}||p{4cm}|| } \hline
146+ \textbf{Atomic type} & \textbf{Description} & \textbf{Example terms} \\ \hline \hline
147+ URI & A string literal representing a URI. Does not require quoting. & \texttt{https://example.com} \\ \hline
148+ Path literal & A path literal referring to either a relative or absolute path. Does not require quoting. & \texttt{../../directory/file.txt} \\ \hline
149+ Integer & The current C implementation of Nix allows values of 64-bit signed integers. & \texttt{69} \newline \texttt{-42} \\ \hline
150+ Float & Floating point numbers. & \texttt{42.9} \newline \texttt{-69.42} \\ \hline
151+ Bool & Boolean values. & \texttt{true} \newline \texttt{false} \\ \hline
152+ Null & A type with a single value. & \texttt{null} \\ \hline
153+ \end{tabular}
154+ \label{tab:atomicTypes}
155+\end{table}
156+
157+\subsection{Strings}
158+
159+\subsubsection{Double quoted string literals}
160+
161+Double quoted string literals are string literals, just like in many other programming languages. It can contain escaped newline character literals \texttt{\textbackslash n} which will be preserved as shown in figure~\ref{lst:newlineString}.
162+
163+\begin{figure}
164+ \begin{minipage}{\textwidth}
165+ \begin{verbatim}
166+"Sampel\nPalnet"
167+ \end{verbatim}
168+ \end{minipage}
169+ \caption{Nix Expression Language double quoted string literal example}
170+ \label{lst:newlineString}
171+\end{figure}
172+
173+\subsubsection{Multiline string literals}
174+
175+Multiline string literals are enclosed by pairs of single quotes (\texttt{''} as opposed to \texttt{"}). Newlines are preserved, and indentation is stripped from the beginning of the literal. An example multiline string literal is shown in figure~\ref{lst:multilineString}.
176+
177+\begin{figure}
178+ \begin{minipage}{\textwidth}
179+ \begin{verbatim}
180+''
181+Sampel
182+Palnet''
183+
184+"Sampel\nPalnet"
185+ \end{verbatim}
186+ \end{minipage}
187+ \caption{Nix Expression Language multiline string literal example and an equivalent double quoted string literal}
188+ \label{lst:multilineString}
189+\end{figure}
190+
191+% \subsubsection{String interpolation}
192+
193+% The Nix Expression Language also allows for arbitrary expressions of the language to be interpolated in string using the following syntax: \texttt{\$\{ <expression> \}} where \texttt{<expression>} is a Nix expression.An example of string interpolation is show in figure~\ref{lst:stringInterpolation}.
194+
195+% \begin{figure}
196+% \begin{minipage}{\textwidth}
197+% \begin{verbatim}
198+% "one is ${ if 1 == 2 then "equal" else "not equal" } to two."
199+
200+% "one is not equal to two."
201+% \end{verbatim}
202+% \end{minipage}
203+% \caption{Nix Expression Language string interpolation example with the resulting string.}
204+% \label{lst:stringInterpolation}
205+% \end{figure}
206+
207+\subsection{Lists}
208+
209+Nix supports a list type. List literals are enclosed by square brackets \texttt{[]}, and the elements are separated by whitespace. Examples of list literals are shown in figure~\ref{lst:list}.
210+
211+\begin{figure}
212+ \begin{minipage}{\textwidth}
213+ \begin{verbatim}
214+[1 2 "hello" ../../file.txt]
215+ \end{verbatim}
216+ \end{minipage}
217+ \caption{Nix Expression Language List literals.}
218+ \label{lst:list}
219+\end{figure}
220+
221+\subsection{Attribute sets} \label{sec:attrSet}
222+
223+An attribute set is internally implemented as a hashmap with strings as keys where values can be arbitrary expressions. An example attribute set literal is shown in figure~\ref{lst:attrSet}.
224+
225+\begin{figure}
226+ \begin{minipage}{\textwidth}
227+ \begin{verbatim}
228+{ a = 42;
229+ b = 6 + 9;
230+ c = ../file.txt;
231+ d = "henlo, world";
232+}
233+ \end{verbatim}
234+ \end{minipage}
235+ \caption{Nix Expression Language attribute set literals.}
236+ \label{lst:attrSet}
237+\end{figure}
238+
239+Fields (keys) of an attribute set can be accessed through the \emph{dot} (\texttt{.}) operator, as shown in figure~\ref{lst:attrSetAccess}. Accessing an absent field yields a runtime error.
240+
241+\begin{figure}
242+ \begin{minipage}{\textwidth}
243+ \begin{verbatim}
244+{ a = 42;
245+ b = 6 + 9;
246+}.b
247+
248+15
249+ \end{verbatim}
250+ \end{minipage}
251+ \caption{Nix Expression Language attribute set field accessing.}
252+ \label{lst:attrSetAccess}
253+\end{figure}
254+
255+\subsection{Attribute set updates} \label{sec:update}
256+
257+There is a binary \emph{update} operator that takes two \emph{attribute sets} as operands and ``merges'' them in a shallow manner, preferring values from the right operand. The operator is written as two forward slashes \texttt{//}. This has the effect of updating the left operand with values from the right operand. An example is shown in figure~\ref{lst:update}.
258+
259+\begin{figure}
260+ \begin{minipage}{\textwidth}
261+ \begin{verbatim}
262+{x = {a = 1;}; y = 2;}
263+ // {x = "hello"; z = 1.5;}
264+
265+{ x = "hello"; y = 2; z = 1.5; }
266+ \end{verbatim}
267+ \end{minipage}
268+ \caption{Nix Expression Language attribute set updates.}
269+ \label{lst:update}
270+\end{figure}
271+
272+\subsection{Recursive attribute sets} \label{sec:recAttrSet}
273+
274+While ordinary \emph{attribute sets} discussed in section~\ref{sec:attrSet} can only reference values defined outside of the attribute set literal, \emph{recursive attribute sets} can also reference values defined in the attribute set literal itself. The keys of the attribute set are available in the scopes of the attribute set values. An example \emph{recursive attribute set} is given in figure~\ref{lst:recAttrSet}. Note that it is syntactically distinguished from normal \emph{attribute set} literals by the \texttt{rec} keyword at the beginning.
275+
276+\begin{figure}
277+ \begin{minipage}{\textwidth}
278+ \begin{verbatim}
279+rec {
280+ a = 42;
281+ b = a + 9;
282+ c = world;
283+ d = "henlo, ${c}";
284+}
285+ \end{verbatim}
286+ \end{minipage}
287+ \caption{Nix Expression Language recursive attribute set literals.}
288+ \label{lst:recAttrSet}
289+\end{figure}
290+
291+\subsection{Let expressions} \label{sec:let}
292+
293+A \emph{let expression} has two parts: \emph{declarations} and the \emph{body}. The format can be roughly described like so: \texttt{let <definitions> in <body>}. A \emph{let expression} allows us to define values in the \emph{declarations} that can be reused in the \emph{body} of the expression. Just like \emph{recursive attribute sets} from section~\ref{sec:recAttrSet} all declared values are available in scope in the defined expressions. An example of \emph{let expressions} is available in figure~\ref{lst:let}.
294+
295+\begin{figure}
296+ \begin{minipage}{\textwidth}
297+ \begin{verbatim}
298+let
299+ c = world;
300+ d = "henlo, ${c}";
301+in d
302+ \end{verbatim}
303+ \end{minipage}
304+ \caption{Nix Expression Language \emph{let} expression literals.}
305+ \label{lst:let}
306+\end{figure}
307+
308+\subsection{With expression} \label{sec:withExp}
309+
310+\emph{With expressions} are a way of bringing all values from an \emph{attribute set} into scope. It is conceptually very similar to \emph{let expressions} discussed in section~\ref{sec:let}. The syntax can be roughly described like so: \texttt{with <set>; <body>} where \texttt{<set>} is an expression which evaluates to an \emph{attribute set} and all values from the set are available as definitions in the \texttt{<body>} expression. An example of a \emph{with expression} can be found in figure~\ref{lst:with}.
311+
312+\begin{figure}
313+ \begin{minipage}{\textwidth}
314+ \begin{verbatim}
315+let
316+ c = world;
317+ d = "henlo, ${c}";
318+in d
319+ \end{verbatim}
320+ \end{minipage}
321+ \caption{Nix Expression Language \emph{with} expression literals.}
322+ \label{lst:with}
323+\end{figure}
324+
325+\section{Existing typecheckers implementations}
326+
327+In this section we will examine existing attempts at developing a typechecker for the Nix Expression Language, determine the features of the implemented type systems and assess how well maintained the implementations are.
328+
329+\subsection{regnat/tix} \label{sec:regnat/tix}
330+
331+regnat/tix\footnote{\url{https://github.com/regnat/tix}} is an implementation of a typechecker for the \emph{Nix Expression Language} implemented in \emph{OCaml}\footnote{\url{https://ocaml.org}}. The type checker itself is implemented on a different much simpler language named \emph{Nix Light}. To typecheck a normal \emph{Nix} program(expression) the program need to be first converted to an equivalent \emph{Nix Light} program. The type checker has a row-polymorphism-inspired feature: records are represented as a product of one-row types. In \emph{Nix Light} lists are represented as a single-linked heterogeneous list. The type system does not have support for parametric polymorphism in favour of a gradual typing paradigm.
332+
333+\parr{Status} The last commit was published in 2017 and the project is now abandoned in favour of regnat/ptyx which we examin in section~\ref{sec:regnat/ptyx}.
334+
335+\subsection{regnat/ptyx} \label{sec:regnat/ptyx}
336+
337+regnat/ptyx\footnote{\url{https://github.com/regnat/ptyx}} is in essence a reimplementation of regnat/tix in Haskell\footnote{\url{https://www.haskell.org}} which we examined in section~\ref{sec:regnat/tix}. The basic ideas and techniques are the same. In fact, so much so, that the simpler language is also called \emph{Nix Light} and \emph{Nix} expressions are also converted to it before type checking. There is still no support for parametric polymorphism.
338+
339+\parr{Status} The last commit was published in 2018. Unsupported language features include lists and attribute sets.
340+
341+\subsection{haskell-nix/hnix}
342+
343+haskell-nix/hnix\footnote{\url{https://github.com/haskell-nix/hnix}} is primarily not a typechecker, but rather the goal of the project is to fully reimplement the \emph{Nix Expression Language} interpreter in \emph{Haskell}. There is, however, a number of modules dedicated to a typechecker implementation which was migrated into the project. Contrary to how it may seem, the typechecker is not integrated with the rest of the project in any significant way. The type system itself is based on the Hindley-Milner type system. However, the type system was not extended with additional features to better support the dynamic nature of \emph{Nix}. For instance, there is no support for row-polymorphism which greatly impedes typechecking code that interacts with \emph{attribute sets} in any way.
344+
345+\parr{Status} Last time the typechecker was modified in any substantial way was in 2019. It does not appear to be actively developed. Furthermore, there is no description of the implemented type system.
346+
347+
348+\section{Existing type system research}
349+
350+In this section we will explore existing techniques used to develop typecheckers, and explore how they can be applicable to our implementation.
351+
352+\subsection{Type System Approach}
353+
354+There has been much research done in the field of type systems for functional programming languages. The most notable contribution was the introduction of the Damas-Milner\footnote{The Damas-Milner type system is sometimes referred to as the Hindley–Milner type system.} type system and the W inference algorithm~\cite{damas1982principal}, which was later proven to be sound and complete~\cite{vaughanproof}.
355+
356+The Damas-Milner type system is a type system for lambda calculus with parametric polymorphism. The most notable property of the Damas-Milner type system is the proven ability of the W algorithm to infer the most general types without any user-provided type annotations.
357+
358+While the Damas-Milner describes a simple language, it is robust enough to be used as the basis for more advanced type systems such as the one used in the Haskell programming language~\cite{jones1999typing}, which extends the Damas-Milner type system in many ways which break the excellent properties it provides but remains extremely useful in practice.
359+
360+Since the Nix Expression Language is a relatively simple functional programming language, extending the Damas-Milner type system and algorithms to fit the language will be the approach we take as the tried and true method.
361+
362+\subsection{Type Checker Error Handling}
363+
364+Due to the inevitable presence of false negatives during type checking, for the type checker to be useful enough to be worth implementing, the algorithm should gracefully recover after encountering expressions that it deems to be ``wrong''.
365+
366+Since the interpreter of the programs will not be related to the developed type checker in any way, the type checker can not influence the semantics of the programs. This fact can be used to implement the following failure recovery heuristic: when the type checker encounters an expression that yields type checking errors, the errors are collected to be displayed to the user, and the expression is given the least general type possible such that it does not yield type errors.
367+
368+This is, in general, always possible since any syntactically valid expression will be correct with respect to types if every subexpression is assigned the polymorphic type:
369+
370+\begin{equation}
371+ \forall \alpha. \alpha
372+\end{equation}
373+
374+In some cases, this approach will likely yield too little information to be useful, but it seems like a reasonable solution.
375+
376+\subsection{Improving Type Checker Error Reporting}
377+
378+The original W inference algorithm is a single-stage inference algorithm, meaning that it attempts to satisfy type constraints as soon as it encounters them. A consequence of this is that errors are reported as soon as they are encountered. Often, the information available about the program at the time the error had occurred is very limited due to not all of the program being processed. This leads to poor error reporting.
379+
380+In contrast to the single-stage algorithm, the two-stage algorithm~\cite{jones2005practical,serrano2016type} collects the type constraints as the first stage of type checking and solves the collected constraints as a second step. This leads to most errors occurring during the second stage when all available type information has already been collected. As a result, better type errors are produced. This is the more preferable approach for our goals.
381+
382+\subsection{Row-Polymorphism}
383+
384+One of the language-level constructs in the Nix Expression Language is the ``attribute set'' which can be thought of as a first-class hashmap with strings as keys. In combination with the dynamic nature of the language, these ``attribute sets'' have the semantics of row-polymorphic records.
385+
386+There has been some research conducted in the field of type systems with row-polymorphic records~\cite{morris2019abstracting,leijen2005extensible}. The approach that should be taken in developing a static type checker for the Nix Expression Language is describing row-polymorphic attribute sets with a construct similar\footnote{The way it should be displayed to the user will be distinct, since, unlike in Haskell, the Nix Expression Language does not have constraints as a language construct.} to Haskell constraints~\cite{orchard2010haskell}.
387+
388+% \subsection{Message Reporting}
389+
390+% Displaying errors to the user is not as simple as it might initially seem. For the type checker to be as helpful as possible, error messages should display the encountered issues in the language contexts in which they had occurred. Ideally, the errors should point to the exact terms that are most likely problematic.
391+
392+% Even if all of the information necessary for detailed error messages is collected during type checking, displaying errors to the user is a problem that deserves its own research\footnote{This also relates to how types are laid out when displaying to the user even when no errors have occurred.}. The users might have different screen sizes. The error message should reflow all of the displayed text, code, and type annotations to accommodate the available space.
393+
394+% Hughes introduced a general-purpose algebraic pretty-printer~\cite{hughes1995design}, which was later improved upon~\cite{wadler2003prettier}, to solve precisely this problem. Using one of the pretty-printers based on that research is the industry standard and will be used by our type checker.
395+
396+\section{Our Nix type system}
397+
398+As mentioned above, we have opted to use the Damas-Milner type system as a basis for our implementation. Our goal is not just to add types for the sake of types, but give additional reassurance to the developer, and reject as many potentially ``invalid'' programs as possible. If the developed typechecker processes a program without errors, then the program should have no type errors during execution.
399+
400+\subsection{Polymorphism} \label{sec:polymorphism}
401+
402+Dynamic languages have potentially limitless polymorphism – you can pass anything of any type to any function and it can potentially work without errors – it is in principal possible to check the ``types'' of passed values at runtime. This leads to the fact that there is really no way to know which ``types'' are acceptable in which positions without executing the program.
403+
404+The Nix community, just like with any other language, has developed idiomatic ways of solving problems. Some of these idioms are heavily based on polymorphic behavior at runtime. We should strive to develop a type system which supports as much of idiomatic behavior as possible (and where not possible, similar behavior should be expressible within the type system).
405+
406+Parametric polymorphism has proven to strike a nice balance between strictness, expressiveness and type inference. We feel it will be most useful as a type system for \emph{Nix}.
407+
408+Inferring types with parametric polymorphism implies generalizing the inferred types at certain points in the syntax tree. Generalization is also known as ``closing over type variable'' – it can be though of as explicitly choosing a point where the variable is quantified over. Figure~\ref{fig:closing} is an example of closing over a type variable.
409+
410+Traditionally in languages similar to \emph{simply-typed lambda calculus} generalization is performed in \emph{let} declarations – so-called \emph{let-generalization}. \emph{Nix} has a very similar \emph{let} construct as discussed in section~\ref{sec:let} which is also a great point to perform type generalization.
411+
412+\begin{figure}
413+
414+ \[
415+ (\alpha \rightarrow \beta \rightarrow \alpha) \xrightarrow{\text{close over } \alpha} (\forall \alpha.\; \alpha \rightarrow \beta \rightarrow \alpha)
416+ \]
417+ \caption{An example of closing over $\protect\alpha$. $\protect\beta$ is considered to be an open type variable.}
418+ \label{fig:closing}
419+\end{figure}
420+
421+Apart from \emph{let expressions} Nix also has \emph{attribute sets} discussed in section~\ref{sec:attrSet}, definitions in which are semantically similar to those in \emph{let expressions}. \emph{Attribute set} definitions also seem like a good point for \emph{generalization}.
422+
423+\subsection{Inferring recursive types} \label{sec:recLet}
424+
425+Recursive definitions pose a challenge for type inference without developer-supplied type annotations (which will be the case for the vast majority of code). There are three major approaches to inferring types of recursive definitions:
426+
427+\begin{enumerate}
428+ \item Infer all recursive definitions as being monomorphic. This is the approach taken in \emph{Standard ML}~\cite{milner1990definition}. The obvious drawback is the fact that types are monomorphic. This is not something we want as discussed in section~\ref{sec:polymorphism}.
429+ \item Analyze the call graph of recursive definitions, separate the definitions into strongly connected components, topologically sort the components, and infer the types of each strongly connected component separately. This is the approach taken in \emph{Haskell}~\cite{damas1982principal}. While this approach yields polymorphic types, it does not produce the ``most polymorphic'' (principal) types.
430+ \item The last implements a more complicated iteration-based type inference algorithm with a user-configurable number of iterations.~\cite{goldberg2000mercury} If the specified number of iterations is not enough to deduce the type of a recursive definition, it is rejected. The clear upside of this approach is that the inferred type (if it is given enough iterations and succeeds) is the principal (most general, most polymorphic) type of the expression.
431+\end{enumerate}
432+
433+While the last approach would allow us to, in theory, type more programs, we feel that tasking the user with configuring the typechecker would make the barrier to entry higher than it needs to be, and in practice the second approach would be useful enough (and faster), so that is the approach we chose to go with.
434+
435+\subsection{Row polymorphism}
436+
437+Nix has first-class hashmaps with strings as keys called \emph{attribute sets} as discussed in section~\ref{sec:attrSet} which are in practice used as structures in much the same way it is done in JavaScript\footnote{\url{https://www.javascript.com}}. This happens because the languages are dynamic and don't afford the programmer the ability to explicitly define custom structure types. Of course, there is the ability to not only create \emph{attribute sets}, but you can also modify existing \emph{attribute sets} as discussed in section~\ref{sec:update}.
438+
439+Of course, since \emph{attribute sets} are used as structures, their internal structure (keys and types of values) has significance and should be tracked in types just like objects and structures are tracked in most statically typed programming languages. Even though it is in most cases implemented as a mechanism that allows the programmer to introduce new types which correspond to a static set of field names and types, and the type system is presented in terms of those types, this is not significantly different from tracking keys directly. In fact, the \emph{Go}\footnote{\url{https://golang.org}} programming language has a notion of \emph{protocols} which bridges the gap between the two paradigms.
440+
441+This leads to a non-trivial typechecking case where modifying a structure leads to the resulting type depending on the type of the input structure as shown in figure~\ref{lst:update_ex}. The figure shows a lambda expression which receives an \emph{attribute set} as input, and updates the field \texttt{a} with the value of \texttt{1}. It quickly becomes problematic to derive a type for this expression if we decide to track fields at the type level: we can say that the lambda takes a value of type \texttt{\{\}} and returns a value of type \texttt{\{a = Integer;\}} (type of functions will later be written as \texttt{<input type> -> <output type>}). This might seem like a natural type to derive, however it is obviously not correct. Calling it with a values of type \texttt{\{b = String;\}} and \texttt{\{b = Float; a = Bool;\}} would both be very much valid, and would both produce different resulting types: \texttt{\{a = Integer; b = String;\}} and \texttt{\{a = Integer; b = Float;\}}. As stated above, the output type of a lambda expression like this depends on the input type.
442+
443+\begin{figure}
444+ \begin{minipage}{\textwidth}
445+ \begin{verbatim}
446+x: x // {a = 1;}
447+ \end{verbatim}
448+ \end{minipage}
449+ \caption{A lambda expression which updates an input set.}
450+ \label{lst:update_ex}
451+\end{figure}
452+
453+This problem is widely known as \emph{row polymorphism}~\cite{wand1991type} – the term \emph{row} refers to a single key-value type pair. Thus, \emph{row polymorphism} is the polymorphism of key-value pairs. This fields has already received some research attention: a recent paper on the topic was written by Morris and McKinna~\cite{morris2019abstracting}. In the paper the authors introduce the \emph{Rose}\footnote{The name is a pun on ``rows'' referring to row polymorphism.} programming language which supports \emph{row polymorphism}.
454+
455+\subsubsection{Rose} \label{sec:rose}
456+
457+In \emph{Rose} row polymorphism is implemented by introducing two predicates on types. The first one denotes a \emph{combination} of two ``record'' types:
458+
459+\begin{equation} \label{eq:combination}
460+ \alpha \odot \beta \sim \gamma
461+\end{equation}
462+
463+
464+where $\alpha$ and $\beta$ are the two types that are being combined and $\gamma$ is the resulting type. The semantics of what \emph{combination} is depend on the semantics of the language itself. Examples include:
465+
466+\begin{enumerate}
467+ \item The two types can not have overlapping rows (combining types with overlapping rows is considered an error), and the resulting type is the union of the rows from the two types.
468+ \item The two types can have overlapping rows, and the resulting type is either a left-biased or right-biased union of the rows from the two types.
469+\end{enumerate}
470+
471+\def\clt{\mathrel{\mathrlap{\bigcirc}\!<\:}}
472+
473+The second predicate is:
474+
475+\begin{equation}
476+ \alpha \clt \beta
477+\end{equation}
478+
479+where all rows from $\alpha$ are present in $\beta$. This predicate isn't strictly necessary, and can be expressed through predicate~\ref{eq:combination}:
480+
481+\begin{equation}
482+ \alpha \clt \gamma = \exists \beta. \; \beta \odot \alpha \sim \gamma
483+\end{equation}
484+
485+Nevertheless, this predicate was still introduced as it closely matches the language term syntax and simplifies further processing of type.
486+
487+\subsubsection{Row polymophism in Nix} \label{sec:nixRowPoly}
488+
489+When deciding how to represent row polymorphism in Nix it is helpful to examine the base operators which would conjure row-related predicates during type inference. They include:
490+
491+\begin{enumerate}
492+ \item Attribute set field accessing (the \texttt{.} operator) as discussed in section~\ref{sec:attrSet}
493+ \item Attribute set field accessing with a default value (\texttt{\{a = 1;\}.b or 8})
494+ \item Attribute set field presence check (\texttt{\{a = 1;\} ? a})
495+ \item Attribute set updates (the \texttt{//} operator) as discussed in section~\ref{sec:attrSet}
496+\end{enumerate}
497+
498+In terms of the predicates described in section~\ref{sec:rose} the expression \texttt{x: x.a}, which is a lambda expression which return the field \texttt{a} from the attribute set supplied as the argument, would have the following type:
499+
500+\begin{equation}
501+ \forall \alpha \beta. \; (\{ a = \beta; \} \clt \alpha) \Rightarrow \alpha \rightarrow \beta
502+\end{equation}
503+
504+Analogously, the expression \texttt{x: y: x // {a = y;}}, which returns the attribute set supplied as the argument updated with the field \texttt{a} supplied as the second argument, would have the following type:
505+
506+\begin{equation}
507+ \forall \alpha \beta \gamma. \; (\alpha \odot \{ a = \beta; \} \sim \gamma) \Rightarrow \alpha \rightarrow \beta \rightarrow \gamma
508+\end{equation}
509+
510+The types of the other two expressions are not fully expressible with the predicates from \emph{Rose}. This is due to the \emph{Rose} type system not having support for working with missing (optional) rows as it is very dynamic in nature. Nix, on the other hand, being a dynamic language, has full support for introspecting values at runtime, including branching on the presence of a key in an \emph{attribute set} as mentioned before.
511+
512+\subsubsection{Nix row predicates}
513+
514+When deciding how to model the four base row-related operations we decided to derive the predicates from the operations themselves. This would yield simpler types, and having simpler types for base operations leads to simpler types overall. Furthermore, the type system would in all likelihood be easier for Nix developers to use and understand if it is expressed in terms of familiar operations.
515+
516+We will now describe the row predicates we have chosen for Nix. Note the analogy with the enumeration from section~\ref{sec:nixRowPoly}.
517+
518+\newcommand{\update}{\mathbin{/\!\!/}}
519+\newcommand{\optDot}{.\!?}
520+
521+\paragraph{Attribute set field predicate} \label{sec:attrSetPred}
522+
523+\begin{equation} \label{eq:fieldPred}
524+ \alpha. \text{x} = \beta
525+\end{equation}
526+
527+The type $\alpha$ should be an attribute set and it should contain a field $x$ of the type $\beta$. This predicate arises from the use of the \emph{dot operator} (\texttt{.}) as discussed in section~\ref{sec:attrSet}. The syntax was chosen to be analogous to that of the Nix term syntax.
528+
529+The term \texttt{x: x.y} would yield the following type:
530+
531+\begin{equation} \label{eq:dotExample}
532+ \forall \alpha \beta. \; \alpha.\text{y} = \beta \Rightarrow \alpha \rightarrow \beta
533+\end{equation}
534+
535+\paragraph{Optional attribute set field predicate}
536+
537+\begin{equation} \label{eq:optFieldPred}
538+ \alpha \optDot \text{x} = \beta
539+\end{equation}
540+
541+The type $\alpha$ should be an attribute set and if it contains the field $x$, then the type of the field should be $\beta$. This predicate arises from the combination of the \emph{dot operator} (\texttt{.}) and the \emph{or operator} (\texttt{or}) which is used to supply a fallback value if the attribute set does not contain the required field. The syntax was chosen to be analogous to that of the Nix term syntax.
542+
543+The term \texttt{x: x.y or 1} would yield the following type:
544+
545+\begin{equation} \label{eq:optFieldPredExample}
546+ \forall \alpha. \; \alpha \optDot \text{y} = \text{Number} \Rightarrow \alpha \rightarrow \text{Number}
547+\end{equation}
548+
549+This predicate also arises from the use of the \emph{attribute set field presence check operator} (\texttt{?}). In that case the
550+
551+The term \texttt{x: x ? y} would yield the following type:
552+
553+\begin{equation} \label{eq:optFieldPredExample2}
554+ \forall \alpha \beta. \; \alpha \optDot \text{y} = \beta \Rightarrow \alpha \rightarrow \text{Bool}
555+\end{equation}
556+
557+\paragraph{Record update predicate}
558+
559+\begin{equation} \label{eq:upatePred}
560+ \alpha \update \beta \sim \gamma
561+\end{equation}
562+
563+All $\alpha$, $\beta$ and $\gamma$ should be \emph{attribute sets}. The \emph{attribute set} $\gamma$ should contain all fields from both $\alpha$ and $\beta$, preferring the types from $\beta$ if they happen to overlap. That is, if $\alpha$ and $\beta$ both contain a field with the same name, then $\gamma$ should contain the same field with the type from $\beta$. This behavior matches the way the \emph{update operator} (\texttt{//}) works as discussed in section~\ref{sec:update}.
564+
565+The term \texttt{x: y: x // y} would yield the following type:
566+
567+\begin{equation} \label{eq:updatePredExample}
568+ \forall \alpha \beta \gamma. \; \alpha \update \beta \sim \gamma \Rightarrow \alpha \rightarrow \beta \rightarrow \gamma
569+\end{equation}
570+
571+\subsection{Atomic types}
572+
573+Nix is a dynamic language, and as such, allows dynamic coercions between certain types. This means that we can not use the dynamic types from the interpreter to perform static type checking -- if we did that we would reject \emph{a lot} of valid programs.\footnote{``Valid'' not just in the sense that they would not produce runtime errors, but ``valid'' in the sense that the programmer would judge the program as being ``correct''.}
574+
575+For this reason, we will have to define a smaller set of static types that will be employed in our type system. The static types along with the corresponding dynamic types from table~\ref{tab:atomicTypes} are shown in table~\ref{tbl:staticTypes}.
576+
577+\begin{table}[hbp]
578+ \centering
579+ \caption{Mapping from static types to dynamic types}
580+ \begin{tabular}{ ||c||c|| } \hline
581+ \textbf{Static type} & \textbf{Dynamic types} \\ \hline \hline
582+ \multirow{3}{*}{String} & URI \\ \cline{2-2}
583+ & Path literal \\ \cline{2-2}
584+ & String \\ \hline \hline
585+ \multirow{2}{*}{Number} & Integer \\ \cline{2-2}
586+ & Float \\ \hline \hline
587+ Bool & Bool \\ \hline \hline
588+ Null & Null \\ \hline
589+ \end{tabular}
590+ \label{tbl:staticTypes}
591+\end{table}
592+
593+\begin{table*}[hbp]
594+ \centering
595+ \caption{Table of Nix Expression Language operators and their static types}
596+ \begin{tabular}{||c||c||c||c||} \hline
597+ \textbf{Operator} & \textbf{Operator description} & \textbf{Static type} \\ \hline \hline
598+ \texttt{-} & Numeric negation & $\text{Number} \rightarrow \text{Number}$ \\ \hline
599+ \texttt{!} & Boolean negation & $\text{Bool} \rightarrow \text{Bool}$ \\ \hline
600+ \texttt{++} & List concatenation & $\forall \alpha. \; [\alpha] \rightarrow [\alpha] \rightarrow [\alpha]$ \\ \hline
601+ \texttt{==} & Equality & $\forall \alpha. \; \alpha \rightarrow \alpha \rightarrow \text{Bool}$ \\ \hline
602+ \texttt{!=} & Not equality & $\forall \alpha. \; \alpha \rightarrow \alpha \rightarrow \text{Bool}$ \\ \hline
603+ \texttt{<} & Less than & $\text{Number} \rightarrow \text{Number} \rightarrow \text{Bool}$ \\ \hline
604+ \texttt{<=} & Less than or equal & $\text{Number} \rightarrow \text{Number} \rightarrow \text{Bool}$ \\ \hline
605+ \texttt{>} & Greater than & $\text{Number} \rightarrow \text{Number} \rightarrow \text{Bool}$ \\ \hline
606+ \texttt{>=} & Greater than or equal & $\text{Number} \rightarrow \text{Number} \rightarrow \text{Bool}$ \\ \hline
607+ \texttt{+} & Addition & $\forall \alpha. \; \strOrNum \sim \alpha \Rightarrow \alpha \rightarrow \alpha \rightarrow \alpha$ \\ \hline
608+ \texttt{-} & Subtraction & $\text{Number} \rightarrow \text{Number} \rightarrow \text{Number}$ \\ \hline
609+ \texttt{*} & Multiplication & $\text{Number} \rightarrow \text{Number} \rightarrow \text{Number}$ \\ \hline
610+ \texttt{/} & Division & $\text{Number} \rightarrow \text{Number} \rightarrow \text{Number}$ \\ \hline
611+ \texttt{\&\&} & Boolean ``and'' & $\text{Bool} \rightarrow \text{Bool} \rightarrow \text{Bool}$ \\ \hline
612+ \texttt{||||} & Boolean ``and'' & $\text{Bool} \rightarrow \text{Bool} \rightarrow \text{Bool}$ \\ \hline
613+ \texttt{->} & Implication & $\text{Bool} \rightarrow \text{Bool} \rightarrow \text{Bool}$ \\ \hline
614+ \texttt{//} & Attribute set update & $ \forall \alpha \beta \gamma. \; \alpha \update \beta \sim \gamma \Rightarrow \alpha \rightarrow \beta \rightarrow \gamma$ \\ \hline
615+ \end{tabular}
616+ \label{tbl:allOperators}
617+\end{table*}
618+
619+\subsection{Addition} \label{sec:addition}
620+
621+Among all operators, addition (\texttt{+}) has semantics that stand out from the rest: addition can be applied to either two \texttt{Number} operands or two \texttt{String} operands. All other operands are monomorphic in that they can only be applied to two operands of a predefined type. In that sense addition in polymorphic.
622+
623+Since our current implementation does not support sum types (see section~\ref{sec:sumTypes} for more detail), it is non-trivial to encode the type of addition in our current type system. We wanted to encode the type without having to resort to extending the type system too much (without implementing sum types).
624+
625+The simplest approach is to introduce a simple predicate which is satisfied only if the argument is either of type \texttt{Number} or \texttt{String}:
626+
627+\begin{equation}
628+ \strOrNum \sim \alpha
629+\end{equation}
630+
631+With this predicate the type of the addition operator (\texttt{+}) now becomes:
632+
633+\begin{equation}
634+ \forall \alpha. \; \strOrNum \sim \alpha \Rightarrow \alpha \rightarrow \alpha \rightarrow \alpha
635+\end{equation}
636+
637+\subsection{Typing rules}
638+
639+What follows is a formal description of the developed type system. For brevity we have omitted rules for typing literal constant values described in tables \ref{tab:atomicTypes} and \ref{tbl:staticTypes}, and most operators described in table~\ref{tbl:allOperators} as those rules are trivial.
640+
641+\subsubsection{Lists}
642+
643+After doing an informal analysis of existing Nix codebases we have concluded that it is not idiomatic to have heterogeneous lists in Nix. Thus, we have chosen to enforce homogenous lists in our static type system:
644+
645+\begin{equation}
646+ \trfrac
647+ {\Gamma \vdash e_1:\tau \quad \cdots \quad \Gamma \vdash e_n:\tau}
648+ {\Gamma \vdash [e_1 \; \cdots \; e_n ] : [\tau]}
649+\end{equation}
650+
651+\begin{equation}
652+ \trfrac
653+ {\Gamma \vdash e_1:[\tau] \qquad \Gamma \vdash e_2 : [\tau]}
654+ {\Gamma \vdash (e_1 +\!\!+ \: e_2) : [\tau]}
655+\end{equation}
656+
657+\subsubsection{Lambda abstractions}
658+
659+Typing rules for both lambda abstraction definitions and application is common among type system derived from Hindley-Milner:
660+
661+\begin{equation}
662+ \trfrac
663+ {\Gamma \vdash e_1:\tau_1 \rightarrow \tau_2 \qquad \Gamma \vdash e_2 : \tau_1}
664+ {\Gamma \vdash (e_1 \; e_2) : \tau_2}
665+\end{equation}
666+
667+\begin{equation}
668+ \trfrac
669+ {\Gamma, \text{x}: \tau_1 \vdash e : \tau_2}
670+ {\Gamma \vdash (\text{x: } e) : \tau_1 \rightarrow \tau_2}
671+\end{equation}
672+
673+\subsubsection{Addition}
674+
675+The rationale for having a special case for the addition operator is layed out in section~\ref{sec:addition}:
676+
677+\begin{equation}
678+ \trfrac
679+ {\Gamma \vdash e_1:\tau \qquad \Gamma \vdash e_2 : \tau \qquad \Gamma \vdash (\text{String} || \text{Number}) \sim \tau}
680+ {\Gamma \vdash (e_1 + e_2) : \tau}
681+\end{equation}
682+
683+\subsubsection{Conditional expressions}
684+
685+Conditionals are also very similar to what is described in the Hindley–Milner type system:
686+
687+\begin{equation}
688+ \trfrac
689+ {\Gamma \vdash e_1 : \text{Bool} \qquad \Gamma \vdash e_2 : \tau \qquad \Gamma \vdash e_3 : \tau}
690+ {\Gamma \vdash (\text{if} \; e_1 \; \text{then} \; e_2 \; \text{else} \; e_3) : \tau}
691+\end{equation}
692+
693+\subsubsection{\texttt{let}-generalization}
694+
695+Just like in many functional type systems, our type system will support let-generalization -- constants bound in a \texttt{let} expression are generalized as much as possible. All free type variables that were defined while inferring an expression are closed over.
696+
697+A simple version of rule is as follows:
698+
699+\begin{equation} \label{eq:letGeneralization}
700+ \trfrac
701+ {\Gamma \vdash e_1 : \tau_1 \qquad \Gamma, (\text{x}: \forall \{\text{ftv}(\tau_1) - \text{ftv}(\Gamma)\}. \; \tau_1) \vdash e_2 : \tau_2}
702+ {\Gamma \vdash (\text{let} \; \text{x = } e_1; \; \text{in} \; e_2) : \tau_2}
703+\end{equation}
704+
705+where $\text{fvt}(\alpha)$ is the set of all free variables that occur in $\alpha$.
706+
707+Of course, this does not cover all possible syntactic constructs -- it is only concerned with inferring a single declaration. It is trivially extendable to a series of independent declarations. Inferring recursive declarations is discussed in section~\ref{sec:recLet}.
708+
709+Inferring \emph{let expressions} trivially extends to inferring fields of \emph{attribute sets} and is omitted for brevity.
710+
711+\subsubsection{Instantiation}
712+
713+When using expressions with generalized types, we need to instantiate theme to concrete types:
714+
715+\begin{equation}
716+ \trfrac
717+ {\Gamma \vdash e : \forall \alpha. \; \tau_1}
718+ {\Gamma \vdash e: [\alpha \rightarrow \tau_2] \tau_1}
719+\end{equation}
720+
721+where $[\alpha \rightarrow \beta]\gamma$ denotes the result of substituting all free occurrences of $\alpha$ in $\gamma$ with $\beta$.
722+
723+\subsubsection{Attribute sets}
724+
725+Basic \emph{attribute set} operations are now trivially expressible through the predicate defined in section~\ref{sec:attrSetPred}:
726+
727+\begin{equation}
728+ \trfrac
729+ {\Gamma \vdash e_1 : \tau_1 \qquad \Gamma \vdash e_2 : \tau_2 \qquad \Gamma \vdash \tau_1 \update \tau_2 \sim \tau_3}
730+ {\Gamma \vdash (e_1 \update e_2) : \tau_3}
731+\end{equation}
732+
733+\begin{equation}
734+ \trfrac
735+ {\Gamma \vdash e.\text{x} = \tau}
736+ {\Gamma \vdash (e.\text{x}) : \tau}
737+\end{equation}
738+
739+\begin{equation}
740+ \trfrac
741+ {\Gamma \vdash e_2 : \tau \qquad \Gamma \vdash e_1 \optDot \text{x} = \tau}
742+ {\Gamma \vdash (e.\text{x} \; \text{or} \; e_2) : \tau}
743+\end{equation}
744+
745+\begin{equation}
746+ \trfrac
747+ {\Gamma \vdash e \optDot \text{x} = \tau}
748+ {\Gamma \vdash (e \; \text{?} \; \text{x}) : \text{Bool}}
749+\end{equation}
750+
751+When defining typing rules for \emph{attribute sets} we will use the notion of rows similar to what is used in the \emph{Rose} paper~\cite{morris2019abstracting}: for typing purposes an attribute set will be defined as a product of a set of \emph{rows} – key-value pairs: $\Pi \xi$ where $\xi$ is a set of \emph{rows}.
752+
753+A key-value pair will be denoted as $\text{x} = \alpha$ where `x' is the name of a field and $\alpha$ is the type of the field.
754+
755+Of course, a \emph{set of rows} can not contain multiple \emph{rows} with the same key.
756+
757+With that we can define how those predicate are actually satisfied:
758+
759+\begin{equation}
760+ \trfrac
761+ {(\text{x} = \tau) \in \xi}
762+ {(\Pi \xi).\text{x} = \tau}
763+\end{equation}
764+
765+\begin{equation}
766+ \trfrac
767+ {\text{x} \notin \xi}
768+ {(\Pi \xi) \optDot \text{x} = \tau}
769+\end{equation}
770+
771+\begin{equation}
772+ \trfrac
773+ {\Gamma \vdash \tau_1.\text{x} = \tau_2}
774+ {\Gamma \vdash (\tau_1 \optDot \text{x}) = \tau_2}
775+\end{equation}
776+
777+where $(\text{x} = \tau) \in \xi$ denotes the presence of the \emph{row} $(\text{x} = \tau)$ in the \emph{set} $\xi$, and $\text{x} \notin \xi$ denotes the absence of a \emph{row} with the key `x' in the \emph{set} $\xi$.
778+
779+The definition of the ``update'' predicate uses standard set comprehension notation:
780+
781+\begin{equation}
782+ \trfrac
783+ {}
784+ {\Pi \xi_1 \update \Pi \xi_2 \sim \Pi (\xi_2 \cup \{a = \tau || (a = \tau) \leftarrow \xi_1, a \notin \xi_2\})}
785+\end{equation}
786+
787+\subsubsection{with expressions} \label{sec:withExprType}
788+
789+\emph{with expressions} discussed in section~\ref{sec:withExp} are not difficult to define a typing rule for:
790+
791+\begin{equation}
792+ \trfrac
793+ {\Gamma \vdash e_1: \Pi \xi \qquad \Gamma, \xi \vdash e_2 : \tau}
794+ {\Gamma \vdash (\text{with } e_1\text{; } e_2) : \tau}
795+\end{equation}
796+
797+\emph{with expressions} do, however, pose a particularly hard problem when implementing the type system – we can't always statically know the fields in $e_1$ -- it can be passed in as a function argument. This means that the typing environment of a function can depend on its argument. Implementing this in a wholistic manner would require our type system support a form of dependent types. That is not a direction we want to pursue -- introducing dependent types would greatly complicate the type system to a point where automated type inference would not practical and the type system would be a lot harder to work with.
798+
799+Instead, we opted to define a heuristic which in our testing was proven to cover most practical cases: when encountering a variable in the body of a \emph{with expression}:
800+
801+\begin{enumerate}
802+ \item if a variable was defined in the body of the with expression and is in scope, return that type
803+ \item if the \emph{attribute set} from the \emph{with expression} is statically known and defined a key with the appropriate name then return that types
804+ \item if the \emph{attribute set} from the \emph{with expression} is not statically known and the outer context of the \emph{with expression} contains a variable with the appropriate name, return that type
805+ \item else, create a constraint that the first operand in the \emph{with expression} contains a field with the appropriate name and type
806+\end{enumerate}
807+
808+\section{Implementation} \label{sec:implementation}
809+
810+In this section we will explore the techniques employed in our implementation~\cite{github-source} of our type system. It is implemented in the \emph{Haskell}\footnote{\url{https://www.haskell.org}} programming language.
811+
812+% \subsubsection{Effects}
813+
814+% Our implementation uses the \emph{freer-simple}\footnote{\url{https://github.com/lexi-lambda/freer-simple}} library as the effects system.
815+
816+% The
817+
818+% \begin{code}
819+% type InferEffs =
820+% !! [ Fresh,
821+% Reader SrcSpan,
822+% Writer (SrcSpan, Errors),
823+% Writer PredicateError,
824+% Writer Pred,
825+% State (MKM.Map Pred),
826+% VariableMapEff,
827+% Writer UnifyingError,
828+% Writer InferError,
829+% State Substitution,
830+% TreeTracer
831+% ]
832+% \end{code}
833+
834+\subsection{Effect system}
835+
836+\subsubsection{Monad transformers}
837+
838+Developing a typechecker requires working with a large amount of non-trivial algorithms which influence each other in complex ways. A widespread way of dealing with such situations is introducing a common computational environment through which different parts of the program can interact (instead of ``manually'' passing state around). A well-established way of handling state in purely functional programming languages is the \emph{Monad} abstraction~\cite{moggi1988computational}.
839+
840+It is natural to want to abstract the underlying monad – explicitly declare what features a function actually needs the monad to have. Furthermore, it is desireable to decompose the features of the a monad not only in function definitions, but also at the call site – it is desireable to be able to conjure up monads with desireable traits in an ad-hoc manner. This has been achieved a while ago with \emph{monad transformers}~\cite{liang1995monad}.
841+
842+A drawback of monad transformers is their somewhat rigid nature – every behavior a monad needs to have needs to be defined as a distinct transformer with appropriate instances. The instances need to not only implement the desired behavior, but also explicitly ``pass through'' \emph{all} other effects that it might be used in combination with. This means that adding extra behavior leads to a large amount of boilerplate. Furthermore, monads themselves (monad transformers) are not in general composable, leading to a whole other set of problems. In addition, it is cumbersome to locally change parts of the underlying implementation of a monad dynamically – it might be useful to tweak some behavior in only a part of an algorithm, leaving the rest to the abstract implementation; monad transformers don't really have such capabilities.
843+
844+\subsubsection{Free monad extensible effects}
845+
846+Recently a new approach to effect systems has been getting more attention – \emph{free monads algebraic effects}~\cite{kiselyov2015freer, ploeg2014reflection, kiselyov2013extensible}. This approach solves the problems with monad transformers mentioned above. Rather than being transformers, effects are described as \emph{functors}. The composability problem is resolved due to functors being in general composable. Contrary to how monad transformers operate, effects (or their carriers) in \emph{free monads algebraic effects} (we will from now on refer to them as just \emph{algebraic effects}) don't have any particular interpretation of the effect associated with them. Effects are interpreted in an ad-hoc manner at the call site. Furthermore, this allows us to dynamically modify the behavior of effects without changing the types or implementations of functions we wish to change the behavior of.
847+% How we use \emph{algebraic effects} will be discussed in more detail in section~\ref{sec:implementation}.
848+
849+\subsection{Substitutions}
850+
851+\subsubsection{Substitutions in other implementations}
852+
853+In most typechecker implementations a substitution is a mapping from \emph{type variables} to \emph{types}. These substitutions are usually generated during the unification of type constraints and are, in general, applied to types as soon as they are available.
854+
855+The notion of substitution composition is usually taken to mean a binary operation which produces a new substitution that when applied (|sub|) to a type would produce the same result as sequentially applying the two source substitutions:
856+
857+\begin{code}
858+sub (s1 . s2) = sub s1 . sub s2
859+\end{code}
860+
861+\subsubsection{Substitutions in our implementation}
862+
863+In our implementation the application of substitutions is delayed as much as possible. They are applied in exactly two cases:
864+
865+\begin{enumerate}
866+ \item Right before unifying a constraint
867+ \item Right before closing over a type
868+\end{enumerate}
869+
870+This choice has several implications. Firstly, we can never have conflicting ``keys'' in substitutions (which is not the case in other implementations). Using this information we can define stronger substitution composition:
871+
872+\begin{code}
873+newtype Substitution = Substitution
874+ {unSubstitution :: Map TypeVariable NType}
875+
876+instance Semigroup Substitution where
877+ a'@(Substitution a) <> b'@(Substitution b) =
878+ Substitution $ M.unionWith undefined
879+ (fmap (sub b') a)
880+ (fmap (sub a') b)
881+\end{code}
882+
883+
884+This means that the order of composition does no longer matter, and applying the composition of substitutions yields more information than applying them sequentially.
885+
886+Another consequence of the decision to delay substitutions is that now the role of the |infer| step of typechecking only does the following three things:
887+
888+\begin{enumerate}
889+ \item returns a type variable that represents the type of the expression being inferred
890+ \item emits constraints generated during inferring
891+ \item emits predicates generated during inferring
892+\end{enumerate}
893+
894+\subsection{Typing context}
895+
896+The typing context in our implementation, in essence, consists of two distinct data structures:
897+
898+\begin{enumerate}
899+ \item the types of variables currently in scope
900+ \item the predicates which are applicable to those types
901+\end{enumerate}
902+
903+\subsubsection{Variables in scope}
904+
905+Note that in practice, the ``variables in scope'' data structure only needs to contain type variables since we apply substitutions as late as possible.
906+
907+In actual fact, due to the heuristics described in section~\ref{sec:withExprType}, the types of variables in scope can not be represented as a static data structure but rather is implemented as a scoped effect\footnote{Effects in our case are implemented using the \emph{freer-simple} library: \url{https://github.com/lexi-lambda/freer-simple}}:
908+
909+\begin{code}
910+data VariableMapEff x where
911+ LookupVariable
912+ :: VarName
913+ -> VariableMapEff (Maybe Scheme)
914+
915+lookupVar
916+ :: Member VariableMapEff eff
917+ => VarName -> Eff eff (Maybe Scheme)
918+lookupVar = send . LookupVariable
919+\end{code}
920+
921+This allows us to dynamically redefine what it means to look up a variable in terms of its implementation in the outer context.
922+
923+\subsubsection{Predicates}
924+
925+Predicates can, on the other hand, be stored as a static data structure. The only non-standard behavior is that the set of predicates needs to be queried and manipulated based on the types that they contain rather than on the predicates themselves.
926+
927+For this reason, we have developed a data structure we call ``multi-keyed map''.
928+
929+\begin{code}
930+class (Ord (Key t), Ord t) => Keyable t where
931+ type Key t :: Type
932+ getKeys :: t -> [Key t]
933+
934+data MultiKeyedMap t = MultiKeyedMap
935+ (M.Map (Key t) (S.Set t)) (S.Set t)
936+\end{code}
937+
938+The data structure is the product of two other data structures:
939+
940+\begin{enumerate}
941+ \item A map, mapping possible keys of the stored |t| to a set of values that contain the given key
942+ \item A set that contains the values that don't contain any keys
943+\end{enumerate}
944+
945+The |Keyable| typeclass is used to extract the keys from the values that need to be stored.
946+
947+The union of two maps is defined trivially -- by taking the union of the inner structures:
948+
949+\begin{code}
950+instance (Ord (Key t), Ord t)
951+ => Semigroup (MultiKeyedMap t) where
952+ (MultiKeyedMap x x') <> (MultiKeyedMap y y') =
953+ MultiKeyedMap
954+ (M.unionWith S.union x y) (x' <> y')
955+\end{code}
956+
957+Creating a singleton map from a single values is defined like so:
958+
959+\begin{code}
960+singleton :: Keyable t => t -> MultiKeyedMap t
961+singleton t = case getKeys t of
962+ [] -> MultiKeyedMap M.empty (S.singleton t)
963+ ks@(_ : _) -> MultiKeyedMap
964+ (M.fromList $ fmap (,s) ks) S.empty
965+ where
966+ s = S.singleton t
967+\end{code}
968+
969+With these operations defining the |insert| operation becomes trivial:
970+
971+\begin{code}
972+insert
973+ :: Keyable t
974+ => t -> MultiKeyedMap t -> MultiKeyedMap t
975+insert t m = m <> singleton t
976+\end{code}
977+
978+Now we come to the lookup operation. Note that the algorithmic complexity of querying the predicates by a type they contain is now the cost of an ordinary map lookup -- $O(log(n))$ where $n$ is the number of values contained in the map (in our case the number of all types referenced from within the predicates):
979+
980+\begin{code}
981+lookup
982+ :: Keyable t
983+ => Key t -> MultiKeyedMap t -> S.Set t
984+lookup k (MultiKeyedMap m _) =
985+ fromMaybe S.empty $ M.lookup k m
986+\end{code}
987+
988+\subsection{Closing over type variables}
989+
990+An observation we can make is the following: it only makes sense to close over the type variables that were generated during the inference of the type we are closing over. Any other type variables either:
991+
992+\begin{enumerate}
993+ \item are not present in the type
994+ \item are used in an outer lexical scope (environment)
995+\end{enumerate}
996+
997+This greatly simplifies implementing the typing rule~\ref{eq:letGeneralization} since instead of having to calculate a set of free type variables of the whole context, we only need to obtain a predicate that identifies if a type variable was introduced during the inference of an expression. This is made even easier if type variables are internally represented as integers, as they often are.
998+
999+In our case, this is complicated by the fact that we need to introduce type variables which are fields of an \emph{attribute set} from an outer lexical scope. This is problematic because while the type variable can be defined during inference, it is actually logically defined at the same position as the initial \emph{attribute set}; it has the same lexical scope as the \emph{attribute set}. So, the lexical scope of a type variable can not be derived from the inference context of an expression.
1000+
1001+A solution we came up with is to have two ways a type variable can be constructed -- as an ordinary type variable backed by a single integer or as a sub-type variable that has the same lexical scope as another type variable:
1002+
1003+\begin{code}
1004+data TypeVariable
1005+ = TypeVariable Int
1006+ | SubTypeVariable Int Int
1007+\end{code}
1008+
1009+This way, when applying a predicate to check the lexical scope of a type variable, we can always restrict ourselves to the first integer.
1010+
1011+\section{Evaluation of our implementation}
1012+
1013+In this section, we will examine how our implementation of the typechecker behaves on real input.
1014+
1015+\subsection{Evaluating nixpkgs}
1016+
1017+To evaluate our typechecker implementation~\cite{github-source}, we collected \emph{Nix} source files from the largest \emph{Nix} package repository – \emph{nixpkgs}\footnote{\url{https://github.com/NixOS/nixpkgs}}. Due to our current implementation not supporting file imports (file imports are the responsibility of the system calling the typechecker, not the type checker itself), the files were filtered down to those that do not contain import statements.
1018+
1019+Running our typechecker on the test set of \emph{Nix} source files results in \emph{1963} out of \emph{2948} (67\%) typechecking with no type errors.
1020+
1021+We believe this is a very good result since the files were not prepared in any way and were taken as-is from the package repository. Furthermore, it is important to note that rejecting a portion of ``valid'' programs is an unavoidable property of static typecheckers.
1022+
1023+We would also like to point out that even in those cases when type errors were encountered during typechecking, the typechecker still produces output types that can be useful to the developer and can be used for further typechecking of larger expressions (though providing fewer guarantees).
1024+
1025+\subsection{Evaluating common expressions}
1026+
1027+We will now examine a few language constructs to see how our typechecker handles them and what errors it can detect.
1028+
1029+\subsubsection{Script interpreters}
1030+
1031+In listing~\ref{lst:interpreters} we present a sample script that demonstrates our type inference algorithm.
1032+
1033+The function \texttt{getScriptInterpreters} takes a single ``package'' structure and returns a list of interpreters used in the scripts of the package. Out type inference algorithm correctly infers the following type of the function:
1034+
1035+\begin{equation}
1036+ \forall \alpha \beta \gamma. \; (\alpha. \text{scripts} = [\beta], \beta. \text{interpreter} = \gamma) \Rightarrow \alpha \rightarrow [\gamma]
1037+\end{equation}
1038+
1039+The constant \texttt{package} contains a sample ``package'' structure with three scripts. In real code, the structure would be a lot more complex, but it is simplified for brevity.
1040+
1041+The result of the whole expression (applying \texttt{getScriptInterpreters} to \texttt{package}) is correctly inferred by our type checker to have the type:
1042+
1043+\begin{equation}
1044+ [\text{String}]
1045+\end{equation}
1046+
1047+\begin{figure}
1048+ \begin{minipage}{\textwidth}
1049+ \begin{verbatim}
1050+let getScriptInterpreters = x:
1051+ builtins.map
1052+ (y: y.interpreter)
1053+ x.scripts;
1054+ package = {
1055+ scripts = [
1056+ {interpreter = "bash";}
1057+ {interpreter = "zsh";}
1058+ {interpreter = "fish";}
1059+ ];
1060+ };
1061+in getScriptInterpreters package
1062+\end{verbatim}
1063+ \end{minipage}
1064+ \caption{A sample nix program which gathers all interpreters used by a script in a package.}
1065+ \label{lst:interpreters}
1066+\end{figure}
1067+
1068+If a programmer makes a certain class of mistakes when developing the program, our typechecker would report an error. For example, the programmer might forget to access the ``scripts'' field of the package and pass the whole package by accident:
1069+
1070+\begin{verbatim}
1071+getScriptInterpreters =
1072+ x: builtins.map (y: y.interpreter) x;
1073+\end{verbatim}
1074+
1075+In that case, when evaluating the whole expression from listing~\ref{lst:interpreters}, he would receive the following error from the typechecker: ``could not match list with type \texttt{\{scripts = [{interpreter = String;}]\}}''. This error is a result of trying to \texttt{map} over an attribute set.
1076+
1077+\subsubsection{Haskell packages}
1078+
1079+In listing~\ref{lst:haskellPackages}, we defined a function \texttt{haskellPackage} that takes parameters for a Haskell package and returns a configuration that might describe how to build the package. Out tool correctly infers the type of the function:
1080+
1081+\begin{equation}
1082+ \begin{aligned}
1083+ \forall \alpha \beta. \; &
1084+ \\ ( & \alpha \optDot \text{compilerFlags} = [\text{String}],
1085+ \\ & \alpha \optDot \text{compilerVersion} = \text{String},
1086+ \\ & \alpha.\text{src} = \beta)
1087+ \\ \Rightarrow & \alpha
1088+ \\ \rightarrow & \{ \text{compiler} = \text{String};
1089+ \\ & \text{compilerFlags} = [\text{String}];
1090+ \\ & \text{src} = \beta; \}
1091+ \end{aligned}
1092+\end{equation}
1093+
1094+By the derived type of the function, we can clearly see that the \texttt{compilerFlags} and \texttt{compilerVersion} fields of the input attribute set are optional.
1095+
1096+The result of the whole expression is a list of applications of the \texttt{haskellPackage} function to multiple configurations. Ou implementation correctly infers the following type:
1097+
1098+\begin{equation}
1099+ [{\text{compiler} = \text{String}; \text{compilerFlags} = [\text{String}]; \text{src} = \text{String};}]
1100+\end{equation}
1101+
1102+\begin{figure}
1103+ \begin{minipage}{\textwidth}
1104+ \begin{verbatim}
1105+let haskellPackage = x: {
1106+ compiler = "ghc" + (x.compilerVersion or "900");
1107+ inherit (x) src;
1108+ compilerFlags = x.compilerFlags or ["-O3" "-j"];
1109+};
1110+in [
1111+ (haskellPackage {
1112+ src = ./project-m36;
1113+ compilerVersion = "865";
1114+ })
1115+ (haskellPackage {
1116+ src = ./pandoc;
1117+ compilerFlags = ["-static"];
1118+ })
1119+]
1120+ \end{verbatim}
1121+ \end{minipage}
1122+ \caption{A sample nix program which defined several haskell packages..}
1123+ \label{lst:haskellPackages}
1124+\end{figure}
1125+
1126+A mistake that is easy to make here is to forget to quote the \texttt{compilerVersion} field, leading to the type being `Number' instead of `String'. In that case, our implementation will convey exactly that in an error.
1127+
1128+Another common mistake is specifying the \texttt{compilerFlags} field as a single `String' instead of a list. In that case, our implementation will emit an appropriate error without the need to execute the expression.
1129+
1130+\section{Possible improvements}
1131+
1132+\subsection{Making predicates more user-friendly}
1133+
1134+\subsubsection{A novel technique}
1135+
1136+The reader might observe that, although the predicates have a parallel with the Nix term syntax, visually parsing predicates and mentally applying them to the specified type variables can be difficult even in such simple examples. Here we will explore a technique that can be used to make these predicates easier for the programmer to work with.
1137+
1138+The technique is based on the fact that a type variable by itself can only convey the following information:
1139+
1140+\begin{enumerate}
1141+ \item positional information -- a specific position in a type
1142+ \item identity information -- the type variable is equivalent to other type variables with the same name within the scope where it is declared
1143+\end{enumerate}
1144+
1145+Note that all of what follows is only concerned with syntactic constructs. It does in no way alter the semantic of the predicates described above.
1146+
1147+We would like to point out that all of the predicates have an operand which is the ``result'' of the predicate -- a single type variable that is said to be equivalent to a more complex expression. That is $\beta$ in predicates \ref{eq:fieldPred} and \ref{eq:optFieldPred}, and $\gamma$ in predicate \ref{eq:upatePred}.
1148+
1149+The observation we need to make is that \emph{referential transparency}\footnote{\url{https://en.wikipedia.org/wiki/Referential_transparency}} is a natural notion in functional programming languages like Nix, and it is natural to replace variables with their definitions. In some sense, the ``results'' of predicates described above can be interpreted as being ``defined'' by the predicate to be ``equal'' to the combination of the other operands and, as such, can be replaced with their definitions.
1150+
1151+This means that we can syntactically replace \emph{type variables} with a portion of a predicate -- replace the variable with the definition. If we apply this technique to the type~\ref{eq:dotExample}, we get the following type:
1152+
1153+\begin{equation}
1154+ \forall \alpha. \; \alpha \rightarrow \alpha.\text{y}
1155+\end{equation}
1156+
1157+When applied to the type~\ref{eq:updatePredExample}, it yields:
1158+
1159+\begin{equation}
1160+ \forall \alpha \beta. \; \alpha \rightarrow \beta \rightarrow (\alpha \update \beta)
1161+\end{equation}
1162+
1163+We believe the derived types above are a lot easier to understand than their initial counterparts.
1164+
1165+\subsubsection{Implementation notes}
1166+
1167+For practical reasons, when applying the technique, there should be a threshold that limits the syntactic complexity of types that can be ``inlined''. This is due to the types being potentially as big as literals in the source expressions.
1168+
1169+The complexity of types should also be used as a heuristic in cases where there are multiple potential ``definitions'' for the same type variable – it is preferable to use the ``definitions'' with the lowest syntactic complexity as it leads to simpler types.
1170+
1171+\subsubsection{Limitations}
1172+
1173+The technique is not applicable if the ``result'' of a predicate is not a type variable like in type \ref{eq:optFieldPredExample2}.
1174+
1175+Another limitation is that we can not remove predicates if their ``result'' type variable is not present in the head of the type like in type \ref{eq:optFieldPredExample}, since we would be losing typing information by doing so.
1176+
1177+\subsection{Type hints}
1178+
1179+Dynamic types in Nix contain more information than our static type system can convey. A usability improvement to provide more utility to the programmer might be to allow extra information to be tagged onto type information and propagated during type inference. This information would not influence the typechecking algorithm in any way. It would only provide utility to the person reading the resulting types or to external tools.
1180+
1181+Some information that might be useful as type hints:
1182+
1183+\begin{enumerate}
1184+ \item The dynamic type of strings (URI, Path, etc.) – useful information for the programmer
1185+ \item Programmer-supplied annotations. When writing nix expressions, it is common practice to have a program in some other programming language embedded in Nix as a string literal. It would be useful to propagate information about the underlying programming language to aid IDEs -- they could enable special syntax highlighting and linting based on the programming language.
1186+\end{enumerate}
1187+
1188+\subsection{Sum types} \label{sec:sumTypes}
1189+
1190+In our static type system, we introduced a ``special case'' for the \emph{addition operator} as it could be applied to a number of different types.
1191+
1192+The idea of this improvement is to generalize the case and allow the type system to handle arbitrary sums of arbitrary types. This can be implemented as a predicate stating that a type variable can be a certain type:
1193+
1194+\begin{equation}
1195+ \alpha \lessdot \beta
1196+\end{equation}
1197+
1198+where $\beta$ can be the type $\alpha$. With this predicate, our ``String or Number'' predicate can be expressed like so:
1199+
1200+\begin{equation}
1201+ \strOrNum \sim \alpha = (\text{String} \lessdot \alpha, \text{Number} \lessdot \alpha)
1202+\end{equation}
1203+
1204+\section*{Conclusion}
1205+
1206+In this paper, we have examined the existing approaches which have been used in developing type systems for functional programming languages. We have then adapted the existing approaches and developed a new static type system for the Nix Expression Language. We have also developed a preliminary implementation of our type system, which we tested on an existing codebase. We have also outlined further practical improvements to our implementation, which could improve the developer experience.
1207+
1208+\newpage
1209+
1210+\bibliographystyle{IEEEtran}
1211+\bibliography{bibl}
1212+
1213+% \registrationList
1214+
1215+\end{document}
docs/pres/img/lsp.pngnew file

Binary file not shown.

docs/pres/img/nixpkgs.pngnew file

Binary file not shown.

docs/pres/pres.mdnew file+213
@@ -0,0 +1,213 @@
1+build-lists: true
2+slidenumbers: true
3+
4+[.header: alignment(center), Avenir Next]
5+
6+## Языковой сервер для Nix Expression Language
7+
8+## Language Server for the Nix Expression Language
9+
10+<br>
11+
12+_Автор:_ Костюченко Илья Игоревич
13+
14+_Руководитель:_ Кулямин Виктор Вячеславович, Доцент, базовая кафедра "Системное программирование"
15+
16+---
17+
18+> Nix is a powerful package manager that makes package management reliable and reproducible.
19+-- [nixos.org](https://nixos.org)
20+
21+---
22+
23+# Nix
24+
25+- Package manager
26+- Build system*
27+- Ad hoc development environments
28+- Easy (cross-community) dependency management
29+- Reproducible builds
30+- *And much more: NixOS, NixOps, Build Caching, Docker ...*
31+
32+---
33+
34+# Nix Expression Language
35+
36+- Purely functional
37+ - No shared mutable state
38+ - Easy to reason about
39+ - Easy reuse
40+- Lazy
41+- Strict, but not static typing
42+
43+---
44+
45+# Nix Expression Language
46+
47+```nix
48+let pkgs = import ./nixpkgs {};
49+in derivation {
50+ name = "simple";
51+ builder = "${pkgs.bash}/bin/bash";
52+ args = [ ./simple_builder.sh ];
53+ gcc = pkgs.gcc;
54+ coreutils = pkgs.coreutils;
55+ src = ./simple.c;
56+ system = builtins.currentSystem;
57+}
58+```
59+
60+---
61+
62+# Language Server Protocol
63+
64+The Language Server Protocol (LSP) defines the protocol used between an editor or IDE and a language server that provides language features like autocomplete, go to definition, find all references etc.
65+
66+---
67+
68+# Language Server Protocol
69+
70+![inline](img/lsp.png)
71+
72+---
73+
74+[.text: text-scale(0.85)]
75+
76+# Terms and definitions
77+
78+**Type system** – a logical system comprising a set of rules that assigns a property called a type to the various constructs of a computer program
79+
80+**Type checking** – the process of verifying and enforcing the constraints of types.
81+
82+**Hindley–Milner type system** – a classical type system for the lambda calculus with parametric polymorphism.
83+
84+**Language Server** – a service for analyzing code in a specific language which can be used in many code editors.
85+
86+---
87+
88+# Relevance
89+
90+The Nix ecosystem is slowly becoming popular.
91+
92+The central repository contains more than 60000 packages.
93+
94+There is a need to make writing Nix expressions less error-prone.
95+
96+![right fit](img/nixpkgs.png)
97+
98+---
99+
100+# The goal
101+
102+1. Develop a type system for the existing Nix expression language
103+2. Develop a type checker for the type system
104+3. Develop a Language server for the Nix expression language integrating the type checker
105+
106+---
107+
108+# Existing approaches
109+
110+Type systems for functional languages is an actively researched field.
111+
112+The Hindley–Milner type system_[1]_ is a simple, but well-studied type system for a very simple language. It is fully decidable, does not require annotations. It is the basis for many real-world type systems.
113+
114+---
115+
116+# Existing solutions
117+
118+## Type systems
119+
120+- github.com/regnat/ptyx – Abandoned and incomplete.
121+- github.com/regnat/tix – An older version of ptyx. Abandoned, terribly incomplete.
122+- github.com/haskell-nix/hnix – has a module with a type checker. Is very experimental and is not used.
123+
124+---
125+
126+# Existing solutions
127+
128+## Language servers
129+
130+- github.com/nix-community/rnix-lsp/ – Basic goto and error reporting. No type system, extremely simple.
131+- github.com/nix-community/vscode-nix-ide – Basic instantiation error reporting. (`nix-instantiate`)
132+
133+---
134+
135+# Functional requirements
136+
137+- The system should perform type checking for expression.
138+
139+- The system should analyze conditional statements where the condition consists only of type checks and boolean operators built into the Nix expression language.
140+
141+- The system should analyze the types and presence of attributes in attribute sets.
142+
143+- The system should report encountered typechecking.
144+
145+---
146+
147+# Functional requirements
148+
149+- The system should provide the location of definitions for all locally used terms .
150+
151+- The system should report the use of undefined terms through means defined by the Language Server Protocol.
152+
153+- The system should report the types of requested expressions through means defined by the Language Server Protocol.
154+
155+---
156+
157+# Functional requirements
158+
159+- The system should provide code completions suggestions from the variables currently in scope and expressions built into the language.
160+
161+- The system should provide a way for the programmer to explicitly annotate types of expressions which will influence type checking.
162+
163+---
164+
165+# Methods and algorithms
166+
167+The type system will be heavily influenced by the Hindley–Milner_[1]_ type system.
168+
169+The type system will implement arbitrary-ranked polymorphism_[3]_ with deep instantiation to disambiguate them in existing untyped code.
170+
171+The type system will allow the user to influence type checking by providing explicit type annotations._[4]_
172+
173+---
174+
175+# Methods and algorithms
176+
177+The system will use the Shake build system to manage dependencies and caches._[3]_
178+
179+---
180+
181+# Used tools
182+
183+1. Haskell
184+2. Nix
185+3. Visual Studio Code
186+4. Haskell Language Server
187+5. Haskell Stack
188+
189+---
190+
191+# Used libraries
192+
193+1. hnix – Nix expression language parsing, will need to be forked
194+2. shake
195+3. acts – semigroup actions
196+
197+---
198+
199+# Expected results
200+
201+1. An executable of the Nix expression language server with an integrated type checker.
202+2. A suite of automated tests to check some of the language server functionality.
203+
204+---
205+
206+[.text: text-scale(0.7)]
207+
208+# References
209+
210+1. Damas L., Milner R. Principal type-schemes for functional programs //Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages. – 1982. – С. 207-212.
211+2. Mitchell N. Shake before building: replacing make with haskell //ACM SIGPLAN Notices. – 2012. – Т. 47. – №. 9. – С. 55-66.
212+3. Jones S. P. et al. Practical type inference for arbitrary-rank types //Journal of functional programming. – 2007. – Т. 17. – №. 1. – С. 1-82. MLA
213+4. Stuckey P. J., Sulzmann M., Wazny J. Improved inference for checking type annotations //arXiv preprint cs/0507036. – 2005. MLA
docs/pres/pres.pdfnew file

Binary file not shown.

docs/pres_2/img/nixpkgs.pngnew file

Binary file not shown.

docs/pres_2/img/paper.pngnew file

Binary file not shown.

docs/pres_2/img/ter.pngnew file

Binary file not shown.

docs/pres_2/pres.mdnew file+407
@@ -0,0 +1,407 @@
1+build-lists: true
2+slidenumbers: true
3+footer: Kostyuchenko Ilya, Static analyzer for the Nix Expression Language
4+
5+[.header: alignment(center), Avenir Next]
6+
7+
8+## Static analyzer for the Nix Expression Language
9+
10+### Статический анализатор для Nix Expression Language
11+
12+<br>
13+<br>
14+
15+_Author:_ Kostyuchenko Ilya
16+
17+_Supervisor:_ Victor Kuliamin, Associate Professor, PhD
18+
19+#### _Source code:_ [github.com/ilyakooo0/tix](https://github.com/ilyakooo0/tix)
20+
21+---
22+
23+## Nix is a powerful package manager that makes package management reliable and reproducible.
24+
25+#### – [nixos.org](https://nixos.org)
26+
27+---
28+
29+[.build-lists: false]
30+
31+# Nix
32+
33+- Package manager
34+- Build system*
35+- Ad hoc development environments
36+- Easy (cross-community) dependency management
37+- Reproducible builds
38+- *And much more: NixOS, NixOps, Build Caching, Docker ...*
39+
40+---
41+
42+[.build-lists: false]
43+
44+# Nix Expression Language
45+
46+[.column]
47+
48+- Purely functional
49+- Lazy
50+- **Strict, but not static typing**
51+
52+[.column]
53+
54+```nix
55+let pkgs = import ./nixpkgs {};
56+in derivation {
57+ name = "simple";
58+ builder = "${pkgs.bash}/bin/bash";
59+ args = [ ./simple_builder.sh ];
60+ gcc = pkgs.gcc;
61+ coreutils = pkgs.coreutils;
62+ src = ./simple.c;
63+ system = builtins.currentSystem;
64+}
65+```
66+
67+---
68+
69+[.text: text-scale(0.55)]
70+
71+# Terms and definitions
72+
73+**Type** – an attribute of data which tells the compiler or interpreter how the programmer intends to use the data
74+
75+**Type system** – a logical system comprising a set of rules that assigns a property called a type to the various constructs of a computer program
76+
77+**Type checking** – the process of verifying and enforcing the constraints of types.
78+
79+**Hindley–Milner type system** – a classical type system for the lambda calculus with parametric polymorphism.
80+
81+**Parametric polymorphism** – a type of polymorphism where types are specified by abstract symbols that can represent any type.
82+
83+**Row polymorphism** – a kind of polymorphism that allows one to write programs that are polymorphic on record field types.
84+
85+---
86+
87+# Relevance
88+
89+The Nix ecosystem is slowly becoming popular.
90+
91+The central repository contains more than 60000 packages.
92+
93+There is a need to make writing Nix expressions less error-prone.
94+
95+![right fit](img/nixpkgs.png)
96+
97+---
98+
99+# Relevance
100+
101+Nix Expression Language: **Strict, but not static typing**.
102+
103+Adding static typing would:
104+
105+- Increase reliability of code
106+- Lower costs of development (resolving issue earlier is cheaper)
107+
108+<!-- _The typechecker should help find issues in existing code_ -->
109+
110+---
111+
112+# The goal
113+
114+1. Develop a static type system for the existing Nix expression language
115+2. Develop a type checker for this static type system
116+
117+---
118+
119+# Existing typecheckers
120+
121+- github.com/regnat/ptyx – Abandoned and incomplete.
122+- github.com/regnat/tix – An older version of ptyx. Abandoned, terribly incomplete.
123+- github.com/haskell-nix/hnix – has a module with a type checker. Is very experimental and is not used.
124+
125+---
126+
127+# Existing approaches
128+
129+Type systems for functional languages is an actively researched field.
130+
131+The Hindley–Milner type system_[1]_ is a simple, but well-studied type system for a very simple language. It is fully decidable, does not require annotations. It is the basis for many real-world type systems.
132+
133+---
134+
135+# Methods and algorithms
136+
137+The developed type system is heavily influenced by the Hindley–Milner_[1]_ type system.
138+
139+
140+---
141+
142+# Methods and algorithms
143+
144+The developed type system supports parametric polymorphism to support code that does not require a specific type.
145+
146+```nix
147+x: y: x ++ y
148+```
149+
150+```
151+∀ α. [α] -> [α] -> [α]
152+```
153+
154+---
155+
156+# Methods and algorithms
157+
158+The developed type system implements row polymorphism to work with attribute sets.
159+
160+```nix
161+x: x.v + 69
162+```
163+
164+```
165+∀ α. (α.v = Number) => α -> Number
166+```
167+
168+<br />
169+
170+```nix
171+x: x // {v = "hello";}
172+```
173+
174+```
175+∀ α β. (α // {v = String;} ~ β) => α -> β
176+```
177+
178+---
179+
180+[.build-lists: false]
181+
182+# Used tools
183+
184+1. Haskell
185+2. Visual Studio Code
186+3. Haskell Language Server
187+4. Haskell Stack
188+
189+---
190+
191+# Implementation
192+
193+The typechecker is implemented in a two-step architecture:
194+
195+1. Inferring the types of terms and collecting constraints
196+2. Solving the collected constraints
197+
198+---
199+
200+# Results
201+
202+- Theoretical
203+ - A static type system for the Nix Expression Language
204+
205+- Practical
206+
207+ - A typechecker executable that successfully typechecks _most_ of the selected files from _nixpkgs_.
208+
209+ - The typechecker supports all language constructs.
210+
211+![.right .fit](img/ter.png)
212+
213+---
214+
215+# Potential future developments
216+
217+- Add support for user-supplied type annotations.
218+- Type holes
219+- Language Server Integration
220+- Better type rendering
221+- Sum types
222+
223+---
224+
225+[.build-lists: false]
226+[.text: text-scale(0.7)]
227+
228+# References
229+
230+1. L. Damas and R. Milner, “Principal type-schemes for functional pro- grams,” in Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, 1982, pp. 207–212.
231+2. E. Dolstra and A. Loh, “Nixos: A purely functional linux distribution,” in Proceedings of the 13th ACM SIGPLAN international conference on Functional programming, 2008, pp. 367–378.
232+3. J. G. Morris and J. McKinna, “Abstracting extensible data types: or, rows by any other name,” Proceedings of the ACM on Programming Languages, vol. 3, no. POPL, pp. 1–28, 2019.
233+4. D. Leijen, “Extensible records with scoped labels.” Trends in Functional Programming, vol. 6, pp. 179–194, 2005.
234+
235+---
236+
237+# Demonstration
238+
239+---
240+
241+## Parametric polymorphism
242+
243+```nix
244+let f = x: y: { a = x; b = y + 1;}; in f
245+```
246+
247+```
248+∀ α. α -> Integer -> {a = α; b = Integer;}
249+```
250+
251+---
252+
253+## Parametric polymorphism
254+
255+```nix
256+let f = x: y: { a = x; b = y + 1;}; in f
257+```
258+
259+```
260+∀ α. α -> Integer -> {a = α; b = Integer;}
261+```
262+
263+<br>
264+
265+```nix
266+let f = x: y: { a = x; b = y + 1;}; in f "hello" 42
267+```
268+
269+```
270+{a = String; b = Integer;}
271+```
272+
273+---
274+
275+## Row-polymorphism with _attribute sets_
276+
277+```nix
278+let f = x: x.a; in f
279+```
280+
281+```
282+∀ α β. (α.a = β) => α -> β
283+```
284+
285+---
286+
287+
288+
289+## Row-polymorphism with _attribute sets_
290+
291+```nix
292+let f = x: x.a; in f
293+```
294+
295+```
296+∀ α β. (α.a = β) => α -> β
297+```
298+
299+<br>
300+
301+```nix
302+let f = x: x.a; in f {a = 1; b = "hello";}
303+```
304+
305+```
306+Integer
307+```
308+
309+---
310+
311+## Row-polymorphism with _attribute sets_
312+
313+```nix
314+let f = x: x.a; in f
315+```
316+
317+```
318+∀ α β. (α.a = β) => α -> β
319+```
320+
321+<br>
322+
323+```nix
324+let f = x: x.a; in f {a = "1"; b = "hello";}
325+```
326+
327+```
328+String
329+```
330+
331+---
332+
333+## Row-polymorphism with _attribute sets_
334+
335+```nix
336+let f = x: x.a; in f
337+```
338+
339+```
340+∀ α β. (α.a = β) => α -> β
341+```
342+
343+<br>
344+
345+```nix
346+let f = x: x.a; in f {b = "hello";}
347+```
348+
349+```
350+Error: key "a" not present in { b = String; }
351+```
352+
353+---
354+
355+## Row-polymorphism with _attribute sets_
356+
357+```nix
358+let f = x: x // {a = 69;}; in f
359+```
360+
361+```
362+∀ α β. (α // {a = Integer;} ~ β) => α -> β
363+```
364+
365+---
366+
367+## Row-polymorphism with _attribute sets_
368+
369+```nix
370+let f = x: x // {a = 69;}; in f
371+```
372+
373+```
374+∀ α β. (α // {a = Integer;} ~ β) => α -> β
375+```
376+
377+<br>
378+
379+```nix
380+let f = x: x // {a = 69;}; in f {a = "hello"; b = "world";}
381+```
382+
383+```
384+{a = Integer; b = String;}
385+```
386+
387+---
388+
389+## Row-polymorphism with _attribute sets_
390+
391+```nix
392+let f = x: x // {a = 69;}; in f
393+```
394+
395+```
396+∀ α β. (α // {a = Integer;} ~ β) => α -> β
397+```
398+
399+<br>
400+
401+```nix
402+let f = x: x // {a = 69;}; in f {}
403+```
404+
405+```
406+{a = Integer;}
407+```
docs/pres_2/pres.pdfnew file

Binary file not shown.

docs/project_proposal.texnew file+131
@@ -0,0 +1,131 @@
1+\documentclass[a4paper,conference]{IEEEtran}
2+
3+\usepackage{xcolor}
4+\usepackage[hidelinks]{hyperref}
5+\usepackage{url}
6+\usepackage[main=english]{babel}
7+% \usepackage[T1]{fontenc}
8+% \usepackage[utf8]{inputenc} %support umlauts in the input
9+
10+\title{Language Server for the Nix Expression Language}
11+
12+\author{
13+ \IEEEauthorblockN{Kostyuchenko Ilya}
14+ \IEEEauthorblockA{
15+ Faculty of Computer Science,\\
16+ Higher School of Economics,\\
17+ Moscow, Russia
18+ }
19+}
20+
21+\begin{document}
22+\maketitle
23+
24+\begin{abstract}
25+ Configuring and building even the most straightforward software projects is often not simple -- it requires downloading and installing copious amounts of prerequisite software. This often makes reproducing builds of a project on different machines problematic. The Nix package manager aims to address this problem by providing a unified language for describing software packages in a purely functional way. This language is called the Nix Expression Language. Since all of the complexity of software configuration needs to be expressed in the Nix Expression Language, the expressions themselves often become quite complicated, making it difficult to understand and extend existing expressions without introducing errors. A widespread tool for easing the understandability and correctness of expressions in other languages is static type checking. This paper will explore the techniques that can be used to add static type checking to the Nix Expression Language. We will also investigate making development even more comfortable with the help of the Language Server Protocol.
26+\end{abstract}
27+
28+\begin{IEEEkeywords}
29+ programming languages, type systems, type inference, language server protocol, Nix Expression Language, build systems
30+\end{IEEEkeywords}
31+
32+\section{Introduction}
33+
34+Today developing software is riddled with large amounts of complexity -- newer software is built on top of older software, dragging the whole stack below as dependencies. As a result, building software requires a large number of dependencies to be preinstalled. Modern build systems like Gradle\footnote{\url{https://gradle.org}}, Maven\footnote{\url{https://maven.apache.org}}, and Stack\footnote{\url{https://docs.haskellstack.org/en/stable/README/}} try to mitigate the issue by automatically downloading and installing the required dependencies. However, in most cases, such tools can only manage language-level dependencies, requiring the user to install additional libraries and tools manually.
35+
36+Such manual dependency management leads to several problems. Firstly, when a user wants to work on a project he has not encountered before, he will have to install the required dependencies, leading to additional tedious work. Furthermore, the required versions of project dependencies might conflict with the versions that another project requires. The user will have to manually switch the versions of executables and libraries when switching between projects.
37+
38+Secondly, manual dependency management impedes the reproducibility of the project builds -- building the same project on multiple machines will, in all likelihood, produce different results since the machines will likely differ in many ways that impact the build, such as having slightly different versions\footnote{``Version'' here refers to actual variations on the bit level, and not just version numbers.} of libraries and executables.
39+
40+Nix~\cite{dolstra2008nixos} attempts to solve the problems mentioned above by describing software project builds in a generic and language-agnostic way. Furthermore, the resulting descriptions define the build process in a complete and deterministic way -- everything that impacts the build in any way needs to be explicitly defined, even system-level libraries are reproducible on the bit level.
41+
42+Defining the build process in such a detailed manner is not easy. While most build systems define project builds with static configurations using formats such as YAML~\cite{ben2009yaml}, Nix employs a fully-fledged programming language as its configuration language. This programming language is called the Nix Expression Language\footnote{\url{https://nixos.wiki/wiki/Nix_Expression_Language}}.
43+
44+\section{Nix Expression Language}
45+
46+Nix Expression Language is a dynamic, lazy, purely functional programming language. The purely functional nature of the language aids in build reproducibility guarantees that Nix aims to provide.
47+
48+The fact that the Nix configuration language is a programming language certainly helps manage the complexities\footnote{The sheer amount of configuration required is itself large enough to be problematic.} defining \emph{everything} involved in building a software project. Even so, the dynamic nature of the language often makes it challenging to understand and reuse existing code.
49+
50+Refactoring existing code is also tricky since the generated expressions are only really checked for correctness\footnote{Here, ``correctness'' is used to mean the absence of evaluation-time errors.} at their evaluation time, and the evaluation time of expressions is difficult to predict due to the lazy nature of the language.
51+
52+\section{Static type checking}
53+
54+Static type checking is the process of analyzing the types of expressions and detecting type errors in programs without evaluating them.
55+
56+Even though static type checking in most mainstream programming languages does not influence the semantics of the programs, it is nonetheless widely used. This is an indication of the usefulness of static type checking during development. Type checking helps detect likely ``incorrect'' programs without evaluating them (very helpful during refactoring), and aids in understanding existing code since types often expose some semantics of expressions (this is especially true for purely functional programs).
57+
58+The Nix Expression Language does not currently support static type checking of any kind. Of course, retrofitting a static type checker onto an existing dynamic programming language will reject programs that will not produce errors at runtime. However, this is still a goal worth pursuing because even with all of the situations when the type checker produces false negatives, inferring types for existing expressions, as mentioned above, will aid in understanding existing code and surface potentially problematic areas of code to the developer.
59+
60+\section{Type System Approach}
61+
62+There has been much research done in the field of type systems for functional programming languages. The most notable contribution was the introduction of the Damas-Milner\footnote{The Damas-Milner type system is sometimes referred to as the Hindley–Milner type system.} type system and the W inference algorithm~\cite{damas1982principal}, which was later proven to be sound and complete~\cite{vaughanproof}.
63+
64+The Damas-Milner type system is a type system for lambda calculus with parametric polymorphism. The most notable property of the Damas-Milner type system is the proven ability of the W algorithm to infer the most general types without any user-provided type annotations.
65+
66+While the Damas-Milner describes a simple language, it is robust enough to be used as the basis for more advanced type systems such as the one used in the Haskell programming language~\cite{jones1999typing}, which extends the Damas-Milner type system in many ways which break the excellent properties it provides but remains extremely useful in practice.
67+
68+Since the Nix Expression Language is a relatively simple functional programming language, extending the Damas-Milner type system and algorithms to fit the language will be the approach we take as the tried and true method.
69+
70+\section{Type Checker Error Handling}
71+
72+Due to the inevitable presence of false negatives during type checking, for the type checker to be useful enough to be worth implementing, the algorithm should gracefully recover after encountering expressions that it deems to be ``wrong''.
73+
74+Since the interpreter of the programs will not be related to the developed type checker in any way, the type checker can not influence the semantics of the programs. This fact can be used to implement the following failure recovery heuristic: when the type checker encounters an expression that yields type checking errors, the errors are collected to be displayed to the user, and the expression is given the least general type possible such that it does not yield type errors.
75+
76+This is, in general, always possible since any syntactically valid expression will be correct with respect to types if every subexpression is assigned the polymorphic type:
77+
78+\begin{equation}
79+ \forall \alpha. \alpha
80+\end{equation}
81+
82+In some cases, this approach will likely yield too little information to be useful, but it seems like a reasonable solution.
83+
84+\section{Improving Type Checker Error Reporting}
85+
86+The original W inference algorithm is a single-stage inference algorithm, meaning that it attempts to satisfy type constraints as soon as it encounters them. A consequence of this is that errors are reported as soon as they are encountered. Often, the information available about the program at the time the error had occurred is very limited due to not all of the program being processed. This leads to poor error reporting.
87+
88+In contrast to the single-stage algorithm, the two-stage algorithm~\cite{jones2005practical,serrano2016type} collects the type constraints as the first stage of type checking and solves the collected constraints as a second step. This leads to most errors occurring during the second stage when all available type information has already been collected. As a result, better type errors are produced. This is the preferable approach for our goals.
89+
90+\section{Row-Polymorphism}
91+
92+One of the language-level constructs in the Nix Expression Language is the ``attribute set'' which can be thought of as a first-class hashmap with strings as keys. In combination with the dynamic nature of the language, these ``attribute sets'' have the semantics of row-polymorphic records.
93+
94+There has been some research conducted in the field of type systems with row-polymorphic records~\cite{morris2019abstracting,leijen2005extensible}. The approach that should be taken in developing a static type checker for the Nix Expression Language is describing row-polymorphic attribute sets with a construct similar\footnote{The way it should be displayed to the user will be distinct, since, unlike in Haskell, the Nix Expression Language does not have constraints as a language construct.} to Haskell constraints~\cite{orchard2010haskell}.
95+
96+\section{Message Reporting}
97+
98+Displaying errors to the user is not as simple as it might initially seem. For the type checker to be as helpful as possible, error messages should display the encountered issues in the language contexts in which they had occurred. Ideally, the errors should point to the exact terms that are most likely problematic.
99+
100+Even if all of the information necessary for detailed error messages is collected during type checking, displaying errors to the user is a problem that deserves its own research\footnote{This also relates to how types are laid out when displaying to the user even when no errors have occurred.}. The users might have different screen sizes. The error message should reflow all of the displayed text, code, and type annotations to accommodate the available space.
101+
102+Hughes introduced a general-purpose algebraic pretty-printer~\cite{hughes1995design}, which was later improved upon~\cite{wadler2003prettier}, to solve precisely this problem. Using one of the pretty-printers based on that research is the industry standard and will be used by our type checker.
103+
104+\section{Language Server Architecture}
105+
106+A Language Server is a server providing language-specific code analysis. It communicates with various code editors using the Language Server Protocol\footnote{\url{https://microsoft.github.io/language-server-protocol/}}.
107+
108+Language Servers have received wide adoption across a large variety of programming languages. Integrating the developed type checker into a Language Server with ``go-to-definition'' and ``show types on hover'' support would significantly improve the experience of developing in the Nix Expression Language.
109+
110+One of the actively developed language servers is the Haskell Language Server\footnote{\url{https://github.com/haskell/haskell-language-server}}. To manage the complexities of tracking changes in files and dependencies between them, the Haskell Language Server employs the Shake library~\cite{mitchell2012shake}. It is described as an alternative to Make\footnote{\url{https://www.gnu.org/software/make/}} embedded as a DSL into Haskell with the ability to dynamically update the dependency tree, among other improvements.
111+
112+As it is already tested as the basis for a Language Server implementation, building our Language Server on top of the Shake library seems like the correct architectural decision.
113+
114+\section{Conclusion}
115+
116+Nix is a rapidly growing ecosystem. At the time of writing, nixpkgs, the Nix package registry, contains over 60000 packages\footnote{\url{https://github.com/NixOS/nixpkgs}} that can be either installed or used as dependencies in other projects. There is much interest in the approach used by Nix, and making the ever-growing codebase of configurations easier to manage and extend would be a welcome development.
117+
118+Even though the developed type checker will need to check code for an existing dynamic language, and no type checker can cover all of the valid cases, producing false negatives, covering most of the cases encountered in practice would be useful enough to be worth using. Furthermore, plenty of research has already been conducted on which the Nix Expression Language type checker can be based.
119+
120+Integrating the type checker into a Language Server would provide additional utility and afford the ability to implement additional features, such as ``go-to-definition'' in a practical way.
121+
122+
123+\bibliographystyle{IEEEtran}
124+\bibliography{bibl}
125+
126+\begin{flushright}
127+ \vspace{1cm}
128+ \fbox{\textsc{\textsf{\textbf{\large word count: 1593}}}}
129+\end{flushright}
130+
131+\end{document}
docs/tech_spec.texnew file+252
@@ -0,0 +1,252 @@
1+\documentclass[12pt]{article}
2+
3+\usepackage{xcolor}
4+\usepackage[hidelinks]{hyperref}
5+
6+\newcommand{\todo}{\addcontentsline{toc}{subsection}{{\color{red}\textbf{TODO}}}{\LARGE\color{red}\textbf{TODO}}}
7+
8+\newcounter{req}
9+
10+\newcommand{\req}[1][]{\refstepcounter{req}\label{req:#1}\paragraph{\fbox{\textsf{\textsc{REQ}-\thereq}}}}
11+\newcommand{\refreq}[1]{\hyperref[req:#1]{\fbox{\textsf{REQ-\ref*{req:#1}}}}}
12+
13+\title{Technical Specification for the Static Analyzer for the Nix Expression Language}
14+\author{Kostyuchenko Ilya}
15+\date{}
16+
17+\begin{document}
18+
19+\maketitle
20+
21+\newpage
22+
23+\tableofcontents
24+
25+\newpage
26+
27+\section{Purpose}
28+
29+The purpose of the \emph{Static analyzer for the Nix Expression Language} (later referred to as \emph{Tix} for brevity) is to simplify development in the Nix expression language.
30+
31+\section{Scope}
32+
33+The project consists of developing the following components:
34+
35+\paragraph{The Tix type checker} is a program which is designed to statically analyze the given Nix expression language source code and deduce the types of subexpressions used within while detecting some errors made by the programmer (type mismatch errors, which usually arise due to programming mistakes).
36+
37+\section{Product perspective}
38+
39+\subsection{System interfaces}
40+
41+The application runs on the latest versions of macOS and Linux.
42+
43+\subsection{User interfaces}
44+
45+The application does not provide a user interface.
46+
47+\subsection{Hardware interfaces}
48+
49+The application does not provide a hardware interface.
50+
51+\subsection{Software interfaces}
52+
53+The application allows interactions through standard UNIX input-output capabilities.
54+
55+\subsection{Communications interfaces}
56+
57+The application communicates with the user by reading input from the file system or terminal emulator, and outputting results to the standard UNIX output handle.
58+
59+\subsection{Memory}
60+
61+The memory required to run the system depends on the size of the project being processed. Typical projects should are processed within a 2 GB memory limit.
62+
63+\subsection{Operations}
64+
65+The application supports the following operations:
66+
67+\begin{enumerate}
68+ \item Typecheck the current file and report errors
69+\end{enumerate}
70+
71+\subsection{Site adaptation requirements}
72+
73+No site adaptations are required.
74+
75+\subsection{Interfaces with services}
76+
77+No interaction with services in performed.
78+
79+\section{Product functions}
80+
81+The application provides the following functionality to the user:
82+
83+\begin{enumerate}
84+ \item Checks user-supplied programs for type incompatibilities
85+ \item Reports the resulting types of user-supplied expressions
86+\end{enumerate}
87+
88+\section{User characteristics}
89+
90+The user of the application will need intermediate technical skills to set up the program. More precisely, the user will need to have basic understanding of how to use their operating system and command line.
91+
92+\section{Limitations}
93+
94+\subsection{Interface to other applications}
95+
96+Other applications can be interfaced with through standard input-output handles.
97+
98+\subsection{Criticality of the application}
99+
100+The software should not be used for critical applications as it is not capable of eliminating all runtime errors, or even eliminating all runtime type errors due to the dynamic nature of the underlying Nix expression language\footnote{Type systems inherently restrict some valid programs, and some expressions might not be well-typed, but execute without errors.}.
101+
102+\section{Assumptions and dependencies}
103+
104+The contents of this document assume the following:
105+
106+\begin{enumerate}
107+ \item The application will be used on a UNIX-like system that is supported by the Glasgow Haskell Compiler.
108+ \item All dependencies of the files being processed should be locally downloaded by Nix.
109+\end{enumerate}
110+
111+\section{Apportioning of requirements}
112+
113+The application is a self-contained executable file that, when executed, functions as a typechecker.
114+
115+\section{Specified requirements}
116+
117+\req[restrictons] The system should perform all static program analysis (instances of such analysis link to this requirement) under the following conditions:
118+\begin{enumerate}
119+ \item it is possible to perform analysis without (partially) evaluating expressions
120+ \item all input data linked to from the expressions being analyzed is locally downloaded by Nix
121+\end{enumerate}
122+
123+\req[typechecking] The system should perform type checking for expression where under conditions from \refreq{restrictons}.
124+
125+\req The system should analyze the types and presence of attributes in attribute sets under conditions from \refreq{restrictons}.
126+
127+\req The system should report encountered typechecking errors.
128+
129+\req The system should report the use of undefined terms through means defined by the Language Server Protocol under conditions from \refreq{restrictons}.
130+
131+\section{Usability requirements}
132+
133+\req The system should be able to process expressions from the nixpkgs repository.
134+
135+\req The system should never fail in unrecoverable ways in external imported expressions – if there are type errors in external code the system should resolve the errors automatically.
136+
137+\section{Performance requirements}
138+
139+\req The system should process incoming requests within 1 minute.
140+
141+\section{External interfaces}
142+
143+The only external interfaces of the system are standard input-output handles.
144+
145+\paragraph{The purpose} of this interface is to provide easy way to provide programs to typecheck as inputs.
146+
147+\section{Functions}
148+
149+The fundamental functions of the system are queries: get the type of an expression.
150+
151+\subsection{Generating the type of an expression}
152+
153+\begin{enumerate}
154+ \item the system queries the expression at the requested position in the source code from the \emph{analysis context}
155+ \item the system queries the type of the expression from the \emph{analysis context}
156+ \item the system returns the type
157+\end{enumerate}
158+
159+\subsection{Generating the definition of a variable}
160+
161+\begin{enumerate}
162+ \item the system queries the expression at the requested position in the source code from the \emph{analysis context}
163+ \item the system asserts that the expression is a variable reference
164+ \item the system queries the definition of the given variable reference from the \emph{analysis context}
165+ \item the system returns the definition
166+\end{enumerate}
167+
168+\subsection{Generating completions}
169+
170+\begin{enumerate}
171+ \item the system queries the variables in scope at the requested position in the source code from the \emph{analysis context}
172+ \item the system formulates a list of possible completions
173+ \item the system filters the list of possible completions based on the prefix already typed by the user
174+ \item the system returns the list of filtered possible completions
175+\end{enumerate}
176+
177+\subsection{Generating the analysis context}
178+
179+\begin{enumerate}
180+ \item the current file is parsed
181+ \item dependencies are gathered from the current file and the analysis context is recursively generated for all dependencies
182+ \item the current file is typechecked
183+ \begin{enumerate}
184+ \item type constraints are recursively generated for all subexpressions
185+ \item encountered variable definitions are gathered
186+ \item encountered variable references are gathered
187+ \item undefined variable definitions are gathered
188+ \item type constraints are generated for the given top-level expression
189+ \item type constraints are sequentially solved. If a typing error is encountered, the error is gathered with other errors and the problematic type is replaced with a polymorphic type to allow further typechecking
190+ \end{enumerate}
191+ \item all errors gathered during typechecking are reported to the user through means defined by the Language Server Protocol
192+ \item all analysis contexts are merged into a single analysis context
193+ \item the resulting analysis context is the returned
194+\end{enumerate}
195+
196+\subsection{Error handling}
197+
198+If the system encounters a typing error in the user's code, then the error is returned to the user.
199+
200+If the system encounters an internal (as opposed to a user error) the error is written to the standard error output.
201+
202+\section{Design constraints}
203+
204+The main design constraint is the fact that the Nix expression language is a dynamic language without an underlying static type system. This implies that there will be correct programs that will be ill-typed. The system should be designed in such a way as to gracefully handle such situations.
205+
206+\section{Software system attributes}
207+
208+\subsection{Reliability}
209+
210+\begin{enumerate}
211+ \item The system should automatically recover from any user error after the user resolves the error in code.
212+ \item The system should not enter unrecoverable states.
213+\end{enumerate}
214+
215+\subsection{Maintainability}
216+
217+The system should utilize free monad algebraic effects for managing side-effects as they improve maintainability by decoupling implementation from abstraction.
218+
219+\subsection{Portability}
220+
221+\begin{enumerate}
222+ \item The system should not contain host-dependant code
223+ \item The system should be written in the Haskell programming language which is not host-dependent
224+ \item The system should be compiled with the Glasgow Haskell Compiler as it supports a wide range of platforms
225+\end{enumerate}
226+
227+\section{Verification}
228+
229+The following approaches and methods are planned to be employed to qualify the software:
230+
231+\begin{enumerate}
232+ \item Automated hand-written unit-tests
233+ \item Manual testing
234+\end{enumerate}
235+
236+\section{Supporting information}
237+
238+\subsection{Nix}
239+
240+Nix is a powerful package manager for Linux and other Unix systems that makes package management reliable and reproducible.\footnote{Taken from \url{https://nixos.org}}.
241+
242+\subsection{Nix expression language}
243+
244+The Nix expression language is a purely functional dynamic strictly typed programming language used for configuration in the Nix package manager. It does not support defining custom types – all types are defined within the interpreter. The main purpose of the language is to produce \emph{derivation} – a description of how to build an artifact\footnote{\url{https://nixos.org/manual/nix/stable/\#ssec-derivation}}.
245+
246+\subsection{The problem to be solved}
247+
248+When working with the Nix expression language it is often the case that imported expressions (nixpkgs) are quite large, and it is not obvious what needs to be called with what arguments. It is often necessary to inspect the source code of imported files to grok how it should be used and if the current use is correct.
249+
250+This project aims to lighten the burden of development in the Nix expression language by providing some level of machine-generated introspection into the imported expressions and provide some level of verification of the correctness of the implementation.
251+
252+\end{document}
docs/trfrac.stynew file+193
@@ -0,0 +1,193 @@
1+%%
2+%% This is file `trfrac.sty',
3+%% generated with the docstrip utility.
4+%%
5+%% The original source files were:
6+%%
7+%% trfrac.dtx (with options: `file')
8+%%
9+%% This is a generated file.
10+%%
11+%% Copyright (C) 2009 by Kevin W. Hamlen
12+%%
13+%% This file may be distributed and/or modified under the conditions of
14+%% the LaTeX Project Public License, either version 1.3a of this license
15+%% or (at your option) any later version. The latest version of this
16+%% license is in:
17+%%
18+%% http://www.latex-project.org/lppl.txt
19+%%
20+%% and version 1.3a or later is part of all distributions of LaTeX version
21+%% 2004/10/01 or later.
22+%%
23+\newdimen\trtopgap\trtopgap\z@
24+\newdimen\trbotgap\trbotgap\z@
25+\newcommand\TRF@startp{31415926}
26+\newcommand\TRF@endp{27182818}
27+\newif\ifTRF@first
28+\newif\ifTRF@outer\TRF@outertrue
29+\newif\ifTRF@derivok\TRF@derivoktrue
30+\newdimen\TRF@lhang\TRF@lhang\z@
31+\newdimen\TRF@rhang\TRF@rhang\z@
32+\newdimen\TRF@lsave
33+\newdimen\TRF@ni
34+\newdimen\TRF@bi
35+\newdimen\TRF@bw
36+\newbox\TRF@numbox
37+\newbox\TRF@denombox
38+\newbox\TRF@eqbox
39+\newcommand\TRF@trfrac[3]{%
40+ \begingroup%
41+ \ifnum\lastpenalty=\TRF@startp\relax%
42+ \TRF@firsttrue%
43+ \else%
44+ \TRF@firstfalse%
45+ \fi%
46+ \TRF@lsave\TRF@lhang%
47+ \setbox\TRF@eqbox\hbox{\TRF@derivokfalse#1}%
48+ \ifdim\wd\TRF@eqbox>\z@%
49+ \setbox\TRF@eqbox\hbox{\kern\p@\unhbox\TRF@eqbox}%
50+ \fi%
51+ \TRF@lhang\z@%
52+ \setbox\TRF@numbox\hbox{%
53+ \TRF@outerfalse%
54+ \m@th$\strut%
55+ \penalty\TRF@startp\relax%
56+ #2%
57+ \ifnum\lastpenalty=\TRF@endp\relax\else%
58+ \global\TRF@rhang\z@%
59+ \fi%
60+ $%
61+ }%
62+ \setbox\TRF@denombox\hbox{%
63+ \TRF@derivokfalse%
64+ \m@th$\strut#3$%
65+ }%
66+ \dimen@\wd\TRF@numbox%
67+ \advance\dimen@-\TRF@rhang%
68+ \TRF@bw\dimen@%
69+ \advance\TRF@bw-\TRF@lhang%
70+ \ifdim\wd\TRF@denombox>\TRF@bw\TRF@bw\wd\TRF@denombox\fi%
71+ \advance\dimen@\TRF@lhang%
72+ \advance\dimen@-\wd\TRF@denombox%
73+ \TRF@ni\ifdim\dimen@>\z@\z@\else-.5\dimen@\fi%
74+ \TRF@bi\TRF@ni%
75+ \advance\TRF@bi\TRF@lhang%
76+ \TRF@lhang\ifdim\dimen@<\z@\z@\else.5\dimen@\fi%
77+ \ifdim\TRF@bi>\TRF@lhang\TRF@bi\TRF@lhang\fi%
78+ \TRF@rhang\TRF@ni%
79+ \advance\TRF@rhang\wd\TRF@numbox%
80+ \dimen@\TRF@bi%
81+ \advance\dimen@\TRF@bw%
82+ \advance\dimen@\wd\TRF@eqbox%
83+ \ifdim\dimen@>\TRF@rhang\TRF@rhang\dimen@\fi%
84+ \advance\TRF@rhang-\TRF@lhang%
85+ \advance\TRF@rhang-\wd\TRF@denombox%
86+ \global\TRF@rhang\TRF@rhang%
87+ \mathinner{%
88+ \ifTRF@outer%
89+ \raise\fontdimen22\textfont\tw@\vtop%
90+ \else%
91+ \vbox%
92+ \fi%
93+ {%
94+ \offinterlineskip%
95+ \hbox{%
96+ \vbox{%
97+ \dimen@\fontdimen8\textfont\tw@%
98+ \advance\dimen@-\fontdimen22\textfont\tw@%
99+ \advance\dimen@-.5\fontdimen8\textfont\thr@@%
100+ \advance\dimen@-\dp\TRF@numbox%
101+ \ifdim\dimen@<3\fontdimen8\textfont\thr@@%
102+ \dimen@3\fontdimen8\textfont\thr@@%
103+ \fi%
104+ \advance\dimen@\trtopgap%
105+ \hbox{\kern\TRF@ni\unhbox\TRF@numbox}%
106+ \kern\dimen@%
107+ \hbox{%
108+ \kern\TRF@bi%
109+ \vrule\@width\TRF@bw%
110+ \@height.5\fontdimen8\textfont\thr@@%
111+ \@depth.5\fontdimen8\textfont\thr@@%
112+ \vbox{%
113+ \dimen@.5\ht\TRF@eqbox%
114+ \advance\dimen@.5\dp\TRF@eqbox%
115+ \kern-\dimen@%
116+ \box\TRF@eqbox%
117+ \kern-\dimen@%
118+ }%
119+ }%
120+ }%
121+ }%
122+ \dimen@\fontdimen11\textfont\tw@%
123+ \advance\dimen@\fontdimen22\textfont\tw@%
124+ \advance\dimen@-.5\fontdimen8\textfont\thr@@%
125+ \advance\dimen@-\ht\TRF@denombox%
126+ \ifdim\dimen@<3\fontdimen8\textfont\thr@@%
127+ \dimen@3\fontdimen8\textfont\thr@@%
128+ \fi%
129+ \advance\dimen@\trbotgap%
130+ \kern\dimen@%
131+ \hbox{\kern\TRF@lhang\box\TRF@denombox}%
132+ }%
133+ }%
134+ \ifTRF@outer\else%
135+ \penalty\TRF@endp\relax%
136+ \fi%
137+ \global\TRF@lhang\ifTRF@first\TRF@lhang\else\TRF@lsave\fi%
138+ \endgroup%
139+}
140+\newcommand\trfrac[3][]{%
141+ \ifTRF@derivok%
142+ \ifmmode%
143+ \TRF@trfrac{#1}{#2}{#3}%
144+ \else%
145+ \TRF@mmerr%
146+ \fi%
147+ \else%
148+ \TRF@derr%
149+ \fi%
150+}
151+\newcommand\TRF@mmerr{%
152+ \PackageError{trfrac}{\protect\trfrac\space%
153+ only allowed in math mode}%
154+ {I encountered a \protect\trfrac\space%
155+ macro without first encountering a begin-math token.}%
156+}
157+\newcommand\TRF@derr{%
158+ \PackageError{trfrac}{\protect\trfrac\space%
159+ not allowed in the consequent of another \protect\trfrac}%
160+ {\protect\trfrac\space can only appear in the premise (numerator%
161+ ) of another \protect\trfrac, not in the consequent (denominator%
162+ ) of a \protect\trfrac.}%
163+}
164+\newcommand\TRF@next{}
165+\newcommand\TRF@sep{\futurelet\TRF@next\TRF@@sep}
166+\newcommand\TRF@@sep{%
167+ \ifx[\TRF@next%
168+ \let\TRF@next\TRF@separg%
169+ \else%
170+ \let\TRF@next\TRF@sepnoarg%
171+ \fi%
172+ \TRF@next%
173+}
174+\newcommand\TRF@separg{}
175+\def\TRF@separg[#1]{\cr\noalign{\kern#1}}
176+\newcommand\TRF@sepnoarg{\cr}
177+\newenvironment{trgather}{%
178+ \vbox\bgroup%
179+ \let\\\TRF@sep%
180+ \ialign\bgroup\hfil{\m@th$##$}\hfil\cr%
181+}{%
182+ \crcr\egroup\egroup%
183+}
184+\newenvironment{tralign}{%
185+ \vbox\bgroup%
186+ \let\\\TRF@sep%
187+ \ialign\bgroup\hfil{\m@th$##\null$}&{\m@th$\null##$}\hfil\cr%
188+}{%
189+ \crcr\egroup\egroup%
190+}
191+\endinput
192+%%
193+%% End of file `trfrac.sty'.
package.yaml+15−1
@@ -37,6 +37,10 @@ dependencies:
3737 - bytestring
3838 - prettyprinter
3939 - range-set-list
40+ - generic-data
41+ - generic-lens
42+ - free
43+ - algebraic-graphs
4044
4145library:
4246 source-dirs: src
@@ -55,7 +59,7 @@ executables:
5559tests:
5660 tix-test:
5761 main: Main.hs
58− source-dirs: test
62+ source-dirs: test/src
5963 ghc-options:
6064 - -threaded
6165 - -rtsopts
@@ -89,3 +93,13 @@ default-extensions:
8993 - EmptyCase
9094 - OverloadedLists
9195 - StandaloneDeriving
96+ - DeriveGeneric
97+ - DerivingVia
98+ - RecordWildCards
99+ - FunctionalDependencies
100+ - DeriveDataTypeable
101+ - TypeFamilies
102+ - FlexibleInstances
103+ - DeriveAnyClass
104+ - ConstraintKinds
105+ - DeriveTraversable
paper.pdfnew file

Binary file not shown.

src/Control/Monad/Freer/Fresh.hs+21−5
@@ -1,5 +1,7 @@
11module Control.Monad.Freer.Fresh
22 ( Fresh (..),
3+ fresh,
4+ freshSub,
35 runFresh,
46 registerTypeVariables,
57 )
@@ -12,24 +14,38 @@ import Tix.Types
1214
1315data Fresh x where
1416 Fresh :: Fresh TypeVariable
17+ FreshSub :: TypeVariable -> Fresh TypeVariable
1518 -- | Inclusive
16− MinFreshFromNow :: Fresh TypeVariable
19+ MinFreshFromNow :: Fresh RangeTypeVariable
20+
21+fresh :: Member Fresh eff => Eff eff TypeVariable
22+fresh = send Fresh
23+{-# INLINE fresh #-}
24+
25+freshSub :: Member Fresh eff => TypeVariable -> Eff eff TypeVariable
26+freshSub = send . FreshSub
27+{-# INLINE freshSub #-}
1728
1829type Runner effect = forall effs a. Eff (effect ': effs) a -> Eff effs a
1930
2031runFresh :: Runner Fresh
2132runFresh =
22− evalState (TypeVariable 0)
33+ evalState (RangeTypeVariable 0)
2334 . reinterpret
2435 ( \case
2536 Fresh -> do
26− (TypeVariable x) <- get
27− put (TypeVariable $ x + 1)
37+ (RangeTypeVariable x) <- get
38+ put (RangeTypeVariable $ x + 1)
2839 return (TypeVariable x)
40+ FreshSub tv -> do
41+ (RangeTypeVariable x) <- get
42+ put (RangeTypeVariable $ x + 1)
43+ return (SubTypeVariable (unRangeTypeVariable $ rangeTypeVariable tv) x)
2944 MinFreshFromNow -> get
3045 )
46+{-# INLINE runFresh #-}
3147
32−registerTypeVariables :: Member Fresh r => Eff r a -> Eff r (a, RS.RSet TypeVariable)
48+registerTypeVariables :: Member Fresh r => Eff r a -> Eff r (a, RS.RSet RangeTypeVariable)
3349registerTypeVariables m = do
3450 l <- send MinFreshFromNow
3551 a <- m
src/Data/Map/MultiKey/Strict.hsnew file+105
@@ -0,0 +1,105 @@
1+module Data.Map.MultiKey.Strict
2+ ( Keyable (..),
3+ Map (..),
4+ singleton,
5+ delete,
6+ lookup,
7+ lookupEmpty,
8+ insert,
9+ partition,
10+ fromList,
11+ toList,
12+ elems,
13+ keys,
14+ map,
15+ toMap,
16+ )
17+where
18+
19+import Control.Monad
20+import Data.Bifunctor
21+import Data.Foldable (fold)
22+import Data.Kind
23+import qualified Data.Map.Strict as M
24+import Data.Maybe
25+import Data.Monoid
26+import qualified Data.Set as S
27+import Prelude hiding (lookup, map)
28+
29+class (Ord (Key t), Ord t) => Keyable t where
30+ type Key t :: Type
31+ getKeys :: t -> [Key t]
32+
33+data Map t = Map (M.Map (Key t) (S.Set t)) (S.Set t)
34+
35+instance (Ord (Key t), Ord t) => Semigroup (Map t) where
36+ (Map x x') <> (Map y y') = Map (M.unionWith S.union x y) (x' <> y')
37+
38+instance (Ord (Key t), Ord t) => Monoid (Map t) where
39+ mempty = Map M.empty S.empty
40+
41+map :: (Keyable h, Ord t) => (t -> h) -> Map t -> Map h
42+map f = fromList . fmap f . toList
43+
44+deriving stock instance (Show (Key t), Show t) => Show (Map t)
45+
46+singleton :: Keyable t => t -> Map t
47+singleton t = case getKeys t of
48+ [] -> Map M.empty (S.singleton t)
49+ ks@(_ : _) -> Map (M.fromList $ fmap (,s) ks) S.empty
50+ where
51+ s = S.singleton t
52+
53+insert :: Keyable t => t -> Map t -> Map t
54+insert t m = m <> singleton t
55+
56+lookup :: Keyable t => Key t -> Map t -> S.Set t
57+lookup k (Map m _) = fromMaybe S.empty $ M.lookup k m
58+
59+lookupEmpty :: Map t -> S.Set t
60+lookupEmpty (Map _ s) = s
61+
62+fromList :: Keyable t => [t] -> Map t
63+fromList = foldMap singleton
64+
65+elems :: Ord t => Map t -> S.Set t
66+elems (Map m s) = (fold . M.elems $ m) <> s
67+
68+toList :: Ord t => Map t -> [t]
69+toList = S.toList . elems
70+
71+keys :: Map t -> S.Set (Key t)
72+keys (Map m _) = M.keysSet m
73+
74+toMap :: Ord (Key t) => Map t -> M.Map (Maybe (Key t)) (S.Set t)
75+toMap (Map m s) = M.insert Nothing s $ M.mapKeysMonotonic Just m
76+
77+delete :: Keyable t => t -> Map t -> Map t
78+delete t (Map m empties) = Map (f m) (S.delete t empties)
79+ where
80+ s = S.singleton t
81+ f =
82+ appEndo $
83+ foldMap
84+ ( Endo
85+ . M.update
86+ (\s' -> if s == s then Nothing else Just (S.delete t s'))
87+ )
88+ (getKeys t)
89+
90+partition :: Keyable t => (Key t -> Bool) -> Map t -> (Map t, Map t)
91+partition predicate (Map m empties) = (Map keep' empties, Map toss S.empty <> Map toss' S.empty)
92+ where
93+ (keep, toss) = M.partitionWithKey (\k _ -> predicate k) m
94+ (keep', toss') =
95+ join bimap M.fromAscList
96+ . p (join bimap nothingNull . S.partition (all predicate . getKeys))
97+ . M.toAscList
98+ $ keep
99+ p :: (v -> (Maybe v, Maybe v)) -> [(k, v)] -> ([(k, v)], [(k, v)])
100+ p _ [] = ([], [])
101+ p f ((k, x) : xs) = join bimap (maybe id ((:) . (k,))) (f x) `apBoth` p f xs
102+ apBoth :: (a -> b, x -> y) -> (a, x) -> (b, y)
103+ apBoth (f, g) (a, x) = (f a, g x)
104+ nothingNull :: S.Set x -> Maybe (S.Set x)
105+ nothingNull s = if S.null s then Nothing else Just s
src/Data/Map/Shifted/Strict.hs+1−1
@@ -33,7 +33,7 @@ shift :: (Semigroup d) => d -> ShiftedMap d k v -> ShiftedMap d k v
3333shift d' (ShiftedMap d m) = ShiftedMap (d <> d') m
3434
3535liftMap :: Monoid d => Map k v -> ShiftedMap d k v
36−liftMap m = ShiftedMap mempty m
36+liftMap = ShiftedMap mempty
3737
3838unshift :: Act d v => ShiftedMap d k v -> Map k v
3939unshift (ShiftedMap d m) = act d <$> m
src/Tix/Builtins.hsnew file+68
@@ -0,0 +1,68 @@
1+module Tix.Builtins (builtins) where
2+
3+import Data.Map (Map)
4+import qualified Data.Map as M
5+import Data.Text (Text)
6+import Tix.Types
7+
8+builtins :: Map Text Scheme
9+builtins =
10+ M.fromList
11+ [ ( "builtins",
12+ scheme $
13+ NAttrSet $
14+ M.fromList
15+ [ ("abort", scheme $ NAtomic String :-> deBruijn 0 0),
16+ ("add", [StringOrNumber $ deBruijn 2 0] :=> (deBruijn 3 0 :-> (deBruijn 4 0 :-> deBruijn 4 0))),
17+ ("all", [] :=> ((deBruijn 4 0 :-> NAtomic Bool) :-> (List (deBruijn 5 0) :-> NAtomic Bool))),
18+ ("any", [] :=> ((deBruijn 4 0 :-> NAtomic Bool) :-> (List (deBruijn 5 0) :-> NAtomic Bool))),
19+ ("attrNames", [] :=> (deBruijn 3 0 :-> List (NAtomic String))),
20+ ("attrValues", [] :=> (deBruijn 3 0 :-> List (deBruijn 0 0))),
21+ ("baseNameOf", [] :=> (NAtomic String :-> NAtomic String)),
22+ ("bitAnd", [] :=> (NAtomic Number :-> (NAtomic Number :-> NAtomic Number))),
23+ ("bitXor", [] :=> (NAtomic Number :-> (NAtomic Number :-> NAtomic Number))),
24+ ("bitOr", [] :=> (NAtomic Number :-> (NAtomic Number :-> NAtomic Number))),
25+ ("ceil", [] :=> (NAtomic Number :-> NAtomic Number)),
26+ ("compareVersions", [] :=> (NAtomic String :-> (NAtomic String :-> NAtomic Number))),
27+ ("concatLists", [] :=> (List (List (deBruijn 5 0)) :-> List (deBruijn 4 0))),
28+ ("concatMap", [] :=> ((deBruijn 4 0 :-> List (deBruijn 5 1)) :-> (List (deBruijn 5 0) :-> List (deBruijn 5 1)))),
29+ ("map", [] :=> ((deBruijn 4 0 :-> deBruijn 4 1) :-> (List (deBruijn 5 0) :-> List (deBruijn 5 1)))),
30+ ("catAttrs", [] :=> (NAtomic String :-> (List (deBruijn 0 0) :-> List (deBruijn 0 0))))
31+ ]
32+ ),
33+ ( "derivation",
34+ [ deBruijn 2 0
35+ // attrSet
36+ [ ("all", scheme $ List (deBruijn 5 1)),
37+ ("drvAttrs", scheme $ deBruijn 4 0),
38+ ("drvPath", string),
39+ ("out", scheme $ deBruijn 4 1),
40+ ("outPath", string),
41+ ("outputName", string),
42+ ("type", string)
43+ ]
44+ $ deBruijn 2 1,
45+ deBruijn 2 0 .! ("name", string),
46+ deBruijn 2 0 .! ("builder", string),
47+ deBruijn 2 0 .! ("system", string),
48+ deBruijn 2 0 .? ("args", scheme $ List (NAtomic String)),
49+ deBruijn 2 0 .? ("outputs", scheme $ List (NAtomic String))
50+ ]
51+ :=> (deBruijn 3 0 :-> deBruijn 3 1)
52+ )
53+ ]
54+
55+string :: Scheme
56+string = scheme $ NAtomic String
57+
58+deBruijn :: Int -> Int -> NType
59+deBruijn a b = NBruijn $ DeBruijn a b
60+
61+attrSet :: [(Text, Scheme)] -> NType
62+attrSet = NAttrSet . M.fromList
63+
64+(.!) :: NType -> (Text, Scheme) -> Pred
65+(.!) = HasField RequiredField
66+
67+(.?) :: NType -> (Text, Scheme) -> Pred
68+(.?) = HasField OptionalField
src/Tix/Typechecker.hs+669−403
@@ -4,13 +4,17 @@ module Tix.Typechecker
44 runFresh,
55 runSeqWriter,
66 getType,
7− showNType,
87 runNoTreeTracer,
8+ renderPretty,
99 )
1010where
1111
12−import Control.Exception (assert)
12+import qualified Algebra.Graph.AdjacencyMap.Algorithm as AM
13+import qualified Algebra.Graph.Class as G
14+import qualified Algebra.Graph.NonEmpty.AdjacencyMap as AM
15+import Control.Lens hiding (Empty, List, cons, equality, set, set')
1316import Control.Monad
17+import qualified Control.Monad.Free as F
1418import Control.Monad.Freer
1519import Control.Monad.Freer.Fresh
1620import Control.Monad.Freer.Internal (handleRelayS)
@@ -20,21 +24,23 @@ import Control.Monad.Freer.TreeTracer
2024import Control.Monad.Freer.Writer
2125import Data.Act
2226import qualified Data.Aeson as A
27+import Data.Either
2328import Data.Fix
2429import Data.Foldable
25−import Data.Functor
26−import Data.Functor.Contravariant
2730import Data.Group hiding ((~~))
2831import Data.List.NonEmpty (NonEmpty (..))
32+import qualified Data.List.NonEmpty as NE
33+import qualified Data.Map.MultiKey.Strict as MKM
2934import Data.Map.Shifted.Strict (ShiftedMap (..))
3035import qualified Data.Map.Shifted.Strict as SM
3136import Data.Map.Strict (Map)
3237import qualified Data.Map.Strict as M
38+import Data.Maybe
3339import Data.MonoTraversable
3440import Data.Monoid
3541import qualified Data.RangeSet.Map as RS
3642import Data.Sequence (Seq (..))
37−import Data.Sequences
43+import Data.Sequences hiding (catMaybes)
3844import Data.Set (Set)
3945import qualified Data.Set as S
4046import Data.Text (Text)
@@ -46,106 +52,73 @@ import Data.Traversable
4652import Nix.Atoms
4753import Nix.Expr
4854import Nix.Pretty
55+import Tix.Builtins (builtins)
4956import Tix.Types
57+import Prelude as P
5058
51−getType :: NExprLoc -> (Scheme, [(SrcSpan, Errors)], [UnifyingError], [PredicateError], A.Object)
59+getType :: NExprLoc -> (Scheme, [(SrcSpan, Errors)], [InferError], [UnifyingError], [PredicateError], A.Object)
5260getType r =
53− let (((((((t, traceTree), predicate), unifying), errs), srcs), subs), _) =
61+ let ((((((t, traceTree), inf), predicate), unifying), errs), _srcs) =
5462 run
55− . evalState (M.empty :: VariableMap)
56− . runConstraintEnv
63+ . runReader nullSpan
64+ . evalState @(MKM.Map Pred) mempty
65+ . interpret @(Writer Pred) (\(Tell x) -> modify (<> MKM.singleton x))
66+ . runVariableMapEff
67+ . localVariablesMap builtins
68+ . evalState @Substitution mempty
5769 . runState @[(TypeVariable, SrcSpan)] []
5870 . interpret @(Writer (TypeVariable, SrcSpan)) (\(Tell x) -> modify (x :))
5971 . runSeqWriter @[(SrcSpan, Errors)]
6072 . runSeqWriter @[UnifyingError]
6173 . runSeqWriter @[PredicateError]
62− . runFresh
74+ . runSeqWriter @[InferError]
75+ . runFreshSrc
6376 . runTreeTracer
6477 $ inferGeneral r
65− in (sub subs t, errs, unifying, predicate, traceTree)
66−
67−runConstraintEnv ::
68− Member (State VariableMap) effs =>
69− Eff (SubstituteEnv : Writer Substitution : Writer Constraint : State (Seq Constraint) : effs) a ->
70− Eff effs ((a, Substitution), Seq Constraint)
71−runConstraintEnv =
72− runState @(Seq Constraint) Empty
73− . interpret @(Writer Constraint) (\(Tell x) -> modify (x :<|))
74− . runWriter @Substitution
75− . interpret @SubstituteEnv
76− ( \(SubstituteEnv x) -> do
77− modify @(Seq Constraint) (sub x <$>)
78− modify @VariableMap (sub x <$>)
79− tell x
80− return ()
78+ in (t, errs, inf, unifying, predicate, traceTree)
79+
80+runFreshSrc ::
81+ Members '[Reader SrcSpan, Writer (TypeVariable, SrcSpan)] eff =>
82+ Eff (Fresh : eff) ~> Eff eff
83+runFreshSrc =
84+ runFresh
85+ . interpose @Fresh
86+ ( \case
87+ Fresh -> do
88+ v <- send Fresh
89+ src <- ask @SrcSpan
90+ tell (v, src)
91+ return v
92+ FreshSub x -> do
93+ v <- send $ FreshSub x
94+ src <- ask @SrcSpan
95+ tell (v, src)
96+ return v
97+ MinFreshFromNow -> send MinFreshFromNow
8198 )
8299
83−data SubstituteEnv a where
84− SubstituteEnv :: Substitution -> SubstituteEnv ()
100+data VariableMapEff x where
101+ LookupVariable :: VarName -> VariableMapEff (Maybe Scheme)
85102
86−subEnv :: Member SubstituteEnv r => Substitution -> Eff r ()
87−subEnv = send . SubstituteEnv
103+runVariableMapEff :: Eff (VariableMapEff ': effs) a -> Eff effs a
104+runVariableMapEff = interpret $ \(LookupVariable _) -> pure Nothing
88105
89−data Constraint = !Scheme :~ !Scheme
90− deriving stock (Eq, Ord, Show)
91−
92−instance Pretty Constraint where
93− pretty (x :~ y) = pretty x <+> "~" <+> pretty y
106+lookupVar :: Member VariableMapEff eff => VarName -> Eff eff (Maybe Scheme)
107+lookupVar = send . LookupVariable
94108
95−newtype DeBruijnContext = DeBruijnContext (Sum Int)
96− deriving newtype (Eq, Ord, Show, Semigroup, Monoid, Group, Num)
109+replaceVariablesM :: Member VariableMapEff eff => (VarName -> Eff eff (Maybe Scheme)) -> Eff eff x -> Eff eff x
110+replaceVariablesM f = interpose $ \(LookupVariable x) -> f x
97111
98−instance Act DeBruijnContext DeBruijn where
99− act (DeBruijnContext (Sum n)) (DeBruijn i j) = DeBruijn (i + n) j
112+localVariablesMap :: Member VariableMapEff eff => Map VarName Scheme -> Eff eff x -> Eff eff x
113+localVariablesMap m = interpose $ \(LookupVariable x) -> case M.lookup x m of
114+ Just t -> pure $ Just t
115+ Nothing -> lookupVar x
100116
101−type TDeBruijnMap = ShiftedMap DeBruijnContext TypeVariable DeBruijn
102−
103−close :: Predicate TypeVariable -> Scheme -> Scheme
104−close (Predicate f) =
105− run
106− . evalState @TDeBruijnMap mempty
107− . runReader @Int 0
108− . evalState @Int 0
109− . close'
110− where
111− -- State is the sequential number, Reader is the binding context number
112− close' :: Scheme -> Eff '[State Int, Reader Int, State TDeBruijnMap] Scheme
113− close' x@(NAtomic _) = return x
114− close' (preds :=> t) =
115− (:=>) <$> (Preds <$> closePred `traverse` unPreds preds) <*> closeType t
116−
117− closeType :: NType -> Eff '[State Int, Reader Int, State TDeBruijnMap] NType
118− closeType = \case
119− x@(NBruijn _) -> return x
120− (NTypeVariable tv) | f tv -> NBruijn <$> newbruijn tv
121− x@(NTypeVariable _) -> return x
122− (x :-> y) -> bndCtx $ (:->) <$> close' x <*> close' y
123− (List x) -> bndCtx $ List <$> close' x
124− (NAttrSet x) -> bndCtx $ NAttrSet <$> traverse close' x
125−
126− closePred :: Pred -> Eff '[State Int, Reader Int, State TDeBruijnMap] Pred
127− closePred = \case
128− (Update x y z) -> bndCtx $ Update <$> closeType x <*> closeType y <*> closeType z
129− (HasField t (k, v)) -> bndCtx $ do
130− t' <- closeType t
131− v' <- close' v
132− return $ HasField t' (k, v')
117+data Constraint = !NType :~ !NType
118+ deriving stock (Eq, Ord, Show)
133119
134− bndCtx m = do
135− modify @TDeBruijnMap (SM.shift 1)
136− x <- local @Int (+ 1) m
137− modify @TDeBruijnMap (SM.shift (-1))
138− return x
139− newbruijn t = do
140− get @TDeBruijnMap <&> SM.lookup t >>= \case
141− Nothing -> do
142− i <- ask
143− j <- get
144− modify @Int (+ 1)
145− let x = DeBruijn i j
146− modify @TDeBruijnMap (SM.insert t x)
147− return x
148− Just x -> return x
120+instance Pretty Constraint where
121+ pretty (x :~ y) = pretty x <+> "~" <+> pretty y
149122
150123class Free s where
151124 free :: s -> Set TypeVariable
@@ -157,49 +130,40 @@ instance Free NType where
157130 free (NAttrSet attrs) = foldMap free . M.elems $ attrs
158131 free (x :-> y) = free x <> free y
159132 free (NBruijn _) = S.empty
133+ free (NAtomic _) = S.empty
160134
161135 sub s r = case r of
162136 NBruijn _ -> r
163− NTypeVariable x -> NTypeVariable x -- it should be substituted higher in Scheme
137+ NTypeVariable x -> case M.lookup x $ unSubstitution s of
138+ Nothing -> NTypeVariable x
139+ Just t -> t
164140 List x -> List $ sub s x
165141 NAttrSet m -> NAttrSet $ sub s <$> m
166142 x :-> y -> sub s x :-> sub s y
143+ x@(NAtomic _) -> x
167144
168−instance Free Preds where
169− free (Preds ps) = flip foldMap ps $ \case
145+instance Free Pred where
146+ free = \case
170147 Update x y z -> free x <> free y <> free z
171− x `HasField` (_, y) -> free x <> free y
172− sub s (Preds ps) =
173− Preds $
174− ps >>= \case
175− Update x y z ->
176− let (a, x') = sub' x
177− (b, y') = sub' y
178− (c, z') = sub' z
179− in Update x' y' z' : unPreds (a <> b <> c)
180− HasField t (f, v) ->
181− let (a, t') = sub' t
182− in HasField t' (f, sub s v) : unPreds a
183− where
184− sub' t = case sub s (scheme t) of
185− pp :=> t' -> (pp, t')
186− NAtomic _ -> error "can not be atomic" -- this should not be an 'error'
148+ HasField _ x (_, y) -> free x <> free y
149+ StringOrNumber x -> free x
150+ sub s = \case
151+ Update x y z -> Update (sub s x) (sub s y) (sub s z)
152+ HasField r t (f, v) -> HasField r (sub s t) (f, sub s v)
153+ StringOrNumber x -> StringOrNumber $ sub s x
187154
188155instance Free Scheme where
189156 free (x :=> y) = free x <> free y
190− free (NAtomic _) = S.empty
191− sub s (x :=> NTypeVariable tv) =
192− case M.lookup tv $ unSubstitution s of
193− Nothing -> sub s x :=> NTypeVariable tv
194− Just (newCs :=> new) -> (sub s x <> newCs) :=> new
195− Just a@(NAtomic _) -> assert (null . unPreds $ x) a
196157 sub s (x :=> y) = sub s x :=> sub s y
197− sub _ x@(NAtomic _) = x
198158
199159instance Free a => Free [a] where
200160 free = foldMap free
201161 sub s = fmap (sub s)
202162
163+instance Free a => Free (Seq a) where
164+ free = foldMap free
165+ sub s = fmap (sub s)
166+
203167instance Free Substitution where
204168 free (Substitution s) = free . M.elems $ s
205169 sub new old = old <> new
@@ -208,15 +172,22 @@ instance (Free a, Free b) => Free (a, b) where
208172 free (a, b) = free a <> free b
209173 sub s (a, b) = (sub s a, sub s b)
210174
211−newtype Substitution = Substitution {unSubstitution :: Map TypeVariable Scheme}
175+instance Free (MKM.Map Pred) where
176+ free = MKM.keys
177+ sub subs@(Substitution s) mkm@(MKM.Map m _) = m'
178+ where
179+ vals = S.toList . fold . M.elems $ M.restrictKeys m (M.keysSet s)
180+ f = appEndo $ foldMap (Endo . MKM.delete) vals
181+ m' = f mkm <> MKM.fromList (sub subs vals)
182+
183+newtype Substitution = Substitution {unSubstitution :: Map TypeVariable NType}
212184 deriving newtype (Eq, Ord, Show)
213185
214186prettySubstitution :: Substitution -> A.Value
215187prettySubstitution = A.toJSON . M.mapKeysMonotonic (TL.pack . show) . fmap renderPretty . unSubstitution
216188
217−-- | @older <> newer@
218189instance Semigroup Substitution where
219− x'@(Substitution x) <> (Substitution y) = Substitution (fmap (sub x') y <> x)
190+ x'@(Substitution x) <> y'@(Substitution y) = Substitution (M.unionWith (error "invariant") (fmap (sub y') x) (fmap (sub x') y))
220191
221192instance Monoid Substitution where
222193 mempty = Substitution mempty
@@ -227,114 +198,113 @@ instance Free Constraint where
227198
228199(<<-) ::
229200 TypeVariable ->
230− Scheme ->
231− UnifyM Substitution
232−v <<- ([] :=> NTypeVariable x) | v == x = return mempty
201+ NType ->
202+ UnifyM ()
203+v <<- (NTypeVariable x) | v == x = pure ()
233204v <<- x | v `occursIn` x = tell (InfinityType x) >> return mempty
234−v <<- x = return $ Substitution $ M.singleton v x
205+ where
206+ occursIn :: Free x => TypeVariable -> x -> Bool
207+ occursIn t u = t `S.member` free u
208+v <<- x = modify (Substitution (M.singleton v x) <>)
235209
236210unifyWithPriority ::
237211 -- | The range of type variables to interpret as being lower
238212 -- priority (try to replace them if possible)
239− RS.RSet TypeVariable ->
213+ RS.RSet RangeTypeVariable ->
240214 Constraint ->
241− UnifyM Substitution
242−unifyWithPriority range (lhs :~ rhs) =
243− case (lhs, rhs) of
244− (NAtomic x, NAtomic y) | x == y -> return mempty
245− (xcs :=> NTypeVariable x, ycs :=> NTypeVariable y) -> do
246− let ((lhsCs, lhs'), (rhsCs, rhs')) =
247− if y `RS.member` range
248− then ((ycs, y), (xcs, x))
249− else ((xcs, x), (ycs, y))
250− extraCs = replacing lhs' (scheme . NTypeVariable $ rhs') lhsCs
251− newScheme = (extraCs <> rhsCs) :=> NTypeVariable rhs'
252− -- This might come back to bite me.
253− (<> (Substitution $ M.singleton rhs' newScheme)) <$> (lhs' <<- newScheme)
254− (cs :=> NTypeVariable t, x) -> t <<- (replacing t x cs =>> x)
255− (x, cs :=> NTypeVariable t) -> t <<- (replacing t x cs =>> x)
256− (xcs :=> List x, ycs :=> List y) ->
257− unifyWithPriority range $ (xcs =>> x) :~ (ycs =>> y)
258− (Preds xcs :=> NAttrSet x, Preds ycs :=> NAttrSet y) ->
259− -- TODO: what to do with predicates ?
260− -- I don't think there should be any predicates here...
261− assert (null xcs && null ycs) $
262− foldr (\c s -> s >>= \s' -> (<> s') <$> unifyWithPriority range (sub s' c)) (pure mempty)
263− . M.elems
264− $ M.intersectionWith (:~) x y
265− (Preds xcs :=> (x1 :-> y1), Preds ycs :=> (x2 :-> y2)) -> do
266− s <- unifyWithPriority range (x1 :~ x2)
267− s' <- unifyWithPriority range $ sub s $ y1 :~ y2
268− let ss = s' <> s
269− -- I don't think there should be any predicates here either...
270− -- s'' <- uncurry unifyPred . sub ss $ (xcs, ycs)
271− assert (null xcs && null ycs) $ return ss
272− (x, y) -> tell (CanNotUnify x y) >> return mempty
273−
274−replacing :: Free x => TypeVariable -> Scheme -> x -> x
275−replacing tv t x =
276− let s = Substitution $ M.singleton tv t
277− in sub s x
278−
279−solve :: Seq Constraint -> UnifyM Substitution
280−solve = solveWithPriority RS.empty
215+ UnifyM ()
216+unifyWithPriority range (lhs :~ rhs) = do
217+ s <- get
218+ case sub s (lhs, rhs) of
219+ (x, y) | x == y -> return mempty
220+ (NTypeVariable x, NTypeVariable y) -> do
221+ if rangeTypeVariable y `RS.member` range
222+ then y <<- NTypeVariable x
223+ else x <<- NTypeVariable y
224+ (NTypeVariable t, x) -> t <<- x
225+ (x, NTypeVariable t) -> t <<- x
226+ (List x, List y) -> unifyWithPriority range $ x :~ y
227+ (NAttrSet x, NAttrSet y) -> do
228+ assertSetsMatch (tell . KeysDontMatch) (M.keysSet x) (M.keysSet y)
229+ unifySchemes range . M.elems $ M.intersectionWith (,) x y
230+ (x1 :-> y1, x2 :-> y2) -> do
231+ unifyWithPriority range (x1 :~ x2)
232+ unifyWithPriority range $ y1 :~ y2
233+ (x, y) -> tell (CanNotUnify x y)
234+
235+unifySchemes :: RS.RSet RangeTypeVariable -> [(Scheme, Scheme)] -> UnifyM ()
236+unifySchemes _ [] = pure mempty
237+unifySchemes range ((x, y) : rest) = do
238+ unifyScheme range x y
239+ unifySchemes range rest
240+
241+unifyScheme :: RS.RSet RangeTypeVariable -> Scheme -> Scheme -> UnifyM ()
242+unifyScheme range (xs :=> x) (ys :=> y) = do
243+ solveWithPriority range (pure (x :~ y))
244+ s <- get
245+ let f = S.fromList . sub s
246+ assertSetsMatch (tell . ConstraintsDontMatch) (f xs) (f ys)
247+
248+assertSetsMatch :: Ord x => Applicative f => (Set x -> f ()) -> Set x -> Set x -> f ()
249+assertSetsMatch f x y = case (x S.\\ y, y S.\\ x) of
250+ (a, b) | S.null a, S.null b -> pure ()
251+ (a, b) -> f $ a <> b
252+
253+solve :: Seq Constraint -> UnifyM ()
254+solve = solveWithPriority mempty
281255
282256solveWithPriority ::
283257 -- | The range of type variables to interpret as being lower
284258 -- priority (try to replace them if possible)
285− RS.RSet TypeVariable ->
259+ RS.RSet RangeTypeVariable ->
286260 Seq Constraint ->
287− UnifyM Substitution
261+ UnifyM ()
288262solveWithPriority _ Empty = return mempty
289263solveWithPriority range (rest :|> c) = do
290− s <- unifyWithPriority range c
291− (<> s) <$> solveWithPriority range (fmap (sub s) rest)
292−
293−occursIn :: Free x => TypeVariable -> x -> Bool
294−occursIn t x = t `S.member` free x
264+ unifyWithPriority range c
265+ solveWithPriority range rest
295266
296267data Errors
297268 = UndefinedVariable VarName
298269 | UnexpectedType {expected :: Scheme, got :: Scheme}
299− | KeyNotPresent' Text
300270 deriving stock (Eq, Ord, Show)
301271
302−freshSrc ::
303− Members '[Fresh, Reader SrcSpan, Writer (TypeVariable, SrcSpan)] r =>
304− Eff r TypeVariable
305−freshSrc = do
306− v <- send Fresh
307− src <- ask @SrcSpan
308− tell (v, src)
309− return v
310−
311272data UnifyingError
312− = InfinityType Scheme
313− | CanNotUnify Scheme Scheme
273+ = InfinityType NType
274+ | CanNotUnify NType NType
275+ | ConstraintsDontMatch (Set Pred)
276+ | KeysDontMatch (Set Text)
314277 deriving stock (Eq, Show)
315278
316279data PredicateError
317280 = KeyNotPresent Text NType
318281 | NotAnAttributeSet NType
282+ | NotAddable NType
319283 deriving stock (Eq, Show)
320284
321−type UnifyM x = forall r. Members '[Writer UnifyingError] r => Eff r x
285+data InferError
286+ = ConflictingBindingDefinitions (NormalizedBinding' NExprLoc) (NormalizedBinding' NExprLoc)
287+ deriving stock (Show)
288+
289+type UnifyM x = forall r. Members '[Writer UnifyingError, State Substitution] r => Eff r x
322290
323291type InferEffs =
324292 '[ Fresh,
325− Writer (TypeVariable, SrcSpan),
326− Writer Constraint,
293+ Reader SrcSpan,
327294 Writer (SrcSpan, Errors),
328295 Writer PredicateError,
329− State VariableMap,
296+ Writer Pred,
297+ State (MKM.Map Pred),
298+ VariableMapEff,
330299 Writer UnifyingError,
331− SubstituteEnv,
300+ Writer InferError,
301+ State Substitution,
332302 TreeTracer
333303 ]
334304
335305type InferM x = forall r. Members InferEffs r => Eff r x
336306
337−type InferM' x = forall r. Members (Reader SrcSpan ': InferEffs) r => Eff r x
307+type InferM' x = forall r. Members (Writer Constraint : InferEffs) r => Eff r x
338308
339309runSeqWriter :: forall s w r a. (IsSequence s, Element s ~ w) => Eff (Writer w ': r) a -> Eff r (a, s)
340310runSeqWriter = handleRelayS mempty (\s x -> return (x, s)) $ \s (Tell w) k -> k (cons w s) ()
@@ -344,126 +314,113 @@ throwSrc e = do
344314 src <- ask @SrcSpan
345315 tell (src, e)
346316
347−throwSrcTV ::
317+throwTV ::
348318 Members
349319 '[ Reader SrcSpan,
350320 Writer (SrcSpan, e),
351− Writer (TypeVariable, SrcSpan),
352321 Fresh
353322 ]
354323 r =>
355324 e ->
356325 Eff r TypeVariable
357−throwSrcTV e = do
326+throwTV e = do
358327 throwSrc e
359− freshSrc
328+ fresh
360329
361330type VariableMap = Map VarName Scheme
362331
363−(~~) :: Member (Writer Constraint) r => Scheme -> Scheme -> Eff r ()
332+(~~) :: Member (Writer Constraint) r => NType -> NType -> Eff r ()
364333lhs ~~ rhs = tell $ lhs :~ rhs
365334
366−-- TODO: shadowed bindings are not properly restored.
367−withBindings ::
368− (Member (State VariableMap) effs) =>
369− VariableMap ->
370− Eff effs a ->
371− Eff effs a
372−withBindings bindings m = do
373− modify (bindings <>)
374− a <- m
375− modify @VariableMap (`M.difference` bindings)
376− return a
377−
378335instantiate ::
379336 forall effs.
380− Members '[Fresh, Reader SrcSpan, Writer (TypeVariable, SrcSpan)] effs =>
337+ Members '[Fresh, Writer Pred] effs =>
381338 Scheme ->
382− Eff effs Scheme
383−instantiate = evalState M.empty . instantiateScheme
339+ Eff effs NType
340+instantiate s = do
341+ (cs :=> t) <- runReader 0 . evalState M.empty . instantiateScheme $ s
342+ tell `traverse_` cs
343+ return t
384344 where
385− instantiateScheme :: forall. Scheme -> Eff (State (Map DeBruijn TypeVariable) ': effs) Scheme
386− instantiateScheme (ps :=> t) =
387− (:=>) <$> (Preds <$> traverse instantiatePred (unPreds ps)) <*> instantiate' t
388− instantiateScheme x@(NAtomic _) = return x
389−
390− instantiatePred :: forall. Pred -> Eff (State (Map DeBruijn TypeVariable) ': effs) Pred
391− instantiatePred = \case
392− (Update x y z) -> Update <$> instantiate' x <*> instantiate' y <*> instantiate' z
393− (x `HasField` (f, y)) -> HasField <$> instantiate' x <*> ((f,) <$> instantiate y)
394−
395− instantiate' :: forall. NType -> Eff (State (Map DeBruijn TypeVariable) ': effs) NType
396− instantiate' x@(NTypeVariable _) = return x
397− instantiate' (NBruijn db) = NTypeVariable <$> freshInst db
398− instantiate' (x :-> y) = (:->) <$> instantiateScheme x <*> instantiateScheme y
399− instantiate' (List x) = List <$> instantiateScheme x
400− instantiate' (NAttrSet xs) = NAttrSet <$> traverse instantiateScheme xs
401−
402− freshInst :: DeBruijn -> Eff (State (Map DeBruijn TypeVariable) ': effs) TypeVariable
403− freshInst db = do
345+ instantiateScheme :: forall. Scheme -> Eff (State (Map DeBruijn TypeVariable) ': Reader Int ': effs) Scheme
346+ instantiateScheme =
347+ traverseNTypesWith (local @Int (+ 1)) %%~ \case
348+ (TBruijn db) -> TTypeVariable <$> freshInst db
349+ x@(TAtomic _) -> return x
350+ x@(TTypeVariable _) -> return x
351+
352+ freshInst :: DeBruijn -> Eff (State (Map DeBruijn TypeVariable) ': Reader Int ': effs) TypeVariable
353+ freshInst (DeBruijn i j) = do
354+ x <- ask @Int
355+ let db = DeBruijn (i - x) j
404356 gets (M.lookup db) >>= \case
405357 Just t -> return t
406358 Nothing -> do
407− t <- freshSrc
359+ t <- fresh
408360 modify (M.insert db t)
409361 return t
410362
411−infer :: NExprLoc -> InferM Scheme
412−infer (Fix (Compose (Ann src x))) = runReader src $ case x of
363+infer :: NExprLoc -> InferM' NType
364+infer (Fix (Compose (Ann src x))) = local (const src) $ case x of
413365 NConstant a -> return . NAtomic $ case a of
414− NURI {} -> URI
415− NInt {} -> Integer
416− NFloat {} -> Float
366+ NURI {} -> String
367+ NInt {} -> Number
368+ NFloat {} -> Number
417369 NBool {} -> Bool
418370 NNull {} -> Null
419− NLiteralPath {} -> return . NAtomic $ Path
420− NEnvPath {} -> return . NAtomic $ Path
371+ NLiteralPath {} -> return . NAtomic $ String
372+ NEnvPath {} -> return . NAtomic $ String
421373 NStr {} -> return $ NAtomic String
422374 NSym var ->
423− get @VariableMap
424− >>= maybe (scheme . NTypeVariable <$> throwSrcTV (UndefinedVariable var)) return . M.lookup var
375+ lookupVar var
376+ >>= maybe (scheme . NTypeVariable <$> throwTV (UndefinedVariable var)) return
425377 >>= instantiate -- I have no idea if this covers all cases.
426378 NList xs -> do
427379 xs' <- traverse infer xs
428380 traverse_ tell . fmap (uncurry (:~)) $ zip xs' (tail xs')
429381 case xs' of
430− [] -> scheme . NTypeVariable <$> freshSrc
431− y : _ -> return . scheme $ List y
382+ [] -> List . NTypeVariable <$> fresh
383+ y : _ -> return $ List y
432384 NUnary NNeg y -> do
433385 t <- infer y
434− -- TODO: Infer either Float or Integer
435− -- tell $ t :~ (normalType . NAtomic $ )
436− return t
386+ t ~~ NAtomic Number
387+ return $ NAtomic Number
437388 NUnary NNot y -> do
438389 t <- infer y
439390 t ~~ NAtomic Bool
440− return t
391+ return $ NAtomic Bool
441392 NBinary NUpdate lhs rhs -> do
442393 lhsT <- infer lhs
443394 rhsT <- infer rhs
444− res <- scheme . NTypeVariable <$> freshSrc
445− return $ [lhsT // rhsT $ res] =>> res
395+ res <- NTypeVariable <$> fresh
396+ tell (lhsT // rhsT $ res)
397+ return res
446398 NBinary NApp lhs rhs -> do
447399 lhst <- infer lhs
448400 rhst <- infer rhs
449− rest <- scheme . NTypeVariable <$> freshSrc
450− lhst ~~ (scheme $ rhst :-> rest)
401+ rest <- NTypeVariable <$> fresh
402+ lhst ~~ (rhst :-> rest)
451403 return rest
452404 NBinary NConcat lhs rhs -> do
453405 lhst <- infer lhs
454406 rhst <- infer rhs
455− t <- scheme . NTypeVariable <$> freshSrc
456− let listt = scheme $ List t
407+ t <- NTypeVariable <$> fresh
408+ let listt = List t
457409 lhst ~~ listt
458410 rhst ~~ listt
459− return $ listt
411+ return listt
460412 NBinary NEq lhs rhs -> equality lhs rhs
461413 NBinary NNEq lhs rhs -> equality lhs rhs
462414 NBinary NLt lhs rhs -> comparison lhs rhs
463415 NBinary NLte lhs rhs -> comparison lhs rhs
464416 NBinary NGt lhs rhs -> comparison lhs rhs
465417 NBinary NGte lhs rhs -> comparison lhs rhs
466− NBinary NPlus lhs rhs -> math lhs rhs
418+ NBinary NPlus lhs rhs -> do
419+ lhst <- infer lhs
420+ rhst <- infer rhs
421+ lhst ~~ rhst
422+ tell $ StringOrNumber lhst
423+ return lhst
467424 NBinary NMinus lhs rhs -> math lhs rhs
468425 NBinary NMult lhs rhs -> math lhs rhs
469426 NBinary NDiv lhs rhs -> math lhs rhs
@@ -472,47 +429,68 @@ infer (Fix (Compose (Ann src x))) = runReader src $ case x of
472429 NBinary NImpl lhs rhs -> logic lhs rhs
473430 NSelect r path' def -> do
474431 setT <- infer r
475− path <- getPath path'
432+ let path = getPath path'
433+ strictness = case def of
434+ Nothing -> RequiredField
435+ Just _ -> OptionalField
476436 resT <-
477− scheme . NTypeVariable <$> case path of
478− Just p -> do
479− (set', var) <- lookupAttrSet p
480− setT ~~ set'
481− return var
482− Nothing -> freshSrc
437+ NTypeVariable <$> case path of
438+ Just p -> lookupAttrSet strictness setT p
439+ Nothing -> fresh
483440 case def of
484441 Nothing -> return ()
485442 Just defR -> do
486− -- this should infer optional type
487443 defT <- infer defR
488444 defT ~~ resT
489445 return resT
490− NSet NNonRecursive xs -> scheme . NAttrSet <$> inferBinding xs
446+ NSet NNonRecursive xs -> NAttrSet <$> inferBinding xs
447+ NSet NRecursive xs -> NAttrSet <$> inferRecBinding xs
448+ NLet bindings body -> do
449+ bindingsT <- inferRecBinding bindings
450+ localVariablesMap bindingsT $ infer body
491451 NHasAttr attrSet path -> do
492452 setT <- infer attrSet
493− -- this should infer optional type
494− return setT
453+ case getPath path of
454+ Just p -> void $ lookupAttrSet OptionalField setT p
455+ Nothing -> pure ()
456+ return $ NAtomic Bool
495457 NAbs param body -> do
496458 (paramT, varMap :: VariableMap) <- case param of
497459 Param name -> do
498− t <- freshSrc
499− return (scheme $ NTypeVariable t, M.singleton name . scheme $ NTypeVariable t)
460+ t <- fresh
461+ return (NTypeVariable t, M.singleton name . scheme $ NTypeVariable t)
500462 ParamSet set variadic binding -> do
501− setBindings <-
502− M.fromList <$> set
503− `for` ( \(name, def) -> do
504− t <- case def of
505− Nothing -> scheme . NTypeVariable <$> freshSrc
506− Just def' -> infer def'
507− return (name, t)
508− )
509− let setT = scheme . NAttrSet $ setBindings
510− return (setT, maybe M.empty (`M.singleton` setT) binding <> setBindings)
511− bodyT <- withBindings varMap $ infer body
512− return . scheme $ paramT :-> bodyT
513− NLet bindings body -> do
514− bindingsT <- inferBinding bindings
515− withBindings bindingsT $ infer body
463+ (paramT, varMap) <-
464+ if variadic
465+ then do
466+ setT <- NTypeVariable <$> fresh
467+ setBindings <-
468+ M.fromList <$> set
469+ `for` ( \(name, def) -> do
470+ let r = case def of
471+ Nothing -> RequiredField
472+ Just _ -> OptionalField
473+ (NTypeVariable -> t) <- lookupAttrSet r setT (pure name)
474+ case def of
475+ Nothing -> pure ()
476+ Just def' -> infer def' >>= (t ~~)
477+ return (name, scheme t)
478+ )
479+ return (setT, setBindings)
480+ else do
481+ setBindings <-
482+ M.fromList <$> set
483+ `for` ( \(name, def) -> do
484+ t <- case def of
485+ Nothing -> NTypeVariable <$> fresh
486+ Just def' -> infer def'
487+ return (name, scheme t)
488+ )
489+ let setT = NAttrSet setBindings
490+ return (setT, setBindings)
491+ return (paramT, maybe M.empty (`M.singleton` scheme paramT) binding <> varMap)
492+ bodyT <- localVariablesMap varMap $ infer body
493+ return $ paramT :-> bodyT
516494 NIf cond t f -> do
517495 condT <- infer cond
518496 condT ~~ NAtomic Bool
@@ -521,29 +499,21 @@ infer (Fix (Compose (Ann src x))) = runReader src $ case x of
521499 tT ~~ fT
522500 return tT
523501 NWith set body -> do
524− -- TODO: implement fallback variable lookup -> specify that the set should have the key.
525502 setT <- infer set
526− vars <- expectAttrSet setT
527− withBindings vars $ infer body
528− where
529− -- Deprecated
530− expectAttrSet ::
531− Members '[Reader SrcSpan, Writer (SrcSpan, Errors)] r =>
532− Scheme ->
533− Eff r VariableMap
534− expectAttrSet (_ :=> NAttrSet x) = return x
535− expectAttrSet g = do
536− throwSrc
537− UnexpectedType
538− { expected = scheme $ NAttrSet M.empty,
539− got = g
540− }
541− return M.empty
503+ let f = case setT of
504+ NAttrSet vars -> localVariablesMap vars
505+ other -> replaceVariablesM $ \var -> do
506+ lookupVar var >>= \case
507+ Just t -> pure $ Just t
508+ Nothing -> do
509+ res <- lookupAttrSet RequiredField other (pure var)
510+ pure $ Just . scheme $ NTypeVariable res
511+ f $ infer body
542512 NAssert cond body -> do
543513 condT <- infer cond
544514 condT ~~ NAtomic Bool
545515 infer body
546− NSynHole _ -> scheme . NTypeVariable <$> freshSrc
516+ NSynHole _ -> NTypeVariable <$> fresh
547517 where
548518 equality lhs rhs = do
549519 lhst <- infer lhs
@@ -553,120 +523,390 @@ infer (Fix (Compose (Ann src x))) = runReader src $ case x of
553523 comparison lhs rhs = do
554524 lhst <- infer lhs
555525 rhst <- infer rhs
556− -- TODO: Infer lhst and rhst are either Integer or Double or String
526+ tell (StringOrNumber lhst)
557527 lhst ~~ rhst
558528 return $ NAtomic Bool
559529 math lhs rhs = do
560530 lhst <- infer lhs
561531 rhst <- infer rhs
562− -- TODO: Infer lhst and rhst are either Integer or Double
563− lhst ~~ rhst
564− return lhst
532+ let t = NAtomic Number
533+ lhst ~~ t
534+ rhst ~~ t
535+ return t
565536 logic lhs rhs = do
566537 lhst <- infer lhs
567538 rhst <- infer rhs
568− rhst ~~ NAtomic Bool
569− lhst ~~ NAtomic Bool
570− return $ NAtomic Bool
571−
572−inferBinding :: [Binding (Fix NExprLocF)] -> InferM' (Map VarName Scheme)
573−inferBinding bindings = do
574− bindings' <-
575− bindings >>.= \case
576− (NamedVar path r src) -> do
577− getPath path >>= \case
578− Nothing -> return []
579− Just name -> do
580− t <- inferGeneral r
581− return [stack ((,) <$> name) (scheme . NAttrSet . uncurry M.singleton) t]
582− Inherit attrSet keys src -> do
583− names <- catMaybes <$> traverse getKeyName keys
584− attrSet' <- infer `traverse` attrSet
585− names' <- for names $ \name ->
586− fmap (name,) <$> do
587− case attrSet' of
588− Just t -> do
589− (s', var) <- lookupAttrSet (pure name)
590− s' ~~ t
591− return $ Just . scheme . NTypeVariable $ var
592− Nothing -> do
593− vars <- get @VariableMap
594− return $ case M.lookup name vars of
595− Nothing -> Nothing
596− Just r -> Just r
597− return $ catMaybes names'
598− return $ M.fromListWith mergeSetTypes bindings'
539+ let t = NAtomic Bool
540+ rhst ~~ t
541+ lhst ~~ t
542+ return t
543+
544+type NormalizedBinding' = F.Free (Map VarName)
545+
546+type NormalizedBinding x = Map VarName (NormalizedBinding' x)
547+
548+normalizeBindings :: Member (Writer InferError) eff => [Binding NExprLoc] -> Eff eff (NormalizedBinding NExprLoc)
549+normalizeBindings bindings = case bindings' of
550+ [] -> return M.empty
551+ (x : xs) ->
552+ sequence $
553+ -- This is really sub-optimal
554+ foldl (\u -> M.unionWith (\i j -> i >>= \i' -> j >>= mergeBindings i') u . fmap pure) (fmap pure x) xs
555+ where
556+ mergeBindings (F.Free lhs) (F.Free rhs) =
557+ fmap F.Free . sequence $
558+ -- This is really sub-optimal
559+ M.unionWith (\x y -> x >>= \x' -> y >>= mergeBindings x') (pure <$> lhs) (pure <$> rhs)
560+ mergeBindings x y = do
561+ tell $ ConflictingBindingDefinitions x y
562+ return x
563+ fromName :: NonEmpty VarName -> x -> NormalizedBinding x
564+ fromName (n :| ns) x = M.singleton n $ foldr (\u t -> F.Free $ M.singleton u t) (F.Pure x) ns
565+ bindings' =
566+ bindings >>= \case
567+ (NamedVar path r _src) ->
568+ case getPath path of
569+ Nothing -> [] -- TODO: This should be an error (?)
570+ Just name -> pure $ fromName name r
571+ (Inherit attrSet keys src) ->
572+ let names :: [VarName] = mapMaybe getKeyName keys
573+ f :: VarName -> NExprLoc = case attrSet of
574+ Nothing -> \v -> Fix $ Compose $ Ann (SrcSpan src src) $ NSym v
575+ Just set -> \v -> Fix $ Compose $ Ann (SrcSpan src src) $ NSelect set (pure $ StaticKey v) Nothing
576+ in (\v -> fromName (pure v) (f v)) <$> names
577+
578+inferNormalizedBindings :: NormalizedBinding NExprLoc -> InferM (Map VarName Scheme)
579+inferNormalizedBindings = traverse inferNormalizedBindings'
580+ where
581+ inferNormalizedBindings' :: NormalizedBinding' NExprLoc -> InferM Scheme
582+ inferNormalizedBindings' (F.Pure expr) = inferGeneral expr
583+ inferNormalizedBindings' (F.Free m) = scheme . NAttrSet <$> inferNormalizedBindings' `traverse` m
584+
585+inferNormalizedBindingsRecursive :: NormalizedBinding NExprLoc -> InferM (Map VarName Scheme)
586+inferNormalizedBindingsRecursive n = do
587+ let components = case AM.topSort . AM.scc $ bindingGraph n of
588+ Left x -> [foldMap AM.vertexSet x]
589+ Right x -> AM.vertexSet <$> P.reverse x
590+ fmap toScheme <$> inferComponents n components
591+ where
592+ toScheme :: NormalizedBinding' Scheme -> Scheme
593+ toScheme (F.Pure t) = t
594+ toScheme (F.Free m) = scheme $ NAttrSet $ fmap toScheme m
595+
596+inferComponents :: NormalizedBinding NExprLoc -> [Set (NonEmpty VarName)] -> InferM (NormalizedBinding Scheme)
597+inferComponents _ [] = pure M.empty
598+inferComponents n ((S.toList -> paths) : otherComponents) = do
599+ let bindings = catMaybes $ paths <&> \path -> (path,) <$> lookupExpr path n
600+ (schemes, schemes') <- traceSubtree (showExpr . bindingsToNExpr $ bindings) $ do
601+ (types, p, preds, s) <-
602+ inferGeneral' (NAttrSet . fmap toScheme) $
603+ do
604+ tvsExprs <- for bindings (\(a, b) -> (a,b,) . NTypeVariable <$> fresh)
605+ let tvsExprs' =
606+ foldl' (M.unionWith mergeBindings) M.empty $
607+ fmap (\(a, b, c) -> normalize a (b, c)) tvsExprs
608+ tvs = toScheme . fmap snd <$> tvsExprs'
609+
610+ -- (type, tv)
611+ tvsTypes <-
612+ localVariablesMap tvs $
613+ tvsExprs' & traverse . traverse . _1 %%~ infer
614+ for_ tvsTypes $ traverse (uncurry (~~))
615+ return $ fmap fst <$> tvsTypes
616+ -- TODO: There should probably be some smarter predicate filtering
617+ schemes <- types & traverse . traverse %%~ (\t -> solveAndClose p $ sub s $ preds :=> t)
618+ let schemes' = toScheme' <$> schemes
619+ traceValue "resulting_type" $ renderPretty . scheme $ NAttrSet schemes'
620+ return (schemes, schemes')
621+
622+ otherBindings <-
623+ localVariablesMap schemes' $ inferComponents n otherComponents
624+ return $ M.unionWith mergeBindings schemes otherBindings
625+ where
626+ bindingToNExpr :: NonEmpty VarName -> NExprLoc -> Binding NExpr
627+ bindingToNExpr name expr = NamedVar (StaticKey <$> name) (stripAnnotation expr) nullPos
628+
629+ bindingsToNExpr :: [(NonEmpty VarName, NExprLoc)] -> NExpr
630+ bindingsToNExpr bs = Fix $ NSet NNonRecursive $ fmap (uncurry bindingToNExpr) bs
631+
632+ normalize :: NonEmpty VarName -> x -> NormalizedBinding x
633+ normalize (NESingle x) t = M.singleton x (F.Pure t)
634+ normalize (x :|| xs) t = M.singleton x (F.Free $ normalize xs t)
635+
636+ mergeBindings :: NormalizedBinding' x -> NormalizedBinding' x -> NormalizedBinding' x
637+ mergeBindings (F.Free lhs) (F.Free rhs) = F.Free $ M.unionWith mergeBindings lhs rhs
638+ -- This should have been taken care of when constructing the structures.
639+ mergeBindings _ _ = error "not possible"
640+
641+ toScheme :: NormalizedBinding' NType -> Scheme
642+ toScheme (F.Pure t) = scheme t
643+ toScheme (F.Free m) = scheme $ NAttrSet $ fmap toScheme m
644+
645+ toScheme' :: NormalizedBinding' Scheme -> Scheme
646+ toScheme' (F.Pure t) = t
647+ toScheme' (F.Free m) = scheme $ NAttrSet $ fmap toScheme' m
648+
649+ -- Returns Just only if it is the tip.
650+ -- This is what we want because non-tip elements are also part of the call graph.
651+ lookupExpr :: NonEmpty VarName -> NormalizedBinding x -> Maybe x
652+ lookupExpr (NESingle x) m =
653+ M.lookup x m >>= \case
654+ F.Pure a -> Just a
655+ F.Free _ -> Nothing
656+ lookupExpr (x :|| xs) m =
657+ M.lookup x m >>= \case
658+ F.Pure _ -> Nothing
659+ F.Free a -> lookupExpr xs a
660+
661+bindingGraph :: forall g. (G.Graph g, G.Vertex g ~ NonEmpty VarName) => NormalizedBinding NExprLoc -> g
662+bindingGraph n = G.overlays . fmap (\(k, v) -> getGraph (pure k) v) . M.toList $ n
599663 where
600− -- This seems fishy
601− mergeSetTypes :: Scheme -> Scheme -> Scheme
602− mergeSetTypes (xcs :=> NAttrSet ks) (ycs :=> NAttrSet ks') =
603− (xcs <> ycs) :=> NAttrSet (M.unionWith mergeSetTypes ks ks')
604− mergeSetTypes _ x = x
664+ getGraph :: NonEmpty VarName -> NormalizedBinding' NExprLoc -> g
665+ getGraph p (F.Pure e) = G.star p (P.filter (elemBindingSet n) $ getReferences e)
666+ getGraph p (F.Free m) = G.star p (fmap fst attrs) `G.overlay` G.overlays (fmap (uncurry getGraph) attrs)
667+ where
668+ attrs = (\(k, v) -> (p <> pure k, v)) <$> M.toList m
669+ elemBindingSet :: NormalizedBinding x -> NonEmpty VarName -> Bool
670+ elemBindingSet m = elemBindingSet' m . NE.toList
671+ elemBindingSet' :: NormalizedBinding x -> [VarName] -> Bool
672+ elemBindingSet' _ [] = True
673+ elemBindingSet' m (x : xs) = case M.lookup x m of
674+ Nothing -> False
675+ Just (F.Free next) -> elemBindingSet' next xs
676+ Just (F.Pure _) -> case xs of
677+ [] -> True
678+ _ -> False
679+
680+getReferences :: NExprLoc -> [NonEmpty VarName]
681+getReferences expr@(Fix (Compose (Ann _ x))) = case x of
682+ NConstant _ -> []
683+ NLiteralPath _ -> []
684+ NEnvPath _ -> []
685+ NStr _ -> []
686+ NSym var -> [pure var]
687+ NList xs -> foldMap getReferences xs
688+ NUnary _ a -> getReferences a
689+ NBinary _ a b -> getReferences a <> getReferences b
690+ NSelect {} -> case processSelect expr of
691+ (Nothing, other) -> other
692+ (Just p, other) -> pure p <> other
693+ NSet _ xs -> foldMap getReferences $ xs >>= toList -- This is not strictly correct
694+ NHasAttr a _ -> getReferences a
695+ NAbs _ a -> getReferences a -- This is not strictly correct
696+ NLet a b -> foldMap getReferences (a >>= toList) <> getReferences b -- This is not strictly correct
697+ NIf a b c -> getReferences a <> getReferences b <> getReferences c -- This is not strictly correct
698+ NWith a b -> getReferences a <> getReferences b -- This is not strictly correct
699+ NAssert a b -> getReferences a <> getReferences b
700+ NSynHole _ -> []
701+ where
702+ processSelect :: NExprLoc -> (Maybe (NonEmpty VarName), [NonEmpty VarName])
703+ processSelect u@(Fix (Compose (Ann _ y))) = case y of
704+ NSym var -> (Just $ pure var, [])
705+ NSelect l h m -> fmap
706+ (join (maybeToList (getReferences <$> m)) <>)
707+ $ case getPath h of
708+ Nothing -> (Nothing, getReferences l)
709+ Just p -> case processSelect l of
710+ (Just path, other) -> (Just $ path <> p, other)
711+ (Nothing, other) -> (Nothing, other)
712+ _ -> (Nothing, getReferences u)
713+
714+inferBinding :: [Binding NExprLoc] -> InferM (Map VarName Scheme)
715+inferBinding = normalizeBindings >=> inferNormalizedBindings
716+
717+inferRecBinding :: [Binding NExprLoc] -> InferM (Map VarName Scheme)
718+inferRecBinding = normalizeBindings >=> inferNormalizedBindingsRecursive
605719
606720renderPretty :: Pretty x => x -> TL.Text
607721renderPretty = renderLazy . layoutPretty defaultLayoutOptions . pretty
608722
609−showExpr :: Fix NExprLocF -> Text
610−showExpr = TL.toStrict . renderLazy . layoutPretty defaultLayoutOptions . P.group . prettyNix . stripAnnotation
723+showExpr :: NExpr -> Text
724+showExpr = TL.toStrict . renderLazy . layoutPretty defaultLayoutOptions . P.group . prettyNix
611725
612726inferGeneral :: NExprLoc -> InferM Scheme
613−inferGeneral x = traceSubtree (showExpr x) $ do
614− (((t, subs), cs), range) <-
615− traceSubtree "subexpressions" . registerTypeVariables . runConstraintEnv $ do
616− infer x >>= \case
617− (cs :=> t) -> do
618− cs' <- solveConstraints cs
619− return $ cs' :=> t
620− u -> return u
727+inferGeneral x@(Fix (Compose (Ann src _))) =
728+ local (const src) . traceSubtree (showExpr . stripAnnotation $ x) $ do
729+ (t, p, keep, s) <- inferGeneral' id $ infer x
730+ res <- solveAndClose p $ sub s $ keep :=> t
731+ traceValue "resuting_type" $ renderPretty res
732+ return res
733+
734+inferGeneral' ::
735+ (Members InferEffs r, Pretty y) =>
736+ (x -> y) ->
737+ Eff (Writer Constraint : r) x ->
738+ Eff r (x, RS.RSet RangeTypeVariable, [Pred], Substitution)
739+inferGeneral' toPretty f = do
740+ ((x, cs), range) <-
741+ traceSubtree "subexpressions" . registerTypeVariables . runSeqWriter @(Seq Constraint) $ f
621742 traceSubtree "received" $ do
622− traceValue "type" $ renderPretty t
623− traceValue "substitutions" $ prettySubstitution subs
743+ traceValue "type" $ renderPretty $ toPretty x
744+ get >>= traceValue "substitutions" . prettySubstitution
624745 traceValue "constraints" $ fmap renderPretty cs
625746 traceValue "range" $ T.pack . show $ range
626− s' <- solveWithPriority range cs
627− traceValue "substitutions_after_solving" $ prettySubstitution s'
628− let s = subs <> s'
629− returnedS = Substitution . M.filterWithKey (\k _ -> k `RS.notMember` range) . unSubstitution $ s
747+ get @(MKM.Map Pred) >>= traceValue "preds" . showPreds
748+ solveWithPriority range cs
749+ get >>= traceValue "substitutions_after_solving" . prettySubstitution
750+ (s, returnedS) <-
751+ get @Substitution
752+ <&> join bimap Substitution . M.partitionWithKey (\k _ -> rangeTypeVariable k `RS.member` range) . unSubstitution
753+ put returnedS
754+ -- modify @Substitution $ Substitution . M.filterWithKey (\k _ -> k `RS.notMember` range) . unSubstitution
755+ -- returnedS <- get @Substitution
630756 traceSubtree "returned" $ do
631757 traceValue "substitutions" $ prettySubstitution returnedS
632758 -- Filter for optimization purposes
633− subEnv returnedS
634− let retT = close (Predicate (`RS.member` range) <> Predicate (`S.notMember` free returnedS)) $ sub s t
635− traceValue "type" $ renderPretty retT
636− return retT
637−
638−solveConstraints :: Preds -> InferM Preds
639−solveConstraints (Preds ps) =
640− Preds <$> do
641− flip Control.Monad.filterM ps $ \case
642− HasField (NAttrSet ts) (f, t) -> case M.lookup f ts of
643− Nothing -> do
644− tell $ KeyNotPresent f (NAttrSet ts)
645− return False
646− Just t' -> do
647− t ~~ t'
648− return False
649− HasField (NTypeVariable _) _ -> return True
650− HasField t _ -> do
651− tell $ NotAnAttributeSet t
652− return False
653− (Update (NAttrSet a) (NAttrSet b) t) -> do
654− scheme (NAttrSet $ b <> a) ~~ scheme t
655− return False
656− _ -> return True
657−
658−-- | Stacks functions recursively inside each other
659−-- >>> stack [f1, f2, f3] h x
660−-- f1 (h $ f2 (h $ f3 x))
661−stack :: forall x y. NonEmpty (x -> y) -> (y -> x) -> x -> y
662−stack (g :| gs) h x = g $ f gs
759+ preds <- get @(MKM.Map Pred)
760+ let newRange = range RS.\\ rangeFromSet (free returnedS)
761+ (keep', toss) = MKM.partition ((`RS.member` newRange) . rangeTypeVariable) preds
762+ keep = MKM.toList keep'
763+ -- At this point the only predicates only contain type variables that are only used
764+ -- in the expression. This means that all of the generated constraints and
765+ -- substitutions can be safely restricted to this expression.
766+ traceValue "preds" $ showPreds toss
767+ traceValue "keep_preds" $ showPreds keep'
768+ put toss
769+ return (x, newRange, keep, s)
770+ where
771+ showPreds :: MKM.Map Pred -> Map String String
772+ showPreds = M.mapKeys show . fmap show . MKM.toMap
773+
774+rangeFromSet :: S.Set TypeVariable -> RS.RSet RangeTypeVariable
775+rangeFromSet = RS.fromAscList . fmap rangeTypeVariable . S.toAscList
776+
777+solveAndClose ::
778+ Members
779+ '[ Fresh,
780+ Writer PredicateError,
781+ Writer UnifyingError
782+ ]
783+ eff =>
784+ RS.RSet RangeTypeVariable ->
785+ Scheme ->
786+ Eff eff Scheme
787+solveAndClose range (cs :=> t) = evalState @Substitution mempty $ do
788+ (((solvedPreds, range'), constraints), collectedPreds) <-
789+ runSeqWriter @[Pred]
790+ . runSeqWriter @(Seq Constraint)
791+ . registerTypeVariables
792+ $ solveConstraints range cs
793+ let newRange = range `RS.union` range'
794+ case (constraints, collectedPreds) of
795+ (Empty, []) -> return . close newRange $ solvedPreds :=> t
796+ _ -> do
797+ solveWithPriority newRange constraints
798+ s <- get
799+ solveAndClose newRange $ sub s $ (collectedPreds <> solvedPreds) :=> t
800+
801+solveConstraints ::
802+ forall effs.
803+ Members
804+ '[ Fresh,
805+ Writer Pred,
806+ Writer PredicateError,
807+ Writer Constraint,
808+ Writer UnifyingError,
809+ State Substitution
810+ ]
811+ effs =>
812+ RS.RSet RangeTypeVariable ->
813+ [Pred] ->
814+ Eff effs [Pred]
815+solveConstraints _ [] = pure []
816+solveConstraints range (p : ps) = case p of
817+ -- StringOrNumber
818+ StringOrNumber (NTypeVariable _) -> (p :) <$> solveConstraints range ps
819+ StringOrNumber t -> do
820+ case t of
821+ NAtomic String -> pure ()
822+ NAtomic Number -> pure ()
823+ other -> tell $ NotAddable other
824+ solveConstraints range ps
825+ -- HasField
826+ HasField r (NAttrSet ts) (f, t) -> case M.lookup f ts of
827+ Nothing -> do
828+ case r of
829+ OptionalField -> pure ()
830+ RequiredField -> tell $ KeyNotPresent f (NAttrSet ts)
831+ solveConstraints range ps
832+ Just t' -> do
833+ x <- instantiate t
834+ y <- instantiate t'
835+ x ~~ y
836+ solveConstraints range ps
837+ HasField r tv@(NTypeVariable _) (k, v) -> do
838+ let sameAttrSet :: Pred -> Either (FieldStrictness, Scheme) Pred
839+ sameAttrSet = \case
840+ HasField r' t (k', v') | t == tv, k == k' -> Left (r', v')
841+ x -> Right x
842+ raiseStrictness :: FieldStrictness -> FieldStrictness -> FieldStrictness
843+ raiseStrictness RequiredField _ = RequiredField
844+ raiseStrictness _ RequiredField = RequiredField
845+ raiseStrictness OptionalField OptionalField = OptionalField
846+ (unzip -> (strictnesses, same), different) = partitionWith sameAttrSet ps
847+ strictness = foldr raiseStrictness r strictnesses
848+ unifyScheme range v `traverse_` same
849+ (HasField strictness tv (k, v) :) <$> solveConstraints range different
850+ HasField _ t _ -> do
851+ tell $ NotAnAttributeSet t
852+ solveConstraints range ps
853+ -- Update
854+ (Update (NAttrSet a) (NAttrSet b) t) -> do
855+ (NAttrSet $ b <> a) ~~ t
856+ solveConstraints range ps
857+ (Update a b _) -> do
858+ allGood <- check `traverse` ([a, b] :: [NType])
859+ (if and allGood then (p :) else id) <$> solveConstraints range ps
860+ where
861+ check :: NType -> Eff effs Bool
862+ check = \case
863+ NTypeVariable _ -> pure True
864+ NAttrSet _ -> pure True
865+ other -> tell (NotAnAttributeSet other) >> pure False
866+
867+partitionWith :: (a -> Either b c) -> [a] -> ([b], [c])
868+partitionWith f = partitionEithers . map f
869+
870+newtype DeBruijnContext = DeBruijnContext (Sum Int)
871+ deriving newtype (Eq, Ord, Show, Semigroup, Monoid, Group, Num)
872+
873+instance Act DeBruijnContext DeBruijn where
874+ act (DeBruijnContext (Sum n)) (DeBruijn i j) = DeBruijn (i + n) j
875+
876+type TDeBruijnMap = ShiftedMap DeBruijnContext TypeVariable DeBruijn
877+
878+close :: TraversableNTypes x => RS.RSet RangeTypeVariable -> x -> x
879+close range =
880+ run
881+ . evalState @TDeBruijnMap mempty
882+ . runReader @Int 0
883+ . evalState @Int 0
884+ . close'
663885 where
664− f :: [x -> y] -> x
665− f [] = x
666− f (k : ks) = h . k $ f ks
886+ -- State is the sequential number, Reader is the binding context number
887+ -- close' :: NType -> Eff '[State Int, Reader Int, State TDeBruijnMap] NType
888+ close' =
889+ traverseNTypesWith bndCtx %%~ \case
890+ x@(TBruijn _) -> return x
891+ x@(TAtomic _) -> return x
892+ (TTypeVariable tv) | rangeTypeVariable tv `RS.member` range -> TBruijn <$> newbruijn tv
893+ x@(TTypeVariable _) -> return x
667894
668−(>>.=) :: (Applicative f, Monad t, Traversable t) => t a -> (a -> f (t b)) -> f (t b)
669−ta >>.= f = join <$> traverse f ta
895+ bndCtx m = do
896+ modify @TDeBruijnMap (SM.shift 1)
897+ x <- local @Int (+ 1) m
898+ modify @TDeBruijnMap (SM.shift (-1))
899+ return x
900+ newbruijn t = do
901+ get @TDeBruijnMap <&> SM.lookup t >>= \case
902+ Nothing -> do
903+ i <- ask
904+ j <- get
905+ modify @Int (+ 1)
906+ let x = DeBruijn i j
907+ modify @TDeBruijnMap (SM.insert t x)
908+ return x
909+ Just x -> return x
670910
671911-- TODO: process variables
672912antiAntiQuote :: Antiquoted (NString r) r -> Maybe Text
@@ -685,33 +925,59 @@ unNString :: NString r -> Maybe Text
685925unNString (DoubleQuoted ss) = foldMap antiAntiQuoteText ss
686926unNString (Indented _ ss) = foldMap antiAntiQuoteText ss
687927
688−getKeyName :: Monad m => NKeyName r -> m (Maybe VarName)
689−getKeyName (StaticKey k) = return $ Just k
690−getKeyName (DynamicKey k) = return $ antiAntiQuote k
928+getKeyName :: NKeyName r -> (Maybe VarName)
929+getKeyName (StaticKey k) = Just k
930+getKeyName (DynamicKey k) = antiAntiQuote k
691931
692932getPath ::
693− (Traversable t, Monad f) =>
933+ (Traversable t) =>
694934 t (NKeyName r) ->
695− f (Maybe (t Text))
696−getPath path = sequence <$> traverse getKeyName path
935+ Maybe (t Text)
936+getPath = mapM getKeyName
697937
698938type AttrSetPath = NonEmpty Text
699939
700940lookupAttrSet ::
701941 Members
702− '[ Reader SrcSpan,
703− Writer (SrcSpan, Errors),
704− Writer (TypeVariable, SrcSpan),
942+ '[ Writer (SrcSpan, Errors),
943+ Writer Pred,
705944 Fresh
706945 ]
707946 r =>
947+ FieldStrictness ->
948+ NType ->
708949 AttrSetPath ->
709− Eff r (Scheme, TypeVariable)
710−lookupAttrSet (p :| []) = do
711− set <- NTypeVariable <$> freshSrc
712− var <- freshSrc
713− return ([HasField set (p, scheme . NTypeVariable $ var)] :=> set, var)
714−lookupAttrSet (p :| (pp : ps)) = do
715− set <- NTypeVariable <$> freshSrc
716− (innerSet, var) <- lookupAttrSet (pp :| ps)
717− return ([HasField set (p, innerSet)] :=> set, var)
950+ Eff r TypeVariable
951+lookupAttrSet r n = \case
952+ (NESingle p) -> do
953+ var <- getSubTV n
954+ tell (HasField r n (p, scheme . NTypeVariable $ var))
955+ return var
956+ (p :|| ps) -> do
957+ set <- NTypeVariable <$> getSubTV n
958+ var <- lookupAttrSet r set ps
959+ tell $ HasField r n (p, scheme set)
960+ return var
961+ where
962+ getSubTV (NTypeVariable tv) = freshSub tv
963+ getSubTV _ = fresh
964+
965+-- NonEmpty patterns
966+
967+pattern (:||) :: x -> NonEmpty x -> NonEmpty x
968+pattern (:||) x xs <-
969+ ( \case
970+ (a :| (aa : aaa)) -> Just (a, aa :| aaa)
971+ _ -> Nothing ->
972+ Just (x, xs)
973+ )
974+ where
975+ x :|| xs = NE.cons x xs
976+
977+pattern NESingle :: x -> NonEmpty x
978+pattern NESingle x <-
979+ x :| []
980+ where
981+ NESingle x = x :| []
982+
983+{-# COMPLETE (:||), NESingle #-}
src/Tix/Types.hs+237−147
@@ -1,28 +1,33 @@
11module Tix.Types
22 ( NType (..),
3+ FieldStrictness (..),
34 AtomicType (..),
45 DeBruijn (..),
56 TypeVariable (..),
6− showNType,
7+ RangeTypeVariable (..),
8+ rangeTypeVariable,
79 Scheme (..),
810 scheme,
911 Pred (..),
10− (=>>),
1112 (//),
12− Preds (..),
13+ TraversableNTypes (..),
14+ traverseNTypes,
15+ TerminalNType (..),
1316 )
1417where
1518
16−import Data.Foldable
17−import qualified Data.List as L
19+import Control.Lens hiding (List)
20+import Control.Monad.Freer
21+import Control.Monad.Freer.Reader
22+import Data.Bifunctor
1823import Data.Map (Map)
1924import qualified Data.Map as M
25+import qualified Data.Map.MultiKey.Strict as MKM
2026import Data.Set (Set)
2127import qualified Data.Set as S
2228import Data.Text (Text)
23−import qualified Data.Text.Lazy as TL
24−import qualified Data.Text.Lazy.Builder as T
25−import GHC.Exts
29+import qualified Data.Text as T
30+import Generic.Data
2631import Prettyprinter
2732
2833data Pred
@@ -34,181 +39,266 @@ data Pred
3439 -- ^ y
3540 !NType
3641 -- ^ z
37− | !NType `HasField` !(Text, Scheme)
38− deriving stock (Eq, Ord, Show)
42+ -- | 'x.a ~ y'
43+ | HasField !FieldStrictness !NType !(Text, Scheme)
44+ | -- | supports '+' operator (strings and numbers)
45+ StringOrNumber !NType
46+ deriving stock (Eq, Ord, Show, Generic)
3947
40−(//) :: Scheme -> Scheme -> Scheme -> Pred
41−(//) (_ :=> x) (_ :=> y) (_ :=> z) = Update x y z
42−(//) _ _ _ = error "Bad update operator" -- This should not be an 'error'
48+data FieldStrictness = OptionalField | RequiredField
49+ deriving stock (Eq, Ord, Show, Generic)
4350
44−data Scheme
45− = Preds :=> !NType
46− | NAtomic !AtomicType
47− deriving stock (Eq, Ord, Show)
51+instance MKM.Keyable Pred where
52+ type Key Pred = TypeVariable
53+ getKeys p =
54+ S.toList $
55+ p
56+ ^. traverseNTypes
57+ . to
58+ ( \case
59+ TAtomic _ -> S.empty
60+ TTypeVariable t -> S.singleton t
61+ TBruijn _ -> S.empty
62+ )
4863
49−newtype Preds = Preds {unPreds :: [Pred]}
50− deriving newtype (Show, Eq, Ord, Semigroup, Monoid, IsList)
64+(//) :: NType -> NType -> NType -> Pred
65+(//) = Update
66+{-# INLINE (//) #-}
5167
52−(=>>) :: Preds -> Scheme -> Scheme
53−[] =>> x = x
54−xs =>> (ys :=> u) = (xs <> ys) :=> u
55−_ =>> (NAtomic _) = error "Can not constrain atomic type"
68+data Scheme = [Pred] :=> !NType
69+ deriving stock (Eq, Ord, Show, Generic)
5670
5771scheme :: NType -> Scheme
5872scheme t = [] :=> t
73+{-# INLINE scheme #-}
74+
75+data TerminalNType
76+ = TAtomic !AtomicType
77+ | TTypeVariable !TypeVariable
78+ | TBruijn !DeBruijn
79+ deriving stock (Show, Generic)
80+
81+class TraversableNTypes s where
82+ traverseNTypesWith ::
83+ (Applicative f) => (forall x. f x -> f x) -> (TerminalNType -> f TerminalNType) -> s -> f s
84+
85+instance TraversableNTypes NType where
86+ traverseNTypesWith ctx f = \case
87+ NAtomic a -> f' $ TAtomic a
88+ NTypeVariable a -> f' $ TTypeVariable a
89+ NBruijn a -> f' $ TBruijn a
90+ x :-> y -> ctx $ (:->) <$> traverseNextType x <*> traverseNextType y
91+ List t -> ctx $ List <$> traverseNextType t
92+ NAttrSet m -> ctx $ NAttrSet <$> traverseNTypesWith ctx f `traverse` m
93+ where
94+ traverseNextType = traverseNTypesWith ctx f
95+ f' = fmap fromTerminalNType . f
96+ fromTerminalNType :: TerminalNType -> NType
97+ fromTerminalNType = \case
98+ TAtomic a -> NAtomic a
99+ TTypeVariable a -> NTypeVariable a
100+ TBruijn a -> NBruijn a
101+ {-# INLINE traverseNTypesWith #-}
102+
103+instance TraversableNTypes Scheme where
104+ traverseNTypesWith ctx f (cs :=> t) =
105+ ctx $
106+ (:=>) <$> traverseNTypesWith ctx f `traverse` cs <*> traverseNTypesWith ctx f t
107+ {-# INLINE traverseNTypesWith #-}
108+
109+instance TraversableNTypes Pred where
110+ traverseNTypesWith ctx f = \case
111+ (HasField r t (k, h)) ->
112+ HasField r <$> traverseNTypesWith ctx f t <*> ((k,) <$> traverseNTypesWith ctx f h)
113+ (Update x y z) ->
114+ Update
115+ <$> traverseNTypesWith ctx f x
116+ <*> traverseNTypesWith ctx f y
117+ <*> traverseNTypesWith ctx f z
118+ (StringOrNumber x) -> StringOrNumber <$> traverseNTypesWith ctx f x
119+ {-# INLINE traverseNTypesWith #-}
120+
121+traverseNTypes :: TraversableNTypes s => Traversal' s TerminalNType
122+traverseNTypes = traverseNTypesWith id
123+{-# INLINE traverseNTypes #-}
59124
60125data NType
61126 = NTypeVariable !TypeVariable
62127 | NBruijn !DeBruijn
63− | !Scheme :-> !Scheme
64− | List !Scheme
128+ | NAtomic !AtomicType
129+ | !NType :-> !NType
130+ | List !NType
65131 | NAttrSet !(Map Text Scheme)
66− deriving stock (Eq, Ord, Show)
132+ deriving stock (Eq, Ord, Show, Generic)
67133
68134data AtomicType
69− = Integer
70− | Float
135+ = Number
71136 | Bool
72137 | String
73− | Path
74138 | Null
75− | URI
76− deriving stock (Eq, Ord, Show)
139+ deriving stock (Eq, Ord, Show, Generic)
140+
141+instance Pretty AtomicType where
142+ pretty = viaShow
77143
78144data DeBruijn = DeBruijn !Int !Int
79145 deriving stock (Show, Eq, Ord)
80146
81−newtype TypeVariable = TypeVariable Int
147+data TypeVariable
148+ = TypeVariable !Int
149+ | SubTypeVariable !Int !Int
150+ deriving stock (Eq, Ord)
151+
152+rangeTypeVariable :: TypeVariable -> RangeTypeVariable
153+rangeTypeVariable (TypeVariable x) = RangeTypeVariable x
154+rangeTypeVariable (SubTypeVariable x _) = RangeTypeVariable x
155+{-# INLINE rangeTypeVariable #-}
156+
157+newtype RangeTypeVariable = RangeTypeVariable {unRangeTypeVariable :: Int}
82158 deriving newtype (Eq, Ord, Enum, Bounded)
83159
160+instance Show RangeTypeVariable where
161+ show (RangeTypeVariable n) = "〚" <> show n <> "〛"
162+
84163instance Show TypeVariable where
85− show (TypeVariable n) = "〚" <> show n <> "〛"
164+ show = show . pretty
165+
166+instance Pretty TypeVariable where
167+ pretty (TypeVariable n) = "〚" <> pretty n <> "〛"
168+ pretty (SubTypeVariable tv n) = "〚" <> pretty tv <> "." <> pretty n <> "〛"
169+
170+instance Pretty DeBruijn where
171+ pretty (DeBruijn i j) = "〚" <> pretty i <+> pretty j <> "〛"
172+
173+instance Pretty NType where
174+ pretty t = greekifyWith t $ prettyNType False t
175+
176+instance Pretty Scheme where
177+ pretty t = greekifyWith t $ prettyScheme t
86178
87−-- | Show a type which has already been closed over.
88−--
89−-- TODO: This should be a Prettyprinter
90−showNType :: Scheme -> Text
91−showNType t = TL.toStrict . T.toLazyText $ showNType' 0 t
179+greekifyWith :: TraversableNTypes t => t -> Eff '[Reader (Map DeBruijn Text), Reader Depth] x -> x
180+greekifyWith t =
181+ run
182+ . runReader (Depth 0)
183+ . runReader (M.fromList $ zip (S.toList $ getAllDeBurjins t) variableNames)
184+
185+newtype Depth = Depth Int
186+
187+descend :: Member (Reader Depth) eff => Eff eff x -> Eff eff x
188+descend = local (\(Depth n) -> Depth $ n + 1)
189+
190+getDepthedDeBurjins :: (TraversableNTypes x, Member (Reader Depth) eff) => x -> Eff eff (Set DeBruijn)
191+getDepthedDeBurjins x = do
192+ Depth depth <- ask
193+ return $ S.mapMonotonic (DeBruijn (- depth)) $ getDeBurjins x
194+
195+getDeBurjin :: (Members '[Reader Depth, Reader (Map DeBruijn Text)] eff) => DeBruijn -> Eff eff (Maybe Text)
196+getDeBurjin (DeBruijn i j) = do
197+ Depth depth <- ask
198+ M.lookup (DeBruijn (i - depth) j) <$> ask
199+
200+type PrettyM a = forall eff. Members '[Reader Depth, Reader (Map DeBruijn Text)] eff => Eff eff a
201+
202+prettyNType :: Bool -> NType -> PrettyM (Doc ann)
203+prettyNType _ (NTypeVariable x) = return $ pretty x
204+prettyNType _ (NBruijn x) =
205+ getDeBurjin x <&> \case
206+ Nothing -> pretty x
207+ Just t -> pretty t
208+prettyNType _ (NAtomic x) = return $ pretty x
209+prettyNType rhs (x :-> y) = descend $ do
210+ x' <- prettyNType True x
211+ y' <- prettyNType False y
212+ return $ group $ (if rhs then bracketed "(" ")" else id) $ x' <+> "->" <> line <> y'
213+prettyNType _ (List x) = descend $ do
214+ x' <- prettyNType True x
215+ return $ group $ bracketed "[" "]" x'
216+prettyNType _ (NAttrSet m) = descend $ do
217+ decls <- prettyDecl `traverse` M.toAscList m
218+ return $ group $ bracketed "{" "}" $ vsep decls
219+ where
220+ prettyDecl :: (Text, Scheme) -> PrettyM (Doc ann)
221+ prettyDecl (name, sch) = do
222+ sch' <- prettyScheme sch
223+ return $ group $ pretty name <+> "=" <> nest 2 (line <> sch' <> ";")
224+
225+bracketed :: Doc ann -> Doc ann -> Doc ann -> Doc ann
226+bracketed l r d = flatAlt (l <> " ") l <> nest 2 d <> line' <> r
227+
228+prettyScheme :: Scheme -> PrettyM (Doc ann)
229+prettyScheme u@(cs :=> t) = do
230+ greekVars <- ask @(Map DeBruijn Text)
231+ foralls <-
232+ getDepthedDeBurjins u <&> \s -> case M.elems . M.restrictKeys greekVars $ s of
233+ [] -> mempty
234+ foralls -> "∀" <+> fillSep (pretty <$> foralls) <> "." <> line
235+ descend $ do
236+ cs' <-
237+ prettyPred `traverse` cs <&> \case
238+ [] -> mempty
239+ cs' -> group (paren (vsep $ punctuate "," cs') <+> "=>" <> line)
240+ t' <- prettyNType False t
241+ return $ group $ foralls <> cs' <> t'
92242 where
93− greekVars = M.fromList $ zip (S.toList $ getAllDeBurjins t) variableNames
94− showNType' :: Int -> Scheme -> T.Builder
95− showNType' _ (NAtomic a) = showAtomicType a
96− showNType' depth (Preds ps :=> u) =
97− foralls <> predicates <> case u of
98− (NBruijn (DeBruijn i j)) -> greekVars M.! DeBruijn (i - depth) j
99− (NTypeVariable _) -> error "should not have free type variables at this point"
100− (x :-> y) -> showNextNType' x <> " -> " <> showNextNType' y
101− (List x) -> "[" <> showNextNType' x <> "]"
102− (NAttrSet x) ->
103− "{ "
104− <> ( mconcat
105− . L.intersperse "; "
106− . fmap (\(k, v) -> T.fromText k <> " = " <> showNextNType' v)
107− $ M.toList x
108− )
109− <> " }"
110− where
111− showNextNType' = showNType' $ depth + 1
112− currBurjins = S.mapMonotonic (DeBruijn (- depth)) $ getDeBurjins u
113− foralls =
114− if S.null currBurjins
115− then ""
116− else
117− "∀ "
118− <> (mconcat . L.intersperse " " . M.elems $ M.restrictKeys greekVars currBurjins)
119− <> ". "
120− predicates =
121− if null ps
122− then mempty
123− else "(" <> (fold . L.intersperse ", " $ T.fromString . show <$> ps) <> ") => "
243+ prettyPred :: Pred -> PrettyM (Doc ann)
244+ prettyPred (HasField r h (k, v)) = do
245+ h' <- prettyNType False h
246+ v' <- prettyScheme v
247+ let dotOp = case r of
248+ OptionalField -> ".?"
249+ RequiredField -> "."
250+ return $ group $ group (h' <> nest 2 (line' <> dotOp <> pretty k <+> "=")) <> nest 2 (line <> v')
251+ prettyPred (Update x y z) = do
252+ x' <- prettyNType False x
253+ y' <- prettyNType False y
254+ z' <- prettyNType False z
255+ return $ group $ x' <+> "//" <> line <> y' <+> "~" <> line <> z'
256+ prettyPred (StringOrNumber x) = do
257+ x' <- prettyNType False x
258+ return $ "(String | Number)" <+> "~" <+> x'
259+ paren = bracketed "(" ")"
124260
125261-- | Returns the set of all De Bruijn type variables relative to the outermost
126262-- (current) binding context.
127263-- So variables that are bound in one of the inner contexts will have a negative
128264-- binding context number.
129−getAllDeBurjins :: Scheme -> Set DeBruijn
130−getAllDeBurjins (NAtomic _) = S.empty
131−getAllDeBurjins (Preds ps :=> t) =
132− foldMap
133− ( \case
134− (Update x y z) ->
135− bndCtx $
136− getAllTypeDeBurjins x <> getAllTypeDeBurjins y <> getAllTypeDeBurjins z
137− (HasField x (_, y)) -> bndCtx $ getAllTypeDeBurjins x <> getAllDeBurjins y
138− )
139− ps
140− <> case t of
141− (NTypeVariable _) -> S.empty
142− (NBruijn x) -> S.singleton x
143− (x :-> y) -> bndCtx $ getAllDeBurjins x <> getAllDeBurjins y
144− (List x) -> bndCtx $ getAllDeBurjins x
145− (NAttrSet xs) -> bndCtx . foldMap getAllDeBurjins . M.elems $ xs
146− where
147− bndCtx = S.mapMonotonic (\(DeBruijn i j) -> DeBruijn (i - 1) j)
148−
149−getAllTypeDeBurjins :: NType -> Set DeBruijn
150−getAllTypeDeBurjins = getAllDeBurjins . scheme
265+getAllDeBurjins :: TraversableNTypes x => x -> Set DeBruijn
266+getAllDeBurjins =
267+ view $
268+ traverseNTypesWith (first $ S.mapMonotonic (\(DeBruijn i j) -> DeBruijn (i - 1) j))
269+ . to
270+ ( \case
271+ TAtomic _ -> S.empty
272+ TBruijn b -> S.singleton b
273+ TTypeVariable _ -> S.empty
274+ )
151275
152276-- | Get all De Bruijn type variables that were bound in the the outermost
153277-- (current) binding context.
154278-- Only returns the second indexes.
155−getDeBurjins :: NType -> Set Int
156−getDeBurjins = getDeBurjins' 0
279+getDeBurjins :: TraversableNTypes x => x -> Set Int
280+getDeBurjins t = getDeBurjins' t 0
157281
158282-- | Gets all De Bruijn variables with the given binding context offset.
159283-- Only returns the second indexes.
160−getDeBurjins' :: Int -> NType -> Set Int
161−getDeBurjins' _ (NTypeVariable _) = S.empty
162−getDeBurjins' n (NBruijn (DeBruijn m j)) | m == n = S.singleton j
163−getDeBurjins' _ (NBruijn _) = S.empty
164−getDeBurjins' n (x :-> y) = getSchemeDeBurjins' (n + 1) x <> getSchemeDeBurjins' (n + 1) y
165−getDeBurjins' n (List x) = getSchemeDeBurjins' (n + 1) x
166−getDeBurjins' n (NAttrSet xs) = foldMap (getSchemeDeBurjins' (n + 1)) . M.elems $ xs
167−
168−getSchemeDeBurjins' :: Int -> Scheme -> Set Int
169−getSchemeDeBurjins' _ (NAtomic _) = S.empty
170−getSchemeDeBurjins' n (Preds ps :=> t) =
171− getDeBurjins' n t
172− <> foldMap
173− ( \case
174− Update x y z -> getDeBurjins' n x <> getDeBurjins' n y <> getDeBurjins' n z
175− HasField u (_, v) -> getDeBurjins' n u <> getSchemeDeBurjins' n v
176− )
177− ps
178−
179−showAtomicType :: AtomicType -> T.Builder
180−showAtomicType Integer = "Integer"
181−showAtomicType Float = "Float"
182−showAtomicType Bool = "Bool"
183−showAtomicType String = "String"
184−showAtomicType Path = "Path"
185−showAtomicType Null = "Null"
186−showAtomicType URI = "URI"
187−
188−greek :: [T.Builder]
189−greek = ["α", "β", "γ", "δ", "ε", "ζ", "η", "θ", "ι", "κ", "λ", "μ", "ν", "ξ", "ο", "π", "ρ", "σ", "τ", "υ", "φ", "χ", "ψ", "ω"]
190−
191−variableNames :: [T.Builder]
192−variableNames =
193− greek <> fmap (\(n, g) -> g <> T.fromString (show n)) (zip [1 :: Int ..] greek)
194−
195−instance Pretty NType where
196− pretty (NTypeVariable t) = viaShow t
197− pretty (NBruijn (DeBruijn i j)) = "⟦" <> pretty i <+> pretty j <> "⟧"
198− pretty (x :-> y) = sep [pretty x, "->" <+> pretty y]
199− pretty (List x) = "[" <> align (pretty x) <> "]"
200− pretty (NAttrSet x) =
201− sep
202− [ flatAlt "{ " "{"
203− <+> align
204− ( sep . zipWith (<+>) ("" : repeat ";")
205− . map (\(k, v) -> pretty k <+> "=" <+> align (pretty v))
206− $ M.toList x
207− ),
208− "}"
209− ]
284+getDeBurjins' :: TraversableNTypes x => x -> Int -> Set Int
285+getDeBurjins' =
286+ view $
287+ traverseNTypesWith (\(Const f) -> Const (\n -> f (n + 1)))
288+ . to
289+ ( \case
290+ TAtomic _ -> const S.empty
291+ TBruijn (DeBruijn m j) -> \n ->
292+ if m == n
293+ then S.singleton j
294+ else S.empty
295+ TTypeVariable _ -> const S.empty
296+ )
210297
211−instance Pretty Scheme where
212− pretty (NAtomic a) = viaShow a
213− pretty ([] :=> t) = pretty t
214− pretty (cs :=> t) = viaShow cs <+> "=>" <+> pretty t
298+variableNames :: [Text]
299+variableNames =
300+ fmap T.pack $
301+ greek <> foldMap (\n -> (<> show n) <$> greek) ([1 :: Int ..] :: [Int])
302+ where
303+ greek :: [String]
304+ greek = ["α", "β", "γ", "δ", "ε", "ζ", "η", "θ", "ι", "κ", "λ", "μ", "ν", "ξ", "ο", "π", "ρ", "σ", "τ", "υ", "φ", "χ", "ψ", "ω"]
stack.yaml+1−1
@@ -17,7 +17,7 @@
1717#
1818# resolver: ./custom-snapshot.yaml
1919# resolver: https://example.com/snapshots/2018-01-01.yaml
20−resolver: lts-17.5
20+resolver: lts-17.10
2121
2222# User packages to be built.
2323# Various formats can be used as shown in the example below.
test/golden/importless/0.1.txtnew file+40
@@ -0,0 +1,40 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο.
2+( α.hostPlatform = β,
3+ α.lib = γ,
4+ α.mkDerivation =
5+ { buildInputs = [δ];
6+ meta =
7+ { description = String;
8+ homepage = String;
9+ license = ε;
10+ longDescription = String;
11+ platforms = ζ;
12+ repositories = {git = String;};
13+ };
14+ nativeBuildInputs = [η];
15+ outputBin = String;
16+ outputs = [String];
17+ patches = θ;
18+ pname = String;
19+ postFixup = String;
20+ src = ι;
21+ version = String;
22+ } ->
23+ κ,
24+ γ.optional = λ -> String -> θ,
25+ β.isMusl = λ,
26+ μ.licenses = ν,
27+ μ.platforms = ξ,
28+ ν.lgpl2Plus = ε,
29+ ξ.unix = ζ
30+) =>
31+{ autoreconfHook = η;
32+ fetchFromGitHub =
33+ {owner = String; repo = String; rev = String; sha256 = String;} -> ι;
34+ lib = ο;
35+ libusb1 = δ;
36+ patchelf = η;
37+ pkgconfig = η;
38+ stdenv = α;
39+} ->
40+κ
test/golden/importless/0.10.txtnew file+42
@@ -0,0 +1,42 @@
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( β.lib = γ,
3+ β.mkDerivation =
4+ { buildInputs = [δ];
5+ configureFlags = [String];
6+ doCheck = Bool;
7+ meta =
8+ { description = String;
9+ homepage = String;
10+ license = ε;
11+ maintainers = [ζ];
12+ platforms = [η];
13+ };
14+ nativeBuildInputs = [θ];
15+ pname = String;
16+ preConfigure = String;
17+ pythonPath = ∀ α. [α];
18+ src = ι;
19+ version = String;
20+ } ->
21+ κ,
22+ γ.licenses = λ,
23+ γ.maintainers = μ,
24+ γ.platforms = ν,
25+ λ.asl20 = ε,
26+ μ.bjornfor = ζ,
27+ ν.linux = [η],
28+ ξ.darwin = [η]
29+) =>
30+{ bison = δ;
31+ boost = δ;
32+ fetchurl = {sha256 = String; url = String;} -> ι;
33+ flex = δ;
34+ libevent = δ;
35+ openssl = δ;
36+ pkgconfig = θ;
37+ python = δ;
38+ stdenv = β;
39+ twisted = δ;
40+ zlib = δ;
41+} ->
42+κ
test/golden/importless/0.11.1.txtnew file+18
@@ -0,0 +1,18 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ enableParallelBuilding = Bool;
6+ meta =
7+ {description = String; homepage = String; license = δ; platforms = ε;};
8+ name = String;
9+ patches = [String];
10+ src = ζ;
11+ } ->
12+ η,
13+ β.licenses = θ,
14+ θ.lgpl21 = δ,
15+ ι.platforms = κ,
16+ κ.all = ε
17+) =>
18+{fetchurl = {sha256 = String; url = String;} -> ζ; gmp = γ; stdenv = α;} -> η
test/golden/importless/0.11.txt+1−1
@@ -1 +1 @@
1−∀ α. { callPackage = Path -> { sha256 = String; version = String } -> α } -> α
1+∀ α. {callPackage = String -> {sha256 = String; version = String;} -> α;} -> α
test/golden/importless/0.12.txt+1−1
@@ -1 +1 @@
1−∀ α. { callPackage = Path -> { sha256 = String; version = String } -> α } -> α
1+∀ α. {callPackage = String -> {sha256 = String; version = String;} -> α;} -> α
test/golden/importless/0.14.1.txtnew file+17
@@ -0,0 +1,17 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ enableParallelBuilding = Bool;
6+ meta =
7+ {description = String; homepage = String; license = δ; platforms = ε;};
8+ name = String;
9+ src = ζ;
10+ } ->
11+ η,
12+ β.licenses = θ,
13+ θ.lgpl21 = δ,
14+ ι.platforms = κ,
15+ κ.all = ε
16+) =>
17+{fetchurl = {sha256 = String; url = String;} -> ζ; gmp = γ; stdenv = α;} -> η
test/golden/importless/0.17.1.txtnew file+17
@@ -0,0 +1,17 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ enableParallelBuilding = Bool;
6+ meta =
7+ {description = String; homepage = String; license = δ; platforms = ε;};
8+ name = String;
9+ src = ζ;
10+ } ->
11+ η,
12+ β.licenses = θ,
13+ θ.lgpl21 = δ,
14+ ι.platforms = κ,
15+ κ.all = ε
16+) =>
17+{fetchurl = {sha256 = String; url = String;} -> ζ; gmp = γ; stdenv = α;} -> η
test/golden/importless/0.18.0.txtnew file+30
@@ -0,0 +1,30 @@
1+∀ α β γ δ ε ζ η θ ι κ λ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ configureFlags = [String];
6+ doCheck = Bool;
7+ enableParallelBuilding = Bool;
8+ meta =
9+ { description = String;
10+ homepage = String;
11+ license = δ;
12+ longDescription = String;
13+ platforms = ε;
14+ };
15+ name = String;
16+ propagatedBuildInputs = [ζ];
17+ src = η;
18+ } ->
19+ θ,
20+ β.licenses = ι,
21+ ι.gpl2Plus = δ,
22+ κ.platforms = λ,
23+ λ.unix = ε
24+) =>
25+{ fetchurl = {sha256 = String; url = String;} -> η;
26+ gmp = γ;
27+ isl = ζ;
28+ stdenv = α;
29+} ->
30+θ
test/golden/importless/0.2.txtnew file+55
@@ -0,0 +1,55 @@
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π.
2+( β.lib = γ,
3+ β.mkDerivation =
4+ { FONTCONFIG_FILE = δ;
5+ PKG_CONFIG_SYSTEMD_SYSTEMDUSERUNITDIR = String;
6+ buildInputs = [ε];
7+ doCheck = Bool;
8+ mesonFlags = [String];
9+ meta =
10+ { description = String;
11+ homepage = String;
12+ license = ζ;
13+ maintainers = [η];
14+ platforms = θ;
15+ };
16+ nativeBuildInputs = [ι];
17+ outputs = [String];
18+ pname = String;
19+ src = κ;
20+ version = String;
21+ } ->
22+ λ,
23+ μ.gst-plugins-base = ε,
24+ μ.gstreamer = ε,
25+ ν.libX11 = ε,
26+ γ.jtojnar = η,
27+ γ.licenses = ξ,
28+ γ.maintainers = ο,
29+ γ.platforms = π,
30+ ξ.lgpl21 = ζ,
31+ π.linux = θ
32+) =>
33+{ SDL2 = ε;
34+ alsaLib = ε;
35+ dbus = ε;
36+ doxygen = ι;
37+ fetchFromGitHub =
38+ {owner = String; repo = String; rev = String; sha256 = String;} -> κ;
39+ ffmpeg_3 = ε;
40+ glib = ε;
41+ graphviz = ι;
42+ gst_all_1 = μ;
43+ libjack2 = ε;
44+ libva = ε;
45+ makeFontsConf = {fontDirectories = ∀ α. [α];} -> δ;
46+ meson = ι;
47+ ninja = ι;
48+ pkgconfig = ι;
49+ sbc = ε;
50+ stdenv = β;
51+ udev = ε;
52+ valgrind = ι;
53+ xorg = ν;
54+} ->
55+λ
test/golden/importless/0.20.0.txtnew file+17
@@ -0,0 +1,17 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ enableParallelBuilding = Bool;
6+ meta =
7+ {description = String; homepage = String; license = δ; platforms = ε;};
8+ name = String;
9+ src = ζ;
10+ } ->
11+ η,
12+ β.licenses = θ,
13+ θ.lgpl21 = δ,
14+ ι.platforms = κ,
15+ κ.all = ε
16+) =>
17+{fetchurl = {sha256 = String; url = String;} -> ζ; gmp = γ; stdenv = α;} -> η
test/golden/importless/0.29.txtnew file+42
@@ -0,0 +1,42 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ.
2+( α.isDarwin = β,
3+ α.lib = γ,
4+ α.mkDerivation =
5+ { buildInputs = [Null];
6+ checkInputs = [δ];
7+ configureFlags = [ε];
8+ doCheck = Bool;
9+ meta =
10+ {description = String; homepage = String; license = ζ; platforms = η;};
11+ nativeBuildInputs = [θ];
12+ passthru = {compressionSupport = Bool; sslSupport = Bool;};
13+ patches = ι;
14+ pname = String;
15+ src = κ;
16+ version = String;
17+ } ->
18+ λ,
19+ γ.optionals = β -> [String] -> ι,
20+ μ.licenses = ν,
21+ μ.platforms = ξ,
22+ ν.lgpl2 = ζ,
23+ ξ.unix = η,
24+ ο.enableFeature = Bool -> String -> ε,
25+ π.enableFeature = Bool -> String -> ε,
26+ ρ.withFeature = Bool -> String -> ε,
27+ σ.withFeature = Bool -> String -> ε,
28+ τ.optional = Bool -> Null -> [Null]
29+) =>
30+{ compressionSupport = Bool;
31+ fetchurl = {sha256 = String; url = String;} -> κ;
32+ libxml2 = Null;
33+ openssl = Null;
34+ perl = δ;
35+ pkgconfig = θ;
36+ shared = Bool;
37+ sslSupport = Bool;
38+ static = Bool;
39+ stdenv = α;
40+ zlib = Null;
41+} ->
42+λ
test/golden/importless/0.3.3.txtnew file+5
@@ -0,0 +1,5 @@
1+∀ α β γ.
2+( α // {patches = [String]; sha256 = String; version = String;} ~ β,
3+ α.callPackage = String -> β -> γ
4+) =>
5+α -> γ
test/golden/importless/0.5.1.txtnew file+6
@@ -0,0 +1,6 @@
1+∀ α β γ δ.
2+( α // {prePatch = String; src = β; version = String;} ~ γ,
3+ α.callPackage = String -> γ -> δ,
4+ α.fetchurl = {sha256 = String; url = String;} -> β
5+) =>
6+α -> δ
test/golden/importless/0.6.txtnew file+35
@@ -0,0 +1,35 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.lib = β,
3+ γ.ipfs = δ,
4+ β.fpletz = ε,
5+ β.licenses = ζ,
6+ β.maintainers = η,
7+ β.platforms = θ,
8+ ζ.mit = ι,
9+ θ.unix = κ
10+) =>
11+{ buildGoModule =
12+ { meta =
13+ { description = String;
14+ homepage = String;
15+ license = ι;
16+ maintainers = [ε];
17+ platforms = κ;
18+ };
19+ passthru = {tests = {ipfs = δ;};};
20+ pname = String;
21+ postInstall = String;
22+ postUnpack = String;
23+ rev = String;
24+ sourceRoot = String;
25+ src = λ;
26+ subPackages = [String];
27+ vendorSha256 = Null;
28+ version = String;
29+ } ->
30+ μ;
31+ fetchurl = {sha256 = String; url = String;} -> λ;
32+ nixosTests = γ;
33+ stdenv = α;
34+} ->
35+μ
test/golden/importless/0.61.txtnew file+62
@@ -0,0 +1,62 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ.
2+( α.cc = β,
3+ α.lib = γ,
4+ α.mkDerivation =
5+ { CXXFLAGS = δ;
6+ buildInputs = [ε];
7+ cmakeFlags = [String];
8+ meta =
9+ { description = String;
10+ homepage = String;
11+ license = ζ;
12+ longDescription = String;
13+ maintainers = [η];
14+ platforms = θ;
15+ };
16+ name = String;
17+ nativeBuildInputs = [ι];
18+ outputs = [String];
19+ patches = [String];
20+ propagatedBuildInputs = [κ];
21+ src = λ;
22+ } ->
23+ μ,
24+ ν.licenses = ξ,
25+ ν.maintainers = ο,
26+ ν.optional = Bool -> Null -> [κ],
27+ ν.optionals = Bool -> [π] -> [κ],
28+ ν.platforms = ρ,
29+ ν.ttuegel = η,
30+ γ.optionalString = σ -> String -> δ,
31+ β.isClang = σ,
32+ ξ.gpl2 = ζ,
33+ ρ.all = θ
34+) =>
35+{ cairo = π;
36+ cmake = ι;
37+ curl = π;
38+ fetchpatch = {name = String; sha256 = String; url = String;} -> String;
39+ fetchurl = {sha256 = String; url = String;} -> λ;
40+ fontconfig = κ;
41+ freetype = κ;
42+ gobject-introspection = Null;
43+ introspectionSupport = Bool;
44+ lcms = π;
45+ lib = ν;
46+ libiconv = ε;
47+ libintl = ε;
48+ libjpeg = κ;
49+ minimal = Bool;
50+ ninja = ι;
51+ openjpeg = κ;
52+ pkgconfig = ι;
53+ poppler_data = τ;
54+ qt5Support = Bool;
55+ qtbase = Null;
56+ stdenv = α;
57+ suffix = String;
58+ utils = Bool;
59+ withData = Bool;
60+ zlib = κ;
61+} ->
62+μ
test/golden/importless/0.7.txtnew file+35
@@ -0,0 +1,35 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.lib = β,
3+ γ.ipfs = δ,
4+ β.fpletz = ε,
5+ β.licenses = ζ,
6+ β.maintainers = η,
7+ β.platforms = θ,
8+ ζ.mit = ι,
9+ θ.unix = κ
10+) =>
11+{ buildGoModule =
12+ { meta =
13+ { description = String;
14+ homepage = String;
15+ license = ι;
16+ maintainers = [ε];
17+ platforms = κ;
18+ };
19+ passthru = {tests = {ipfs = δ;};};
20+ pname = String;
21+ postInstall = String;
22+ postUnpack = String;
23+ rev = String;
24+ sourceRoot = String;
25+ src = λ;
26+ subPackages = [String];
27+ vendorSha256 = Null;
28+ version = String;
29+ } ->
30+ μ;
31+ fetchurl = {sha256 = String; url = String;} -> λ;
32+ nixosTests = γ;
33+ stdenv = α;
34+} ->
35+μ
test/golden/importless/0.8.5.txtnew file+33
@@ -0,0 +1,33 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.?meta = β,
3+ β.?platforms = [γ],
4+ δ.lib = ε,
5+ δ.mkDerivation =
6+ { buildInputs = [α];
7+ createFindlibDestdir = Bool;
8+ meta =
9+ { description = String;
10+ homepage = String;
11+ license = ζ;
12+ maintainers = [η];
13+ platforms = [γ];
14+ };
15+ patches = [θ];
16+ pname = String;
17+ src = ι;
18+ version = String;
19+ } ->
20+ κ,
21+ ε.licenses = λ,
22+ λ.lgpl21 = ζ,
23+ μ.maintainers = ν,
24+ ν.maggesi = η
25+) =>
26+{ camlp4 = α;
27+ fetchpatch = {sha256 = String; url = String;} -> θ;
28+ fetchurl = {sha256 = String; url = String;} -> ι;
29+ findlib = α;
30+ ocaml = α;
31+ stdenv = δ;
32+} ->
33+κ
test/golden/importless/0.9.5.txtnew file+18
@@ -0,0 +1,18 @@
1+∀ α β γ δ ε ζ η.
2+( α.lib = β,
3+ γ.buildPythonPackage =
4+ { doCheck = Bool;
5+ meta = {description = String; homepage = String; license = δ;};
6+ pname = String;
7+ src = ε;
8+ version = String;
9+ } ->
10+ ζ,
11+ β.licenses = η,
12+ η.asl20 = δ
13+) =>
14+{ fetchurl = {sha256 = String; url = String;} -> ε;
15+ python2Packages = γ;
16+ stdenv = α;
17+} ->
18+ζ
test/golden/importless/0.9.6.txtnew file+18
@@ -0,0 +1,18 @@
1+∀ α β γ δ ε ζ η.
2+( α.lib = β,
3+ γ.buildPythonPackage =
4+ { doCheck = Bool;
5+ meta = {description = String; homepage = String; license = δ;};
6+ pname = String;
7+ src = ε;
8+ version = String;
9+ } ->
10+ ζ,
11+ β.licenses = η,
12+ η.asl20 = δ
13+) =>
14+{ fetchurl = {sha256 = String; url = String;} -> ε;
15+ python2Packages = γ;
16+ stdenv = α;
17+} ->
18+ζ
test/golden/importless/0.9.txtnew file+35
@@ -0,0 +1,35 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ buildPhase = String;
6+ checkTarget = String;
7+ createFindlibDestdir = Bool;
8+ doCheck = Bool;
9+ dontConfigure = Bool;
10+ meta =
11+ { description = String;
12+ homepage = String;
13+ license = δ;
14+ maintainers = [ε];
15+ };
16+ name = String;
17+ patches = [String];
18+ postPatch = String;
19+ src = ζ;
20+ version = String;
21+ } ->
22+ η,
23+ β.licenses = θ,
24+ θ.mit = δ,
25+ ι.maintainers = κ,
26+ κ.roconnor = ε
27+) =>
28+{ expat = γ;
29+ fetchurl = {sha256 = String; url = String;} -> ζ;
30+ findlib = γ;
31+ ocaml = γ;
32+ ounit = γ;
33+ stdenv = α;
34+} ->
35+η
test/golden/importless/0.txtnew file+39
@@ -0,0 +1,39 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ meta =
6+ { description = String;
7+ homepage = String;
8+ license = δ;
9+ maintainers = [ε];
10+ platforms = ζ;
11+ };
12+ nativeBuildInputs = [η];
13+ pname = String;
14+ src = θ;
15+ version = String;
16+ } ->
17+ ι,
18+ β.licenses = κ,
19+ β.maintainers = λ,
20+ β.platforms = μ,
21+ κ.gpl2 = δ,
22+ λ.goibhniu = ε,
23+ μ.linux = ζ
24+) =>
25+{ alsaLib = γ;
26+ boost = γ;
27+ cmake = η;
28+ fetchurl = {sha256 = String; url = String;} -> θ;
29+ glib = γ;
30+ lash = γ;
31+ libarchive = γ;
32+ libjack2 = γ;
33+ libsndfile = γ;
34+ lrdf = γ;
35+ pkgconfig = η;
36+ qt4 = γ;
37+ stdenv = α;
38+} ->
39+ι
test/golden/importless/0.x.txtnew file+41
@@ -0,0 +1,41 @@
1+∀ α β γ δ ε ζ η θ ι.
2+( α.gebner = β,
3+ α.licenses = γ,
4+ α.maintainers = δ,
5+ α.marcus7070 = β,
6+ γ.mit = ε
7+) =>
8+{ buildPythonPackage =
9+ { checkInputs = [ζ];
10+ checkPhase = String;
11+ disabled = Bool;
12+ meta =
13+ { description = String;
14+ homepage = String;
15+ license = ε;
16+ maintainers = [β];
17+ };
18+ pname = String;
19+ propagatedBuildInputs = [η];
20+ src = θ;
21+ version = String;
22+ } ->
23+ ι;
24+ cloudpickle = η;
25+ fetchFromGitHub =
26+ {owner = String; repo = String; rev = String; sha256 = String;} -> θ;
27+ flaky = ζ;
28+ ipykernel = η;
29+ isPy3k = Bool;
30+ jupyter_client = η;
31+ lib = α;
32+ matplotlib = ζ;
33+ numpy = ζ;
34+ pandas = ζ;
35+ pytest = ζ;
36+ pyzmq = η;
37+ scipy = ζ;
38+ wurlitzer = η;
39+ xarray = ζ;
40+} ->
41+ι
test/golden/importless/1-default.txtnew file+48
@@ -0,0 +1,48 @@
1+∀ β γ δ ε ζ η θ ι κ λ μ ν.
2+( β.lib = γ,
3+ β.mkDerivation =
4+ { buildInputs = [δ];
5+ configureFlags = [String];
6+ meta =
7+ { broken = Bool;
8+ description = String;
9+ homepage = String;
10+ hydraPlatforms = ∀ α. [α];
11+ license = [ε];
12+ platforms = ζ;
13+ };
14+ name = String;
15+ nativeBuildInputs = [η];
16+ patches = [String];
17+ postPatch = String;
18+ preConfigure = String;
19+ src = θ;
20+ } ->
21+ ι,
22+ γ.gpl2 = ε,
23+ γ.lgpl2Plus = ε,
24+ γ.licenses = κ,
25+ γ.platforms = λ,
26+ λ.linux = ζ
27+) =>
28+{ dbus = δ;
29+ dbus-glib = δ;
30+ docbook_xsl = δ;
31+ fetchurl = {sha256 = String; url = String;} -> θ;
32+ glib = δ;
33+ intltool = δ;
34+ libatasmart = δ;
35+ libgudev = δ;
36+ libuuid = δ;
37+ libxslt = δ;
38+ lvm2 = δ;
39+ mdadm = μ;
40+ parted = δ;
41+ pkgconfig = η;
42+ polkit = δ;
43+ sg3_utils = δ;
44+ stdenv = β;
45+ udev = δ;
46+ utillinux = ν;
47+} ->
48+ι
test/golden/importless/1.0.0.txtnew file+43
@@ -0,0 +1,43 @@
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο.
2+( β.lib = γ,
3+ β.mkDerivation =
4+ { buildInputs = [δ];
5+ configureFlags = [String];
6+ installFlags = [String];
7+ meta =
8+ { description = String;
9+ homepage = String;
10+ license = ε;
11+ maintainers = ∀ α. [α];
12+ platforms = ζ;
13+ };
14+ nativeBuildInputs = [η];
15+ outputs = [String];
16+ pname = String;
17+ src = θ;
18+ version = String;
19+ } ->
20+ ι,
21+ κ.optionals = Bool -> [String] -> [String],
22+ γ.licenses = λ,
23+ γ.maintainers = μ,
24+ γ.platforms = ν,
25+ λ.mit = ε,
26+ ν.unix = ζ
27+) =>
28+{ fetchurl = {sha256 = String; url = String;} -> θ;
29+ lib = κ;
30+ libGL = ξ;
31+ libX11 = ξ;
32+ libXext = ξ;
33+ libXfixes = ξ;
34+ libdrm = δ;
35+ libffi = ξ;
36+ libva1-minimal = ξ;
37+ mesa = ο;
38+ minimal = Bool;
39+ pkgconfig = η;
40+ stdenv = β;
41+ wayland = ξ;
42+} ->
43+ι
test/golden/importless/1.0.txtnew file+34
@@ -0,0 +1,34 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.?meta = β,
3+ β.?platforms = [γ],
4+ δ.lib = ε,
5+ δ.mkDerivation =
6+ { buildInputs = [α];
7+ createFindlibDestdir = Bool;
8+ makeFlags = [String];
9+ meta =
10+ { description = String;
11+ homepage = String;
12+ license = ζ;
13+ maintainers = [η];
14+ platforms = [γ];
15+ };
16+ name = String;
17+ preBuild = String;
18+ src = θ;
19+ } ->
20+ ι,
21+ ε.versionAtLeast = κ -> String -> Bool,
22+ λ.getVersion = α -> κ,
23+ μ.licenses = ν,
24+ μ.maintainers = ξ,
25+ ν.bsd3 = ζ,
26+ ξ.vbgl = η
27+) =>
28+{ easy-format = α;
29+ fetchurl = {sha256 = String; url = String;} -> θ;
30+ findlib = α;
31+ ocaml = α;
32+ stdenv = δ;
33+} ->
34+ι
test/golden/importless/1.00.37.txtnew file+34
@@ -0,0 +1,34 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.hostPlatform = β,
3+ α.lib = γ,
4+ α.mkDerivation =
5+ { buildInputs = [δ];
6+ dontPatchELF = Bool;
7+ dontStrip = Bool;
8+ installPhase = String;
9+ meta =
10+ { description = String;
11+ downloadPage = String;
12+ homepage = String;
13+ license = ε;
14+ platforms = ζ;
15+ };
16+ pname = String;
17+ preFixup = String;
18+ src = η;
19+ version = String;
20+ } ->
21+ θ,
22+ β.system = String,
23+ γ.licenses = ι,
24+ γ.platforms = κ,
25+ ι.unfree = ε,
26+ κ.linux = ζ
27+) =>
28+{ cups = δ;
29+ fetchurl = {sha256 = String; url = String;} -> η;
30+ libusb-compat-0_1 = δ;
31+ libxml2 = δ;
32+ stdenv = α;
33+} ->
34+θ
test/golden/importless/1.10.txtnew file+33
@@ -0,0 +1,33 @@
1+∀ α β γ δ ε ζ η θ ι κ λ.
2+( α.isDarwin = β,
3+ α.lib = γ,
4+ α.mkDerivation =
5+ { buildFlags = [String];
6+ buildInputs = [δ];
7+ installFlags = [String];
8+ makeFlags = [String];
9+ meta =
10+ {description = String; homepage = String; license = ε; platforms = ζ;};
11+ name = String;
12+ patchPhase = String;
13+ postInstall = String;
14+ preInstall = String;
15+ propagatedBuildInputs = [η];
16+ src = θ;
17+ } ->
18+ ι,
19+ γ.licenses = κ,
20+ γ.optionals = β -> [Null] -> [δ],
21+ γ.platforms = λ,
22+ κ.free = ε,
23+ λ.mesaPlatforms = ζ
24+) =>
25+{ AGL = Null;
26+ fetchurl = {sha256 = String; url = String;} -> θ;
27+ libGLU = η;
28+ libXi = δ;
29+ libXmu = δ;
30+ stdenv = α;
31+ xlibsWrapper = δ;
32+} ->
33+ι
test/golden/importless/1.2.2.txtnew file+42
@@ -0,0 +1,42 @@
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο.
2+( β.lib = γ,
3+ β.mkDerivation =
4+ { buildInputs = [δ];
5+ doCheck = Bool;
6+ makeFlags = [String];
7+ meta =
8+ { description = String;
9+ homepage = String;
10+ license = ε;
11+ maintainers = [ζ];
12+ platforms = η;
13+ };
14+ pname = String;
15+ postConfigure = String;
16+ postInstall = String;
17+ postUnpack = String;
18+ preConfigure = String;
19+ src = ∀ α. α;
20+ version = String;
21+ } ->
22+ θ,
23+ ι.versionAtLeast = κ -> String -> Bool,
24+ δ.version = κ,
25+ γ.licenses = λ,
26+ γ.maintainers = μ,
27+ γ.platforms = ν,
28+ λ.lgpl21Plus = ε,
29+ μ.henrytill = ζ,
30+ ν.all = η
31+) =>
32+{ aspcud = ξ;
33+ curl = δ;
34+ fetchurl = {sha256 = String; url = String;} -> ο;
35+ lib = ι;
36+ makeWrapper = δ;
37+ ncurses = δ;
38+ ocaml = δ;
39+ stdenv = β;
40+ unzip = δ;
41+} ->
42+θ
test/golden/importless/1.2.txtnew file+27
@@ -0,0 +1,27 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ meta =
6+ { branch = String;
7+ description = String;
8+ homepage = String;
9+ license = δ;
10+ platforms = ε;
11+ };
12+ name = String;
13+ nativeBuildInputs = [ζ];
14+ src = η;
15+ } ->
16+ θ,
17+ β.licenses = ι,
18+ β.platforms = κ,
19+ ι.lgpl3 = δ,
20+ κ.unix = ε
21+) =>
22+{ fetchurl = {sha256 = String; url = String;} -> η;
23+ m4 = γ;
24+ pkgconfig = ζ;
25+ stdenv = α;
26+} ->
27+θ
test/golden/importless/1.3.txtnew file+87
@@ -0,0 +1,87 @@
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1.
2+( β.?hostPlatform = γ,
3+ γ.?platform = δ,
4+ δ.?gcc = ε,
5+ ε.?arch = String,
6+ β.isDarwin = Bool,
7+ β.lib = ζ,
8+ β.mkDerivation =
9+ { LD_LIBRARY_PATH = η;
10+ buildInputs = [θ];
11+ checkTarget = String;
12+ doCheck = Bool;
13+ enableParallelBuilding = Bool;
14+ makeFlags = [String];
15+ meta =
16+ { broken = Bool;
17+ description = String;
18+ homepage = String;
19+ license = ι;
20+ maintainers = [κ];
21+ platforms = [String];
22+ };
23+ nativeBuildInputs = [λ];
24+ passthru =
25+ { maintenanceVersion = String;
26+ majorVersion = String;
27+ minorVersion = String;
28+ site = String;
29+ };
30+ patches = [String];
31+ pname = String;
32+ postInstall = String;
33+ postPatch = String;
34+ preBuild = String;
35+ preCheck = String;
36+ prePatch = String;
37+ src = μ;
38+ version = ∀ α. α;
39+ } ->
40+ ν,
41+ β.system = ξ,
42+ θ.dev = θ,
43+ θ.isILP64 = Bool,
44+ ζ.garrison = κ,
45+ ζ.head = ο -> π,
46+ ζ.makeLibraryPath = [θ] -> η,
47+ ζ.raskin = κ,
48+ ζ.rob = κ,
49+ ζ.splitString = String -> ξ -> ο,
50+ ζ.throw = String -> ρ,
51+ σ.licenses = τ,
52+ τ.mit = ι,
53+ υ.maintainers = φ,
54+ χ.optionals = ψ -> [ω] -> [θ]
55+) =>
56+{ ApplicationServices = ω;
57+ CoreServices = ω;
58+ arpack = θ;
59+ blas = θ;
60+ cmake = α1;
61+ curl = λ;
62+ fetchFromGitHub = β1;
63+ fetchurl = γ1;
64+ fetchzip = {sha256 = String; url = String;} -> μ;
65+ fftw = θ;
66+ fftwSinglePrec = θ;
67+ gfortran = λ;
68+ gmp = θ;
69+ lapack = θ;
70+ libgit2 = θ;
71+ libunwind = θ;
72+ m4 = λ;
73+ makeWrapper = λ;
74+ mpfr = θ;
75+ openlibm = θ;
76+ openspecfun = θ;
77+ patchelf = λ;
78+ pcre2 = θ;
79+ perl = λ;
80+ python2 = λ;
81+ readline = θ;
82+ stdenv = β;
83+ utf8proc = θ;
84+ which = λ;
85+ zlib = θ;
86+} ->
87+ν
test/golden/importless/1.4.txtnew file+16
@@ -0,0 +1,16 @@
1+∀ α β γ δ ε ζ η θ ι.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { installPhase = String;
5+ meta =
6+ {description = String; homepage = String; license = γ; platforms = δ;};
7+ name = String;
8+ src = ε;
9+ } ->
10+ ζ,
11+ β.licenses = η,
12+ η.mit = γ,
13+ θ.platforms = ι,
14+ ι.linux = δ
15+) =>
16+{fetchurl = {sha256 = String; url = String;} -> ε; stdenv = α;} -> ζ
test/golden/importless/1.5.txtnew file+35
@@ -0,0 +1,35 @@
1+∀ α β γ δ ε ζ η θ ι κ λ.
2+( α.?meta = β,
3+ β.?platforms = [γ],
4+ δ.lib = ε,
5+ δ.mkDerivation =
6+ { buildInputs = [α];
7+ buildPhase = String;
8+ checkPhase = String;
9+ configurePhase = String;
10+ createFindlibDestdir = Bool;
11+ doCheck = Bool;
12+ installPhase = String;
13+ meta =
14+ { description = String;
15+ homepage = String;
16+ license = ζ;
17+ maintainers = [η];
18+ platforms = [γ];
19+ };
20+ name = String;
21+ src = θ;
22+ } ->
23+ ι,
24+ ε.licenses = κ,
25+ ε.maintainers = λ,
26+ κ.lgpl21 = ζ,
27+ λ.vbgl = η
28+) =>
29+{ fetchzip = {sha256 = String; url = String;} -> θ;
30+ findlib = α;
31+ ocaml = α;
32+ ocamlbuild = α;
33+ stdenv = δ;
34+} ->
35+ι
test/golden/importless/1.55.txtnew file+6
@@ -0,0 +1,6 @@
1+∀ α β γ δ.
2+( α // {patches = [String]; src = β; version = String;} ~ γ,
3+ α.callPackage = String -> γ -> δ,
4+ α.fetchurl = {sha256 = String; url = String;} -> β
5+) =>
6+α -> δ
test/golden/importless/1.59.txtnew file+7
@@ -0,0 +1,7 @@
1+∀ α β γ δ ε.
2+( α // {src = β; version = String;} ~ γ,
3+ α.callPackage = String -> γ -> δ,
4+ α.fetchurl = {sha256 = String; url = String;} -> β,
5+ α.stdenv = ε
6+) =>
7+α -> δ
test/golden/importless/1.6.txt+5−1
@@ -1 +1,5 @@
1−∀ α. { mkDerivation = { minimumOTPVersion = String; sha256 = String; version = String } -> α } -> α
1+∀ α.
2+{ mkDerivation =
3+ {minimumOTPVersion = String; sha256 = String; version = String;} -> α;
4+} ->
5+α
test/golden/importless/1.60.txtnew file+7
@@ -0,0 +1,7 @@
1+∀ α β γ δ ε.
2+( α // {src = β; version = String;} ~ γ,
3+ α.callPackage = String -> γ -> δ,
4+ α.fetchurl = {sha256 = String; url = String;} -> β,
5+ α.stdenv = ε
6+) =>
7+α -> δ
test/golden/importless/1.65.txtnew file+7
@@ -0,0 +1,7 @@
1+∀ α β γ δ ε.
2+( α // {src = β; version = String;} ~ γ,
3+ α.callPackage = String -> γ -> δ,
4+ α.fetchurl = {sha256 = String; url = String;} -> β,
5+ α.stdenv = ε
6+) =>
7+α -> δ
test/golden/importless/1.66.txtnew file+7
@@ -0,0 +1,7 @@
1+∀ α β γ δ ε.
2+( α // {src = β; version = String;} ~ γ,
3+ α.callPackage = String -> γ -> δ,
4+ α.fetchurl = {sha256 = String; url = String;} -> β,
5+ α.stdenv = ε
6+) =>
7+α -> δ
test/golden/importless/1.67.txtnew file+12
@@ -0,0 +1,12 @@
1+∀ α β γ δ ε ζ η θ ι.
2+( α // {patches = [β]; src = γ; version = String;} ~ δ,
3+ α.callPackage = String -> δ -> ε,
4+ α.fetchpatch = {sha256 = String; stripLen = Number; url = String;} -> β,
5+ α.fetchurl = {sha256 = String; url = String;} -> γ,
6+ α.stdenv = ζ,
7+ ζ.cc = η,
8+ ζ.lib = θ,
9+ θ.optionals = ι -> [β] -> [β],
10+ η.isClang = ι
11+) =>
12+α -> ε
test/golden/importless/1.68.txtnew file+8
@@ -0,0 +1,8 @@
1+∀ α β γ δ ε ζ.
2+( α // {src = β; version = String;} ~ γ,
3+ α.callPackage = String -> γ -> δ,
4+ α.fetchpatch = ε,
5+ α.fetchurl = {sha256 = String; url = String;} -> β,
6+ α.stdenv = ζ
7+) =>
8+α -> δ
test/golden/importless/1.69.txtnew file+8
@@ -0,0 +1,8 @@
1+∀ α β γ δ ε ζ.
2+( α // {src = β; version = String;} ~ γ,
3+ α.callPackage = String -> γ -> δ,
4+ α.fetchpatch = ε,
5+ α.fetchurl = {sha256 = String; url = String;} -> β,
6+ α.stdenv = ζ
7+) =>
8+α -> δ
test/golden/importless/1.70.txtnew file+8
@@ -0,0 +1,8 @@
1+∀ α β γ δ ε ζ.
2+( α // {src = β; version = String;} ~ γ,
3+ α.callPackage = String -> γ -> δ,
4+ α.fetchpatch = ε,
5+ α.fetchurl = {sha256 = String; url = String;} -> β,
6+ α.stdenv = ζ
7+) =>
8+α -> δ
test/golden/importless/1.71.txtnew file+8
@@ -0,0 +1,8 @@
1+∀ α β γ δ ε ζ.
2+( α // {src = β; version = String;} ~ γ,
3+ α.callPackage = String -> γ -> δ,
4+ α.fetchpatch = ε,
5+ α.fetchurl = {sha256 = String; urls = [String];} -> β,
6+ α.stdenv = ζ
7+) =>
8+α -> δ
test/golden/importless/1.72.txtnew file+8
@@ -0,0 +1,8 @@
1+∀ α β γ δ ε ζ.
2+( α // {src = β; version = String;} ~ γ,
3+ α.callPackage = String -> γ -> δ,
4+ α.fetchpatch = ε,
5+ α.fetchurl = {sha256 = String; urls = [String];} -> β,
6+ α.stdenv = ζ
7+) =>
8+α -> δ
test/golden/importless/1.8.5.txtnew file+52
@@ -0,0 +1,52 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ.
2+( α.hostPlatform = β,
3+ α.isAarch32 = γ,
4+ α.isAarch64 = δ,
5+ α.lib = ε,
6+ α.mkDerivation =
7+ { buildInputs = [ζ];
8+ configureFlags = [String];
9+ doCheck = Bool;
10+ enableParallelBuilding = Bool;
11+ meta =
12+ { broken = δ;
13+ description = String;
14+ homepage = String;
15+ maintainers = [η];
16+ platforms = θ;
17+ };
18+ nativeBuildInputs = [ι];
19+ patchFlags = [String];
20+ patches = [κ];
21+ pname = String;
22+ postPatch = String;
23+ postUnpack = String;
24+ preBuild = String;
25+ preCheck = String;
26+ preConfigure = String;
27+ propagatedBuildInputs = [λ];
28+ src = μ;
29+ version = String;
30+ } ->
31+ ν,
32+ ξ.optional = γ -> ο -> [ι],
33+ ε.optionals = Bool -> [String] -> [String],
34+ β.system = String,
35+ π.maintainers = ρ,
36+ π.platforms = σ,
37+ ρ.goibhniu = η,
38+ σ.linux = θ,
39+ τ.optionals = υ -> [String] -> [κ]
40+) =>
41+{ autoconf213 = ο;
42+ fetchpatch = {name = String; sha256 = String; url = String;} -> κ;
43+ fetchurl = {sha256 = String; url = String;} -> μ;
44+ lib = ξ;
45+ nspr = λ;
46+ perl = ζ;
47+ pkgconfig = ι;
48+ python2 = ζ;
49+ stdenv = α;
50+ zip = ζ;
51+} ->
52+ν
test/golden/importless/1.8.txtnew file+54
@@ -0,0 +1,54 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ.
2+( α.buildPlatform = β,
3+ α.hostPlatform = β,
4+ α.lib = γ,
5+ α.mkDerivation =
6+ { buildInputs = [δ];
7+ configureFlags = [String];
8+ depsBuildBuild = [ε];
9+ doCheck = Bool;
10+ doInstallCheck = Bool;
11+ meta =
12+ { description = String;
13+ homepage = String;
14+ license = ζ;
15+ longDescription = String;
16+ maintainers = [η];
17+ platforms = θ;
18+ };
19+ name = String;
20+ nativeBuildInputs = [ι];
21+ outputs = [String];
22+ patches = [String];
23+ postInstall = String;
24+ preBuild = String;
25+ propagatedBuildInputs = [δ];
26+ setOutputFlags = Bool;
27+ setupHook = String;
28+ src = κ;
29+ } ->
30+ λ,
31+ μ.guile_1_8 = ν,
32+ ξ.stdenv = ο,
33+ γ.licenses = π,
34+ π.lgpl2Plus = ζ,
35+ ρ.maintainers = σ,
36+ σ.ludo = η,
37+ τ.platforms = υ,
38+ υ.unix = θ,
39+ φ.optional = Bool -> ν -> [ε],
40+ χ.optional = Bool -> String -> [String],
41+ ο.cc = ε
42+) =>
43+{ buildPackages = ξ;
44+ fetchurl = {sha256 = String; url = String;} -> κ;
45+ gawk = ι;
46+ gmp = δ;
47+ libtool = δ;
48+ makeWrapper = ι;
49+ pkgconfig = ι;
50+ pkgsBuildBuild = μ;
51+ readline = δ;
52+ stdenv = α;
53+} ->
54+λ
test/golden/importless/1.x.txtnew file+36
@@ -0,0 +1,36 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.lib = β,
3+ γ.buildPythonApplication =
4+ { doCheck = Bool;
5+ meta =
6+ { description = String;
7+ homepage = String;
8+ license = δ;
9+ longDescription = String;
10+ maintainers = [ε];
11+ platforms = ζ;
12+ };
13+ pname = String;
14+ propagatedBuildInputs = η;
15+ src = θ;
16+ version = String;
17+ } ->
18+ ι,
19+ γ.flup = κ,
20+ γ.isPy3k = Bool,
21+ γ.ldap = κ,
22+ γ.sqlalchemy = κ,
23+ β.optionals = Bool -> [κ] -> η,
24+ λ.edwtjo = ε,
25+ λ.licenses = μ,
26+ λ.maintainers = ν,
27+ λ.pSub = ε,
28+ λ.platforms = ξ,
29+ μ.gpl3Plus = δ,
30+ ξ.all = ζ
31+) =>
32+{ fetchurl = {sha256 = String; url = String;} -> θ;
33+ pythonPackages = γ;
34+ stdenv = α;
35+} ->
36+ι
test/golden/importless/10.5.x.txtnew file+49
@@ -0,0 +1,49 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ.
2+( α.hostPlatform = β,
3+ α.isDarwin = Bool,
4+ α.lib = γ,
5+ α.mkDerivation =
6+ { buildInputs = [δ];
7+ installPhase = String;
8+ meta =
9+ { description = String;
10+ homepage = String;
11+ license = ε;
12+ maintainers = [ζ];
13+ };
14+ passthru = {tests = {smoke-test = η;};};
15+ pname = String;
16+ preferLocalBuild = Bool;
17+ propagatedBuildInputs = [θ];
18+ src = ι;
19+ version = String;
20+ } ->
21+ κ,
22+ λ.optionalString = μ -> String -> ν,
23+ λ.warn = String -> String -> String,
24+ ξ.aspnetcore_3_1 = θ,
25+ ο.jellyfin = η,
26+ β.isAarch32 = Bool,
27+ β.isAarch64 = Bool,
28+ β.isx86_32 = Bool,
29+ β.isx86_64 = Bool,
30+ π.isMusl = μ,
31+ γ.licenses = ρ,
32+ γ.maintainers = σ,
33+ γ.minijackson = ζ,
34+ γ.nyanloutre = ζ,
35+ ρ.gpl2 = ε
36+) =>
37+{ dotnetCorePackages = ξ;
38+ fetchurl = {sha256 = String; url = String;} -> ι;
39+ ffmpeg = τ;
40+ fontconfig = υ;
41+ freetype = φ;
42+ lib = λ;
43+ makeWrapper = δ;
44+ nixosTests = ο;
45+ sqlite = θ;
46+ stdenv = α;
47+ unzip = δ;
48+} ->
49+κ
test/golden/importless/11.1.txtnew file+49
@@ -0,0 +1,49 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { NIX_CFLAGS_COMPILE = String;
5+ buildInputs = [γ];
6+ configureFlags = [String];
7+ meta =
8+ { description = String;
9+ homepage = String;
10+ license = δ;
11+ maintainers = [ε];
12+ platforms = ζ;
13+ };
14+ name = String;
15+ nativeBuildInputs = [η];
16+ preConfigure = String;
17+ src = θ;
18+ } ->
19+ ι,
20+ β.licenses = κ,
21+ κ.zlib = δ,
22+ λ.maintainers = μ,
23+ μ.raskin = ε,
24+ ν.platforms = ξ,
25+ ξ.linux = ζ
26+) =>
27+{ SDL2 = γ;
28+ autoconf = γ;
29+ automake = γ;
30+ fetchFromBitbucket =
31+ {owner = String; repo = String; rev = String; sha256 = String;} -> θ;
32+ freetype = γ;
33+ libGL = γ;
34+ libGLU = γ;
35+ libdevil = γ;
36+ libmodplug = γ;
37+ libogg = γ;
38+ libtheora = γ;
39+ libtool = γ;
40+ libvorbis = γ;
41+ luajit = γ;
42+ mpg123 = γ;
43+ openal = γ;
44+ physfs = γ;
45+ pkgconfig = η;
46+ stdenv = α;
47+ which = γ;
48+} ->
49+ι
test/golden/importless/112.01.01.txtnew file+25
@@ -0,0 +1,25 @@
1+∀ α β γ δ ε ζ η θ ι.
2+( α.lib = β,
3+ β.licenses = γ,
4+ γ.asl20 = δ,
5+ ε.maintainers = ζ,
6+ ζ.ericbmerritt = η,
7+ ζ.maggesi = η
8+) =>
9+{ buildOcaml =
10+ { meta =
11+ { description = String;
12+ homepage = String;
13+ license = δ;
14+ maintainers = [η];
15+ };
16+ minimumSupportedOcamlVersion = String;
17+ name = String;
18+ src = θ;
19+ version = String;
20+ } ->
21+ ι;
22+ fetchurl = {sha256 = String; url = String;} -> θ;
23+ stdenv = α;
24+} ->
25+ι
test/golden/importless/12.txtnew file+29
@@ -0,0 +1,29 @@
1+∀ β γ δ ε ζ η θ ι κ.
2+( β.buildPlatform = γ,
3+ β.hostPlatform = γ,
4+ β.lib = δ,
5+ β.mkDerivation =
6+ { configureFlags = [String];
7+ meta =
8+ { branch = String;
9+ description = String;
10+ homepage = String;
11+ license = ε;
12+ maintainers = ∀ α. [α];
13+ platforms = ζ;
14+ };
15+ name = String;
16+ outputs = [String];
17+ passthru = {zlib = Null;};
18+ postInstall = String;
19+ propagatedBuildInputs = [Null];
20+ src = η;
21+ } ->
22+ θ,
23+ δ.licenses = ι,
24+ δ.platforms = κ,
25+ ι.libpng = ε,
26+ κ.unix = ζ
27+) =>
28+{fetchurl = {sha256 = String; url = String;} -> η; stdenv = β; zlib = Null;} ->
29+θ
test/golden/importless/16.1.2.txtnew file+47
@@ -0,0 +1,47 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ configureFlags = [String];
6+ hardeningDisable = [String];
7+ meta =
8+ { description = String;
9+ license = δ;
10+ maintainers = [ε];
11+ platforms = ζ;
12+ version = String;
13+ };
14+ name = String;
15+ patches = [String];
16+ postInstall = String;
17+ propagatedBuildInputs = [η];
18+ src = θ;
19+ version = String;
20+ } ->
21+ ι,
22+ β.optionals = Bool -> [Null] -> [η],
23+ κ.optional = Bool -> String -> [String],
24+ λ.licenses = μ,
25+ μ.mit = δ,
26+ ν.maintainers = ξ,
27+ ξ.raskin = ε,
28+ ο.platforms = π,
29+ π.unix = ζ
30+) =>
31+{ autoconf = γ;
32+ automake = γ;
33+ boehmgc = Null;
34+ fetchpatch = {name = String; sha256 = String; url = String;} -> String;
35+ fetchurl = {sha256 = String; url = String;} -> θ;
36+ gcc = η;
37+ gmp = η;
38+ libffi = η;
39+ libtool = γ;
40+ makeWrapper = γ;
41+ mpfr = η;
42+ noUnicode = Bool;
43+ stdenv = α;
44+ threadSupport = Bool;
45+ useBoehmgc = Bool;
46+} ->
47+ι
test/golden/importless/17.txtnew file+30
@@ -0,0 +1,30 @@
1+∀ α β γ δ ε ζ η θ ι.
2+(α.lib = β, β.licenses = γ, γ.bsd3 = δ) => { backports_functools_lru_cache = ε;
3+ backports_unittest-mock = ε;
4+ buildPythonPackage =
5+ { checkInputs = [ε];
6+ checkPhase = String;
7+ meta = {description = String; homepage = String; license = δ;};
8+ nativeBuildInputs = [ζ];
9+ pname = String;
10+ propagatedBuildInputs = [η];
11+ src = θ;
12+ version = String;
13+ } ->
14+ ι;
15+ cheroot = η;
16+ contextlib2 = η;
17+ fetchPypi = {pname = String; sha256 = String; version = String;} -> θ;
18+ objgraph = ε;
19+ pathpy = ε;
20+ portend = η;
21+ pytest = ε;
22+ pytestcov = ε;
23+ requests_toolbelt = ε;
24+ routes = η;
25+ setuptools_scm = ζ;
26+ six = η;
27+ stdenv = α;
28+ zc_lockfile = η;
29+} ->
30+ι
test/golden/importless/1_x.txtnew file+34
@@ -0,0 +1,34 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.lib = β,
3+ β.jluttine = γ,
4+ β.licenses = δ,
5+ β.maintainers = ε,
6+ δ.lgpl3 = ζ
7+) =>
8+{ buildPythonPackage =
9+ { checkInputs = [η];
10+ doCheck = Bool;
11+ meta =
12+ { description = String;
13+ homepage = String;
14+ license = ζ;
15+ maintainers = [γ];
16+ };
17+ pname = String;
18+ propagatedBuildInputs = [θ];
19+ src = ι;
20+ version = String;
21+ } ->
22+ κ;
23+ cairocffi = θ;
24+ cssselect2 = η;
25+ defusedxml = η;
26+ fetchFromGitHub =
27+ {owner = String; repo = String; rev = String; sha256 = String;} -> ι;
28+ fontconfig = η;
29+ nose = η;
30+ pillow = η;
31+ stdenv = α;
32+ tinycss2 = η;
33+} ->
34+κ
test/golden/importless/1compat.txtnew file+8
@@ -0,0 +1,8 @@
1+∀ β γ δ ε ζ η θ ι.
2+( β // {description = String; priority = Number;} ~ γ,
3+ δ.mkDerivation = {builder = ε; meta = ∀ α. α; name = String;} -> ζ,
4+ η.meta = β,
5+ θ.description = String
6+) =>
7+{coreutils = ι; gnupg = η; stdenv = δ; writeScript = String -> String -> ε;} ->
8+ζ
test/golden/importless/2.0.0.txtnew file+42
@@ -0,0 +1,42 @@
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ.
2+( β.lib = γ,
3+ β.mkDerivation =
4+ { buildInputs = [δ];
5+ buildPhase = String;
6+ configurePhase = String;
7+ installPhase = String;
8+ meta =
9+ { description = String;
10+ homepage = String;
11+ license = ε;
12+ maintainers = ∀ α. [α];
13+ platforms = ζ;
14+ };
15+ nativeBuildInputs = [η];
16+ patches = [String];
17+ pname = String;
18+ postPatch = String;
19+ src = θ;
20+ version = String;
21+ } ->
22+ ι,
23+ κ.withPackages = (λ -> [μ]) -> δ,
24+ λ.requests = μ,
25+ γ.licenses = ν,
26+ γ.maintainers = ξ,
27+ γ.platforms = ο,
28+ ν.asl20 = ε,
29+ ο.all = ζ
30+) =>
31+{ bash = π;
32+ coreutils = ρ;
33+ erlang = δ;
34+ fetchurl = {sha256 = String; url = String;} -> θ;
35+ icu = δ;
36+ makeWrapper = η;
37+ openssl = δ;
38+ python3 = κ;
39+ spidermonkey = δ;
40+ stdenv = β;
41+} ->
42+ι
test/golden/importless/2.0.txtnew file+31
@@ -0,0 +1,31 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο.
2+( α.cmake = β,
3+ α.fetchurl = {sha256 = String; url = String;} -> γ,
4+ α.libgcrypt = β,
5+ α.qt4 = β,
6+ α.stdenv = δ,
7+ α.xorg = ε,
8+ δ.lib = ζ,
9+ δ.mkDerivation =
10+ { buildInputs = [β];
11+ meta =
12+ { description = String;
13+ homepage = String;
14+ license = η;
15+ maintainers = [θ];
16+ platforms = ι;
17+ };
18+ pname = String;
19+ src = γ;
20+ version = String;
21+ } ->
22+ κ,
23+ ε.libXtst = β,
24+ ζ.licenses = λ,
25+ λ.gpl2 = η,
26+ μ.maintainers = ν,
27+ ν.qknight = θ,
28+ ξ.platforms = ο,
29+ ο.linux = ι
30+) =>
31+α -> κ
test/golden/importless/2.1.1.txtnew file+41
@@ -0,0 +1,41 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.isDarwin = β,
3+ α.isLinux = γ,
4+ α.mkDerivation =
5+ { buildInputs = [δ];
6+ buildPhase = String;
7+ doCheck = Bool;
8+ installPhase = String;
9+ meta =
10+ { description = String;
11+ knownVulnerabilities = [String];
12+ license = ε;
13+ maintainers = [ζ];
14+ platforms = [String];
15+ };
16+ name = String;
17+ postPatch = String;
18+ preBuild = String;
19+ src = η;
20+ } ->
21+ θ,
22+ ι.licenses = κ,
23+ ι.maintainers = λ,
24+ ι.mdaiter = ζ,
25+ ι.optional = γ -> [μ] -> [δ],
26+ ι.optionals = β -> [Null] -> [δ],
27+ κ.asl20 = ε
28+) =>
29+{ Carbon = Null;
30+ Cocoa = Null;
31+ erlang = δ;
32+ fetchurl = {sha256 = String; url = String;} -> η;
33+ git = δ;
34+ lib = ι;
35+ pam = μ;
36+ stdenv = α;
37+ unzip = δ;
38+ wget = δ;
39+ which = δ;
40+} ->
41+θ
test/golden/importless/2.1.txtnew file+5
@@ -0,0 +1,5 @@
1+∀ α β γ.
2+( α // {sha256 = String; version = String;} ~ β,
3+ α.callPackage = String -> β -> γ
4+) =>
5+α -> γ
test/golden/importless/2.10.txtnew file+31
@@ -0,0 +1,31 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ installPhase = String;
6+ meta =
7+ { branch = String;
8+ description = String;
9+ homepage = String;
10+ license = δ;
11+ longDescription = String;
12+ platforms = ε;
13+ };
14+ name = String;
15+ propagatedBuildInputs = [ζ];
16+ src = η;
17+ } ->
18+ θ,
19+ β.licenses = ι,
20+ ι.bsd3 = δ,
21+ κ.platforms = λ,
22+ λ.all = ε
23+) =>
24+{ coreutils = μ;
25+ fetchurl = {sha256 = String; url = String;} -> η;
26+ gnugrep = ν;
27+ jre = ζ;
28+ makeWrapper = γ;
29+ stdenv = α;
30+} ->
31+θ
test/golden/importless/2.11.txtnew file+31
@@ -0,0 +1,31 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ installPhase = String;
6+ meta =
7+ { branch = String;
8+ description = String;
9+ homepage = String;
10+ license = δ;
11+ longDescription = String;
12+ platforms = ε;
13+ };
14+ name = String;
15+ propagatedBuildInputs = [ζ];
16+ src = η;
17+ } ->
18+ θ,
19+ β.licenses = ι,
20+ ι.bsd3 = δ,
21+ κ.platforms = λ,
22+ λ.all = ε
23+) =>
24+{ coreutils = μ;
25+ fetchurl = {sha256 = String; url = String;} -> η;
26+ gnugrep = ν;
27+ jre = ζ;
28+ makeWrapper = γ;
29+ stdenv = α;
30+} ->
31+θ
test/golden/importless/2.12.txtnew file+30
@@ -0,0 +1,30 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ installPhase = String;
6+ meta =
7+ { description = String;
8+ homepage = String;
9+ license = δ;
10+ longDescription = String;
11+ platforms = ε;
12+ };
13+ name = String;
14+ propagatedBuildInputs = [ζ];
15+ src = η;
16+ } ->
17+ θ,
18+ β.licenses = ι,
19+ ι.bsd3 = δ,
20+ κ.platforms = λ,
21+ λ.all = ε
22+) =>
23+{ coreutils = μ;
24+ fetchurl = {sha256 = String; url = String;} -> η;
25+ gnugrep = ν;
26+ jre = ζ;
27+ makeWrapper = γ;
28+ stdenv = α;
29+} ->
30+θ
test/golden/importless/2.13.txtnew file+30
@@ -0,0 +1,30 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ installPhase = String;
6+ meta =
7+ { description = String;
8+ homepage = String;
9+ license = δ;
10+ longDescription = String;
11+ platforms = ε;
12+ };
13+ name = String;
14+ propagatedBuildInputs = [ζ];
15+ src = η;
16+ } ->
17+ θ,
18+ β.licenses = ι,
19+ ι.bsd3 = δ,
20+ κ.platforms = λ,
21+ λ.all = ε
22+) =>
23+{ coreutils = μ;
24+ fetchurl = {sha256 = String; url = String;} -> η;
25+ gnugrep = ν;
26+ jre = ζ;
27+ makeWrapper = γ;
28+ stdenv = α;
29+} ->
30+θ
test/golden/importless/2.2.0.txtnew file+35
@@ -0,0 +1,35 @@
1+∀ β γ δ ε ζ η θ ι κ.
2+( β.mkDerivation =
3+ { buildInputs = [γ];
4+ buildPhase = String;
5+ doCheck = Bool;
6+ hardeningDisable = [String];
7+ installPhase = String;
8+ meta =
9+ { description = String;
10+ knownVulnerabilities = [String];
11+ license = δ;
12+ maintainers = [ε];
13+ platforms = [String];
14+ };
15+ name = String;
16+ postPatch = String;
17+ preBuild = String;
18+ src = ∀ α. α;
19+ } ->
20+ ζ,
21+ η.cstrahan = ε,
22+ η.licenses = θ,
23+ η.maintainers = ι,
24+ η.mdaiter = ε,
25+ θ.asl20 = δ
26+) =>
27+{ erlang = γ;
28+ fetchurl = {sha256 = String; url = String;} -> κ;
29+ lib = η;
30+ pam = γ;
31+ stdenv = β;
32+ unzip = γ;
33+ which = γ;
34+} ->
35+ζ
test/golden/importless/2.2.txtnew file+5
@@ -0,0 +1,5 @@
1+∀ α β γ.
2+( α // {sha256 = String; version = String;} ~ β,
3+ α.callPackage = String -> β -> γ
4+) =>
5+α -> γ
test/golden/importless/2.22.txtnew file+30
@@ -0,0 +1,30 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ meta =
6+ { badPlatforms = [String];
7+ description = String;
8+ downloadPage = String;
9+ homepage = String;
10+ license = δ;
11+ maintainers = [ε];
12+ platforms = ζ;
13+ version = String;
14+ };
15+ name = String;
16+ postBuild = String;
17+ postInstall = String;
18+ preConfigure = String;
19+ src = η;
20+ version = String;
21+ } ->
22+ θ,
23+ β.licenses = ι,
24+ ι.zlib = δ,
25+ κ.maintainers = λ,
26+ λ.raskin = ε,
27+ μ.platforms = ν,
28+ ν.linux = ζ
29+) =>
30+{fetchurl = {sha256 = String; url = String;} -> η; stdenv = α; unzip = γ;} -> θ
test/golden/importless/2.26.txtnew file+32
@@ -0,0 +1,32 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ buildPhase = String;
6+ installPhase = String;
7+ meta =
8+ { description = String;
9+ license = δ;
10+ maintainers = [ε];
11+ platforms = ζ;
12+ version = String;
13+ };
14+ name = String;
15+ src = η;
16+ version = String;
17+ } ->
18+ θ,
19+ β.licenses = ι,
20+ ι.mit = δ,
21+ κ.maintainers = λ,
22+ λ.raskin = ε,
23+ μ.platforms = ν,
24+ ν.linux = ζ
25+) =>
26+{ fetchurl = {sha256 = String; url = String;} -> η;
27+ perl = γ;
28+ stdenv = α;
29+ texLive = γ;
30+ texinfo = γ;
31+} ->
32+θ
test/golden/importless/2.4.0.txtnew file+17
@@ -0,0 +1,17 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ installPhase = String;
6+ meta =
7+ {description = String; homepage = String; license = δ; platforms = ε;};
8+ name = String;
9+ src = ζ;
10+ } ->
11+ η,
12+ β.licenses = θ,
13+ θ.asl20 = δ,
14+ ι.platforms = κ,
15+ κ.unix = ε
16+) =>
17+{fetchurl = {sha256 = String; url = String;} -> ζ; stdenv = α; unzip = γ;} -> η
test/golden/importless/2.4.txtnew file+79
@@ -0,0 +1,79 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1 δ1 ε1 ζ1 η1 θ1.
2+( α.isDarwin = Bool,
3+ α.lib = β,
4+ α.mkDerivation =
5+ { NIX_LDFLAGS = γ;
6+ buildInputs = [δ];
7+ configureFlags = [String];
8+ enableParallelBuilding = Bool;
9+ meta =
10+ { description = String;
11+ homepage = String;
12+ license = ε;
13+ maintainers = [ζ];
14+ platforms = [η];
15+ };
16+ outputs = [String];
17+ passthru =
18+ { apr = θ;
19+ aprutil = ι;
20+ ldapSupport = Bool;
21+ proxySupport = Bool;
22+ sslSupport = Bool;
23+ };
24+ pname = String;
25+ postInstall = String;
26+ prePatch = String;
27+ setOutputFlags = Bool;
28+ src = κ;
29+ stripDebugList = [String];
30+ version = String;
31+ } ->
32+ λ,
33+ ι.ldapSupport = Bool,
34+ ι.sslSupport = Bool,
35+ β.optional = Bool -> Null -> [δ],
36+ μ.licenses = ν,
37+ μ.lovek323 = ζ,
38+ μ.maintainers = ξ,
39+ μ.peti = ζ,
40+ ν.asl20 = ε,
41+ ο.platforms = π,
42+ π.linux = [η],
43+ ρ.platforms = σ,
44+ σ.darwin = [η],
45+ τ.enableFeature = Bool -> String -> String,
46+ υ.enableFeature = Bool -> String -> String,
47+ φ.withFeatureAs = Bool -> String -> String -> String,
48+ χ.enableFeature = Bool -> String -> String,
49+ ψ.withFeatureAs = Bool -> String -> Null -> String,
50+ ω.enableFeature = Bool -> String -> String,
51+ α1.withFeature = Bool -> String -> String,
52+ β1.enableFeature = Bool -> String -> String,
53+ γ1.withFeatureAs = Bool -> String -> δ1 -> String,
54+ ε1.optionalString = Bool -> String -> γ
55+) =>
56+{ apr = θ;
57+ aprutil = ι;
58+ brotli = Null;
59+ brotliSupport = Bool;
60+ fetchurl = {sha256 = String; url = String;} -> κ;
61+ http2Support = Bool;
62+ ldapSupport = Bool;
63+ libiconv = Null;
64+ libxml2 = Null;
65+ libxml2Support = Bool;
66+ lua5 = δ1;
67+ luaSupport = Bool;
68+ lynx = ζ1;
69+ nghttp2 = Null;
70+ openldap = Null;
71+ openssl = Null;
72+ pcre = η1;
73+ perl = δ;
74+ proxySupport = Bool;
75+ sslSupport = Bool;
76+ stdenv = α;
77+ zlib = θ1;
78+} ->
79+λ
test/golden/importless/2.5.35.txtnew file+37
@@ -0,0 +1,37 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.buildPlatform = β,
3+ α.hostPlatform = β,
4+ α.lib = γ,
5+ α.mkDerivation =
6+ { doCheck = Bool;
7+ meta =
8+ { branch = String;
9+ description = String;
10+ homepage = String;
11+ license = δ;
12+ platforms = ε;
13+ };
14+ name = String;
15+ nativeBuildInputs = [ζ];
16+ postPatch = String;
17+ preConfigure = η;
18+ propagatedBuildInputs = [θ];
19+ src = ι;
20+ } ->
21+ κ,
22+ γ.licenses = λ,
23+ γ.platforms = μ,
24+ λ.bsd2 = δ,
25+ μ.unix = ε,
26+ ν.optionals = Bool -> [String] -> η
27+) =>
28+{ autoreconfHook = ζ;
29+ bison = ζ;
30+ fetchurl = {sha256 = String; url = String;} -> ι;
31+ flex = ζ;
32+ help2man = ζ;
33+ m4 = θ;
34+ stdenv = α;
35+ texinfo = ζ;
36+} ->
37+κ
test/golden/importless/2.5.txtnew file+6
@@ -0,0 +1,6 @@
1+∀ α β γ δ.
2+( α // {src = β; version = String;} ~ γ,
3+ α.callPackage = String -> γ -> δ,
4+ α.fetchurl = {sha256 = String; url = String;} -> β
5+) =>
6+α -> δ
test/golden/importless/2.6.1.txtnew file+32
@@ -0,0 +1,32 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π.
2+( α.buildPlatform = β,
3+ α.hostPlatform = β,
4+ α.isCygwin = Bool,
5+ α.isDarwin = Bool,
6+ α.lib = γ,
7+ α.mkDerivation =
8+ { buildInputs = [δ];
9+ meta =
10+ {description = String; homepage = String; license = ε; platforms = ζ;};
11+ name = String;
12+ postConfigure = η;
13+ postPatch = String;
14+ preConfigure = θ;
15+ propagatedBuildInputs = [ι];
16+ src = κ;
17+ } ->
18+ λ,
19+ γ.licenses = μ,
20+ γ.platforms = ν,
21+ μ.bsd2 = ε,
22+ ν.unix = ζ,
23+ ξ.optionalString = Bool -> String -> η,
24+ ο.optionalString = Bool -> String -> String,
25+ π.optionals = Bool -> [String] -> θ
26+) =>
27+{ bison = δ;
28+ fetchurl = {sha256 = String; url = String;} -> κ;
29+ m4 = ι;
30+ stdenv = α;
31+} ->
32+λ
test/golden/importless/2.6.13-pre.txtnew file+45
@@ -0,0 +1,45 @@
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π.
2+( β.cc = γ,
3+ δ.?libc = ε,
4+ β.lib = ζ,
5+ β.mkDerivation =
6+ { buildInputs = [η];
7+ configureFlags = [String];
8+ hardeningDisable = [String];
9+ meta = {description = String; maintainers = [θ]; platforms = ι;};
10+ patches = ∀ α. [α];
11+ pname = String;
12+ postPatch = String;
13+ sourceRoot = String;
14+ src = κ;
15+ version = String;
16+ } ->
17+ λ,
18+ μ.isGNU = Bool,
19+ ν.libc = Null,
20+ ζ.maintainers = ξ,
21+ ξ.raskin = θ,
22+ ο.platforms = π,
23+ π.linux = ι
24+) =>
25+{ binutils = η;
26+ emacs = η;
27+ fetchgit = {rev = String; sha256 = String; url = String;} -> κ;
28+ gmp = η;
29+ libX11 = η;
30+ libXaw = η;
31+ libXext = η;
32+ libXi = η;
33+ libXmu = η;
34+ libXt = η;
35+ m4 = η;
36+ mpfr = η;
37+ readline = η;
38+ stdenv = β;
39+ strace = η;
40+ texinfo = η;
41+ which = η;
42+ xorgproto = η;
43+ zlib = η;
44+} ->
45+λ
test/golden/importless/2.6.2.txtnew file+31
@@ -0,0 +1,31 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ.
2+( α.hostPlatform = β,
3+ α.isDarwin = γ,
4+ α.lib = δ,
5+ α.mkDerivation =
6+ { NIX_CFLAGS_COMPILE = ε;
7+ buildPhase = String;
8+ checkPhase = String;
9+ doCheck = Bool;
10+ hardeningDisable = [String];
11+ installPhase = String;
12+ meta =
13+ {description = String; homepage = String; license = ζ; platforms = η;};
14+ nativeBuildInputs = [θ];
15+ patches = [String];
16+ pname = String;
17+ preConfigure = String;
18+ src = ι;
19+ version = String;
20+ } ->
21+ κ,
22+ β.extensions = λ,
23+ λ.sharedLibrary = μ,
24+ δ.optionalString = γ -> String -> ε,
25+ ν.optionalString = ξ -> String -> String,
26+ ο.licenses = π,
27+ π.free = ζ,
28+ ρ.platforms = σ,
29+ σ.unix = η
30+) =>
31+{fetchurl = {sha256 = String; url = String;} -> ι; stdenv = α; unzip = θ;} -> κ
test/golden/importless/2.64.txtnew file+31
@@ -0,0 +1,31 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ doCheck = Bool;
6+ doInstallCheck = Bool;
7+ dontPatchShebangs = Bool;
8+ enableParallelBuilding = Bool;
9+ meta =
10+ { description = String;
11+ homepage = String;
12+ license = δ;
13+ longDescription = String;
14+ platforms = ε;
15+ };
16+ name = String;
17+ preCheck = String;
18+ src = ζ;
19+ } ->
20+ η,
21+ β.licenses = θ,
22+ θ.gpl2Plus = δ,
23+ ι.platforms = κ,
24+ κ.all = ε
25+) =>
26+{ fetchurl = {sha256 = String; url = String;} -> ζ;
27+ m4 = γ;
28+ perl = γ;
29+ stdenv = α;
30+} ->
31+η
test/golden/importless/2.7-html.txtnew file+10
@@ -0,0 +1,10 @@
1+∀ β γ δ ε.
2+( β.mkDerivation =
3+ { installPhase = String;
4+ meta = {maintainers = ∀ α. [α];};
5+ name = String;
6+ src = γ;
7+ } ->
8+ δ
9+) =>
10+{fetchurl = {sha256 = String; url = String;} -> γ; lib = ε; stdenv = β;} -> δ
test/golden/importless/2.7-pdf-a4.txtnew file+10
@@ -0,0 +1,10 @@
1+∀ β γ δ ε.
2+( β.mkDerivation =
3+ { installPhase = String;
4+ meta = {maintainers = ∀ α. [α];};
5+ name = String;
6+ src = γ;
7+ } ->
8+ δ
9+) =>
10+{fetchurl = {sha256 = String; url = String;} -> γ; lib = ε; stdenv = β;} -> δ
test/golden/importless/2.7-pdf-letter.txtnew file+10
@@ -0,0 +1,10 @@
1+∀ β γ δ ε.
2+( β.mkDerivation =
3+ { installPhase = String;
4+ meta = {maintainers = ∀ α. [α];};
5+ name = String;
6+ src = γ;
7+ } ->
8+ δ
9+) =>
10+{fetchurl = {sha256 = String; url = String;} -> γ; lib = ε; stdenv = β;} -> δ
test/golden/importless/2.7-text.txtnew file+10
@@ -0,0 +1,10 @@
1+∀ β γ δ ε.
2+( β.mkDerivation =
3+ { installPhase = String;
4+ meta = {maintainers = ∀ α. [α];};
5+ name = String;
6+ src = γ;
7+ } ->
8+ δ
9+) =>
10+{fetchurl = {sha256 = String; url = String;} -> γ; lib = ε; stdenv = β;} -> δ
test/golden/importless/2.7.7.txtnew file+28
@@ -0,0 +1,28 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ meta =
6+ { description = String;
7+ homepage = String;
8+ license = δ;
9+ longDescription = String;
10+ platforms = ε;
11+ };
12+ name = String;
13+ nativeBuildInputs = [ζ];
14+ patches = [String];
15+ src = η;
16+ } ->
17+ θ,
18+ β.licenses = ι,
19+ β.platforms = κ,
20+ ι.bsd3 = δ,
21+ κ.unix = ε
22+) =>
23+{ fetchurl = {sha256 = String; url = String;} -> η;
24+ jdk = γ;
25+ python2 = ζ;
26+ stdenv = α;
27+} ->
28+θ
test/golden/importless/2.8.txtnew file+5
@@ -0,0 +1,5 @@
1+∀ α β γ.
2+( {branch = String; sha256 = String; version = String;} // α ~ β,
3+ α.callPackage = String -> β -> γ
4+) =>
5+α -> γ
test/golden/importless/2.90.txtnew file+42
@@ -0,0 +1,42 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ configureFlags = [String];
6+ enableParallelBuilding = Bool;
7+ meta =
8+ { description = String;
9+ homepage = String;
10+ license = δ;
11+ longDescription = String;
12+ maintainers = [ε];
13+ platforms = ζ;
14+ };
15+ moduleName = String;
16+ name = String;
17+ nativeBuildInputs = [η];
18+ postInstall = String;
19+ src = θ;
20+ versionMajor = String;
21+ versionMinor = String;
22+ } ->
23+ ι,
24+ β.antono = ε,
25+ β.astsmtl = ε,
26+ β.lethalman = ε,
27+ β.licenses = κ,
28+ β.maintainers = λ,
29+ β.platforms = μ,
30+ κ.lgpl2 = δ,
31+ μ.linux = ζ
32+) =>
33+{ fetchurl = {sha256 = String; url = String;} -> θ;
34+ glib = γ;
35+ gobject-introspection = γ;
36+ gtk3 = γ;
37+ intltool = γ;
38+ ncurses = γ;
39+ pkgconfig = η;
40+ stdenv = α;
41+} ->
42+ι
test/golden/importless/2.txtnew file+34
@@ -0,0 +1,34 @@
1+∀ α β γ δ ε ζ η θ ι κ λ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { NIX_CFLAGS_LINK = String;
5+ buildInputs = [γ];
6+ enableParallelBuilding = Bool;
7+ installPhase = String;
8+ meta =
9+ { description = String;
10+ homepage = String;
11+ license = δ;
12+ maintainers = [ε];
13+ platforms = ζ;
14+ };
15+ pname = String;
16+ postPatch = String;
17+ src = η;
18+ version = String;
19+ } ->
20+ θ,
21+ β.licenses = ι,
22+ β.maintainers = κ,
23+ β.orivej = ε,
24+ β.platforms = λ,
25+ ι.zlib = δ,
26+ λ.linux = ζ
27+) =>
28+{ fetchzip = {sha256 = String; stripRoot = Bool; url = String;} -> η;
29+ libpng = γ;
30+ stdenv = α;
31+ zlib = γ;
32+ zopfli = γ;
33+} ->
34+θ
test/golden/importless/2.x.txtnew file+39
@@ -0,0 +1,39 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.lib = β,
3+ γ.pkgs = δ,
4+ β.aneeshusa = ε,
5+ β.edwtjo = ε,
6+ β.infinisil = ε,
7+ β.licenses = ζ,
8+ β.maintainers = η,
9+ β.pSub = ε,
10+ ζ.gpl3Plus = θ,
11+ δ.buildPythonApplication =
12+ { checkInputs = [ι];
13+ meta =
14+ { description = String;
15+ homepage = String;
16+ license = θ;
17+ longDescription = String;
18+ maintainers = [ε];
19+ };
20+ pname = String;
21+ postPatch = String;
22+ propagatedBuildInputs = [κ];
23+ src = λ;
24+ version = String;
25+ } ->
26+ μ,
27+ ν.passlib = κ,
28+ ν.python-dateutil = κ,
29+ ν.setuptools = κ,
30+ ν.vobject = κ,
31+ ξ.pytest = ι,
32+ ξ.pytestrunner = ι
33+) =>
34+{ fetchFromGitHub =
35+ {owner = String; repo = String; rev = String; sha256 = String;} -> λ;
36+ python3 = γ;
37+ stdenv = α;
38+} ->
39+μ
test/golden/importless/2.x.x.txtnew file+47
@@ -0,0 +1,47 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.licenses = β,
3+ α.maintainers = γ,
4+ β.gpl3 = δ,
5+ γ.joelmo = ε
6+) =>
7+{ autoreconfHook = ζ;
8+ boost = η;
9+ buildPythonPackage =
10+ { buildInputs = [θ];
11+ configureFlags = [String];
12+ enableParallelBuilding = Bool;
13+ format = String;
14+ meta =
15+ { description = String;
16+ homepage = String;
17+ license = δ;
18+ maintainers = [ε];
19+ };
20+ nativeBuildInputs = [ζ];
21+ pname = String;
22+ propagatedBuildInputs = [η];
23+ src = ι;
24+ version = String;
25+ } ->
26+ κ;
27+ cairomm = η;
28+ cgal = η;
29+ expat = η;
30+ fetchpatch = λ;
31+ fetchurl = {sha256 = String; url = String;} -> ι;
32+ gmp = η;
33+ gobject-introspection = η;
34+ gtk3 = η;
35+ lib = α;
36+ matplotlib = η;
37+ mpfr = η;
38+ ncurses = θ;
39+ pkg-config = ζ;
40+ pycairo = η;
41+ pygobject3 = η;
42+ python = η;
43+ pythonAtLeast = μ;
44+ scipy = η;
45+ sparsehash = η;
46+} ->
47+κ
test/golden/importless/20160331.txtnew file+36
@@ -0,0 +1,36 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ meta =
6+ { description = String;
7+ license = δ;
8+ maintainers = [ε];
9+ platforms = ζ;
10+ version = String;
11+ };
12+ nativeBuildInputs = [η];
13+ pname = String;
14+ src = θ;
15+ version = String;
16+ } ->
17+ ι,
18+ β.licenses = κ,
19+ κ.lgpl21Plus = δ,
20+ λ.maintainers = μ,
21+ μ.raskin = ε,
22+ ν.platforms = ξ,
23+ ξ.linux = ζ
24+) =>
25+{ autoconf = η;
26+ automake = η;
27+ autoreconfHook = η;
28+ fetchFromGitHub =
29+ {owner = String; repo = String; rev = String; sha256 = String;} -> θ;
30+ gettext = η;
31+ gmp = γ;
32+ libtool = η;
33+ mpfr = γ;
34+ stdenv = α;
35+} ->
36+ι
test/golden/importless/25.txtnew file+46
@@ -0,0 +1,46 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ.
2+( α.licenses = β,
3+ α.optional = Bool -> [γ] -> [δ],
4+ ε.fontconfig = ζ,
5+ ε.freetype = γ,
6+ ε.glibc = γ,
7+ ε.libGL = γ,
8+ ε.libpulseaudio = γ,
9+ ε.ncurses5 = γ,
10+ ε.xlibs = η,
11+ ε.zlib = γ,
12+ θ.fontconfig = γ,
13+ θ.freetype = γ,
14+ θ.glibc = γ,
15+ θ.xlibs = ι,
16+ θ.zlib = γ,
17+ β.unfree = κ,
18+ η.libX11 = γ,
19+ λ.libXext = γ,
20+ μ.libXdamage = γ,
21+ ν.libxcb = γ,
22+ ξ.libXfixes = γ,
23+ ο.libXrender = γ,
24+ ζ.lib = γ,
25+ ι.libX11 = γ,
26+ π.libXrender = γ
27+) =>
28+{ autoPatchelfHook = δ;
29+ deployAndroidPackage =
30+ { buildInputs = [δ];
31+ meta = {licenses = κ;};
32+ name = String;
33+ os = String;
34+ package = ρ;
35+ patchInstructions = String;
36+ } ->
37+ σ;
38+ lib = α;
39+ makeWrapper = δ;
40+ os = String;
41+ package = ρ;
42+ pkgs = ε;
43+ pkgs_i686 = θ;
44+ postInstall = String;
45+} ->
46+σ
test/golden/importless/26.txtnew file+41
@@ -0,0 +1,41 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ.
2+( α.licenses = β,
3+ α.optional = Bool -> [γ] -> [δ],
4+ ε.fontconfig = γ,
5+ ε.freetype = γ,
6+ ε.glibc = γ,
7+ ε.xlibs = ζ,
8+ η.fontconfig = θ,
9+ η.freetype = γ,
10+ η.glibc = γ,
11+ η.xlibs = ι,
12+ η.zlib = γ,
13+ β.unfree = κ,
14+ ζ.libX11 = γ,
15+ λ.libXrender = γ,
16+ μ.libXext = γ,
17+ ν.lib = γ,
18+ ι.libX11 = γ,
19+ ξ.libXrender = γ,
20+ ο.libXext = γ,
21+ θ.lib = γ
22+) =>
23+{ autoPatchelfHook = δ;
24+ deployAndroidPackage =
25+ { buildInputs = [δ];
26+ meta = {licenses = κ;};
27+ name = String;
28+ os = String;
29+ package = π;
30+ patchInstructions = String;
31+ } ->
32+ ρ;
33+ lib = α;
34+ makeWrapper = δ;
35+ os = String;
36+ package = π;
37+ pkgs = ε;
38+ pkgs_i686 = η;
39+ postInstall = String;
40+} ->
41+ρ
test/golden/importless/2_4.txtnew file+5
@@ -0,0 +1,5 @@
1+∀ α β γ.
2+( α // {sha256 = String; version = String;} ~ β,
3+ α.callPackage = String -> β -> γ
4+) =>
5+α -> γ
test/golden/importless/2bwm.txtnew file+24
@@ -0,0 +1,24 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.services = ε,
6+ γ.mkEnableOption = String -> ζ,
7+ γ.mkIf =
8+ η ->
9+ { environment = {systemPackages = [θ];};
10+ services = {xserver = {windowManager = {session = ι;};};};
11+ } ->
12+ κ,
13+ γ.singleton = {name = String; start = String;} -> ι,
14+ δ._2bwm = θ,
15+ ε.xserver = λ,
16+ λ.windowManager = μ,
17+ μ.2bwm = ν,
18+ ν.enable = η
19+) =>
20+α ->
21+{ config = κ;
22+ options =
23+ {services = {xserver = {windowManager = {2bwm = {enable = ζ;};};};};};
24+}
test/golden/importless/3.0.txtnew file+5
@@ -0,0 +1,5 @@
1+∀ α β γ.
2+( α // {sha256 = String; version = String;} ~ β,
3+ α.callPackage = String -> β -> γ
4+) =>
5+α -> γ
test/golden/importless/3.0.x.txtnew file+26
@@ -0,0 +1,26 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { meta =
5+ { description = String;
6+ homepage = String;
7+ license = γ;
8+ longDescription = String;
9+ platforms = δ;
10+ };
11+ name = String;
12+ nativeBuildInputs = [ε];
13+ patches = [String];
14+ src = ζ;
15+ } ->
16+ η,
17+ β.licenses = θ,
18+ θ.gpl3Plus = γ,
19+ ι.platforms = κ,
20+ κ.unix = δ
21+) =>
22+{ autoreconfHook = ε;
23+ fetchurl = {sha256 = String; url = String;} -> ζ;
24+ stdenv = α;
25+} ->
26+η
test/golden/importless/3.08.0.txtnew file+23
@@ -0,0 +1,23 @@
1+∀ α β γ δ ε ζ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildFlags = [String];
5+ builder = String;
6+ checkTarget = [String];
7+ configureFlags = [String];
8+ configureScript = String;
9+ dontAddPrefix = String;
10+ meta = {platforms = γ;};
11+ pname = String;
12+ src = δ;
13+ version = String;
14+ } ->
15+ ε,
16+ β.platforms = ζ,
17+ ζ.linux = γ
18+) =>
19+{ fetchurl = {sha256 = String; url = String;} -> δ;
20+ stdenv = α;
21+ xlibsWrapper = String;
22+} ->
23+ε
test/golden/importless/3.1.txtnew file+14
@@ -0,0 +1,14 @@
1+∀ α β γ δ ε ζ η.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { dontUnpack = Bool;
5+ installPhase = String;
6+ meta = {platforms = γ;};
7+ name = String;
8+ nativeBuildInputs = [δ];
9+ } ->
10+ ε,
11+ β.platforms = ζ,
12+ ζ.unix = γ
13+) =>
14+{fetchurl = {sha256 = String; url = String;} -> η; stdenv = α; unzip = δ;} -> ε
test/golden/importless/3.10.0.txtnew file+33
@@ -0,0 +1,33 @@
1+∀ α β γ δ ε ζ η θ ι.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildFlags = [String];
5+ buildInputs = [String];
6+ configureFlags = [String];
7+ installTargets = String;
8+ meta =
9+ { description = String;
10+ homepage = String;
11+ license = [γ];
12+ platforms = δ;
13+ };
14+ patchPhase = String;
15+ pname = String;
16+ postBuild = String;
17+ prefixKey = String;
18+ src = ε;
19+ version = String;
20+ } ->
21+ ζ,
22+ β.licenses = η,
23+ η.lgpl2 = γ,
24+ η.qpl = γ,
25+ θ.platforms = ι,
26+ ι.linux = δ
27+) =>
28+{ fetchurl = {sha256 = String; url = String;} -> ε;
29+ ncurses = String;
30+ stdenv = α;
31+ xlibsWrapper = String;
32+} ->
33+ζ
test/golden/importless/3.10.txt+2−1
@@ -1 +1,2 @@
1−∀ α. { callPackage = Path -> { sha256 = String; version = String } -> α } -> α
1+∀ α β.
2+(α.callPackage = String -> {sha256 = String; version = String;} -> β) => α -> β
test/golden/importless/3.11.txtnew file+5
@@ -0,0 +1,5 @@
1+∀ α β γ.
2+( α // {sha256 = String; version = String;} ~ β,
3+ α.callPackage = String -> β -> γ
4+) =>
5+α -> γ
test/golden/importless/3.12.1.txtnew file+42
@@ -0,0 +1,42 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.isAarch32 = Bool,
3+ α.isDarwin = Bool,
4+ α.isMips = Bool,
5+ α.lib = β,
6+ α.mkDerivation =
7+ { buildFlags = [String];
8+ buildInputs = [String];
9+ configureFlags = [String];
10+ installTargets = String;
11+ meta =
12+ { branch = String;
13+ description = String;
14+ homepage = String;
15+ license = [γ];
16+ longDescription = String;
17+ platforms = δ;
18+ };
19+ passthru = {nativeCompilers = Bool;};
20+ patches = [String];
21+ pname = String;
22+ postBuild = String;
23+ preConfigure = String;
24+ prefixKey = String;
25+ src = ε;
26+ version = String;
27+ } ->
28+ ζ,
29+ β.optionals = Bool -> [String] -> [String],
30+ η.optionalString = Bool -> String -> String,
31+ θ.lgpl2 = γ,
32+ θ.licenses = ι,
33+ θ.linux = δ,
34+ θ.platforms = κ,
35+ θ.qpl = γ
36+) =>
37+{ fetchurl = {sha256 = String; url = String;} -> ε;
38+ ncurses = String;
39+ stdenv = α;
40+ xlibsWrapper = String;
41+} ->
42+ζ
test/golden/importless/3.12.txt+2−1
@@ -1 +1,2 @@
1−∀ α. { callPackage = Path -> { sha256 = String; version = String } -> α } -> α
1+∀ α β.
2+(α.callPackage = String -> {sha256 = String; version = String;} -> β) => α -> β
test/golden/importless/3.13.txt+2−1
@@ -1 +1,2 @@
1−∀ α. { callPackage = Path -> { sha256 = String; version = String } -> α } -> α
1+∀ α β.
2+(α.callPackage = String -> {sha256 = String; version = String;} -> β) => α -> β
test/golden/importless/3.4.txtnew file+32
@@ -0,0 +1,32 @@
1+∀ α β γ δ ε ζ η θ ι.
2+( α.licenses = β,
3+ α.maintainers = γ,
4+ α.offline = δ,
5+ α.platforms = ε,
6+ α.zowoq = δ,
7+ β.asl20 = ζ,
8+ ε.unix = η
9+) =>
10+{ buildGoModule =
11+ { buildPhase = String;
12+ deleteVendor = Bool;
13+ doCheck = Bool;
14+ installPhase = String;
15+ meta =
16+ { description = String;
17+ homepage = String;
18+ license = ζ;
19+ maintainers = [δ];
20+ platforms = η;
21+ };
22+ pname = String;
23+ src = θ;
24+ vendorSha256 = String;
25+ version = String;
26+ } ->
27+ ι;
28+ fetchFromGitHub =
29+ {owner = String; repo = String; rev = String; sha256 = String;} -> θ;
30+ lib = α;
31+} ->
32+ι
test/golden/importless/3.5.txtnew file+8
@@ -0,0 +1,8 @@
1+∀ α β γ δ ε.
2+( α // {src = β; version = String;} ~ γ,
3+ α.autoreconfHook = δ,
4+ α.callPackage = String -> γ -> ε,
5+ α.fetchFromGitHub =
6+ {owner = String; repo = String; rev = String; sha256 = String;} -> β
7+) =>
8+α -> ε
test/golden/importless/3.6.txt+2−1
@@ -1 +1,2 @@
1−∀ α. { callPackage = Path -> { sha256 = String; version = String } -> α } -> α
1+∀ α β.
2+(α.callPackage = String -> {sha256 = String; version = String;} -> β) => α -> β
test/golden/importless/3.7-html.txtnew file+10
@@ -0,0 +1,10 @@
1+∀ β γ δ ε.
2+( β.mkDerivation =
3+ { installPhase = String;
4+ meta = {maintainers = ∀ α. [α];};
5+ name = String;
6+ src = γ;
7+ } ->
8+ δ
9+) =>
10+{fetchurl = {sha256 = String; url = String;} -> γ; lib = ε; stdenv = β;} -> δ
test/golden/importless/3.7-pdf-a4.txtnew file+10
@@ -0,0 +1,10 @@
1+∀ β γ δ ε.
2+( β.mkDerivation =
3+ { installPhase = String;
4+ meta = {maintainers = ∀ α. [α];};
5+ name = String;
6+ src = γ;
7+ } ->
8+ δ
9+) =>
10+{fetchurl = {sha256 = String; url = String;} -> γ; lib = ε; stdenv = β;} -> δ
test/golden/importless/3.7-pdf-letter.txtnew file+10
@@ -0,0 +1,10 @@
1+∀ β γ δ ε.
2+( β.mkDerivation =
3+ { installPhase = String;
4+ meta = {maintainers = ∀ α. [α];};
5+ name = String;
6+ src = γ;
7+ } ->
8+ δ
9+) =>
10+{fetchurl = {sha256 = String; url = String;} -> γ; lib = ε; stdenv = β;} -> δ
test/golden/importless/3.7-text.txtnew file+10
@@ -0,0 +1,10 @@
1+∀ β γ δ ε.
2+( β.mkDerivation =
3+ { installPhase = String;
4+ meta = {maintainers = ∀ α. [α];};
5+ name = String;
6+ src = γ;
7+ } ->
8+ δ
9+) =>
10+{fetchurl = {sha256 = String; url = String;} -> γ; lib = ε; stdenv = β;} -> δ
test/golden/importless/3.7.txt+2−1
@@ -1 +1,2 @@
1−∀ α. { callPackage = Path -> { sha256 = String; version = String } -> α } -> α
1+∀ α β.
2+(α.callPackage = String -> {sha256 = String; version = String;} -> β) => α -> β
test/golden/importless/3.8.txt+2−1
@@ -1 +1,2 @@
1−∀ α. { callPackage = Path -> { sha256 = String; version = String } -> α } -> α
1+∀ α β.
2+(α.callPackage = String -> {sha256 = String; version = String;} -> β) => α -> β
test/golden/importless/3.9.txt+2−1
@@ -1 +1,2 @@
1−∀ α. { callPackage = Path -> { sha256 = String; version = String } -> α } -> α
1+∀ α β.
2+(α.callPackage = String -> {sha256 = String; version = String;} -> β) => α -> β
test/golden/importless/3.txtnew file+33
@@ -0,0 +1,33 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ meta =
6+ { description = String;
7+ license = δ;
8+ maintainers = [ε];
9+ platforms = ζ;
10+ version = String;
11+ };
12+ nativeBuildInputs = [η];
13+ pname = String;
14+ src = θ;
15+ version = String;
16+ } ->
17+ ι,
18+ β.licenses = κ,
19+ κ.cecill-b = δ,
20+ λ.maintainers = μ,
21+ μ.raskin = ε,
22+ ν.platforms = ξ,
23+ ξ.linux = ζ
24+) =>
25+{ autoconf = γ;
26+ automake = γ;
27+ autoreconfHook = η;
28+ fetchurl = {sha256 = String; url = String;} -> θ;
29+ gmpxx = γ;
30+ libtool = γ;
31+ stdenv = α;
32+} ->
33+ι
test/golden/importless/3.x.txtnew file+38
@@ -0,0 +1,38 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.dotlambda = β,
3+ α.licenses = γ,
4+ α.maintainers = δ,
5+ ε.pkgs = ζ,
6+ γ.gpl3Plus = η,
7+ ζ.buildPythonApplication =
8+ { checkInputs = [θ];
9+ meta =
10+ { description = String;
11+ homepage = String;
12+ license = η;
13+ maintainers = [β];
14+ };
15+ pname = String;
16+ propagatedBuildInputs = [ι];
17+ src = κ;
18+ version = String;
19+ } ->
20+ λ,
21+ μ.defusedxml = ι,
22+ μ.passlib = ι,
23+ μ.python-dateutil = ι,
24+ μ.setuptools = ι,
25+ μ.vobject = ι,
26+ ν.pytest = θ,
27+ ν.pytest-flake8 = θ,
28+ ν.pytest-isort = θ,
29+ ν.pytestcov = θ,
30+ ν.pytestrunner = θ,
31+ ν.waitress = θ
32+) =>
33+{ fetchFromGitHub =
34+ {owner = String; repo = String; rev = String; sha256 = String;} -> κ;
35+ lib = α;
36+ python3 = ε;
37+} ->
38+λ
test/golden/importless/38.txtnew file+50
@@ -0,0 +1,50 @@
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ.
2+( β.buildPlatform = γ,
3+ β.hostPlatform = γ,
4+ β.isDarwin = δ,
5+ β.lib = ε,
6+ β.mkDerivation =
7+ { buildInputs = [ζ];
8+ configureFlags = [String];
9+ configurePlatforms = ∀ α. [α];
10+ depsBuildBuild = [η];
11+ enableParallelBuilding = Bool;
12+ meta =
13+ { description = String;
14+ homepage = String;
15+ maintainers = [θ];
16+ platforms = ι;
17+ };
18+ nativeBuildInputs = [κ];
19+ pname = String;
20+ postFixup = String;
21+ postUnpack = String;
22+ preConfigure = String;
23+ src = λ;
24+ version = String;
25+ } ->
26+ μ,
27+ ν.stdenv = ξ,
28+ ε.maintainers = ο,
29+ ε.optionals = Bool -> [String] -> [String],
30+ ε.platforms = π,
31+ ο.abbradar = θ,
32+ π.unix = ι,
33+ ρ.optional = δ -> σ -> [ζ],
34+ ξ.cc = η
35+) =>
36+{ buildPackages = ν;
37+ fetchurl = {sha256 = String; url = String;} -> λ;
38+ gnused_422 = κ;
39+ icu = ζ;
40+ libffi = ζ;
41+ libobjc = σ;
42+ perl = κ;
43+ pkgconfig = κ;
44+ python2 = κ;
45+ readline = ζ;
46+ stdenv = β;
47+ zip = κ;
48+ zlib = ζ;
49+} ->
50+μ
test/golden/importless/3_1.txtnew file+5
@@ -0,0 +1,5 @@
1+∀ α β γ.
2+( α // {sha256 = String; version = String;} ~ β,
3+ α.callPackage = String -> β -> γ
4+) =>
5+α -> γ
test/golden/importless/3dovideo.txtnew file+35
@@ -0,0 +1,35 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π.
2+( α.lib = β,
3+ α.mkDerivation = {buildCommand = String; name = String; src = γ;} -> δ,
4+ β.base = ε,
5+ β.binary = ε,
6+ β.bytestring = ε,
7+ β.concatMapStrings = (ζ -> String) -> η -> String,
8+ β.filepath = ε,
9+ β.lessThan = ζ -> Number -> θ,
10+ β.mkDerivation =
11+ { buildDepends = [ε];
12+ description = String;
13+ isExecutable = Bool;
14+ isLibrary = Bool;
15+ license = ι;
16+ pname = String;
17+ src = κ;
18+ version = String;
19+ } ->
20+ λ,
21+ β.optionalString = θ -> String -> μ,
22+ β.range = Number -> Number -> η,
23+ β.tar = ε,
24+ β.toString = ζ -> μ,
25+ ν.licenses = ξ,
26+ ξ.bsd3 = ι,
27+ (String | Number) ~ μ
28+) =>
29+{ fetchurl = {sha256 = String; url = String;} -> κ;
30+ haskellPackages = ο;
31+ requireFile = {message = String; name = String; sha256 = String;} -> γ;
32+ stdenv = α;
33+ writeText = String -> String -> π;
34+} ->
35+δ
test/golden/importless/4.0.txtnew file+40
@@ -0,0 +1,40 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ buildPhase = String;
6+ createFindlibDestdir = Bool;
7+ installPhase = String;
8+ meta =
9+ { branch = String;
10+ description = String;
11+ homepage = String;
12+ license = δ;
13+ maintainers = [ε];
14+ };
15+ name = String;
16+ preConfigure = String;
17+ propagatedBuildInputs = [ζ];
18+ src = η;
19+ } ->
20+ θ,
21+ β.licenses = ι,
22+ β.maintainers = κ,
23+ ι.lgpl2 = δ,
24+ κ.vbgl = ε
25+) =>
26+{ fetchurl = {sha256 = String; url = String;} -> η;
27+ findlib = γ;
28+ freetype = ζ;
29+ ghostscript = γ;
30+ giflib = ζ;
31+ graphicsmagick = γ;
32+ libXpm = ζ;
33+ libjpeg = ζ;
34+ libpng = ζ;
35+ libtiff = ζ;
36+ ocaml = γ;
37+ omake = γ;
38+ stdenv = α;
39+} ->
40+θ
test/golden/importless/4.00.1.txtnew file+41
@@ -0,0 +1,41 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.isAarch32 = Bool,
3+ α.isMips = Bool,
4+ α.lib = β,
5+ α.mkDerivation =
6+ { buildFlags = [String];
7+ buildInputs = [γ];
8+ configureFlags = [String];
9+ installTargets = String;
10+ meta =
11+ { branch = String;
12+ description = String;
13+ homepage = String;
14+ license = [δ];
15+ longDescription = String;
16+ platforms = ε;
17+ };
18+ passthru = {nativeCompilers = Bool;};
19+ pname = String;
20+ postBuild = String;
21+ preConfigure = String;
22+ prefixKey = String;
23+ src = ζ;
24+ version = String;
25+ } ->
26+ η,
27+ β.optionals = Bool -> [String] -> [String],
28+ θ.optionalString = Bool -> String -> String,
29+ ι.optional = Bool -> String -> [γ],
30+ κ.lgpl2 = δ,
31+ κ.licenses = λ,
32+ κ.linux = ε,
33+ κ.platforms = μ,
34+ κ.qpl = δ
35+) =>
36+{ fetchurl = {sha256 = String; url = String;} -> ζ;
37+ ncurses = γ;
38+ stdenv = α;
39+ xlibsWrapper = String;
40+} ->
41+η
test/golden/importless/4.01.17.txtnew file+35
@@ -0,0 +1,35 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.hostPlatform = β,
3+ α.lib = γ,
4+ α.mkDerivation =
5+ { dontPatchELF = Bool;
6+ dontStrip = Bool;
7+ installPhase = String;
8+ meta =
9+ { description = String;
10+ homepage = String;
11+ license = δ;
12+ maintainers = [ε];
13+ platforms = ζ;
14+ };
15+ pname = String;
16+ src = η;
17+ version = String;
18+ } ->
19+ θ,
20+ γ.makeLibraryPath = [ι] -> String,
21+ β.system = String,
22+ κ.system = String,
23+ λ.joko = ε,
24+ λ.licenses = μ,
25+ λ.maintainers = ν,
26+ λ.platforms = ξ,
27+ μ.unfree = δ,
28+ ξ.linux = ζ
29+) =>
30+{ cups = ι;
31+ fetchurl = {sha256 = String; url = String;} -> η;
32+ libusb-compat-0_1 = ι;
33+ stdenv = α;
34+} ->
35+θ
test/golden/importless/4.1.txtnew file+14
@@ -0,0 +1,14 @@
1+∀ α β γ δ ε ζ η.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { dontUnpack = Bool;
5+ installPhase = String;
6+ meta = {platforms = γ;};
7+ name = String;
8+ nativeBuildInputs = [δ];
9+ } ->
10+ ε,
11+ β.platforms = ζ,
12+ ζ.unix = γ
13+) =>
14+{fetchurl = {sha256 = String; url = String;} -> η; stdenv = α; unzip = δ;} -> ε
test/golden/importless/4.13a.txtnew file+20
@@ -0,0 +1,20 @@
1+∀ β γ δ ε ζ η θ ι.
2+( β // {branch = String;} ~ γ,
3+ δ.mkDerivation =
4+ { buildInputs = [ε];
5+ meta = ∀ α. α;
6+ nativeBuildInputs = [ζ];
7+ pname = String;
8+ src = η;
9+ version = String;
10+ } ->
11+ θ,
12+ ι.meta = β
13+) =>
14+{ fetchurl = {sha256 = String; url = String;} -> η;
15+ lzma = ζ;
16+ ncurses = ε;
17+ stdenv = δ;
18+ texinfo = ι;
19+} ->
20+θ
test/golden/importless/4.2.1.txtnew file+32
@@ -0,0 +1,32 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ configureScript = String;
6+ meta =
7+ { description = String;
8+ homepage = String;
9+ license = δ;
10+ maintainers = [ε];
11+ platforms = ζ;
12+ };
13+ name = String;
14+ nativeBuildInputs = [η];
15+ passthru = {libdvdread = γ;};
16+ preConfigure = String;
17+ src = θ;
18+ } ->
19+ ι,
20+ β.licenses = κ,
21+ κ.gpl2 = δ,
22+ λ.maintainers = μ,
23+ μ.wmertens = ε,
24+ ν.platforms = ξ,
25+ ξ.linux = ζ
26+) =>
27+{ fetchurl = {sha256 = String; url = String;} -> θ;
28+ libdvdread = γ;
29+ pkgconfig = η;
30+ stdenv = α;
31+} ->
32+ι
test/golden/importless/4.2.txtnew file+36
@@ -0,0 +1,36 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ makeFlags = [String];
6+ meta =
7+ { description = String;
8+ homepage = String;
9+ license = [δ];
10+ maintainers = [ε];
11+ platforms = ζ;
12+ };
13+ nativeBuildInputs = [η];
14+ pname = String;
15+ preConfigure = String;
16+ src = θ;
17+ version = String;
18+ } ->
19+ ι,
20+ γ.isILP64 = Bool,
21+ β.bsd2 = δ,
22+ β.gpl2Plus = δ,
23+ β.lgpl21Plus = δ,
24+ β.licenses = κ,
25+ β.maintainers = λ,
26+ β.platforms = μ,
27+ β.ttuegel = ε,
28+ β.unix = ζ
29+) =>
30+{ blas = γ;
31+ fetchurl = {sha256 = String; url = String;} -> θ;
32+ gfortran = η;
33+ lapack = γ;
34+ stdenv = α;
35+} ->
36+ι
test/golden/importless/4.25.txtnew file+40
@@ -0,0 +1,40 @@
1+∀ α β γ δ ε ζ η θ ι.
2+( α.is64bit = Bool,
3+ α.isDarwin = Bool,
4+ α.isFreeBSD = Bool,
5+ α.isLinux = Bool,
6+ α.isOpenBSD = Bool,
7+ α.isSunOS = Bool,
8+ α.lib = β,
9+ α.mkDerivation =
10+ { build = String;
11+ buildInputs = [γ];
12+ buildPhase = String;
13+ compiledDate = String;
14+ meta =
15+ { description = String;
16+ homepage = String;
17+ license = δ;
18+ maintainers = [ε];
19+ platforms = [String];
20+ };
21+ pname = String;
22+ preConfigure = String;
23+ src = ζ;
24+ version = String;
25+ } ->
26+ η,
27+ β.licenses = θ,
28+ β.maintainers = ι,
29+ θ.gpl2 = δ,
30+ ι.rick68 = ε
31+) =>
32+{ dataDir = String;
33+ fetchurl = {sha256 = String; url = String;} -> ζ;
34+ ncurses = γ;
35+ openssl = γ;
36+ readline = γ;
37+ stdenv = α;
38+ zlib = γ;
39+} ->
40+η
test/golden/importless/4.29.txtnew file+33
@@ -0,0 +1,33 @@
1+∀ α β γ δ ε ζ η θ ι.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { build = String;
5+ buildInputs = [γ];
6+ buildPhase = String;
7+ meta =
8+ { description = String;
9+ homepage = String;
10+ license = δ;
11+ maintainers = [ε];
12+ platforms = [String];
13+ };
14+ pname = String;
15+ preConfigure = String;
16+ src = ζ;
17+ version = String;
18+ } ->
19+ η,
20+ β.licenses = θ,
21+ β.maintainers = ι,
22+ θ.asl20 = δ,
23+ ι.rick68 = ε
24+) =>
25+{ dataDir = String;
26+ fetchurl = {sha256 = String; url = String;} -> ζ;
27+ ncurses = γ;
28+ openssl = γ;
29+ readline = γ;
30+ stdenv = α;
31+ zlib = γ;
32+} ->
33+η
test/golden/importless/4.3.2.txtnew file+38
@@ -0,0 +1,38 @@
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ.
2+( β.isDarwin = Bool,
3+ β.lib = γ,
4+ β.mkDerivation =
5+ { configureFlags = [δ];
6+ doCheck = Bool;
7+ meta =
8+ { badPlatforms = [String];
9+ branch = String;
10+ description = String;
11+ homepage = String;
12+ license = ε;
13+ longDescription = String;
14+ maintainers = ∀ α. [α];
15+ platforms = ζ;
16+ };
17+ name = String;
18+ nativeBuildInputs = [η];
19+ outputs = [String];
20+ passthru = {static = θ;};
21+ preConfigure = String;
22+ src = ι;
23+ } ->
24+ κ,
25+ κ.out = λ,
26+ γ.licenses = μ,
27+ μ.lgpl3Plus = ε,
28+ ν.platforms = ξ,
29+ ξ.all = ζ,
30+ ο.enableFeature = Bool -> String -> δ,
31+ π.optionals = ρ -> [String] -> [δ]
32+) =>
33+{ cxx = Bool;
34+ fetchurl = {sha256 = String; url = String;} -> ι;
35+ m4 = η;
36+ stdenv = β;
37+} ->
38+κ
test/golden/importless/4.4.txtnew file+46
@@ -0,0 +1,46 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ.
2+( α.hostPlatform = β,
3+ α.isDarwin = γ,
4+ α.lib = δ,
5+ α.mkDerivation =
6+ { NIX_CFLAGS_COMPILE = ε;
7+ buildInputs = [ζ];
8+ makeFlags = [String];
9+ meta =
10+ { description = String;
11+ homepage = String;
12+ license = [η];
13+ maintainers = [θ];
14+ platforms = ι;
15+ };
16+ name = String;
17+ nativeBuildInputs = [κ];
18+ postInstall = String;
19+ preConfigure = String;
20+ src = λ;
21+ } ->
22+ μ,
23+ ζ.isILP64 = Bool,
24+ β.extensions = ν,
25+ ν.sharedLibrary = ξ,
26+ δ.optionalString = γ -> String -> ε,
27+ ο.bsd2 = η,
28+ ο.gpl2Plus = η,
29+ ο.lgpl21Plus = η,
30+ ο.licenses = π,
31+ ο.maintainers = ρ,
32+ ο.platforms = σ,
33+ ο.ttuegel = θ,
34+ ο.unix = ι,
35+ τ.optionalString = υ -> String -> String,
36+ φ.optionalString = Bool -> String -> String
37+) =>
38+{ blas = ζ;
39+ cudatoolkit = χ;
40+ enableCuda = Bool;
41+ fetchurl = {sha256 = String; url = String;} -> λ;
42+ gfortran = κ;
43+ lapack = ζ;
44+ stdenv = α;
45+} ->
46+μ
test/golden/importless/4.9.9.txtnew file+29
@@ -0,0 +1,29 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { NIX_LDFLAGS = String;
5+ buildInputs = [γ];
6+ meta =
7+ { description = String;
8+ homepage = String;
9+ license = δ;
10+ maintainers = [ε];
11+ platforms = ζ;
12+ };
13+ name = String;
14+ postInstall = String;
15+ src = η;
16+ } ->
17+ θ,
18+ β.licenses = ι,
19+ ι.gpl2 = δ,
20+ κ.maintainers = λ,
21+ λ.wmertens = ε,
22+ μ.platforms = ν,
23+ ν.linux = ζ
24+) =>
25+{ fetchurl = {sha256 = String; url = String;} -> η;
26+ libdvdcss = γ;
27+ stdenv = α;
28+} ->
29+θ
test/golden/importless/4.txt+15−1
@@ -1 +1,15 @@
1−∀ α β γ. { Foundation = α; callPackage = Path -> { Foundation = α; enableParallelBuilding = Bool; extraPatches = [Path]; libobjc = β; sha256 = String; version = String } -> γ; libobjc = β } -> γ
1+∀ α β γ.
2+{ Foundation = α;
3+ callPackage =
4+ String ->
5+ { Foundation = α;
6+ enableParallelBuilding = Bool;
7+ extraPatches = [String];
8+ libobjc = β;
9+ sha256 = String;
10+ version = String;
11+ } ->
12+ γ;
13+ libobjc = β;
14+} ->
15+γ
test/golden/importless/422.txtnew file+26
@@ -0,0 +1,26 @@
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( β.hostPlatform = γ,
3+ β.lib = δ,
4+ β.mkDerivation =
5+ { configureFlags = ε;
6+ meta =
7+ { description = String;
8+ homepage = String;
9+ license = ζ;
10+ longDescription = String;
11+ maintainers = ∀ α. [α];
12+ platforms = η;
13+ };
14+ name = String;
15+ outputs = [String];
16+ src = θ;
17+ } ->
18+ ι,
19+ δ.optional = κ -> String -> ε,
20+ γ.isMinGW = κ,
21+ λ.licenses = μ,
22+ μ.gpl3Plus = ζ,
23+ ν.platforms = ξ,
24+ ξ.all = η
25+) =>
26+{fetchurl = {sha256 = String; url = String;} -> θ; stdenv = β;} -> ι
test/golden/importless/44.0.txtnew file+54
@@ -0,0 +1,54 @@
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ.
2+( β.hostPlatform = γ,
3+ β.lib = δ,
4+ β.mkDerivation =
5+ {buildPhase = String; installPhase = String; name = String; src = ε;} -> ζ,
6+ η.meta = θ,
7+ ι.strings = κ,
8+ λ.override = {pip = Null;} -> μ,
9+ ν.override = {setuptools = Null; wheel = Null;} -> μ,
10+ γ.isWindows = Bool,
11+ δ.licenses = ξ,
12+ δ.psfl = ο,
13+ δ.zpl20 = ο,
14+ θ.platforms = π,
15+ κ.optionalString = Bool -> String -> ρ
16+) =>
17+{ bootstrapped-pip = μ;
18+ buildPythonPackage =
19+ { catchConflicts = Bool;
20+ doCheck = Bool;
21+ format = String;
22+ meta =
23+ { description = String;
24+ homepage = String;
25+ license = [ο];
26+ platforms = π;
27+ priority = Number;
28+ };
29+ nativeBuildInputs = [μ];
30+ pipInstallFlags = [String];
31+ pname = ∀ α. α;
32+ preBuild = ρ;
33+ src = ζ;
34+ version = ∀ α. α;
35+ } ->
36+ σ;
37+ callPackage = τ;
38+ fetchFromGitHub =
39+ { name = String;
40+ owner = String;
41+ repo = String;
42+ rev = String;
43+ sha256 = String;
44+ } ->
45+ ε;
46+ lib = ι;
47+ pipInstallHook = λ;
48+ python = η;
49+ setuptoolsBuildHook = ν;
50+ stdenv = β;
51+ unzip = υ;
52+ wrapPython = φ;
53+} ->
54+σ
test/golden/importless/5.1.138.txtnew file+20
@@ -0,0 +1,20 @@
1+∀ α β γ δ ε ζ η.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ installPhase = String;
6+ meta = {description = String; homepage = String; license = δ;};
7+ phases = [String];
8+ pname = String;
9+ src = ε;
10+ version = String;
11+ } ->
12+ ζ,
13+ β.licenses = η,
14+ η.unfree = δ
15+) =>
16+{ b43FirmwareCutter = γ;
17+ fetchurl = {sha256 = String; url = String;} -> ε;
18+ stdenv = α;
19+} ->
20+ζ
test/golden/importless/5.2.txtnew file+25
@@ -0,0 +1,25 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.is64bit = β,
3+ α.lib = γ,
4+ α.mkDerivation =
5+ { doCheck = β;
6+ meta =
7+ { description = String;
8+ homepage = String;
9+ license = δ;
10+ maintainers = [ε];
11+ platforms = [ζ];
12+ };
13+ name = String;
14+ src = η;
15+ } ->
16+ θ,
17+ γ.licenses = ι,
18+ γ.maintainers = κ,
19+ γ.platforms = λ,
20+ γ.vbgl = ε,
21+ ι.mit = δ,
22+ λ.linux = [ζ],
23+ μ.darwin = [ζ]
24+) =>
25+{fetchurl = {sha256 = String; url = String;} -> η; stdenv = α;} -> θ
test/golden/importless/5.41.txtnew file+48
@@ -0,0 +1,48 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = γ;
5+ doCheck = Bool;
6+ enableParallelBuilding = Bool;
7+ meta =
8+ { description = String;
9+ homepage = String;
10+ license = δ;
11+ longDescription = String;
12+ maintainers = [ε];
13+ platforms = ζ;
14+ };
15+ name = String;
16+ patches = [String];
17+ postInstall = String;
18+ src = η;
19+ version = String;
20+ } ->
21+ θ,
22+ β.makeBinPath = ι -> κ,
23+ λ.filter = (Null -> Bool) -> [Null] -> ι,
24+ μ.filter = (Null -> Bool) -> [Null] -> γ,
25+ ν.licenses = ξ,
26+ ξ.gpl2 = δ,
27+ ο.maintainers = π,
28+ π.peti = ε,
29+ ρ.platforms = σ,
30+ σ.unix = ζ,
31+ τ.optionals = Bool -> [String] -> [String],
32+ υ.optionalString = Bool -> String -> String
33+) =>
34+{ ecl = Null;
35+ ecl-fasl = Bool;
36+ fetchpatch = {sha256 = String; url = String;} -> String;
37+ fetchurl = {sha256 = String; url = String;} -> η;
38+ gnuplot = Null;
39+ makeWrapper = Null;
40+ perl = Null;
41+ python = Null;
42+ rlwrap = Null;
43+ sbcl = Null;
44+ stdenv = α;
45+ texinfo = Null;
46+ tk = Null;
47+} ->
48+θ
test/golden/importless/5.6.txtnew file+33
@@ -0,0 +1,33 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ.
2+( α.isDarwin = β,
3+ α.lib = γ,
4+ α.mkDerivation =
5+ { buildInputs = δ;
6+ meta =
7+ { description = String;
8+ homepage = String;
9+ license = ε;
10+ longDescription = String;
11+ maintainers = [ζ];
12+ platforms = η;
13+ };
14+ pname = String;
15+ prePatch = θ;
16+ src = ι;
17+ version = String;
18+ } ->
19+ κ,
20+ γ.optional = β -> λ -> δ,
21+ μ.licenses = ν,
22+ ν.lgpl21 = ε,
23+ ξ.maintainers = ο,
24+ ο.maggesi = ζ,
25+ π.platforms = ρ,
26+ ρ.linux = η,
27+ σ.optionalString = τ -> String -> θ
28+) =>
29+{ autoreconfHook = λ;
30+ fetchurl = {sha256 = String; url = String;} -> ι;
31+ stdenv = α;
32+} ->
33+κ
test/golden/importless/5.6.x.txtnew file+41
@@ -0,0 +1,41 @@
1+∀ α β γ δ ε ζ η θ ι κ λ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { NIX_CFLAGS_COMPILE = [String];
5+ NIX_LDFLAGS = String;
6+ buildInputs = [γ];
7+ cmakeFlags = [String];
8+ enableParallelBuilding = Bool;
9+ meta =
10+ { description = String;
11+ homepage = String;
12+ license = δ;
13+ maintainers = [ε];
14+ platforms = ζ;
15+ };
16+ passthru = {mysqlVersion = String;};
17+ pname = String;
18+ postInstall = String;
19+ prePatch = String;
20+ src = η;
21+ version = String;
22+ } ->
23+ θ,
24+ β.grahamc = ε,
25+ β.licenses = ι,
26+ β.maintainers = κ,
27+ β.platforms = λ,
28+ ι.gpl2 = δ,
29+ λ.linux = ζ
30+) =>
31+{ bison = γ;
32+ cmake = γ;
33+ fetchurl = {sha256 = String; url = String;} -> η;
34+ libaio = γ;
35+ ncurses = γ;
36+ openssl = γ;
37+ perl = γ;
38+ stdenv = α;
39+ zlib = γ;
40+} ->
41+θ
test/golden/importless/5.7.txtnew file+40
@@ -0,0 +1,40 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ.
2+( α.isDarwin = β,
3+ α.lib = γ,
4+ α.mkDerivation =
5+ { buildInputs = [δ];
6+ configureFlags = [String];
7+ meta =
8+ { description = String;
9+ homepage = String;
10+ license = ε;
11+ longDescription = String;
12+ maintainers = [ζ];
13+ platforms = [η];
14+ };
15+ nativeBuildInputs = θ;
16+ patches = [String];
17+ pname = String;
18+ prePatch = ι;
19+ src = κ;
20+ version = String;
21+ } ->
22+ λ,
23+ γ.optionalString = β -> String -> ι,
24+ μ.optional = ν -> ξ -> θ,
25+ ο.darwin = [η],
26+ ο.licenses = π,
27+ ο.linux = [η],
28+ ο.maggesi = ζ,
29+ ο.maintainers = ρ,
30+ ο.platforms = σ,
31+ π.lgpl21 = ε
32+) =>
33+{ autoreconfHook = ξ;
34+ fetchFromGitHub =
35+ {owner = String; repo = String; rev = String; sha256 = String;} -> κ;
36+ gmp = δ;
37+ libffi = δ;
38+ stdenv = α;
39+} ->
40+λ
test/golden/importless/5.7.x.txtnew file+65
@@ -0,0 +1,65 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ.
2+( α.isDarwin = β,
3+ α.isLinux = γ,
4+ α.lib = δ,
5+ α.mkDerivation =
6+ { CXXFLAGS = String;
7+ NIX_LDFLAGS = ε;
8+ buildInputs = [ζ];
9+ cmakeFlags = [String];
10+ meta =
11+ { description = String;
12+ homepage = String;
13+ license = [η];
14+ platforms = θ;
15+ };
16+ nativeBuildInputs = [ι];
17+ outputs = [String];
18+ passthru =
19+ {client = κ; connector-c = κ; mysqlVersion = String; server = κ;};
20+ pname = String;
21+ postInstall = String;
22+ preConfigure = λ;
23+ prePatch = String;
24+ src = μ;
25+ version = String;
26+ } ->
27+ κ,
28+ δ.optional = β -> String -> λ,
29+ ν.artistic1 = η,
30+ ν.bsd0 = η,
31+ ν.bsd2 = η,
32+ ν.bsd3 = η,
33+ ν.bsdOriginal = η,
34+ ν.gpl2 = η,
35+ ν.lgpl2 = η,
36+ ν.lgpl21 = η,
37+ ν.licenses = ξ,
38+ ν.mit = η,
39+ ν.platforms = ο,
40+ ν.publicDomain = η,
41+ π.zlib = η,
42+ ο.unix = θ,
43+ ρ.optionals = σ -> [τ] -> [ζ],
44+ υ.optionalString = γ -> String -> ε
45+) =>
46+{ CoreServices = τ;
47+ bison = ι;
48+ boost = ζ;
49+ cctools = τ;
50+ cmake = ι;
51+ developer_cmds = τ;
52+ fetchurl = {sha256 = String; url = String;} -> μ;
53+ libedit = ζ;
54+ libevent = ζ;
55+ lz4 = ζ;
56+ ncurses = ζ;
57+ openssl = ζ;
58+ perl = τ;
59+ pkgconfig = ι;
60+ protobuf = ζ;
61+ readline = ζ;
62+ stdenv = α;
63+ zlib = ζ;
64+} ->
65+κ
test/golden/importless/5.txtnew file+30
@@ -0,0 +1,30 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.isx86_64 = β,
3+ α.lib = γ,
4+ α.mkDerivation =
5+ { NIX_CFLAGS_COMPILE = [String];
6+ buildInputs = [δ];
7+ configureFlags = ε;
8+ hardeningDisable = [String];
9+ meta =
10+ { broken = Bool;
11+ description = String;
12+ license = ζ;
13+ maintainers = [η];
14+ platforms = θ;
15+ };
16+ pname = String;
17+ src = ι;
18+ version = String;
19+ } ->
20+ κ,
21+ γ.licenses = λ,
22+ γ.maintainers = μ,
23+ γ.platforms = ν,
24+ λ.gpl2Plus = ζ,
25+ μ.raskin = η,
26+ ν.linux = θ,
27+ ξ.optional = β -> String -> ε
28+) =>
29+{allegro = δ; fetchurl = {sha256 = String; url = String;} -> ι; stdenv = α;} ->
30+κ
test/golden/importless/5.x.txtnew file+33
@@ -0,0 +1,33 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ dontUseCmakeBuildDir = Bool;
6+ meta =
7+ { description = String;
8+ homepage = String;
9+ license = δ;
10+ longDescription = String;
11+ platforms = ε;
12+ };
13+ nativeBuildInputs = [ζ];
14+ pname = String;
15+ src = η;
16+ version = String;
17+ } ->
18+ θ,
19+ β.licenses = ι,
20+ β.platforms = κ,
21+ ι.lgpl21 = δ,
22+ κ.all = ε
23+) =>
24+{ cmake = γ;
25+ fetchFromGitHub =
26+ {owner = String; repo = String; rev = String; sha256 = String;} -> η;
27+ libdiscid = γ;
28+ libxml2 = γ;
29+ neon = γ;
30+ pkgconfig = ζ;
31+ stdenv = α;
32+} ->
33+θ
test/golden/importless/6.3.txtnew file+32
@@ -0,0 +1,32 @@
1+∀ β γ δ ε ζ η θ ι κ.
2+(β.lib = γ, γ.licenses = δ, γ.maintainers = ε, δ.bsd2 = ζ) => { betamax = η;
3+ betamax-matchers = η;
4+ betamax-serializers = η;
5+ buildPythonPackage =
6+ { checkInputs = [η];
7+ meta =
8+ { description = String;
9+ homepage = String;
10+ license = ζ;
11+ maintainers = ∀ α. [α];
12+ };
13+ nativeBuildInputs = [θ];
14+ pname = String;
15+ propagatedBuildInputs = [η];
16+ src = ι;
17+ version = String;
18+ } ->
19+ κ;
20+ fetchFromGitHub =
21+ {owner = String; repo = String; rev = String; sha256 = String;} -> ι;
22+ mock = η;
23+ prawcore = η;
24+ pytest = η;
25+ pytestrunner = θ;
26+ requests-toolbelt = η;
27+ six = η;
28+ stdenv = β;
29+ update_checker = η;
30+ websocket_client = η;
31+} ->
32+κ
test/golden/importless/6.30.163.46.txtnew file+26
@@ -0,0 +1,26 @@
1+∀ α β γ δ ε ζ η.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ installPhase = String;
6+ meta =
7+ { description = String;
8+ downloadPage = String;
9+ homepage = String;
10+ license = δ;
11+ };
12+ phases = [String];
13+ pname = String;
14+ sourceRoot = String;
15+ src = ε;
16+ version = String;
17+ } ->
18+ ζ,
19+ β.licenses = η,
20+ η.unfree = δ
21+) =>
22+{ b43FirmwareCutter = γ;
23+ fetchurl = {sha256 = String; url = String;} -> ε;
24+ stdenv = α;
25+} ->
26+ζ
test/golden/importless/6.txt+15−1
@@ -1 +1,15 @@
1−∀ α β γ. { Foundation = α; callPackage = Path -> { Foundation = α; enableParallelBuilding = Bool; libobjc = β; sha256 = String; srcArchiveSuffix = String; version = String } -> γ; libobjc = β } -> γ
1+∀ α β γ.
2+{ Foundation = α;
3+ callPackage =
4+ String ->
5+ { Foundation = α;
6+ enableParallelBuilding = Bool;
7+ libobjc = β;
8+ sha256 = String;
9+ srcArchiveSuffix = String;
10+ version = String;
11+ } ->
12+ γ;
13+ libobjc = β;
14+} ->
15+γ
test/golden/importless/6.x.txtnew file+27
@@ -0,0 +1,27 @@
1+∀ α β γ δ ε ζ η θ ι.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { CPP = String;
5+ buildInputs = [γ];
6+ configureFlags = [String];
7+ meta =
8+ {description = String; homepage = String; license = δ; platforms = ε;};
9+ name = String;
10+ outputs = [String];
11+ postInstall = String;
12+ src = ζ;
13+ } ->
14+ η,
15+ β.licenses = θ,
16+ β.platforms = ι,
17+ θ.gpl2 = δ,
18+ ι.linux = ε
19+) =>
20+{ fetchurl = {sha256 = String; url = String;} -> ζ;
21+ gawk = γ;
22+ libxml2 = γ;
23+ openssl = γ;
24+ readline = γ;
25+ stdenv = α;
26+} ->
27+η
test/golden/importless/60.txtnew file+53
@@ -0,0 +1,53 @@
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ.
2+( β.buildPlatform = γ,
3+ β.hostPlatform = γ,
4+ β.lib = δ,
5+ β.mkDerivation =
6+ { buildInputs = [ε];
7+ configureFlags = [String];
8+ configurePlatforms = ∀ α. [α];
9+ depsBuildBuild = [ζ];
10+ enableParallelBuilding = Bool;
11+ meta =
12+ { description = String;
13+ homepage = String;
14+ license = η;
15+ maintainers = [θ];
16+ platforms = ι;
17+ };
18+ nativeBuildInputs = [κ];
19+ outputs = [String];
20+ patches = [λ];
21+ pname = String;
22+ preConfigure = String;
23+ preFixup = String;
24+ setOutputFlags = Bool;
25+ src = μ;
26+ version = String;
27+ } ->
28+ ν,
29+ ξ.stdenv = ο,
30+ δ.licenses = π,
31+ δ.maintainers = ρ,
32+ δ.optionals = Bool -> [String] -> [String],
33+ δ.platforms = σ,
34+ π.gpl2 = η,
35+ ρ.abbradar = θ,
36+ σ.linux = ι,
37+ ο.cc = ζ
38+) =>
39+{ autoconf213 = κ;
40+ buildPackages = ξ;
41+ fetchpatch = {sha256 = String; url = String;} -> λ;
42+ fetchurl = {sha256 = String; url = String;} -> μ;
43+ icu = ε;
44+ perl = κ;
45+ pkgconfig = κ;
46+ python2 = κ;
47+ readline = ε;
48+ stdenv = β;
49+ which = κ;
50+ zip = κ;
51+ zlib = ε;
52+} ->
53+ν
test/golden/importless/68.txtnew file+60
@@ -0,0 +1,60 @@
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω.
2+( β.buildPlatform = γ,
3+ β.hostPlatform = γ,
4+ β.lib = δ,
5+ β.mkDerivation =
6+ { buildInputs = [ε];
7+ configureFlags = [String];
8+ configurePlatforms = ∀ α. [α];
9+ depsBuildBuild = [ζ];
10+ enableParallelBuilding = Bool;
11+ meta =
12+ { description = String;
13+ homepage = String;
14+ license = η;
15+ maintainers = [θ];
16+ platforms = ι;
17+ };
18+ nativeBuildInputs = [κ];
19+ outputs = [String];
20+ pname = String;
21+ preConfigure = String;
22+ preFixup = String;
23+ setOutputFlags = Bool;
24+ src = λ;
25+ version = String;
26+ } ->
27+ μ,
28+ ν.python3 = ξ,
29+ ν.stdenv = ο,
30+ π.llvm = κ,
31+ ρ.six = σ,
32+ δ.licenses = τ,
33+ δ.maintainers = υ,
34+ δ.optionals = Bool -> [String] -> [String],
35+ δ.platforms = φ,
36+ τ.gpl2 = η,
37+ υ.abbradar = θ,
38+ φ.linux = ι,
39+ ξ.withPackages = (ρ -> [σ]) -> χ,
40+ ο.cc = ζ
41+) =>
42+{ autoconf213 = κ;
43+ buildPackages = ν;
44+ cargo = κ;
45+ fetchpatch = ψ;
46+ fetchurl = {sha256 = String; url = String;} -> λ;
47+ icu = ε;
48+ llvmPackages = π;
49+ perl = κ;
50+ pkgconfig = κ;
51+ python2 = κ;
52+ python3 = ω;
53+ readline = ε;
54+ rustc = κ;
55+ stdenv = β;
56+ which = κ;
57+ zip = κ;
58+ zlib = ε;
59+} ->
60+μ
test/golden/importless/68_sources.txt+3−1
@@ -1 +1,3 @@
1−{ sources = [{ arch = String; locale = String; sha256 = String; url = String }]; version = String }
1+{ sources = [{arch = String; locale = String; sha256 = String; url = String;}];
2+ version = String;
3+}
test/golden/importless/6_qt4.txtnew file+39
@@ -0,0 +1,39 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ.
2+( α.isDarwin = β,
3+ α.lib = γ,
4+ α.mkDerivation =
5+ { buildInputs = [δ];
6+ enableParallelBuilding = Bool;
7+ meta =
8+ { branch = String;
9+ description = String;
10+ homepage = String;
11+ license = ε;
12+ maintainers = [ζ];
13+ platforms = [η];
14+ };
15+ name = String;
16+ nativeBuildInputs = [θ];
17+ postPatch = String;
18+ preFixup = ι;
19+ qmakeFlags = [String];
20+ src = κ;
21+ } ->
22+ λ,
23+ γ.optionalString = β -> String -> ι,
24+ μ.maintainers = ν,
25+ μ.platforms = ξ,
26+ ο.licenses = π,
27+ π.qwt = ε,
28+ ν.bjornfor = ζ,
29+ ξ.linux = [η],
30+ ρ.darwin = [η],
31+ σ.optionals = τ -> [υ] -> [δ]
32+) =>
33+{ AGL = υ;
34+ fetchurl = {sha256 = String; url = String;} -> κ;
35+ qmake4Hook = θ;
36+ qt4 = δ;
37+ stdenv = α;
38+} ->
39+λ
test/golden/importless/7.3.txtnew file+45
@@ -0,0 +1,45 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ.
2+( α.isDarwin = β,
3+ α.lib = γ,
4+ α.mkDerivation =
5+ { buildInputs = [δ];
6+ commit = String;
7+ meta =
8+ { description = String;
9+ homepage = String;
10+ license = ε;
11+ maintainers = [ζ];
12+ platforms = η;
13+ };
14+ nativeBuildInputs = [θ];
15+ pname = String;
16+ src = ι;
17+ version = String;
18+ } ->
19+ κ,
20+ λ.apple_sdk = μ,
21+ γ.amiloradovsky = ζ,
22+ γ.licenses = ν,
23+ γ.maintainers = ξ,
24+ γ.platforms = ο,
25+ ν.lgpl21 = ε,
26+ ο.all = η,
27+ π.optional = β -> ρ -> [δ],
28+ μ.frameworks = σ,
29+ σ.Cocoa = ρ
30+) =>
31+{ cmake = θ;
32+ darwin = λ;
33+ fetchpatch = τ;
34+ fetchurl = {name = String; sha256 = String; url = String;} -> ι;
35+ libGL = δ;
36+ libGLU = δ;
37+ libXext = δ;
38+ libXi = δ;
39+ libXmu = δ;
40+ ninja = θ;
41+ stdenv = α;
42+ tcl = δ;
43+ tk = δ;
44+} ->
45+κ
test/golden/importless/7.6.6.txtnew file+46
@@ -0,0 +1,46 @@
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ.
2+( β.optional = γ -> String -> [δ],
3+ ε.buildPlatform = ζ,
4+ ε.hostPlatform = η,
5+ ε.isLinux = θ,
6+ ε.lib = ι,
7+ ε.mkDerivation =
8+ { buildInputs = [κ];
9+ configureFlags = [String];
10+ doCheck = Bool;
11+ dontStrip = Bool;
12+ enableParallelBuilding = Bool;
13+ meta =
14+ { description = String;
15+ homepage = String;
16+ license = String;
17+ longDescription = String;
18+ maintainers = ∀ α. [α];
19+ platforms = λ;
20+ };
21+ nativeBuildInputs = [μ];
22+ outputs = [String];
23+ patches = [δ];
24+ pname = String;
25+ preConfigure = ν;
26+ separateDebugInfo = θ;
27+ src = ξ;
28+ version = String;
29+ } ->
30+ ο,
31+ ι.optionalString = Bool -> String -> ν,
32+ η.libc = String,
33+ π.isRiscV = γ,
34+ ρ.platforms = σ,
35+ σ.all = λ,
36+ τ.libc = String
37+) =>
38+{ enableLargeConfig = Bool;
39+ fetchpatch = {sha256 = String; url = String;} -> δ;
40+ fetchurl = {sha256 = String; urls = [String];} -> ξ;
41+ lib = β;
42+ libatomic_ops = κ;
43+ pkgconfig = μ;
44+ stdenv = ε;
45+} ->
46+ο
test/golden/importless/7.x.txtnew file+28
@@ -0,0 +1,28 @@
1+∀ α β γ δ ε ζ η.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { CPP = String;
5+ buildInputs = [γ];
6+ configureFlags = [String];
7+ meta =
8+ { description = String;
9+ homepage = String;
10+ license = δ;
11+ platforms = [String];
12+ };
13+ name = String;
14+ postInstall = String;
15+ src = ε;
16+ } ->
17+ ζ,
18+ β.licenses = η,
19+ η.gpl2 = δ
20+) =>
21+{ fetchurl = {sha256 = String; url = String;} -> ε;
22+ gawk = γ;
23+ libxml2 = γ;
24+ openssl = γ;
25+ readline = γ;
26+ stdenv = α;
27+} ->
28+ζ
test/golden/importless/78.txtnew file+60
@@ -0,0 +1,60 @@
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ.
2+( β.buildPlatform = γ,
3+ β.hostPlatform = γ,
4+ β.lib = δ,
5+ β.mkDerivation =
6+ { buildInputs = [ε];
7+ configureFlags = [String];
8+ configurePlatforms = ∀ α. [α];
9+ depsBuildBuild = [ζ];
10+ enableParallelBuilding = Bool;
11+ meta =
12+ { description = String;
13+ homepage = String;
14+ license = η;
15+ maintainers = [θ];
16+ platforms = ι;
17+ };
18+ nativeBuildInputs = [κ];
19+ outputs = [String];
20+ patches = [λ];
21+ pname = String;
22+ preConfigure = String;
23+ preFixup = String;
24+ setOutputFlags = Bool;
25+ src = μ;
26+ version = String;
27+ } ->
28+ ν,
29+ ξ.stdenv = ο,
30+ π.llvm = κ,
31+ δ.licenses = ρ,
32+ δ.maintainers = σ,
33+ δ.platforms = τ,
34+ ρ.gpl2 = η,
35+ σ.abbradar = θ,
36+ τ.linux = ι,
37+ υ.optionals = Bool -> [String] -> [String],
38+ ο.cc = ζ
39+) =>
40+{ autoconf213 = κ;
41+ buildPackages = ξ;
42+ cargo = κ;
43+ fetchpatch = {sha256 = String; url = String;} -> λ;
44+ fetchurl = {sha256 = String; url = String;} -> μ;
45+ icu67 = ε;
46+ llvmPackages = π;
47+ nspr = ε;
48+ perl = κ;
49+ pkgconfig = κ;
50+ python3 = κ;
51+ readline = ε;
52+ rust-cbindgen = κ;
53+ rustc = κ;
54+ stdenv = β;
55+ which = κ;
56+ yasm = κ;
57+ zip = κ;
58+ zlib = ε;
59+} ->
60+ν
test/golden/importless/8.0.x.txtnew file+56
@@ -0,0 +1,56 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ.
2+( α.licenses = β,
3+ α.maintainers = γ,
4+ α.optionals = δ -> [ε] -> [ζ],
5+ α.orivej = η,
6+ α.platforms = θ,
7+ ι.isDarwin = κ,
8+ ι.isLinux = δ,
9+ ι.mkDerivation =
10+ { buildInputs = [ζ];
11+ cmakeFlags = [String];
12+ meta =
13+ { description = String;
14+ homepage = String;
15+ license = λ;
16+ maintainers = [η];
17+ platforms = μ;
18+ };
19+ nativeBuildInputs = [ν];
20+ outputs = [String];
21+ passthru =
22+ {client = ξ; connector-c = ξ; mysqlVersion = String; server = ξ;};
23+ patches = [String];
24+ pname = String;
25+ postInstall = String;
26+ src = ο;
27+ version = String;
28+ } ->
29+ ξ,
30+ β.gpl2 = λ,
31+ θ.unix = μ
32+) =>
33+{ CoreServices = π;
34+ bison = ν;
35+ boost = ζ;
36+ cctools = π;
37+ cmake = ν;
38+ developer_cmds = π;
39+ fetchurl = {sha256 = String; url = String;} -> ο;
40+ icu = ζ;
41+ lib = α;
42+ libedit = ζ;
43+ libevent = ζ;
44+ lz4 = ζ;
45+ ncurses = ζ;
46+ numactl = ε;
47+ openssl = ζ;
48+ perl = ρ;
49+ pkgconfig = ν;
50+ protobuf = ζ;
51+ re2 = ζ;
52+ readline = ζ;
53+ stdenv = ι;
54+ zlib = ζ;
55+} ->
56+ξ
test/golden/importless/8.5.txtnew file+7
@@ -0,0 +1,7 @@
1+∀ α β γ δ ε.
2+( α // {src = β;} ~ γ,
3+ α.callPackage = String -> γ -> δ,
4+ α.fetchurl = {sha256 = String; url = String;} -> β,
5+ α.tcl = ε
6+) =>
7+α -> δ
test/golden/importless/8.6.txtnew file+11
@@ -0,0 +1,11 @@
1+∀ α β γ δ ε ζ η θ.
2+( α // {patches = [String]; src = β;} ~ γ,
3+ α.callPackage = String -> γ -> δ,
4+ α.fetchurl = {sha256 = String; url = String;} -> β,
5+ α.stdenv = ε,
6+ α.tcl = ζ,
7+ ε.isDarwin = η,
8+ ε.lib = θ,
9+ θ.optionals = η -> [String] -> [String]
10+) =>
11+α -> δ
test/golden/importless/825_40_1.txt+6−1
@@ -1 +1,6 @@
1−∀ α β. { appleDerivation = { installPhase = String; nativeBuildInputs = [α] } -> β; ed = α; unifdef = α } -> β
1+∀ α β.
2+{ appleDerivation = {installPhase = String; nativeBuildInputs = [α];} -> β;
3+ ed = α;
4+ unifdef = α;
5+} ->
6+β
test/golden/importless/8_0.txtnew file+11
@@ -0,0 +1,11 @@
1+∀ α β γ.
2+( α //
3+ { extraPatches = [String];
4+ extraPostInstall = String;
5+ sha256 = String;
6+ version = String;
7+ } ~
8+ β,
9+ α.callPackage = String -> β -> γ
10+) =>
11+α -> γ
test/golden/importless/9.2.txtnew file+43
@@ -0,0 +1,43 @@
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π.
2+( β.lib = γ,
3+ δ.mkDerivation =
4+ { alt_wrapper = String;
5+ buildInputs = [ε];
6+ builder = String;
7+ cctools_port = ζ;
8+ ldid = ζ;
9+ meta =
10+ { description = String;
11+ hydraPlatforms = ∀ α. [α];
12+ license = η;
13+ maintainers = [θ];
14+ platforms = ι;
15+ };
16+ name = String;
17+ sdk = String;
18+ src = κ;
19+ version = String;
20+ } ->
21+ λ,
22+ γ.licenses = μ,
23+ μ.gpl2 = η,
24+ ν.maintainers = ξ,
25+ ξ.fxfactorial = θ,
26+ ο.platforms = π,
27+ π.linux = ι
28+) =>
29+{ autoconf = ε;
30+ automake = ε;
31+ clang = ε;
32+ clangStdenv = δ;
33+ fetchFromGitHub =
34+ {owner = String; repo = String; rev = String; sha256 = String;} -> ζ;
35+ git = ε;
36+ gnutar = ε;
37+ libtool = ε;
38+ openssl = ε;
39+ requireFile = {message = String; name = String; sha256 = String;} -> κ;
40+ stdenv = β;
41+ xz = ε;
42+} ->
43+λ
test/golden/importless/9.x.txtnew file+67
@@ -0,0 +1,67 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1.
2+( α.isDarwin = β,
3+ α.isLinux = γ,
4+ α.lib = δ,
5+ δ.licenses = ε,
6+ δ.maintainers = ζ,
7+ δ.optional = Bool -> [Null] -> [η],
8+ δ.optionals = Bool -> [String] -> [String],
9+ δ.platforms = θ,
10+ δ.tfmoraes = ι,
11+ δ.unix = κ,
12+ λ.optionalString = μ,
13+ ν.optionals = β -> [ξ] -> ο,
14+ π.optionalString = ρ -> String -> σ,
15+ ε.bsd3 = τ
16+) =>
17+{ ApplicationServices = υ;
18+ CFNetwork = υ;
19+ Cocoa = υ;
20+ CoreServices = υ;
21+ CoreText = υ;
22+ DiskArbitration = υ;
23+ GLUT = υ;
24+ IOKit = υ;
25+ IOSurface = υ;
26+ ImageIO = υ;
27+ OpenGL = υ;
28+ Security = υ;
29+ cmake = φ;
30+ enablePython = Bool;
31+ enableQt = Bool;
32+ fetchpatch = χ;
33+ fetchurl = {sha256 = String; url = String;} -> ψ;
34+ libGL = ω;
35+ libGLU = ω;
36+ libX11 = ω;
37+ libXt = ω;
38+ libobjc = ξ;
39+ libtiff = η;
40+ mkDerivation =
41+ { buildInputs = [η];
42+ cmakeFlags = [String];
43+ enableParallelBuilding = Bool;
44+ meta =
45+ { description = String;
46+ homepage = String;
47+ license = τ;
48+ maintainers = [ι];
49+ platforms = κ;
50+ };
51+ name = String;
52+ nativeBuildInputs = [φ];
53+ postPatch = σ;
54+ preBuild = String;
55+ propagatedBuildInputs = ο;
56+ src = ψ;
57+ } ->
58+ α1;
59+ python = Null;
60+ qtbase = β1;
61+ qttools = β1;
62+ qtx11extras = β1;
63+ stdenv = α;
64+ xorgproto = ω;
65+ xpc = υ;
66+} ->
67+α1
test/golden/importless/Cargo.txtnew file+55
@@ -0,0 +1,55 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ.
2+( α.isDarwin = β,
3+ α.lib = γ,
4+ δ.buildRustPackage =
5+ { RUSTC_BOOTSTRAP = Number;
6+ buildAndTestSubdir = String;
7+ buildInputs = [ε];
8+ cargoVendorDir = String;
9+ checkPhase = String;
10+ doCheck = Bool;
11+ dontUpdateAutotoolsGnuConfigScripts = Bool;
12+ meta =
13+ { description = String;
14+ homepage = String;
15+ license = [ζ];
16+ maintainers = [η];
17+ platforms = θ;
18+ };
19+ name = String;
20+ nativeBuildInputs = [ι];
21+ passthru = {rustc = κ;};
22+ postInstall = String;
23+ src = λ;
24+ version = μ;
25+ } ->
26+ ν,
27+ κ.src = λ,
28+ κ.version = μ,
29+ γ.optionals = β -> [ξ] -> [ε],
30+ ο.licenses = π,
31+ ο.maintainers = ρ,
32+ ο.platforms = σ,
33+ ο.retrry = η,
34+ π.mit = ζ,
35+ τ.asl20 = ζ,
36+ σ.unix = θ
37+) =>
38+{ CoreFoundation = ξ;
39+ Security = ξ;
40+ cacert = ε;
41+ cmake = ι;
42+ curl = ε;
43+ file = ε;
44+ installShellFiles = ι;
45+ libiconv = ξ;
46+ makeWrapper = ι;
47+ openssl = ε;
48+ pkgconfig = ι;
49+ python3 = ε;
50+ rustPlatform = δ;
51+ rustc = κ;
52+ stdenv = α;
53+ zlib = ε;
54+} ->
55+ν
test/golden/importless/LASzip2.txtnew file+24
@@ -0,0 +1,24 @@
1+∀ α β γ δ ε ζ η θ ι κ λ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { meta =
5+ { description = String;
6+ homepage = String;
7+ license = γ;
8+ maintainers = [δ];
9+ platforms = ε;
10+ };
11+ nativeBuildInputs = [ζ];
12+ pname = String;
13+ src = η;
14+ version = String;
15+ } ->
16+ θ,
17+ β.licenses = ι,
18+ β.maintainers = κ,
19+ β.platforms = λ,
20+ ι.lgpl2 = γ,
21+ κ.michelk = δ,
22+ λ.unix = ε
23+) =>
24+{cmake = ζ; fetchurl = {sha256 = String; url = String;} -> η; stdenv = α;} -> θ
test/golden/importless/Prelude.txtnew file+27
@@ -0,0 +1,27 @@
1+∀ α β γ δ ε ζ.
2+( α.mapAttrs =
3+ (β -> {rev = γ; sha256 = δ;} -> ε) ->
4+ { 10.0.0 = {rev = String; sha256 = String;};
5+ 11.0.0 = {rev = String; sha256 = String;};
6+ 11.1.0 = {rev = String; sha256 = String;};
7+ 12.0.0 = {rev = String; sha256 = String;};
8+ 13.0.0 = {rev = String; sha256 = String;};
9+ 7.0.0 = {rev = String; sha256 = String;};
10+ 8.0.0 = {rev = String; sha256 = String;};
11+ 9.0.0 = {rev = String; sha256 = String;};
12+ } ->
13+ ζ
14+) =>
15+{ buildDhallGitHubPackage =
16+ { directory = String;
17+ file = String;
18+ name = String;
19+ owner = String;
20+ repo = String;
21+ rev = γ;
22+ sha256 = δ;
23+ } ->
24+ ε;
25+ lib = α;
26+} ->
27+ζ
test/golden/importless/R16B02-basho.txtnew file+34
@@ -0,0 +1,34 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.fetchFromGitHub =
3+ {owner = String; repo = String; rev = String; sha256 = String;} -> β,
4+ α.fetchurl = {sha256 = String; url = String;} -> γ,
5+ α.stdenv = δ,
6+ δ.lib = ε,
7+ ε.licenses = ζ,
8+ ζ.asl20 = η,
9+ θ.lib = ι,
10+ ι.maintainers = κ,
11+ κ.mdaiter = λ
12+) =>
13+{ mkDerivation =
14+ { baseName = String;
15+ enableHipe = Bool;
16+ installTargets = String;
17+ meta =
18+ { description = String;
19+ homepage = String;
20+ knownVulnerabilities = [String];
21+ license = η;
22+ longDescription = String;
23+ maintainers = [λ];
24+ platforms = [String];
25+ };
26+ postInstall = String;
27+ preConfigure = String;
28+ src = β;
29+ version = String;
30+ } ->
31+ μ;
32+ pkgs = α;
33+} ->
34+μ
test/golden/importless/R18.txt+5−1
@@ -1 +1,5 @@
1−∀ α β. { fetchpatch = { sha256 = String; url = String } -> α; mkDerivation = { patches = [α]; sha256 = String; version = String } -> β } -> β
1+∀ α β.
2+{ fetchpatch = {sha256 = String; url = String;} -> α;
3+ mkDerivation = {patches = [α]; sha256 = String; version = String;} -> β;
4+} ->
5+β
test/golden/importless/R19.txt+6−1
@@ -1 +1,6 @@
1−∀ α β. { fetchpatch = { name = String; sha256 = String; url = String } -> α; mkDerivation = { patches = [α]; prePatch = String; sha256 = String; version = String } -> β } -> β
1+∀ α β.
2+{ fetchpatch = {name = String; sha256 = String; url = String;} -> α;
3+ mkDerivation =
4+ {patches = [α]; prePatch = String; sha256 = String; version = String;} -> β;
5+} ->
6+β
test/golden/importless/R20.txt+4−1
@@ -1 +1,4 @@
1−∀ α. { mkDerivation = { prePatch = String; sha256 = String; version = String } -> α } -> α
1+∀ α.
2+{ mkDerivation = {prePatch = String; sha256 = String; version = String;} -> α;
3+} ->
4+α
test/golden/importless/R21.txt+4−1
@@ -1 +1,4 @@
1−∀ α. { mkDerivation = { prePatch = String; sha256 = String; version = String } -> α } -> α
1+∀ α.
2+{ mkDerivation = {prePatch = String; sha256 = String; version = String;} -> α;
3+} ->
4+α
test/golden/importless/_3bmd.txtnew file+16
@@ -0,0 +1,16 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.esrap = γ,
4+ β.fetchurl = {sha256 = String; url = String;} -> δ,
5+ β.split-sequence = γ
6+) =>
7+β ->
8+{ asdFilesToKeep = [String];
9+ baseName = String;
10+ deps = [γ];
11+ description = String;
12+ overrides = ∀ α. α -> α;
13+ packageName = String;
14+ src = δ;
15+ version = String;
16+}
test/golden/importless/abnf.txtnew file+16
@@ -0,0 +1,16 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.cl-ppcre = γ,
4+ β.esrap = γ,
5+ β.fetchurl = {sha256 = String; url = String;} -> δ
6+) =>
7+β ->
8+{ asdFilesToKeep = [String];
9+ baseName = String;
10+ deps = [γ];
11+ description = String;
12+ overrides = ∀ α. α -> α;
13+ packageName = String;
14+ src = δ;
15+ version = String;
16+}
test/golden/importless/account-service-util.txtnew file+28
@@ -0,0 +1,28 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.pkgs = β,
3+ γ.maintainers = δ,
4+ γ.worldofpeace = ε,
5+ β.buildPythonApplication =
6+ { buildInputs = [ζ];
7+ dontUnpack = Bool;
8+ format = String;
9+ installPhase = String;
10+ meta = {maintainers = [ε];};
11+ name = String;
12+ nativeBuildInputs = [η];
13+ propagatedBuildInputs = [θ];
14+ src = String;
15+ strictDeps = Bool;
16+ } ->
17+ ι,
18+ κ.ordered-set = θ,
19+ κ.pygobject3 = θ
20+) =>
21+{ accountsservice = ζ;
22+ glib = ζ;
23+ gobject-introspection = η;
24+ lib = γ;
25+ python3 = α;
26+ wrapGAppsHook = η;
27+} ->
28+ι
test/golden/importless/accountsservice.txtnew file+32
@@ -0,0 +1,32 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.services = ε,
6+ β.users = ζ,
7+ γ.mkIf =
8+ η ->
9+ { environment = {pathsToLink = [String]; systemPackages = [θ];};
10+ services = {dbus = {packages = [ι];};};
11+ systemd = {packages = [κ]; services = {accounts-daemon = λ;};};
12+ } ->
13+ μ,
14+ γ.mkOption = {default = Bool; description = String; type = ν;} -> ξ,
15+ γ.optionalAttrs = Bool -> {environment = {NIXOS_USERS_PURE = String;};} -> ο,
16+ γ.recursiveUpdate =
17+ {environment = {XDG_DATA_DIRS = String;}; wantedBy = [String];} -> ο -> λ,
18+ γ.teams = π,
19+ γ.types = ρ,
20+ δ.accountsservice = θ,
21+ ε.accounts-daemon = σ,
22+ σ.enable = η,
23+ ζ.mutableUsers = Bool,
24+ π.freedesktop = τ,
25+ τ.members = υ,
26+ ρ.bool = ν
27+) =>
28+α ->
29+{ config = μ;
30+ meta = {maintainers = υ;};
31+ options = {services = {accounts-daemon = {enable = ξ;};};};
32+}
test/golden/importless/acpilight.txtnew file+14
@@ -0,0 +1,14 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.hardware = ε,
6+ γ.acpilight = ζ,
7+ γ.mkIf = η -> {services = {udev = {packages = [ζ];};};} -> θ,
8+ γ.mkOption = {default = Bool; description = String; type = ι;} -> κ,
9+ γ.types = λ,
10+ ε.acpilight = μ,
11+ μ.enable = η,
12+ λ.bool = ι
13+) =>
14+α -> {config = θ; options = {hardware = {acpilight = {enable = κ;};};};}
test/golden/importless/adb.txtnew file+30
@@ -0,0 +1,30 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.programs = ε,
6+ γ.lowPrio = ζ -> η,
7+ γ.maintainers = θ,
8+ γ.mkIf =
9+ ι ->
10+ { environment = {systemPackages = [η];};
11+ services = {udev = {packages = [κ];};};
12+ users = {groups = {adbusers = {};};};
13+ } ->
14+ λ,
15+ γ.mkOption = {default = Bool; description = String; type = μ;} -> ν,
16+ γ.types = ξ,
17+ δ.android-udev-rules = κ,
18+ δ.androidenv = ο,
19+ ε.adb = π,
20+ π.enable = ι,
21+ ο.androidPkgs_9_0 = ρ,
22+ ρ.platform-tools = ζ,
23+ θ.mic92 = σ,
24+ ξ.bool = μ
25+) =>
26+α ->
27+{ config = λ;
28+ meta = {maintainers = [σ];};
29+ options = {programs = {adb = {enable = ν;};};};
30+}
test/golden/importless/addons.txt+478−1
@@ -1 +1,478 @@
1−∀ α. { fetchurl = { sha1 = String; url = String } -> α } -> { addons = { 10 = { google_apis = { archives = { all = α }; displayName = String; name = String; path = String; revision = String } }; 11 = { google_apis = { archives = { all = α }; displayName = String; name = String; path = String; revision = String } }; 12 = { google_apis = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; google_tv_addon = { archives = { all = α }; displayName = String; name = String; path = String; revision = String } }; 13 = { google_apis = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; google_tv_addon = { archives = { all = α }; displayName = String; name = String; path = String; revision = String } }; 14 = { google_apis = { archives = { all = α }; displayName = String; name = String; path = String; revision = String } }; 15 = { google_apis = { archives = { all = α }; displayName = String; name = String; path = String; revision = String } }; 16 = { google_apis = { archives = { all = α }; displayName = String; name = String; path = String; revision = String } }; 17 = { google_apis = { archives = { all = α }; displayName = String; name = String; path = String; revision = String } }; 18 = { google_apis = { archives = { all = α }; displayName = String; name = String; path = String; revision = String } }; 19 = { google_apis = { archives = { all = α }; displayName = String; name = String; path = String; revision = String } }; 21 = { google_apis = { archives = { all = α }; displayName = String; name = String; path = String; revision = String } }; 22 = { google_apis = { archives = { all = α }; displayName = String; name = String; path = String; revision = String } }; 23 = { google_apis = { archives = { all = α }; displayName = String; name = String; path = String; revision = String } }; 24 = { google_apis = { archives = { all = α }; displayName = String; name = String; path = String; revision = String } }; 25 = { google_apis = { archives = { all = α }; displayName = String; name = String; path = String; revision = String } }; 3 = { google_apis = { archives = { all = α }; displayName = String; name = String; path = String; revision = String } }; 4 = { google_apis = { archives = { all = α }; displayName = String; name = String; path = String; revision = String } }; 5 = { google_apis = { archives = { all = α }; displayName = String; name = String; path = String; revision = String } }; 6 = { google_apis = { archives = { all = α }; displayName = String; name = String; path = String; revision = String } }; 7 = { google_apis = { archives = { all = α }; displayName = String; name = String; path = String; revision = String } }; 8 = { google_apis = { archives = { all = α }; displayName = String; name = String; path = String; revision = String } }; 9 = { google_apis = { archives = { all = α }; displayName = String; name = String; path = String; revision = String } } }; extras = { extras;android;gapid;1 = { archives = { linux = α; macosx = α }; displayName = String; name = String; path = String; revision = String }; extras;android;gapid;3 = { archives = { linux = α; macosx = α }; displayName = String; name = String; path = String; revision = String }; extras;android;m2repository = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;google;Android_Emulator_Hypervisor_Driver = { archives = { }; displayName = String; name = String; path = String; revision = String }; extras;google;admob_ads_sdk = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;google;analytics_sdk_v2 = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;google;auto = { archives = { linux = α; macosx = α }; displayName = String; name = String; path = String; revision = String }; extras;google;gcm = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;google;google_play_services = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;google;google_play_services_froyo = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;google;instantapps = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;google;m2repository = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;google;market_apk_expansion = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;google;market_licensing = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;google;simulators = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;google;usb_driver = { archives = { }; displayName = String; name = String; path = String; revision = String }; extras;google;webdriver = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0 = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha4 = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha8 = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1 = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta2 = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta3 = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta4 = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta5 = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1 = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2 = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0 = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha4 = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha8 = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta1 = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta2 = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta3 = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta4 = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta5 = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 = { archives = { all = α }; displayName = String; name = String; path = String; revision = String }; extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 = { archives = { all = α }; displayName = String; name = String; path = String; revision = String } } }
1+∀ α.
2+{fetchurl = {sha1 = String; url = String;} -> α;} ->
3+{ addons =
4+ { 10 =
5+ { google_apis =
6+ { archives = {all = α;};
7+ displayName = String;
8+ name = String;
9+ path = String;
10+ revision = String;
11+ };
12+ };
13+ 11 =
14+ { google_apis =
15+ { archives = {all = α;};
16+ displayName = String;
17+ name = String;
18+ path = String;
19+ revision = String;
20+ };
21+ };
22+ 12 =
23+ { google_apis =
24+ { archives = {all = α;};
25+ displayName = String;
26+ name = String;
27+ path = String;
28+ revision = String;
29+ };
30+ google_tv_addon =
31+ { archives = {all = α;};
32+ displayName = String;
33+ name = String;
34+ path = String;
35+ revision = String;
36+ };
37+ };
38+ 13 =
39+ { google_apis =
40+ { archives = {all = α;};
41+ displayName = String;
42+ name = String;
43+ path = String;
44+ revision = String;
45+ };
46+ google_tv_addon =
47+ { archives = {all = α;};
48+ displayName = String;
49+ name = String;
50+ path = String;
51+ revision = String;
52+ };
53+ };
54+ 14 =
55+ { google_apis =
56+ { archives = {all = α;};
57+ displayName = String;
58+ name = String;
59+ path = String;
60+ revision = String;
61+ };
62+ };
63+ 15 =
64+ { google_apis =
65+ { archives = {all = α;};
66+ displayName = String;
67+ name = String;
68+ path = String;
69+ revision = String;
70+ };
71+ };
72+ 16 =
73+ { google_apis =
74+ { archives = {all = α;};
75+ displayName = String;
76+ name = String;
77+ path = String;
78+ revision = String;
79+ };
80+ };
81+ 17 =
82+ { google_apis =
83+ { archives = {all = α;};
84+ displayName = String;
85+ name = String;
86+ path = String;
87+ revision = String;
88+ };
89+ };
90+ 18 =
91+ { google_apis =
92+ { archives = {all = α;};
93+ displayName = String;
94+ name = String;
95+ path = String;
96+ revision = String;
97+ };
98+ };
99+ 19 =
100+ { google_apis =
101+ { archives = {all = α;};
102+ displayName = String;
103+ name = String;
104+ path = String;
105+ revision = String;
106+ };
107+ };
108+ 21 =
109+ { google_apis =
110+ { archives = {all = α;};
111+ displayName = String;
112+ name = String;
113+ path = String;
114+ revision = String;
115+ };
116+ };
117+ 22 =
118+ { google_apis =
119+ { archives = {all = α;};
120+ displayName = String;
121+ name = String;
122+ path = String;
123+ revision = String;
124+ };
125+ };
126+ 23 =
127+ { google_apis =
128+ { archives = {all = α;};
129+ displayName = String;
130+ name = String;
131+ path = String;
132+ revision = String;
133+ };
134+ };
135+ 24 =
136+ { google_apis =
137+ { archives = {all = α;};
138+ displayName = String;
139+ name = String;
140+ path = String;
141+ revision = String;
142+ };
143+ };
144+ 25 =
145+ { google_apis =
146+ { archives = {all = α;};
147+ displayName = String;
148+ name = String;
149+ path = String;
150+ revision = String;
151+ };
152+ };
153+ 3 =
154+ { google_apis =
155+ { archives = {all = α;};
156+ displayName = String;
157+ name = String;
158+ path = String;
159+ revision = String;
160+ };
161+ };
162+ 4 =
163+ { google_apis =
164+ { archives = {all = α;};
165+ displayName = String;
166+ name = String;
167+ path = String;
168+ revision = String;
169+ };
170+ };
171+ 5 =
172+ { google_apis =
173+ { archives = {all = α;};
174+ displayName = String;
175+ name = String;
176+ path = String;
177+ revision = String;
178+ };
179+ };
180+ 6 =
181+ { google_apis =
182+ { archives = {all = α;};
183+ displayName = String;
184+ name = String;
185+ path = String;
186+ revision = String;
187+ };
188+ };
189+ 7 =
190+ { google_apis =
191+ { archives = {all = α;};
192+ displayName = String;
193+ name = String;
194+ path = String;
195+ revision = String;
196+ };
197+ };
198+ 8 =
199+ { google_apis =
200+ { archives = {all = α;};
201+ displayName = String;
202+ name = String;
203+ path = String;
204+ revision = String;
205+ };
206+ };
207+ 9 =
208+ { google_apis =
209+ { archives = {all = α;};
210+ displayName = String;
211+ name = String;
212+ path = String;
213+ revision = String;
214+ };
215+ };
216+ };
217+ extras =
218+ { extras;android;gapid;1 =
219+ { archives = {linux = α; macosx = α;};
220+ displayName = String;
221+ name = String;
222+ path = String;
223+ revision = String;
224+ };
225+ extras;android;gapid;3 =
226+ { archives = {linux = α; macosx = α;};
227+ displayName = String;
228+ name = String;
229+ path = String;
230+ revision = String;
231+ };
232+ extras;android;m2repository =
233+ { archives = {all = α;};
234+ displayName = String;
235+ name = String;
236+ path = String;
237+ revision = String;
238+ };
239+ extras;google;Android_Emulator_Hypervisor_Driver =
240+ { archives = {};
241+ displayName = String;
242+ name = String;
243+ path = String;
244+ revision = String;
245+ };
246+ extras;google;admob_ads_sdk =
247+ { archives = {all = α;};
248+ displayName = String;
249+ name = String;
250+ path = String;
251+ revision = String;
252+ };
253+ extras;google;analytics_sdk_v2 =
254+ { archives = {all = α;};
255+ displayName = String;
256+ name = String;
257+ path = String;
258+ revision = String;
259+ };
260+ extras;google;auto =
261+ { archives = {linux = α; macosx = α;};
262+ displayName = String;
263+ name = String;
264+ path = String;
265+ revision = String;
266+ };
267+ extras;google;gcm =
268+ { archives = {all = α;};
269+ displayName = String;
270+ name = String;
271+ path = String;
272+ revision = String;
273+ };
274+ extras;google;google_play_services =
275+ { archives = {all = α;};
276+ displayName = String;
277+ name = String;
278+ path = String;
279+ revision = String;
280+ };
281+ extras;google;google_play_services_froyo =
282+ { archives = {all = α;};
283+ displayName = String;
284+ name = String;
285+ path = String;
286+ revision = String;
287+ };
288+ extras;google;instantapps =
289+ { archives = {all = α;};
290+ displayName = String;
291+ name = String;
292+ path = String;
293+ revision = String;
294+ };
295+ extras;google;m2repository =
296+ { archives = {all = α;};
297+ displayName = String;
298+ name = String;
299+ path = String;
300+ revision = String;
301+ };
302+ extras;google;market_apk_expansion =
303+ { archives = {all = α;};
304+ displayName = String;
305+ name = String;
306+ path = String;
307+ revision = String;
308+ };
309+ extras;google;market_licensing =
310+ { archives = {all = α;};
311+ displayName = String;
312+ name = String;
313+ path = String;
314+ revision = String;
315+ };
316+ extras;google;simulators =
317+ { archives = {all = α;};
318+ displayName = String;
319+ name = String;
320+ path = String;
321+ revision = String;
322+ };
323+ extras;google;usb_driver =
324+ { archives = {};
325+ displayName = String;
326+ name = String;
327+ path = String;
328+ revision = String;
329+ };
330+ extras;google;webdriver =
331+ { archives = {all = α;};
332+ displayName = String;
333+ name = String;
334+ path = String;
335+ revision = String;
336+ };
337+ extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0 =
338+ { archives = {all = α;};
339+ displayName = String;
340+ name = String;
341+ path = String;
342+ revision = String;
343+ };
344+ extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha4 =
345+ { archives = {all = α;};
346+ displayName = String;
347+ name = String;
348+ path = String;
349+ revision = String;
350+ };
351+ extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha8 =
352+ { archives = {all = α;};
353+ displayName = String;
354+ name = String;
355+ path = String;
356+ revision = String;
357+ };
358+ extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1 =
359+ { archives = {all = α;};
360+ displayName = String;
361+ name = String;
362+ path = String;
363+ revision = String;
364+ };
365+ extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta2 =
366+ { archives = {all = α;};
367+ displayName = String;
368+ name = String;
369+ path = String;
370+ revision = String;
371+ };
372+ extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta3 =
373+ { archives = {all = α;};
374+ displayName = String;
375+ name = String;
376+ path = String;
377+ revision = String;
378+ };
379+ extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta4 =
380+ { archives = {all = α;};
381+ displayName = String;
382+ name = String;
383+ path = String;
384+ revision = String;
385+ };
386+ extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta5 =
387+ { archives = {all = α;};
388+ displayName = String;
389+ name = String;
390+ path = String;
391+ revision = String;
392+ };
393+ extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1 =
394+ { archives = {all = α;};
395+ displayName = String;
396+ name = String;
397+ path = String;
398+ revision = String;
399+ };
400+ extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2 =
401+ { archives = {all = α;};
402+ displayName = String;
403+ name = String;
404+ path = String;
405+ revision = String;
406+ };
407+ extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0 =
408+ { archives = {all = α;};
409+ displayName = String;
410+ name = String;
411+ path = String;
412+ revision = String;
413+ };
414+ extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha4 =
415+ { archives = {all = α;};
416+ displayName = String;
417+ name = String;
418+ path = String;
419+ revision = String;
420+ };
421+ extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha8 =
422+ { archives = {all = α;};
423+ displayName = String;
424+ name = String;
425+ path = String;
426+ revision = String;
427+ };
428+ extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta1 =
429+ { archives = {all = α;};
430+ displayName = String;
431+ name = String;
432+ path = String;
433+ revision = String;
434+ };
435+ extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta2 =
436+ { archives = {all = α;};
437+ displayName = String;
438+ name = String;
439+ path = String;
440+ revision = String;
441+ };
442+ extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta3 =
443+ { archives = {all = α;};
444+ displayName = String;
445+ name = String;
446+ path = String;
447+ revision = String;
448+ };
449+ extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta4 =
450+ { archives = {all = α;};
451+ displayName = String;
452+ name = String;
453+ path = String;
454+ revision = String;
455+ };
456+ extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta5 =
457+ { archives = {all = α;};
458+ displayName = String;
459+ name = String;
460+ path = String;
461+ revision = String;
462+ };
463+ extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 =
464+ { archives = {all = α;};
465+ displayName = String;
466+ name = String;
467+ path = String;
468+ revision = String;
469+ };
470+ extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 =
471+ { archives = {all = α;};
472+ displayName = String;
473+ name = String;
474+ path = String;
475+ revision = String;
476+ };
477+ };
478+}
test/golden/importless/advanced.txtnew file+38
@@ -0,0 +1,38 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.lib = β,
3+ β.darwin = [γ],
4+ β.gnu = [γ],
5+ β.jfrankenau = δ,
6+ β.licenses = ε,
7+ β.linux = [γ],
8+ β.maintainers = ζ,
9+ β.platforms = η,
10+ ε.gpl3Plus = θ
11+) =>
12+{ boost = ι;
13+ cmake = κ;
14+ fetchFromGitHub =
15+ {owner = String; repo = String; rev = String; sha256 = String;} -> λ;
16+ libjpeg = ι;
17+ libpng = ι;
18+ libtiff = ι;
19+ mkDerivation =
20+ { buildInputs = [ι];
21+ meta =
22+ { description = String;
23+ homepage = String;
24+ license = θ;
25+ maintainers = [δ];
26+ platforms = [γ];
27+ };
28+ nativeBuildInputs = [κ];
29+ pname = String;
30+ src = λ;
31+ version = String;
32+ } ->
33+ μ;
34+ qtbase = ι;
35+ qttools = κ;
36+ stdenv = α;
37+} ->
38+μ
test/golden/importless/afterstep.txtnew file+24
@@ -0,0 +1,24 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.services = ε,
6+ γ.mkEnableOption = String -> ζ,
7+ γ.mkIf =
8+ η ->
9+ { environment = {systemPackages = [θ];};
10+ services = {xserver = {windowManager = {session = ι;};};};
11+ } ->
12+ κ,
13+ γ.singleton = {name = String; start = String;} -> ι,
14+ δ.afterstep = θ,
15+ ε.xserver = λ,
16+ λ.windowManager = μ,
17+ μ.afterstep = ν,
18+ ν.enable = η
19+) =>
20+α ->
21+{ config = κ;
22+ options =
23+ {services = {xserver = {windowManager = {afterstep = {enable = ζ;};};};};};
24+}
test/golden/importless/agent.txtnew file+33
@@ -0,0 +1,33 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.buildRustPackage =
3+ { buildInputs = [β];
4+ cargoSha256 = String;
5+ meta =
6+ { description = String;
7+ homepage = String;
8+ license = γ;
9+ maintainers = [δ];
10+ };
11+ nativeBuildInputs = [ε];
12+ pname = String;
13+ src = ζ;
14+ version = String;
15+ } ->
16+ η,
17+ α.licenses = θ,
18+ α.maintainers = ι,
19+ θ.mpl20 = γ,
20+ ι.rushmorem = δ
21+) =>
22+{ cmake = ε;
23+ czmq = β;
24+ fetchFromGitHub =
25+ {owner = String; repo = String; rev = String; sha256 = String;} -> ζ;
26+ lib = κ;
27+ openssl = β;
28+ pkgconfig = ε;
29+ rustPlatform = α;
30+ zeromq = β;
31+ zlib = β;
32+} ->
33+η
test/golden/importless/aggregator.txt+8−1
@@ -1 +1,8 @@
1−∀ α β γ δ. { buildEnv = { name = String; paths = α; postBuild = String } -> β; kmod = γ; modules = α; name = String; stdenvNoCC = δ } -> β
1+∀ α β γ δ.
2+{ buildEnv = {name = String; paths = α; postBuild = String;} -> β;
3+ kmod = γ;
4+ modules = α;
5+ name = String;
6+ stdenvNoCC = δ;
7+} ->
8+β
test/golden/importless/ais.txtnew file+43
@@ -0,0 +1,43 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ enableParallelBuilding = Bool;
6+ meta =
7+ { description = String;
8+ homepage = String;
9+ license = δ;
10+ maintainers = [ε];
11+ platforms = [ζ];
12+ };
13+ nativeBuildInputs = [η];
14+ pname = String;
15+ postInstall = String;
16+ src = θ;
17+ version = String;
18+ } ->
19+ ι,
20+ β.optionals = Bool -> [Null] -> [γ],
21+ κ.licenses = λ,
22+ κ.maintainers = μ,
23+ κ.mog = ε,
24+ κ.platforms = ν,
25+ λ.gpl3Plus = δ,
26+ ν.linux = [ζ],
27+ ξ.darwin = [ζ]
28+) =>
29+{ boost = γ;
30+ cmake = γ;
31+ cppunit = γ;
32+ fetchFromGitHub =
33+ {owner = String; repo = String; rev = String; sha256 = String;} -> θ;
34+ gnuradio = γ;
35+ gr-osmosdr = γ;
36+ makeWrapper = γ;
37+ pkgconfig = η;
38+ python = Null;
39+ pythonSupport = Bool;
40+ stdenv = α;
41+ swig = Null;
42+} ->
43+ι
test/golden/importless/akonadi-calendar.txtnew file+23
@@ -0,0 +1,23 @@
1+∀ α β γ δ ε ζ η.
2+(α.licenses = β, β.gpl2 = γ, β.lgpl21 = γ) => { akonadi = δ;
3+ akonadi-contacts = δ;
4+ extra-cmake-modules = ε;
5+ kcalendarcore = δ;
6+ kcalutils = δ;
7+ kcontacts = δ;
8+ kdepimTeam = ζ;
9+ kdoctools = ε;
10+ kidentitymanagement = δ;
11+ kio = δ;
12+ kmailtransport = δ;
13+ lib = α;
14+ mkDerivation =
15+ { meta = {license = [γ]; maintainers = ζ;};
16+ name = String;
17+ nativeBuildInputs = [ε];
18+ outputs = [String];
19+ propagatedBuildInputs = [δ];
20+ } ->
21+ η;
22+} ->
23+η
test/golden/importless/akonadi-contacts.txtnew file+28
@@ -0,0 +1,28 @@
1+∀ α β γ δ ε ζ η θ.
2+(α.licenses = β, β.gpl2 = γ, β.lgpl21 = γ) => { akonadi = δ;
3+ akonadi-mime = ε;
4+ extra-cmake-modules = ζ;
5+ grantlee = ε;
6+ kcontacts = ε;
7+ kdbusaddons = ε;
8+ kdepimTeam = η;
9+ ki18n = ε;
10+ kiconthemes = ε;
11+ kio = ε;
12+ kitemmodels = ε;
13+ kmime = ε;
14+ ktextwidgets = ε;
15+ lib = α;
16+ mkDerivation =
17+ { buildInputs = [ε];
18+ meta = {license = [γ]; maintainers = η;};
19+ name = String;
20+ nativeBuildInputs = [ζ];
21+ outputs = [String];
22+ propagatedBuildInputs = [δ];
23+ } ->
24+ θ;
25+ prison = ε;
26+ qtwebengine = ε;
27+} ->
28+θ
test/golden/importless/akonadi-mime.txtnew file+21
@@ -0,0 +1,21 @@
1+∀ α β γ δ ε ζ η.
2+(α.licenses = β, β.gpl2 = γ, β.lgpl21 = γ) => { akonadi = δ;
3+ extra-cmake-modules = ε;
4+ kdbusaddons = δ;
5+ kdepimTeam = ζ;
6+ ki18n = δ;
7+ kio = δ;
8+ kitemmodels = δ;
9+ kmime = δ;
10+ lib = α;
11+ mkDerivation =
12+ { buildInputs = [δ];
13+ meta = {license = [γ]; maintainers = ζ;};
14+ name = String;
15+ nativeBuildInputs = [ε];
16+ outputs = [String];
17+ } ->
18+ η;
19+ shared-mime-info = ε;
20+} ->
21+η
test/golden/importless/akonadi-notes.txtnew file+21
@@ -0,0 +1,21 @@
1+∀ α β γ δ ε ζ η.
2+(α.licenses = β, β.fdl12 = γ, β.gpl2 = γ, β.lgpl21 = γ) => { akonadi = δ;
3+ extra-cmake-modules = ε;
4+ kcompletion = δ;
5+ kdepimTeam = ζ;
6+ kdoctools = ε;
7+ ki18n = δ;
8+ kitemmodels = δ;
9+ kmime = δ;
10+ kxmlgui = δ;
11+ lib = α;
12+ mkDerivation =
13+ { buildInputs = [δ];
14+ meta = {license = [γ]; maintainers = ζ;};
15+ name = String;
16+ nativeBuildInputs = [ε];
17+ outputs = [String];
18+ } ->
19+ η;
20+} ->
21+η
test/golden/importless/akonadi-search.txtnew file+26
@@ -0,0 +1,26 @@
1+∀ α β γ δ ε ζ η θ.
2+(α.licenses = β, β.fdl12 = γ, β.gpl2 = γ, β.lgpl21 = γ) => { akonadi = δ;
3+ akonadi-mime = δ;
4+ extra-cmake-modules = ε;
5+ kcalendarcore = δ;
6+ kcmutils = ζ;
7+ kcontacts = δ;
8+ kcoreaddons = δ;
9+ kdepimTeam = η;
10+ kdoctools = ε;
11+ kmime = δ;
12+ krunner = ζ;
13+ lib = α;
14+ mkDerivation =
15+ { buildInputs = [ζ];
16+ meta = {license = [γ]; maintainers = η;};
17+ name = String;
18+ nativeBuildInputs = [ε];
19+ outputs = [String];
20+ propagatedBuildInputs = [δ];
21+ } ->
22+ θ;
23+ qtbase = δ;
24+ xapian = ζ;
25+} ->
26+θ
test/golden/importless/akonadiconsole.txtnew file+31
@@ -0,0 +1,31 @@
1+∀ α β γ δ ε ζ η.
2+(α.licenses = β, β.fdl12 = γ, β.gpl2 = γ, β.lgpl21 = γ) => { akonadi = δ;
3+ akonadi-contacts = δ;
4+ akonadi-search = δ;
5+ calendarsupport = δ;
6+ extra-cmake-modules = ε;
7+ kcalendarcore = δ;
8+ kcompletion = δ;
9+ kconfigwidgets = δ;
10+ kcontacts = δ;
11+ kdbusaddons = δ;
12+ kdepimTeam = ζ;
13+ kdoctools = ε;
14+ kitemmodels = δ;
15+ kpimtextedit = δ;
16+ ktextwidgets = δ;
17+ kxmlgui = δ;
18+ lib = α;
19+ libkdepim = δ;
20+ messagelib = δ;
21+ mkDerivation =
22+ { buildInputs = [δ];
23+ meta = {license = [γ]; maintainers = ζ;};
24+ name = String;
25+ nativeBuildInputs = [ε];
26+ } ->
27+ η;
28+ qtbase = δ;
29+ xapian = δ;
30+} ->
31+η
test/golden/importless/akregator.txtnew file+32
@@ -0,0 +1,32 @@
1+∀ α β γ δ ε ζ η.
2+(α.licenses = β, β.fdl12 = γ, β.gpl2 = γ, β.lgpl21 = γ) => { akonadi = δ;
3+ akonadi-mime = δ;
4+ extra-cmake-modules = ε;
5+ grantlee = δ;
6+ grantleetheme = δ;
7+ kcmutils = δ;
8+ kcrash = δ;
9+ kdepimTeam = ζ;
10+ kdoctools = ε;
11+ kiconthemes = δ;
12+ knotifyconfig = δ;
13+ kontactinterface = δ;
14+ kparts = δ;
15+ ktexteditor = δ;
16+ kwindowsystem = δ;
17+ lib = α;
18+ libkdepim = δ;
19+ libkleo = δ;
20+ messagelib = δ;
21+ mkDerivation =
22+ { buildInputs = [δ];
23+ meta = {license = [γ]; maintainers = ζ;};
24+ name = String;
25+ nativeBuildInputs = [ε];
26+ outputs = [String];
27+ } ->
28+ η;
29+ qtwebengine = δ;
30+ syndication = δ;
31+} ->
32+η
test/golden/importless/alexandria.txtnew file+11
@@ -0,0 +1,11 @@
1+∀ β γ.
2+(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
3+{ asdFilesToKeep = [String];
4+ baseName = String;
5+ deps = ∀ α. [α];
6+ description = String;
7+ overrides = ∀ α. α -> α;
8+ packageName = String;
9+ src = γ;
10+ version = String;
11+}
test/golden/importless/alsamixer.app.txtnew file+31
@@ -0,0 +1,31 @@
1+∀ α β γ δ ε ζ η θ ι κ λ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ installPhase = String;
6+ meta =
7+ { description = String;
8+ homepage = String;
9+ license = δ;
10+ maintainers = [ε];
11+ };
12+ name = String;
13+ nativeBuildInputs = [ζ];
14+ postUnpack = String;
15+ src = η;
16+ } ->
17+ θ,
18+ β.licenses = ι,
19+ ι.gpl2 = δ,
20+ κ.maintainers = λ,
21+ λ.bstrik = ε
22+) =>
23+{ alsaLib = γ;
24+ fetchgit = {rev = String; sha256 = String; url = String;} -> η;
25+ libX11 = γ;
26+ libXext = γ;
27+ libXpm = γ;
28+ pkgconfig = ζ;
29+ stdenv = α;
30+} ->
31+θ
test/golden/importless/alternatives-plugin.txtnew file+29
@@ -0,0 +1,29 @@
1+∀ α β γ δ ε ζ η θ ι κ λ.
2+( α.lib = β,
3+ γ.buildPythonApplication =
4+ { checkPhase = String;
5+ meta =
6+ { description = String;
7+ homepage = String;
8+ license = δ;
9+ maintainers = [ε];
10+ };
11+ nativeBuildInputs = [ζ];
12+ pname = String;
13+ src = η;
14+ version = String;
15+ } ->
16+ θ,
17+ γ.nose = ζ,
18+ β.licenses = ι,
19+ ι.mit = δ,
20+ κ.maintainers = λ,
21+ λ.aszlig = ε
22+) =>
23+{ beets = ζ;
24+ fetchFromGitHub =
25+ {owner = String; repo = String; rev = String; sha256 = String;} -> η;
26+ pythonPackages = γ;
27+ stdenv = α;
28+} ->
29+θ
test/golden/importless/amazon-init.txt+17−1
@@ -1 +1,17 @@
1−∀ α β. { config = α; pkgs = β } -> { systemd = { services = { amazon-init = { after = [String]; description = String; requires = [String]; restartIfChanged = Bool; script = String; serviceConfig = { RemainAfterExit = Bool; Type = String }; unitConfig = { X-StopOnRemoval = Bool }; wantedBy = [String] } } } }
1+∀ α β γ.
2+(α.config = β, α.pkgs = γ) => α ->
3+{ systemd =
4+ { services =
5+ { amazon-init =
6+ { after = [String];
7+ description = String;
8+ requires = [String];
9+ restartIfChanged = Bool;
10+ script = String;
11+ serviceConfig = {RemainAfterExit = Bool; Type = String;};
12+ unitConfig = {X-StopOnRemoval = Bool;};
13+ wantedBy = [String];
14+ };
15+ };
16+ };
17+}
test/golden/importless/amazon-options.txtnew file+13
@@ -0,0 +1,13 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.system = ε,
6+ γ.mkOption = {default = ζ; description = String; internal = Bool;} -> η,
7+ γ.versionAtLeast = θ -> String -> ι,
8+ δ.stdenv = κ,
9+ κ.hostPlatform = λ,
10+ λ.isAarch64 = ζ,
11+ ε.stateVersion = θ
12+) =>
13+α -> {options = {ec2 = {efi = η; hvm = μ;};};}
test/golden/importless/amd-microcode.txtnew file+16
@@ -0,0 +1,16 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.hardware = ε,
6+ γ.mkIf = ζ -> {boot = {initrd = {prepend = η;};};} -> θ,
7+ γ.mkOption = {default = Bool; description = String; type = ι;} -> κ,
8+ γ.mkOrder = Number -> [String] -> η,
9+ γ.types = λ,
10+ ε.cpu = μ,
11+ μ.amd = ν,
12+ ν.updateMicrocode = ζ,
13+ λ.bool = ι
14+) =>
15+α ->
16+{config = θ; options = {hardware = {cpu = {amd = {updateMicrocode = κ;};};};};}
test/golden/importless/amd.txtnew file+19
@@ -0,0 +1,19 @@
1+∀ α β γ δ ε ζ η θ ι.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ buildPhase = String;
6+ installPhase = String;
7+ meta =
8+ {description = String; homepage = String; license = δ; platforms = ε;};
9+ name = String;
10+ sourceRoot = String;
11+ src = ζ;
12+ } ->
13+ η,
14+ β.licenses = θ,
15+ β.platforms = ι,
16+ θ.unfreeRedistributableFirmware = δ,
17+ ι.linux = ε
18+) =>
19+{firmwareLinuxNonfree = ζ; libarchive = γ; stdenv = α;} -> η
test/golden/importless/amdgpu-pro.txtnew file+55
@@ -0,0 +1,55 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.boot = ε,
6+ β.hardware = ζ,
7+ β.lib = η,
8+ β.services = θ,
9+ γ.elem = String -> ι -> κ,
10+ γ.isYes = String -> λ,
11+ γ.mkIf =
12+ κ ->
13+ { boot =
14+ { blacklistedKernelModules = [String];
15+ extraModulePackages = [String];
16+ kernelPackages = μ;
17+ };
18+ environment =
19+ { etc =
20+ { amd/amdapfxx.blb = {source = String;};
21+ amd/amdrc = {source = String;};
22+ gbm/gbm.conf = {source = String;};
23+ };
24+ };
25+ hardware =
26+ { firmware = [String];
27+ opengl = {package = String; package32 = ν; setLdLibraryPath = Bool;};
28+ };
29+ nixpkgs = {config = {xorg = {abiCompat = String;};};};
30+ services = {xserver = {drivers = ξ;};};
31+ system =
32+ { activationScripts = {setup-amdgpu-pro = String;};
33+ requiredKernelConfig = [λ];
34+ };
35+ } ->
36+ ο,
37+ γ.optionalString = π -> String -> String,
38+ γ.singleton = {display = Bool; modules = [String]; name = String;} -> ξ,
39+ δ.linuxPackagesFor = ρ -> σ,
40+ δ.linux_4_9 = τ,
41+ δ.pkgsi686Linux = υ,
42+ δ.recurseIntoAttrs = σ -> μ,
43+ υ.linuxPackages = φ,
44+ φ.amdgpu-pro = χ,
45+ χ.override = {kernel = Null; libsOnly = Bool;} -> ν,
46+ ε.kernelPackages = ψ,
47+ ψ.amdgpu-pro = String,
48+ ζ.opengl = ω,
49+ ω.driSupport32Bit = π,
50+ τ.override = {extraConfig = String;} -> ρ,
51+ θ.xserver = α1,
52+ α1.videoDrivers = ι,
53+ η.kernelConfig = β1
54+) =>
55+α -> {config = ο;}
test/golden/importless/amdgpu.txtnew file+10
@@ -0,0 +1,10 @@
1+∀ α β γ δ ε ζ η θ.
2+( α.config = β,
3+ α.lib = γ,
4+ β.services = δ,
5+ γ.elem = String -> ε -> ζ,
6+ γ.mkIf = ζ -> {boot = {blacklistedKernelModules = [String];};} -> η,
7+ δ.xserver = θ,
8+ θ.videoDrivers = ε
9+) =>
10+α -> {config = η;}
test/golden/importless/anaphora.txtnew file+12
@@ -0,0 +1,12 @@
1+∀ β γ δ.
2+(β.fetchurl = {sha256 = String; url = String;} -> γ, β.rt = δ) => β ->
3+{ asdFilesToKeep = [String];
4+ baseName = String;
5+ deps = [δ];
6+ description = String;
7+ overrides = ∀ α. α -> α;
8+ packageName = String;
9+ parasites = [String];
10+ src = γ;
11+ version = String;
12+}
test/golden/importless/ant-bloody.txtnew file+29
@@ -0,0 +1,29 @@
1+∀ α β γ δ ε ζ η θ ι κ λ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { installPhase = String;
5+ meta =
6+ { description = String;
7+ homepage = String;
8+ license = γ;
9+ maintainers = [δ];
10+ platforms = ε;
11+ };
12+ pname = String;
13+ propagatedUserEnvPkgs = [ζ];
14+ src = η;
15+ version = String;
16+ } ->
17+ θ,
18+ β.alexarice = δ,
19+ β.licenses = ι,
20+ β.maintainers = κ,
21+ β.platforms = λ,
22+ ι.gpl3 = γ,
23+ λ.all = ε
24+) =>
25+{ fetchurl = {sha256 = String; url = String;} -> η;
26+ gtk-engine-murrine = ζ;
27+ stdenv = α;
28+} ->
29+θ
test/golden/importless/ant-dracula.txtnew file+29
@@ -0,0 +1,29 @@
1+∀ α β γ δ ε ζ η θ ι κ λ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { installPhase = String;
5+ meta =
6+ { description = String;
7+ homepage = String;
8+ license = γ;
9+ maintainers = [δ];
10+ platforms = ε;
11+ };
12+ pname = String;
13+ propagatedUserEnvPkgs = [ζ];
14+ src = η;
15+ version = String;
16+ } ->
17+ θ,
18+ β.alexarice = δ,
19+ β.licenses = ι,
20+ β.maintainers = κ,
21+ β.platforms = λ,
22+ ι.gpl3 = γ,
23+ λ.all = ε
24+) =>
25+{ fetchurl = {sha256 = String; url = String;} -> η;
26+ gtk-engine-murrine = ζ;
27+ stdenv = α;
28+} ->
29+θ
test/golden/importless/ant-nebula.txtnew file+29
@@ -0,0 +1,29 @@
1+∀ α β γ δ ε ζ η θ ι κ λ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { installPhase = String;
5+ meta =
6+ { description = String;
7+ homepage = String;
8+ license = γ;
9+ maintainers = [δ];
10+ platforms = ε;
11+ };
12+ pname = String;
13+ propagatedUserEnvPkgs = [ζ];
14+ src = η;
15+ version = String;
16+ } ->
17+ θ,
18+ β.alexarice = δ,
19+ β.licenses = ι,
20+ β.maintainers = κ,
21+ β.platforms = λ,
22+ ι.gpl3 = γ,
23+ λ.all = ε
24+) =>
25+{ fetchurl = {sha256 = String; url = String;} -> η;
26+ gtk-engine-murrine = ζ;
27+ stdenv = α;
28+} ->
29+θ
test/golden/importless/ant.txtnew file+29
@@ -0,0 +1,29 @@
1+∀ α β γ δ ε ζ η θ ι κ λ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { installPhase = String;
5+ meta =
6+ { description = String;
7+ homepage = String;
8+ license = γ;
9+ maintainers = [δ];
10+ platforms = ε;
11+ };
12+ pname = String;
13+ propagatedUserEnvPkgs = [ζ];
14+ src = η;
15+ version = String;
16+ } ->
17+ θ,
18+ β.alexarice = δ,
19+ β.licenses = ι,
20+ β.maintainers = κ,
21+ β.platforms = λ,
22+ ι.gpl3 = γ,
23+ λ.all = ε
24+) =>
25+{ fetchurl = {sha256 = String; url = String;} -> η;
26+ gtk-engine-murrine = ζ;
27+ stdenv = α;
28+} ->
29+θ
test/golden/importless/apcupsd-exporter.txtnew file+31
@@ -0,0 +1,31 @@
1+∀ α β γ δ ε ζ η θ ι κ λ.
2+( α.lib = β,
3+ γ.prometheus-exporters = δ,
4+ β._1000101 = ε,
5+ β.licenses = ζ,
6+ β.maintainers = η,
7+ β.mdlayher = ε,
8+ ζ.mit = θ,
9+ δ.apcupsd = ι
10+) =>
11+{ buildGoModule =
12+ { doCheck = Bool;
13+ meta =
14+ { description = String;
15+ homepage = String;
16+ license = θ;
17+ maintainers = [ε];
18+ };
19+ passthru = {tests = {apcupsd = ι;};};
20+ pname = String;
21+ src = κ;
22+ vendorSha256 = String;
23+ version = String;
24+ } ->
25+ λ;
26+ fetchFromGitHub =
27+ {owner = String; repo = String; rev = String; sha256 = String;} -> κ;
28+ nixosTests = γ;
29+ stdenv = α;
30+} ->
31+λ
test/golden/importless/apcupsd.txtnew file+15
@@ -0,0 +1,15 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.services = β,
3+ γ.mkOption = {default = String; description = String; type = δ;} -> ε,
4+ γ.types = ζ,
5+ β.prometheus = η,
6+ η.exporters = θ,
7+ θ.apcupsd = ι,
8+ ζ.str = δ,
9+ κ.enum = [String] -> λ
10+) =>
11+{config = α; lib = γ; options = μ; pkgs = ν;} ->
12+{ extraOpts = {apcupsdAddress = ε; apcupsdNetwork = ξ;};
13+ port = Number;
14+ serviceOpts = {serviceConfig = {ExecStart = String;};};
15+}
test/golden/importless/apeclex.txtnew file+13
@@ -0,0 +1,13 @@
1+∀ α β γ δ ε ζ η.
2+(α.lib = β, β.licenses = γ, γ.lgpl3 = δ, ε.gpl3 = δ) => { attemptoClex = ζ;
3+ callPackage =
4+ String ->
5+ { description = String;
6+ lexiconPath = String;
7+ license = [δ];
8+ pname = String;
9+ } ->
10+ η;
11+ stdenv = α;
12+} ->
13+η
test/golden/importless/apiextractor.txtnew file+32
@@ -0,0 +1,32 @@
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( β.lib = γ,
3+ β.mkDerivation =
4+ { buildInputs = [δ];
5+ enableParallelBuilding = Bool;
6+ meta =
7+ { description = String;
8+ homepage = String;
9+ license = ε;
10+ maintainers = ∀ α. [α];
11+ platforms = ζ;
12+ };
13+ name = String;
14+ src = η;
15+ } ->
16+ θ,
17+ ι.withPackages = (κ -> [λ]) -> δ,
18+ κ.sphinx = λ,
19+ γ.licenses = μ,
20+ μ.gpl2 = ε,
21+ ν.platforms = ξ,
22+ ξ.all = ζ
23+) =>
24+{ cmake = δ;
25+ fetchurl = {sha256 = String; url = String;} -> η;
26+ libxml2 = δ;
27+ libxslt = δ;
28+ python2 = ι;
29+ qt4 = δ;
30+ stdenv = β;
31+} ->
32+θ
test/golden/importless/appdaemon.txtnew file+71
@@ -0,0 +1,71 @@
1+∀ γ1 δ1 ε1 ζ1 η1 θ1 ι1 κ1 λ1 μ1 ν1 ξ1.
2+( γ1.dotlambda = δ1,
3+ γ1.licenses = ε1,
4+ γ1.maintainers = ζ1,
5+ γ1.peterhoeg = δ1,
6+ η1.override =
7+ { packageOverrides =
8+ ∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1.
9+ ( α.aiohttp-jinja2 = β,
10+ α.bcrypt = γ,
11+ α.jinja2 = δ,
12+ α.yarl = ε,
13+ ζ.src = η,
14+ θ.src = ι,
15+ κ.src = λ,
16+ μ.src = ν,
17+ β.overridePythonAttrs = (ζ -> {src = ξ; version = String;}) -> ο,
18+ γ.overridePythonAttrs = (θ -> {src = π; version = String;}) -> ρ,
19+ δ.overridePythonAttrs = (κ -> {src = σ; version = String;}) -> τ,
20+ ε.overridePythonAttrs = (μ -> {src = υ; version = String;}) -> φ,
21+ η.override = χ,
22+ ι.override = ψ,
23+ λ.override = ω,
24+ ν.override = α1
25+ ) =>
26+ β1 -> α -> {aiohttp-jinja2 = ο; bcrypt = ρ; jinja2 = τ; yarl = φ;};
27+ } ->
28+ θ1,
29+ θ1.pkgs = ι1,
30+ ε1.mit = κ1,
31+ ι1.buildPythonApplication =
32+ { doCheck = Bool;
33+ meta =
34+ { description = String;
35+ homepage = String;
36+ license = κ1;
37+ maintainers = [δ1];
38+ };
39+ pname = String;
40+ postPatch = String;
41+ propagatedBuildInputs = [λ1];
42+ src = μ1;
43+ version = String;
44+ } ->
45+ ν1,
46+ ξ1.aiohttp = λ1,
47+ ξ1.aiohttp-jinja2 = λ1,
48+ ξ1.astral = λ1,
49+ ξ1.bcrypt = λ1,
50+ ξ1.daemonize = λ1,
51+ ξ1.dateutil = λ1,
52+ ξ1.deepdiff = λ1,
53+ ξ1.feedparser = λ1,
54+ ξ1.iso8601 = λ1,
55+ ξ1.jinja2 = λ1,
56+ ξ1.paho-mqtt = λ1,
57+ ξ1.pid = λ1,
58+ ξ1.python-socketio = λ1,
59+ ξ1.pyyaml = λ1,
60+ ξ1.requests = λ1,
61+ ξ1.setuptools = λ1,
62+ ξ1.voluptuous = λ1,
63+ ξ1.websocket_client = λ1,
64+ ξ1.yarl = λ1
65+) =>
66+{ fetchFromGitHub =
67+ {owner = String; repo = String; rev = String; sha256 = String;} -> μ1;
68+ lib = γ1;
69+ python3 = η1;
70+} ->
71+ν1
test/golden/importless/appliance.txt+10−1
@@ -1 +1,10 @@
1−∀ β. { fetchzip = { meta = { hydraPlatforms = ∀ α. α }; name = String; sha256 = String; url = String } -> β } -> β
1+∀ β.
2+{ fetchzip =
3+ { meta = {hydraPlatforms = ∀ α. [α];};
4+ name = String;
5+ sha256 = String;
6+ url = String;
7+ } ->
8+ β;
9+} ->
10+β
test/golden/importless/appmenu-gtk-module.txtnew file+27
@@ -0,0 +1,27 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ configurePhase = String;
6+ installPhase = String;
7+ meta = {description = String; license = δ; maintainers = [ε];};
8+ nativeBuildInputs = [ζ];
9+ pname = String;
10+ src = String;
11+ version = String;
12+ } ->
13+ η,
14+ β.jD91mZM2 = ε,
15+ β.licenses = θ,
16+ β.maintainers = ι,
17+ θ.lgpl3 = δ
18+) =>
19+{ cmake = ζ;
20+ fetchFromGitHub = κ;
21+ glib = γ;
22+ gtk2 = γ;
23+ gtk3 = γ;
24+ stdenv = α;
25+ vala = ζ;
26+} ->
27+η
test/golden/importless/appstream.txtnew file+11
@@ -0,0 +1,11 @@
1+∀ α β γ δ ε ζ η θ ι.
2+( α.config = β,
3+ α.lib = γ,
4+ β.appstream = δ,
5+ γ.mkIf = ε -> {environment = {pathsToLink = [String];};} -> ζ,
6+ γ.mkOption = {default = Bool; description = String; type = η;} -> θ,
7+ γ.types = ι,
8+ δ.enable = ε,
9+ ι.bool = η
10+) =>
11+α -> {config = ζ; options = {appstream = {enable = θ;};};}
test/golden/importless/archive-version.txtnew file+8
@@ -0,0 +1,8 @@
1+∀ α β γ δ ε.
2+( α.concatMapStrings = β -> γ -> String,
3+ α.fixedWidthNumber = Number -> β,
4+ α.head = δ -> String,
5+ α.splitVersion = ε -> δ,
6+ α.tail = δ -> γ
7+) =>
8+α -> ε -> String
test/golden/importless/array-utils.txtnew file+11
@@ -0,0 +1,11 @@
1+∀ β γ.
2+(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
3+{ asdFilesToKeep = [String];
4+ baseName = String;
5+ deps = ∀ α. [α];
6+ description = String;
7+ overrides = ∀ α. α -> α;
8+ packageName = String;
9+ src = γ;
10+ version = String;
11+}
test/golden/importless/array.txtnew file+23
@@ -0,0 +1,23 @@
1+∀ α β γ δ ε ζ η.
2+( α.licenses = β,
3+ α.maintainers = γ,
4+ β.bsd3 = δ,
5+ γ.brainrape = ε
6+) =>
7+{ build-idris-package =
8+ { meta =
9+ { description = String;
10+ homepage = String;
11+ license = δ;
12+ maintainers = [ε];
13+ };
14+ name = String;
15+ src = ζ;
16+ version = String;
17+ } ->
18+ η;
19+ fetchFromGitHub =
20+ {owner = String; repo = String; rev = String; sha256 = String;} -> ζ;
21+ lib = α;
22+} ->
23+η
test/golden/importless/asdf-finalizers.txt+11−1
@@ -1 +1,11 @@
1−∀ β. { fetchurl = { sha256 = String; url = String } -> β } -> { asdFilesToKeep = [String]; baseName = String; deps = ∀ α. α; description = String; overrides = ∀ α. α -> α; packageName = String; src = β; version = String }
1+∀ β γ.
2+(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
3+{ asdFilesToKeep = [String];
4+ baseName = String;
5+ deps = ∀ α. [α];
6+ description = String;
7+ overrides = ∀ α. α -> α;
8+ packageName = String;
9+ src = γ;
10+ version = String;
11+}
test/golden/importless/asdf-package-system.txtnew file+11
@@ -0,0 +1,11 @@
1+∀ β γ.
2+(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
3+{ asdFilesToKeep = [String];
4+ baseName = String;
5+ deps = ∀ α. [α];
6+ description = String;
7+ overrides = ∀ α. α -> α;
8+ packageName = String;
9+ src = γ;
10+ version = String;
11+}
test/golden/importless/asdf-system-connections.txtnew file+11
@@ -0,0 +1,11 @@
1+∀ β γ.
2+(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
3+{ asdFilesToKeep = [String];
4+ baseName = String;
5+ deps = ∀ α. [α];
6+ description = String;
7+ overrides = ∀ α. α -> α;
8+ packageName = String;
9+ src = γ;
10+ version = String;
11+}
test/golden/importless/aspell-with-dicts.txt+8−1
@@ -1 +1,8 @@
1−∀ α β γ δ ε. { aspell = α; aspellDicts = β; buildEnv = { buildInputs = [γ]; name = String; paths = [α]; postBuild = String } -> δ; makeWrapper = γ } -> β -> ε -> δ
1+∀ α β γ δ.
2+{ aspell = α;
3+ aspellDicts = β;
4+ buildEnv =
5+ {buildInputs = [γ]; name = String; paths = [α]; postBuild = String;} -> δ;
6+ makeWrapper = γ;
7+} ->
8+(β -> [α]) -> δ
test/golden/importless/assets.txtnew file+29
@@ -0,0 +1,29 @@
1+∀ β γ δ ε ζ η θ ι κ.
2+( β.lib = γ,
3+ β.mkDerivation =
4+ { dontBuild = Bool;
5+ dontFixup = Bool;
6+ installPhase = String;
7+ meta =
8+ { description = String;
9+ homepage = String;
10+ hydraPlatforms = ∀ α. [α];
11+ license = δ;
12+ maintainers = [ε];
13+ };
14+ name = String;
15+ nativeBuildInputs = [ζ];
16+ src = η;
17+ version = String;
18+ } ->
19+ θ,
20+ γ.licenses = ι,
21+ γ.maintainers = κ,
22+ γ.peterhoeg = ε,
23+ ι.unfree = δ
24+) =>
25+{ gogUnpackHook = ζ;
26+ requireFile = {message = String; name = String; sha256 = String;} -> η;
27+ stdenv = β;
28+} ->
29+{descent1-assets = θ; descent2-assets = θ;}
test/golden/importless/async-rpc-kernel.txtnew file+35
@@ -0,0 +1,35 @@
1+∀ α β γ δ ε ζ η θ.
2+( α.lib = β,
3+ β.licenses = γ,
4+ β.maintainers = δ,
5+ γ.asl20 = ε,
6+ δ.maurer = ζ
7+) =>
8+{ async_kernel = η;
9+ bin_prot = η;
10+ buildOcamlJane =
11+ { hash = String;
12+ meta =
13+ { description = String;
14+ homepage = String;
15+ license = ε;
16+ maintainers = [ζ];
17+ };
18+ name = String;
19+ propagatedBuildInputs = [η];
20+ } ->
21+ θ;
22+ core_kernel = η;
23+ fieldslib = η;
24+ ppx_assert = η;
25+ ppx_bench = η;
26+ ppx_driver = η;
27+ ppx_expect = η;
28+ ppx_inline_test = η;
29+ ppx_jane = η;
30+ sexplib = η;
31+ stdenv = α;
32+ typerep = η;
33+ variantslib = η;
34+} ->
35+θ
test/golden/importless/ati.txtnew file+28
@@ -0,0 +1,28 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.boot = ε,
6+ β.services = ζ,
7+ γ.elem = String -> η -> θ,
8+ γ.mkIf =
9+ θ ->
10+ { boot = {blacklistedKernelModules = [String]; extraModulePackages = [ι];};
11+ environment = {etc = {ati = {source = String;};}; systemPackages = [ι];};
12+ hardware =
13+ {opengl = {package = ι; package32 = κ; setLdLibraryPath = Bool;};};
14+ nixpkgs = {config = {xorg = {abiCompat = String;};};};
15+ services = {xserver = {drivers = λ;};};
16+ } ->
17+ μ,
18+ γ.singleton = {display = Bool; modules = [ι]; name = String;} -> λ,
19+ δ.pkgsi686Linux = ν,
20+ ζ.xserver = ξ,
21+ ξ.videoDrivers = η,
22+ ε.kernelPackages = ο,
23+ ο.ati_drivers_x11 = ι,
24+ ν.linuxPackages = π,
25+ π.ati_drivers_x11 = ρ,
26+ ρ.override = {kernel = Null; libsOnly = Bool;} -> κ
27+) =>
28+α -> {config = μ;}
test/golden/importless/atop.txtnew file+20
@@ -0,0 +1,20 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.config = β,
3+ α.lib = γ,
4+ β.programs = δ,
5+ γ.concatStrings = ε -> ζ,
6+ γ.mapAttrsToList = (η -> θ -> String) -> ι -> ε,
7+ γ.mkIf = Bool -> {environment = {etc = {atoprc = {text = ζ;};};};} -> κ,
8+ γ.mkOption =
9+ { default = {};
10+ description = String;
11+ example = {flags = String; interval = Number;};
12+ type = λ;
13+ } ->
14+ μ,
15+ γ.types = ν,
16+ δ.atop = ξ,
17+ ξ.settings = {},
18+ ν.attrs = λ
19+) =>
20+α -> {config = κ; options = {programs = {atop = {settings = μ;};};};}
test/golden/importless/attica.txtnew file+14
@@ -0,0 +1,14 @@
1+∀ α β γ δ ε ζ η.
2+(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3+ lib = α;
4+ mkDerivation =
5+ { buildInputs = [γ];
6+ meta = {broken = Bool; maintainers = [ε];};
7+ name = String;
8+ nativeBuildInputs = [ζ];
9+ outputs = [String];
10+ } ->
11+ η;
12+ qtbase = γ;
13+} ->
14+η
test/golden/importless/attrsOf-conditional-check.txtnew file+9
@@ -0,0 +1,9 @@
1+∀ α β γ δ ε ζ η.
2+( α.?foo = β,
3+ γ.config = δ,
4+ γ.lib = ε,
5+ ε.mkIf = Bool -> String -> ζ,
6+ ε.mkOption = {default = Bool;} -> η,
7+ δ.value = α
8+) =>
9+γ -> {config = {value = {foo = ζ;};}; options = {conditionalWorks = η;};}
test/golden/importless/auditd.txtnew file+32
@@ -0,0 +1,32 @@
1+∀ α β γ δ ε ζ η θ ι κ λ.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.security = ε,
6+ γ.mkEnableOption = String -> ζ,
7+ γ.mkIf =
8+ η ->
9+ { boot = {kernelParams = [String];};
10+ environment = {systemPackages = [θ];};
11+ systemd =
12+ { services =
13+ { auditd =
14+ { description = String;
15+ path = [ι];
16+ serviceConfig = {ExecStart = String; ExecStartPre = String;};
17+ unitConfig =
18+ { ConditionSecurity = [String];
19+ ConditionVirtualization = String;
20+ DefaultDependencies = Bool;
21+ };
22+ wantedBy = [String];
23+ };
24+ };
25+ };
26+ } ->
27+ κ,
28+ δ.audit = θ,
29+ ε.auditd = λ,
30+ λ.enable = η
31+) =>
32+α -> {config = κ; options = {security = {auditd = {enable = ζ;};};};}
test/golden/importless/auth.txtnew file+33
@@ -0,0 +1,33 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.buildRustPackage =
3+ { buildInputs = [β];
4+ cargoSha256 = String;
5+ meta =
6+ { description = String;
7+ homepage = String;
8+ license = γ;
9+ maintainers = [δ];
10+ };
11+ nativeBuildInputs = [ε];
12+ pname = String;
13+ src = ζ;
14+ version = String;
15+ } ->
16+ η,
17+ α.licenses = θ,
18+ α.maintainers = ι,
19+ θ.mpl20 = γ,
20+ ι.rushmorem = δ
21+) =>
22+{ cmake = ε;
23+ czmq = β;
24+ fetchFromGitHub =
25+ {owner = String; repo = String; rev = String; sha256 = String;} -> ζ;
26+ lib = κ;
27+ openssl = β;
28+ pkgconfig = ε;
29+ rustPlatform = α;
30+ zeromq = β;
31+ zlib = β;
32+} ->
33+η
test/golden/importless/autofig.txtnew file+6
@@ -0,0 +1,6 @@
1+∀ α β γ.
2+(α.mkDerivation = {name = String; src = β;} -> γ) => { fetchurl =
3+ {sha256 = String; url = String;} -> β;
4+ stdenv = α;
5+} ->
6+γ
test/golden/importless/automake-1.11.x.txtnew file+34
@@ -0,0 +1,34 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ builder = String;
6+ doCheck = Bool;
7+ dontPatchShebangs = Bool;
8+ enableParallelBuilding = Bool;
9+ meta =
10+ { branch = String;
11+ description = String;
12+ homepage = String;
13+ license = δ;
14+ longDescription = String;
15+ platforms = ε;
16+ };
17+ name = String;
18+ patches = [String];
19+ preCheck = String;
20+ setupHook = String;
21+ src = ζ;
22+ } ->
23+ η,
24+ β.licenses = θ,
25+ θ.gpl2Plus = δ,
26+ ι.platforms = κ,
27+ κ.all = ε
28+) =>
29+{ autoconf = γ;
30+ fetchurl = {sha256 = String; url = String;} -> ζ;
31+ perl = γ;
32+ stdenv = α;
33+} ->
34+η
test/golden/importless/automake-1.15.x.txtnew file+35
@@ -0,0 +1,35 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ doCheck = Bool;
6+ doInstallCheck = Bool;
7+ dontPatchShebangs = Bool;
8+ enableParallelBuilding = Bool;
9+ meta =
10+ { branch = String;
11+ description = String;
12+ homepage = String;
13+ license = δ;
14+ longDescription = String;
15+ platforms = ε;
16+ };
17+ name = String;
18+ nativeBuildInputs = [γ];
19+ patches = [String];
20+ preCheck = String;
21+ setupHook = String;
22+ src = ζ;
23+ } ->
24+ η,
25+ β.licenses = θ,
26+ θ.gpl2Plus = δ,
27+ ι.platforms = κ,
28+ κ.all = ε
29+) =>
30+{ autoconf = γ;
31+ fetchurl = {sha256 = String; url = String;} -> ζ;
32+ perl = γ;
33+ stdenv = α;
34+} ->
35+η
test/golden/importless/automake-1.16.x.txtnew file+34
@@ -0,0 +1,34 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ doCheck = Bool;
6+ doInstallCheck = Bool;
7+ dontPatchShebangs = Bool;
8+ enableParallelBuilding = Bool;
9+ meta =
10+ { branch = String;
11+ description = String;
12+ homepage = String;
13+ license = δ;
14+ longDescription = String;
15+ platforms = ε;
16+ };
17+ name = String;
18+ nativeBuildInputs = [γ];
19+ preCheck = String;
20+ setupHook = String;
21+ src = ζ;
22+ } ->
23+ η,
24+ β.licenses = θ,
25+ θ.gpl2Plus = δ,
26+ ι.platforms = κ,
27+ κ.all = ε
28+) =>
29+{ autoconf = γ;
30+ fetchurl = {sha256 = String; url = String;} -> ζ;
31+ perl = γ;
32+ stdenv = α;
33+} ->
34+η
test/golden/importless/autorandr.txtnew file+42
@@ -0,0 +1,42 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.services = ε,
6+ γ.gnidorah = ζ,
7+ γ.maintainers = η,
8+ γ.mkEnableOption = String -> θ,
9+ γ.mkIf =
10+ ι ->
11+ { environment = {systemPackages = [κ];};
12+ services = {udev = {packages = [λ];};};
13+ systemd =
14+ { services =
15+ { autorandr =
16+ { after = [String];
17+ description = String;
18+ serviceConfig =
19+ { ExecStart = String;
20+ RemainAfterExit = Bool;
21+ StartLimitBurst = Number;
22+ StartLimitInterval = Number;
23+ Type = String;
24+ };
25+ wantedBy = [String];
26+ };
27+ };
28+ };
29+ } ->
30+ μ,
31+ γ.mkOption = {default = String; description = String; type = ν;} -> ξ,
32+ γ.types = ο,
33+ δ.autorandr = κ,
34+ ε.autorandr = π,
35+ π.enable = ι,
36+ ο.str = ν
37+) =>
38+α ->
39+{ config = μ;
40+ meta = {maintainers = [ζ];};
41+ options = {services = {autorandr = {defaultTarget = ξ; enable = θ;};};};
42+}
test/golden/importless/autostart.txtnew file+19
@@ -0,0 +1,19 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.config = β,
3+ α.lib = γ,
4+ β.xdg = δ,
5+ γ.mkIf = ε -> {environment = {pathsToLink = [String];};} -> ζ,
6+ γ.mkOption = {default = Bool; description = String; type = η;} -> θ,
7+ γ.teams = ι,
8+ γ.types = κ,
9+ δ.autostart = λ,
10+ λ.enable = ε,
11+ ι.freedesktop = μ,
12+ μ.members = ν,
13+ κ.bool = η
14+) =>
15+α ->
16+{ config = ζ;
17+ meta = {maintainers = ν;};
18+ options = {xdg = {autostart = {enable = θ;};};};
19+}
test/golden/importless/aws-s3-exporter.txtnew file+27
@@ -0,0 +1,27 @@
1+∀ α β γ δ ε ζ η θ.
2+( α.lib = β,
3+ β.licenses = γ,
4+ β.maintainers = δ,
5+ γ.asl20 = ε,
6+ δ.mmahut = ζ
7+) =>
8+{ buildGoPackage =
9+ { doCheck = Bool;
10+ goDeps = String;
11+ goPackagePath = String;
12+ meta =
13+ { description = String;
14+ homepage = String;
15+ license = ε;
16+ maintainers = [ζ];
17+ };
18+ pname = String;
19+ src = η;
20+ version = String;
21+ } ->
22+ θ;
23+ fetchFromGitHub =
24+ {owner = String; repo = String; rev = String; sha256 = String;} -> η;
25+ stdenv = α;
26+} ->
27+θ
test/golden/importless/aws-s3-exporter_deps.txt+4−1
@@ -1 +1,4 @@
1−[{ fetch = { rev = String; sha256 = String; type = String; url = String }; goPackagePath = String }]
1+[ { fetch = {rev = String; sha256 = String; type = String; url = String;};
2+ goPackagePath = String;
3+ }
4+]
test/golden/importless/azure-agent.txtnew file+104
@@ -0,0 +1,104 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.networking = ε,
6+ β.virtualisation = ζ,
7+ γ.coreutils = η,
8+ γ.findutils = η,
9+ γ.gawk = η,
10+ γ.gnugrep = η,
11+ γ.makeWrapper = θ,
12+ γ.mkIf =
13+ ι ->
14+ { assertions = [{assertion = Bool; message = String;}];
15+ boot = {initrd = {kernelModules = [String];};};
16+ environment = {etc = {waagent.conf = {text = String;};};};
17+ networking =
18+ { dhcpcd = {persistent = Bool;};
19+ firewall = {allowedUDPPorts = [Number];};
20+ };
21+ services =
22+ { logrotate = {config = String; enable = Bool;};
23+ udev = {packages = [κ];};
24+ };
25+ systemd =
26+ { services =
27+ { consume-hypervisor-entropy =
28+ { before = [String];
29+ description = String;
30+ path = [λ];
31+ script = String;
32+ serviceConfig =
33+ { RemainAfterExit = Bool;
34+ StandardError = String;
35+ StandardOutput = String;
36+ Type = String;
37+ };
38+ wantedBy = [String];
39+ };
40+ waagent =
41+ { after = [String];
42+ description = String;
43+ path = [μ];
44+ serviceConfig = {ExecStart = String; Type = String;};
45+ unitConfig = {ConditionPathExists = String;};
46+ wantedBy = [String];
47+ wants = [String];
48+ };
49+ };
50+ targets = {provisioned = {description = String;};};
51+ };
52+ } ->
53+ ν,
54+ γ.mkOption = {default = Bool; description = String;} -> ξ,
55+ γ.nettools = η,
56+ γ.openssh = η,
57+ γ.openssl = η,
58+ γ.parted = η,
59+ γ.procps = η,
60+ γ.python = θ,
61+ γ.pythonPackages = ο,
62+ γ.shadow = η,
63+ γ.stdenv = π,
64+ γ.utillinux = η,
65+ δ.bash = μ,
66+ δ.coreutils = λ,
67+ δ.e2fsprogs = μ,
68+ δ.fetchFromGitHub =
69+ {owner = String; repo = String; rev = String; sha256 = String;} -> ρ,
70+ δ.stdenv = σ,
71+ δ.writeScript = String -> String -> τ,
72+ π.mkDerivation =
73+ { buildInputs = [θ];
74+ buildPhase = Bool;
75+ configurePhase = Bool;
76+ installPhase = String;
77+ name = String;
78+ patches = [String];
79+ pythonPath = [υ];
80+ runtimeDeps = [η];
81+ src = ρ;
82+ } ->
83+ κ,
84+ ο.pyasn1 = υ,
85+ φ.wrapPython = θ,
86+ ζ.azure = χ,
87+ χ.agent = ψ,
88+ ψ.enable = ι,
89+ σ.isi686 = Bool,
90+ ω.isx86_64 = Bool,
91+ ε.networkmanager = α1,
92+ α1.enable = Bool
93+) =>
94+α ->
95+{ config = ν;
96+ options =
97+ { virtualisation =
98+ { azure =
99+ { agent =
100+ {enable = ξ; mountResourceDisk = β1; verboseLogging = γ1;};
101+ };
102+ };
103+ };
104+}
test/golden/importless/azure-bootstrap-blobs.txt+1−1
@@ -1 +1 @@
1−{ 16.03 = String }
1+{16.03 = String;}
test/golden/importless/azure-images.txtnew file+1
@@ -0,0 +1 @@
1+{16.09 = String; latest = String;}
test/golden/importless/b43.txtnew file+19
@@ -0,0 +1,19 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.boot = ε,
6+ β.networking = ζ,
7+ γ.lessThan = Number -> η -> θ,
8+ γ.mkIf = ι -> {assertions = κ; hardware = {firmware = [λ];};} -> μ,
9+ γ.mkOption = {default = Bool; description = String; type = ν;} -> ξ,
10+ γ.singleton = {assertion = θ; message = String;} -> κ,
11+ γ.types = ο,
12+ δ.b43Firmware_5_1_138 = λ,
13+ ε.kernelPackages = π,
14+ π.kernel = ρ,
15+ ρ.version = σ,
16+ ζ.enableB43Firmware = ι,
17+ ο.bool = ν
18+) =>
19+α -> {config = μ; options = {networking = {enableB43Firmware = ξ;};};}
test/golden/importless/babel-streams.txtnew file+17
@@ -0,0 +1,17 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.babel = γ,
4+ β.fetchurl = {sha256 = String; url = String;} -> δ,
5+ β.trivial-features = γ,
6+ β.trivial-gray-streams = γ
7+) =>
8+β ->
9+{ asdFilesToKeep = [String];
10+ baseName = String;
11+ deps = [γ];
12+ description = String;
13+ overrides = ∀ α. α -> α;
14+ packageName = String;
15+ src = δ;
16+ version = String;
17+}
test/golden/importless/babel.txtnew file+15
@@ -0,0 +1,15 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.fetchurl = {sha256 = String; url = String;} -> δ,
4+ β.trivial-features = γ
5+) =>
6+β ->
7+{ asdFilesToKeep = [String];
8+ baseName = String;
9+ deps = [γ];
10+ description = String;
11+ overrides = ∀ α. α -> α;
12+ packageName = String;
13+ src = δ;
14+ version = String;
15+}
test/golden/importless/backend.txtnew file+53
@@ -0,0 +1,53 @@
1+∀ α β γ δ ε ζ η θ ι.
2+( α.licenses = β,
3+ α.maintainers = γ,
4+ δ.gtk3 = ε,
5+ δ.poppler_gi = ε,
6+ β.gpl3Plus = ζ,
7+ γ.aszlig = η,
8+ γ.symphorien = η
9+) =>
10+{ buildPythonPackage =
11+ { disabled = Bool;
12+ meta =
13+ { description = String;
14+ homepage = String;
15+ license = ζ;
16+ maintainers = [η];
17+ };
18+ patchPhase = String;
19+ pname = String;
20+ preCheck = String;
21+ propagatedBuildInputs = [ε];
22+ sourceRoot = String;
23+ src = θ;
24+ version = String;
25+ } ->
26+ ι;
27+ distro = ε;
28+ fetchFromGitLab =
29+ { domain = String;
30+ group = String;
31+ owner = String;
32+ repo = String;
33+ rev = String;
34+ sha256 = String;
35+ } ->
36+ θ;
37+ isPy3k = Bool;
38+ isPyPy = Bool;
39+ lib = α;
40+ libinsane = ε;
41+ natsort = ε;
42+ pillow = ε;
43+ pkgs = δ;
44+ pycountry = ε;
45+ pyenchant = ε;
46+ pygobject3 = ε;
47+ pyocr = ε;
48+ python-Levenshtein = ε;
49+ simplebayes = ε;
50+ termcolor = ε;
51+ whoosh = ε;
52+} ->
53+ι
test/golden/importless/baloo-widgets.txtnew file+21
@@ -0,0 +1,21 @@
1+∀ α β γ δ ε ζ η θ.
2+(α.licenses = β, α.maintainers = γ, β.lgpl21 = δ, γ.ttuegel = ε) => { baloo = ζ;
3+ extra-cmake-modules = η;
4+ kconfig = ζ;
5+ kdelibs4support = ζ;
6+ kdoctools = η;
7+ kfilemetadata = ζ;
8+ ki18n = ζ;
9+ kio = ζ;
10+ kservice = ζ;
11+ lib = α;
12+ mkDerivation =
13+ { meta = {license = [δ]; maintainers = [ε];};
14+ name = String;
15+ nativeBuildInputs = [η];
16+ outputs = [String];
17+ propagatedBuildInputs = [ζ];
18+ } ->
19+ θ;
20+} ->
21+θ
test/golden/importless/baloo.txtnew file+26
@@ -0,0 +1,26 @@
1+∀ α β γ δ ε ζ η.
2+(α.maintainers = β, β.ttuegel = γ) => { extra-cmake-modules = δ;
3+ kauth = ε;
4+ kconfig = ε;
5+ kcoreaddons = ζ;
6+ kcrash = ε;
7+ kdbusaddons = ε;
8+ kfilemetadata = ζ;
9+ ki18n = ε;
10+ kidletime = ε;
11+ kio = ε;
12+ lib = α;
13+ lmdb = ε;
14+ mkDerivation =
15+ { buildInputs = [ε];
16+ meta = {maintainers = [γ];};
17+ name = String;
18+ nativeBuildInputs = [δ];
19+ propagatedBuildInputs = [ζ];
20+ } ->
21+ η;
22+ qtbase = ζ;
23+ qtdeclarative = ε;
24+ solid = ε;
25+} ->
26+η
test/golden/importless/bamf.txtnew file+20
@@ -0,0 +1,20 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.services = ε,
6+ γ.maintainers = ζ,
7+ γ.mkEnableOption = String -> η,
8+ γ.mkIf =
9+ θ ->
10+ {services = {dbus = {packages = [ι];};}; systemd = {packages = [κ];};} -> λ,
11+ γ.worldofpeace = μ,
12+ δ.bamf = ι,
13+ ε.bamf = ν,
14+ ν.enable = θ
15+) =>
16+α ->
17+{ config = λ;
18+ meta = {maintainers = [μ];};
19+ options = {services = {bamf = {enable = η;};};};
20+}
test/golden/importless/bandwhich.txtnew file+26
@@ -0,0 +1,26 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.programs = ε,
6+ γ.bandwhich = ζ,
7+ γ.filalex77 = η,
8+ γ.maintainers = θ,
9+ γ.mkIf =
10+ ι ->
11+ { environment = {systemPackages = [ζ];};
12+ security =
13+ {wrappers = {bandwhich = {capabilities = String; source = String;};};};
14+ } ->
15+ κ,
16+ γ.mkOption = {default = Bool; description = String; type = λ;} -> μ,
17+ γ.types = ν,
18+ ε.bandwhich = ξ,
19+ ξ.enable = ι,
20+ ν.bool = λ
21+) =>
22+α ->
23+{ config = κ;
24+ meta = {maintainers = [η];};
25+ options = {programs = {bandwhich = {enable = μ;};};};
26+}
test/golden/importless/base.txtnew file+41
@@ -0,0 +1,41 @@
1+∀ α β γ δ ε ζ.
2+( α.lib = β,
3+ α.pkgs = γ,
4+ β.mkDefault = String -> δ,
5+ γ.ccrypt = ε,
6+ γ.cryptsetup = ε,
7+ γ.ddrescue = ε,
8+ γ.dosfstools = ε,
9+ γ.efibootmgr = ε,
10+ γ.efivar = ε,
11+ γ.f2fs-tools = ε,
12+ γ.fuse = ε,
13+ γ.fuse3 = ε,
14+ γ.gptfdisk = ε,
15+ γ.hdparm = ε,
16+ γ.jfsutils = ε,
17+ γ.mkpasswd = ε,
18+ γ.ms-sys = ε,
19+ γ.ntfsprogs = ε,
20+ γ.parted = ε,
21+ γ.pciutils = ε,
22+ γ.rsync = ε,
23+ γ.screen = ε,
24+ γ.sdparm = ε,
25+ γ.smartmontools = ε,
26+ γ.socat = ε,
27+ γ.sshfs-fuse = ε,
28+ γ.testdisk = ε,
29+ γ.unzip = ε,
30+ γ.usbutils = ε,
31+ γ.vim = ε,
32+ γ.w3m-nographics = ε,
33+ γ.xfsprogs = ζ,
34+ γ.zip = ε,
35+ ζ.bin = ε
36+) =>
37+α ->
38+{ boot = {supportedFilesystems = [String];};
39+ environment = {systemPackages = [ε];};
40+ networking = {hostId = δ;};
41+}
test/golden/importless/bash-4.4-patches.txt+1−1
@@ -1 +1 @@
1−∀ α. String -> String -> α -> [α]
1+∀ α. (String -> String -> α) -> [α]
test/golden/importless/bash-5.0-patches.txt+1−1
@@ -1 +1 @@
1−∀ α. String -> String -> α -> [α]
1+∀ α. (String -> String -> α) -> [α]
test/golden/importless/bash-my-aws.txtnew file+17
@@ -0,0 +1,17 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.programs = ε,
6+ γ.bash-my-aws = ζ,
7+ γ.mkEnableOption = String -> η,
8+ γ.mkIf =
9+ θ ->
10+ { environment = {systemPackages = [ζ];};
11+ programs = {bash = {interactiveShellInit = String;};};
12+ } ->
13+ ι,
14+ ε.bash-my-aws = κ,
15+ κ.enable = θ
16+) =>
17+α -> {config = ι; options = {programs = {bash-my-aws = {enable = η;};};};}
test/golden/importless/bash-tools-test.txt+9−1
@@ -1 +1,9 @@
1−∀ α β γ δ ε. { bazel = α; bazelTest = { bazelPkg = α; bazelScript = String; name = String } -> β; distDir = γ; runLocal = String -> { } -> String -> δ; writeText = String -> String -> ε } -> β
1+∀ α β γ δ ε.
2+{ bazel = α;
3+ bazelTest =
4+ {bazelPkg = α; bazelScript = String; name = String; workspaceDir = β;} -> γ;
5+ distDir = δ;
6+ runLocal = String -> {} -> String -> β;
7+ writeText = String -> String -> ε;
8+} ->
9+γ
test/golden/importless/bcache.txtnew file+6
@@ -0,0 +1,6 @@
1+∀ α β γ δ.
2+(α.pkgs = β, β.bcache-tools = γ) => α ->
3+{ boot = {initrd = {extraUdevRulesCommands = String;};};
4+ environment = {systemPackages = [γ];};
5+ services = {udev = {packages = [δ];};};
6+}
test/golden/importless/bcachefs.txtnew file+26
@@ -0,0 +1,26 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ α.utils = ε,
6+ ζ.fsType = η,
7+ θ.device = ι,
8+ β.boot = κ,
9+ β.fileSystems = λ,
10+ γ.concatStrings = μ -> String,
11+ γ.elem = String -> ν -> ξ,
12+ γ.filterAttrs = (ο -> ζ -> Bool) -> λ -> {},
13+ γ.head = π -> ρ,
14+ γ.mapAttrsToList = (σ -> θ -> String) -> {} -> μ,
15+ γ.mkIf = ξ -> τ -> υ,
16+ γ.mkMerge =
17+ [{boot = {kernelPackages = φ;}; system = {fsPackages = [χ];};}] -> τ,
18+ γ.splitString = String -> ψ -> π,
19+ δ.bcachefs-tools = χ,
20+ δ.linuxPackages_testing_bcachefs = φ,
21+ ε.fsNeededForBoot = ζ -> Bool,
22+ κ.supportedFilesystems = ν,
23+ ω.initrd = α1,
24+ α1.supportedFilesystems = β1
25+) =>
26+α -> {config = υ;}
test/golden/importless/bcc-git.txtnew file+27
@@ -0,0 +1,27 @@
1+∀ α β γ δ ε ζ η θ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { enableParallelBuilding = Bool;
5+ installPhase = String;
6+ makeFlags = [String];
7+ meta =
8+ { description = String;
9+ homepage = String;
10+ license = γ;
11+ maintainers = [δ];
12+ };
13+ name = String;
14+ patches = [String];
15+ src = ε;
16+ } ->
17+ ζ,
18+ β.ertes = δ,
19+ β.licenses = η,
20+ β.maintainers = θ,
21+ η.mit = γ
22+) =>
23+{ fetchFromGitHub =
24+ {owner = String; repo = String; rev = String; sha256 = String;} -> ε;
25+ stdenv = α;
26+} ->
27+ζ
test/golden/importless/bcc.txtnew file+20
@@ -0,0 +1,20 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.config = β,
3+ α.lib = γ,
4+ β.boot = δ,
5+ β.programs = ε,
6+ γ.mkEnableOption = String -> ζ,
7+ γ.mkIf =
8+ η ->
9+ { boot = {extraModulePackages = [θ];};
10+ environment = {systemPackages = [ι];};
11+ } ->
12+ κ,
13+ ε.bcc = λ,
14+ λ.enable = η,
15+ δ.kernelPackages = μ,
16+ μ.bcc = θ,
17+ ν.kernelPackages = ξ,
18+ ξ.bcc = ι
19+) =>
20+α -> {config = κ; options = {programs = {bcc = {enable = ζ;};};};}
test/golden/importless/bean-add.txtnew file+20
@@ -0,0 +1,20 @@
1+∀ α β γ δ ε ζ η θ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { installPhase = String;
5+ meta = {description = String; homepage = String; maintainers = [γ];};
6+ name = String;
7+ propagatedBuildInputs = [δ];
8+ src = ε;
9+ } ->
10+ ζ,
11+ η.python = δ,
12+ β.maintainers = θ,
13+ θ.matthiasbeyer = γ
14+) =>
15+{ fetchFromGitHub =
16+ {owner = String; repo = String; rev = String; sha256 = String;} -> ε;
17+ python3Packages = η;
18+ stdenv = α;
19+} ->
20+ζ
test/golden/importless/beautifulsoup.txtnew file+12
@@ -0,0 +1,12 @@
1+∀ α β γ δ ε.
2+( α.buildPythonPackage =
3+ { disabled = β;
4+ doCheck = Bool;
5+ meta = {description = String; homepage = String; license = String;};
6+ name = String;
7+ src = γ;
8+ } ->
9+ δ,
10+ ε.fetchurl = {sha256 = String; url = String;} -> γ
11+) =>
12+{isPy3k = β; pkgs = ε; pythonPackages = α;} -> δ
test/golden/importless/ber-metaocaml.txtnew file+53
@@ -0,0 +1,53 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.isAarch64 = Bool,
3+ α.isMips = Bool,
4+ α.isi686 = Bool,
5+ α.isx86_64 = Bool,
6+ α.lib = β,
7+ α.mkDerivation =
8+ { buildInputs = [γ];
9+ buildPhase = String;
10+ checkPhase = String;
11+ configureFlags = [γ];
12+ dontStrip = Bool;
13+ installPhase = String;
14+ meta =
15+ { branch = String;
16+ broken = Bool;
17+ description = String;
18+ homepage = String;
19+ license = [δ];
20+ longDescription = String;
21+ maintainers = [ε];
22+ platforms = [ζ];
23+ };
24+ metaocaml = η;
25+ passthru = {nativeCompilers = Bool;};
26+ pname = String;
27+ postConfigure = String;
28+ prefixKey = String;
29+ src = η;
30+ version = String;
31+ x11env = θ;
32+ x11inc = String;
33+ x11lib = String;
34+ } ->
35+ ι,
36+ β.optionals = Bool -> [String] -> [γ],
37+ κ.darwin = [ζ],
38+ κ.lgpl2 = δ,
39+ κ.licenses = λ,
40+ κ.linux = [ζ],
41+ κ.maintainers = μ,
42+ κ.platforms = ν,
43+ κ.qpl = δ,
44+ κ.thoughtpolice = ε
45+) =>
46+{ buildEnv = {name = String; paths = [String];} -> θ;
47+ fetchurl = {sha256 = String; url = String;} -> η;
48+ libX11 = String;
49+ ncurses = γ;
50+ stdenv = α;
51+ xorgproto = String;
52+} ->
53+ι
test/golden/importless/berry.txtnew file+24
@@ -0,0 +1,24 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.services = ε,
6+ γ.mkEnableOption = String -> ζ,
7+ γ.mkIf =
8+ η ->
9+ { environment = {systemPackages = [θ];};
10+ services = {xserver = {windowManager = {session = ι;};};};
11+ } ->
12+ κ,
13+ γ.singleton = {name = String; start = String;} -> ι,
14+ δ.berry = θ,
15+ ε.xserver = λ,
16+ λ.windowManager = μ,
17+ μ.berry = ν,
18+ ν.enable = η
19+) =>
20+α ->
21+{ config = κ;
22+ options =
23+ {services = {xserver = {windowManager = {berry = {enable = ζ;};};};};};
24+}
test/golden/importless/beta.txtnew file+42
@@ -0,0 +1,42 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { NIX_LDFLAGS = String;
5+ buildInputs = [γ];
6+ makeFlags = [String];
7+ meta =
8+ { description = String;
9+ downloadPage = String;
10+ license = δ;
11+ maintainers = [ε];
12+ platforms = ζ;
13+ version = String;
14+ };
15+ nativeBuildInputs = [η];
16+ pname = String;
17+ preConfigure = String;
18+ setSourceRoot = String;
19+ src = θ;
20+ version = String;
21+ } ->
22+ ι,
23+ β.licenses = κ,
24+ κ.gpl2 = δ,
25+ λ.maintainers = μ,
26+ μ.raskin = ε,
27+ ν.platforms = ξ,
28+ ξ.linux = ζ
29+) =>
30+{ autoconf = η;
31+ automake = η;
32+ fetchgit = {rev = String; sha256 = String; url = String;} -> θ;
33+ libGL = γ;
34+ libGLU = γ;
35+ libX11 = γ;
36+ perl = γ;
37+ python2 = γ;
38+ stdenv = α;
39+ wxGTK = γ;
40+ zlib = γ;
41+} ->
42+ι
test/golden/importless/beta_sources.txt+3−1
@@ -1 +1,3 @@
1−{ sources = [{ arch = String; locale = String; sha256 = String; url = String }]; version = String }
1+{ sources = [{arch = String; locale = String; sha256 = String; url = String;}];
2+ version = String;
3+}
test/golden/importless/bg.txtnew file+41
@@ -0,0 +1,41 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ mesonFlags = [String];
6+ meta =
7+ { description = String;
8+ homepage = δ;
9+ license = ε;
10+ longDescription = String;
11+ maintainers = [ζ];
12+ platforms = η;
13+ };
14+ nativeBuildInputs = [θ];
15+ pname = String;
16+ src = ι;
17+ version = String;
18+ } ->
19+ κ,
20+ ι.meta = λ,
21+ β.licenses = μ,
22+ β.maintainers = ν,
23+ β.platforms = ξ,
24+ β.primeos = ζ,
25+ μ.mit = ε,
26+ ξ.linux = η,
27+ λ.homepage = δ
28+) =>
29+{ cairo = γ;
30+ fetchFromGitHub =
31+ {owner = String; repo = String; rev = String; sha256 = String;} -> ι;
32+ gdk-pixbuf = γ;
33+ meson = θ;
34+ ninja = θ;
35+ pkgconfig = θ;
36+ scdoc = θ;
37+ stdenv = α;
38+ wayland = γ;
39+ wayland-protocols = γ;
40+} ->
41+κ
test/golden/importless/bi.txtnew file+27
@@ -0,0 +1,27 @@
1+∀ α β γ δ ε ζ η θ.
2+( α.licenses = β,
3+ α.maintainers = γ,
4+ β.bsd3 = δ,
5+ γ.brainrape = ε
6+) =>
7+{ build-idris-package =
8+ { idrisDeps = [ζ];
9+ ipkgName = String;
10+ meta =
11+ { description = String;
12+ homepage = String;
13+ license = δ;
14+ maintainers = [ε];
15+ };
16+ name = String;
17+ src = η;
18+ version = String;
19+ } ->
20+ θ;
21+ contrib = ζ;
22+ fetchFromGitHub =
23+ {owner = String; repo = String; rev = String; sha256 = String;} -> η;
24+ lib = α;
25+ pruviloj = ζ;
26+} ->
27+θ
test/golden/importless/bifunctors.txtnew file+13
@@ -0,0 +1,13 @@
1+∀ α β γ δ ε.
2+(α.maintainers = β, β.brainrape = γ) => { build-idris-package =
3+ { meta = {description = String; homepage = String; maintainers = [γ];};
4+ name = String;
5+ src = δ;
6+ version = String;
7+ } ->
8+ ε;
9+ fetchFromGitHub =
10+ {owner = String; repo = String; rev = String; sha256 = String;} -> δ;
11+ lib = α;
12+} ->
13+ε
test/golden/importless/bin.txtnew file+27
@@ -0,0 +1,27 @@
1+∀ α β γ δ ε ζ η θ ι.
2+( α.lib = β,
3+ β.licenses = γ,
4+ β.maintainers = δ,
5+ β.platforms = ε,
6+ γ.ofl = ζ,
7+ δ.cstrahan = η,
8+ ε.all = θ
9+) =>
10+{ fetchzip =
11+ { meta =
12+ { description = String;
13+ downloadPage = String;
14+ homepage = String;
15+ license = ζ;
16+ maintainers = [η];
17+ platforms = θ;
18+ };
19+ name = String;
20+ postFetch = String;
21+ sha256 = String;
22+ url = String;
23+ } ->
24+ ι;
25+ stdenv = α;
26+} ->
27+ι
test/golden/importless/bin_prot.txtnew file+26
@@ -0,0 +1,26 @@
1+∀ α β γ δ ε ζ η θ ι.
2+( α.lib = β,
3+ β.licenses = γ,
4+ β.maintainers = δ,
5+ γ.asl20 = ε,
6+ δ.maurer = ζ,
7+ η.ericbmerritt = ζ
8+) =>
9+{ buildOcamlJane =
10+ { hash = String;
11+ meta =
12+ { description = String;
13+ homepage = String;
14+ license = ε;
15+ maintainers = [ζ];
16+ };
17+ minimumSupportedOcamlVersion = String;
18+ name = String;
19+ propagatedBuildInputs = [θ];
20+ version = String;
21+ } ->
22+ ι;
23+ stdenv = α;
24+ type_conv = θ;
25+} ->
26+ι
test/golden/importless/binary-hashes.txt+5−1
@@ -1 +1,5 @@
1−{ cpu-darwin-x86_64 = { sha256 = String; url = String }; cpu-linux-x86_64 = { sha256 = String; url = String }; gpu-linux-x86_64 = { sha256 = String; url = String }; version = String }
1+{ cpu-darwin-x86_64 = {sha256 = String; url = String;};
2+ cpu-linux-x86_64 = {sha256 = String; url = String;};
3+ gpu-linux-x86_64 = {sha256 = String; url = String;};
4+ version = String;
5+}
test/golden/importless/binary-tarball.txtnew file+25
@@ -0,0 +1,25 @@
1+∀ β γ δ ε ζ η.
2+( β //
3+ { distPhase = String;
4+ doDist = Bool;
5+ finalPhase = String;
6+ meta = ∀ α. α;
7+ name = String;
8+ postHook = String;
9+ } ~
10+ γ,
11+ { doCheck = Bool;
12+ postPhases = String;
13+ prefix = String;
14+ showBuildStats = Bool;
15+ } //
16+ γ ~
17+ δ,
18+ β.meta = {},
19+ β.?name = String,
20+ ε.version = String,
21+ β.src = ε,
22+ β.stdenv = ζ,
23+ ζ.mkDerivation = δ -> η
24+) =>
25+β -> η
test/golden/importless/binary.txtnew file+34
@@ -0,0 +1,34 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ installPhase = String;
6+ meta =
7+ { description = String;
8+ downloadPage = String;
9+ downloadURLRegexp = String;
10+ homepage = String;
11+ license = δ;
12+ maintainers = [ε];
13+ platforms = ζ;
14+ updateWalker = Bool;
15+ version = String;
16+ };
17+ name = String;
18+ src = η;
19+ version = String;
20+ } ->
21+ θ,
22+ β.licenses = ι,
23+ ι.asl20 = δ,
24+ κ.maintainers = λ,
25+ λ.raskin = ε,
26+ μ.platforms = ν,
27+ ν.linux = ζ
28+) =>
29+{ fetchurl = {sha256 = String; url = String;} -> η;
30+ java = ξ;
31+ makeWrapper = γ;
32+ stdenv = α;
33+} ->
34+θ
test/golden/importless/bintools.txtnew file+8
@@ -0,0 +1,8 @@
1+∀ α β γ δ ε ζ.
2+(α.hostPlatform = β, α.targetPlatform = β) => { lld = γ;
3+ llvm = δ;
4+ runCommand = String -> {preferLocalBuild = Bool;} -> String -> ε;
5+ stdenv = α;
6+ version = ζ;
7+} ->
8+ε
test/golden/importless/bitcoin-knots.txtnew file+41
@@ -0,0 +1,41 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ configureFlags = [String];
6+ meta =
7+ { description = String;
8+ homepage = String;
9+ license = δ;
10+ maintainers = [ε];
11+ platforms = ζ;
12+ };
13+ nativeBuildInputs = [η];
14+ pname = String;
15+ src = θ;
16+ version = String;
17+ versionDate = String;
18+ } ->
19+ ι,
20+ β.licenses = κ,
21+ β.maintainers = λ,
22+ β.platforms = μ,
23+ κ.mit = δ,
24+ λ.mmahut = ε,
25+ μ.linux = ζ
26+) =>
27+{ autoreconfHook = η;
28+ boost = γ;
29+ db5 = γ;
30+ fetchFromGitHub =
31+ {owner = String; repo = String; rev = String; sha256 = String;} -> θ;
32+ libevent = γ;
33+ miniupnpc = γ;
34+ openssl = γ;
35+ pkgconfig = η;
36+ protobuf = γ;
37+ stdenv = α;
38+ utillinux = γ;
39+ zlib = γ;
40+} ->
41+ι
test/golden/importless/bitwig-studio1.txtnew file+71
@@ -0,0 +1,71 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { binPath = γ;
5+ buildInputs = [δ];
6+ dontBuild = Bool;
7+ dontWrapGApps = Bool;
8+ installPhase = String;
9+ meta =
10+ { description = String;
11+ homepage = String;
12+ license = ε;
13+ longDescription = String;
14+ maintainers = [ζ];
15+ platforms = [String];
16+ };
17+ nativeBuildInputs = [η];
18+ pname = String;
19+ postFixup = String;
20+ src = θ;
21+ unpackCmd = String;
22+ version = String;
23+ } ->
24+ ι,
25+ κ.out = δ,
26+ λ.makeBinPath = [μ] -> γ,
27+ ν.libX11 = δ,
28+ ν.libXau = δ,
29+ ν.libXcursor = δ,
30+ ν.libXdmcp = δ,
31+ ν.libXext = δ,
32+ ν.libXfixes = δ,
33+ ν.libXrender = δ,
34+ ν.libxcb = δ,
35+ ν.libxkbfile = δ,
36+ ν.xcbutil = δ,
37+ ν.xcbutilwm = δ,
38+ β.licenses = ξ,
39+ β.maintainers = ο,
40+ β.michalrus = ζ,
41+ β.mrVanDalo = ζ,
42+ ξ.unfree = ε
43+) =>
44+{ alsaLib = δ;
45+ autoPatchelfHook = η;
46+ bzip2 = κ;
47+ cairo = δ;
48+ dpkg = η;
49+ fetchurl = {sha256 = String; url = String;} -> θ;
50+ ffmpeg_3 = μ;
51+ freetype = δ;
52+ gdk-pixbuf = δ;
53+ gtk2 = δ;
54+ gtk3 = δ;
55+ harfbuzz = δ;
56+ jdk = π;
57+ lib = λ;
58+ libbsd = δ;
59+ libjack2 = δ;
60+ libpng = δ;
61+ libxkbcommon = ρ;
62+ makeWrapper = η;
63+ pixman = δ;
64+ stdenv = α;
65+ wrapGAppsHook = η;
66+ xdg_utils = μ;
67+ xorg = ν;
68+ zenity = μ;
69+ zlib = δ;
70+} ->
71+ι
test/golden/importless/bitwig-studio2.txtnew file+12
@@ -0,0 +1,12 @@
1+∀ α β γ δ ε.
2+( α.overrideAttrs =
3+ ( β ->
4+ {name = String; runtimeDependencies = [γ]; src = δ; version = String;}
5+ ) ->
6+ ε
7+) =>
8+{ bitwig-studio1 = α;
9+ fetchurl = {sha256 = String; url = String;} -> δ;
10+ pulseaudio = γ;
11+} ->
12+ε
test/golden/importless/bitwig-studio3.txtnew file+21
@@ -0,0 +1,21 @@
1+∀ α β γ δ ε ζ η.
2+( α.overrideAttrs =
3+ ( β ->
4+ { buildInputs = [γ];
5+ installPhase = String;
6+ name = String;
7+ runtimeDependencies = [δ];
8+ src = ε;
9+ version = String;
10+ }
11+ ) ->
12+ ζ,
13+ η.libXtst = γ,
14+ β.buildInputs = [γ]
15+) =>
16+{ bitwig-studio1 = α;
17+ fetchurl = {sha256 = String; url = String;} -> ε;
18+ pulseaudio = δ;
19+ xorg = η;
20+} ->
21+ζ
test/golden/importless/blackbird.txtnew file+11
@@ -0,0 +1,11 @@
1+∀ β γ δ.
2+(β.fetchurl = {sha256 = String; url = String;} -> γ, β.vom = δ) => β ->
3+{ asdFilesToKeep = [String];
4+ baseName = String;
5+ deps = [δ];
6+ description = String;
7+ overrides = ∀ α. α -> α;
8+ packageName = String;
9+ src = γ;
10+ version = String;
11+}
test/golden/importless/blackbox-exporter.txtnew file+37
@@ -0,0 +1,37 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.lib = β,
3+ γ.prometheus-exporters = δ,
4+ β.Frostman = ε,
5+ β.fpletz = ε,
6+ β.globin = ε,
7+ β.licenses = ζ,
8+ β.maintainers = η,
9+ β.platforms = θ,
10+ β.willibutz = ε,
11+ ζ.asl20 = ι,
12+ θ.unix = κ,
13+ δ.blackbox = λ
14+) =>
15+{ buildGoPackage =
16+ { doCheck = Bool;
17+ goPackagePath = String;
18+ meta =
19+ { description = String;
20+ homepage = String;
21+ license = ι;
22+ maintainers = [ε];
23+ platforms = κ;
24+ };
25+ passthru = {tests = {blackbox = λ;};};
26+ pname = String;
27+ rev = String;
28+ src = μ;
29+ version = String;
30+ } ->
31+ ν;
32+ fetchFromGitHub =
33+ {owner = String; repo = String; rev = String; sha256 = String;} -> μ;
34+ nixosTests = γ;
35+ stdenv = α;
36+} ->
37+ν
test/golden/importless/bladeRF.txtnew file+19
@@ -0,0 +1,19 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.hardware = ε,
6+ γ.mkIf =
7+ ζ ->
8+ { services = {udev = {packages = [η];};};
9+ users = {groups = {bladerf = {};};};
10+ } ->
11+ θ,
12+ γ.mkOption = {default = Bool; description = String; type = ι;} -> κ,
13+ γ.types = λ,
14+ δ.libbladeRF = η,
15+ ε.bladeRF = μ,
16+ μ.enable = ζ,
17+ λ.bool = ι
18+) =>
19+α -> {config = θ; options = {hardware = {bladeRF = {enable = κ;};};};}
test/golden/importless/blivet.txtnew file+39
@@ -0,0 +1,39 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.lib = β,
3+ β.optional = Bool -> Null -> [γ],
4+ δ.gpl2Plus = ε,
5+ δ.lgpl21Plus = ε,
6+ δ.licenses = ζ,
7+ δ.platforms = η,
8+ η.linux = θ
9+) =>
10+{ buildPythonApplication =
11+ { doCheck = Bool;
12+ meta =
13+ { description = String;
14+ homepage = String;
15+ license = [ε];
16+ platforms = θ;
17+ };
18+ patches = [String];
19+ pname = String;
20+ postPatch = String;
21+ propagatedBuildInputs = [γ];
22+ src = ι;
23+ version = String;
24+ } ->
25+ κ;
26+ cryptsetup = γ;
27+ fetchurl = {sha256 = String; url = String;} -> ι;
28+ libselinux = γ;
29+ lsof = λ;
30+ multipath_tools = μ;
31+ pyblock = γ;
32+ pykickstart = γ;
33+ pyparted = γ;
34+ stdenv = α;
35+ systemd = Null;
36+ useNixUdev = Bool;
37+ utillinux = ν;
38+} ->
39+κ
test/golden/importless/blocks-gaps.txtnew file+42
@@ -0,0 +1,42 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = γ;
5+ installFlags = [String];
6+ makeFlags = [String];
7+ meta =
8+ { description = String;
9+ homepage = String;
10+ license = δ;
11+ maintainers = [ε];
12+ platforms = ζ;
13+ };
14+ nativeBuildInputs = [η];
15+ pname = String;
16+ postFixup = String;
17+ src = θ;
18+ version = String;
19+ } ->
20+ ι,
21+ β.carlsverre = ε,
22+ β.intersectLists = [String] -> [String] -> κ,
23+ β.length = κ -> Number,
24+ β.licenses = λ,
25+ β.maintainers = μ,
26+ β.optional = Bool -> ν -> γ,
27+ β.platforms = ξ,
28+ λ.gpl3 = δ,
29+ ξ.linux = ζ
30+) =>
31+{ acpi = ο;
32+ alsaUtils = π;
33+ fetchFromGitHub =
34+ {owner = String; repo = String; rev = String; sha256 = String;} -> θ;
35+ iproute = ρ;
36+ makeWrapper = η;
37+ perl = ν;
38+ scripts = [String];
39+ stdenv = α;
40+ sysstat = σ;
41+} ->
42+ι
test/golden/importless/blocks.txtnew file+30
@@ -0,0 +1,30 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { meta =
5+ { description = String;
6+ homepage = String;
7+ license = γ;
8+ platforms = [δ];
9+ };
10+ nativeBuildInputs = [ε];
11+ patches = [ζ];
12+ pname = String;
13+ src = η;
14+ version = String;
15+ } ->
16+ θ,
17+ β.freebsd = [δ],
18+ β.licenses = ι,
19+ β.linux = [δ],
20+ β.platforms = κ,
21+ ι.gpl3 = γ
22+) =>
23+{ autoreconfHook = ε;
24+ fetchFromGitHub =
25+ {owner = String; repo = String; rev = String; sha256 = String;} -> η;
26+ fetchpatch = {sha256 = String; url = String;} -> ζ;
27+ pkg-config = ε;
28+ stdenv = α;
29+} ->
30+θ
test/golden/importless/bloodspilot-client.txtnew file+36
@@ -0,0 +1,36 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { NIX_LDFLAGS = String;
5+ buildInputs = [γ];
6+ meta =
7+ { description = String;
8+ homepage = String;
9+ license = δ;
10+ maintainers = [ε];
11+ platforms = ζ;
12+ };
13+ pname = String;
14+ src = η;
15+ version = String;
16+ } ->
17+ θ,
18+ β.licenses = ι,
19+ ι.gpl2Plus = δ,
20+ κ.maintainers = λ,
21+ λ.raskin = ε,
22+ μ.platforms = ν,
23+ ν.linux = ζ
24+) =>
25+{ SDL = γ;
26+ SDL_image = γ;
27+ SDL_ttf = γ;
28+ expat = γ;
29+ fetchurl = {sha256 = String; url = String;} -> η;
30+ libGL = γ;
31+ libGLU = γ;
32+ libX11 = γ;
33+ stdenv = α;
34+ zlib = γ;
35+} ->
36+θ
test/golden/importless/bloodspilot-server.txtnew file+25
@@ -0,0 +1,25 @@
1+∀ α β γ δ ε ζ η θ ι κ λ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ meta =
6+ { description = String;
7+ homepage = String;
8+ license = δ;
9+ maintainers = [ε];
10+ platforms = ζ;
11+ };
12+ patches = [String];
13+ pname = String;
14+ src = η;
15+ version = String;
16+ } ->
17+ θ,
18+ β.licenses = ι,
19+ β.maintainers = κ,
20+ β.platforms = λ,
21+ ι.gpl2Plus = δ,
22+ κ.raskin = ε,
23+ λ.linux = ζ
24+) =>
25+{expat = γ; fetchurl = {sha256 = String; url = String;} -> η; stdenv = α;} -> θ
test/golden/importless/bluedevil.txt+19−1
@@ -1 +1,19 @@
1−∀ α β γ. { bluez-qt = α; extra-cmake-modules = β; kcoreaddons = α; kdbusaddons = α; kded = α; ki18n = α; kiconthemes = α; kio = α; knotifications = α; kwidgetsaddons = α; kwindowsystem = α; mkDerivation = { buildInputs = [α]; name = String; nativeBuildInputs = [β] } -> γ; plasma-framework = α; qtdeclarative = α; shared-mime-info = β } -> γ
1+∀ α β γ.
2+{ bluez-qt = α;
3+ extra-cmake-modules = β;
4+ kcoreaddons = α;
5+ kdbusaddons = α;
6+ kded = α;
7+ ki18n = α;
8+ kiconthemes = α;
9+ kio = α;
10+ knotifications = α;
11+ kwidgetsaddons = α;
12+ kwindowsystem = α;
13+ mkDerivation =
14+ {buildInputs = [α]; name = String; nativeBuildInputs = [β];} -> γ;
15+ plasma-framework = α;
16+ qtdeclarative = α;
17+ shared-mime-info = β;
18+} ->
19+γ
test/golden/importless/blueman.txtnew file+18
@@ -0,0 +1,18 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.services = ε,
6+ γ.mkEnableOption = String -> ζ,
7+ γ.mkIf =
8+ η ->
9+ { environment = {systemPackages = [θ];};
10+ services = {dbus = {packages = [ι];};};
11+ systemd = {packages = [κ];};
12+ } ->
13+ λ,
14+ δ.blueman = θ,
15+ ε.blueman = μ,
16+ μ.enable = η
17+) =>
18+α -> {config = λ; options = {services = {blueman = {enable = ζ;};};};}
test/golden/importless/bluez-qt.txtnew file+16
@@ -0,0 +1,16 @@
1+∀ α β γ δ ε ζ η θ.
2+(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3+ lib = α;
4+ mkDerivation =
5+ { buildInputs = [η];
6+ meta = {broken = Bool; maintainers = [ε];};
7+ name = String;
8+ nativeBuildInputs = [ζ];
9+ preConfigure = String;
10+ propagatedBuildInputs = [γ];
11+ } ->
12+ θ;
13+ qtbase = γ;
14+ qtdeclarative = η;
15+} ->
16+θ
test/golden/importless/bolt.txtnew file+22
@@ -0,0 +1,22 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.services = ε,
6+ γ.mkIf =
7+ ζ ->
8+ { environment = {systemPackages = [η];};
9+ services = {udev = {packages = [θ];};};
10+ systemd = {packages = [ι];};
11+ } ->
12+ κ,
13+ γ.mkOption = {default = Bool; description = String; type = λ;} -> μ,
14+ γ.types = ν,
15+ δ.bolt = η,
16+ ε.hardware = ξ,
17+ ξ.bolt = ο,
18+ ο.enable = ζ,
19+ ν.bool = λ
20+) =>
21+α ->
22+{config = κ; options = {services = {hardware = {bolt = {enable = μ;};};};};}
test/golden/importless/bomber.txtnew file+29
@@ -0,0 +1,29 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.freezeboy = β,
3+ α.licenses = γ,
4+ α.maintainers = δ,
5+ α.platforms = ε,
6+ γ.gpl2Plus = ζ,
7+ ε.linux = η
8+) =>
9+{ extra-cmake-modules = θ;
10+ kdeclarative = ι;
11+ knewstuff = ι;
12+ lib = α;
13+ libkdegames = ι;
14+ mkDerivation =
15+ { buildInputs = [ι];
16+ meta =
17+ { description = String;
18+ homepage = String;
19+ license = ζ;
20+ longDescription = String;
21+ maintainers = [β];
22+ platforms = η;
23+ };
24+ name = String;
25+ nativeBuildInputs = [θ];
26+ } ->
27+ κ;
28+} ->
29+κ
test/golden/importless/boot.txtnew file+27
@@ -0,0 +1,27 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.lib = β,
3+ β.maintainers = γ,
4+ γ.gridaphobe = δ,
5+ ε.platforms = ζ,
6+ ζ.darwin = η
7+) =>
8+{ appleDerivation =
9+ { buildInputs = [θ];
10+ buildPhase = String;
11+ installPhase = String;
12+ meta = {maintainers = [δ]; platforms = η;};
13+ nativeBuildInputs = [θ];
14+ outputs = [String];
15+ patchPhase = String;
16+ preBuild = String;
17+ setOutputFlags = Bool;
18+ } ->
19+ ι;
20+ bsdmake = θ;
21+ fetchzip = {sha256 = String; url = String;} -> κ;
22+ flex = θ;
23+ perl = θ;
24+ stdenv = α;
25+ yacc = θ;
26+} ->
27+ι
test/golden/importless/bootstrap.txtnew file+35
@@ -0,0 +1,35 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ buildPhase = String;
6+ installPhase = String;
7+ meta =
8+ { description = String;
9+ homepage = String;
10+ license = δ;
11+ maintainers = [ε];
12+ platforms = ζ;
13+ };
14+ pname = String;
15+ postInstall = String;
16+ src = η;
17+ unpackPhase = String;
18+ version = String;
19+ } ->
20+ θ,
21+ β.licenses = ι,
22+ ι.free = δ,
23+ κ.maintainers = λ,
24+ λ.jwiegley = ε,
25+ μ.platforms = ν,
26+ ν.darwin = ζ
27+) =>
28+{ cpio = γ;
29+ fetchurl = {sha256 = String; url = String;} -> η;
30+ makeWrapper = γ;
31+ rsync = γ;
32+ stdenv = α;
33+ xar = ξ;
34+} ->
35+θ
test/golden/importless/bordeaux-threads.txtnew file+16
@@ -0,0 +1,16 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.fetchurl = {sha256 = String; url = String;} -> δ,
4+ β.fiveam = γ
5+) =>
6+β ->
7+{ asdFilesToKeep = [String];
8+ baseName = String;
9+ deps = [γ];
10+ description = String;
11+ overrides = ∀ α. α -> α;
12+ packageName = String;
13+ parasites = [String];
14+ src = δ;
15+ version = String;
16+}
test/golden/importless/bovo.txtnew file+29
@@ -0,0 +1,29 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.freezeboy = β,
3+ α.licenses = γ,
4+ α.maintainers = δ,
5+ α.platforms = ε,
6+ γ.gpl2Plus = ζ,
7+ ε.linux = η
8+) =>
9+{ extra-cmake-modules = θ;
10+ kdeclarative = ι;
11+ knewstuff = ι;
12+ lib = α;
13+ libkdegames = ι;
14+ mkDerivation =
15+ { buildInputs = [ι];
16+ meta =
17+ { description = String;
18+ homepage = String;
19+ license = ζ;
20+ longDescription = String;
21+ maintainers = [β];
22+ platforms = η;
23+ };
24+ name = String;
25+ nativeBuildInputs = [θ];
26+ } ->
27+ κ;
28+} ->
29+κ
test/golden/importless/bower-packages.txt+5−1
@@ -1 +1,5 @@
1−∀ α β. { buildEnv = { ignoreCollisions = Bool; name = String; paths = [α] } -> β; fetchbower = String -> String -> String -> String -> α } -> β
1+∀ α β.
2+{ buildEnv = {ignoreCollisions = Bool; name = String; paths = [α];} -> β;
3+ fetchbower = String -> String -> String -> String -> α;
4+} ->
5+β
test/golden/importless/breeze-grub.txt+1−1
@@ -1 +1 @@
1−∀ α. { mkDerivation = { installPhase = String; name = String } -> α } -> α
1+∀ α. {mkDerivation = {installPhase = String; name = String;} -> α;} -> α
test/golden/importless/breeze-gtk.txtnew file+18
@@ -0,0 +1,18 @@
1+∀ α β γ δ ε ζ η.
2+(α.getLib = β, γ.pkgs = δ, δ.pycairo = γ) => { breeze-qt5 = γ;
3+ extra-cmake-modules = γ;
4+ gtk2 = ε;
5+ lib = α;
6+ mkDerivation =
7+ { buildInputs = [ζ];
8+ cmakeFlags = [String];
9+ name = String;
10+ nativeBuildInputs = [γ];
11+ postPatch = String;
12+ } ->
13+ η;
14+ python3 = γ;
15+ qtbase = ζ;
16+ sassc = γ;
17+} ->
18+η
test/golden/importless/breeze-icons.txtnew file+19
@@ -0,0 +1,19 @@
1+∀ α β γ δ ε ζ η.
2+(α.maintainers = β, β.ttuegel = γ) => { extra-cmake-modules = δ;
3+ gtk3 = δ;
4+ hicolor-icon-theme = ε;
5+ lib = α;
6+ mkDerivation =
7+ { buildInputs = [ζ];
8+ dontDropIconThemeCache = Bool;
9+ meta = {maintainers = [γ];};
10+ name = String;
11+ nativeBuildInputs = [δ];
12+ outputs = [String];
13+ postInstall = String;
14+ propagatedBuildInputs = [ε];
15+ } ->
16+ η;
17+ qtsvg = ζ;
18+} ->
19+η
test/golden/importless/breeze-qt5.txt+26−1
@@ -1 +1,26 @@
1−∀ α β γ. { extra-cmake-modules = α; fftw = β; frameworkintegration = β; kcmutils = β; kconfigwidgets = β; kcoreaddons = β; kdecoration = β; kguiaddons = β; ki18n = β; kwayland = β; kwindowsystem = β; mkDerivation = { cmakeFlags = [String]; name = String; nativeBuildInputs = [α]; outputs = [String]; propagatedBuildInputs = [β]; sname = String } -> γ; plasma-framework = β; qtdeclarative = β; qtx11extras = β } -> γ
1+∀ α β γ.
2+{ extra-cmake-modules = α;
3+ fftw = β;
4+ frameworkintegration = β;
5+ kcmutils = β;
6+ kconfigwidgets = β;
7+ kcoreaddons = β;
8+ kdecoration = β;
9+ kguiaddons = β;
10+ ki18n = β;
11+ kwayland = β;
12+ kwindowsystem = β;
13+ mkDerivation =
14+ { cmakeFlags = [String];
15+ name = String;
16+ nativeBuildInputs = [α];
17+ outputs = [String];
18+ propagatedBuildInputs = [β];
19+ sname = String;
20+ } ->
21+ γ;
22+ plasma-framework = β;
23+ qtdeclarative = β;
24+ qtx11extras = β;
25+} ->
26+γ
test/golden/importless/brillo.txtnew file+17
@@ -0,0 +1,17 @@
1+∀ α β γ δ ε ζ η θ ι κ λ.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.hardware = ε,
6+ γ.mkEnableOption = String -> ζ,
7+ γ.mkIf =
8+ η ->
9+ { environment = {systemPackages = [θ];};
10+ services = {udev = {packages = [ι];};};
11+ } ->
12+ κ,
13+ δ.brillo = θ,
14+ ε.brillo = λ,
15+ λ.enable = η
16+) =>
17+α -> {config = κ; options = {hardware = {brillo = {enable = ζ;};};};}
test/golden/importless/brltty.txtnew file+45
@@ -0,0 +1,45 @@
1+∀ α β γ δ ε ζ η θ ι κ λ.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.services = ε,
6+ γ.mkIf =
7+ ζ ->
8+ { systemd =
9+ { services =
10+ { brltty =
11+ { after = [String];
12+ before = [String];
13+ description = String;
14+ serviceConfig =
15+ { ExecStart = String;
16+ Nice = Number;
17+ OOMScoreAdjust = Number;
18+ ProtectHome = String;
19+ ProtectSystem = String;
20+ Restart = String;
21+ RestartSec = Number;
22+ SystemCallArchitectures = String;
23+ TimeoutStartSec = Number;
24+ TimeoutStopSec = Number;
25+ Type = String;
26+ };
27+ unitConfig =
28+ { DefaultDependencies = String;
29+ Documentation = String;
30+ RequiresMountsFor = String;
31+ };
32+ wantedBy = [String];
33+ wants = [String];
34+ };
35+ };
36+ };
37+ } ->
38+ η,
39+ γ.mkOption = {default = Bool; description = String; type = θ;} -> ι,
40+ γ.types = κ,
41+ ε.brltty = λ,
42+ λ.enable = ζ,
43+ κ.bool = θ
44+) =>
45+α -> {config = η; options = {services = {brltty = {enable = ι;};};};}
test/golden/importless/broadcom-43xx.txt+1−1
@@ -1 +1 @@
1−{ hardware = { enableRedistributableFirmware = Bool } }
1+{hardware = {enableRedistributableFirmware = Bool;};}
test/golden/importless/browser.txtnew file+34
@@ -0,0 +1,34 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ meta =
6+ { description = String;
7+ homepage = δ;
8+ license = ε;
9+ maintainers = [ζ];
10+ platforms = η;
11+ };
12+ nativeBuildInputs = [θ];
13+ pname = String;
14+ src = ι;
15+ version = String;
16+ } ->
17+ κ,
18+ ι.meta = λ,
19+ β.dotlambda = ζ,
20+ β.licenses = μ,
21+ β.maintainers = ν,
22+ β.platforms = ξ,
23+ μ.unlicense = ε,
24+ ξ.linux = η,
25+ λ.homepage = δ
26+) =>
27+{ cmake = θ;
28+ fetchFromGitHub =
29+ {owner = String; repo = String; rev = String; sha256 = String;} -> ι;
30+ qtbase = γ;
31+ stdenv = α;
32+ wrapQtAppsHook = θ;
33+} ->
34+κ
test/golden/importless/browserpass.txtnew file+27
@@ -0,0 +1,27 @@
1+∀ α β γ δ ε ζ η θ ι.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.programs = ε,
6+ γ.mkEnableOption = String -> ζ,
7+ γ.mkIf =
8+ η ->
9+ { environment =
10+ { etc =
11+ { chromium/native-messaging-hosts/ = {source = String;};
12+ chromium/policies/managed/ = {source = String;};
13+ opt/brave/native-messaging-hosts/ = {source = String;};
14+ opt/brave/policies/managed/ = {source = String;};
15+ opt/chrome/native-messaging-hosts/ = {source = String;};
16+ opt/chrome/policies/managed/ = {source = String;};
17+ opt/vivaldi/native-messaging-hosts/ = {source = String;};
18+ opt/vivaldi/policies/managed/ = {source = String;};
19+ };
20+ };
21+ nixpkgs = {config = {firefox = {enableBrowserpass = Bool;};};};
22+ } ->
23+ θ,
24+ ε.browserpass = ι,
25+ ι.enable = η
26+) =>
27+α -> {config = θ; options = {programs = {browserpass = {enable = ζ;};};};}
test/golden/importless/bson.txtnew file+21
@@ -0,0 +1,21 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.meta = β,
3+ α.src = γ,
4+ α.version = δ,
5+ β.homepage = ε,
6+ ζ.license = η,
7+ θ.maintainers = ι
8+) =>
9+{ buildDunePackage =
10+ { meta =
11+ {description = String; homepage = ε; license = η; maintainers = ι;};
12+ pname = String;
13+ propagatedBuildInputs = [α];
14+ src = γ;
15+ version = δ;
16+ } ->
17+ κ;
18+ ocplib-endian = α;
19+ ocplib-json-typed = α;
20+} ->
21+κ
test/golden/importless/build-rebar3.txtnew file+61
@@ -0,0 +1,61 @@
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ.
2+( β // γ ~ {buildInputs = [δ]; name = String;},
3+ { buildInputs = [ε];
4+ buildPhase = String;
5+ buildPlugins = [ζ];
6+ compilePorts = Bool;
7+ configurePhase = String;
8+ dontStrip = Bool;
9+ installPhase = String;
10+ meta = ∀ α. α;
11+ name = String;
12+ passthru = {beamDeps = [ζ]; env = η; packageName = θ;};
13+ postPatch = String;
14+ propagatedBuildInputs = ι;
15+ setupHook = κ;
16+ src = λ;
17+ version = μ;
18+ } //
19+ ν ~
20+ γ,
21+ β.?beamDeps = [ζ],
22+ β.?buildInputs = [ε],
23+ β.?buildPhase = Null,
24+ β.?buildPlugins = [ζ],
25+ β.?compilePorts = Bool,
26+ β.?configurePhase = Null,
27+ β.?enableDebugInfo = Bool,
28+ β.?installPhase = Null,
29+ β.?meta = {},
30+ β.?postPatch = String,
31+ β.?setupHook = Null,
32+ ξ.lib = ο,
33+ ξ.mkDerivation = {buildInputs = [δ]; name = String;} -> η,
34+ ε.debugInfo = Bool,
35+ ε.meta = π,
36+ ρ.optionalString = Bool -> String -> σ,
37+ β.name = θ,
38+ β.src = λ,
39+ β.version = μ,
40+ ο.filterAttrs =
41+ (τ -> Null -> Bool) ->
42+ { buildPhase = Null;
43+ configurePhase = Null;
44+ installPhase = Null;
45+ setupHook = Null;
46+ } ->
47+ ν,
48+ ο.fix = (δ -> η) -> υ,
49+ ο.unique = [ζ] -> ι,
50+ π.platforms = φ
51+) =>
52+{ erlang = ε;
53+ lib = ρ;
54+ libyaml = ε;
55+ openssl = ε;
56+ pc = ζ;
57+ rebar3 = ε;
58+ stdenv = ξ;
59+ writeText = String -> String -> κ;
60+} ->
61+β -> υ
test/golden/importless/build-skaware-package.txtnew file+46
@@ -0,0 +1,46 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ.
2+( α.isDarwin = Bool,
3+ α.lib = β,
4+ α.mkDerivation =
5+ { configureFlags = [String];
6+ dontDisableStatic = Bool;
7+ enableParallelBuilding = Bool;
8+ meta =
9+ { description = γ;
10+ homepage = String;
11+ license = δ;
12+ maintainers = [ε];
13+ platforms = ζ;
14+ };
15+ outputs = [String];
16+ pname = η;
17+ postFixup = String;
18+ postInstall = String;
19+ src = θ;
20+ version = ι;
21+ } ->
22+ κ,
23+ β.maintainers = λ,
24+ β.optional = μ -> String -> [String],
25+ β.platforms = ν,
26+ ν.all = ζ,
27+ ξ.licenses = ο,
28+ ο.isc = δ,
29+ λ.Profpatsch = ε,
30+ λ.pmahoney = ε
31+) =>
32+{ cleanPackaging = π;
33+ fetchurl = {sha256 = ρ; url = String;} -> θ;
34+ stdenv = α;
35+} ->
36+{ configureFlags = [String];
37+ description = γ;
38+ maintainers = [ε];
39+ outputs = [String];
40+ platforms = ζ;
41+ pname = η;
42+ postInstall = σ;
43+ sha256 = ρ;
44+ version = ι;
45+} ->
46+κ
test/golden/importless/build-solution.txtnew file+25
@@ -0,0 +1,25 @@
1+∀ α β γ δ ε ζ η.
2+( α.mkDerivation =
3+ { buildInputs = [β];
4+ installPhase = String;
5+ name = γ;
6+ preBuild = String;
7+ preConfigure = String;
8+ src = δ;
9+ } ->
10+ ε
11+) =>
12+{dotnetfx = β; stdenv = α;} ->
13+{ assemblyInputs = [ζ];
14+ baseDir = String;
15+ mainClassFile = Null;
16+ modifyPublicMain = Bool;
17+ name = γ;
18+ options = String;
19+ preBuild = String;
20+ slnFile = η;
21+ src = δ;
22+ targets = String;
23+ verbosity = String;
24+} ->
25+ε
test/golden/importless/build-tools.txtnew file+27
@@ -0,0 +1,27 @@
1+∀ α β γ δ ε ζ η.
2+( α.optionals = Bool -> [β] -> [γ],
3+ δ.glibc = β,
4+ δ.libcxx = β,
5+ δ.ncurses5 = β,
6+ δ.zlib = β,
7+ ε.glibc = β,
8+ ε.ncurses5 = β,
9+ ε.zlib = β
10+) =>
11+{ autoPatchelfHook = γ;
12+ deployAndroidPackage =
13+ { buildInputs = [γ];
14+ noAuditTmpdir = Bool;
15+ os = String;
16+ package = ζ;
17+ patchInstructions = String;
18+ } ->
19+ η;
20+ lib = α;
21+ makeWrapper = γ;
22+ os = String;
23+ package = ζ;
24+ pkgs = δ;
25+ pkgs_i686 = ε;
26+} ->
27+η
test/golden/importless/build.txtnew file+51
@@ -0,0 +1,51 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ hardeningDisable = [String];
6+ makeFlags = [String];
7+ meta =
8+ { description = String;
9+ homepage = String;
10+ license = δ;
11+ maintainers = [ε];
12+ platforms = ζ;
13+ };
14+ nativeBuildInputs = [η];
15+ patches = [θ];
16+ pname = String;
17+ postInstall = String;
18+ postPatch = String;
19+ src = ι;
20+ version = κ;
21+ } ->
22+ λ,
23+ β.licenses = μ,
24+ β.ma27 = ε,
25+ β.maintainers = ν,
26+ β.platforms = ξ,
27+ μ.mit = δ,
28+ ξ.linux = ζ
29+) =>
30+{ alsaLib = γ;
31+ asciidoc = γ;
32+ cairo = γ;
33+ configFile = Null;
34+ docbook_xsl = γ;
35+ fetchFromGitHub = {owner = String; repo = String; rev = ο; sha256 = π;} -> ι;
36+ gdk-pixbuf = γ;
37+ lib = ρ;
38+ libconfig = γ;
39+ libxslt = γ;
40+ makeWrapper = γ;
41+ pango = γ;
42+ patches = [θ];
43+ pkgconfig = η;
44+ rev = ο;
45+ sha256 = π;
46+ stdenv = α;
47+ version = κ;
48+ wirelesstools = γ;
49+ xcbutilwm = γ;
50+} ->
51+λ
test/golden/importless/buildOcamlJane.txt+27−1
@@ -1 +1,27 @@
1−∀ α β γ δ. { buildOcaml = { buildInputs = [α]; buildPhase = String; configurePhase = String; dontAddPrefix = Bool; hasSharedObjects = Bool; hash = String; installPhase = String; minimumSupportedOcamlVersion = String; name = β; src = γ; version = String } -> δ; fetchurl = { sha256 = String; url = String } -> γ; js_build_tools = α; ocaml_oasis = α; opaline = α } -> { buildInputs = [α]; hash = String; minimumSupportedOcamlVersion = String; name = β; version = String } -> δ
1+∀ α β γ δ ε ζ.
2+( α //
3+ { buildInputs = [β];
4+ buildPhase = String;
5+ configurePhase = String;
6+ dontAddPrefix = Bool;
7+ hasSharedObjects = Bool;
8+ installPhase = String;
9+ minimumSupportedOcamlVersion = String;
10+ name = γ;
11+ src = δ;
12+ version = String;
13+ } ~
14+ ε,
15+ α.?buildInputs = [β],
16+ α.?hash = String,
17+ α.?minimumSupportedOcamlVersion = String,
18+ α.?version = String,
19+ α.name = γ
20+) =>
21+{ buildOcaml = ε -> ζ;
22+ fetchurl = {sha256 = String; url = String;} -> δ;
23+ js_build_tools = β;
24+ ocaml_oasis = β;
25+ opaline = β;
26+} ->
27+α -> ζ
test/golden/importless/builder.txtnew file+24
@@ -0,0 +1,24 @@
1+∀ α β γ δ ε ζ η θ.
2+( α //
3+ { buildPhase = String;
4+ checkPhase = String;
5+ configurePhase = String;
6+ installPhase = String;
7+ modRoot = String;
8+ passthru = {forCurses = Bool; forTiles = Bool;};
9+ pname = String;
10+ } ~
11+ β,
12+ α.?buildPhase = String,
13+ α.?checkPhase = String,
14+ α.?configurePhase = String,
15+ α.?installPhase = String,
16+ α.?modRoot = String,
17+ α.?pname = String,
18+ γ.mkDerivation = β -> δ,
19+ ε.elem = String -> [String] -> Bool,
20+ α.modName = ζ,
21+ α.src = η,
22+ α.version = θ
23+) =>
24+{lib = ε; stdenvNoCC = γ; type = String;} -> α -> δ
test/golden/importless/buildnode-xhtml.txtnew file+33
@@ -0,0 +1,33 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.babel = γ,
4+ β.buildnode = γ,
5+ β.cl-interpol = γ,
6+ β.cl-ppcre = γ,
7+ β.cl-unicode = γ,
8+ β.closer-mop = γ,
9+ β.closure-common = γ,
10+ β.closure-html = γ,
11+ β.collectors = γ,
12+ β.cxml = γ,
13+ β.fetchurl = {sha256 = String; url = String;} -> δ,
14+ β.flexi-streams = γ,
15+ β.iterate = γ,
16+ β.named-readtables = γ,
17+ β.puri = γ,
18+ β.split-sequence = γ,
19+ β.swank = γ,
20+ β.symbol-munger = γ,
21+ β.trivial-features = γ,
22+ β.trivial-gray-streams = γ
23+) =>
24+β ->
25+{ asdFilesToKeep = [String];
26+ baseName = String;
27+ deps = [γ];
28+ description = String;
29+ overrides = ∀ α. α -> α;
30+ packageName = String;
31+ src = δ;
32+ version = String;
33+}
test/golden/importless/buildnode.txtnew file+35
@@ -0,0 +1,35 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.babel = γ,
4+ β.buildnode-xhtml = γ,
5+ β.cl-interpol = γ,
6+ β.cl-ppcre = γ,
7+ β.cl-unicode = γ,
8+ β.closer-mop = γ,
9+ β.closure-common = γ,
10+ β.closure-html = γ,
11+ β.collectors = γ,
12+ β.cxml = γ,
13+ β.fetchurl = {sha256 = String; url = String;} -> δ,
14+ β.flexi-streams = γ,
15+ β.iterate = γ,
16+ β.lisp-unit2 = γ,
17+ β.named-readtables = γ,
18+ β.puri = γ,
19+ β.split-sequence = γ,
20+ β.swank = γ,
21+ β.symbol-munger = γ,
22+ β.trivial-features = γ,
23+ β.trivial-gray-streams = γ
24+) =>
25+β ->
26+{ asdFilesToKeep = [String];
27+ baseName = String;
28+ deps = [γ];
29+ description = String;
30+ overrides = ∀ α. α -> α;
31+ packageName = String;
32+ parasites = [String];
33+ src = δ;
34+ version = String;
35+}
test/golden/importless/builds.txtnew file+43
@@ -0,0 +1,43 @@
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( β.lib = γ,
3+ δ.nativeBuildInputs = ε,
4+ γ.eadwu = ζ,
5+ γ.licenses = η,
6+ γ.maintainers = θ,
7+ η.agpl3 = ι
8+) =>
9+{ buildGoModule =
10+ { doCheck = Bool;
11+ pname = String;
12+ src = κ;
13+ vendorSha256 = String;
14+ version = String;
15+ } ->
16+ λ;
17+ buildPythonPackage =
18+ { meta =
19+ { description = String;
20+ homepage = String;
21+ license = ι;
22+ maintainers = [ζ];
23+ };
24+ nativeBuildInputs = ε;
25+ patches = [String];
26+ pname = String;
27+ postInstall = String;
28+ preBuild = String;
29+ propagatedBuildInputs = [δ];
30+ src = μ;
31+ version = ∀ α. α;
32+ } ->
33+ ν;
34+ celery = δ;
35+ fetchgit = {rev = ∀ α. α; sha256 = String; url = String;} -> μ;
36+ markdown = δ;
37+ python = ξ;
38+ pyyaml = δ;
39+ redis = δ;
40+ srht = δ;
41+ stdenv = β;
42+} ->
43+ν
test/golden/importless/bytes.txtnew file+13
@@ -0,0 +1,13 @@
1+∀ α β γ δ ε.
2+(α.maintainers = β, β.brainrape = γ) => { build-idris-package =
3+ { meta = {description = String; homepage = String; maintainers = [γ];};
4+ name = String;
5+ src = δ;
6+ version = String;
7+ } ->
8+ ε;
9+ fetchFromGitHub =
10+ {owner = String; repo = String; rev = String; sha256 = String;} -> δ;
11+ lib = α;
12+} ->
13+ε
test/golden/importless/caffeine-plus.txtnew file+34
@@ -0,0 +1,34 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.licenses = β,
3+ α.maintainers = γ,
4+ α.peterhoeg = δ,
5+ ε.meta = ζ,
6+ η.meta = θ,
7+ β.gpl2 = ι,
8+ ζ.platforms = κ,
9+ θ.homepage = λ
10+) =>
11+{ extra-cmake-modules = μ;
12+ fetchFromGitHub =
13+ {owner = String; repo = String; rev = String; sha256 = String;} -> η;
14+ kwindowsystem = ε;
15+ lib = α;
16+ mkDerivation =
17+ { buildInputs = [ε];
18+ cmakeFlags = [String];
19+ meta =
20+ { description = String;
21+ homepage = λ;
22+ license = ι;
23+ maintainers = [δ];
24+ platforms = κ;
25+ };
26+ nativeBuildInputs = [μ];
27+ pname = String;
28+ src = η;
29+ version = String;
30+ } ->
31+ ν;
32+ plasma-framework = ε;
33+} ->
34+ν
test/golden/importless/calendarsupport.txtnew file+27
@@ -0,0 +1,27 @@
1+∀ α β γ δ ε ζ η θ.
2+(α.licenses = β, β.fdl12 = γ, β.gpl2 = γ, β.lgpl21 = γ) => { akonadi = δ;
3+ akonadi-calendar = ε;
4+ akonadi-mime = δ;
5+ akonadi-notes = δ;
6+ extra-cmake-modules = ζ;
7+ kcalutils = δ;
8+ kdepim-apps-libs = δ;
9+ kdepimTeam = η;
10+ kdoctools = ζ;
11+ kholidays = δ;
12+ kidentitymanagement = ε;
13+ kmime = ε;
14+ lib = α;
15+ mkDerivation =
16+ { buildInputs = [δ];
17+ meta = {license = [γ]; maintainers = η;};
18+ name = String;
19+ nativeBuildInputs = [ζ];
20+ outputs = [String];
21+ propagatedBuildInputs = [ε];
22+ } ->
23+ θ;
24+ pimcommon = δ;
25+ qttools = δ;
26+} ->
27+θ
test/golden/importless/calibre-server.txtnew file+42
@@ -0,0 +1,42 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.ids = ε,
6+ β.services = ζ,
7+ γ.mkEnableOption = String -> η,
8+ γ.mkIf =
9+ θ ->
10+ { environment = {systemPackages = [ι];};
11+ systemd =
12+ { services =
13+ { calibre-server =
14+ { after = [String];
15+ description = String;
16+ serviceConfig =
17+ {ExecStart = String; Restart = String; User = String;};
18+ wantedBy = [String];
19+ };
20+ };
21+ };
22+ users =
23+ { groups = {calibre-server = {gid = κ;};};
24+ users = {calibre-server = {group = String; uid = λ;};};
25+ };
26+ } ->
27+ μ,
28+ γ.mkOption = {description = String; type = ν;} -> ξ,
29+ γ.types = ο,
30+ δ.calibre = ι,
31+ ζ.calibre-server = π,
32+ π.enable = θ,
33+ ε.gids = ρ,
34+ ρ.calibre-server = κ,
35+ σ.uids = τ,
36+ τ.calibre-server = λ,
37+ ο.path = ν
38+) =>
39+α ->
40+{ config = μ;
41+ options = {services = {calibre-server = {enable = η; libraryDir = ξ;};};};
42+}
test/golden/importless/camlp4.txtnew file+25
@@ -0,0 +1,25 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.licenses = β,
3+ α.maintainers = γ,
4+ δ.meta = ε,
5+ β.lgpl21 = ζ,
6+ γ.vbgl = η,
7+ ε.homepage = θ
8+) =>
9+{ buildDunePackage =
10+ { meta =
11+ {description = String; homepage = θ; license = ζ; maintainers = [η];};
12+ minimumOCamlVersion = String;
13+ pname = String;
14+ preBuild = String;
15+ propagatedBuildInputs = [ι];
16+ src = δ;
17+ version = String;
18+ } ->
19+ κ;
20+ camlp4 = ι;
21+ fetchFromGitHub =
22+ {owner = String; repo = String; rev = String; sha256 = String;} -> δ;
23+ lib = α;
24+} ->
25+κ
test/golden/importless/canto-daemon.txtnew file+28
@@ -0,0 +1,28 @@
1+∀ α β γ δ ε ζ η θ ι κ λ.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.services = ε,
6+ γ.mkIf =
7+ ζ ->
8+ { systemd =
9+ { user =
10+ { services =
11+ { canto-daemon =
12+ { after = [String];
13+ description = String;
14+ serviceConfig = {ExecStart = String;};
15+ wantedBy = [String];
16+ };
17+ };
18+ };
19+ };
20+ } ->
21+ η,
22+ γ.mkOption = {default = Bool; description = String; type = θ;} -> ι,
23+ γ.types = κ,
24+ ε.canto-daemon = λ,
25+ λ.enable = ζ,
26+ κ.bool = θ
27+) =>
28+α -> {config = η; options = {services = {canto-daemon = {enable = ι;};};};}
test/golden/importless/canvas.txtnew file+14
@@ -0,0 +1,14 @@
1+∀ α β γ δ ε.
2+(α.maintainers = β, β.brainrape = γ) => { build-idris-package =
3+ { ipkgName = String;
4+ meta = {description = String; homepage = String; maintainers = [γ];};
5+ name = String;
6+ src = δ;
7+ version = String;
8+ } ->
9+ ε;
10+ fetchFromGitHub =
11+ {owner = String; repo = String; rev = String; sha256 = String;} -> δ;
12+ lib = α;
13+} ->
14+ε
test/golden/importless/caps2esc.txtnew file+29
@@ -0,0 +1,29 @@
1+∀ α β γ δ ε ζ η θ ι κ λ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { meta =
5+ { description = String;
6+ homepage = String;
7+ license = γ;
8+ maintainers = [δ];
9+ platforms = ε;
10+ };
11+ nativeBuildInputs = [ζ];
12+ pname = String;
13+ src = η;
14+ version = String;
15+ } ->
16+ θ,
17+ β.licenses = ι,
18+ β.maintainers = κ,
19+ β.platforms = λ,
20+ ι.mit = γ,
21+ κ.vyp = δ,
22+ λ.linux = ε
23+) =>
24+{ cmake = ζ;
25+ fetchFromGitLab =
26+ {owner = String; repo = String; rev = String; sha256 = String;} -> η;
27+ stdenv = α;
28+} ->
29+θ
test/golden/importless/carnix.txtnew file+209
@@ -0,0 +1,209 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.attrsets = β,
3+ α.lists = γ,
4+ δ.crates = ε,
5+ β.recursiveUpdate = ζ,
6+ γ.fold = η,
7+ ε.carnix = θ,
8+ θ.0.10.0 = {aho_corasick = {0.6.10 = {memchr = String;};};} -> {} -> ι
9+) =>
10+{ buildPlatform = κ;
11+ buildRustCrate = λ;
12+ buildRustCrateHelpers = μ;
13+ cratesIO = δ;
14+ fetchgit = ν;
15+ lib = α;
16+} ->
17+{ __all = [ι];
18+ carnix = {} -> ι;
19+ crates = δ;
20+ deps =
21+ { aho_corasick = {0.6.10 = {memchr = String;};};
22+ ansi_term = {0.11.0 = {winapi = String;};};
23+ argon2rs = {0.2.5 = {blake2_rfc = String; scoped_threadpool = String;};};
24+ arrayvec = {0.4.10 = {nodrop = String;};};
25+ atty = {0.2.11 = {libc = String; termion = String; winapi = String;};};
26+ autocfg = {0.1.2 = {};};
27+ backtrace =
28+ { 0.3.14 =
29+ { autocfg = String;
30+ backtrace_sys = String;
31+ cfg_if = String;
32+ libc = String;
33+ rustc_demangle = String;
34+ winapi = String;
35+ };
36+ };
37+ backtrace_sys = {0.1.28 = {cc = String; libc = String;};};
38+ bitflags = {1.0.4 = {};};
39+ blake2_rfc = {0.2.18 = {arrayvec = String; constant_time_eq = String;};};
40+ carnix =
41+ { 0.10.0 =
42+ { clap = String;
43+ dirs = String;
44+ env_logger = String;
45+ failure = String;
46+ failure_derive = String;
47+ itertools = String;
48+ log = String;
49+ nom = String;
50+ regex = String;
51+ serde = String;
52+ serde_derive = String;
53+ serde_json = String;
54+ tempdir = String;
55+ toml = String;
56+ url = String;
57+ };
58+ };
59+ cc = {1.0.32 = {};};
60+ cfg_if = {0.1.7 = {};};
61+ clap =
62+ { 2.32.0 =
63+ { ansi_term = String;
64+ atty = String;
65+ bitflags = String;
66+ strsim = String;
67+ textwrap = String;
68+ unicode_width = String;
69+ vec_map = String;
70+ };
71+ };
72+ cloudabi = {0.0.3 = {bitflags = String;};};
73+ constant_time_eq = {0.1.3 = {};};
74+ dirs = {1.0.5 = {libc = String; redox_users = String; winapi = String;};};
75+ either = {1.5.1 = {};};
76+ env_logger =
77+ { 0.6.1 =
78+ { atty = String;
79+ humantime = String;
80+ log = String;
81+ regex = String;
82+ termcolor = String;
83+ };
84+ };
85+ failure = {0.1.5 = {backtrace = String; failure_derive = String;};};
86+ failure_derive =
87+ { 0.1.5 =
88+ { proc_macro2 = String;
89+ quote = String;
90+ syn = String;
91+ synstructure = String;
92+ };
93+ };
94+ fuchsia_cprng = {0.1.1 = {};};
95+ humantime = {1.2.0 = {quick_error = String;};};
96+ idna =
97+ { 0.1.5 =
98+ { matches = String;
99+ unicode_bidi = String;
100+ unicode_normalization = String;
101+ };
102+ };
103+ itertools = {0.8.0 = {either = String;};};
104+ itoa = {0.4.3 = {};};
105+ lazy_static = {1.3.0 = {};};
106+ libc = {0.2.50 = {};};
107+ log = {0.4.6 = {cfg_if = String;};};
108+ matches = {0.1.8 = {};};
109+ memchr = {1.0.2 = {libc = String;}; 2.2.0 = {};};
110+ nodrop = {0.1.13 = {};};
111+ nom = {3.2.1 = {memchr = String;};};
112+ percent_encoding = {1.0.1 = {};};
113+ proc_macro2 = {0.4.27 = {unicode_xid = String;};};
114+ quick_error = {1.2.2 = {};};
115+ quote = {0.6.11 = {proc_macro2 = String;};};
116+ rand =
117+ { 0.4.6 =
118+ { fuchsia_cprng = String;
119+ libc = String;
120+ rand_core = String;
121+ rdrand = String;
122+ winapi = String;
123+ };
124+ };
125+ rand_core = {0.3.1 = {rand_core = String;}; 0.4.0 = {};};
126+ rand_os =
127+ { 0.1.3 =
128+ { cloudabi = String;
129+ fuchsia_cprng = String;
130+ libc = String;
131+ rand_core = String;
132+ rdrand = String;
133+ winapi = String;
134+ };
135+ };
136+ rdrand = {0.4.0 = {rand_core = String;};};
137+ redox_syscall = {0.1.51 = {};};
138+ redox_termios = {0.1.1 = {redox_syscall = String;};};
139+ redox_users =
140+ { 0.3.0 =
141+ { argon2rs = String;
142+ failure = String;
143+ rand_os = String;
144+ redox_syscall = String;
145+ };
146+ };
147+ regex =
148+ { 1.1.2 =
149+ { aho_corasick = String;
150+ memchr = String;
151+ regex_syntax = String;
152+ thread_local = String;
153+ utf8_ranges = String;
154+ };
155+ };
156+ regex_syntax = {0.6.5 = {ucd_util = String;};};
157+ remove_dir_all = {0.5.1 = {winapi = String;};};
158+ rustc_demangle = {0.1.13 = {};};
159+ ryu = {0.2.7 = {};};
160+ scoped_threadpool = {0.1.9 = {};};
161+ serde = {1.0.89 = {};};
162+ serde_derive =
163+ {1.0.89 = {proc_macro2 = String; quote = String; syn = String;};};
164+ serde_json = {1.0.39 = {itoa = String; ryu = String; serde = String;};};
165+ smallvec = {0.6.9 = {};};
166+ strsim = {0.7.0 = {};};
167+ syn =
168+ { 0.15.29 =
169+ {proc_macro2 = String; quote = String; unicode_xid = String;};
170+ };
171+ synstructure =
172+ { 0.10.1 =
173+ { proc_macro2 = String;
174+ quote = String;
175+ syn = String;
176+ unicode_xid = String;
177+ };
178+ };
179+ tempdir = {0.3.7 = {rand = String; remove_dir_all = String;};};
180+ termcolor = {1.0.4 = {wincolor = String;};};
181+ termion =
182+ { 1.5.1 =
183+ {libc = String; redox_syscall = String; redox_termios = String;};
184+ };
185+ textwrap = {0.10.0 = {unicode_width = String;};};
186+ thread_local = {0.3.6 = {lazy_static = String;};};
187+ toml = {0.5.0 = {serde = String;};};
188+ ucd_util = {0.1.3 = {};};
189+ unicode_bidi = {0.3.4 = {matches = String;};};
190+ unicode_normalization = {0.1.8 = {smallvec = String;};};
191+ unicode_width = {0.1.5 = {};};
192+ unicode_xid = {0.1.0 = {};};
193+ url =
194+ { 1.7.2 = {idna = String; matches = String; percent_encoding = String;};
195+ };
196+ utf8_ranges = {1.0.2 = {};};
197+ vec_map = {0.8.1 = {};};
198+ winapi =
199+ { 0.3.6 =
200+ { winapi_i686_pc_windows_gnu = String;
201+ winapi_x86_64_pc_windows_gnu = String;
202+ };
203+ };
204+ winapi_i686_pc_windows_gnu = {0.4.0 = {};};
205+ winapi_util = {0.1.2 = {winapi = String;};};
206+ winapi_x86_64_pc_windows_gnu = {0.4.0 = {};};
207+ wincolor = {1.0.1 = {winapi = String; winapi_util = String;};};
208+ };
209+}
test/golden/importless/case.kak.txtnew file+28
@@ -0,0 +1,28 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { installPhase = String;
5+ meta =
6+ { description = String;
7+ homepage = String;
8+ license = γ;
9+ maintainers = [δ];
10+ platform = ε;
11+ };
12+ name = String;
13+ src = ζ;
14+ version = String;
15+ } ->
16+ η,
17+ β.eraserhd = δ,
18+ β.licenses = θ,
19+ β.maintainers = ι,
20+ β.platforms = κ,
21+ θ.unlicense = γ,
22+ κ.all = ε
23+) =>
24+{ fetchFromGitLab =
25+ {owner = String; repo = String; rev = String; sha256 = String;} -> ζ;
26+ stdenv = α;
27+} ->
28+η
test/golden/importless/categories.txtnew file+13
@@ -0,0 +1,13 @@
1+∀ α β γ δ ε.
2+(α.maintainers = β, β.brainrape = γ) => { build-idris-package =
3+ { meta = {description = String; homepage = String; maintainers = [γ];};
4+ name = String;
5+ src = δ;
6+ version = String;
7+ } ->
8+ ε;
9+ fetchFromGitHub =
10+ {owner = String; repo = String; rev = String; sha256 = String;} -> δ;
11+ lib = α;
12+} ->
13+ε
test/golden/importless/caveman.txtnew file+80
@@ -0,0 +1,80 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.anaphora = γ,
4+ β.babel = γ,
5+ β.bordeaux-threads = γ,
6+ β.cffi = γ,
7+ β.cffi-grovel = γ,
8+ β.cffi-toolchain = γ,
9+ β.chipz = γ,
10+ β.chunga = γ,
11+ β.circular-streams = γ,
12+ β.cl-annot = γ,
13+ β.cl-ansi-text = γ,
14+ β.cl-base64 = γ,
15+ β.cl-colors = γ,
16+ β.cl-cookie = γ,
17+ β.cl-emb = γ,
18+ β.cl-fad = γ,
19+ β.cl-ppcre = γ,
20+ β.cl-project = γ,
21+ β.cl-reexport = γ,
22+ β.cl-syntax = γ,
23+ β.cl-syntax-annot = γ,
24+ β.cl-utilities = γ,
25+ β.cl_plus_ssl = γ,
26+ β.clack = γ,
27+ β.clack-handler-hunchentoot = γ,
28+ β.clack-socket = γ,
29+ β.clack-test = γ,
30+ β.clack-v1-compat = γ,
31+ β.dexador = γ,
32+ β.dissect = γ,
33+ β.do-urlencode = γ,
34+ β.fast-http = γ,
35+ β.fast-io = γ,
36+ β.fetchurl = {sha256 = String; url = String;} -> δ,
37+ β.flexi-streams = γ,
38+ β.http-body = γ,
39+ β.hunchentoot = γ,
40+ β.ironclad = γ,
41+ β.jonathan = γ,
42+ β.lack = γ,
43+ β.lack-component = γ,
44+ β.lack-middleware-backtrace = γ,
45+ β.lack-util = γ,
46+ β.let-plus = γ,
47+ β.local-time = γ,
48+ β.map-set = γ,
49+ β.marshal = γ,
50+ β.md5 = γ,
51+ β.myway = γ,
52+ β.named-readtables = γ,
53+ β.nibbles = γ,
54+ β.proc-parse = γ,
55+ β.prove = γ,
56+ β.quri = γ,
57+ β.rfc2388 = γ,
58+ β.rove = γ,
59+ β.smart-buffer = γ,
60+ β.split-sequence = γ,
61+ β.static-vectors = γ,
62+ β.trivial-backtrace = γ,
63+ β.trivial-features = γ,
64+ β.trivial-garbage = γ,
65+ β.trivial-gray-streams = γ,
66+ β.trivial-mimes = γ,
67+ β.trivial-types = γ,
68+ β.usocket = γ,
69+ β.xsubseq = γ
70+) =>
71+β ->
72+{ asdFilesToKeep = [String];
73+ baseName = String;
74+ deps = [γ];
75+ description = String;
76+ overrides = ∀ α. α -> α;
77+ packageName = String;
78+ src = δ;
79+ version = String;
80+}
test/golden/importless/cde.txtnew file+69
@@ -0,0 +1,69 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.services = ε,
6+ γ.bitmap = ζ,
7+ γ.listOf = η -> θ,
8+ γ.literalExample = String -> ι,
9+ γ.maintainers = κ,
10+ γ.mkEnableOption = String -> λ,
11+ γ.mkIf =
12+ Bool ->
13+ { environment = {systemPackages = μ;};
14+ security =
15+ { wrappers =
16+ {dtmail = {group = String; setgid = Bool; source = String;};};
17+ };
18+ services =
19+ { rpcbind = {enable = Bool;};
20+ xinetd =
21+ { enable = Bool;
22+ services =
23+ [ { extraConfig = String;
24+ name = String;
25+ protocol = String;
26+ server = String;
27+ user = String;
28+ }
29+ ];
30+ };
31+ xserver =
32+ {desktopManager = {session = [{name = String; start = String;}];};};
33+ };
34+ system = {activationScripts = {setup-cde = String;};};
35+ users = {groups = {mail = {};};};
36+ } ->
37+ ν,
38+ γ.mkOption =
39+ {default = [ζ]; description = String; example = ι; type = θ;} -> ξ,
40+ γ.package = η,
41+ γ.types = ο,
42+ γ.xclock = ζ,
43+ γ.xdpyinfo = ζ,
44+ γ.xfd = ζ,
45+ γ.xload = ζ,
46+ γ.xlsfonts = ζ,
47+ γ.xrefresh = ζ,
48+ γ.xwd = ζ,
49+ γ.xwininfo = ζ,
50+ γ.xwud = ζ,
51+ δ.xorg = π,
52+ ε.xserver = ρ,
53+ ρ.desktopManager = σ,
54+ ρ.enable = Bool,
55+ σ.cde = τ,
56+ τ.enable = Bool,
57+ τ.extraPackages = μ,
58+ κ.gnidorah = υ
59+) =>
60+α ->
61+{ config = ν;
62+ meta = {maintainers = [υ];};
63+ options =
64+ { services =
65+ { xserver =
66+ {desktopManager = {cde = {enable = λ; extraPackages = ξ;};};};
67+ };
68+ };
69+}
test/golden/importless/cdn-deps.txt+1759−1
@@ -1 +1,1759 @@
1−∀ α. { fetchurl = { sha256 = String; url = String } -> α } -> { 0049fd8a61e04257b6dcb37217d4d603cd74cc6b = α; 0055e020f7505cf021eb66b73e3a8fa3cc308b05 = α; 007491dae0c56c74ca78a46639d8e41243bde83f = α; 00927d42baa3e7f8fb204e62ea43ff39384f8679 = α; 0092dbc71c6b4bd985a697ac3d1f1597c0bc82f6 = α; 009f9921fd444183569a1057648f0c3573688f98 = α; 00ab55311f402e65385f797ea5e1c4ab4663553e = α; 00add27414f59890b092ab4b03bbbc585cedb847 = α; 00b98d4aec7a1f350c0fdd8186841aa96c0cce53 = α; 00c4eb5dc59035a15405197341b6b925473708db = α; 00f460c11eef99d9e125c11687a40d39f7b74873 = α; 0104416c142ca7b3174660267c22f049db573bdb = α; 01687bd36252e9a263022192524ca8835ae9552b = α; 01a1b60633d0e13df7952058973ca4979a5389e2 = α; 01b5b6310231646e87a0bfefaebfee7f0c9e1929 = α; 01d26cddb178f064c3cd74a09430970bf6cc12b7 = α; 01e6c01a96b3cbe860204f191d1b9153509a9dee = α; 025037991170960704b2d2a49e7bf37cebf06b85 = α; 0255260ee4d81de161e877cdcc3af4d7fcf8d0e3 = α; 0287d808513bc8ab41d3a122437451b3505e5a06 = α; 0294cec564dabb2b74767382fed8bf1d85c3dd6a = α; 02b79c9e934ba5d5df21ca904400f6921b0e919c = α; 02db54285fbdc7bcbc5072716c06102dadbe73a3 = α; 02e23f8b72f230a371e141cf422d6339edc7f136 = α; 02e31aefb786970a757120d82ef7e57d99598e2a = α; 02e3996085d4a6eadcc0403adb002e453626ad38 = α; 02f911003167be7b08c3fbf9bdababa124958f48 = α; 037becd787cf315691a800ac53fc1ace30efc22f = α; 038a65feb0c32e0a8997e4798012f90e380a5fa4 = α; 03bb65f1dc5e3bf35f5d6d5d6068a10aed0cf4a8 = α; 03eac14bed108c28a0a4450fa4f534d145c12179 = α; 0419d8143ae34750eb7de7c51c4d3cd231bbce51 = α; 041d9b9407ae8d58c7c3a7110af093916fee573e = α; 042de486169ab637609e1b035138f64893e04ad5 = α; 049aaeab9a2e4405e946d0097d1a3e824c128df6 = α; 04b9a9091bba671b960e607283c6434625072697 = α; 04e55b081d4e6680ca0da096eab39443e53aeb2a = α; 04ec121ce824aec5caca1ddb70eaa21e0191a5b4 = α; 04f2ae9278db23034ee3cb0bbbe67db49b5881fc = α; 052ad62516b7d63eaf4c6410cd2dca0264734665 = α; 05be3410a78afea71327d64933707b9f7550d2f6 = α; 061b4fb485e75b96f3266aff9a762a28b2d77616 = α; 0625d1c6055de9cf9025b2e61299912a56f88ccb = α; 0668d99201136f1b598c5795fa3e58050020e8b1 = α; 067baa5f7a564bf867b5b337369950ad00e13e99 = α; 06ebb79f97706bad4850ce9077a9e7e90185e324 = α; 06f561a38764b8e9c4087a97ed512c995363927c = α; 0702299294e21ac823c34d43de2a89140288143d = α; 070b80d72403fb102b91c2c7c1eababab6aec2f7 = α; 07a88f4f32dff82062e33545b17b0011c4f3242b = α; 07bac5d4a23c9a7bc1695e030017c8694d72a735 = α; 0818124e55b7ae14e580ada76b6fca5656c05836 = α; 084e5de210ff35e876901668dd00537a3a019ac5 = α; 0898f76e0b61476b01184a79f59737933332711f = α; 08aafc6b5bf5f6834032ea41a414bf57378e9d6e = α; 09007b1cd8b9f90a5ab85549323903759f18b852 = α; 091a839006f281b7b12ee0d1bd0fff225f0ac73a = α; 09510670263d739c9271c8d43047c1e427873509 = α; 095aae7dd171f8fa10295657651b0889b387ad68 = α; 09601c1491f5d27c2533b4e7c9fb26a2e5eaa4d3 = α; 09732d6bf762ba4d866616248b46adff0e12d76b = α; 09b220dceaa8205e3a32a877c58c678dfdb8555f = α; 09dbd9ce439ba4adad23922f5b9002fa4e759bd1 = α; 0a17d50561c9bf1d85e82416f97726243726fe8e = α; 0a85e36f224c350b058936fdb88cb656864411c4 = α; 0adcf8b7399354848f3b1659ae1bdfebe7c5fb54 = α; 0ae58afa6b821d9172b327831297925b165ba540 = α; 0b0c49fd66d2a1e20b9c3dfbaf57920646259399 = α; 0b19af7719665b5651dfb183e0f462030575539c = α; 0b2364f6696f39626a964e4370380b3fc8768b43 = α; 0b2cd11ad11c170163c7958e24f339bf66609001 = α; 0b41a5fe69764ca460a102d4569d5cf0a96262dc = α; 0b650b20c8c8aba9b4ffbfff4555352296b8026d = α; 0b65847315b6c2c97cf1cb6e6d159e22233c8251 = α; 0b6608a97e2540ea5f17c2efa77ffe1ee1b3c533 = α; 0bbfc90e364f03102506acd5ad039a28e02cadf7 = α; 0bcc47e413bef8dae40e79c9757941b0db15f97a = α; 0be87d25f74713be10bd98e1e966d795cfe4e5dc = α; 0c416ae48c3e2ad2be1333ccc20f6992ce982aa4 = α; 0c8fc2ef1a59d232fd4f22a022e20d492f6e2a84 = α; 0c95d970796b73f6699b10dc55a5f23caeb0e7b6 = α; 0cad2c40463fe8795e6ba38765dd8c775689eca4 = α; 0cb75afcdc3e2acc810f4eaab1c4d0e47b71e66e = α; 0cec09dea442a96d2db56d5f25830c204faf9c73 = α; 0d1962bd98cbfd172126e306fff8cf75b8796bc7 = α; 0d5caa5b5d94abc659bf759feee88b37f4cf4618 = α; 0dcd2138b0d77e84dd01b019736eefc97445f806 = α; 0e1315e453e0b243c9c0afc4965bc9042f5eadfa = α; 0e1a08f56c646fa8ce394a0e41b8cab5a658268d = α; 0e26168a7254c7ba26bf4c06b28033e8387c689c = α; 0e4c8e5cf7fcfddf545be976ecd6d676331d54c9 = α; 0e6c43d516af17c6766c4b204af1a1358451d364 = α; 0e934ae8f346ea8f7834da572917c93731ee3e71 = α; 0ed7e089f52f2e816998664ec165b776a056ee6e = α; 0ee5f371d8dffa94c5df7c2c1337d8a7029c022c = α; 0ef3349a6ee43e03e0390d117749207582bd62fb = α; 0f5530749f1eb9cd579c611a2c19eb675d225841 = α; 0f74ff9d91cbb2b2061d50909d5d7f093b845a72 = α; 1015366202732d5b428dc71ad9ec5fa99ca1b874 = α; 1016254965add7631ca2982903c6d0169b0d45b2 = α; 1028eaded56f0e46a92e7188a0e4dae970bc77c8 = α; 104b55382829a7351cea26478445bfa8e601d755 = α; 104eb620cbaf2629b13d4f5dc9edc9a888ff2e33 = α; 106f60f7c4e09a6444df98f226b3b925941480d8 = α; 10723922ccc14914c163a9546c40f01779891869 = α; 1077e9c2c6e2f36520c08a148ce3709a6e10a8ab = α; 109ac2799187c1e94076a2db14922c275e94adbb = α; 10bc8f77ff0fe6245b5ecf2b32ffcee97d4d42d4 = α; 10d7ee1bc39b827fc0238870cf1aebbee7ed2b0b = α; 1142cb9f18f922166ae87d131c1fd09dce63f6d9 = α; 11485b16ed1b0a1f37aef0aec2e8a7afbf490e75 = α; 117189ccfc8241744b0cde19d866507341334ea0 = α; 11beb714095ff4a699b6f0a3543c8c2b82cf1a0d = α; 11fad551f44760406d524cb0e1892580b9be77bc = α; 12164f23f40b93eb0a4cf6f0acb58596becc8f2f = α; 12468bf1be869d88d9a8104ffde7c4887839843d = α; 12d1a73c1c063a416ba2a70fa0cb25ebee04cedf = α; 12d213957fbfe643a97d5072b1f6ae30aeebcbb7 = α; 12eb0444499ce41f101b1b5f9dd6b87894949511 = α; 131d64c4948a0370d99897b2ad5a968b160e4300 = α; 132e734bba8f24cfaecbe6e03b85b76158a57d1f = α; 139f335e517878be52106907638e80140951abaa = α; 13b3c6250566821e05b35dd3296b5686aae3f325 = α; 13c7b27a977c4bf9c4e07a19ffb106c1128995bd = α; 13f0a72b4826430335caa709e76f92079ca53b13 = α; 1411432bb3fedd8dc4b429d4f6929746ef0e0a2e = α; 142674e220c8509ae1f8b001af30a95d6b08951c = α; 145ca8052bc6fccd7bf7af21f36664fc217f2f70 = α; 1463ec95f086a9205c1ab27df290f232964381a3 = α; 1467cb6b7644671f3127567be26cf07d20b6da7e = α; 146b3768fb0d7880b8c751140d38a1177906de0f = α; 1471837617ec5898ca2e49cf20ad5e0795687b7b = α; 148131344e6fe6a2249ce840916527aca52dbc35 = α; 149605f77f4487d4f238f2439c46df83708b08f8 = α; 14b7da233b40c5199352d0ad87f5c2ef529fbfc2 = α; 14d50f80e32417f2f524ef471610a343fd6eb8b3 = α; 15299d434cd85410167be0405f54ccdeeaa3f831 = α; 154306df1d2a4877cbc22db8224277c856f1b6b2 = α; 1567a031ece4d70d2c360767b32f084b40eeef63 = α; 157c6388b0a3c7a95bc29c5ae0f8e920a39dd7dc = α; 1580d9078ae389f2cea6d568fc4ea0b0ebd5d183 = α; 15a502cd7ed28b9a7f8bb3e95ed15009b0e9a29e = α; 15a50c3fc6a68c2b5fc5d130da66af83529e7ed2 = α; 15eddf9d2c822c3f5a608ff772c24ca1c2928c60 = α; 160a1829963e541ea0fc69e090047543f0c547a2 = α; 1623d3a181ce7eddf10a90c3c235075fe55bca69 = α; 1627ab02a99a1389c8f3330ff31a92d4994ef631 = α; 162be3e52c290eda8052be126f9b1b9f19a5e182 = α; 16311b83711df9620e3ea0adad878eb4547e2dc8 = α; 163784cb855cf579aa85c8d84241ac308c31d9c6 = α; 1679ff7ab2527671a6c79835501cd4447f769d26 = α; 167a3b509221baa789dd8c568b74ddcaf7c4a7c5 = α; 16e421c9204b08586edd8de93b93b19fb10644ea = α; 16ff1b3c00e3fef8b809b49a5b63be510b23dc97 = α; 17a98e6cd0892c88290f9dd9e9cb3fde84e8798f = α; 17b2ed6bd21c462973aa928a668bafd1f8ebcfbb = α; 17f24542b619ed66aa29fe28eb716b4dd4c33d84 = α; 1802e0cd4e93677f9da0d094475296d070a0a167 = α; 1819e4a555e0b22457eb52ec088f2d106697434b = α; 184edcd2f9fc791ab8f0ecbb980e124e1622311d = α; 185535353a9576cb4f9e4a7fa3c1fe649d00f26b = α; 185908a865ebe7f6ee31701211aad217de343c7f = α; 187cc49caa5b9c37b965dc6d5ae486c963873c47 = α; 18943d114a03b9994e64f86843cbfbea2c18fc60 = α; 18d1e1adb711eb56d874c79f49ae68b3e26fb044 = α; 1916cbea932d8ec4cbe73743294b2456b6f82f4d = α; 1919f737357402ffd6035ef99089bf4492ef39ce = α; 196a7cd92cd85833aa987ab46cc84abad637e671 = α; 19bf552b5636cd53f93b288b3393447e0a9fa015 = α; 19c8ede828d4e84d3023a8cad20c4118e92c51f6 = α; 19eb01d07ed61f10eba97cb487040edf44235d88 = α; 1a2a4f3777f219966c172ba8de9cb16dc214645a = α; 1a42be4a1a8f42a72c27e99abb9741fb826a99e9 = α; 1a546bb1c6ba2765dbc10b34126650d033464bf8 = α; 1a5ecbad3eddb57b522f4873840b8a716d98b2b9 = α; 1a81e6c5fd4cc760a6589fa20070d26a9cb6e53a = α; 1aad9a745382e917c890acd98a988a1536087fe2 = α; 1acfcb65de4dc96785b1705ca6c0029e5e4cea95 = α; 1af0a9938323c32bfd00373e1eeec3f0eb7267f4 = α; 1af8c3dcef0a363b208600f3db2ab066d1c407b0 = α; 1b6ac4ad1dd42a8d52a6cb4a24b64cd86c92cc83 = α; 1b6e2211b6ef64b74fd226f74bb7fdf14f384868 = α; 1b929d889ec58a690a9fb4fe5c7e74eb60c339a5 = α; 1bc440e5f448e7dec6f97dbb519814d6c4b17b0e = α; 1be30bac2f567e402ae48b89e8355a4b4e609b8a = α; 1bfd97f204592ed48706e423bb6ab7a6128cad7d = α; 1c44fa7c763743e619fef130346733eb5f107049 = α; 1c70d51c5e2d2a9ebdb87dc176b3cbe48c275309 = α; 1c803eb30ed3570e150cffbce8729d1cc54e8fc3 = α; 1c8d955be9265f85641ccaa5c0c9abacc66115f7 = α; 1cbf6a11e17024243825f5ea454051bf5b1e7d3f = α; 1ce933b4731d07d18548a668fca861035354bbf2 = α; 1cf61777b0744f76064a8cb5a1d0bc1bb2d3165b = α; 1d09bb4f8ba502cef13de6d570839e6790bf3542 = α; 1d5c9571ce51f244f1e0158e0cd49bd36f16bfc5 = α; 1d81bb3fd4494d2d93359f0cbecd2e9e20e67a09 = α; 1d82f1e693e8f317ca408dc5159b1a6afd317016 = α; 1dc7018f35ab6ebe2908608910fbaf9214506ecd = α; 1e0c495e2e2fc0f9ab567761cfeec0d8659f6572 = α; 1e8e90fc8fbee70866085a1fbd7ee5585941dc31 = α; 1ef5c21107774059ed6c5010dd2d5f3373c81445 = α; 1f10b8e0a3d6f6fdfe5b451508626eda10e3e771 = α; 1f209ff22ef667820d2143b0bef1783612c2dc33 = α; 1f3815ccc8afbd78900f57993ac9ee538ad3a776 = α; 1f8e075fc05cbc97e7fd21ab40e0ceeb595c741a = α; 1fe2947f6b39cef244fd00698c7cb7adcee1d927 = α; 1ff18f725dd963421e618df72bf8a01bbb35d02b = α; 2061aaa6e57d72cbc697076a3bfff9ede7a0a405 = α; 2099a8b27bb01df580dca27c74682abb819d7424 = α; 20b2c00511aaf3fb29dfe2ad61683427686bdb7e = α; 20ce1ae8d2c0f8a6cc946c302b619dfa82a8d0be = α; 20f22f8b8176717ac951ccdc7e6f5f56806df59d = α; 211fe5f3ea5194f89c18a81f99259151734b4118 = α; 2130d3a7a6cb4b7985001c43cece413b95605a04 = α; 215f16be383b3e37f6ab866a94263c078729c9ef = α; 218b41b249f8b8cc60c48cdfe5f9f3139acec694 = α; 21907541d849646ca7b37552024a6bcbab11cce0 = α; 219229e93fb1bf7a335603340498ba0d7dded08a = α; 21fa784bbf679195e305e3c41f0638cd402f6834 = α; 220e020f8e3d2a2de2da4e1a95e72d0a2efe26bd = α; 22118798b30814806475890a25dbd3082cf56d24 = α; 222160b66bde04349f00f790676a49a8bd3f2aac = α; 2265f48eeeda05a6393f1268fedaea74e5d989d4 = α; 22b3cc937fab3025d3abf8d725b2cb3b1d12ef3c = α; 22c962e9607d75b5917d731e9a66bd74fd15f2a2 = α; 22f8914859f73cc332699e1c40e17cd44d700b87 = α; 232d603ed060bcff36c5d452ec42caf19d74ec9e = α; 232eab324de501a6a4db9e0af2922875e7b6303f = α; 2339c1d3bfb2db1621ef01225df981c1bcc32f49 = α; 23563ae9b7815c9196c9ea7c27b2c1b78c2e3b77 = α; 235cc68a11ea8011ea5ca0d1326a488fd48ee713 = α; 236633a6e0745c5413ea190b0e07deb9e9b9d409 = α; 23b01ee08bbe595a4dcb1a72014151b82e5e76ff = α; 23cc3f11d38de5312fd5798024de0d232bbf2e68 = α; 2408381821f1ad904404880379feec1a2eeb2ad4 = α; 249d8cdb69fcbdd5f0dfef3a752eb2b7daaf01f4 = α; 24f19b36203cb12aa6892d2d4399df0a679189f7 = α; 252915e59bf956eba7b4eb84256f1eb9c08c16e6 = α; 254bdc731ce0a3bef83fa6dd6c76771cadefeab5 = α; 2573361ce50bbcbed674e108ea4cbb055cd0f2ec = α; 25a0a89eda2d7c97ae3a37ba14f151b4682617e9 = α; 25a1ae1b60746c8e36e21531648e67b4c330d30d = α; 25b04d770d7a50481f9276487a5ed9834119dabd = α; 25d67f4de95951cb969435a84594979cd05c4091 = α; 260381a0277c560f8c2006d8bfd4f7069cd5640d = α; 2616e3cfebab7a82dd81c3bfee37a62f3317e357 = α; 26407337ede0c844ad2b9b9e4eec2286431b0fc9 = α; 267f7ab24d96a8949db4cbc89f50cb9aa755e5e7 = α; 269c797991f91dddf54acd99a214152e8f155f8f = α; 27098f36979ec3e79f5f7d7145dae3cfedf9b0a9 = α; 279afe349fb3fbd2a845d8f650df0bf1dbb73c45 = α; 27ab355d7817d1ffb8eb77e96879aab84b9ad7de = α; 27e4175b9bbb4b175f9daaa9a824638a178a6d76 = α; 2827f79a76e04e6ba05b6cd3cc73e4dfce1ca961 = α; 28438bc19c11df6c698e30491b3413fed60b2f0e = α; 28783f63ac21ccc8c6ba68949502795e3a63f569 = α; 288cc5ec4da8903ba6077e259a8d9f1a0e5360c5 = α; 288d0122b6bf19ad09a81fb7a631a19113ae96f1 = α; 28926b6102371746bf5dd7c493c2353392ba76f7 = α; 289a1b921105ce48ba09d95a245cd2daa77b05bb = α; 289c460fd7eac93f2aa4548c3c805ce6f69f32ce = α; 28a656853baebf8714c795ebceb8ac04f687f67f = α; 28f2170447e86afc17f7c14affde7f2dd410c256 = α; 28f89206861167b3d68bb1c6d131985c152b757d = α; 2914f32cdeac7870819661e0fe54b4833a9962c0 = α; 292a8fbb5a1aff92533e52ded470f85af5ffd6c4 = α; 2944a0052b881a644f04844186daa4ae54aad523 = α; 295f41723355e152d24716ed3125507d5155eccc = α; 29681ec614276ed188ccfff2342d818c3503f114 = α; 29ba225936b8addec463e591b235407a300ecaca = α; 29eae01c452b3ae340b64ad4266ea1152b4e6729 = α; 2a13498d62f2897b95a2fde8f9117caf2213369d = α; 2a26f841843dd2551c447764a346353954884612 = α; 2aa18a35f72b72172e9b2c30c8ef7dbe2031303c = α; 2acb20ce30a8d1a5aa3f7506c94c9f8a93297c8d = α; 2b1ea22d749ba6df5bafa9119fe8a0c0d4ba68c1 = α; 2b2f6a55cc19d94c0130e833f2e70c29e8bfa2e4 = α; 2b83155ddf092ccd8d8baeb9898fe084b587e82d = α; 2bac5c303baf3d4800852e359ebe06398d185cd9 = α; 2bc488cec0bae3f273fcf9d172b61b9a12489423 = α; 2c0a73c42dae723ea6ada9f3a83b520b4094655f = α; 2c391f34048aae95fed7d9649088e50dc62d614a = α; 2c42aecf4d302508d97a42889f9c616197b1bd9d = α; 2c6a334523bb0b39b337ae9f3754d787d930b6ce = α; 2c8420f6e48f529d116aafee46759cdf99e8a724 = α; 2ccd26d6297607f50e2fd8c1b54cde1f6e6509a5 = α; 2cd1739a082210f13445cb6acb076e89cb209759 = α; 2cf7b40136915c48e206e1052021eb226c0050ca = α; 2d54103141e313b63ef5cf774325a15054e9ff39 = α; 2d883815049fa9361c8c5c425fbea36dcd903c7a = α; 2dc37c85bc4dd351cd3d177f7e6f986d186bd1f2 = α; 2de8f1186afad5e4c4f23315078e4d2bf6df4264 = α; 2e01332dbabb9d7f2325d7f297f41fcd48933c46 = α; 2e09a8e7ade5fdf179f0918bc2abac9c18e85901 = α; 2e601894255189d2db25a10b7d612d09c725aba7 = α; 2e6729373c277fcfd3a59532e1e7738523370fb8 = α; 2e6b877018994d97122a9b698eba651b59cbe02d = α; 2e8c5279ef8b2e93ab8c738c3e9b8689fc63b839 = α; 2ea89fc7cf11ce2e9f8bd6df71dd99eff85bcc15 = α; 2ecfd27e7e8beaa971269c4d29040f148b7fdf07 = α; 2eddeeafbb16203bad1207fe3c70aaf2e165ebea = α; 2eebb65cf7012650afcab43c7f2f559c86b2f3a3 = α; 2efd964b62d457693b93d311acd7d54dc4e7f177 = α; 2f143d8520d94bbf2cb250b35a8f79e3d3e8572c = α; 2f3b66c8bc4bc7ba4a38982c19f7aea56a40fa44 = α; 2f4b14734a09e63c0347c348f77cd0da3c72b561 = α; 2f7a26433cf0506c014fcc5694c194b28a811006 = α; 2f8b4043d609acb0eee65a86210c9881d1e4a9b5 = α; 2fb0ce94e7960b83e88bc4d2687ba07c94e9d96f = α; 2fbbb90552e28dbaf47f41fa63652c11c7b99c78 = α; 2fda5ea89a82d953d04583ab86b387b1b3f3dd6f = α; 2fdbf124501fb7d04dae2e4dea0e796f8a098f36 = α; 2fe1fb9f98af4a68ceb9adee909fe7b67917ea81 = α; 2ff8709ada5b8bbfe994f55ce697983225440813 = α; 3012eb0c18cf3faab0fd1a8290905b902456192c = α; 307b166459a0b56cda3d5d3235e3c39b37b2e2e7 = α; 30bf523aff5cc60cdbb2da5ca9b51226e6aefc9b = α; 30e4e0e87aa3c6ed5b9d99e89c3e3986727405b4 = α; 31513973d4d5ca51b8bb4b0b965dd53bed0284bf = α; 316245a9c9d050b2bce9f47deafb0baa66af6347 = α; 31a9943db56acc38a4a6083517d5981accfd7b0f = α; 31b00e20c26ba53e1e4071f88ae88e478dddc667 = α; 31d76d0dbcad8d9f1b4242247389a533fb8e3ca1 = α; 31dc2af99e1bb1eecb4ddcb3b2983a0563cde9f6 = α; 3227bc9c7feb2325ecd2c4144ae0feae8ddc8b90 = α; 32860f0809372d37c40310daf0184877322fc636 = α; 32bb97834c48d10d8115a0167b8372bca6b8b179 = α; 32d809d2943a46adfb06d390602d4be87fa510ba = α; 32f81135ef65d05728ba2f1c5b5f3935a52334d7 = α; 330afd81b039c963aa95ebf7fcb5e01b8ce9ee3f = α; 330e7d22693575d7c1e3bc8598676d1ad936a018 = α; 33450e05fddd79d7692866accaff42adf9cb9a97 = α; 3347d72ae38994059c896549688eac5a145b35fe = α; 33870814a45b700847bc8d18c59c18d1daa72623 = α; 33902cc01c7eda10161025651275a129da5ead6e = α; 33d0a2949662b327b35a881192e85107ecafc8ac = α; 342f323d0582f6c4897956e82b4549bbf9c47973 = α; 345fb7a468fc7c5315a11b86b2c600ac91955213 = α; 34901ceb8b3afa22d4a75f06c3c465a3292592d3 = α; 349fb1419c99f4b260e3bb7b3a7cb5273c5b88dc = α; 34a9c86849d93a7f932667ae0e2d9fc3f4aceeb7 = α; 34b38730a025a0c75cff4caa03512a0054d0695c = α; 34da962d8bda23fc14978d82c2c5fb761acc5815 = α; 34f9df3c5cbc087be9cf8b8b2084287fb9f3b2e2 = α; 351da091078402bf85cff8964a50e1ecaf81e7ce = α; 353076c56a6ecfb890a7ab5f30c881a73e09d508 = α; 3536f544f9e91433e6939163fb611c524a5f468f = α; 3579a812b187dc0ebafb13d5914b27deab2c4367 = α; 357fc4cd09e4eea77faa70a271346bfd5d0b8417 = α; 35b0e5ed5cbf20a0b47af4bb9ca6ffef4d3e5d8e = α; 35e0d2f1b5d56bea19aa9443dd5c41b4ef095b4e = α; 35f95404a8393dcd6374b594b1c2bb5acce427ed = α; 3639943c4bf99c8f284de9f812bf2cd6eff5d49b = α; 363bd76bc4fa81ad344802f2fb8610153a5ca75f = α; 3663f96dbca6fd930e000a6617a3bb214a6ee0f0 = α; 36922d450606299836b10b930c0c66af1f780347 = α; 36923d3780cea992eb61b86d48b1a61297b44536 = α; 36af7f5290dd60c07f83b8a398eb9721c24a6154 = α; 372698b3d3b17da23c0c53958fefda69c1198f54 = α; 374b33734d17be020f3eec73cf16a100e905a8c5 = α; 376fa7bdb1a776f7100bfaa29f24a9b81bb5a97a = α; 3779adbbb84b7918fcaa4bc8df4b64a45e50aa88 = α; 37a47bf076c47063d031b82f827412bf05a5f500 = α; 37d805efe0d2358727b0deeb9f5c56b3b68a8478 = α; 37f1c844684794da07d9c537b175855f8266fdbb = α; 37ff9ca732f3611a92185cfbfd25e6eb7d3d2fde = α; 3811b277d1080f2314e9ffd524da841aefd84ce0 = α; 38c9a6c68be0ce7a36d83391a637010447ad3301 = α; 38e0e2e02bc165327038c973058790e3962d6079 = α; 38e6833dfb6b74f5acf23d984bb9ad01086e1f39 = α; 38e79fc7612d6ebd7278e23e7d0a9df3b95155d5 = α; 392d5e0536abeb83ccfc28ba9fb96e9d1d6507f3 = α; 3965204d2b18ccd0b4d2191500d373ac064180df = α; 39935e746b413e3c60c9a519e893cd19db5425ed = α; 3994a8a3195661395d89f209755bbab5ce1861c1 = α; 39e7e3f8feb9564c8b90f2f6d630bb8ba96f2eb9 = α; 3a6db69d4f8128addbe24660128ecd2ed9fd6dd0 = α; 3a7f7a47aca5ad86176f1ceafd77139a06b89e11 = α; 3ab17699ce95c427b0c0f3466b4226e2e30b92d0 = α; 3b07d6bb5a24bb96557c48982e8b3389df33cfef = α; 3b14a44c8ac4cda934824f4a48fdf11ae6dc27fc = α; 3b1f533104a3f316e188203a3b20770df4580018 = α; 3b5ec1d1c8209489d78b2eabab46ec59ea1f65b2 = α; 3b5feab7a5f46b3129c78ca6512692588d73eb8a = α; 3b8d4ffa1666bbdbcc426ba6232275bc853755ea = α; 3b9f2ea7dea75e5b70ff3776eb46e114725fed92 = α; 3ba6f94d6907237623e86c589cc6e9a1399e5a2e = α; 3bbd878e5357ee3dc1e752b07819ba87b7230ef4 = α; 3bc0fb4bdfdd1b6c1c684583efe02591afadb98e = α; 3c01d8c58f5ec428fdb8057af5387b8bca2816eb = α; 3c048c63475cdefe078376d2fc1ab8294de64e58 = α; 3c262ad594e83bd32b0d3a0f794b737101eb2874 = α; 3c3769be5270bdf2ff4215c9f2f6c15d0ae05b7e = α; 3c3a62993361bbb928b7f5c0407be6bee08da734 = α; 3c477e2e63d3533e62d654e63f012e59da5a3edc = α; 3c65149be3cd5e4689b4eda6bf5569d16b149f6e = α; 3c6fd2f94e3497924851a5d8254666518d47a633 = α; 3c70f43afffaaed52bb87c78f1ecf8de846ce76d = α; 3c8149ddaa7dec626f08fd4fc2d852a4536ddabc = α; 3c9ccdfb5da6f595a26f2e1f746cfc9f639e57dd = α; 3cc84281c7db62939c39b08c06b3174dc52ae63f = α; 3cd0df317d9f5715cd35c147537107dc3a588008 = α; 3ce154ee1488f62d7804205c87d8e37504733e7a = α; 3ce4d40ab5c9c0141c6b805ed0eaa638cacc0e8f = α; 3d0b21a35355415e71e8fb7ea0012b306e2a037e = α; 3d2991e772cfa979508e25de5935a89210973591 = α; 3d32ebca9fef4352a99f2e0636ac45e9d3b35d03 = α; 3d3ffa0f6b5db075797d9657c491f1cec7434474 = α; 3dae84206c49a13a781a04f072560fdaae772628 = α; 3e2b9f360e17b90289d6aa8e07f64f8bec445375 = α; 3edebf50b702f5e5d08876bdea65dbffa3d1e98f = α; 3eeb2f03152b2114d56a8804fb8d634405321569 = α; 3ef09650cc8541a72fb0c287cf9008a6ed209a58 = α; 3f4cbf00af0438c956f74f514929e02e3e8d43bc = α; 3f75f49ccfcf87ae2a3bcc2a68cf49fb510ada09 = α; 3f77d7050ec7beb565e4f6d6ad5f1291b2a066e4 = α; 3fb53e132dfce0a5c72b3b10fb63fd6b5b89b16d = α; 401dde870b0593ea8eb48a00e180d088dd331d41 = α; 4022d82d143e72ccce04e7825d3328a7b02fc901 = α; 402bb37cf56e4ae0f047b4de8eed748f259c6a15 = α; 402bd33734002ac97efc2300bb3bcf9d2cad7bac = α; 402fa9c093561a043e89a83d3b0553126fdf2bb7 = α; 403c4174a81ed034269a740a7bb9739dd07b91da = α; 4041329918332581cd573d410c6a163dcf7b7495 = α; 409e09bd60df0765b85577118bd3da12988d97d9 = α; 40b467567f62e9c6d0bf5cba7d2ff43cb9a687b3 = α; 40ddad780beeb95a141365c9ee5c50502ecf9a3f = α; 40f7222800bd5c3a14980a0f6e706ce2b8a6dc8a = α; 410e46447d67d73c00b681403bff72bd1c8db3e1 = α; 4138035f335e8ef4c9bd7d4700011e8ce6bc06dc = α; 41478e3ee1bd4eb5b22ccbef4265d78586e0a9d3 = α; 416a2ef9e1d85c9801e1c11b5b75e6647f40b196 = α; 416d80d6a7cfb22bb899d4a75a80c78ddd81ffbf = α; 4179740ad0fac203ef6afbed2ade36619667a9f2 = α; 418d45c49afe937049dd1f731516162b1f716dda = α; 41b5b5efc87e1d57447016f701ab6688ba9bed94 = α; 41d5dc73ef01e6cc21c028fba64a655a4f2d3d52 = α; 41e03d2c0ea9b66441ae01c7aa831107fba3ffed = α; 41e5224b15d09a7227b36b443d5ad87d74e45b50 = α; 41fd3f7a3fb916297e3f478f49ee73a7ef8b0eea = α; 41fddcc984061641cb8c27aba4b296bd158bb7b6 = α; 42325aa5f02bc9fc9310d7edd42e4e731ef6896a = α; 4245e1d2e7ad643f66f744a3ed38052789489640 = α; 427e2d72759a41c12424a8f41db8c46c533e7aad = α; 4287f776bff018fbd5847a483885c62661d3e8b7 = α; 429bcf5d037539b13d24742b82d8b2e4dfc310a2 = α; 42a2da181f0e0c22a37f4fd84ebb8992f5801a40 = α; 42a53ede1b023f8c062f8cdda02e206b50d9b706 = α; 42d3f4d56675451d30b582bc5dbd45fd3782d471 = α; 43024ccccfd7e2f51ab71730d53234756da7f75e = α; 4325240311aaa4a187fdea78519062e5a4d7269b = α; 434d698cf6b167859c6903ad11759566d8f57b0e = α; 4358d2bea62c66562030e8970bcc999a9f049cd9 = α; 439b6b4397b03135c193062962f4e04f7efb2f97 = α; 43af1512f9c03f740a4b1e5e5d430bc184358f2c = α; 43ce938e9264c991f07b4ab978d5801d8b385c7f = α; 43d2fd6b8e568774d422003e4f1d8cbd90c8ad09 = α; 43d5b1f0c816ddc1a75dc7c9eba7e3861bfac93b = α; 44550fffb2c3c4bd3e389a62349314f917149551 = α; 44988d061edf9fe35e6423243372b984f7bbc8ce = α; 44aea7fc4f0d356841e342fce80616815268e97c = α; 44bfee33fde62aa26954c1ac4481489a0997550f = α; 44c8dbacafb32300e6af2a0cf5897e5145c2b7f4 = α; 44e185cd6baca3dd0931a5b2c536c61efdb62652 = α; 44f209fa07e3956ffbde948b34a35bca08039bf4 = α; 450752e8befdc19f8af240d074de7cfdff240ff6 = α; 4511815cd4297243a8afd7a2e799c60880a6ea95 = α; 451249045a83162ab51a602006391035d937b4fe = α; 457e4cce8cc3af1d0237efdf32e01dd8149d1366 = α; 458ce5eadcec7db6c79cc7c4785864957159d82d = α; 45b816b4d0f405c95179b48d4aef89b863be886b = α; 45b8181ade7c5f9416382db55ebb9ff006a860ae = α; 45b97a83e7de5add19253c91c6f9c3fca6133a0b = α; 45c2f6d67121c2498bd3723b899243959da6e017 = α; 4653f71982a36f99d16331bbaebded3036eff50f = α; 46cacf33335ca2ec60df0c71cc36af0602ca8bfb = α; 46cea2f0ed5abe44ea23ba16c356889ae16636e3 = α; 46e1d0fc2b1da401fb554e93a9e7f69ba5b9857e = α; 47057afb3b675c9635a3a671c05a32525083c8c4 = α; 471521a96267727393067d510fa208a9f090ee56 = α; 4733ca75068a23a29a578352ecc8dddc16d714e6 = α; 476436af18523fd743894ca8676ceb74f5d392f4 = α; 4782725e3bb079fa03e2bc6e6d6ca44c9352c9ce = α; 47c3dd6d524f1923aa08644c2e4083ced4d481a0 = α; 47cb5394541c26f3bab3e60fab36b8acba1d8907 = α; 485fd4e8653da37ae3302212c1ff6c808f2e1e7a = α; 486e59fe184e878bc399bc95f1f81b94c3e84237 = α; 487d06c15e88caec9f131b002ba4ced31ca8ea46 = α; 488efa1da7ed78314cdd0c95ad874f812853fcd7 = α; 489e5e0492743ad3dbfd8599a5d00f284d4b13d3 = α; 48a51059aeb73ec544e6c1ace7303ebc6143b782 = α; 48becdab8fce5451f3de26a98ad8c4b41c51c09e = α; 48e9d691a3bd11810596fcf32aef9faa872a8fc3 = α; 4905bf362dac5be04631d1ce552b8184a6f9eb7f = α; 493b6e580a2441b91435c406da869b799e031da2 = α; 497e1a2128ecd56307d393c59ed4962de200412c = α; 49d7eaf76b4f243057c59f3fda3310c655144a0e = α; 49e02b1078a769deaf14989f1731daeb927f2192 = α; 49ffdfd5801c4c8c2b51be4b2e51108595a340f7 = α; 4a3c35cce04ee67dd38baa7ef7703dbd6fa6b14f = α; 4a6de8866429da8f1baf5ddaf3973c381e507f9f = α; 4a996ed0676c92d061e923599186c0d592b8c180 = α; 4aac38fbf89541859c14c7fbf320b1f9deb410f4 = α; 4ac1a3a1641db0a7d533dc58b147c50ee5e61f2d = α; 4ac1a96d979c84bea010254903c746d8f0192931 = α; 4adb6983f2858294dd67959dbb107cb141c93c74 = α; 4b0a3157b647ecf945962c64e6c1f2a4b0841404 = α; 4b6a1631906e490aad98097955aaed303b835e4c = α; 4b6f876e200503f43b0378c2bff4e3371dede19d = α; 4ba7bd51b92bbbea7f47cede7dccb18ed74c4da9 = α; 4ba9e150400597410bcc2038b890c5ebfab59f97 = α; 4bb876b638318dcb891581ef5c5b60ab49f84a14 = α; 4bc5d5526880f85cc76aa4910df1d4cb262afea4 = α; 4bdc7380f8fb8cd1f70702e4b5dd2f4ea262d125 = α; 4be9c06ad3f3ec9e3ab2f093677c38c9a57609fd = α; 4bf3ad76dabf85f8e9a2caef2ec4cc44035c1748 = α; 4ca619b184d0aecc977846b5cb89a7789844736d = α; 4ca7aeb41838db40fce0bd1181781152f3273c85 = α; 4cdfababde3088412ac7195d034c19f4f7e873cc = α; 4cf428f5e7b38cea3b24dce0380c776e1a06ecaf = α; 4d0630a1e99d1c060c8dd45b809b2e6c5e6bde7a = α; 4d1f805d1ce7a7c6f0eb46295359f5ef01297c17 = α; 4d65a777c9a440e869ef25b04b71a9d9a6ff7190 = α; 4d6f9c6d7a261e35898225b1fade32da175cb530 = α; 4d9e2249062c1ccd50913501cbc7ea2fdb8cc94c = α; 4db41bf84756d686fc71e275d2c94c5c2299de97 = α; 4dbf88901817044507142dfafe605a1b527a5733 = α; 4de19ef682be73fd5616348eafabda7e5b5c2614 = α; 4e0bab5bde5138bbeb03c118ed5450afb6087c8f = α; 4e10a129d42108f8b10039ca6b879fd30bfeb431 = α; 4e3bb620861aa7c3d996fd8ee7cd3a40c2096bb0 = α; 4e6e5e7b59b428c37f77a90e081f121a450cb039 = α; 4e7e810806daa53af602a84d64ae8277b20e8884 = α; 4e98b65102ae8ae6833a82df09b1c4926070f680 = α; 4eacf8ae62800ea91a75533032d4a4abad00c1dc = α; 4ee7da06ece4e65e4b1f6c4f3f60b4f183a6b0cc = α; 4efa7b4c022fb3147eafad578190d50881927acd = α; 4f65d69acee548a54f8329d2457356d425bee4a7 = α; 4f6a87f4bf05f150a09c25735784bc3739871dfb = α; 4f81cd7206cb477f1b15d71433f87035b8ef4b61 = α; 4f9629d19fa7928aaae10e4bb7c79195fb4f2436 = α; 4fb2c8f58c15b33818735ef8f75ba170a1b1f65d = α; 4fbda194b6083d60ec1a9e281eb6caad5716cf1e = α; 4fe88f539e62bf77da44db73cb91ffe913569e34 = α; 4fecd0bf8aca3391671cf59243a551e7b58f745f = α; 502e3c3b4dcae339b71743fc346f2398f2d7a218 = α; 50606bde1b8f7f906c86dad14730c53cab06b477 = α; 508797aad17ea00c10d3c50bebc98d3981dd7bb9 = α; 5098f795311987869f91ed638f4c0a395312211a = α; 50eea30641c70b731a2069bd514ef5f1709825de = α; 51298934386bbe2da528af9262277810d6653396 = α; 512f28040301a00935d7f1ded68e709b048d7f1d = α; 51413e0814803560ea68a0cdfa59ae901551ad14 = α; 514684d898b2ab6135a63ae87054e6af91cac2ae = α; 5147927b8b7ebed2923c8d3ae6b0e1f716b5fb61 = α; 5152492459f57a1bb4d120be68d29ed666c87c33 = α; 519dd66ccb831a904959a155fd43639be5a97863 = α; 519e03a04b64bc3d14eefb416e21ae15c6f0121e = α; 51f74fd271b725c13ee25b2dae5d9b5250116180 = α; 51fd67fd01d7f93ebe372aa67ec66496e9ccf3b1 = α; 525da4df29fa810fe46aef9432572bbb5743b36f = α; 5270c6b547cfda7e26cad076321fd7be0e5a061d = α; 52ad7360b0e7a95cc19aa7de2f2433ca955eac9b = α; 530b33d367b237887fd7f3666822b40a696806f3 = α; 53190479c1e53af3a2670f6eeb1f4bda0ebd5a80 = α; 536b4cf746322581a3abe99533df6307e7a9c2c7 = α; 53738d12a38995c76f4de6f5f064a567f0ff3ac8 = α; 541bb03057456219ae8a2ab97be5603923921739 = α; 541d949e247ee005e6e55562dc29055d6159fb64 = α; 5435cf07dad1155ea3ddbd5178f3dd6013a507d8 = α; 543ebe1dfdaff4a1590fbd156175d836ae2beb0f = α; 544dffe0e2da98dba3a519141a740f849c5ca7ee = α; 5495c21514ee03fd9e7736742077960a79934c74 = α; 54be461a1c72b36e4f01f2db78849473477d73dd = α; 551654d82bdacbe12dfe0a27ff7948b6ad1894b5 = α; 5525223a6059a69ca58ad0617598cac64d8659b8 = α; 553aa77e78f9ac7693e56c9b2ae642c4141aed66 = α; 55575c3f7cb2cd14356f9dd1836e4beeb057941b = α; 5559dc18c6a3a435b34446daa5b51264cf9971fc = α; 55d527b168c8ad85340fae2fb9b238e7a568f338 = α; 561af5c6ee4445a0c380bce19a7f5ee82b3fe756 = α; 562c6d13b647a43c555b040ce69507c475089c24 = α; 567807ac295099a07a6c59a7bff568f21dd14860 = α; 568dc16559220cee02d71db824805edd0d74a3d4 = α; 56b3ac7ff0cfd2d96ea21ec3d48bce76e2720807 = α; 56d72a0ee05d644fc991dfc250a1534fdacb5b3e = α; 5725149f4c8e211494463fc9280b6c10907ea321 = α; 574e359a11791294117e7f4ad4f677a99424170a = α; 57518e7a38c99e38c3bb12baa69c5124f3780152 = α; 5756967d4a6019de75418949a564995c64fd81b1 = α; 57a803d869d2db9788911933ffa0282320e75170 = α; 57be8202d1bdd44a6b6686351edba4e653af9f01 = α; 57d629f9fb09a65be5be7697a5d33a20c2b557a4 = α; 57ffba4219a312d7e7daab46237a0f61ddb3ad28 = α; 58031ce6c4634d8b348854a1ad4bc1c74d022c7b = α; 5828edda3a662171a3c8e304b857dc7a745b85e4 = α; 5890d07428ec2ee9086c9f8d07792db118a1b57b = α; 58b4bdbc8f5686d4ece9cb4a18f6367d8222f073 = α; 58c296582abb3dba4bc073aa6708c81bc8798ff7 = α; 58c56183f54227469e3aba4fe40c8fc227c66e55 = α; 58cf115d701dba2092d2e4a3f0ed075cc6fe3069 = α; 58db59892f8758da63e7b9c465b5615f6318634b = α; 58e46f1625d6b6603897665bac292c5a3566d565 = α; 58e4e03689103981844fc3f19413c5d3eebe2489 = α; 58f1a93515f38b967b50196a9be74684efbca7b7 = α; 58f5f621564cce6f1eb3c9099a1645a0369ece56 = α; 58f7288e0fe3a5997003f6a117a30579d15f5973 = α; 5906155140815aedc94241abd916f56c6ab4564b = α; 5925a9b0f257cc9517f224bec3dee7ecf883aa08 = α; 59717f7d7697f047103bbfbca63b68088e7172bd = α; 5977705c2272d0c3385b70ffc3e5f0a2983e986c = α; 5983c069abdec3469db5b5874ac27c17341e3f27 = α; 598492be84474143365fa6267a0e73936ce8a248 = α; 59c4bec5e2957d30ef37c5198c4b90381f3ba20f = α; 59d5809fb3d0b096e7104e798b12b06dc68c750e = α; 5a001646d2ea8b208174c4b954cf99309889bac0 = α; 5a2a13ad5533dc3b2172eb552b404c7c458983ac = α; 5a4c5b85fb81b291e8fb6f7c37c0b152f8aeb1bb = α; 5a668ab8aef15368ff281ed35e8f730cc8ec5c7f = α; 5ab07520be55c428c36c959bcc9d4738bcc55daf = α; 5b00e89032246f6937f2093a0f6510beb7eab715 = α; 5b0c314a325c53eec5d98afdb50067ad99c6e99a = α; 5b37da6b06afe4b358305eda6827bea44e782b44 = α; 5b81c9f201693bb927130d9d31a3768f7143dfde = α; 5bbeebcd7d784670bb16f73b0bf59374d12e300d = α; 5bd038cfe2a2f12f6753e85dee691c08d4fcb6e3 = α; 5c42920f6f44c053dcf7e87f29ccef27b326822c = α; 5c4dd9ea4a964b483b1e90c4c6a70cedc63ac70b = α; 5c517712601cff542ae326efa6bdc3a7734755c9 = α; 5c53d41540d89216421c6738a2b0b389ab94ea8a = α; 5c65fc01f0d8703654412f609c5e78a363870079 = α; 5c8363a3b4c54cf612de94a0521b30e565085fc8 = α; 5c884c59ad7491166618894713300acc03499f45 = α; 5c9dc79aa298468ccc506369dd777f36e980e71e = α; 5ca8bb4804169df408781649b3ef8a3d6dd2f414 = α; 5cf160a27902278f941572aa592a11cf80ac6972 = α; 5d09c96c7e23adaab207052fa2fe12dea14e6a44 = α; 5d2198866f1b1047bb8a047bbeb38cc0622a4cfb = α; 5d8e7a77ae12035781174084d8cb9a4e1bcbfb0b = α; 5dbebfe34ab5c28eca7d7b6c57ff41cda029cf64 = α; 5e2314065445393471dbf0e9d3f2755a491d1bba = α; 5e58fbb85b49d5886aa35ed06da2fc6788db1320 = α; 5e7d96af5e5b1cafa670bd77ae918457a118f7a5 = α; 5e9b459db24eeba207710184e58445974e211543 = α; 5ea84c79c69cb4f20a2cbde31b1e9655f352f1c8 = α; 5ec11a04eda7f0d96f115e200ac8029b95d4115d = α; 5ef88b8b3029a7aa2ddaaaf702ab09e6f18a9ab1 = α; 5f026e163284ef4d1dd49f3e7ab1ddb74e2e8dbf = α; 5f116087ea09d4cd18e565462f0cb21da53cad86 = α; 5f239795752cebffb0bd14bc3d14db541d74b95f = α; 5f29467ca4107002987a75eafe3c02d49c0d3fc8 = α; 5fa26a7a3b2978df4bee466d4c76c7b95497e4a4 = α; 5fe5595a5a46eab069dcd2d6813c1b68cd9ade4f = α; 6028c6247770e169982f50ed839356448f3d93f5 = α; 604e9fc9dd1c1b397add8f900213a87a9964ee51 = α; 607c94b25b7e4fd2ad13dfdf210e43eca3abf392 = α; 60864e331c9e60034c81b9544ca30a14688574a3 = α; 6093beca3b21ddf0d2d599e6a841ea070ac01fae = α; 60be604621599e16ffec1f76e08339b6f9d89f8d = α; 60c5bb5120f6c73b23af87c97dd5179f0ade011f = α; 60d58acfdcf8d83f8a76a00017b7b2e18671b5a9 = α; 60f481b9e0149933c045fafa2e119c902e698d0e = α; 6110e8d90324f6bac6bd3173bc69f6c58d459d08 = α; 61402aec078bfe9e6535f5a6ae537710fa5e79b0 = α; 61588d85e249c225350c50ef50608fa8b9f4941a = α; 618449250b93c28bb8f15751ff6bb653143e5ff0 = α; 61a4313e93aab82bab5da58a1b601aad41ecbd60 = α; 61edd2f04c73c5c3eca0bfae13c92213516504e3 = α; 61ff058a4cd1eab2481a48a115063c62660b78ca = α; 622d9c355d2344266a6a9065ae16e911791d9ac2 = α; 6253baddbb265d8bcab9334e1bb48fee69c0a14c = α; 62cfaf0ed5a8437e74ef0b7331f28a86942cc8c8 = α; 62d297add5bd88f5ea16b2ba6b97664dd888eef8 = α; 62e18e2b34d9ca5872cacacfd6eb9e94afd0eb2e = α; 62e5d1e864e96e11f84e99dcab8cd16345641f43 = α; 63574e974c45ae3f0e8fbfcc9d896c53798dd161 = α; 6359e2376de35d2b27246726788d28d678796a20 = α; 6372acc1b0c4c85801bbd2b0fc9bd17a043c1b67 = α; 637e6e050e0e294f4e7191f12ad96c9be75aa747 = α; 6393b6f72772149473aacbdd6425bc77b7146697 = α; 6393ed28494cd0c7bbfc3d90ee14a3c4fb5ffe2e = α; 639844a81c2400a43810b5674c144824ce23f3db = α; 63b510d13c94072e9005674901d2b32ec9853167 = α; 63ceab8331229d4e03c85aa9b5f4671eda2643f1 = α; 63fb6b15f90b5647d4e46169447beceac52a5dff = α; 645a1e3bcfcb7345c6416a0ed520fae63329b8b3 = α; 64e87def5324af1f8687a977b1aeca68f9ecf0a6 = α; 64f0b7d72766b49356b5948a55695a43f845be22 = α; 6522f3b24668a2691bee084b8ee44262dc6cc644 = α; 65578de12deaee566474c4d151d51dfbd4c073c9 = α; 6580420e45c35e3175f7714b91aa918b46c45984 = α; 658fa72e61b1133bc866dc68b7317dda0c190d51 = α; 659b18633abf461608be32b8b565f4b70725ee20 = α; 65a719d77d9dbaa46e24a210a17ef22399982d13 = α; 65b78b6ca4fcbc234e459578f687f0a5f21ff467 = α; 65c815431a222281ca4027a3409714aca969c404 = α; 65f992d64db107757f6c8186765571a2f85d60d1 = α; 663723ac5cff1d4ea06e07da58676eda31ded8b7 = α; 66b5c49c095c24e8ff5576638e6f43f40b60e398 = α; 66e6d819829e7f036392ae108ecdedd0068b3fed = α; 675414213a5992bda8f4bf33aa2feac7508eadb9 = α; 6758891f27f3f1b33f508442151c2d1d4244cacf = α; 676f25261064cf478cd211dd584b7a391376f599 = α; 677b668be4a2ec5fa834fa988bf502390ca975d1 = α; 67ebcec99338fbc806e98fe5ddcc80abd7cfe885 = α; 67f9a57842391bca1072e56b907d2adde02d2d34 = α; 68290cfc4aa5f88785b355b66e5efa7ae2451f3f = α; 682beb667137b4be322732642ec6bd7a7fb77a67 = α; 684a26e9ee9814c8e55834710a5e5395db2acbf6 = α; 69435a1a9c544a85003dac3e715da698388e8cfe = α; 694d6d6d33e802bd013aa60c6ceef225f1769a21 = α; 696aa11a029bfeebe1885750c0a1219698f45667 = α; 69fc2b97ab8ad300bd86bdb295b868f7e2bce67e = α; 6a0ea024e2030b5079a2b9e20aa262fcb1a4a4b3 = α; 6a12e8d5c57226c69cfd4eea779767ef39cc7040 = α; 6a471e2c9660b457b6c96bac1a80ff31694ca135 = α; 6a50182277880d3cdd4488457883c08e6765df35 = α; 6a67f7a815e887377e17dc82a86617bcbfd74f12 = α; 6a6962c3f79f9f08e1b48bdf76659d8d0ac02e20 = α; 6a8708499175f48f9ac6e36dcde1684f5908e594 = α; 6a9c5875310b65c3a8a12766aa12d23c75256911 = α; 6b3a9a128f40523d7b4663b4aff1259e204dc2fa = α; 6b44b6d36ae3887d630357d09ac1f4655e43ca7b = α; 6b67c4b93edd66dc6876acdfaf991559f2387756 = α; 6b6ea1539e3e10b995b117a201cd14188d7361cf = α; 6b990f3e47bfc2ed0ca6a8c68c9188a6788110bd = α; 6ba54736caaad91cbe96699871e5e369c615d477 = α; 6be690bb0e769b3f7e8d0ea9dc261b06f0496249 = α; 6c0977b3790d44b85c497cbd724ffa4f744bd6b6 = α; 6c431edb06befc6eec62ca59cc72f45697da876b = α; 6cac0ce67fc25ab9057de053ed68e469376a951a = α; 6cb6768eacda17fd4b9089b3667e49c91b543347 = α; 6d0a3530ef64aa77b0e3b1121ab3e5148367b843 = α; 6d10bf18bc8be763d3e8f14a5f604b8bbc8ba92b = α; 6d17b68e3ef2ba04421c03ad37c21c1871a7291b = α; 6d2192770af113f0d25717171721654f92522bc7 = α; 6d263531086a2ac8abcd381816ca4bbebeb2bb89 = α; 6d2b2990842e4e124fa1767f5e6fb10dc1c8f0bd = α; 6d7357dd4987e9a687f666583450e9650b6bec3b = α; 6d8bf7bc3f485cc58257d2f301a88e430fe47518 = α; 6d9e988311499cbfde8b162b1b772f3ab0826cfa = α; 6dbc1369cf4eb542c999ef1a7dc17798e967968e = α; 6e12c754b5531592e7583c0ddf5ea9f617bc4393 = α; 6e4f2760b5d09171b1caf834191e8eff91e09092 = α; 6e59a6401cd7e9537de8df24d6923df4897465b2 = α; 6e5a4c88769060bd4e1cc4b17dc6944cd5f3d5cf = α; 6e730e7ead3a2958afb3beeffb7961d98b372ba4 = α; 6e81558b9e889ebb9d8f50cf1f1d5c4ab32617ce = α; 6ebcf68520fb80c14bda307947650ecbe5ed0335 = α; 6efaf9b48d52aee2c7a89e9fb7c8face3a1dab34 = α; 6f05a4518d46fff2a081dfff843f2af3e163a983 = α; 6f0e8b5effca878a55ca98bb70c7fc5b9c33a7ca = α; 6f25ee59e861b5697b41d487ab19360684b2079b = α; 6f3fed4aa88e43e6ccbf7498ff502f8440e1d8b4 = α; 6f51406032cee2275e7da1c749608e097223bcb1 = α; 6f7d171cf322dcfd650c55aad7573fb99f926026 = α; 6f920a415787627f9dc4c1ef92a2a039a21976a6 = α; 701e08162a99eeb25b55b6133dfee51bf36e08d3 = α; 7054b730a39f0d762ba1602fbca946a38a8811cf = α; 705da00d6ddc859d91abda6fb8299b957eb0d99f = α; 7077b313799ab4557f8c8d9aa345313eb3c6fbae = α; 70bb4371a8b8f7a2118ee2f0a7604496b68eef9b = α; 70bd0e0e4dbec19c4cffb718ebb1ac84e037940e = α; 70f50e9df2d8e0011bf9748ea4c1df4c8c8c2202 = α; 71031e888d4b28104016a406b7ab6e993322d9c8 = α; 716adbc60694f3f72ef5e25a38f3fb973fdc7a2e = α; 71a6745bfe2208e7c0eea0718fc3a06d9ebf12cf = α; 71a806e6c281e55c56f6e0feb65e35d553d03b68 = α; 71b05376f1ca6f9ebfddddb4cb2258620d57951f = α; 71f91c9ee187d974e3f5da3d91a352d568c260a8 = α; 7210d2acb28ac3185e52b3c854c02db46878b00b = α; 7214bfbc3129849a9681c342e1873b66020b0420 = α; 7221d90f16cb54cc4f5be63f68865da103cd4f5a = α; 7228172fbb398b4f9cca6ca9b5db85d1a6644b4a = α; 723429357fc93c212749453abdecffa83625ce63 = α; 725d0cc30e3c4b6a9e3dfac3f320a6c9904dd8a9 = α; 72e906fb126222e8269f7d46e2d9f1ac603baa5e = α; 72e922640673b6171e86c8c7fcdfa148004c1301 = α; 72fc2150939a11815cfa929001ecb00ad565ce7e = α; 72fee8305071d508698fa86e4a89c80f5ee236b3 = α; 7305d73041a77bded642dbf6567625ac3c0208fe = α; 730822767c19d479de3afc2e926cfd7438e23852 = α; 73163f4d3a1f9f7015cad45b8b2fe49ee716aed2 = α; 7320897f4f1584c0e42fd2546557d85ca8f513db = α; 736ccee7ee45e606201ef7b7c643498cfa13d70e = α; 73bae428e969b828d72a1c4b71208bd855b67233 = α; 73ee6ef047e32991fff9aeb313c0e8c7faf673dc = α; 73ffe57844e03a4cafc0e9aa8819694c90e1522b = α; 746b744c6a42c0f8af6feef784581873bde794e1 = α; 7491079d020d11f40f14eb94536fe09006ff2c16 = α; 749a111a54b3257ccd4600b6ece1fd86a57efe58 = α; 74a5411261270860b0b2d315c8398df07f956fa0 = α; 74bdfe7b7c5448f6b002b747a29ddf4eb214dc0a = α; 74c4761d61aabc4f7e227da3ff18fc3af1ea7f5f = α; 74df4c8f82ff3081bd49648cee83a06677495bd4 = α; 74ee06b2cb0a84dec755ca05d0b832517a58db9a = α; 74f904f20ed3e1cd02cc9d0e07a2778948328274 = α; 75124406de34db23633265523d08e569d7889164 = α; 751d2649bc4cf19cea075804463f00cf0ae61ed7 = α; 753eb938736a4b412147164d4077e991f9c89950 = α; 759eb0a64477d1269a2089f229e3f0a2276fb531 = α; 75e0842c76b2e55a861da42ea1d7c4636ab53833 = α; 76b0c3828b07ab86d995f91647a8fddeda00981a = α; 76df9b164d66551812ce65dddef45a44604b8c8c = α; 7725a79a9a5f662ca2adf8ae2efb114d32ff45a2 = α; 77352bcc40b2053c8db752c49772dbf0d158af62 = α; 77464fb66258632d2799ac5491f4316d35cc346c = α; 7756f8e0698993a2efb94e15819a1d1a22edd9aa = α; 777419bfd692da1795221b0711a3b11467f5e4ad = α; 777fe4089b0a02f749411d577a2a17adf635dec1 = α; 77ab57479dfe164e72b8298375e3b9b577e6640d = α; 77c1ef425fc9a747ed3815f78a2616fee747fd12 = α; 77cf0dabcf5441932f1317ec4ee4e28bf2039a85 = α; 785a36aff000132218d273b16e36412342def12d = α; 786040422666da11604af7280dd6eed639de30d4 = α; 788022e3bc41bf23e517d88df0ca24f715b1cad4 = α; 788b132136ad4d08c5f03e4078824ec04b1ac0b9 = α; 789b2bc3606dc2558b7cab5dbb62e8e76f20ef74 = α; 79042a16d0ef7feeccc76315246c5ee6f36dfafe = α; 7927b5a5a5c57b3801e7d0d4a42fcb142f267b78 = α; 792a616c0f78fa0b294f67b56549092efbbbeff6 = α; 79477f2a4147dd648f89b314306f5f0346278735 = α; 796f0c398bb010288b3688e6743420cfb681a4b8 = α; 7983882382ee0785a3619bfda754358f8d6cd5c9 = α; 7996e8351b085aa99ee962c9a0abbbe9b077e23c = α; 79cbc648416e750ee538d57d6b608e3b7bd7717d = α; 7a02f98f23ebb4382454f2813a70cbb932fb9e13 = α; 7a7d7497e9f19ef7a2e4e35a37308b21cec9f982 = α; 7a8446207acdf4eaf9676898ddacf9bdbf595de9 = α; 7ac1ecd1bdbc99aa980807c5645a78ae48ea9577 = α; 7ad6959d0c1c635355409e72473d108d90869dab = α; 7adad32ec30d0be94dcf1a19012e273b9971057e = α; 7ae477712090513005fe5af06c6026b245d3c946 = α; 7b091ff0e3269cd3b11fb00a394f82b1604095c7 = α; 7b6219b2124e3663a1f4383de616fd63676c9693 = α; 7b7d2e469aa46e6b7a1550e355690591e4ac54fa = α; 7b83af4328df75db5202d9e02c057d139ca1a9dc = α; 7ba89ad415dac138be18aeefe3423e3ebd56c0ee = α; 7bc9f224a762158a310d9dd9c355f21bc20cf5fb = α; 7bd4669f05c73f4cc2d165c712eeb0cca6711e7c = α; 7be14b1c31f9c742d61528f894b5a0faafdca608 = α; 7c8c84dac9bcec95152cac9aa9acac67f7702d08 = α; 7c963542515f21d8db5b961bee100b6412d597d1 = α; 7cc355b9c369e318b838b18f749c24e2afd259c4 = α; 7d8e31de63a57ce9a9e79c5263a63d5d46615baa = α; 7d9e9a2f89c7bbc7404f79811bf83f4076b5bc32 = α; 7db350110118d3076728f890e80db47042b1c9c4 = α; 7db51b6372a7e6ccd911890e40586056b5c3bf70 = α; 7dc9a4ae40e2c039f47bfa781f706c6ba93f5e77 = α; 7ddc7ee608268e6d717f879cf6b6b7305f636cd2 = α; 7de52ed6339fe756210b171c838332e276370e70 = α; 7df9510763997f0e8873568712dd0de573058bf3 = α; 7e1d5652590c12db0c440eac59f69a777425f9bf = α; 7e6ab4f547b9d8bf5f8a35a74d335d500588d8d9 = α; 7e741bb7378733b67fd4bf594a5798fdbbf4c06b = α; 7e74577c3774e9eb2328f96f667ae7df976b62e7 = α; 7e929e26670125eb017b7f33f7906adcbf8cdbe9 = α; 7eab47f1da799465d08b68e26c7ae336a7b07a47 = α; 7f0b7231a2a6fd1df206769a4acb8cb861b09f02 = α; 7f5b42e091a41c16eb4bfdfb2de3a36670854201 = α; 7f8b724b75c6f29c33f33a1f310cb495e079aaa1 = α; 7fe64241b07105e31272f224ac763156f8b8296c = α; 801295549915c66473e6cd436dc1623ad50a6868 = α; 806cb366cb892bd749bb1e697026060f9943b794 = α; 8083297580223f34923e3ed275ba2082cb6ff1b6 = α; 80cd8c5c566432905a991761c25be7e43613ea68 = α; 80cf2aada6b342c76be1c6617a893008f7a2e992 = α; 80d27f0c38fd20a082015a2b069457560f523b57 = α; 80fbbdd5d2b95966d99e270b260593880769871c = α; 8113584b3d880586f19985a5103712b5251a347d = α; 81306b38538d7e69e278eb4d4a1acb25c2d44dfc = α; 81594c92fcec0b95d7d0b47ad36aef8d2605c8b8 = α; 815c7f4ed8653c23f02829438b553e4e310c1185 = α; 815ceaba7a67e678c4a7187990c7367805ed6d7c = α; 817fe5e5ddfde58d79455a8b2cf70079f0642770 = α; 81bce187e69fb02baaecaa20027bd477eb1f990b = α; 81cf86d27a982faf7f6331f91b6b5634cfaa00d0 = α; 820a14581d58bc24e04e70e2d050e8568367b29f = α; 82368148bbcf9a6d07bead1e678bfee5f8631cfb = α; 823786b849304f4f046e804e4c7a9578b0e7dc4d = α; 82752934d29486bef3008fe2e7e9953dacd3a238 = α; 82896a288bed5637b5e537aff3c81d9a146cad8b = α; 82921dd1135940696b085da4d09cdd25eb6b740d = α; 82b74cc467fe5e422dffc6ccdaa2746b68a52fde = α; 82db6fcd53c153656a49118fc20771a50c406e2c = α; 8305a66fae9404fe58331fbef287d0215d05f2b3 = α; 83080f6144d571a9ef0996315476290d9c3fff68 = α; 83095c9481a4bebd25dad78e6ae747bd3674e086 = α; 8309626bf9429a32adfd8e1526f7dcbfb250ca49 = α; 831c19b0009bccd44d4c2837f3c8ba6e08753be0 = α; 8336cdf6f693aca7ab55371790ccf0bd5043c224 = α; 835db4359138adfe88490eae6e8d8c90b322dba7 = α; 836ee88c57cc1b5617f36a2b9fb19db420285b69 = α; 83960dda908738b13095ce2b7d9b31fde2baf36a = α; 83b8a24a4c385e1b384d645d948485842fc3cc76 = α; 83c26e75614987b0816315db03de7aca670aae61 = α; 83cf82ec1c25f57a747c78a0c0ee954463d3aaf8 = α; 83d99abd11bcb8782d32661775471266e6254ae4 = α; 83da0ef16746ffdc1151ecbda04a0b161e3f119e = α; 83dc459b2d9c7905eb6f80c6ffd7c0c912a4b007 = α; 83e36792413d3e3b767aae667cc67fd3b02ee133 = α; 83eae7ee8ccb30a23878582ea6466cd8487f17f3 = α; 83fd339d2e91415631d3bbe960361fef5a8a1d1b = α; 841906d093cebbe152a1ae20fbab8decbd282e19 = α; 841af4efd38ead50b821af773faa68345269e26f = α; 8460d3dfed9655b4e8ce53fc3cb879c8905b05f4 = α; 8463cbaaa73774638635ddfac40864bed92f3c29 = α; 848145830d667120c6b744edf11f9f6c7e2f8b7a = α; 84a55e9bd6ceea8c4b1ef30457675290b8de8b27 = α; 84b6f854fbee939820a32e6dc3d2b219b84bd6a1 = α; 85317d647433d1e73e61ca6fe79b44f9b3abca42 = α; 85393f1f0730c3ae240238686b47d7643899d34d = α; 853b10bea00eac17238cb14c6b39474e5d2d1518 = α; 858f8eae96cc6e3a7d1fc624e44ef972c47011b1 = α; 85b191ae1844ad6da93fa57876c8850de342b4ca = α; 85ba3d3276f5f01cc86df8c39d7cd730ed3b9a4d = α; 85df0b8a16e3e1c2b99bd8d8703a8c00f80c4ffd = α; 85ead6085f10e657e1a91326f3704d60b31164b3 = α; 85f7ee1e6e05e198cbb99f56c5a3a9d81b41276c = α; 864bfa01d63681c131168385b66aa9d3e6b7e23b = α; 86a3ef300ab5182d7d6f3c7e1dec1ab017621176 = α; 86ad290cb6e4e954f3e8ad5203151d7614279554 = α; 86c299a2f4f573039b2558718ba45d95ff08ade1 = α; 86cf1c73f3f607e472fa7ae7be4709c191878044 = α; 86fca9c30e8dbd28a791714c1385aea7dc583091 = α; 8741e3f2519f1221c2f8bdb966cfa4504f3ba5a7 = α; 87758c549dbc2d3ff96e0ee0b82d6d99f20c0ab1 = α; 87925181e3a8b737757401a6114a8acf82625a49 = α; 879da85ee7839263b362a6d69f41f3d4477d2263 = α; 8817e4ce5e9049b3ef1374d0f56fa509fa491f73 = α; 88192934143593f3b9bdf82185f4ac7a7373da7b = α; 883890e30ce2c617da8433831db3b480780ce910 = α; 885b477d70802077c49ab7c32a784bacd55ad24b = α; 888feb5c0fbff7928f650be69fab3ac123ebaa26 = α; 88ea146643258d378d159b9f928c783774ea9c53 = α; 88fb7a15bfd879a0c14ff7a16e321cc2b8896c38 = α; 8901801fb587b12a9aa6263540cdd95b46710f9c = α; 8906ef4c42cb5d492b620e5d8dc2118dd976ea12 = α; 89080b8cfede13b245eaadefec0b89e901ff8646 = α; 890adf51623c1e158f5c9f34db7f7f686e7005b7 = α; 890f859d20731989f0ce0e2ccc89da28cf0f8dbe = α; 89550f66a2a48a9f1b9089703e9b33eb14a23ae5 = α; 89a680846da64558e5147c08cdce03270f11e7a4 = α; 89be40342b7a93b0b11a6d495aa56ff3b8aebdbe = α; 89cf6e0f862a93ef9e543780d100517db3f3327b = α; 89d28cf4154268be0856af7d9417e5f4018f65b9 = α; 89e79ac4565d509ccc57badb152f9d534469f4e6 = α; 8a1ff4c3dc8b96b41c8fca1325ddf964f3768446 = α; 8a251169614945698a2c1990c0898641d380b289 = α; 8a73223e8d37b2fb9151a753a24139f37818e434 = α; 8a7c6b0f9cc883870556fb456f20715ed40367c5 = α; 8a933dd63dadc44c26fb7afa83573b5ab52aaf33 = α; 8ab79f2416da3c5f785bf291971680dbfdb62e26 = α; 8abd833e1a283680a6e19d7896cda23b4f559012 = α; 8ad5dea631af368fec9f5f42b6f235997a8131e9 = α; 8ad8c126595c03e31b971166788c82bdc9cf0544 = α; 8ae41d0c7d8fe2a00251726554c48ce1dec9ca04 = α; 8af47f724bed2b5bd921d98f1d04d577d07ad781 = α; 8b025a64e2081e1caa1c37427ec0e6194ec0275a = α; 8b0519b8991a39be23e66177b1f881b62f967cb0 = α; 8b3162447aae7621530652ee14ce8da1c287d6b0 = α; 8b8340f444f8bcbe6806d7f4b2a6d3894354baf5 = α; 8bb26a65444fea08370321879198f39f86ba188c = α; 8bcf71af2f119d1ff9d3b09fe4ddcb08fc1a7d95 = α; 8bdaed33beb2fa505dd0ba8f7d9ca94208ec44a9 = α; 8c062ee2e53c0fdeef88071aad2ed5ca1787cc1e = α; 8c09c7e57e2bc1a99df552e75f3bc3033364bbd1 = α; 8c220042a37dc4cc1b8b05afb13afadab972b12d = α; 8c9f2e92d67f683596da321c8af36ece1d8ac774 = α; 8ca8fc4f81c127e4c748fcb899af430506bd0b01 = α; 8cd8b767b771e6d10c8f1f0b54ab812881f22fcd = α; 8d5fa95a3df6eb36318fcf2a135f464a76257cc5 = α; 8d8a695159bf666e16ab7b3558bb1d5e4e3b4698 = α; 8da60707e5826860752528702f9a7256a5d2ef81 = α; 8db9bb91759363ec605c3d44273194136ce7dc1f = α; 8dbbbdecc05ee43425e31b4f4eafb33b90db30ac = α; 8dd3bfc182e5277d4408943dba3520659e2928f4 = α; 8ddadc13864ca20375d4b0f4ea443c123c3df3b7 = α; 8e02b6fe5eaaad154d3b7677458a9f52c538129f = α; 8e039420fc01a77f694997d93310f9ae83f1b6cb = α; 8ec6e7ee9b649b9774e5429add4c5058fe492fd1 = α; 8ef45e913784e24ac5b05d020bb1c90e5e1f65b4 = α; 8f31c3a2ca87728958356ef279d797c21ff800d2 = α; 8f4c0d2091f953f5c7ea8154eaa6e6d04add923a = α; 8f92c27e6fe54071ccf92649c25ae44991ea42c8 = α; 8fb54a6908a0bea0b6a901eb32dd120dd2360fe2 = α; 8fbbdcccea26e1c7cbd56a84637ec3564aec691b = α; 8fc77c86e05ff31bec85d8974938b0b5aa12fd1a = α; 8ff23362f6d2fe2b1e7f422a3f52c13797ef128e = α; 901760156bc3f4720396fcb487ad396709e18d9b = α; 904a3b18b20eee856202f89aa46a20df12388dc1 = α; 90647a14bfb8f6e8cbcc8d8ecce7d8e2500818b9 = α; 90874ee4cf89c6b1658479cf16716dd6d9f3391f = α; 90d2bac8a115eb18639fab5f7840138c63cf9b8d = α; 91475080ede727f0185da20abde65457b43d5476 = α; 9148d7be7b0930b397ef995a2e8cfdc6c7e2617f = α; 914d43c1dd28877dfe0d8b3b2fe4dca1ea17a575 = α; 9157e95d94d3ff3b40e3e507ef12528e8574f8d7 = α; 91639ede60c084c481daea6546adf05ba88aeb17 = α; 919773af16fc549ebf79e9b9629c8d0c79d37927 = α; 919cacfafb5826d92667b345276a3637499d8eac = α; 91eb46476dcb659fc2275fc18c2061796b561bed = α; 91f1332208a164cfc7739215d515dc4574548eb4 = α; 91f5cdeaacc7b2be3fe926cfc1b9d3a054e143f2 = α; 920bbd06b0082189854b0b43390a039f451bf843 = α; 922b2bdba29589b9fa7f0b9dd3668e5703e9c88c = α; 9230b9bb873b7a7cfc1fd2410d1749427c7c3499 = α; 9241f4cc15ce04da3b203bb3ef60aa2a71cb19c4 = α; 925f53a8ddf5e922520fc19cf6a17b00419817e7 = α; 926540c5a0b84439444ce2305aa3737763bb95a3 = α; 9285328e0b04faaf9fdc22bd27b76ef259020492 = α; 92abcde8582abb2913e4531cf3ea720b0e8c7d33 = α; 93423a9a78f3eaad42d062f8d2ff25e901ff455d = α; 935837a33fa46d5ef7713fd4a123c61845ce49e5 = α; 937a8d559bb1eaa790bd343ce8439885289660ad = α; 93992b5277a20ed987f224c8f23f713677e0e25a = α; 93d5d44b151da63343cd4f052e5efab5039f13f8 = α; 9402187f503c2f391c471ecb84988e49b0cac918 = α; 941fcfee8a4d9b5b95af5e64593a01405ed864b8 = α; 9480aeff10931a3129abfc074e9d75dc46fb60b1 = α; 948831f2786e73219fac5ebfe8a92939c3ea637f = α; 94ab4be561c4e5ce07253ce94aa3794090a44428 = α; 94b9d86dc4aef7c178c2f9b2cd5360412b13b2df = α; 94cfed4a88c4801ef537b65413db4cc3326b0a89 = α; 954237c72446f3cdf8886043123658ca943e6a89 = α; 957337ec86f032a91c82dfc2f859843e3a1c1e88 = α; 95b668ea9989cc5ca54f2f7db9aafc7ae8277fb8 = α; 95e4d7dc9cb01e3491442f9370e98e0d6361f556 = α; 95f7b61131b0b7361bd6b788845382016a65618d = α; 960e4509e3bf35c6ecf5e52ebd53c18379354b18 = α; 960f838a00eaece74604333768e1901f77dc91e7 = α; 963f0fd12da9d6cf7d35a71dce090f7d5271d802 = α; 96421d48a3164d2d4259c4c9500dfbf44d9b90fb = α; 9653a9d2aef2e0fff14e4e16ca9058b38f172dd0 = α; 9690133f46e7a766b46b38365897102baf062020 = α; 96a0e755dc47a57b85791e7d748fe25e7258173e = α; 96e618ee3726b5d13ee509923aeff0bb6272498c = α; 96ec8bc282d262d4764767c1478400c10994bf5e = α; 973fb0c29b2e3a44d2d370a545ef1a38a81ed07f = α; 97772a52cd613920ec0a84f0c8b57d0c8e88b1b6 = α; 9788909a70709303adf419bf0340b73ab037600b = α; 980f3e90adc8557d71bfbef57bc146374612493f = α; 9851cf052473a71589aa7577f62e6b82f0298832 = α; 985271d1e9b876cc6b98ce871d8efed7b2b3cbeb = α; 985fcff275609870f5fa9ace4a4e31fcdef7eb1f = α; 986472c357451eab93419161f5ccadfefcbdb41e = α; 98bce6b328014cb7a038cf71a5c84a03c88f3b63 = α; 98d4e369b78b0733da5369ef5d9a3d0821224bd8 = α; 98dd7a062fbe1436797395825aec70ab45a9e01f = α; 98eaec4f30d9a8b65a6d9865fe0b1e5b7df1e740 = α; 98f6aead047382d81ea82cfcf7d678c3d279b6ad = α; 9905967a7ecb273ea4c135e170605bb12051e395 = α; 99408ec397e6f41cef3cc1118a42007c42240b73 = α; 9960c14a54da2eea43d72be9aefeeb85b8cd4e7c = α; 9974452a9032d4ef1911e1347776b088bf0f03df = α; 998f25b9ce65d4cd484598d5f49cfdb023205ace = α; 99985696491968b007dbff31cfeb9439637ad92d = α; 9a10248ffa6ef2de0ff39750b0126e7d0b1557b6 = α; 9a27b682ddf08347ffdd2673c005febde327223b = α; 9a6f36fd2204a5938bfaa23310ac94f3eac70d91 = α; 9a709e39d73f4dd05adc8a171c9e771ca1facd83 = α; 9abf05827a71d1c0a15a65473fe44db0a9c8676b = α; 9ace33ad3d9ba29d499d254c077206230291f79a = α; 9ad3062b35efb39cfe52f02269e5e28c03df86f5 = α; 9aec8735040beb57da24cffa27ef5d254408275f = α; 9b2025a39ed5dc7d0f745fd5f484fa5bd2f9b319 = α; 9b367562030fc7238553c6aebec57181c96d88fa = α; 9b622139c6c9738ed9a9c4bca74a20d18bea5a75 = α; 9b6f3a80dd242ad667ee7c33f54385d4fa791086 = α; 9b85c2fa156837a820c7e7ae27d2ade465850441 = α; 9b8fbaeb9433a52f4f65397b66bc6da378e067b7 = α; 9b97586a3c9bf005cab1870015b75587e39f94da = α; 9bb171f0382c86c213e8f4d3ffafe1e676490b21 = α; 9bb63a05f1dd1d7171eeb8018c29c90d81773605 = α; 9bdd5448dfc6229ba9d0261514a078236c882986 = α; 9be02ac4f895d7559b0cba2d4b65f8ffb5626236 = α; 9bfa76eaf50a585e99981b54ef5628fd89b397e7 = α; 9c2836065510901f9ba07928e4c7e319dd33b670 = α; 9c2b99ebfed2e931067e8842161b2811d04206eb = α; 9c45f6155855d24fbb8f12e7a40895df1e55b205 = α; 9c46b9b756ef22a0a9aad7d5efcf7e670cf46b3c = α; 9c8dc173e3087266551343fc43db0a118e573cd5 = α; 9cb4e1d5ca0e7935f8d937f678a9245ca0a8baf1 = α; 9cdfcaa36a081486e8c591d1b0de339f20e19712 = α; 9cf547b1a8d0349c6997827cf3b1c76934a8f7e1 = α; 9d0629861bfc4948fc177763e87dc1ea3ac042ba = α; 9d238c0aed4cd73464dbba5fbf034030858fe441 = α; 9d2a8629491c47d32fd852ad683ba3be0f91dca2 = α; 9d4088ad171c93938ed41b2c224a98da2eb8e600 = α; 9d48d62d8894986890f0f871523b546e25618a96 = α; 9d6293584ce78fd938acc5ddf91597dead7b8ff0 = α; 9d8150632d85b43bd2be46924eb71dd19d5b444b = α; 9d835adb6f30382cec8e1701c61f3a305fe5ebe5 = α; 9d8f4ef5363610f4b47829299c0824147fa3c486 = α; 9da60f5683310aa2ed53d90b2a9a246879223099 = α; 9dd86d52ca2bc2688244bec708a9054313d175c5 = α; 9ddf004692c477b60fed575d57551fabdb00997c = α; 9de93e74f384195b52fb90f9e7767ece5fd84570 = α; 9ded54d67930bcf5c3e95a10d2176c6106f2a3f8 = α; 9e3075eea5e5e885d9aa9e6b2952ebe61a8b60a1 = α; 9e397995b47d5acc37d38c9fa4935abec922ba48 = α; 9e728c35e842f7af53a3e822acd469326d7cd52f = α; 9e804a449e34aea4d5227c2a0cb3d96352a82de2 = α; 9e9a678ef5fe8d87a10fc7621ae8dd3c501e6236 = α; 9ef14ed15fba71337b14c1e33972d9cd36fa9278 = α; 9ef93659a347d11fc1e9478c37043a0236e34ba5 = α; 9f07f59f3c436bdfae1916ca914e86d02a7239eb = α; 9f3ea83f4797ad2eb48a62d176d4849ab3b11b4e = α; 9f67c39f021b4b42e5fa8aec0f0be533c8341cac = α; 9fb4a9e94f7c935385fd64a3d3c2f58144e7118a = α; 9fc2d2e4632111eca96621a257b4547fddf03746 = α; a0032cd8280294edff61604e9bf0312230cfd79b = α; a003e87a1243a65a9d38ce8666ba05cf9dff34df = α; a00af92cb7dfede2f60df7468c841462cd3ef7bd = α; a037040fb7bcc432add0b7d65dc1d3b078b6f143 = α; a038a78206b6b0572fa3a86e5a96e3fee0d32b04 = α; a04dbee3efc3178e3a175b2fb572cc36210ba9ce = α; a05558cf2d18454f06cd9c1a5b610a654ec0294d = α; a056afc246a9cdce5d7321930c97ccf0b9f19f15 = α; a09bd78594e737689115679ea7f6a09ed557d18e = α; a0d83db11d6b2a64fdb82cc496d07a03ccaa142f = α; a0de04466a75125d3528739deb44e12686e7a970 = α; a0f7010e4bf1452ec48d287d971a48198a78da69 = α; a12df808dfee07a06515eabdd6c1b0124a7385d0 = α; a1820034a04f046e5f0c74444f653ee4869647c6 = α; a18cebf9d16dc2e5a99da03353e404d64bce3ae6 = α; a1c1fcef149d29408d496f35628d18dd9bd2e6df = α; a1f9df46b4e95588043a59820ba65fc28a8eea7f = α; a1fc05440064b28d5deb42b383bf1960ca27cb3b = α; a21a78f021d580176e09c67d0643b83e80ca2744 = α; a243a00aa61675be8ae46cdba7db99c8e8195984 = α; a24d76c382036592b023a22d61abbe88d52cb526 = α; a2587b8104dccd8347dc49a52bb5643842856a16 = α; a260cd8d85a752caa55d8857af979f5ae8a68d97 = α; a2731fbc3c50dde19f92ac5706a3b73a2fb50c05 = α; a27eb78abbdabe194ad5b4c1bfe56dfca38e43b0 = α; a2b0d085248240cde57087bc35816b078511c856 = α; a2b1b97c80248fb89a7ce7322cc399a4fdf3173c = α; a2ce002a2a6a420e4c746eae8f553665e409a116 = α; a2d4c282439a7d50a9b7005e9c3feb136cc093e8 = α; a2e5471c647ec896793c1df59ec6c214756b7644 = α; a333e2129a0a7518d47d81753d193ceecc5b881a = α; a353e5dd34009fcbd0a5f9eced792d02ffd2cb97 = α; a36932c96e52dc3b154313d65c128fc6efa79367 = α; a37744cecf38c8c2ca371eb33120654f8a53b5a3 = α; a3891b8c154921b18b27b3c7915a8bab0b886565 = α; a3ea753b468f54a0a4c306c03130572f0ec0eee4 = α; a3edc07dfea80da6d7d09067737fc4630c4bb81a = α; a41d00077f02fab1c6a05e4607094b4eea3b6ad0 = α; a456f0111a1d9a6fb8045d0e5e9450b7c36f9374 = α; a46938a8170197df7ac0c8d9ca3c7e5aca696271 = α; a4d7e28c74a63f10107957b9b6af00486f1e7358 = α; a507276db67feeb197bacced284be29d92bfb2b7 = α; a561c854b1abb49bc710438edd6a17feb5370e73 = α; a5a4b35f662228caee7476ddab2567611de6c35c = α; a6287affa4b828301aafa84f7bd9ce71935997b1 = α; a6f1cf388c274ffbbbf5ee9f678d2fd2c982ac9d = α; a717434c111c75d501e35d8a5f4de2b75e299566 = α; a74403ad656c7c68733bf1d09d994d0e8dccd94e = α; a744790bed001ed939d533b58c7d7132d8599ee6 = α; a7460f75270bd4946c7e856b9cba426bfd756474 = α; a75892ec39777f5deec95c7ab34ac829e42f61f7 = α; a7675f8de766ef5fa71fd6c904b6000b880a463d = α; a7c85f34f7555c16973a534e2c21b5d0bf278e29 = α; a8278a17fc9fa29308c59351a8c53b8330d33e88 = α; a82d5d8a7e63a42fa0e2414ad66c400a3beb640a = α; a84e9f4455088def00bab0652ca92a80ecce5e57 = α; a8e8deae490071080b69408bf16c09b087801323 = α; a980d01787b472fb299cc01e49a8a9da740ce81d = α; a98192f145db4e2a545f79bc9d595f8f5c7fda34 = α; a98819bf37317dabf20f86b0fd6800a911717698 = α; a99daa4bfd46db4b416f47b4fc1972b221ea57e7 = α; a9c62ffacb1508452705b057c5f796573d47c78d = α; a9c93107f208faee20ff396148c3b9954b33aa06 = α; a9dfe0dbd869009eeca3fb67d49ce2c691877dc8 = α; a9f9260691fe2d9ade072d9589f478dbce491a25 = α; aa0999ac4a6e388aa9547c455a6ea08c98d7036a = α; aa212839e3606b3a1bbb68c9c1353c627853d8d5 = α; aa40eee6849fd0b67b4a01d245e14e6f9cb562fe = α; aa7f77e42dedc93399b370b494f11d5cafe3ac1b = α; aa92bb8c104afa015ba28312d3eb02c006426dc4 = α; aab7c2855fd330fbd2d86fae15fb7fc38e8117a4 = α; aad648813ec7c3909fab2cba04e54a790f99d97d = α; aadaaad6c3a74db06ec29a860e4cbdb518a7e965 = α; aaf3a012f48b24c193628af42ef3302d96784c3f = α; aafb65596f063aac27c03ad64646b10e9cbd9e5f = α; aaff771bff40e67acec754ff6a73103840091d71 = α; ab091055311fa9bc429f0aacec0cc24290af3166 = α; ab0a48b5c47c246a0d31750e9ae6b073ad35963e = α; ab0accca4b2e0942f55d408ed30bb84183371d99 = α; ab199653d5f9dea6b89095016907a7ada2eea972 = α; ab1c1bb528f1ce09f2cd32ba886bdf658ee6ef6e = α; ab56f3655c7511b5ce622c56fc8f769b82720a77 = α; ab5d351cc1959e213540cc41dbe93cea75dda4d9 = α; ab6ec6af0e90d693b32e063348193dfc34a5d608 = α; ab9668aa1cb36fe03fd80ec800264850f247911e = α; abcd992f6c90c47b9150148778b5e5dd0be366f5 = α; abd31f5aa1a5bc7ad21bd97551365c4785a30537 = α; ac32cbcbb8641f87ce0f4e5e8ea11cdb33568e98 = α; ac90a77a8f7a8cffa48d869e60f393981eeb2ff1 = α; ac98ab61a879076754296cafc03b793203fb6701 = α; ace785dacecc7b1203d5fd7ca358003149131381 = α; acf6558b1e3950d55a31da4e8614e4a357aa653c = α; ad4246832e88a45f0bdd6f9cafffd383ed378120 = α; ad48b0d39c84ad3a23ee670e06d009fd1ef406ae = α; ad735ce413f80f79900a87098c112c355b2269b9 = α; ad8485d0661bcc3b36bc884373baac7c82c1db1a = α; ada3dc17e0a699e9f0888f167ab43c95b9d087c9 = α; ada964ecffeda8e2a6db59b92272ea1e22dd17b5 = α; adb1f445a4a127969356b6635da51f637f54a0ac = α; ade00d1c90e8988488643bcf563040510c4be517 = α; adeb881928e136d07bc7684746ce44d02956f822 = α; ae2770ddebf925141015b1cd4b1bb15fe7ece06c = α; ae70c01ba3575e5558b7bde673a82e53494df34b = α; ae8089d30509415ded81477eb41b29f55a431272 = α; ae874d3eb1af9a5081c94361a989f0b77e0ecf1b = α; ae901fb15f84f70cf6979dafda0d8f5dbcc5c269 = α; aecbc01c44a31c0809a43e68b99e44ed1a66bd00 = α; aeeedf07121752bb79af7caf8438e5c3d612cd7f = α; af0b9f348ea115df7f34f8c6a13da31e75e76e16 = α; af0da89763358318771d8aefcb742e3416f57423 = α; af313d299a6ace9cd07fe010e73680f12b0b5147 = α; af32114b8b970d1d65271ed99052f0de3d4651eb = α; af412e3bcac064293cc367941ad02eddcc3e5a44 = α; af915ecf45e7ce1cfbc694f16a90c5131e953240 = α; afad2bca0d8075378f5239206210c90bc449f66d = α; afb2a10bcf6c13c0cfc4506cce58b6a4e8a8741d = α; afb9d2946f9c3633fb9df0e2acc0f5a2cb5a7753 = α; afc1c36f600c80efcf810f3f49289880b32ab502 = α; afd3591b1c847bb2dca52c7bab74b7f00043a210 = α; aff26a6b13744512c90c853c58676ace9431b24a = α; affb2ac1292b281f85114871becaf2e7a7adfa7e = α; b05b1e539b6610459cb8b45e8d0b48d4de00fa44 = α; b08e33bfe04cad899bb61fb3d822e79b9203df59 = α; b0ad17ab6dad98419386251c9553b4a5d0a73fad = α; b0b3d44fba913897d01ea2ef6e8089c64f988ac6 = α; b0f0802f90e19b137dfc3482c478ce06deda9019 = α; b10f9ee97120ca6711610befa4e7fab7977b88e9 = α; b1554d1196eebddea596b1a7274981d7a2670be4 = α; b16036ff8aa037d50175f1e65bd5504964b26e9a = α; b176340bbc5d5b5bac78f855162c5a3ff0ba19ce = α; b176ee25e0ebb7afdb44613dac3f4254dc99ce2a = α; b17f3e987930d01e04a825ded615a345c7af5ef7 = α; b1bc628c3ffbbceef6e1ef0dfb467b793da712dc = α; b1cdfd2a0b486252f482eca80d3408be44b15168 = α; b1dfb94e146a98148e1f9ba9a56d7114a84628a8 = α; b1f44610d6ce19e42537f436c4bfc70e275b432a = α; b20c27d04963b4b8e0c5dcfd81e51dfc59e30db2 = α; b24bbd337d9a9cf1085d4cd1df1e43e928749b90 = α; b2b40485507860ae0f1ba756693b78123347a60b = α; b33175575bd5fbb07b2308fa24fbf8f548763435 = α; b33dbe936d08959ce00d8d551c9861052b05a0e3 = α; b3643e64562cf8928fe74794820c500f305fac17 = α; b386d93988dde07a87de09757eacd3a2ecfd6202 = α; b3a267c43c45f392523e300a6f61318f4ae52d99 = α; b3ba54dd3b4a9c7c235223aca9ad7d6007559484 = α; b3df044bb928c0123e3067b6ca07bc8db2c7c93c = α; b4179284c669b70deca0e515159443b89dced17a = α; b4411a92ba0b237e9dee0988897930e64daca1a7 = α; b44f92d2adf2245433cfea594b8718a8a1d0935a = α; b453a1dc5c79a3ef309710fa63d80177fdb4c947 = α; b4815536b7d3c4f5a1a07bf7a0a85f780d0a9a8f = α; b49270a6fb0733c3b9a3e6627fdc96c5b2b400f7 = α; b49b4db86170da54d36c9f77345132f501569443 = α; b49ba6bcffb62e7245700758aeb276ae404637e1 = α; b4a7011b1f4b663e34e08b5caa1fe927463eb914 = α; b4b01b3870e9301073475bb924e5463d76e87c0f = α; b5b76e5c16852517072b42a8cb51945d692252b7 = α; b5d004587689d2ebd79e34905d174a376e575f5f = α; b63ccd1617b08574d0129948ec7ad1e48f94a220 = α; b66bb0fd25eed1110f4b97f5f4c3cccd294cb884 = α; b66faabd2faed41ddcfaa83fbc45e1c038712800 = α; b6774cdd5b050cfcaac3143c0a8f89705c6bde71 = α; b6aa88050eb1fb1e9317e28c1342c6ea4ab7dbad = α; b6e51c5ce4619cf24deb50699e19457246a65fde = α; b751385c56ed5ce096df337d0a736bdb517071c0 = α; b76100c79e2052b6a9156a3a3b44dc46b73ba80b = α; b774b3a6af176fe17e8988b8ce8aae6fac0081c8 = α; b792f771ba89b6e97aa0da38cab7975e31240901 = α; b7cac0682cd1b758954a6990731d98ac60e931f4 = α; b7d98916d7231a6cc8fa4b5ba6d9a123af873b7c = α; b7e5e66ec2b311c32f25563c90d3883eaf9d7f01 = α; b8063b5f31f092324c94ccf41e3dbbca020714c6 = α; b8147ae4f4e48c66013e2ce160e307bdbf8bb643 = α; b8280b60d889420165c4849a608f2f77a636a96e = α; b832b94004977756477412eec3019f6cb37e62d1 = α; b8394a23db9e6efd8594d13cde39d95e60a2b46d = α; b8692885cc79308225c50faa58244e7006dadf91 = α; b88c8f32e5693eade30c534bf94f295df40e1d87 = α; b8b07927a65a87a42232ceb51c98a8b5d6893348 = α; b8ddc52b5bf66003c85e7e259287f4741bfe8119 = α; b8e153475935a408d91ca55c8e98030d5cc99ceb = α; b8e9ff6bec00725cf169b237001ce72af9342600 = α; b8fd57460311ef331feabf98c510f76f80053855 = α; b928e6544636d28eb1f1fad8cbfb3a508d6b523b = α; b94c9f0d77457d47a979c48f936f9be3c11930e0 = α; b955f5ba1db0d7a6f27b22a2a79e008593d687e4 = α; b9e5928d9d628a4f6a0795a3f4947e59fd82874e = α; ba2567e2e68ba6bc101c3614005d68fd1d0ac2c0 = α; ba59a62dae63fc2d143e0cf4c7c65185055b6cfc = α; ba6332a94c99ed09c2a9e428e54763da5b1576f9 = α; ba6a5b201e1374856d563e960e0a5f7a935cf37d = α; ba8f3a342d5ba472b330c322376f9f3d7921dcd3 = α; bac3a42148c64a342e3a138e254acfc37baf7f7c = α; bad3d27e656261f89d7bfe9409032b1623077a17 = α; bb049becabe678eba91b10ef8dceac666811ba85 = α; bb258d693db2159bec8923eb69e53769e0082936 = α; bb2be5134bddeb480f0a728bd702988afdd4811f = α; bb5ab39ad700a8ef35bb3bbd27b4c382839c69ea = α; bb77f99554309b937e1c3bc3c0569d3ef0568a00 = α; bbb17328cc23f4bf942377d41807a13a7b852229 = α; bbcf231dbaac1a61eba6aa76798c72923c7ddc56 = α; bbd3ed12cac3a5812ed814525f0d0018011bcd2f = α; bbdc2b6ed549549505ee1860ea5068ae5bfc7db2 = α; bc249eda4e4d0e13fd0e6a660e8cb471ace80c0a = α; bc927fee31049f8467d1a02704ac805cef57cb71 = α; bca8b698f2e07aaa627a4e94587fdef669602b23 = α; bcb92df46de5890dc5538dd7f0256a6504653c01 = α; bcc1b9fa37b696e2b1e09da24ada79401007ef3b = α; bcc352fe44e93b30ce97deea8345406542f840d7 = α; bcd0cabdfbee7db486a249459af2c96bbe597c9b = α; bd11c74bd2655f16eff2974a9ea3299f642a52cf = α; bd969e12b2d210ce0b8817860e18034a3a30c510 = α; bdd022a7d16d25b6d56f693ab8ddb909273da156 = α; be2367fa9ac1bcb508f247e19ea18ae92e277583 = α; be250ea55f51ad2bfa64247db8ab7f7ba22bcc99 = α; be6492e4410913060da03bbab7fc0ce412e8bb38 = α; be6c1ac56f7b742b9f733b29f46549c5b46f7644 = α; be8aba4af0c0804bb17d6ce660ccc3973fb6c35d = α; bee8e68740f8d36a56d9f09e880ff29b5adf0496 = α; bf03069e8d65f6b224763824352cf754ebcbc339 = α; bf03cada636a04cf211c2e10d586f47b2dda7902 = α; bf30590744b68cebf21b6124ffdccdf6964f7163 = α; bf49c9dd965903acaa8c00eba5613c4de5fe0250 = α; bf4dda70b776a7efb6c3302f7abb3d24e90652d7 = α; bf6954d37d21ccd063ce7829bdbf17a34a5972f6 = α; bf920c60bfd2a78e29432783f56c62f419515f85 = α; bfed7e9e92de3969ace22aefdf5d85a45b2068c5 = α; bff70448477367ce462c3ee06f051b1f047549ad = α; c0078092106c7019d3c1a17afb492202a59101b2 = α; c007855aa7a0479a01364a56f831920abf69f840 = α; c02b5a7580fbfb67eb000c6b641d7431e90ce87f = α; c0476a6a0442712d3245a0babbf62c40e8e75b95 = α; c05811bfedda9e7307a79810ed22e36c9b1e3639 = α; c059220dd6a95113a01bfba79f5ed3d5e1766535 = α; c0890e191c0abbf571bc8e71dd0996ecee557a66 = α; c0c041729c29323273ff25722a4fde1aa90a2b9a = α; c0c56d20bbce88d3e626d132185502535d37ae8c = α; c1023e403c67693d0cda4a7067f08cc4868b331f = α; c1348ebfc2f62edbbaf065a9987835d16f3faebe = α; c1621ab3068dbffadc595d03ef2ca486f7a5d484 = α; c16c7518b7bf0b8838fb4ec5d024020f7d7dcd2c = α; c18d93c3fb088e46dc560285a889e191b2350e3b = α; c1aea1c747a9068d40e613d94eaf43b511d8008c = α; c1d09face93090ba4fb6700351d2c5202a35a2f7 = α; c25bec168e93ab9183b4187a3172187d41e8b094 = α; c260984388b36733a83e5c5a2d1bddf9202de51e = α; c28e42653d329ca15b9b65ef130aa7e18df44da4 = α; c299da387c827b828bdc3e81fb617c8992d1ffbe = α; c2b5d2cc4aa67357f3ee15def8c1d137016f723e = α; c2c0e9b8e4352e01ad72f4a6d2ce4e6c0c26878e = α; c2d1aa057a438fe3a8996316005b4f584d087df7 = α; c3390a1d1d84fd03f5aa0a105422b669c9f6ab91 = α; c3a4ce7861427e417e289e118620ba02ecec6995 = α; c40ca2cfe00fdc980844d0a02dfb2571b7fe48c3 = α; c430a47ee45e5afb9a0831bf2ea38b466b497549 = α; c431002fc0e408cf00a8650910c2f4bb3b85df53 = α; c461017451f8ce7d5833a200e5d6fa969138fc0f = α; c467b9d4b67580014c04e62e822a99d7cd7a6dbb = α; c48ea333ebc4208f44ca53ccec1b4a9224234423 = α; c4ab35a8f3c52c8999804559d5a506f4a4ea28d6 = α; c4ac8e5f2224886f32727c69401d26eaf54e6d17 = α; c4d70abc45c0067c48d200a7195e87cb07990867 = α; c54921d21c20e7c27fee9dadcf212291b32f32de = α; c57259f627108af7691176d6a5ab0a8bdb504fe8 = α; c58fa62bd83bf317b52d835b43fe31cb0a5fed9c = α; c596e1a5af08148c69666476cb7a935d5b860e04 = α; c5f44e9ae34828343c5c6eb3e73c2c451120da78 = α; c620a0e05618810252d4b0f8e82fe97a677dde26 = α; c63b8b65198dbac3e3764c69e57b85f011332ea1 = α; c64839804e94445b7c1ac409d5d0f8f1ea36e54c = α; c650d7a313cf559c35793ae4885bfb7ab7e24cd2 = α; c653b9ebfd67dfad854b519e55534735d82f73f2 = α; c705af8ab47f089acd3efa03df30ad116079209c = α; c77e5ef4d0349554ba75af77135182db3577571a = α; c78d32aaf4ea80b2746ac7ad1692b021b1b548b7 = α; c7945d9532844fa35363f33da23f208a629dbe28 = α; c7a7c3acf3dd7cd611ae94f5c86473ecd3a2955b = α; c7d451a7ac00e4726f44c4fb551c45dfd4614302 = α; c7ea7e43fc1d7ff54a1a54b74c3962098d7851bb = α; c7fb09c7cbdf7c014549eb2b9c1345a0f2ac3770 = α; c840da0835818272e18eacdd15f50e802453c69c = α; c874ee18eb2aefe1e6d4345996da6c6ce2087d43 = α; c884f0dbf617ea1c10f5b347fd4f19d3d87befb2 = α; c88fb38c74260fca80491abeaa7a26fd116fba25 = α; c8fcf9a784756d66ad119b3e642423161380add6 = α; c939abca16161626114a6afa440cfb71ae87dc6d = α; c93c98cb950c9d8f504bea894ad865f29b9991ec = α; c93f0a56e40373b70b8f6cfcd57796df6e3e5d64 = α; c9440b326c43f4ba6af0b71b1ca029ae223ecabb = α; c946526ac2560a1cf84cb7a63c24bc9994fed050 = α; c95cdaed781fb020898a671e373b60aa382404ff = α; c96e9cd94a86b222bed132142b65c1d90314445d = α; c97e1a685bb16bacc741e943d668230b044da28b = α; c9b2fa52f0b68b4de48806e71af562ddd9ab8363 = α; c9f7bd390be6e2f50469fcf024ace928b624a38d = α; ca146ad3bcc63037df80affd27568080de042fd2 = α; ca3317bb9d7ae47177c0d9362f17d53c865d8b92 = α; ca72923ffc518f8f79ad2bb67a376e8c4e51c3ff = α; ca83db39ca850bdf08a4e3bda07b207534365c24 = α; caafa6d602fb6dfd386f6eb601ff8ed2b2e74234 = α; cad827e1f1025fed382fad69988e6878edf449bc = α; cb540e992bfeed51b40d2faa7209ebc16384c2cc = α; cb5e9b0f8eb95171fa01852fb15eabf2845a79f5 = α; cb73a430e097bac42d93ec902203b7888ed0b681 = α; cb81a778a0190199a4c52ec5e9e3f749c532fdf8 = α; cbafcbe19329c889151577a995439d8c09b69f61 = α; cbe9427bf8fe34234353780bf7d7188dbd5673af = α; cc2764b781992363c5941eb2399962b3dc251c9a = α; cc6c17f5d19462048695c62e88e553ff08996aea = α; ccb1bc3ca1edbf4177b3c0d1784bfcb61f87daae = α; ccbf9e16dbb06aba05b68b87bd827f67b8eac84b = α; cd0d52d3a393b848c4524f8d20e9c3d772779d50 = α; cd136c8c017886023a62be7a07da35d0a4af997e = α; cd20dd95dc2f4e182bbf98e7f0d6a7cd87f10df6 = α; cd28a4a14b5471b45eae79e893b8acbc4f7e1f94 = α; cd31abaa21b8f9ec03052817bf36f6c16178f5e5 = α; cd5ab248342e1a8cf9bd3f635151bfdd3d41ad3b = α; ce44b880be5cb6a25056be3c177c866b85aee1d5 = α; ce8de3d894102a4bb85d1eaaa271f605239a2fd1 = α; ced0e06e0c817a6519c5a995d3ba2743df02ecdf = α; ced6c6d11883cd80b95d5f522d9526e6467945e5 = α; ceed10f922981467ca264e2f3c1ba9a6834ee9fb = α; ceefcb84598a9a4c5ce8d34e749d52d7511a8013 = α; cefd87d67f6688e869ab62068aa16c5f02113c8c = α; cf4a635ba3a4c070a83394e45c5bae8ef8651afe = α; cf5e1ce959a11e3674cc1a7c352dc878022c2eff = α; cf784788aae211d789405fe0a7308e059e15627c = α; cfaa6e2212f937f340e867175482030d495675ed = α; cfc8c6e323848f57580a531e48fc4b81cdd17efd = α; cff332b0fe6e7874406db49746b5a2be18f822f5 = α; cffe52e7d9b8a547c321247c96a680a061a7c077 = α; d00340b56c80a33987bae91b824e43fa883353b9 = α; d01535f7276e94b02b13cc27f3966f8867e79101 = α; d04d874a8a5abeb10db060dd59e268c16687663b = α; d0566c823351a86a79411b3b8d001317aa356284 = α; d0916b22915dc03f3e2bae8097e2ad696e7c8f4e = α; d0ac4798d087f4f67f533a8d8cc04a7685a380aa = α; d110f2213c54503001102b5f9a81fc0743ba32c0 = α; d111d246a5dff2d0eed94cb2592bfe277ad9e0ea = α; d1450a3f59e35f9d62efa518fa3ecc4e3ce0b0ef = α; d165f29f588eae8d8a55d377f73b67973713c670 = α; d1a31fc8df90aed8358e255ead086de9df9b8eea = α; d1cc40fc311b1fe882b059047a6c7f53925c9827 = α; d1e8035d7cb1c18606f75bf22a42e813f926497a = α; d25faf54b177d399192ede835440a8eb4948ab59 = α; d27c0f6b2f82d4e0112056dc4963a251ad84b3c5 = α; d27cda6ec1c697039954ff45ad0d4bc809382324 = α; d280f17be242e85379048663a32b3f86bfcd6625 = α; d28b2e8946d305dc75d30be04ee1c9bfec7bf72a = α; d292729e71bdf7b0dfe9367148d16b19fa7a5da7 = α; d2a00e055f1285c1fa4a975781d66bcdc44da301 = α; d2dbfcbb4a4a5cb2324c962101ba1ae4ebedc502 = α; d2dc1c9128c24c0a330a534ae29cc6ae6beaffc0 = α; d324c1434b20b5ef66a2937ab08337f78c5646a0 = α; d338b1e7e6160d0f539aa12687e23db81cce61c4 = α; d347f6ee6f9955b5ddb428582f0a5694be416663 = α; d3603561d5e25d4f17d441b894b6b532ac8ca892 = α; d3c4fc80dcded70862e182185119d810e694728f = α; d3fa6eb331487a41362af20fc809e610469ecc14 = α; d40c0edc4a86159f31ffdeb1c868655892857c27 = α; d43babee559c0a43f3cdfe93ac68d127740c7c60 = α; d48b4b394816bf765766cfb0de720c2fcf3dbe91 = α; d570076bdc206ebe525e4fdc41a05520d5f706fd = α; d59bfb566ff92e983f4a66e10ce13ac21e90924d = α; d5cc1b80671cb302ce39ef82a91478483444777a = α; d5f5f1dab637b46122ba0000804b82a3466d4f57 = α; d613d9e9dacb47de3549938a8e516310c73c64bc = α; d63c4c238a195e3f8e062b2a9cf0757f0ed55587 = α; d657a675c488b3ceece090f664b8b3890c0f72c7 = α; d65a42fdc8154793ead3cde82b7ec619bd249478 = α; d6c884c9dad1608090dcb5009a5146b5e2cb307d = α; d717fddace1fd0e9b4a4b2c78118ebb0c354e35a = α; d777e45fe21ea823174bd647cf6817128035cf2d = α; d79b515a8ffc174a508593ce109108ecb9e44813 = α; d7a56916778ad1fa03472f47ec92e8a9eed66219 = α; d7ae2a94509bb8a9d5e77006c5538cd11b721439 = α; d7cd467675e181dbeba3cf24443590ebb76f9515 = α; d7df186da35e7874ec3096cafd37119085cf5ce5 = α; d7eaad8d8e27e59910b9a915de128b42dda290db = α; d80b9d2bef36dbe0669cfea717fe30315568ba9a = α; d814756dd80360682458cdbeed8859d522418bd2 = α; d82a48c7d5dec9cc59dfa1a8ee7298c7e787cee7 = α; d841bdc828b7ed9f4a76d474d455264dcaadbe38 = α; d852eca7663f1c36dab87cbd527dbfac895faf97 = α; d87a6dc2de5d3e0f991324f8edf80b016f15f204 = α; d87b8c33d15b51b773c6f091853c54f865561e64 = α; d889e4d65d962a36e5839fedc6a70a00ac10fafd = α; d8a13d14cf5b0d5bd31f2b05c3b53dbffdedc49c = α; d8abbf7642437f66197d216a0eceef1ccce557c9 = α; d8f99844942adf5e16059b6743f25804288ee4ca = α; d904eb14d805f07ce46163d3b8b20c434fe0db0b = α; d92734f6a18a11d0dfbf8c9e12f63f2180c5225d = α; d995c76652895e51297226aedf32dd0c715582e3 = α; d9a9e14ffd76c4ec3dd9ed97fe543c3169480ecb = α; d9b01b6ec88b6bdfbdb3493b4881158a6b4c8d81 = α; d9eb718a9365d9af9b6cc77b440a8da1ea6c1bc1 = α; d9edee7f1f74e5386558b4a961fca4552e02ed53 = α; da1a0a91f4e47865a8becf9da734feefa1851a0e = α; da7b12758710d9e2c5869e221e94cef9c9eedfc1 = α; da7ba6ca87d1fd789d7ec8278b87f5eb53200dae = α; da8b24eeab7203c68fbffbc306797cd5a0ad0a21 = α; db0072b27b24bda3fd51a10fdc7e99e0cd839029 = α; db0399e0ca29f1327956d92769300c29b37b2b11 = α; db1ce685def3bdbdaa34985a4bcc7f9397fe18c5 = α; db49a1753cbbba64d471588023c076a11c7f8ed0 = α; dbaad381a8fe78e42dee5bc0259045658757985f = α; dbd67380af0391a17ceebc816f623b42e665cd2d = α; dbe75239cd713a39f272a0de6cac2dfb95039ebb = α; dc103daa4b0245c15f666e3b82ee1ca395c26e15 = α; dc8af4beee95a25b1c0cab56a5b11a66babc6a87 = α; dc999c480c689209d1072c9b4435243a1121150a = α; dccb30d618cfef75cf0ac5c9e91b08be0183d1c6 = α; dcd771e85d726f704215a4feaa632c6ad6472de7 = α; dd2d043a6fefc80a25ca78d62c7e8ac26e471cc5 = α; dd37156cd306b8d31089c3a93edede1ffb0d3293 = α; dd67559046c4cec3957fcc155765827a5c36dfb2 = α; dd6aa88361efd8c13bc630db41c40d185f94dafa = α; dd765b2a31ae5ecdd886e1550b3a93dbc11a74ae = α; dd8ef40e0195694f7f018da7e80a520807402c9b = α; ddad05592e192eebafd8842ac556d92572eef1aa = α; ddc5b08945cb44c8aa6434129c3f898bd87a41af = α; ddcc2181537ebf3c5cf4ba351f0960b885372aa9 = α; ddef4f0acf5f073d28dd6a38c4fa58630d3a68f8 = α; ddffea76154050032a408a3890c07633f1ba3b0b = α; de0049c6936b76d5da37bb69dd25ac91e83514c3 = α; de01c69dad3bc654ab534e5eedcd2b8374f2a2e0 = α; de04f7b02c49aa87b2b6da18c62a5ff36858352c = α; de2d73029d96c42d88f7765a10be8b6af0007eb8 = α; de40a1a3ef4f09ae9523868d74d8cc9af2745ec8 = α; de6a3578fbc96909e587a897c860f56738c9a027 = α; de7be9bd446cca2c3d817d2f1d7042e9a6f27378 = α; dea23be7b0f4c3aec67d1c95e616bc04d4e99100 = α; debdde2d089368f9ec40b6d50aed4cab14a4e785 = α; debfd2113b48ed4529163d952262d80fe8cc11f1 = α; df2925eb96fbc24fb45e29b8553772c650ff8c53 = α; df3e6640f45ebf0909095b9ae74a7cb7404e447d = α; df4ccc222a9b196a9484691be86f2d14462b2357 = α; df5437931a8964c846c6c9377f381c0213082e22 = α; df54fb21975e218c1da9d209d52b225e78430abf = α; df6d4711f83f1c570af30ec97dd418f0664398b5 = α; df7074a5b6e12f2c024e07d5dd9fdcd863f0553a = α; df877ce5674ccd5af752d839ce7729c724750815 = α; dfd7ec76ea282f899f489dcf84e86c17e2d5176b = α; dfdacbcbdca178e9cf577d37637399e02c80c006 = α; e002d0958c673752ae43a0801b444a2ce1624b4a = α; e02e3dbebd645b7ffc82cb42b41d79fd60a268cd = α; e03589b69f1b5cdf2431809897f2a1287d4d1db2 = α; e0a272e2ea952c9c27d010098f6ed3be34d70023 = α; e0a2c1da63edd46fd58df91cebed0a6ba9d4e2ba = α; e0b52177b69db23587e60178455553700fca7a3e = α; e0da56b57fd7c9eadf21a0c6bcaa75267e6eddd0 = α; e10e19c255056c096d6105cfbff767f6749ffeea = α; e119a785ae743089d9760220e95431e5b5a828c3 = α; e18cf443cf050171be2dafbb7847b1eef470d743 = α; e1a0aba6fa5c1c2bd71eb9f8b6fa3b6bd0c08378 = α; e1a2109b7b2cea0b5a275ee93d3ec4dd15bda288 = α; e1fb2b61f5ab2e0ded49292c3ba53d25ee0e31d4 = α; e214f8d9834372bc3a68863ed9b25f6d3468aab6 = α; e2e2347e195fcb6908121d1d8252b675c0225733 = α; e2f498b239aa783a65b663c31fbe397e04857c5f = α; e2f8447f74d7ae894d6ebc37fd1de2b774b15bb2 = α; e2ff2a15b3b4f835c8275051591b9d4de07df86b = α; e3adc0e94fdc76e94c4297ae60dc8b7678ff6d13 = α; e3e99323ec9693b9c6beafc30a7c439d27d51019 = α; e3f2410485eaec849a562752ca8348217b12f390 = α; e412f545b4a58b60e62cd1dcf57ca25871356b05 = α; e4328c9505893ca9157deacf1baf1aea7d01f8d4 = α; e458507f455e3bac9232d632426fc4b75f29841d = α; e465c13305ee8aa9186e587aed90d1007e5b31e7 = α; e4770351a3cb31df020fd6bff26ce03237621428 = α; e4db89beb65b004392150dc83a65a28ea62cb155 = α; e4e9b76a89d03aea789e6df7b7dcbc13cc7ca8cf = α; e4fa82ded20830726a04678904111f9fa6f26954 = α; e50119c064462a0e056574db4e21f359f7f0c159 = α; e5146f66274a1f5409227f94447af2a1f4bfafd9 = α; e55d8897009789617d8b961ae3c6c1d00a845bb3 = α; e5e8a89007ed0e73685f9b0366b1eedf31f4c1e8 = α; e62a73c1c93258f0b94c3cc46e35318469afe84e = α; e65191a9b59946c7f04782468840b7352ab5c96b = α; e67a9dfa527d0eeb0ed24ef9d5e22b41baa25251 = α; e6a8b07d1017a517555ae184a3ce22fa2b948c72 = α; e6b8c05e76abc49f7a2264f2b95199b825fa851c = α; e6fda4b3f8fe12c3bbe8ccf91bdcc8d759ea1ea2 = α; e70061ffc85b6027a648cac0b1c8c6ef7d4e3106 = α; e70429fd818fe983008a06e931d39724ea7a382c = α; e76c34cb7cbdb14d92e415c4af5ccdc344c4c58d = α; e77064e9ba8339459d66bc680e55880bbcc5991f = α; e7808a43acaf99637e43857c76760d74f77d6ae5 = α; e7a4ddc64af2a43bf5c7d439244636d60a7dae07 = α; e7fdcefcd4a8853ab010e1eb4f2d88b5bd9726a9 = α; e85ad2ef6896adbbc28a46b023af6b64deb29b88 = α; e89e8d979ec25d6a66f7a72b8390aaa876cb54b2 = α; e902a543218c50ffc9cd9a41bd8d53d0df1939c2 = α; e997f5bba3b4d4b283427ec3ca644a876f6dee7d = α; e9a64dd557215b53134c33355716c8a4bd1e22f7 = α; e9b508ed95c44a9c9e0d979b1ae02f7dcd5590a6 = α; e9c7b3390ef65a90310c9cd4a97594bff007303c = α; e9cec016ae177e586ef08f408aec2f7c4de9afdc = α; e9d6f32dcb7a670874503cb3cb5d73fd9cb09cb2 = α; e9f10cc1fed35407864f324f08f3c9fcb5a2847f = α; ea58f8314459f7bf1d36a672ccc1f2c60c4e0eba = α; ea7cb20f21cb971f2f7da29210e7bba16e97a53f = α; eaceaa2d359d151c5394522df962ce393938a21b = α; eaea434c65e3ccf8cec643ea1ec391bdddbc6fac = α; eb24d02e3515e1a1c0df3b6323b5ba9b795e16e3 = α; eb942c482591c680356ad05c627b9153756a5c8a = α; ebb51925dec18058068c3d6ba8d32c6bd5d8f5a8 = α; ebcdbd3113ce1b1b12aba710b9ed475f2b77bf74 = α; ebf62a48af4d0a972019aca5d8365670d7260bdd = α; ebf8732591def396954f78bf472667f690877f95 = α; ec13b2ec5777dbbd7c22e1e2bdcb3e127496b370 = α; ec35da884d7ee63a6b73a14153ebc0ef84e83072 = α; ec59e3143dfd3d4c018548a31a6481bc3f9e1137 = α; ec5de1727c79fc933c910e364d19af5e7ebcbf99 = α; ec6d576df884aeea2ed37256df7caa8cc8040d6e = α; ecee7a937781e9f7f6528b7bf03dd4cdc12bbd1a = α; eceee0a55c343bdc9f43a6d2a6e1f7ae7429da77 = α; ed023b655c8dbac838b64bf7e6103b7e9d563ad0 = α; ed23ade7aa2af09963a993ee53ab33389aae2e80 = α; ed2c9b990f683ecb84050df89e925e9f65e3883f = α; ed384e6a16f79979d70b9926060a68eeb610de53 = α; ed8d4fee989f83055b4947da8ddd5639f8168782 = α; edcad0b0c2862c776fa60784960b9a3a8b3ce6ef = α; edd66f69f77a99b2383d34436d6be71565769a43 = α; ee33cb45be04ea08ab507a4058d81bcdd1da7746 = α; ee8662030dbca92bd70af3ba1550ece5c275d13e = α; eeaa24c1e61cc4b0806496b256349c44f84c02bc = α; eef24b0bf5f818f43c64498f50e0a79f5b683883 = α; eef376599acf8af872a7ecceb89b8afc1dc53cca = α; ef8182b6df585c7dd91f05618e06fd8ee15be5f3 = α; ef923ee8da67064c7a03f02651b14c309db14a3c = α; efd4413cfd5173a82811ede79b4a13bad5f6a450 = α; efd812740856e722b88087211add0e268de83d7a = α; efe81a03fc4e327388573f361faff5b233243834 = α; eff7dae5ebb303e1c5f823e0de1accf1075e8402 = α; f0263ddc2018e02536d900df1e275809633e73a5 = α; f04bb0803c834328c048cff05056081b1d0e8120 = α; f0887df1b56e17573badb6af33d52f7ec6fb6138 = α; f0ae004e1cc9e390958b1988391d02b9c74849c3 = α; f0d6a898c18d4750e572c04c2dc290f0628f238c = α; f13495e23590f813c800280c335b159a2f568a9d = α; f1372e2ede9021ff61444ea132b18024ee271b60 = α; f13adaffef53d65d806c3eb02f96c6c7f0ac7272 = α; f14abb295c0159f6c8c07119ef3cd201b5062479 = α; f18da05b89b485f1870ff2b88125f3c1511f8805 = α; f199d69df437b77400f96b6d2d4f02360535404c = α; f1e035fa0d8b44b2b3aeb9958e9dea3862744d82 = α; f2374c3116e4d1fae6b4cbd246c9033e282a6c10 = α; f24d05b616e3f50a24367e32f8c42d68d40797a3 = α; f268daf62521a638834ffec5779bd359e0ffe63d = α; f279ae70e30f66de7b592409e9ed96993301657f = α; f286035c2605a855fb9dda2fc06bb71648b1dbe6 = α; f288cbb85cc9eecfcf90abe6376c32c54435f879 = α; f2c0ebdd94707b207218226a42b19201386b9713 = α; f2cc42adcfafd68a62e7d1b7e6af4e4968c0be10 = α; f2dfdcb3b2d9423b17c83e2bf5fea37b9bee4681 = α; f2e462f932cdcf953218a6d7c9cf6aeebf7dbfe4 = α; f32b43ead099376849798c829e67335923b6f5df = α; f3543f8286961b827b3ed3afa8f7663b98d38b90 = α; f355e6bd836583380c61a5ed5a0c5d6150fe7542 = α; f380b2adccc3afba7a9a9a501560525a8359a651 = α; f38889741341129aaa57f66f2c36e093673c46ea = α; f3a58411dee61c2a7993eb792fffd09b343e42eb = α; f441f0d4f281e728c3ca0c5b5f0e5838637eefba = α; f44c1c4d05656c9a8e943d8738705031cef49e0b = α; f4569ad2ff2b2fc1e09a93d172caa5084bdfe887 = α; f49df27b644738c41a183cbea4451a65d6ed937d = α; f4ac5ca56e38b43436485f6d2a480e5bc47d1e3c = α; f4b57562abffd4d02b186411d743d78de996f9c1 = α; f4e5c321293ab07639b720b5f3c43e81d2476f5d = α; f4f360f81e0fe0c3b19ba2e927c0edf2ca16dd74 = α; f4f52945149f9b540099572fcd29c911f8f8fc18 = α; f51cdb5d1eca4ab02befd826a9ff14a8d168ba9d = α; f56a72b63003eb41d4300d8b2b39b21f53acfc8c = α; f56edcc07a586e9b6792c219e9e8eca444362bfa = α; f5a791771dabe2848c00de5551dea8e2ec534cc5 = α; f5a8823af793b1af1d0d25d57df351ef32bf3d40 = α; f5d3ceb33b27c7cfc4a8e4689a6b49f594aea8e3 = α; f602c209a799d0cc6814312718f806f70e09062b = α; f65aee70832fe31db72589b465574d372fa46ea9 = α; f6efa02b7fe9e154763f4e74a2d13e6016651478 = α; f6fadd3d388c12b5d7246b025244646c62920fdc = α; f6fdc33805bc89e2eaff8003a996f6bf8f880789 = α; f7301b809afdfc0f640f1ae1c5683ff024e82766 = α; f7543772618d958884a94ad5d6a90a39de6049c2 = α; f7a44be87cd8b2cc22a5c6580998902cd597ffac = α; f7f52ad80e2bfa86c133febe8231fb1c1f321c68 = α; f7ff067e31d48918ce41494b39f2f30c48890e55 = α; f82d0258fa61f3050a7ec0c48a72a14882f4f9ff = α; f859df604a7deb221be8fb75f5eabac9a4518834 = α; f859fcf20b1d5912f1dd1fba6f9bd4393a014968 = α; f8a7fca733ca940a07647121bde451787b5afb66 = α; f8deb83eeba474abd3c4332328d32de585f40d2e = α; f938e9fb108c5df460b316ad63f8e4d43de264a9 = α; f9b69d517e1417f8099af43fbb448801dd00c40d = α; f9c0960de898d46640b7767a29c2119310539a4c = α; fa0f4ef2e4265e7a8b79791ead562e32bf436c05 = α; fa392f24144f8018b8a29676f4cae4fe188e7a7b = α; fa3c3cf43525a5cf7e63f9b4de6d7441a0e826af = α; fab186b2b42815a73845c32093d591f8d4623f0a = α; fab30d459fc6efe51b656ac70e86c70a8772e5ae = α; fac6370a5441886d40a7aa7b4494da0c3304b397 = α; fb092729cca1243487ce2f17b83e612ee2e645f0 = α; fb175aabdcfafb6d77b5b7bad0de2c37cbabac81 = α; fb4d3c4309ce988d3ebc299d517c232e83fdfe7b = α; fb634cba7663cb05cb4751272114071ba34cc677 = α; fb807fd862137423f4c6611e8ee553e2b04a62e7 = α; fb8b95b64656d46eb01aeb66dc7607697828e39f = α; fbc4c9072ed5c93f777e5f6fe6f43486862fa0b8 = α; fc571a1d0a7202a062ecd269c06a2308ab378cb4 = α; fc71358f88c1a01c32f496b064386dba3145a36a = α; fc72803a9439e161de25108be11e5429ed900f77 = α; fc7b29cbf72c69bffecb661d7345ac5be329c14d = α; fc97754c9af277910c57351443a42a210b2eb8a2 = α; fc9d37a2c0ab6854c6b039c509d86b9459982472 = α; fcaba3584b9391b167f49dfe53afe253623ada36 = α; fd441937ce92861563e4bd9e3619d5d9cdf73a55 = α; fd44fdad76da5efbaf3bced1a5d2bf12eb028b35 = α; fd521968de6928ff3ba9e7a3568d3190fc56573a = α; fd5c39fee72ecaed24e8e462a4a71a69c06e4509 = α; fd621bb2eef661c744d767a89b7b835495af2a90 = α; fd63513879784b9901479056b82fc51c57ba8666 = α; fd8eb71773dfc69f5da73a588a9487e8155eb7d9 = α; fd9f084abed9009fd3d7585637980961e5ac37c9 = α; fdb6c138bd7f73ccfc7a2324408b8199fe18c5c8 = α; fdddaa298c770236e8e0ae3fa46d56ab464ff590 = α; fdea9eb5b7adc1f8cdca84ff533afa9978bc74e2 = α; fe108abb775ce219aed6c508fa1d8d9ec9710c50 = α; fe26cc5b44599296ab8cca48bf52350d32f5ccf3 = α; fe2fd0043d9dceb3bd974fd46a7f657222f0068f = α; fe34956f65e0611aa1584ca611b7843e22e3e29f = α; fe39e5851d68399087d05d9c22da12a1fdd7b6de = α; fe79883294e7b730b4ea0e6e72c662ced28e999b = α; fe7abbfa12319d22b0735b908af92eafc25d27a2 = α; fe94f39680410922eeef278b013e20b5ee27e7fe = α; fecddbf47598e42c13644ce42253e7ca8178eb29 = α; fed2a12f5d40235d6295fed1092707889ff01b08 = α; ff38188923ffc7c35c9b2e533f2ce6f3a9aa3a3d = α; ff61432b09f3c5882ed0f5f932a0537f38cde5cf = α; ff648984dc86f826cc03f174f5a1b26e33268529 = α; ff66ba394c099b33decda558509ec6f4fdb43892 = α; ffcb54fe4e2f0e1ee2f22f84cff4ddc49da010f1 = α; ffd25a14ee418633d47a558d3a953c501f56e2f3 = α; ffe1832c9002fb490bd976e6906fe43792e2e487 = α; ffe4b29f6febe2e6345b292bd341aefed751ae1d = α }
1+∀ α.
2+{fetchurl = {sha256 = String; url = String;} -> α;} ->
3+{ 0049fd8a61e04257b6dcb37217d4d603cd74cc6b = α;
4+ 0055e020f7505cf021eb66b73e3a8fa3cc308b05 = α;
5+ 007491dae0c56c74ca78a46639d8e41243bde83f = α;
6+ 00927d42baa3e7f8fb204e62ea43ff39384f8679 = α;
7+ 0092dbc71c6b4bd985a697ac3d1f1597c0bc82f6 = α;
8+ 009f9921fd444183569a1057648f0c3573688f98 = α;
9+ 00ab55311f402e65385f797ea5e1c4ab4663553e = α;
10+ 00add27414f59890b092ab4b03bbbc585cedb847 = α;
11+ 00b98d4aec7a1f350c0fdd8186841aa96c0cce53 = α;
12+ 00c4eb5dc59035a15405197341b6b925473708db = α;
13+ 00f460c11eef99d9e125c11687a40d39f7b74873 = α;
14+ 0104416c142ca7b3174660267c22f049db573bdb = α;
15+ 01687bd36252e9a263022192524ca8835ae9552b = α;
16+ 01a1b60633d0e13df7952058973ca4979a5389e2 = α;
17+ 01b5b6310231646e87a0bfefaebfee7f0c9e1929 = α;
18+ 01d26cddb178f064c3cd74a09430970bf6cc12b7 = α;
19+ 01e6c01a96b3cbe860204f191d1b9153509a9dee = α;
20+ 025037991170960704b2d2a49e7bf37cebf06b85 = α;
21+ 0255260ee4d81de161e877cdcc3af4d7fcf8d0e3 = α;
22+ 0287d808513bc8ab41d3a122437451b3505e5a06 = α;
23+ 0294cec564dabb2b74767382fed8bf1d85c3dd6a = α;
24+ 02b79c9e934ba5d5df21ca904400f6921b0e919c = α;
25+ 02db54285fbdc7bcbc5072716c06102dadbe73a3 = α;
26+ 02e23f8b72f230a371e141cf422d6339edc7f136 = α;
27+ 02e31aefb786970a757120d82ef7e57d99598e2a = α;
28+ 02e3996085d4a6eadcc0403adb002e453626ad38 = α;
29+ 02f911003167be7b08c3fbf9bdababa124958f48 = α;
30+ 037becd787cf315691a800ac53fc1ace30efc22f = α;
31+ 038a65feb0c32e0a8997e4798012f90e380a5fa4 = α;
32+ 03bb65f1dc5e3bf35f5d6d5d6068a10aed0cf4a8 = α;
33+ 03eac14bed108c28a0a4450fa4f534d145c12179 = α;
34+ 0419d8143ae34750eb7de7c51c4d3cd231bbce51 = α;
35+ 041d9b9407ae8d58c7c3a7110af093916fee573e = α;
36+ 042de486169ab637609e1b035138f64893e04ad5 = α;
37+ 049aaeab9a2e4405e946d0097d1a3e824c128df6 = α;
38+ 04b9a9091bba671b960e607283c6434625072697 = α;
39+ 04e55b081d4e6680ca0da096eab39443e53aeb2a = α;
40+ 04ec121ce824aec5caca1ddb70eaa21e0191a5b4 = α;
41+ 04f2ae9278db23034ee3cb0bbbe67db49b5881fc = α;
42+ 052ad62516b7d63eaf4c6410cd2dca0264734665 = α;
43+ 05be3410a78afea71327d64933707b9f7550d2f6 = α;
44+ 061b4fb485e75b96f3266aff9a762a28b2d77616 = α;
45+ 0625d1c6055de9cf9025b2e61299912a56f88ccb = α;
46+ 0668d99201136f1b598c5795fa3e58050020e8b1 = α;
47+ 067baa5f7a564bf867b5b337369950ad00e13e99 = α;
48+ 06ebb79f97706bad4850ce9077a9e7e90185e324 = α;
49+ 06f561a38764b8e9c4087a97ed512c995363927c = α;
50+ 0702299294e21ac823c34d43de2a89140288143d = α;
51+ 070b80d72403fb102b91c2c7c1eababab6aec2f7 = α;
52+ 07a88f4f32dff82062e33545b17b0011c4f3242b = α;
53+ 07bac5d4a23c9a7bc1695e030017c8694d72a735 = α;
54+ 0818124e55b7ae14e580ada76b6fca5656c05836 = α;
55+ 084e5de210ff35e876901668dd00537a3a019ac5 = α;
56+ 0898f76e0b61476b01184a79f59737933332711f = α;
57+ 08aafc6b5bf5f6834032ea41a414bf57378e9d6e = α;
58+ 09007b1cd8b9f90a5ab85549323903759f18b852 = α;
59+ 091a839006f281b7b12ee0d1bd0fff225f0ac73a = α;
60+ 09510670263d739c9271c8d43047c1e427873509 = α;
61+ 095aae7dd171f8fa10295657651b0889b387ad68 = α;
62+ 09601c1491f5d27c2533b4e7c9fb26a2e5eaa4d3 = α;
63+ 09732d6bf762ba4d866616248b46adff0e12d76b = α;
64+ 09b220dceaa8205e3a32a877c58c678dfdb8555f = α;
65+ 09dbd9ce439ba4adad23922f5b9002fa4e759bd1 = α;
66+ 0a17d50561c9bf1d85e82416f97726243726fe8e = α;
67+ 0a85e36f224c350b058936fdb88cb656864411c4 = α;
68+ 0adcf8b7399354848f3b1659ae1bdfebe7c5fb54 = α;
69+ 0ae58afa6b821d9172b327831297925b165ba540 = α;
70+ 0b0c49fd66d2a1e20b9c3dfbaf57920646259399 = α;
71+ 0b19af7719665b5651dfb183e0f462030575539c = α;
72+ 0b2364f6696f39626a964e4370380b3fc8768b43 = α;
73+ 0b2cd11ad11c170163c7958e24f339bf66609001 = α;
74+ 0b41a5fe69764ca460a102d4569d5cf0a96262dc = α;
75+ 0b650b20c8c8aba9b4ffbfff4555352296b8026d = α;
76+ 0b65847315b6c2c97cf1cb6e6d159e22233c8251 = α;
77+ 0b6608a97e2540ea5f17c2efa77ffe1ee1b3c533 = α;
78+ 0bbfc90e364f03102506acd5ad039a28e02cadf7 = α;
79+ 0bcc47e413bef8dae40e79c9757941b0db15f97a = α;
80+ 0be87d25f74713be10bd98e1e966d795cfe4e5dc = α;
81+ 0c416ae48c3e2ad2be1333ccc20f6992ce982aa4 = α;
82+ 0c8fc2ef1a59d232fd4f22a022e20d492f6e2a84 = α;
83+ 0c95d970796b73f6699b10dc55a5f23caeb0e7b6 = α;
84+ 0cad2c40463fe8795e6ba38765dd8c775689eca4 = α;
85+ 0cb75afcdc3e2acc810f4eaab1c4d0e47b71e66e = α;
86+ 0cec09dea442a96d2db56d5f25830c204faf9c73 = α;
87+ 0d1962bd98cbfd172126e306fff8cf75b8796bc7 = α;
88+ 0d5caa5b5d94abc659bf759feee88b37f4cf4618 = α;
89+ 0dcd2138b0d77e84dd01b019736eefc97445f806 = α;
90+ 0e1315e453e0b243c9c0afc4965bc9042f5eadfa = α;
91+ 0e1a08f56c646fa8ce394a0e41b8cab5a658268d = α;
92+ 0e26168a7254c7ba26bf4c06b28033e8387c689c = α;
93+ 0e4c8e5cf7fcfddf545be976ecd6d676331d54c9 = α;
94+ 0e6c43d516af17c6766c4b204af1a1358451d364 = α;
95+ 0e934ae8f346ea8f7834da572917c93731ee3e71 = α;
96+ 0ed7e089f52f2e816998664ec165b776a056ee6e = α;
97+ 0ee5f371d8dffa94c5df7c2c1337d8a7029c022c = α;
98+ 0ef3349a6ee43e03e0390d117749207582bd62fb = α;
99+ 0f5530749f1eb9cd579c611a2c19eb675d225841 = α;
100+ 0f74ff9d91cbb2b2061d50909d5d7f093b845a72 = α;
101+ 1015366202732d5b428dc71ad9ec5fa99ca1b874 = α;
102+ 1016254965add7631ca2982903c6d0169b0d45b2 = α;
103+ 1028eaded56f0e46a92e7188a0e4dae970bc77c8 = α;
104+ 104b55382829a7351cea26478445bfa8e601d755 = α;
105+ 104eb620cbaf2629b13d4f5dc9edc9a888ff2e33 = α;
106+ 106f60f7c4e09a6444df98f226b3b925941480d8 = α;
107+ 10723922ccc14914c163a9546c40f01779891869 = α;
108+ 1077e9c2c6e2f36520c08a148ce3709a6e10a8ab = α;
109+ 109ac2799187c1e94076a2db14922c275e94adbb = α;
110+ 10bc8f77ff0fe6245b5ecf2b32ffcee97d4d42d4 = α;
111+ 10d7ee1bc39b827fc0238870cf1aebbee7ed2b0b = α;
112+ 1142cb9f18f922166ae87d131c1fd09dce63f6d9 = α;
113+ 11485b16ed1b0a1f37aef0aec2e8a7afbf490e75 = α;
114+ 117189ccfc8241744b0cde19d866507341334ea0 = α;
115+ 11beb714095ff4a699b6f0a3543c8c2b82cf1a0d = α;
116+ 11fad551f44760406d524cb0e1892580b9be77bc = α;
117+ 12164f23f40b93eb0a4cf6f0acb58596becc8f2f = α;
118+ 12468bf1be869d88d9a8104ffde7c4887839843d = α;
119+ 12d1a73c1c063a416ba2a70fa0cb25ebee04cedf = α;
120+ 12d213957fbfe643a97d5072b1f6ae30aeebcbb7 = α;
121+ 12eb0444499ce41f101b1b5f9dd6b87894949511 = α;
122+ 131d64c4948a0370d99897b2ad5a968b160e4300 = α;
123+ 132e734bba8f24cfaecbe6e03b85b76158a57d1f = α;
124+ 139f335e517878be52106907638e80140951abaa = α;
125+ 13b3c6250566821e05b35dd3296b5686aae3f325 = α;
126+ 13c7b27a977c4bf9c4e07a19ffb106c1128995bd = α;
127+ 13f0a72b4826430335caa709e76f92079ca53b13 = α;
128+ 1411432bb3fedd8dc4b429d4f6929746ef0e0a2e = α;
129+ 142674e220c8509ae1f8b001af30a95d6b08951c = α;
130+ 145ca8052bc6fccd7bf7af21f36664fc217f2f70 = α;
131+ 1463ec95f086a9205c1ab27df290f232964381a3 = α;
132+ 1467cb6b7644671f3127567be26cf07d20b6da7e = α;
133+ 146b3768fb0d7880b8c751140d38a1177906de0f = α;
134+ 1471837617ec5898ca2e49cf20ad5e0795687b7b = α;
135+ 148131344e6fe6a2249ce840916527aca52dbc35 = α;
136+ 149605f77f4487d4f238f2439c46df83708b08f8 = α;
137+ 14b7da233b40c5199352d0ad87f5c2ef529fbfc2 = α;
138+ 14d50f80e32417f2f524ef471610a343fd6eb8b3 = α;
139+ 15299d434cd85410167be0405f54ccdeeaa3f831 = α;
140+ 154306df1d2a4877cbc22db8224277c856f1b6b2 = α;
141+ 1567a031ece4d70d2c360767b32f084b40eeef63 = α;
142+ 157c6388b0a3c7a95bc29c5ae0f8e920a39dd7dc = α;
143+ 1580d9078ae389f2cea6d568fc4ea0b0ebd5d183 = α;
144+ 15a502cd7ed28b9a7f8bb3e95ed15009b0e9a29e = α;
145+ 15a50c3fc6a68c2b5fc5d130da66af83529e7ed2 = α;
146+ 15eddf9d2c822c3f5a608ff772c24ca1c2928c60 = α;
147+ 160a1829963e541ea0fc69e090047543f0c547a2 = α;
148+ 1623d3a181ce7eddf10a90c3c235075fe55bca69 = α;
149+ 1627ab02a99a1389c8f3330ff31a92d4994ef631 = α;
150+ 162be3e52c290eda8052be126f9b1b9f19a5e182 = α;
151+ 16311b83711df9620e3ea0adad878eb4547e2dc8 = α;
152+ 163784cb855cf579aa85c8d84241ac308c31d9c6 = α;
153+ 1679ff7ab2527671a6c79835501cd4447f769d26 = α;
154+ 167a3b509221baa789dd8c568b74ddcaf7c4a7c5 = α;
155+ 16e421c9204b08586edd8de93b93b19fb10644ea = α;
156+ 16ff1b3c00e3fef8b809b49a5b63be510b23dc97 = α;
157+ 17a98e6cd0892c88290f9dd9e9cb3fde84e8798f = α;
158+ 17b2ed6bd21c462973aa928a668bafd1f8ebcfbb = α;
159+ 17f24542b619ed66aa29fe28eb716b4dd4c33d84 = α;
160+ 1802e0cd4e93677f9da0d094475296d070a0a167 = α;
161+ 1819e4a555e0b22457eb52ec088f2d106697434b = α;
162+ 184edcd2f9fc791ab8f0ecbb980e124e1622311d = α;
163+ 185535353a9576cb4f9e4a7fa3c1fe649d00f26b = α;
164+ 185908a865ebe7f6ee31701211aad217de343c7f = α;
165+ 187cc49caa5b9c37b965dc6d5ae486c963873c47 = α;
166+ 18943d114a03b9994e64f86843cbfbea2c18fc60 = α;
167+ 18d1e1adb711eb56d874c79f49ae68b3e26fb044 = α;
168+ 1916cbea932d8ec4cbe73743294b2456b6f82f4d = α;
169+ 1919f737357402ffd6035ef99089bf4492ef39ce = α;
170+ 196a7cd92cd85833aa987ab46cc84abad637e671 = α;
171+ 19bf552b5636cd53f93b288b3393447e0a9fa015 = α;
172+ 19c8ede828d4e84d3023a8cad20c4118e92c51f6 = α;
173+ 19eb01d07ed61f10eba97cb487040edf44235d88 = α;
174+ 1a2a4f3777f219966c172ba8de9cb16dc214645a = α;
175+ 1a42be4a1a8f42a72c27e99abb9741fb826a99e9 = α;
176+ 1a546bb1c6ba2765dbc10b34126650d033464bf8 = α;
177+ 1a5ecbad3eddb57b522f4873840b8a716d98b2b9 = α;
178+ 1a81e6c5fd4cc760a6589fa20070d26a9cb6e53a = α;
179+ 1aad9a745382e917c890acd98a988a1536087fe2 = α;
180+ 1acfcb65de4dc96785b1705ca6c0029e5e4cea95 = α;
181+ 1af0a9938323c32bfd00373e1eeec3f0eb7267f4 = α;
182+ 1af8c3dcef0a363b208600f3db2ab066d1c407b0 = α;
183+ 1b6ac4ad1dd42a8d52a6cb4a24b64cd86c92cc83 = α;
184+ 1b6e2211b6ef64b74fd226f74bb7fdf14f384868 = α;
185+ 1b929d889ec58a690a9fb4fe5c7e74eb60c339a5 = α;
186+ 1bc440e5f448e7dec6f97dbb519814d6c4b17b0e = α;
187+ 1be30bac2f567e402ae48b89e8355a4b4e609b8a = α;
188+ 1bfd97f204592ed48706e423bb6ab7a6128cad7d = α;
189+ 1c44fa7c763743e619fef130346733eb5f107049 = α;
190+ 1c70d51c5e2d2a9ebdb87dc176b3cbe48c275309 = α;
191+ 1c803eb30ed3570e150cffbce8729d1cc54e8fc3 = α;
192+ 1c8d955be9265f85641ccaa5c0c9abacc66115f7 = α;
193+ 1cbf6a11e17024243825f5ea454051bf5b1e7d3f = α;
194+ 1ce933b4731d07d18548a668fca861035354bbf2 = α;
195+ 1cf61777b0744f76064a8cb5a1d0bc1bb2d3165b = α;
196+ 1d09bb4f8ba502cef13de6d570839e6790bf3542 = α;
197+ 1d5c9571ce51f244f1e0158e0cd49bd36f16bfc5 = α;
198+ 1d81bb3fd4494d2d93359f0cbecd2e9e20e67a09 = α;
199+ 1d82f1e693e8f317ca408dc5159b1a6afd317016 = α;
200+ 1dc7018f35ab6ebe2908608910fbaf9214506ecd = α;
201+ 1e0c495e2e2fc0f9ab567761cfeec0d8659f6572 = α;
202+ 1e8e90fc8fbee70866085a1fbd7ee5585941dc31 = α;
203+ 1ef5c21107774059ed6c5010dd2d5f3373c81445 = α;
204+ 1f10b8e0a3d6f6fdfe5b451508626eda10e3e771 = α;
205+ 1f209ff22ef667820d2143b0bef1783612c2dc33 = α;
206+ 1f3815ccc8afbd78900f57993ac9ee538ad3a776 = α;
207+ 1f8e075fc05cbc97e7fd21ab40e0ceeb595c741a = α;
208+ 1fe2947f6b39cef244fd00698c7cb7adcee1d927 = α;
209+ 1ff18f725dd963421e618df72bf8a01bbb35d02b = α;
210+ 2061aaa6e57d72cbc697076a3bfff9ede7a0a405 = α;
211+ 2099a8b27bb01df580dca27c74682abb819d7424 = α;
212+ 20b2c00511aaf3fb29dfe2ad61683427686bdb7e = α;
213+ 20ce1ae8d2c0f8a6cc946c302b619dfa82a8d0be = α;
214+ 20f22f8b8176717ac951ccdc7e6f5f56806df59d = α;
215+ 211fe5f3ea5194f89c18a81f99259151734b4118 = α;
216+ 2130d3a7a6cb4b7985001c43cece413b95605a04 = α;
217+ 215f16be383b3e37f6ab866a94263c078729c9ef = α;
218+ 218b41b249f8b8cc60c48cdfe5f9f3139acec694 = α;
219+ 21907541d849646ca7b37552024a6bcbab11cce0 = α;
220+ 219229e93fb1bf7a335603340498ba0d7dded08a = α;
221+ 21fa784bbf679195e305e3c41f0638cd402f6834 = α;
222+ 220e020f8e3d2a2de2da4e1a95e72d0a2efe26bd = α;
223+ 22118798b30814806475890a25dbd3082cf56d24 = α;
224+ 222160b66bde04349f00f790676a49a8bd3f2aac = α;
225+ 2265f48eeeda05a6393f1268fedaea74e5d989d4 = α;
226+ 22b3cc937fab3025d3abf8d725b2cb3b1d12ef3c = α;
227+ 22c962e9607d75b5917d731e9a66bd74fd15f2a2 = α;
228+ 22f8914859f73cc332699e1c40e17cd44d700b87 = α;
229+ 232d603ed060bcff36c5d452ec42caf19d74ec9e = α;
230+ 232eab324de501a6a4db9e0af2922875e7b6303f = α;
231+ 2339c1d3bfb2db1621ef01225df981c1bcc32f49 = α;
232+ 23563ae9b7815c9196c9ea7c27b2c1b78c2e3b77 = α;
233+ 235cc68a11ea8011ea5ca0d1326a488fd48ee713 = α;
234+ 236633a6e0745c5413ea190b0e07deb9e9b9d409 = α;
235+ 23b01ee08bbe595a4dcb1a72014151b82e5e76ff = α;
236+ 23cc3f11d38de5312fd5798024de0d232bbf2e68 = α;
237+ 2408381821f1ad904404880379feec1a2eeb2ad4 = α;
238+ 249d8cdb69fcbdd5f0dfef3a752eb2b7daaf01f4 = α;
239+ 24f19b36203cb12aa6892d2d4399df0a679189f7 = α;
240+ 252915e59bf956eba7b4eb84256f1eb9c08c16e6 = α;
241+ 254bdc731ce0a3bef83fa6dd6c76771cadefeab5 = α;
242+ 2573361ce50bbcbed674e108ea4cbb055cd0f2ec = α;
243+ 25a0a89eda2d7c97ae3a37ba14f151b4682617e9 = α;
244+ 25a1ae1b60746c8e36e21531648e67b4c330d30d = α;
245+ 25b04d770d7a50481f9276487a5ed9834119dabd = α;
246+ 25d67f4de95951cb969435a84594979cd05c4091 = α;
247+ 260381a0277c560f8c2006d8bfd4f7069cd5640d = α;
248+ 2616e3cfebab7a82dd81c3bfee37a62f3317e357 = α;
249+ 26407337ede0c844ad2b9b9e4eec2286431b0fc9 = α;
250+ 267f7ab24d96a8949db4cbc89f50cb9aa755e5e7 = α;
251+ 269c797991f91dddf54acd99a214152e8f155f8f = α;
252+ 27098f36979ec3e79f5f7d7145dae3cfedf9b0a9 = α;
253+ 279afe349fb3fbd2a845d8f650df0bf1dbb73c45 = α;
254+ 27ab355d7817d1ffb8eb77e96879aab84b9ad7de = α;
255+ 27e4175b9bbb4b175f9daaa9a824638a178a6d76 = α;
256+ 2827f79a76e04e6ba05b6cd3cc73e4dfce1ca961 = α;
257+ 28438bc19c11df6c698e30491b3413fed60b2f0e = α;
258+ 28783f63ac21ccc8c6ba68949502795e3a63f569 = α;
259+ 288cc5ec4da8903ba6077e259a8d9f1a0e5360c5 = α;
260+ 288d0122b6bf19ad09a81fb7a631a19113ae96f1 = α;
261+ 28926b6102371746bf5dd7c493c2353392ba76f7 = α;
262+ 289a1b921105ce48ba09d95a245cd2daa77b05bb = α;
263+ 289c460fd7eac93f2aa4548c3c805ce6f69f32ce = α;
264+ 28a656853baebf8714c795ebceb8ac04f687f67f = α;
265+ 28f2170447e86afc17f7c14affde7f2dd410c256 = α;
266+ 28f89206861167b3d68bb1c6d131985c152b757d = α;
267+ 2914f32cdeac7870819661e0fe54b4833a9962c0 = α;
268+ 292a8fbb5a1aff92533e52ded470f85af5ffd6c4 = α;
269+ 2944a0052b881a644f04844186daa4ae54aad523 = α;
270+ 295f41723355e152d24716ed3125507d5155eccc = α;
271+ 29681ec614276ed188ccfff2342d818c3503f114 = α;
272+ 29ba225936b8addec463e591b235407a300ecaca = α;
273+ 29eae01c452b3ae340b64ad4266ea1152b4e6729 = α;
274+ 2a13498d62f2897b95a2fde8f9117caf2213369d = α;
275+ 2a26f841843dd2551c447764a346353954884612 = α;
276+ 2aa18a35f72b72172e9b2c30c8ef7dbe2031303c = α;
277+ 2acb20ce30a8d1a5aa3f7506c94c9f8a93297c8d = α;
278+ 2b1ea22d749ba6df5bafa9119fe8a0c0d4ba68c1 = α;
279+ 2b2f6a55cc19d94c0130e833f2e70c29e8bfa2e4 = α;
280+ 2b83155ddf092ccd8d8baeb9898fe084b587e82d = α;
281+ 2bac5c303baf3d4800852e359ebe06398d185cd9 = α;
282+ 2bc488cec0bae3f273fcf9d172b61b9a12489423 = α;
283+ 2c0a73c42dae723ea6ada9f3a83b520b4094655f = α;
284+ 2c391f34048aae95fed7d9649088e50dc62d614a = α;
285+ 2c42aecf4d302508d97a42889f9c616197b1bd9d = α;
286+ 2c6a334523bb0b39b337ae9f3754d787d930b6ce = α;
287+ 2c8420f6e48f529d116aafee46759cdf99e8a724 = α;
288+ 2ccd26d6297607f50e2fd8c1b54cde1f6e6509a5 = α;
289+ 2cd1739a082210f13445cb6acb076e89cb209759 = α;
290+ 2cf7b40136915c48e206e1052021eb226c0050ca = α;
291+ 2d54103141e313b63ef5cf774325a15054e9ff39 = α;
292+ 2d883815049fa9361c8c5c425fbea36dcd903c7a = α;
293+ 2dc37c85bc4dd351cd3d177f7e6f986d186bd1f2 = α;
294+ 2de8f1186afad5e4c4f23315078e4d2bf6df4264 = α;
295+ 2e01332dbabb9d7f2325d7f297f41fcd48933c46 = α;
296+ 2e09a8e7ade5fdf179f0918bc2abac9c18e85901 = α;
297+ 2e601894255189d2db25a10b7d612d09c725aba7 = α;
298+ 2e6729373c277fcfd3a59532e1e7738523370fb8 = α;
299+ 2e6b877018994d97122a9b698eba651b59cbe02d = α;
300+ 2e8c5279ef8b2e93ab8c738c3e9b8689fc63b839 = α;
301+ 2ea89fc7cf11ce2e9f8bd6df71dd99eff85bcc15 = α;
302+ 2ecfd27e7e8beaa971269c4d29040f148b7fdf07 = α;
303+ 2eddeeafbb16203bad1207fe3c70aaf2e165ebea = α;
304+ 2eebb65cf7012650afcab43c7f2f559c86b2f3a3 = α;
305+ 2efd964b62d457693b93d311acd7d54dc4e7f177 = α;
306+ 2f143d8520d94bbf2cb250b35a8f79e3d3e8572c = α;
307+ 2f3b66c8bc4bc7ba4a38982c19f7aea56a40fa44 = α;
308+ 2f4b14734a09e63c0347c348f77cd0da3c72b561 = α;
309+ 2f7a26433cf0506c014fcc5694c194b28a811006 = α;
310+ 2f8b4043d609acb0eee65a86210c9881d1e4a9b5 = α;
311+ 2fb0ce94e7960b83e88bc4d2687ba07c94e9d96f = α;
312+ 2fbbb90552e28dbaf47f41fa63652c11c7b99c78 = α;
313+ 2fda5ea89a82d953d04583ab86b387b1b3f3dd6f = α;
314+ 2fdbf124501fb7d04dae2e4dea0e796f8a098f36 = α;
315+ 2fe1fb9f98af4a68ceb9adee909fe7b67917ea81 = α;
316+ 2ff8709ada5b8bbfe994f55ce697983225440813 = α;
317+ 3012eb0c18cf3faab0fd1a8290905b902456192c = α;
318+ 307b166459a0b56cda3d5d3235e3c39b37b2e2e7 = α;
319+ 30bf523aff5cc60cdbb2da5ca9b51226e6aefc9b = α;
320+ 30e4e0e87aa3c6ed5b9d99e89c3e3986727405b4 = α;
321+ 31513973d4d5ca51b8bb4b0b965dd53bed0284bf = α;
322+ 316245a9c9d050b2bce9f47deafb0baa66af6347 = α;
323+ 31a9943db56acc38a4a6083517d5981accfd7b0f = α;
324+ 31b00e20c26ba53e1e4071f88ae88e478dddc667 = α;
325+ 31d76d0dbcad8d9f1b4242247389a533fb8e3ca1 = α;
326+ 31dc2af99e1bb1eecb4ddcb3b2983a0563cde9f6 = α;
327+ 3227bc9c7feb2325ecd2c4144ae0feae8ddc8b90 = α;
328+ 32860f0809372d37c40310daf0184877322fc636 = α;
329+ 32bb97834c48d10d8115a0167b8372bca6b8b179 = α;
330+ 32d809d2943a46adfb06d390602d4be87fa510ba = α;
331+ 32f81135ef65d05728ba2f1c5b5f3935a52334d7 = α;
332+ 330afd81b039c963aa95ebf7fcb5e01b8ce9ee3f = α;
333+ 330e7d22693575d7c1e3bc8598676d1ad936a018 = α;
334+ 33450e05fddd79d7692866accaff42adf9cb9a97 = α;
335+ 3347d72ae38994059c896549688eac5a145b35fe = α;
336+ 33870814a45b700847bc8d18c59c18d1daa72623 = α;
337+ 33902cc01c7eda10161025651275a129da5ead6e = α;
338+ 33d0a2949662b327b35a881192e85107ecafc8ac = α;
339+ 342f323d0582f6c4897956e82b4549bbf9c47973 = α;
340+ 345fb7a468fc7c5315a11b86b2c600ac91955213 = α;
341+ 34901ceb8b3afa22d4a75f06c3c465a3292592d3 = α;
342+ 349fb1419c99f4b260e3bb7b3a7cb5273c5b88dc = α;
343+ 34a9c86849d93a7f932667ae0e2d9fc3f4aceeb7 = α;
344+ 34b38730a025a0c75cff4caa03512a0054d0695c = α;
345+ 34da962d8bda23fc14978d82c2c5fb761acc5815 = α;
346+ 34f9df3c5cbc087be9cf8b8b2084287fb9f3b2e2 = α;
347+ 351da091078402bf85cff8964a50e1ecaf81e7ce = α;
348+ 353076c56a6ecfb890a7ab5f30c881a73e09d508 = α;
349+ 3536f544f9e91433e6939163fb611c524a5f468f = α;
350+ 3579a812b187dc0ebafb13d5914b27deab2c4367 = α;
351+ 357fc4cd09e4eea77faa70a271346bfd5d0b8417 = α;
352+ 35b0e5ed5cbf20a0b47af4bb9ca6ffef4d3e5d8e = α;
353+ 35e0d2f1b5d56bea19aa9443dd5c41b4ef095b4e = α;
354+ 35f95404a8393dcd6374b594b1c2bb5acce427ed = α;
355+ 3639943c4bf99c8f284de9f812bf2cd6eff5d49b = α;
356+ 363bd76bc4fa81ad344802f2fb8610153a5ca75f = α;
357+ 3663f96dbca6fd930e000a6617a3bb214a6ee0f0 = α;
358+ 36922d450606299836b10b930c0c66af1f780347 = α;
359+ 36923d3780cea992eb61b86d48b1a61297b44536 = α;
360+ 36af7f5290dd60c07f83b8a398eb9721c24a6154 = α;
361+ 372698b3d3b17da23c0c53958fefda69c1198f54 = α;
362+ 374b33734d17be020f3eec73cf16a100e905a8c5 = α;
363+ 376fa7bdb1a776f7100bfaa29f24a9b81bb5a97a = α;
364+ 3779adbbb84b7918fcaa4bc8df4b64a45e50aa88 = α;
365+ 37a47bf076c47063d031b82f827412bf05a5f500 = α;
366+ 37d805efe0d2358727b0deeb9f5c56b3b68a8478 = α;
367+ 37f1c844684794da07d9c537b175855f8266fdbb = α;
368+ 37ff9ca732f3611a92185cfbfd25e6eb7d3d2fde = α;
369+ 3811b277d1080f2314e9ffd524da841aefd84ce0 = α;
370+ 38c9a6c68be0ce7a36d83391a637010447ad3301 = α;
371+ 38e0e2e02bc165327038c973058790e3962d6079 = α;
372+ 38e6833dfb6b74f5acf23d984bb9ad01086e1f39 = α;
373+ 38e79fc7612d6ebd7278e23e7d0a9df3b95155d5 = α;
374+ 392d5e0536abeb83ccfc28ba9fb96e9d1d6507f3 = α;
375+ 3965204d2b18ccd0b4d2191500d373ac064180df = α;
376+ 39935e746b413e3c60c9a519e893cd19db5425ed = α;
377+ 3994a8a3195661395d89f209755bbab5ce1861c1 = α;
378+ 39e7e3f8feb9564c8b90f2f6d630bb8ba96f2eb9 = α;
379+ 3a6db69d4f8128addbe24660128ecd2ed9fd6dd0 = α;
380+ 3a7f7a47aca5ad86176f1ceafd77139a06b89e11 = α;
381+ 3ab17699ce95c427b0c0f3466b4226e2e30b92d0 = α;
382+ 3b07d6bb5a24bb96557c48982e8b3389df33cfef = α;
383+ 3b14a44c8ac4cda934824f4a48fdf11ae6dc27fc = α;
384+ 3b1f533104a3f316e188203a3b20770df4580018 = α;
385+ 3b5ec1d1c8209489d78b2eabab46ec59ea1f65b2 = α;
386+ 3b5feab7a5f46b3129c78ca6512692588d73eb8a = α;
387+ 3b8d4ffa1666bbdbcc426ba6232275bc853755ea = α;
388+ 3b9f2ea7dea75e5b70ff3776eb46e114725fed92 = α;
389+ 3ba6f94d6907237623e86c589cc6e9a1399e5a2e = α;
390+ 3bbd878e5357ee3dc1e752b07819ba87b7230ef4 = α;
391+ 3bc0fb4bdfdd1b6c1c684583efe02591afadb98e = α;
392+ 3c01d8c58f5ec428fdb8057af5387b8bca2816eb = α;
393+ 3c048c63475cdefe078376d2fc1ab8294de64e58 = α;
394+ 3c262ad594e83bd32b0d3a0f794b737101eb2874 = α;
395+ 3c3769be5270bdf2ff4215c9f2f6c15d0ae05b7e = α;
396+ 3c3a62993361bbb928b7f5c0407be6bee08da734 = α;
397+ 3c477e2e63d3533e62d654e63f012e59da5a3edc = α;
398+ 3c65149be3cd5e4689b4eda6bf5569d16b149f6e = α;
399+ 3c6fd2f94e3497924851a5d8254666518d47a633 = α;
400+ 3c70f43afffaaed52bb87c78f1ecf8de846ce76d = α;
401+ 3c8149ddaa7dec626f08fd4fc2d852a4536ddabc = α;
402+ 3c9ccdfb5da6f595a26f2e1f746cfc9f639e57dd = α;
403+ 3cc84281c7db62939c39b08c06b3174dc52ae63f = α;
404+ 3cd0df317d9f5715cd35c147537107dc3a588008 = α;
405+ 3ce154ee1488f62d7804205c87d8e37504733e7a = α;
406+ 3ce4d40ab5c9c0141c6b805ed0eaa638cacc0e8f = α;
407+ 3d0b21a35355415e71e8fb7ea0012b306e2a037e = α;
408+ 3d2991e772cfa979508e25de5935a89210973591 = α;
409+ 3d32ebca9fef4352a99f2e0636ac45e9d3b35d03 = α;
410+ 3d3ffa0f6b5db075797d9657c491f1cec7434474 = α;
411+ 3dae84206c49a13a781a04f072560fdaae772628 = α;
412+ 3e2b9f360e17b90289d6aa8e07f64f8bec445375 = α;
413+ 3edebf50b702f5e5d08876bdea65dbffa3d1e98f = α;
414+ 3eeb2f03152b2114d56a8804fb8d634405321569 = α;
415+ 3ef09650cc8541a72fb0c287cf9008a6ed209a58 = α;
416+ 3f4cbf00af0438c956f74f514929e02e3e8d43bc = α;
417+ 3f75f49ccfcf87ae2a3bcc2a68cf49fb510ada09 = α;
418+ 3f77d7050ec7beb565e4f6d6ad5f1291b2a066e4 = α;
419+ 3fb53e132dfce0a5c72b3b10fb63fd6b5b89b16d = α;
420+ 401dde870b0593ea8eb48a00e180d088dd331d41 = α;
421+ 4022d82d143e72ccce04e7825d3328a7b02fc901 = α;
422+ 402bb37cf56e4ae0f047b4de8eed748f259c6a15 = α;
423+ 402bd33734002ac97efc2300bb3bcf9d2cad7bac = α;
424+ 402fa9c093561a043e89a83d3b0553126fdf2bb7 = α;
425+ 403c4174a81ed034269a740a7bb9739dd07b91da = α;
426+ 4041329918332581cd573d410c6a163dcf7b7495 = α;
427+ 409e09bd60df0765b85577118bd3da12988d97d9 = α;
428+ 40b467567f62e9c6d0bf5cba7d2ff43cb9a687b3 = α;
429+ 40ddad780beeb95a141365c9ee5c50502ecf9a3f = α;
430+ 40f7222800bd5c3a14980a0f6e706ce2b8a6dc8a = α;
431+ 410e46447d67d73c00b681403bff72bd1c8db3e1 = α;
432+ 4138035f335e8ef4c9bd7d4700011e8ce6bc06dc = α;
433+ 41478e3ee1bd4eb5b22ccbef4265d78586e0a9d3 = α;
434+ 416a2ef9e1d85c9801e1c11b5b75e6647f40b196 = α;
435+ 416d80d6a7cfb22bb899d4a75a80c78ddd81ffbf = α;
436+ 4179740ad0fac203ef6afbed2ade36619667a9f2 = α;
437+ 418d45c49afe937049dd1f731516162b1f716dda = α;
438+ 41b5b5efc87e1d57447016f701ab6688ba9bed94 = α;
439+ 41d5dc73ef01e6cc21c028fba64a655a4f2d3d52 = α;
440+ 41e03d2c0ea9b66441ae01c7aa831107fba3ffed = α;
441+ 41e5224b15d09a7227b36b443d5ad87d74e45b50 = α;
442+ 41fd3f7a3fb916297e3f478f49ee73a7ef8b0eea = α;
443+ 41fddcc984061641cb8c27aba4b296bd158bb7b6 = α;
444+ 42325aa5f02bc9fc9310d7edd42e4e731ef6896a = α;
445+ 4245e1d2e7ad643f66f744a3ed38052789489640 = α;
446+ 427e2d72759a41c12424a8f41db8c46c533e7aad = α;
447+ 4287f776bff018fbd5847a483885c62661d3e8b7 = α;
448+ 429bcf5d037539b13d24742b82d8b2e4dfc310a2 = α;
449+ 42a2da181f0e0c22a37f4fd84ebb8992f5801a40 = α;
450+ 42a53ede1b023f8c062f8cdda02e206b50d9b706 = α;
451+ 42d3f4d56675451d30b582bc5dbd45fd3782d471 = α;
452+ 43024ccccfd7e2f51ab71730d53234756da7f75e = α;
453+ 4325240311aaa4a187fdea78519062e5a4d7269b = α;
454+ 434d698cf6b167859c6903ad11759566d8f57b0e = α;
455+ 4358d2bea62c66562030e8970bcc999a9f049cd9 = α;
456+ 439b6b4397b03135c193062962f4e04f7efb2f97 = α;
457+ 43af1512f9c03f740a4b1e5e5d430bc184358f2c = α;
458+ 43ce938e9264c991f07b4ab978d5801d8b385c7f = α;
459+ 43d2fd6b8e568774d422003e4f1d8cbd90c8ad09 = α;
460+ 43d5b1f0c816ddc1a75dc7c9eba7e3861bfac93b = α;
461+ 44550fffb2c3c4bd3e389a62349314f917149551 = α;
462+ 44988d061edf9fe35e6423243372b984f7bbc8ce = α;
463+ 44aea7fc4f0d356841e342fce80616815268e97c = α;
464+ 44bfee33fde62aa26954c1ac4481489a0997550f = α;
465+ 44c8dbacafb32300e6af2a0cf5897e5145c2b7f4 = α;
466+ 44e185cd6baca3dd0931a5b2c536c61efdb62652 = α;
467+ 44f209fa07e3956ffbde948b34a35bca08039bf4 = α;
468+ 450752e8befdc19f8af240d074de7cfdff240ff6 = α;
469+ 4511815cd4297243a8afd7a2e799c60880a6ea95 = α;
470+ 451249045a83162ab51a602006391035d937b4fe = α;
471+ 457e4cce8cc3af1d0237efdf32e01dd8149d1366 = α;
472+ 458ce5eadcec7db6c79cc7c4785864957159d82d = α;
473+ 45b816b4d0f405c95179b48d4aef89b863be886b = α;
474+ 45b8181ade7c5f9416382db55ebb9ff006a860ae = α;
475+ 45b97a83e7de5add19253c91c6f9c3fca6133a0b = α;
476+ 45c2f6d67121c2498bd3723b899243959da6e017 = α;
477+ 4653f71982a36f99d16331bbaebded3036eff50f = α;
478+ 46cacf33335ca2ec60df0c71cc36af0602ca8bfb = α;
479+ 46cea2f0ed5abe44ea23ba16c356889ae16636e3 = α;
480+ 46e1d0fc2b1da401fb554e93a9e7f69ba5b9857e = α;
481+ 47057afb3b675c9635a3a671c05a32525083c8c4 = α;
482+ 471521a96267727393067d510fa208a9f090ee56 = α;
483+ 4733ca75068a23a29a578352ecc8dddc16d714e6 = α;
484+ 476436af18523fd743894ca8676ceb74f5d392f4 = α;
485+ 4782725e3bb079fa03e2bc6e6d6ca44c9352c9ce = α;
486+ 47c3dd6d524f1923aa08644c2e4083ced4d481a0 = α;
487+ 47cb5394541c26f3bab3e60fab36b8acba1d8907 = α;
488+ 485fd4e8653da37ae3302212c1ff6c808f2e1e7a = α;
489+ 486e59fe184e878bc399bc95f1f81b94c3e84237 = α;
490+ 487d06c15e88caec9f131b002ba4ced31ca8ea46 = α;
491+ 488efa1da7ed78314cdd0c95ad874f812853fcd7 = α;
492+ 489e5e0492743ad3dbfd8599a5d00f284d4b13d3 = α;
493+ 48a51059aeb73ec544e6c1ace7303ebc6143b782 = α;
494+ 48becdab8fce5451f3de26a98ad8c4b41c51c09e = α;
495+ 48e9d691a3bd11810596fcf32aef9faa872a8fc3 = α;
496+ 4905bf362dac5be04631d1ce552b8184a6f9eb7f = α;
497+ 493b6e580a2441b91435c406da869b799e031da2 = α;
498+ 497e1a2128ecd56307d393c59ed4962de200412c = α;
499+ 49d7eaf76b4f243057c59f3fda3310c655144a0e = α;
500+ 49e02b1078a769deaf14989f1731daeb927f2192 = α;
501+ 49ffdfd5801c4c8c2b51be4b2e51108595a340f7 = α;
502+ 4a3c35cce04ee67dd38baa7ef7703dbd6fa6b14f = α;
503+ 4a6de8866429da8f1baf5ddaf3973c381e507f9f = α;
504+ 4a996ed0676c92d061e923599186c0d592b8c180 = α;
505+ 4aac38fbf89541859c14c7fbf320b1f9deb410f4 = α;
506+ 4ac1a3a1641db0a7d533dc58b147c50ee5e61f2d = α;
507+ 4ac1a96d979c84bea010254903c746d8f0192931 = α;
508+ 4adb6983f2858294dd67959dbb107cb141c93c74 = α;
509+ 4b0a3157b647ecf945962c64e6c1f2a4b0841404 = α;
510+ 4b6a1631906e490aad98097955aaed303b835e4c = α;
511+ 4b6f876e200503f43b0378c2bff4e3371dede19d = α;
512+ 4ba7bd51b92bbbea7f47cede7dccb18ed74c4da9 = α;
513+ 4ba9e150400597410bcc2038b890c5ebfab59f97 = α;
514+ 4bb876b638318dcb891581ef5c5b60ab49f84a14 = α;
515+ 4bc5d5526880f85cc76aa4910df1d4cb262afea4 = α;
516+ 4bdc7380f8fb8cd1f70702e4b5dd2f4ea262d125 = α;
517+ 4be9c06ad3f3ec9e3ab2f093677c38c9a57609fd = α;
518+ 4bf3ad76dabf85f8e9a2caef2ec4cc44035c1748 = α;
519+ 4ca619b184d0aecc977846b5cb89a7789844736d = α;
520+ 4ca7aeb41838db40fce0bd1181781152f3273c85 = α;
521+ 4cdfababde3088412ac7195d034c19f4f7e873cc = α;
522+ 4cf428f5e7b38cea3b24dce0380c776e1a06ecaf = α;
523+ 4d0630a1e99d1c060c8dd45b809b2e6c5e6bde7a = α;
524+ 4d1f805d1ce7a7c6f0eb46295359f5ef01297c17 = α;
525+ 4d65a777c9a440e869ef25b04b71a9d9a6ff7190 = α;
526+ 4d6f9c6d7a261e35898225b1fade32da175cb530 = α;
527+ 4d9e2249062c1ccd50913501cbc7ea2fdb8cc94c = α;
528+ 4db41bf84756d686fc71e275d2c94c5c2299de97 = α;
529+ 4dbf88901817044507142dfafe605a1b527a5733 = α;
530+ 4de19ef682be73fd5616348eafabda7e5b5c2614 = α;
531+ 4e0bab5bde5138bbeb03c118ed5450afb6087c8f = α;
532+ 4e10a129d42108f8b10039ca6b879fd30bfeb431 = α;
533+ 4e3bb620861aa7c3d996fd8ee7cd3a40c2096bb0 = α;
534+ 4e6e5e7b59b428c37f77a90e081f121a450cb039 = α;
535+ 4e7e810806daa53af602a84d64ae8277b20e8884 = α;
536+ 4e98b65102ae8ae6833a82df09b1c4926070f680 = α;
537+ 4eacf8ae62800ea91a75533032d4a4abad00c1dc = α;
538+ 4ee7da06ece4e65e4b1f6c4f3f60b4f183a6b0cc = α;
539+ 4efa7b4c022fb3147eafad578190d50881927acd = α;
540+ 4f65d69acee548a54f8329d2457356d425bee4a7 = α;
541+ 4f6a87f4bf05f150a09c25735784bc3739871dfb = α;
542+ 4f81cd7206cb477f1b15d71433f87035b8ef4b61 = α;
543+ 4f9629d19fa7928aaae10e4bb7c79195fb4f2436 = α;
544+ 4fb2c8f58c15b33818735ef8f75ba170a1b1f65d = α;
545+ 4fbda194b6083d60ec1a9e281eb6caad5716cf1e = α;
546+ 4fe88f539e62bf77da44db73cb91ffe913569e34 = α;
547+ 4fecd0bf8aca3391671cf59243a551e7b58f745f = α;
548+ 502e3c3b4dcae339b71743fc346f2398f2d7a218 = α;
549+ 50606bde1b8f7f906c86dad14730c53cab06b477 = α;
550+ 508797aad17ea00c10d3c50bebc98d3981dd7bb9 = α;
551+ 5098f795311987869f91ed638f4c0a395312211a = α;
552+ 50eea30641c70b731a2069bd514ef5f1709825de = α;
553+ 51298934386bbe2da528af9262277810d6653396 = α;
554+ 512f28040301a00935d7f1ded68e709b048d7f1d = α;
555+ 51413e0814803560ea68a0cdfa59ae901551ad14 = α;
556+ 514684d898b2ab6135a63ae87054e6af91cac2ae = α;
557+ 5147927b8b7ebed2923c8d3ae6b0e1f716b5fb61 = α;
558+ 5152492459f57a1bb4d120be68d29ed666c87c33 = α;
559+ 519dd66ccb831a904959a155fd43639be5a97863 = α;
560+ 519e03a04b64bc3d14eefb416e21ae15c6f0121e = α;
561+ 51f74fd271b725c13ee25b2dae5d9b5250116180 = α;
562+ 51fd67fd01d7f93ebe372aa67ec66496e9ccf3b1 = α;
563+ 525da4df29fa810fe46aef9432572bbb5743b36f = α;
564+ 5270c6b547cfda7e26cad076321fd7be0e5a061d = α;
565+ 52ad7360b0e7a95cc19aa7de2f2433ca955eac9b = α;
566+ 530b33d367b237887fd7f3666822b40a696806f3 = α;
567+ 53190479c1e53af3a2670f6eeb1f4bda0ebd5a80 = α;
568+ 536b4cf746322581a3abe99533df6307e7a9c2c7 = α;
569+ 53738d12a38995c76f4de6f5f064a567f0ff3ac8 = α;
570+ 541bb03057456219ae8a2ab97be5603923921739 = α;
571+ 541d949e247ee005e6e55562dc29055d6159fb64 = α;
572+ 5435cf07dad1155ea3ddbd5178f3dd6013a507d8 = α;
573+ 543ebe1dfdaff4a1590fbd156175d836ae2beb0f = α;
574+ 544dffe0e2da98dba3a519141a740f849c5ca7ee = α;
575+ 5495c21514ee03fd9e7736742077960a79934c74 = α;
576+ 54be461a1c72b36e4f01f2db78849473477d73dd = α;
577+ 551654d82bdacbe12dfe0a27ff7948b6ad1894b5 = α;
578+ 5525223a6059a69ca58ad0617598cac64d8659b8 = α;
579+ 553aa77e78f9ac7693e56c9b2ae642c4141aed66 = α;
580+ 55575c3f7cb2cd14356f9dd1836e4beeb057941b = α;
581+ 5559dc18c6a3a435b34446daa5b51264cf9971fc = α;
582+ 55d527b168c8ad85340fae2fb9b238e7a568f338 = α;
583+ 561af5c6ee4445a0c380bce19a7f5ee82b3fe756 = α;
584+ 562c6d13b647a43c555b040ce69507c475089c24 = α;
585+ 567807ac295099a07a6c59a7bff568f21dd14860 = α;
586+ 568dc16559220cee02d71db824805edd0d74a3d4 = α;
587+ 56b3ac7ff0cfd2d96ea21ec3d48bce76e2720807 = α;
588+ 56d72a0ee05d644fc991dfc250a1534fdacb5b3e = α;
589+ 5725149f4c8e211494463fc9280b6c10907ea321 = α;
590+ 574e359a11791294117e7f4ad4f677a99424170a = α;
591+ 57518e7a38c99e38c3bb12baa69c5124f3780152 = α;
592+ 5756967d4a6019de75418949a564995c64fd81b1 = α;
593+ 57a803d869d2db9788911933ffa0282320e75170 = α;
594+ 57be8202d1bdd44a6b6686351edba4e653af9f01 = α;
595+ 57d629f9fb09a65be5be7697a5d33a20c2b557a4 = α;
596+ 57ffba4219a312d7e7daab46237a0f61ddb3ad28 = α;
597+ 58031ce6c4634d8b348854a1ad4bc1c74d022c7b = α;
598+ 5828edda3a662171a3c8e304b857dc7a745b85e4 = α;
599+ 5890d07428ec2ee9086c9f8d07792db118a1b57b = α;
600+ 58b4bdbc8f5686d4ece9cb4a18f6367d8222f073 = α;
601+ 58c296582abb3dba4bc073aa6708c81bc8798ff7 = α;
602+ 58c56183f54227469e3aba4fe40c8fc227c66e55 = α;
603+ 58cf115d701dba2092d2e4a3f0ed075cc6fe3069 = α;
604+ 58db59892f8758da63e7b9c465b5615f6318634b = α;
605+ 58e46f1625d6b6603897665bac292c5a3566d565 = α;
606+ 58e4e03689103981844fc3f19413c5d3eebe2489 = α;
607+ 58f1a93515f38b967b50196a9be74684efbca7b7 = α;
608+ 58f5f621564cce6f1eb3c9099a1645a0369ece56 = α;
609+ 58f7288e0fe3a5997003f6a117a30579d15f5973 = α;
610+ 5906155140815aedc94241abd916f56c6ab4564b = α;
611+ 5925a9b0f257cc9517f224bec3dee7ecf883aa08 = α;
612+ 59717f7d7697f047103bbfbca63b68088e7172bd = α;
613+ 5977705c2272d0c3385b70ffc3e5f0a2983e986c = α;
614+ 5983c069abdec3469db5b5874ac27c17341e3f27 = α;
615+ 598492be84474143365fa6267a0e73936ce8a248 = α;
616+ 59c4bec5e2957d30ef37c5198c4b90381f3ba20f = α;
617+ 59d5809fb3d0b096e7104e798b12b06dc68c750e = α;
618+ 5a001646d2ea8b208174c4b954cf99309889bac0 = α;
619+ 5a2a13ad5533dc3b2172eb552b404c7c458983ac = α;
620+ 5a4c5b85fb81b291e8fb6f7c37c0b152f8aeb1bb = α;
621+ 5a668ab8aef15368ff281ed35e8f730cc8ec5c7f = α;
622+ 5ab07520be55c428c36c959bcc9d4738bcc55daf = α;
623+ 5b00e89032246f6937f2093a0f6510beb7eab715 = α;
624+ 5b0c314a325c53eec5d98afdb50067ad99c6e99a = α;
625+ 5b37da6b06afe4b358305eda6827bea44e782b44 = α;
626+ 5b81c9f201693bb927130d9d31a3768f7143dfde = α;
627+ 5bbeebcd7d784670bb16f73b0bf59374d12e300d = α;
628+ 5bd038cfe2a2f12f6753e85dee691c08d4fcb6e3 = α;
629+ 5c42920f6f44c053dcf7e87f29ccef27b326822c = α;
630+ 5c4dd9ea4a964b483b1e90c4c6a70cedc63ac70b = α;
631+ 5c517712601cff542ae326efa6bdc3a7734755c9 = α;
632+ 5c53d41540d89216421c6738a2b0b389ab94ea8a = α;
633+ 5c65fc01f0d8703654412f609c5e78a363870079 = α;
634+ 5c8363a3b4c54cf612de94a0521b30e565085fc8 = α;
635+ 5c884c59ad7491166618894713300acc03499f45 = α;
636+ 5c9dc79aa298468ccc506369dd777f36e980e71e = α;
637+ 5ca8bb4804169df408781649b3ef8a3d6dd2f414 = α;
638+ 5cf160a27902278f941572aa592a11cf80ac6972 = α;
639+ 5d09c96c7e23adaab207052fa2fe12dea14e6a44 = α;
640+ 5d2198866f1b1047bb8a047bbeb38cc0622a4cfb = α;
641+ 5d8e7a77ae12035781174084d8cb9a4e1bcbfb0b = α;
642+ 5dbebfe34ab5c28eca7d7b6c57ff41cda029cf64 = α;
643+ 5e2314065445393471dbf0e9d3f2755a491d1bba = α;
644+ 5e58fbb85b49d5886aa35ed06da2fc6788db1320 = α;
645+ 5e7d96af5e5b1cafa670bd77ae918457a118f7a5 = α;
646+ 5e9b459db24eeba207710184e58445974e211543 = α;
647+ 5ea84c79c69cb4f20a2cbde31b1e9655f352f1c8 = α;
648+ 5ec11a04eda7f0d96f115e200ac8029b95d4115d = α;
649+ 5ef88b8b3029a7aa2ddaaaf702ab09e6f18a9ab1 = α;
650+ 5f026e163284ef4d1dd49f3e7ab1ddb74e2e8dbf = α;
651+ 5f116087ea09d4cd18e565462f0cb21da53cad86 = α;
652+ 5f239795752cebffb0bd14bc3d14db541d74b95f = α;
653+ 5f29467ca4107002987a75eafe3c02d49c0d3fc8 = α;
654+ 5fa26a7a3b2978df4bee466d4c76c7b95497e4a4 = α;
655+ 5fe5595a5a46eab069dcd2d6813c1b68cd9ade4f = α;
656+ 6028c6247770e169982f50ed839356448f3d93f5 = α;
657+ 604e9fc9dd1c1b397add8f900213a87a9964ee51 = α;
658+ 607c94b25b7e4fd2ad13dfdf210e43eca3abf392 = α;
659+ 60864e331c9e60034c81b9544ca30a14688574a3 = α;
660+ 6093beca3b21ddf0d2d599e6a841ea070ac01fae = α;
661+ 60be604621599e16ffec1f76e08339b6f9d89f8d = α;
662+ 60c5bb5120f6c73b23af87c97dd5179f0ade011f = α;
663+ 60d58acfdcf8d83f8a76a00017b7b2e18671b5a9 = α;
664+ 60f481b9e0149933c045fafa2e119c902e698d0e = α;
665+ 6110e8d90324f6bac6bd3173bc69f6c58d459d08 = α;
666+ 61402aec078bfe9e6535f5a6ae537710fa5e79b0 = α;
667+ 61588d85e249c225350c50ef50608fa8b9f4941a = α;
668+ 618449250b93c28bb8f15751ff6bb653143e5ff0 = α;
669+ 61a4313e93aab82bab5da58a1b601aad41ecbd60 = α;
670+ 61edd2f04c73c5c3eca0bfae13c92213516504e3 = α;
671+ 61ff058a4cd1eab2481a48a115063c62660b78ca = α;
672+ 622d9c355d2344266a6a9065ae16e911791d9ac2 = α;
673+ 6253baddbb265d8bcab9334e1bb48fee69c0a14c = α;
674+ 62cfaf0ed5a8437e74ef0b7331f28a86942cc8c8 = α;
675+ 62d297add5bd88f5ea16b2ba6b97664dd888eef8 = α;
676+ 62e18e2b34d9ca5872cacacfd6eb9e94afd0eb2e = α;
677+ 62e5d1e864e96e11f84e99dcab8cd16345641f43 = α;
678+ 63574e974c45ae3f0e8fbfcc9d896c53798dd161 = α;
679+ 6359e2376de35d2b27246726788d28d678796a20 = α;
680+ 6372acc1b0c4c85801bbd2b0fc9bd17a043c1b67 = α;
681+ 637e6e050e0e294f4e7191f12ad96c9be75aa747 = α;
682+ 6393b6f72772149473aacbdd6425bc77b7146697 = α;
683+ 6393ed28494cd0c7bbfc3d90ee14a3c4fb5ffe2e = α;
684+ 639844a81c2400a43810b5674c144824ce23f3db = α;
685+ 63b510d13c94072e9005674901d2b32ec9853167 = α;
686+ 63ceab8331229d4e03c85aa9b5f4671eda2643f1 = α;
687+ 63fb6b15f90b5647d4e46169447beceac52a5dff = α;
688+ 645a1e3bcfcb7345c6416a0ed520fae63329b8b3 = α;
689+ 64e87def5324af1f8687a977b1aeca68f9ecf0a6 = α;
690+ 64f0b7d72766b49356b5948a55695a43f845be22 = α;
691+ 6522f3b24668a2691bee084b8ee44262dc6cc644 = α;
692+ 65578de12deaee566474c4d151d51dfbd4c073c9 = α;
693+ 6580420e45c35e3175f7714b91aa918b46c45984 = α;
694+ 658fa72e61b1133bc866dc68b7317dda0c190d51 = α;
695+ 659b18633abf461608be32b8b565f4b70725ee20 = α;
696+ 65a719d77d9dbaa46e24a210a17ef22399982d13 = α;
697+ 65b78b6ca4fcbc234e459578f687f0a5f21ff467 = α;
698+ 65c815431a222281ca4027a3409714aca969c404 = α;
699+ 65f992d64db107757f6c8186765571a2f85d60d1 = α;
700+ 663723ac5cff1d4ea06e07da58676eda31ded8b7 = α;
701+ 66b5c49c095c24e8ff5576638e6f43f40b60e398 = α;
702+ 66e6d819829e7f036392ae108ecdedd0068b3fed = α;
703+ 675414213a5992bda8f4bf33aa2feac7508eadb9 = α;
704+ 6758891f27f3f1b33f508442151c2d1d4244cacf = α;
705+ 676f25261064cf478cd211dd584b7a391376f599 = α;
706+ 677b668be4a2ec5fa834fa988bf502390ca975d1 = α;
707+ 67ebcec99338fbc806e98fe5ddcc80abd7cfe885 = α;
708+ 67f9a57842391bca1072e56b907d2adde02d2d34 = α;
709+ 68290cfc4aa5f88785b355b66e5efa7ae2451f3f = α;
710+ 682beb667137b4be322732642ec6bd7a7fb77a67 = α;
711+ 684a26e9ee9814c8e55834710a5e5395db2acbf6 = α;
712+ 69435a1a9c544a85003dac3e715da698388e8cfe = α;
713+ 694d6d6d33e802bd013aa60c6ceef225f1769a21 = α;
714+ 696aa11a029bfeebe1885750c0a1219698f45667 = α;
715+ 69fc2b97ab8ad300bd86bdb295b868f7e2bce67e = α;
716+ 6a0ea024e2030b5079a2b9e20aa262fcb1a4a4b3 = α;
717+ 6a12e8d5c57226c69cfd4eea779767ef39cc7040 = α;
718+ 6a471e2c9660b457b6c96bac1a80ff31694ca135 = α;
719+ 6a50182277880d3cdd4488457883c08e6765df35 = α;
720+ 6a67f7a815e887377e17dc82a86617bcbfd74f12 = α;
721+ 6a6962c3f79f9f08e1b48bdf76659d8d0ac02e20 = α;
722+ 6a8708499175f48f9ac6e36dcde1684f5908e594 = α;
723+ 6a9c5875310b65c3a8a12766aa12d23c75256911 = α;
724+ 6b3a9a128f40523d7b4663b4aff1259e204dc2fa = α;
725+ 6b44b6d36ae3887d630357d09ac1f4655e43ca7b = α;
726+ 6b67c4b93edd66dc6876acdfaf991559f2387756 = α;
727+ 6b6ea1539e3e10b995b117a201cd14188d7361cf = α;
728+ 6b990f3e47bfc2ed0ca6a8c68c9188a6788110bd = α;
729+ 6ba54736caaad91cbe96699871e5e369c615d477 = α;
730+ 6be690bb0e769b3f7e8d0ea9dc261b06f0496249 = α;
731+ 6c0977b3790d44b85c497cbd724ffa4f744bd6b6 = α;
732+ 6c431edb06befc6eec62ca59cc72f45697da876b = α;
733+ 6cac0ce67fc25ab9057de053ed68e469376a951a = α;
734+ 6cb6768eacda17fd4b9089b3667e49c91b543347 = α;
735+ 6d0a3530ef64aa77b0e3b1121ab3e5148367b843 = α;
736+ 6d10bf18bc8be763d3e8f14a5f604b8bbc8ba92b = α;
737+ 6d17b68e3ef2ba04421c03ad37c21c1871a7291b = α;
738+ 6d2192770af113f0d25717171721654f92522bc7 = α;
739+ 6d263531086a2ac8abcd381816ca4bbebeb2bb89 = α;
740+ 6d2b2990842e4e124fa1767f5e6fb10dc1c8f0bd = α;
741+ 6d7357dd4987e9a687f666583450e9650b6bec3b = α;
742+ 6d8bf7bc3f485cc58257d2f301a88e430fe47518 = α;
743+ 6d9e988311499cbfde8b162b1b772f3ab0826cfa = α;
744+ 6dbc1369cf4eb542c999ef1a7dc17798e967968e = α;
745+ 6e12c754b5531592e7583c0ddf5ea9f617bc4393 = α;
746+ 6e4f2760b5d09171b1caf834191e8eff91e09092 = α;
747+ 6e59a6401cd7e9537de8df24d6923df4897465b2 = α;
748+ 6e5a4c88769060bd4e1cc4b17dc6944cd5f3d5cf = α;
749+ 6e730e7ead3a2958afb3beeffb7961d98b372ba4 = α;
750+ 6e81558b9e889ebb9d8f50cf1f1d5c4ab32617ce = α;
751+ 6ebcf68520fb80c14bda307947650ecbe5ed0335 = α;
752+ 6efaf9b48d52aee2c7a89e9fb7c8face3a1dab34 = α;
753+ 6f05a4518d46fff2a081dfff843f2af3e163a983 = α;
754+ 6f0e8b5effca878a55ca98bb70c7fc5b9c33a7ca = α;
755+ 6f25ee59e861b5697b41d487ab19360684b2079b = α;
756+ 6f3fed4aa88e43e6ccbf7498ff502f8440e1d8b4 = α;
757+ 6f51406032cee2275e7da1c749608e097223bcb1 = α;
758+ 6f7d171cf322dcfd650c55aad7573fb99f926026 = α;
759+ 6f920a415787627f9dc4c1ef92a2a039a21976a6 = α;
760+ 701e08162a99eeb25b55b6133dfee51bf36e08d3 = α;
761+ 7054b730a39f0d762ba1602fbca946a38a8811cf = α;
762+ 705da00d6ddc859d91abda6fb8299b957eb0d99f = α;
763+ 7077b313799ab4557f8c8d9aa345313eb3c6fbae = α;
764+ 70bb4371a8b8f7a2118ee2f0a7604496b68eef9b = α;
765+ 70bd0e0e4dbec19c4cffb718ebb1ac84e037940e = α;
766+ 70f50e9df2d8e0011bf9748ea4c1df4c8c8c2202 = α;
767+ 71031e888d4b28104016a406b7ab6e993322d9c8 = α;
768+ 716adbc60694f3f72ef5e25a38f3fb973fdc7a2e = α;
769+ 71a6745bfe2208e7c0eea0718fc3a06d9ebf12cf = α;
770+ 71a806e6c281e55c56f6e0feb65e35d553d03b68 = α;
771+ 71b05376f1ca6f9ebfddddb4cb2258620d57951f = α;
772+ 71f91c9ee187d974e3f5da3d91a352d568c260a8 = α;
773+ 7210d2acb28ac3185e52b3c854c02db46878b00b = α;
774+ 7214bfbc3129849a9681c342e1873b66020b0420 = α;
775+ 7221d90f16cb54cc4f5be63f68865da103cd4f5a = α;
776+ 7228172fbb398b4f9cca6ca9b5db85d1a6644b4a = α;
777+ 723429357fc93c212749453abdecffa83625ce63 = α;
778+ 725d0cc30e3c4b6a9e3dfac3f320a6c9904dd8a9 = α;
779+ 72e906fb126222e8269f7d46e2d9f1ac603baa5e = α;
780+ 72e922640673b6171e86c8c7fcdfa148004c1301 = α;
781+ 72fc2150939a11815cfa929001ecb00ad565ce7e = α;
782+ 72fee8305071d508698fa86e4a89c80f5ee236b3 = α;
783+ 7305d73041a77bded642dbf6567625ac3c0208fe = α;
784+ 730822767c19d479de3afc2e926cfd7438e23852 = α;
785+ 73163f4d3a1f9f7015cad45b8b2fe49ee716aed2 = α;
786+ 7320897f4f1584c0e42fd2546557d85ca8f513db = α;
787+ 736ccee7ee45e606201ef7b7c643498cfa13d70e = α;
788+ 73bae428e969b828d72a1c4b71208bd855b67233 = α;
789+ 73ee6ef047e32991fff9aeb313c0e8c7faf673dc = α;
790+ 73ffe57844e03a4cafc0e9aa8819694c90e1522b = α;
791+ 746b744c6a42c0f8af6feef784581873bde794e1 = α;
792+ 7491079d020d11f40f14eb94536fe09006ff2c16 = α;
793+ 749a111a54b3257ccd4600b6ece1fd86a57efe58 = α;
794+ 74a5411261270860b0b2d315c8398df07f956fa0 = α;
795+ 74bdfe7b7c5448f6b002b747a29ddf4eb214dc0a = α;
796+ 74c4761d61aabc4f7e227da3ff18fc3af1ea7f5f = α;
797+ 74df4c8f82ff3081bd49648cee83a06677495bd4 = α;
798+ 74ee06b2cb0a84dec755ca05d0b832517a58db9a = α;
799+ 74f904f20ed3e1cd02cc9d0e07a2778948328274 = α;
800+ 75124406de34db23633265523d08e569d7889164 = α;
801+ 751d2649bc4cf19cea075804463f00cf0ae61ed7 = α;
802+ 753eb938736a4b412147164d4077e991f9c89950 = α;
803+ 759eb0a64477d1269a2089f229e3f0a2276fb531 = α;
804+ 75e0842c76b2e55a861da42ea1d7c4636ab53833 = α;
805+ 76b0c3828b07ab86d995f91647a8fddeda00981a = α;
806+ 76df9b164d66551812ce65dddef45a44604b8c8c = α;
807+ 7725a79a9a5f662ca2adf8ae2efb114d32ff45a2 = α;
808+ 77352bcc40b2053c8db752c49772dbf0d158af62 = α;
809+ 77464fb66258632d2799ac5491f4316d35cc346c = α;
810+ 7756f8e0698993a2efb94e15819a1d1a22edd9aa = α;
811+ 777419bfd692da1795221b0711a3b11467f5e4ad = α;
812+ 777fe4089b0a02f749411d577a2a17adf635dec1 = α;
813+ 77ab57479dfe164e72b8298375e3b9b577e6640d = α;
814+ 77c1ef425fc9a747ed3815f78a2616fee747fd12 = α;
815+ 77cf0dabcf5441932f1317ec4ee4e28bf2039a85 = α;
816+ 785a36aff000132218d273b16e36412342def12d = α;
817+ 786040422666da11604af7280dd6eed639de30d4 = α;
818+ 788022e3bc41bf23e517d88df0ca24f715b1cad4 = α;
819+ 788b132136ad4d08c5f03e4078824ec04b1ac0b9 = α;
820+ 789b2bc3606dc2558b7cab5dbb62e8e76f20ef74 = α;
821+ 79042a16d0ef7feeccc76315246c5ee6f36dfafe = α;
822+ 7927b5a5a5c57b3801e7d0d4a42fcb142f267b78 = α;
823+ 792a616c0f78fa0b294f67b56549092efbbbeff6 = α;
824+ 79477f2a4147dd648f89b314306f5f0346278735 = α;
825+ 796f0c398bb010288b3688e6743420cfb681a4b8 = α;
826+ 7983882382ee0785a3619bfda754358f8d6cd5c9 = α;
827+ 7996e8351b085aa99ee962c9a0abbbe9b077e23c = α;
828+ 79cbc648416e750ee538d57d6b608e3b7bd7717d = α;
829+ 7a02f98f23ebb4382454f2813a70cbb932fb9e13 = α;
830+ 7a7d7497e9f19ef7a2e4e35a37308b21cec9f982 = α;
831+ 7a8446207acdf4eaf9676898ddacf9bdbf595de9 = α;
832+ 7ac1ecd1bdbc99aa980807c5645a78ae48ea9577 = α;
833+ 7ad6959d0c1c635355409e72473d108d90869dab = α;
834+ 7adad32ec30d0be94dcf1a19012e273b9971057e = α;
835+ 7ae477712090513005fe5af06c6026b245d3c946 = α;
836+ 7b091ff0e3269cd3b11fb00a394f82b1604095c7 = α;
837+ 7b6219b2124e3663a1f4383de616fd63676c9693 = α;
838+ 7b7d2e469aa46e6b7a1550e355690591e4ac54fa = α;
839+ 7b83af4328df75db5202d9e02c057d139ca1a9dc = α;
840+ 7ba89ad415dac138be18aeefe3423e3ebd56c0ee = α;
841+ 7bc9f224a762158a310d9dd9c355f21bc20cf5fb = α;
842+ 7bd4669f05c73f4cc2d165c712eeb0cca6711e7c = α;
843+ 7be14b1c31f9c742d61528f894b5a0faafdca608 = α;
844+ 7c8c84dac9bcec95152cac9aa9acac67f7702d08 = α;
845+ 7c963542515f21d8db5b961bee100b6412d597d1 = α;
846+ 7cc355b9c369e318b838b18f749c24e2afd259c4 = α;
847+ 7d8e31de63a57ce9a9e79c5263a63d5d46615baa = α;
848+ 7d9e9a2f89c7bbc7404f79811bf83f4076b5bc32 = α;
849+ 7db350110118d3076728f890e80db47042b1c9c4 = α;
850+ 7db51b6372a7e6ccd911890e40586056b5c3bf70 = α;
851+ 7dc9a4ae40e2c039f47bfa781f706c6ba93f5e77 = α;
852+ 7ddc7ee608268e6d717f879cf6b6b7305f636cd2 = α;
853+ 7de52ed6339fe756210b171c838332e276370e70 = α;
854+ 7df9510763997f0e8873568712dd0de573058bf3 = α;
855+ 7e1d5652590c12db0c440eac59f69a777425f9bf = α;
856+ 7e6ab4f547b9d8bf5f8a35a74d335d500588d8d9 = α;
857+ 7e741bb7378733b67fd4bf594a5798fdbbf4c06b = α;
858+ 7e74577c3774e9eb2328f96f667ae7df976b62e7 = α;
859+ 7e929e26670125eb017b7f33f7906adcbf8cdbe9 = α;
860+ 7eab47f1da799465d08b68e26c7ae336a7b07a47 = α;
861+ 7f0b7231a2a6fd1df206769a4acb8cb861b09f02 = α;
862+ 7f5b42e091a41c16eb4bfdfb2de3a36670854201 = α;
863+ 7f8b724b75c6f29c33f33a1f310cb495e079aaa1 = α;
864+ 7fe64241b07105e31272f224ac763156f8b8296c = α;
865+ 801295549915c66473e6cd436dc1623ad50a6868 = α;
866+ 806cb366cb892bd749bb1e697026060f9943b794 = α;
867+ 8083297580223f34923e3ed275ba2082cb6ff1b6 = α;
868+ 80cd8c5c566432905a991761c25be7e43613ea68 = α;
869+ 80cf2aada6b342c76be1c6617a893008f7a2e992 = α;
870+ 80d27f0c38fd20a082015a2b069457560f523b57 = α;
871+ 80fbbdd5d2b95966d99e270b260593880769871c = α;
872+ 8113584b3d880586f19985a5103712b5251a347d = α;
873+ 81306b38538d7e69e278eb4d4a1acb25c2d44dfc = α;
874+ 81594c92fcec0b95d7d0b47ad36aef8d2605c8b8 = α;
875+ 815c7f4ed8653c23f02829438b553e4e310c1185 = α;
876+ 815ceaba7a67e678c4a7187990c7367805ed6d7c = α;
877+ 817fe5e5ddfde58d79455a8b2cf70079f0642770 = α;
878+ 81bce187e69fb02baaecaa20027bd477eb1f990b = α;
879+ 81cf86d27a982faf7f6331f91b6b5634cfaa00d0 = α;
880+ 820a14581d58bc24e04e70e2d050e8568367b29f = α;
881+ 82368148bbcf9a6d07bead1e678bfee5f8631cfb = α;
882+ 823786b849304f4f046e804e4c7a9578b0e7dc4d = α;
883+ 82752934d29486bef3008fe2e7e9953dacd3a238 = α;
884+ 82896a288bed5637b5e537aff3c81d9a146cad8b = α;
885+ 82921dd1135940696b085da4d09cdd25eb6b740d = α;
886+ 82b74cc467fe5e422dffc6ccdaa2746b68a52fde = α;
887+ 82db6fcd53c153656a49118fc20771a50c406e2c = α;
888+ 8305a66fae9404fe58331fbef287d0215d05f2b3 = α;
889+ 83080f6144d571a9ef0996315476290d9c3fff68 = α;
890+ 83095c9481a4bebd25dad78e6ae747bd3674e086 = α;
891+ 8309626bf9429a32adfd8e1526f7dcbfb250ca49 = α;
892+ 831c19b0009bccd44d4c2837f3c8ba6e08753be0 = α;
893+ 8336cdf6f693aca7ab55371790ccf0bd5043c224 = α;
894+ 835db4359138adfe88490eae6e8d8c90b322dba7 = α;
895+ 836ee88c57cc1b5617f36a2b9fb19db420285b69 = α;
896+ 83960dda908738b13095ce2b7d9b31fde2baf36a = α;
897+ 83b8a24a4c385e1b384d645d948485842fc3cc76 = α;
898+ 83c26e75614987b0816315db03de7aca670aae61 = α;
899+ 83cf82ec1c25f57a747c78a0c0ee954463d3aaf8 = α;
900+ 83d99abd11bcb8782d32661775471266e6254ae4 = α;
901+ 83da0ef16746ffdc1151ecbda04a0b161e3f119e = α;
902+ 83dc459b2d9c7905eb6f80c6ffd7c0c912a4b007 = α;
903+ 83e36792413d3e3b767aae667cc67fd3b02ee133 = α;
904+ 83eae7ee8ccb30a23878582ea6466cd8487f17f3 = α;
905+ 83fd339d2e91415631d3bbe960361fef5a8a1d1b = α;
906+ 841906d093cebbe152a1ae20fbab8decbd282e19 = α;
907+ 841af4efd38ead50b821af773faa68345269e26f = α;
908+ 8460d3dfed9655b4e8ce53fc3cb879c8905b05f4 = α;
909+ 8463cbaaa73774638635ddfac40864bed92f3c29 = α;
910+ 848145830d667120c6b744edf11f9f6c7e2f8b7a = α;
911+ 84a55e9bd6ceea8c4b1ef30457675290b8de8b27 = α;
912+ 84b6f854fbee939820a32e6dc3d2b219b84bd6a1 = α;
913+ 85317d647433d1e73e61ca6fe79b44f9b3abca42 = α;
914+ 85393f1f0730c3ae240238686b47d7643899d34d = α;
915+ 853b10bea00eac17238cb14c6b39474e5d2d1518 = α;
916+ 858f8eae96cc6e3a7d1fc624e44ef972c47011b1 = α;
917+ 85b191ae1844ad6da93fa57876c8850de342b4ca = α;
918+ 85ba3d3276f5f01cc86df8c39d7cd730ed3b9a4d = α;
919+ 85df0b8a16e3e1c2b99bd8d8703a8c00f80c4ffd = α;
920+ 85ead6085f10e657e1a91326f3704d60b31164b3 = α;
921+ 85f7ee1e6e05e198cbb99f56c5a3a9d81b41276c = α;
922+ 864bfa01d63681c131168385b66aa9d3e6b7e23b = α;
923+ 86a3ef300ab5182d7d6f3c7e1dec1ab017621176 = α;
924+ 86ad290cb6e4e954f3e8ad5203151d7614279554 = α;
925+ 86c299a2f4f573039b2558718ba45d95ff08ade1 = α;
926+ 86cf1c73f3f607e472fa7ae7be4709c191878044 = α;
927+ 86fca9c30e8dbd28a791714c1385aea7dc583091 = α;
928+ 8741e3f2519f1221c2f8bdb966cfa4504f3ba5a7 = α;
929+ 87758c549dbc2d3ff96e0ee0b82d6d99f20c0ab1 = α;
930+ 87925181e3a8b737757401a6114a8acf82625a49 = α;
931+ 879da85ee7839263b362a6d69f41f3d4477d2263 = α;
932+ 8817e4ce5e9049b3ef1374d0f56fa509fa491f73 = α;
933+ 88192934143593f3b9bdf82185f4ac7a7373da7b = α;
934+ 883890e30ce2c617da8433831db3b480780ce910 = α;
935+ 885b477d70802077c49ab7c32a784bacd55ad24b = α;
936+ 888feb5c0fbff7928f650be69fab3ac123ebaa26 = α;
937+ 88ea146643258d378d159b9f928c783774ea9c53 = α;
938+ 88fb7a15bfd879a0c14ff7a16e321cc2b8896c38 = α;
939+ 8901801fb587b12a9aa6263540cdd95b46710f9c = α;
940+ 8906ef4c42cb5d492b620e5d8dc2118dd976ea12 = α;
941+ 89080b8cfede13b245eaadefec0b89e901ff8646 = α;
942+ 890adf51623c1e158f5c9f34db7f7f686e7005b7 = α;
943+ 890f859d20731989f0ce0e2ccc89da28cf0f8dbe = α;
944+ 89550f66a2a48a9f1b9089703e9b33eb14a23ae5 = α;
945+ 89a680846da64558e5147c08cdce03270f11e7a4 = α;
946+ 89be40342b7a93b0b11a6d495aa56ff3b8aebdbe = α;
947+ 89cf6e0f862a93ef9e543780d100517db3f3327b = α;
948+ 89d28cf4154268be0856af7d9417e5f4018f65b9 = α;
949+ 89e79ac4565d509ccc57badb152f9d534469f4e6 = α;
950+ 8a1ff4c3dc8b96b41c8fca1325ddf964f3768446 = α;
951+ 8a251169614945698a2c1990c0898641d380b289 = α;
952+ 8a73223e8d37b2fb9151a753a24139f37818e434 = α;
953+ 8a7c6b0f9cc883870556fb456f20715ed40367c5 = α;
954+ 8a933dd63dadc44c26fb7afa83573b5ab52aaf33 = α;
955+ 8ab79f2416da3c5f785bf291971680dbfdb62e26 = α;
956+ 8abd833e1a283680a6e19d7896cda23b4f559012 = α;
957+ 8ad5dea631af368fec9f5f42b6f235997a8131e9 = α;
958+ 8ad8c126595c03e31b971166788c82bdc9cf0544 = α;
959+ 8ae41d0c7d8fe2a00251726554c48ce1dec9ca04 = α;
960+ 8af47f724bed2b5bd921d98f1d04d577d07ad781 = α;
961+ 8b025a64e2081e1caa1c37427ec0e6194ec0275a = α;
962+ 8b0519b8991a39be23e66177b1f881b62f967cb0 = α;
963+ 8b3162447aae7621530652ee14ce8da1c287d6b0 = α;
964+ 8b8340f444f8bcbe6806d7f4b2a6d3894354baf5 = α;
965+ 8bb26a65444fea08370321879198f39f86ba188c = α;
966+ 8bcf71af2f119d1ff9d3b09fe4ddcb08fc1a7d95 = α;
967+ 8bdaed33beb2fa505dd0ba8f7d9ca94208ec44a9 = α;
968+ 8c062ee2e53c0fdeef88071aad2ed5ca1787cc1e = α;
969+ 8c09c7e57e2bc1a99df552e75f3bc3033364bbd1 = α;
970+ 8c220042a37dc4cc1b8b05afb13afadab972b12d = α;
971+ 8c9f2e92d67f683596da321c8af36ece1d8ac774 = α;
972+ 8ca8fc4f81c127e4c748fcb899af430506bd0b01 = α;
973+ 8cd8b767b771e6d10c8f1f0b54ab812881f22fcd = α;
974+ 8d5fa95a3df6eb36318fcf2a135f464a76257cc5 = α;
975+ 8d8a695159bf666e16ab7b3558bb1d5e4e3b4698 = α;
976+ 8da60707e5826860752528702f9a7256a5d2ef81 = α;
977+ 8db9bb91759363ec605c3d44273194136ce7dc1f = α;
978+ 8dbbbdecc05ee43425e31b4f4eafb33b90db30ac = α;
979+ 8dd3bfc182e5277d4408943dba3520659e2928f4 = α;
980+ 8ddadc13864ca20375d4b0f4ea443c123c3df3b7 = α;
981+ 8e02b6fe5eaaad154d3b7677458a9f52c538129f = α;
982+ 8e039420fc01a77f694997d93310f9ae83f1b6cb = α;
983+ 8ec6e7ee9b649b9774e5429add4c5058fe492fd1 = α;
984+ 8ef45e913784e24ac5b05d020bb1c90e5e1f65b4 = α;
985+ 8f31c3a2ca87728958356ef279d797c21ff800d2 = α;
986+ 8f4c0d2091f953f5c7ea8154eaa6e6d04add923a = α;
987+ 8f92c27e6fe54071ccf92649c25ae44991ea42c8 = α;
988+ 8fb54a6908a0bea0b6a901eb32dd120dd2360fe2 = α;
989+ 8fbbdcccea26e1c7cbd56a84637ec3564aec691b = α;
990+ 8fc77c86e05ff31bec85d8974938b0b5aa12fd1a = α;
991+ 8ff23362f6d2fe2b1e7f422a3f52c13797ef128e = α;
992+ 901760156bc3f4720396fcb487ad396709e18d9b = α;
993+ 904a3b18b20eee856202f89aa46a20df12388dc1 = α;
994+ 90647a14bfb8f6e8cbcc8d8ecce7d8e2500818b9 = α;
995+ 90874ee4cf89c6b1658479cf16716dd6d9f3391f = α;
996+ 90d2bac8a115eb18639fab5f7840138c63cf9b8d = α;
997+ 91475080ede727f0185da20abde65457b43d5476 = α;
998+ 9148d7be7b0930b397ef995a2e8cfdc6c7e2617f = α;
999+ 914d43c1dd28877dfe0d8b3b2fe4dca1ea17a575 = α;
1000+ 9157e95d94d3ff3b40e3e507ef12528e8574f8d7 = α;
1001+ 91639ede60c084c481daea6546adf05ba88aeb17 = α;
1002+ 919773af16fc549ebf79e9b9629c8d0c79d37927 = α;
1003+ 919cacfafb5826d92667b345276a3637499d8eac = α;
1004+ 91eb46476dcb659fc2275fc18c2061796b561bed = α;
1005+ 91f1332208a164cfc7739215d515dc4574548eb4 = α;
1006+ 91f5cdeaacc7b2be3fe926cfc1b9d3a054e143f2 = α;
1007+ 920bbd06b0082189854b0b43390a039f451bf843 = α;
1008+ 922b2bdba29589b9fa7f0b9dd3668e5703e9c88c = α;
1009+ 9230b9bb873b7a7cfc1fd2410d1749427c7c3499 = α;
1010+ 9241f4cc15ce04da3b203bb3ef60aa2a71cb19c4 = α;
1011+ 925f53a8ddf5e922520fc19cf6a17b00419817e7 = α;
1012+ 926540c5a0b84439444ce2305aa3737763bb95a3 = α;
1013+ 9285328e0b04faaf9fdc22bd27b76ef259020492 = α;
1014+ 92abcde8582abb2913e4531cf3ea720b0e8c7d33 = α;
1015+ 93423a9a78f3eaad42d062f8d2ff25e901ff455d = α;
1016+ 935837a33fa46d5ef7713fd4a123c61845ce49e5 = α;
1017+ 937a8d559bb1eaa790bd343ce8439885289660ad = α;
1018+ 93992b5277a20ed987f224c8f23f713677e0e25a = α;
1019+ 93d5d44b151da63343cd4f052e5efab5039f13f8 = α;
1020+ 9402187f503c2f391c471ecb84988e49b0cac918 = α;
1021+ 941fcfee8a4d9b5b95af5e64593a01405ed864b8 = α;
1022+ 9480aeff10931a3129abfc074e9d75dc46fb60b1 = α;
1023+ 948831f2786e73219fac5ebfe8a92939c3ea637f = α;
1024+ 94ab4be561c4e5ce07253ce94aa3794090a44428 = α;
1025+ 94b9d86dc4aef7c178c2f9b2cd5360412b13b2df = α;
1026+ 94cfed4a88c4801ef537b65413db4cc3326b0a89 = α;
1027+ 954237c72446f3cdf8886043123658ca943e6a89 = α;
1028+ 957337ec86f032a91c82dfc2f859843e3a1c1e88 = α;
1029+ 95b668ea9989cc5ca54f2f7db9aafc7ae8277fb8 = α;
1030+ 95e4d7dc9cb01e3491442f9370e98e0d6361f556 = α;
1031+ 95f7b61131b0b7361bd6b788845382016a65618d = α;
1032+ 960e4509e3bf35c6ecf5e52ebd53c18379354b18 = α;
1033+ 960f838a00eaece74604333768e1901f77dc91e7 = α;
1034+ 963f0fd12da9d6cf7d35a71dce090f7d5271d802 = α;
1035+ 96421d48a3164d2d4259c4c9500dfbf44d9b90fb = α;
1036+ 9653a9d2aef2e0fff14e4e16ca9058b38f172dd0 = α;
1037+ 9690133f46e7a766b46b38365897102baf062020 = α;
1038+ 96a0e755dc47a57b85791e7d748fe25e7258173e = α;
1039+ 96e618ee3726b5d13ee509923aeff0bb6272498c = α;
1040+ 96ec8bc282d262d4764767c1478400c10994bf5e = α;
1041+ 973fb0c29b2e3a44d2d370a545ef1a38a81ed07f = α;
1042+ 97772a52cd613920ec0a84f0c8b57d0c8e88b1b6 = α;
1043+ 9788909a70709303adf419bf0340b73ab037600b = α;
1044+ 980f3e90adc8557d71bfbef57bc146374612493f = α;
1045+ 9851cf052473a71589aa7577f62e6b82f0298832 = α;
1046+ 985271d1e9b876cc6b98ce871d8efed7b2b3cbeb = α;
1047+ 985fcff275609870f5fa9ace4a4e31fcdef7eb1f = α;
1048+ 986472c357451eab93419161f5ccadfefcbdb41e = α;
1049+ 98bce6b328014cb7a038cf71a5c84a03c88f3b63 = α;
1050+ 98d4e369b78b0733da5369ef5d9a3d0821224bd8 = α;
1051+ 98dd7a062fbe1436797395825aec70ab45a9e01f = α;
1052+ 98eaec4f30d9a8b65a6d9865fe0b1e5b7df1e740 = α;
1053+ 98f6aead047382d81ea82cfcf7d678c3d279b6ad = α;
1054+ 9905967a7ecb273ea4c135e170605bb12051e395 = α;
1055+ 99408ec397e6f41cef3cc1118a42007c42240b73 = α;
1056+ 9960c14a54da2eea43d72be9aefeeb85b8cd4e7c = α;
1057+ 9974452a9032d4ef1911e1347776b088bf0f03df = α;
1058+ 998f25b9ce65d4cd484598d5f49cfdb023205ace = α;
1059+ 99985696491968b007dbff31cfeb9439637ad92d = α;
1060+ 9a10248ffa6ef2de0ff39750b0126e7d0b1557b6 = α;
1061+ 9a27b682ddf08347ffdd2673c005febde327223b = α;
1062+ 9a6f36fd2204a5938bfaa23310ac94f3eac70d91 = α;
1063+ 9a709e39d73f4dd05adc8a171c9e771ca1facd83 = α;
1064+ 9abf05827a71d1c0a15a65473fe44db0a9c8676b = α;
1065+ 9ace33ad3d9ba29d499d254c077206230291f79a = α;
1066+ 9ad3062b35efb39cfe52f02269e5e28c03df86f5 = α;
1067+ 9aec8735040beb57da24cffa27ef5d254408275f = α;
1068+ 9b2025a39ed5dc7d0f745fd5f484fa5bd2f9b319 = α;
1069+ 9b367562030fc7238553c6aebec57181c96d88fa = α;
1070+ 9b622139c6c9738ed9a9c4bca74a20d18bea5a75 = α;
1071+ 9b6f3a80dd242ad667ee7c33f54385d4fa791086 = α;
1072+ 9b85c2fa156837a820c7e7ae27d2ade465850441 = α;
1073+ 9b8fbaeb9433a52f4f65397b66bc6da378e067b7 = α;
1074+ 9b97586a3c9bf005cab1870015b75587e39f94da = α;
1075+ 9bb171f0382c86c213e8f4d3ffafe1e676490b21 = α;
1076+ 9bb63a05f1dd1d7171eeb8018c29c90d81773605 = α;
1077+ 9bdd5448dfc6229ba9d0261514a078236c882986 = α;
1078+ 9be02ac4f895d7559b0cba2d4b65f8ffb5626236 = α;
1079+ 9bfa76eaf50a585e99981b54ef5628fd89b397e7 = α;
1080+ 9c2836065510901f9ba07928e4c7e319dd33b670 = α;
1081+ 9c2b99ebfed2e931067e8842161b2811d04206eb = α;
1082+ 9c45f6155855d24fbb8f12e7a40895df1e55b205 = α;
1083+ 9c46b9b756ef22a0a9aad7d5efcf7e670cf46b3c = α;
1084+ 9c8dc173e3087266551343fc43db0a118e573cd5 = α;
1085+ 9cb4e1d5ca0e7935f8d937f678a9245ca0a8baf1 = α;
1086+ 9cdfcaa36a081486e8c591d1b0de339f20e19712 = α;
1087+ 9cf547b1a8d0349c6997827cf3b1c76934a8f7e1 = α;
1088+ 9d0629861bfc4948fc177763e87dc1ea3ac042ba = α;
1089+ 9d238c0aed4cd73464dbba5fbf034030858fe441 = α;
1090+ 9d2a8629491c47d32fd852ad683ba3be0f91dca2 = α;
1091+ 9d4088ad171c93938ed41b2c224a98da2eb8e600 = α;
1092+ 9d48d62d8894986890f0f871523b546e25618a96 = α;
1093+ 9d6293584ce78fd938acc5ddf91597dead7b8ff0 = α;
1094+ 9d8150632d85b43bd2be46924eb71dd19d5b444b = α;
1095+ 9d835adb6f30382cec8e1701c61f3a305fe5ebe5 = α;
1096+ 9d8f4ef5363610f4b47829299c0824147fa3c486 = α;
1097+ 9da60f5683310aa2ed53d90b2a9a246879223099 = α;
1098+ 9dd86d52ca2bc2688244bec708a9054313d175c5 = α;
1099+ 9ddf004692c477b60fed575d57551fabdb00997c = α;
1100+ 9de93e74f384195b52fb90f9e7767ece5fd84570 = α;
1101+ 9ded54d67930bcf5c3e95a10d2176c6106f2a3f8 = α;
1102+ 9e3075eea5e5e885d9aa9e6b2952ebe61a8b60a1 = α;
1103+ 9e397995b47d5acc37d38c9fa4935abec922ba48 = α;
1104+ 9e728c35e842f7af53a3e822acd469326d7cd52f = α;
1105+ 9e804a449e34aea4d5227c2a0cb3d96352a82de2 = α;
1106+ 9e9a678ef5fe8d87a10fc7621ae8dd3c501e6236 = α;
1107+ 9ef14ed15fba71337b14c1e33972d9cd36fa9278 = α;
1108+ 9ef93659a347d11fc1e9478c37043a0236e34ba5 = α;
1109+ 9f07f59f3c436bdfae1916ca914e86d02a7239eb = α;
1110+ 9f3ea83f4797ad2eb48a62d176d4849ab3b11b4e = α;
1111+ 9f67c39f021b4b42e5fa8aec0f0be533c8341cac = α;
1112+ 9fb4a9e94f7c935385fd64a3d3c2f58144e7118a = α;
1113+ 9fc2d2e4632111eca96621a257b4547fddf03746 = α;
1114+ a0032cd8280294edff61604e9bf0312230cfd79b = α;
1115+ a003e87a1243a65a9d38ce8666ba05cf9dff34df = α;
1116+ a00af92cb7dfede2f60df7468c841462cd3ef7bd = α;
1117+ a037040fb7bcc432add0b7d65dc1d3b078b6f143 = α;
1118+ a038a78206b6b0572fa3a86e5a96e3fee0d32b04 = α;
1119+ a04dbee3efc3178e3a175b2fb572cc36210ba9ce = α;
1120+ a05558cf2d18454f06cd9c1a5b610a654ec0294d = α;
1121+ a056afc246a9cdce5d7321930c97ccf0b9f19f15 = α;
1122+ a09bd78594e737689115679ea7f6a09ed557d18e = α;
1123+ a0d83db11d6b2a64fdb82cc496d07a03ccaa142f = α;
1124+ a0de04466a75125d3528739deb44e12686e7a970 = α;
1125+ a0f7010e4bf1452ec48d287d971a48198a78da69 = α;
1126+ a12df808dfee07a06515eabdd6c1b0124a7385d0 = α;
1127+ a1820034a04f046e5f0c74444f653ee4869647c6 = α;
1128+ a18cebf9d16dc2e5a99da03353e404d64bce3ae6 = α;
1129+ a1c1fcef149d29408d496f35628d18dd9bd2e6df = α;
1130+ a1f9df46b4e95588043a59820ba65fc28a8eea7f = α;
1131+ a1fc05440064b28d5deb42b383bf1960ca27cb3b = α;
1132+ a21a78f021d580176e09c67d0643b83e80ca2744 = α;
1133+ a243a00aa61675be8ae46cdba7db99c8e8195984 = α;
1134+ a24d76c382036592b023a22d61abbe88d52cb526 = α;
1135+ a2587b8104dccd8347dc49a52bb5643842856a16 = α;
1136+ a260cd8d85a752caa55d8857af979f5ae8a68d97 = α;
1137+ a2731fbc3c50dde19f92ac5706a3b73a2fb50c05 = α;
1138+ a27eb78abbdabe194ad5b4c1bfe56dfca38e43b0 = α;
1139+ a2b0d085248240cde57087bc35816b078511c856 = α;
1140+ a2b1b97c80248fb89a7ce7322cc399a4fdf3173c = α;
1141+ a2ce002a2a6a420e4c746eae8f553665e409a116 = α;
1142+ a2d4c282439a7d50a9b7005e9c3feb136cc093e8 = α;
1143+ a2e5471c647ec896793c1df59ec6c214756b7644 = α;
1144+ a333e2129a0a7518d47d81753d193ceecc5b881a = α;
1145+ a353e5dd34009fcbd0a5f9eced792d02ffd2cb97 = α;
1146+ a36932c96e52dc3b154313d65c128fc6efa79367 = α;
1147+ a37744cecf38c8c2ca371eb33120654f8a53b5a3 = α;
1148+ a3891b8c154921b18b27b3c7915a8bab0b886565 = α;
1149+ a3ea753b468f54a0a4c306c03130572f0ec0eee4 = α;
1150+ a3edc07dfea80da6d7d09067737fc4630c4bb81a = α;
1151+ a41d00077f02fab1c6a05e4607094b4eea3b6ad0 = α;
1152+ a456f0111a1d9a6fb8045d0e5e9450b7c36f9374 = α;
1153+ a46938a8170197df7ac0c8d9ca3c7e5aca696271 = α;
1154+ a4d7e28c74a63f10107957b9b6af00486f1e7358 = α;
1155+ a507276db67feeb197bacced284be29d92bfb2b7 = α;
1156+ a561c854b1abb49bc710438edd6a17feb5370e73 = α;
1157+ a5a4b35f662228caee7476ddab2567611de6c35c = α;
1158+ a6287affa4b828301aafa84f7bd9ce71935997b1 = α;
1159+ a6f1cf388c274ffbbbf5ee9f678d2fd2c982ac9d = α;
1160+ a717434c111c75d501e35d8a5f4de2b75e299566 = α;
1161+ a74403ad656c7c68733bf1d09d994d0e8dccd94e = α;
1162+ a744790bed001ed939d533b58c7d7132d8599ee6 = α;
1163+ a7460f75270bd4946c7e856b9cba426bfd756474 = α;
1164+ a75892ec39777f5deec95c7ab34ac829e42f61f7 = α;
1165+ a7675f8de766ef5fa71fd6c904b6000b880a463d = α;
1166+ a7c85f34f7555c16973a534e2c21b5d0bf278e29 = α;
1167+ a8278a17fc9fa29308c59351a8c53b8330d33e88 = α;
1168+ a82d5d8a7e63a42fa0e2414ad66c400a3beb640a = α;
1169+ a84e9f4455088def00bab0652ca92a80ecce5e57 = α;
1170+ a8e8deae490071080b69408bf16c09b087801323 = α;
1171+ a980d01787b472fb299cc01e49a8a9da740ce81d = α;
1172+ a98192f145db4e2a545f79bc9d595f8f5c7fda34 = α;
1173+ a98819bf37317dabf20f86b0fd6800a911717698 = α;
1174+ a99daa4bfd46db4b416f47b4fc1972b221ea57e7 = α;
1175+ a9c62ffacb1508452705b057c5f796573d47c78d = α;
1176+ a9c93107f208faee20ff396148c3b9954b33aa06 = α;
1177+ a9dfe0dbd869009eeca3fb67d49ce2c691877dc8 = α;
1178+ a9f9260691fe2d9ade072d9589f478dbce491a25 = α;
1179+ aa0999ac4a6e388aa9547c455a6ea08c98d7036a = α;
1180+ aa212839e3606b3a1bbb68c9c1353c627853d8d5 = α;
1181+ aa40eee6849fd0b67b4a01d245e14e6f9cb562fe = α;
1182+ aa7f77e42dedc93399b370b494f11d5cafe3ac1b = α;
1183+ aa92bb8c104afa015ba28312d3eb02c006426dc4 = α;
1184+ aab7c2855fd330fbd2d86fae15fb7fc38e8117a4 = α;
1185+ aad648813ec7c3909fab2cba04e54a790f99d97d = α;
1186+ aadaaad6c3a74db06ec29a860e4cbdb518a7e965 = α;
1187+ aaf3a012f48b24c193628af42ef3302d96784c3f = α;
1188+ aafb65596f063aac27c03ad64646b10e9cbd9e5f = α;
1189+ aaff771bff40e67acec754ff6a73103840091d71 = α;
1190+ ab091055311fa9bc429f0aacec0cc24290af3166 = α;
1191+ ab0a48b5c47c246a0d31750e9ae6b073ad35963e = α;
1192+ ab0accca4b2e0942f55d408ed30bb84183371d99 = α;
1193+ ab199653d5f9dea6b89095016907a7ada2eea972 = α;
1194+ ab1c1bb528f1ce09f2cd32ba886bdf658ee6ef6e = α;
1195+ ab56f3655c7511b5ce622c56fc8f769b82720a77 = α;
1196+ ab5d351cc1959e213540cc41dbe93cea75dda4d9 = α;
1197+ ab6ec6af0e90d693b32e063348193dfc34a5d608 = α;
1198+ ab9668aa1cb36fe03fd80ec800264850f247911e = α;
1199+ abcd992f6c90c47b9150148778b5e5dd0be366f5 = α;
1200+ abd31f5aa1a5bc7ad21bd97551365c4785a30537 = α;
1201+ ac32cbcbb8641f87ce0f4e5e8ea11cdb33568e98 = α;
1202+ ac90a77a8f7a8cffa48d869e60f393981eeb2ff1 = α;
1203+ ac98ab61a879076754296cafc03b793203fb6701 = α;
1204+ ace785dacecc7b1203d5fd7ca358003149131381 = α;
1205+ acf6558b1e3950d55a31da4e8614e4a357aa653c = α;
1206+ ad4246832e88a45f0bdd6f9cafffd383ed378120 = α;
1207+ ad48b0d39c84ad3a23ee670e06d009fd1ef406ae = α;
1208+ ad735ce413f80f79900a87098c112c355b2269b9 = α;
1209+ ad8485d0661bcc3b36bc884373baac7c82c1db1a = α;
1210+ ada3dc17e0a699e9f0888f167ab43c95b9d087c9 = α;
1211+ ada964ecffeda8e2a6db59b92272ea1e22dd17b5 = α;
1212+ adb1f445a4a127969356b6635da51f637f54a0ac = α;
1213+ ade00d1c90e8988488643bcf563040510c4be517 = α;
1214+ adeb881928e136d07bc7684746ce44d02956f822 = α;
1215+ ae2770ddebf925141015b1cd4b1bb15fe7ece06c = α;
1216+ ae70c01ba3575e5558b7bde673a82e53494df34b = α;
1217+ ae8089d30509415ded81477eb41b29f55a431272 = α;
1218+ ae874d3eb1af9a5081c94361a989f0b77e0ecf1b = α;
1219+ ae901fb15f84f70cf6979dafda0d8f5dbcc5c269 = α;
1220+ aecbc01c44a31c0809a43e68b99e44ed1a66bd00 = α;
1221+ aeeedf07121752bb79af7caf8438e5c3d612cd7f = α;
1222+ af0b9f348ea115df7f34f8c6a13da31e75e76e16 = α;
1223+ af0da89763358318771d8aefcb742e3416f57423 = α;
1224+ af313d299a6ace9cd07fe010e73680f12b0b5147 = α;
1225+ af32114b8b970d1d65271ed99052f0de3d4651eb = α;
1226+ af412e3bcac064293cc367941ad02eddcc3e5a44 = α;
1227+ af915ecf45e7ce1cfbc694f16a90c5131e953240 = α;
1228+ afad2bca0d8075378f5239206210c90bc449f66d = α;
1229+ afb2a10bcf6c13c0cfc4506cce58b6a4e8a8741d = α;
1230+ afb9d2946f9c3633fb9df0e2acc0f5a2cb5a7753 = α;
1231+ afc1c36f600c80efcf810f3f49289880b32ab502 = α;
1232+ afd3591b1c847bb2dca52c7bab74b7f00043a210 = α;
1233+ aff26a6b13744512c90c853c58676ace9431b24a = α;
1234+ affb2ac1292b281f85114871becaf2e7a7adfa7e = α;
1235+ b05b1e539b6610459cb8b45e8d0b48d4de00fa44 = α;
1236+ b08e33bfe04cad899bb61fb3d822e79b9203df59 = α;
1237+ b0ad17ab6dad98419386251c9553b4a5d0a73fad = α;
1238+ b0b3d44fba913897d01ea2ef6e8089c64f988ac6 = α;
1239+ b0f0802f90e19b137dfc3482c478ce06deda9019 = α;
1240+ b10f9ee97120ca6711610befa4e7fab7977b88e9 = α;
1241+ b1554d1196eebddea596b1a7274981d7a2670be4 = α;
1242+ b16036ff8aa037d50175f1e65bd5504964b26e9a = α;
1243+ b176340bbc5d5b5bac78f855162c5a3ff0ba19ce = α;
1244+ b176ee25e0ebb7afdb44613dac3f4254dc99ce2a = α;
1245+ b17f3e987930d01e04a825ded615a345c7af5ef7 = α;
1246+ b1bc628c3ffbbceef6e1ef0dfb467b793da712dc = α;
1247+ b1cdfd2a0b486252f482eca80d3408be44b15168 = α;
1248+ b1dfb94e146a98148e1f9ba9a56d7114a84628a8 = α;
1249+ b1f44610d6ce19e42537f436c4bfc70e275b432a = α;
1250+ b20c27d04963b4b8e0c5dcfd81e51dfc59e30db2 = α;
1251+ b24bbd337d9a9cf1085d4cd1df1e43e928749b90 = α;
1252+ b2b40485507860ae0f1ba756693b78123347a60b = α;
1253+ b33175575bd5fbb07b2308fa24fbf8f548763435 = α;
1254+ b33dbe936d08959ce00d8d551c9861052b05a0e3 = α;
1255+ b3643e64562cf8928fe74794820c500f305fac17 = α;
1256+ b386d93988dde07a87de09757eacd3a2ecfd6202 = α;
1257+ b3a267c43c45f392523e300a6f61318f4ae52d99 = α;
1258+ b3ba54dd3b4a9c7c235223aca9ad7d6007559484 = α;
1259+ b3df044bb928c0123e3067b6ca07bc8db2c7c93c = α;
1260+ b4179284c669b70deca0e515159443b89dced17a = α;
1261+ b4411a92ba0b237e9dee0988897930e64daca1a7 = α;
1262+ b44f92d2adf2245433cfea594b8718a8a1d0935a = α;
1263+ b453a1dc5c79a3ef309710fa63d80177fdb4c947 = α;
1264+ b4815536b7d3c4f5a1a07bf7a0a85f780d0a9a8f = α;
1265+ b49270a6fb0733c3b9a3e6627fdc96c5b2b400f7 = α;
1266+ b49b4db86170da54d36c9f77345132f501569443 = α;
1267+ b49ba6bcffb62e7245700758aeb276ae404637e1 = α;
1268+ b4a7011b1f4b663e34e08b5caa1fe927463eb914 = α;
1269+ b4b01b3870e9301073475bb924e5463d76e87c0f = α;
1270+ b5b76e5c16852517072b42a8cb51945d692252b7 = α;
1271+ b5d004587689d2ebd79e34905d174a376e575f5f = α;
1272+ b63ccd1617b08574d0129948ec7ad1e48f94a220 = α;
1273+ b66bb0fd25eed1110f4b97f5f4c3cccd294cb884 = α;
1274+ b66faabd2faed41ddcfaa83fbc45e1c038712800 = α;
1275+ b6774cdd5b050cfcaac3143c0a8f89705c6bde71 = α;
1276+ b6aa88050eb1fb1e9317e28c1342c6ea4ab7dbad = α;
1277+ b6e51c5ce4619cf24deb50699e19457246a65fde = α;
1278+ b751385c56ed5ce096df337d0a736bdb517071c0 = α;
1279+ b76100c79e2052b6a9156a3a3b44dc46b73ba80b = α;
1280+ b774b3a6af176fe17e8988b8ce8aae6fac0081c8 = α;
1281+ b792f771ba89b6e97aa0da38cab7975e31240901 = α;
1282+ b7cac0682cd1b758954a6990731d98ac60e931f4 = α;
1283+ b7d98916d7231a6cc8fa4b5ba6d9a123af873b7c = α;
1284+ b7e5e66ec2b311c32f25563c90d3883eaf9d7f01 = α;
1285+ b8063b5f31f092324c94ccf41e3dbbca020714c6 = α;
1286+ b8147ae4f4e48c66013e2ce160e307bdbf8bb643 = α;
1287+ b8280b60d889420165c4849a608f2f77a636a96e = α;
1288+ b832b94004977756477412eec3019f6cb37e62d1 = α;
1289+ b8394a23db9e6efd8594d13cde39d95e60a2b46d = α;
1290+ b8692885cc79308225c50faa58244e7006dadf91 = α;
1291+ b88c8f32e5693eade30c534bf94f295df40e1d87 = α;
1292+ b8b07927a65a87a42232ceb51c98a8b5d6893348 = α;
1293+ b8ddc52b5bf66003c85e7e259287f4741bfe8119 = α;
1294+ b8e153475935a408d91ca55c8e98030d5cc99ceb = α;
1295+ b8e9ff6bec00725cf169b237001ce72af9342600 = α;
1296+ b8fd57460311ef331feabf98c510f76f80053855 = α;
1297+ b928e6544636d28eb1f1fad8cbfb3a508d6b523b = α;
1298+ b94c9f0d77457d47a979c48f936f9be3c11930e0 = α;
1299+ b955f5ba1db0d7a6f27b22a2a79e008593d687e4 = α;
1300+ b9e5928d9d628a4f6a0795a3f4947e59fd82874e = α;
1301+ ba2567e2e68ba6bc101c3614005d68fd1d0ac2c0 = α;
1302+ ba59a62dae63fc2d143e0cf4c7c65185055b6cfc = α;
1303+ ba6332a94c99ed09c2a9e428e54763da5b1576f9 = α;
1304+ ba6a5b201e1374856d563e960e0a5f7a935cf37d = α;
1305+ ba8f3a342d5ba472b330c322376f9f3d7921dcd3 = α;
1306+ bac3a42148c64a342e3a138e254acfc37baf7f7c = α;
1307+ bad3d27e656261f89d7bfe9409032b1623077a17 = α;
1308+ bb049becabe678eba91b10ef8dceac666811ba85 = α;
1309+ bb258d693db2159bec8923eb69e53769e0082936 = α;
1310+ bb2be5134bddeb480f0a728bd702988afdd4811f = α;
1311+ bb5ab39ad700a8ef35bb3bbd27b4c382839c69ea = α;
1312+ bb77f99554309b937e1c3bc3c0569d3ef0568a00 = α;
1313+ bbb17328cc23f4bf942377d41807a13a7b852229 = α;
1314+ bbcf231dbaac1a61eba6aa76798c72923c7ddc56 = α;
1315+ bbd3ed12cac3a5812ed814525f0d0018011bcd2f = α;
1316+ bbdc2b6ed549549505ee1860ea5068ae5bfc7db2 = α;
1317+ bc249eda4e4d0e13fd0e6a660e8cb471ace80c0a = α;
1318+ bc927fee31049f8467d1a02704ac805cef57cb71 = α;
1319+ bca8b698f2e07aaa627a4e94587fdef669602b23 = α;
1320+ bcb92df46de5890dc5538dd7f0256a6504653c01 = α;
1321+ bcc1b9fa37b696e2b1e09da24ada79401007ef3b = α;
1322+ bcc352fe44e93b30ce97deea8345406542f840d7 = α;
1323+ bcd0cabdfbee7db486a249459af2c96bbe597c9b = α;
1324+ bd11c74bd2655f16eff2974a9ea3299f642a52cf = α;
1325+ bd969e12b2d210ce0b8817860e18034a3a30c510 = α;
1326+ bdd022a7d16d25b6d56f693ab8ddb909273da156 = α;
1327+ be2367fa9ac1bcb508f247e19ea18ae92e277583 = α;
1328+ be250ea55f51ad2bfa64247db8ab7f7ba22bcc99 = α;
1329+ be6492e4410913060da03bbab7fc0ce412e8bb38 = α;
1330+ be6c1ac56f7b742b9f733b29f46549c5b46f7644 = α;
1331+ be8aba4af0c0804bb17d6ce660ccc3973fb6c35d = α;
1332+ bee8e68740f8d36a56d9f09e880ff29b5adf0496 = α;
1333+ bf03069e8d65f6b224763824352cf754ebcbc339 = α;
1334+ bf03cada636a04cf211c2e10d586f47b2dda7902 = α;
1335+ bf30590744b68cebf21b6124ffdccdf6964f7163 = α;
1336+ bf49c9dd965903acaa8c00eba5613c4de5fe0250 = α;
1337+ bf4dda70b776a7efb6c3302f7abb3d24e90652d7 = α;
1338+ bf6954d37d21ccd063ce7829bdbf17a34a5972f6 = α;
1339+ bf920c60bfd2a78e29432783f56c62f419515f85 = α;
1340+ bfed7e9e92de3969ace22aefdf5d85a45b2068c5 = α;
1341+ bff70448477367ce462c3ee06f051b1f047549ad = α;
1342+ c0078092106c7019d3c1a17afb492202a59101b2 = α;
1343+ c007855aa7a0479a01364a56f831920abf69f840 = α;
1344+ c02b5a7580fbfb67eb000c6b641d7431e90ce87f = α;
1345+ c0476a6a0442712d3245a0babbf62c40e8e75b95 = α;
1346+ c05811bfedda9e7307a79810ed22e36c9b1e3639 = α;
1347+ c059220dd6a95113a01bfba79f5ed3d5e1766535 = α;
1348+ c0890e191c0abbf571bc8e71dd0996ecee557a66 = α;
1349+ c0c041729c29323273ff25722a4fde1aa90a2b9a = α;
1350+ c0c56d20bbce88d3e626d132185502535d37ae8c = α;
1351+ c1023e403c67693d0cda4a7067f08cc4868b331f = α;
1352+ c1348ebfc2f62edbbaf065a9987835d16f3faebe = α;
1353+ c1621ab3068dbffadc595d03ef2ca486f7a5d484 = α;
1354+ c16c7518b7bf0b8838fb4ec5d024020f7d7dcd2c = α;
1355+ c18d93c3fb088e46dc560285a889e191b2350e3b = α;
1356+ c1aea1c747a9068d40e613d94eaf43b511d8008c = α;
1357+ c1d09face93090ba4fb6700351d2c5202a35a2f7 = α;
1358+ c25bec168e93ab9183b4187a3172187d41e8b094 = α;
1359+ c260984388b36733a83e5c5a2d1bddf9202de51e = α;
1360+ c28e42653d329ca15b9b65ef130aa7e18df44da4 = α;
1361+ c299da387c827b828bdc3e81fb617c8992d1ffbe = α;
1362+ c2b5d2cc4aa67357f3ee15def8c1d137016f723e = α;
1363+ c2c0e9b8e4352e01ad72f4a6d2ce4e6c0c26878e = α;
1364+ c2d1aa057a438fe3a8996316005b4f584d087df7 = α;
1365+ c3390a1d1d84fd03f5aa0a105422b669c9f6ab91 = α;
1366+ c3a4ce7861427e417e289e118620ba02ecec6995 = α;
1367+ c40ca2cfe00fdc980844d0a02dfb2571b7fe48c3 = α;
1368+ c430a47ee45e5afb9a0831bf2ea38b466b497549 = α;
1369+ c431002fc0e408cf00a8650910c2f4bb3b85df53 = α;
1370+ c461017451f8ce7d5833a200e5d6fa969138fc0f = α;
1371+ c467b9d4b67580014c04e62e822a99d7cd7a6dbb = α;
1372+ c48ea333ebc4208f44ca53ccec1b4a9224234423 = α;
1373+ c4ab35a8f3c52c8999804559d5a506f4a4ea28d6 = α;
1374+ c4ac8e5f2224886f32727c69401d26eaf54e6d17 = α;
1375+ c4d70abc45c0067c48d200a7195e87cb07990867 = α;
1376+ c54921d21c20e7c27fee9dadcf212291b32f32de = α;
1377+ c57259f627108af7691176d6a5ab0a8bdb504fe8 = α;
1378+ c58fa62bd83bf317b52d835b43fe31cb0a5fed9c = α;
1379+ c596e1a5af08148c69666476cb7a935d5b860e04 = α;
1380+ c5f44e9ae34828343c5c6eb3e73c2c451120da78 = α;
1381+ c620a0e05618810252d4b0f8e82fe97a677dde26 = α;
1382+ c63b8b65198dbac3e3764c69e57b85f011332ea1 = α;
1383+ c64839804e94445b7c1ac409d5d0f8f1ea36e54c = α;
1384+ c650d7a313cf559c35793ae4885bfb7ab7e24cd2 = α;
1385+ c653b9ebfd67dfad854b519e55534735d82f73f2 = α;
1386+ c705af8ab47f089acd3efa03df30ad116079209c = α;
1387+ c77e5ef4d0349554ba75af77135182db3577571a = α;
1388+ c78d32aaf4ea80b2746ac7ad1692b021b1b548b7 = α;
1389+ c7945d9532844fa35363f33da23f208a629dbe28 = α;
1390+ c7a7c3acf3dd7cd611ae94f5c86473ecd3a2955b = α;
1391+ c7d451a7ac00e4726f44c4fb551c45dfd4614302 = α;
1392+ c7ea7e43fc1d7ff54a1a54b74c3962098d7851bb = α;
1393+ c7fb09c7cbdf7c014549eb2b9c1345a0f2ac3770 = α;
1394+ c840da0835818272e18eacdd15f50e802453c69c = α;
1395+ c874ee18eb2aefe1e6d4345996da6c6ce2087d43 = α;
1396+ c884f0dbf617ea1c10f5b347fd4f19d3d87befb2 = α;
1397+ c88fb38c74260fca80491abeaa7a26fd116fba25 = α;
1398+ c8fcf9a784756d66ad119b3e642423161380add6 = α;
1399+ c939abca16161626114a6afa440cfb71ae87dc6d = α;
1400+ c93c98cb950c9d8f504bea894ad865f29b9991ec = α;
1401+ c93f0a56e40373b70b8f6cfcd57796df6e3e5d64 = α;
1402+ c9440b326c43f4ba6af0b71b1ca029ae223ecabb = α;
1403+ c946526ac2560a1cf84cb7a63c24bc9994fed050 = α;
1404+ c95cdaed781fb020898a671e373b60aa382404ff = α;
1405+ c96e9cd94a86b222bed132142b65c1d90314445d = α;
1406+ c97e1a685bb16bacc741e943d668230b044da28b = α;
1407+ c9b2fa52f0b68b4de48806e71af562ddd9ab8363 = α;
1408+ c9f7bd390be6e2f50469fcf024ace928b624a38d = α;
1409+ ca146ad3bcc63037df80affd27568080de042fd2 = α;
1410+ ca3317bb9d7ae47177c0d9362f17d53c865d8b92 = α;
1411+ ca72923ffc518f8f79ad2bb67a376e8c4e51c3ff = α;
1412+ ca83db39ca850bdf08a4e3bda07b207534365c24 = α;
1413+ caafa6d602fb6dfd386f6eb601ff8ed2b2e74234 = α;
1414+ cad827e1f1025fed382fad69988e6878edf449bc = α;
1415+ cb540e992bfeed51b40d2faa7209ebc16384c2cc = α;
1416+ cb5e9b0f8eb95171fa01852fb15eabf2845a79f5 = α;
1417+ cb73a430e097bac42d93ec902203b7888ed0b681 = α;
1418+ cb81a778a0190199a4c52ec5e9e3f749c532fdf8 = α;
1419+ cbafcbe19329c889151577a995439d8c09b69f61 = α;
1420+ cbe9427bf8fe34234353780bf7d7188dbd5673af = α;
1421+ cc2764b781992363c5941eb2399962b3dc251c9a = α;
1422+ cc6c17f5d19462048695c62e88e553ff08996aea = α;
1423+ ccb1bc3ca1edbf4177b3c0d1784bfcb61f87daae = α;
1424+ ccbf9e16dbb06aba05b68b87bd827f67b8eac84b = α;
1425+ cd0d52d3a393b848c4524f8d20e9c3d772779d50 = α;
1426+ cd136c8c017886023a62be7a07da35d0a4af997e = α;
1427+ cd20dd95dc2f4e182bbf98e7f0d6a7cd87f10df6 = α;
1428+ cd28a4a14b5471b45eae79e893b8acbc4f7e1f94 = α;
1429+ cd31abaa21b8f9ec03052817bf36f6c16178f5e5 = α;
1430+ cd5ab248342e1a8cf9bd3f635151bfdd3d41ad3b = α;
1431+ ce44b880be5cb6a25056be3c177c866b85aee1d5 = α;
1432+ ce8de3d894102a4bb85d1eaaa271f605239a2fd1 = α;
1433+ ced0e06e0c817a6519c5a995d3ba2743df02ecdf = α;
1434+ ced6c6d11883cd80b95d5f522d9526e6467945e5 = α;
1435+ ceed10f922981467ca264e2f3c1ba9a6834ee9fb = α;
1436+ ceefcb84598a9a4c5ce8d34e749d52d7511a8013 = α;
1437+ cefd87d67f6688e869ab62068aa16c5f02113c8c = α;
1438+ cf4a635ba3a4c070a83394e45c5bae8ef8651afe = α;
1439+ cf5e1ce959a11e3674cc1a7c352dc878022c2eff = α;
1440+ cf784788aae211d789405fe0a7308e059e15627c = α;
1441+ cfaa6e2212f937f340e867175482030d495675ed = α;
1442+ cfc8c6e323848f57580a531e48fc4b81cdd17efd = α;
1443+ cff332b0fe6e7874406db49746b5a2be18f822f5 = α;
1444+ cffe52e7d9b8a547c321247c96a680a061a7c077 = α;
1445+ d00340b56c80a33987bae91b824e43fa883353b9 = α;
1446+ d01535f7276e94b02b13cc27f3966f8867e79101 = α;
1447+ d04d874a8a5abeb10db060dd59e268c16687663b = α;
1448+ d0566c823351a86a79411b3b8d001317aa356284 = α;
1449+ d0916b22915dc03f3e2bae8097e2ad696e7c8f4e = α;
1450+ d0ac4798d087f4f67f533a8d8cc04a7685a380aa = α;
1451+ d110f2213c54503001102b5f9a81fc0743ba32c0 = α;
1452+ d111d246a5dff2d0eed94cb2592bfe277ad9e0ea = α;
1453+ d1450a3f59e35f9d62efa518fa3ecc4e3ce0b0ef = α;
1454+ d165f29f588eae8d8a55d377f73b67973713c670 = α;
1455+ d1a31fc8df90aed8358e255ead086de9df9b8eea = α;
1456+ d1cc40fc311b1fe882b059047a6c7f53925c9827 = α;
1457+ d1e8035d7cb1c18606f75bf22a42e813f926497a = α;
1458+ d25faf54b177d399192ede835440a8eb4948ab59 = α;
1459+ d27c0f6b2f82d4e0112056dc4963a251ad84b3c5 = α;
1460+ d27cda6ec1c697039954ff45ad0d4bc809382324 = α;
1461+ d280f17be242e85379048663a32b3f86bfcd6625 = α;
1462+ d28b2e8946d305dc75d30be04ee1c9bfec7bf72a = α;
1463+ d292729e71bdf7b0dfe9367148d16b19fa7a5da7 = α;
1464+ d2a00e055f1285c1fa4a975781d66bcdc44da301 = α;
1465+ d2dbfcbb4a4a5cb2324c962101ba1ae4ebedc502 = α;
1466+ d2dc1c9128c24c0a330a534ae29cc6ae6beaffc0 = α;
1467+ d324c1434b20b5ef66a2937ab08337f78c5646a0 = α;
1468+ d338b1e7e6160d0f539aa12687e23db81cce61c4 = α;
1469+ d347f6ee6f9955b5ddb428582f0a5694be416663 = α;
1470+ d3603561d5e25d4f17d441b894b6b532ac8ca892 = α;
1471+ d3c4fc80dcded70862e182185119d810e694728f = α;
1472+ d3fa6eb331487a41362af20fc809e610469ecc14 = α;
1473+ d40c0edc4a86159f31ffdeb1c868655892857c27 = α;
1474+ d43babee559c0a43f3cdfe93ac68d127740c7c60 = α;
1475+ d48b4b394816bf765766cfb0de720c2fcf3dbe91 = α;
1476+ d570076bdc206ebe525e4fdc41a05520d5f706fd = α;
1477+ d59bfb566ff92e983f4a66e10ce13ac21e90924d = α;
1478+ d5cc1b80671cb302ce39ef82a91478483444777a = α;
1479+ d5f5f1dab637b46122ba0000804b82a3466d4f57 = α;
1480+ d613d9e9dacb47de3549938a8e516310c73c64bc = α;
1481+ d63c4c238a195e3f8e062b2a9cf0757f0ed55587 = α;
1482+ d657a675c488b3ceece090f664b8b3890c0f72c7 = α;
1483+ d65a42fdc8154793ead3cde82b7ec619bd249478 = α;
1484+ d6c884c9dad1608090dcb5009a5146b5e2cb307d = α;
1485+ d717fddace1fd0e9b4a4b2c78118ebb0c354e35a = α;
1486+ d777e45fe21ea823174bd647cf6817128035cf2d = α;
1487+ d79b515a8ffc174a508593ce109108ecb9e44813 = α;
1488+ d7a56916778ad1fa03472f47ec92e8a9eed66219 = α;
1489+ d7ae2a94509bb8a9d5e77006c5538cd11b721439 = α;
1490+ d7cd467675e181dbeba3cf24443590ebb76f9515 = α;
1491+ d7df186da35e7874ec3096cafd37119085cf5ce5 = α;
1492+ d7eaad8d8e27e59910b9a915de128b42dda290db = α;
1493+ d80b9d2bef36dbe0669cfea717fe30315568ba9a = α;
1494+ d814756dd80360682458cdbeed8859d522418bd2 = α;
1495+ d82a48c7d5dec9cc59dfa1a8ee7298c7e787cee7 = α;
1496+ d841bdc828b7ed9f4a76d474d455264dcaadbe38 = α;
1497+ d852eca7663f1c36dab87cbd527dbfac895faf97 = α;
1498+ d87a6dc2de5d3e0f991324f8edf80b016f15f204 = α;
1499+ d87b8c33d15b51b773c6f091853c54f865561e64 = α;
1500+ d889e4d65d962a36e5839fedc6a70a00ac10fafd = α;
1501+ d8a13d14cf5b0d5bd31f2b05c3b53dbffdedc49c = α;
1502+ d8abbf7642437f66197d216a0eceef1ccce557c9 = α;
1503+ d8f99844942adf5e16059b6743f25804288ee4ca = α;
1504+ d904eb14d805f07ce46163d3b8b20c434fe0db0b = α;
1505+ d92734f6a18a11d0dfbf8c9e12f63f2180c5225d = α;
1506+ d995c76652895e51297226aedf32dd0c715582e3 = α;
1507+ d9a9e14ffd76c4ec3dd9ed97fe543c3169480ecb = α;
1508+ d9b01b6ec88b6bdfbdb3493b4881158a6b4c8d81 = α;
1509+ d9eb718a9365d9af9b6cc77b440a8da1ea6c1bc1 = α;
1510+ d9edee7f1f74e5386558b4a961fca4552e02ed53 = α;
1511+ da1a0a91f4e47865a8becf9da734feefa1851a0e = α;
1512+ da7b12758710d9e2c5869e221e94cef9c9eedfc1 = α;
1513+ da7ba6ca87d1fd789d7ec8278b87f5eb53200dae = α;
1514+ da8b24eeab7203c68fbffbc306797cd5a0ad0a21 = α;
1515+ db0072b27b24bda3fd51a10fdc7e99e0cd839029 = α;
1516+ db0399e0ca29f1327956d92769300c29b37b2b11 = α;
1517+ db1ce685def3bdbdaa34985a4bcc7f9397fe18c5 = α;
1518+ db49a1753cbbba64d471588023c076a11c7f8ed0 = α;
1519+ dbaad381a8fe78e42dee5bc0259045658757985f = α;
1520+ dbd67380af0391a17ceebc816f623b42e665cd2d = α;
1521+ dbe75239cd713a39f272a0de6cac2dfb95039ebb = α;
1522+ dc103daa4b0245c15f666e3b82ee1ca395c26e15 = α;
1523+ dc8af4beee95a25b1c0cab56a5b11a66babc6a87 = α;
1524+ dc999c480c689209d1072c9b4435243a1121150a = α;
1525+ dccb30d618cfef75cf0ac5c9e91b08be0183d1c6 = α;
1526+ dcd771e85d726f704215a4feaa632c6ad6472de7 = α;
1527+ dd2d043a6fefc80a25ca78d62c7e8ac26e471cc5 = α;
1528+ dd37156cd306b8d31089c3a93edede1ffb0d3293 = α;
1529+ dd67559046c4cec3957fcc155765827a5c36dfb2 = α;
1530+ dd6aa88361efd8c13bc630db41c40d185f94dafa = α;
1531+ dd765b2a31ae5ecdd886e1550b3a93dbc11a74ae = α;
1532+ dd8ef40e0195694f7f018da7e80a520807402c9b = α;
1533+ ddad05592e192eebafd8842ac556d92572eef1aa = α;
1534+ ddc5b08945cb44c8aa6434129c3f898bd87a41af = α;
1535+ ddcc2181537ebf3c5cf4ba351f0960b885372aa9 = α;
1536+ ddef4f0acf5f073d28dd6a38c4fa58630d3a68f8 = α;
1537+ ddffea76154050032a408a3890c07633f1ba3b0b = α;
1538+ de0049c6936b76d5da37bb69dd25ac91e83514c3 = α;
1539+ de01c69dad3bc654ab534e5eedcd2b8374f2a2e0 = α;
1540+ de04f7b02c49aa87b2b6da18c62a5ff36858352c = α;
1541+ de2d73029d96c42d88f7765a10be8b6af0007eb8 = α;
1542+ de40a1a3ef4f09ae9523868d74d8cc9af2745ec8 = α;
1543+ de6a3578fbc96909e587a897c860f56738c9a027 = α;
1544+ de7be9bd446cca2c3d817d2f1d7042e9a6f27378 = α;
1545+ dea23be7b0f4c3aec67d1c95e616bc04d4e99100 = α;
1546+ debdde2d089368f9ec40b6d50aed4cab14a4e785 = α;
1547+ debfd2113b48ed4529163d952262d80fe8cc11f1 = α;
1548+ df2925eb96fbc24fb45e29b8553772c650ff8c53 = α;
1549+ df3e6640f45ebf0909095b9ae74a7cb7404e447d = α;
1550+ df4ccc222a9b196a9484691be86f2d14462b2357 = α;
1551+ df5437931a8964c846c6c9377f381c0213082e22 = α;
1552+ df54fb21975e218c1da9d209d52b225e78430abf = α;
1553+ df6d4711f83f1c570af30ec97dd418f0664398b5 = α;
1554+ df7074a5b6e12f2c024e07d5dd9fdcd863f0553a = α;
1555+ df877ce5674ccd5af752d839ce7729c724750815 = α;
1556+ dfd7ec76ea282f899f489dcf84e86c17e2d5176b = α;
1557+ dfdacbcbdca178e9cf577d37637399e02c80c006 = α;
1558+ e002d0958c673752ae43a0801b444a2ce1624b4a = α;
1559+ e02e3dbebd645b7ffc82cb42b41d79fd60a268cd = α;
1560+ e03589b69f1b5cdf2431809897f2a1287d4d1db2 = α;
1561+ e0a272e2ea952c9c27d010098f6ed3be34d70023 = α;
1562+ e0a2c1da63edd46fd58df91cebed0a6ba9d4e2ba = α;
1563+ e0b52177b69db23587e60178455553700fca7a3e = α;
1564+ e0da56b57fd7c9eadf21a0c6bcaa75267e6eddd0 = α;
1565+ e10e19c255056c096d6105cfbff767f6749ffeea = α;
1566+ e119a785ae743089d9760220e95431e5b5a828c3 = α;
1567+ e18cf443cf050171be2dafbb7847b1eef470d743 = α;
1568+ e1a0aba6fa5c1c2bd71eb9f8b6fa3b6bd0c08378 = α;
1569+ e1a2109b7b2cea0b5a275ee93d3ec4dd15bda288 = α;
1570+ e1fb2b61f5ab2e0ded49292c3ba53d25ee0e31d4 = α;
1571+ e214f8d9834372bc3a68863ed9b25f6d3468aab6 = α;
1572+ e2e2347e195fcb6908121d1d8252b675c0225733 = α;
1573+ e2f498b239aa783a65b663c31fbe397e04857c5f = α;
1574+ e2f8447f74d7ae894d6ebc37fd1de2b774b15bb2 = α;
1575+ e2ff2a15b3b4f835c8275051591b9d4de07df86b = α;
1576+ e3adc0e94fdc76e94c4297ae60dc8b7678ff6d13 = α;
1577+ e3e99323ec9693b9c6beafc30a7c439d27d51019 = α;
1578+ e3f2410485eaec849a562752ca8348217b12f390 = α;
1579+ e412f545b4a58b60e62cd1dcf57ca25871356b05 = α;
1580+ e4328c9505893ca9157deacf1baf1aea7d01f8d4 = α;
1581+ e458507f455e3bac9232d632426fc4b75f29841d = α;
1582+ e465c13305ee8aa9186e587aed90d1007e5b31e7 = α;
1583+ e4770351a3cb31df020fd6bff26ce03237621428 = α;
1584+ e4db89beb65b004392150dc83a65a28ea62cb155 = α;
1585+ e4e9b76a89d03aea789e6df7b7dcbc13cc7ca8cf = α;
1586+ e4fa82ded20830726a04678904111f9fa6f26954 = α;
1587+ e50119c064462a0e056574db4e21f359f7f0c159 = α;
1588+ e5146f66274a1f5409227f94447af2a1f4bfafd9 = α;
1589+ e55d8897009789617d8b961ae3c6c1d00a845bb3 = α;
1590+ e5e8a89007ed0e73685f9b0366b1eedf31f4c1e8 = α;
1591+ e62a73c1c93258f0b94c3cc46e35318469afe84e = α;
1592+ e65191a9b59946c7f04782468840b7352ab5c96b = α;
1593+ e67a9dfa527d0eeb0ed24ef9d5e22b41baa25251 = α;
1594+ e6a8b07d1017a517555ae184a3ce22fa2b948c72 = α;
1595+ e6b8c05e76abc49f7a2264f2b95199b825fa851c = α;
1596+ e6fda4b3f8fe12c3bbe8ccf91bdcc8d759ea1ea2 = α;
1597+ e70061ffc85b6027a648cac0b1c8c6ef7d4e3106 = α;
1598+ e70429fd818fe983008a06e931d39724ea7a382c = α;
1599+ e76c34cb7cbdb14d92e415c4af5ccdc344c4c58d = α;
1600+ e77064e9ba8339459d66bc680e55880bbcc5991f = α;
1601+ e7808a43acaf99637e43857c76760d74f77d6ae5 = α;
1602+ e7a4ddc64af2a43bf5c7d439244636d60a7dae07 = α;
1603+ e7fdcefcd4a8853ab010e1eb4f2d88b5bd9726a9 = α;
1604+ e85ad2ef6896adbbc28a46b023af6b64deb29b88 = α;
1605+ e89e8d979ec25d6a66f7a72b8390aaa876cb54b2 = α;
1606+ e902a543218c50ffc9cd9a41bd8d53d0df1939c2 = α;
1607+ e997f5bba3b4d4b283427ec3ca644a876f6dee7d = α;
1608+ e9a64dd557215b53134c33355716c8a4bd1e22f7 = α;
1609+ e9b508ed95c44a9c9e0d979b1ae02f7dcd5590a6 = α;
1610+ e9c7b3390ef65a90310c9cd4a97594bff007303c = α;
1611+ e9cec016ae177e586ef08f408aec2f7c4de9afdc = α;
1612+ e9d6f32dcb7a670874503cb3cb5d73fd9cb09cb2 = α;
1613+ e9f10cc1fed35407864f324f08f3c9fcb5a2847f = α;
1614+ ea58f8314459f7bf1d36a672ccc1f2c60c4e0eba = α;
1615+ ea7cb20f21cb971f2f7da29210e7bba16e97a53f = α;
1616+ eaceaa2d359d151c5394522df962ce393938a21b = α;
1617+ eaea434c65e3ccf8cec643ea1ec391bdddbc6fac = α;
1618+ eb24d02e3515e1a1c0df3b6323b5ba9b795e16e3 = α;
1619+ eb942c482591c680356ad05c627b9153756a5c8a = α;
1620+ ebb51925dec18058068c3d6ba8d32c6bd5d8f5a8 = α;
1621+ ebcdbd3113ce1b1b12aba710b9ed475f2b77bf74 = α;
1622+ ebf62a48af4d0a972019aca5d8365670d7260bdd = α;
1623+ ebf8732591def396954f78bf472667f690877f95 = α;
1624+ ec13b2ec5777dbbd7c22e1e2bdcb3e127496b370 = α;
1625+ ec35da884d7ee63a6b73a14153ebc0ef84e83072 = α;
1626+ ec59e3143dfd3d4c018548a31a6481bc3f9e1137 = α;
1627+ ec5de1727c79fc933c910e364d19af5e7ebcbf99 = α;
1628+ ec6d576df884aeea2ed37256df7caa8cc8040d6e = α;
1629+ ecee7a937781e9f7f6528b7bf03dd4cdc12bbd1a = α;
1630+ eceee0a55c343bdc9f43a6d2a6e1f7ae7429da77 = α;
1631+ ed023b655c8dbac838b64bf7e6103b7e9d563ad0 = α;
1632+ ed23ade7aa2af09963a993ee53ab33389aae2e80 = α;
1633+ ed2c9b990f683ecb84050df89e925e9f65e3883f = α;
1634+ ed384e6a16f79979d70b9926060a68eeb610de53 = α;
1635+ ed8d4fee989f83055b4947da8ddd5639f8168782 = α;
1636+ edcad0b0c2862c776fa60784960b9a3a8b3ce6ef = α;
1637+ edd66f69f77a99b2383d34436d6be71565769a43 = α;
1638+ ee33cb45be04ea08ab507a4058d81bcdd1da7746 = α;
1639+ ee8662030dbca92bd70af3ba1550ece5c275d13e = α;
1640+ eeaa24c1e61cc4b0806496b256349c44f84c02bc = α;
1641+ eef24b0bf5f818f43c64498f50e0a79f5b683883 = α;
1642+ eef376599acf8af872a7ecceb89b8afc1dc53cca = α;
1643+ ef8182b6df585c7dd91f05618e06fd8ee15be5f3 = α;
1644+ ef923ee8da67064c7a03f02651b14c309db14a3c = α;
1645+ efd4413cfd5173a82811ede79b4a13bad5f6a450 = α;
1646+ efd812740856e722b88087211add0e268de83d7a = α;
1647+ efe81a03fc4e327388573f361faff5b233243834 = α;
1648+ eff7dae5ebb303e1c5f823e0de1accf1075e8402 = α;
1649+ f0263ddc2018e02536d900df1e275809633e73a5 = α;
1650+ f04bb0803c834328c048cff05056081b1d0e8120 = α;
1651+ f0887df1b56e17573badb6af33d52f7ec6fb6138 = α;
1652+ f0ae004e1cc9e390958b1988391d02b9c74849c3 = α;
1653+ f0d6a898c18d4750e572c04c2dc290f0628f238c = α;
1654+ f13495e23590f813c800280c335b159a2f568a9d = α;
1655+ f1372e2ede9021ff61444ea132b18024ee271b60 = α;
1656+ f13adaffef53d65d806c3eb02f96c6c7f0ac7272 = α;
1657+ f14abb295c0159f6c8c07119ef3cd201b5062479 = α;
1658+ f18da05b89b485f1870ff2b88125f3c1511f8805 = α;
1659+ f199d69df437b77400f96b6d2d4f02360535404c = α;
1660+ f1e035fa0d8b44b2b3aeb9958e9dea3862744d82 = α;
1661+ f2374c3116e4d1fae6b4cbd246c9033e282a6c10 = α;
1662+ f24d05b616e3f50a24367e32f8c42d68d40797a3 = α;
1663+ f268daf62521a638834ffec5779bd359e0ffe63d = α;
1664+ f279ae70e30f66de7b592409e9ed96993301657f = α;
1665+ f286035c2605a855fb9dda2fc06bb71648b1dbe6 = α;
1666+ f288cbb85cc9eecfcf90abe6376c32c54435f879 = α;
1667+ f2c0ebdd94707b207218226a42b19201386b9713 = α;
1668+ f2cc42adcfafd68a62e7d1b7e6af4e4968c0be10 = α;
1669+ f2dfdcb3b2d9423b17c83e2bf5fea37b9bee4681 = α;
1670+ f2e462f932cdcf953218a6d7c9cf6aeebf7dbfe4 = α;
1671+ f32b43ead099376849798c829e67335923b6f5df = α;
1672+ f3543f8286961b827b3ed3afa8f7663b98d38b90 = α;
1673+ f355e6bd836583380c61a5ed5a0c5d6150fe7542 = α;
1674+ f380b2adccc3afba7a9a9a501560525a8359a651 = α;
1675+ f38889741341129aaa57f66f2c36e093673c46ea = α;
1676+ f3a58411dee61c2a7993eb792fffd09b343e42eb = α;
1677+ f441f0d4f281e728c3ca0c5b5f0e5838637eefba = α;
1678+ f44c1c4d05656c9a8e943d8738705031cef49e0b = α;
1679+ f4569ad2ff2b2fc1e09a93d172caa5084bdfe887 = α;
1680+ f49df27b644738c41a183cbea4451a65d6ed937d = α;
1681+ f4ac5ca56e38b43436485f6d2a480e5bc47d1e3c = α;
1682+ f4b57562abffd4d02b186411d743d78de996f9c1 = α;
1683+ f4e5c321293ab07639b720b5f3c43e81d2476f5d = α;
1684+ f4f360f81e0fe0c3b19ba2e927c0edf2ca16dd74 = α;
1685+ f4f52945149f9b540099572fcd29c911f8f8fc18 = α;
1686+ f51cdb5d1eca4ab02befd826a9ff14a8d168ba9d = α;
1687+ f56a72b63003eb41d4300d8b2b39b21f53acfc8c = α;
1688+ f56edcc07a586e9b6792c219e9e8eca444362bfa = α;
1689+ f5a791771dabe2848c00de5551dea8e2ec534cc5 = α;
1690+ f5a8823af793b1af1d0d25d57df351ef32bf3d40 = α;
1691+ f5d3ceb33b27c7cfc4a8e4689a6b49f594aea8e3 = α;
1692+ f602c209a799d0cc6814312718f806f70e09062b = α;
1693+ f65aee70832fe31db72589b465574d372fa46ea9 = α;
1694+ f6efa02b7fe9e154763f4e74a2d13e6016651478 = α;
1695+ f6fadd3d388c12b5d7246b025244646c62920fdc = α;
1696+ f6fdc33805bc89e2eaff8003a996f6bf8f880789 = α;
1697+ f7301b809afdfc0f640f1ae1c5683ff024e82766 = α;
1698+ f7543772618d958884a94ad5d6a90a39de6049c2 = α;
1699+ f7a44be87cd8b2cc22a5c6580998902cd597ffac = α;
1700+ f7f52ad80e2bfa86c133febe8231fb1c1f321c68 = α;
1701+ f7ff067e31d48918ce41494b39f2f30c48890e55 = α;
1702+ f82d0258fa61f3050a7ec0c48a72a14882f4f9ff = α;
1703+ f859df604a7deb221be8fb75f5eabac9a4518834 = α;
1704+ f859fcf20b1d5912f1dd1fba6f9bd4393a014968 = α;
1705+ f8a7fca733ca940a07647121bde451787b5afb66 = α;
1706+ f8deb83eeba474abd3c4332328d32de585f40d2e = α;
1707+ f938e9fb108c5df460b316ad63f8e4d43de264a9 = α;
1708+ f9b69d517e1417f8099af43fbb448801dd00c40d = α;
1709+ f9c0960de898d46640b7767a29c2119310539a4c = α;
1710+ fa0f4ef2e4265e7a8b79791ead562e32bf436c05 = α;
1711+ fa392f24144f8018b8a29676f4cae4fe188e7a7b = α;
1712+ fa3c3cf43525a5cf7e63f9b4de6d7441a0e826af = α;
1713+ fab186b2b42815a73845c32093d591f8d4623f0a = α;
1714+ fab30d459fc6efe51b656ac70e86c70a8772e5ae = α;
1715+ fac6370a5441886d40a7aa7b4494da0c3304b397 = α;
1716+ fb092729cca1243487ce2f17b83e612ee2e645f0 = α;
1717+ fb175aabdcfafb6d77b5b7bad0de2c37cbabac81 = α;
1718+ fb4d3c4309ce988d3ebc299d517c232e83fdfe7b = α;
1719+ fb634cba7663cb05cb4751272114071ba34cc677 = α;
1720+ fb807fd862137423f4c6611e8ee553e2b04a62e7 = α;
1721+ fb8b95b64656d46eb01aeb66dc7607697828e39f = α;
1722+ fbc4c9072ed5c93f777e5f6fe6f43486862fa0b8 = α;
1723+ fc571a1d0a7202a062ecd269c06a2308ab378cb4 = α;
1724+ fc71358f88c1a01c32f496b064386dba3145a36a = α;
1725+ fc72803a9439e161de25108be11e5429ed900f77 = α;
1726+ fc7b29cbf72c69bffecb661d7345ac5be329c14d = α;
1727+ fc97754c9af277910c57351443a42a210b2eb8a2 = α;
1728+ fc9d37a2c0ab6854c6b039c509d86b9459982472 = α;
1729+ fcaba3584b9391b167f49dfe53afe253623ada36 = α;
1730+ fd441937ce92861563e4bd9e3619d5d9cdf73a55 = α;
1731+ fd44fdad76da5efbaf3bced1a5d2bf12eb028b35 = α;
1732+ fd521968de6928ff3ba9e7a3568d3190fc56573a = α;
1733+ fd5c39fee72ecaed24e8e462a4a71a69c06e4509 = α;
1734+ fd621bb2eef661c744d767a89b7b835495af2a90 = α;
1735+ fd63513879784b9901479056b82fc51c57ba8666 = α;
1736+ fd8eb71773dfc69f5da73a588a9487e8155eb7d9 = α;
1737+ fd9f084abed9009fd3d7585637980961e5ac37c9 = α;
1738+ fdb6c138bd7f73ccfc7a2324408b8199fe18c5c8 = α;
1739+ fdddaa298c770236e8e0ae3fa46d56ab464ff590 = α;
1740+ fdea9eb5b7adc1f8cdca84ff533afa9978bc74e2 = α;
1741+ fe108abb775ce219aed6c508fa1d8d9ec9710c50 = α;
1742+ fe26cc5b44599296ab8cca48bf52350d32f5ccf3 = α;
1743+ fe2fd0043d9dceb3bd974fd46a7f657222f0068f = α;
1744+ fe34956f65e0611aa1584ca611b7843e22e3e29f = α;
1745+ fe39e5851d68399087d05d9c22da12a1fdd7b6de = α;
1746+ fe79883294e7b730b4ea0e6e72c662ced28e999b = α;
1747+ fe7abbfa12319d22b0735b908af92eafc25d27a2 = α;
1748+ fe94f39680410922eeef278b013e20b5ee27e7fe = α;
1749+ fecddbf47598e42c13644ce42253e7ca8178eb29 = α;
1750+ fed2a12f5d40235d6295fed1092707889ff01b08 = α;
1751+ ff38188923ffc7c35c9b2e533f2ce6f3a9aa3a3d = α;
1752+ ff61432b09f3c5882ed0f5f932a0537f38cde5cf = α;
1753+ ff648984dc86f826cc03f174f5a1b26e33268529 = α;
1754+ ff66ba394c099b33decda558509ec6f4fdb43892 = α;
1755+ ffcb54fe4e2f0e1ee2f22f84cff4ddc49da010f1 = α;
1756+ ffd25a14ee418633d47a558d3a953c501f56e2f3 = α;
1757+ ffe1832c9002fb490bd976e6906fe43792e2e487 = α;
1758+ ffe4b29f6febe2e6345b292bd341aefed751ae1d = α;
1759+}
test/golden/importless/cffi-grovel.txtnew file+18
@@ -0,0 +1,18 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.babel = γ,
4+ β.cffi = γ,
5+ β.cffi-toolchain = γ,
6+ β.fetchurl = {sha256 = String; url = String;} -> δ,
7+ β.trivial-features = γ
8+) =>
9+β ->
10+{ asdFilesToKeep = [String];
11+ baseName = String;
12+ deps = [γ];
13+ description = String;
14+ overrides = ∀ α. α -> α;
15+ packageName = String;
16+ src = δ;
17+ version = String;
18+}
test/golden/importless/cffi-toolchain.txtnew file+17
@@ -0,0 +1,17 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.babel = γ,
4+ β.cffi = γ,
5+ β.fetchurl = {sha256 = String; url = String;} -> δ,
6+ β.trivial-features = γ
7+) =>
8+β ->
9+{ asdFilesToKeep = [String];
10+ baseName = String;
11+ deps = [γ];
12+ description = String;
13+ overrides = ∀ α. α -> α;
14+ packageName = String;
15+ src = δ;
16+ version = String;
17+}
test/golden/importless/cffi.txtnew file+20
@@ -0,0 +1,20 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.babel = γ,
4+ β.cl-json = γ,
5+ β.cl-ppcre = γ,
6+ β.fetchurl = {sha256 = String; url = String;} -> δ,
7+ β.trivial-features = γ,
8+ β.uiop = γ
9+) =>
10+β ->
11+{ asdFilesToKeep = [String];
12+ baseName = String;
13+ deps = [γ];
14+ description = String;
15+ overrides = ∀ α. α -> α;
16+ packageName = String;
17+ parasites = [String];
18+ src = δ;
19+ version = String;
20+}
test/golden/importless/chacha.txtnew file+42
@@ -0,0 +1,42 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = γ;
5+ configureFlags = [String];
6+ configureScript = String;
7+ enableParallelBuilding = Bool;
8+ makeFlags = [String];
9+ meta =
10+ { description = String;
11+ homepage = String;
12+ license = δ;
13+ maintainers = [ε];
14+ platforms = [String];
15+ priority = Number;
16+ };
17+ nativeBuildInputs = [ζ];
18+ outputs = [String];
19+ pname = String;
20+ postFixup = String;
21+ postInstall = String;
22+ setOutputFlags = Bool;
23+ src = η;
24+ version = String;
25+ } ->
26+ θ,
27+ β.licenses = ι,
28+ κ.optional = Bool -> λ -> γ,
29+ μ.optionals = Bool -> [String] -> [String],
30+ ι.openssl = δ,
31+ ν.maintainers = ξ,
32+ ξ.cstrahan = ε
33+) =>
34+{ cryptodev = λ;
35+ fetchFromGitHub =
36+ {owner = String; repo = String; rev = String; sha256 = String;} -> η;
37+ perl = ζ;
38+ stdenv = α;
39+ withCryptodev = Bool;
40+ zlib = ζ;
41+} ->
42+θ
test/golden/importless/channel.txtnew file+10
@@ -0,0 +1,10 @@
1+∀ α β γ δ ε ζ η θ.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ γ.cleanSource = ε -> ζ,
6+ γ.mkAfter = String -> η,
7+ δ.path = ε,
8+ δ.runCommand = String -> {preferLocalBuild = Bool;} -> String -> θ
9+) =>
10+α -> {boot = {postBootCommands = η;};}
test/golden/importless/check-plugin.txtnew file+36
@@ -0,0 +1,36 @@
1+∀ α β γ δ ε ζ η θ ι κ λ.
2+( α.lib = β,
3+ γ.buildPythonApplication =
4+ { checkInputs = [δ];
5+ checkPhase = String;
6+ meta =
7+ { description = String;
8+ homepage = String;
9+ license = ε;
10+ maintainers = [ζ];
11+ };
12+ name = String;
13+ nativeBuildInputs = [η];
14+ patches = [String];
15+ prePatch = String;
16+ propagatedBuildInputs = [δ];
17+ src = θ;
18+ version = String;
19+ } ->
20+ ι,
21+ γ.nose = δ,
22+ β.licenses = κ,
23+ β.lovesegfault = ζ,
24+ β.maintainers = λ,
25+ κ.mit = ε
26+) =>
27+{ beets = η;
28+ fetchFromGitHub =
29+ {owner = String; repo = String; rev = String; sha256 = String;} -> θ;
30+ flac = δ;
31+ liboggz = δ;
32+ mp3val = δ;
33+ pythonPackages = γ;
34+ stdenv = α;
35+} ->
36+ι
test/golden/importless/check_ssl_cert.txtnew file+29
@@ -0,0 +1,29 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { makeFlags = [String];
5+ meta = {description = String; license = γ; platforms = δ;};
6+ nativeBuildInputs = [ε];
7+ patches = [ζ];
8+ pname = String;
9+ postInstall = String;
10+ src = η;
11+ version = String;
12+ } ->
13+ θ,
14+ β.licenses = ι,
15+ β.platforms = κ,
16+ ι.gpl3 = γ,
17+ κ.all = δ
18+) =>
19+{ curl = λ;
20+ fetchFromGitHub =
21+ {owner = String; repo = String; rev = String; sha256 = String;} -> η;
22+ fetchpatch = {sha256 = String; url = String;} -> ζ;
23+ file = μ;
24+ makeWrapper = ε;
25+ openssl = ν;
26+ stdenv = α;
27+ which = ξ;
28+} ->
29+θ
test/golden/importless/checkup.txtnew file+33
@@ -0,0 +1,33 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { installPhase = String;
5+ meta =
6+ { description = String;
7+ homepage = String;
8+ license = γ;
9+ maintainers = [δ];
10+ platforms = ε;
11+ };
12+ patchPhase = String;
13+ pname = String;
14+ src = ζ;
15+ version = String;
16+ } ->
17+ η,
18+ β.etu = δ,
19+ β.licenses = θ,
20+ β.maintainers = ι,
21+ β.platforms = κ,
22+ θ.gpl3 = γ,
23+ κ.unix = ε
24+) =>
25+{ curl = λ;
26+ fetchFromGitHub =
27+ {owner = String; repo = String; rev = String; sha256 = String;} -> ζ;
28+ findutils = μ;
29+ gnugrep = ν;
30+ gnused = ξ;
31+ stdenv = α;
32+} ->
33+η
test/golden/importless/chipz.txtnew file+11
@@ -0,0 +1,11 @@
1+∀ β γ.
2+(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
3+{ asdFilesToKeep = [String];
4+ baseName = String;
5+ deps = ∀ α. [α];
6+ description = String;
7+ overrides = ∀ α. α -> α;
8+ packageName = String;
9+ src = γ;
10+ version = String;
11+}
test/golden/importless/chrome-gnome-shell.txtnew file+34
@@ -0,0 +1,34 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.services = ε,
6+ γ.mkEnableOption = String -> ζ,
7+ γ.mkIf =
8+ η ->
9+ { environment =
10+ { etc =
11+ { chromium/native-messaging-hosts/org.gnome.chrome_gnome_shell.json =
12+ {source = String;};
13+ opt/chrome/native-messaging-hosts/org.gnome.chrome_gnome_shell.json =
14+ {source = String;};
15+ };
16+ systemPackages = [θ];
17+ };
18+ nixpkgs = {config = {firefox = {enableGnomeExtensions = Bool;};};};
19+ services = {dbus = {packages = [ι];};};
20+ } ->
21+ κ,
22+ γ.teams = λ,
23+ δ.chrome-gnome-shell = θ,
24+ ε.gnome3 = μ,
25+ μ.chrome-gnome-shell = ν,
26+ ν.enable = η,
27+ λ.gnome = ξ,
28+ ξ.members = ο
29+) =>
30+α ->
31+{ config = κ;
32+ meta = {maintainers = ο;};
33+ options = {services = {gnome3 = {chrome-gnome-shell = {enable = ζ;};};};};
34+}
test/golden/importless/chrootenv.txtnew file+62
@@ -0,0 +1,62 @@
1+∀ θ ι κ λ μ ν ξ ο π.
2+( θ.licenses = ι,
3+ θ.linux = κ,
4+ θ.maintainers = λ,
5+ θ.mog = μ,
6+ θ.platforms = ν,
7+ ι.asl20 = ξ
8+) =>
9+{ buildFHSUserEnv =
10+ { extraInstallCommands = String;
11+ meta =
12+ { description = String;
13+ homepage = String;
14+ license = ξ;
15+ maintainers = [μ];
16+ platforms = κ;
17+ };
18+ multiPkgs =
19+ ∀ α β γ δ ε ζ η.
20+ ( α.git = β,
21+ α.python3 = γ,
22+ α.zlib = β,
23+ β.pkgs = δ,
24+ γ.override =
25+ { packageOverrides =
26+ (ε.callPackage = String -> {} -> ζ) => ε ->
27+ η -> {platformio = ζ;};
28+ } ->
29+ β,
30+ δ.bottle = β,
31+ δ.pip = β,
32+ δ.platformio = β,
33+ δ.setuptools = β
34+ ) =>
35+ α -> [β];
36+ name = String;
37+ runScript = String;
38+ targetPkgs =
39+ ∀ α β γ δ ε ζ η.
40+ ( α.git = β,
41+ α.python3 = γ,
42+ α.zlib = β,
43+ β.pkgs = δ,
44+ γ.override =
45+ { packageOverrides =
46+ (ε.callPackage = String -> {} -> ζ) => ε ->
47+ η -> {platformio = ζ;};
48+ } ->
49+ β,
50+ δ.bottle = β,
51+ δ.pip = β,
52+ δ.platformio = β,
53+ δ.setuptools = β
54+ ) =>
55+ α -> [β];
56+ } ->
57+ ο;
58+ fetchFromGitHub =
59+ {owner = String; repo = String; rev = String; sha256 = String;} -> π;
60+ lib = θ;
61+} ->
62+ο
test/golden/importless/chunga.txtnew file+14
@@ -0,0 +1,14 @@
1+∀ β γ δ.
2+( β.fetchurl = {sha256 = String; url = String;} -> γ,
3+ β.trivial-gray-streams = δ
4+) =>
5+β ->
6+{ asdFilesToKeep = [String];
7+ baseName = String;
8+ deps = [δ];
9+ description = String;
10+ overrides = ∀ α. α -> α;
11+ packageName = String;
12+ src = γ;
13+ version = String;
14+}
test/golden/importless/circular-streams.txtnew file+22
@@ -0,0 +1,22 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.babel = γ,
4+ β.cffi = γ,
5+ β.cffi-grovel = γ,
6+ β.cffi-toolchain = γ,
7+ β.fast-io = γ,
8+ β.fetchurl = {sha256 = String; url = String;} -> δ,
9+ β.static-vectors = γ,
10+ β.trivial-features = γ,
11+ β.trivial-gray-streams = γ
12+) =>
13+β ->
14+{ asdFilesToKeep = [String];
15+ baseName = String;
16+ deps = [γ];
17+ description = String;
18+ overrides = ∀ α. α -> α;
19+ packageName = String;
20+ src = δ;
21+ version = String;
22+}
test/golden/importless/cl-aa.txtnew file+11
@@ -0,0 +1,11 @@
1+∀ β γ.
2+(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
3+{ asdFilesToKeep = [String];
4+ baseName = String;
5+ deps = ∀ α. [α];
6+ description = String;
7+ overrides = ∀ α. α -> α;
8+ packageName = String;
9+ src = γ;
10+ version = String;
11+}
test/golden/importless/cl-annot.txtnew file+11
@@ -0,0 +1,11 @@
1+∀ β γ δ.
2+(β.alexandria = γ, β.fetchurl = {sha256 = String; url = String;} -> δ) => β ->
3+{ asdFilesToKeep = [String];
4+ baseName = String;
5+ deps = [γ];
6+ description = String;
7+ overrides = ∀ α. α -> α;
8+ packageName = String;
9+ src = δ;
10+ version = String;
11+}
test/golden/importless/cl-anonfun.txtnew file+11
@@ -0,0 +1,11 @@
1+∀ β γ.
2+(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
3+{ asdFilesToKeep = [String];
4+ baseName = String;
5+ deps = ∀ α. [α];
6+ description = String;
7+ overrides = ∀ α. α -> α;
8+ packageName = String;
9+ src = γ;
10+ version = String;
11+}
test/golden/importless/cl-ansi-text.txtnew file+17
@@ -0,0 +1,17 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.anaphora = γ,
4+ β.cl-colors = γ,
5+ β.fetchurl = {sha256 = String; url = String;} -> δ,
6+ β.let-plus = γ
7+) =>
8+β ->
9+{ asdFilesToKeep = [String];
10+ baseName = String;
11+ deps = [γ];
12+ description = String;
13+ overrides = ∀ α. α -> α;
14+ packageName = String;
15+ src = δ;
16+ version = String;
17+}
test/golden/importless/cl-async-repl.txtnew file+29
@@ -0,0 +1,29 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.babel = γ,
4+ β.bordeaux-threads = γ,
5+ β.cffi = γ,
6+ β.cffi-grovel = γ,
7+ β.cffi-toolchain = γ,
8+ β.cl-async = γ,
9+ β.cl-async-base = γ,
10+ β.cl-async-util = γ,
11+ β.cl-libuv = γ,
12+ β.cl-ppcre = γ,
13+ β.fast-io = γ,
14+ β.fetchurl = {sha256 = String; url = String;} -> δ,
15+ β.static-vectors = γ,
16+ β.trivial-features = γ,
17+ β.trivial-gray-streams = γ,
18+ β.vom = γ
19+) =>
20+β ->
21+{ asdFilesToKeep = [String];
22+ baseName = String;
23+ deps = [γ];
24+ description = String;
25+ overrides = ∀ α. α -> α;
26+ packageName = String;
27+ src = δ;
28+ version = String;
29+}
test/golden/importless/cl-async-ssl.txtnew file+29
@@ -0,0 +1,29 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.babel = γ,
4+ β.bordeaux-threads = γ,
5+ β.cffi = γ,
6+ β.cffi-grovel = γ,
7+ β.cffi-toolchain = γ,
8+ β.cl-async = γ,
9+ β.cl-async-base = γ,
10+ β.cl-async-util = γ,
11+ β.cl-libuv = γ,
12+ β.cl-ppcre = γ,
13+ β.fast-io = γ,
14+ β.fetchurl = {sha256 = String; url = String;} -> δ,
15+ β.static-vectors = γ,
16+ β.trivial-features = γ,
17+ β.trivial-gray-streams = γ,
18+ β.vom = γ
19+) =>
20+β ->
21+{ asdFilesToKeep = [String];
22+ baseName = String;
23+ deps = [γ];
24+ description = String;
25+ overrides = ∀ α. α -> α;
26+ packageName = String;
27+ src = δ;
28+ version = String;
29+}
test/golden/importless/cl-async.txtnew file+28
@@ -0,0 +1,28 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.babel = γ,
4+ β.bordeaux-threads = γ,
5+ β.cffi = γ,
6+ β.cffi-grovel = γ,
7+ β.cffi-toolchain = γ,
8+ β.cl-libuv = γ,
9+ β.cl-ppcre = γ,
10+ β.fast-io = γ,
11+ β.fetchurl = {sha256 = String; url = String;} -> δ,
12+ β.static-vectors = γ,
13+ β.trivial-features = γ,
14+ β.trivial-gray-streams = γ,
15+ β.uiop = γ,
16+ β.vom = γ
17+) =>
18+β ->
19+{ asdFilesToKeep = [String];
20+ baseName = String;
21+ deps = [γ];
22+ description = String;
23+ overrides = ∀ α. α -> α;
24+ packageName = String;
25+ parasites = [String];
26+ src = δ;
27+ version = String;
28+}
test/golden/importless/cl-base64.txtnew file+16
@@ -0,0 +1,16 @@
1+∀ β γ δ.
2+( β.fetchurl = {sha256 = String; url = String;} -> γ,
3+ β.kmrcl = δ,
4+ β.ptester = δ
5+) =>
6+β ->
7+{ asdFilesToKeep = [String];
8+ baseName = String;
9+ deps = [δ];
10+ description = String;
11+ overrides = ∀ α. α -> α;
12+ packageName = String;
13+ parasites = [String];
14+ src = γ;
15+ version = String;
16+}
test/golden/importless/cl-change-case.txtnew file+17
@@ -0,0 +1,17 @@
1+∀ β γ δ.
2+( β.cl-ppcre = γ,
3+ β.cl-ppcre-unicode = γ,
4+ β.cl-unicode = γ,
5+ β.fetchurl = {sha256 = String; url = String;} -> δ,
6+ β.flexi-streams = γ
7+) =>
8+β ->
9+{ asdFilesToKeep = [String];
10+ baseName = String;
11+ deps = [γ];
12+ description = String;
13+ overrides = ∀ α. α -> α;
14+ packageName = String;
15+ src = δ;
16+ version = String;
17+}
test/golden/importless/cl-cli.txtnew file+14
@@ -0,0 +1,14 @@
1+∀ β γ δ.
2+( β.fetchurl = {sha256 = String; url = String;} -> γ,
3+ β.split-sequence = δ
4+) =>
5+β ->
6+{ asdFilesToKeep = [String];
7+ baseName = String;
8+ deps = [δ];
9+ description = String;
10+ overrides = ∀ α. α -> α;
11+ packageName = String;
12+ src = γ;
13+ version = String;
14+}
test/golden/importless/cl-colors.txtnew file+18
@@ -0,0 +1,18 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.anaphora = γ,
4+ β.fetchurl = {sha256 = String; url = String;} -> δ,
5+ β.let-plus = γ,
6+ β.lift = γ
7+) =>
8+β ->
9+{ asdFilesToKeep = [String];
10+ baseName = String;
11+ deps = [γ];
12+ description = String;
13+ overrides = ∀ α. α -> α;
14+ packageName = String;
15+ parasites = [String];
16+ src = δ;
17+ version = String;
18+}
test/golden/importless/cl-containers.txtnew file+17
@@ -0,0 +1,17 @@
1+∀ β γ δ.
2+( β.asdf-system-connections = γ,
3+ β.fetchurl = {sha256 = String; url = String;} -> δ,
4+ β.metatilities-base = γ,
5+ β.moptilities = γ
6+) =>
7+β ->
8+{ asdFilesToKeep = [String];
9+ baseName = String;
10+ deps = [γ];
11+ description = String;
12+ overrides = ∀ α. α -> α;
13+ packageName = String;
14+ parasites = [String];
15+ src = δ;
16+ version = String;
17+}
test/golden/importless/cl-cookie.txtnew file+24
@@ -0,0 +1,24 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.babel = γ,
4+ β.bordeaux-threads = γ,
5+ β.cl-fad = γ,
6+ β.cl-ppcre = γ,
7+ β.cl-utilities = γ,
8+ β.fetchurl = {sha256 = String; url = String;} -> δ,
9+ β.local-time = γ,
10+ β.proc-parse = γ,
11+ β.quri = γ,
12+ β.split-sequence = γ,
13+ β.trivial-features = γ
14+) =>
15+β ->
16+{ asdFilesToKeep = [String];
17+ baseName = String;
18+ deps = [γ];
19+ description = String;
20+ overrides = ∀ α. α -> α;
21+ packageName = String;
22+ src = δ;
23+ version = String;
24+}
test/golden/importless/cl-css.txtnew file+11
@@ -0,0 +1,11 @@
1+∀ β γ.
2+(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
3+{ asdFilesToKeep = [String];
4+ baseName = String;
5+ deps = ∀ α. [α];
6+ description = String;
7+ overrides = ∀ α. α -> α;
8+ packageName = String;
9+ src = γ;
10+ version = String;
11+}
test/golden/importless/cl-csv.txtnew file+22
@@ -0,0 +1,22 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.cl-interpol = γ,
4+ β.cl-ppcre = γ,
5+ β.cl-unicode = γ,
6+ β.fetchurl = {sha256 = String; url = String;} -> δ,
7+ β.flexi-streams = γ,
8+ β.iterate = γ,
9+ β.lisp-unit2 = γ,
10+ β.named-readtables = γ
11+) =>
12+β ->
13+{ asdFilesToKeep = [String];
14+ baseName = String;
15+ deps = [γ];
16+ description = String;
17+ overrides = ∀ α. α -> α;
18+ packageName = String;
19+ parasites = [String];
20+ src = δ;
21+ version = String;
22+}
test/golden/importless/cl-dbi.txtnew file+23
@@ -0,0 +1,23 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.bordeaux-threads = γ,
4+ β.cl-annot = γ,
5+ β.cl-syntax = γ,
6+ β.cl-syntax-annot = γ,
7+ β.closer-mop = γ,
8+ β.dbi = γ,
9+ β.fetchurl = {sha256 = String; url = String;} -> δ,
10+ β.named-readtables = γ,
11+ β.split-sequence = γ,
12+ β.trivial-types = γ
13+) =>
14+β ->
15+{ asdFilesToKeep = [String];
16+ baseName = String;
17+ deps = [γ];
18+ description = String;
19+ overrides = ∀ α. α -> α;
20+ packageName = String;
21+ src = δ;
22+ version = String;
23+}
test/golden/importless/cl-emb.txtnew file+11
@@ -0,0 +1,11 @@
1+∀ β γ δ.
2+(β.cl-ppcre = γ, β.fetchurl = {sha256 = String; url = String;} -> δ) => β ->
3+{ asdFilesToKeep = [String];
4+ baseName = String;
5+ deps = [γ];
6+ description = String;
7+ overrides = ∀ α. α -> α;
8+ packageName = String;
9+ src = δ;
10+ version = String;
11+}
test/golden/importless/cl-fad.txtnew file+18
@@ -0,0 +1,18 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.bordeaux-threads = γ,
4+ β.cl-ppcre = γ,
5+ β.fetchurl = {sha256 = String; url = String;} -> δ,
6+ β.unit-test = γ
7+) =>
8+β ->
9+{ asdFilesToKeep = [String];
10+ baseName = String;
11+ deps = [γ];
12+ description = String;
13+ overrides = ∀ α. α -> α;
14+ packageName = String;
15+ parasites = [String];
16+ src = δ;
17+ version = String;
18+}
test/golden/importless/cl-fuse-meta-fs.txtnew file+27
@@ -0,0 +1,27 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.babel = γ,
4+ β.bordeaux-threads = γ,
5+ β.cffi = γ,
6+ β.cffi-grovel = γ,
7+ β.cffi-toolchain = γ,
8+ β.cl-fuse = γ,
9+ β.cl-utilities = γ,
10+ β.fetchurl = {sha256 = String; url = String;} -> δ,
11+ β.iterate = γ,
12+ β.pcall = γ,
13+ β.pcall-queue = γ,
14+ β.trivial-backtrace = γ,
15+ β.trivial-features = γ,
16+ β.trivial-utf-8 = γ
17+) =>
18+β ->
19+{ asdFilesToKeep = [String];
20+ baseName = String;
21+ deps = [γ];
22+ description = String;
23+ overrides = ∀ α. α -> α;
24+ packageName = String;
25+ src = δ;
26+ version = String;
27+}
test/golden/importless/cl-fuse.txtnew file+24
@@ -0,0 +1,24 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.babel = γ,
4+ β.bordeaux-threads = γ,
5+ β.cffi = γ,
6+ β.cffi-grovel = γ,
7+ β.cffi-toolchain = γ,
8+ β.cl-utilities = γ,
9+ β.fetchurl = {sha256 = String; url = String;} -> δ,
10+ β.iterate = γ,
11+ β.trivial-backtrace = γ,
12+ β.trivial-features = γ,
13+ β.trivial-utf-8 = γ
14+) =>
15+β ->
16+{ asdFilesToKeep = [String];
17+ baseName = String;
18+ deps = [γ];
19+ description = String;
20+ overrides = ∀ α. α -> α;
21+ packageName = String;
22+ src = δ;
23+ version = String;
24+}
test/golden/importless/cl-hooks.txtnew file+20
@@ -0,0 +1,20 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.anaphora = γ,
4+ β.closer-mop = γ,
5+ β.fetchurl = {sha256 = String; url = String;} -> δ,
6+ β.fiveam = γ,
7+ β.let-plus = γ,
8+ β.trivial-garbage = γ
9+) =>
10+β ->
11+{ asdFilesToKeep = [String];
12+ baseName = String;
13+ deps = [γ];
14+ description = String;
15+ overrides = ∀ α. α -> α;
16+ packageName = String;
17+ parasites = [String];
18+ src = δ;
19+ version = String;
20+}
test/golden/importless/cl-html-parse.txtnew file+11
@@ -0,0 +1,11 @@
1+∀ β γ.
2+(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
3+{ asdFilesToKeep = [String];
4+ baseName = String;
5+ deps = ∀ α. [α];
6+ description = String;
7+ overrides = ∀ α. α -> α;
8+ packageName = String;
9+ src = γ;
10+ version = String;
11+}
test/golden/importless/cl-html5-parser.txtnew file+17
@@ -0,0 +1,17 @@
1+∀ β γ δ.
2+( β.cl-ppcre = γ,
3+ β.fetchurl = {sha256 = String; url = String;} -> δ,
4+ β.flexi-streams = γ,
5+ β.string-case = γ,
6+ β.trivial-gray-streams = γ
7+) =>
8+β ->
9+{ asdFilesToKeep = [String];
10+ baseName = String;
11+ deps = [γ];
12+ description = String;
13+ overrides = ∀ α. α -> α;
14+ packageName = String;
15+ src = δ;
16+ version = String;
17+}
test/golden/importless/cl-interpol.txtnew file+18
@@ -0,0 +1,18 @@
1+∀ β γ δ.
2+( β.cl-ppcre = γ,
3+ β.cl-unicode = γ,
4+ β.fetchurl = {sha256 = String; url = String;} -> δ,
5+ β.flexi-streams = γ,
6+ β.named-readtables = γ
7+) =>
8+β ->
9+{ asdFilesToKeep = [String];
10+ baseName = String;
11+ deps = [γ];
12+ description = String;
13+ overrides = ∀ α. α -> α;
14+ packageName = String;
15+ parasites = [String];
16+ src = δ;
17+ version = String;
18+}
test/golden/importless/cl-jpeg.txtnew file+11
@@ -0,0 +1,11 @@
1+∀ β γ.
2+(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
3+{ asdFilesToKeep = [String];
4+ baseName = String;
5+ deps = ∀ α. [α];
6+ description = String;
7+ overrides = ∀ α. α -> α;
8+ packageName = String;
9+ src = γ;
10+ version = String;
11+}
test/golden/importless/cl-json.txtnew file+12
@@ -0,0 +1,12 @@
1+∀ β γ δ.
2+(β.fetchurl = {sha256 = String; url = String;} -> γ, β.fiveam = δ) => β ->
3+{ asdFilesToKeep = [String];
4+ baseName = String;
5+ deps = [δ];
6+ description = String;
7+ overrides = ∀ α. α -> α;
8+ packageName = String;
9+ parasites = [String];
10+ src = γ;
11+ version = String;
12+}
test/golden/importless/cl-l10n-cldr.txtnew file+11
@@ -0,0 +1,11 @@
1+∀ β γ.
2+(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
3+{ asdFilesToKeep = [String];
4+ baseName = String;
5+ deps = ∀ α. [α];
6+ description = String;
7+ overrides = ∀ α. α -> α;
8+ packageName = String;
9+ src = γ;
10+ version = String;
11+}
test/golden/importless/cl-l10n.txtnew file+32
@@ -0,0 +1,32 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.babel = γ,
4+ β.bordeaux-threads = γ,
5+ β.cl-fad = γ,
6+ β.cl-l10n-cldr = γ,
7+ β.cl-ppcre = γ,
8+ β.closer-mop = γ,
9+ β.closure-common = γ,
10+ β.cxml = γ,
11+ β.fetchurl = {sha256 = String; url = String;} -> δ,
12+ β.flexi-streams = γ,
13+ β.hu_dot_dwim_dot_stefil = γ,
14+ β.iterate = γ,
15+ β.local-time = γ,
16+ β.metabang-bind = γ,
17+ β.parse-number = γ,
18+ β.puri = γ,
19+ β.trivial-features = γ,
20+ β.trivial-gray-streams = γ
21+) =>
22+β ->
23+{ asdFilesToKeep = [String];
24+ baseName = String;
25+ deps = [γ];
26+ description = String;
27+ overrides = ∀ α. α -> α;
28+ packageName = String;
29+ parasites = [String];
30+ src = δ;
31+ version = String;
32+}
test/golden/importless/cl-libuv.txtnew file+19
@@ -0,0 +1,19 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.babel = γ,
4+ β.cffi = γ,
5+ β.cffi-grovel = γ,
6+ β.cffi-toolchain = γ,
7+ β.fetchurl = {sha256 = String; url = String;} -> δ,
8+ β.trivial-features = γ
9+) =>
10+β ->
11+{ asdFilesToKeep = [String];
12+ baseName = String;
13+ deps = [γ];
14+ description = String;
15+ overrides = ∀ α. α -> α;
16+ packageName = String;
17+ src = δ;
18+ version = String;
19+}
test/golden/importless/cl-log.txt+11−1
@@ -1 +1,11 @@
1−∀ β. { fetchurl = { sha256 = String; url = String } -> β } -> { asdFilesToKeep = [String]; baseName = String; deps = ∀ α. α; description = String; overrides = ∀ α. α -> α; packageName = String; src = β; version = String }
1+∀ β γ.
2+(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
3+{ asdFilesToKeep = [String];
4+ baseName = String;
5+ deps = ∀ α. [α];
6+ description = String;
7+ overrides = ∀ α. α -> α;
8+ packageName = String;
9+ src = γ;
10+ version = String;
11+}
test/golden/importless/cl-markdown.txtnew file+20
@@ -0,0 +1,20 @@
1+∀ β γ δ.
2+( β.anaphora = γ,
3+ β.asdf-system-connections = γ,
4+ β.cl-containers = γ,
5+ β.cl-ppcre = γ,
6+ β.dynamic-classes = γ,
7+ β.fetchurl = {sha256 = String; url = String;} -> δ,
8+ β.metabang-bind = γ,
9+ β.metatilities-base = γ
10+) =>
11+β ->
12+{ asdFilesToKeep = [String];
13+ baseName = String;
14+ deps = [γ];
15+ description = String;
16+ overrides = ∀ α. α -> α;
17+ packageName = String;
18+ src = δ;
19+ version = String;
20+}
test/golden/importless/cl-markup.txtnew file+11
@@ -0,0 +1,11 @@
1+∀ β γ.
2+(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
3+{ asdFilesToKeep = [String];
4+ baseName = String;
5+ deps = ∀ α. [α];
6+ description = String;
7+ overrides = ∀ α. α -> α;
8+ packageName = String;
9+ src = γ;
10+ version = String;
11+}
test/golden/importless/cl-mysql.txtnew file+17
@@ -0,0 +1,17 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.babel = γ,
4+ β.cffi = γ,
5+ β.fetchurl = {sha256 = String; url = String;} -> δ,
6+ β.trivial-features = γ
7+) =>
8+β ->
9+{ asdFilesToKeep = [String];
10+ baseName = String;
11+ deps = [γ];
12+ description = String;
13+ overrides = ∀ α. α -> α;
14+ packageName = String;
15+ src = δ;
16+ version = String;
17+}
test/golden/importless/cl-paths-ttf.txtnew file+15
@@ -0,0 +1,15 @@
1+∀ β γ δ.
2+( β.cl-paths = γ,
3+ β.fetchurl = {sha256 = String; url = String;} -> δ,
4+ β.zpb-ttf = γ
5+) =>
6+β ->
7+{ asdFilesToKeep = [String];
8+ baseName = String;
9+ deps = [γ];
10+ description = String;
11+ overrides = ∀ α. α -> α;
12+ packageName = String;
13+ src = δ;
14+ version = String;
15+}
test/golden/importless/cl-paths.txtnew file+11
@@ -0,0 +1,11 @@
1+∀ β γ.
2+(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
3+{ asdFilesToKeep = [String];
4+ baseName = String;
5+ deps = ∀ α. [α];
6+ description = String;
7+ overrides = ∀ α. α -> α;
8+ packageName = String;
9+ src = γ;
10+ version = String;
11+}
test/golden/importless/cl-pdf.txtnew file+16
@@ -0,0 +1,16 @@
1+∀ β γ δ.
2+( β.fetchurl = {sha256 = String; url = String;} -> γ,
3+ β.iterate = δ,
4+ β.uiop = δ,
5+ β.zpb-ttf = δ
6+) =>
7+β ->
8+{ asdFilesToKeep = [String];
9+ baseName = String;
10+ deps = [δ];
11+ description = String;
12+ overrides = ∀ α. α -> α;
13+ packageName = String;
14+ src = γ;
15+ version = String;
16+}
test/golden/importless/cl-postgres.txtnew file+18
@@ -0,0 +1,18 @@
1+∀ β γ δ.
2+( β.fetchurl = {sha256 = String; url = String;} -> γ,
3+ β.fiveam = δ,
4+ β.md5 = δ,
5+ β.split-sequence = δ,
6+ β.usocket = δ
7+) =>
8+β ->
9+{ asdFilesToKeep = [String];
10+ baseName = String;
11+ deps = [δ];
12+ description = String;
13+ overrides = ∀ α. α -> α;
14+ packageName = String;
15+ parasites = [String];
16+ src = γ;
17+ version = String;
18+}
test/golden/importless/cl-ppcre-template.txtnew file+15
@@ -0,0 +1,15 @@
1+∀ β γ δ.
2+( β.cl-ppcre = γ,
3+ β.cl-unification = γ,
4+ β.fetchurl = {sha256 = String; url = String;} -> δ
5+) =>
6+β ->
7+{ asdFilesToKeep = [String];
8+ baseName = String;
9+ deps = [γ];
10+ description = String;
11+ overrides = ∀ α. α -> α;
12+ packageName = String;
13+ src = δ;
14+ version = String;
15+}
test/golden/importless/cl-ppcre-unicode.txtnew file+18
@@ -0,0 +1,18 @@
1+∀ β γ δ.
2+( β.cl-ppcre = γ,
3+ β.cl-ppcre-test = γ,
4+ β.cl-unicode = γ,
5+ β.fetchurl = {sha256 = String; url = String;} -> δ,
6+ β.flexi-streams = γ
7+) =>
8+β ->
9+{ asdFilesToKeep = [String];
10+ baseName = String;
11+ deps = [γ];
12+ description = String;
13+ overrides = ∀ α. α -> α;
14+ packageName = String;
15+ parasites = [String];
16+ src = δ;
17+ version = String;
18+}
test/golden/importless/cl-ppcre.txtnew file+15
@@ -0,0 +1,15 @@
1+∀ β γ δ.
2+( β.fetchurl = {sha256 = String; url = String;} -> γ,
3+ β.flexi-streams = δ
4+) =>
5+β ->
6+{ asdFilesToKeep = [String];
7+ baseName = String;
8+ deps = [δ];
9+ description = String;
10+ overrides = ∀ α. α -> α;
11+ packageName = String;
12+ parasites = [String];
13+ src = γ;
14+ version = String;
15+}
test/golden/importless/cl-prevalence.txtnew file+15
@@ -0,0 +1,15 @@
1+∀ β γ δ.
2+( β.fetchurl = {sha256 = String; url = String;} -> γ,
3+ β.s-sysdeps = δ,
4+ β.s-xml = δ
5+) =>
6+β ->
7+{ asdFilesToKeep = [String];
8+ baseName = String;
9+ deps = [δ];
10+ description = String;
11+ overrides = ∀ α. α -> α;
12+ packageName = String;
13+ src = γ;
14+ version = String;
15+}
test/golden/importless/cl-project.txtnew file+25
@@ -0,0 +1,25 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.anaphora = γ,
4+ β.bordeaux-threads = γ,
5+ β.cl-ansi-text = γ,
6+ β.cl-colors = γ,
7+ β.cl-emb = γ,
8+ β.cl-fad = γ,
9+ β.cl-ppcre = γ,
10+ β.fetchurl = {sha256 = String; url = String;} -> δ,
11+ β.let-plus = γ,
12+ β.local-time = γ,
13+ β.prove = γ,
14+ β.uiop = γ
15+) =>
16+β ->
17+{ asdFilesToKeep = [String];
18+ baseName = String;
19+ deps = [γ];
20+ description = String;
21+ overrides = ∀ α. α -> α;
22+ packageName = String;
23+ src = δ;
24+ version = String;
25+}
test/golden/importless/cl-protobufs.txtnew file+18
@@ -0,0 +1,18 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.babel = γ,
4+ β.closer-mop = γ,
5+ β.fetchurl = {sha256 = String; url = String;} -> δ,
6+ β.trivial-features = γ,
7+ β.trivial-garbage = γ
8+) =>
9+β ->
10+{ asdFilesToKeep = [String];
11+ baseName = String;
12+ deps = [γ];
13+ description = String;
14+ overrides = ∀ α. α -> α;
15+ packageName = String;
16+ src = δ;
17+ version = String;
18+}
test/golden/importless/cl-reexport.txtnew file+11
@@ -0,0 +1,11 @@
1+∀ β γ δ.
2+(β.alexandria = γ, β.fetchurl = {sha256 = String; url = String;} -> δ) => β ->
3+{ asdFilesToKeep = [String];
4+ baseName = String;
5+ deps = [γ];
6+ description = String;
7+ overrides = ∀ α. α -> α;
8+ packageName = String;
9+ src = δ;
10+ version = String;
11+}
test/golden/importless/cl-smtp.txtnew file+25
@@ -0,0 +1,25 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.babel = γ,
4+ β.bordeaux-threads = γ,
5+ β.cffi = γ,
6+ β.cl-base64 = γ,
7+ β.cl_plus_ssl = γ,
8+ β.fetchurl = {sha256 = String; url = String;} -> δ,
9+ β.flexi-streams = γ,
10+ β.split-sequence = γ,
11+ β.trivial-features = γ,
12+ β.trivial-garbage = γ,
13+ β.trivial-gray-streams = γ,
14+ β.usocket = γ
15+) =>
16+β ->
17+{ asdFilesToKeep = [String];
18+ baseName = String;
19+ deps = [γ];
20+ description = String;
21+ overrides = ∀ α. α -> α;
22+ packageName = String;
23+ src = δ;
24+ version = String;
25+}
test/golden/importless/cl-store.txtnew file+12
@@ -0,0 +1,12 @@
1+∀ β γ δ.
2+(β.fetchurl = {sha256 = String; url = String;} -> γ, β.rt = δ) => β ->
3+{ asdFilesToKeep = [String];
4+ baseName = String;
5+ deps = [δ];
6+ description = String;
7+ overrides = ∀ α. α -> α;
8+ packageName = String;
9+ parasites = [String];
10+ src = γ;
11+ version = String;
12+}
test/golden/importless/cl-syntax-annot.txtnew file+18
@@ -0,0 +1,18 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.cl-annot = γ,
4+ β.cl-syntax = γ,
5+ β.fetchurl = {sha256 = String; url = String;} -> δ,
6+ β.named-readtables = γ,
7+ β.trivial-types = γ
8+) =>
9+β ->
10+{ asdFilesToKeep = [String];
11+ baseName = String;
12+ deps = [γ];
13+ description = String;
14+ overrides = ∀ α. α -> α;
15+ packageName = String;
16+ src = δ;
17+ version = String;
18+}
test/golden/importless/cl-syntax-anonfun.txtnew file+17
@@ -0,0 +1,17 @@
1+∀ β γ δ.
2+( β.cl-anonfun = γ,
3+ β.cl-syntax = γ,
4+ β.fetchurl = {sha256 = String; url = String;} -> δ,
5+ β.named-readtables = γ,
6+ β.trivial-types = γ
7+) =>
8+β ->
9+{ asdFilesToKeep = [String];
10+ baseName = String;
11+ deps = [γ];
12+ description = String;
13+ overrides = ∀ α. α -> α;
14+ packageName = String;
15+ src = δ;
16+ version = String;
17+}
test/golden/importless/cl-syntax-markup.txtnew file+17
@@ -0,0 +1,17 @@
1+∀ β γ δ.
2+( β.cl-markup = γ,
3+ β.cl-syntax = γ,
4+ β.fetchurl = {sha256 = String; url = String;} -> δ,
5+ β.named-readtables = γ,
6+ β.trivial-types = γ
7+) =>
8+β ->
9+{ asdFilesToKeep = [String];
10+ baseName = String;
11+ deps = [γ];
12+ description = String;
13+ overrides = ∀ α. α -> α;
14+ packageName = String;
15+ src = δ;
16+ version = String;
17+}
test/golden/importless/cl-syntax.txtnew file+15
@@ -0,0 +1,15 @@
1+∀ β γ δ.
2+( β.fetchurl = {sha256 = String; url = String;} -> γ,
3+ β.named-readtables = δ,
4+ β.trivial-types = δ
5+) =>
6+β ->
7+{ asdFilesToKeep = [String];
8+ baseName = String;
9+ deps = [δ];
10+ description = String;
11+ overrides = ∀ α. α -> α;
12+ packageName = String;
13+ src = γ;
14+ version = String;
15+}
test/golden/importless/cl-test-more.txtnew file+20
@@ -0,0 +1,20 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.anaphora = γ,
4+ β.cl-ansi-text = γ,
5+ β.cl-colors = γ,
6+ β.cl-ppcre = γ,
7+ β.fetchurl = {sha256 = String; url = String;} -> δ,
8+ β.let-plus = γ,
9+ β.prove = γ
10+) =>
11+β ->
12+{ asdFilesToKeep = [String];
13+ baseName = String;
14+ deps = [γ];
15+ description = String;
16+ overrides = ∀ α. α -> α;
17+ packageName = String;
18+ src = δ;
19+ version = String;
20+}
test/golden/importless/cl-typesetting.txtnew file+16
@@ -0,0 +1,16 @@
1+∀ β γ δ.
2+( β.cl-pdf = γ,
3+ β.fetchurl = {sha256 = String; url = String;} -> δ,
4+ β.iterate = γ,
5+ β.zpb-ttf = γ
6+) =>
7+β ->
8+{ asdFilesToKeep = [String];
9+ baseName = String;
10+ deps = [γ];
11+ description = String;
12+ overrides = ∀ α. α -> α;
13+ packageName = String;
14+ src = δ;
15+ version = String;
16+}
test/golden/importless/cl-unicode.txtnew file+16
@@ -0,0 +1,16 @@
1+∀ β γ δ.
2+( β.cl-ppcre = γ,
3+ β.fetchurl = {sha256 = String; url = String;} -> δ,
4+ β.flexi-streams = γ
5+) =>
6+β ->
7+{ asdFilesToKeep = [String];
8+ baseName = String;
9+ deps = [γ];
10+ description = String;
11+ overrides = ∀ α. α -> α;
12+ packageName = String;
13+ parasites = [String];
14+ src = δ;
15+ version = String;
16+}
test/golden/importless/cl-unification.txtnew file+11
@@ -0,0 +1,11 @@
1+∀ β γ.
2+(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
3+{ asdFilesToKeep = [String];
4+ baseName = String;
5+ deps = ∀ α. [α];
6+ description = String;
7+ overrides = ∀ α. α -> α;
8+ packageName = String;
9+ src = γ;
10+ version = String;
11+}
test/golden/importless/cl-utilities.txtnew file+11
@@ -0,0 +1,11 @@
1+∀ β γ.
2+(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
3+{ asdFilesToKeep = [String];
4+ baseName = String;
5+ deps = ∀ α. [α];
6+ description = String;
7+ overrides = ∀ α. α -> α;
8+ packageName = String;
9+ src = γ;
10+ version = String;
11+}
test/golden/importless/cl-vectors.txtnew file+15
@@ -0,0 +1,15 @@
1+∀ β γ δ.
2+( β.cl-aa = γ,
3+ β.cl-paths = γ,
4+ β.fetchurl = {sha256 = String; url = String;} -> δ
5+) =>
6+β ->
7+{ asdFilesToKeep = [String];
8+ baseName = String;
9+ deps = [γ];
10+ description = String;
11+ overrides = ∀ α. α -> α;
12+ packageName = String;
13+ src = δ;
14+ version = String;
15+}
test/golden/importless/cl-who.txtnew file+15
@@ -0,0 +1,15 @@
1+∀ β γ δ.
2+( β.fetchurl = {sha256 = String; url = String;} -> γ,
3+ β.flexi-streams = δ
4+) =>
5+β ->
6+{ asdFilesToKeep = [String];
7+ baseName = String;
8+ deps = [δ];
9+ description = String;
10+ overrides = ∀ α. α -> α;
11+ packageName = String;
12+ parasites = [String];
13+ src = γ;
14+ version = String;
15+}
test/golden/importless/cl-xmlspam.txtnew file+21
@@ -0,0 +1,21 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.babel = γ,
4+ β.cl-ppcre = γ,
5+ β.closure-common = γ,
6+ β.cxml = γ,
7+ β.fetchurl = {sha256 = String; url = String;} -> δ,
8+ β.puri = γ,
9+ β.trivial-features = γ,
10+ β.trivial-gray-streams = γ
11+) =>
12+β ->
13+{ asdFilesToKeep = [String];
14+ baseName = String;
15+ deps = [γ];
16+ description = String;
17+ overrides = ∀ α. α -> α;
18+ packageName = String;
19+ src = δ;
20+ version = String;
21+}
test/golden/importless/cl_plus_ssl.txtnew file+22
@@ -0,0 +1,22 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.babel = γ,
4+ β.bordeaux-threads = γ,
5+ β.cffi = γ,
6+ β.fetchurl = {sha256 = String; url = String;} -> δ,
7+ β.flexi-streams = γ,
8+ β.trivial-features = γ,
9+ β.trivial-garbage = γ,
10+ β.trivial-gray-streams = γ,
11+ β.uiop = γ
12+) =>
13+β ->
14+{ asdFilesToKeep = [String];
15+ baseName = String;
16+ deps = [γ];
17+ description = String;
18+ overrides = ∀ α. α -> α;
19+ packageName = String;
20+ src = δ;
21+ version = String;
22+}
test/golden/importless/clack-handler-hunchentoot.txtnew file+33
@@ -0,0 +1,33 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.babel = γ,
4+ β.bordeaux-threads = γ,
5+ β.cffi = γ,
6+ β.chunga = γ,
7+ β.cl-base64 = γ,
8+ β.cl-fad = γ,
9+ β.cl-ppcre = γ,
10+ β.cl_plus_ssl = γ,
11+ β.clack-socket = γ,
12+ β.fetchurl = {sha256 = String; url = String;} -> δ,
13+ β.flexi-streams = γ,
14+ β.hunchentoot = γ,
15+ β.md5 = γ,
16+ β.rfc2388 = γ,
17+ β.split-sequence = γ,
18+ β.trivial-backtrace = γ,
19+ β.trivial-features = γ,
20+ β.trivial-garbage = γ,
21+ β.trivial-gray-streams = γ,
22+ β.usocket = γ
23+) =>
24+β ->
25+{ asdFilesToKeep = [String];
26+ baseName = String;
27+ deps = [γ];
28+ description = String;
29+ overrides = ∀ α. α -> α;
30+ packageName = String;
31+ src = δ;
32+ version = String;
33+}
test/golden/importless/clack-socket.txtnew file+11
@@ -0,0 +1,11 @@
1+∀ β γ.
2+(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
3+{ asdFilesToKeep = [String];
4+ baseName = String;
5+ deps = ∀ α. [α];
6+ description = String;
7+ overrides = ∀ α. α -> α;
8+ packageName = String;
9+ src = γ;
10+ version = String;
11+}
test/golden/importless/clack-test.txtnew file+66
@@ -0,0 +1,66 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.babel = γ,
4+ β.bordeaux-threads = γ,
5+ β.cffi = γ,
6+ β.cffi-grovel = γ,
7+ β.cffi-toolchain = γ,
8+ β.chipz = γ,
9+ β.chunga = γ,
10+ β.cl-annot = γ,
11+ β.cl-base64 = γ,
12+ β.cl-cookie = γ,
13+ β.cl-fad = γ,
14+ β.cl-ppcre = γ,
15+ β.cl-reexport = γ,
16+ β.cl-syntax = γ,
17+ β.cl-syntax-annot = γ,
18+ β.cl-utilities = γ,
19+ β.cl_plus_ssl = γ,
20+ β.clack = γ,
21+ β.clack-handler-hunchentoot = γ,
22+ β.clack-socket = γ,
23+ β.dexador = γ,
24+ β.dissect = γ,
25+ β.fast-http = γ,
26+ β.fast-io = γ,
27+ β.fetchurl = {sha256 = String; url = String;} -> δ,
28+ β.flexi-streams = γ,
29+ β.http-body = γ,
30+ β.hunchentoot = γ,
31+ β.ironclad = γ,
32+ β.jonathan = γ,
33+ β.lack = γ,
34+ β.lack-component = γ,
35+ β.lack-middleware-backtrace = γ,
36+ β.lack-util = γ,
37+ β.local-time = γ,
38+ β.md5 = γ,
39+ β.named-readtables = γ,
40+ β.nibbles = γ,
41+ β.proc-parse = γ,
42+ β.quri = γ,
43+ β.rfc2388 = γ,
44+ β.rove = γ,
45+ β.smart-buffer = γ,
46+ β.split-sequence = γ,
47+ β.static-vectors = γ,
48+ β.trivial-backtrace = γ,
49+ β.trivial-features = γ,
50+ β.trivial-garbage = γ,
51+ β.trivial-gray-streams = γ,
52+ β.trivial-mimes = γ,
53+ β.trivial-types = γ,
54+ β.usocket = γ,
55+ β.xsubseq = γ
56+) =>
57+β ->
58+{ asdFilesToKeep = [String];
59+ baseName = String;
60+ deps = [γ];
61+ description = String;
62+ overrides = ∀ α. α -> α;
63+ packageName = String;
64+ src = δ;
65+ version = String;
66+}
test/golden/importless/clack-v1-compat.txtnew file+70
@@ -0,0 +1,70 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.babel = γ,
4+ β.bordeaux-threads = γ,
5+ β.cffi = γ,
6+ β.cffi-grovel = γ,
7+ β.cffi-toolchain = γ,
8+ β.chipz = γ,
9+ β.chunga = γ,
10+ β.circular-streams = γ,
11+ β.cl-annot = γ,
12+ β.cl-base64 = γ,
13+ β.cl-cookie = γ,
14+ β.cl-fad = γ,
15+ β.cl-ppcre = γ,
16+ β.cl-reexport = γ,
17+ β.cl-syntax = γ,
18+ β.cl-syntax-annot = γ,
19+ β.cl-utilities = γ,
20+ β.cl_plus_ssl = γ,
21+ β.clack = γ,
22+ β.clack-handler-hunchentoot = γ,
23+ β.clack-socket = γ,
24+ β.clack-test = γ,
25+ β.dexador = γ,
26+ β.dissect = γ,
27+ β.fast-http = γ,
28+ β.fast-io = γ,
29+ β.fetchurl = {sha256 = String; url = String;} -> δ,
30+ β.flexi-streams = γ,
31+ β.http-body = γ,
32+ β.hunchentoot = γ,
33+ β.ironclad = γ,
34+ β.jonathan = γ,
35+ β.lack = γ,
36+ β.lack-component = γ,
37+ β.lack-middleware-backtrace = γ,
38+ β.lack-util = γ,
39+ β.local-time = γ,
40+ β.marshal = γ,
41+ β.md5 = γ,
42+ β.named-readtables = γ,
43+ β.nibbles = γ,
44+ β.proc-parse = γ,
45+ β.quri = γ,
46+ β.rfc2388 = γ,
47+ β.rove = γ,
48+ β.smart-buffer = γ,
49+ β.split-sequence = γ,
50+ β.static-vectors = γ,
51+ β.trivial-backtrace = γ,
52+ β.trivial-features = γ,
53+ β.trivial-garbage = γ,
54+ β.trivial-gray-streams = γ,
55+ β.trivial-mimes = γ,
56+ β.trivial-types = γ,
57+ β.uiop = γ,
58+ β.usocket = γ,
59+ β.xsubseq = γ
60+) =>
61+β ->
62+{ asdFilesToKeep = [String];
63+ baseName = String;
64+ deps = [γ];
65+ description = String;
66+ overrides = ∀ α. α -> α;
67+ packageName = String;
68+ src = δ;
69+ version = String;
70+}
test/golden/importless/clack.txtnew file+22
@@ -0,0 +1,22 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.bordeaux-threads = γ,
4+ β.fetchurl = {sha256 = String; url = String;} -> δ,
5+ β.ironclad = γ,
6+ β.lack = γ,
7+ β.lack-component = γ,
8+ β.lack-middleware-backtrace = γ,
9+ β.lack-util = γ,
10+ β.nibbles = γ,
11+ β.uiop = γ
12+) =>
13+β ->
14+{ asdFilesToKeep = [String];
15+ baseName = String;
16+ deps = [γ];
17+ description = String;
18+ overrides = ∀ α. α -> α;
19+ packageName = String;
20+ src = δ;
21+ version = String;
22+}
test/golden/importless/clean-packaging.txtnew file+8
@@ -0,0 +1,8 @@
1+∀ γ δ ε ζ η θ ι.
2+( γ.lib = δ,
3+ δ.concatMapStringsSep = String -> (ε -> String) -> ζ -> η
4+) =>
5+{file = θ; stdenv = γ; writeScript = String -> String -> ι;} ->
6+{ checkForRemainingFiles = ι;
7+ commonFileActions = ∀ α β. {docFiles = α; noiseFiles = β;} -> ι;
8+}
test/golden/importless/clex.txtnew file+23
@@ -0,0 +1,23 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { installPhase = String;
5+ meta =
6+ {description = String; license = γ; maintainers = [δ]; platforms = ε;};
7+ pname = String;
8+ src = ζ;
9+ version = String;
10+ } ->
11+ η,
12+ β.licenses = θ,
13+ β.maintainers = ι,
14+ β.platforms = κ,
15+ β.yrashk = δ,
16+ θ.gpl3 = γ,
17+ κ.unix = ε
18+) =>
19+{ fetchFromGitHub =
20+ {owner = String; repo = String; rev = String; sha256 = String;} -> ζ;
21+ stdenv = α;
22+} ->
23+η
test/golden/importless/clfswm.txtnew file+24
@@ -0,0 +1,24 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.services = ε,
6+ γ.mkEnableOption = String -> ζ,
7+ γ.mkIf =
8+ η ->
9+ { environment = {systemPackages = [θ];};
10+ services = {xserver = {windowManager = {session = ι;};};};
11+ } ->
12+ κ,
13+ γ.singleton = {name = String; start = String;} -> ι,
14+ δ.clfswm = θ,
15+ ε.xserver = λ,
16+ λ.windowManager = μ,
17+ μ.clfswm = ν,
18+ ν.enable = η
19+) =>
20+α ->
21+{ config = κ;
22+ options =
23+ {services = {xserver = {windowManager = {clfswm = {enable = ζ;};};};};};
24+}
test/golden/importless/clickhouse.txtnew file+53
@@ -0,0 +1,53 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.ids = ε,
6+ β.services = ζ,
7+ γ.mkDefault = String -> η,
8+ γ.mkEnableOption = String -> θ,
9+ γ.mkIf =
10+ ι ->
11+ { environment =
12+ { etc =
13+ { clickhouse-server/config.xml = {source = String;};
14+ clickhouse-server/users.xml = {source = String;};
15+ };
16+ systemPackages = [κ];
17+ };
18+ systemd =
19+ { services =
20+ { clickhouse =
21+ { after = [String];
22+ description = String;
23+ serviceConfig =
24+ { ConfigurationDirectory = String;
25+ ExecStart = String;
26+ Group = String;
27+ LogsDirectory = String;
28+ StateDirectory = String;
29+ User = String;
30+ };
31+ wantedBy = [String];
32+ };
33+ };
34+ };
35+ time = {timeZone = η;};
36+ users =
37+ { groups = {clickhouse = {gid = λ;};};
38+ users =
39+ { clickhouse =
40+ {description = String; group = String; name = String; uid = μ;};
41+ };
42+ };
43+ } ->
44+ ν,
45+ δ.clickhouse = κ,
46+ ζ.clickhouse = ξ,
47+ ξ.enable = ι,
48+ ε.gids = ο,
49+ ο.clickhouse = λ,
50+ π.uids = ρ,
51+ ρ.clickhouse = μ
52+) =>
53+α -> {config = ν; options = {services = {clickhouse = {enable = θ;};};};}
test/golden/importless/clickshare.txtnew file+26
@@ -0,0 +1,26 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.programs = ε,
6+ γ.maintainers = ζ,
7+ γ.modules = η,
8+ γ.options = θ,
9+ δ.clickshare-csc1 = ι,
10+ η.mkIf =
11+ κ ->
12+ { environment = {systemPackages = [ι];};
13+ services = {udev = {packages = [λ];};};
14+ users = {groups = {clickshare = {};};};
15+ } ->
16+ μ,
17+ ε.clickshare-csc1 = ν,
18+ ν.enable = κ,
19+ ζ.yarny = ξ,
20+ θ.mkEnableOption = String -> ο
21+) =>
22+α ->
23+{ config = μ;
24+ meta = {maintainers = [ξ];};
25+ options = {programs = {clickshare-csc1 = {enable = ο;};};};
26+}
test/golden/importless/client-ip-echo.txtnew file+20
@@ -0,0 +1,20 @@
1+∀ α β γ δ ε ζ η.
2+(α.lib = β, β.licenses = γ, γ.lgpl3 = δ) => { base = ε;
3+ bytestring = ε;
4+ fetchFromGitHub =
5+ {owner = String; repo = String; rev = String; sha256 = String;} -> ζ;
6+ mkDerivation =
7+ { description = String;
8+ executableHaskellDepends = [ε];
9+ isExecutable = Bool;
10+ isLibrary = Bool;
11+ license = δ;
12+ pname = String;
13+ src = ζ;
14+ version = String;
15+ } ->
16+ η;
17+ network = ε;
18+ stdenv = α;
19+} ->
20+η
test/golden/importless/clientlib.txtnew file+33
@@ -0,0 +1,33 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.isDarwin = β,
3+ α.lib = γ,
4+ α.mkDerivation =
5+ { meta =
6+ { description = String;
7+ homepage = String;
8+ license = δ;
9+ maintainers = [ε];
10+ platforms = ζ;
11+ };
12+ nativeBuildInputs = [η];
13+ pname = String;
14+ src = θ;
15+ version = String;
16+ } ->
17+ ι,
18+ γ.optional = β -> κ -> [η],
19+ λ.ehmry = ε,
20+ λ.licenses = μ,
21+ λ.maintainers = ν,
22+ λ.platforms = ξ,
23+ μ.gpl2 = δ,
24+ ξ.unix = ζ
25+) =>
26+{ fetchFromGitHub =
27+ {owner = String; repo = String; rev = String; sha256 = String;} -> θ;
28+ fixDarwinDylibNames = κ;
29+ meson = η;
30+ ninja = η;
31+ stdenv = α;
32+} ->
33+ι
test/golden/importless/clightd.txtnew file+54
@@ -0,0 +1,54 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π.
2+( α.eadwu = β,
3+ α.licenses = γ,
4+ α.maintainers = δ,
5+ α.optional = Bool -> String -> [ε],
6+ α.platforms = ζ,
7+ η.mkDerivation =
8+ { MODULE_LOAD_DIR = String;
9+ POLKIT_ACTION_DIR = String;
10+ SYSTEM_BUS_DIR = String;
11+ buildInputs = [θ];
12+ cmakeFlags = [ε];
13+ meta =
14+ { description = String;
15+ homepage = String;
16+ license = ι;
17+ maintainers = [β];
18+ platforms = κ;
19+ };
20+ nativeBuildInputs = [λ];
21+ pname = String;
22+ postInstall = String;
23+ postPatch = String;
24+ src = μ;
25+ version = String;
26+ } ->
27+ ν,
28+ γ.gpl3 = ι,
29+ ζ.linux = κ
30+) =>
31+{ cmake = λ;
32+ dbus = λ;
33+ ddcutil = ξ;
34+ enableDdc = Bool;
35+ enableDpms = Bool;
36+ enableGamma = Bool;
37+ enableScreen = Bool;
38+ fetchFromGitHub =
39+ {owner = String; repo = String; rev = String; sha256 = String;} -> μ;
40+ glib = θ;
41+ lib = α;
42+ libXdmcp = θ;
43+ libXext = ο;
44+ libXrandr = π;
45+ libmodule = θ;
46+ libpthreadstubs = θ;
47+ pcre = θ;
48+ pkgconfig = λ;
49+ polkit = θ;
50+ stdenv = η;
51+ udev = θ;
52+ utillinux = θ;
53+} ->
54+ν
test/golden/importless/clightning.txtnew file+49
@@ -0,0 +1,49 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ configurePhase = String;
6+ doCheck = Bool;
7+ enableParallelBuilding = Bool;
8+ makeFlags = [String];
9+ meta =
10+ { description = String;
11+ homepage = String;
12+ license = δ;
13+ longDescription = String;
14+ maintainers = [ε];
15+ platforms = ζ;
16+ };
17+ nativeBuildInputs = [η];
18+ pname = String;
19+ postPatch = String;
20+ src = θ;
21+ version = String;
22+ } ->
23+ ι,
24+ κ.withPackages = (λ -> [μ]) -> γ,
25+ λ.Mako = μ,
26+ β.jb55 = ε,
27+ β.licenses = ν,
28+ β.maintainers = ξ,
29+ β.platforms = ο,
30+ ν.mit = δ,
31+ ο.linux = ζ
32+) =>
33+{ autoconf = η;
34+ autogen = η;
35+ automake = η;
36+ fetchpatch = π;
37+ fetchurl = {sha256 = String; url = String;} -> θ;
38+ gettext = η;
39+ gmp = γ;
40+ libtool = η;
41+ pkgconfig = η;
42+ python3 = κ;
43+ sqlite = γ;
44+ stdenv = α;
45+ unzip = η;
46+ which = η;
47+ zlib = γ;
48+} ->
49+ι
test/golden/importless/clingo.txtnew file+27
@@ -0,0 +1,27 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { cmakeFlags = [String];
5+ meta =
6+ { description = String;
7+ downloadPage = String;
8+ homepage = String;
9+ license = γ;
10+ maintainers = [δ];
11+ platforms = ε;
12+ version = String;
13+ };
14+ nativeBuildInputs = [ζ];
15+ pname = String;
16+ src = η;
17+ version = String;
18+ } ->
19+ θ,
20+ β.licenses = ι,
21+ ι.mit = γ,
22+ κ.maintainers = λ,
23+ λ.raskin = δ,
24+ μ.platforms = ν,
25+ ν.unix = ε
26+) =>
27+{cmake = ζ; fetchzip = {sha256 = String; url = String;} -> η; stdenv = α;} -> θ
test/golden/importless/clipmenu.txtnew file+35
@@ -0,0 +1,35 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.services = ε,
6+ γ.mkEnableOption = String -> ζ,
7+ γ.mkIf =
8+ η ->
9+ { environment = {systemPackages = [θ];};
10+ systemd =
11+ { user =
12+ { services =
13+ { clipmenu =
14+ { after = [String];
15+ description = String;
16+ enable = Bool;
17+ serviceConfig = {ExecStart = String;};
18+ wantedBy = [String];
19+ };
20+ };
21+ };
22+ };
23+ } ->
24+ ι,
25+ γ.mkOption =
26+ {default = κ; defaultText = String; description = String; type = λ;} -> μ,
27+ γ.types = ν,
28+ δ.clipmenu = κ,
29+ ε.clipmenu = ξ,
30+ ξ.enable = η,
31+ ξ.package = θ,
32+ ν.package = λ
33+) =>
34+α ->
35+{config = ι; options = {services = {clipmenu = {enable = ζ; package = μ;};};};}
test/golden/importless/clippy.txtnew file+44
@@ -0,0 +1,44 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ.
2+( α.isDarwin = β,
3+ α.lib = γ,
4+ δ.buildRustPackage =
5+ { RUSTC_BOOTSTRAP = Number;
6+ buildAndTestSubdir = String;
7+ buildInputs = [ε];
8+ cargoVendorDir = String;
9+ doCheck = Bool;
10+ dontUpdateAutotoolsGnuConfigScripts = Bool;
11+ meta =
12+ { description = String;
13+ homepage = String;
14+ license = [ζ];
15+ maintainers = [η];
16+ platforms = θ;
17+ };
18+ name = String;
19+ preFixup = ι;
20+ src = κ;
21+ version = λ;
22+ } ->
23+ μ,
24+ ε.llvm = ε,
25+ ε.src = κ,
26+ ε.version = λ,
27+ γ.optionals = β -> [ν] -> [ε],
28+ ξ.asl20 = ζ,
29+ ξ.basvandijk = η,
30+ ξ.licenses = ο,
31+ ξ.maintainers = π,
32+ ξ.mit = ζ,
33+ ξ.platforms = ρ,
34+ ρ.unix = θ,
35+ σ.optionalString = τ -> String -> ι
36+) =>
37+{ Security = ν;
38+ lib = υ;
39+ patchelf = φ;
40+ rustPlatform = δ;
41+ rustc = ε;
42+ stdenv = α;
43+} ->
44+μ
test/golden/importless/clooj.txtnew file+21
@@ -0,0 +1,21 @@
1+∀ α β γ δ ε ζ η θ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ installPhase = String;
6+ jar = δ;
7+ meta = {description = String; homepage = String; license = ε;};
8+ phases = String;
9+ pname = String;
10+ version = String;
11+ } ->
12+ ζ,
13+ β.licenses = η,
14+ η.bsd3 = ε
15+) =>
16+{ fetchurl = {sha256 = String; url = String;} -> δ;
17+ jre = θ;
18+ makeWrapper = γ;
19+ stdenv = α;
20+} ->
21+ζ
test/golden/importless/closer-mop.txtnew file+11
@@ -0,0 +1,11 @@
1+∀ β γ.
2+(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
3+{ asdFilesToKeep = [String];
4+ baseName = String;
5+ deps = ∀ α. [α];
6+ description = String;
7+ overrides = ∀ α. α -> α;
8+ packageName = String;
9+ src = γ;
10+ version = String;
11+}
test/golden/importless/closure-common.txtnew file+17
@@ -0,0 +1,17 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.babel = γ,
4+ β.fetchurl = {sha256 = String; url = String;} -> δ,
5+ β.trivial-features = γ,
6+ β.trivial-gray-streams = γ
7+) =>
8+β ->
9+{ asdFilesToKeep = [String];
10+ baseName = String;
11+ deps = [γ];
12+ description = String;
13+ overrides = ∀ α. α -> α;
14+ packageName = String;
15+ src = δ;
16+ version = String;
17+}
test/golden/importless/closure-html.txtnew file+19
@@ -0,0 +1,19 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.babel = γ,
4+ β.closure-common = γ,
5+ β.fetchurl = {sha256 = String; url = String;} -> δ,
6+ β.flexi-streams = γ,
7+ β.trivial-features = γ,
8+ β.trivial-gray-streams = γ
9+) =>
10+β ->
11+{ asdFilesToKeep = [String];
12+ baseName = String;
13+ deps = [γ];
14+ description = String;
15+ overrides = ∀ α. α -> α;
16+ packageName = String;
17+ src = δ;
18+ version = String;
19+}
test/golden/importless/clprover.txtnew file+25
@@ -0,0 +1,25 @@
1+∀ α β γ δ ε ζ η θ.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { installPhase = String;
5+ meta =
6+ { description = String;
7+ homepage = String;
8+ license = γ;
9+ maintainers = [δ];
10+ platforms = [String];
11+ };
12+ pname = String;
13+ src = ε;
14+ version = String;
15+ } ->
16+ ζ,
17+ β.licenses = η,
18+ β.maintainers = θ,
19+ β.mgttlinger = δ,
20+ η.gpl3 = γ
21+) =>
22+{ fetchzip = {sha256 = String; stripRoot = Bool; url = String;} -> ε;
23+ stdenv = α;
24+} ->
25+ζ
test/golden/importless/clsql-postgresql-socket.txtnew file+16
@@ -0,0 +1,16 @@
1+∀ β γ δ.
2+( β.clsql = γ,
3+ β.fetchurl = {sha256 = String; url = String;} -> δ,
4+ β.md5 = γ,
5+ β.uffi = γ
6+) =>
7+β ->
8+{ asdFilesToKeep = [String];
9+ baseName = String;
10+ deps = [γ];
11+ description = String;
12+ overrides = ∀ α. α -> α;
13+ packageName = String;
14+ src = δ;
15+ version = String;
16+}
test/golden/importless/clsql-postgresql.txtnew file+16
@@ -0,0 +1,16 @@
1+∀ β γ δ.
2+( β.clsql = γ,
3+ β.clsql-uffi = γ,
4+ β.fetchurl = {sha256 = String; url = String;} -> δ,
5+ β.uffi = γ
6+) =>
7+β ->
8+{ asdFilesToKeep = [String];
9+ baseName = String;
10+ deps = [γ];
11+ description = String;
12+ overrides = ∀ α. α -> α;
13+ packageName = String;
14+ src = δ;
15+ version = String;
16+}
test/golden/importless/clsql-sqlite3.txtnew file+16
@@ -0,0 +1,16 @@
1+∀ β γ δ.
2+( β.clsql = γ,
3+ β.clsql-uffi = γ,
4+ β.fetchurl = {sha256 = String; url = String;} -> δ,
5+ β.uffi = γ
6+) =>
7+β ->
8+{ asdFilesToKeep = [String];
9+ baseName = String;
10+ deps = [γ];
11+ description = String;
12+ overrides = ∀ α. α -> α;
13+ packageName = String;
14+ src = δ;
15+ version = String;
16+}
test/golden/importless/clsql-uffi.txtnew file+15
@@ -0,0 +1,15 @@
1+∀ β γ δ.
2+( β.clsql = γ,
3+ β.fetchurl = {sha256 = String; url = String;} -> δ,
4+ β.uffi = γ
5+) =>
6+β ->
7+{ asdFilesToKeep = [String];
8+ baseName = String;
9+ deps = [γ];
10+ description = String;
11+ overrides = ∀ α. α -> α;
12+ packageName = String;
13+ src = δ;
14+ version = String;
15+}
test/golden/importless/clsql.txtnew file+11
@@ -0,0 +1,11 @@
1+∀ β γ δ.
2+(β.fetchurl = {sha256 = String; url = String;} -> γ, β.uffi = δ) => β ->
3+{ asdFilesToKeep = [String];
4+ baseName = String;
5+ deps = [δ];
6+ description = String;
7+ overrides = ∀ α. α -> α;
8+ packageName = String;
9+ src = γ;
10+ version = String;
11+}
test/golden/importless/clss.txtnew file+17
@@ -0,0 +1,17 @@
1+∀ β γ δ.
2+( β.array-utils = γ,
3+ β.documentation-utils = γ,
4+ β.fetchurl = {sha256 = String; url = String;} -> δ,
5+ β.plump = γ,
6+ β.trivial-indent = γ
7+) =>
8+β ->
9+{ asdFilesToKeep = [String];
10+ baseName = String;
11+ deps = [γ];
12+ description = String;
13+ overrides = ∀ α. α -> α;
14+ packageName = String;
15+ src = δ;
16+ version = String;
17+}
test/golden/importless/clx-truetype.txtnew file+25
@@ -0,0 +1,25 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.bordeaux-threads = γ,
4+ β.cl-aa = γ,
5+ β.cl-fad = γ,
6+ β.cl-paths = γ,
7+ β.cl-paths-ttf = γ,
8+ β.cl-store = γ,
9+ β.cl-vectors = γ,
10+ β.clx = γ,
11+ β.fetchurl = {sha256 = String; url = String;} -> δ,
12+ β.trivial-features = γ,
13+ β.zpb-ttf = γ
14+) =>
15+β ->
16+{ asdFilesToKeep = [String];
17+ baseName = String;
18+ deps = [γ];
19+ description = String;
20+ overrides = ∀ α. α -> α;
21+ packageName = String;
22+ parasites = [String];
23+ src = δ;
24+ version = String;
25+}
test/golden/importless/clx.txtnew file+12
@@ -0,0 +1,12 @@
1+∀ β γ δ.
2+(β.fetchurl = {sha256 = String; url = String;} -> γ, β.fiasco = δ) => β ->
3+{ asdFilesToKeep = [String];
4+ baseName = String;
5+ deps = [δ];
6+ description = String;
7+ overrides = ∀ α. α -> α;
8+ packageName = String;
9+ parasites = [String];
10+ src = γ;
11+ version = String;
12+}
test/golden/importless/cmake-modules.txtnew file+23
@@ -0,0 +1,23 @@
1+∀ α β γ δ ε ζ η θ ι.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { meta = {description = String; license = γ; maintainers = [δ];};
5+ nativeBuildInputs = [ε];
6+ pname = String;
7+ prePatch = String;
8+ setupHook = String;
9+ src = ζ;
10+ version = String;
11+ } ->
12+ η,
13+ β.dtzWill = δ,
14+ β.licenses = θ,
15+ β.maintainers = ι,
16+ θ.asl20 = γ
17+) =>
18+{ cmake = ε;
19+ fetchFromGitHub =
20+ {owner = String; repo = String; rev = String; sha256 = String;} -> ζ;
21+ stdenv = α;
22+} ->
23+η
test/golden/importless/coda.txtnew file+24
@@ -0,0 +1,24 @@
1+∀ α β γ δ ε ζ η.
2+( α.licenses = β,
3+ α.maintainers = γ,
4+ β.bsd3 = δ,
5+ γ.brainrape = ε
6+) =>
7+{ build-idris-package =
8+ { ipkgName = String;
9+ meta =
10+ { description = String;
11+ homepage = String;
12+ license = δ;
13+ maintainers = [ε];
14+ };
15+ name = String;
16+ src = ζ;
17+ version = String;
18+ } ->
19+ η;
20+ fetchFromGitHub =
21+ {owner = String; repo = String; rev = String; sha256 = String;} -> ζ;
22+ lib = α;
23+} ->
24+η
test/golden/importless/cohttp.txtnew file+31
@@ -0,0 +1,31 @@
1+∀ β γ δ ε ζ η θ ι κ λ.
2+( β // {description = String;} ~ γ,
3+ δ.optionals = Bool -> [ε] -> ζ,
4+ η.meta = β,
5+ η.src = θ,
6+ η.version = ι
7+) =>
8+{ alcotest = ε;
9+ astring = η;
10+ buildDunePackage =
11+ { checkInputs = ζ;
12+ doCheck = Bool;
13+ meta = ∀ α. α;
14+ nativeBuildInputs = [κ];
15+ pname = String;
16+ propagatedBuildInputs = [η];
17+ src = θ;
18+ useDune2 = Bool;
19+ version = ι;
20+ } ->
21+ λ;
22+ cohttp = η;
23+ cohttp-lwt-unix = ε;
24+ digestif = η;
25+ graphql = η;
26+ graphql-lwt = ε;
27+ lib = δ;
28+ ocaml-crunch = κ;
29+ ocplib-endian = η;
30+} ->
31+λ
test/golden/importless/collections.txtnew file+69
@@ -0,0 +1,69 @@
1+∀ α β γ δ ε ζ.
2+( α.javaPackages = β,
3+ β.mavenArtifactManager_2_0_1 = γ,
4+ β.mavenArtifactManager_2_0_6 = δ,
5+ β.mavenArtifactManager_2_0_9 = ε,
6+ β.mavenArtifactManager_2_2_1 = ζ,
7+ β.mavenArtifact_2_0_1 = γ,
8+ β.mavenArtifact_2_0_6 = δ,
9+ β.mavenArtifact_2_0_9 = ε,
10+ β.mavenArtifact_2_2_1 = ζ,
11+ β.mavenCore_2_0_1 = γ,
12+ β.mavenCore_2_0_6 = δ,
13+ β.mavenCore_2_0_9 = ε,
14+ β.mavenCore_2_2_1 = ζ,
15+ β.mavenErrorDiagnostics_2_0_1 = γ,
16+ β.mavenErrorDiagnostics_2_0_6 = δ,
17+ β.mavenErrorDiagnostics_2_0_9 = ε,
18+ β.mavenErrorDiagnostics_2_2_1 = ζ,
19+ β.mavenModel_2_0_1 = γ,
20+ β.mavenModel_2_0_6 = δ,
21+ β.mavenModel_2_0_9 = ε,
22+ β.mavenModel_2_2_1 = ζ,
23+ β.mavenMonitor_2_0_1 = γ,
24+ β.mavenMonitor_2_0_6 = δ,
25+ β.mavenMonitor_2_0_9 = ε,
26+ β.mavenMonitor_2_2_1 = ζ,
27+ β.mavenPluginApi_2_0_1 = γ,
28+ β.mavenPluginApi_2_0_6 = δ,
29+ β.mavenPluginApi_2_0_9 = ε,
30+ β.mavenPluginApi_2_2_1 = ζ,
31+ β.mavenPluginDescriptor_2_0_1 = γ,
32+ β.mavenPluginDescriptor_2_0_6 = δ,
33+ β.mavenPluginDescriptor_2_0_9 = ε,
34+ β.mavenPluginDescriptor_2_2_1 = ζ,
35+ β.mavenPluginParameterDocumenter_2_0_1 = γ,
36+ β.mavenPluginParameterDocumenter_2_0_6 = δ,
37+ β.mavenPluginParameterDocumenter_2_0_9 = ε,
38+ β.mavenPluginParameterDocumenter_2_2_1 = ζ,
39+ β.mavenPluginRegistry_2_0_1 = γ,
40+ β.mavenPluginRegistry_2_0_6 = δ,
41+ β.mavenPluginRegistry_2_0_9 = ε,
42+ β.mavenPluginRegistry_2_2_1 = ζ,
43+ β.mavenProfile_2_0_1 = γ,
44+ β.mavenProfile_2_0_6 = δ,
45+ β.mavenProfile_2_0_9 = ε,
46+ β.mavenProfile_2_2_1 = ζ,
47+ β.mavenProject_2_0_1 = γ,
48+ β.mavenProject_2_0_6 = δ,
49+ β.mavenProject_2_0_9 = ε,
50+ β.mavenProject_2_2_1 = ζ,
51+ β.mavenReportingApi_2_0_1 = γ,
52+ β.mavenReportingApi_2_0_6 = δ,
53+ β.mavenReportingApi_2_0_9 = ε,
54+ β.mavenReportingApi_2_2_1 = ζ,
55+ β.mavenRepositoryMetadata_2_0_1 = γ,
56+ β.mavenRepositoryMetadata_2_0_6 = δ,
57+ β.mavenRepositoryMetadata_2_0_9 = ε,
58+ β.mavenRepositoryMetadata_2_2_1 = ζ,
59+ β.mavenSettings_2_0_1 = γ,
60+ β.mavenSettings_2_0_6 = δ,
61+ β.mavenSettings_2_0_9 = ε,
62+ β.mavenSettings_2_2_1 = ζ
63+) =>
64+{pkgs = α;} ->
65+{ mavenLibs_2_0_1 = [γ];
66+ mavenLibs_2_0_6 = [δ];
67+ mavenLibs_2_0_9 = [ε];
68+ mavenLibs_2_2_1 = [ζ];
69+}
test/golden/importless/collectors.txtnew file+19
@@ -0,0 +1,19 @@
1+∀ β γ δ.
2+( β.alexandria = γ,
3+ β.closer-mop = γ,
4+ β.fetchurl = {sha256 = String; url = String;} -> δ,
5+ β.iterate = γ,
6+ β.lisp-unit2 = γ,
7+ β.symbol-munger = γ
8+) =>
9+β ->
10+{ asdFilesToKeep = [String];
11+ baseName = String;
12+ deps = [γ];
13+ description = String;
14+ overrides = ∀ α. α -> α;
15+ packageName = String;
16+ parasites = [String];
17+ src = δ;
18+ version = String;
19+}
test/golden/importless/colord.txtnew file+23
@@ -0,0 +1,23 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.config = β,
3+ α.lib = γ,
4+ α.pkgs = δ,
5+ β.services = ε,
6+ γ.mkEnableOption = String -> ζ,
7+ γ.mkIf =
8+ η ->
9+ { environment = {systemPackages = [θ];};
10+ services = {dbus = {packages = [ι];}; udev = {packages = [κ];};};
11+ systemd = {packages = [λ]; tmpfiles = {packages = [μ];};};
12+ users =
13+ { groups = {colord = {};};
14+ users =
15+ {colord = {group = String; home = String; isSystemUser = Bool;};};
16+ };
17+ } ->
18+ ν,
19+ δ.colord = θ,
20+ ε.colord = ξ,
21+ ξ.enable = η
22+) =>
23+α -> {config = ν; options = {services = {colord = {enable = ζ;};};};}
test/golden/importless/combinators.txtnew file+22
@@ -0,0 +1,22 @@
1+∀ β γ δ ε ζ η θ.
2+( β // {description = String;} ~ γ,
3+ δ.meta = β,
4+ δ.src = ε,
5+ δ.version = ζ
6+) =>
7+{ buildDunePackage =
8+ { meta = ∀ α. α;
9+ pname = String;
10+ propagatedBuildInputs = [δ];
11+ src = ε;
12+ version = ζ;
13+ } ->
14+ η;
15+ cstruct = δ;
16+ fmt = θ;
17+ logs = δ;
18+ mirage-clock = δ;
19+ mirage-flow = δ;
20+ ocaml_lwt = δ;
21+} ->
22+η
test/golden/importless/command-line-arguments.txtnew file+11
@@ -0,0 +1,11 @@
1+∀ β γ.
2+(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
3+{ asdFilesToKeep = [String];
4+ baseName = String;
5+ deps = ∀ α. [α];
6+ description = String;
7+ overrides = ∀ α. α -> α;
8+ packageName = String;
9+ src = γ;
10+ version = String;
11+}
test/golden/importless/common-overrides.txtnew file+11
@@ -0,0 +1,11 @@
1+∀ α β γ δ ε ζ η θ.
2+( α.addBuildTools = β,
3+ α.appendConfigureFlag = γ -> String -> δ,
4+ α.doJailbreak = ε -> γ,
5+ α.dontHaddock = δ -> ζ,
6+ η.ghcjs = ε,
7+ η.haddock-library-ghcjs = δ,
8+ η.system-fileio = ε
9+) =>
10+{haskellLib = α;} ->
11+θ -> η -> {ghcjs = ζ; haddock-library-ghcjs = ζ; system-fileio = γ;}
test/golden/importless/common-path.txtnew file+18
@@ -0,0 +1,18 @@
1+∀ α β γ δ.
2+( α.bash = β,
3+ α.bzip2 = γ,
4+ α.coreutils = β,
5+ α.diffutils = β,
6+ α.findutils = β,
7+ α.gawk = β,
8+ α.gnugrep = β,
9+ α.gnumake = β,
10+ α.gnused = β,
11+ α.gnutar = β,
12+ α.gzip = β,
13+ α.patch = β,
14+ α.xz = δ,
15+ γ.bin = β,
16+ δ.bin = β
17+) =>
18+{pkgs = α;} -> [β]
test/golden/importless/common.txtnew file+38
@@ -0,0 +1,38 @@
1+∀ θ ι.
2+(θ.system = ι) => θ ->
3+{ baseConfig =
4+ ∀ β γ δ ε ζ η.
5+ ( β.pkgs = γ,
6+ γ.jq = δ,
7+ γ.makeWrapper = ε,
8+ γ.stdenv = ζ,
9+ γ.writeTextDir = String -> String -> η,
10+ ζ.mkDerivation =
11+ { buildInputs = [ε];
12+ dontUnpack = Bool;
13+ installPhase = String;
14+ name = String;
15+ postFixup = String;
16+ } ->
17+ δ
18+ ) =>
19+ β ->
20+ { environment = {systemPackages = [δ];};
21+ nix =
22+ { binaryCaches = ∀ α. [α];
23+ buildMachines = [{hostName = String; systems = [ι];}];
24+ distributedBuilds = Bool;
25+ };
26+ services =
27+ { hydra =
28+ { enable = Bool;
29+ extraConfig = String;
30+ hydraURL = String;
31+ notificationSender = String;
32+ };
33+ postfix = {enable = Bool;};
34+ };
35+ time = {timeZone = String;};
36+ virtualisation = {memorySize = Number;};
37+ };
38+}
test/golden/importless/community-edition.txtnew file+44
@@ -0,0 +1,44 @@
1+∀ γ δ ε ζ η θ ι κ λ μ ν.
2+( γ.lib = δ,
3+ γ.mkDerivation =
4+ { doInstallCheck = Bool;
5+ dontStrip = Bool;
6+ installCheckPhase = String;
7+ installPhase = ∀ β. β;
8+ meta =
9+ { description = String;
10+ homepage = String;
11+ license = [ε];
12+ maintainers = [ζ];
13+ platforms = [String];
14+ };
15+ nativeBuildInputs = [η];
16+ passthru = {home = θ;};
17+ pname = String;
18+ postFixup = String;
19+ preFixup = String;
20+ propagatedBuildInputs = [ι];
21+ srcs = [κ];
22+ unpackPhase = String;
23+ version = String;
24+ } ->
25+ θ,
26+ δ.bandresen = ζ,
27+ δ.bsd3 = ε,
28+ δ.glittershark = ζ,
29+ δ.gpl2Classpath = ε,
30+ δ.hlolli = ζ,
31+ δ.licenses = λ,
32+ δ.maintainers = μ,
33+ δ.upl = ε,
34+ δ.volth = ζ
35+) =>
36+{ fetchurl = {sha256 = ∀ α. α; url = String;} -> κ;
37+ glibc = ν;
38+ perl = η;
39+ setJavaClassPath = ι;
40+ stdenv = γ;
41+ unzip = η;
42+ zlib = ι;
43+} ->
44+{graalvm11-ce = θ; graalvm8-ce = θ;}
test/golden/importless/community.txtnew file+88
@@ -0,0 +1,88 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1 δ1 ε1 ζ1 η1 θ1 ι1 κ1
2+λ1 μ1 ν1.
3+( α.cc = β,
4+ α.isDarwin = γ,
5+ α.isLinux = Bool,
6+ α.lib = δ,
7+ α.mkDerivation =
8+ { NIX_CFLAGS_COMPILE = ε;
9+ NIX_LDFLAGS = ζ;
10+ buildInputs = [η];
11+ checkPhase = String;
12+ cmakeFlags = [String];
13+ doCheck = Bool;
14+ meta =
15+ { description = String;
16+ homepage = String;
17+ license = θ;
18+ longDescription = String;
19+ maintainers = [ι];
20+ platforms = [κ];
21+ };
22+ nativeBuildInputs = [λ];
23+ patches = [String];
24+ pname = String;
25+ postPatch = μ;
26+ preFixup = ν;
27+ src = ξ;
28+ version = String;
29+ } ->
30+ ο,
31+ π.apple_sdk = ρ,
32+ δ.jonafato = ι,
33+ δ.licenses = σ,
34+ δ.maintainers = τ,
35+ δ.optional = Bool -> String -> [String],
36+ δ.optionalString = γ -> String -> ν,
37+ δ.platforms = υ,
38+ δ.turion = ι,
39+ φ.optionalString = χ -> String -> μ,
40+ σ.gpl2 = θ,
41+ υ.linux = [κ],
42+ ψ.darwin = [κ],
43+ ω.optional = Bool -> α1 -> [η],
44+ β1.optional = γ1 -> δ1 -> [η],
45+ ε1.optional = Bool -> ζ1 -> [η],
46+ η1.optionalString = θ1 -> String -> ζ,
47+ ι1.optionalString = κ1 -> [String] -> ε,
48+ β.isClang = κ1,
49+ ρ.frameworks = λ1,
50+ λ1.LocalAuthentication = ζ1
51+) =>
52+{ asciidoctor = η;
53+ cmake = λ;
54+ curl = η;
55+ darwin = π;
56+ fetchFromGitHub =
57+ {owner = String; repo = String; rev = String; sha256 = String;} -> ξ;
58+ fetchpatch = μ1;
59+ glibcLocales = η;
60+ libXi = η;
61+ libXtst = η;
62+ libargon2 = η;
63+ libgcrypt = η;
64+ libgpgerror = η;
65+ libsodium = η;
66+ libyubikey = η;
67+ makeWrapper = ν1;
68+ pkg-config = η;
69+ qrencode = η;
70+ qtbase = η;
71+ qtmacextras = δ1;
72+ qtsvg = η;
73+ qttools = λ;
74+ qtx11extras = η;
75+ quazip = α1;
76+ stdenv = α;
77+ withKeePassBrowser = Bool;
78+ withKeePassFDOSecrets = Bool;
79+ withKeePassKeeShare = Bool;
80+ withKeePassKeeShareSecure = Bool;
81+ withKeePassNetworking = Bool;
82+ withKeePassSSHAgent = Bool;
83+ withKeePassTouchID = Bool;
84+ wrapQtAppsHook = λ;
85+ yubikey-personalization = η;
86+ zlib = η;
87+} ->
88+ο
test/golden/importless/comonad.txtnew file+23
@@ -0,0 +1,23 @@
1+∀ α β γ δ ε ζ η.
2+( α.licenses = β,
3+ α.maintainers = γ,
4+ β.bsd3 = δ,
5+ γ.brainrape = ε
6+) =>
7+{ build-idris-package =
8+ { meta =
9+ { description = String;
10+ homepage = String;
11+ license = δ;
12+ maintainers = [ε];
13+ };
14+ name = String;
15+ src = ζ;
16+ version = String;
17+ } ->
18+ η;
19+ fetchFromGitHub =
20+ {owner = String; repo = String; rev = String; sha256 = String;} -> ζ;
21+ lib = α;
22+} ->
23+η
test/golden/importless/compiler-rt.txtnew file+55
@@ -0,0 +1,55 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1 δ1 ε1 ζ1 η1 θ1 ι1 κ1
2+λ1 μ1.
3+( α.hostPlatform = β,
4+ β.?useLLVM = Bool,
5+ α.isDarwin = γ,
6+ α.lib = δ,
7+ α.mkDerivation =
8+ { NIX_CFLAGS_COMPILE = [String];
9+ buildInputs = ε;
10+ cmakeFlags = [String];
11+ enableParallelBuilding = Bool;
12+ nativeBuildInputs = [ζ];
13+ outputs = [String];
14+ patches = [String];
15+ pname = String;
16+ postInstall = η;
17+ postPatch = θ;
18+ src = ι;
19+ version = κ;
20+ } ->
21+ λ,
22+ μ.isMusl = Bool,
23+ ν.parsed = ξ,
24+ ξ.kernel = ο,
25+ ο.name = String,
26+ δ.optional = π -> ρ -> ε,
27+ σ.isDarwin = π,
28+ τ.optionals = Bool -> [String] -> [String],
29+ υ.optionals = Bool -> [String] -> [String],
30+ φ.optionals = Bool -> [String] -> [String],
31+ χ.optionals = Bool -> [String] -> [String],
32+ ψ.optional = ω -> String -> [String],
33+ α1.isMusl = ω,
34+ β1.optional = Bool -> String -> [String],
35+ γ1.libc = String,
36+ δ1.optional = ε1 -> String -> [String],
37+ ζ1.isAarch32 = ε1,
38+ η1.optionalString = Bool -> String -> η,
39+ θ1.isDarwin = Bool,
40+ ι1.isWasm = Bool,
41+ κ1.optionalString = Bool -> String -> η,
42+ λ1.optionalString = γ -> String -> θ,
43+ μ1.optionalString = Bool -> String -> θ,
44+ (String | Number) ~ η,
45+ (String | Number) ~ θ
46+) =>
47+{ cmake = ζ;
48+ fetch = String -> String -> ι;
49+ libcxxabi = ρ;
50+ llvm = ζ;
51+ python3 = ζ;
52+ stdenv = α;
53+ version = κ;
54+} ->
55+λ
test/golden/importless/compiler.txtnew file+35
@@ -0,0 +1,35 @@
1+∀ β γ δ ε ζ η θ ι κ λ.
2+( β.licenses = γ,
3+ β.maintainers = δ,
4+ γ.gpl2 = ε,
5+ δ.vbgl = ζ
6+) =>
7+{ buildDunePackage =
8+ { buildInputs = [η];
9+ configurePlatforms = ∀ α. [α];
10+ meta =
11+ { description = String;
12+ homepage = String;
13+ license = ε;
14+ maintainers = [ζ];
15+ };
16+ nativeBuildInputs = [θ];
17+ pname = String;
18+ propagatedBuildInputs = [ι];
19+ src = κ;
20+ useDune2 = Bool;
21+ version = String;
22+ } ->
23+ λ;
24+ cmdliner = η;
25+ cppo = θ;
26+ dune_2 = θ;
27+ fetchurl = {sha256 = String; url = String;} -> κ;
28+ findlib = θ;
29+ lib = β;
30+ menhir = θ;
31+ ocaml = θ;
32+ ocaml-migrate-parsetree = ι;
33+ yojson = ι;
34+} ->
35+λ
test/golden/importless/component-packages.txtnew file+1061
@@ -0,0 +1,1061 @@
1+{ components =
2+ { abode = ∀ α β. α -> [β];
3+ accuweather = ∀ α β. α -> [β];
4+ acer_projector = ∀ α β. (α.pyserial = β) => α -> [β];
5+ acmeda = ∀ α β. α -> [β];
6+ actiontec = ∀ α β. α -> [β];
7+ adguard = ∀ α β. α -> [β];
8+ ads = ∀ α β. α -> [β];
9+ aftership = ∀ α β. α -> [β];
10+ agent_dvr = ∀ α β. α -> [β];
11+ air_quality = ∀ α β. α -> [β];
12+ airly = ∀ α β. α -> [β];
13+ airvisual = ∀ α β. (α.pyairvisual = β) => α -> [β];
14+ aladdin_connect = ∀ α β. α -> [β];
15+ alarm_control_panel = ∀ α β. α -> [β];
16+ alarmdecoder = ∀ α β. α -> [β];
17+ alert = ∀ α β. α -> [β];
18+ alexa = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
19+ almond = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
20+ alpha_vantage = ∀ α β. α -> [β];
21+ amazon_polly = ∀ α β. (α.boto3 = β) => α -> [β];
22+ ambiclimate = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
23+ ambient_station = ∀ α β. α -> [β];
24+ amcrest = ∀ α β. (α.ha-ffmpeg = β) => α -> [β];
25+ ampio = ∀ α β. α -> [β];
26+ android_ip_webcam = ∀ α β. α -> [β];
27+ androidtv = ∀ α β. α -> [β];
28+ anel_pwrctrl = ∀ α β. α -> [β];
29+ anthemav = ∀ α β. α -> [β];
30+ apache_kafka = ∀ α β. (α.aiokafka = β) => α -> [β];
31+ apcupsd = ∀ α β. α -> [β];
32+ api = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
33+ apns = ∀ α β. α -> [β];
34+ apple_tv =
35+ ∀ α β.
36+ ( α.aiohttp-cors = β,
37+ α.netdisco = β,
38+ α.pyatv = β,
39+ α.zeroconf = β
40+ ) =>
41+ α -> [β];
42+ apprise = ∀ α β. (α.apprise = β) => α -> [β];
43+ aprs = ∀ α β. α -> [β];
44+ aqualogic = ∀ α β. α -> [β];
45+ aquostv = ∀ α β. α -> [β];
46+ arcam_fmj = ∀ α β. α -> [β];
47+ arduino = ∀ α β. α -> [β];
48+ arest = ∀ α β. α -> [β];
49+ arlo = ∀ α β. (α.ha-ffmpeg = β) => α -> [β];
50+ arris_tg2492lg = ∀ α β. α -> [β];
51+ aruba = ∀ α β. (α.pexpect = β) => α -> [β];
52+ arwn = ∀ α β. (α.aiohttp-cors = β, α.paho-mqtt = β) => α -> [β];
53+ asterisk_cdr = ∀ α β. α -> [β];
54+ asterisk_mbox = ∀ α β. α -> [β];
55+ asuswrt = ∀ α β. α -> [β];
56+ atag = ∀ α β. α -> [β];
57+ aten_pe = ∀ α β. α -> [β];
58+ atome = ∀ α β. α -> [β];
59+ august = ∀ α β. α -> [β];
60+ aurora = ∀ α β. α -> [β];
61+ aurora_abb_powerone = ∀ α β. α -> [β];
62+ auth = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
63+ automation = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
64+ avea = ∀ α β. α -> [β];
65+ avion = ∀ α β. α -> [β];
66+ avri = ∀ α β. (α.pycountry = β) => α -> [β];
67+ awair = ∀ α β. α -> [β];
68+ aws = ∀ α β. α -> [β];
69+ axis = ∀ α β. (α.aiohttp-cors = β, α.paho-mqtt = β) => α -> [β];
70+ azure_devops = ∀ α β. α -> [β];
71+ azure_event_hub = ∀ α β. α -> [β];
72+ azure_service_bus = ∀ α β. (α.azure-servicebus = β) => α -> [β];
73+ baidu = ∀ α β. α -> [β];
74+ bayesian = ∀ α β. α -> [β];
75+ bbb_gpio = ∀ α β. α -> [β];
76+ bbox = ∀ α β. α -> [β];
77+ beewi_smartclim = ∀ α β. α -> [β];
78+ bh1750 = ∀ α β. α -> [β];
79+ binary_sensor = ∀ α β. α -> [β];
80+ bitcoin = ∀ α β. α -> [β];
81+ bizkaibus = ∀ α β. α -> [β];
82+ blackbird = ∀ α β. α -> [β];
83+ blebox = ∀ α β. α -> [β];
84+ blink = ∀ α β. α -> [β];
85+ blinksticklight = ∀ α β. (α.BlinkStick = β) => α -> [β];
86+ blinkt = ∀ α β. α -> [β];
87+ blockchain = ∀ α β. α -> [β];
88+ bloomsky = ∀ α β. α -> [β];
89+ bluesound = ∀ α β. (α.xmltodict = β) => α -> [β];
90+ bluetooth_le_tracker = ∀ α β. α -> [β];
91+ bluetooth_tracker = ∀ α β. (α.bt_proximity = β) => α -> [β];
92+ bme280 = ∀ α β. α -> [β];
93+ bme680 = ∀ α β. α -> [β];
94+ bmp280 = ∀ α β. α -> [β];
95+ bmw_connected_drive = ∀ α β. α -> [β];
96+ bom = ∀ α β. α -> [β];
97+ bond = ∀ α β. α -> [β];
98+ braviatv = ∀ α β. (α.bravia-tv = β) => α -> [β];
99+ broadlink = ∀ α β. (α.broadlink = β) => α -> [β];
100+ brother = ∀ α β. (α.brother = β) => α -> [β];
101+ brottsplatskartan = ∀ α β. α -> [β];
102+ browser = ∀ α β. α -> [β];
103+ brunt = ∀ α β. α -> [β];
104+ bsblan = ∀ α β. α -> [β];
105+ bt_home_hub_5 = ∀ α β. α -> [β];
106+ bt_smarthub = ∀ α β. α -> [β];
107+ buienradar = ∀ α β. α -> [β];
108+ caldav = ∀ α β. (α.caldav = β) => α -> [β];
109+ calendar = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
110+ camera = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
111+ canary = ∀ α β. (α.ha-ffmpeg = β) => α -> [β];
112+ cast =
113+ ∀ α β.
114+ ( α.PyChromecast = β,
115+ α.aiohttp-cors = β,
116+ α.hass-nabucasa = β,
117+ α.zeroconf = β
118+ ) =>
119+ α -> [β];
120+ cert_expiry = ∀ α β. α -> [β];
121+ channels = ∀ α β. α -> [β];
122+ circuit = ∀ α β. α -> [β];
123+ cisco_ios = ∀ α β. (α.pexpect = β) => α -> [β];
124+ cisco_mobility_express = ∀ α β. α -> [β];
125+ cisco_webex_teams = ∀ α β. α -> [β];
126+ citybikes = ∀ α β. α -> [β];
127+ clementine = ∀ α β. α -> [β];
128+ clickatell = ∀ α β. α -> [β];
129+ clicksend = ∀ α β. α -> [β];
130+ clicksend_tts = ∀ α β. α -> [β];
131+ climate = ∀ α β. α -> [β];
132+ cloud = ∀ α β. (α.aiohttp-cors = β, α.hass-nabucasa = β) => α -> [β];
133+ cloudflare = ∀ α β. α -> [β];
134+ cmus = ∀ α β. α -> [β];
135+ co2signal = ∀ α β. α -> [β];
136+ coinbase = ∀ α β. α -> [β];
137+ coinmarketcap = ∀ α β. (α.coinmarketcap = β) => α -> [β];
138+ comed_hourly_pricing = ∀ α β. α -> [β];
139+ comfoconnect = ∀ α β. α -> [β];
140+ command_line = ∀ α β. α -> [β];
141+ concord232 = ∀ α β. α -> [β];
142+ config = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
143+ configurator = ∀ α β. α -> [β];
144+ control4 = ∀ α β. α -> [β];
145+ conversation = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
146+ coolmaster = ∀ α β. α -> [β];
147+ coronavirus = ∀ α β. α -> [β];
148+ counter = ∀ α β. α -> [β];
149+ cover = ∀ α β. α -> [β];
150+ cppm_tracker = ∀ α β. α -> [β];
151+ cpuspeed = ∀ α β. (α.py-cpuinfo = β) => α -> [β];
152+ crimereports = ∀ α β. α -> [β];
153+ cups = ∀ α β. (α.pycups = β) => α -> [β];
154+ currencylayer = ∀ α β. α -> [β];
155+ daikin = ∀ α β. α -> [β];
156+ danfoss_air = ∀ α β. α -> [β];
157+ darksky = ∀ α β. (α.python-forecastio = β) => α -> [β];
158+ datadog = ∀ α β. (α.datadog = β) => α -> [β];
159+ ddwrt = ∀ α β. α -> [β];
160+ debugpy = ∀ α β. (α.debugpy = β) => α -> [β];
161+ deconz = ∀ α β. α -> [β];
162+ decora = ∀ α β. (α.bluepy = β) => α -> [β];
163+ decora_wifi = ∀ α β. α -> [β];
164+ default_config =
165+ ∀ α β.
166+ ( α.aiohttp-cors = β,
167+ α.defusedxml = β,
168+ α.distro = β,
169+ α.emoji = β,
170+ α.hass-nabucasa = β,
171+ α.netdisco = β,
172+ α.pynacl = β,
173+ α.sqlalchemy = β,
174+ α.zeroconf = β
175+ ) =>
176+ α -> [β];
177+ delijn = ∀ α β. α -> [β];
178+ deluge = ∀ α β. (α.deluge-client = β) => α -> [β];
179+ demo = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
180+ denon = ∀ α β. α -> [β];
181+ denonavr = ∀ α β. (α.denonavr = β, α.getmac = β) => α -> [β];
182+ derivative = ∀ α β. α -> [β];
183+ deutsche_bahn = ∀ α β. α -> [β];
184+ device_automation = ∀ α β. α -> [β];
185+ device_sun_light_trigger = ∀ α β. α -> [β];
186+ device_tracker = ∀ α β. α -> [β];
187+ devolo_home_control = ∀ α β. α -> [β];
188+ dexcom = ∀ α β. α -> [β];
189+ dht = ∀ α β. α -> [β];
190+ dialogflow = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
191+ digital_ocean = ∀ α β. (α.digital-ocean = β) => α -> [β];
192+ digitalloggers = ∀ α β. α -> [β];
193+ directv = ∀ α β. α -> [β];
194+ discogs = ∀ α β. (α.discogs_client = β) => α -> [β];
195+ discord = ∀ α β. (α.discordpy = β) => α -> [β];
196+ discovery =
197+ ∀ α β. (α.aiohttp-cors = β, α.netdisco = β, α.zeroconf = β) => α -> [β];
198+ dlib_face_detect = ∀ α β. (α.face_recognition = β) => α -> [β];
199+ dlib_face_identify = ∀ α β. (α.face_recognition = β) => α -> [β];
200+ dlink = ∀ α β. α -> [β];
201+ dlna_dmr = ∀ α β. (α.async-upnp-client = β) => α -> [β];
202+ dnsip = ∀ α β. (α.aiodns = β) => α -> [β];
203+ dominos = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
204+ doods = ∀ α β. (α.pillow = β) => α -> [β];
205+ doorbird = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
206+ dovado = ∀ α β. α -> [β];
207+ downloader = ∀ α β. α -> [β];
208+ dsmr = ∀ α β. α -> [β];
209+ dsmr_reader = ∀ α β. (α.aiohttp-cors = β, α.paho-mqtt = β) => α -> [β];
210+ dte_energy_bridge = ∀ α β. α -> [β];
211+ dublin_bus_transport = ∀ α β. α -> [β];
212+ duckdns = ∀ α β. α -> [β];
213+ dunehd = ∀ α β. α -> [β];
214+ dwd_weather_warnings =
215+ ∀ α β. (α.jsonpath = β, α.xmltodict = β) => α -> [β];
216+ dweet = ∀ α β. α -> [β];
217+ dynalite = ∀ α β. α -> [β];
218+ dyson = ∀ α β. (α.aiohttp-cors = β, α.zeroconf = β) => α -> [β];
219+ ebox = ∀ α β. α -> [β];
220+ ebusd = ∀ α β. α -> [β];
221+ ecoal_boiler = ∀ α β. α -> [β];
222+ ecobee = ∀ α β. α -> [β];
223+ econet = ∀ α β. α -> [β];
224+ ecovacs = ∀ α β. α -> [β];
225+ eddystone_temperature = ∀ α β. (α.construct = β) => α -> [β];
226+ edimax = ∀ α β. α -> [β];
227+ edl21 = ∀ α β. α -> [β];
228+ ee_brightbox = ∀ α β. α -> [β];
229+ efergy = ∀ α β. α -> [β];
230+ egardia = ∀ α β. α -> [β];
231+ eight_sleep = ∀ α β. α -> [β];
232+ elgato = ∀ α β. α -> [β];
233+ eliqonline = ∀ α β. α -> [β];
234+ elkm1 = ∀ α β. α -> [β];
235+ elv = ∀ α β. α -> [β];
236+ emby = ∀ α β. α -> [β];
237+ emoncms = ∀ α β. α -> [β];
238+ emoncms_history = ∀ α β. α -> [β];
239+ emulated_hue = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
240+ emulated_roku = ∀ α β. α -> [β];
241+ enigma2 = ∀ α β. (α.openwebifpy = β) => α -> [β];
242+ enocean = ∀ α β. α -> [β];
243+ enphase_envoy = ∀ α β. α -> [β];
244+ entur_public_transport = ∀ α β. α -> [β];
245+ environment_canada = ∀ α β. α -> [β];
246+ envirophat = ∀ α β. α -> [β];
247+ envisalink = ∀ α β. α -> [β];
248+ ephember = ∀ α β. α -> [β];
249+ epson = ∀ α β. α -> [β];
250+ epsonworkforce = ∀ α β. α -> [β];
251+ eq3btsmart = ∀ α β. (α.construct = β) => α -> [β];
252+ esphome = ∀ α β. (α.aioesphomeapi = β) => α -> [β];
253+ essent = ∀ α β. α -> [β];
254+ etherscan = ∀ α β. α -> [β];
255+ eufy = ∀ α β. α -> [β];
256+ everlights = ∀ α β. α -> [β];
257+ evohome = ∀ α β. α -> [β];
258+ ezviz = ∀ α β. α -> [β];
259+ facebook = ∀ α β. α -> [β];
260+ facebox = ∀ α β. α -> [β];
261+ fail2ban = ∀ α β. α -> [β];
262+ familyhub = ∀ α β. α -> [β];
263+ fan = ∀ α β. α -> [β];
264+ fastdotcom = ∀ α β. α -> [β];
265+ feedreader = ∀ α β. α -> [β];
266+ ffmpeg = ∀ α β. (α.ha-ffmpeg = β) => α -> [β];
267+ ffmpeg_motion = ∀ α β. (α.ha-ffmpeg = β) => α -> [β];
268+ ffmpeg_noise = ∀ α β. (α.ha-ffmpeg = β) => α -> [β];
269+ fibaro = ∀ α β. α -> [β];
270+ fido = ∀ α β. α -> [β];
271+ file = ∀ α β. α -> [β];
272+ filesize = ∀ α β. α -> [β];
273+ filter = ∀ α β. (α.aiohttp-cors = β, α.sqlalchemy = β) => α -> [β];
274+ fints = ∀ α β. (α.fints = β) => α -> [β];
275+ firmata = ∀ α β. α -> [β];
276+ fitbit = ∀ α β. (α.aiohttp-cors = β, α.fitbit = β) => α -> [β];
277+ fixer = ∀ α β. α -> [β];
278+ fleetgo = ∀ α β. α -> [β];
279+ flexit = ∀ α β. α -> [β];
280+ flic = ∀ α β. α -> [β];
281+ flick_electric = ∀ α β. α -> [β];
282+ flock = ∀ α β. α -> [β];
283+ flume = ∀ α β. α -> [β];
284+ flunearyou = ∀ α β. α -> [β];
285+ flux = ∀ α β. α -> [β];
286+ flux_led = ∀ α β. (α.flux-led = β) => α -> [β];
287+ folder = ∀ α β. α -> [β];
288+ folder_watcher = ∀ α β. (α.watchdog = β) => α -> [β];
289+ foobot = ∀ α β. α -> [β];
290+ forked_daapd = ∀ α β. α -> [β];
291+ fortios = ∀ α β. α -> [β];
292+ foscam = ∀ α β. α -> [β];
293+ foursquare = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
294+ free_mobile = ∀ α β. α -> [β];
295+ freebox =
296+ ∀ α β. (α.aiohttp-cors = β, α.netdisco = β, α.zeroconf = β) => α -> [β];
297+ freedns = ∀ α β. α -> [β];
298+ fritz = ∀ α β. (α.fritzconnection = β) => α -> [β];
299+ fritzbox = ∀ α β. (α.pyfritzhome = β) => α -> [β];
300+ fritzbox_callmonitor = ∀ α β. (α.fritzconnection = β) => α -> [β];
301+ fritzbox_netmonitor = ∀ α β. (α.fritzconnection = β) => α -> [β];
302+ fronius = ∀ α β. α -> [β];
303+ frontend = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
304+ frontier_silicon = ∀ α β. α -> [β];
305+ futurenow = ∀ α β. α -> [β];
306+ garadget = ∀ α β. α -> [β];
307+ garmin_connect = ∀ α β. α -> [β];
308+ gc100 = ∀ α β. α -> [β];
309+ gdacs = ∀ α β. α -> [β];
310+ geizhals = ∀ α β. α -> [β];
311+ generic = ∀ α β. α -> [β];
312+ generic_thermostat = ∀ α β. α -> [β];
313+ geniushub = ∀ α β. α -> [β];
314+ geo_json_events = ∀ α β. α -> [β];
315+ geo_location = ∀ α β. α -> [β];
316+ geo_rss_events = ∀ α β. α -> [β];
317+ geofency = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
318+ geonetnz_quakes = ∀ α β. α -> [β];
319+ geonetnz_volcano = ∀ α β. α -> [β];
320+ gios = ∀ α β. α -> [β];
321+ github = ∀ α β. (α.PyGithub = β) => α -> [β];
322+ gitlab_ci = ∀ α β. (α.python-gitlab = β) => α -> [β];
323+ gitter = ∀ α β. α -> [β];
324+ glances = ∀ α β. α -> [β];
325+ gntp = ∀ α β. α -> [β];
326+ goalfeed = ∀ α β. α -> [β];
327+ gogogate2 = ∀ α β. α -> [β];
328+ google =
329+ ∀ α β.
330+ ( α.google_api_python_client = β,
331+ α.httplib2 = β,
332+ α.oauth2client = β
333+ ) =>
334+ α -> [β];
335+ google_assistant = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
336+ google_cloud = ∀ α β. (α.google_cloud_texttospeech = β) => α -> [β];
337+ google_domains = ∀ α β. α -> [β];
338+ google_maps = ∀ α β. α -> [β];
339+ google_pubsub = ∀ α β. (α.google_cloud_pubsub = β) => α -> [β];
340+ google_translate = ∀ α β. (α.gtts-token = β) => α -> [β];
341+ google_travel_time = ∀ α β. α -> [β];
342+ google_wifi = ∀ α β. α -> [β];
343+ gpmdp = ∀ α β. (α.websocket_client = β) => α -> [β];
344+ gpsd = ∀ α β. α -> [β];
345+ gpslogger = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
346+ graphite = ∀ α β. α -> [β];
347+ greeneye_monitor = ∀ α β. α -> [β];
348+ greenwave = ∀ α β. α -> [β];
349+ griddy = ∀ α β. α -> [β];
350+ group = ∀ α β. α -> [β];
351+ growatt_server = ∀ α β. α -> [β];
352+ gstreamer = ∀ α β. α -> [β];
353+ gtfs = ∀ α β. α -> [β];
354+ guardian = ∀ α β. α -> [β];
355+ habitica = ∀ α β. α -> [β];
356+ hangouts = ∀ α β. α -> [β];
357+ harman_kardon_avr = ∀ α β. α -> [β];
358+ harmony = ∀ α β. (α.aioharmony = β) => α -> [β];
359+ hassio = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
360+ haveibeenpwned = ∀ α β. α -> [β];
361+ hddtemp = ∀ α β. α -> [β];
362+ hdmi_cec = ∀ α β. α -> [β];
363+ heatmiser = ∀ α β. α -> [β];
364+ heos = ∀ α β. α -> [β];
365+ here_travel_time = ∀ α β. α -> [β];
366+ hikvision = ∀ α β. α -> [β];
367+ hikvisioncam = ∀ α β. α -> [β];
368+ hisense_aehw4a1 = ∀ α β. α -> [β];
369+ history = ∀ α β. (α.aiohttp-cors = β, α.sqlalchemy = β) => α -> [β];
370+ history_stats = ∀ α β. (α.aiohttp-cors = β, α.sqlalchemy = β) => α -> [β];
371+ hitron_coda = ∀ α β. α -> [β];
372+ hive = ∀ α β. α -> [β];
373+ hlk_sw16 = ∀ α β. α -> [β];
374+ home_connect = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
375+ homeassistant = ∀ α β. α -> [β];
376+ homekit =
377+ ∀ α β.
378+ ( α.HAP-python = β,
379+ α.aiohttp-cors = β,
380+ α.ha-ffmpeg = β,
381+ α.pyqrcode = β,
382+ α.zeroconf = β
383+ ) =>
384+ α -> [β];
385+ homekit_controller =
386+ ∀ α β. (α.aiohttp-cors = β, α.zeroconf = β) => α -> [β];
387+ homematic = ∀ α β. (α.pyhomematic = β) => α -> [β];
388+ homematicip_cloud = ∀ α β. α -> [β];
389+ homeworks = ∀ α β. α -> [β];
390+ honeywell = ∀ α β. α -> [β];
391+ horizon = ∀ α β. α -> [β];
392+ hp_ilo = ∀ α β. α -> [β];
393+ html5 = ∀ α β. (α.aiohttp-cors = β, α.pywebpush = β) => α -> [β];
394+ http = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
395+ htu21d = ∀ α β. α -> [β];
396+ huawei_lte = ∀ α β. (α.getmac = β, α.stringcase = β) => α -> [β];
397+ huawei_router = ∀ α β. α -> [β];
398+ hue = ∀ α β. (α.aiohue = β) => α -> [β];
399+ humidifier = ∀ α β. α -> [β];
400+ hunterdouglas_powerview = ∀ α β. α -> [β];
401+ hvv_departures = ∀ α β. α -> [β];
402+ hydrawise = ∀ α β. α -> [β];
403+ hyperion = ∀ α β. α -> [β];
404+ ialarm = ∀ α β. α -> [β];
405+ iammeter = ∀ α β. α -> [β];
406+ iaqualink = ∀ α β. α -> [β];
407+ icloud = ∀ α β. (α.pyicloud = β) => α -> [β];
408+ idteck_prox = ∀ α β. α -> [β];
409+ ifttt = ∀ α β. (α.aiohttp-cors = β, α.pyfttt = β) => α -> [β];
410+ iglo = ∀ α β. α -> [β];
411+ ign_sismologia = ∀ α β. α -> [β];
412+ ihc = ∀ α β. (α.defusedxml = β) => α -> [β];
413+ image_processing = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
414+ imap = ∀ α β. α -> [β];
415+ imap_email_content = ∀ α β. α -> [β];
416+ incomfort = ∀ α β. α -> [β];
417+ influxdb = ∀ α β. (α.influxdb = β, α.influxdb-client = β) => α -> [β];
418+ input_boolean = ∀ α β. α -> [β];
419+ input_datetime = ∀ α β. α -> [β];
420+ input_number = ∀ α β. α -> [β];
421+ input_select = ∀ α β. α -> [β];
422+ input_text = ∀ α β. α -> [β];
423+ insteon = ∀ α β. α -> [β];
424+ integration = ∀ α β. α -> [β];
425+ intent = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
426+ intent_script = ∀ α β. α -> [β];
427+ intesishome = ∀ α β. α -> [β];
428+ ios = ∀ α β. (α.aiohttp-cors = β, α.zeroconf = β) => α -> [β];
429+ iota = ∀ α β. α -> [β];
430+ iperf3 = ∀ α β. α -> [β];
431+ ipma = ∀ α β. α -> [β];
432+ ipp = ∀ α β. (α.pyipp = β) => α -> [β];
433+ iqvia = ∀ α β. (α.numpy = β) => α -> [β];
434+ irish_rail_transport = ∀ α β. α -> [β];
435+ islamic_prayer_times = ∀ α β. α -> [β];
436+ iss = ∀ α β. α -> [β];
437+ isy994 = ∀ α β. α -> [β];
438+ itach = ∀ α β. α -> [β];
439+ itunes = ∀ α β. α -> [β];
440+ izone = ∀ α β. α -> [β];
441+ jewish_calendar = ∀ α β. α -> [β];
442+ joaoapps_join = ∀ α β. α -> [β];
443+ juicenet = ∀ α β. α -> [β];
444+ kaiterra = ∀ α β. α -> [β];
445+ kankun = ∀ α β. α -> [β];
446+ keba = ∀ α β. α -> [β];
447+ keenetic_ndms2 = ∀ α β. α -> [β];
448+ kef = ∀ α β. (α.getmac = β) => α -> [β];
449+ keyboard = ∀ α β. α -> [β];
450+ keyboard_remote = ∀ α β. (α.evdev = β) => α -> [β];
451+ kira = ∀ α β. α -> [β];
452+ kiwi = ∀ α β. α -> [β];
453+ knx = ∀ α β. α -> [β];
454+ kodi = ∀ α β. (α.jsonrpc-async = β, α.jsonrpc-websocket = β) => α -> [β];
455+ konnected = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
456+ kwb = ∀ α β. α -> [β];
457+ lacrosse = ∀ α β. α -> [β];
458+ lametric = ∀ α β. α -> [β];
459+ lannouncer = ∀ α β. α -> [β];
460+ lastfm = ∀ α β. (α.pylast = β) => α -> [β];
461+ launch_library = ∀ α β. α -> [β];
462+ lcn = ∀ α β. α -> [β];
463+ lg_netcast = ∀ α β. α -> [β];
464+ lg_soundbar = ∀ α β. α -> [β];
465+ life360 = ∀ α β. α -> [β];
466+ lifx = ∀ α β. (α.aiolifx = β, α.aiolifx-effects = β) => α -> [β];
467+ lifx_cloud = ∀ α β. α -> [β];
468+ lifx_legacy = ∀ α β. α -> [β];
469+ light = ∀ α β. α -> [β];
470+ lightwave = ∀ α β. α -> [β];
471+ limitlessled = ∀ α β. (α.limitlessled = β) => α -> [β];
472+ linksys_smart = ∀ α β. α -> [β];
473+ linode = ∀ α β. (α.linode-api = β) => α -> [β];
474+ linux_battery = ∀ α β. (α.batinfo = β) => α -> [β];
475+ lirc = ∀ α β. α -> [β];
476+ litejet = ∀ α β. α -> [β];
477+ llamalab_automate = ∀ α β. α -> [β];
478+ local_file = ∀ α β. α -> [β];
479+ local_ip = ∀ α β. α -> [β];
480+ locative = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
481+ lock = ∀ α β. α -> [β];
482+ logbook = ∀ α β. (α.aiohttp-cors = β, α.sqlalchemy = β) => α -> [β];
483+ logentries = ∀ α β. α -> [β];
484+ logger = ∀ α β. α -> [β];
485+ logi_circle = ∀ α β. (α.aiohttp-cors = β, α.ha-ffmpeg = β) => α -> [β];
486+ london_air = ∀ α β. α -> [β];
487+ london_underground = ∀ α β. α -> [β];
488+ loopenergy = ∀ α β. α -> [β];
489+ lovelace = ∀ α β. α -> [β];
490+ luci = ∀ α β. (α.openwrt-luci-rpc = β) => α -> [β];
491+ luftdaten = ∀ α β. (α.luftdaten = β) => α -> [β];
492+ lupusec = ∀ α β. α -> [β];
493+ lutron = ∀ α β. α -> [β];
494+ lutron_caseta = ∀ α β. α -> [β];
495+ lw12wifi = ∀ α β. α -> [β];
496+ lyft = ∀ α β. α -> [β];
497+ magicseaweed = ∀ α β. α -> [β];
498+ mailbox = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
499+ mailgun = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
500+ manual = ∀ α β. α -> [β];
501+ manual_mqtt = ∀ α β. (α.aiohttp-cors = β, α.paho-mqtt = β) => α -> [β];
502+ map = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
503+ marytts = ∀ α β. α -> [β];
504+ mastodon = ∀ α β. α -> [β];
505+ matrix = ∀ α β. (α.matrix-client = β) => α -> [β];
506+ maxcube = ∀ α β. α -> [β];
507+ mcp23017 = ∀ α β. α -> [β];
508+ media_extractor =
509+ ∀ α β. (α.aiohttp-cors = β, α.youtube-dl-light = β) => α -> [β];
510+ media_player = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
511+ mediaroom = ∀ α β. α -> [β];
512+ melcloud = ∀ α β. α -> [β];
513+ melissa = ∀ α β. α -> [β];
514+ meraki = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
515+ message_bird = ∀ α β. α -> [β];
516+ met = ∀ α β. (α.pymetno = β) => α -> [β];
517+ meteo_france = ∀ α β. α -> [β];
518+ meteoalarm = ∀ α β. α -> [β];
519+ metoffice = ∀ α β. α -> [β];
520+ mfi = ∀ α β. α -> [β];
521+ mhz19 = ∀ α β. α -> [β];
522+ microsoft = ∀ α β. α -> [β];
523+ microsoft_face = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
524+ microsoft_face_detect = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
525+ microsoft_face_identify = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
526+ miflora = ∀ α β. (α.bluepy = β) => α -> [β];
527+ mikrotik = ∀ α β. α -> [β];
528+ mill = ∀ α β. α -> [β];
529+ min_max = ∀ α β. α -> [β];
530+ minecraft_server = ∀ α β. (α.aiodns = β, α.getmac = β) => α -> [β];
531+ minio = ∀ α β. (α.minio = β) => α -> [β];
532+ mitemp_bt = ∀ α β. α -> [β];
533+ mjpeg = ∀ α β. α -> [β];
534+ mobile_app =
535+ ∀ α β.
536+ ( α.aiohttp-cors = β,
537+ α.emoji = β,
538+ α.hass-nabucasa = β,
539+ α.pynacl = β
540+ ) =>
541+ α -> [β];
542+ mochad = ∀ α β. α -> [β];
543+ modbus = ∀ α β. α -> [β];
544+ modem_callerid = ∀ α β. α -> [β];
545+ mold_indicator = ∀ α β. α -> [β];
546+ monoprice = ∀ α β. α -> [β];
547+ moon = ∀ α β. α -> [β];
548+ mpchc = ∀ α β. α -> [β];
549+ mpd = ∀ α β. (α.mpd2 = β) => α -> [β];
550+ mqtt = ∀ α β. (α.aiohttp-cors = β, α.paho-mqtt = β) => α -> [β];
551+ mqtt_eventstream =
552+ ∀ α β. (α.aiohttp-cors = β, α.paho-mqtt = β) => α -> [β];
553+ mqtt_json = ∀ α β. (α.aiohttp-cors = β, α.paho-mqtt = β) => α -> [β];
554+ mqtt_room = ∀ α β. (α.aiohttp-cors = β, α.paho-mqtt = β) => α -> [β];
555+ mqtt_statestream =
556+ ∀ α β. (α.aiohttp-cors = β, α.paho-mqtt = β) => α -> [β];
557+ msteams = ∀ α β. α -> [β];
558+ mvglive = ∀ α β. (α.PyMVGLive = β) => α -> [β];
559+ mychevy = ∀ α β. α -> [β];
560+ mycroft = ∀ α β. α -> [β];
561+ myq = ∀ α β. α -> [β];
562+ mysensors = ∀ α β. (α.aiohttp-cors = β, α.paho-mqtt = β) => α -> [β];
563+ mystrom = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
564+ mythicbeastsdns = ∀ α β. α -> [β];
565+ n26 = ∀ α β. α -> [β];
566+ nad = ∀ α β. α -> [β];
567+ namecheapdns = ∀ α β. (α.defusedxml = β) => α -> [β];
568+ nanoleaf = ∀ α β. (α.pynanoleaf = β) => α -> [β];
569+ neato = ∀ α β. (α.pybotvac = β) => α -> [β];
570+ nederlandse_spoorwegen = ∀ α β. α -> [β];
571+ nello = ∀ α β. α -> [β];
572+ ness_alarm = ∀ α β. α -> [β];
573+ nest = ∀ α β. α -> [β];
574+ netatmo =
575+ ∀ α β.
576+ (α.aiohttp-cors = β, α.hass-nabucasa = β, α.pyatmo = β) => α -> [β];
577+ netdata = ∀ α β. α -> [β];
578+ netgear = ∀ α β. α -> [β];
579+ netgear_lte = ∀ α β. α -> [β];
580+ netio = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
581+ neurio_energy = ∀ α β. α -> [β];
582+ nexia = ∀ α β. α -> [β];
583+ nextbus = ∀ α β. α -> [β];
584+ nextcloud = ∀ α β. α -> [β];
585+ nfandroidtv = ∀ α β. α -> [β];
586+ niko_home_control = ∀ α β. α -> [β];
587+ nilu = ∀ α β. α -> [β];
588+ nissan_leaf = ∀ α β. α -> [β];
589+ nmap_tracker = ∀ α β. (α.getmac = β) => α -> [β];
590+ nmbs = ∀ α β. α -> [β];
591+ no_ip = ∀ α β. α -> [β];
592+ noaa_tides = ∀ α β. α -> [β];
593+ norway_air = ∀ α β. (α.pymetno = β) => α -> [β];
594+ notify = ∀ α β. α -> [β];
595+ notify_events = ∀ α β. α -> [β];
596+ notion = ∀ α β. α -> [β];
597+ nsw_fuel_station = ∀ α β. α -> [β];
598+ nsw_rural_fire_service_feed = ∀ α β. α -> [β];
599+ nuheat = ∀ α β. α -> [β];
600+ nuimo_controller = ∀ α β. α -> [β];
601+ nuki = ∀ α β. α -> [β];
602+ numato = ∀ α β. α -> [β];
603+ nut = ∀ α β. α -> [β];
604+ nws = ∀ α β. α -> [β];
605+ nx584 = ∀ α β. α -> [β];
606+ nzbget = ∀ α β. α -> [β];
607+ oasa_telematics = ∀ α β. α -> [β];
608+ obihai = ∀ α β. α -> [β];
609+ octoprint =
610+ ∀ α β. (α.aiohttp-cors = β, α.netdisco = β, α.zeroconf = β) => α -> [β];
611+ oem = ∀ α β. α -> [β];
612+ ohmconnect = ∀ α β. (α.defusedxml = β) => α -> [β];
613+ ombi = ∀ α β. α -> [β];
614+ onboarding = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
615+ onewire = ∀ α β. α -> [β];
616+ onkyo = ∀ α β. (α.onkyo-eiscp = β) => α -> [β];
617+ onvif = ∀ α β. (α.ha-ffmpeg = β) => α -> [β];
618+ openalpr_cloud = ∀ α β. α -> [β];
619+ openalpr_local = ∀ α β. α -> [β];
620+ opencv = ∀ α β. (α.numpy = β) => α -> [β];
621+ openerz = ∀ α β. α -> [β];
622+ openevse = ∀ α β. α -> [β];
623+ openexchangerates = ∀ α β. α -> [β];
624+ opengarage = ∀ α β. α -> [β];
625+ openhardwaremonitor = ∀ α β. α -> [β];
626+ openhome = ∀ α β. α -> [β];
627+ opensensemap = ∀ α β. α -> [β];
628+ opensky = ∀ α β. α -> [β];
629+ opentherm_gw = ∀ α β. α -> [β];
630+ openuv = ∀ α β. α -> [β];
631+ openweathermap = ∀ α β. (α.pyowm = β) => α -> [β];
632+ opnsense = ∀ α β. α -> [β];
633+ opple = ∀ α β. α -> [β];
634+ orangepi_gpio = ∀ α β. α -> [β];
635+ oru = ∀ α β. α -> [β];
636+ orvibo = ∀ α β. α -> [β];
637+ osramlightify = ∀ α β. α -> [β];
638+ otp = ∀ α β. (α.pyotp = β) => α -> [β];
639+ ovo_energy = ∀ α β. α -> [β];
640+ owntracks =
641+ ∀ α β.
642+ ( α.aiohttp-cors = β,
643+ α.hass-nabucasa = β,
644+ α.paho-mqtt = β,
645+ α.pynacl = β
646+ ) =>
647+ α -> [β];
648+ ozw = ∀ α β. (α.aiohttp-cors = β, α.paho-mqtt = β) => α -> [β];
649+ panasonic_bluray = ∀ α β. α -> [β];
650+ panasonic_viera = ∀ α β. α -> [β];
651+ pandora = ∀ α β. (α.pexpect = β) => α -> [β];
652+ panel_custom = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
653+ panel_iframe = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
654+ pcal9535a = ∀ α β. α -> [β];
655+ pencom = ∀ α β. α -> [β];
656+ persistent_notification = ∀ α β. α -> [β];
657+ person = ∀ α β. α -> [β];
658+ philips_js = ∀ α β. α -> [β];
659+ pi4ioe5v9xxxx = ∀ α β. α -> [β];
660+ pi_hole = ∀ α β. α -> [β];
661+ picotts = ∀ α β. α -> [β];
662+ piglow = ∀ α β. α -> [β];
663+ pilight = ∀ α β. α -> [β];
664+ ping = ∀ α β. α -> [β];
665+ pioneer = ∀ α β. α -> [β];
666+ pjlink = ∀ α β. α -> [β];
667+ plaato = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
668+ plant = ∀ α β. (α.sqlalchemy = β) => α -> [β];
669+ plex =
670+ ∀ α β.
671+ ( α.aiohttp-cors = β,
672+ α.plexapi = β,
673+ α.plexauth = β,
674+ α.plexwebsocket = β,
675+ α.pysonos = β
676+ ) =>
677+ α -> [β];
678+ plugwise = ∀ α β. α -> [β];
679+ plum_lightpad = ∀ α β. α -> [β];
680+ pocketcasts = ∀ α β. α -> [β];
681+ point = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
682+ poolsense = ∀ α β. α -> [β];
683+ powerwall = ∀ α β. α -> [β];
684+ prezzibenzina = ∀ α β. α -> [β];
685+ proliphix = ∀ α β. α -> [β];
686+ prometheus =
687+ ∀ α β. (α.aiohttp-cors = β, α.prometheus_client = β) => α -> [β];
688+ prowl = ∀ α β. α -> [β];
689+ proximity = ∀ α β. α -> [β];
690+ proxmoxve = ∀ α β. α -> [β];
691+ proxy = ∀ α β. (α.pillow = β) => α -> [β];
692+ ps4 = ∀ α β. α -> [β];
693+ ptvsd = ∀ α β. α -> [β];
694+ pulseaudio_loopback = ∀ α β. (α.pulsectl = β) => α -> [β];
695+ push = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
696+ pushbullet = ∀ α β. (α.pushbullet = β) => α -> [β];
697+ pushover = ∀ α β. (α.pushover-complete = β) => α -> [β];
698+ pushsafer = ∀ α β. α -> [β];
699+ pvoutput = ∀ α β. (α.jsonpath = β, α.xmltodict = β) => α -> [β];
700+ pvpc_hourly_pricing = ∀ α β. α -> [β];
701+ pyload = ∀ α β. α -> [β];
702+ python_script = ∀ α β. (α.restrictedpython = β) => α -> [β];
703+ qbittorrent = ∀ α β. α -> [β];
704+ qld_bushfire = ∀ α β. α -> [β];
705+ qnap = ∀ α β. α -> [β];
706+ qrcode = ∀ α β. (α.pillow = β) => α -> [β];
707+ quantum_gateway = ∀ α β. α -> [β];
708+ qvr_pro = ∀ α β. α -> [β];
709+ qwikswitch = ∀ α β. α -> [β];
710+ rachio = ∀ α β. (α.aiohttp-cors = β, α.hass-nabucasa = β) => α -> [β];
711+ radarr = ∀ α β. α -> [β];
712+ radiotherm = ∀ α β. α -> [β];
713+ rainbird = ∀ α β. α -> [β];
714+ raincloud = ∀ α β. α -> [β];
715+ rainforest_eagle = ∀ α β. α -> [β];
716+ rainmachine = ∀ α β. α -> [β];
717+ random = ∀ α β. α -> [β];
718+ raspihats = ∀ α β. α -> [β];
719+ raspyrfm = ∀ α β. α -> [β];
720+ recollect_waste = ∀ α β. α -> [β];
721+ recorder = ∀ α β. (α.sqlalchemy = β) => α -> [β];
722+ recswitch = ∀ α β. α -> [β];
723+ reddit = ∀ α β. (α.praw = β) => α -> [β];
724+ rejseplanen = ∀ α β. α -> [β];
725+ remember_the_milk = ∀ α β. (α.httplib2 = β) => α -> [β];
726+ remote = ∀ α β. α -> [β];
727+ remote_rpi_gpio = ∀ α β. α -> [β];
728+ repetier = ∀ α β. α -> [β];
729+ rest = ∀ α β. (α.jsonpath = β, α.xmltodict = β) => α -> [β];
730+ rest_command = ∀ α β. α -> [β];
731+ rflink = ∀ α β. α -> [β];
732+ rfxtrx = ∀ α β. α -> [β];
733+ ring = ∀ α β. (α.ha-ffmpeg = β) => α -> [β];
734+ ripple = ∀ α β. α -> [β];
735+ rmvtransport = ∀ α β. (α.PyRMVtransport = β) => α -> [β];
736+ rocketchat = ∀ α β. α -> [β];
737+ roku = ∀ α β. α -> [β];
738+ roomba = ∀ α β. α -> [β];
739+ route53 = ∀ α β. (α.boto3 = β) => α -> [β];
740+ rova = ∀ α β. α -> [β];
741+ rpi_camera = ∀ α β. α -> [β];
742+ rpi_gpio = ∀ α β. α -> [β];
743+ rpi_gpio_pwm = ∀ α β. α -> [β];
744+ rpi_pfio = ∀ α β. α -> [β];
745+ rpi_rf = ∀ α β. α -> [β];
746+ rss_feed_template = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
747+ rtorrent = ∀ α β. α -> [β];
748+ russound_rio = ∀ α β. α -> [β];
749+ russound_rnet = ∀ α β. α -> [β];
750+ sabnzbd =
751+ ∀ α β. (α.aiohttp-cors = β, α.netdisco = β, α.zeroconf = β) => α -> [β];
752+ safe_mode = ∀ α β. (α.aiohttp-cors = β, α.hass-nabucasa = β) => α -> [β];
753+ saj = ∀ α β. α -> [β];
754+ salt = ∀ α β. α -> [β];
755+ samsungtv = ∀ α β. (α.samsungctl = β, α.samsungtvws = β) => α -> [β];
756+ satel_integra = ∀ α β. α -> [β];
757+ scene = ∀ α β. α -> [β];
758+ schluter = ∀ α β. α -> [β];
759+ scrape =
760+ ∀ α β.
761+ (α.beautifulsoup4 = β, α.jsonpath = β, α.xmltodict = β) => α -> [β];
762+ script = ∀ α β. α -> [β];
763+ scsgate = ∀ α β. α -> [β];
764+ search = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
765+ season = ∀ α β. (α.ephem = β) => α -> [β];
766+ sendgrid = ∀ α β. α -> [β];
767+ sense = ∀ α β. α -> [β];
768+ sensehat = ∀ α β. α -> [β];
769+ sensibo = ∀ α β. α -> [β];
770+ sensor = ∀ α β. α -> [β];
771+ sentry = ∀ α β. (α.sentry-sdk = β) => α -> [β];
772+ serial = ∀ α β. (α.pyserial-asyncio = β) => α -> [β];
773+ serial_pm = ∀ α β. α -> [β];
774+ sesame = ∀ α β. α -> [β];
775+ seven_segments = ∀ α β. (α.pillow = β) => α -> [β];
776+ seventeentrack = ∀ α β. α -> [β];
777+ shell_command = ∀ α β. α -> [β];
778+ shiftr = ∀ α β. (α.paho-mqtt = β) => α -> [β];
779+ shodan = ∀ α β. (α.shodan = β) => α -> [β];
780+ shopping_list = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
781+ sht31 = ∀ α β. α -> [β];
782+ sigfox = ∀ α β. α -> [β];
783+ sighthound = ∀ α β. (α.pillow = β) => α -> [β];
784+ signal_messenger = ∀ α β. α -> [β];
785+ simplepush = ∀ α β. α -> [β];
786+ simplisafe = ∀ α β. α -> [β];
787+ simulated = ∀ α β. α -> [β];
788+ sinch = ∀ α β. α -> [β];
789+ sisyphus = ∀ α β. α -> [β];
790+ sky_hub = ∀ α β. α -> [β];
791+ skybeacon = ∀ α β. α -> [β];
792+ skybell = ∀ α β. α -> [β];
793+ slack = ∀ α β. α -> [β];
794+ sleepiq = ∀ α β. α -> [β];
795+ slide = ∀ α β. α -> [β];
796+ sma = ∀ α β. α -> [β];
797+ smappee = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
798+ smarthab = ∀ α β. α -> [β];
799+ smartthings =
800+ ∀ α β. (α.aiohttp-cors = β, α.hass-nabucasa = β) => α -> [β];
801+ smarty = ∀ α β. α -> [β];
802+ smhi = ∀ α β. α -> [β];
803+ sms = ∀ α β. α -> [β];
804+ smtp = ∀ α β. α -> [β];
805+ snapcast = ∀ α β. (α.snapcast = β) => α -> [β];
806+ snips = ∀ α β. (α.aiohttp-cors = β, α.paho-mqtt = β) => α -> [β];
807+ snmp = ∀ α β. (α.pysnmp = β) => α -> [β];
808+ sochain = ∀ α β. α -> [β];
809+ socialblade = ∀ α β. α -> [β];
810+ solaredge = ∀ α β. (α.stringcase = β) => α -> [β];
811+ solaredge_local = ∀ α β. α -> [β];
812+ solarlog = ∀ α β. α -> [β];
813+ solax = ∀ α β. α -> [β];
814+ soma = ∀ α β. α -> [β];
815+ somfy = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
816+ somfy_mylink = ∀ α β. α -> [β];
817+ sonarr = ∀ α β. α -> [β];
818+ songpal = ∀ α β. α -> [β];
819+ sonos = ∀ α β. (α.pysonos = β) => α -> [β];
820+ sony_projector = ∀ α β. α -> [β];
821+ soundtouch =
822+ ∀ α β.
823+ (α.aiohttp-cors = β, α.libsoundtouch = β, α.zeroconf = β) => α -> [β];
824+ spaceapi = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
825+ spc = ∀ α β. α -> [β];
826+ speedtestdotnet = ∀ α β. (α.speedtest-cli = β) => α -> [β];
827+ spider = ∀ α β. α -> [β];
828+ splunk = ∀ α β. α -> [β];
829+ spotcrime = ∀ α β. α -> [β];
830+ spotify = ∀ α β. (α.aiohttp-cors = β, α.spotipy = β) => α -> [β];
831+ sql = ∀ α β. (α.sqlalchemy = β) => α -> [β];
832+ squeezebox = ∀ α β. (α.pysqueezebox = β) => α -> [β];
833+ ssdp =
834+ ∀ α β.
835+ ( α.aiohttp-cors = β,
836+ α.defusedxml = β,
837+ α.netdisco = β,
838+ α.zeroconf = β
839+ ) =>
840+ α -> [β];
841+ starline = ∀ α β. α -> [β];
842+ starlingbank = ∀ α β. α -> [β];
843+ startca = ∀ α β. (α.xmltodict = β) => α -> [β];
844+ statistics = ∀ α β. (α.sqlalchemy = β) => α -> [β];
845+ statsd = ∀ α β. (α.statsd = β) => α -> [β];
846+ steam_online = ∀ α β. α -> [β];
847+ stiebel_eltron = ∀ α β. α -> [β];
848+ stookalert = ∀ α β. α -> [β];
849+ stream = ∀ α β. (α.aiohttp-cors = β, α.av = β) => α -> [β];
850+ streamlabswater = ∀ α β. α -> [β];
851+ stt = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
852+ suez_water = ∀ α β. α -> [β];
853+ sun = ∀ α β. α -> [β];
854+ supervisord = ∀ α β. α -> [β];
855+ supla = ∀ α β. α -> [β];
856+ surepetcare = ∀ α β. α -> [β];
857+ swiss_hydrological_data = ∀ α β. α -> [β];
858+ swiss_public_transport = ∀ α β. α -> [β];
859+ swisscom = ∀ α β. α -> [β];
860+ switch = ∀ α β. α -> [β];
861+ switchbot = ∀ α β. α -> [β];
862+ switcher_kis = ∀ α β. α -> [β];
863+ switchmate = ∀ α β. α -> [β];
864+ syncthru = ∀ α β. α -> [β];
865+ synology = ∀ α β. α -> [β];
866+ synology_chat = ∀ α β. α -> [β];
867+ synology_dsm = ∀ α β. α -> [β];
868+ synology_srm = ∀ α β. α -> [β];
869+ syslog = ∀ α β. α -> [β];
870+ system_health = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
871+ system_log = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
872+ systemmonitor = ∀ α β. (α.psutil = β) => α -> [β];
873+ tado = ∀ α β. α -> [β];
874+ tahoma = ∀ α β. α -> [β];
875+ tank_utility = ∀ α β. α -> [β];
876+ tankerkoenig = ∀ α β. α -> [β];
877+ tapsaff = ∀ α β. α -> [β];
878+ tautulli = ∀ α β. α -> [β];
879+ tcp = ∀ α β. α -> [β];
880+ ted5000 = ∀ α β. (α.xmltodict = β) => α -> [β];
881+ teksavvy = ∀ α β. α -> [β];
882+ telegram =
883+ ∀ α β.
884+ (α.aiohttp-cors = β, α.pysocks = β, α.python-telegram-bot = β) => α ->
885+ [β];
886+ telegram_bot =
887+ ∀ α β.
888+ (α.aiohttp-cors = β, α.pysocks = β, α.python-telegram-bot = β) => α ->
889+ [β];
890+ tellduslive = ∀ α β. α -> [β];
891+ tellstick = ∀ α β. α -> [β];
892+ telnet = ∀ α β. α -> [β];
893+ temper = ∀ α β. α -> [β];
894+ template = ∀ α β. α -> [β];
895+ tensorflow =
896+ ∀ α β. (α.numpy = β, α.pillow = β, α.protobuf = β) => α -> [β];
897+ tesla = ∀ α β. α -> [β];
898+ tfiac = ∀ α β. α -> [β];
899+ thermoworks_smoke = ∀ α β. (α.stringcase = β) => α -> [β];
900+ thethingsnetwork = ∀ α β. α -> [β];
901+ thingspeak = ∀ α β. α -> [β];
902+ thinkingcleaner = ∀ α β. α -> [β];
903+ thomson = ∀ α β. α -> [β];
904+ threshold = ∀ α β. α -> [β];
905+ tibber = ∀ α β. α -> [β];
906+ tikteck = ∀ α β. α -> [β];
907+ tile = ∀ α β. α -> [β];
908+ time_date = ∀ α β. α -> [β];
909+ timer = ∀ α β. α -> [β];
910+ tmb = ∀ α β. α -> [β];
911+ tod = ∀ α β. α -> [β];
912+ todoist = ∀ α β. (α.todoist = β) => α -> [β];
913+ tof = ∀ α β. α -> [β];
914+ tomato = ∀ α β. α -> [β];
915+ toon = ∀ α β. (α.aiohttp-cors = β, α.hass-nabucasa = β) => α -> [β];
916+ torque = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
917+ totalconnect = ∀ α β. α -> [β];
918+ touchline = ∀ α β. α -> [β];
919+ tplink = ∀ α β. (α.pyhs100 = β) => α -> [β];
920+ tplink_lte = ∀ α β. α -> [β];
921+ traccar = ∀ α β. (α.aiohttp-cors = β, α.stringcase = β) => α -> [β];
922+ trackr = ∀ α β. α -> [β];
923+ tradfri = ∀ α β. α -> [β];
924+ trafikverket_train = ∀ α β. α -> [β];
925+ trafikverket_weatherstation = ∀ α β. α -> [β];
926+ transmission = ∀ α β. (α.transmissionrpc = β) => α -> [β];
927+ transport_nsw = ∀ α β. α -> [β];
928+ travisci = ∀ α β. α -> [β];
929+ trend = ∀ α β. (α.numpy = β) => α -> [β];
930+ tts = ∀ α β. (α.aiohttp-cors = β, α.mutagen = β) => α -> [β];
931+ tuya = ∀ α β. α -> [β];
932+ twentemilieu = ∀ α β. α -> [β];
933+ twilio = ∀ α β. (α.aiohttp-cors = β, α.twilio = β) => α -> [β];
934+ twilio_call = ∀ α β. (α.aiohttp-cors = β, α.twilio = β) => α -> [β];
935+ twilio_sms = ∀ α β. (α.aiohttp-cors = β, α.twilio = β) => α -> [β];
936+ twitch = ∀ α β. α -> [β];
937+ twitter = ∀ α β. α -> [β];
938+ ubee = ∀ α β. α -> [β];
939+ ubus = ∀ α β. α -> [β];
940+ ue_smart_radio = ∀ α β. α -> [β];
941+ uk_transport = ∀ α β. α -> [β];
942+ unifi = ∀ α β. (α.aiounifi = β) => α -> [β];
943+ unifi_direct = ∀ α β. (α.pexpect = β) => α -> [β];
944+ unifiled = ∀ α β. α -> [β];
945+ universal = ∀ α β. α -> [β];
946+ upb = ∀ α β. α -> [β];
947+ upc_connect = ∀ α β. α -> [β];
948+ upcloud = ∀ α β. α -> [β];
949+ updater = ∀ α β. (α.distro = β) => α -> [β];
950+ upnp = ∀ α β. (α.async-upnp-client = β) => α -> [β];
951+ uptime = ∀ α β. α -> [β];
952+ uptimerobot = ∀ α β. α -> [β];
953+ uscis = ∀ α β. α -> [β];
954+ usgs_earthquakes_feed = ∀ α β. α -> [β];
955+ utility_meter = ∀ α β. α -> [β];
956+ uvc = ∀ α β. (α.uvcclient = β) => α -> [β];
957+ vacuum = ∀ α β. α -> [β];
958+ vallox = ∀ α β. α -> [β];
959+ vasttrafik = ∀ α β. α -> [β];
960+ velbus = ∀ α β. α -> [β];
961+ velux = ∀ α β. α -> [β];
962+ venstar = ∀ α β. α -> [β];
963+ vera = ∀ α β. α -> [β];
964+ verisure = ∀ α β. (α.jsonpath = β) => α -> [β];
965+ versasense = ∀ α β. α -> [β];
966+ version = ∀ α β. (α.pyhaversion = β) => α -> [β];
967+ vesync = ∀ α β. α -> [β];
968+ viaggiatreno = ∀ α β. α -> [β];
969+ vicare = ∀ α β. α -> [β];
970+ vilfo = ∀ α β. α -> [β];
971+ vivotek = ∀ α β. α -> [β];
972+ vizio = ∀ α β. α -> [β];
973+ vlc = ∀ α β. (α.python-vlc = β) => α -> [β];
974+ vlc_telnet = ∀ α β. α -> [β];
975+ voicerss = ∀ α β. α -> [β];
976+ volkszaehler = ∀ α β. α -> [β];
977+ volumio = ∀ α β. α -> [β];
978+ volvooncall = ∀ α β. α -> [β];
979+ vultr = ∀ α β. (α.vultr = β) => α -> [β];
980+ w800rf32 = ∀ α β. α -> [β];
981+ wake_on_lan = ∀ α β. (α.wakeonlan = β) => α -> [β];
982+ waqi = ∀ α β. α -> [β];
983+ water_heater = ∀ α β. α -> [β];
984+ waterfurnace = ∀ α β. α -> [β];
985+ watson_iot = ∀ α β. α -> [β];
986+ watson_tts = ∀ α β. α -> [β];
987+ waze_travel_time = ∀ α β. (α.WazeRouteCalculator = β) => α -> [β];
988+ weather = ∀ α β. α -> [β];
989+ webhook = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
990+ webostv = ∀ α β. α -> [β];
991+ websocket_api = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
992+ wemo = ∀ α β. α -> [β];
993+ whois = ∀ α β. α -> [β];
994+ wiffi = ∀ α β. α -> [β];
995+ wink = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
996+ wirelesstag = ∀ α β. α -> [β];
997+ withings = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
998+ wled = ∀ α β. α -> [β];
999+ wolflink = ∀ α β. α -> [β];
1000+ workday = ∀ α β. (α.holidays = β) => α -> [β];
1001+ worldclock = ∀ α β. α -> [β];
1002+ worldtidesinfo = ∀ α β. α -> [β];
1003+ worxlandroid = ∀ α β. α -> [β];
1004+ wsdot = ∀ α β. α -> [β];
1005+ wunderground = ∀ α β. α -> [β];
1006+ x10 = ∀ α β. α -> [β];
1007+ xbee = ∀ α β. α -> [β];
1008+ xbox_live = ∀ α β. α -> [β];
1009+ xeoma = ∀ α β. α -> [β];
1010+ xfinity = ∀ α β. α -> [β];
1011+ xiaomi = ∀ α β. (α.ha-ffmpeg = β) => α -> [β];
1012+ xiaomi_aqara =
1013+ ∀ α β. (α.aiohttp-cors = β, α.netdisco = β, α.zeroconf = β) => α -> [β];
1014+ xiaomi_miio = ∀ α β. (α.construct = β, α.python-miio = β) => α -> [β];
1015+ xiaomi_tv = ∀ α β. α -> [β];
1016+ xmpp = ∀ α β. (α.slixmpp = β) => α -> [β];
1017+ xs1 = ∀ α β. α -> [β];
1018+ yale_smart_alarm = ∀ α β. α -> [β];
1019+ yamaha = ∀ α β. (α.rxv = β) => α -> [β];
1020+ yamaha_musiccast = ∀ α β. α -> [β];
1021+ yandex_transport = ∀ α β. α -> [β];
1022+ yandextts = ∀ α β. α -> [β];
1023+ yeelight =
1024+ ∀ α β.
1025+ ( α.aiohttp-cors = β,
1026+ α.netdisco = β,
1027+ α.yeelight = β,
1028+ α.zeroconf = β
1029+ ) =>
1030+ α -> [β];
1031+ yeelightsunflower = ∀ α β. α -> [β];
1032+ yessssms = ∀ α β. α -> [β];
1033+ yi = ∀ α β. (α.aioftp = β, α.ha-ffmpeg = β) => α -> [β];
1034+ yr = ∀ α β. (α.xmltodict = β) => α -> [β];
1035+ zabbix = ∀ α β. α -> [β];
1036+ zamg = ∀ α β. α -> [β];
1037+ zengge = ∀ α β. α -> [β];
1038+ zeroconf = ∀ α β. (α.aiohttp-cors = β, α.zeroconf = β) => α -> [β];
1039+ zerproc = ∀ α β. α -> [β];
1040+ zestimate = ∀ α β. (α.xmltodict = β) => α -> [β];
1041+ zha =
1042+ ∀ α β.
1043+ ( α.bellows = β,
1044+ α.pyserial = β,
1045+ α.zha-quirks = β,
1046+ α.zigpy = β,
1047+ α.zigpy-cc = β,
1048+ α.zigpy-deconz = β,
1049+ α.zigpy-xbee = β,
1050+ α.zigpy-zigate = β
1051+ ) =>
1052+ α -> [β];
1053+ zhong_hong = ∀ α β. α -> [β];
1054+ ziggo_mediabox_xl = ∀ α β. α -> [β];
1055+ zone = ∀ α β. α -> [β];
1056+ zoneminder = ∀ α β. (α.zm-py = β) => α -> [β];
1057+ zwave =
1058+ ∀ α β. (α.homeassistant-pyozw = β, α.pydispatcher = β) => α -> [β];
1059+ };
1060+ version = String;
1061+}
test/golden/importless/compose-xcodewrapper.txtnew file+5
@@ -0,0 +1,5 @@
1+∀ α β.
2+( α.isDarwin = Bool,
3+ α.mkDerivation = {buildCommand = String; name = String;} -> β
4+) =>
5+{stdenv = α;} -> {version = String; xcodeBaseDir = String;} -> β
test/golden/importless/composition.txtnew file+25
@@ -0,0 +1,25 @@
1+∀ α β γ δ ε ζ η θ.
2+( α.licenses = β,
3+ α.maintainers = γ,
4+ β.bsd3 = δ,
5+ γ.brainrape = ε
6+) =>
7+{ build-idris-package =
8+ { idrisDeps = [ζ];
9+ meta =
10+ { description = String;
11+ homepage = String;
12+ license = δ;
13+ maintainers = [ε];
14+ };
15+ name = String;
16+ src = η;
17+ version = String;
18+ } ->
19+ θ;
20+ fetchFromGitHub =
21+ {owner = String; repo = String; rev = String; sha256 = String;} -> η;
22+ hezarfen = ζ;
23+ lib = α;
24+} ->
25+θ
test/golden/importless/compyte.txt+7−1
@@ -1 +1,7 @@
1−∀ α β. { fetchFromGitHub = { owner = String; repo = String; rev = String; sha256 = String } -> α; mkDerivation = { installPhase = String; pname = String; src = α; version = String } -> β } -> β
1+∀ α β.
2+{ fetchFromGitHub =
3+ {owner = String; repo = String; rev = String; sha256 = String;} -> α;
4+ mkDerivation =
5+ {installPhase = String; pname = String; src = α; version = String;} -> β;
6+} ->
7+β
test/golden/importless/condensed.txtnew file+25
@@ -0,0 +1,25 @@
1+∀ α β γ δ ε ζ η θ.
2+( α.dtzWill = β,
3+ α.licenses = γ,
4+ α.maintainers = δ,
5+ α.platforms = ε,
6+ γ.ofl = ζ,
7+ ε.all = η
8+) =>
9+{ fetchzip =
10+ { meta =
11+ { description = String;
12+ homepage = String;
13+ license = ζ;
14+ maintainers = [β];
15+ platforms = η;
16+ };
17+ name = String;
18+ postFetch = String;
19+ sha256 = String;
20+ url = String;
21+ } ->
22+ θ;
23+ lib = α;
24+} ->
25+θ
test/golden/importless/conf.txtnew file+9
@@ -0,0 +1,9 @@
1+∀ α β γ δ ε ζ η θ.
2+( α.coreSite = β,
3+ α.hdfsSite = γ,
4+ α.mapredSite = δ,
5+ α.yarnSite = ε,
6+ ζ.buildEnv = {name = String; paths = [η];} -> θ,
7+ ζ.writeTextDir = String -> String -> η
8+) =>
9+{hadoop = α; pkgs = ζ;} -> θ
test/golden/importless/config.txtnew file+7
@@ -0,0 +1,7 @@
1+∀ α β γ δ ε.
2+( α.lib = β,
3+ α.mkDerivation =
4+ {installPhase = String; name = String; phases = String;} -> γ,
5+ β.concatMapStrings = (δ -> String) -> ε -> String
6+) =>
7+{stdenv = α;} -> {paths = ε;} -> γ
test/golden/importless/configuration-ghc-8.4.x.txtnew file+86

This diff is too big to show here.

test/golden/importless/configuration-ghc-8.6.x.txtnew file+117

This diff is too big to show here.

test/golden/importless/configuration-ghc-head.txtnew file+82

This diff is too big to show here.

test/golden/importless/configuration-tensorflow.txtnew file+30

This diff is too big to show here.

test/golden/importless/configured-ghcjs-src.txtnew file+17

This diff is too big to show here.

test/golden/importless/console.txtnew file+27

This diff is too big to show here.

test/golden/importless/consul-exporter.txtnew file+28

This diff is too big to show here.

test/golden/importless/container-config.txtnew file+21

This diff is too big to show here.

test/golden/importless/containerd-shim.txtnew file+28

This diff is too big to show here.

test/golden/importless/containers.txtnew file+26

This diff is too big to show here.

test/golden/importless/contrib.txtnew file+62

This diff is too big to show here.

test/golden/importless/control.txtnew file+41

This diff is too big to show here.

test/golden/importless/convert.txtnew file+29

This diff is too big to show here.

test/golden/importless/core_bench.txtnew file+25

This diff is too big to show here.

test/golden/importless/couchpotato.txtnew file+43

This diff is too big to show here.

test/golden/importless/cpp-test.txtnew file+14

This diff is too big to show here.

test/golden/importless/criu.txtnew file+23

This diff is too big to show here.

test/golden/importless/cryptpad.txtnew file+43

This diff is too big to show here.

test/golden/importless/cryptsetup.txtnew file+38

This diff is too big to show here.

test/golden/importless/crystal2nix.txtnew file+18

This diff is too big to show here.

test/golden/importless/css-lite.txtnew file+11

This diff is too big to show here.

test/golden/importless/css-selectors-simple-tree.txtnew file+37

This diff is too big to show here.

test/golden/importless/css-selectors-stp.txtnew file+38

This diff is too big to show here.

test/golden/importless/css-selectors.txtnew file+37

This diff is too big to show here.

test/golden/importless/cstore_fdw.txtnew file+32

This diff is too big to show here.

test/golden/importless/cstruct.txtnew file+22

This diff is too big to show here.

test/golden/importless/cube.txtnew file+23

This diff is too big to show here.

test/golden/importless/cups-exporter.txtnew file+37

This diff is too big to show here.

test/golden/importless/cups-pk-helper.txtnew file+35

This diff is too big to show here.

test/golden/importless/curaengine.txtnew file+36

This diff is too big to show here.

test/golden/importless/curry-base.txtnew file+26

This diff is too big to show here.

test/golden/importless/curry-frontend.txtnew file+35

This diff is too big to show here.

test/golden/importless/cursive.txtnew file+47

This diff is too big to show here.

test/golden/importless/cutter.txtnew file+37

This diff is too big to show here.

test/golden/importless/cwm.txtnew file+24

This diff is too big to show here.

test/golden/importless/cxml-stp.txtnew file+27

This diff is too big to show here.

test/golden/importless/cxml.txtnew file+20

This diff is too big to show here.

test/golden/importless/dante.txtnew file+48

This diff is too big to show here.

test/golden/importless/darwin.txtnew file+32

This diff is too big to show here.

test/golden/importless/das_watchdog.txtnew file+31

This diff is too big to show here.

test/golden/importless/dash.txtnew file+43

This diff is too big to show here.

test/golden/importless/dashpay.txtnew file+48

This diff is too big to show here.

test/golden/importless/data-api.txtnew file+24

This diff is too big to show here.

test/golden/importless/data.txtnew file+27

This diff is too big to show here.

test/golden/importless/datadog-agent-deps.txt+4−1

This diff is too big to show here.

test/golden/importless/datadog-process-agent-deps.txt+4−1

This diff is too big to show here.

test/golden/importless/db3.txt+11−1

This diff is too big to show here.

test/golden/importless/dbd-mysql.txtnew file+27

This diff is too big to show here.

test/golden/importless/dbd-postgres.txtnew file+27

This diff is too big to show here.

test/golden/importless/dbd-sqlite3.txtnew file+30

This diff is too big to show here.

test/golden/importless/dbi.txtnew file+22

This diff is too big to show here.

test/golden/importless/dbus-sharp-1.0.txtnew file+25

This diff is too big to show here.

test/golden/importless/dbus-sharp-glib-1.0.txtnew file+26

This diff is too big to show here.

test/golden/importless/dconf2nix.txtnew file+23

This diff is too big to show here.

test/golden/importless/dcrd.txtnew file+26

This diff is too big to show here.

test/golden/importless/dcrwallet.txtnew file+26

This diff is too big to show here.

test/golden/importless/dcw.txtnew file+22

This diff is too big to show here.

test/golden/importless/debian-build.txtnew file+29

This diff is too big to show here.

test/golden/importless/debian-patches.txt+1−1

This diff is too big to show here.

test/golden/importless/debug-info.txtnew file+18

This diff is too big to show here.

test/golden/importless/declare-attrsOf.txtnew file+8

This diff is too big to show here.

test/golden/importless/declare-coerced-value-unsound.txtnew file+11

This diff is too big to show here.

test/golden/importless/declare-either.txtnew file+9

This diff is too big to show here.

test/golden/importless/declare-enable-nested.txtnew file+8

This diff is too big to show here.

test/golden/importless/declare-enable.txtnew file+8

This diff is too big to show here.

test/golden/importless/declare-int-between-value.txtnew file+8

This diff is too big to show here.

test/golden/importless/declare-int-positive-value-nested.txtnew file+8

This diff is too big to show here.

test/golden/importless/declare-int-positive-value.txtnew file+8

This diff is too big to show here.

test/golden/importless/declare-int-unsigned-value.txtnew file+8

This diff is too big to show here.

test/golden/importless/declare-lazyAttrsOf.txtnew file+9

This diff is too big to show here.

test/golden/importless/declare-oneOf.txtnew file+11

This diff is too big to show here.

test/golden/importless/declare-submoduleWith-path.txtnew file+7

This diff is too big to show here.

test/golden/importless/declare-submoduleWith-special.txtnew file+17

This diff is too big to show here.

test/golden/importless/default-crate-overrides.txtnew file+64

This diff is too big to show here.

test/golden/importless/define-_module-args-custom.txt+1−1

This diff is too big to show here.

test/golden/importless/define-attrsOfSub-bar-enable.txt+1−1

This diff is too big to show here.

test/golden/importless/define-attrsOfSub-bar.txt+1−1

This diff is too big to show here.

test/golden/importless/define-attrsOfSub-foo-enable-force.txtnew file+3

This diff is too big to show here.

test/golden/importless/define-attrsOfSub-foo-enable-if.txtnew file+3

This diff is too big to show here.

test/golden/importless/define-attrsOfSub-foo-enable.txt+1−1

This diff is too big to show here.

test/golden/importless/define-attrsOfSub-foo-force-enable.txtnew file+3

This diff is too big to show here.

test/golden/importless/define-attrsOfSub-foo-if-enable.txtnew file+7

This diff is too big to show here.

test/golden/importless/define-attrsOfSub-foo.txt+1−1

This diff is too big to show here.

test/golden/importless/define-attrsOfSub-force-foo-enable.txtnew file+3

This diff is too big to show here.

test/golden/importless/define-attrsOfSub-if-foo-enable.txtnew file+7

This diff is too big to show here.

test/golden/importless/define-enable-force.txtnew file+1

This diff is too big to show here.

test/golden/importless/define-enable-with-custom-arg.txt+1−1

This diff is too big to show here.

test/golden/importless/define-enable.txt+1−1

This diff is too big to show here.

test/golden/importless/define-force-attrsOfSub-foo-enable.txtnew file+3

This diff is too big to show here.

test/golden/importless/define-force-enable.txtnew file+1

This diff is too big to show here.

test/golden/importless/define-if-attrsOfSub-foo-enable.txtnew file+7

This diff is too big to show here.

test/golden/importless/define-module-check.txt+1−1

This diff is too big to show here.

test/golden/importless/define-option-dependently-nested.txtnew file+10

This diff is too big to show here.

test/golden/importless/define-option-dependently.txtnew file+8

This diff is too big to show here.

test/golden/importless/define-submoduleWith-noshorthand.txt+1−1

This diff is too big to show here.

test/golden/importless/define-submoduleWith-shorthand.txt+1−1

This diff is too big to show here.

test/golden/importless/define-value-int-negative.txt+1−1

This diff is too big to show here.

test/golden/importless/define-value-int-positive.txt+1−1

This diff is too big to show here.

test/golden/importless/define-value-int-zero.txt+1−1

This diff is too big to show here.

test/golden/importless/define-value-list.txt+1−1

This diff is too big to show here.

test/golden/importless/define-value-string-arbitrary.txt+1−1

This diff is too big to show here.

test/golden/importless/define-value-string-bigint.txt+1−1

This diff is too big to show here.

test/golden/importless/define-value-string.txt+1−1

This diff is too big to show here.

test/golden/importless/dep-overrides.txtnew file+21

This diff is too big to show here.

test/golden/importless/deps.txt+4−1

This diff is too big to show here.

test/golden/importless/derive.txtnew file+26

This diff is too big to show here.

test/golden/importless/dero.txtnew file+38

This diff is too big to show here.

test/golden/importless/descncrunch.txtnew file+26

This diff is too big to show here.

test/golden/importless/desktop_items.txt+15−1

This diff is too big to show here.

test/golden/importless/detected.txtnew file+5

This diff is too big to show here.

test/golden/importless/dev.txtnew file+16

This diff is too big to show here.

test/golden/importless/devedition_sources.txt+3−1

This diff is too big to show here.

test/golden/importless/devmon.txtnew file+31

This diff is too big to show here.

test/golden/importless/dexador.txtnew file+43

This diff is too big to show here.

test/golden/importless/dfu-util.txtnew file+29

This diff is too big to show here.

test/golden/importless/dhall-kubernetes.txtnew file+20

This diff is too big to show here.

test/golden/importless/dhall-packages.txtnew file+16

This diff is too big to show here.

test/golden/importless/dict.txtnew file+26

This diff is too big to show here.

test/golden/importless/dictd-db.txtnew file+41

This diff is too big to show here.

test/golden/importless/dictd-wiktionary.txtnew file+28

This diff is too big to show here.

test/golden/importless/dictd-wordnet.txtnew file+21

This diff is too big to show here.

test/golden/importless/digest.txtnew file+36

This diff is too big to show here.

test/golden/importless/digimend.txtnew file+23

This diff is too big to show here.

test/golden/importless/disable-bar.txt+1−1

This diff is too big to show here.

test/golden/importless/disable-declare-enable.txt+1−1

This diff is too big to show here.

test/golden/importless/disable-define-enable.txt+1−1

This diff is too big to show here.

test/golden/importless/disable-enable-modules.txt+1−1

This diff is too big to show here.

test/golden/importless/disable-foo.txt+1−1

This diff is too big to show here.

test/golden/importless/discover.txt+30−1

This diff is too big to show here.

test/golden/importless/dispatch.txtnew file+32

This diff is too big to show here.

test/golden/importless/displaylink.txtnew file+42

This diff is too big to show here.

test/golden/importless/dissect.txtnew file+11

This diff is too big to show here.

test/golden/importless/django-crispy-forms.txtnew file+29

This diff is too big to show here.

test/golden/importless/django-filter.txtnew file+33

This diff is too big to show here.

test/golden/importless/dleyna-renderer.txtnew file+19

This diff is too big to show here.

test/golden/importless/dleyna-server.txtnew file+19

This diff is too big to show here.

test/golden/importless/dmraid.txtnew file+21

This diff is too big to show here.

test/golden/importless/dnsmasq-exporter.txtnew file+30

This diff is too big to show here.

test/golden/importless/do-agent.txtnew file+24

This diff is too big to show here.

test/golden/importless/do-urlencode.txtnew file+16

This diff is too big to show here.

test/golden/importless/documentation-utils.txtnew file+14

This diff is too big to show here.

test/golden/importless/dogecoin.txtnew file+49

This diff is too big to show here.

test/golden/importless/dolphin-plugins.txtnew file+19

This diff is too big to show here.

test/golden/importless/dolphin.txtnew file+46

This diff is too big to show here.

test/golden/importless/dom.txtnew file+27

This diff is too big to show here.

test/golden/importless/dotty-bare.txtnew file+36

This diff is too big to show here.

test/golden/importless/dotty.txtnew file+13

This diff is too big to show here.

test/golden/importless/dovecot-exporter-deps.txt+4−1

This diff is too big to show here.

test/golden/importless/dovecot-exporter.txtnew file+29

This diff is too big to show here.

test/golden/importless/download.txt+7−1

This diff is too big to show here.

test/golden/importless/dragon.txtnew file+43

This diff is too big to show here.

test/golden/importless/drakma.txtnew file+29

This diff is too big to show here.

test/golden/importless/dsseries.txtnew file+25

This diff is too big to show here.

test/golden/importless/dust.txtnew file+28

This diff is too big to show here.

test/golden/importless/dvtm.txtnew file+39

This diff is too big to show here.

test/golden/importless/dwm.txtnew file+24

This diff is too big to show here.

test/golden/importless/dynamic-classes.txtnew file+14

This diff is too big to show here.

test/golden/importless/dynamic-workspaces.txtnew file+35

This diff is too big to show here.

test/golden/importless/dynamic.txtnew file+34

This diff is too big to show here.

test/golden/importless/eagle.txtnew file+57

This diff is too big to show here.

test/golden/importless/easyfocus.txtnew file+40

This diff is too big to show here.

test/golden/importless/ec2-amis.txtnew file+257

This diff is too big to show here.

test/golden/importless/ec2-metadata-fetcher.txt+1−1

This diff is too big to show here.

test/golden/importless/ecryptfs.txtnew file+21

This diff is too big to show here.

test/golden/importless/edit.txtnew file+31

This diff is too big to show here.

test/golden/importless/editor.txtnew file+38

This diff is too big to show here.

test/golden/importless/editors.txtnew file+58

This diff is too big to show here.

test/golden/importless/egg2nix.txtnew file+30

This diff is too big to show here.

test/golden/importless/eggs.txtnew file+14

This diff is too big to show here.

test/golden/importless/electron.txtnew file+27

This diff is too big to show here.

test/golden/importless/electronplayer.txtnew file+26

This diff is too big to show here.

test/golden/importless/element-desktop.txtnew file+48

This diff is too big to show here.

test/golden/importless/elisa.txtnew file+27

This diff is too big to show here.

test/golden/importless/elm-format.txtnew file+46

This diff is too big to show here.

test/golden/importless/elm-instrument.txtnew file+48

This diff is too big to show here.

test/golden/importless/elm-json.txtnew file+34

This diff is too big to show here.

test/golden/importless/elm-srcs.txt+15−1

This diff is too big to show here.

test/golden/importless/elm.txtnew file+51

This diff is too big to show here.

test/golden/importless/elmi-to-json.txtnew file+34

This diff is too big to show here.

test/golden/importless/emergency-mode.txtnew file+14

This diff is too big to show here.

test/golden/importless/emscripten-packages.txtnew file+49

This diff is too big to show here.

test/golden/importless/emulate-app.txtnew file+30

This diff is too big to show here.

test/golden/importless/emulator.txtnew file+47

This diff is too big to show here.

test/golden/importless/engine.txtnew file+37

This diff is too big to show here.

test/golden/importless/engines.txtnew file+20

This diff is too big to show here.

test/golden/importless/enterprise-edition.txtnew file+55

This diff is too big to show here.

test/golden/importless/env-locations.txtnew file+19

This diff is too big to show here.

test/golden/importless/environment.txtnew file+33

This diff is too big to show here.

test/golden/importless/eos.txt+12−1

This diff is too big to show here.

test/golden/importless/epmd.txtnew file+37

This diff is too big to show here.

test/golden/importless/espanso.txtnew file+38

This diff is too big to show here.

test/golden/importless/esrap-peg.txtnew file+17

This diff is too big to show here.

test/golden/importless/esrap.txtnew file+16

This diff is too big to show here.

test/golden/importless/esxi.txtnew file+27

This diff is too big to show here.

test/golden/importless/eternal.txtnew file+26

This diff is too big to show here.

test/golden/importless/ethabi.txtnew file+27

This diff is too big to show here.

test/golden/importless/eventviews.txtnew file+23

This diff is too big to show here.

test/golden/importless/evilwm.txtnew file+24

This diff is too big to show here.

test/golden/importless/evolution-data-server.txtnew file+31

This diff is too big to show here.

test/golden/importless/exfat.txtnew file+11

This diff is too big to show here.

test/golden/importless/ext.txtnew file+10

This diff is too big to show here.

test/golden/importless/external-program.txtnew file+16

This diff is too big to show here.

test/golden/importless/extlinux-conf-builder.txtnew file+9

This diff is too big to show here.

test/golden/importless/extra-target-flags.txtnew file+14

This diff is too big to show here.

test/golden/importless/extra.txtnew file+37

This diff is too big to show here.

test/golden/importless/extract-nuget.txtnew file+16

This diff is too big to show here.

test/golden/importless/extras.txtnew file+59

This diff is too big to show here.

test/golden/importless/facetimehd.txtnew file+30

This diff is too big to show here.

test/golden/importless/fancontrol.txtnew file+34

This diff is too big to show here.

test/golden/importless/fare-quasiquote-extras.txtnew file+21

This diff is too big to show here.

test/golden/importless/fare-quasiquote-optima.txtnew file+18

This diff is too big to show here.

test/golden/importless/fare-quasiquote-readtable.txtnew file+16

This diff is too big to show here.

test/golden/importless/fare-quasiquote.txtnew file+11

This diff is too big to show here.

test/golden/importless/fare-utils.txtnew file+11

This diff is too big to show here.

test/golden/importless/farrp.txtnew file+25

This diff is too big to show here.

test/golden/importless/fast-http.txtnew file+22

This diff is too big to show here.

test/golden/importless/fast-io.txtnew file+21

This diff is too big to show here.

test/golden/importless/faust1.txtnew file+76

This diff is too big to show here.

test/golden/importless/faust2.txtnew file+102

This diff is too big to show here.

test/golden/importless/faust2alqt.txtnew file+4

This diff is too big to show here.

test/golden/importless/faust2alsa.txtnew file+15

This diff is too big to show here.

test/golden/importless/faust2csound.txtnew file+5

This diff is too big to show here.

test/golden/importless/faust2firefox.txtnew file+5

This diff is too big to show here.

test/golden/importless/faust2jack.txtnew file+13

This diff is too big to show here.

test/golden/importless/faust2jackrust.txtnew file+14

This diff is too big to show here.

test/golden/importless/faust2jaqt.txtnew file+13

This diff is too big to show here.

test/golden/importless/faust2ladspa.txtnew file+4

This diff is too big to show here.

test/golden/importless/faust2lv2.txtnew file+4

This diff is too big to show here.

test/golden/importless/faustlive.txtnew file+46

This diff is too big to show here.

test/golden/importless/faxq-default.txt+7−1

This diff is too big to show here.

test/golden/importless/fcitx-configtool.txtnew file+32

This diff is too big to show here.

test/golden/importless/fcitx-qt5.txtnew file+34

This diff is too big to show here.

test/golden/importless/fcitx.txtnew file+46

This diff is too big to show here.

test/golden/importless/fetch-hex.txtnew file+14

This diff is too big to show here.

test/golden/importless/fetch-rebar-deps.txtnew file+19

This diff is too big to show here.

test/golden/importless/fetchNodeModules.txtnew file+15

This diff is too big to show here.

test/golden/importless/fetchers.txt+1−1

This diff is too big to show here.

test/golden/importless/ffmpeg-codecs.txtnew file+25

This diff is too big to show here.

test/golden/importless/ffmpegthumbs.txtnew file+20

This diff is too big to show here.

test/golden/importless/fiasco.txtnew file+16

This diff is too big to show here.

test/golden/importless/fieldslib.txtnew file+26

This diff is too big to show here.

test/golden/importless/filelight.txtnew file+25

This diff is too big to show here.

test/golden/importless/filters.txtnew file+49

This diff is too big to show here.

test/golden/importless/firejail.txtnew file+32

This diff is too big to show here.

test/golden/importless/fiveam.txtnew file+17

This diff is too big to show here.

test/golden/importless/fixed-points.txtnew file+15

This diff is too big to show here.

test/golden/importless/flask-oldsessions.txtnew file+29

This diff is too big to show here.

test/golden/importless/flatpak-builder.txtnew file+17

This diff is too big to show here.

test/golden/importless/flatpak.txtnew file+48

This diff is too big to show here.

test/golden/importless/flexi-streams.txtnew file+15

This diff is too big to show here.

test/golden/importless/fluxbox.txtnew file+24

This diff is too big to show here.

test/golden/importless/fontdir.txtnew file+14

This diff is too big to show here.

test/golden/importless/fontforge-fonttools.txtnew file+1

This diff is too big to show here.

test/golden/importless/fonts.txtnew file+11

This diff is too big to show here.

test/golden/importless/form-fiddle.txtnew file+15

This diff is too big to show here.

test/golden/importless/fox-1.6.txtnew file+46

This diff is too big to show here.

test/golden/importless/frameworkintegration.txtnew file+26

This diff is too big to show here.

test/golden/importless/frameworks.txtnew file+161

This diff is too big to show here.

test/golden/importless/free.txtnew file+24

This diff is too big to show here.

test/golden/importless/freeform-attrsOf.txtnew file+8

This diff is too big to show here.

test/golden/importless/freeform-lazyAttrsOf.txtnew file+8

This diff is too big to show here.

test/golden/importless/freeform-nested.txtnew file+7

This diff is too big to show here.

test/golden/importless/freeform-str-dep-unstr.txtnew file+11

This diff is too big to show here.

test/golden/importless/freeform-unstr-dep-str.txtnew file+11

This diff is too big to show here.

test/golden/importless/freeoffice.txtnew file+15

This diff is too big to show here.

test/golden/importless/freetds.txtnew file+27

This diff is too big to show here.

test/golden/importless/freicoin.txtnew file+40

This diff is too big to show here.

test/golden/importless/fritzbox-exporter-deps.txt+4−1

This diff is too big to show here.

test/golden/importless/frontends.txtnew file+36

This diff is too big to show here.

test/golden/importless/frostwire-bin.txtnew file+28

This diff is too big to show here.

test/golden/importless/fs.txtnew file+23

This diff is too big to show here.

test/golden/importless/fset.txtnew file+15

This diff is too big to show here.

test/golden/importless/fsm.txtnew file+23

This diff is too big to show here.

test/golden/importless/fstrim.txtnew file+30

This diff is too big to show here.

test/golden/importless/full.txtnew file+31

This diff is too big to show here.

test/golden/importless/fuseki-binary.txtnew file+33

This diff is too big to show here.

test/golden/importless/fvwm.txtnew file+32

This diff is too big to show here.

test/golden/importless/game.txtnew file+29

This diff is too big to show here.

test/golden/importless/gaps.txtnew file+34

This diff is too big to show here.

test/golden/importless/garbage-pools.txt+11−1

This diff is too big to show here.

test/golden/importless/garmindev.txtnew file+29

This diff is too big to show here.

test/golden/importless/gateone.txtnew file+62

This diff is too big to show here.

test/golden/importless/gawk-with-extensions.txt+7−1

This diff is too big to show here.

test/golden/importless/gc.txtnew file+37

This diff is too big to show here.

test/golden/importless/gcab.txtnew file+2

This diff is too big to show here.

test/golden/importless/gcc-support.txtnew file+22

This diff is too big to show here.

test/golden/importless/gce-images.txtnew file+8

This diff is too big to show here.

test/golden/importless/gdal-1_11.txtnew file+49

This diff is too big to show here.

test/golden/importless/gdk-pixbuf.txtnew file+25

This diff is too big to show here.

test/golden/importless/gdomap.txtnew file+27

This diff is too big to show here.

test/golden/importless/geary.txtnew file+31

This diff is too big to show here.

test/golden/importless/gemset-beta.txt+229−1

This diff is too big to show here.

test/golden/importless/gemset.txt+537−1

This diff is too big to show here.

test/golden/importless/gemset_libvirt.txt+98−1

This diff is too big to show here.

test/golden/importless/generations-dir.txtnew file+45

This diff is too big to show here.

test/golden/importless/generatorrunner.txtnew file+31

This diff is too big to show here.

test/golden/importless/generic-builder.txtnew file+36

This diff is too big to show here.

test/golden/importless/generic-stack-builder.txtnew file+45

This diff is too big to show here.

test/golden/importless/generic-v3.txtnew file+73

This diff is too big to show here.

test/golden/importless/generic.txtnew file+42

This diff is too big to show here.

test/golden/importless/genphrase.txtnew file+31

This diff is too big to show here.

test/golden/importless/geogebra6.txtnew file+35

This diff is too big to show here.

test/golden/importless/gerbil-crypto.txtnew file+43

This diff is too big to show here.

test/golden/importless/gerbil-ethereum.txtnew file+44

This diff is too big to show here.

test/golden/importless/gerbil-persist.txtnew file+43

This diff is too big to show here.

test/golden/importless/gerbil-poo.txtnew file+42

This diff is too big to show here.

test/golden/importless/gerbil-utils.txtnew file+36

This diff is too big to show here.

test/golden/importless/ghcjs-base.txtnew file+44

This diff is too big to show here.

test/golden/importless/ghostscript.txtnew file+12

This diff is too big to show here.

test/golden/importless/gitlab-ci-pipelines-exporter.txtnew file+27

This diff is too big to show here.

test/golden/importless/gitlab-ci-pipelines-exporter_deps.txt+4−1

This diff is too big to show here.

test/golden/importless/gjs.txtnew file+6

This diff is too big to show here.

test/golden/importless/glfw.txtnew file+31

This diff is too big to show here.

test/golden/importless/glib-networking.txtnew file+26

This diff is too big to show here.

test/golden/importless/glib-testing.txtnew file+6

This diff is too big to show here.

test/golden/importless/global-vars.txtnew file+11

This diff is too big to show here.

test/golden/importless/gmusic.txtnew file+27

This diff is too big to show here.

test/golden/importless/gnome-initial-setup.txtnew file+41

This diff is too big to show here.

test/golden/importless/gnome-keyring.txtnew file+37

This diff is too big to show here.

test/golden/importless/gnome-online-accounts.txtnew file+27

This diff is too big to show here.

test/golden/importless/gnome-online-miners.txtnew file+29

This diff is too big to show here.

test/golden/importless/gnome-photos.txtnew file+31

This diff is too big to show here.

test/golden/importless/gnome-remote-desktop.txtnew file+24

This diff is too big to show here.

test/golden/importless/gnome-user-share.txtnew file+24

This diff is too big to show here.

test/golden/importless/gnu.txtnew file+33

This diff is too big to show here.

test/golden/importless/go-ethereum.txtnew file+37

This diff is too big to show here.

test/golden/importless/go-shadowsocks2.txtnew file+34

This diff is too big to show here.

test/golden/importless/go.d.plugin.txtnew file+27

This diff is too big to show here.

test/golden/importless/goa-plugin.txtnew file+31

This diff is too big to show here.

test/golden/importless/google_oslogin.txtnew file+45

This diff is too big to show here.

test/golden/importless/gp2c.txtnew file+28

This diff is too big to show here.

test/golden/importless/gphoto2.txtnew file+27

This diff is too big to show here.

test/golden/importless/gphotofs.txtnew file+34

This diff is too big to show here.

test/golden/importless/gpio-utils.txtnew file+24

This diff is too big to show here.

test/golden/importless/gppcscconnectionplugin.txtnew file+30

This diff is too big to show here.

test/golden/importless/granatier.txtnew file+28

This diff is too big to show here.

test/golden/importless/graphene.txtnew file+2

This diff is too big to show here.

test/golden/importless/graphical.txtnew file+13

This diff is too big to show here.

test/golden/importless/graphite2.txtnew file+32

This diff is too big to show here.

test/golden/importless/graphql.txtnew file+23

This diff is too big to show here.

test/golden/importless/graphviz-2.0.txtnew file+37

This diff is too big to show here.

test/golden/importless/graphviz.txtnew file+26

This diff is too big to show here.

test/golden/importless/greenclip.txtnew file+36

This diff is too big to show here.

test/golden/importless/grub1.patches.txt+1−1

This diff is too big to show here.

test/golden/importless/grub2-theme.txt+1−1

This diff is too big to show here.

test/golden/importless/gshhg.txtnew file+22

This diff is too big to show here.

test/golden/importless/gsl-1_16.txtnew file+30

This diff is too big to show here.

test/golden/importless/gsm.txtnew file+43

This diff is too big to show here.

test/golden/importless/gstreamer.txtnew file+49

This diff is too big to show here.

test/golden/importless/gtk-greeter.txtnew file+43

This diff is too big to show here.

test/golden/importless/gtk-icon-cache.txtnew file+16

This diff is too big to show here.

test/golden/importless/gtk2.txtnew file+41

This diff is too big to show here.

test/golden/importless/gtkspell3.txtnew file+21

This diff is too big to show here.

test/golden/importless/gui.txtnew file+54

This diff is too big to show here.

test/golden/importless/gwenview.txtnew file+35

This diff is too big to show here.

test/golden/importless/hamster.txtnew file+23

This diff is too big to show here.

test/golden/importless/hamt.txtnew file+26

This diff is too big to show here.

test/golden/importless/hdaps.txtnew file+18

This diff is too big to show here.

test/golden/importless/headerbar-gtk3.txtnew file+39

This diff is too big to show here.

test/golden/importless/headers.txtnew file+7

This diff is too big to show here.

test/golden/importless/headless.txtnew file+17

This diff is too big to show here.

test/golden/importless/hello-world-container.txtnew file+29

This diff is too big to show here.

test/golden/importless/helper.txtnew file+31

This diff is too big to show here.

test/golden/importless/helpers.txt+1−1

This diff is too big to show here.

test/golden/importless/herbstluftwm.txtnew file+34

This diff is too big to show here.

test/golden/importless/hezarfen.txtnew file+23

This diff is too big to show here.

test/golden/importless/hfaxd-default.txt+1−1

This diff is too big to show here.

test/golden/importless/hg.txtnew file+33

This diff is too big to show here.

test/golden/importless/hidepid.txtnew file+31

This diff is too big to show here.

test/golden/importless/hls-ghcide.txtnew file+84

This diff is too big to show here.

test/golden/importless/hpsa.txtnew file+45

This diff is too big to show here.

test/golden/importless/hrtime.txtnew file+26

This diff is too big to show here.

test/golden/importless/html.txtnew file+28

This diff is too big to show here.

test/golden/importless/http-body.txtnew file+37

This diff is too big to show here.

test/golden/importless/http-getter.txtnew file+24

This diff is too big to show here.

test/golden/importless/http.txtnew file+29

This diff is too big to show here.

test/golden/importless/http4idris.txtnew file+25

This diff is too big to show here.

test/golden/importless/hu_dot_dwim_dot_asdf.txtnew file+11

This diff is too big to show here.

test/golden/importless/hu_dot_dwim_dot_stefil.txtnew file+16

This diff is too big to show here.

test/golden/importless/hunchentoot.txtnew file+34

This diff is too big to show here.

test/golden/importless/hyperkit.txtnew file+37

This diff is too big to show here.

test/golden/importless/hyperv-guest.txtnew file+36

This diff is too big to show here.

test/golden/importless/i2p.txtnew file+46

This diff is too big to show here.

test/golden/importless/i3ipc-glib.txtnew file+38

This diff is too big to show here.

test/golden/importless/iaia.txtnew file+25

This diff is too big to show here.

test/golden/importless/ibus-qt.txtnew file+35

This diff is too big to show here.

test/golden/importless/ibus.txtnew file+24

This diff is too big to show here.

test/golden/importless/icewm.txtnew file+24

This diff is too big to show here.

test/golden/importless/icons.txtnew file+27

This diff is too big to show here.

test/golden/importless/ide.txtnew file+39

This diff is too big to show here.

test/golden/importless/idle.txtnew file+41

This diff is too big to show here.

test/golden/importless/idna.txtnew file+14

This diff is too big to show here.

test/golden/importless/idris-wrapper.txtnew file+17

This diff is too big to show here.

test/golden/importless/idrishighlighter.txtnew file+27

This diff is too big to show here.

test/golden/importless/idrisscript.txtnew file+23

This diff is too big to show here.

test/golden/importless/ieee-floats.txtnew file+12

This diff is too big to show here.

test/golden/importless/iftop.txtnew file+18

This diff is too big to show here.

test/golden/importless/iio.txtnew file+22

This diff is too big to show here.

test/golden/importless/illum.txtnew file+25

This diff is too big to show here.

test/golden/importless/imapfilter.txtnew file+31

This diff is too big to show here.

test/golden/importless/impure-deps.txtnew file+51

This diff is too big to show here.

test/golden/importless/incidenceeditor.txtnew file+25

This diff is too big to show here.

test/golden/importless/indents.txtnew file+19

This diff is too big to show here.

test/golden/importless/info.txt+17−1

This diff is too big to show here.

test/golden/importless/infobar.txtnew file+35

This diff is too big to show here.

test/golden/importless/init-script.txtnew file+21

This diff is too big to show here.

test/golden/importless/install-crate.txt+1−1

This diff is too big to show here.

test/golden/importless/integrations-core.txtnew file+29

This diff is too big to show here.

test/golden/importless/intel-2200bg.txtnew file+13

This diff is too big to show here.

test/golden/importless/intel-microcode.txtnew file+18

This diff is too big to show here.

test/golden/importless/intel.txtnew file+31

This diff is too big to show here.

test/golden/importless/introspect-environment.txtnew file+11

This diff is too big to show here.

test/golden/importless/iolib.txtnew file+27

This diff is too big to show here.

test/golden/importless/iolib_dot_asdf.txtnew file+11

This diff is too big to show here.

test/golden/importless/iolib_dot_base.txtnew file+18

This diff is too big to show here.

test/golden/importless/iolib_dot_common-lisp.txtnew file+16

This diff is too big to show here.

test/golden/importless/iolib_dot_conf.txtnew file+15

This diff is too big to show here.

test/golden/importless/iolib_dot_grovel.txtnew file+23

This diff is too big to show here.

test/golden/importless/iotop.txtnew file+16

This diff is too big to show here.

test/golden/importless/ipadic.txtnew file+15

This diff is too big to show here.

test/golden/importless/ipkgparser.txtnew file+17

This diff is too big to show here.

test/golden/importless/iprange.txtnew file+20

This diff is too big to show here.

test/golden/importless/iproute2.txtnew file+38

This diff is too big to show here.

test/golden/importless/ironclad.txtnew file+18

This diff is too big to show here.

test/golden/importless/irqbalance.txtnew file+18

This diff is too big to show here.

test/golden/importless/iterate.txtnew file+12

This diff is too big to show here.

test/golden/importless/iucode-tool.txtnew file+28

This diff is too big to show here.

test/golden/importless/iwd.txtnew file+29

This diff is too big to show here.

test/golden/importless/ixf.txtnew file+23

This diff is too big to show here.

test/golden/importless/janePackage.txtnew file+21

This diff is too big to show here.

test/golden/importless/janePackage_0_12.txtnew file+20

This diff is too big to show here.

test/golden/importless/janePackage_0_13.txtnew file+20

This diff is too big to show here.

test/golden/importless/java-test.txtnew file+21

This diff is too big to show here.

test/golden/importless/java.txtnew file+20

This diff is too big to show here.

test/golden/importless/jdk-darwin-base.txtnew file+33

This diff is too big to show here.

test/golden/importless/jdk11-linux.txtnew file+25

This diff is too big to show here.

test/golden/importless/jdk14-linux.txtnew file+25

This diff is too big to show here.

test/golden/importless/jgrpp.txtnew file+7

This diff is too big to show here.

test/golden/importless/jheiling-extras.txtnew file+25

This diff is too big to show here.

test/golden/importless/jheiling-js.txtnew file+27

This diff is too big to show here.

test/golden/importless/jmx-httpserver.txtnew file+32

This diff is too big to show here.

test/golden/importless/jonathan.txtnew file+29

This diff is too big to show here.

test/golden/importless/js-build-tools.txtnew file+27

This diff is too big to show here.

test/golden/importless/js.txtnew file+26

This diff is too big to show here.

test/golden/importless/json-exporter.txtnew file+31

This diff is too big to show here.

test/golden/importless/json-exporter_deps.txt+4−1

This diff is too big to show here.

test/golden/importless/json.txtnew file+15

This diff is too big to show here.

test/golden/importless/jwm-settings-manager.txtnew file+42

This diff is too big to show here.

test/golden/importless/jwm.txtnew file+24

This diff is too big to show here.

test/golden/importless/k3b.txtnew file+59

This diff is too big to show here.

test/golden/importless/kactivities-stats.txtnew file+18

This diff is too big to show here.

test/golden/importless/kactivities.txtnew file+20

This diff is too big to show here.

test/golden/importless/kactivitymanagerd.txt+16−1

This diff is too big to show here.

test/golden/importless/kaddressbook.txtnew file+35

This diff is too big to show here.

test/golden/importless/kak-ansi.txtnew file+28

This diff is too big to show here.

test/golden/importless/kak-auto-pairs.txtnew file+28

This diff is too big to show here.

test/golden/importless/kak-buffers.txtnew file+28

This diff is too big to show here.

test/golden/importless/kak-fzf.txtnew file+33

This diff is too big to show here.

test/golden/importless/kak-plumb.txtnew file+29

This diff is too big to show here.

test/golden/importless/kak-powerline.txtnew file+30

This diff is too big to show here.

test/golden/importless/kak-prelude.txtnew file+28

This diff is too big to show here.

test/golden/importless/kak-vertical-selection.txtnew file+28

This diff is too big to show here.

test/golden/importless/kalarm.txtnew file+53

This diff is too big to show here.

test/golden/importless/kalarmcal.txtnew file+22

This diff is too big to show here.

test/golden/importless/kalzium.txtnew file+34

This diff is too big to show here.

test/golden/importless/kapidox.txtnew file+13

This diff is too big to show here.

test/golden/importless/kapman.txtnew file+29

This diff is too big to show here.

test/golden/importless/kapptemplate.txtnew file+29

This diff is too big to show here.

test/golden/importless/karchive.txtnew file+18

This diff is too big to show here.

test/golden/importless/kate.txtnew file+45

This diff is too big to show here.

test/golden/importless/katomic.txtnew file+30

This diff is too big to show here.

test/golden/importless/kbdlight.txtnew file+17

This diff is too big to show here.

test/golden/importless/kblackbox.txtnew file+29

This diff is too big to show here.

test/golden/importless/kblocks.txtnew file+29

This diff is too big to show here.

test/golden/importless/kbookmarks.txtnew file+23

This diff is too big to show here.

test/golden/importless/kbounce.txtnew file+30

This diff is too big to show here.

test/golden/importless/kbreakout.txtnew file+20

This diff is too big to show here.

test/golden/importless/kcachegrind.txtnew file+26

This diff is too big to show here.

test/golden/importless/kcalc.txtnew file+28

This diff is too big to show here.

test/golden/importless/kcalendarcore.txtnew file+14

This diff is too big to show here.

test/golden/importless/kcalutils.txtnew file+28

This diff is too big to show here.

test/golden/importless/kcharselect.txtnew file+27

This diff is too big to show here.

test/golden/importless/kcodecs.txtnew file+17

This diff is too big to show here.

test/golden/importless/kcolorchooser.txtnew file+20

This diff is too big to show here.

test/golden/importless/kcompletion.txtnew file+18

This diff is too big to show here.

test/golden/importless/kconfig.txtnew file+15

This diff is too big to show here.

test/golden/importless/kcontacts.txtnew file+18

This diff is too big to show here.

test/golden/importless/kcoreaddons.txtnew file+16

This diff is too big to show here.

test/golden/importless/kcrash.txtnew file+18

This diff is too big to show here.

test/golden/importless/kdav.txtnew file+22

This diff is too big to show here.

test/golden/importless/kdbusaddons.txtnew file+16

This diff is too big to show here.

test/golden/importless/kde-cli-tools.txt+27−1

This diff is too big to show here.

test/golden/importless/kdebugsettings.txtnew file+27

This diff is too big to show here.

test/golden/importless/kdeclarative.txtnew file+24

This diff is too big to show here.

test/golden/importless/kdeconnect-kde.txtnew file+46

This diff is too big to show here.

test/golden/importless/kdecoration.txtnew file+15

This diff is too big to show here.

test/golden/importless/kded.txtnew file+23

This diff is too big to show here.

test/golden/importless/kdegraphics-mobipocket.txtnew file+19

This diff is too big to show here.

test/golden/importless/kdegraphics-thumbnailers.txtnew file+22

This diff is too big to show here.

test/golden/importless/kdenetwork-filesharing.txtnew file+24

This diff is too big to show here.

test/golden/importless/kdenlive.txtnew file+50

This diff is too big to show here.

test/golden/importless/kdeplasma-addons.txt+27−1

This diff is too big to show here.

test/golden/importless/kdesignerplugin.txtnew file+27

This diff is too big to show here.

test/golden/importless/kdev-php.txtnew file+34

This diff is too big to show here.

test/golden/importless/kdev-python.txtnew file+35

This diff is too big to show here.

test/golden/importless/kdevelop-pg-qt.txtnew file+32

This diff is too big to show here.

test/golden/importless/kdevelop.txtnew file+76

This diff is too big to show here.

test/golden/importless/kdewebkit.txt+18−1

This diff is too big to show here.

test/golden/importless/kdf.txtnew file+24

This diff is too big to show here.

test/golden/importless/kdialog.txtnew file+22

This diff is too big to show here.

test/golden/importless/kdiamond.txtnew file+31

This diff is too big to show here.

test/golden/importless/kdnssd.txtnew file+17

This diff is too big to show here.

test/golden/importless/keditbookmarks.txtnew file+27

This diff is too big to show here.

test/golden/importless/kemoticons.txtnew file+17

This diff is too big to show here.

test/golden/importless/kexec.txtnew file+31

This diff is too big to show here.

test/golden/importless/keybase.txtnew file+37

This diff is too big to show here.

test/golden/importless/keylight-exporter.txtnew file+30

This diff is too big to show here.

test/golden/importless/keylight.txtnew file+8

This diff is too big to show here.

test/golden/importless/kfind.txtnew file+24

This diff is too big to show here.

test/golden/importless/kfloppy.txtnew file+28

This diff is too big to show here.

test/golden/importless/kgamma5.txt+12−1

This diff is too big to show here.

test/golden/importless/kgeography.txtnew file+19

This diff is too big to show here.

test/golden/importless/kget.txtnew file+32

This diff is too big to show here.

test/golden/importless/kglobalaccel.txt+20−1

This diff is too big to show here.

test/golden/importless/kgpg.txtnew file+39

This diff is too big to show here.

test/golden/importless/kguiaddons.txtnew file+16

This diff is too big to show here.

test/golden/importless/khelpcenter.txt+18−1

This diff is too big to show here.

test/golden/importless/kholidays.txtnew file+24

This diff is too big to show here.

test/golden/importless/khotkeys.txt+24−1

This diff is too big to show here.

test/golden/importless/khtml.txtnew file+33

This diff is too big to show here.

test/golden/importless/ki18n.txtnew file+18

This diff is too big to show here.

test/golden/importless/kidentitymanagement.txtnew file+29

This diff is too big to show here.

test/golden/importless/kidletime.txtnew file+15

This diff is too big to show here.

test/golden/importless/kig.txtnew file+21

This diff is too big to show here.

test/golden/importless/kigo.txtnew file+30

This diff is too big to show here.

test/golden/importless/killbots.txtnew file+29

This diff is too big to show here.

test/golden/importless/kimageformats.txtnew file+18

This diff is too big to show here.

test/golden/importless/kimap.txtnew file+21

This diff is too big to show here.

test/golden/importless/kinfocenter.txt+28−1

This diff is too big to show here.

test/golden/importless/kio-extras.txtnew file+49

This diff is too big to show here.

test/golden/importless/kipi-plugins.txtnew file+34

This diff is too big to show here.

test/golden/importless/kirigami2.txtnew file+15

This diff is too big to show here.

test/golden/importless/kitemmodels.txtnew file+14

This diff is too big to show here.

test/golden/importless/kitemviews.txtnew file+16

This diff is too big to show here.

test/golden/importless/kitinerary.txtnew file+27

This diff is too big to show here.

test/golden/importless/kjobwidgets.txtnew file+16

This diff is too big to show here.

test/golden/importless/kjs.txtnew file+15

This diff is too big to show here.

test/golden/importless/kjsembed.txtnew file+18

This diff is too big to show here.

test/golden/importless/kldap.txtnew file+21

This diff is too big to show here.

test/golden/importless/kleopatra.txtnew file+26

This diff is too big to show here.

test/golden/importless/klettres.txtnew file+30

This diff is too big to show here.

test/golden/importless/klines.txtnew file+29

This diff is too big to show here.

test/golden/importless/klogd.txtnew file+33

This diff is too big to show here.

test/golden/importless/kmag.txtnew file+28

This diff is too big to show here.

test/golden/importless/kmahjongg.txtnew file+22

This diff is too big to show here.

test/golden/importless/kmail-account-wizard.txtnew file+33

This diff is too big to show here.

test/golden/importless/kmail.txtnew file+56

This diff is too big to show here.

test/golden/importless/kmailtransport.txtnew file+28

This diff is too big to show here.

test/golden/importless/kmbox.txtnew file+23

This diff is too big to show here.

test/golden/importless/kmediaplayer.txtnew file+14

This diff is too big to show here.

test/golden/importless/kmenuedit.txt+15−1

This diff is too big to show here.

test/golden/importless/kmime.txtnew file+22

This diff is too big to show here.

test/golden/importless/kmines.txtnew file+31

This diff is too big to show here.

test/golden/importless/kmix.txtnew file+29

This diff is too big to show here.

test/golden/importless/kmod.txtnew file+39

This diff is too big to show here.

test/golden/importless/kmplot.txtnew file+25

This diff is too big to show here.

test/golden/importless/kmrcl.txtnew file+11

This diff is too big to show here.

test/golden/importless/knavalbattle.txtnew file+30

This diff is too big to show here.

test/golden/importless/knetwalk.txtnew file+29

This diff is too big to show here.

test/golden/importless/knewstuff.txtnew file+32

This diff is too big to show here.

test/golden/importless/knights.txtnew file+31

This diff is too big to show here.

test/golden/importless/knotes.txt+40−1

This diff is too big to show here.

test/golden/importless/knotifications.txtnew file+20

This diff is too big to show here.

test/golden/importless/knotifyconfig.txtnew file+20

This diff is too big to show here.

test/golden/importless/kodi.txtnew file+28

This diff is too big to show here.

test/golden/importless/kolf.txtnew file+22

This diff is too big to show here.

test/golden/importless/kollision.txtnew file+29

This diff is too big to show here.

test/golden/importless/kolourpaint.txtnew file+20

This diff is too big to show here.

test/golden/importless/kompare.txtnew file+19

This diff is too big to show here.

test/golden/importless/konqueror.txtnew file+23

This diff is too big to show here.

test/golden/importless/konquest.txtnew file+21

This diff is too big to show here.

test/golden/importless/konsole.txtnew file+45

This diff is too big to show here.

test/golden/importless/kontact.txtnew file+28

This diff is too big to show here.

test/golden/importless/kontactinterface.txtnew file+23

This diff is too big to show here.

test/golden/importless/korganizer.txtnew file+35

This diff is too big to show here.

test/golden/importless/kparts.txtnew file+24

This diff is too big to show here.

test/golden/importless/kpat.txtnew file+23

This diff is too big to show here.

test/golden/importless/kpeople.txtnew file+20

This diff is too big to show here.

test/golden/importless/kpimtextedit.txtnew file+37

This diff is too big to show here.

test/golden/importless/kpkpass.txtnew file+23

This diff is too big to show here.

test/golden/importless/kplotting.txtnew file+15

This diff is too big to show here.

test/golden/importless/kpty.txtnew file+16

This diff is too big to show here.

test/golden/importless/kqtquickcharts.txtnew file+21

This diff is too big to show here.

test/golden/importless/kquickcharts.txtnew file+14

This diff is too big to show here.

test/golden/importless/krdc.txtnew file+36

This diff is too big to show here.

test/golden/importless/kreversi.txtnew file+27

This diff is too big to show here.

test/golden/importless/krfb.txtnew file+26

This diff is too big to show here.

test/golden/importless/krohnkite.txtnew file+35

This diff is too big to show here.

test/golden/importless/kross.txtnew file+25

This diff is too big to show here.

test/golden/importless/kruler.txtnew file+22

This diff is too big to show here.

test/golden/importless/krunner.txtnew file+25

This diff is too big to show here.

test/golden/importless/kscreen.txt+21−1

This diff is too big to show here.

test/golden/importless/kscreenlocker.txt+25−1

This diff is too big to show here.

test/golden/importless/kshisen.txtnew file+30

This diff is too big to show here.

test/golden/importless/kspaceduel.txtnew file+20

This diff is too big to show here.

test/golden/importless/ksquares.txtnew file+30

This diff is too big to show here.

test/golden/importless/ksshaskpass.txt+12−1

This diff is too big to show here.

test/golden/importless/ksudoku.txtnew file+21

This diff is too big to show here.

test/golden/importless/ksysguard.txt+18−1

This diff is too big to show here.

test/golden/importless/ksystemlog.txtnew file+22

This diff is too big to show here.

test/golden/importless/kteatime.txtnew file+31

This diff is too big to show here.

test/golden/importless/ktexteditor.txtnew file+28

This diff is too big to show here.

test/golden/importless/ktextwidgets.txtnew file+23

This diff is too big to show here.

test/golden/importless/ktimer.txtnew file+28

This diff is too big to show here.

test/golden/importless/ktnef.txtnew file+24

This diff is too big to show here.

test/golden/importless/ktouch.txtnew file+42

This diff is too big to show here.

test/golden/importless/kturtle.txtnew file+29

This diff is too big to show here.

test/golden/importless/kunitconversion.txtnew file+15

This diff is too big to show here.

test/golden/importless/kvm-deps.txt+4−1

This diff is too big to show here.

test/golden/importless/kvm.txtnew file+33

This diff is too big to show here.

test/golden/importless/kvm2.txtnew file+39

This diff is too big to show here.

test/golden/importless/kwallet-pam.txt+19−1

This diff is too big to show here.

test/golden/importless/kwallet.txtnew file+27

This diff is too big to show here.

test/golden/importless/kwalletmanager.txtnew file+26

This diff is too big to show here.

test/golden/importless/kwave.txtnew file+44

This diff is too big to show here.

test/golden/importless/kwayland-integration.txt+11−1

This diff is too big to show here.

test/golden/importless/kwayland.txtnew file+19

This diff is too big to show here.

test/golden/importless/kwidgetsaddons.txtnew file+16

This diff is too big to show here.

test/golden/importless/kwrited.txt+12−1

This diff is too big to show here.

test/golden/importless/kxmlgui.txtnew file+25

This diff is too big to show here.

test/golden/importless/kxmlrpcclient.txtnew file+16

This diff is too big to show here.

test/golden/importless/labs_consol_de.txtnew file+38

This diff is too big to show here.

test/golden/importless/lack-component.txtnew file+11

This diff is too big to show here.

test/golden/importless/lack-middleware-backtrace.txtnew file+11

This diff is too big to show here.

test/golden/importless/lack-util.txtnew file+17

This diff is too big to show here.

test/golden/importless/lack.txtnew file+19

This diff is too big to show here.

test/golden/importless/ladspah.txtnew file+25

This diff is too big to show here.

test/golden/importless/lastfm.txtnew file+39

This diff is too big to show here.

test/golden/importless/layout-manager.txtnew file+39

This diff is too big to show here.

test/golden/importless/lazarus.txtnew file+45

This diff is too big to show here.

test/golden/importless/ledger.txtnew file+12

This diff is too big to show here.

test/golden/importless/leftwm.txtnew file+24

This diff is too big to show here.

test/golden/importless/legacy.txtnew file+33

This diff is too big to show here.

test/golden/importless/lens.txtnew file+25

This diff is too big to show here.

test/golden/importless/let-plus.txtnew file+17

This diff is too big to show here.

test/golden/importless/lev.txtnew file+17

This diff is too big to show here.

test/golden/importless/lfarm-client.txtnew file+22

This diff is too big to show here.

test/golden/importless/lfarm-common.txtnew file+20

This diff is too big to show here.

test/golden/importless/lfarm-server.txtnew file+21

This diff is too big to show here.

test/golden/importless/lfarm-ssl.txtnew file+26

This diff is too big to show here.

test/golden/importless/lgc.txtnew file+29

This diff is too big to show here.

test/golden/importless/libarcus.txtnew file+37

This diff is too big to show here.

test/golden/importless/libbitcoin-client.txtnew file+36

This diff is too big to show here.

test/golden/importless/libbitcoin-explorer.txtnew file+37

This diff is too big to show here.

test/golden/importless/libbitcoin-network.txtnew file+36

This diff is too big to show here.

test/golden/importless/libbitcoin-protocol.txtnew file+38

This diff is too big to show here.

test/golden/importless/libbitcoin.txtnew file+35

This diff is too big to show here.

test/golden/importless/libc++abi.txtnew file+43

This diff is too big to show here.

test/golden/importless/libcroco.txtnew file+32

This diff is too big to show here.

test/golden/importless/libdislocator.txtnew file+27

This diff is too big to show here.

test/golden/importless/libdispatch.txtnew file+12

This diff is too big to show here.

test/golden/importless/libfakeXinerama.txtnew file+31

This diff is too big to show here.

test/golden/importless/libgdata.txtnew file+11

This diff is too big to show here.

test/golden/importless/libgravatar.txtnew file+25

This diff is too big to show here.

test/golden/importless/libjcat.txtnew file+2

This diff is too big to show here.

test/golden/importless/libkcddb.txtnew file+27

This diff is too big to show here.

test/golden/importless/libkdcraw.txtnew file+23

This diff is too big to show here.

test/golden/importless/libkdegames.txtnew file+26

This diff is too big to show here.

test/golden/importless/libkdepim.txtnew file+29

This diff is too big to show here.

test/golden/importless/libkexiv2.txtnew file+23

This diff is too big to show here.

test/golden/importless/libkgapi.txtnew file+27

This diff is too big to show here.

test/golden/importless/libkipi.txtnew file+24

This diff is too big to show here.

test/golden/importless/libkleo.txtnew file+27

This diff is too big to show here.

test/golden/importless/libkmahjongg.txtnew file+26

This diff is too big to show here.

test/golden/importless/libkomparediff2.txt+10−1

This diff is too big to show here.

test/golden/importless/libksane.txtnew file+23

This diff is too big to show here.

test/golden/importless/libksieve.txtnew file+30

This diff is too big to show here.

test/golden/importless/libmaa.txtnew file+16

This diff is too big to show here.

test/golden/importless/libnvc.txtnew file+29

This diff is too big to show here.

test/golden/importless/libopenshot-audio.txtnew file+41

This diff is too big to show here.

test/golden/importless/libopenshot.txtnew file+48

This diff is too big to show here.

test/golden/importless/liboping.txtnew file+16

This diff is too big to show here.

test/golden/importless/library.txtnew file+33

This diff is too big to show here.

test/golden/importless/libsavitar.txtnew file+35

This diff is too big to show here.

test/golden/importless/libsigrok4dsl.txtnew file+41

This diff is too big to show here.

test/golden/importless/libsigrokdecode4dsl.txtnew file+36

This diff is too big to show here.

test/golden/importless/libtokencap.txtnew file+27

This diff is too big to show here.

test/golden/importless/libtool2.txtnew file+35

This diff is too big to show here.

test/golden/importless/libungif.txtnew file+15

This diff is too big to show here.

test/golden/importless/libunwind.txtnew file+22

This diff is too big to show here.

test/golden/importless/libusb1.txtnew file+36

This diff is too big to show here.

test/golden/importless/libxkbcommon_7.txtnew file+38

This diff is too big to show here.

test/golden/importless/libxmlb.txtnew file+2

This diff is too big to show here.

test/golden/importless/libxpdf.txtnew file+16

This diff is too big to show here.

test/golden/importless/licenses.txtnew file+190

This diff is too big to show here.

test/golden/importless/lift.txtnew file+11

This diff is too big to show here.

test/golden/importless/light.txtnew file+19

This diff is too big to show here.

test/golden/importless/lightyear.txtnew file+26

This diff is too big to show here.

test/golden/importless/limesdr.txtnew file+40

This diff is too big to show here.

test/golden/importless/linux-4.14.txtnew file+23

This diff is too big to show here.

test/golden/importless/linux-4.19.txtnew file+23

This diff is too big to show here.

test/golden/importless/linux-4.4.txtnew file+10

This diff is too big to show here.

test/golden/importless/linux-4.9.txtnew file+10

This diff is too big to show here.

test/golden/importless/linux-5.4.txtnew file+23

This diff is too big to show here.

test/golden/importless/linux-5.8.txtnew file+23

This diff is too big to show here.

test/golden/importless/linux-5.9.txtnew file+23

This diff is too big to show here.

test/golden/importless/linux-hardkernel-4.14.txtnew file+22

This diff is too big to show here.

test/golden/importless/linux-testing-bcachefs.txtnew file+27

This diff is too big to show here.

test/golden/importless/linux-zen.txtnew file+19

This diff is too big to show here.

test/golden/importless/linux.txtnew file+15

This diff is too big to show here.

test/golden/importless/linuxbrowser.txtnew file+35

This diff is too big to show here.

test/golden/importless/lisp-namespace.txtnew file+11

This diff is too big to show here.

test/golden/importless/lisp-unit2.txtnew file+22

This diff is too big to show here.

test/golden/importless/list-of.txtnew file+14

This diff is too big to show here.

test/golden/importless/litecoin.txtnew file+55

This diff is too big to show here.

test/golden/importless/lld.txtnew file+32

This diff is too big to show here.

test/golden/importless/lldb.txtnew file+54

This diff is too big to show here.

test/golden/importless/lldpd.txtnew file+43

This diff is too big to show here.

test/golden/importless/llvm.txtnew file+48

This diff is too big to show here.

test/golden/importless/lnd-exporter.txtnew file+28

This diff is too big to show here.

test/golden/importless/local-time.txtnew file+18

This diff is too big to show here.

test/golden/importless/locales.txtnew file+20

This diff is too big to show here.

test/golden/importless/localtime.txtnew file+34

This diff is too big to show here.

test/golden/importless/lock-color.txtnew file+47

This diff is too big to show here.

test/golden/importless/lock-effects.txtnew file+44

This diff is too big to show here.

test/golden/importless/lock-fancy-rapid.txtnew file+34

This diff is too big to show here.

test/golden/importless/lock-fancy.txtnew file+40

This diff is too big to show here.

test/golden/importless/lock-kernel-modules.txtnew file+44

This diff is too big to show here.

test/golden/importless/lock.txtnew file+45

This diff is too big to show here.

test/golden/importless/log.txtnew file+3

This diff is too big to show here.

test/golden/importless/log4cl.txtnew file+17

This diff is too big to show here.

test/golden/importless/logic.txtnew file+26

This diff is too big to show here.

test/golden/importless/logkeys.txtnew file+30

This diff is too big to show here.

test/golden/importless/logmein-hamachi.txtnew file+28

This diff is too big to show here.

test/golden/importless/lparallel.txtnew file+15

This diff is too big to show here.

test/golden/importless/lquery.txtnew file+19

This diff is too big to show here.

test/golden/importless/ltc.txtnew file+44

This diff is too big to show here.

test/golden/importless/luarocks-nix.txtnew file+9

This diff is too big to show here.

test/golden/importless/lumina.txtnew file+28

This diff is too big to show here.

test/golden/importless/lvm2.txtnew file+28

This diff is too big to show here.

test/golden/importless/lwm.txtnew file+24

This diff is too big to show here.

test/golden/importless/lwt-unix.txtnew file+26

This diff is too big to show here.

test/golden/importless/lxcfs.txtnew file+40

This diff is too big to show here.

test/golden/importless/lxmenu-data.txtnew file+18

This diff is too big to show here.

test/golden/importless/lyricbar.txtnew file+34

This diff is too big to show here.

test/golden/importless/m2install.txtnew file+20

This diff is too big to show here.

test/golden/importless/m32edit.txtnew file+12

This diff is too big to show here.

test/golden/importless/mac.txtnew file+46

This diff is too big to show here.

test/golden/importless/machine.txtnew file+24

This diff is too big to show here.

test/golden/importless/macport.txtnew file+63

This diff is too big to show here.

test/golden/importless/macvim.txtnew file+52

This diff is too big to show here.

test/golden/importless/magic-wormhole-mailbox-server.txtnew file+36

This diff is too big to show here.

test/golden/importless/mail-exporter.txtnew file+37

This diff is too big to show here.

test/golden/importless/mail-exporter_deps.txt+4−1

This diff is too big to show here.

test/golden/importless/mailhog.txtnew file+33

This diff is too big to show here.

test/golden/importless/mailpile.txtnew file+57

This diff is too big to show here.

test/golden/importless/mainline.txtnew file+4

This diff is too big to show here.

test/golden/importless/maintainer-list.txt+3003−1

This diff is too big to show here.

test/golden/importless/make-bootstrap.txt+3−1

This diff is too big to show here.

test/golden/importless/make-channel.txtnew file+15

This diff is too big to show here.

test/golden/importless/make-dbus-conf.txtnew file+18

This diff is too big to show here.

test/golden/importless/make-ext4-fs.txtnew file+23

This diff is too big to show here.

test/golden/importless/make-fonts-cache.txtnew file+15

This diff is too big to show here.

test/golden/importless/make-fonts-conf.txtnew file+11

This diff is too big to show here.

test/golden/importless/make-peer.txtnew file+52

This diff is too big to show here.

test/golden/importless/make-squashfs.txtnew file+11

This diff is too big to show here.

test/golden/importless/makeDotElm.txtnew file+20

This diff is too big to show here.

test/golden/importless/malcontent.txtnew file+21

This diff is too big to show here.

test/golden/importless/malloc.txtnew file+37

This diff is too big to show here.

test/golden/importless/man.txtnew file+31

This diff is too big to show here.

test/golden/importless/map-set.txtnew file+11

This diff is too big to show here.

test/golden/importless/mapping.txtnew file+23

This diff is too big to show here.

test/golden/importless/maps.txtnew file+16

This diff is too big to show here.

test/golden/importless/marble.txtnew file+25

This diff is too big to show here.

test/golden/importless/marshal.txtnew file+11

This diff is too big to show here.

test/golden/importless/masari.txtnew file+38

This diff is too big to show here.

test/golden/importless/masq.txtnew file+13

This diff is too big to show here.

test/golden/importless/material-theme.txtnew file+29

This diff is too big to show here.

test/golden/importless/matterircd.txtnew file+30

This diff is too big to show here.

test/golden/importless/maven-build.txtnew file+31

This diff is too big to show here.

test/golden/importless/mavenPlugins.txtnew file+55

This diff is too big to show here.

test/golden/importless/mcelog.txtnew file+36

This diff is too big to show here.

test/golden/importless/md5.txtnew file+11

This diff is too big to show here.

test/golden/importless/mem.txtnew file+23

This diff is too big to show here.

test/golden/importless/menus.txtnew file+19

This diff is too big to show here.

test/golden/importless/mesos-exporter_deps.txt+4−1

This diff is too big to show here.

test/golden/importless/messagelib.txtnew file+45

This diff is too big to show here.

test/golden/importless/metabang-bind.txtnew file+11

This diff is too big to show here.

test/golden/importless/metacity.txtnew file+25

This diff is too big to show here.

test/golden/importless/metaocaml-3.09.txtnew file+31

This diff is too big to show here.

test/golden/importless/metatilities-base.txt+11−1

This diff is too big to show here.

test/golden/importless/metrics.txtnew file+12

This diff is too big to show here.

test/golden/importless/mhd.txtnew file+29

This diff is too big to show here.

test/golden/importless/mikrotik-exporter.txtnew file+28

This diff is too big to show here.

test/golden/importless/milou.txt+15−1

This diff is too big to show here.

test/golden/importless/mime.txtnew file+26

This diff is too big to show here.

test/golden/importless/minimal.txtnew file+12

This diff is too big to show here.

test/golden/importless/mininet.txtnew file+28

This diff is too big to show here.

test/golden/importless/minuet.txtnew file+31

This diff is too big to show here.

test/golden/importless/mirrors.txt+39−1

This diff is too big to show here.

test/golden/importless/misc-extensions.txtnew file+11

This diff is too big to show here.

test/golden/importless/mjpg-streamer.txtnew file+55

This diff is too big to show here.

test/golden/importless/mk-stage0.txt+7−1

This diff is too big to show here.

test/golden/importless/mk-string-metrics.txtnew file+11

This diff is too big to show here.

test/golden/importless/mktplcExtRefToFetchArgs.txt+3−1

This diff is too big to show here.

test/golden/importless/moarvm.txtnew file+36

This diff is too big to show here.

test/golden/importless/mod.txtnew file+34

This diff is too big to show here.

test/golden/importless/modem-default.txt+15−1

This diff is too big to show here.

test/golden/importless/modemmanager-exporter.txtnew file+30

This diff is too big to show here.

test/golden/importless/modemmanager-qt.txtnew file+15

This diff is too big to show here.

test/golden/importless/modemmanager.txtnew file+15

This diff is too big to show here.

test/golden/importless/module-list.txt+1−1

This diff is too big to show here.

test/golden/importless/modules-closure.txtnew file+23

This diff is too big to show here.

test/golden/importless/modules.txt+212−1

This diff is too big to show here.

test/golden/importless/mom.txtnew file+45

This diff is too big to show here.

test/golden/importless/monit.txtnew file+42

This diff is too big to show here.

test/golden/importless/mono.txtnew file+24

This diff is too big to show here.

test/golden/importless/moodle-utils.txtnew file+26

This diff is too big to show here.

test/golden/importless/moptilities.txtnew file+11

This diff is too big to show here.

test/golden/importless/mpris.txtnew file+24

This diff is too big to show here.

test/golden/importless/mpris2.txtnew file+31

This diff is too big to show here.

test/golden/importless/mptcp-config.txtnew file+17

This diff is too big to show here.

test/golden/importless/mptcp.txtnew file+30

This diff is too big to show here.

test/golden/importless/msopenh264.txtnew file+44

This diff is too big to show here.

test/golden/importless/mspdebug.txtnew file+55

This diff is too big to show here.

test/golden/importless/mssql.txtnew file+20

This diff is too big to show here.

test/golden/importless/mstpd.txtnew file+29

This diff is too big to show here.

test/golden/importless/mt19937.txtnew file+11

This diff is too big to show here.

test/golden/importless/mtr.txtnew file+22

This diff is too big to show here.

test/golden/importless/muchsync.txtnew file+35

This diff is too big to show here.

test/golden/importless/mullvad-vpn.txtnew file+42

This diff is too big to show here.

test/golden/importless/multi.txtnew file+12

This diff is too big to show here.

test/golden/importless/multilib.txtnew file+8

This diff is too big to show here.

test/golden/importless/multipath-tools.txtnew file+25

This diff is too big to show here.

test/golden/importless/munge.txtnew file+48

This diff is too big to show here.

test/golden/importless/musicbox-webclient.txtnew file+23

This diff is too big to show here.

test/golden/importless/mutt.txtnew file+46

This diff is too big to show here.

test/golden/importless/mwm.txtnew file+24

This diff is too big to show here.

test/golden/importless/mwprocapture.txtnew file+27

This diff is too big to show here.

test/golden/importless/myway.txtnew file+21

This diff is too big to show here.

test/golden/importless/nabi.txtnew file+23

This diff is too big to show here.

test/golden/importless/nacl.txtnew file+44

This diff is too big to show here.

test/golden/importless/namecoin.txtnew file+49

This diff is too big to show here.

test/golden/importless/named-readtables.txtnew file+12

This diff is too big to show here.

test/golden/importless/nanonote.txtnew file+23

This diff is too big to show here.

test/golden/importless/neard.txtnew file+18

This diff is too big to show here.

test/golden/importless/neovim-remote.txtnew file+34

This diff is too big to show here.

test/golden/importless/net_dot_didierverna_dot_asdf-flv.txtnew file+11

This diff is too big to show here.

test/golden/importless/netboot.txtnew file+60

This diff is too big to show here.

test/golden/importless/networkmanager-qt.txtnew file+15

This diff is too big to show here.

test/golden/importless/new-api.txtnew file+42

This diff is too big to show here.

test/golden/importless/newlib.txtnew file+16

This diff is too big to show here.

test/golden/importless/news-updater.txtnew file+27

This diff is too big to show here.

test/golden/importless/next-gtk-webkit.txtnew file+40

This diff is too big to show here.

test/golden/importless/nextcloud-exporter-deps.txt+4−1

This diff is too big to show here.

test/golden/importless/nextcloud-exporter.txtnew file+33

This diff is too big to show here.

test/golden/importless/ng.txtnew file+49

This diff is too big to show here.

test/golden/importless/nginx-exporter.txtnew file+37

This diff is too big to show here.

test/golden/importless/nginxlog-exporter.txtnew file+27

This diff is too big to show here.

test/golden/importless/nginxlog-exporter_deps.txt+4−1

This diff is too big to show here.

test/golden/importless/nibbles.txtnew file+12

This diff is too big to show here.

test/golden/importless/nix-fallback-paths.txt+5−1

This diff is too big to show here.

test/golden/importless/nix-generate-from-cpan.txtnew file+21

This diff is too big to show here.

test/golden/importless/nix-prefetch-docker.txtnew file+17

This diff is too big to show here.

test/golden/importless/nix-update.txt+1−1

This diff is too big to show here.

test/golden/importless/nixops-autoluks.txtnew file+14

This diff is too big to show here.

test/golden/importless/nixops-v1_6_1.txtnew file+35

This diff is too big to show here.

test/golden/importless/nixpkgs-lint.txtnew file+18

This diff is too big to show here.

test/golden/importless/nm-applet.txtnew file+35

This diff is too big to show here.

test/golden/importless/no-x-libs.txtnew file+56

This diff is too big to show here.

test/golden/importless/node.txtnew file+22

This diff is too big to show here.

test/golden/importless/none.txt+5−1

This diff is too big to show here.

test/golden/importless/not-detected.txtnew file+3

This diff is too big to show here.

test/golden/importless/notion.txtnew file+26

This diff is too big to show here.

test/golden/importless/novacom.txtnew file+28

This diff is too big to show here.

test/golden/importless/novacomd.txtnew file+32

This diff is too big to show here.

test/golden/importless/npm.txtnew file+32

This diff is too big to show here.

test/golden/importless/nqp.txtnew file+35

This diff is too big to show here.

test/golden/importless/ntfs.txtnew file+11

This diff is too big to show here.

test/golden/importless/nuget.txt+1−1

This diff is too big to show here.

test/golden/importless/nullidentdmod.txtnew file+43

This diff is too big to show here.

test/golden/importless/nvidia-optimus.txtnew file+38

This diff is too big to show here.

test/golden/importless/nw12.txtnew file+61

This diff is too big to show here.

test/golden/importless/oauth.txtnew file+46

This diff is too big to show here.

test/golden/importless/oauth2_proxy_nginx.txtnew file+26

This diff is too big to show here.

test/golden/importless/obs-ndi.txtnew file+36

This diff is too big to show here.

test/golden/importless/ocaml.txtnew file+15

This diff is too big to show here.

test/golden/importless/ocamlbuild.txtnew file+25

This diff is too big to show here.

test/golden/importless/ocserv.txtnew file+39

This diff is too big to show here.

test/golden/importless/ofono.txtnew file+31

This diff is too big to show here.

test/golden/importless/oidentd.txtnew file+35

This diff is too big to show here.

test/golden/importless/okular.txtnew file+62

This diff is too big to show here.

test/golden/importless/omegat.txtnew file+31

This diff is too big to show here.

test/golden/importless/openbox.txtnew file+26

This diff is too big to show here.

test/golden/importless/openfire.txtnew file+47

This diff is too big to show here.

test/golden/importless/openmp.txtnew file+26

This diff is too big to show here.

test/golden/importless/openvpn-exporter-deps.txt+4−1

This diff is too big to show here.

test/golden/importless/openvpn.txtnew file+20

This diff is too big to show here.

test/golden/importless/openvpn_learnaddress.txtnew file+28

This diff is too big to show here.

test/golden/importless/opn2bankeditor.txtnew file+14

This diff is too big to show here.

test/golden/importless/optima.txtnew file+15

This diff is too big to show here.

test/golden/importless/org-generated.txtnew file+19

This diff is too big to show here.

test/golden/importless/oroborus.txtnew file+24

This diff is too big to show here.

test/golden/importless/osmosdr.txtnew file+48

This diff is too big to show here.

test/golden/importless/ostree.txtnew file+9

This diff is too big to show here.

test/golden/importless/otf.txtnew file+30

This diff is too big to show here.

test/golden/importless/otp.txtnew file+34

This diff is too big to show here.

test/golden/importless/overlay.txtnew file+16

This diff is too big to show here.

test/golden/importless/owamp.txtnew file+40

This diff is too big to show here.

test/golden/importless/oxygen-icons5.txtnew file+19

This diff is too big to show here.

test/golden/importless/oxygen.txt+24−1

This diff is too big to show here.

test/golden/importless/pack.txtnew file+27

This diff is too big to show here.

test/golden/importless/packagekit.txtnew file+29

This diff is too big to show here.

test/golden/importless/packages-config.txtnew file+9

This diff is too big to show here.

test/golden/importless/pacman.txtnew file+22

This diff is too big to show here.

test/golden/importless/pam.txtnew file+10

This diff is too big to show here.

test/golden/importless/pam_usb.txtnew file+28

This diff is too big to show here.

test/golden/importless/parenscript.txtnew file+16

This diff is too big to show here.

test/golden/importless/parse-declarations-1_dot_0.txtnew file+11

This diff is too big to show here.

test/golden/importless/parse-number.txtnew file+12

This diff is too big to show here.

test/golden/importless/parser.txtnew file+32

This diff is too big to show here.

test/golden/importless/parted.txtnew file+42

This diff is too big to show here.

test/golden/importless/particl-core.txtnew file+46

This diff is too big to show here.

test/golden/importless/passthru.txtnew file+3

This diff is too big to show here.

test/golden/importless/paste.txtnew file+31

This diff is too big to show here.

test/golden/importless/patchsets.txt+8−1

This diff is too big to show here.

test/golden/importless/patricia.txtnew file+25

This diff is too big to show here.

test/golden/importless/pcall-queue.txtnew file+15

This diff is too big to show here.

test/golden/importless/pcall.txtnew file+18

This diff is too big to show here.

test/golden/importless/pdf_sets.txtnew file+825

This diff is too big to show here.

test/golden/importless/pdnsd.txtnew file+46

This diff is too big to show here.

test/golden/importless/pekwm.txtnew file+24

This diff is too big to show here.

test/golden/importless/perf.txtnew file+69

This diff is too big to show here.

test/golden/importless/periods.txtnew file+33

This diff is too big to show here.

test/golden/importless/permutations.txtnew file+23

This diff is too big to show here.

test/golden/importless/persistenced.txtnew file+33

This diff is too big to show here.

test/golden/importless/pfds.txtnew file+25

This diff is too big to show here.

test/golden/importless/pflogsumm.txtnew file+30

This diff is too big to show here.

test/golden/importless/pg_auto_failover.txtnew file+36

This diff is too big to show here.

test/golden/importless/pg_bigm.txtnew file+30

This diff is too big to show here.

test/golden/importless/pg_cron.txtnew file+30

This diff is too big to show here.

test/golden/importless/pg_ed25519.txtnew file+29

This diff is too big to show here.

test/golden/importless/pg_hll.txtnew file+30

This diff is too big to show here.

test/golden/importless/pg_partman.txtnew file+30

This diff is too big to show here.

test/golden/importless/pg_repack.txtnew file+36

This diff is too big to show here.

test/golden/importless/pg_safeupdate.txtnew file+23

This diff is too big to show here.

test/golden/importless/pg_similarity.txtnew file+27

This diff is too big to show here.

test/golden/importless/pg_topn.txtnew file+30

This diff is too big to show here.

test/golden/importless/pgjwt.txtnew file+30

This diff is too big to show here.

test/golden/importless/pgloader.txtnew file+74

This diff is too big to show here.

test/golden/importless/pgroonga.txtnew file+35

This diff is too big to show here.

test/golden/importless/pgrouting.txtnew file+34

This diff is too big to show here.

test/golden/importless/pgtap.txtnew file+35

This diff is too big to show here.

test/golden/importless/picmi.txtnew file+28

This diff is too big to show here.

test/golden/importless/pim-data-exporter.txtnew file+37

This diff is too big to show here.

test/golden/importless/pim-sieve-editor.txtnew file+28

This diff is too big to show here.

test/golden/importless/pimcommon.txtnew file+42

This diff is too big to show here.

test/golden/importless/pipelinedb.txtnew file+37

This diff is too big to show here.

test/golden/importless/pipes.txtnew file+23

This diff is too big to show here.

test/golden/importless/pk.txtnew file+34

This diff is too big to show here.

test/golden/importless/plasma-browser-integration.txt+17−1

This diff is too big to show here.

test/golden/importless/plasma-pa.txt+20−1

This diff is too big to show here.

test/golden/importless/plasma-workspace-wallpapers.txt+5−1

This diff is too big to show here.

test/golden/importless/platform-flags.txtnew file+21

This diff is too big to show here.

test/golden/importless/platform-tools.txtnew file+21

This diff is too big to show here.

test/golden/importless/platform.txtnew file+25

This diff is too big to show here.

test/golden/importless/platforms.txtnew file+203

This diff is too big to show here.

test/golden/importless/plotinus.txtnew file+25

This diff is too big to show here.

test/golden/importless/plpgsql_check.txtnew file+30

This diff is too big to show here.

test/golden/importless/plump-dom.txtnew file+11

This diff is too big to show here.

test/golden/importless/plump-lexer.txt+11−1

This diff is too big to show here.

test/golden/importless/plump-parser.txtnew file+17

This diff is too big to show here.

test/golden/importless/plump.txtnew file+16

This diff is too big to show here.

test/golden/importless/plv8.txtnew file+35

This diff is too big to show here.

test/golden/importless/plv8_6_x.txtnew file+42

This diff is too big to show here.

test/golden/importless/pointrelease.txtnew file+20

This diff is too big to show here.

test/golden/importless/polkit-kde-agent.txt+21−1

This diff is too big to show here.

test/golden/importless/poms.txt+117−1

This diff is too big to show here.

test/golden/importless/pony-stable.txtnew file+32

This diff is too big to show here.

test/golden/importless/port.txtnew file+59

This diff is too big to show here.

test/golden/importless/posix.txtnew file+14

This diff is too big to show here.

test/golden/importless/postfix-exporter-deps.txt+4−1

This diff is too big to show here.

test/golden/importless/postfix-exporter.txtnew file+41

This diff is too big to show here.

test/golden/importless/postgis.txtnew file+48

This diff is too big to show here.

test/golden/importless/postgres-exporter.txtnew file+29

This diff is too big to show here.

test/golden/importless/postmodern.txtnew file+27

This diff is too big to show here.

test/golden/importless/powerdevil.txt+33−1

This diff is too big to show here.

test/golden/importless/powerdns.txtnew file+45

This diff is too big to show here.

test/golden/importless/powertop.txtnew file+30

This diff is too big to show here.

test/golden/importless/ppx-assert.txtnew file+25

This diff is too big to show here.

test/golden/importless/ppx-bench.txtnew file+23

This diff is too big to show here.

test/golden/importless/ppx-bin-prot.txtnew file+21

This diff is too big to show here.

test/golden/importless/ppx-compare.txtnew file+21

This diff is too big to show here.

test/golden/importless/ppx-core.txtnew file+18

This diff is too big to show here.

test/golden/importless/ppx-custom-printf.txtnew file+21

This diff is too big to show here.

test/golden/importless/ppx-driver.txtnew file+19

This diff is too big to show here.

test/golden/importless/ppx-enumerate.txtnew file+20

This diff is too big to show here.

test/golden/importless/ppx-expect.txtnew file+32

This diff is too big to show here.

test/golden/importless/ppx-fail.txtnew file+21

This diff is too big to show here.

test/golden/importless/ppx-fields-conv.txtnew file+20

This diff is too big to show here.

test/golden/importless/ppx-here.txtnew file+19

This diff is too big to show here.

test/golden/importless/ppx-inline-test.txtnew file+20

This diff is too big to show here.

test/golden/importless/ppx-jane.txtnew file+36

This diff is too big to show here.

test/golden/importless/ppx-let.txtnew file+19

This diff is too big to show here.

test/golden/importless/ppx-optcomp.txtnew file+19

This diff is too big to show here.

test/golden/importless/ppx-pipebang.txtnew file+20

This diff is too big to show here.

test/golden/importless/ppx-sexp-conv.txtnew file+21

This diff is too big to show here.

test/golden/importless/ppx-sexp-message.txtnew file+22

This diff is too big to show here.

test/golden/importless/ppx-sexp-value.txtnew file+22

This diff is too big to show here.

test/golden/importless/ppx-type-conv.txtnew file+21

This diff is too big to show here.

test/golden/importless/ppx-typerep-conv.txtnew file+21

This diff is too big to show here.

test/golden/importless/ppx-variants-conv.txtnew file+22

This diff is too big to show here.

test/golden/importless/ppx.txtnew file+29

This diff is too big to show here.

test/golden/importless/ppx_deriving_json.txtnew file+26

This diff is too big to show here.

test/golden/importless/pre-configure.txtnew file+18

This diff is too big to show here.

test/golden/importless/pre.txtnew file+42

This diff is too big to show here.

test/golden/importless/presets.txtnew file+11

This diff is too big to show here.

test/golden/importless/pressureaudio.txtnew file+23

This diff is too big to show here.

test/golden/importless/primary.txtnew file+13

This diff is too big to show here.

test/golden/importless/print-manager.txtnew file+29

This diff is too big to show here.

test/golden/importless/prison.txtnew file+17

This diff is too big to show here.

test/golden/importless/pro.txtnew file+51

This diff is too big to show here.

test/golden/importless/proc-parse.txtnew file+16

This diff is too big to show here.

test/golden/importless/process-exporter.txtnew file+31

This diff is too big to show here.

test/golden/importless/process-exporter_deps.txt+4−1

This diff is too big to show here.

test/golden/importless/prom2json_deps.txt+4−1

This diff is too big to show here.

test/golden/importless/protobuf-test.txtnew file+24

This diff is too big to show here.

test/golden/importless/protobuf.txtnew file+25

This diff is too big to show here.

test/golden/importless/protocols.txtnew file+32

This diff is too big to show here.

test/golden/importless/prove-asdf.txtnew file+11

This diff is too big to show here.

test/golden/importless/prove.txtnew file+20

This diff is too big to show here.

test/golden/importless/ptester.txtnew file+11

This diff is too big to show here.

test/golden/importless/pthreads.txtnew file+7

This diff is too big to show here.

test/golden/importless/pure.txtnew file+20

This diff is too big to show here.

test/golden/importless/puri.txtnew file+12

This diff is too big to show here.

test/golden/importless/purpose.txtnew file+19

This diff is too big to show here.

test/golden/importless/py-configparser.txtnew file+11

This diff is too big to show here.

test/golden/importless/pyblock.txtnew file+24

This diff is too big to show here.

test/golden/importless/pybrial.txtnew file+22

This diff is too big to show here.

test/golden/importless/pykickstart.txtnew file+18

This diff is too big to show here.

test/golden/importless/pynagsystemd.txtnew file+26

This diff is too big to show here.

test/golden/importless/pyparted.txtnew file+30

This diff is too big to show here.

test/golden/importless/pystatus.txtnew file+46

This diff is too big to show here.

test/golden/importless/python.txtnew file+28

This diff is too big to show here.

test/golden/importless/qemu-guest-agent.txtnew file+30

This diff is too big to show here.

test/golden/importless/qemu-guest.txtnew file+11

This diff is too big to show here.

test/golden/importless/qemu.txtnew file+49

This diff is too big to show here.

test/golden/importless/qmynd.txtnew file+30

This diff is too big to show here.

test/golden/importless/qpaeq.txtnew file+48

This diff is too big to show here.

test/golden/importless/qqc2-desktop-style.txtnew file+17

This diff is too big to show here.

test/golden/importless/qt-4.txtnew file+30

This diff is too big to show here.

test/golden/importless/qt-5.txtnew file+26

This diff is too big to show here.

test/golden/importless/qt.txtnew file+57

This diff is too big to show here.

test/golden/importless/qt4.txtnew file+28

This diff is too big to show here.

test/golden/importless/qt5ct.txtnew file+25

This diff is too big to show here.

test/golden/importless/qtModule.txtnew file+41

This diff is too big to show here.

test/golden/importless/qtcharts.txt+6−1

This diff is too big to show here.

test/golden/importless/qtconnectivity.txtnew file+9

This diff is too big to show here.

test/golden/importless/qtdoc.txt+5−1

This diff is too big to show here.

test/golden/importless/qtgamepad.txt+14−1

This diff is too big to show here.

test/golden/importless/qtgraphicaleffects.txt+5−1

This diff is too big to show here.

test/golden/importless/qtile.txtnew file+26

This diff is too big to show here.

test/golden/importless/qtimageformats.txt+6−1

This diff is too big to show here.

test/golden/importless/qtlocation.txtnew file+8

This diff is too big to show here.

test/golden/importless/qtmacextras.txtnew file+17

This diff is too big to show here.

test/golden/importless/qtmultimedia.txtnew file+30

This diff is too big to show here.

test/golden/importless/qtnetworkauth.txt+1−1

This diff is too big to show here.

test/golden/importless/qtquickcontrols.txt+2−1

This diff is too big to show here.

test/golden/importless/qtquickcontrols2.txt+5−1

This diff is too big to show here.

test/golden/importless/qtscript.txt+3−1

This diff is too big to show here.

test/golden/importless/qtscxml.txt+6−1

This diff is too big to show here.

test/golden/importless/qtsensors.txt+6−1

This diff is too big to show here.

test/golden/importless/qtserialbus.txt+6−1

This diff is too big to show here.

test/golden/importless/qtserialport.txtnew file+8

This diff is too big to show here.

test/golden/importless/qtspeech.txt+3−1

This diff is too big to show here.

test/golden/importless/qtsvg.txt+5−1

This diff is too big to show here.

test/golden/importless/qttranslations.txt+1−1

This diff is too big to show here.

test/golden/importless/qtvirtualkeyboard.txt+8−1

This diff is too big to show here.

test/golden/importless/qtwayland.txt+15−1

This diff is too big to show here.

test/golden/importless/qtwebchannel.txt+6−1

This diff is too big to show here.

test/golden/importless/qtwebengine.txtnew file+137

This diff is too big to show here.

test/golden/importless/qtwebglplugin.txt+6−1

This diff is too big to show here.

test/golden/importless/qtwebsockets.txt+6−1

This diff is too big to show here.

test/golden/importless/qtwebview.txtnew file+25

This diff is too big to show here.

test/golden/importless/qtx11extras.txt+1−1

This diff is too big to show here.

test/golden/importless/qtxmlpatterns.txt+6−1

This diff is too big to show here.

test/golden/importless/quantities.txtnew file+23

This diff is too big to show here.

test/golden/importless/query-fs.txtnew file+30

This diff is too big to show here.

test/golden/importless/quri.txtnew file+18

This diff is too big to show here.

test/golden/importless/rabbitmq-exporter.txtnew file+29

This diff is too big to show here.

test/golden/importless/rabbitmq-exporter_deps.txt+4−1

This diff is too big to show here.

test/golden/importless/racoon.txtnew file+38

This diff is too big to show here.

test/golden/importless/radeon.txt+1−1

This diff is too big to show here.

test/golden/importless/raptor.txtnew file+30

This diff is too big to show here.

test/golden/importless/raspberrypi-builder.txtnew file+18

This diff is too big to show here.

test/golden/importless/raspberrypi.txtnew file+16

This diff is too big to show here.

test/golden/importless/rasqal.txtnew file+39

This diff is too big to show here.

test/golden/importless/ratbagd.txtnew file+18

This diff is too big to show here.

test/golden/importless/rationals.txtnew file+15

This diff is too big to show here.

test/golden/importless/ratpoison.txtnew file+24

This diff is too big to show here.

test/golden/importless/raw.txtnew file+41

This diff is too big to show here.

test/golden/importless/rdnssd.txtnew file+38

This diff is too big to show here.

test/golden/importless/rds.txtnew file+41

This diff is too big to show here.

test/golden/importless/readline-6.2-patches.txt+1−1

This diff is too big to show here.

test/golden/importless/readline-6.3-patches.txt+1−1

This diff is too big to show here.

test/golden/importless/readline-7.0-patches.txt+1−1

This diff is too big to show here.

test/golden/importless/readline-8.0-patches.txt+1−1

This diff is too big to show here.

test/golden/importless/rebar3-release.txtnew file+52

This diff is too big to show here.

test/golden/importless/recursion_schemes.txtnew file+29

This diff is too big to show here.

test/golden/importless/redis-exporter-deps.txt+4−1

This diff is too big to show here.

test/golden/importless/redis-exporter.txtnew file+37

This diff is too big to show here.

test/golden/importless/redis.txtnew file+8

This diff is too big to show here.

test/golden/importless/redland.txtnew file+47

This diff is too big to show here.

test/golden/importless/refined.txtnew file+24

This diff is too big to show here.

test/golden/importless/release_sources.txt+3−1

This diff is too big to show here.

test/golden/importless/remoteshell.txtnew file+5

This diff is too big to show here.

test/golden/importless/repmgr.txtnew file+35

This diff is too big to show here.

test/golden/importless/require_exceptions.txt+78−1

This diff is too big to show here.

test/golden/importless/rest-server.txtnew file+31

This diff is too big to show here.

test/golden/importless/restbed.txtnew file+34

This diff is too big to show here.

test/golden/importless/rfc2388.txtnew file+11

This diff is too big to show here.

test/golden/importless/rng-mirage.txtnew file+31

This diff is too big to show here.

test/golden/importless/rng.txtnew file+32

This diff is too big to show here.

test/golden/importless/rngd.txtnew file+38

This diff is too big to show here.

test/golden/importless/roboschool-fork.txtnew file+43

This diff is too big to show here.

test/golden/importless/robustirc-bridge.txtnew file+42

This diff is too big to show here.

test/golden/importless/rocs.txtnew file+41

This diff is too big to show here.

test/golden/importless/rofi-pass.txtnew file+41

This diff is too big to show here.

test/golden/importless/romkatv_libgit2.txtnew file+8

This diff is too big to show here.

test/golden/importless/roundcube-plugin.txt+3−1

This diff is too big to show here.

test/golden/importless/rove.txtnew file+16

This diff is too big to show here.

test/golden/importless/rpcbind.txtnew file+24

This diff is too big to show here.

test/golden/importless/rt.txtnew file+11

This diff is too big to show here.

test/golden/importless/rtkit.txtnew file+25

This diff is too big to show here.

test/golden/importless/ruby-packages.txt+1635−1

This diff is too big to show here.

test/golden/importless/ruby-version.txtnew file+26

This diff is too big to show here.

test/golden/importless/runtime.txtnew file+25

This diff is too big to show here.

test/golden/importless/rust-src.txtnew file+6

This diff is too big to show here.

test/golden/importless/rustfmt.txtnew file+36

This diff is too big to show here.

test/golden/importless/rvm-patchsets.txt+5−1

This diff is too big to show here.

test/golden/importless/rxe.txtnew file+39

This diff is too big to show here.

test/golden/importless/rygel.txtnew file+32

This diff is too big to show here.

test/golden/importless/s-sql.txtnew file+23

This diff is too big to show here.

test/golden/importless/s-sysdeps.txtnew file+11

This diff is too big to show here.

test/golden/importless/s-xml.txtnew file+12

This diff is too big to show here.

test/golden/importless/sabnzbd.txtnew file+55

This diff is too big to show here.

test/golden/importless/safeeyes.txtnew file+32

This diff is too big to show here.

test/golden/importless/sage-env.txtnew file+65

This diff is too big to show here.

test/golden/importless/sagenb.txtnew file+31

This diff is too big to show here.

test/golden/importless/salza2.txtnew file+11

This diff is too big to show here.

test/golden/importless/samtools_0_1_19.txtnew file+26

This diff is too big to show here.

test/golden/importless/sandbox-shell.txtnew file+5

This diff is too big to show here.

test/golden/importless/sans.txtnew file+24

This diff is too big to show here.

test/golden/importless/sasl.txtnew file+44

This diff is too big to show here.

test/golden/importless/sawfish.txtnew file+24

This diff is too big to show here.

test/golden/importless/sbv-7.13.txtnew file+44

This diff is too big to show here.

test/golden/importless/scala-native.txtnew file+21

This diff is too big to show here.

test/golden/importless/schema.txtnew file+11

This diff is too big to show here.

test/golden/importless/scm.txtnew file+33

This diff is too big to show here.

test/golden/importless/screen.txtnew file+19

This diff is too big to show here.

test/golden/importless/scripts.txtnew file+26

This diff is too big to show here.

test/golden/importless/sddm-kcm.txt+16−1

This diff is too big to show here.

test/golden/importless/sdk-pkgs.txtnew file+48

This diff is too big to show here.

test/golden/importless/sdks.txtnew file+10

This diff is too big to show here.

test/golden/importless/sdl.txtnew file+23

This diff is too big to show here.

test/golden/importless/sdl2.txtnew file+25

This diff is too big to show here.

test/golden/importless/sedutil.txtnew file+17

This diff is too big to show here.

test/golden/importless/semidirect.txtnew file+16

This diff is too big to show here.

test/golden/importless/serapeum.txtnew file+44

This diff is too big to show here.

test/golden/importless/serif.txtnew file+24

This diff is too big to show here.

test/golden/importless/server.txtnew file+58

This diff is too big to show here.

test/golden/importless/setoids.txtnew file+15

This diff is too big to show here.

test/golden/importless/setup-hook.txtnew file+6

This diff is too big to show here.

test/golden/importless/setup-systemd-units.txt+9−1

This diff is too big to show here.

test/golden/importless/sexplib.txtnew file+26

This diff is too big to show here.

test/golden/importless/shader-pack.txtnew file+27

This diff is too big to show here.

test/golden/importless/shadow.txtnew file+67

This diff is too big to show here.

test/golden/importless/shards.txt+1−1

This diff is too big to show here.

test/golden/importless/share.txtnew file+26

This diff is too big to show here.

test/golden/importless/shared.txtnew file+93

This diff is too big to show here.

test/golden/importless/shas.txt+51−1

This diff is too big to show here.

test/golden/importless/shebang-test.txt+16−1

This diff is too big to show here.

test/golden/importless/shiboken.txtnew file+43

This diff is too big to show here.

test/golden/importless/shopify-themekit_deps.txt+4−1

This diff is too big to show here.

test/golden/importless/shrunk.txtnew file+12

This diff is too big to show here.

test/golden/importless/shutdown.txtnew file+15

This diff is too big to show here.

test/golden/importless/sickgear.txtnew file+33

This diff is too big to show here.

test/golden/importless/sickrage.txtnew file+33

This diff is too big to show here.

test/golden/importless/simple-date.txtnew file+18

This diff is too big to show here.

test/golden/importless/simple-mpv-webui.txtnew file+28

This diff is too big to show here.

test/golden/importless/singularity.txtnew file+21

This diff is too big to show here.

test/golden/importless/skeinjar.txtnew file+17

This diff is too big to show here.

test/golden/importless/skeinrepo.txtnew file+19

This diff is too big to show here.

test/golden/importless/skia-deps.txt+3−1

This diff is too big to show here.

test/golden/importless/slock.txtnew file+19

This diff is too big to show here.

test/golden/importless/smallwm.txtnew file+24

This diff is too big to show here.

test/golden/importless/smart-buffer.txtnew file+17

This diff is too big to show here.

test/golden/importless/smlar.txtnew file+30

This diff is too big to show here.

test/golden/importless/smproc.txtnew file+25

This diff is too big to show here.

test/golden/importless/snakeoil-certs.txt+12−1

This diff is too big to show here.

test/golden/importless/snakeoil-keys.txt+3−1

This diff is too big to show here.

test/golden/importless/snippets.txtnew file+26

This diff is too big to show here.

test/golden/importless/snmp-exporter.txtnew file+37

This diff is too big to show here.

test/golden/importless/socket.txtnew file+21

This diff is too big to show here.

test/golden/importless/sockets.txtnew file+17

This diff is too big to show here.

test/golden/importless/softmaker_office.txtnew file+15

This diff is too big to show here.

test/golden/importless/software_foundations.txtnew file+15

This diff is too big to show here.

test/golden/importless/solid.txtnew file+20

This diff is too big to show here.

test/golden/importless/somafm.txtnew file+23

This diff is too big to show here.

test/golden/importless/sonnet.txtnew file+16

This diff is too big to show here.

test/golden/importless/soundcloud.txtnew file+23

This diff is too big to show here.

test/golden/importless/sounds.txtnew file+22

This diff is too big to show here.

test/golden/importless/source-from-head-fun.txtnew file+3

This diff is too big to show here.

test/golden/importless/source.txtnew file+5

This diff is too big to show here.

test/golden/importless/sourceview3.txtnew file+21

This diff is too big to show here.

test/golden/importless/spago.txtnew file+76

This diff is too big to show here.

test/golden/importless/specdris.txtnew file+16

This diff is too big to show here.

test/golden/importless/spectacle.txtnew file+33

This diff is too big to show here.

test/golden/importless/spectrwm.txtnew file+26

This diff is too big to show here.

test/golden/importless/spice-vdagentd.txtnew file+26

This diff is too big to show here.

test/golden/importless/split-sequence.txtnew file+12

This diff is too big to show here.

test/golden/importless/sponsorblock.txtnew file+34

This diff is too big to show here.

test/golden/importless/spotify-tunigo.txtnew file+25

This diff is too big to show here.

test/golden/importless/spotify.txtnew file+27

This diff is too big to show here.

test/golden/importless/spotifyd.txtnew file+43

This diff is too big to show here.

test/golden/importless/springlobby.txtnew file+55

This diff is too big to show here.

test/golden/importless/sqlar.txtnew file+31

This diff is too big to show here.

test/golden/importless/sqlite.txtnew file+21

This diff is too big to show here.

test/golden/importless/squeezelite.txtnew file+35

This diff is too big to show here.

test/golden/importless/src-for-default.txtnew file+6

This diff is too big to show here.

test/golden/importless/src-info-for-default.txt+1−1

This diff is too big to show here.

test/golden/importless/src-libs-git.txt+1−1

This diff is too big to show here.

test/golden/importless/src-libs-svn.txt+1−1

This diff is too big to show here.

test/golden/importless/src-main.txt+1−1

This diff is too big to show here.

test/golden/importless/src.txt+1−1

This diff is too big to show here.

test/golden/importless/srcs.txtnew file+3

This diff is too big to show here.

test/golden/importless/ssh-keys.txtnew file+6

This diff is too big to show here.

test/golden/importless/ssm-agent.txtnew file+42

This diff is too big to show here.

test/golden/importless/stable.txtnew file+4

This diff is too big to show here.

test/golden/importless/staging.txtnew file+17

This diff is too big to show here.

test/golden/importless/standalone.txtnew file+81

This diff is too big to show here.

test/golden/importless/startx.txtnew file+34

This diff is too big to show here.

test/golden/importless/static-vectors.txtnew file+21

This diff is too big to show here.

test/golden/importless/statsd-exporter.txtnew file+30

This diff is too big to show here.

test/golden/importless/status-rust.txtnew file+37

This diff is too big to show here.

test/golden/importless/status.txtnew file+37

This diff is too big to show here.

test/golden/importless/steam-hardware.txtnew file+20

This diff is too big to show here.

test/golden/importless/steam.txtnew file+30

This diff is too big to show here.

test/golden/importless/steamcmd.txtnew file+34

This diff is too big to show here.

test/golden/importless/stefil.txtnew file+18

This diff is too big to show here.

test/golden/importless/stellar-core.txtnew file+44

This diff is too big to show here.

test/golden/importless/str.txtnew file+18

This diff is too big to show here.

test/golden/importless/string-case.txtnew file+11

This diff is too big to show here.

test/golden/importless/stub.txtnew file+21

This diff is too big to show here.

test/golden/importless/stumpwm.txtnew file+25

This diff is too big to show here.

test/golden/importless/sumokoin.txtnew file+39

This diff is too big to show here.

test/golden/importless/sundtek.txtnew file+30

This diff is too big to show here.

test/golden/importless/surfboard-exporter.txtnew file+32

This diff is too big to show here.

test/golden/importless/surfboard.txtnew file+18

This diff is too big to show here.

test/golden/importless/sushi.txtnew file+29

This diff is too big to show here.

test/golden/importless/swank.txtnew file+11

This diff is too big to show here.

test/golden/importless/swap-bytes.txtnew file+16

This diff is too big to show here.

test/golden/importless/swraid.txtnew file+10

This diff is too big to show here.

test/golden/importless/symbol-munger.txtnew file+15

This diff is too big to show here.

test/golden/importless/symbols.txtnew file+24

This diff is too big to show here.

test/golden/importless/syndication.txtnew file+13

This diff is too big to show here.

test/golden/importless/syntax-highlighting.txtnew file+16

This diff is too big to show here.

test/golden/importless/syrup.txtnew file+24

This diff is too big to show here.

test/golden/importless/sysdig.txtnew file+20

This diff is too big to show here.

test/golden/importless/sysprof.txtnew file+24

This diff is too big to show here.

test/golden/importless/sysstat.txtnew file+64

This diff is too big to show here.

test/golden/importless/system-config-printer.txtnew file+22

This diff is too big to show here.

test/golden/importless/system-fonts.txtnew file+7

This diff is too big to show here.

test/golden/importless/system-images-android-tv.txt+116−1

This diff is too big to show here.

test/golden/importless/system-images-android-wear-cn.txt+43−1

This diff is too big to show here.

test/golden/importless/system-images-android-wear.txt+61−1

This diff is too big to show here.

test/golden/importless/system-images-android.txt+315−1

This diff is too big to show here.

test/golden/importless/system-images-google_apis.txt+333−1

This diff is too big to show here.

test/golden/importless/system-images-google_apis_playstore.txt+65−1

This diff is too big to show here.

test/golden/importless/systemsettings.txt+30−1

This diff is too big to show here.

test/golden/importless/systemtap.txtnew file+24

This diff is too big to show here.

test/golden/importless/tailscale.txtnew file+46

This diff is too big to show here.

test/golden/importless/tap.txtnew file+26

This diff is too big to show here.

test/golden/importless/tcpcrypt.txtnew file+36

This diff is too big to show here.

test/golden/importless/tds_fdw.txtnew file+34

This diff is too big to show here.

test/golden/importless/team-list.txtnew file+50

This diff is too big to show here.

test/golden/importless/teamviewer.txtnew file+35

This diff is too big to show here.

test/golden/importless/telepathy.txtnew file+26

This diff is too big to show here.

test/golden/importless/temporal_tables.txtnew file+30

This diff is too big to show here.

test/golden/importless/terminal-server.txtnew file+51

This diff is too big to show here.

test/golden/importless/terminfo.txt+12−1

This diff is too big to show here.

test/golden/importless/tes3mp.txtnew file+46

This diff is too big to show here.

test/golden/importless/tessera.txtnew file+28

This diff is too big to show here.

test/golden/importless/tesseract3.txtnew file+41

This diff is too big to show here.

test/golden/importless/tesseract4.txtnew file+41

This diff is too big to show here.

test/golden/importless/test-case.txt+1−1

This diff is too big to show here.

test/golden/importless/test.txtnew file+22

This diff is too big to show here.

test/golden/importless/tfrandom.txtnew file+24

This diff is too big to show here.

test/golden/importless/threadweaver.txtnew file+14

This diff is too big to show here.

test/golden/importless/throttled.txtnew file+26

This diff is too big to show here.

test/golden/importless/tiddlywiki.txtnew file+47

This diff is too big to show here.

test/golden/importless/tiling.txtnew file+36

This diff is too big to show here.

test/golden/importless/timescaledb.txtnew file+35

This diff is too big to show here.

test/golden/importless/tinywm.txtnew file+24

This diff is too big to show here.

test/golden/importless/tlaps.txtnew file+36

This diff is too big to show here.

test/golden/importless/tlhydra.txtnew file+17

This diff is too big to show here.

test/golden/importless/tls-submodule.txtnew file+9

This diff is too big to show here.

test/golden/importless/tmp.txtnew file+17

This diff is too big to show here.

test/golden/importless/todo.txtnew file+38

This diff is too big to show here.

test/golden/importless/tomb.txtnew file+34

This diff is too big to show here.

test/golden/importless/tomcat-native.txtnew file+32

This diff is too big to show here.

test/golden/importless/tomladris.txtnew file+27

This diff is too big to show here.

test/golden/importless/tool.txtnew file+35

This diff is too big to show here.

test/golden/importless/toolbox.txtnew file+47

This diff is too big to show here.

test/golden/importless/toolchains.txtnew file+16

This diff is too big to show here.

test/golden/importless/tools.txtnew file+52

This diff is too big to show here.

test/golden/importless/tor-arm.txtnew file+36

This diff is too big to show here.

test/golden/importless/tor-exporter.txtnew file+38

This diff is too big to show here.

test/golden/importless/tp.txtnew file+24

This diff is too big to show here.

test/golden/importless/tparsec.txtnew file+26

This diff is too big to show here.

test/golden/importless/tptp.txtnew file+31

This diff is too big to show here.

test/golden/importless/traceroute.txtnew file+18

This diff is too big to show here.

test/golden/importless/tracker-miners.txtnew file+28

This diff is too big to show here.

test/golden/importless/tracker.txtnew file+28

This diff is too big to show here.

test/golden/importless/transducers.txtnew file+23

This diff is too big to show here.

test/golden/importless/translucent.txtnew file+34

This diff is too big to show here.

test/golden/importless/tray.txtnew file+35

This diff is too big to show here.

test/golden/importless/trees.txtnew file+16

This diff is too big to show here.

test/golden/importless/trickster_deps.txt+4−1

This diff is too big to show here.

test/golden/importless/trivia.txtnew file+25

This diff is too big to show here.

test/golden/importless/trivia_dot_balland2006.txtnew file+24

This diff is too big to show here.

test/golden/importless/trivia_dot_level0.txtnew file+11

This diff is too big to show here.

test/golden/importless/trivia_dot_level1.txtnew file+15

This diff is too big to show here.

test/golden/importless/trivia_dot_level2.txtnew file+19

This diff is too big to show here.

test/golden/importless/trivia_dot_quasiquote.txtnew file+25

This diff is too big to show here.

test/golden/importless/trivia_dot_trivial.txtnew file+20

This diff is too big to show here.

test/golden/importless/trivial-backtrace.txtnew file+11

This diff is too big to show here.

test/golden/importless/trivial-clipboard.txtnew file+11

This diff is too big to show here.

test/golden/importless/trivial-cltl2.txtnew file+11

This diff is too big to show here.

test/golden/importless/trivial-features.txtnew file+11

This diff is too big to show here.

test/golden/importless/trivial-file-size.txtnew file+16

This diff is too big to show here.

test/golden/importless/trivial-garbage.txtnew file+12

This diff is too big to show here.

test/golden/importless/trivial-gray-streams.txtnew file+11

This diff is too big to show here.

test/golden/importless/trivial-indent.txtnew file+11

This diff is too big to show here.

test/golden/importless/trivial-macroexpand-all.txtnew file+11

This diff is too big to show here.

test/golden/importless/trivial-mimes.txtnew file+11

This diff is too big to show here.

test/golden/importless/trivial-types.txtnew file+11

This diff is too big to show here.

test/golden/importless/trivial-utf-8.txtnew file+12

This diff is too big to show here.

test/golden/importless/tsearch_extras.txtnew file+32

This diff is too big to show here.

test/golden/importless/tuxedo-keyboard.txtnew file+15

This diff is too big to show here.

test/golden/importless/tvheadend.txtnew file+54

This diff is too big to show here.

test/golden/importless/twm.txtnew file+25

This diff is too big to show here.

test/golden/importless/type-i.txtnew file+22

This diff is too big to show here.

test/golden/importless/typerep.txtnew file+26

This diff is too big to show here.

test/golden/importless/tyxml.txtnew file+30

This diff is too big to show here.

test/golden/importless/tzupdate.txtnew file+33

This diff is too big to show here.

test/golden/importless/udev-rules.txtnew file+18

This diff is too big to show here.

test/golden/importless/udev.txtnew file+21

This diff is too big to show here.

test/golden/importless/udev_rules_type1.txtnew file+32

This diff is too big to show here.

test/golden/importless/udevil.txtnew file+11

This diff is too big to show here.

test/golden/importless/udisks2.txtnew file+20

This diff is too big to show here.

test/golden/importless/uffi.txtnew file+11

This diff is too big to show here.

test/golden/importless/ui.txtnew file+48

This diff is too big to show here.

test/golden/importless/uim.txtnew file+29

This diff is too big to show here.

test/golden/importless/uinput.txtnew file+17

This diff is too big to show here.

test/golden/importless/uiop.txtnew file+11

This diff is too big to show here.

test/golden/importless/unfuck.txtnew file+79

This diff is too big to show here.

test/golden/importless/ungoogled-src.txt+1−1

This diff is too big to show here.

test/golden/importless/ungoogled.txtnew file+21

This diff is too big to show here.

test/golden/importless/union_type.txtnew file+23

This diff is too big to show here.

test/golden/importless/unit-test.txtnew file+11

This diff is too big to show here.

test/golden/importless/unix-odbc-drivers.txtnew file+16

This diff is too big to show here.

test/golden/importless/unix-opts.txtnew file+11

This diff is too big to show here.

test/golden/importless/unix.txtnew file+34

This diff is too big to show here.

test/golden/importless/unstable.txtnew file+36

This diff is too big to show here.

test/golden/importless/unwrapped.txtnew file+80

This diff is too big to show here.

test/golden/importless/update-resolv-conf.txtnew file+34

This diff is too big to show here.

test/golden/importless/update-systemd-resolved.txtnew file+36

This diff is too big to show here.

test/golden/importless/update.txt+16−1

This diff is too big to show here.

test/golden/importless/updateSettings.txtnew file+12

This diff is too big to show here.

test/golden/importless/uptimed.txtnew file+51

This diff is too big to show here.

test/golden/importless/uranium.txtnew file+46

This diff is too big to show here.

test/golden/importless/urserver.txtnew file+35

This diff is too big to show here.

test/golden/importless/usb-wwan.txtnew file+21

This diff is too big to show here.

test/golden/importless/usbtop.txtnew file+17

This diff is too big to show here.

test/golden/importless/user-account.txt+14−1

This diff is too big to show here.

test/golden/importless/user-manager.txt+15−1

This diff is too big to show here.

test/golden/importless/usocket.txtnew file+14

This diff is too big to show here.

test/golden/importless/utils.txtnew file+37

This diff is too big to show here.

test/golden/importless/uuid.txtnew file+16

This diff is too big to show here.

test/golden/importless/uvcdynctrl-udev-rules.txt+23−1

This diff is too big to show here.

test/golden/importless/v10.txt+11−1

This diff is too big to show here.

test/golden/importless/v12.txt+11−1

This diff is too big to show here.

test/golden/importless/v14.txt+10−1

This diff is too big to show here.

test/golden/importless/v3.txtnew file+35

This diff is too big to show here.

test/golden/importless/v3_4.txtnew file+14

This diff is too big to show here.

test/golden/importless/v3_6.txtnew file+18

This diff is too big to show here.

test/golden/importless/v4_0.txtnew file+18

This diff is too big to show here.

test/golden/importless/v4_2.txtnew file+18

This diff is too big to show here.

test/golden/importless/variantslib.txtnew file+26

This diff is too big to show here.

test/golden/importless/varnish-exporter.txtnew file+33

This diff is too big to show here.

test/golden/importless/vdom.txtnew file+24

This diff is too big to show here.

test/golden/importless/vecspace.txtnew file+15

This diff is too big to show here.

test/golden/importless/vhba.txtnew file+27

This diff is too big to show here.

test/golden/importless/viewer.txtnew file+39

This diff is too big to show here.

test/golden/importless/vim.txtnew file+17

This diff is too big to show here.

test/golden/importless/virtualbox-guest.txtnew file+55

This diff is too big to show here.

test/golden/importless/vkd3d.txtnew file+31

This diff is too big to show here.

test/golden/importless/vlc.txtnew file+37

This diff is too big to show here.

test/golden/importless/vnstat.txtnew file+55

This diff is too big to show here.

test/golden/importless/vom.txtnew file+11

This diff is too big to show here.

test/golden/importless/vscodeWithConfiguration.txtnew file+16

This diff is too big to show here.

test/golden/importless/vulkan.txtnew file+42

This diff is too big to show here.

test/golden/importless/wacom.txtnew file+24

This diff is too big to show here.

test/golden/importless/wakeonlan.txtnew file+23

This diff is too big to show here.

test/golden/importless/wallpapers.txtnew file+32

This diff is too big to show here.

test/golden/importless/wavemon.txtnew file+20

This diff is too big to show here.

test/golden/importless/waybar.txtnew file+32

This diff is too big to show here.

test/golden/importless/wayland.txtnew file+41

This diff is too big to show here.

test/golden/importless/web.txtnew file+32

This diff is too big to show here.

test/golden/importless/webgl.txtnew file+25

This diff is too big to show here.

test/golden/importless/wicd.txtnew file+30

This diff is too big to show here.

test/golden/importless/widevine.txtnew file+24

This diff is too big to show here.

test/golden/importless/windowlab.txtnew file+26

This diff is too big to show here.

test/golden/importless/windowmaker.txtnew file+25

This diff is too big to show here.

test/golden/importless/winetricks.txtnew file+37

This diff is too big to show here.

test/golden/importless/wireguard-exporter.txtnew file+35

This diff is too big to show here.

test/golden/importless/with-extensions.txtnew file+18

This diff is too big to show here.

test/golden/importless/with-fonts.txtnew file+24

This diff is too big to show here.

test/golden/importless/with-packages.txtnew file+13

This diff is too big to show here.

test/golden/importless/with-provers.txtnew file+17

This diff is too big to show here.

test/golden/importless/with-vte.txtnew file+14

This diff is too big to show here.

test/golden/importless/wk-switch.txtnew file+33

This diff is too big to show here.

test/golden/importless/wl-pprint.txtnew file+13

This diff is too big to show here.

test/golden/importless/wlrobs.txtnew file+36

This diff is too big to show here.

test/golden/importless/wmcalclock.txtnew file+34

This diff is too big to show here.

test/golden/importless/wmfocus.txtnew file+38

This diff is too big to show here.

test/golden/importless/wmic-bin.txtnew file+35

This diff is too big to show here.

test/golden/importless/wmii.txtnew file+24

This diff is too big to show here.

test/golden/importless/wmsm.app.txtnew file+31

This diff is too big to show here.

test/golden/importless/wmsystemtray.txtnew file+33

This diff is too big to show here.

test/golden/importless/woo.txtnew file+36

This diff is too big to show here.

test/golden/importless/wookie.txtnew file+42

This diff is too big to show here.

test/golden/importless/wooting.txtnew file+18

This diff is too big to show here.

test/golden/importless/wownero.txtnew file+41

This diff is too big to show here.

test/golden/importless/wrapper-rstudio.txtnew file+20

This diff is too big to show here.

test/golden/importless/wrapper.txtnew file+15

This diff is too big to show here.

test/golden/importless/wyvern.txtnew file+27

This diff is too big to show here.

test/golden/importless/x32edit.txtnew file+12

This diff is too big to show here.

test/golden/importless/xbanish.txtnew file+31

This diff is too big to show here.

test/golden/importless/xcb-util-xrm.txtnew file+28

This diff is too big to show here.

test/golden/importless/xdg-desktop-portal-kde.txt+23−1

This diff is too big to show here.

test/golden/importless/xdg-desktop-portal.txtnew file+6

This diff is too big to show here.

test/golden/importless/xe-guest-utilities.txtnew file+55

This diff is too big to show here.

test/golden/importless/xembed.txtnew file+11

This diff is too big to show here.

test/golden/importless/xen-domU.txt+8−1

This diff is too big to show here.

test/golden/importless/xfce4-cpugraph-plugin.txtnew file+46

This diff is too big to show here.

test/golden/importless/xfce4-dockbarx-plugin.txtnew file+48

This diff is too big to show here.

test/golden/importless/xfce4-embed-plugin.txtnew file+40

This diff is too big to show here.

test/golden/importless/xfce4-eyes-plugin.txtnew file+41

This diff is too big to show here.

test/golden/importless/xfce4-fsguard-plugin.txtnew file+41

This diff is too big to show here.

test/golden/importless/xfce4-genmon-plugin.txtnew file+40

This diff is too big to show here.

test/golden/importless/xfce4-hardware-monitor-plugin.txtnew file+42

This diff is too big to show here.

test/golden/importless/xfce4-icon-theme.txtnew file+41

This diff is too big to show here.

test/golden/importless/xfce4-mailwatch-plugin.txtnew file+41

This diff is too big to show here.

test/golden/importless/xfce4-mpc-plugin.txtnew file+39

This diff is too big to show here.

test/golden/importless/xfce4-namebar-plugin.txtnew file+39

This diff is too big to show here.

test/golden/importless/xfce4-notes-plugin.txtnew file+44

This diff is too big to show here.

test/golden/importless/xfce4-sensors-plugin.txtnew file+46

This diff is too big to show here.

test/golden/importless/xfce4-systemload-plugin.txtnew file+40

This diff is too big to show here.

test/golden/importless/xfce4-timer-plugin.txtnew file+40

This diff is too big to show here.

test/golden/importless/xfce4-weather-plugin.txtnew file+45

This diff is too big to show here.

test/golden/importless/xfce4-windowck-plugin.txtnew file+56

This diff is too big to show here.

test/golden/importless/xfs.txtnew file+33

This diff is too big to show here.

test/golden/importless/xft.txtnew file+26

This diff is too big to show here.

test/golden/importless/xfwm4-themes.txtnew file+28

This diff is too big to show here.

test/golden/importless/xhr.txtnew file+25

This diff is too big to show here.

test/golden/importless/xhyve.txtnew file+38

This diff is too big to show here.

test/golden/importless/xkeyboard.txtnew file+12

This diff is too big to show here.

test/golden/importless/xlib.txtnew file+46

This diff is too big to show here.

test/golden/importless/xmlbird.txtnew file+33

This diff is too big to show here.

test/golden/importless/xmls.txtnew file+12

This diff is too big to show here.

test/golden/importless/xow.txtnew file+19

This diff is too big to show here.

test/golden/importless/xpath.txtnew file+24

This diff is too big to show here.

test/golden/importless/xsa-patches.txt+51−1

This diff is too big to show here.

test/golden/importless/xsane.txtnew file+38

This diff is too big to show here.

test/golden/importless/xst.txtnew file+35

This diff is too big to show here.

test/golden/importless/xsubseq.txtnew file+11

This diff is too big to show here.

test/golden/importless/xterm.txtnew file+34

This diff is too big to show here.

test/golden/importless/xwayland.txtnew file+38

This diff is too big to show here.

test/golden/importless/yacc.txtnew file+11

This diff is too big to show here.

test/golden/importless/yakuake.txtnew file+37

This diff is too big to show here.

test/golden/importless/yaml.txtnew file+27

This diff is too big to show here.

test/golden/importless/yampa.txtnew file+16

This diff is too big to show here.

test/golden/importless/yarn.txtnew file+8

This diff is too big to show here.

test/golden/importless/yason.txtnew file+15

This diff is too big to show here.

test/golden/importless/yeahwm.txtnew file+24

This diff is too big to show here.

test/golden/importless/youtube.txtnew file+22

This diff is too big to show here.

test/golden/importless/z3.txtnew file+28

This diff is too big to show here.

test/golden/importless/zdbsp.txtnew file+34

This diff is too big to show here.

test/golden/importless/zef.txtnew file+32

This diff is too big to show here.

test/golden/importless/zeitgeist.txtnew file+24

This diff is too big to show here.

test/golden/importless/zmap.txtnew file+22

This diff is too big to show here.

test/golden/importless/zpaqd.txtnew file+28

This diff is too big to show here.

test/golden/importless/zpb-ttf.txtnew file+11

This diff is too big to show here.

test/golden/importless/zsh-autoenv.txtnew file+20

This diff is too big to show here.

test/golden/importless/zydas-zd1211.txtnew file+1

This diff is too big to show here.

test/golden/mine/0.9.nixnew file+5

This diff is too big to show here.

test/golden/mine/0.9.txtnew file+1

This diff is too big to show here.

test/golden/mine/agda-packages.nixnew file+6

This diff is too big to show here.

test/golden/mine/agda-packages.txtnew file+1

This diff is too big to show here.

test/golden/mine/arbitraryRank.nixnew file+1

This diff is too big to show here.

test/golden/mine/arbitraryRank.txtnew file+1

This diff is too big to show here.

test/golden/mine/curry.txt+1−1

This diff is too big to show here.

test/golden/mine/define-option-dependently-nested.nixnew file+12

This diff is too big to show here.

test/golden/mine/define-option-dependently-nested.txtnew file+3

This diff is too big to show here.

test/golden/mine/dhall-packages.nixnew file+14

This diff is too big to show here.

test/golden/mine/dhall-packages.txtnew file+1

This diff is too big to show here.

test/golden/mine/inftype.nixnew file+1

This diff is too big to show here.

test/golden/mine/inftype.txtnew file+1

This diff is too big to show here.

test/golden/mine/nuget.txt+1−1

This diff is too big to show here.

test/golden/mine/nums.nixnew file+5

This diff is too big to show here.

test/golden/mine/nums.txtnew file+1

This diff is too big to show here.

test/golden/mine/org-generated.nixnew file+6

This diff is too big to show here.

test/golden/mine/org-generated.txtnew file+1

This diff is too big to show here.

test/golden/mine/other.nixnew file+6

This diff is too big to show here.

test/golden/mine/other.txtnew file+1

This diff is too big to show here.

test/golden/mine/other_row.nixnew file+9

This diff is too big to show here.

test/golden/mine/other_row.txtnew file+5

This diff is too big to show here.

test/golden/mine/polyApply.txt+1−1

This diff is too big to show here.

test/golden/mine/polyArgs.nixnew file+1

This diff is too big to show here.

test/golden/mine/polyArgs.txtnew file+1

This diff is too big to show here.

test/golden/mine/subsumption.nixnew file+6

This diff is too big to show here.

test/golden/mine/subsumption.txtnew file+4

This diff is too big to show here.

test/golden/mine/subsumption_other.nixnew file+5

This diff is too big to show here.

test/golden/mine/subsumption_other.txtnew file+1

This diff is too big to show here.

test/golden/mine/variadic.nixnew file+2

This diff is too big to show here.

test/golden/mine/variadic.txtnew file+4

This diff is too big to show here.

test/golden/mine/with.nixnew file+6

This diff is too big to show here.

test/golden/mine/with.txtnew file+1

This diff is too big to show here.

test/golden/mine/z3.nixnew file+10

This diff is too big to show here.

test/golden/mine/z3.txtnew file+3

This diff is too big to show here.

test/Main.hs → test/src/Main.hsrenamed+4−7

This diff is too big to show here.

tix.code-workspacenew file+12

This diff is too big to show here.