on 08e40ea help sign in
1363 files changed+14516−21655
since splitsnapshots
unifiedsplit
.github/workflows/build_docs.yaml−4 docs/.vscode/settings.json+1−8 docs/bibl.bib+1−16 docs/default.nix+10−2 docs/nix/sources.json+12 docs/paper.lhs+110−932 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/tech_spec.tex+53−17 docs/trfrac.sty−193 paper.pdf src/Tix/Builtins.hs−68 src/Tix/Typechecker.hs+75−115 src/Tix/Types.hs+15−26 stack.yaml+1−1 test/golden/importless/0.1.txt+6−5 test/golden/importless/0.10.txt+1−1 test/golden/importless/0.11.1.txt+12−11 test/golden/importless/0.11.txt+1−1 test/golden/importless/0.12.txt+1−1 test/golden/importless/0.14.1.txt+11−10 test/golden/importless/0.17.1.txt+11−10 test/golden/importless/0.18.0.txt+14−13 test/golden/importless/0.2.txt+1−1 test/golden/importless/0.20.0.txt+11−10 test/golden/importless/0.29.txt+14−11 test/golden/importless/0.3.3.txt−5 test/golden/importless/0.5.1.txt−6 test/golden/importless/0.61.txt+39−39 test/golden/importless/0.8.5.txt+23−22 test/golden/importless/0.9.5.txt+8−8 test/golden/importless/0.9.6.txt+8−8 test/golden/importless/0.9.txt+13−12 test/golden/importless/1-default.txt+2−2 test/golden/importless/1.0.0.txt+1−1 test/golden/importless/1.0.txt+20−18 test/golden/importless/1.00.37.txt+17−17 test/golden/importless/1.3.txt+59−56 test/golden/importless/1.4.txt+10−9 test/golden/importless/1.5.txt+20−20 test/golden/importless/1.55.txt−6 test/golden/importless/1.59.txt−7 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+35−32 test/golden/importless/1.x.txt+23−22 test/golden/importless/10.5.x.txt+25−24 test/golden/importless/11.1.txt+16−14 test/golden/importless/112.01.01.txt+9−8 test/golden/importless/12.txt+1−1 test/golden/importless/16.1.2.txt+27−23 test/golden/importless/1compat.txt+3−2 test/golden/importless/2.0.0.txt+2−2 test/golden/importless/2.0.txt+26−23 test/golden/importless/2.1.txt−5 test/golden/importless/2.10.txt+16−15 test/golden/importless/2.11.txt+16−15 test/golden/importless/2.12.txt+16−15 test/golden/importless/2.13.txt+16−15 test/golden/importless/2.2.txt−5 test/golden/importless/2.22.txt+13−11 test/golden/importless/2.26.txt+19−17 test/golden/importless/2.4.0.txt+10−9 test/golden/importless/2.4.txt−79 test/golden/importless/2.5.35.txt+2−1 test/golden/importless/2.5.txt−6 test/golden/importless/2.6.1.txt+5−3 test/golden/importless/2.6.13-pre.txt−45 test/golden/importless/2.6.2.txt+20−18 test/golden/importless/2.64.txt+15−14 test/golden/importless/2.7-html.txt+1−1 test/golden/importless/2.7-pdf-a4.txt+1−1 test/golden/importless/2.7-pdf-letter.txt+1−1 test/golden/importless/2.7-text.txt+1−1 test/golden/importless/2.7.7.txt+1−1 test/golden/importless/2.8.txt−5 test/golden/importless/2.x.txt+24−23 test/golden/importless/20160331.txt+24−22 test/golden/importless/25.txt+36−30 test/golden/importless/26.txt+30−25 test/golden/importless/2_4.txt−5 test/golden/importless/2bwm.txt+16−19 test/golden/importless/3.0.txt−5 test/golden/importless/3.0.x.txt+15−14 test/golden/importless/3.08.0.txt+10−10 test/golden/importless/3.1.txt+8−8 test/golden/importless/3.10.0.txt+9−8 test/golden/importless/3.10.txt+1−2 test/golden/importless/3.11.txt−5 test/golden/importless/3.12.1.txt−42 test/golden/importless/3.12.txt+1−2 test/golden/importless/3.13.txt+1−2 test/golden/importless/3.5.txt−8 test/golden/importless/3.6.txt+1−2 test/golden/importless/3.7-html.txt+1−1 test/golden/importless/3.7-pdf-a4.txt+1−1 test/golden/importless/3.7-pdf-letter.txt+1−1 test/golden/importless/3.7-text.txt+1−1 test/golden/importless/3.7.txt+1−2 test/golden/importless/3.8.txt+1−2 test/golden/importless/3.9.txt+1−2 test/golden/importless/3.txt+22−20 test/golden/importless/3.x.txt+21−20 test/golden/importless/38.txt+7−6 test/golden/importless/3_1.txt−5 test/golden/importless/3dovideo.txt+20−20 test/golden/importless/4.01.17.txt+12−11 test/golden/importless/4.1.txt+8−8 test/golden/importless/4.13a.txt+1−1 test/golden/importless/4.2.1.txt+20−18 test/golden/importless/4.3.2.txt+21−18 test/golden/importless/4.4.txt+33−32 test/golden/importless/4.9.9.txt+17−15 test/golden/importless/4.txt+2−2 test/golden/importless/422.txt+17−15 test/golden/importless/44.0.txt+24−24 test/golden/importless/5.1.138.txt+11−11 test/golden/importless/5.41.txt+28−22 test/golden/importless/5.6.txt+23−19 test/golden/importless/5.7.txt+12−10 test/golden/importless/5.7.x.txt+24−21 test/golden/importless/5.txt+2−1 test/golden/importless/6.3.txt+1−1 test/golden/importless/6.txt+1−1 test/golden/importless/60.txt+9−9 test/golden/importless/68.txt+14−14 test/golden/importless/6_qt4.txt+13−10 test/golden/importless/7.3.txt+6−5 test/golden/importless/7.6.6.txt−46 test/golden/importless/78.txt+13−12 test/golden/importless/8.0.x.txt+1−1 test/golden/importless/8.5.txt−7 test/golden/importless/8.6.txt−11 test/golden/importless/8_0.txt−11 test/golden/importless/9.2.txt+29−27 test/golden/importless/9.x.txt+49−47 test/golden/importless/Cargo.txt+31−30 test/golden/importless/R16B02-basho.txt+14−13 test/golden/importless/_3bmd.txt−16 test/golden/importless/abnf.txt−16 test/golden/importless/account-service-util.txt+19−18 test/golden/importless/accountsservice.txt+24−27 test/golden/importless/acpilight.txt+11−13 test/golden/importless/adb.txt+22−25 test/golden/importless/afterstep.txt+16−19 test/golden/importless/ais.txt+6−5 test/golden/importless/alexandria.txt+4−4 test/golden/importless/aliases.txt+214 test/golden/importless/alsamixer.app.txt+19−18 test/golden/importless/alternatives-plugin.txt+17−16 test/golden/importless/amazon-init.txt+2−2 test/golden/importless/amazon-options.txt+9−12 test/golden/importless/amd-microcode.txt+12−15 test/golden/importless/amdgpu-pro.txt−55 test/golden/importless/amdgpu.txt+7−9 test/golden/importless/anaphora.txt−12 test/golden/importless/apcupsd.txt+5−5 test/golden/importless/apeclex.txt+1−1 test/golden/importless/apiextractor.txt+21−20 test/golden/importless/appdaemon.txt+54−56 test/golden/importless/appliance.txt+1−1 test/golden/importless/appstream.txt+8−10 test/golden/importless/archive-version.txt+1−1 test/golden/importless/array-utils.txt+4−4 test/golden/importless/array.txt+6−6 test/golden/importless/asdf-finalizers.txt+4−4 test/golden/importless/asdf-package-system.txt+4−4 test/golden/importless/asdf-system-connections.txt+4−4 test/golden/importless/assets.txt+1−1 test/golden/importless/atd.txt+53 test/golden/importless/ati.txt+21−24 test/golden/importless/atop.txt+14−15 test/golden/importless/attica.txt−14 test/golden/importless/attrsOf-conditional-check.txt+6−8 test/golden/importless/auditd.txt+12−14 test/golden/importless/automake-1.11.x.txt+18−17 test/golden/importless/automake-1.15.x.txt+18−17 test/golden/importless/automake-1.16.x.txt+17−16 test/golden/importless/autorandr.txt+21−24 test/golden/importless/autostart.txt+15−17 test/golden/importless/aws-s3-exporter.txt+1−1 test/golden/importless/azure-agent.txt+52−54 test/golden/importless/b43.txt+17−17 test/golden/importless/babel-streams.txt−17 test/golden/importless/babel.txt−15 test/golden/importless/backend.txt+3−3 test/golden/importless/baloo-widgets.txt+2−2 test/golden/importless/baloo.txt+2−2 test/golden/importless/bamf.txt+14−17 test/golden/importless/bandwhich.txt+17−20 test/golden/importless/base.txt+36−38 test/golden/importless/bash-my-aws.txt+11−13 test/golden/importless/bcache.txt+4−4 test/golden/importless/bcachefs.txt+21−25 test/golden/importless/bcc-git.txt+1−1 test/golden/importless/bcc.txt+17−18 test/golden/importless/bean-add.txt+3−3 test/golden/importless/berry.txt+16−19 test/golden/importless/beta.txt+26−24 test/golden/importless/bi.txt+6−6 test/golden/importless/bifunctors.txt+2−2 test/golden/importless/binary-tarball.txt−25 test/golden/importless/binary.txt+17−15 test/golden/importless/blackbird.txt−11 test/golden/importless/bladeRF.txt+13−15 test/golden/importless/blivet.txt+7−6 test/golden/importless/blocks-gaps.txt+1−1 test/golden/importless/bloodspilot-client.txt+24−22 test/golden/importless/bloodspilot-server.txt+1−1 test/golden/importless/blueman.txt+13−15 test/golden/importless/bluez-qt.txt−16 test/golden/importless/bolt.txt+16−19 test/golden/importless/boot.txt+6−5 test/golden/importless/bootstrap.txt+20−18 test/golden/importless/bordeaux-threads.txt−16 test/golden/importless/breeze-gtk.txt+1−1 test/golden/importless/breeze-icons.txt+2−2 test/golden/importless/brillo.txt+12−14 test/golden/importless/brltty.txt+16−18 test/golden/importless/browserpass.txt+9−11 test/golden/importless/build-rebar3.txt+77−54 test/golden/importless/build-skaware-package.txt+11−10 test/golden/importless/build-solution.txt+1−1 test/golden/importless/build.txt+2−2 test/golden/importless/buildOcamlJane.txt+26−26 test/golden/importless/builder.txt−24 test/golden/importless/buildnode-xhtml.txt−33 test/golden/importless/buildnode.txt−35 test/golden/importless/builds.txt+1−1 test/golden/importless/bytes.txt+2−2 test/golden/importless/calibre-server.txt+21−25 test/golden/importless/camlp4.txt+5−5 test/golden/importless/canto-daemon.txt+11−13 test/golden/importless/canvas.txt+2−2 test/golden/importless/carnix.txt+5−5 test/golden/importless/categories.txt+2−2 test/golden/importless/caveman.txt−80 test/golden/importless/cde.txt+33−36 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+15−12 test/golden/importless/channel.txt+6−9 test/golden/importless/check-plugin.txt+1−1 test/golden/importless/chipz.txt+4−4 test/golden/importless/chrome-gnome-shell.txt+18−21 test/golden/importless/chrootenv.txt+20−20 test/golden/importless/chunga.txt−14 test/golden/importless/circular-streams.txt−22 test/golden/importless/cl-aa.txt+4−4 test/golden/importless/cl-annot.txt−11 test/golden/importless/cl-anonfun.txt+4−4 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+4−4 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+4−4 test/golden/importless/cl-html5-parser.txt−17 test/golden/importless/cl-interpol.txt−18 test/golden/importless/cl-jpeg.txt+4−4 test/golden/importless/cl-json.txt−12 test/golden/importless/cl-l10n-cldr.txt+4−4 test/golden/importless/cl-l10n.txt−32 test/golden/importless/cl-libuv.txt−19 test/golden/importless/cl-log.txt+4−4 test/golden/importless/cl-markdown.txt−20 test/golden/importless/cl-markup.txt+4−4 test/golden/importless/cl-mysql.txt−17 test/golden/importless/cl-paths-ttf.txt−15 test/golden/importless/cl-paths.txt+4−4 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+4−4 test/golden/importless/cl-utilities.txt+4−4 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+4−4 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+2−2 test/golden/importless/clfswm.txt+16−19 test/golden/importless/clickhouse.txt+19−22 test/golden/importless/clickshare.txt+19−22 test/golden/importless/client-ip-echo.txt+2−2 test/golden/importless/clientlib.txt+6−5 test/golden/importless/clingo.txt+16−14 test/golden/importless/clipmenu.txt+15−18 test/golden/importless/clippy.txt+28−26 test/golden/importless/clooj.txt+6−6 test/golden/importless/closer-mop.txt+4−4 test/golden/importless/closure-common.txt−17 test/golden/importless/closure-html.txt−19 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+1−1 test/golden/importless/coda.txt+6−6 test/golden/importless/cohttp.txt+1−1 test/golden/importless/collectors.txt−19 test/golden/importless/colord.txt+13−15 test/golden/importless/combinators.txt+1−1 test/golden/importless/command-line-arguments.txt+4−4 test/golden/importless/common-path.txt+3−4 test/golden/importless/common.txt+15−16 test/golden/importless/community.txt−88 test/golden/importless/comonad.txt+6−6 test/golden/importless/compiler-rt.txt+50−44 test/golden/importless/compiler.txt+7−7 test/golden/importless/component-packages.txt+671−671 test/golden/importless/composition.txt+6−6 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+19−19 test/golden/importless/console.txt+6−6 test/golden/importless/container-config.txt+12−15 test/golden/importless/containers.txt+6−6 test/golden/importless/contrib.txt+22−21 test/golden/importless/control.txt+9−7 test/golden/importless/convert.txt+3−3 test/golden/importless/couchpotato.txt+15−18 test/golden/importless/criu.txt+18−20 test/golden/importless/cryptpad.txt+16−19 test/golden/importless/cryptsetup.txt−38 test/golden/importless/css-lite.txt+4−4 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+5−5 test/golden/importless/cstruct.txt+1−1 test/golden/importless/cube.txt+6−6 test/golden/importless/curaengine.txt+1−1 test/golden/importless/curry-base.txt+3−3 test/golden/importless/curry-frontend.txt+3−3 test/golden/importless/cursive.txt+22−21 test/golden/importless/cutter.txt+5−5 test/golden/importless/cwm.txt+16−19 test/golden/importless/cxml-stp.txt−27 test/golden/importless/cxml.txt−20 test/golden/importless/dante.txt+18−21 test/golden/importless/das_watchdog.txt+11−13 test/golden/importless/data-api.txt+6−6 test/golden/importless/data.txt+1−1 test/golden/importless/db3.txt+4−4 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/dconf2nix.txt+2−2 test/golden/importless/debian-build.txt−29 test/golden/importless/debug-info.txt+10−11 test/golden/importless/declare-attrsOf.txt+7−7 test/golden/importless/declare-coerced-value-unsound.txt+11−10 test/golden/importless/declare-either.txt+9−8 test/golden/importless/declare-enable-nested.txt+6−7 test/golden/importless/declare-enable.txt+6−7 test/golden/importless/declare-int-between-value.txt+6−7 test/golden/importless/declare-int-positive-value-nested.txt+6−7 test/golden/importless/declare-int-positive-value.txt+6−7 test/golden/importless/declare-int-unsigned-value.txt+6−7 test/golden/importless/declare-lazyAttrsOf.txt+8−8 test/golden/importless/declare-oneOf.txt+12−10 test/golden/importless/declare-submoduleWith-path.txt+5−6 test/golden/importless/declare-submoduleWith-special.txt+10−11 test/golden/importless/default-crate-overrides.txt+55−54 test/golden/importless/define-_module-args-custom.txt+1−1 test/golden/importless/define-attrsOfSub-foo-enable-force.txt+2−3 test/golden/importless/define-attrsOfSub-foo-enable-if.txt+3−3 test/golden/importless/define-attrsOfSub-foo-force-enable.txt+2−3 test/golden/importless/define-attrsOfSub-foo-if-enable.txt+3−7 test/golden/importless/define-attrsOfSub-force-foo-enable.txt+2−3 test/golden/importless/define-attrsOfSub-if-foo-enable.txt+5−7 test/golden/importless/define-enable-force.txt+1−1 test/golden/importless/define-enable-with-custom-arg.txt+1−1 test/golden/importless/define-force-attrsOfSub-foo-enable.txt+2−3 test/golden/importless/define-force-enable.txt+1−1 test/golden/importless/define-if-attrsOfSub-foo-enable.txt+4−6 test/golden/importless/define-option-dependently-nested.txt+4−9 test/golden/importless/define-option-dependently.txt+4−7 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/dep-overrides.txt−21 test/golden/importless/derive.txt+6−6 test/golden/importless/descncrunch.txt+6−6 test/golden/importless/detected.txt+3−4 test/golden/importless/devmon.txt+15−17 test/golden/importless/dexador.txt−43 test/golden/importless/dfu-util.txt+1−1 test/golden/importless/dhall-packages.txt+1−1 test/golden/importless/dict.txt+6−6 test/golden/importless/dictd-db.txt+16−16 test/golden/importless/dictd-wiktionary.txt+8−8 test/golden/importless/dictd-wordnet.txt+8−8 test/golden/importless/digimend.txt+13−17 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/dispatch.txt+1−1 test/golden/importless/displaylink.txt+17−20 test/golden/importless/dissect.txt+4−4 test/golden/importless/dleyna-renderer.txt+14−16 test/golden/importless/dleyna-server.txt+14−16 test/golden/importless/dmraid.txt+10−9 test/golden/importless/do-agent.txt+11−13 test/golden/importless/do-urlencode.txt−16 test/golden/importless/documentation-utils.txt−14 test/golden/importless/dolphin-plugins.txt+2−2 test/golden/importless/dolphin.txt+3−3 test/golden/importless/dom.txt+6−6 test/golden/importless/dotty.txt+1−1 test/golden/importless/dovecot-exporter.txt+1−1 test/golden/importless/dragon.txt+6−6 test/golden/importless/drakma.txt−29 test/golden/importless/dsseries.txt+16−19 test/golden/importless/dust.txt+19−17 test/golden/importless/dvtm.txt+8−7 test/golden/importless/dwm.txt+16−19 test/golden/importless/dynamic-classes.txt−14 test/golden/importless/eagle.txt+4−3 test/golden/importless/easyfocus.txt+9−9 test/golden/importless/ecryptfs.txt+9−12 test/golden/importless/edit.txt+6−5 test/golden/importless/editor.txt+6−5 test/golden/importless/editors.txt+31−26 test/golden/importless/egg2nix.txt+15−13 test/golden/importless/eggs.txt−14 test/golden/importless/electron.txt+6−6 test/golden/importless/element-desktop.txt+5−5 test/golden/importless/elm-format.txt+2−2 test/golden/importless/elm-instrument.txt+2−2 test/golden/importless/elm-json.txt+1−1 test/golden/importless/elm.txt+2−2 test/golden/importless/elmi-to-json.txt+2−2 test/golden/importless/emergency-mode.txt+10−12 test/golden/importless/emscripten-packages.txt−49 test/golden/importless/emulate-app.txt+1−1 test/golden/importless/emulator.txt+25−16 test/golden/importless/engine.txt+9−8 test/golden/importless/enterprise-edition.txt+4−4 test/golden/importless/environment.txt+8−10 test/golden/importless/eos.txt+4−4 test/golden/importless/epmd.txt+13−15 test/golden/importless/espanso.txt+20−23 test/golden/importless/esrap-peg.txt−17 test/golden/importless/esrap.txt−16 test/golden/importless/esxi.txt+15−14 test/golden/importless/eternal.txt+6−6 test/golden/importless/evilwm.txt+16−19 test/golden/importless/evolution-data-server.txt+24−27 test/golden/importless/exfat.txt+7−10 test/golden/importless/ext.txt+3−3 test/golden/importless/external-program.txt−16 test/golden/importless/extlinux-conf-builder.txt+1−1 test/golden/importless/extpack.txt+27 test/golden/importless/extra-target-flags.txt+2−1 test/golden/importless/extract-nuget.txt+3−6 test/golden/importless/extras.txt+11−10 test/golden/importless/facetimehd.txt+21−23 test/golden/importless/fancontrol.txt+16−19 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+4−4 test/golden/importless/farrp.txt+6−6 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/faxq-default.txt+1−2 test/golden/importless/fcitx.txt+34−35 test/golden/importless/fetch-rebar-deps.txt+3−2 test/golden/importless/fetchNodeModules.txt+8−8 test/golden/importless/ffmpegthumbs.txt+3−3 test/golden/importless/fiasco.txt−16 test/golden/importless/filters.txt+36−34 test/golden/importless/firejail.txt+22−25 test/golden/importless/fiveam.txt−17 test/golden/importless/fixed-points.txt+10−7 test/golden/importless/flatpak-builder.txt+11−10 test/golden/importless/flatpak.txt+30−32 test/golden/importless/flexi-streams.txt−15 test/golden/importless/fluxbox.txt+16−19 test/golden/importless/fontdir.txt+10−12 test/golden/importless/form-fiddle.txt−15 test/golden/importless/fox-1.6.txt+30−28 test/golden/importless/frameworkintegration.txt+2−2 test/golden/importless/frameworks.txt+93−93 test/golden/importless/free.txt+6−6 test/golden/importless/freeform-attrsOf.txt+5−8 test/golden/importless/freeform-lazyAttrsOf.txt+6−7 test/golden/importless/freeform-nested.txt+6−6 test/golden/importless/freeform-str-dep-unstr.txt+9−10 test/golden/importless/freeform-unstr-dep-str.txt+9−10 test/golden/importless/freeoffice.txt−15 test/golden/importless/freetds.txt+16−18 test/golden/importless/frontends.txt+2−1 test/golden/importless/fs.txt+1−1 test/golden/importless/fset.txt−15 test/golden/importless/fsm.txt+6−6 test/golden/importless/fstrim.txt+20−23 test/golden/importless/full.txt+1−1 test/golden/importless/fuseki-binary.txt+17−15 test/golden/importless/fvwm.txt+22−25 test/golden/importless/garbage-pools.txt+4−4 test/golden/importless/gateone.txt+36−40 test/golden/importless/gc.txt+2−2 test/golden/importless/gcab.txt+2−2 test/golden/importless/gdal-1_11.txt+28−26 test/golden/importless/gdk-pixbuf.txt+18−21 test/golden/importless/gdomap.txt+12−14 test/golden/importless/geary.txt+18−21 test/golden/importless/gemset-beta.txt+36−36 test/golden/importless/gemset_libvirt.txt+15−15 test/golden/importless/generations-dir.txt+32−39 test/golden/importless/generatorrunner.txt+20−19 test/golden/importless/generic-builder.txt−36 test/golden/importless/generic-stack-builder.txt−45 test/golden/importless/generic-v3.txt+51−45 test/golden/importless/generic.txt+35−33 test/golden/importless/geogebra6.txt+1−1 test/golden/importless/gerbil-crypto.txt+20−20 test/golden/importless/gerbil-ethereum.txt+20−20 test/golden/importless/gerbil-persist.txt+19−19 test/golden/importless/gerbil-poo.txt+18−18 test/golden/importless/gerbil-utils.txt+14−14 test/golden/importless/ghcjs-base.txt+2−2 test/golden/importless/ghostscript.txt+9−11 test/golden/importless/gitlab-ci-pipelines-exporter.txt+1−1 test/golden/importless/gjs.txt+5−6 test/golden/importless/glfw.txt+6−6 test/golden/importless/glib-networking.txt+19−22 test/golden/importless/glib-testing.txt+2−6 test/golden/importless/global-vars.txt+4−4 test/golden/importless/gmusic.txt+1−1 test/golden/importless/gnome-initial-setup.txt+27−30 test/golden/importless/gnome-keyring.txt+26−29 test/golden/importless/gnome-online-accounts.txt+21−24 test/golden/importless/gnome-online-miners.txt+23−26 test/golden/importless/gnome-photos.txt+22−21 test/golden/importless/gnome-remote-desktop.txt+18−21 test/golden/importless/gnome-user-share.txt+19−22 test/golden/importless/gnu.txt+20−23 test/golden/importless/go-ethereum.txt+10−9 test/golden/importless/go-shadowsocks2.txt+14−17 test/golden/importless/google_oslogin.txt+13−15 test/golden/importless/gphoto2.txt+19−22 test/golden/importless/graphene.txt+2−2 test/golden/importless/graphical.txt+3−3 test/golden/importless/graphite2.txt+5−4 test/golden/importless/graphql.txt+1−1 test/golden/importless/graphviz-2.0.txt+13−12 test/golden/importless/graphviz.txt+6−6 test/golden/importless/greenclip.txt+16−19 test/golden/importless/gsl-1_16.txt+17−15 test/golden/importless/gsm.txt+6−5 test/golden/importless/gstreamer.txt+1−1 test/golden/importless/gtk-greeter.txt+2−1 test/golden/importless/gtk-icon-cache.txt+12−15 test/golden/importless/gui.txt+24−23 test/golden/importless/gwenview.txt+3−3 test/golden/importless/hamster.txt+17−19 test/golden/importless/hamt.txt+6−6 test/golden/importless/hdaps.txt+12−14 test/golden/importless/headless.txt+2−2 test/golden/importless/helper.txt+1−1 test/golden/importless/helpers.txt+1−1 test/golden/importless/herbstluftwm.txt+22−25 test/golden/importless/hezarfen.txt+6−6 test/golden/importless/hfaxd-default.txt+1−1 test/golden/importless/hg.txt+1−1 test/golden/importless/hidepid.txt+19−21 test/golden/importless/hls-ghcide.txt+2−2 test/golden/importless/hpsa.txt+24−27 test/golden/importless/hrtime.txt+6−6 test/golden/importless/html.txt+6−6 test/golden/importless/http-body.txt−37 test/golden/importless/http.txt+1−1 test/golden/importless/http4idris.txt+6−6 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/hyperv-guest.txt+28−30 test/golden/importless/i2p.txt+15−18 test/golden/importless/iaia.txt+6−6 test/golden/importless/ibus.txt+6−7 test/golden/importless/icewm.txt+16−19 test/golden/importless/icons.txt+16−18 test/golden/importless/idna.txt−14 test/golden/importless/idrishighlighter.txt+6−6 test/golden/importless/idrisscript.txt+6−6 test/golden/importless/ieee-floats.txt−12 test/golden/importless/iftop.txt+12−14 test/golden/importless/iio.txt+16−18 test/golden/importless/illum.txt+11−13 test/golden/importless/imapfilter.txt+9−7 test/golden/importless/indents.txt+2−2 test/golden/importless/info.txt+1−1 test/golden/importless/init-script.txt+17−20 test/golden/importless/integrations-core.txt−29 test/golden/importless/intel-2200bg.txt+10−12 test/golden/importless/intel-microcode.txt+13−16 test/golden/importless/introspect-environment.txt+4−4 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+9−11 test/golden/importless/ipkgparser.txt+2−2 test/golden/importless/iproute2.txt+25−29 test/golden/importless/ironclad.txt−18 test/golden/importless/irqbalance.txt+12−14 test/golden/importless/iterate.txt+4−4 test/golden/importless/iwd.txt+22−24 test/golden/importless/ixf.txt−23 test/golden/importless/janePackage.txt+13−19 test/golden/importless/janePackage_0_12.txt+13−18 test/golden/importless/janePackage_0_13.txt+13−18 test/golden/importless/java.txt+13−16 test/golden/importless/jdk-darwin-base.txt+11−10 test/golden/importless/jgrpp.txt+7−6 test/golden/importless/jheiling-extras.txt+6−6 test/golden/importless/jheiling-js.txt+6−6 test/golden/importless/jonathan.txt−29 test/golden/importless/js-build-tools.txt+1−1 test/golden/importless/js.txt+6−6 test/golden/importless/json-exporter.txt+1−1 test/golden/importless/json.txt+5−5 test/golden/importless/jwm.txt+16−19 test/golden/importless/kactivities-stats.txt+2−2 test/golden/importless/kactivities.txt+2−2 test/golden/importless/kak-fzf.txt+19−18 test/golden/importless/kak-plumb.txt+21−20 test/golden/importless/kalarm.txt+2−2 test/golden/importless/kapidox.txt+2−2 test/golden/importless/karchive.txt−18 test/golden/importless/kate.txt+3−3 test/golden/importless/kbdlight.txt+11−13 test/golden/importless/kbookmarks.txt+2−2 test/golden/importless/kcalc.txt+5−5 test/golden/importless/kcalendarcore.txt+2−2 test/golden/importless/kcharselect.txt+5−5 test/golden/importless/kcodecs.txt−17 test/golden/importless/kcolorchooser.txt+3−3 test/golden/importless/kcompletion.txt+2−2 test/golden/importless/kconfig.txt−15 test/golden/importless/kcontacts.txt+2−2 test/golden/importless/kcoreaddons.txt−16 test/golden/importless/kcrash.txt+2−2 test/golden/importless/kdbusaddons.txt−16 test/golden/importless/kdebugsettings.txt+4−4 test/golden/importless/kdeclarative.txt+2−2 test/golden/importless/kdecoration.txt−15 test/golden/importless/kded.txt+2−2 test/golden/importless/kdegraphics-mobipocket.txt+5−5 test/golden/importless/kdegraphics-thumbnailers.txt+5−5 test/golden/importless/kdenetwork-filesharing.txt+7−6 test/golden/importless/kdenlive.txt+1−1 test/golden/importless/kdesignerplugin.txt+2−2 test/golden/importless/kdevelop-pg-qt.txt+20−19 test/golden/importless/kdf.txt+3−3 test/golden/importless/kdnssd.txt−17 test/golden/importless/kemoticons.txt+2−2 test/golden/importless/kexec.txt+16−17 test/golden/importless/keybase.txt+13−15 test/golden/importless/keylight.txt+5−5 test/golden/importless/kfind.txt+5−5 test/golden/importless/kgeography.txt+2−2 test/golden/importless/kgpg.txt+5−5 test/golden/importless/kguiaddons.txt−16 test/golden/importless/khtml.txt+2−2 test/golden/importless/ki18n.txt−18 test/golden/importless/kidletime.txt−15 test/golden/importless/kimageformats.txt+2−2 test/golden/importless/kio-extras.txt+3−3 test/golden/importless/kipi-plugins.txt+3−3 test/golden/importless/kirigami2.txt−15 test/golden/importless/kitemmodels.txt−14 test/golden/importless/kitemviews.txt−16 test/golden/importless/kitinerary.txt+5−5 test/golden/importless/kjobwidgets.txt+2−2 test/golden/importless/kjs.txt+2−2 test/golden/importless/kjsembed.txt+2−2 test/golden/importless/klogd.txt+19−21 test/golden/importless/kmediaplayer.txt+2−2 test/golden/importless/kmime.txt+3−3 test/golden/importless/kmix.txt+3−3 test/golden/importless/kmod.txt+24−24 test/golden/importless/kmplot.txt+3−3 test/golden/importless/kmrcl.txt+4−4 test/golden/importless/knewstuff.txt+2−2 test/golden/importless/knotifications.txt+2−2 test/golden/importless/knotifyconfig.txt+2−2 test/golden/importless/kodi.txt+16−19 test/golden/importless/kolourpaint.txt+5−5 test/golden/importless/konqueror.txt+1−1 test/golden/importless/kparts.txt+2−2 test/golden/importless/kpeople.txt+2−2 test/golden/importless/kpkpass.txt+5−5 test/golden/importless/kplotting.txt−15 test/golden/importless/kpty.txt+2−2 test/golden/importless/kqtquickcharts.txt+3−3 test/golden/importless/kquickcharts.txt+2−2 test/golden/importless/kross.txt+2−2 test/golden/importless/kruler.txt+3−3 test/golden/importless/krunner.txt+2−2 test/golden/importless/ktexteditor.txt+2−2 test/golden/importless/ktextwidgets.txt+2−2 test/golden/importless/ktouch.txt+5−5 test/golden/importless/kunitconversion.txt+2−2 test/golden/importless/kvm.txt+1−1 test/golden/importless/kwallet.txt+2−2 test/golden/importless/kwayland.txt−19 test/golden/importless/kwidgetsaddons.txt−16 test/golden/importless/kxmlgui.txt+2−2 test/golden/importless/kxmlrpcclient.txt+2−2 test/golden/importless/labs_consol_de.txt+27−26 test/golden/importless/lack-component.txt+4−4 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+13−11 test/golden/importless/layout-manager.txt+24−23 test/golden/importless/ledger.txt+9−11 test/golden/importless/leftwm.txt+16−19 test/golden/importless/legacy.txt+10−8 test/golden/importless/lens.txt+6−6 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/libc++abi.txt+31−27 test/golden/importless/libcroco.txt+2−1 test/golden/importless/libdislocator.txt+15−13 test/golden/importless/libgdata.txt+6−7 test/golden/importless/libjcat.txt+2−2 test/golden/importless/libkdcraw.txt+3−3 test/golden/importless/libkexiv2.txt+3−3 test/golden/importless/libkipi.txt+3−3 test/golden/importless/libmaa.txt+1−1 test/golden/importless/libnvc.txt+1−1 test/golden/importless/liboping.txt+12−14 test/golden/importless/library.txt+22−21 test/golden/importless/libtokencap.txt+15−13 test/golden/importless/libtool2.txt+1−1 test/golden/importless/libunwind.txt+14−14 test/golden/importless/libusb1.txt+11−8 test/golden/importless/libxkbcommon_7.txt+7−6 test/golden/importless/libxmlb.txt+2−2 test/golden/importless/libxpdf.txt+3−3 test/golden/importless/licenses.txt+38−26 test/golden/importless/lift.txt+4−4 test/golden/importless/light.txt+14−16 test/golden/importless/lightyear.txt+3−3 test/golden/importless/limesdr.txt+6−5 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+8−7 test/golden/importless/liquidsoap.txt+66 test/golden/importless/lisp-namespace.txt−11 test/golden/importless/lisp-unit2.txt−22 test/golden/importless/list-of.txt−14 test/golden/importless/lld.txt+15−14 test/golden/importless/lldb.txt+22−18 test/golden/importless/lldpd.txt+20−23 test/golden/importless/llvm.txt+24−21 test/golden/importless/local-time.txt−18 test/golden/importless/locales.txt+3−3 test/golden/importless/localtime.txt+16−18 test/golden/importless/lock-fancy.txt+24−23 test/golden/importless/lock-kernel-modules.txt+24−26 test/golden/importless/log4cl.txt−17 test/golden/importless/logic.txt+6−6 test/golden/importless/logkeys.txt+13−16 test/golden/importless/logmein-hamachi.txt+13−15 test/golden/importless/lparallel.txt−15 test/golden/importless/lquery.txt−19 test/golden/importless/ltc.txt+1−1 test/golden/importless/luarocks-nix.txt+1−1 test/golden/importless/lumina.txt+22−23 test/golden/importless/lvm2.txt+12−12 test/golden/importless/lwm.txt+16−19 test/golden/importless/lwt-unix.txt+3−3 test/golden/importless/lxcfs.txt+16−19 test/golden/importless/lxmenu-data.txt+12−11 test/golden/importless/m32edit.txt−12 test/golden/importless/machine.txt+4−4 test/golden/importless/macport.txt+1−1 test/golden/importless/macvim.txt+2−2 test/golden/importless/magic-wormhole-mailbox-server.txt+16−19 test/golden/importless/mail-exporter.txt+1−1 test/golden/importless/mailhog.txt+15−17 test/golden/importless/mailpile.txt+26−29 test/golden/importless/mainline.txt−4 test/golden/importless/maintainer-list.txt+1705−1490 test/golden/importless/make-channel.txt+8−8 test/golden/importless/make-dbus-conf.txt+2−2 test/golden/importless/make-ext4-fs.txt+15−15 test/golden/importless/make-peer.txt+13−12 test/golden/importless/make-squashfs.txt+1−1 test/golden/importless/malcontent.txt+15−17 test/golden/importless/malloc.txt+19−22 test/golden/importless/man.txt+1−1 test/golden/importless/map-set.txt+4−4 test/golden/importless/mapping.txt+6−6 test/golden/importless/marshal.txt+4−4 test/golden/importless/masq.txt+6−6 test/golden/importless/master.txt+53 test/golden/importless/material-theme.txt+1−1 test/golden/importless/maven-build.txt+38−30 test/golden/importless/mavenPlugins.txt+18−18 test/golden/importless/mcelog.txt+17−20 test/golden/importless/md5.txt+4−4 test/golden/importless/mem.txt+1−1 test/golden/importless/menus.txt+15−17 test/golden/importless/metabang-bind.txt+4−4 test/golden/importless/metacity.txt+17−20 test/golden/importless/metaocaml-3.09.txt+4−4 test/golden/importless/metatilities-base.txt+4−4 test/golden/importless/mhd.txt+6−6 test/golden/importless/mime.txt+18−21 test/golden/importless/minimal.txt+6−10 test/golden/importless/mininet.txt+22−24 test/golden/importless/minion.txt+50 test/golden/importless/misc-extensions.txt+4−4 test/golden/importless/mjpg-streamer.txt+28−32 test/golden/importless/mk-string-metrics.txt+4−4 test/golden/importless/moarvm.txt+9−8 test/golden/importless/mod.txt+22−20 test/golden/importless/modem-default.txt+2−2 test/golden/importless/modemmanager-qt.txt−15 test/golden/importless/modemmanager.txt+5−5 test/golden/importless/module-list.txt+1−1 test/golden/importless/modules-closure.txt+1−1 test/golden/importless/modules.txt+163−163 test/golden/importless/mom.txt+23−26 test/golden/importless/monit.txt+21−23 test/golden/importless/moodle-utils.txt+21−23 test/golden/importless/moptilities.txt−11 test/golden/importless/mptcp-config.txt+3−3 test/golden/importless/mspdebug.txt−55 test/golden/importless/mssql.txt−20 test/golden/importless/mstpd.txt+13−15 test/golden/importless/mt19937.txt+4−4 test/golden/importless/mtr.txt+15−17 test/golden/importless/muchsync.txt+16−14 test/golden/importless/mullvad-vpn.txt+19−22 test/golden/importless/multi.txt−12 test/golden/importless/multilib.txt+6−6 test/golden/importless/multipath-tools.txt+10−10 test/golden/importless/munge.txt+16−19 test/golden/importless/mwm.txt+16−19 test/golden/importless/mwprocapture.txt+20−21 test/golden/importless/myway.txt−21 test/golden/importless/nabi.txt+9−12 test/golden/importless/nacl.txt+6−5 test/golden/importless/named-readtables.txt+4−4 test/golden/importless/nanonote.txt+10−10 test/golden/importless/neard.txt+13−15 test/golden/importless/net_dot_didierverna_dot_asdf-flv.txt+4−4 test/golden/importless/netboot.txt+32−34 test/golden/importless/networkmanager-qt.txt−15 test/golden/importless/new-api.txt+7−6 test/golden/importless/news-updater.txt+9−8 test/golden/importless/nextcloud-exporter.txt+1−1 test/golden/importless/nginxlog-exporter.txt+1−1 test/golden/importless/nibbles.txt−12 test/golden/importless/nix-generate-from-cpan.txt+7−6 test/golden/importless/nixops-autoluks.txt+8−11 test/golden/importless/nixops-v1_6_1.txt+19−19 test/golden/importless/nixpkgs-lint.txt+10−9 test/golden/importless/nm-applet.txt+16−19 test/golden/importless/no-x-libs.txt+36−47 test/golden/importless/node.txt+6−7 test/golden/importless/not-detected.txt+3−3 test/golden/importless/notion.txt+14−17 test/golden/importless/novacomd.txt+16−19 test/golden/importless/npm.txt+22−24 test/golden/importless/nscd.txt+60 test/golden/importless/ntfs.txt+7−10 test/golden/importless/nullidentdmod.txt+14−17 test/golden/importless/nvidia-optimus.txt+17−18 test/golden/importless/nw12.txt+43−43 test/golden/importless/oauth2_proxy_nginx.txt+21−22 test/golden/importless/obs-ndi.txt+1−1 test/golden/importless/ocserv.txt+16−19 test/golden/importless/ofono.txt+22−25 test/golden/importless/oidentd.txt+19−21 test/golden/importless/okular.txt+38−38 test/golden/importless/openbox.txt+15−18 test/golden/importless/openfire.txt+31−33 test/golden/importless/openmp.txt+18−17 test/golden/importless/openvpn_learnaddress.txt+18−17 test/golden/importless/optima.txt−15 test/golden/importless/org-generated.txt+4−4 test/golden/importless/oroborus.txt+16−19 test/golden/importless/osmosdr.txt+10−9 test/golden/importless/ostree.txt+7−9 test/golden/importless/otf.txt+15−13 test/golden/importless/overlay.txt+9−9 test/golden/importless/owamp.txt+9−11 test/golden/importless/oxygen-icons5.txt+5−5 test/golden/importless/pack.txt+1−1 test/golden/importless/packagekit.txt+16−19 test/golden/importless/pacman.txt+2−2 test/golden/importless/pam_usb.txt+20−21 test/golden/importless/parenscript.txt−16 test/golden/importless/parse-declarations-1_dot_0.txt+4−4 test/golden/importless/parse-number.txt+4−4 test/golden/importless/parser.txt+9−9 test/golden/importless/parted.txt−42 test/golden/importless/passthru.txt+3−3 test/golden/importless/paste.txt+1−1 test/golden/importless/patricia.txt+6−6 test/golden/importless/pcall-queue.txt−15 test/golden/importless/pcall.txt−18 test/golden/importless/pdf_sets.txt+13−13 test/golden/importless/pdnsd.txt+23−26 test/golden/importless/pekwm.txt+16−19 test/golden/importless/perf.txt+12−10 test/golden/importless/periods.txt+7−7 test/golden/importless/permutations.txt+6−6 test/golden/importless/persistenced.txt+10−10 test/golden/importless/pfds.txt+6−6 test/golden/importless/pflogsumm.txt+11−10 test/golden/importless/pg_auto_failover.txt+8−8 test/golden/importless/pg_bigm.txt+6−6 test/golden/importless/pg_cron.txt+5−5 test/golden/importless/pg_ed25519.txt+6−6 test/golden/importless/pg_hll.txt+5−5 test/golden/importless/pg_partman.txt+5−5 test/golden/importless/pg_safeupdate.txt+4−4 test/golden/importless/pg_similarity.txt+13−13 test/golden/importless/pg_topn.txt+5−5 test/golden/importless/pgjwt.txt+5−5 test/golden/importless/pgloader.txt−74 test/golden/importless/pgroonga.txt+5−5 test/golden/importless/pgrouting.txt+6−6 test/golden/importless/pipelinedb.txt+8−8 test/golden/importless/pipes.txt+6−6 test/golden/importless/pk.txt+1−1 test/golden/importless/platform-flags.txt+14−20 test/golden/importless/platform.txt+7−6 test/golden/importless/plotinus.txt+16−19 test/golden/importless/plpgsql_check.txt+6−6 test/golden/importless/plump-dom.txt−11 test/golden/importless/plump-lexer.txt+4−4 test/golden/importless/plump-parser.txt−17 test/golden/importless/plump.txt−16 test/golden/importless/pony-stable.txt+14−12 test/golden/importless/port.txt−59 test/golden/importless/posix.txt+2−2 test/golden/importless/postfix-exporter.txt+1−1 test/golden/importless/postgis.txt+9−8 test/golden/importless/postmodern.txt−27 test/golden/importless/powerdns.txt+17−19 test/golden/importless/powertop.txt+11−13 test/golden/importless/ppx.txt+6−6 test/golden/importless/pre-configure.txt+1−2 test/golden/importless/pressureaudio.txt+1−1 test/golden/importless/print-manager.txt+2−2 test/golden/importless/prison.txt−17 test/golden/importless/proc-parse.txt−16 test/golden/importless/process-exporter.txt+1−1 test/golden/importless/protobuf.txt+6−6 test/golden/importless/protocols.txt+14−14 test/golden/importless/prove-asdf.txt+4−4 test/golden/importless/prove.txt−20 test/golden/importless/ptester.txt+4−4 test/golden/importless/pure.txt+1−1 test/golden/importless/puri.txt−12 test/golden/importless/purpose.txt+2−2 test/golden/importless/py-configparser.txt−11 test/golden/importless/pyblock.txt+9−9 test/golden/importless/pykickstart.txt+2−2 test/golden/importless/pyparted.txt+10−8 test/golden/importless/qemu-guest-agent.txt+12−14 test/golden/importless/qemu-guest.txt+3−3 test/golden/importless/qemu.txt−49 test/golden/importless/qmynd.txt−30 test/golden/importless/qpaeq.txt+6−6 test/golden/importless/qt-5.txt+18−16 test/golden/importless/qt4.txt+1−1 test/golden/importless/qt5ct.txt+17−20 test/golden/importless/qtModule.txt+41−38 test/golden/importless/qtconnectivity.txt+2−2 test/golden/importless/qtgamepad.txt+1−1 test/golden/importless/qtile.txt+14−17 test/golden/importless/qtlocation.txt+2−2 test/golden/importless/qtspeech.txt+1−2 test/golden/importless/qtwebengine.txt+115−113 test/golden/importless/qtwebview.txt+7−6 test/golden/importless/quantities.txt+5−5 test/golden/importless/query-fs.txt−30 test/golden/importless/quri.txt−18 test/golden/importless/rabbitmq-exporter.txt+1−1 test/golden/importless/racoon.txt+14−17 test/golden/importless/raptor.txt+16−14 test/golden/importless/raspberrypi-builder.txt+1−1 test/golden/importless/rasqal.txt+27−25 test/golden/importless/ratbagd.txt+13−15 test/golden/importless/rationals.txt+2−2 test/golden/importless/ratpoison.txt+16−19 test/golden/importless/rdnssd.txt+20−23 test/golden/importless/rds.txt+2−1 test/golden/importless/rebar3-release.txt+63−41 test/golden/importless/recursion_schemes.txt+6−6 test/golden/importless/redis-exporter.txt+1−1 test/golden/importless/redis.txt+2−2 test/golden/importless/redland.txt+15−13 test/golden/importless/refined.txt+6−6 test/golden/importless/repmgr.txt+5−5 test/golden/importless/require_exceptions.txt+8−8 test/golden/importless/rfc2388.txt+4−4 test/golden/importless/rng-mirage.txt+1−1 test/golden/importless/rng.txt+1−1 test/golden/importless/rngd.txt+14−16 test/golden/importless/roboschool-fork.txt+17−15 test/golden/importless/robustirc-bridge.txt+15−18 test/golden/importless/rocs.txt+4−4 test/golden/importless/rofi-pass.txt+25−23 test/golden/importless/romkatv_libgit2.txt+8−7 test/golden/importless/rove.txt−16 test/golden/importless/rpcbind.txt+19−21 test/golden/importless/rt.txt+4−4 test/golden/importless/rtkit.txt+20−22 test/golden/importless/ruby-packages.txt+253−253 test/golden/importless/ruby-version.txt+1−1 test/golden/importless/rustfmt.txt+21−20 test/golden/importless/rxe.txt+18−21 test/golden/importless/rygel.txt+24−27 test/golden/importless/s-sql.txt−23 test/golden/importless/s-sysdeps.txt+4−4 test/golden/importless/s-xml.txt+4−4 test/golden/importless/sabnzbd.txt+18−22 test/golden/importless/safeeyes.txt+12−14 test/golden/importless/sage-env.txt+1−1 test/golden/importless/sagenb.txt+1−1 test/golden/importless/salza2.txt+4−4 test/golden/importless/samtools_0_1_19.txt+1−1 test/golden/importless/sawfish.txt+16−19 test/golden/importless/sbv-7.13.txt+2−2 test/golden/importless/schema.txt+1−1 test/golden/importless/screen.txt+12−14 test/golden/importless/scripts.txt+15−14 test/golden/importless/sdk-pkgs.txt+30−26 test/golden/importless/sdl.txt+2−2 test/golden/importless/sedutil.txt+11−13 test/golden/importless/semidirect.txt+2−2 test/golden/importless/serapeum.txt−44 test/golden/importless/server.txt+20−23 test/golden/importless/setoids.txt+2−2 test/golden/importless/shadow.txt+35−35 test/golden/importless/share.txt+13−13 test/golden/importless/shared.txt+67−64 test/golden/importless/shiboken.txt−43 test/golden/importless/shutdown.txt+2−2 test/golden/importless/sickgear.txt+17−16 test/golden/importless/sickrage.txt+14−14 test/golden/importless/simple-date.txt−18 test/golden/importless/singularity.txt+14−17 test/golden/importless/skeinjar.txt+1−1 test/golden/importless/skeinrepo.txt+1−1 test/golden/importless/slock.txt+13−15 test/golden/importless/smallwm.txt+16−19 test/golden/importless/smart-buffer.txt−17 test/golden/importless/smlar.txt+6−6 test/golden/importless/smproc.txt+6−6 test/golden/importless/snippets.txt+6−6 test/golden/importless/socket.txt+1−1 test/golden/importless/sockets.txt+7−7 test/golden/importless/softmaker_office.txt−15 test/golden/importless/software_foundations.txt+2−2 test/golden/importless/solid.txt−20 test/golden/importless/sonnet.txt−16 test/golden/importless/sounds.txt+16−19 test/golden/importless/source-from-head-fun.txt+1−1 test/golden/importless/spago.txt+2−2 test/golden/importless/specdris.txt+2−2 test/golden/importless/spectrwm.txt+14−17 test/golden/importless/spice-vdagentd.txt+12−14 test/golden/importless/split-sequence.txt−12 test/golden/importless/spotify.txt+2−2 test/golden/importless/spotifyd.txt+20−23 test/golden/importless/springlobby.txt+1−1 test/golden/importless/sqlite.txt+10−10 test/golden/importless/squeezelite.txt+11−12 test/golden/importless/ssh-keys.txt+3−3 test/golden/importless/ssm-agent.txt+22−25 test/golden/importless/stable.txt−4 test/golden/importless/staging.txt+17−15 test/golden/importless/standalone.txt+51−50 test/golden/importless/startx.txt+19−22 test/golden/importless/static-vectors.txt−21 test/golden/importless/status.txt+25−24 test/golden/importless/steam-hardware.txt+14−16 test/golden/importless/steam.txt+20−23 test/golden/importless/stefil.txt−18 test/golden/importless/stellar-core.txt+1−1 test/golden/importless/str.txt−18 test/golden/importless/string-case.txt+4−4 test/golden/importless/stumpwm.txt+17−20 test/golden/importless/sundtek.txt+11−13 test/golden/importless/surfboard.txt+5−5 test/golden/importless/sushi.txt+22−25 test/golden/importless/swank.txt+4−4 test/golden/importless/swap-bytes.txt−16 test/golden/importless/swraid.txt+5−5 test/golden/importless/symbol-munger.txt−15 test/golden/importless/syndication.txt+2−2 test/golden/importless/syntax-highlighting.txt−16 test/golden/importless/sysdig.txt+14−17 test/golden/importless/sysprof.txt+18−20 test/golden/importless/sysstat.txt+16−19 test/golden/importless/system-config-printer.txt+14−17 test/golden/importless/systemtap.txt+19−21 test/golden/importless/tailscale.txt+23−24 test/golden/importless/tap.txt+6−6 test/golden/importless/tcpcrypt.txt+20−22 test/golden/importless/tds_fdw.txt+8−8 test/golden/importless/teamviewer.txt+11−13 test/golden/importless/telepathy.txt+19−22 test/golden/importless/temporal_tables.txt+5−5 test/golden/importless/terminal-server.txt+18−19 test/golden/importless/terminfo.txt+2−2 test/golden/importless/tes3mp.txt+1−1 test/golden/importless/tesseract3.txt+19−17 test/golden/importless/tesseract4.txt+19−17 test/golden/importless/test-case.txt+1−1 test/golden/importless/test.txt+1−1 test/golden/importless/tfrandom.txt+6−6 test/golden/importless/threadweaver.txt−14 test/golden/importless/throttled.txt+17−20 test/golden/importless/tiddlywiki.txt+19−22 test/golden/importless/timescaledb.txt+5−5 test/golden/importless/tinywm.txt+16−19 test/golden/importless/tlaps.txt+23−21 test/golden/importless/tlhydra.txt+2−2 test/golden/importless/tls-submodule.txt+7−8 test/golden/importless/tmp.txt+13−14 test/golden/importless/todo.txt+1−1 test/golden/importless/tomladris.txt+6−6 test/golden/importless/tool.txt+22−21 test/golden/importless/toolbox.txt+16−15 test/golden/importless/tools.txt+2−2 test/golden/importless/tor-arm.txt+20−18 test/golden/importless/tp.txt+6−6 test/golden/importless/tparsec.txt+6−6 test/golden/importless/tptp.txt+21−21 test/golden/importless/traceroute.txt+11−13 test/golden/importless/tracker-miners.txt+22−25 test/golden/importless/tracker.txt+22−25 test/golden/importless/transducers.txt+6−6 test/golden/importless/trees.txt+2−2 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+4−4 test/golden/importless/trivial-clipboard.txt−11 test/golden/importless/trivial-cltl2.txt+4−4 test/golden/importless/trivial-features.txt+4−4 test/golden/importless/trivial-file-size.txt−16 test/golden/importless/trivial-garbage.txt−12 test/golden/importless/trivial-gray-streams.txt+4−4 test/golden/importless/trivial-indent.txt+4−4 test/golden/importless/trivial-macroexpand-all.txt+4−4 test/golden/importless/trivial-mimes.txt+4−4 test/golden/importless/trivial-types.txt+4−4 test/golden/importless/trivial-utf-8.txt+4−4 test/golden/importless/tsearch_extras.txt+5−5 test/golden/importless/tuxedo-keyboard.txt+10−13 test/golden/importless/tvheadend.txt+18−22 test/golden/importless/twm.txt+17−20 test/golden/importless/type-i.txt−22 test/golden/importless/tzupdate.txt+15−18 test/golden/importless/udev.txt+1−1 test/golden/importless/udev_rules_type1.txt+12−10 test/golden/importless/udevil.txt+8−10 test/golden/importless/udisks2.txt+15−17 test/golden/importless/uffi.txt+4−4 test/golden/importless/ui.txt+1−1 test/golden/importless/uim.txt+17−18 test/golden/importless/uinput.txt+9−11 test/golden/importless/uiop.txt+4−4 test/golden/importless/union_type.txt+6−6 test/golden/importless/unit-test.txt+4−4 test/golden/importless/unix-odbc-drivers.txt+13−14 test/golden/importless/unix-opts.txt+4−4 test/golden/importless/unix.txt+1−1 test/golden/importless/unstable.txt+25−22 test/golden/importless/unwrapped.txt+3−3 test/golden/importless/updateSettings.txt−12 test/golden/importless/uptimed.txt+15−18 test/golden/importless/urserver.txt+13−13 test/golden/importless/usb-wwan.txt+15−17 test/golden/importless/usbtop.txt+11−13 test/golden/importless/user-account.txt+2−3 test/golden/importless/usocket.txt−14 test/golden/importless/utils.txt+22−22 test/golden/importless/uuid.txt−16 test/golden/importless/v10.txt+1−1 test/golden/importless/v12.txt+1−1 test/golden/importless/v14.txt+1−1 test/golden/importless/v3_4.txt+3−3 test/golden/importless/v3_6.txt+4−4 test/golden/importless/v4_0.txt+4−4 test/golden/importless/v4_2.txt+4−4 test/golden/importless/varnish-exporter.txt+6−6 test/golden/importless/vdom.txt+6−6 test/golden/importless/vecspace.txt+2−2 test/golden/importless/vhba.txt+15−14 test/golden/importless/viewer.txt+9−7 test/golden/importless/vim.txt+13−15 test/golden/importless/virtualbox-guest.txt+30−32 test/golden/importless/vnstat.txt+13−15 test/golden/importless/vom.txt+4−4 test/golden/importless/vulkan.txt+24−23 test/golden/importless/wacom.txt+15−18 test/golden/importless/wakeonlan.txt+11−15 test/golden/importless/wavemon.txt+13−15 test/golden/importless/waybar.txt+14−17 test/golden/importless/webgl.txt+6−6 test/golden/importless/wicd.txt+14−16 test/golden/importless/windowlab.txt+15−18 test/golden/importless/windowmaker.txt+16−19 test/golden/importless/winetricks.txt+27−25 test/golden/importless/with-extensions.txt+2−2 test/golden/importless/with-fonts.txt+14−14 test/golden/importless/with-packages.txt+8−7 test/golden/importless/wl-pprint.txt+2−2 test/golden/importless/wmcalclock.txt+22−20 test/golden/importless/wmii.txt+16−19 test/golden/importless/wmsm.app.txt+18−17 test/golden/importless/wmsystemtray.txt+24−22 test/golden/importless/woo.txt−36 test/golden/importless/wookie.txt−42 test/golden/importless/wooting.txt+13−15 test/golden/importless/wyvern.txt+6−6 test/golden/importless/x32edit.txt−12 test/golden/importless/xbanish.txt+12−15 test/golden/importless/xdg-desktop-portal.txt+6−6 test/golden/importless/xe-guest-utilities.txt+17−20 test/golden/importless/xembed.txt−11 test/golden/importless/xen-domU.txt+2−3 test/golden/importless/xfce4-mailwatch-plugin.txt+1−1 test/golden/importless/xfce4-mpc-plugin.txt+1−1 test/golden/importless/xfce4-timer-plugin.txt+1−1 test/golden/importless/xfce4-windowck-plugin.txt+8−8 test/golden/importless/xfs.txt+19−21 test/golden/importless/xft.txt+8−8 test/golden/importless/xhr.txt+6−6 test/golden/importless/xkeyboard.txt−12 test/golden/importless/xlib.txt+2−2 test/golden/importless/xmls.txt−12 test/golden/importless/xmpp-alerts.txt+51 test/golden/importless/xow.txt+14−16 test/golden/importless/xpath.txt−24 test/golden/importless/xsane.txt+12−9 test/golden/importless/xsubseq.txt+4−4 test/golden/importless/xterm.txt+27−29 test/golden/importless/yacc.txt+4−4 test/golden/importless/yakuake.txt+3−3 test/golden/importless/yaml.txt+6−6 test/golden/importless/yampa.txt+2−2 test/golden/importless/yason.txt−15 test/golden/importless/yeahwm.txt+16−19 test/golden/importless/z3.txt+2−2 test/golden/importless/zeitgeist.txt+17−20 test/golden/importless/zmap.txt+12−14 test/golden/importless/zpaqd.txt+21−18 test/golden/importless/zpb-ttf.txt+4−4 test/golden/importless/zsh-autoenv.txt+14−17 test/golden/importless/zydas-zd1211.txt+1−1 test/golden/mine/0.9.txt+1−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/inftype.txt−1 test/golden/mine/nums.nix−5 test/golden/mine/nums.txt−1 test/golden/mine/other.txt+1−1 test/golden/mine/other_row.txt+3−3 test/golden/mine/polyApply.txt+1−1 test/golden/mine/row.nix+5 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/unionfs.nix+21 test/golden/mine/variadic.nix−2 test/golden/mine/variadic.txt−4 test/golden/mine/with.txt+1−1
.github/workflows/build_docs.yaml−4
@@ -3,13 +3,9 @@ on:
33 push:
44 branches:
55 - master
6− paths:
7− - docs/**
86 pull_request:
97 branches:
108 - master
11− paths:
12− - docs/**
139
1410jobs:
1511 linux:
docs/.vscode/settings.json+1−8
@@ -11,12 +11,5 @@
1111 "-A",
1212 "%DOCFILE%"
1313 ],
14− "nixEnvSelector.suggestion": false,
15− "latex-workshop.latexindent.args": [
16− "-c",
17− "%DIR%/",
18− "%TMPFILE%",
19− "-y=defaultIndent: '%INDENT%'",
20− "-l"
21− ]
14+ "nixEnvSelector.suggestion": false
2215}
docs/bibl.bib+1−16
@@ -1,18 +1,13 @@
11%% This BibTeX bibliography file was created using BibDesk.
22%% https://bibdesk.sourceforge.io/
33
4−%% Created for Ilya at 2021-05-15 17:02:08 +0300
4+%% Created for Ilya at 2021-04-25 18:35:19 +0300
55
66
77%% Saved with string encoding Unicode (UTF-8)
88
99
1010
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−
1611@article{goldberg2000mercury,
1712 author = {Goldberg, Ken and Gentner, Steve and Sutter, Carl and Wiegley, Jeff},
1813 date-added = {2021-04-25 18:35:16 +0300},
@@ -205,13 +200,3 @@
205200 pages = {367--378},
206201 title = {NixOS: A purely functional Linux distribution},
207202 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.nix+10−2
@@ -27,7 +27,15 @@ builtins.listToAttrs (map
2727 # , compressBlanksInIndex ? true
2828 # , packages ? [ ]
2929 texPackages = {
30− inherit (pkgs.texlive) scheme-medium IEEEtran polytable lazylist multirow;
30+ myPackages = {
31+ pkgs = [
32+ (
33+ pkgs.runCommand "gost"
34+ { passthru = { tlType = "run"; pname = "gost"; }; }
35+ "mkdir $out; cp -r ${sources.GOST + "/bibtex"} $out"
36+ )
37+ ] ++ (builtins.filter (x: x.pname != "gost") pkgs.texlive.scheme-full.pkgs);
38+ };
3139 };
3240 # , copySources ? false
3341 };
@@ -35,6 +43,6 @@ builtins.listToAttrs (map
3543 [
3644 { file = ./tech_spec.tex; }
3745 { file = ./project_proposal.tex; }
38− { file = ./paper.lhs; extraFiles = [ ./bibl.bib ./trfrac.sty ]; }
46+ { file = ./paper.lhs; extraFiles = [ (sources.TechDoc + "/TechDoc.cls") ./bibl.bib ]; }
3947 ]
4048)
docs/nix/sources.json+12
@@ -11,6 +11,18 @@
1111 "url": "https://github.com/kia999/GOST/archive/072a2ef457b5dc9e5ddc6bfeb0b6f81d4147a328.tar.gz",
1212 "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
1313 },
14+ "TechDoc": {
15+ "branch": "master",
16+ "description": "📄🖋️💻 LaTeX document class for technical documents at SE HSE",
17+ "homepage": "https://iko.soy/kursach/techDoc",
18+ "owner": "ilyakooo0",
19+ "repo": "TechDoc",
20+ "rev": "ab77f326ffe0ff054308ca48221940ec3809d4db",
21+ "sha256": "0m94dwd7pjsgrfk8hra3gyhbd2wxk07xsdxb386vbymmk9cvfxji",
22+ "type": "tarball",
23+ "url": "https://github.com/ilyakooo0/TechDoc/archive/ab77f326ffe0ff054308ca48221940ec3809d4db.tar.gz",
24+ "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
25+ },
1426 "niv": {
1527 "branch": "master",
1628 "description": "Easy dependency management for Nix projects",
docs/paper.lhs+110−932
@@ -1,97 +1,47 @@
1−\documentclass[a4paper,journal,compsoc]{IEEEtran}
1+\PassOptionsToPackage{main=english,russian}{babel}
22
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}
3+\documentclass[]{TechDoc}
144
15−% \sectionsAreChapters
5+\usepackage{float}
6+\usepackage{mathtools}
167
8+\selectlanguage{english}
179
18−%include polycode.fmt
10+\sectionsAreChapters
1911
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}
12+\floatstyle{boxed}
13+\newfloat{Listing}{hbp}{lst}
4314
4415\newcommand{\parr}[1]{\medskip\textbf{#1}\hspace{0.6cm}}
45−\newcommand{\strOrNum}{(\text{String} || \text{Number})}
4616
17+%include polycode.fmt
4718
48−% \year{2021}
19+\year{2021}
4920\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−}
21+\author{Student, BSE174}{I. I. Kostyuchenko}
22+\academicTeacher{Associate Professor, PhD}{V. V. Kuliamin}
23+
24+% \documentTitle{Техническое задание}
25+% \documentCode{RU.17701729.04.03-01 ТЗ 01-1}
6426
6527\begin{document}
6628\maketitle
67−\thispagestyle{plain}
68−\pagestyle{plain}
6929
7030\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.
31+ 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.
7232\end{abstract}
7333
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
34+\newpage
8535
86−% \tableofcontents
36+\tableofcontents
8737
8838\section*{Introduction}
8939
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.
40+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.
9141
9242Such 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.
9343
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:
44+This problem is partially solved by so-called virtual environments tools. A virtual environment is a way of restricting and customizing the available external tools (usually compilers) with the ability to dynamically switch between them. The tools can generally be split into one of two categories:
9545
9646\begin{enumerate}
9747 \item \emph{language-specific tools} which simplify installing and switching between different versions of some tools (usually compilers). Examples of such tools are:
@@ -109,7 +59,7 @@ So-called virtual environment tools partially solve this problem. A virtual envi
10959 \end{enumerate}
11060\end{enumerate}
11161
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}.
62+Even so, 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}.
11363
11464Secondly, 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.
11565
@@ -121,19 +71,19 @@ Using a fully-fledged programming language allows the users to reuse common defi
12171
12272Nix 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.
12373
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.}
74+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 fully.\footnote{The standard Nix package repository |nixpkgs| contains 2 million lines of code.}
12575
12676Refactoring 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.
12777
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.
78+Static type checking is the process of analyzing the types of expressions and detecting type errors in programs without evaluating them.
12979
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).
80+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).
13181
13282The 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.
13383
13484\section{Nix Expression Language}
13585
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.
86+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.
13787
13888\subsection{Atomic types}
13989
@@ -141,9 +91,8 @@ Atomic types are described in table~\ref{tab:atomicTypes}.
14191
14292\begin{table}[hbp]
14393 \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
94+ \begin{tabular}{ ||c||p{6cm}||p{6cm}|| } \hline
95+ \textbf{Atomic type} & \textbf{Description} & \textbf{Example terms} \\ \hline
14796 URI & A string literal representing a URI. Does not require quoting. & \texttt{https://example.com} \\ \hline
14897 Path literal & A path literal referring to either a relative or absolute path. Does not require quoting. & \texttt{../../directory/file.txt} \\ \hline
14998 Integer & The current C implementation of Nix allows values of 64-bit signed integers. & \texttt{69} \newline \texttt{-42} \\ \hline
@@ -151,6 +100,7 @@ Atomic types are described in table~\ref{tab:atomicTypes}.
151100 Bool & Boolean values. & \texttt{true} \newline \texttt{false} \\ \hline
152101 Null & A type with a single value. & \texttt{null} \\ \hline
153102 \end{tabular}
103+ \caption{Table of atomic Nix Expression Language types}
154104 \label{tab:atomicTypes}
155105\end{table}
156106
@@ -158,9 +108,9 @@ Atomic types are described in table~\ref{tab:atomicTypes}.
158108
159109\subsubsection{Double quoted string literals}
160110
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}.
111+Double quoted string literals are string literals just like in many other programming languages. It can contain esaped newline character literals \texttt{\\n} which will be preserved as shown in listing~\ref{lst:newlineString}.
162112
163−\begin{figure}
113+\begin{Listing}
164114 \begin{minipage}{\textwidth}
165115 \begin{verbatim}
166116"Sampel\nPalnet"
@@ -168,13 +118,13 @@ Double quoted string literals are string literals, just like in many other progr
168118 \end{minipage}
169119 \caption{Nix Expression Language double quoted string literal example}
170120 \label{lst:newlineString}
171−\end{figure}
121+\end{Listing}
172122
173123\subsubsection{Multiline string literals}
174124
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}.
125+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 listing~\ref{lst:multilineString}.
176126
177−\begin{figure}
127+\begin{Listing}
178128 \begin{minipage}{\textwidth}
179129 \begin{verbatim}
180130''
@@ -186,43 +136,43 @@ Palnet''
186136 \end{minipage}
187137 \caption{Nix Expression Language multiline string literal example and an equivalent double quoted string literal}
188138 \label{lst:multilineString}
189−\end{figure}
139+\end{Listing}
190140
191−% \subsubsection{String interpolation}
141+\subsubsection{String interpolation}
192142
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}.
143+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 listing~\ref{lst:stringInterpolation}.
194144
195−% \begin{figure}
196−% \begin{minipage}{\textwidth}
197−% \begin{verbatim}
198−% "one is ${ if 1 == 2 then "equal" else "not equal" } to two."
145+\begin{Listing}
146+ \begin{minipage}{\textwidth}
147+ \begin{verbatim}
148+"one is ${ if 1 == 2 then "equal" else "not equal" } to two."
199149
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}
150+"one is not equal to two."
151+ \end{verbatim}
152+ \end{minipage}
153+ \caption{Nix Expression Language string interpolation example with the resulting string.}
154+ \label{lst:stringInterpolation}
155+\end{Listing}
206156
207157\subsection{Lists}
208158
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}.
159+Nix support 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 listing~\ref{lst:list}.
210160
211−\begin{figure}
161+\begin{Listing}
212162 \begin{minipage}{\textwidth}
213163 \begin{verbatim}
214−[1 2 "hello" ../../file.txt]
164+[1 2 "hello" ../../file.txt https://example.com]
215165 \end{verbatim}
216166 \end{minipage}
217167 \caption{Nix Expression Language List literals.}
218168 \label{lst:list}
219−\end{figure}
169+\end{Listing}
220170
221171\subsection{Attribute sets} \label{sec:attrSet}
222172
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}.
173+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 listing~\ref{lst:attrSet}.
224174
225−\begin{figure}
175+\begin{Listing}
226176 \begin{minipage}{\textwidth}
227177 \begin{verbatim}
228178{ a = 42;
@@ -234,46 +184,13 @@ An attribute set is internally implemented as a hashmap with strings as keys whe
234184 \end{minipage}
235185 \caption{Nix Expression Language attribute set literals.}
236186 \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}
187+\end{Listing}
271188
272189\subsection{Recursive attribute sets} \label{sec:recAttrSet}
273190
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.
191+While ordinary \emph{attribute sets} from 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 essentially available in scope of the attribute set values. An example of \emph{recursive attribute set} are given in listing~\ref{lst:recAttrSet}. Note that it is syntactically distiguished form normal \emph{attribute set} literals by the \texttt{rec} key word at the beginning.
275192
276−\begin{figure}
193+\begin{Listing}
277194 \begin{minipage}{\textwidth}
278195 \begin{verbatim}
279196rec {
@@ -286,13 +203,13 @@ rec {
286203 \end{minipage}
287204 \caption{Nix Expression Language recursive attribute set literals.}
288205 \label{lst:recAttrSet}
289−\end{figure}
206+\end{Listing}
290207
291208\subsection{Let expressions} \label{sec:let}
292209
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}.
210+A \emph{let expression} has two parts: the \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 listing~\ref{lst:let}.
294211
295−\begin{figure}
212+\begin{Listing}
296213 \begin{minipage}{\textwidth}
297214 \begin{verbatim}
298215let
@@ -303,13 +220,13 @@ in d
303220 \end{minipage}
304221 \caption{Nix Expression Language \emph{let} expression literals.}
305222 \label{lst:let}
306−\end{figure}
223+\end{Listing}
307224
308−\subsection{With expression} \label{sec:withExp}
225+\subsection{With expression}
309226
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}.
227+\emph{With expressions} are a way to bring 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 describe 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 listing~\ref{lst:with}.
311228
312−\begin{figure}
229+\begin{Listing}
313230 \begin{minipage}{\textwidth}
314231 \begin{verbatim}
315232let
@@ -320,34 +237,32 @@ in d
320237 \end{minipage}
321238 \caption{Nix Expression Language \emph{with} expression literals.}
322239 \label{lst:with}
323−\end{figure}
240+\end{Listing}
324241
325−\section{Existing typecheckers implementations}
242+\section{Existing typecheckers}
326243
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.
244+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 are the implementations.
328245
329246\subsection{regnat/tix} \label{sec:regnat/tix}
330247
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.
248+regnat/tix\footnote{\url{https://github.com/regnat/tix}} is an implementation of 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-liked heterogeneous list. The type system does not have support for parametric polymorphism in favour of a gradual typing paradigm.
332249
333250\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}.
334251
335252\subsection{regnat/ptyx} \label{sec:regnat/ptyx}
336253
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.
254+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} expression are also converted to it before type checking. There is still no support for parametric polymorphism.
338255
339256\parr{Status} The last commit was published in 2018. Unsupported language features include lists and attribute sets.
340257
341258\subsection{haskell-nix/hnix}
342259
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.
260+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 any code that interacts with \emph{attribute sets} in any way.
344261
345262\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.
346263
347264
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.
265+\section{Existing Approaches}
351266
352267\subsection{Type System Approach}
353268
@@ -377,7 +292,7 @@ In some cases, this approach will likely yield too little information to be usef
377292
378293The 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.
379294
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.
295+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.
381296
382297\subsection{Row-Polymorphism}
383298
@@ -385,451 +300,25 @@ One of the language-level constructs in the Nix Expression Language is the ``att
385300
386301There 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}.
387302
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}
303+\subsection{Message Reporting}
456304
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:
305+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.
458306
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*}
307+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.
618308
619−\subsection{Addition} \label{sec:addition}
309+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.
620310
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.
311+% \subsection{Language Server Architecture}
622312
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).
313+% 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/}}.
624314
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}:
315+% 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.
626316
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}
317+% 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.
636318
637−\subsection{Typing rules}
319+% 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.
638320
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}
321+\section{Architecture}
833322
834323\subsection{Effect system}
835324
@@ -837,379 +326,68 @@ In this section we will explore the techniques employed in our implementation~\c
837326
838327Developing 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}.
839328
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}.
329+It is natural to want to abstract of 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 as-hoc manner. This has been achieved a while ago with \emph{monad transformers}~\cite{liang1995monad}.
841330
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.
331+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 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 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 part of an algorithm, leaving the rest to the abstract implementation; monad transformers don't really have such capabilities.
843332
844333\subsubsection{Free monad extensible effects}
845334
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}
335+Recently a ne aprproach 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 particulare inrpretation of the effect associated with them. Effects are interpreted in an ad-hoc way 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. How we use \emph{algebraic effects} will be discussed in more detail in section~\ref{sec:implementation}.
882336
337+\subsection{Type system}
883338
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.
339+As mentioned above, we have opted to use the Damas-Milner type system as a basis for our implementation. Our goal is not to just 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 developer typechecker processes a program without errors, then the program should have no type errors during execution.
946340
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.
341+\subsection{Polymorphism} \label{sec:polymorphism}
1032342
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:
343+Dynamic languages have potenitally limitless polymorphism – you can pass anything of any types 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.
1034344
1035−\begin{equation}
1036− \forall \alpha \beta \gamma. \; (\alpha. \text{scripts} = [\beta], \beta. \text{interpreter} = \gamma) \Rightarrow \alpha \rightarrow [\gamma]
1037−\end{equation}
345+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).
1038346
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.
347+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}.
1040348
1041−The result of the whole expression (applying \texttt{getScriptInterpreters} to \texttt{package}) is correctly inferred by our type checker to have the type:
349+Inferring types with parametric polymorphism implies generalizing the inferred types at certain points in the program. 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{eq:closing} is an example of closing for a type variable.
1042350
1043−\begin{equation}
1044− [\text{String}]
1045−\end{equation}
351+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.
1046352
1047353\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:
1080354
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}
355+ \[
356+ (\alpha \rightarrow \beta \rightarrow \alpha) \xrightarrow{\text{close over } \alpha} (\forall \alpha.\; \alpha \rightarrow \beta \rightarrow \alpha)
357+ \]
358+ \caption{An example of closing over $\protect\alpha$. $\protect\beta$ is considered to be an open type variable.}
359+ \label{fig:closing}
1124360\end{figure}
1125361
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.
362+Apart from \emph{let expression} 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}.
1176363
1177−\subsection{Type hints}
364+\subsection{Inferring recursive types}
1178365
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:
366+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:
1182367
1183368\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.
369+ \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}.
370+ \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.
371+ \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.
1186372\end{enumerate}
1187373
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.
374+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, and in practice the second approach would be useful enough (and faster), so that is the approach we chose to go with.
1191375
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:
376+\subsection{Row-polymorphism}
1193377
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:
378+\section{Implementation} \label{sec:implementation}
1199379
1200−\begin{equation}
1201− \strOrNum \sim \alpha = (\text{String} \lessdot \alpha, \text{Number} \lessdot \alpha)
1202−\end{equation}
380+\section{Conclusion}
1203381
1204−\section*{Conclusion}
382+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.
1205383
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.
384+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.
1207385
1208386\newpage
1209387
1210−\bibliographystyle{IEEEtran}
388+\bibliographystyle{gost2008}
1211389\bibliography{bibl}
1212390
1213−% \registrationList
391+\registrationList
1214392
1215393\end{document}
docs/pres_2/img/nixpkgs.pngdeleted

Binary file not shown.

docs/pres_2/img/paper.pngdeleted

Binary file not shown.

docs/pres_2/img/ter.pngdeleted

Binary file not shown.

docs/pres_2/pres.mddeleted−407
@@ -1,407 +0,0 @@
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.pdfdeleted

Binary file not shown.

docs/tech_spec.tex+53−17
@@ -10,7 +10,7 @@
1010\newcommand{\req}[1][]{\refstepcounter{req}\label{req:#1}\paragraph{\fbox{\textsf{\textsc{REQ}-\thereq}}}}
1111\newcommand{\refreq}[1]{\hyperref[req:#1]{\fbox{\textsf{REQ-\ref*{req:#1}}}}}
1212
13−\title{Technical Specification for the Static Analyzer for the Nix Expression Language}
13+\title{Technical Specification for the Language Server for the Nix Expression Language}
1414\author{Kostyuchenko Ilya}
1515\date{}
1616
@@ -26,7 +26,7 @@
2626
2727\section{Purpose}
2828
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.
29+The purpose of Tix is to simplify development in the Nix expression language.
3030
3131\section{Scope}
3232
@@ -34,6 +34,8 @@ The project consists of developing the following components:
3434
3535\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).
3636
37+\paragraph{The Tix language server} is a program which implements the Language Server Protocol and is used to integrate the Tix type checker with existing code editors to aid with development.
38+
3739\section{Product perspective}
3840
3941\subsection{System interfaces}
@@ -50,11 +52,11 @@ The application does not provide a hardware interface.
5052
5153\subsection{Software interfaces}
5254
53−The application allows interactions through standard UNIX input-output capabilities.
55+The application allows interactions through the Language Server Protocol.
5456
5557\subsection{Communications interfaces}
5658
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.
59+The application communicates with the code editor process through the Language Server Protocol using JSON-RPC requests. These requests can be over the network or local to the machine – however, the user decides to set it up.
5860
5961\subsection{Memory}
6062
@@ -62,10 +64,12 @@ The memory required to run the system depends on the size of the project being p
6264
6365\subsection{Operations}
6466
65−The application supports the following operations:
67+The application supports the following operations initiated by the code editor:
6668
6769\begin{enumerate}
6870 \item Typecheck the current file and report errors
71+ \item Go to the definition of a variable
72+ \item Identify the type of a selected expression expression
6973\end{enumerate}
7074
7175\subsection{Site adaptation requirements}
@@ -81,19 +85,30 @@ No interaction with services in performed.
8185The application provides the following functionality to the user:
8286
8387\begin{enumerate}
84− \item Checks user-supplied programs for type incompatibilities
85− \item Reports the resulting types of user-supplied expressions
88+ \item While the user is editing a Nix expression language file the application will indicate potentially incorrect subexpressions based on type mismatches
89+ \item While the user is exploring a Nix expression language project the application will provide:
90+ \begin{enumerate}
91+ \item type information for subexpressions the user is inspecting
92+ \item definitions of variables a user is inspecting
93+ \end{enumerate}
8694\end{enumerate}
8795
8896\section{User characteristics}
8997
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.
98+The user of the application will need intermediate technical skills to set up the application to work with their text editor of choice. More precisely, the user will need to have the following (approximate and incomplete) list of skills:
99+
100+\begin{enumerate}
101+ \item Understand on a high level what a language server is and its role in code editing
102+ \item Be familiar with the repositories of packages for their text editor of choice
103+ \item Be able to perform intermediate configuration of their text editor of choice and installed packages
104+ \item Have basic server administration skills if they are planning to run the server remotely
105+\end{enumerate}
91106
92107\section{Limitations}
93108
94109\subsection{Interface to other applications}
95110
96−Other applications can be interfaced with through standard input-output handles.
111+The integration with the text editor of choice should be compatible with version 3.15 of the Language Server Protocol.
97112
98113\subsection{Criticality of the application}
99114
@@ -110,7 +125,7 @@ The contents of this document assume the following:
110125
111126\section{Apportioning of requirements}
112127
113−The application is a self-contained executable file that, when executed, functions as a typechecker.
128+The application is a self-contained executable file that, when executed, functions as a standalone language server. The only requirement that the application externally imposes is the requirement to set up the language sever to function with the desired text editor. There already exist numerous implementation for language server support for many text editors.
114129
115130\section{Specified requirements}
116131
@@ -122,31 +137,51 @@ The application is a self-contained executable file that, when executed, functio
122137
123138\req[typechecking] The system should perform type checking for expression where under conditions from \refreq{restrictons}.
124139
140+\req The system should analyze conditional statements where the condition consists only of type checks and boolean operators built into the Nix expression language.
141+
125142\req The system should analyze the types and presence of attributes in attribute sets under conditions from \refreq{restrictons}.
126143
127−\req The system should report encountered typechecking errors.
144+\req The system should report encountered typechecking errors through means defined by the Language Server Protocol.
145+
146+\req The system should provide the location of definitions for all locally used terms under conditions from \refreq{restrictons}.
128147
129148\req The system should report the use of undefined terms through means defined by the Language Server Protocol under conditions from \refreq{restrictons}.
130149
150+\req The system should report the types of requested expressions through means defined by the Language Server Protocol if the type of the requested expression is unambiguously inferable during typechecking (\refreq{typechecking}).
151+
152+\req The system should provide code completions suggestions from the variables currently in scope and expressions built into the language under conditions from \refreq{restrictons}.
153+
154+\req The system should provide a way for the programmer to explicitly annotate types of expressions which will influence type checking.
155+
131156\section{Usability requirements}
132157
133−\req The system should be able to process expressions from the nixpkgs repository.
158+\req The system should be able to process expressions using the nixpkgs repository.
134159
135160\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.
136161
137162\section{Performance requirements}
138163
139−\req The system should process incoming requests within 1 minute.
164+\req The system should process incoming requests within 1 second (the system should formulate a response, not necessarily finish performing the requested action).
165+
166+\req The system should process incoming requests from a single client.
140167
141168\section{External interfaces}
142169
143−The only external interfaces of the system are standard input-output handles.
170+The only external interface of the system is the Language Server Protocol.
144171
145−\paragraph{The purpose} of this interface is to provide easy way to provide programs to typecheck as inputs.
172+\paragraph{The purpose} of this interface is to provide easy interoperability with a wide range of potential code editors a user might want to use\footnote{\url{https://microsoft.github.io/language-server-protocol/implementors/tools/}}.
173+
174+\paragraph{The source of input} is the code editor the user uses sending requesting information about the semantics of the file currently being edited in response to the actions the user is taking while browsing or editing source code in the Nix expression language.
175+
176+\paragraph{The destination of the input} is the code editor the user is using which has requested information about the source code.
177+
178+\paragraph{Data and command formats} are defined by the Language Server Protocol\footnote{\url{https://microsoft.github.io/language-server-protocol/specifications/specification-current/}}.
146179
147180\section{Functions}
148181
149−The fundamental functions of the system are queries: get the type of an expression.
182+The fundamental functions of the system are queries: get the type of an expression, get the definition of a variable, get code completion. All of the responses to the queries can be generated from an \emph{analysis context} which is generated from the current file the user is viewing and any other files it imports.
183+
184+If the context \emph{analysis context} is already generated then the responses are formulated as follows. If the \emph{analysis context} is not present, then it is generated prior to processing the request.
150185
151186\subsection{Generating the type of an expression}
152187
@@ -195,7 +230,7 @@ The fundamental functions of the system are queries: get the type of an expressi
195230
196231\subsection{Error handling}
197232
198−If the system encounters a typing error in the user's code, then the error is returned to the user.
233+If the system encounters a typing error in the user's code, then the error is returned to the user through means defined in the Language Serer Protocol.
199234
200235If the system encounters an internal (as opposed to a user error) the error is written to the standard error output.
201236
@@ -230,6 +265,7 @@ The following approaches and methods are planned to be employed to qualify the s
230265
231266\begin{enumerate}
232267 \item Automated hand-written unit-tests
268+ \item Automated randomly generated property tests
233269 \item Manual testing
234270\end{enumerate}
235271
docs/trfrac.stydeleted−193
@@ -1,193 +0,0 @@
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'.
paper.pdfdeleted

Binary file not shown.

src/Tix/Builtins.hsdeleted−68
@@ -1,68 +0,0 @@
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+75−115
@@ -52,7 +52,6 @@ import Data.Traversable
5252import Nix.Atoms
5353import Nix.Expr
5454import Nix.Pretty
55−import Tix.Builtins (builtins)
5655import Tix.Types
5756import Prelude as P
5857
@@ -64,7 +63,6 @@ getType r =
6463 . evalState @(MKM.Map Pred) mempty
6564 . interpret @(Writer Pred) (\(Tell x) -> modify (<> MKM.singleton x))
6665 . runVariableMapEff
67− . localVariablesMap builtins
6866 . evalState @Substitution mempty
6967 . runState @[(TypeVariable, SrcSpan)] []
7068 . interpret @(Writer (TypeVariable, SrcSpan)) (\(Tell x) -> modify (x :))
@@ -145,12 +143,10 @@ instance Free NType where
145143instance Free Pred where
146144 free = \case
147145 Update x y z -> free x <> free y <> free z
148− HasField _ x (_, y) -> free x <> free y
149− StringOrNumber x -> free x
146+ x `HasField` (_, y) -> free x <> free y
150147 sub s = \case
151148 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
149+ HasField t (f, v) -> HasField (sub s t) (f, sub s v)
154150
155151instance Free Scheme where
156152 free (x :=> y) = free x <> free y
@@ -187,7 +183,7 @@ prettySubstitution :: Substitution -> A.Value
187183prettySubstitution = A.toJSON . M.mapKeysMonotonic (TL.pack . show) . fmap renderPretty . unSubstitution
188184
189185instance Semigroup Substitution where
190− x'@(Substitution x) <> y'@(Substitution y) = Substitution (M.unionWith (error "invariant") (fmap (sub y') x) (fmap (sub x') y))
186+ x'@(Substitution x) <> y'@(Substitution y) = Substitution (M.unionWithKey (error "invariant") (fmap (sub y') x) (fmap (sub x') y))
191187
192188instance Monoid Substitution where
193189 mempty = Substitution mempty
@@ -279,7 +275,6 @@ data UnifyingError
279275data PredicateError
280276 = KeyNotPresent Text NType
281277 | NotAnAttributeSet NType
282− | NotAddable NType
283278 deriving stock (Eq, Show)
284279
285280data InferError
@@ -363,13 +358,13 @@ instantiate s = do
363358infer :: NExprLoc -> InferM' NType
364359infer (Fix (Compose (Ann src x))) = local (const src) $ case x of
365360 NConstant a -> return . NAtomic $ case a of
366− NURI {} -> String
367− NInt {} -> Number
368− NFloat {} -> Number
361+ NURI {} -> URI
362+ NInt {} -> Integer
363+ NFloat {} -> Float
369364 NBool {} -> Bool
370365 NNull {} -> Null
371− NLiteralPath {} -> return . NAtomic $ String
372− NEnvPath {} -> return . NAtomic $ String
366+ NLiteralPath {} -> return . NAtomic $ Path
367+ NEnvPath {} -> return . NAtomic $ Path
373368 NStr {} -> return $ NAtomic String
374369 NSym var ->
375370 lookupVar var
@@ -379,16 +374,17 @@ infer (Fix (Compose (Ann src x))) = local (const src) $ case x of
379374 xs' <- traverse infer xs
380375 traverse_ tell . fmap (uncurry (:~)) $ zip xs' (tail xs')
381376 case xs' of
382− [] -> List . NTypeVariable <$> fresh
377+ [] -> NTypeVariable <$> fresh
383378 y : _ -> return $ List y
384379 NUnary NNeg y -> do
385380 t <- infer y
386− t ~~ NAtomic Number
387− return $ NAtomic Number
381+ -- TODO: Infer either Float or Integer
382+ -- tell $ t :~ (normalType . NAtomic $ )
383+ return t
388384 NUnary NNot y -> do
389385 t <- infer y
390386 t ~~ NAtomic Bool
391− return $ NAtomic Bool
387+ return t
392388 NBinary NUpdate lhs rhs -> do
393389 lhsT <- infer lhs
394390 rhsT <- infer rhs
@@ -408,19 +404,14 @@ infer (Fix (Compose (Ann src x))) = local (const src) $ case x of
408404 let listt = List t
409405 lhst ~~ listt
410406 rhst ~~ listt
411− return listt
407+ return $ listt
412408 NBinary NEq lhs rhs -> equality lhs rhs
413409 NBinary NNEq lhs rhs -> equality lhs rhs
414410 NBinary NLt lhs rhs -> comparison lhs rhs
415411 NBinary NLte lhs rhs -> comparison lhs rhs
416412 NBinary NGt lhs rhs -> comparison lhs rhs
417413 NBinary NGte lhs rhs -> comparison 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
414+ NBinary NPlus lhs rhs -> math lhs rhs
424415 NBinary NMinus lhs rhs -> math lhs rhs
425416 NBinary NMult lhs rhs -> math lhs rhs
426417 NBinary NDiv lhs rhs -> math lhs rhs
@@ -430,16 +421,16 @@ infer (Fix (Compose (Ann src x))) = local (const src) $ case x of
430421 NSelect r path' def -> do
431422 setT <- infer r
432423 let path = getPath path'
433− strictness = case def of
434− Nothing -> RequiredField
435− Just _ -> OptionalField
436424 resT <-
437425 NTypeVariable <$> case path of
438− Just p -> lookupAttrSet strictness setT p
426+ Just p -> do
427+ (_, var) <- lookupAttrSet setT p
428+ return var
439429 Nothing -> fresh
440430 case def of
441431 Nothing -> return ()
442432 Just defR -> do
433+ -- this should infer optional type
443434 defT <- infer defR
444435 defT ~~ resT
445436 return resT
@@ -450,45 +441,24 @@ infer (Fix (Compose (Ann src x))) = local (const src) $ case x of
450441 localVariablesMap bindingsT $ infer body
451442 NHasAttr attrSet path -> do
452443 setT <- infer attrSet
453− case getPath path of
454− Just p -> void $ lookupAttrSet OptionalField setT p
455− Nothing -> pure ()
456− return $ NAtomic Bool
444+ -- this should infer optional type
445+ return setT
457446 NAbs param body -> do
458447 (paramT, varMap :: VariableMap) <- case param of
459448 Param name -> do
460449 t <- fresh
461450 return (NTypeVariable t, M.singleton name . scheme $ NTypeVariable t)
462451 ParamSet set variadic binding -> do
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)
452+ setBindings <-
453+ M.fromList <$> set
454+ `for` ( \(name, def) -> do
455+ t <- case def of
456+ Nothing -> NTypeVariable <$> fresh
457+ Just def' -> infer def'
458+ return (name, scheme t) -- TODO: This is bad: it probably shouldn't be a scheme
459+ )
460+ let setT = NAttrSet $ setBindings
461+ return (setT, maybe M.empty (`M.singleton` scheme setT) binding <> setBindings)
492462 bodyT <- localVariablesMap varMap $ infer body
493463 return $ paramT :-> bodyT
494464 NIf cond t f -> do
@@ -506,9 +476,28 @@ infer (Fix (Compose (Ann src x))) = local (const src) $ case x of
506476 lookupVar var >>= \case
507477 Just t -> pure $ Just t
508478 Nothing -> do
509− res <- lookupAttrSet RequiredField other (pure var)
479+ (_, res) <- lookupAttrSet other (pure var)
510480 pure $ Just . scheme $ NTypeVariable res
481+
511482 f $ infer body
483+ -- -- TODO: implement fallback variable lookup -> specify that the set should have the key.
484+ -- setT <- infer set
485+ -- vars <- expectAttrSet setT
486+ -- withBindings vars $ infer body
487+ -- where
488+ -- -- Deprecated
489+ -- expectAttrSet ::
490+ -- Members '[Reader SrcSpan, Writer (SrcSpan, Errors)] r =>
491+ -- Scheme ->
492+ -- Eff r VariableMap
493+ -- expectAttrSet (_ :=> NAttrSet x) = return x
494+ -- expectAttrSet g = do
495+ -- throwSrc
496+ -- UnexpectedType
497+ -- { expected = scheme $ NAttrSet M.empty,
498+ -- got = g
499+ -- }
500+ -- return M.empty
512501 NAssert cond body -> do
513502 condT <- infer cond
514503 condT ~~ NAtomic Bool
@@ -523,23 +512,21 @@ infer (Fix (Compose (Ann src x))) = local (const src) $ case x of
523512 comparison lhs rhs = do
524513 lhst <- infer lhs
525514 rhst <- infer rhs
526− tell (StringOrNumber lhst)
515+ -- TODO: Infer lhst and rhst are either Integer or Double or String
527516 lhst ~~ rhst
528517 return $ NAtomic Bool
529518 math lhs rhs = do
530519 lhst <- infer lhs
531520 rhst <- infer rhs
532− let t = NAtomic Number
533− lhst ~~ t
534− rhst ~~ t
535− return t
521+ -- TODO: Infer lhst and rhst are either Integer or Double
522+ lhst ~~ rhst
523+ return lhst
536524 logic lhs rhs = do
537525 lhst <- infer lhs
538526 rhst <- infer rhs
539− let t = NAtomic Bool
540− rhst ~~ t
541− lhst ~~ t
542− return t
527+ rhst ~~ NAtomic Bool
528+ lhst ~~ NAtomic Bool
529+ return $ NAtomic Bool
543530
544531type NormalizedBinding' = F.Free (Map VarName)
545532
@@ -799,7 +786,6 @@ solveAndClose range (cs :=> t) = evalState @Substitution mempty $ do
799786 solveAndClose newRange $ sub s $ (collectedPreds <> solvedPreds) :=> t
800787
801788solveConstraints ::
802− forall effs.
803789 Members
804790 '[ Fresh,
805791 Writer Pred,
@@ -814,55 +800,30 @@ solveConstraints ::
814800 Eff effs [Pred]
815801solveConstraints _ [] = pure []
816802solveConstraints 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
803+ HasField (NAttrSet ts) (f, t) -> case M.lookup f ts of
827804 Nothing -> do
828− case r of
829− OptionalField -> pure ()
830− RequiredField -> tell $ KeyNotPresent f (NAttrSet ts)
805+ tell $ KeyNotPresent f (NAttrSet ts)
831806 solveConstraints range ps
832807 Just t' -> do
833808 x <- instantiate t
834809 y <- instantiate t'
835810 x ~~ y
836811 solveConstraints range ps
837− HasField r tv@(NTypeVariable _) (k, v) -> do
838− let sameAttrSet :: Pred -> Either (FieldStrictness, Scheme) Pred
812+ HasField tv@(NTypeVariable _) (k, v) -> do
813+ let sameAttrSet :: Pred -> Either Scheme Pred
839814 sameAttrSet = \case
840− HasField r' t (k', v') | t == tv, k == k' -> Left (r', v')
815+ HasField t (k', v') | t == tv, k == k' -> Left v'
841816 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
817+ (same, different) = partitionWith sameAttrSet ps
818+ (unifyScheme range v) `traverse_` same
819+ (p :) <$> solveConstraints range different
820+ HasField t _ -> do
851821 tell $ NotAnAttributeSet t
852822 solveConstraints range ps
853− -- Update
854823 (Update (NAttrSet a) (NAttrSet b) t) -> do
855824 (NAttrSet $ b <> a) ~~ t
856825 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
826+ _ -> (p :) <$> solveConstraints range ps
866827
867828partitionWith :: (a -> Either b c) -> [a] -> ([b], [c])
868829partitionWith f = partitionEithers . map f
@@ -944,20 +905,19 @@ lookupAttrSet ::
944905 Fresh
945906 ]
946907 r =>
947− FieldStrictness ->
948908 NType ->
949909 AttrSetPath ->
950− Eff r TypeVariable
951−lookupAttrSet r n = \case
910+ Eff r (NType, TypeVariable)
911+lookupAttrSet n = \case
952912 (NESingle p) -> do
953913 var <- getSubTV n
954− tell (HasField r n (p, scheme . NTypeVariable $ var))
955− return var
914+ tell (HasField n (p, scheme . NTypeVariable $ var))
915+ return (n, var)
956916 (p :|| ps) -> do
917+ (innerSet, var) <- lookupAttrSet n ps
957918 set <- NTypeVariable <$> getSubTV n
958− var <- lookupAttrSet r set ps
959− tell $ HasField r n (p, scheme set)
960− return var
919+ tell $ HasField set (p, scheme innerSet)
920+ return (set, var)
961921 where
962922 getSubTV (NTypeVariable tv) = freshSub tv
963923 getSubTV _ = fresh
src/Tix/Types.hs+15−26
@@ -1,6 +1,5 @@
11module Tix.Types
22 ( NType (..),
3− FieldStrictness (..),
43 AtomicType (..),
54 DeBruijn (..),
65 TypeVariable (..),
@@ -39,13 +38,7 @@ data Pred
3938 -- ^ y
4039 !NType
4140 -- ^ z
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)
47−
48−data FieldStrictness = OptionalField | RequiredField
41+ | !NType `HasField` !(Text, Scheme)
4942 deriving stock (Eq, Ord, Show, Generic)
5043
5144instance MKM.Keyable Pred where
@@ -61,6 +54,7 @@ instance MKM.Keyable Pred where
6154 TBruijn _ -> S.empty
6255 )
6356
57+-- this seems bad. It should not drop constraints.
6458(//) :: NType -> NType -> NType -> Pred
6559(//) = Update
6660{-# INLINE (//) #-}
@@ -108,14 +102,13 @@ instance TraversableNTypes Scheme where
108102
109103instance TraversableNTypes Pred where
110104 traverseNTypesWith ctx f = \case
111− (HasField r t (k, h)) ->
112− HasField r <$> traverseNTypesWith ctx f t <*> ((k,) <$> traverseNTypesWith ctx f h)
105+ (HasField t (k, h)) ->
106+ HasField <$> traverseNTypesWith ctx f t <*> ((k,) <$> traverseNTypesWith ctx f h)
113107 (Update x y z) ->
114108 Update
115109 <$> traverseNTypesWith ctx f x
116110 <*> traverseNTypesWith ctx f y
117111 <*> traverseNTypesWith ctx f z
118− (StringOrNumber x) -> StringOrNumber <$> traverseNTypesWith ctx f x
119112 {-# INLINE traverseNTypesWith #-}
120113
121114traverseNTypes :: TraversableNTypes s => Traversal' s TerminalNType
@@ -132,10 +125,13 @@ data NType
132125 deriving stock (Eq, Ord, Show, Generic)
133126
134127data AtomicType
135− = Number
128+ = Integer
129+ | Float
136130 | Bool
137131 | String
132+ | Path
138133 | Null
134+ | URI
139135 deriving stock (Eq, Ord, Show, Generic)
140136
141137instance Pretty AtomicType where
@@ -241,21 +237,15 @@ prettyScheme u@(cs :=> t) = do
241237 return $ group $ foralls <> cs' <> t'
242238 where
243239 prettyPred :: Pred -> PrettyM (Doc ann)
244− prettyPred (HasField r h (k, v)) = do
240+ prettyPred (h `HasField` (k, v)) = do
245241 h' <- prettyNType False h
246242 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')
243+ return $ group $ group (h' <> nest 2 (line' <> "." <> pretty k <+> "=")) <> nest 2 (line <> v')
251244 prettyPred (Update x y z) = do
252245 x' <- prettyNType False x
253246 y' <- prettyNType False y
254247 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'
248+ return $ group $ paren x' <+> "//" <> line <> paren y' <+> "~" <> line <> paren z'
259249 paren = bracketed "(" ")"
260250
261251-- | Returns the set of all De Bruijn type variables relative to the outermost
@@ -295,10 +285,9 @@ getDeBurjins' =
295285 TTypeVariable _ -> const S.empty
296286 )
297287
288+greek :: [Text]
289+greek = ["α", "β", "γ", "δ", "ε", "ζ", "η", "θ", "ι", "κ", "λ", "μ", "ν", "ξ", "ο", "π", "ρ", "σ", "τ", "υ", "φ", "χ", "ψ", "ω"]
290+
298291variableNames :: [Text]
299292variableNames =
300− fmap T.pack $
301− greek <> foldMap (\n -> (<> show n) <$> greek) ([1 :: Int ..] :: [Int])
302− where
303− greek :: [String]
304− greek = ["α", "β", "γ", "δ", "ε", "ζ", "η", "θ", "ι", "κ", "λ", "μ", "ν", "ξ", "ο", "π", "ρ", "σ", "τ", "υ", "φ", "χ", "ψ", "ω"]
293+ greek <> fmap (\(n, g) -> g <> T.pack (show n)) (zip [1 :: Int ..] 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.10
20+resolver: lts-17.5
2121
2222# User packages to be built.
2323# Various formats can be used as shown in the example below.
test/golden/importless/0.1.txt+6−5
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο.
2−( α.hostPlatform = β,
2+( α.isMusl = β,
33 α.lib = γ,
44 α.mkDerivation =
55 { buildInputs = [δ];
@@ -21,10 +21,11 @@
2121 version = String;
2222 } ->
2323 κ,
24− γ.optional = λ -> String -> θ,
25− β.isMusl = λ,
26− μ.licenses = ν,
27− μ.platforms = ξ,
24+ α.optional = β -> Path -> θ,
25+ λ.lib = α,
26+ μ.hostPlatform = α,
27+ γ.licenses = ν,
28+ γ.platforms = ξ,
2829 ν.lgpl2Plus = ε,
2930 ξ.unix = ζ
3031) =>
test/golden/importless/0.10.txt+1−1
@@ -14,7 +14,7 @@
1414 nativeBuildInputs = [θ];
1515 pname = String;
1616 preConfigure = String;
17− pythonPath = ∀ α. [α];
17+ pythonPath = ∀ α. α;
1818 src = ι;
1919 version = String;
2020 } ->
test/golden/importless/0.11.1.txt+12−11
@@ -1,18 +1,19 @@
11∀ α β γ δ ε ζ η θ ι κ.
2−( α.lib = β,
2+( α.all = β,
3+ α.lgpl21 = γ,
34 α.mkDerivation =
4− { buildInputs = [γ];
5+ { buildInputs = [δ];
56 enableParallelBuilding = Bool;
67 meta =
7− {description = String; homepage = String; license = δ; platforms = ε;};
8+ {description = String; homepage = String; license = γ; platforms = β;};
89 name = String;
9− patches = [String];
10− src = ζ;
10+ patches = [Path];
11+ src = ε;
1112 } ->
12− η,
13− β.licenses = θ,
14− θ.lgpl21 = δ,
15− ι.platforms = κ,
16− κ.all = ε
13+ ζ,
14+ η.licenses = α,
15+ θ.lib = η,
16+ ι.platforms = α,
17+ κ.lib = ι
1718) =>
18−{fetchurl = {sha256 = String; url = String;} -> ζ; gmp = γ; stdenv = α;} -> η
19+{fetchurl = {sha256 = String; url = String;} -> ε; gmp = δ; stdenv = α;} -> ζ
test/golden/importless/0.11.txt+1−1
@@ -1 +1 @@
1−∀ α. {callPackage = String -> {sha256 = String; version = String;} -> α;} -> α
1+∀ α. {callPackage = Path -> {sha256 = String; version = String;} -> α;} -> α
test/golden/importless/0.12.txt+1−1
@@ -1 +1 @@
1−∀ α. {callPackage = String -> {sha256 = String; version = String;} -> α;} -> α
1+∀ α. {callPackage = Path -> {sha256 = String; version = String;} -> α;} -> α
test/golden/importless/0.14.1.txt+11−10
@@ -1,17 +1,18 @@
11∀ α β γ δ ε ζ η θ ι κ.
2−( α.lib = β,
2+( α.all = β,
3+ α.lgpl21 = γ,
34 α.mkDerivation =
4− { buildInputs = [γ];
5+ { buildInputs = [δ];
56 enableParallelBuilding = Bool;
67 meta =
7− {description = String; homepage = String; license = δ; platforms = ε;};
8+ {description = String; homepage = String; license = γ; platforms = β;};
89 name = String;
9− src = ζ;
10+ src = ε;
1011 } ->
11− η,
12− β.licenses = θ,
13− θ.lgpl21 = δ,
14− ι.platforms = κ,
15− κ.all = ε
12+ ζ,
13+ η.licenses = α,
14+ θ.lib = η,
15+ ι.platforms = α,
16+ κ.lib = ι
1617) =>
17−{fetchurl = {sha256 = String; url = String;} -> ζ; gmp = γ; stdenv = α;} -> η
18+{fetchurl = {sha256 = String; url = String;} -> ε; gmp = δ; stdenv = α;} -> ζ
test/golden/importless/0.17.1.txt+11−10
@@ -1,17 +1,18 @@
11∀ α β γ δ ε ζ η θ ι κ.
2−( α.lib = β,
2+( α.all = β,
3+ α.lgpl21 = γ,
34 α.mkDerivation =
4− { buildInputs = [γ];
5+ { buildInputs = [δ];
56 enableParallelBuilding = Bool;
67 meta =
7− {description = String; homepage = String; license = δ; platforms = ε;};
8+ {description = String; homepage = String; license = γ; platforms = β;};
89 name = String;
9− src = ζ;
10+ src = ε;
1011 } ->
11− η,
12− β.licenses = θ,
13− θ.lgpl21 = δ,
14− ι.platforms = κ,
15− κ.all = ε
12+ ζ,
13+ η.licenses = α,
14+ θ.lib = η,
15+ ι.platforms = α,
16+ κ.lib = ι
1617) =>
17−{fetchurl = {sha256 = String; url = String;} -> ζ; gmp = γ; stdenv = α;} -> η
18+{fetchurl = {sha256 = String; url = String;} -> ε; gmp = δ; stdenv = α;} -> ζ
test/golden/importless/0.18.0.txt+14−13
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ η θ ι κ λ.
2−( α.lib = β,
2+( α.gpl2Plus = β,
33 α.mkDerivation =
44 { buildInputs = [γ];
55 configureFlags = [String];
@@ -8,23 +8,24 @@
88 meta =
99 { description = String;
1010 homepage = String;
11− license = δ;
11+ license = β;
1212 longDescription = String;
13− platforms = ε;
13+ platforms = δ;
1414 };
1515 name = String;
16− propagatedBuildInputs = [ζ];
17− src = η;
16+ propagatedBuildInputs = [ε];
17+ src = ζ;
1818 } ->
19− θ,
20− β.licenses = ι,
21− ι.gpl2Plus = δ,
22− κ.platforms = λ,
23− λ.unix = ε
19+ η,
20+ α.unix = δ,
21+ θ.licenses = α,
22+ ι.lib = θ,
23+ κ.platforms = α,
24+ λ.lib = κ
2425) =>
25−{ fetchurl = {sha256 = String; url = String;} -> η;
26+{ fetchurl = {sha256 = String; url = String;} -> ζ;
2627 gmp = γ;
27− isl = ζ;
28+ isl = ε;
2829 stdenv = α;
2930} ->
30−θ
31+η
test/golden/importless/0.2.txt+1−1
@@ -42,7 +42,7 @@
4242 gst_all_1 = μ;
4343 libjack2 = ε;
4444 libva = ε;
45− makeFontsConf = {fontDirectories = ∀ α. [α];} -> δ;
45+ makeFontsConf = {fontDirectories = ∀ α. α;} -> δ;
4646 meson = ι;
4747 ninja = ι;
4848 pkgconfig = ι;
test/golden/importless/0.20.0.txt+11−10
@@ -1,17 +1,18 @@
11∀ α β γ δ ε ζ η θ ι κ.
2−( α.lib = β,
2+( α.all = β,
3+ α.lgpl21 = γ,
34 α.mkDerivation =
4− { buildInputs = [γ];
5+ { buildInputs = [δ];
56 enableParallelBuilding = Bool;
67 meta =
7− {description = String; homepage = String; license = δ; platforms = ε;};
8+ {description = String; homepage = String; license = γ; platforms = β;};
89 name = String;
9− src = ζ;
10+ src = ε;
1011 } ->
11− η,
12− β.licenses = θ,
13− θ.lgpl21 = δ,
14− ι.platforms = κ,
15− κ.all = ε
12+ ζ,
13+ η.licenses = α,
14+ θ.lib = η,
15+ ι.platforms = α,
16+ κ.lib = ι
1617) =>
17−{fetchurl = {sha256 = String; url = String;} -> ζ; gmp = γ; stdenv = α;} -> η
18+{fetchurl = {sha256 = String; url = String;} -> ε; gmp = δ; stdenv = α;} -> ζ
test/golden/importless/0.29.txt+14−11
@@ -1,10 +1,11 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ.
2−( α.isDarwin = β,
3− α.lib = γ,
2+( α.enableFeature = Bool -> String -> β,
3+ α.isDarwin = γ,
4+ α.lib = δ,
45 α.mkDerivation =
56 { buildInputs = [Null];
6− checkInputs = [δ];
7− configureFlags = [ε];
7+ checkInputs = [ε];
8+ configureFlags = [β];
89 doCheck = Bool;
910 meta =
1011 {description = String; homepage = String; license = ζ; platforms = η;};
@@ -16,22 +17,24 @@
1617 version = String;
1718 } ->
1819 λ,
19− γ.optionals = β -> [String] -> ι,
20+ α.optional = Bool -> Null -> [Null],
21+ α.withFeature = Bool -> String -> β,
22+ δ.optionals = γ -> [Path] -> ι,
2023 μ.licenses = ν,
2124 μ.platforms = ξ,
2225 ν.lgpl2 = ζ,
2326 ξ.unix = η,
24− ο.enableFeature = Bool -> String -> ε,
25− π.enableFeature = Bool -> String -> ε,
26− ρ.withFeature = Bool -> String -> ε,
27− σ.withFeature = Bool -> String -> ε,
28− τ.optional = Bool -> Null -> [Null]
27+ ο.lib = α,
28+ π.lib = α,
29+ ρ.lib = α,
30+ σ.lib = α,
31+ τ.lib = α
2932) =>
3033{ compressionSupport = Bool;
3134 fetchurl = {sha256 = String; url = String;} -> κ;
3235 libxml2 = Null;
3336 openssl = Null;
34− perl = δ;
37+ perl = ε;
3538 pkgconfig = θ;
3639 shared = Bool;
3740 sslSupport = Bool;
test/golden/importless/0.3.3.txtdeleted−5
@@ -1,5 +0,0 @@
1−∀ α β γ.
2−( α // {patches = [String]; sha256 = String; version = String;} ~ β,
3− α.callPackage = String -> β -> γ
4−) =>
5−α -> γ
test/golden/importless/0.5.1.txtdeleted−6
@@ -1,6 +0,0 @@
1−∀ α β γ δ.
2−( α // {prePatch = String; src = β; version = String;} ~ γ,
3− α.callPackage = String -> γ -> δ,
4− α.fetchurl = {sha256 = String; url = String;} -> β
5−) =>
6−α -> δ
test/golden/importless/0.61.txt+39−39
@@ -1,55 +1,55 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ.
2−( α.cc = β,
3− α.lib = γ,
2+( α.isClang = β,
43 α.mkDerivation =
5− { CXXFLAGS = δ;
6− buildInputs = [ε];
4+ { CXXFLAGS = γ;
5+ buildInputs = [δ];
76 cmakeFlags = [String];
87 meta =
98 { description = String;
109 homepage = String;
11− license = ζ;
10+ license = ε;
1211 longDescription = String;
13− maintainers = [η];
14− platforms = θ;
12+ maintainers = [ζ];
13+ platforms = η;
1514 };
1615 name = String;
17− nativeBuildInputs = [ι];
16+ nativeBuildInputs = [θ];
1817 outputs = [String];
19− patches = [String];
20− propagatedBuildInputs = [κ];
21− src = λ;
18+ patches = [Path];
19+ propagatedBuildInputs = [ι];
20+ src = κ;
2221 } ->
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 = θ
22+ λ,
23+ α.optionalString = β -> String -> γ,
24+ μ.licenses = ν,
25+ μ.maintainers = ξ,
26+ μ.optional = Bool -> Null -> [ι],
27+ μ.optionals = Bool -> [ο] -> [ι],
28+ μ.platforms = π,
29+ μ.ttuegel = ζ,
30+ ρ.lib = α,
31+ σ.cc = α,
32+ ν.gpl2 = ε,
33+ π.all = η
3434) =>
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 = κ;
35+{ cairo = ο;
36+ cmake = θ;
37+ curl = ο;
38+ fetchpatch = {name = String; sha256 = String; url = String;} -> Path;
39+ fetchurl = {sha256 = String; url = String;} -> κ;
40+ fontconfig = ι;
41+ freetype = ι;
4242 gobject-introspection = Null;
4343 introspectionSupport = Bool;
44− lcms = π;
45− lib = ν;
46− libiconv = ε;
47− libintl = ε;
48− libjpeg = κ;
44+ lcms = ο;
45+ lib = μ;
46+ libiconv = δ;
47+ libintl = δ;
48+ libjpeg = ι;
4949 minimal = Bool;
50− ninja = ι;
51− openjpeg = κ;
52− pkgconfig = ι;
50+ ninja = θ;
51+ openjpeg = ι;
52+ pkgconfig = θ;
5353 poppler_data = τ;
5454 qt5Support = Bool;
5555 qtbase = Null;
@@ -57,6 +57,6 @@
5757 suffix = String;
5858 utils = Bool;
5959 withData = Bool;
60− zlib = κ;
60+ zlib = ι;
6161} ->
62−μ
62+λ
test/golden/importless/0.8.5.txt+23−22
@@ -1,33 +1,34 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2−( α.?meta = β,
3− β.?platforms = [γ],
4− δ.lib = ε,
5− δ.mkDerivation =
6− { buildInputs = [α];
2+( α.lgpl21 = β,
3+ α.maggesi = γ,
4+ α.mkDerivation =
5+ { buildInputs = [δ];
76 createFindlibDestdir = Bool;
87 meta =
98 { description = String;
109 homepage = String;
11− license = ζ;
12− maintainers = [η];
13− platforms = [γ];
10+ license = β;
11+ maintainers = [γ];
12+ platforms = ε;
1413 };
15− patches = [θ];
14+ patches = [ζ];
1615 pname = String;
17− src = ι;
16+ src = η;
1817 version = String;
1918 } ->
20− κ,
21− ε.licenses = λ,
22− λ.lgpl21 = ζ,
23− μ.maintainers = ν,
24− ν.maggesi = η
19+ θ,
20+ δ.platforms = ε,
21+ ι.licenses = α,
22+ κ.lib = ι,
23+ λ.maintainers = α,
24+ μ.lib = λ,
25+ ν.meta = δ
2526) =>
26−{ camlp4 = α;
27− fetchpatch = {sha256 = String; url = String;} -> θ;
28− fetchurl = {sha256 = String; url = String;} -> ι;
29− findlib = α;
30− ocaml = α;
31− stdenv = δ;
27+{ camlp4 = δ;
28+ fetchpatch = {sha256 = String; url = String;} -> ζ;
29+ fetchurl = {sha256 = String; url = String;} -> η;
30+ findlib = δ;
31+ ocaml = δ;
32+ stdenv = α;
3233} ->
33−κ
34+θ
test/golden/importless/0.9.5.txt+8−8
@@ -1,18 +1,18 @@
11∀ α β γ δ ε ζ η.
2−( α.lib = β,
2+( α.asl20 = β,
33 γ.buildPythonPackage =
44 { doCheck = Bool;
5− meta = {description = String; homepage = String; license = δ;};
5+ meta = {description = String; homepage = String; license = β;};
66 pname = String;
7− src = ε;
7+ src = δ;
88 version = String;
99 } ->
10− ζ,
11− β.licenses = η,
12− η.asl20 = δ
10+ ε,
11+ ζ.licenses = α,
12+ η.lib = ζ
1313) =>
14−{ fetchurl = {sha256 = String; url = String;} -> ε;
14+{ fetchurl = {sha256 = String; url = String;} -> δ;
1515 python2Packages = γ;
1616 stdenv = α;
1717} ->
18−ζ
18+ε
test/golden/importless/0.9.6.txt+8−8
@@ -1,18 +1,18 @@
11∀ α β γ δ ε ζ η.
2−( α.lib = β,
2+( α.asl20 = β,
33 γ.buildPythonPackage =
44 { doCheck = Bool;
5− meta = {description = String; homepage = String; license = δ;};
5+ meta = {description = String; homepage = String; license = β;};
66 pname = String;
7− src = ε;
7+ src = δ;
88 version = String;
99 } ->
10− ζ,
11− β.licenses = η,
12− η.asl20 = δ
10+ ε,
11+ ζ.licenses = α,
12+ η.lib = ζ
1313) =>
14−{ fetchurl = {sha256 = String; url = String;} -> ε;
14+{ fetchurl = {sha256 = String; url = String;} -> δ;
1515 python2Packages = γ;
1616 stdenv = α;
1717} ->
18−ζ
18+ε
test/golden/importless/0.9.txt+13−12
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ η θ ι κ.
2−( α.lib = β,
2+( α.mit = β,
33 α.mkDerivation =
44 { buildInputs = [γ];
55 buildPhase = String;
@@ -10,26 +10,27 @@
1010 meta =
1111 { description = String;
1212 homepage = String;
13− license = δ;
14− maintainers = [ε];
13+ license = β;
14+ maintainers = [δ];
1515 };
1616 name = String;
17− patches = [String];
17+ patches = [Path];
1818 postPatch = String;
19− src = ζ;
19+ src = ε;
2020 version = String;
2121 } ->
22− η,
23− β.licenses = θ,
24− θ.mit = δ,
25− ι.maintainers = κ,
26− κ.roconnor = ε
22+ ζ,
23+ α.roconnor = δ,
24+ η.licenses = α,
25+ θ.lib = η,
26+ ι.maintainers = α,
27+ κ.lib = ι
2728) =>
2829{ expat = γ;
29− fetchurl = {sha256 = String; url = String;} -> ζ;
30+ fetchurl = {sha256 = String; url = String;} -> ε;
3031 findlib = γ;
3132 ocaml = γ;
3233 ounit = γ;
3334 stdenv = α;
3435} ->
35−η
36+ζ
test/golden/importless/1-default.txt+2−2
@@ -7,13 +7,13 @@
77 { broken = Bool;
88 description = String;
99 homepage = String;
10− hydraPlatforms = ∀ α. [α];
10+ hydraPlatforms = ∀ α. α;
1111 license = [ε];
1212 platforms = ζ;
1313 };
1414 name = String;
1515 nativeBuildInputs = [η];
16− patches = [String];
16+ patches = [Path];
1717 postPatch = String;
1818 preConfigure = String;
1919 src = θ;
test/golden/importless/1.0.0.txt+1−1
@@ -8,7 +8,7 @@
88 { description = String;
99 homepage = String;
1010 license = ε;
11− maintainers = ∀ α. [α];
11+ maintainers = ∀ α. α;
1212 platforms = ζ;
1313 };
1414 nativeBuildInputs = [η];
test/golden/importless/1.0.txt+20−18
@@ -1,34 +1,36 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2−( α.?meta = β,
3− β.?platforms = [γ],
4− δ.lib = ε,
5− δ.mkDerivation =
6− { buildInputs = [α];
2+( α.getVersion = β -> γ,
3+ α.lib = δ,
4+ α.mkDerivation =
5+ { buildInputs = [β];
76 createFindlibDestdir = Bool;
87 makeFlags = [String];
98 meta =
109 { description = String;
1110 homepage = String;
12− license = ζ;
13− maintainers = [η];
14− platforms = [γ];
11+ license = ε;
12+ maintainers = [ζ];
13+ platforms = η;
1514 };
1615 name = String;
1716 preBuild = String;
1817 src = θ;
1918 } ->
2019 ι,
21− ε.versionAtLeast = κ -> String -> Bool,
22− λ.getVersion = α -> κ,
23− μ.licenses = ν,
24− μ.maintainers = ξ,
25− ν.bsd3 = ζ,
26− ξ.vbgl = η
20+ α.versionAtLeast = γ -> String -> Bool,
21+ β.platforms = η,
22+ κ.lib = α,
23+ λ.lib = α,
24+ δ.licenses = μ,
25+ δ.maintainers = ν,
26+ μ.bsd3 = ε,
27+ ν.vbgl = ζ,
28+ ξ.meta = β
2729) =>
28−{ easy-format = α;
30+{ easy-format = β;
2931 fetchurl = {sha256 = String; url = String;} -> θ;
30− findlib = α;
31− ocaml = α;
32− stdenv = δ;
32+ findlib = β;
33+ ocaml = β;
34+ stdenv = α;
3335} ->
3436ι
test/golden/importless/1.00.37.txt+17−17
@@ -1,8 +1,7 @@
11∀ α β γ δ ε ζ η θ ι κ.
2−( α.hostPlatform = β,
3− α.lib = γ,
2+( α.lib = β,
43 α.mkDerivation =
5− { buildInputs = [δ];
4+ { buildInputs = [γ];
65 dontPatchELF = Bool;
76 dontStrip = Bool;
87 installPhase = String;
@@ -10,25 +9,26 @@
109 { description = String;
1110 downloadPage = String;
1211 homepage = String;
13− license = ε;
14− platforms = ζ;
12+ license = δ;
13+ platforms = ε;
1514 };
1615 pname = String;
1716 preFixup = String;
18− src = η;
17+ src = ζ;
1918 version = String;
2019 } ->
21− θ,
22− β.system = String,
23− γ.licenses = ι,
24− γ.platforms = κ,
25− ι.unfree = ε,
26− κ.linux = ζ
20+ η,
21+ α.system = String,
22+ θ.hostPlatform = α,
23+ β.licenses = ι,
24+ β.platforms = κ,
25+ ι.unfree = δ,
26+ κ.linux = ε
2727) =>
28−{ cups = δ;
29− fetchurl = {sha256 = String; url = String;} -> η;
30− libusb-compat-0_1 = δ;
31− libxml2 = δ;
28+{ cups = γ;
29+ fetchurl = {sha256 = String; url = String;} -> ζ;
30+ libusb-compat-0_1 = γ;
31+ libxml2 = γ;
3232 stdenv = α;
3333} ->
34−θ
34+η
test/golden/importless/1.3.txt+59−56
@@ -1,13 +1,12 @@
1−∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1.
2−( β.?hostPlatform = γ,
3− γ.?platform = δ,
4− δ.?gcc = ε,
5− ε.?arch = String,
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β2 γ3.
2+( β.arch = String,
63 β.isDarwin = Bool,
7− β.lib = ζ,
4+ β.lib = γ,
5+ β.maintainers = δ,
6+ β.mit = ε,
87 β.mkDerivation =
9− { LD_LIBRARY_PATH = η;
10− buildInputs = [θ];
8+ { LD_LIBRARY_PATH = ζ;
9+ buildInputs = [η];
1110 checkTarget = String;
1211 doCheck = Bool;
1312 enableParallelBuilding = Bool;
@@ -16,72 +15,76 @@
1615 { broken = Bool;
1716 description = String;
1817 homepage = String;
19− license = ι;
20− maintainers = [κ];
18+ license = ε;
19+ maintainers = [θ];
2120 platforms = [String];
2221 };
23− nativeBuildInputs = [λ];
22+ nativeBuildInputs = [ι];
2423 passthru =
2524 { maintenanceVersion = String;
2625 majorVersion = String;
2726 minorVersion = String;
2827 site = String;
2928 };
30− patches = [String];
29+ patches = [Path];
3130 pname = String;
3231 postInstall = String;
3332 postPatch = String;
3433 preBuild = String;
3534 preCheck = String;
3635 prePatch = String;
37− src = μ;
36+ src = κ;
3837 version = ∀ α. α;
3938 } ->
40− ν,
39+ λ,
40+ β.optionals = μ -> [ν] -> [η],
4141 β.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 = ψ -> [ω] -> [θ]
42+ η.dev = η,
43+ η.isILP64 = Bool,
44+ γ.garrison = θ,
45+ γ.head = ο -> π,
46+ γ.makeLibraryPath = [η] -> ζ,
47+ γ.raskin = θ,
48+ γ.rob = θ,
49+ γ.splitString = String -> ξ -> ο,
50+ γ.throw = String -> ρ,
51+ σ.licenses = β,
52+ τ.lib = σ,
53+ υ.lib = β,
54+ φ.gcc = β,
55+ χ.platform = φ,
56+ ψ.hostPlatform = χ,
57+ ω.lib = β
5558) =>
56−{ ApplicationServices = ω;
57− CoreServices = ω;
58− arpack = θ;
59− blas = θ;
59+{ ApplicationServices = ν;
60+ CoreServices = ν;
61+ arpack = η;
62+ blas = η;
6063 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 = θ;
64+ curl = ι;
65+ fetchFromGitHub = β2;
66+ fetchurl = γ3;
67+ fetchzip = {sha256 = String; url = String;} -> κ;
68+ fftw = η;
69+ fftwSinglePrec = η;
70+ gfortran = ι;
71+ gmp = η;
72+ lapack = η;
73+ libgit2 = η;
74+ libunwind = η;
75+ m4 = ι;
76+ makeWrapper = ι;
77+ mpfr = η;
78+ openlibm = η;
79+ openspecfun = η;
80+ patchelf = ι;
81+ pcre2 = η;
82+ perl = ι;
83+ python2 = ι;
84+ readline = η;
8285 stdenv = β;
83− utf8proc = θ;
84− which = λ;
85− zlib = θ;
86+ utf8proc = η;
87+ which = ι;
88+ zlib = η;
8689} ->
87−ν
90+λ
test/golden/importless/1.4.txt+10−9
@@ -1,16 +1,17 @@
11∀ α β γ δ ε ζ η θ ι.
2−( α.lib = β,
2+( α.linux = β,
3+ α.mit = γ,
34 α.mkDerivation =
45 { installPhase = String;
56 meta =
6− {description = String; homepage = String; license = γ; platforms = δ;};
7+ {description = String; homepage = String; license = γ; platforms = β;};
78 name = String;
8− src = ε;
9+ src = δ;
910 } ->
10− ζ,
11− β.licenses = η,
12− η.mit = γ,
13− θ.platforms = ι,
14− ι.linux = δ
11+ ε,
12+ ζ.licenses = α,
13+ η.lib = ζ,
14+ θ.platforms = α,
15+ ι.lib = θ
1516) =>
16−{fetchurl = {sha256 = String; url = String;} -> ε; stdenv = α;} -> ζ
17+{fetchurl = {sha256 = String; url = String;} -> δ; stdenv = α;} -> ε
test/golden/importless/1.5.txt+20−20
@@ -1,9 +1,7 @@
11∀ α β γ δ ε ζ η θ ι κ λ.
2−( α.?meta = β,
3− β.?platforms = [γ],
4− δ.lib = ε,
5− δ.mkDerivation =
6− { buildInputs = [α];
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
75 buildPhase = String;
86 checkPhase = String;
97 configurePhase = String;
@@ -13,23 +11,25 @@
1311 meta =
1412 { description = String;
1513 homepage = String;
16− license = ζ;
17− maintainers = [η];
18− platforms = [γ];
14+ license = δ;
15+ maintainers = [ε];
16+ platforms = ζ;
1917 };
2018 name = String;
21− src = θ;
19+ src = η;
2220 } ->
23− ι,
24− ε.licenses = κ,
25− ε.maintainers = λ,
26− κ.lgpl21 = ζ,
27− λ.vbgl = η
21+ θ,
22+ γ.platforms = ζ,
23+ β.licenses = ι,
24+ β.maintainers = κ,
25+ ι.lgpl21 = δ,
26+ κ.vbgl = ε,
27+ λ.meta = γ
2828) =>
29−{ fetchzip = {sha256 = String; url = String;} -> θ;
30− findlib = α;
31− ocaml = α;
32− ocamlbuild = α;
33− stdenv = δ;
29+{ fetchzip = {sha256 = String; url = String;} -> η;
30+ findlib = γ;
31+ ocaml = γ;
32+ ocamlbuild = γ;
33+ stdenv = α;
3434} ->
35−ι
35+θ
test/golden/importless/1.55.txtdeleted−6
@@ -1,6 +0,0 @@
1−∀ α β γ δ.
2−( α // {patches = [String]; src = β; version = String;} ~ γ,
3− α.callPackage = String -> γ -> δ,
4− α.fetchurl = {sha256 = String; url = String;} -> β
5−) =>
6−α -> δ
test/golden/importless/1.59.txtdeleted−7
@@ -1,7 +0,0 @@
1−∀ α β γ δ ε.
2−( α // {src = β; version = String;} ~ γ,
3− α.callPackage = String -> γ -> δ,
4− α.fetchurl = {sha256 = String; url = String;} -> β,
5− α.stdenv = ε
6−) =>
7−α -> δ
test/golden/importless/1.60.txtdeleted−7
@@ -1,7 +0,0 @@
1−∀ α β γ δ ε.
2−( α // {src = β; version = String;} ~ γ,
3− α.callPackage = String -> γ -> δ,
4− α.fetchurl = {sha256 = String; url = String;} -> β,
5− α.stdenv = ε
6−) =>
7−α -> δ
test/golden/importless/1.65.txtdeleted−7
@@ -1,7 +0,0 @@
1−∀ α β γ δ ε.
2−( α // {src = β; version = String;} ~ γ,
3− α.callPackage = String -> γ -> δ,
4− α.fetchurl = {sha256 = String; url = String;} -> β,
5− α.stdenv = ε
6−) =>
7−α -> δ
test/golden/importless/1.66.txtdeleted−7
@@ -1,7 +0,0 @@
1−∀ α β γ δ ε.
2−( α // {src = β; version = String;} ~ γ,
3− α.callPackage = String -> γ -> δ,
4− α.fetchurl = {sha256 = String; url = String;} -> β,
5− α.stdenv = ε
6−) =>
7−α -> δ
test/golden/importless/1.67.txtdeleted−12
@@ -1,12 +0,0 @@
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.txtdeleted−8
@@ -1,8 +0,0 @@
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.txtdeleted−8
@@ -1,8 +0,0 @@
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.txtdeleted−8
@@ -1,8 +0,0 @@
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.txtdeleted−8
@@ -1,8 +0,0 @@
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.txtdeleted−8
@@ -1,8 +0,0 @@
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.txtdeleted−52
@@ -1,52 +0,0 @@
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.txt+35−32
@@ -1,54 +1,57 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ.
22( α.buildPlatform = β,
33 α.hostPlatform = β,
4− α.lib = γ,
4+ α.lgpl2Plus = γ,
5+ α.ludo = δ,
56 α.mkDerivation =
6− { buildInputs = [δ];
7+ { buildInputs = [ε];
78 configureFlags = [String];
8− depsBuildBuild = [ε];
9+ depsBuildBuild = [ζ];
910 doCheck = Bool;
1011 doInstallCheck = Bool;
1112 meta =
1213 { description = String;
1314 homepage = String;
14− license = ζ;
15+ license = γ;
1516 longDescription = String;
16− maintainers = [η];
17− platforms = θ;
17+ maintainers = [δ];
18+ platforms = η;
1819 };
1920 name = String;
20− nativeBuildInputs = [ι];
21+ nativeBuildInputs = [θ];
2122 outputs = [String];
22− patches = [String];
23+ patches = [Path];
2324 postInstall = String;
2425 preBuild = String;
25− propagatedBuildInputs = [δ];
26+ propagatedBuildInputs = [ε];
2627 setOutputFlags = Bool;
27− setupHook = String;
28− src = κ;
28+ setupHook = Path;
29+ src = ι;
2930 } ->
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 = ε
31+ κ,
32+ α.optional = Bool -> λ -> [ζ],
33+ α.unix = η,
34+ μ.guile_1_8 = λ,
35+ ν.cc = ζ,
36+ ξ.licenses = α,
37+ ο.lib = ξ,
38+ π.maintainers = α,
39+ ρ.lib = π,
40+ σ.platforms = α,
41+ τ.lib = σ,
42+ υ.lib = α,
43+ φ.lib = α,
44+ χ.stdenv = ν
4245) =>
43−{ buildPackages = ξ;
44− fetchurl = {sha256 = String; url = String;} -> κ;
45− gawk = ι;
46− gmp = δ;
47− libtool = δ;
48− makeWrapper = ι;
49− pkgconfig = ι;
46+{ buildPackages = ν;
47+ fetchurl = {sha256 = String; url = String;} -> ι;
48+ gawk = θ;
49+ gmp = ε;
50+ libtool = ε;
51+ makeWrapper = θ;
52+ pkgconfig = θ;
5053 pkgsBuildBuild = μ;
51− readline = δ;
54+ readline = ε;
5255 stdenv = α;
5356} ->
54−λ
57+κ
test/golden/importless/1.x.txt+23−22
@@ -1,36 +1,37 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
22( α.lib = β,
3− γ.buildPythonApplication =
3+ α.optionals = Bool -> [γ] -> δ,
4+ ε.buildPythonApplication =
45 { doCheck = Bool;
56 meta =
67 { description = String;
78 homepage = String;
8− license = δ;
9+ license = ζ;
910 longDescription = String;
10− maintainers = [ε];
11− platforms = ζ;
11+ maintainers = [η];
12+ platforms = θ;
1213 };
1314 pname = String;
14− propagatedBuildInputs = η;
15− src = θ;
15+ propagatedBuildInputs = δ;
16+ src = ι;
1617 version = String;
1718 } ->
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 = ζ
19+ κ,
20+ ε.flup = γ,
21+ ε.isPy3k = Bool,
22+ ε.ldap = γ,
23+ ε.sqlalchemy = γ,
24+ λ.lib = α,
25+ β.edwtjo = η,
26+ β.licenses = μ,
27+ β.maintainers = ν,
28+ β.pSub = η,
29+ β.platforms = ξ,
30+ μ.gpl3Plus = ζ,
31+ ξ.all = θ
3132) =>
32−{ fetchurl = {sha256 = String; url = String;} -> θ;
33− pythonPackages = γ;
33+{ fetchurl = {sha256 = String; url = String;} -> ι;
34+ pythonPackages = ε;
3435 stdenv = α;
3536} ->
36−ι
37+κ
test/golden/importless/10.5.x.txt+25−24
@@ -1,49 +1,50 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ.
22( α.hostPlatform = β,
33 α.isDarwin = Bool,
4− α.lib = γ,
4+ α.isMusl = γ,
5+ α.lib = δ,
56 α.mkDerivation =
6− { buildInputs = [δ];
7+ { buildInputs = [ε];
78 installPhase = String;
89 meta =
910 { description = String;
1011 homepage = String;
11− license = ε;
12− maintainers = [ζ];
12+ license = ζ;
13+ maintainers = [η];
1314 };
14− passthru = {tests = {smoke-test = η;};};
15+ passthru = {tests = {smoke-test = θ;};};
1516 pname = String;
1617 preferLocalBuild = Bool;
17− propagatedBuildInputs = [θ];
18− src = ι;
18+ propagatedBuildInputs = [ι];
19+ src = κ;
1920 version = String;
2021 } ->
21− κ,
22− λ.optionalString = μ -> String -> ν,
23− λ.warn = String -> String -> String,
24− ξ.aspnetcore_3_1 = θ,
25− ο.jellyfin = η,
22+ λ,
23+ μ.optionalString = γ -> String -> ν,
24+ μ.warn = String -> String -> String,
25+ ξ.aspnetcore_3_1 = ι,
26+ ο.jellyfin = θ,
2627 β.isAarch32 = Bool,
2728 β.isAarch64 = Bool,
2829 β.isx86_32 = Bool,
2930 β.isx86_64 = Bool,
30− π.isMusl = μ,
31− γ.licenses = ρ,
32− γ.maintainers = σ,
33− γ.minijackson = ζ,
34− γ.nyanloutre = ζ,
35− ρ.gpl2 = ε
31+ π.hostPlatform = α,
32+ δ.licenses = ρ,
33+ δ.maintainers = σ,
34+ δ.minijackson = η,
35+ δ.nyanloutre = η,
36+ ρ.gpl2 = ζ
3637) =>
3738{ dotnetCorePackages = ξ;
38− fetchurl = {sha256 = String; url = String;} -> ι;
39+ fetchurl = {sha256 = String; url = String;} -> κ;
3940 ffmpeg = τ;
4041 fontconfig = υ;
4142 freetype = φ;
42− lib = λ;
43− makeWrapper = δ;
43+ lib = μ;
44+ makeWrapper = ε;
4445 nixosTests = ο;
45− sqlite = θ;
46+ sqlite = ι;
4647 stdenv = α;
47− unzip = δ;
48+ unzip = ε;
4849} ->
49−κ
50+λ
test/golden/importless/11.1.txt+16−14
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2−( α.lib = β,
2+( α.linux = β,
33 α.mkDerivation =
44 { NIX_CFLAGS_COMPILE = String;
55 buildInputs = [γ];
@@ -9,26 +9,28 @@
99 homepage = String;
1010 license = δ;
1111 maintainers = [ε];
12− platforms = ζ;
12+ platforms = β;
1313 };
1414 name = String;
15− nativeBuildInputs = [η];
15+ nativeBuildInputs = [ζ];
1616 preConfigure = String;
17− src = θ;
17+ src = η;
1818 } ->
19− ι,
20− β.licenses = κ,
21− κ.zlib = δ,
22− λ.maintainers = μ,
23− μ.raskin = ε,
24− ν.platforms = ξ,
25− ξ.linux = ζ
19+ θ,
20+ α.raskin = ε,
21+ α.zlib = δ,
22+ ι.licenses = α,
23+ κ.lib = ι,
24+ λ.maintainers = α,
25+ μ.lib = λ,
26+ ν.platforms = α,
27+ ξ.lib = ν
2628) =>
2729{ SDL2 = γ;
2830 autoconf = γ;
2931 automake = γ;
3032 fetchFromBitbucket =
31− {owner = String; repo = String; rev = String; sha256 = String;} -> θ;
33+ {owner = String; repo = String; rev = String; sha256 = String;} -> η;
3234 freetype = γ;
3335 libGL = γ;
3436 libGLU = γ;
@@ -42,8 +44,8 @@
4244 mpg123 = γ;
4345 openal = γ;
4446 physfs = γ;
45− pkgconfig = η;
47+ pkgconfig = ζ;
4648 stdenv = α;
4749 which = γ;
4850} ->
49−ι
51+θ
test/golden/importless/112.01.01.txt+9−8
@@ -1,17 +1,18 @@
11∀ α β γ δ ε ζ η θ ι.
2−( α.lib = β,
3− β.licenses = γ,
4− γ.asl20 = δ,
5− ε.maintainers = ζ,
6− ζ.ericbmerritt = η,
7− ζ.maggesi = η
2+( α.asl20 = β,
3+ α.maintainers = γ,
4+ δ.licenses = α,
5+ ε.lib = δ,
6+ γ.ericbmerritt = ζ,
7+ γ.maggesi = ζ,
8+ η.lib = α
89) =>
910{ buildOcaml =
1011 { meta =
1112 { description = String;
1213 homepage = String;
13− license = δ;
14− maintainers = [η];
14+ license = β;
15+ maintainers = [ζ];
1516 };
1617 minimumSupportedOcamlVersion = String;
1718 name = String;
test/golden/importless/12.txt+1−1
@@ -9,7 +9,7 @@
99 description = String;
1010 homepage = String;
1111 license = ε;
12− maintainers = ∀ α. [α];
12+ maintainers = ∀ α. α;
1313 platforms = ζ;
1414 };
1515 name = String;
test/golden/importless/16.1.2.txt+27−23
@@ -1,47 +1,51 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π.
2−( α.lib = β,
2+( α.mit = β,
33 α.mkDerivation =
44 { buildInputs = [γ];
55 configureFlags = [String];
66 hardeningDisable = [String];
77 meta =
88 { description = String;
9− license = δ;
10− maintainers = [ε];
11− platforms = ζ;
9+ license = β;
10+ maintainers = [δ];
11+ platforms = ε;
1212 version = String;
1313 };
1414 name = String;
15− patches = [String];
15+ patches = [Path];
1616 postInstall = String;
17− propagatedBuildInputs = [η];
18− src = θ;
17+ propagatedBuildInputs = [ζ];
18+ src = η;
1919 version = String;
2020 } ->
21− ι,
22− β.optionals = Bool -> [Null] -> [η],
23− κ.optional = Bool -> String -> [String],
24− λ.licenses = μ,
25− μ.mit = δ,
26− ν.maintainers = ξ,
27− ξ.raskin = ε,
28− ο.platforms = π,
29− π.unix = ζ
21+ θ,
22+ α.optional = Bool -> String -> [String],
23+ α.optionals = Bool -> [Null] -> [ζ],
24+ α.raskin = δ,
25+ α.unix = ε,
26+ ι.lib = α,
27+ κ.lib = α,
28+ λ.licenses = α,
29+ μ.lib = λ,
30+ ν.maintainers = α,
31+ ξ.lib = ν,
32+ ο.platforms = α,
33+ π.lib = ο
3034) =>
3135{ autoconf = γ;
3236 automake = γ;
3337 boehmgc = Null;
34− fetchpatch = {name = String; sha256 = String; url = String;} -> String;
35− fetchurl = {sha256 = String; url = String;} -> θ;
36− gcc = η;
37− gmp = η;
38− libffi = η;
38+ fetchpatch = {name = String; sha256 = String; url = String;} -> Path;
39+ fetchurl = {sha256 = String; url = String;} -> η;
40+ gcc = ζ;
41+ gmp = ζ;
42+ libffi = ζ;
3943 libtool = γ;
4044 makeWrapper = γ;
41− mpfr = η;
45+ mpfr = ζ;
4246 noUnicode = Bool;
4347 stdenv = α;
4448 threadSupport = Bool;
4549 useBoehmgc = Bool;
4650} ->
47−ι
51+θ
test/golden/importless/1compat.txt+3−2
@@ -1,8 +1,9 @@
11∀ β γ δ ε ζ η θ ι.
2−( β // {description = String; priority = Number;} ~ γ,
2+( (β) // ({description = String; priority = Integer;}) ~ (γ),
33 δ.mkDerivation = {builder = ε; meta = ∀ α. α; name = String;} -> ζ,
4+ η.description = String,
45 η.meta = β,
5− θ.description = String
6+ θ.meta = η
67) =>
78{coreutils = ι; gnupg = η; stdenv = δ; writeScript = String -> String -> ε;} ->
89ζ
test/golden/importless/2.0.0.txt+2−2
@@ -9,11 +9,11 @@
99 { description = String;
1010 homepage = String;
1111 license = ε;
12− maintainers = ∀ α. [α];
12+ maintainers = ∀ α. α;
1313 platforms = ζ;
1414 };
1515 nativeBuildInputs = [η];
16− patches = [String];
16+ patches = [Path];
1717 pname = String;
1818 postPatch = String;
1919 src = θ;
test/golden/importless/2.0.txt+26−23
@@ -1,31 +1,34 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο.
2−( α.cmake = β,
3− α.fetchurl = {sha256 = String; url = String;} -> γ,
4− α.libgcrypt = β,
5− α.qt4 = β,
6− α.stdenv = δ,
7− α.xorg = ε,
8− δ.lib = ζ,
9− δ.mkDerivation =
10− { buildInputs = [β];
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.gpl2 = β,
3+ α.maintainers = γ,
4+ α.mkDerivation =
5+ { buildInputs = [δ];
116 meta =
127 { description = String;
138 homepage = String;
14− license = η;
15− maintainers = [θ];
16− platforms = ι;
9+ license = β;
10+ maintainers = [ε];
11+ platforms = ζ;
1712 };
1813 pname = String;
19− src = γ;
14+ src = η;
2015 version = String;
2116 } ->
22− κ,
23− ε.libXtst = β,
24− ζ.licenses = λ,
25− λ.gpl2 = η,
26− μ.maintainers = ν,
27− ν.qknight = θ,
28− ξ.platforms = ο,
29− ο.linux = ι
17+ θ,
18+ α.platforms = ι,
19+ κ.libXtst = δ,
20+ λ.licenses = α,
21+ μ.lib = λ,
22+ γ.qknight = ε,
23+ ν.lib = α,
24+ ι.linux = ζ,
25+ ξ.lib = α
3026) =>
31−α -> κ
27+{ cmake = δ;
28+ fetchurl = {sha256 = String; url = String;} -> η;
29+ libgcrypt = δ;
30+ qt4 = δ;
31+ stdenv = α;
32+ xorg = κ;
33+} ->
34+θ
test/golden/importless/2.1.txtdeleted−5
@@ -1,5 +0,0 @@
1−∀ α β γ.
2−( α // {sha256 = String; version = String;} ~ β,
3− α.callPackage = String -> β -> γ
4−) =>
5−α -> γ
test/golden/importless/2.10.txt+16−15
@@ -1,31 +1,32 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2−( α.lib = β,
2+( α.all = β,
3+ α.bsd3 = γ,
34 α.mkDerivation =
4− { buildInputs = [γ];
5+ { buildInputs = [δ];
56 installPhase = String;
67 meta =
78 { branch = String;
89 description = String;
910 homepage = String;
10− license = δ;
11+ license = γ;
1112 longDescription = String;
12− platforms = ε;
13+ platforms = β;
1314 };
1415 name = String;
15− propagatedBuildInputs = [ζ];
16− src = η;
16+ propagatedBuildInputs = [ε];
17+ src = ζ;
1718 } ->
18− θ,
19− β.licenses = ι,
20− ι.bsd3 = δ,
21− κ.platforms = λ,
22− λ.all = ε
19+ η,
20+ θ.licenses = α,
21+ ι.lib = θ,
22+ κ.platforms = α,
23+ λ.lib = κ
2324) =>
2425{ coreutils = μ;
25− fetchurl = {sha256 = String; url = String;} -> η;
26+ fetchurl = {sha256 = String; url = String;} -> ζ;
2627 gnugrep = ν;
27− jre = ζ;
28− makeWrapper = γ;
28+ jre = ε;
29+ makeWrapper = δ;
2930 stdenv = α;
3031} ->
31−θ
32+η
test/golden/importless/2.11.txt+16−15
@@ -1,31 +1,32 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2−( α.lib = β,
2+( α.all = β,
3+ α.bsd3 = γ,
34 α.mkDerivation =
4− { buildInputs = [γ];
5+ { buildInputs = [δ];
56 installPhase = String;
67 meta =
78 { branch = String;
89 description = String;
910 homepage = String;
10− license = δ;
11+ license = γ;
1112 longDescription = String;
12− platforms = ε;
13+ platforms = β;
1314 };
1415 name = String;
15− propagatedBuildInputs = [ζ];
16− src = η;
16+ propagatedBuildInputs = [ε];
17+ src = ζ;
1718 } ->
18− θ,
19− β.licenses = ι,
20− ι.bsd3 = δ,
21− κ.platforms = λ,
22− λ.all = ε
19+ η,
20+ θ.licenses = α,
21+ ι.lib = θ,
22+ κ.platforms = α,
23+ λ.lib = κ
2324) =>
2425{ coreutils = μ;
25− fetchurl = {sha256 = String; url = String;} -> η;
26+ fetchurl = {sha256 = String; url = String;} -> ζ;
2627 gnugrep = ν;
27− jre = ζ;
28− makeWrapper = γ;
28+ jre = ε;
29+ makeWrapper = δ;
2930 stdenv = α;
3031} ->
31−θ
32+η
test/golden/importless/2.12.txt+16−15
@@ -1,30 +1,31 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2−( α.lib = β,
2+( α.all = β,
3+ α.bsd3 = γ,
34 α.mkDerivation =
4− { buildInputs = [γ];
5+ { buildInputs = [δ];
56 installPhase = String;
67 meta =
78 { description = String;
89 homepage = String;
9− license = δ;
10+ license = γ;
1011 longDescription = String;
11− platforms = ε;
12+ platforms = β;
1213 };
1314 name = String;
14− propagatedBuildInputs = [ζ];
15− src = η;
15+ propagatedBuildInputs = [ε];
16+ src = ζ;
1617 } ->
17− θ,
18− β.licenses = ι,
19− ι.bsd3 = δ,
20− κ.platforms = λ,
21− λ.all = ε
18+ η,
19+ θ.licenses = α,
20+ ι.lib = θ,
21+ κ.platforms = α,
22+ λ.lib = κ
2223) =>
2324{ coreutils = μ;
24− fetchurl = {sha256 = String; url = String;} -> η;
25+ fetchurl = {sha256 = String; url = String;} -> ζ;
2526 gnugrep = ν;
26− jre = ζ;
27− makeWrapper = γ;
27+ jre = ε;
28+ makeWrapper = δ;
2829 stdenv = α;
2930} ->
30−θ
31+η
test/golden/importless/2.13.txt+16−15
@@ -1,30 +1,31 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2−( α.lib = β,
2+( α.all = β,
3+ α.bsd3 = γ,
34 α.mkDerivation =
4− { buildInputs = [γ];
5+ { buildInputs = [δ];
56 installPhase = String;
67 meta =
78 { description = String;
89 homepage = String;
9− license = δ;
10+ license = γ;
1011 longDescription = String;
11− platforms = ε;
12+ platforms = β;
1213 };
1314 name = String;
14− propagatedBuildInputs = [ζ];
15− src = η;
15+ propagatedBuildInputs = [ε];
16+ src = ζ;
1617 } ->
17− θ,
18− β.licenses = ι,
19− ι.bsd3 = δ,
20− κ.platforms = λ,
21− λ.all = ε
18+ η,
19+ θ.licenses = α,
20+ ι.lib = θ,
21+ κ.platforms = α,
22+ λ.lib = κ
2223) =>
2324{ coreutils = μ;
24− fetchurl = {sha256 = String; url = String;} -> η;
25+ fetchurl = {sha256 = String; url = String;} -> ζ;
2526 gnugrep = ν;
26− jre = ζ;
27− makeWrapper = γ;
27+ jre = ε;
28+ makeWrapper = δ;
2829 stdenv = α;
2930} ->
30−θ
31+η
test/golden/importless/2.2.txtdeleted−5
@@ -1,5 +0,0 @@
1−∀ α β γ.
2−( α // {sha256 = String; version = String;} ~ β,
3− α.callPackage = String -> β -> γ
4−) =>
5−α -> γ
test/golden/importless/2.22.txt+13−11
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2−( α.lib = β,
2+( α.linux = β,
33 α.mkDerivation =
44 { buildInputs = [γ];
55 meta =
@@ -9,22 +9,24 @@
99 homepage = String;
1010 license = δ;
1111 maintainers = [ε];
12− platforms = ζ;
12+ platforms = β;
1313 version = String;
1414 };
1515 name = String;
1616 postBuild = String;
1717 postInstall = String;
1818 preConfigure = String;
19− src = η;
19+ src = ζ;
2020 version = String;
2121 } ->
22− θ,
23− β.licenses = ι,
24− ι.zlib = δ,
25− κ.maintainers = λ,
26− λ.raskin = ε,
27− μ.platforms = ν,
28− ν.linux = ζ
22+ η,
23+ α.raskin = ε,
24+ α.zlib = δ,
25+ θ.licenses = α,
26+ ι.lib = θ,
27+ κ.maintainers = α,
28+ λ.lib = κ,
29+ μ.platforms = α,
30+ ν.lib = μ
2931) =>
30−{fetchurl = {sha256 = String; url = String;} -> η; stdenv = α; unzip = γ;} -> θ
32+{fetchurl = {sha256 = String; url = String;} -> ζ; stdenv = α; unzip = γ;} -> η
test/golden/importless/2.26.txt+19−17
@@ -1,32 +1,34 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2−( α.lib = β,
2+( α.linux = β,
3+ α.mit = γ,
34 α.mkDerivation =
4− { buildInputs = [γ];
5+ { buildInputs = [δ];
56 buildPhase = String;
67 installPhase = String;
78 meta =
89 { description = String;
9− license = δ;
10+ license = γ;
1011 maintainers = [ε];
11− platforms = ζ;
12+ platforms = β;
1213 version = String;
1314 };
1415 name = String;
15− src = η;
16+ src = ζ;
1617 version = String;
1718 } ->
18− θ,
19− β.licenses = ι,
20− ι.mit = δ,
21− κ.maintainers = λ,
22− λ.raskin = ε,
23− μ.platforms = ν,
24− ν.linux = ζ
19+ η,
20+ α.raskin = ε,
21+ θ.licenses = α,
22+ ι.lib = θ,
23+ κ.maintainers = α,
24+ λ.lib = κ,
25+ μ.platforms = α,
26+ ν.lib = μ
2527) =>
26−{ fetchurl = {sha256 = String; url = String;} -> η;
27− perl = γ;
28+{ fetchurl = {sha256 = String; url = String;} -> ζ;
29+ perl = δ;
2830 stdenv = α;
29− texLive = γ;
30− texinfo = γ;
31+ texLive = δ;
32+ texinfo = δ;
3133} ->
32−θ
34+η
test/golden/importless/2.4.0.txt+10−9
@@ -1,17 +1,18 @@
11∀ α β γ δ ε ζ η θ ι κ.
2−( α.lib = β,
2+( α.asl20 = β,
33 α.mkDerivation =
44 { buildInputs = [γ];
55 installPhase = String;
66 meta =
7− {description = String; homepage = String; license = δ; platforms = ε;};
7+ {description = String; homepage = String; license = β; platforms = δ;};
88 name = String;
9− src = ζ;
9+ src = ε;
1010 } ->
11− η,
12− β.licenses = θ,
13− θ.asl20 = δ,
14− ι.platforms = κ,
15− κ.unix = ε
11+ ζ,
12+ α.unix = δ,
13+ η.licenses = α,
14+ θ.lib = η,
15+ ι.platforms = α,
16+ κ.lib = ι
1617) =>
17−{fetchurl = {sha256 = String; url = String;} -> ζ; stdenv = α; unzip = γ;} -> η
18+{fetchurl = {sha256 = String; url = String;} -> ε; stdenv = α; unzip = γ;} -> ζ
test/golden/importless/2.4.txtdeleted−79
@@ -1,79 +0,0 @@
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.txt+2−1
@@ -19,11 +19,12 @@
1919 src = ι;
2020 } ->
2121 κ,
22+ α.optionals = Bool -> [String] -> η,
2223 γ.licenses = λ,
2324 γ.platforms = μ,
2425 λ.bsd2 = δ,
2526 μ.unix = ε,
26− ν.optionals = Bool -> [String] -> η
27+ ν.lib = α
2728) =>
2829{ autoreconfHook = ζ;
2930 bison = ζ;
test/golden/importless/2.5.txtdeleted−6
@@ -1,6 +0,0 @@
1−∀ α β γ δ.
2−( α // {src = β; version = String;} ~ γ,
3− α.callPackage = String -> γ -> δ,
4− α.fetchurl = {sha256 = String; url = String;} -> β
5−) =>
6−α -> δ
test/golden/importless/2.6.1.txt+5−3
@@ -16,13 +16,15 @@
1616 src = κ;
1717 } ->
1818 λ,
19+ α.optionalString = Bool -> String -> η,
20+ α.optionals = Bool -> [String] -> θ,
1921 γ.licenses = μ,
2022 γ.platforms = ν,
2123 μ.bsd2 = ε,
2224 ν.unix = ζ,
23− ξ.optionalString = Bool -> String -> η,
24− ο.optionalString = Bool -> String -> String,
25− π.optionals = Bool -> [String] -> θ
25+ ξ.lib = α,
26+ ο.lib = α,
27+ π.lib = α
2628) =>
2729{ bison = δ;
2830 fetchurl = {sha256 = String; url = String;} -> κ;
test/golden/importless/2.6.13-pre.txtdeleted−45
@@ -1,45 +0,0 @@
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.txt+20−18
@@ -1,31 +1,33 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ.
2−( α.hostPlatform = β,
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ.
2+( α.free = β,
33 α.isDarwin = γ,
4− α.lib = δ,
54 α.mkDerivation =
6− { NIX_CFLAGS_COMPILE = ε;
5+ { NIX_CFLAGS_COMPILE = δ;
76 buildPhase = String;
87 checkPhase = String;
98 doCheck = Bool;
109 hardeningDisable = [String];
1110 installPhase = String;
1211 meta =
13− {description = String; homepage = String; license = ζ; platforms = η;};
14− nativeBuildInputs = [θ];
15− patches = [String];
12+ {description = String; homepage = String; license = β; platforms = ε;};
13+ nativeBuildInputs = [ζ];
14+ patches = [Path];
1615 pname = String;
1716 preConfigure = String;
18− src = ι;
17+ src = η;
1918 version = String;
2019 } ->
21− κ,
22− β.extensions = λ,
23− λ.sharedLibrary = μ,
24− δ.optionalString = γ -> String -> ε,
25− ν.optionalString = ξ -> String -> String,
26− ο.licenses = π,
27− π.free = ζ,
28− ρ.platforms = σ,
29− σ.unix = η
20+ θ,
21+ α.optionalString = γ -> String -> δ,
22+ α.sharedLibrary = ι,
23+ α.unix = ε,
24+ κ.extensions = α,
25+ λ.hostPlatform = κ,
26+ μ.lib = α,
27+ ν.lib = α,
28+ ξ.licenses = α,
29+ ο.lib = ξ,
30+ π.platforms = α,
31+ ρ.lib = π
3032) =>
31−{fetchurl = {sha256 = String; url = String;} -> ι; stdenv = α; unzip = θ;} -> κ
33+{fetchurl = {sha256 = String; url = String;} -> η; stdenv = α; unzip = ζ;} -> θ
test/golden/importless/2.64.txt+15−14
@@ -1,7 +1,8 @@
11∀ α β γ δ ε ζ η θ ι κ.
2−( α.lib = β,
2+( α.all = β,
3+ α.gpl2Plus = γ,
34 α.mkDerivation =
4− { buildInputs = [γ];
5+ { buildInputs = [δ];
56 doCheck = Bool;
67 doInstallCheck = Bool;
78 dontPatchShebangs = Bool;
@@ -9,23 +10,23 @@
910 meta =
1011 { description = String;
1112 homepage = String;
12− license = δ;
13+ license = γ;
1314 longDescription = String;
14− platforms = ε;
15+ platforms = β;
1516 };
1617 name = String;
1718 preCheck = String;
18− src = ζ;
19+ src = ε;
1920 } ->
20− η,
21− β.licenses = θ,
22− θ.gpl2Plus = δ,
23− ι.platforms = κ,
24− κ.all = ε
21+ ζ,
22+ η.licenses = α,
23+ θ.lib = η,
24+ ι.platforms = α,
25+ κ.lib = ι
2526) =>
26−{ fetchurl = {sha256 = String; url = String;} -> ζ;
27− m4 = γ;
28− perl = γ;
27+{ fetchurl = {sha256 = String; url = String;} -> ε;
28+ m4 = δ;
29+ perl = δ;
2930 stdenv = α;
3031} ->
31−η
32+ζ
test/golden/importless/2.7-html.txt+1−1
@@ -1,7 +1,7 @@
11∀ β γ δ ε.
22( β.mkDerivation =
33 { installPhase = String;
4− meta = {maintainers = ∀ α. [α];};
4+ meta = {maintainers = ∀ α. α;};
55 name = String;
66 src = γ;
77 } ->
test/golden/importless/2.7-pdf-a4.txt+1−1
@@ -1,7 +1,7 @@
11∀ β γ δ ε.
22( β.mkDerivation =
33 { installPhase = String;
4− meta = {maintainers = ∀ α. [α];};
4+ meta = {maintainers = ∀ α. α;};
55 name = String;
66 src = γ;
77 } ->
test/golden/importless/2.7-pdf-letter.txt+1−1
@@ -1,7 +1,7 @@
11∀ β γ δ ε.
22( β.mkDerivation =
33 { installPhase = String;
4− meta = {maintainers = ∀ α. [α];};
4+ meta = {maintainers = ∀ α. α;};
55 name = String;
66 src = γ;
77 } ->
test/golden/importless/2.7-text.txt+1−1
@@ -1,7 +1,7 @@
11∀ β γ δ ε.
22( β.mkDerivation =
33 { installPhase = String;
4− meta = {maintainers = ∀ α. [α];};
4+ meta = {maintainers = ∀ α. α;};
55 name = String;
66 src = γ;
77 } ->
test/golden/importless/2.7.7.txt+1−1
@@ -11,7 +11,7 @@
1111 };
1212 name = String;
1313 nativeBuildInputs = [ζ];
14− patches = [String];
14+ patches = [Path];
1515 src = η;
1616 } ->
1717 θ,
test/golden/importless/2.8.txtdeleted−5
@@ -1,5 +0,0 @@
1−∀ α β γ.
2−( {branch = String; sha256 = String; version = String;} // α ~ β,
3− α.callPackage = String -> β -> γ
4−) =>
5−α -> γ
test/golden/importless/2.x.txt+24−23
@@ -1,39 +1,40 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
22( α.lib = β,
3− γ.pkgs = δ,
4− β.aneeshusa = ε,
5− β.edwtjo = ε,
6− β.infinisil = ε,
7− β.licenses = ζ,
8− β.maintainers = η,
9− β.pSub = ε,
10− ζ.gpl3Plus = θ,
11− δ.buildPythonApplication =
12− { checkInputs = [ι];
3+ γ.buildPythonApplication =
4+ { checkInputs = [δ];
135 meta =
146 { description = String;
157 homepage = String;
16− license = θ;
8+ license = ε;
179 longDescription = String;
18− maintainers = [ε];
10+ maintainers = [ζ];
1911 };
2012 pname = String;
2113 postPatch = String;
22− propagatedBuildInputs = [κ];
23− src = λ;
14+ propagatedBuildInputs = [η];
15+ src = θ;
2416 version = String;
2517 } ->
26− μ,
27− ν.passlib = κ,
28− ν.python-dateutil = κ,
29− ν.setuptools = κ,
30− ν.vobject = κ,
31− ξ.pytest = ι,
32− ξ.pytestrunner = ι
18+ ι,
19+ γ.pkgs = κ,
20+ β.aneeshusa = ζ,
21+ β.edwtjo = ζ,
22+ β.infinisil = ζ,
23+ β.licenses = λ,
24+ β.maintainers = μ,
25+ β.pSub = ζ,
26+ λ.gpl3Plus = ε,
27+ ν.pkgs = γ,
28+ κ.passlib = η,
29+ κ.python-dateutil = η,
30+ κ.setuptools = η,
31+ κ.vobject = η,
32+ ξ.pytest = δ,
33+ ξ.pytestrunner = δ
3334) =>
3435{ fetchFromGitHub =
35− {owner = String; repo = String; rev = String; sha256 = String;} -> λ;
36+ {owner = String; repo = String; rev = String; sha256 = String;} -> θ;
3637 python3 = γ;
3738 stdenv = α;
3839} ->
39−μ
40+ι
test/golden/importless/20160331.txt+24−22
@@ -1,36 +1,38 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2−( α.lib = β,
2+( α.lgpl21Plus = β,
3+ α.linux = γ,
34 α.mkDerivation =
4− { buildInputs = [γ];
5+ { buildInputs = [δ];
56 meta =
67 { description = String;
7− license = δ;
8+ license = β;
89 maintainers = [ε];
9− platforms = ζ;
10+ platforms = γ;
1011 version = String;
1112 };
12− nativeBuildInputs = [η];
13+ nativeBuildInputs = [ζ];
1314 pname = String;
14− src = θ;
15+ src = η;
1516 version = String;
1617 } ->
17− ι,
18− β.licenses = κ,
19− κ.lgpl21Plus = δ,
20− λ.maintainers = μ,
21− μ.raskin = ε,
22− ν.platforms = ξ,
23− ξ.linux = ζ
18+ θ,
19+ α.raskin = ε,
20+ ι.licenses = α,
21+ κ.lib = ι,
22+ λ.maintainers = α,
23+ μ.lib = λ,
24+ ν.platforms = α,
25+ ξ.lib = ν
2426) =>
25−{ autoconf = η;
26− automake = η;
27− autoreconfHook = η;
27+{ autoconf = ζ;
28+ automake = ζ;
29+ autoreconfHook = ζ;
2830 fetchFromGitHub =
29− {owner = String; repo = String; rev = String; sha256 = String;} -> θ;
30− gettext = η;
31− gmp = γ;
32− libtool = η;
33− mpfr = γ;
31+ {owner = String; repo = String; rev = String; sha256 = String;} -> η;
32+ gettext = ζ;
33+ gmp = δ;
34+ libtool = ζ;
35+ mpfr = δ;
3436 stdenv = α;
3537} ->
36−ι
38+θ
test/golden/importless/25.txt+36−30
@@ -1,34 +1,40 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ.
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 = γ
2+( α.optional = Bool -> [β] -> [γ],
3+ α.unfree = δ,
4+ ε.freetype = β,
5+ ε.glibc = β,
6+ ε.lib = β,
7+ ε.libGL = β,
8+ ε.libX11 = β,
9+ ε.libXdamage = β,
10+ ε.libXext = β,
11+ ε.libXfixes = β,
12+ ε.libXrender = β,
13+ ε.libpulseaudio = β,
14+ ε.libxcb = β,
15+ ε.ncurses5 = β,
16+ ε.zlib = β,
17+ ζ.fontconfig = β,
18+ ζ.freetype = β,
19+ ζ.glibc = β,
20+ ζ.libX11 = β,
21+ ζ.libXrender = β,
22+ ζ.zlib = β,
23+ η.licenses = α,
24+ θ.xlibs = ε,
25+ ι.xlibs = ε,
26+ κ.xlibs = ε,
27+ λ.xlibs = ε,
28+ μ.xlibs = ε,
29+ ν.xlibs = ε,
30+ ξ.fontconfig = ε,
31+ ο.xlibs = ζ,
32+ π.xlibs = ζ
2733) =>
28−{ autoPatchelfHook = δ;
34+{ autoPatchelfHook = γ;
2935 deployAndroidPackage =
30− { buildInputs = [δ];
31− meta = {licenses = κ;};
36+ { buildInputs = [γ];
37+ meta = {licenses = δ;};
3238 name = String;
3339 os = String;
3440 package = ρ;
@@ -36,11 +42,11 @@
3642 } ->
3743 σ;
3844 lib = α;
39− makeWrapper = δ;
45+ makeWrapper = γ;
4046 os = String;
4147 package = ρ;
4248 pkgs = ε;
43− pkgs_i686 = θ;
49+ pkgs_i686 = ζ;
4450 postInstall = String;
4551} ->
4652σ
test/golden/importless/26.txt+30−25
@@ -1,29 +1,34 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ.
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 = γ
2+( α.optional = Bool -> [β] -> [γ],
3+ α.unfree = δ,
4+ ε.fontconfig = β,
5+ ε.freetype = β,
6+ ε.glibc = β,
7+ ε.lib = β,
8+ ε.libX11 = β,
9+ ε.libXext = β,
10+ ε.libXrender = β,
11+ ζ.freetype = β,
12+ ζ.glibc = β,
13+ ζ.lib = β,
14+ ζ.libX11 = β,
15+ ζ.libXext = β,
16+ ζ.libXrender = β,
17+ ζ.zlib = β,
18+ η.licenses = α,
19+ θ.xlibs = ε,
20+ ι.xlibs = ε,
21+ κ.xlibs = ε,
22+ λ.fontconfig = ε,
23+ μ.xlibs = ζ,
24+ ν.xlibs = ζ,
25+ ξ.xlibs = ζ,
26+ ο.fontconfig = ζ
2227) =>
23−{ autoPatchelfHook = δ;
28+{ autoPatchelfHook = γ;
2429 deployAndroidPackage =
25− { buildInputs = [δ];
26− meta = {licenses = κ;};
30+ { buildInputs = [γ];
31+ meta = {licenses = δ;};
2732 name = String;
2833 os = String;
2934 package = π;
@@ -31,11 +36,11 @@
3136 } ->
3237 ρ;
3338 lib = α;
34− makeWrapper = δ;
39+ makeWrapper = γ;
3540 os = String;
3641 package = π;
3742 pkgs = ε;
38− pkgs_i686 = η;
43+ pkgs_i686 = ζ;
3944 postInstall = String;
4045} ->
4146ρ
test/golden/importless/2_4.txtdeleted−5
@@ -1,5 +0,0 @@
1−∀ α β γ.
2−( α // {sha256 = String; version = String;} ~ β,
3− α.callPackage = String -> β -> γ
4−) =>
5−α -> γ
test/golden/importless/2bwm.txt+16−19
@@ -1,24 +1,21 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
6− γ.mkEnableOption = String -> ζ,
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.2bwm = β,
3+ γ.mkEnableOption = String -> δ,
74 γ.mkIf =
8− η ->
9− { environment = {systemPackages = [θ];};
10− services = {xserver = {windowManager = {session = ι;};};};
5+ ε ->
6+ { environment = {systemPackages = [ζ];};
7+ services = {xserver = {windowManager = {session = η;};};};
118 } ->
12− κ,
13− γ.singleton = {name = String; start = String;} -> ι,
14− δ._2bwm = θ,
15− ε.xserver = λ,
16− λ.windowManager = μ,
17− μ.2bwm = ν,
18− ν.enable = η
9+ θ,
10+ γ.singleton = {name = String; start = String;} -> η,
11+ ι._2bwm = ζ,
12+ β.enable = ε,
13+ κ.windowManager = α,
14+ λ.xserver = κ,
15+ μ.services = λ
1916) =>
20−α ->
21−{ config = κ;
17+{config = α; lib = γ; pkgs = ι;} ->
18+{ config = θ;
2219 options =
23− {services = {xserver = {windowManager = {2bwm = {enable = ζ;};};};};};
20+ {services = {xserver = {windowManager = {2bwm = {enable = δ;};};};};};
2421}
test/golden/importless/3.0.txtdeleted−5
@@ -1,5 +0,0 @@
1−∀ α β γ.
2−( α // {sha256 = String; version = String;} ~ β,
3− α.callPackage = String -> β -> γ
4−) =>
5−α -> γ
test/golden/importless/3.0.x.txt+15−14
@@ -1,26 +1,27 @@
11∀ α β γ δ ε ζ η θ ι κ.
2−( α.lib = β,
2+( α.gpl3Plus = β,
33 α.mkDerivation =
44 { meta =
55 { description = String;
66 homepage = String;
7− license = γ;
7+ license = β;
88 longDescription = String;
9− platforms = δ;
9+ platforms = γ;
1010 };
1111 name = String;
12− nativeBuildInputs = [ε];
13− patches = [String];
14− src = ζ;
12+ nativeBuildInputs = [δ];
13+ patches = [Path];
14+ src = ε;
1515 } ->
16− η,
17− β.licenses = θ,
18− θ.gpl3Plus = γ,
19− ι.platforms = κ,
20− κ.unix = δ
16+ ζ,
17+ α.unix = γ,
18+ η.licenses = α,
19+ θ.lib = η,
20+ ι.platforms = α,
21+ κ.lib = ι
2122) =>
22−{ autoreconfHook = ε;
23− fetchurl = {sha256 = String; url = String;} -> ζ;
23+{ autoreconfHook = δ;
24+ fetchurl = {sha256 = String; url = String;} -> ε;
2425 stdenv = α;
2526} ->
26−η
27+ζ
test/golden/importless/3.08.0.txt+10−10
@@ -1,23 +1,23 @@
11∀ α β γ δ ε ζ.
2−( α.lib = β,
2+( α.linux = β,
33 α.mkDerivation =
44 { buildFlags = [String];
5− builder = String;
5+ builder = Path;
66 checkTarget = [String];
77 configureFlags = [String];
8− configureScript = String;
8+ configureScript = Path;
99 dontAddPrefix = String;
10− meta = {platforms = γ;};
10+ meta = {platforms = β;};
1111 pname = String;
12− src = δ;
12+ src = γ;
1313 version = String;
1414 } ->
15− ε,
16− β.platforms = ζ,
17− ζ.linux = γ
15+ δ,
16+ ε.platforms = α,
17+ ζ.lib = ε
1818) =>
19−{ fetchurl = {sha256 = String; url = String;} -> δ;
19+{ fetchurl = {sha256 = String; url = String;} -> γ;
2020 stdenv = α;
2121 xlibsWrapper = String;
2222} ->
23−ε
23+δ
test/golden/importless/3.1.txt+8−8
@@ -1,14 +1,14 @@
11∀ α β γ δ ε ζ η.
2−( α.lib = β,
3− α.mkDerivation =
2+( α.mkDerivation =
43 { dontUnpack = Bool;
54 installPhase = String;
6− meta = {platforms = γ;};
5+ meta = {platforms = β;};
76 name = String;
8− nativeBuildInputs = [δ];
7+ nativeBuildInputs = [γ];
98 } ->
10− ε,
11− β.platforms = ζ,
12− ζ.unix = γ
9+ δ,
10+ α.unix = β,
11+ ε.platforms = α,
12+ ζ.lib = ε
1313) =>
14−{fetchurl = {sha256 = String; url = String;} -> η; stdenv = α; unzip = δ;} -> ε
14+{fetchurl = {sha256 = String; url = String;} -> η; stdenv = α; unzip = γ;} -> δ
test/golden/importless/3.10.0.txt+9−8
@@ -1,5 +1,6 @@
11∀ α β γ δ ε ζ η θ ι.
2−( α.lib = β,
2+( α.licenses = β,
3+ α.linux = γ,
34 α.mkDerivation =
45 { buildFlags = [String];
56 buildInputs = [String];
@@ -8,8 +9,8 @@
89 meta =
910 { description = String;
1011 homepage = String;
11− license = [γ];
12− platforms = δ;
12+ license = [δ];
13+ platforms = γ;
1314 };
1415 patchPhase = String;
1516 pname = String;
@@ -19,11 +20,11 @@
1920 version = String;
2021 } ->
2122 ζ,
22− β.licenses = η,
23− η.lgpl2 = γ,
24− η.qpl = γ,
25− θ.platforms = ι,
26− ι.linux = δ
23+ β.lgpl2 = δ,
24+ β.qpl = δ,
25+ η.lib = α,
26+ θ.platforms = α,
27+ ι.lib = θ
2728) =>
2829{ fetchurl = {sha256 = String; url = String;} -> ε;
2930 ncurses = String;
test/golden/importless/3.10.txt+1−2
@@ -1,2 +1 @@
1−∀ α β.
2−(α.callPackage = String -> {sha256 = String; version = String;} -> β) => α -> β
1+∀ α. {callPackage = Path -> {sha256 = String; version = String;} -> α;} -> α
test/golden/importless/3.11.txtdeleted−5
@@ -1,5 +0,0 @@
1−∀ α β γ.
2−( α // {sha256 = String; version = String;} ~ β,
3− α.callPackage = String -> β -> γ
4−) =>
5−α -> γ
test/golden/importless/3.12.1.txtdeleted−42
@@ -1,42 +0,0 @@
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+1−2
@@ -1,2 +1 @@
1−∀ α β.
2−(α.callPackage = String -> {sha256 = String; version = String;} -> β) => α -> β
1+∀ α. {callPackage = Path -> {sha256 = String; version = String;} -> α;} -> α
test/golden/importless/3.13.txt+1−2
@@ -1,2 +1 @@
1−∀ α β.
2−(α.callPackage = String -> {sha256 = String; version = String;} -> β) => α -> β
1+∀ α. {callPackage = Path -> {sha256 = String; version = String;} -> α;} -> α
test/golden/importless/3.5.txtdeleted−8
@@ -1,8 +0,0 @@
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+1−2
@@ -1,2 +1 @@
1−∀ α β.
2−(α.callPackage = String -> {sha256 = String; version = String;} -> β) => α -> β
1+∀ α. {callPackage = Path -> {sha256 = String; version = String;} -> α;} -> α
test/golden/importless/3.7-html.txt+1−1
@@ -1,7 +1,7 @@
11∀ β γ δ ε.
22( β.mkDerivation =
33 { installPhase = String;
4− meta = {maintainers = ∀ α. [α];};
4+ meta = {maintainers = ∀ α. α;};
55 name = String;
66 src = γ;
77 } ->
test/golden/importless/3.7-pdf-a4.txt+1−1
@@ -1,7 +1,7 @@
11∀ β γ δ ε.
22( β.mkDerivation =
33 { installPhase = String;
4− meta = {maintainers = ∀ α. [α];};
4+ meta = {maintainers = ∀ α. α;};
55 name = String;
66 src = γ;
77 } ->
test/golden/importless/3.7-pdf-letter.txt+1−1
@@ -1,7 +1,7 @@
11∀ β γ δ ε.
22( β.mkDerivation =
33 { installPhase = String;
4− meta = {maintainers = ∀ α. [α];};
4+ meta = {maintainers = ∀ α. α;};
55 name = String;
66 src = γ;
77 } ->
test/golden/importless/3.7-text.txt+1−1
@@ -1,7 +1,7 @@
11∀ β γ δ ε.
22( β.mkDerivation =
33 { installPhase = String;
4− meta = {maintainers = ∀ α. [α];};
4+ meta = {maintainers = ∀ α. α;};
55 name = String;
66 src = γ;
77 } ->
test/golden/importless/3.7.txt+1−2
@@ -1,2 +1 @@
1−∀ α β.
2−(α.callPackage = String -> {sha256 = String; version = String;} -> β) => α -> β
1+∀ α. {callPackage = Path -> {sha256 = String; version = String;} -> α;} -> α
test/golden/importless/3.8.txt+1−2
@@ -1,2 +1 @@
1−∀ α β.
2−(α.callPackage = String -> {sha256 = String; version = String;} -> β) => α -> β
1+∀ α. {callPackage = Path -> {sha256 = String; version = String;} -> α;} -> α
test/golden/importless/3.9.txt+1−2
@@ -1,2 +1 @@
1−∀ α β.
2−(α.callPackage = String -> {sha256 = String; version = String;} -> β) => α -> β
1+∀ α. {callPackage = Path -> {sha256 = String; version = String;} -> α;} -> α
test/golden/importless/3.txt+22−20
@@ -1,33 +1,35 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2−( α.lib = β,
2+( α.cecill-b = β,
3+ α.linux = γ,
34 α.mkDerivation =
4− { buildInputs = [γ];
5+ { buildInputs = [δ];
56 meta =
67 { description = String;
7− license = δ;
8+ license = β;
89 maintainers = [ε];
9− platforms = ζ;
10+ platforms = γ;
1011 version = String;
1112 };
12− nativeBuildInputs = [η];
13+ nativeBuildInputs = [ζ];
1314 pname = String;
14− src = θ;
15+ src = η;
1516 version = String;
1617 } ->
17− ι,
18− β.licenses = κ,
19− κ.cecill-b = δ,
20− λ.maintainers = μ,
21− μ.raskin = ε,
22− ν.platforms = ξ,
23− ξ.linux = ζ
18+ θ,
19+ α.raskin = ε,
20+ ι.licenses = α,
21+ κ.lib = ι,
22+ λ.maintainers = α,
23+ μ.lib = λ,
24+ ν.platforms = α,
25+ ξ.lib = ν
2426) =>
25−{ autoconf = γ;
26− automake = γ;
27− autoreconfHook = η;
28− fetchurl = {sha256 = String; url = String;} -> θ;
29− gmpxx = γ;
30− libtool = γ;
27+{ autoconf = δ;
28+ automake = δ;
29+ autoreconfHook = ζ;
30+ fetchurl = {sha256 = String; url = String;} -> η;
31+ gmpxx = δ;
32+ libtool = δ;
3133 stdenv = α;
3234} ->
33−ι
35+θ
test/golden/importless/3.x.txt+21−20
@@ -2,10 +2,8 @@
22( α.dotlambda = β,
33 α.licenses = γ,
44 α.maintainers = δ,
5− ε.pkgs = ζ,
6− γ.gpl3Plus = η,
7− ζ.buildPythonApplication =
8− { checkInputs = [θ];
5+ ε.buildPythonApplication =
6+ { checkInputs = [ζ];
97 meta =
108 { description = String;
119 homepage = String;
@@ -13,26 +11,29 @@
1311 maintainers = [β];
1412 };
1513 pname = String;
16− propagatedBuildInputs = [ι];
17− src = κ;
14+ propagatedBuildInputs = [θ];
15+ src = ι;
1816 version = String;
1917 } ->
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 = θ
18+ κ,
19+ ε.pkgs = λ,
20+ γ.gpl3Plus = η,
21+ μ.pkgs = ε,
22+ λ.defusedxml = θ,
23+ λ.passlib = θ,
24+ λ.python-dateutil = θ,
25+ λ.setuptools = θ,
26+ λ.vobject = θ,
27+ ν.pytest = ζ,
28+ ν.pytest-flake8 = ζ,
29+ ν.pytest-isort = ζ,
30+ ν.pytestcov = ζ,
31+ ν.pytestrunner = ζ,
32+ ν.waitress = ζ
3233) =>
3334{ fetchFromGitHub =
34− {owner = String; repo = String; rev = String; sha256 = String;} -> κ;
35+ {owner = String; repo = String; rev = String; sha256 = String;} -> ι;
3536 lib = α;
3637 python3 = ε;
3738} ->
38−λ
39+κ
test/golden/importless/38.txt+7−6
@@ -6,7 +6,7 @@
66 β.mkDerivation =
77 { buildInputs = [ζ];
88 configureFlags = [String];
9− configurePlatforms = ∀ α. [α];
9+ configurePlatforms = ∀ α. α;
1010 depsBuildBuild = [η];
1111 enableParallelBuilding = Bool;
1212 meta =
@@ -24,21 +24,22 @@
2424 version = String;
2525 } ->
2626 μ,
27− ν.stdenv = ξ,
27+ β.optional = δ -> ν -> [ζ],
28+ ξ.cc = η,
2829 ε.maintainers = ο,
2930 ε.optionals = Bool -> [String] -> [String],
3031 ε.platforms = π,
3132 ο.abbradar = θ,
3233 π.unix = ι,
33− ρ.optional = δ -> σ -> [ζ],
34− ξ.cc = η
34+ ρ.lib = β,
35+ σ.stdenv = ξ
3536) =>
36−{ buildPackages = ν;
37+{ buildPackages = ξ;
3738 fetchurl = {sha256 = String; url = String;} -> λ;
3839 gnused_422 = κ;
3940 icu = ζ;
4041 libffi = ζ;
41− libobjc = σ;
42+ libobjc = ν;
4243 perl = κ;
4344 pkgconfig = κ;
4445 python2 = κ;
test/golden/importless/3_1.txtdeleted−5
@@ -1,5 +0,0 @@
1−∀ α β γ.
2−( α // {sha256 = String; version = String;} ~ β,
3− α.callPackage = String -> β -> γ
4−) =>
5−α -> γ
test/golden/importless/3dovideo.txt+20−20
@@ -1,35 +1,35 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π.
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 = [ε];
2+( α.bsd3 = β,
3+ α.lib = γ,
4+ α.mkDerivation = {buildCommand = String; name = String; src = δ;} -> ε,
5+ γ.base = ζ,
6+ γ.binary = ζ,
7+ γ.bytestring = ζ,
8+ γ.concatMapStrings = (η -> String) -> θ -> String,
9+ γ.filepath = ζ,
10+ γ.lessThan = η -> Integer -> ι,
11+ γ.mkDerivation =
12+ { buildDepends = [ζ];
1213 description = String;
1314 isExecutable = Bool;
1415 isLibrary = Bool;
15− license = ι;
16+ license = β;
1617 pname = String;
1718 src = κ;
1819 version = String;
1920 } ->
2021 λ,
21− β.optionalString = θ -> String -> μ,
22− β.range = Number -> Number -> η,
23− β.tar = ε,
24− β.toString = ζ -> μ,
25− ν.licenses = ξ,
26− ξ.bsd3 = ι,
27− (String | Number) ~ μ
22+ γ.optionalString = ι -> String -> μ,
23+ γ.range = Integer -> Integer -> θ,
24+ γ.tar = ζ,
25+ γ.toString = η -> μ,
26+ ν.licenses = α,
27+ ξ.lib = ν
2828) =>
2929{ fetchurl = {sha256 = String; url = String;} -> κ;
3030 haskellPackages = ο;
31− requireFile = {message = String; name = String; sha256 = String;} -> γ;
31+ requireFile = {message = String; name = String; sha256 = String;} -> δ;
3232 stdenv = α;
3333 writeText = String -> String -> π;
3434} ->
35−δ
35+ε
test/golden/importless/4.01.17.txt+12−11
@@ -1,6 +1,6 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2−( α.hostPlatform = β,
3− α.lib = γ,
2+( α.lib = β,
3+ α.makeLibraryPath = [γ] -> String,
44 α.mkDerivation =
55 { dontPatchELF = Bool;
66 dontStrip = Bool;
@@ -17,19 +17,20 @@
1717 version = String;
1818 } ->
1919 θ,
20− γ.makeLibraryPath = [ι] -> String,
21− β.system = String,
22− κ.system = String,
23− λ.joko = ε,
24− λ.licenses = μ,
25− λ.maintainers = ν,
26− λ.platforms = ξ,
20+ α.system = String,
21+ ι.lib = α,
22+ κ.hostPlatform = α,
23+ λ.hostPlatform = α,
24+ β.joko = ε,
25+ β.licenses = μ,
26+ β.maintainers = ν,
27+ β.platforms = ξ,
2728 μ.unfree = δ,
2829 ξ.linux = ζ
2930) =>
30−{ cups = ι;
31+{ cups = γ;
3132 fetchurl = {sha256 = String; url = String;} -> η;
32− libusb-compat-0_1 = ι;
33+ libusb-compat-0_1 = γ;
3334 stdenv = α;
3435} ->
3536θ
test/golden/importless/4.1.txt+8−8
@@ -1,14 +1,14 @@
11∀ α β γ δ ε ζ η.
2−( α.lib = β,
3− α.mkDerivation =
2+( α.mkDerivation =
43 { dontUnpack = Bool;
54 installPhase = String;
6− meta = {platforms = γ;};
5+ meta = {platforms = β;};
76 name = String;
8− nativeBuildInputs = [δ];
7+ nativeBuildInputs = [γ];
98 } ->
10− ε,
11− β.platforms = ζ,
12− ζ.unix = γ
9+ δ,
10+ α.unix = β,
11+ ε.platforms = α,
12+ ζ.lib = ε
1313) =>
14−{fetchurl = {sha256 = String; url = String;} -> η; stdenv = α; unzip = δ;} -> ε
14+{fetchurl = {sha256 = String; url = String;} -> η; stdenv = α; unzip = γ;} -> δ
test/golden/importless/4.13a.txt+1−1
@@ -1,5 +1,5 @@
11∀ β γ δ ε ζ η θ ι.
2−( β // {branch = String;} ~ γ,
2+( (β) // ({branch = String;}) ~ (γ),
33 δ.mkDerivation =
44 { buildInputs = [ε];
55 meta = ∀ α. α;
test/golden/importless/4.2.1.txt+20−18
@@ -1,32 +1,34 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2−( α.lib = β,
2+( α.gpl2 = β,
3+ α.linux = γ,
34 α.mkDerivation =
4− { buildInputs = [γ];
5+ { buildInputs = [δ];
56 configureScript = String;
67 meta =
78 { description = String;
89 homepage = String;
9− license = δ;
10+ license = β;
1011 maintainers = [ε];
11− platforms = ζ;
12+ platforms = γ;
1213 };
1314 name = String;
14− nativeBuildInputs = [η];
15− passthru = {libdvdread = γ;};
15+ nativeBuildInputs = [ζ];
16+ passthru = {libdvdread = δ;};
1617 preConfigure = String;
17− src = θ;
18+ src = η;
1819 } ->
19− ι,
20− β.licenses = κ,
21− κ.gpl2 = δ,
22− λ.maintainers = μ,
23− μ.wmertens = ε,
24− ν.platforms = ξ,
25− ξ.linux = ζ
20+ θ,
21+ α.wmertens = ε,
22+ ι.licenses = α,
23+ κ.lib = ι,
24+ λ.maintainers = α,
25+ μ.lib = λ,
26+ ν.platforms = α,
27+ ξ.lib = ν
2628) =>
27−{ fetchurl = {sha256 = String; url = String;} -> θ;
28− libdvdread = γ;
29− pkgconfig = η;
29+{ fetchurl = {sha256 = String; url = String;} -> η;
30+ libdvdread = δ;
31+ pkgconfig = ζ;
3032 stdenv = α;
3133} ->
32−ι
34+θ
test/golden/importless/4.3.2.txt+21−18
@@ -1,6 +1,8 @@
11∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ.
2−( β.isDarwin = Bool,
3− β.lib = γ,
2+( β.all = γ,
3+ β.enableFeature = Bool -> String -> δ,
4+ β.isDarwin = Bool,
5+ β.lgpl3Plus = ε,
46 β.mkDerivation =
57 { configureFlags = [δ];
68 doCheck = Bool;
@@ -11,28 +13,29 @@
1113 homepage = String;
1214 license = ε;
1315 longDescription = String;
14− maintainers = ∀ α. [α];
15− platforms = ζ;
16+ maintainers = ∀ α. α;
17+ platforms = γ;
1618 };
1719 name = String;
18− nativeBuildInputs = [η];
20+ nativeBuildInputs = [ζ];
1921 outputs = [String];
20− passthru = {static = θ;};
22+ passthru = {static = η;};
2123 preConfigure = String;
22− src = ι;
24+ src = θ;
2325 } ->
24− κ,
25− κ.out = λ,
26− γ.licenses = μ,
27− μ.lgpl3Plus = ε,
28− ν.platforms = ξ,
29− ξ.all = ζ,
30− ο.enableFeature = Bool -> String -> δ,
31− π.optionals = ρ -> [String] -> [δ]
26+ ι,
27+ β.optionals = κ -> [String] -> [δ],
28+ ι.out = λ,
29+ μ.licenses = β,
30+ ν.lib = μ,
31+ ξ.platforms = β,
32+ ο.lib = ξ,
33+ π.lib = β,
34+ ρ.lib = β
3235) =>
3336{ cxx = Bool;
34− fetchurl = {sha256 = String; url = String;} -> ι;
35− m4 = η;
37+ fetchurl = {sha256 = String; url = String;} -> θ;
38+ m4 = ζ;
3639 stdenv = β;
3740} ->
38−κ
41+ι
test/golden/importless/4.4.txt+33−32
@@ -1,46 +1,47 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ.
2−( α.hostPlatform = β,
3− α.isDarwin = γ,
4− α.lib = δ,
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ.
2+( α.isDarwin = β,
3+ α.lib = γ,
54 α.mkDerivation =
6− { NIX_CFLAGS_COMPILE = ε;
7− buildInputs = [ζ];
5+ { NIX_CFLAGS_COMPILE = δ;
6+ buildInputs = [ε];
87 makeFlags = [String];
98 meta =
109 { description = String;
1110 homepage = String;
12− license = [η];
13− maintainers = [θ];
14− platforms = ι;
11+ license = [ζ];
12+ maintainers = [η];
13+ platforms = θ;
1514 };
1615 name = String;
17− nativeBuildInputs = [κ];
16+ nativeBuildInputs = [ι];
1817 postInstall = String;
1918 preConfigure = String;
20− src = λ;
19+ src = κ;
2120 } ->
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
21+ λ,
22+ α.optionalString = β -> String -> δ,
23+ α.sharedLibrary = μ,
24+ ε.isILP64 = Bool,
25+ ν.extensions = α,
26+ ξ.hostPlatform = ν,
27+ ο.lib = α,
28+ γ.bsd2 = ζ,
29+ γ.gpl2Plus = ζ,
30+ γ.lgpl21Plus = ζ,
31+ γ.licenses = π,
32+ γ.maintainers = ρ,
33+ γ.platforms = σ,
34+ γ.ttuegel = η,
35+ γ.unix = θ,
36+ τ.lib = α,
37+ υ.lib = α
3738) =>
38−{ blas = ζ;
39− cudatoolkit = χ;
39+{ blas = ε;
40+ cudatoolkit = φ;
4041 enableCuda = Bool;
41− fetchurl = {sha256 = String; url = String;} -> λ;
42− gfortran = κ;
43− lapack = ζ;
42+ fetchurl = {sha256 = String; url = String;} -> κ;
43+ gfortran = ι;
44+ lapack = ε;
4445 stdenv = α;
4546} ->
46−μ
47+λ
test/golden/importless/4.9.9.txt+17−15
@@ -1,29 +1,31 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2−( α.lib = β,
2+( α.gpl2 = β,
3+ α.linux = γ,
34 α.mkDerivation =
45 { NIX_LDFLAGS = String;
5− buildInputs = [γ];
6+ buildInputs = [δ];
67 meta =
78 { description = String;
89 homepage = String;
9− license = δ;
10+ license = β;
1011 maintainers = [ε];
11− platforms = ζ;
12+ platforms = γ;
1213 };
1314 name = String;
1415 postInstall = String;
15− src = η;
16+ src = ζ;
1617 } ->
17− θ,
18− β.licenses = ι,
19− ι.gpl2 = δ,
20− κ.maintainers = λ,
21− λ.wmertens = ε,
22− μ.platforms = ν,
23− ν.linux = ζ
18+ η,
19+ α.wmertens = ε,
20+ θ.licenses = α,
21+ ι.lib = θ,
22+ κ.maintainers = α,
23+ λ.lib = κ,
24+ μ.platforms = α,
25+ ν.lib = μ
2426) =>
25−{ fetchurl = {sha256 = String; url = String;} -> η;
26− libdvdcss = γ;
27+{ fetchurl = {sha256 = String; url = String;} -> ζ;
28+ libdvdcss = δ;
2729 stdenv = α;
2830} ->
29−θ
31+η
test/golden/importless/4.txt+2−2
@@ -1,10 +1,10 @@
11∀ α β γ.
22{ Foundation = α;
33 callPackage =
4− String ->
4+ Path ->
55 { Foundation = α;
66 enableParallelBuilding = Bool;
7− extraPatches = [String];
7+ extraPatches = [Path];
88 libobjc = β;
99 sha256 = String;
1010 version = String;
test/golden/importless/422.txt+17−15
@@ -1,26 +1,28 @@
11∀ β γ δ ε ζ η θ ι κ λ μ ν ξ.
2−( β.hostPlatform = γ,
3− β.lib = δ,
2+( β.all = γ,
3+ β.gpl3Plus = δ,
4+ β.isMinGW = ε,
45 β.mkDerivation =
5− { configureFlags = ε;
6+ { configureFlags = ζ;
67 meta =
78 { description = String;
89 homepage = String;
9− license = ζ;
10+ license = δ;
1011 longDescription = String;
11− maintainers = ∀ α. [α];
12− platforms = η;
12+ maintainers = ∀ α. α;
13+ platforms = γ;
1314 };
1415 name = String;
1516 outputs = [String];
16− src = θ;
17+ src = η;
1718 } ->
18− ι,
19− δ.optional = κ -> String -> ε,
20− γ.isMinGW = κ,
21− λ.licenses = μ,
22− μ.gpl3Plus = ζ,
23− ν.platforms = ξ,
24− ξ.all = η
19+ θ,
20+ β.optional = ε -> String -> ζ,
21+ ι.lib = β,
22+ κ.hostPlatform = β,
23+ λ.licenses = β,
24+ μ.lib = λ,
25+ ν.platforms = β,
26+ ξ.lib = ν
2527) =>
26−{fetchurl = {sha256 = String; url = String;} -> θ; stdenv = β;} -> ι
28+{fetchurl = {sha256 = String; url = String;} -> η; stdenv = β;} -> θ
test/golden/importless/44.0.txt+24−24
@@ -1,20 +1,20 @@
11∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ.
2−( β.hostPlatform = γ,
3− β.lib = δ,
2+( β.isWindows = Bool,
3+ β.lib = γ,
44 β.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 -> ρ
5+ {buildPhase = String; installPhase = String; name = String; src = δ;} -> ε,
6+ ζ.platforms = η,
7+ θ.optionalString = Bool -> String -> ι,
8+ κ.override = {pip = Null;} -> λ,
9+ μ.override = {setuptools = Null; wheel = Null;} -> λ,
10+ ν.hostPlatform = β,
11+ γ.licenses = ξ,
12+ γ.psfl = ο,
13+ γ.zpl20 = ο,
14+ π.meta = ζ,
15+ ρ.strings = θ
1616) =>
17−{ bootstrapped-pip = μ;
17+{ bootstrapped-pip = λ;
1818 buildPythonPackage =
1919 { catchConflicts = Bool;
2020 doCheck = Bool;
@@ -23,14 +23,14 @@
2323 { description = String;
2424 homepage = String;
2525 license = [ο];
26− platforms = π;
27− priority = Number;
26+ platforms = η;
27+ priority = Integer;
2828 };
29− nativeBuildInputs = [μ];
29+ nativeBuildInputs = [λ];
3030 pipInstallFlags = [String];
3131 pname = ∀ α. α;
32− preBuild = ρ;
33− src = ζ;
32+ preBuild = ι;
33+ src = ε;
3434 version = ∀ α. α;
3535 } ->
3636 σ;
@@ -42,11 +42,11 @@
4242 rev = String;
4343 sha256 = String;
4444 } ->
45− ε;
46− lib = ι;
47− pipInstallHook = λ;
48− python = η;
49− setuptoolsBuildHook = ν;
45+ δ;
46+ lib = θ;
47+ pipInstallHook = κ;
48+ python = ζ;
49+ setuptoolsBuildHook = μ;
5050 stdenv = β;
5151 unzip = υ;
5252 wrapPython = φ;
test/golden/importless/5.1.138.txt+11−11
@@ -1,20 +1,20 @@
11∀ α β γ δ ε ζ η.
2−( α.lib = β,
3− α.mkDerivation =
4− { buildInputs = [γ];
2+( α.mkDerivation =
3+ { buildInputs = [β];
54 installPhase = String;
6− meta = {description = String; homepage = String; license = δ;};
5+ meta = {description = String; homepage = String; license = γ;};
76 phases = [String];
87 pname = String;
9− src = ε;
8+ src = δ;
109 version = String;
1110 } ->
12− ζ,
13− β.licenses = η,
14− η.unfree = δ
11+ ε,
12+ α.unfree = γ,
13+ ζ.licenses = α,
14+ η.lib = ζ
1515) =>
16−{ b43FirmwareCutter = γ;
17− fetchurl = {sha256 = String; url = String;} -> ε;
16+{ b43FirmwareCutter = β;
17+ fetchurl = {sha256 = String; url = String;} -> δ;
1818 stdenv = α;
1919} ->
20−ζ
20+ε
test/golden/importless/5.41.txt+28−22
@@ -1,40 +1,46 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ.
2−( α.lib = β,
2+( α.filter = (Null -> Bool) -> [Null] -> β,
3+ α.gpl2 = γ,
4+ α.makeBinPath = β -> δ,
35 α.mkDerivation =
4− { buildInputs = γ;
6+ { buildInputs = ε;
57 doCheck = Bool;
68 enableParallelBuilding = Bool;
79 meta =
810 { description = String;
911 homepage = String;
10− license = δ;
12+ license = γ;
1113 longDescription = String;
12− maintainers = [ε];
13− platforms = ζ;
14+ maintainers = [ζ];
15+ platforms = η;
1416 };
1517 name = String;
16− patches = [String];
18+ patches = [Path];
1719 postInstall = String;
18− src = η;
20+ src = θ;
1921 version = String;
2022 } ->
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
23+ ι,
24+ α.optionalString = Bool -> String -> String,
25+ α.optionals = Bool -> [Path] -> [Path],
26+ α.peti = ζ,
27+ α.unix = η,
28+ κ.lib = α,
29+ λ.lib = α,
30+ μ.lib = α,
31+ ν.licenses = α,
32+ ξ.lib = ν,
33+ ο.maintainers = α,
34+ π.lib = ο,
35+ ρ.platforms = α,
36+ σ.lib = ρ,
37+ τ.lib = α,
38+ υ.lib = α
3339) =>
3440{ ecl = Null;
3541 ecl-fasl = Bool;
36− fetchpatch = {sha256 = String; url = String;} -> String;
37− fetchurl = {sha256 = String; url = String;} -> η;
42+ fetchpatch = {sha256 = String; url = String;} -> Path;
43+ fetchurl = {sha256 = String; url = String;} -> θ;
3844 gnuplot = Null;
3945 makeWrapper = Null;
4046 perl = Null;
@@ -45,4 +51,4 @@
4551 texinfo = Null;
4652 tk = Null;
4753} ->
48−θ
54+ι
test/golden/importless/5.6.txt+23−19
@@ -1,33 +1,37 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ.
22( α.isDarwin = β,
3− α.lib = γ,
3+ α.lgpl21 = γ,
4+ α.maggesi = δ,
45 α.mkDerivation =
5− { buildInputs = δ;
6+ { buildInputs = ε;
67 meta =
78 { description = String;
89 homepage = String;
9− license = ε;
10+ license = γ;
1011 longDescription = String;
11− maintainers = [ζ];
12− platforms = η;
12+ maintainers = [δ];
13+ platforms = ζ;
1314 };
1415 pname = String;
15− prePatch = θ;
16− src = ι;
16+ prePatch = η;
17+ src = θ;
1718 version = String;
1819 } ->
19− κ,
20− γ.optional = β -> λ -> δ,
21− μ.licenses = ν,
22− ν.lgpl21 = ε,
23− ξ.maintainers = ο,
24− ο.maggesi = ζ,
25− π.platforms = ρ,
26− ρ.linux = η,
27− σ.optionalString = τ -> String -> θ
20+ ι,
21+ α.optional = β -> κ -> ε,
22+ α.optionalString = λ -> String -> η,
23+ α.platforms = μ,
24+ ν.lib = α,
25+ ξ.licenses = α,
26+ ο.lib = ξ,
27+ π.maintainers = α,
28+ ρ.lib = π,
29+ μ.linux = ζ,
30+ σ.lib = α,
31+ τ.lib = α
2832) =>
29−{ autoreconfHook = λ;
30− fetchurl = {sha256 = String; url = String;} -> ι;
33+{ autoreconfHook = κ;
34+ fetchurl = {sha256 = String; url = String;} -> θ;
3135 stdenv = α;
3236} ->
33−κ
37+ι
test/golden/importless/5.7.txt+12−10
@@ -13,24 +13,26 @@
1313 platforms = [η];
1414 };
1515 nativeBuildInputs = θ;
16− patches = [String];
16+ patches = [Path];
1717 pname = String;
1818 prePatch = ι;
1919 src = κ;
2020 version = String;
2121 } ->
2222 λ,
23− γ.optionalString = β -> String -> ι,
24− μ.optional = ν -> ξ -> θ,
25− ο.darwin = [η],
26− ο.licenses = π,
27− ο.linux = [η],
28− ο.maggesi = ζ,
29− ο.maintainers = ρ,
30− ο.platforms = σ,
23+ α.optional = μ -> ν -> θ,
24+ α.optionalString = β -> String -> ι,
25+ ξ.lib = α,
26+ ο.lib = α,
27+ γ.darwin = [η],
28+ γ.licenses = π,
29+ γ.linux = [η],
30+ γ.maggesi = ζ,
31+ γ.maintainers = ρ,
32+ γ.platforms = σ,
3133 π.lgpl21 = ε
3234) =>
33−{ autoreconfHook = ξ;
35+{ autoreconfHook = ν;
3436 fetchFromGitHub =
3537 {owner = String; repo = String; rev = String; sha256 = String;} -> κ;
3638 gmp = δ;
test/golden/importless/5.7.x.txt+24−21
@@ -25,37 +25,40 @@
2525 version = String;
2626 } ->
2727 κ,
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 -> ε
28+ α.optional = β -> String -> λ,
29+ α.optionalString = γ -> String -> ε,
30+ α.optionals = ν -> [ξ] -> [ζ],
31+ ο.lib = α,
32+ δ.artistic1 = η,
33+ δ.bsd0 = η,
34+ δ.bsd2 = η,
35+ δ.bsd3 = η,
36+ δ.bsdOriginal = η,
37+ δ.gpl2 = η,
38+ δ.lgpl2 = η,
39+ δ.lgpl21 = η,
40+ δ.licenses = π,
41+ δ.mit = η,
42+ δ.platforms = ρ,
43+ δ.publicDomain = η,
44+ σ.zlib = η,
45+ ρ.unix = θ,
46+ τ.lib = α,
47+ υ.lib = α
4548) =>
46−{ CoreServices = τ;
49+{ CoreServices = ξ;
4750 bison = ι;
4851 boost = ζ;
49− cctools = τ;
52+ cctools = ξ;
5053 cmake = ι;
51− developer_cmds = τ;
54+ developer_cmds = ξ;
5255 fetchurl = {sha256 = String; url = String;} -> μ;
5356 libedit = ζ;
5457 libevent = ζ;
5558 lz4 = ζ;
5659 ncurses = ζ;
5760 openssl = ζ;
58− perl = τ;
61+ perl = ξ;
5962 pkgconfig = ι;
6063 protobuf = ζ;
6164 readline = ζ;
test/golden/importless/5.txt+2−1
@@ -18,13 +18,14 @@
1818 version = String;
1919 } ->
2020 κ,
21+ α.optional = β -> String -> ε,
2122 γ.licenses = λ,
2223 γ.maintainers = μ,
2324 γ.platforms = ν,
2425 λ.gpl2Plus = ζ,
2526 μ.raskin = η,
2627 ν.linux = θ,
27− ξ.optional = β -> String -> ε
28+ ξ.lib = α
2829) =>
2930{allegro = δ; fetchurl = {sha256 = String; url = String;} -> ι; stdenv = α;} ->
3031κ
test/golden/importless/6.3.txt+1−1
@@ -8,7 +8,7 @@
88 { description = String;
99 homepage = String;
1010 license = ζ;
11− maintainers = ∀ α. [α];
11+ maintainers = ∀ α. α;
1212 };
1313 nativeBuildInputs = [θ];
1414 pname = String;
test/golden/importless/6.txt+1−1
@@ -1,7 +1,7 @@
11∀ α β γ.
22{ Foundation = α;
33 callPackage =
4− String ->
4+ Path ->
55 { Foundation = α;
66 enableParallelBuilding = Bool;
77 libobjc = β;
test/golden/importless/60.txt+9−9
@@ -5,7 +5,7 @@
55 β.mkDerivation =
66 { buildInputs = [ε];
77 configureFlags = [String];
8− configurePlatforms = ∀ α. [α];
8+ configurePlatforms = ∀ α. α;
99 depsBuildBuild = [ζ];
1010 enableParallelBuilding = Bool;
1111 meta =
@@ -26,15 +26,15 @@
2626 version = String;
2727 } ->
2828 ν,
29− ξ.stdenv = ο,
30− δ.licenses = π,
31− δ.maintainers = ρ,
29+ ξ.cc = ζ,
30+ δ.licenses = ο,
31+ δ.maintainers = π,
3232 δ.optionals = Bool -> [String] -> [String],
33− δ.platforms = σ,
34− π.gpl2 = η,
35− ρ.abbradar = θ,
36− σ.linux = ι,
37− ο.cc = ζ
33+ δ.platforms = ρ,
34+ ο.gpl2 = η,
35+ π.abbradar = θ,
36+ ρ.linux = ι,
37+ σ.stdenv = ξ
3838) =>
3939{ autoconf213 = κ;
4040 buildPackages = ξ;
test/golden/importless/68.txt+14−14
@@ -5,7 +5,7 @@
55 β.mkDerivation =
66 { buildInputs = [ε];
77 configureFlags = [String];
8− configurePlatforms = ∀ α. [α];
8+ configurePlatforms = ∀ α. α;
99 depsBuildBuild = [ζ];
1010 enableParallelBuilding = Bool;
1111 meta =
@@ -25,19 +25,19 @@
2525 version = String;
2626 } ->
2727 μ,
28− ν.python3 = ξ,
29− ν.stdenv = ο,
30− π.llvm = κ,
31− ρ.six = σ,
32− δ.licenses = τ,
33− δ.maintainers = υ,
28+ ν.cc = ζ,
29+ ν.withPackages = (ξ -> [ο]) -> π,
30+ ρ.llvm = κ,
31+ ξ.six = ο,
32+ δ.licenses = σ,
33+ δ.maintainers = τ,
3434 δ.optionals = Bool -> [String] -> [String],
35− δ.platforms = φ,
36− τ.gpl2 = η,
37− υ.abbradar = θ,
38− φ.linux = ι,
39− ξ.withPackages = (ρ -> [σ]) -> χ,
40− ο.cc = ζ
35+ δ.platforms = υ,
36+ σ.gpl2 = η,
37+ τ.abbradar = θ,
38+ υ.linux = ι,
39+ φ.python3 = ν,
40+ χ.stdenv = ν
4141) =>
4242{ autoconf213 = κ;
4343 buildPackages = ν;
@@ -45,7 +45,7 @@
4545 fetchpatch = ψ;
4646 fetchurl = {sha256 = String; url = String;} -> λ;
4747 icu = ε;
48− llvmPackages = π;
48+ llvmPackages = ρ;
4949 perl = κ;
5050 pkgconfig = κ;
5151 python2 = κ;
test/golden/importless/6_qt4.txt+13−10
@@ -20,17 +20,20 @@
2020 src = κ;
2121 } ->
2222 λ,
23− γ.optionalString = β -> String -> ι,
24− μ.maintainers = ν,
25− μ.platforms = ξ,
26− ο.licenses = π,
27− π.qwt = ε,
28− ν.bjornfor = ζ,
29− ξ.linux = [η],
30− ρ.darwin = [η],
31− σ.optionals = τ -> [υ] -> [δ]
23+ α.optionalString = β -> String -> ι,
24+ α.optionals = μ -> [ν] -> [δ],
25+ α.qwt = ε,
26+ ξ.lib = α,
27+ γ.maintainers = ο,
28+ γ.platforms = π,
29+ ρ.licenses = α,
30+ σ.lib = ρ,
31+ ο.bjornfor = ζ,
32+ π.linux = [η],
33+ τ.darwin = [η],
34+ υ.lib = α
3235) =>
33−{ AGL = υ;
36+{ AGL = ν;
3437 fetchurl = {sha256 = String; url = String;} -> κ;
3538 qmake4Hook = θ;
3639 qt4 = δ;
test/golden/importless/7.3.txt+6−5
@@ -17,19 +17,20 @@
1717 version = String;
1818 } ->
1919 κ,
20− λ.apple_sdk = μ,
20+ α.optional = β -> λ -> [δ],
21+ μ.Cocoa = λ,
2122 γ.amiloradovsky = ζ,
2223 γ.licenses = ν,
2324 γ.maintainers = ξ,
2425 γ.platforms = ο,
2526 ν.lgpl21 = ε,
2627 ο.all = η,
27− π.optional = β -> ρ -> [δ],
28− μ.frameworks = σ,
29− σ.Cocoa = ρ
28+ π.lib = α,
29+ ρ.frameworks = μ,
30+ σ.apple_sdk = ρ
3031) =>
3132{ cmake = θ;
32− darwin = λ;
33+ darwin = μ;
3334 fetchpatch = τ;
3435 fetchurl = {name = String; sha256 = String; url = String;} -> ι;
3536 libGL = δ;
test/golden/importless/7.6.6.txtdeleted−46
@@ -1,46 +0,0 @@
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/78.txt+13−12
@@ -5,7 +5,7 @@
55 β.mkDerivation =
66 { buildInputs = [ε];
77 configureFlags = [String];
8− configurePlatforms = ∀ α. [α];
8+ configurePlatforms = ∀ α. α;
99 depsBuildBuild = [ζ];
1010 enableParallelBuilding = Bool;
1111 meta =
@@ -26,16 +26,17 @@
2626 version = String;
2727 } ->
2828 ν,
29− ξ.stdenv = ο,
30− π.llvm = κ,
31− δ.licenses = ρ,
32− δ.maintainers = σ,
33− δ.platforms = τ,
34− ρ.gpl2 = η,
35− σ.abbradar = θ,
36− τ.linux = ι,
37− υ.optionals = Bool -> [String] -> [String],
38− ο.cc = ζ
29+ β.optionals = Bool -> [String] -> [String],
30+ ξ.cc = ζ,
31+ ο.llvm = κ,
32+ δ.licenses = π,
33+ δ.maintainers = ρ,
34+ δ.platforms = σ,
35+ π.gpl2 = η,
36+ ρ.abbradar = θ,
37+ σ.linux = ι,
38+ τ.lib = β,
39+ υ.stdenv = ξ
3940) =>
4041{ autoconf213 = κ;
4142 buildPackages = ξ;
@@ -43,7 +44,7 @@
4344 fetchpatch = {sha256 = String; url = String;} -> λ;
4445 fetchurl = {sha256 = String; url = String;} -> μ;
4546 icu67 = ε;
46− llvmPackages = π;
47+ llvmPackages = ο;
4748 nspr = ε;
4849 perl = κ;
4950 pkgconfig = κ;
test/golden/importless/8.0.x.txt+1−1
@@ -20,7 +20,7 @@
2020 outputs = [String];
2121 passthru =
2222 {client = ξ; connector-c = ξ; mysqlVersion = String; server = ξ;};
23− patches = [String];
23+ patches = [Path];
2424 pname = String;
2525 postInstall = String;
2626 src = ο;
test/golden/importless/8.5.txtdeleted−7
@@ -1,7 +0,0 @@
1−∀ α β γ δ ε.
2−( α // {src = β;} ~ γ,
3− α.callPackage = String -> γ -> δ,
4− α.fetchurl = {sha256 = String; url = String;} -> β,
5− α.tcl = ε
6−) =>
7−α -> δ
test/golden/importless/8.6.txtdeleted−11
@@ -1,11 +0,0 @@
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/8_0.txtdeleted−11
@@ -1,11 +0,0 @@
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.txt+29−27
@@ -1,17 +1,19 @@
11∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π.
2−( β.lib = γ,
3− δ.mkDerivation =
4− { alt_wrapper = String;
5− buildInputs = [ε];
6− builder = String;
7− cctools_port = ζ;
8− ldid = ζ;
2+( β.gpl2 = γ,
3+ β.linux = δ,
4+ β.maintainers = ε,
5+ ζ.mkDerivation =
6+ { alt_wrapper = Path;
7+ buildInputs = [η];
8+ builder = Path;
9+ cctools_port = θ;
10+ ldid = θ;
911 meta =
1012 { description = String;
11− hydraPlatforms = ∀ α. [α];
12− license = η;
13− maintainers = [θ];
14− platforms = ι;
13+ hydraPlatforms = ∀ α. α;
14+ license = γ;
15+ maintainers = [ι];
16+ platforms = δ;
1517 };
1618 name = String;
1719 sdk = String;
@@ -19,25 +21,25 @@
1921 version = String;
2022 } ->
2123 λ,
22− γ.licenses = μ,
23− μ.gpl2 = η,
24− ν.maintainers = ξ,
25− ξ.fxfactorial = θ,
26− ο.platforms = π,
27− π.linux = ι
24+ μ.licenses = β,
25+ ν.lib = μ,
26+ ε.fxfactorial = ι,
27+ ξ.lib = β,
28+ ο.platforms = β,
29+ π.lib = ο
2830) =>
29−{ autoconf = ε;
30− automake = ε;
31− clang = ε;
32− clangStdenv = δ;
31+{ autoconf = η;
32+ automake = η;
33+ clang = η;
34+ clangStdenv = ζ;
3335 fetchFromGitHub =
34− {owner = String; repo = String; rev = String; sha256 = String;} -> ζ;
35− git = ε;
36− gnutar = ε;
37− libtool = ε;
38− openssl = ε;
36+ {owner = String; repo = String; rev = String; sha256 = String;} -> θ;
37+ git = η;
38+ gnutar = η;
39+ libtool = η;
40+ openssl = η;
3941 requireFile = {message = String; name = String; sha256 = String;} -> κ;
4042 stdenv = β;
41− xz = ε;
43+ xz = η;
4244} ->
4345λ
test/golden/importless/9.x.txt+49−47
@@ -1,67 +1,69 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1.
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1.
22( α.isDarwin = β,
33 α.isLinux = γ,
44 α.lib = δ,
5− δ.licenses = ε,
6− δ.maintainers = ζ,
7− δ.optional = Bool -> [Null] -> [η],
5+ α.optionalString = ε,
6+ α.optionals = β -> [ζ] -> η,
7+ δ.licenses = θ,
8+ δ.maintainers = ι,
9+ δ.optional = Bool -> [Null] -> [κ],
810 δ.optionals = Bool -> [String] -> [String],
9− δ.platforms = θ,
10− δ.tfmoraes = ι,
11− δ.unix = κ,
12− λ.optionalString = μ,
13− ν.optionals = β -> [ξ] -> ο,
14− π.optionalString = ρ -> String -> σ,
15− ε.bsd3 = τ
11+ δ.platforms = λ,
12+ δ.tfmoraes = μ,
13+ δ.unix = ν,
14+ ξ.lib = α,
15+ ο.lib = α,
16+ π.lib = α,
17+ θ.bsd3 = ρ
1618) =>
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 = φ;
19+{ ApplicationServices = σ;
20+ CFNetwork = σ;
21+ Cocoa = σ;
22+ CoreServices = σ;
23+ CoreText = σ;
24+ DiskArbitration = σ;
25+ GLUT = σ;
26+ IOKit = σ;
27+ IOSurface = σ;
28+ ImageIO = σ;
29+ OpenGL = σ;
30+ Security = σ;
31+ cmake = τ;
3032 enablePython = Bool;
3133 enableQt = Bool;
32− fetchpatch = χ;
33− fetchurl = {sha256 = String; url = String;} -> ψ;
34− libGL = ω;
35− libGLU = ω;
36− libX11 = ω;
37− libXt = ω;
38− libobjc = ξ;
39− libtiff = η;
34+ fetchpatch = υ;
35+ fetchurl = {sha256 = String; url = String;} -> φ;
36+ libGL = χ;
37+ libGLU = χ;
38+ libX11 = χ;
39+ libXt = χ;
40+ libobjc = ζ;
41+ libtiff = κ;
4042 mkDerivation =
41− { buildInputs = [η];
43+ { buildInputs = [κ];
4244 cmakeFlags = [String];
4345 enableParallelBuilding = Bool;
4446 meta =
4547 { description = String;
4648 homepage = String;
47− license = τ;
48− maintainers = [ι];
49− platforms = κ;
49+ license = ρ;
50+ maintainers = [μ];
51+ platforms = ν;
5052 };
5153 name = String;
52− nativeBuildInputs = [φ];
53− postPatch = σ;
54+ nativeBuildInputs = [τ];
55+ postPatch = ψ;
5456 preBuild = String;
55− propagatedBuildInputs = ο;
56− src = ψ;
57+ propagatedBuildInputs = η;
58+ src = φ;
5759 } ->
58− α1;
60+ ω;
5961 python = Null;
60− qtbase = β1;
61− qttools = β1;
62− qtx11extras = β1;
62+ qtbase = α1;
63+ qttools = α1;
64+ qtx11extras = α1;
6365 stdenv = α;
64− xorgproto = ω;
65− xpc = υ;
66+ xorgproto = χ;
67+ xpc = σ;
6668} ->
67−α1
69+ω
test/golden/importless/Cargo.txt+31−30
@@ -1,8 +1,9 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ.
22( α.isDarwin = β,
33 α.lib = γ,
4− δ.buildRustPackage =
5− { RUSTC_BOOTSTRAP = Number;
4+ α.optionals = β -> [δ] -> [ε],
5+ ζ.buildRustPackage =
6+ { RUSTC_BOOTSTRAP = Integer;
67 buildAndTestSubdir = String;
78 buildInputs = [ε];
89 cargoVendorDir = String;
@@ -12,44 +13,44 @@
1213 meta =
1314 { description = String;
1415 homepage = String;
15− license = [ζ];
16− maintainers = [η];
17− platforms = θ;
16+ license = [η];
17+ maintainers = [θ];
18+ platforms = ι;
1819 };
1920 name = String;
20− nativeBuildInputs = [ι];
21− passthru = {rustc = κ;};
21+ nativeBuildInputs = [κ];
22+ passthru = {rustc = λ;};
2223 postInstall = String;
23− src = λ;
24− version = μ;
24+ src = μ;
25+ version = ν;
2526 } ->
26− ν,
27− κ.src = λ,
28− κ.version = μ,
29− γ.optionals = β -> [ξ] -> [ε],
30− ο.licenses = π,
31− ο.maintainers = ρ,
32− ο.platforms = σ,
33− ο.retrry = η,
34− π.mit = ζ,
35− τ.asl20 = ζ,
36− σ.unix = θ
27+ ξ,
28+ λ.src = μ,
29+ λ.version = ν,
30+ ο.lib = α,
31+ γ.licenses = π,
32+ γ.maintainers = ρ,
33+ γ.platforms = σ,
34+ γ.retrry = θ,
35+ π.mit = η,
36+ τ.asl20 = η,
37+ σ.unix = ι
3738) =>
38−{ CoreFoundation = ξ;
39− Security = ξ;
39+{ CoreFoundation = δ;
40+ Security = δ;
4041 cacert = ε;
41− cmake = ι;
42+ cmake = κ;
4243 curl = ε;
4344 file = ε;
44− installShellFiles = ι;
45− libiconv = ξ;
46− makeWrapper = ι;
45+ installShellFiles = κ;
46+ libiconv = δ;
47+ makeWrapper = κ;
4748 openssl = ε;
48− pkgconfig = ι;
49+ pkgconfig = κ;
4950 python3 = ε;
50− rustPlatform = δ;
51− rustc = κ;
51+ rustPlatform = ζ;
52+ rustc = λ;
5253 stdenv = α;
5354 zlib = ε;
5455} ->
55−ν
56+ξ
test/golden/importless/R16B02-basho.txt+14−13
@@ -1,14 +1,15 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ.
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 = λ
2+( α.asl20 = β,
3+ α.fetchFromGitHub =
4+ {owner = String; repo = String; rev = String; sha256 = String;} -> γ,
5+ α.fetchurl = {sha256 = String; url = String;} -> δ,
6+ α.maintainers = ε,
7+ ζ.licenses = α,
8+ η.lib = ζ,
9+ θ.stdenv = η,
10+ ε.mdaiter = ι,
11+ κ.lib = α,
12+ λ.stdenv = κ
1213) =>
1314{ mkDerivation =
1415 { baseName = String;
@@ -18,14 +19,14 @@
1819 { description = String;
1920 homepage = String;
2021 knownVulnerabilities = [String];
21− license = η;
22+ license = β;
2223 longDescription = String;
23− maintainers = [λ];
24+ maintainers = [ι];
2425 platforms = [String];
2526 };
2627 postInstall = String;
2728 preConfigure = String;
28− src = β;
29+ src = γ;
2930 version = String;
3031 } ->
3132 μ;
test/golden/importless/_3bmd.txtdeleted−16
@@ -1,16 +0,0 @@
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.txtdeleted−16
@@ -1,16 +0,0 @@
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.txt+19−18
@@ -1,28 +1,29 @@
11∀ α β γ δ ε ζ η θ ι κ.
2−( α.pkgs = β,
3− γ.maintainers = δ,
4− γ.worldofpeace = ε,
5− β.buildPythonApplication =
6− { buildInputs = [ζ];
2+( α.buildPythonApplication =
3+ { buildInputs = [β];
74 dontUnpack = Bool;
85 format = String;
96 installPhase = String;
10− meta = {maintainers = [ε];};
7+ meta = {maintainers = [γ];};
118 name = String;
12− nativeBuildInputs = [η];
13− propagatedBuildInputs = [θ];
14− src = String;
9+ nativeBuildInputs = [δ];
10+ propagatedBuildInputs = [ε];
11+ src = Path;
1512 strictDeps = Bool;
1613 } ->
17− ι,
18− κ.ordered-set = θ,
19− κ.pygobject3 = θ
14+ ζ,
15+ α.pkgs = η,
16+ θ.maintainers = ι,
17+ θ.worldofpeace = γ,
18+ κ.pkgs = α,
19+ η.ordered-set = ε,
20+ η.pygobject3 = ε
2021) =>
21−{ accountsservice = ζ;
22− glib = ζ;
23− gobject-introspection = η;
24− lib = γ;
22+{ accountsservice = β;
23+ glib = β;
24+ gobject-introspection = δ;
25+ lib = θ;
2526 python3 = α;
26− wrapGAppsHook = η;
27+ wrapGAppsHook = δ;
2728} ->
28−ι
29+ζ
test/golden/importless/accountsservice.txt+24−27
@@ -1,32 +1,29 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
6− β.users = ζ,
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ.
2+( α.enable = β,
3+ α.mutableUsers = Bool,
74 γ.mkIf =
8− η ->
9− { environment = {pathsToLink = [String]; systemPackages = [θ];};
10− services = {dbus = {packages = [ι];};};
11− systemd = {packages = [κ]; services = {accounts-daemon = λ;};};
5+ β ->
6+ { environment = {pathsToLink = [String]; systemPackages = [δ];};
7+ services = {dbus = {packages = [ε];};};
8+ systemd = {packages = [ζ]; services = {accounts-daemon = η;};};
129 } ->
13− μ,
14− γ.mkOption = {default = Bool; description = String; type = ν;} -> ξ,
15− γ.optionalAttrs = Bool -> {environment = {NIXOS_USERS_PURE = String;};} -> ο,
10+ θ,
11+ γ.mkOption = {default = Bool; description = String; type = ι;} -> κ,
12+ γ.optionalAttrs = Bool -> {environment = {NIXOS_USERS_PURE = String;};} -> λ,
1613 γ.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 = ν
14+ {environment = {XDG_DATA_DIRS = String;}; wantedBy = [String];} -> λ -> η,
15+ γ.teams = μ,
16+ γ.types = ν,
17+ ξ.accountsservice = δ,
18+ ο.accounts-daemon = α,
19+ π.services = ο,
20+ ρ.users = α,
21+ μ.members = σ,
22+ τ.freedesktop = μ,
23+ ν.bool = ι
2724) =>
28−α ->
29−{ config = μ;
30− meta = {maintainers = υ;};
31− options = {services = {accounts-daemon = {enable = ξ;};};};
25+{config = α; lib = γ; pkgs = ξ;} ->
26+{ config = θ;
27+ meta = {maintainers = σ;};
28+ options = {services = {accounts-daemon = {enable = κ;};};};
3229}
test/golden/importless/acpilight.txt+11−13
@@ -1,14 +1,12 @@
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 = ι
1+∀ α β γ δ ε ζ η θ ι κ λ.
2+( α.acpilight = β,
3+ γ.acpilight = δ,
4+ γ.mkIf = ε -> {services = {udev = {packages = [δ];};};} -> ζ,
5+ γ.mkOption = {default = Bool; description = String; type = η;} -> θ,
6+ γ.types = ι,
7+ β.enable = ε,
8+ κ.hardware = α,
9+ ι.bool = η
1310) =>
14−α -> {config = θ; options = {hardware = {acpilight = {enable = κ;};};};}
11+{config = α; lib = γ; pkgs = λ;} ->
12+{config = ζ; options = {hardware = {acpilight = {enable = θ;};};};}
test/golden/importless/adb.txt+22−25
@@ -1,30 +1,27 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.programs = ε,
6− γ.lowPrio = ζ -> η,
7− γ.maintainers = θ,
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ.
2+( α.enable = β,
3+ γ.lowPrio = δ -> ε,
4+ γ.maintainers = ζ,
85 γ.mkIf =
9− ι ->
10− { environment = {systemPackages = [η];};
11− services = {udev = {packages = [κ];};};
6+ β ->
7+ { environment = {systemPackages = [ε];};
8+ services = {udev = {packages = [η];};};
129 users = {groups = {adbusers = {};};};
1310 } ->
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 = μ
11+ θ,
12+ γ.mkOption = {default = Bool; description = String; type = ι;} -> κ,
13+ γ.types = λ,
14+ μ.android-udev-rules = η,
15+ μ.platform-tools = δ,
16+ ν.adb = α,
17+ ξ.programs = ν,
18+ ζ.mic92 = ο,
19+ λ.bool = ι,
20+ π.androidPkgs_9_0 = μ,
21+ ρ.androidenv = π
2522) =>
26−α ->
27−{ config = λ;
28− meta = {maintainers = [σ];};
29− options = {programs = {adb = {enable = ν;};};};
23+{config = α; lib = γ; pkgs = μ;} ->
24+{ config = θ;
25+ meta = {maintainers = [ο];};
26+ options = {programs = {adb = {enable = κ;};};};
3027}
test/golden/importless/afterstep.txt+16−19
@@ -1,24 +1,21 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
6− γ.mkEnableOption = String -> ζ,
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.afterstep = β,
3+ γ.mkEnableOption = String -> δ,
74 γ.mkIf =
8− η ->
9− { environment = {systemPackages = [θ];};
10− services = {xserver = {windowManager = {session = ι;};};};
5+ ε ->
6+ { environment = {systemPackages = [ζ];};
7+ services = {xserver = {windowManager = {session = η;};};};
118 } ->
12− κ,
13− γ.singleton = {name = String; start = String;} -> ι,
14− δ.afterstep = θ,
15− ε.xserver = λ,
16− λ.windowManager = μ,
17− μ.afterstep = ν,
18− ν.enable = η
9+ θ,
10+ γ.singleton = {name = String; start = String;} -> η,
11+ ι.afterstep = ζ,
12+ β.enable = ε,
13+ κ.windowManager = α,
14+ λ.xserver = κ,
15+ μ.services = λ
1916) =>
20−α ->
21−{ config = κ;
17+{config = α; lib = γ; pkgs = ι;} ->
18+{ config = θ;
2219 options =
23− {services = {xserver = {windowManager = {afterstep = {enable = ζ;};};};};};
20+ {services = {xserver = {windowManager = {afterstep = {enable = δ;};};};};};
2421}
test/golden/importless/ais.txt+6−5
@@ -17,11 +17,12 @@
1717 version = String;
1818 } ->
1919 ι,
20− β.optionals = Bool -> [Null] -> [γ],
21− κ.licenses = λ,
22− κ.maintainers = μ,
23− κ.mog = ε,
24− κ.platforms = ν,
20+ α.optionals = Bool -> [Null] -> [γ],
21+ κ.lib = α,
22+ β.licenses = λ,
23+ β.maintainers = μ,
24+ β.mog = ε,
25+ β.platforms = ν,
2526 λ.gpl3Plus = δ,
2627 ν.linux = [ζ],
2728 ξ.darwin = [ζ]
test/golden/importless/alexandria.txt+4−4
@@ -1,11 +1,11 @@
1−∀ β γ.
2−(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
1+∀ β.
2+{fetchurl = {sha256 = String; url = String;} -> β;} ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. [α];
5+ deps = ∀ α. α;
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
9− src = γ;
9+ src = β;
1010 version = String;
1111}
test/golden/importless/aliases.txtnew file+214
@@ -0,0 +1,214 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β2 γ3 δ4 ε5 ζ6 η7 θ8 ι9 κ10
2+λ11 μ12 ν13 ξ14 ο15 π16 ρ17 σ18 τ19 υ20 φ21 χ22 ψ23 ω24.
3+( ( { BufOnly = α;
4+ CSApprox = β;
5+ Colour_Sampler_Pack = γ;
6+ Cosco = δ;
7+ Gist = ε;
8+ Gundo = ζ;
9+ Hoogle = η;
10+ Solarized = θ;
11+ Supertab = ι;
12+ Syntastic = κ;
13+ SyntaxRange = λ;
14+ Tabular = μ;
15+ Tagbar = ν;
16+ The_NERD_Commenter = ξ;
17+ The_NERD_tree = ο;
18+ UltiSnips = π;
19+ WebAPI = ρ;
20+ Yankring = σ;
21+ airline = τ;
22+ alternative = υ;
23+ bats = φ;
24+ calendar = χ;
25+ caw = ψ;
26+ coffee-script = ω;
27+ coffeeScript = α1;
28+ colors-solarized = β2;
29+ colorsamplerpack = γ3;
30+ command_T = δ4;
31+ commentary = ε5;
32+ committia = ζ6;
33+ concealedyank = η7;
34+ context-filetype = θ8;
35+ css_color_5056 = ι9;
36+ csv = κ10;
37+ ctrlp = λ11;
38+ cute-python = μ12;
39+ denite = ν13;
40+ easy-align = ξ14;
41+ easygit = ο15;
42+ easymotion = π16;
43+ echodoc = ρ17;
44+ eighties = σ18;
45+ extradite = τ19;
46+ fugitive = υ20;
47+ ghc-mod-vim = φ21;
48+ ghcmod = χ22;
49+ gitgutter = ψ23;
50+ goyo = ω24;
51+ gundo = 〚3 48〛;
52+ haskellConceal = 〚3 49〛;
53+ haskellConcealPlus = 〚3 50〛;
54+ haskellconceal = 〚3 51〛;
55+ hier = 〚3 52〛;
56+ hlint-refactor = 〚3 53〛;
57+ hoogle = 〚3 54〛;
58+ ipython = 〚3 55〛;
59+ latex-live-preview = 〚3 56〛;
60+ maktaba = 〚3 57〛;
61+ multiple-cursors = 〚3 58〛;
62+ necoGhc = 〚3 59〛;
63+ neocomplete = 〚3 60〛;
64+ neoinclude = 〚3 61〛;
65+ neomru = 〚3 62〛;
66+ neosnippet = 〚3 63〛;
67+ open-browser = 〚3 64〛;
68+ pathogen = 〚3 65〛;
69+ polyglot = 〚3 66〛;
70+ prettyprint = 〚3 67〛;
71+ quickrun = 〚3 68〛;
72+ rainbow_parentheses = 〚3 69〛;
73+ repeat = 〚3 70〛;
74+ rhubarb = 〚3 71〛;
75+ riv = 〚3 72〛;
76+ sensible = 〚3 73〛;
77+ signature = 〚3 74〛;
78+ sleuth = 〚3 75〛;
79+ snipmate = 〚3 76〛;
80+ solarized = 〚3 77〛;
81+ solidity = 〚3 78〛;
82+ sourcemap = 〚3 79〛;
83+ sourcemap.vim = 〚3 80〛;
84+ stylish-haskell = 〚3 81〛;
85+ stylishHaskell = 〚3 82〛;
86+ surround = 〚3 83〛;
87+ table-mode = 〚3 84〛;
88+ tabpagebuffer = 〚3 85〛;
89+ tabpagecd = 〚3 86〛;
90+ taglist = 〚3 87〛;
91+ thumbnail = 〚3 88〛;
92+ tlib = 〚3 89〛;
93+ tmux-navigator = 〚3 90〛;
94+ tmuxNavigator = 〚3 91〛;
95+ tslime = 〚3 92〛;
96+ unite = 〚3 93〛;
97+ vim-addon-vim2nix = 〚3 94〛;
98+ vimproc = 〚3 95〛;
99+ vimshell = 〚3 96〛;
100+ vinegar = 〚3 97〛;
101+ watchdogs = 〚3 98〛;
102+ wombat256 = 〚3 99〛;
103+ xterm-color-table = 〚3 100〛;
104+ yankring = 〚3 101〛;
105+ zeavim = 〚3 102〛;
106+ }
107+ ) //
108+ ( 〚1 103〛
109+ ) ~
110+ ( 〚1 104〛
111+ ),
112+ 〚1 105〛.mapAttrs = (〚4 106〛 -> 〚5 107〛 -> 〚5 107〛) -> 〚4 104〛 -> 〚4 108〛,
113+ 〚1 109〛.BufOnly-vim = α,
114+ 〚1 109〛.Colour-Sampler-Pack = γ,
115+ 〚1 109〛.YankRing-vim = σ,
116+ 〚1 109〛.a-vim = υ,
117+ 〚1 109〛.bats-vim = φ,
118+ 〚1 109〛.builtins = 〚2 110〛,
119+ 〚1 109〛.calendar-vim = χ,
120+ 〚1 109〛.caw-vim = ψ,
121+ 〚1 109〛.command-t = δ4,
122+ 〚1 109〛.committia-vim = ζ6,
123+ 〚1 109〛.concealedyank-vim = η7,
124+ 〚1 109〛.context_filetype-vim = θ8,
125+ 〚1 109〛.cosco-vim = δ,
126+ 〚1 109〛.csapprox = β,
127+ 〚1 109〛.csv-vim = κ10,
128+ 〚1 109〛.ctrlp-vim = λ11,
129+ 〚1 109〛.denite-nvim = ν13,
130+ 〚1 109〛.dontDistribute = 〚3 107〛 -> 〚3 107〛,
131+ 〚1 109〛.echodoc-vim = ρ17,
132+ 〚1 109〛.ghcmod-vim = φ21,
133+ 〚1 109〛.goyo-vim = ω24,
134+ 〚1 109〛.gundo-vim = ζ,
135+ 〚1 109〛.hlint-refactor-vim = 〚2 53〛,
136+ 〚1 109〛.isDerivation = 〚3 107〛 -> Bool,
137+ 〚1 109〛.neco-ghc = 〚2 59〛,
138+ 〚1 109〛.neocomplete-vim = 〚2 60〛,
139+ 〚1 109〛.neoinclude-vim = 〚2 61〛,
140+ 〚1 109〛.neomru-vim = 〚2 62〛,
141+ 〚1 109〛.neosnippet-vim = 〚2 63〛,
142+ 〚1 109〛.nerdcommenter = ξ,
143+ 〚1 109〛.nerdtree = ο,
144+ 〚1 109〛.open-browser-vim = 〚2 64〛,
145+ 〚1 109〛.rainbow_parentheses-vim = 〚2 69〛,
146+ 〚1 109〛.removeAttrs = 〚3 107〛 -> [String] -> 〚4 107〛,
147+ 〚1 109〛.riv-vim = 〚2 72〛,
148+ 〚1 109〛.sourcemap-vim = 〚2 79〛,
149+ 〚1 109〛.supertab = ι,
150+ 〚1 109〛.syntastic = κ,
151+ 〚1 109〛.tabpagebuffer-vim = 〚2 85〛,
152+ 〚1 109〛.tabular = μ,
153+ 〚1 109〛.tagbar = ν,
154+ 〚1 109〛.taglist-vim = 〚2 87〛,
155+ 〚1 109〛.throw = String -> 〚3 107〛,
156+ 〚1 109〛.thumbnail-vim = 〚2 88〛,
157+ 〚1 109〛.tlib_vim = 〚2 89〛,
158+ 〚1 109〛.tslime-vim = 〚2 92〛,
159+ 〚1 109〛.ultisnips = π,
160+ 〚1 109〛.unite-vim = 〚2 93〛,
161+ 〚1 109〛.vim-SyntaxRange = λ,
162+ 〚1 109〛.vim-airline = τ,
163+ 〚1 109〛.vim-coffee-script = ω,
164+ 〚1 109〛.vim-colors-solarized = θ,
165+ 〚1 109〛.vim-commentary = ε5,
166+ 〚1 109〛.vim-css-color = ι9,
167+ 〚1 109〛.vim-cute-python = μ12,
168+ 〚1 109〛.vim-easy-align = ξ14,
169+ 〚1 109〛.vim-easygit = ο15,
170+ 〚1 109〛.vim-easymotion = π16,
171+ 〚1 109〛.vim-eighties = σ18,
172+ 〚1 109〛.vim-extradite = τ19,
173+ 〚1 109〛.vim-fugitive = υ20,
174+ 〚1 109〛.vim-gist = ε,
175+ 〚1 109〛.vim-gitgutter = ψ23,
176+ 〚1 109〛.vim-haskellConcealPlus = 〚2 50〛,
177+ 〚1 109〛.vim-haskellconceal = 〚2 49〛,
178+ 〚1 109〛.vim-hier = 〚2 52〛,
179+ 〚1 109〛.vim-hoogle = η,
180+ 〚1 109〛.vim-ipython = 〚2 55〛,
181+ 〚1 109〛.vim-latex-live-preview = 〚2 56〛,
182+ 〚1 109〛.vim-maktaba = 〚2 57〛,
183+ 〚1 109〛.vim-multiple-cursors = 〚2 58〛,
184+ 〚1 109〛.vim-pathogen = 〚2 65〛,
185+ 〚1 109〛.vim-polyglot = 〚2 66〛,
186+ 〚1 109〛.vim-prettyprint = 〚2 67〛,
187+ 〚1 109〛.vim-quickrun = 〚2 68〛,
188+ 〚1 109〛.vim-repeat = 〚2 70〛,
189+ 〚1 109〛.vim-rhubarb = 〚2 71〛,
190+ 〚1 109〛.vim-sensible = 〚2 73〛,
191+ 〚1 109〛.vim-signature = 〚2 74〛,
192+ 〚1 109〛.vim-sleuth = 〚2 75〛,
193+ 〚1 109〛.vim-snipmate = 〚2 76〛,
194+ 〚1 109〛.vim-solidity = 〚2 78〛,
195+ 〚1 109〛.vim-stylish-haskell = 〚2 81〛,
196+ 〚1 109〛.vim-surround = 〚2 83〛,
197+ 〚1 109〛.vim-table-mode = 〚2 84〛,
198+ 〚1 109〛.vim-tabpagecd = 〚2 86〛,
199+ 〚1 109〛.vim-tmux-navigator = 〚2 90〛,
200+ 〚1 109〛.vim-vinegar = 〚2 97〛,
201+ 〚1 109〛.vim-watchdogs = 〚2 98〛,
202+ 〚1 109〛.vim2nix = 〚2 94〛,
203+ 〚1 109〛.vimproc-vim = 〚2 95〛,
204+ 〚1 109〛.vimshell-vim = 〚2 96〛,
205+ 〚1 109〛.webapi-vim = ρ,
206+ 〚1 109〛.wombat256-vim = 〚2 99〛,
207+ 〚1 109〛.xterm-color-table-vim = 〚2 100〛,
208+ 〚1 109〛.zeavim-vim = 〚2 102〛,
209+ 〚1 107〛.recurseForDerivations = Bool,
210+ 〚1 110〛.hasAttr = 〚3 106〛 -> 〚4 109〛 -> Bool,
211+ 〚1 111〛.fromJSON = 〚3 112〛 -> 〚3 113〛,
212+ 〚1 114〛.readFile = Path -> 〚3 112〛
213+) =>
214+〚2 105〛 -> 〚3 109〛 -> 〚3 108〛
test/golden/importless/alsamixer.app.txt+19−18
@@ -1,31 +1,32 @@
11∀ α β γ δ ε ζ η θ ι κ λ.
2−( α.lib = β,
2+( α.bstrik = β,
3+ α.gpl2 = γ,
34 α.mkDerivation =
4− { buildInputs = [γ];
5+ { buildInputs = [δ];
56 installPhase = String;
67 meta =
78 { description = String;
89 homepage = String;
9− license = δ;
10− maintainers = [ε];
10+ license = γ;
11+ maintainers = [β];
1112 };
1213 name = String;
13− nativeBuildInputs = [ζ];
14+ nativeBuildInputs = [ε];
1415 postUnpack = String;
15− src = η;
16+ src = ζ;
1617 } ->
17− θ,
18− β.licenses = ι,
19− ι.gpl2 = δ,
20− κ.maintainers = λ,
21− λ.bstrik = ε
18+ η,
19+ θ.licenses = α,
20+ ι.lib = θ,
21+ κ.maintainers = α,
22+ λ.lib = κ
2223) =>
23−{ alsaLib = γ;
24− fetchgit = {rev = String; sha256 = String; url = String;} -> η;
25− libX11 = γ;
26− libXext = γ;
27− libXpm = γ;
28− pkgconfig = ζ;
24+{ alsaLib = δ;
25+ fetchgit = {rev = String; sha256 = String; url = String;} -> ζ;
26+ libX11 = δ;
27+ libXext = δ;
28+ libXpm = δ;
29+ pkgconfig = ε;
2930 stdenv = α;
3031} ->
31−θ
32+η
test/golden/importless/alternatives-plugin.txt+17−16
@@ -1,29 +1,30 @@
11∀ α β γ δ ε ζ η θ ι κ λ.
2−( α.lib = β,
3− γ.buildPythonApplication =
2+( α.aszlig = β,
3+ α.mit = γ,
4+ δ.buildPythonApplication =
45 { checkPhase = String;
56 meta =
67 { description = String;
78 homepage = String;
8− license = δ;
9− maintainers = [ε];
9+ license = γ;
10+ maintainers = [β];
1011 };
11− nativeBuildInputs = [ζ];
12+ nativeBuildInputs = [ε];
1213 pname = String;
13− src = η;
14+ src = ζ;
1415 version = String;
1516 } ->
16− θ,
17− γ.nose = ζ,
18− β.licenses = ι,
19− ι.mit = δ,
20− κ.maintainers = λ,
21− λ.aszlig = ε
17+ η,
18+ δ.nose = ε,
19+ θ.licenses = α,
20+ ι.lib = θ,
21+ κ.maintainers = α,
22+ λ.lib = κ
2223) =>
23−{ beets = ζ;
24+{ beets = ε;
2425 fetchFromGitHub =
25− {owner = String; repo = String; rev = String; sha256 = String;} -> η;
26− pythonPackages = γ;
26+ {owner = String; repo = String; rev = String; sha256 = String;} -> ζ;
27+ pythonPackages = δ;
2728 stdenv = α;
2829} ->
29−θ
30+η
test/golden/importless/amazon-init.txt+2−2
@@ -1,5 +1,5 @@
1−∀ α β γ.
2−(α.config = β, α.pkgs = γ) => α ->
1+∀ α β.
2+{config = α; pkgs = β;} ->
33{ systemd =
44 { services =
55 { amazon-init =
test/golden/importless/amazon-options.txt+9−12
@@ -1,13 +1,10 @@
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 = θ
1+∀ α β γ δ ε ζ η θ ι κ λ.
2+( α.stateVersion = β,
3+ γ.mkOption = {default = δ; description = String; internal = Bool;} -> ε,
4+ γ.versionAtLeast = β -> String -> ζ,
5+ η.isAarch64 = δ,
6+ θ.system = α,
7+ ι.hostPlatform = η,
8+ κ.stdenv = ι
129) =>
13−α -> {options = {ec2 = {efi = η; hvm = μ;};};}
10+{config = α; lib = γ; pkgs = η;} -> {options = {ec2 = {efi = ε; hvm = λ;};};}
test/golden/importless/amd-microcode.txt+12−15
@@ -1,16 +1,13 @@
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 = ι
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.updateMicrocode = β,
3+ γ.mkIf = β -> {boot = {initrd = {prepend = δ;};};} -> ε,
4+ γ.mkOption = {default = Bool; description = String; type = ζ;} -> η,
5+ γ.mkOrder = Integer -> [String] -> δ,
6+ γ.types = θ,
7+ ι.amd = α,
8+ κ.cpu = ι,
9+ λ.hardware = κ,
10+ θ.bool = ζ
1411) =>
15−α ->
16−{config = θ; options = {hardware = {cpu = {amd = {updateMicrocode = κ;};};};};}
12+{config = α; lib = γ; pkgs = μ;} ->
13+{config = ε; options = {hardware = {cpu = {amd = {updateMicrocode = η;};};};};}
test/golden/importless/amdgpu-pro.txtdeleted−55
@@ -1,55 +0,0 @@
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.txt+7−9
@@ -1,10 +1,8 @@
1−∀ α β γ δ ε ζ η θ.
2−( α.config = β,
3− α.lib = γ,
4− β.services = δ,
5− γ.elem = String -> ε -> ζ,
6− γ.mkIf = ζ -> {boot = {blacklistedKernelModules = [String];};} -> η,
7− δ.xserver = θ,
8− θ.videoDrivers = ε
1+∀ α β γ δ ε ζ η.
2+( α.videoDrivers = β,
3+ γ.elem = String -> β -> δ,
4+ γ.mkIf = δ -> {boot = {blacklistedKernelModules = [String];};} -> ε,
5+ ζ.xserver = α,
6+ η.services = ζ
97) =>
10−α -> {config = η;}
8+{config = α; lib = γ;} -> {config = ε;}
test/golden/importless/anaphora.txtdeleted−12
@@ -1,12 +0,0 @@
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/apcupsd.txt+5−5
@@ -1,15 +1,15 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2−( α.services = β,
2+( α.apcupsd = β,
33 γ.mkOption = {default = String; description = String; type = δ;} -> ε,
44 γ.types = ζ,
5− β.prometheus = η,
6− η.exporters = θ,
7− θ.apcupsd = ι,
5+ η.exporters = α,
6+ θ.prometheus = η,
7+ ι.services = θ,
88 ζ.str = δ,
99 κ.enum = [String] -> λ
1010) =>
1111{config = α; lib = γ; options = μ; pkgs = ν;} ->
1212{ extraOpts = {apcupsdAddress = ε; apcupsdNetwork = ξ;};
13− port = Number;
13+ port = Integer;
1414 serviceOpts = {serviceConfig = {ExecStart = String;};};
1515}
test/golden/importless/apeclex.txt+1−1
@@ -1,7 +1,7 @@
11∀ α β γ δ ε ζ η.
22(α.lib = β, β.licenses = γ, γ.lgpl3 = δ, ε.gpl3 = δ) => { attemptoClex = ζ;
33 callPackage =
4− String ->
4+ Path ->
55 { description = String;
66 lexiconPath = String;
77 license = [δ];
test/golden/importless/apiextractor.txt+21−20
@@ -1,32 +1,33 @@
11∀ β γ δ ε ζ η θ ι κ λ μ ν ξ.
2−( β.lib = γ,
2+( β.all = γ,
3+ β.gpl2 = δ,
34 β.mkDerivation =
4− { buildInputs = [δ];
5+ { buildInputs = [ε];
56 enableParallelBuilding = Bool;
67 meta =
78 { description = String;
89 homepage = String;
9− license = ε;
10− maintainers = ∀ α. [α];
11− platforms = ζ;
10+ license = δ;
11+ maintainers = ∀ α. α;
12+ platforms = γ;
1213 };
1314 name = String;
14− src = η;
15+ src = ζ;
1516 } ->
16− θ,
17− ι.withPackages = (κ -> [λ]) -> δ,
18− κ.sphinx = λ,
19− γ.licenses = μ,
20− μ.gpl2 = ε,
21− ν.platforms = ξ,
22− ξ.all = ζ
17+ η,
18+ θ.withPackages = (ι -> [κ]) -> ε,
19+ ι.sphinx = κ,
20+ λ.licenses = β,
21+ μ.lib = λ,
22+ ν.platforms = β,
23+ ξ.lib = ν
2324) =>
24−{ cmake = δ;
25− fetchurl = {sha256 = String; url = String;} -> η;
26− libxml2 = δ;
27− libxslt = δ;
28− python2 = ι;
29− qt4 = δ;
25+{ cmake = ε;
26+ fetchurl = {sha256 = String; url = String;} -> ζ;
27+ libxml2 = ε;
28+ libxslt = ε;
29+ python2 = θ;
30+ qt4 = ε;
3031 stdenv = β;
3132} ->
32−θ
33+η
test/golden/importless/appdaemon.txt+54−56
@@ -1,71 +1,69 @@
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 =
1+∀ ω α1 β2 γ3 δ4 ε5 ζ6 η7 θ8 ι9 κ10 λ11.
2+( ω.dotlambda = α1,
3+ ω.licenses = β2,
4+ ω.maintainers = γ3,
5+ ω.peterhoeg = α1,
6+ δ4.override =
77 { 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
8+ ∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ.
9+ ( α.overridePythonAttrs = (β -> {src = γ; version = String;}) -> δ,
10+ β.override = ε,
11+ ζ.override = η,
12+ θ.override = ι,
13+ κ.override = λ,
14+ μ.aiohttp-jinja2 = α,
15+ ν.bcrypt = α,
16+ ξ.jinja2 = α,
17+ ο.yarl = α,
18+ π.src = β,
19+ ρ.src = ζ,
20+ σ.src = θ,
21+ τ.src = κ
2522 ) =>
26− β1 -> α -> {aiohttp-jinja2 = ο; bcrypt = ρ; jinja2 = τ; yarl = φ;};
23+ υ -> α -> {aiohttp-jinja2 = δ; bcrypt = φ; jinja2 = χ; yarl = ψ;};
2724 } ->
28− θ1,
29− θ1.pkgs = ι1,
30− ε1.mit = κ1,
31− ι1.buildPythonApplication =
25+ ε5,
26+ ε5.buildPythonApplication =
3227 { doCheck = Bool;
3328 meta =
3429 { description = String;
3530 homepage = String;
36− license = κ1;
37− maintainers = [δ1];
31+ license = ζ6;
32+ maintainers = [α1];
3833 };
3934 pname = String;
4035 postPatch = String;
41− propagatedBuildInputs = [λ1];
42− src = μ1;
36+ propagatedBuildInputs = [η7];
37+ src = θ8;
4338 version = String;
4439 } ->
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
40+ ι9,
41+ ε5.pkgs = κ10,
42+ β2.mit = ζ6,
43+ λ11.pkgs = ε5,
44+ κ10.aiohttp = η7,
45+ κ10.aiohttp-jinja2 = η7,
46+ κ10.astral = η7,
47+ κ10.bcrypt = η7,
48+ κ10.daemonize = η7,
49+ κ10.dateutil = η7,
50+ κ10.deepdiff = η7,
51+ κ10.feedparser = η7,
52+ κ10.iso8601 = η7,
53+ κ10.jinja2 = η7,
54+ κ10.paho-mqtt = η7,
55+ κ10.pid = η7,
56+ κ10.python-socketio = η7,
57+ κ10.pyyaml = η7,
58+ κ10.requests = η7,
59+ κ10.setuptools = η7,
60+ κ10.voluptuous = η7,
61+ κ10.websocket_client = η7,
62+ κ10.yarl = η7
6563) =>
6664{ fetchFromGitHub =
67− {owner = String; repo = String; rev = String; sha256 = String;} -> μ1;
68− lib = γ1;
69− python3 = η1;
65+ {owner = String; repo = String; rev = String; sha256 = String;} -> θ8;
66+ lib = ω;
67+ python3 = δ4;
7068} ->
71−ν1
69+ι9
test/golden/importless/appliance.txt+1−1
@@ -1,6 +1,6 @@
11∀ β.
22{ fetchzip =
3− { meta = {hydraPlatforms = ∀ α. [α];};
3+ { meta = {hydraPlatforms = ∀ α. α;};
44 name = String;
55 sha256 = String;
66 url = String;
test/golden/importless/appstream.txt+8−10
@@ -1,11 +1,9 @@
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 = η
1+∀ α β γ δ ε ζ η θ.
2+( α.enable = β,
3+ γ.mkIf = β -> {environment = {pathsToLink = [String];};} -> δ,
4+ γ.mkOption = {default = Bool; description = String; type = ε;} -> ζ,
5+ γ.types = η,
6+ θ.appstream = α,
7+ η.bool = ε
108) =>
11−α -> {config = ζ; options = {appstream = {enable = θ;};};}
9+{config = α; lib = γ;} -> {config = δ; options = {appstream = {enable = ζ;};};}
test/golden/importless/archive-version.txt+1−1
@@ -1,6 +1,6 @@
11∀ α β γ δ ε.
22( α.concatMapStrings = β -> γ -> String,
3− α.fixedWidthNumber = Number -> β,
3+ α.fixedWidthNumber = Integer -> β,
44 α.head = δ -> String,
55 α.splitVersion = ε -> δ,
66 α.tail = δ -> γ
test/golden/importless/array-utils.txt+4−4
@@ -1,11 +1,11 @@
1−∀ β γ.
2−(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
1+∀ β.
2+{fetchurl = {sha256 = String; url = String;} -> β;} ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. [α];
5+ deps = ∀ α. α;
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
9− src = γ;
9+ src = β;
1010 version = String;
1111}
test/golden/importless/array.txt+6−6
@@ -1,15 +1,15 @@
11∀ α β γ δ ε ζ η.
2−( α.licenses = β,
3− α.maintainers = γ,
4− β.bsd3 = δ,
5− γ.brainrape = ε
2+( α.brainrape = β,
3+ α.bsd3 = γ,
4+ δ.licenses = α,
5+ ε.maintainers = α
66) =>
77{ build-idris-package =
88 { meta =
99 { description = String;
1010 homepage = String;
11− license = δ;
12− maintainers = [ε];
11+ license = γ;
12+ maintainers = [β];
1313 };
1414 name = String;
1515 src = ζ;
test/golden/importless/asdf-finalizers.txt+4−4
@@ -1,11 +1,11 @@
1−∀ β γ.
2−(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
1+∀ β.
2+{fetchurl = {sha256 = String; url = String;} -> β;} ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. [α];
5+ deps = ∀ α. α;
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
9− src = γ;
9+ src = β;
1010 version = String;
1111}
test/golden/importless/asdf-package-system.txt+4−4
@@ -1,11 +1,11 @@
1−∀ β γ.
2−(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
1+∀ β.
2+{fetchurl = {sha256 = String; url = String;} -> β;} ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. [α];
5+ deps = ∀ α. α;
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
9− src = γ;
9+ src = β;
1010 version = String;
1111}
test/golden/importless/asdf-system-connections.txt+4−4
@@ -1,11 +1,11 @@
1−∀ β γ.
2−(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
1+∀ β.
2+{fetchurl = {sha256 = String; url = String;} -> β;} ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. [α];
5+ deps = ∀ α. α;
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
9− src = γ;
9+ src = β;
1010 version = String;
1111}
test/golden/importless/assets.txt+1−1
@@ -7,7 +7,7 @@
77 meta =
88 { description = String;
99 homepage = String;
10− hydraPlatforms = ∀ α. [α];
10+ hydraPlatforms = ∀ α. α;
1111 license = δ;
1212 maintainers = [ε];
1313 };
test/golden/importless/atd.txtnew file+53
@@ -0,0 +1,53 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω.
2+( α.atd = β,
3+ γ.builtins = δ,
4+ γ.map =
5+ ( ε ->
6+ { name = String;
7+ value =
8+ { group = String;
9+ owner = String;
10+ setgid = Bool;
11+ setuid = Bool;
12+ source = String;
13+ };
14+ }
15+ ) ->
16+ [String] -> ζ,
17+ γ.mkIf =
18+ η ->
19+ { environment = {systemPackages = [θ];};
20+ security = {pam = {services = {atd = {};};}; wrappers = ι;};
21+ systemd =
22+ { services =
23+ { atd =
24+ { description = String;
25+ path = [θ];
26+ preStart = String;
27+ script = String;
28+ serviceConfig = {Type = String;};
29+ wantedBy = [String];
30+ };
31+ };
32+ };
33+ users =
34+ { groups = {atd = {gid = κ;};};
35+ users = {atd = {description = String; home = String; uid = λ;};};
36+ };
37+ } ->
38+ μ,
39+ γ.mkOption = {default = Bool; description = String; type = ν;} -> ξ,
40+ γ.types = ο,
41+ π.at = θ,
42+ β.enable = η,
43+ ρ.services = α,
44+ σ.gids = α,
45+ τ.ids = σ,
46+ υ.uids = α,
47+ φ.ids = υ,
48+ δ.listToAttrs = ζ -> ι,
49+ ο.bool = ν,
50+ χ.bool = ψ
51+) =>
52+{config = α; lib = γ; pkgs = π;} ->
53+{config = μ; options = {services = {atd = {allowEveryone = ξ; enable = ω;};};};}
test/golden/importless/ati.txt+21−24
@@ -1,28 +1,25 @@
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 = [ι];};
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π.
2+( α.ati_drivers_x11 = β,
3+ α.videoDrivers = γ,
4+ δ.elem = String -> γ -> ε,
5+ δ.mkIf =
6+ ε ->
7+ { boot = {blacklistedKernelModules = [String]; extraModulePackages = [β];};
8+ environment = {etc = {ati = {source = String;};}; systemPackages = [β];};
129 hardware =
13− {opengl = {package = ι; package32 = κ; setLdLibraryPath = Bool;};};
10+ {opengl = {package = β; package32 = ζ; setLdLibraryPath = Bool;};};
1411 nixpkgs = {config = {xorg = {abiCompat = String;};};};
15− services = {xserver = {drivers = λ;};};
12+ services = {xserver = {drivers = η;};};
1613 } ->
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;} -> κ
14+ θ,
15+ δ.singleton = {display = Bool; modules = [β]; name = String;} -> η,
16+ ι.override = {kernel = Null; libsOnly = Bool;} -> ζ,
17+ κ.xserver = α,
18+ λ.services = κ,
19+ μ.kernelPackages = α,
20+ ν.boot = μ,
21+ ξ.ati_drivers_x11 = ι,
22+ ο.linuxPackages = ξ,
23+ π.pkgsi686Linux = ο
2724) =>
28−α -> {config = μ;}
25+{config = α; lib = δ; pkgs = ι;} -> {config = θ;}
test/golden/importless/atop.txt+14−15
@@ -1,20 +1,19 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2−( α.config = β,
3− α.lib = γ,
4− β.programs = δ,
5− γ.concatStrings = ε -> ζ,
6− γ.mapAttrsToList = (η -> θ -> String) -> ι -> ε,
7− γ.mkIf = Bool -> {environment = {etc = {atoprc = {text = ζ;};};};} -> κ,
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.atop = β,
3+ γ.concatStrings = δ -> ε,
4+ γ.mapAttrsToList = (ζ -> η -> String) -> θ -> δ,
5+ γ.mkIf = Bool -> {environment = {etc = {atoprc = {text = ε;};};};} -> ι,
86 γ.mkOption =
97 { default = {};
108 description = String;
11− example = {flags = String; interval = Number;};
12− type = λ;
9+ example = {flags = String; interval = Integer;};
10+ type = κ;
1311 } ->
14− μ,
15− γ.types = ν,
16− δ.atop = ξ,
17− ξ.settings = {},
18− ν.attrs = λ
12+ λ,
13+ γ.types = μ,
14+ β.settings = {},
15+ ν.programs = α,
16+ μ.attrs = κ
1917) =>
20−α -> {config = κ; options = {programs = {atop = {settings = μ;};};};}
18+{config = α; lib = γ;} ->
19+{config = ι; options = {programs = {atop = {settings = λ;};};};}
test/golden/importless/attica.txtdeleted−14
@@ -1,14 +0,0 @@
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.txt+6−8
@@ -1,9 +1,7 @@
1−∀ α β γ δ ε ζ η.
2−( α.?foo = β,
3− γ.config = δ,
4− γ.lib = ε,
5− ε.mkIf = Bool -> String -> ζ,
6− ε.mkOption = {default = Bool;} -> η,
7− δ.value = α
1+∀ α β γ δ.
2+( α.mkIf = Bool -> String -> β,
3+ α.mkOption = {default = Bool;} -> γ,
4+ δ.value = Bool
85) =>
9−γ -> {config = {value = {foo = ζ;};}; options = {conditionalWorks = η;};}
6+{config = δ; lib = α;} ->
7+{config = {value = {foo = β;};}; options = {conditionalWorks = γ;};}
test/golden/importless/auditd.txt+12−14
@@ -1,18 +1,15 @@
1−∀ α β γ δ ε ζ η θ ι κ λ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.security = ε,
6− γ.mkEnableOption = String -> ζ,
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.enable = β,
3+ γ.mkEnableOption = String -> δ,
74 γ.mkIf =
8− η ->
5+ β ->
96 { boot = {kernelParams = [String];};
10− environment = {systemPackages = [θ];};
7+ environment = {systemPackages = [ε];};
118 systemd =
129 { services =
1310 { auditd =
1411 { description = String;
15− path = [ι];
12+ path = [ζ];
1613 serviceConfig = {ExecStart = String; ExecStartPre = String;};
1714 unitConfig =
1815 { ConditionSecurity = [String];
@@ -24,9 +21,10 @@
2421 };
2522 };
2623 } ->
27− κ,
28− δ.audit = θ,
29− ε.auditd = λ,
30− λ.enable = η
24+ η,
25+ θ.audit = ε,
26+ ι.auditd = α,
27+ κ.security = ι
3128) =>
32−α -> {config = κ; options = {security = {auditd = {enable = ζ;};};};}
29+{config = α; lib = γ; pkgs = θ;} ->
30+{config = η; options = {security = {auditd = {enable = δ;};};};}
test/golden/importless/automake-1.11.x.txt+18−17
@@ -1,8 +1,9 @@
11∀ α β γ δ ε ζ η θ ι κ.
2−( α.lib = β,
2+( α.all = β,
3+ α.gpl2Plus = γ,
34 α.mkDerivation =
4− { buildInputs = [γ];
5− builder = String;
5+ { buildInputs = [δ];
6+ builder = Path;
67 doCheck = Bool;
78 dontPatchShebangs = Bool;
89 enableParallelBuilding = Bool;
@@ -10,25 +11,25 @@
1011 { branch = String;
1112 description = String;
1213 homepage = String;
13− license = δ;
14+ license = γ;
1415 longDescription = String;
15− platforms = ε;
16+ platforms = β;
1617 };
1718 name = String;
18− patches = [String];
19+ patches = [Path];
1920 preCheck = String;
20− setupHook = String;
21− src = ζ;
21+ setupHook = Path;
22+ src = ε;
2223 } ->
23− η,
24− β.licenses = θ,
25− θ.gpl2Plus = δ,
26− ι.platforms = κ,
27− κ.all = ε
24+ ζ,
25+ η.licenses = α,
26+ θ.lib = η,
27+ ι.platforms = α,
28+ κ.lib = ι
2829) =>
29−{ autoconf = γ;
30− fetchurl = {sha256 = String; url = String;} -> ζ;
31− perl = γ;
30+{ autoconf = δ;
31+ fetchurl = {sha256 = String; url = String;} -> ε;
32+ perl = δ;
3233 stdenv = α;
3334} ->
34−η
35+ζ
test/golden/importless/automake-1.15.x.txt+18−17
@@ -1,7 +1,8 @@
11∀ α β γ δ ε ζ η θ ι κ.
2−( α.lib = β,
2+( α.all = β,
3+ α.gpl2Plus = γ,
34 α.mkDerivation =
4− { buildInputs = [γ];
5+ { buildInputs = [δ];
56 doCheck = Bool;
67 doInstallCheck = Bool;
78 dontPatchShebangs = Bool;
@@ -10,26 +11,26 @@
1011 { branch = String;
1112 description = String;
1213 homepage = String;
13− license = δ;
14+ license = γ;
1415 longDescription = String;
15− platforms = ε;
16+ platforms = β;
1617 };
1718 name = String;
18− nativeBuildInputs = [γ];
19− patches = [String];
19+ nativeBuildInputs = [δ];
20+ patches = [Path];
2021 preCheck = String;
21− setupHook = String;
22− src = ζ;
22+ setupHook = Path;
23+ src = ε;
2324 } ->
24− η,
25− β.licenses = θ,
26− θ.gpl2Plus = δ,
27− ι.platforms = κ,
28− κ.all = ε
25+ ζ,
26+ η.licenses = α,
27+ θ.lib = η,
28+ ι.platforms = α,
29+ κ.lib = ι
2930) =>
30−{ autoconf = γ;
31− fetchurl = {sha256 = String; url = String;} -> ζ;
32− perl = γ;
31+{ autoconf = δ;
32+ fetchurl = {sha256 = String; url = String;} -> ε;
33+ perl = δ;
3334 stdenv = α;
3435} ->
35−η
36+ζ
test/golden/importless/automake-1.16.x.txt+17−16
@@ -1,7 +1,8 @@
11∀ α β γ δ ε ζ η θ ι κ.
2−( α.lib = β,
2+( α.all = β,
3+ α.gpl2Plus = γ,
34 α.mkDerivation =
4− { buildInputs = [γ];
5+ { buildInputs = [δ];
56 doCheck = Bool;
67 doInstallCheck = Bool;
78 dontPatchShebangs = Bool;
@@ -10,25 +11,25 @@
1011 { branch = String;
1112 description = String;
1213 homepage = String;
13− license = δ;
14+ license = γ;
1415 longDescription = String;
15− platforms = ε;
16+ platforms = β;
1617 };
1718 name = String;
18− nativeBuildInputs = [γ];
19+ nativeBuildInputs = [δ];
1920 preCheck = String;
20− setupHook = String;
21− src = ζ;
21+ setupHook = Path;
22+ src = ε;
2223 } ->
23− η,
24− β.licenses = θ,
25− θ.gpl2Plus = δ,
26− ι.platforms = κ,
27− κ.all = ε
24+ ζ,
25+ η.licenses = α,
26+ θ.lib = η,
27+ ι.platforms = α,
28+ κ.lib = ι
2829) =>
29−{ autoconf = γ;
30− fetchurl = {sha256 = String; url = String;} -> ζ;
31− perl = γ;
30+{ autoconf = δ;
31+ fetchurl = {sha256 = String; url = String;} -> ε;
32+ perl = δ;
3233 stdenv = α;
3334} ->
34−η
35+ζ
test/golden/importless/autorandr.txt+21−24
@@ -1,15 +1,12 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
6− γ.gnidorah = ζ,
7− γ.maintainers = η,
8− γ.mkEnableOption = String -> θ,
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο.
2+( α.autorandr = β,
3+ γ.gnidorah = δ,
4+ γ.maintainers = ε,
5+ γ.mkEnableOption = String -> ζ,
96 γ.mkIf =
10− ι ->
11− { environment = {systemPackages = [κ];};
12− services = {udev = {packages = [λ];};};
7+ η ->
8+ { environment = {systemPackages = [θ];};
9+ services = {udev = {packages = [ι];};};
1310 systemd =
1411 { services =
1512 { autorandr =
@@ -18,8 +15,8 @@
1815 serviceConfig =
1916 { ExecStart = String;
2017 RemainAfterExit = Bool;
21− StartLimitBurst = Number;
22− StartLimitInterval = Number;
18+ StartLimitBurst = Integer;
19+ StartLimitInterval = Integer;
2320 Type = String;
2421 };
2522 wantedBy = [String];
@@ -27,16 +24,16 @@
2724 };
2825 };
2926 } ->
30− μ,
31− γ.mkOption = {default = String; description = String; type = ν;} -> ξ,
32− γ.types = ο,
33− δ.autorandr = κ,
34− ε.autorandr = π,
35− π.enable = ι,
36− ο.str = ν
27+ κ,
28+ γ.mkOption = {default = String; description = String; type = λ;} -> μ,
29+ γ.types = ν,
30+ ξ.autorandr = θ,
31+ β.enable = η,
32+ ο.services = α,
33+ ν.str = λ
3734) =>
38−α ->
39−{ config = μ;
40− meta = {maintainers = [ζ];};
41− options = {services = {autorandr = {defaultTarget = ξ; enable = θ;};};};
35+{config = α; lib = γ; pkgs = ξ;} ->
36+{ config = κ;
37+ meta = {maintainers = [δ];};
38+ options = {services = {autorandr = {defaultTarget = μ; enable = ζ;};};};
4239}
test/golden/importless/autostart.txt+15−17
@@ -1,19 +1,17 @@
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 = η
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.enable = β,
3+ γ.mkIf = β -> {environment = {pathsToLink = [String];};} -> δ,
4+ γ.mkOption = {default = Bool; description = String; type = ε;} -> ζ,
5+ γ.teams = η,
6+ γ.types = θ,
7+ ι.autostart = α,
8+ κ.xdg = ι,
9+ η.members = λ,
10+ μ.freedesktop = η,
11+ θ.bool = ε
1412) =>
15−α ->
16−{ config = ζ;
17− meta = {maintainers = ν;};
18− options = {xdg = {autostart = {enable = θ;};};};
13+{config = α; lib = γ;} ->
14+{ config = δ;
15+ meta = {maintainers = λ;};
16+ options = {xdg = {autostart = {enable = ζ;};};};
1917}
test/golden/importless/aws-s3-exporter.txt+1−1
@@ -7,7 +7,7 @@
77) =>
88{ buildGoPackage =
99 { doCheck = Bool;
10− goDeps = String;
10+ goDeps = Path;
1111 goPackagePath = String;
1212 meta =
1313 { description = String;
test/golden/importless/azure-agent.txt+52−54
@@ -1,33 +1,30 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.networking = ε,
6− β.virtualisation = ζ,
7− γ.coreutils = η,
8− γ.findutils = η,
9− γ.gawk = η,
10− γ.gnugrep = η,
11− γ.makeWrapper = θ,
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β2.
2+( α.agent = β,
3+ α.enable = Bool,
4+ γ.coreutils = δ,
5+ γ.findutils = δ,
6+ γ.gawk = δ,
7+ γ.gnugrep = δ,
8+ γ.makeWrapper = ε,
129 γ.mkIf =
13− ι ->
10+ ζ ->
1411 { assertions = [{assertion = Bool; message = String;}];
1512 boot = {initrd = {kernelModules = [String];};};
1613 environment = {etc = {waagent.conf = {text = String;};};};
1714 networking =
1815 { dhcpcd = {persistent = Bool;};
19− firewall = {allowedUDPPorts = [Number];};
16+ firewall = {allowedUDPPorts = [Integer];};
2017 };
2118 services =
2219 { logrotate = {config = String; enable = Bool;};
23− udev = {packages = [κ];};
20+ udev = {packages = [η];};
2421 };
2522 systemd =
2623 { services =
2724 { consume-hypervisor-entropy =
2825 { before = [String];
2926 description = String;
30− path = [λ];
27+ path = [θ];
3128 script = String;
3229 serviceConfig =
3330 { RemainAfterExit = Bool;
@@ -40,7 +37,7 @@
4037 waagent =
4138 { after = [String];
4239 description = String;
43− path = [μ];
40+ path = [ι];
4441 serviceConfig = {ExecStart = String; Type = String;};
4542 unitConfig = {ConditionPathExists = String;};
4643 wantedBy = [String];
@@ -50,54 +47,55 @@
5047 targets = {provisioned = {description = String;};};
5148 };
5249 } ->
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 = [θ];
50+ κ,
51+ γ.mkOption = {default = Bool; description = String;} -> λ,
52+ γ.nettools = δ,
53+ γ.openssh = δ,
54+ γ.openssl = δ,
55+ γ.parted = δ,
56+ γ.procps = δ,
57+ γ.python = ε,
58+ γ.pythonPackages = μ,
59+ γ.shadow = δ,
60+ γ.stdenv = ν,
61+ γ.utillinux = δ,
62+ ξ.bash = ι,
63+ ξ.coreutils = θ,
64+ ξ.e2fsprogs = ι,
65+ ξ.fetchFromGitHub =
66+ {owner = String; repo = String; rev = String; sha256 = String;} -> ο,
67+ ξ.isi686 = Bool,
68+ ξ.isx86_64 = Bool,
69+ ξ.writeScript = String -> String -> π,
70+ β.enable = ζ,
71+ ρ.azure = α,
72+ σ.virtualisation = ρ,
73+ τ.networkmanager = α,
74+ υ.networking = τ,
75+ ν.mkDerivation =
76+ { buildInputs = [ε];
7477 buildPhase = Bool;
7578 configurePhase = Bool;
7679 installPhase = String;
7780 name = String;
78− patches = [String];
79− pythonPath = [υ];
80− runtimeDeps = [η];
81− src = ρ;
81+ patches = [Path];
82+ pythonPath = [φ];
83+ runtimeDeps = [δ];
84+ src = ο;
8285 } ->
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
86+ η,
87+ μ.pyasn1 = φ,
88+ χ.wrapPython = ε,
89+ ψ.stdenv = ξ,
90+ ω.stdenv = ξ
9391) =>
94−α ->
95−{ config = ν;
92+{config = α; lib = γ; pkgs = ξ;} ->
93+{ config = κ;
9694 options =
9795 { virtualisation =
9896 { azure =
9997 { agent =
100− {enable = ξ; mountResourceDisk = β1; verboseLogging = γ1;};
98+ {enable = λ; mountResourceDisk = α1; verboseLogging = β2;};
10199 };
102100 };
103101 };
test/golden/importless/b43.txt+17−17
@@ -1,19 +1,19 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ.
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 = ν
2+( α.enableB43Firmware = β,
3+ α.version = γ,
4+ δ.builtins = ε,
5+ δ.lessThan = Integer -> ζ -> η,
6+ δ.mkIf = β -> {assertions = θ; hardware = {firmware = [ι];};} -> κ,
7+ δ.mkOption = {default = Bool; description = String; type = λ;} -> μ,
8+ δ.singleton = {assertion = η; message = String;} -> θ,
9+ δ.types = ν,
10+ ξ.b43Firmware_5_1_138 = ι,
11+ ο.kernel = α,
12+ π.kernelPackages = ο,
13+ ρ.boot = π,
14+ σ.networking = α,
15+ ε.compareVersions = γ -> String -> ζ,
16+ ν.bool = λ
1817) =>
19−α -> {config = μ; options = {networking = {enableB43Firmware = ξ;};};}
18+{config = α; lib = δ; pkgs = ξ;} ->
19+{config = κ; options = {networking = {enableB43Firmware = μ;};};}
test/golden/importless/babel-streams.txtdeleted−17
@@ -1,17 +0,0 @@
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.txtdeleted−15
@@ -1,15 +0,0 @@
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.txt+3−3
@@ -1,9 +1,9 @@
11∀ α β γ δ ε ζ η θ ι.
2−( α.licenses = β,
2+( α.gpl3Plus = β,
33 α.maintainers = γ,
44 δ.gtk3 = ε,
55 δ.poppler_gi = ε,
6− β.gpl3Plus = ζ,
6+ ζ.licenses = α,
77 γ.aszlig = η,
88 γ.symphorien = η
99) =>
@@ -12,7 +12,7 @@
1212 meta =
1313 { description = String;
1414 homepage = String;
15− license = ζ;
15+ license = β;
1616 maintainers = [η];
1717 };
1818 patchPhase = String;
test/golden/importless/baloo-widgets.txt+2−2
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ η θ.
2−(α.licenses = β, α.maintainers = γ, β.lgpl21 = δ, γ.ttuegel = ε) => { baloo = ζ;
2+(α.lgpl21 = β, α.ttuegel = γ, δ.licenses = α, ε.maintainers = α) => { baloo = ζ;
33 extra-cmake-modules = η;
44 kconfig = ζ;
55 kdelibs4support = ζ;
@@ -10,7 +10,7 @@
1010 kservice = ζ;
1111 lib = α;
1212 mkDerivation =
13− { meta = {license = [δ]; maintainers = [ε];};
13+ { meta = {license = [β]; maintainers = [γ];};
1414 name = String;
1515 nativeBuildInputs = [η];
1616 outputs = [String];
test/golden/importless/baloo.txt+2−2
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ η.
2−(α.maintainers = β, β.ttuegel = γ) => { extra-cmake-modules = δ;
2+(α.ttuegel = β, γ.maintainers = α) => { extra-cmake-modules = δ;
33 kauth = ε;
44 kconfig = ε;
55 kcoreaddons = ζ;
@@ -13,7 +13,7 @@
1313 lmdb = ε;
1414 mkDerivation =
1515 { buildInputs = [ε];
16− meta = {maintainers = [γ];};
16+ meta = {maintainers = [β];};
1717 name = String;
1818 nativeBuildInputs = [δ];
1919 propagatedBuildInputs = [ζ];
test/golden/importless/bamf.txt+14−17
@@ -1,20 +1,17 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
6− γ.maintainers = ζ,
7− γ.mkEnableOption = String -> η,
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.enable = β,
3+ γ.maintainers = δ,
4+ γ.mkEnableOption = String -> ε,
85 γ.mkIf =
9− θ ->
10− {services = {dbus = {packages = [ι];};}; systemd = {packages = [κ];};} -> λ,
11− γ.worldofpeace = μ,
12− δ.bamf = ι,
13− ε.bamf = ν,
14− ν.enable = θ
6+ β ->
7+ {services = {dbus = {packages = [ζ];};}; systemd = {packages = [η];};} -> θ,
8+ γ.worldofpeace = ι,
9+ κ.bamf = ζ,
10+ λ.bamf = α,
11+ μ.services = λ
1512) =>
16−α ->
17−{ config = λ;
18− meta = {maintainers = [μ];};
19− options = {services = {bamf = {enable = η;};};};
13+{config = α; lib = γ; pkgs = κ;} ->
14+{ config = θ;
15+ meta = {maintainers = [ι];};
16+ options = {services = {bamf = {enable = ε;};};};
2017}
test/golden/importless/bandwhich.txt+17−20
@@ -1,26 +1,23 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.programs = ε,
6− γ.bandwhich = ζ,
7− γ.filalex77 = η,
8− γ.maintainers = θ,
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.bandwhich = β,
3+ γ.bandwhich = δ,
4+ γ.filalex77 = ε,
5+ γ.maintainers = ζ,
96 γ.mkIf =
10− ι ->
11− { environment = {systemPackages = [ζ];};
7+ η ->
8+ { environment = {systemPackages = [δ];};
129 security =
1310 {wrappers = {bandwhich = {capabilities = String; source = String;};};};
1411 } ->
15− κ,
16− γ.mkOption = {default = Bool; description = String; type = λ;} -> μ,
17− γ.types = ν,
18− ε.bandwhich = ξ,
19− ξ.enable = ι,
20− ν.bool = λ
12+ θ,
13+ γ.mkOption = {default = Bool; description = String; type = ι;} -> κ,
14+ γ.types = λ,
15+ β.enable = η,
16+ μ.programs = α,
17+ λ.bool = ι
2118) =>
22−α ->
23−{ config = κ;
24− meta = {maintainers = [η];};
25− options = {programs = {bandwhich = {enable = μ;};};};
19+{config = α; lib = γ; pkgs = ν;} ->
20+{ config = θ;
21+ meta = {maintainers = [ε];};
22+ options = {programs = {bandwhich = {enable = κ;};};};
2623}
test/golden/importless/base.txt+36−38
@@ -1,41 +1,39 @@
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 = ε
1+∀ α β γ δ ε.
2+( α.mkDefault = String -> β,
3+ γ.bin = δ,
4+ γ.ccrypt = δ,
5+ γ.cryptsetup = δ,
6+ γ.ddrescue = δ,
7+ γ.dosfstools = δ,
8+ γ.efibootmgr = δ,
9+ γ.efivar = δ,
10+ γ.f2fs-tools = δ,
11+ γ.fuse = δ,
12+ γ.fuse3 = δ,
13+ γ.gptfdisk = δ,
14+ γ.hdparm = δ,
15+ γ.jfsutils = δ,
16+ γ.mkpasswd = δ,
17+ γ.ms-sys = δ,
18+ γ.ntfsprogs = δ,
19+ γ.parted = δ,
20+ γ.pciutils = δ,
21+ γ.rsync = δ,
22+ γ.screen = δ,
23+ γ.sdparm = δ,
24+ γ.smartmontools = δ,
25+ γ.socat = δ,
26+ γ.sshfs-fuse = δ,
27+ γ.testdisk = δ,
28+ γ.unzip = δ,
29+ γ.usbutils = δ,
30+ γ.vim = δ,
31+ γ.w3m-nographics = δ,
32+ γ.zip = δ,
33+ ε.xfsprogs = γ
3634) =>
37−α ->
35+{lib = α; pkgs = γ;} ->
3836{ boot = {supportedFilesystems = [String];};
39− environment = {systemPackages = [ε];};
40− networking = {hostId = δ;};
37+ environment = {systemPackages = [δ];};
38+ networking = {hostId = β;};
4139}
test/golden/importless/bash-my-aws.txt+11−13
@@ -1,17 +1,15 @@
1−∀ α β γ δ ε ζ η θ ι κ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.programs = ε,
6− γ.bash-my-aws = ζ,
7− γ.mkEnableOption = String -> η,
1+∀ α β γ δ ε ζ η θ ι.
2+( α.programs = β,
3+ γ.bash-my-aws = δ,
4+ γ.mkEnableOption = String -> ε,
85 γ.mkIf =
9− θ ->
10− { environment = {systemPackages = [ζ];};
6+ ζ ->
7+ { environment = {systemPackages = [δ];};
118 programs = {bash = {interactiveShellInit = String;};};
129 } ->
13− ι,
14− ε.bash-my-aws = κ,
15− κ.enable = θ
10+ η,
11+ β.bash-my-aws = θ,
12+ θ.enable = ζ
1613) =>
17−α -> {config = ι; options = {programs = {bash-my-aws = {enable = η;};};};}
14+{config = α; lib = γ; pkgs = ι;} ->
15+{config = η; options = {programs = {bash-my-aws = {enable = ε;};};};}
test/golden/importless/bcache.txt+4−4
@@ -1,6 +1,6 @@
1−∀ α β γ δ.
2−(α.pkgs = β, β.bcache-tools = γ) => α ->
1+∀ α β γ.
2+(α.bcache-tools = β) => {pkgs = α;} ->
33{ boot = {initrd = {extraUdevRulesCommands = String;};};
4− environment = {systemPackages = [γ];};
5− services = {udev = {packages = [δ];};};
4+ environment = {systemPackages = [β];};
5+ services = {udev = {packages = [γ];};};
66}
test/golden/importless/bcachefs.txt+21−25
@@ -1,26 +1,22 @@
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
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω.
2+( α.fileSystems = β,
3+ α.supportedFilesystems = γ,
4+ δ.concatStrings = ε -> String,
5+ δ.elem = String -> γ -> ζ,
6+ δ.filterAttrs = (η -> θ -> Bool) -> β -> {},
7+ δ.head = ι -> κ,
8+ δ.mapAttrsToList = (λ -> μ -> String) -> {} -> ε,
9+ δ.mkIf = ζ -> ν -> ξ,
10+ δ.mkMerge =
11+ [{boot = {kernelPackages = ο;}; system = {fsPackages = [π];};}] -> ν,
12+ δ.splitString = String -> ρ -> ι,
13+ σ.bcachefs-tools = π,
14+ σ.linuxPackages_testing_bcachefs = ο,
15+ τ.fsNeededForBoot = θ -> Bool,
16+ θ.fsType = υ,
17+ μ.device = φ,
18+ χ.boot = α,
19+ ψ.initrd = α,
20+ ω.boot = ψ
2521) =>
26−α -> {config = υ;}
22+{config = α; lib = δ; pkgs = σ; utils = τ;} -> {config = ξ;}
test/golden/importless/bcc-git.txt+1−1
@@ -11,7 +11,7 @@
1111 maintainers = [δ];
1212 };
1313 name = String;
14− patches = [String];
14+ patches = [Path];
1515 src = ε;
1616 } ->
1717 ζ,
test/golden/importless/bcc.txt+17−18
@@ -1,20 +1,19 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2−( α.config = β,
3− α.lib = γ,
4− β.boot = δ,
5− β.programs = ε,
6− γ.mkEnableOption = String -> ζ,
7− γ.mkIf =
8− η ->
9− { boot = {extraModulePackages = [θ];};
10− environment = {systemPackages = [ι];};
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.bcc = β,
3+ α.enable = γ,
4+ δ.mkEnableOption = String -> ε,
5+ δ.mkIf =
6+ γ ->
7+ { boot = {extraModulePackages = [β];};
8+ environment = {systemPackages = [ζ];};
119 } ->
12− κ,
13− ε.bcc = λ,
14− λ.enable = η,
15− δ.kernelPackages = μ,
16− μ.bcc = θ,
17− ν.kernelPackages = ξ,
18− ξ.bcc = ι
10+ η,
11+ θ.bcc = α,
12+ ι.programs = θ,
13+ κ.kernelPackages = α,
14+ λ.boot = κ,
15+ μ.kernelPackages = α,
16+ ν.boot = μ
1917) =>
20−α -> {config = κ; options = {programs = {bcc = {enable = ζ;};};};}
18+{config = α; lib = δ;} ->
19+{config = η; options = {programs = {bcc = {enable = ε;};};};}
test/golden/importless/bean-add.txt+3−3
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ η θ.
2−( α.lib = β,
2+( α.maintainers = β,
33 α.mkDerivation =
44 { installPhase = String;
55 meta = {description = String; homepage = String; maintainers = [γ];};
@@ -9,8 +9,8 @@
99 } ->
1010 ζ,
1111 η.python = δ,
12− β.maintainers = θ,
13− θ.matthiasbeyer = γ
12+ β.matthiasbeyer = γ,
13+ θ.lib = α
1414) =>
1515{ fetchFromGitHub =
1616 {owner = String; repo = String; rev = String; sha256 = String;} -> ε;
test/golden/importless/berry.txt+16−19
@@ -1,24 +1,21 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
6− γ.mkEnableOption = String -> ζ,
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.berry = β,
3+ γ.mkEnableOption = String -> δ,
74 γ.mkIf =
8− η ->
9− { environment = {systemPackages = [θ];};
10− services = {xserver = {windowManager = {session = ι;};};};
5+ ε ->
6+ { environment = {systemPackages = [ζ];};
7+ services = {xserver = {windowManager = {session = η;};};};
118 } ->
12− κ,
13− γ.singleton = {name = String; start = String;} -> ι,
14− δ.berry = θ,
15− ε.xserver = λ,
16− λ.windowManager = μ,
17− μ.berry = ν,
18− ν.enable = η
9+ θ,
10+ γ.singleton = {name = String; start = String;} -> η,
11+ ι.berry = ζ,
12+ β.enable = ε,
13+ κ.windowManager = α,
14+ λ.xserver = κ,
15+ μ.services = λ
1916) =>
20−α ->
21−{ config = κ;
17+{config = α; lib = γ; pkgs = ι;} ->
18+{ config = θ;
2219 options =
23− {services = {xserver = {windowManager = {berry = {enable = ζ;};};};};};
20+ {services = {xserver = {windowManager = {berry = {enable = δ;};};};};};
2421}
test/golden/importless/beta.txt+26−24
@@ -1,42 +1,44 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2−( α.lib = β,
2+( α.gpl2 = β,
3+ α.linux = γ,
34 α.mkDerivation =
45 { NIX_LDFLAGS = String;
5− buildInputs = [γ];
6+ buildInputs = [δ];
67 makeFlags = [String];
78 meta =
89 { description = String;
910 downloadPage = String;
10− license = δ;
11+ license = β;
1112 maintainers = [ε];
12− platforms = ζ;
13+ platforms = γ;
1314 version = String;
1415 };
15− nativeBuildInputs = [η];
16+ nativeBuildInputs = [ζ];
1617 pname = String;
1718 preConfigure = String;
1819 setSourceRoot = String;
19− src = θ;
20+ src = η;
2021 version = String;
2122 } ->
22− ι,
23− β.licenses = κ,
24− κ.gpl2 = δ,
25− λ.maintainers = μ,
26− μ.raskin = ε,
27− ν.platforms = ξ,
28− ξ.linux = ζ
23+ θ,
24+ α.raskin = ε,
25+ ι.licenses = α,
26+ κ.lib = ι,
27+ λ.maintainers = α,
28+ μ.lib = λ,
29+ ν.platforms = α,
30+ ξ.lib = ν
2931) =>
30−{ autoconf = η;
31− automake = η;
32− fetchgit = {rev = String; sha256 = String; url = String;} -> θ;
33− libGL = γ;
34− libGLU = γ;
35− libX11 = γ;
36− perl = γ;
37− python2 = γ;
32+{ autoconf = ζ;
33+ automake = ζ;
34+ fetchgit = {rev = String; sha256 = String; url = String;} -> η;
35+ libGL = δ;
36+ libGLU = δ;
37+ libX11 = δ;
38+ perl = δ;
39+ python2 = δ;
3840 stdenv = α;
39− wxGTK = γ;
40− zlib = γ;
41+ wxGTK = δ;
42+ zlib = δ;
4143} ->
42−ι
44+θ
test/golden/importless/bi.txt+6−6
@@ -1,8 +1,8 @@
11∀ α β γ δ ε ζ η θ.
2−( α.licenses = β,
3− α.maintainers = γ,
4− β.bsd3 = δ,
5− γ.brainrape = ε
2+( α.brainrape = β,
3+ α.bsd3 = γ,
4+ δ.licenses = α,
5+ ε.maintainers = α
66) =>
77{ build-idris-package =
88 { idrisDeps = [ζ];
@@ -10,8 +10,8 @@
1010 meta =
1111 { description = String;
1212 homepage = String;
13− license = δ;
14− maintainers = [ε];
13+ license = γ;
14+ maintainers = [β];
1515 };
1616 name = String;
1717 src = η;
test/golden/importless/bifunctors.txt+2−2
@@ -1,6 +1,6 @@
11∀ α β γ δ ε.
2−(α.maintainers = β, β.brainrape = γ) => { build-idris-package =
3− { meta = {description = String; homepage = String; maintainers = [γ];};
2+(α.brainrape = β, γ.maintainers = α) => { build-idris-package =
3+ { meta = {description = String; homepage = String; maintainers = [β];};
44 name = String;
55 src = δ;
66 version = String;
test/golden/importless/binary-tarball.txtdeleted−25
@@ -1,25 +0,0 @@
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.txt+17−15
@@ -1,34 +1,36 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2−( α.lib = β,
2+( α.asl20 = β,
3+ α.linux = γ,
34 α.mkDerivation =
4− { buildInputs = [γ];
5+ { buildInputs = [δ];
56 installPhase = String;
67 meta =
78 { description = String;
89 downloadPage = String;
910 downloadURLRegexp = String;
1011 homepage = String;
11− license = δ;
12+ license = β;
1213 maintainers = [ε];
13− platforms = ζ;
14+ platforms = γ;
1415 updateWalker = Bool;
1516 version = String;
1617 };
1718 name = String;
18− src = η;
19+ src = ζ;
1920 version = String;
2021 } ->
21− θ,
22− β.licenses = ι,
23− ι.asl20 = δ,
24− κ.maintainers = λ,
25− λ.raskin = ε,
26− μ.platforms = ν,
27− ν.linux = ζ
22+ η,
23+ α.raskin = ε,
24+ θ.licenses = α,
25+ ι.lib = θ,
26+ κ.maintainers = α,
27+ λ.lib = κ,
28+ μ.platforms = α,
29+ ν.lib = μ
2830) =>
29−{ fetchurl = {sha256 = String; url = String;} -> η;
31+{ fetchurl = {sha256 = String; url = String;} -> ζ;
3032 java = ξ;
31− makeWrapper = γ;
33+ makeWrapper = δ;
3234 stdenv = α;
3335} ->
34−θ
36+η
test/golden/importless/blackbird.txtdeleted−11
@@ -1,11 +0,0 @@
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/bladeRF.txt+13−15
@@ -1,19 +1,17 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.hardware = ε,
1+∀ α β γ δ ε ζ η θ ι κ λ.
2+( α.bladeRF = β,
63 γ.mkIf =
7− ζ ->
8− { services = {udev = {packages = [η];};};
4+ δ ->
5+ { services = {udev = {packages = [ε];};};
96 users = {groups = {bladerf = {};};};
107 } ->
11− θ,
12− γ.mkOption = {default = Bool; description = String; type = ι;} -> κ,
13− γ.types = λ,
14− δ.libbladeRF = η,
15− ε.bladeRF = μ,
16− μ.enable = ζ,
17− λ.bool = ι
8+ ζ,
9+ γ.mkOption = {default = Bool; description = String; type = η;} -> θ,
10+ γ.types = ι,
11+ κ.libbladeRF = ε,
12+ β.enable = δ,
13+ λ.hardware = α,
14+ ι.bool = η
1815) =>
19−α -> {config = θ; options = {hardware = {bladeRF = {enable = κ;};};};}
16+{config = α; lib = γ; pkgs = κ;} ->
17+{config = ζ; options = {hardware = {bladeRF = {enable = θ;};};};}
test/golden/importless/blivet.txt+7−6
@@ -1,10 +1,11 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν.
22( α.lib = β,
3− β.optional = Bool -> Null -> [γ],
4− δ.gpl2Plus = ε,
5− δ.lgpl21Plus = ε,
6− δ.licenses = ζ,
7− δ.platforms = η,
3+ α.optional = Bool -> Null -> [γ],
4+ δ.lib = α,
5+ β.gpl2Plus = ε,
6+ β.lgpl21Plus = ε,
7+ β.licenses = ζ,
8+ β.platforms = η,
89 η.linux = θ
910) =>
1011{ buildPythonApplication =
@@ -15,7 +16,7 @@
1516 license = [ε];
1617 platforms = θ;
1718 };
18− patches = [String];
19+ patches = [Path];
1920 pname = String;
2021 postPatch = String;
2122 propagatedBuildInputs = [γ];
test/golden/importless/blocks-gaps.txt+1−1
@@ -20,7 +20,7 @@
2020 ι,
2121 β.carlsverre = ε,
2222 β.intersectLists = [String] -> [String] -> κ,
23− β.length = κ -> Number,
23+ β.length = κ -> Integer,
2424 β.licenses = λ,
2525 β.maintainers = μ,
2626 β.optional = Bool -> ν -> γ,
test/golden/importless/bloodspilot-client.txt+24−22
@@ -1,36 +1,38 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2−( α.lib = β,
2+( α.gpl2Plus = β,
3+ α.linux = γ,
34 α.mkDerivation =
45 { NIX_LDFLAGS = String;
5− buildInputs = [γ];
6+ buildInputs = [δ];
67 meta =
78 { description = String;
89 homepage = String;
9− license = δ;
10+ license = β;
1011 maintainers = [ε];
11− platforms = ζ;
12+ platforms = γ;
1213 };
1314 pname = String;
14− src = η;
15+ src = ζ;
1516 version = String;
1617 } ->
17− θ,
18− β.licenses = ι,
19− ι.gpl2Plus = δ,
20− κ.maintainers = λ,
21− λ.raskin = ε,
22− μ.platforms = ν,
23− ν.linux = ζ
18+ η,
19+ α.raskin = ε,
20+ θ.licenses = α,
21+ ι.lib = θ,
22+ κ.maintainers = α,
23+ λ.lib = κ,
24+ μ.platforms = α,
25+ ν.lib = μ
2426) =>
25−{ SDL = γ;
26− SDL_image = γ;
27− SDL_ttf = γ;
28− expat = γ;
29− fetchurl = {sha256 = String; url = String;} -> η;
30− libGL = γ;
31− libGLU = γ;
32− libX11 = γ;
27+{ SDL = δ;
28+ SDL_image = δ;
29+ SDL_ttf = δ;
30+ expat = δ;
31+ fetchurl = {sha256 = String; url = String;} -> ζ;
32+ libGL = δ;
33+ libGLU = δ;
34+ libX11 = δ;
3335 stdenv = α;
34− zlib = γ;
36+ zlib = δ;
3537} ->
36−θ
38+η
test/golden/importless/bloodspilot-server.txt+1−1
@@ -9,7 +9,7 @@
99 maintainers = [ε];
1010 platforms = ζ;
1111 };
12− patches = [String];
12+ patches = [Path];
1313 pname = String;
1414 src = η;
1515 version = String;
test/golden/importless/blueman.txt+13−15
@@ -1,18 +1,16 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
6− γ.mkEnableOption = String -> ζ,
1+∀ α β γ δ ε ζ η θ ι κ λ.
2+( α.blueman = β,
3+ γ.mkEnableOption = String -> δ,
74 γ.mkIf =
8− η ->
9− { environment = {systemPackages = [θ];};
10− services = {dbus = {packages = [ι];};};
11− systemd = {packages = [κ];};
5+ ε ->
6+ { environment = {systemPackages = [ζ];};
7+ services = {dbus = {packages = [η];};};
8+ systemd = {packages = [θ];};
129 } ->
13− λ,
14− δ.blueman = θ,
15− ε.blueman = μ,
16− μ.enable = η
10+ ι,
11+ κ.blueman = ζ,
12+ β.enable = ε,
13+ λ.services = α
1714) =>
18−α -> {config = λ; options = {services = {blueman = {enable = ζ;};};};}
15+{config = α; lib = γ; pkgs = κ;} ->
16+{config = ι; options = {services = {blueman = {enable = δ;};};};}
test/golden/importless/bluez-qt.txtdeleted−16
@@ -1,16 +0,0 @@
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.txt+16−19
@@ -1,22 +1,19 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.enable = β,
63 γ.mkIf =
7− ζ ->
8− { environment = {systemPackages = [η];};
9− services = {udev = {packages = [θ];};};
10− systemd = {packages = [ι];};
4+ β ->
5+ { environment = {systemPackages = [δ];};
6+ services = {udev = {packages = [ε];};};
7+ systemd = {packages = [ζ];};
118 } ->
12− κ,
13− γ.mkOption = {default = Bool; description = String; type = λ;} -> μ,
14− γ.types = ν,
15− δ.bolt = η,
16− ε.hardware = ξ,
17− ξ.bolt = ο,
18− ο.enable = ζ,
19− ν.bool = λ
9+ η,
10+ γ.mkOption = {default = Bool; description = String; type = θ;} -> ι,
11+ γ.types = κ,
12+ λ.bolt = δ,
13+ μ.bolt = α,
14+ ν.hardware = μ,
15+ ξ.services = ν,
16+ κ.bool = θ
2017) =>
21−α ->
22−{config = κ; options = {services = {hardware = {bolt = {enable = μ;};};};};}
18+{config = α; lib = γ; pkgs = λ;} ->
19+{config = η; options = {services = {hardware = {bolt = {enable = ι;};};};};}
test/golden/importless/boot.txt+6−5
@@ -1,15 +1,16 @@
11∀ α β γ δ ε ζ η θ ι κ.
2−( α.lib = β,
3− β.maintainers = γ,
2+( α.darwin = β,
3+ α.maintainers = γ,
44 γ.gridaphobe = δ,
5− ε.platforms = ζ,
6− ζ.darwin = η
5+ ε.lib = α,
6+ ζ.platforms = α,
7+ η.lib = ζ
78) =>
89{ appleDerivation =
910 { buildInputs = [θ];
1011 buildPhase = String;
1112 installPhase = String;
12− meta = {maintainers = [δ]; platforms = η;};
13+ meta = {maintainers = [δ]; platforms = β;};
1314 nativeBuildInputs = [θ];
1415 outputs = [String];
1516 patchPhase = String;
test/golden/importless/bootstrap.txt+20−18
@@ -1,35 +1,37 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2−( α.lib = β,
2+( α.darwin = β,
3+ α.free = γ,
4+ α.jwiegley = δ,
35 α.mkDerivation =
4− { buildInputs = [γ];
6+ { buildInputs = [ε];
57 buildPhase = String;
68 installPhase = String;
79 meta =
810 { description = String;
911 homepage = String;
10− license = δ;
11− maintainers = [ε];
12− platforms = ζ;
12+ license = γ;
13+ maintainers = [δ];
14+ platforms = β;
1315 };
1416 pname = String;
1517 postInstall = String;
16− src = η;
18+ src = ζ;
1719 unpackPhase = String;
1820 version = String;
1921 } ->
20− θ,
21− β.licenses = ι,
22− ι.free = δ,
23− κ.maintainers = λ,
24− λ.jwiegley = ε,
25− μ.platforms = ν,
26− ν.darwin = ζ
22+ η,
23+ θ.licenses = α,
24+ ι.lib = θ,
25+ κ.maintainers = α,
26+ λ.lib = κ,
27+ μ.platforms = α,
28+ ν.lib = μ
2729) =>
28−{ cpio = γ;
29− fetchurl = {sha256 = String; url = String;} -> η;
30− makeWrapper = γ;
31− rsync = γ;
30+{ cpio = ε;
31+ fetchurl = {sha256 = String; url = String;} -> ζ;
32+ makeWrapper = ε;
33+ rsync = ε;
3234 stdenv = α;
3335 xar = ξ;
3436} ->
35−θ
37+η
test/golden/importless/bordeaux-threads.txtdeleted−16
@@ -1,16 +0,0 @@
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/breeze-gtk.txt+1−1
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ η.
2−(α.getLib = β, γ.pkgs = δ, δ.pycairo = γ) => { breeze-qt5 = γ;
2+(α.getLib = β, γ.pycairo = γ, δ.pkgs = γ) => { breeze-qt5 = γ;
33 extra-cmake-modules = γ;
44 gtk2 = ε;
55 lib = α;
test/golden/importless/breeze-icons.txt+2−2
@@ -1,12 +1,12 @@
11∀ α β γ δ ε ζ η.
2−(α.maintainers = β, β.ttuegel = γ) => { extra-cmake-modules = δ;
2+(α.ttuegel = β, γ.maintainers = α) => { extra-cmake-modules = δ;
33 gtk3 = δ;
44 hicolor-icon-theme = ε;
55 lib = α;
66 mkDerivation =
77 { buildInputs = [ζ];
88 dontDropIconThemeCache = Bool;
9− meta = {maintainers = [γ];};
9+ meta = {maintainers = [β];};
1010 name = String;
1111 nativeBuildInputs = [δ];
1212 outputs = [String];
test/golden/importless/brillo.txt+12−14
@@ -1,17 +1,15 @@
1−∀ α β γ δ ε ζ η θ ι κ λ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.hardware = ε,
6− γ.mkEnableOption = String -> ζ,
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.brillo = β,
3+ γ.mkEnableOption = String -> δ,
74 γ.mkIf =
8− η ->
9− { environment = {systemPackages = [θ];};
10− services = {udev = {packages = [ι];};};
5+ ε ->
6+ { environment = {systemPackages = [ζ];};
7+ services = {udev = {packages = [η];};};
118 } ->
12− κ,
13− δ.brillo = θ,
14− ε.brillo = λ,
15− λ.enable = η
9+ θ,
10+ ι.brillo = ζ,
11+ β.enable = ε,
12+ κ.hardware = α
1613) =>
17−α -> {config = κ; options = {hardware = {brillo = {enable = ζ;};};};}
14+{config = α; lib = γ; pkgs = ι;} ->
15+{config = θ; options = {hardware = {brillo = {enable = δ;};};};}
test/golden/importless/brltty.txt+16−18
@@ -1,10 +1,7 @@
1−∀ α β γ δ ε ζ η θ ι κ λ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.brltty = β,
63 γ.mkIf =
7− ζ ->
4+ δ ->
85 { systemd =
96 { services =
107 { brltty =
@@ -13,15 +10,15 @@
1310 description = String;
1411 serviceConfig =
1512 { ExecStart = String;
16− Nice = Number;
17− OOMScoreAdjust = Number;
13+ Nice = Integer;
14+ OOMScoreAdjust = Integer;
1815 ProtectHome = String;
1916 ProtectSystem = String;
2017 Restart = String;
21− RestartSec = Number;
18+ RestartSec = Integer;
2219 SystemCallArchitectures = String;
23− TimeoutStartSec = Number;
24− TimeoutStopSec = Number;
20+ TimeoutStartSec = Integer;
21+ TimeoutStopSec = Integer;
2522 Type = String;
2623 };
2724 unitConfig =
@@ -35,11 +32,12 @@
3532 };
3633 };
3734 } ->
38− η,
39− γ.mkOption = {default = Bool; description = String; type = θ;} -> ι,
40− γ.types = κ,
41− ε.brltty = λ,
42− λ.enable = ζ,
43− κ.bool = θ
35+ ε,
36+ γ.mkOption = {default = Bool; description = String; type = ζ;} -> η,
37+ γ.types = θ,
38+ β.enable = δ,
39+ ι.services = α,
40+ θ.bool = ζ
4441) =>
45−α -> {config = η; options = {services = {brltty = {enable = ι;};};};}
42+{config = α; lib = γ; pkgs = κ;} ->
43+{config = ε; options = {services = {brltty = {enable = η;};};};}
test/golden/importless/browserpass.txt+9−11
@@ -1,11 +1,8 @@
1−∀ α β γ δ ε ζ η θ ι.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.programs = ε,
6− γ.mkEnableOption = String -> ζ,
1+∀ α β γ δ ε ζ η θ.
2+( α.enable = β,
3+ γ.mkEnableOption = String -> δ,
74 γ.mkIf =
8− η ->
5+ β ->
96 { environment =
107 { etc =
118 { chromium/native-messaging-hosts/ = {source = String;};
@@ -20,8 +17,9 @@
2017 };
2118 nixpkgs = {config = {firefox = {enableBrowserpass = Bool;};};};
2219 } ->
23− θ,
24− ε.browserpass = ι,
25− ι.enable = η
20+ ε,
21+ ζ.browserpass = α,
22+ η.programs = ζ
2623) =>
27−α -> {config = θ; options = {programs = {browserpass = {enable = ζ;};};};}
24+{config = α; lib = γ; pkgs = θ;} ->
25+{config = ε; options = {programs = {browserpass = {enable = δ;};};};}
test/golden/importless/build-rebar3.txt+77−54
@@ -1,61 +1,84 @@
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) ->
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ.
2+( ( { beamDeps = [β];
3+ buildInputs = [γ];
4+ buildPhase = Null;
5+ buildPlugins = [β];
6+ compilePorts = Bool;
7+ configurePhase = Null;
8+ enableDebugInfo = Bool;
9+ installPhase = Null;
10+ meta = {};
11+ name = δ;
12+ postPatch = String;
13+ setupHook = Null;
14+ src = ε;
15+ version = ζ;
16+ }
17+ ) //
18+ ( η
19+ ) ~
20+ ( {buildInputs = [θ]; name = String;}
21+ ),
22+ ( { buildInputs = [γ];
23+ buildPhase = String;
24+ buildPlugins = [β];
25+ compilePorts = Bool;
26+ configurePhase = String;
27+ dontStrip = Bool;
28+ installPhase = String;
29+ meta = ∀ α. α;
30+ name = String;
31+ passthru = {beamDeps = [β]; env = ι; packageName = δ;};
32+ postPatch = String;
33+ propagatedBuildInputs = κ;
34+ setupHook = λ;
35+ src = ε;
36+ version = ζ;
37+ }
38+ ) //
39+ ( μ
40+ ) ~
41+ ( η
42+ ),
43+ ν.lib = ξ,
44+ ν.mkDerivation = {buildInputs = [θ]; name = String;} -> ι,
45+ γ.debugInfo = Bool,
46+ γ.meta = ο,
47+ π.optionalString = Bool -> String -> ρ,
48+ ξ.filterAttrs =
49+ (σ -> Null -> Bool) ->
4250 { buildPhase = Null;
4351 configurePhase = Null;
4452 installPhase = Null;
4553 setupHook = Null;
4654 } ->
47− ν,
48− ο.fix = (δ -> η) -> υ,
49− ο.unique = [ζ] -> ι,
50− π.platforms = φ
55+ μ,
56+ ξ.fix = (θ -> ι) -> τ,
57+ ξ.unique = [β] -> κ,
58+ ο.platforms = υ
5159) =>
52−{ erlang = ε;
53− lib = ρ;
54− libyaml = ε;
55− openssl = ε;
56− pc = ζ;
57− rebar3 = ε;
58− stdenv = ξ;
59− writeText = String -> String -> κ;
60+{ erlang = γ;
61+ lib = π;
62+ libyaml = γ;
63+ openssl = γ;
64+ pc = β;
65+ rebar3 = γ;
66+ stdenv = ν;
67+ writeText = String -> String -> λ;
68+} ->
69+{ beamDeps = [β];
70+ buildInputs = [γ];
71+ buildPhase = Null;
72+ buildPlugins = [β];
73+ compilePorts = Bool;
74+ configurePhase = Null;
75+ enableDebugInfo = Bool;
76+ installPhase = Null;
77+ meta = {};
78+ name = δ;
79+ postPatch = String;
80+ setupHook = Null;
81+ src = ε;
82+ version = ζ;
6083} ->
61−β -> υ
84+τ
test/golden/importless/build-skaware-package.txt+11−10
@@ -1,14 +1,15 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ.
22( α.isDarwin = Bool,
3− α.lib = β,
3+ α.isc = β,
4+ α.lib = γ,
45 α.mkDerivation =
56 { configureFlags = [String];
67 dontDisableStatic = Bool;
78 enableParallelBuilding = Bool;
89 meta =
9− { description = γ;
10+ { description = δ;
1011 homepage = String;
11− license = δ;
12+ license = β;
1213 maintainers = [ε];
1314 platforms = ζ;
1415 };
@@ -20,12 +21,12 @@
2021 version = ι;
2122 } ->
2223 κ,
23− β.maintainers = λ,
24− β.optional = μ -> String -> [String],
25− β.platforms = ν,
26− ν.all = ζ,
27− ξ.licenses = ο,
28− ο.isc = δ,
24+ γ.all = ζ,
25+ γ.maintainers = λ,
26+ γ.optional = μ -> String -> [String],
27+ ν.platforms = γ,
28+ ξ.licenses = α,
29+ ο.lib = ξ,
2930 λ.Profpatsch = ε,
3031 λ.pmahoney = ε
3132) =>
@@ -34,7 +35,7 @@
3435 stdenv = α;
3536} ->
3637{ configureFlags = [String];
37− description = γ;
38+ description = δ;
3839 maintainers = [ε];
3940 outputs = [String];
4041 platforms = ζ;
test/golden/importless/build-solution.txt+1−1
@@ -10,7 +10,7 @@
1010 ε
1111) =>
1212{dotnetfx = β; stdenv = α;} ->
13−{ assemblyInputs = [ζ];
13+{ assemblyInputs = ζ;
1414 baseDir = String;
1515 mainClassFile = Null;
1616 modifyPublicMain = Bool;
test/golden/importless/build.txt+2−2
@@ -12,7 +12,7 @@
1212 platforms = ζ;
1313 };
1414 nativeBuildInputs = [η];
15− patches = [θ];
15+ patches = θ;
1616 pname = String;
1717 postInstall = String;
1818 postPatch = String;
@@ -39,7 +39,7 @@
3939 libxslt = γ;
4040 makeWrapper = γ;
4141 pango = γ;
42− patches = [θ];
42+ patches = θ;
4343 pkgconfig = η;
4444 rev = ο;
4545 sha256 = π;
test/golden/importless/buildOcamlJane.txt+26−26
@@ -1,27 +1,27 @@
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 = β;
1+∀ α β γ δ.
2+{ buildOcaml =
3+ { buildInputs = [α];
4+ buildPhase = String;
5+ configurePhase = String;
6+ dontAddPrefix = Bool;
7+ hasSharedObjects = Bool;
8+ hash = String;
9+ installPhase = String;
10+ minimumSupportedOcamlVersion = String;
11+ name = β;
12+ src = γ;
13+ version = String;
14+ } ->
15+ δ;
16+ fetchurl = {sha256 = String; url = String;} -> γ;
17+ js_build_tools = α;
18+ ocaml_oasis = α;
19+ opaline = α;
2620} ->
27−α -> ζ
21+{ buildInputs = [α];
22+ hash = String;
23+ minimumSupportedOcamlVersion = String;
24+ name = β;
25+ version = String;
26+} ->
27+δ
test/golden/importless/builder.txtdeleted−24
@@ -1,24 +0,0 @@
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.txtdeleted−33
@@ -1,33 +0,0 @@
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.txtdeleted−35
@@ -1,35 +0,0 @@
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.txt+1−1
@@ -22,7 +22,7 @@
2222 maintainers = [ζ];
2323 };
2424 nativeBuildInputs = ε;
25− patches = [String];
25+ patches = [Path];
2626 pname = String;
2727 postInstall = String;
2828 preBuild = String;
test/golden/importless/bytes.txt+2−2
@@ -1,6 +1,6 @@
11∀ α β γ δ ε.
2−(α.maintainers = β, β.brainrape = γ) => { build-idris-package =
3− { meta = {description = String; homepage = String; maintainers = [γ];};
2+(α.brainrape = β, γ.maintainers = α) => { build-idris-package =
3+ { meta = {description = String; homepage = String; maintainers = [β];};
44 name = String;
55 src = δ;
66 version = String;
test/golden/importless/calibre-server.txt+21−25
@@ -1,13 +1,9 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.ids = ε,
6− β.services = ζ,
7− γ.mkEnableOption = String -> η,
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ.
2+( α.calibre-server = β,
3+ γ.mkEnableOption = String -> δ,
84 γ.mkIf =
9− θ ->
10− { environment = {systemPackages = [ι];};
5+ ε ->
6+ { environment = {systemPackages = [ζ];};
117 systemd =
128 { services =
139 { calibre-server =
@@ -20,23 +16,23 @@
2016 };
2117 };
2218 users =
23− { groups = {calibre-server = {gid = κ;};};
24− users = {calibre-server = {group = String; uid = λ;};};
19+ { groups = {calibre-server = {gid = η;};};
20+ users = {calibre-server = {group = String; uid = θ;};};
2521 };
2622 } ->
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 = ν
23+ ι,
24+ γ.mkOption = {description = String; type = κ;} -> λ,
25+ γ.types = μ,
26+ ν.calibre = ζ,
27+ β.enable = ε,
28+ ξ.services = α,
29+ ο.gids = α,
30+ π.ids = ο,
31+ ρ.uids = α,
32+ σ.ids = ρ,
33+ μ.path = κ
3834) =>
39−α ->
40−{ config = μ;
41− options = {services = {calibre-server = {enable = η; libraryDir = ξ;};};};
35+{config = α; lib = γ; pkgs = ν;} ->
36+{ config = ι;
37+ options = {services = {calibre-server = {enable = δ; libraryDir = λ;};};};
4238}
test/golden/importless/camlp4.txt+5−5
@@ -1,14 +1,14 @@
11∀ α β γ δ ε ζ η θ ι κ.
2−( α.licenses = β,
3− α.maintainers = γ,
2+( α.lgpl21 = β,
3+ α.vbgl = γ,
44 δ.meta = ε,
5− β.lgpl21 = ζ,
6− γ.vbgl = η,
5+ ζ.licenses = α,
6+ η.maintainers = α,
77 ε.homepage = θ
88) =>
99{ buildDunePackage =
1010 { meta =
11− {description = String; homepage = θ; license = ζ; maintainers = [η];};
11+ {description = String; homepage = θ; license = β; maintainers = [γ];};
1212 minimumOCamlVersion = String;
1313 pname = String;
1414 preBuild = String;
test/golden/importless/canto-daemon.txt+11−13
@@ -1,10 +1,7 @@
1−∀ α β γ δ ε ζ η θ ι κ λ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.canto-daemon = β,
63 γ.mkIf =
7− ζ ->
4+ δ ->
85 { systemd =
96 { user =
107 { services =
@@ -18,11 +15,12 @@
1815 };
1916 };
2017 } ->
21− η,
22− γ.mkOption = {default = Bool; description = String; type = θ;} -> ι,
23− γ.types = κ,
24− ε.canto-daemon = λ,
25− λ.enable = ζ,
26− κ.bool = θ
18+ ε,
19+ γ.mkOption = {default = Bool; description = String; type = ζ;} -> η,
20+ γ.types = θ,
21+ β.enable = δ,
22+ ι.services = α,
23+ θ.bool = ζ
2724) =>
28−α -> {config = η; options = {services = {canto-daemon = {enable = ι;};};};}
25+{config = α; lib = γ; pkgs = κ;} ->
26+{config = ε; options = {services = {canto-daemon = {enable = η;};};};}
test/golden/importless/canvas.txt+2−2
@@ -1,7 +1,7 @@
11∀ α β γ δ ε.
2−(α.maintainers = β, β.brainrape = γ) => { build-idris-package =
2+(α.brainrape = β, γ.maintainers = α) => { build-idris-package =
33 { ipkgName = String;
4− meta = {description = String; homepage = String; maintainers = [γ];};
4+ meta = {description = String; homepage = String; maintainers = [β];};
55 name = String;
66 src = δ;
77 version = String;
test/golden/importless/carnix.txt+5−5
@@ -1,11 +1,11 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν.
22( α.attrsets = β,
33 α.lists = γ,
4− δ.crates = ε,
4+ δ.0.10.0 = {aho_corasick = {0.6.10 = {memchr = String;};};} -> {} -> ε,
55 β.recursiveUpdate = ζ,
66 γ.fold = η,
7− ε.carnix = θ,
8− θ.0.10.0 = {aho_corasick = {0.6.10 = {memchr = String;};};} -> {} -> ι
7+ θ.carnix = δ,
8+ ι.crates = θ
99) =>
1010{ buildPlatform = κ;
1111 buildRustCrate = λ;
@@ -14,8 +14,8 @@
1414 fetchgit = ν;
1515 lib = α;
1616} ->
17−{ __all = [ι];
18− carnix = {} -> ι;
17+{ __all = [ε];
18+ carnix = {} -> ε;
1919 crates = δ;
2020 deps =
2121 { aho_corasick = {0.6.10 = {memchr = String;};};
test/golden/importless/categories.txt+2−2
@@ -1,6 +1,6 @@
11∀ α β γ δ ε.
2−(α.maintainers = β, β.brainrape = γ) => { build-idris-package =
3− { meta = {description = String; homepage = String; maintainers = [γ];};
2+(α.brainrape = β, γ.maintainers = α) => { build-idris-package =
3+ { meta = {description = String; homepage = String; maintainers = [β];};
44 name = String;
55 src = δ;
66 version = String;
test/golden/importless/caveman.txtdeleted−80
@@ -1,80 +0,0 @@
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.txt+33−36
@@ -1,16 +1,13 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
6− γ.bitmap = ζ,
7− γ.listOf = η -> θ,
8− γ.literalExample = String -> ι,
9− γ.maintainers = κ,
10− γ.mkEnableOption = String -> λ,
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ.
2+( α.xserver = β,
3+ γ.bitmap = δ,
4+ γ.listOf = ε -> ζ,
5+ γ.literalExample = String -> η,
6+ γ.maintainers = θ,
7+ γ.mkEnableOption = String -> ι,
118 γ.mkIf =
129 Bool ->
13− { environment = {systemPackages = μ;};
10+ { environment = {systemPackages = κ;};
1411 security =
1512 { wrappers =
1613 {dtmail = {group = String; setgid = Bool; source = String;};};
@@ -34,36 +31,36 @@
3431 system = {activationScripts = {setup-cde = String;};};
3532 users = {groups = {mail = {};};};
3633 } ->
37− ν,
34+ λ,
3835 γ.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 = υ
36+ {default = [δ]; description = String; example = η; type = ζ;} -> μ,
37+ γ.package = ε,
38+ γ.types = ν,
39+ γ.xclock = δ,
40+ γ.xdpyinfo = δ,
41+ γ.xfd = δ,
42+ γ.xload = δ,
43+ γ.xlsfonts = δ,
44+ γ.xrefresh = δ,
45+ γ.xwd = δ,
46+ γ.xwininfo = δ,
47+ γ.xwud = δ,
48+ ξ.xorg = ο,
49+ β.cde = π,
50+ β.enable = Bool,
51+ ρ.services = α,
52+ π.enable = Bool,
53+ π.extraPackages = κ,
54+ σ.desktopManager = β,
55+ θ.gnidorah = τ
5956) =>
60−α ->
61−{ config = ν;
62− meta = {maintainers = [υ];};
57+{config = α; lib = γ; pkgs = ξ;} ->
58+{ config = λ;
59+ meta = {maintainers = [τ];};
6360 options =
6461 { services =
6562 { xserver =
66− {desktopManager = {cde = {enable = λ; extraPackages = ξ;};};};
63+ {desktopManager = {cde = {enable = ι; extraPackages = μ;};};};
6764 };
6865 };
6966}
test/golden/importless/cffi-grovel.txtdeleted−18
@@ -1,18 +0,0 @@
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.txtdeleted−17
@@ -1,17 +0,0 @@
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.txtdeleted−20
@@ -1,20 +0,0 @@
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.txt+15−12
@@ -1,7 +1,8 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2−( α.lib = β,
2+( α.cstrahan = β,
3+ α.lib = γ,
34 α.mkDerivation =
4− { buildInputs = γ;
5+ { buildInputs = δ;
56 configureFlags = [String];
67 configureScript = String;
78 enableParallelBuilding = Bool;
@@ -9,10 +10,10 @@
910 meta =
1011 { description = String;
1112 homepage = String;
12− license = δ;
13− maintainers = [ε];
13+ license = ε;
14+ maintainers = [β];
1415 platforms = [String];
15− priority = Number;
16+ priority = Integer;
1617 };
1718 nativeBuildInputs = [ζ];
1819 outputs = [String];
@@ -24,14 +25,16 @@
2425 version = String;
2526 } ->
2627 θ,
27− β.licenses = ι,
28− κ.optional = Bool -> λ -> γ,
29− μ.optionals = Bool -> [String] -> [String],
30− ι.openssl = δ,
31− ν.maintainers = ξ,
32− ξ.cstrahan = ε
28+ α.optional = Bool -> ι -> δ,
29+ α.optionals = Bool -> [String] -> [String],
30+ γ.licenses = κ,
31+ λ.lib = α,
32+ μ.lib = α,
33+ κ.openssl = ε,
34+ ν.maintainers = α,
35+ ξ.lib = ν
3336) =>
34−{ cryptodev = λ;
37+{ cryptodev = ι;
3538 fetchFromGitHub =
3639 {owner = String; repo = String; rev = String; sha256 = String;} -> η;
3740 perl = ζ;
test/golden/importless/channel.txt+6−9
@@ -1,10 +1,7 @@
1−∀ α β γ δ ε ζ η θ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− γ.cleanSource = ε -> ζ,
6− γ.mkAfter = String -> η,
7− δ.path = ε,
8− δ.runCommand = String -> {preferLocalBuild = Bool;} -> String -> θ
1+∀ α β γ δ ε ζ η.
2+( α.cleanSource = β -> γ,
3+ α.mkAfter = String -> δ,
4+ ε.path = β,
5+ ε.runCommand = String -> {preferLocalBuild = Bool;} -> String -> ζ
96) =>
10−α -> {boot = {postBootCommands = η;};}
7+{config = η; lib = α; pkgs = ε;} -> {boot = {postBootCommands = δ;};}
test/golden/importless/check-plugin.txt+1−1
@@ -11,7 +11,7 @@
1111 };
1212 name = String;
1313 nativeBuildInputs = [η];
14− patches = [String];
14+ patches = [Path];
1515 prePatch = String;
1616 propagatedBuildInputs = [δ];
1717 src = θ;
test/golden/importless/chipz.txt+4−4
@@ -1,11 +1,11 @@
1−∀ β γ.
2−(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
1+∀ β.
2+{fetchurl = {sha256 = String; url = String;} -> β;} ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. [α];
5+ deps = ∀ α. α;
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
9− src = γ;
9+ src = β;
1010 version = String;
1111}
test/golden/importless/chrome-gnome-shell.txt+18−21
@@ -1,11 +1,8 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
6− γ.mkEnableOption = String -> ζ,
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.enable = β,
3+ γ.mkEnableOption = String -> δ,
74 γ.mkIf =
8− η ->
5+ β ->
96 { environment =
107 { etc =
118 { chromium/native-messaging-hosts/org.gnome.chrome_gnome_shell.json =
@@ -13,22 +10,22 @@
1310 opt/chrome/native-messaging-hosts/org.gnome.chrome_gnome_shell.json =
1411 {source = String;};
1512 };
16− systemPackages = [θ];
13+ systemPackages = [ε];
1714 };
1815 nixpkgs = {config = {firefox = {enableGnomeExtensions = Bool;};};};
19− services = {dbus = {packages = [ι];};};
16+ services = {dbus = {packages = [ζ];};};
2017 } ->
21− κ,
22− γ.teams = λ,
23− δ.chrome-gnome-shell = θ,
24− ε.gnome3 = μ,
25− μ.chrome-gnome-shell = ν,
26− ν.enable = η,
27− λ.gnome = ξ,
28− ξ.members = ο
18+ η,
19+ γ.teams = θ,
20+ ι.chrome-gnome-shell = ε,
21+ κ.chrome-gnome-shell = α,
22+ λ.gnome3 = κ,
23+ μ.services = λ,
24+ θ.members = ν,
25+ ξ.gnome = θ
2926) =>
30−α ->
31−{ config = κ;
32− meta = {maintainers = ο;};
33− options = {services = {gnome3 = {chrome-gnome-shell = {enable = ζ;};};};};
27+{config = α; lib = γ; pkgs = ι;} ->
28+{ config = η;
29+ meta = {maintainers = ν;};
30+ options = {services = {gnome3 = {chrome-gnome-shell = {enable = δ;};};};};
3431}
test/golden/importless/chrootenv.txt+20−20
@@ -18,19 +18,19 @@
1818 multiPkgs =
1919 ∀ α β γ δ ε ζ η.
2020 ( α.git = β,
21− α.python3 = γ,
22− α.zlib = β,
23− β.pkgs = δ,
24− γ.override =
21+ α.override =
2522 { packageOverrides =
26− (ε.callPackage = String -> {} -> ζ) => ε ->
27− η -> {platformio = ζ;};
23+ (γ.callPackage = Path -> {} -> δ) => γ ->
24+ ε -> {platformio = δ;};
2825 } ->
2926 β,
30− δ.bottle = β,
31− δ.pip = β,
32− δ.platformio = β,
33− δ.setuptools = β
27+ α.zlib = β,
28+ β.pkgs = ζ,
29+ ζ.bottle = β,
30+ ζ.pip = β,
31+ ζ.platformio = β,
32+ ζ.setuptools = β,
33+ η.python3 = α
3434 ) =>
3535 α -> [β];
3636 name = String;
@@ -38,19 +38,19 @@
3838 targetPkgs =
3939 ∀ α β γ δ ε ζ η.
4040 ( α.git = β,
41− α.python3 = γ,
42− α.zlib = β,
43− β.pkgs = δ,
44− γ.override =
41+ α.override =
4542 { packageOverrides =
46− (ε.callPackage = String -> {} -> ζ) => ε ->
47− η -> {platformio = ζ;};
43+ (γ.callPackage = Path -> {} -> δ) => γ ->
44+ ε -> {platformio = δ;};
4845 } ->
4946 β,
50− δ.bottle = β,
51− δ.pip = β,
52− δ.platformio = β,
53− δ.setuptools = β
47+ α.zlib = β,
48+ β.pkgs = ζ,
49+ ζ.bottle = β,
50+ ζ.pip = β,
51+ ζ.platformio = β,
52+ ζ.setuptools = β,
53+ η.python3 = α
5454 ) =>
5555 α -> [β];
5656 } ->
test/golden/importless/chunga.txtdeleted−14
@@ -1,14 +0,0 @@
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.txtdeleted−22
@@ -1,22 +0,0 @@
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.txt+4−4
@@ -1,11 +1,11 @@
1−∀ β γ.
2−(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
1+∀ β.
2+{fetchurl = {sha256 = String; url = String;} -> β;} ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. [α];
5+ deps = ∀ α. α;
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
9− src = γ;
9+ src = β;
1010 version = String;
1111}
test/golden/importless/cl-annot.txtdeleted−11
@@ -1,11 +0,0 @@
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.txt+4−4
@@ -1,11 +1,11 @@
1−∀ β γ.
2−(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
1+∀ β.
2+{fetchurl = {sha256 = String; url = String;} -> β;} ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. [α];
5+ deps = ∀ α. α;
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
9− src = γ;
9+ src = β;
1010 version = String;
1111}
test/golden/importless/cl-ansi-text.txtdeleted−17
@@ -1,17 +0,0 @@
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.txtdeleted−29
@@ -1,29 +0,0 @@
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.txtdeleted−29
@@ -1,29 +0,0 @@
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.txtdeleted−28
@@ -1,28 +0,0 @@
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.txtdeleted−16
@@ -1,16 +0,0 @@
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.txtdeleted−17
@@ -1,17 +0,0 @@
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.txtdeleted−14
@@ -1,14 +0,0 @@
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.txtdeleted−18
@@ -1,18 +0,0 @@
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.txtdeleted−17
@@ -1,17 +0,0 @@
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.txtdeleted−24
@@ -1,24 +0,0 @@
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.txt+4−4
@@ -1,11 +1,11 @@
1−∀ β γ.
2−(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
1+∀ β.
2+{fetchurl = {sha256 = String; url = String;} -> β;} ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. [α];
5+ deps = ∀ α. α;
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
9− src = γ;
9+ src = β;
1010 version = String;
1111}
test/golden/importless/cl-csv.txtdeleted−22
@@ -1,22 +0,0 @@
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.txtdeleted−23
@@ -1,23 +0,0 @@
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.txtdeleted−11
@@ -1,11 +0,0 @@
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.txtdeleted−18
@@ -1,18 +0,0 @@
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.txtdeleted−27
@@ -1,27 +0,0 @@
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.txtdeleted−24
@@ -1,24 +0,0 @@
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.txtdeleted−20
@@ -1,20 +0,0 @@
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.txt+4−4
@@ -1,11 +1,11 @@
1−∀ β γ.
2−(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
1+∀ β.
2+{fetchurl = {sha256 = String; url = String;} -> β;} ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. [α];
5+ deps = ∀ α. α;
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
9− src = γ;
9+ src = β;
1010 version = String;
1111}
test/golden/importless/cl-html5-parser.txtdeleted−17
@@ -1,17 +0,0 @@
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.txtdeleted−18
@@ -1,18 +0,0 @@
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.txt+4−4
@@ -1,11 +1,11 @@
1−∀ β γ.
2−(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
1+∀ β.
2+{fetchurl = {sha256 = String; url = String;} -> β;} ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. [α];
5+ deps = ∀ α. α;
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
9− src = γ;
9+ src = β;
1010 version = String;
1111}
test/golden/importless/cl-json.txtdeleted−12
@@ -1,12 +0,0 @@
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.txt+4−4
@@ -1,11 +1,11 @@
1−∀ β γ.
2−(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
1+∀ β.
2+{fetchurl = {sha256 = String; url = String;} -> β;} ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. [α];
5+ deps = ∀ α. α;
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
9− src = γ;
9+ src = β;
1010 version = String;
1111}
test/golden/importless/cl-l10n.txtdeleted−32
@@ -1,32 +0,0 @@
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.txtdeleted−19
@@ -1,19 +0,0 @@
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+4−4
@@ -1,11 +1,11 @@
1−∀ β γ.
2−(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
1+∀ β.
2+{fetchurl = {sha256 = String; url = String;} -> β;} ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. [α];
5+ deps = ∀ α. α;
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
9− src = γ;
9+ src = β;
1010 version = String;
1111}
test/golden/importless/cl-markdown.txtdeleted−20
@@ -1,20 +0,0 @@
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.txt+4−4
@@ -1,11 +1,11 @@
1−∀ β γ.
2−(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
1+∀ β.
2+{fetchurl = {sha256 = String; url = String;} -> β;} ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. [α];
5+ deps = ∀ α. α;
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
9− src = γ;
9+ src = β;
1010 version = String;
1111}
test/golden/importless/cl-mysql.txtdeleted−17
@@ -1,17 +0,0 @@
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.txtdeleted−15
@@ -1,15 +0,0 @@
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.txt+4−4
@@ -1,11 +1,11 @@
1−∀ β γ.
2−(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
1+∀ β.
2+{fetchurl = {sha256 = String; url = String;} -> β;} ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. [α];
5+ deps = ∀ α. α;
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
9− src = γ;
9+ src = β;
1010 version = String;
1111}
test/golden/importless/cl-pdf.txtdeleted−16
@@ -1,16 +0,0 @@
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.txtdeleted−18
@@ -1,18 +0,0 @@
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.txtdeleted−15
@@ -1,15 +0,0 @@
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.txtdeleted−18
@@ -1,18 +0,0 @@
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.txtdeleted−15
@@ -1,15 +0,0 @@
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.txtdeleted−15
@@ -1,15 +0,0 @@
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.txtdeleted−25
@@ -1,25 +0,0 @@
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.txtdeleted−18
@@ -1,18 +0,0 @@
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.txtdeleted−11
@@ -1,11 +0,0 @@
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.txtdeleted−25
@@ -1,25 +0,0 @@
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.txtdeleted−12
@@ -1,12 +0,0 @@
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.txtdeleted−18
@@ -1,18 +0,0 @@
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.txtdeleted−17
@@ -1,17 +0,0 @@
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.txtdeleted−17
@@ -1,17 +0,0 @@
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.txtdeleted−15
@@ -1,15 +0,0 @@
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.txtdeleted−20
@@ -1,20 +0,0 @@
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.txtdeleted−16
@@ -1,16 +0,0 @@
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.txtdeleted−16
@@ -1,16 +0,0 @@
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.txt+4−4
@@ -1,11 +1,11 @@
1−∀ β γ.
2−(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
1+∀ β.
2+{fetchurl = {sha256 = String; url = String;} -> β;} ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. [α];
5+ deps = ∀ α. α;
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
9− src = γ;
9+ src = β;
1010 version = String;
1111}
test/golden/importless/cl-utilities.txt+4−4
@@ -1,11 +1,11 @@
1−∀ β γ.
2−(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
1+∀ β.
2+{fetchurl = {sha256 = String; url = String;} -> β;} ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. [α];
5+ deps = ∀ α. α;
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
9− src = γ;
9+ src = β;
1010 version = String;
1111}
test/golden/importless/cl-vectors.txtdeleted−15
@@ -1,15 +0,0 @@
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.txtdeleted−15
@@ -1,15 +0,0 @@
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.txtdeleted−21
@@ -1,21 +0,0 @@
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.txtdeleted−22
@@ -1,22 +0,0 @@
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.txtdeleted−33
@@ -1,33 +0,0 @@
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.txt+4−4
@@ -1,11 +1,11 @@
1−∀ β γ.
2−(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
1+∀ β.
2+{fetchurl = {sha256 = String; url = String;} -> β;} ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. [α];
5+ deps = ∀ α. α;
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
9− src = γ;
9+ src = β;
1010 version = String;
1111}
test/golden/importless/clack-test.txtdeleted−66
@@ -1,66 +0,0 @@
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.txtdeleted−70
@@ -1,70 +0,0 @@
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.txtdeleted−22
@@ -1,22 +0,0 @@
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.txt+2−2
@@ -1,6 +1,6 @@
11∀ γ δ ε ζ η θ ι.
2−( γ.lib = δ,
3− δ.concatMapStringsSep = String -> (ε -> String) -> ζ -> η
2+( γ.concatMapStringsSep = String -> (δ -> String) -> ε -> ζ,
3+ η.lib = γ
44) =>
55{file = θ; stdenv = γ; writeScript = String -> String -> ι;} ->
66{ checkForRemainingFiles = ι;
test/golden/importless/clfswm.txt+16−19
@@ -1,24 +1,21 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
6− γ.mkEnableOption = String -> ζ,
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.clfswm = β,
3+ γ.mkEnableOption = String -> δ,
74 γ.mkIf =
8− η ->
9− { environment = {systemPackages = [θ];};
10− services = {xserver = {windowManager = {session = ι;};};};
5+ ε ->
6+ { environment = {systemPackages = [ζ];};
7+ services = {xserver = {windowManager = {session = η;};};};
118 } ->
12− κ,
13− γ.singleton = {name = String; start = String;} -> ι,
14− δ.clfswm = θ,
15− ε.xserver = λ,
16− λ.windowManager = μ,
17− μ.clfswm = ν,
18− ν.enable = η
9+ θ,
10+ γ.singleton = {name = String; start = String;} -> η,
11+ ι.clfswm = ζ,
12+ β.enable = ε,
13+ κ.windowManager = α,
14+ λ.xserver = κ,
15+ μ.services = λ
1916) =>
20−α ->
21−{ config = κ;
17+{config = α; lib = γ; pkgs = ι;} ->
18+{ config = θ;
2219 options =
23− {services = {xserver = {windowManager = {clfswm = {enable = ζ;};};};};};
20+ {services = {xserver = {windowManager = {clfswm = {enable = δ;};};};};};
2421}
test/golden/importless/clickhouse.txt+19−22
@@ -1,19 +1,15 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.ids = ε,
6− β.services = ζ,
7− γ.mkDefault = String -> η,
8− γ.mkEnableOption = String -> θ,
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π.
2+( α.clickhouse = β,
3+ γ.mkDefault = String -> δ,
4+ γ.mkEnableOption = String -> ε,
95 γ.mkIf =
10− ι ->
6+ ζ ->
117 { environment =
128 { etc =
139 { clickhouse-server/config.xml = {source = String;};
1410 clickhouse-server/users.xml = {source = String;};
1511 };
16− systemPackages = [κ];
12+ systemPackages = [η];
1713 };
1814 systemd =
1915 { services =
@@ -32,22 +28,23 @@
3228 };
3329 };
3430 };
35− time = {timeZone = η;};
31+ time = {timeZone = δ;};
3632 users =
37− { groups = {clickhouse = {gid = λ;};};
33+ { groups = {clickhouse = {gid = θ;};};
3834 users =
3935 { clickhouse =
40− {description = String; group = String; name = String; uid = μ;};
36+ {description = String; group = String; name = String; uid = ι;};
4137 };
4238 };
4339 } ->
44− ν,
45− δ.clickhouse = κ,
46− ζ.clickhouse = ξ,
47− ξ.enable = ι,
48− ε.gids = ο,
49− ο.clickhouse = λ,
50− π.uids = ρ,
51− ρ.clickhouse = μ
40+ κ,
41+ λ.clickhouse = η,
42+ β.enable = ζ,
43+ μ.services = α,
44+ ν.gids = α,
45+ ξ.ids = ν,
46+ ο.uids = α,
47+ π.ids = ο
5248) =>
53−α -> {config = ν; options = {services = {clickhouse = {enable = θ;};};};}
49+{config = α; lib = γ; pkgs = λ;} ->
50+{config = κ; options = {services = {clickhouse = {enable = ε;};};};}
test/golden/importless/clickshare.txt+19−22
@@ -1,26 +1,23 @@
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 = [λ];};};
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.enable = β,
3+ γ.mkEnableOption = String -> δ,
4+ γ.mkIf =
5+ β ->
6+ { environment = {systemPackages = [ε];};
7+ services = {udev = {packages = [ζ];};};
148 users = {groups = {clickshare = {};};};
159 } ->
16− μ,
17− ε.clickshare-csc1 = ν,
18− ν.enable = κ,
19− ζ.yarny = ξ,
20− θ.mkEnableOption = String -> ο
10+ η,
11+ γ.yarny = θ,
12+ ι.clickshare-csc1 = ε,
13+ κ.clickshare-csc1 = α,
14+ λ.programs = κ,
15+ μ.modules = γ,
16+ ν.maintainers = γ,
17+ ξ.options = γ
2118) =>
22−α ->
23−{ config = μ;
24− meta = {maintainers = [ξ];};
25− options = {programs = {clickshare-csc1 = {enable = ο;};};};
19+{config = α; lib = γ; pkgs = ι;} ->
20+{ config = η;
21+ meta = {maintainers = [θ];};
22+ options = {programs = {clickshare-csc1 = {enable = δ;};};};
2623}
test/golden/importless/client-ip-echo.txt+2−2
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ η.
2−(α.lib = β, β.licenses = γ, γ.lgpl3 = δ) => { base = ε;
2+(α.lgpl3 = β, γ.licenses = α, δ.lib = γ) => { base = ε;
33 bytestring = ε;
44 fetchFromGitHub =
55 {owner = String; repo = String; rev = String; sha256 = String;} -> ζ;
@@ -8,7 +8,7 @@
88 executableHaskellDepends = [ε];
99 isExecutable = Bool;
1010 isLibrary = Bool;
11− license = δ;
11+ license = β;
1212 pname = String;
1313 src = ζ;
1414 version = String;
test/golden/importless/clientlib.txt+6−5
@@ -15,11 +15,12 @@
1515 version = String;
1616 } ->
1717 ι,
18− γ.optional = β -> κ -> [η],
19− λ.ehmry = ε,
20− λ.licenses = μ,
21− λ.maintainers = ν,
22− λ.platforms = ξ,
18+ α.optional = β -> κ -> [η],
19+ λ.lib = α,
20+ γ.ehmry = ε,
21+ γ.licenses = μ,
22+ γ.maintainers = ν,
23+ γ.platforms = ξ,
2324 μ.gpl2 = δ,
2425 ξ.unix = ζ
2526) =>
test/golden/importless/clingo.txt+16−14
@@ -1,27 +1,29 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2−( α.lib = β,
2+( α.mit = β,
33 α.mkDerivation =
44 { cmakeFlags = [String];
55 meta =
66 { description = String;
77 downloadPage = String;
88 homepage = String;
9− license = γ;
10− maintainers = [δ];
11− platforms = ε;
9+ license = β;
10+ maintainers = [γ];
11+ platforms = δ;
1212 version = String;
1313 };
14− nativeBuildInputs = [ζ];
14+ nativeBuildInputs = [ε];
1515 pname = String;
16− src = η;
16+ src = ζ;
1717 version = String;
1818 } ->
19− θ,
20− β.licenses = ι,
21− ι.mit = γ,
22− κ.maintainers = λ,
23− λ.raskin = δ,
24− μ.platforms = ν,
25− ν.unix = ε
19+ η,
20+ α.raskin = γ,
21+ α.unix = δ,
22+ θ.licenses = α,
23+ ι.lib = θ,
24+ κ.maintainers = α,
25+ λ.lib = κ,
26+ μ.platforms = α,
27+ ν.lib = μ
2628) =>
27−{cmake = ζ; fetchzip = {sha256 = String; url = String;} -> η; stdenv = α;} -> θ
29+{cmake = ε; fetchzip = {sha256 = String; url = String;} -> ζ; stdenv = α;} -> η
test/golden/importless/clipmenu.txt+15−18
@@ -1,12 +1,9 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
6− γ.mkEnableOption = String -> ζ,
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.clipmenu = β,
3+ γ.mkEnableOption = String -> δ,
74 γ.mkIf =
8− η ->
9− { environment = {systemPackages = [θ];};
5+ ε ->
6+ { environment = {systemPackages = [ζ];};
107 systemd =
118 { user =
129 { services =
@@ -21,15 +18,15 @@
2118 };
2219 };
2320 } ->
24− ι,
21+ η,
2522 γ.mkOption =
26− {default = κ; defaultText = String; description = String; type = λ;} -> μ,
27− γ.types = ν,
28− δ.clipmenu = κ,
29− ε.clipmenu = ξ,
30− ξ.enable = η,
31− ξ.package = θ,
32− ν.package = λ
23+ {default = θ; defaultText = String; description = String; type = ι;} -> κ,
24+ γ.types = λ,
25+ μ.clipmenu = θ,
26+ β.enable = ε,
27+ β.package = ζ,
28+ ν.services = α,
29+ λ.package = ι
3330) =>
34−α ->
35−{config = ι; options = {services = {clipmenu = {enable = ζ; package = μ;};};};}
31+{config = α; lib = γ; pkgs = μ;} ->
32+{config = η; options = {services = {clipmenu = {enable = δ; package = κ;};};};}
test/golden/importless/clippy.txt+28−26
@@ -1,44 +1,46 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ.
22( α.isDarwin = β,
33 α.lib = γ,
4− δ.buildRustPackage =
5− { RUSTC_BOOTSTRAP = Number;
4+ α.optionalString = δ -> String -> ε,
5+ α.optionals = β -> [ζ] -> [η],
6+ θ.buildRustPackage =
7+ { RUSTC_BOOTSTRAP = Integer;
68 buildAndTestSubdir = String;
7− buildInputs = [ε];
9+ buildInputs = [η];
810 cargoVendorDir = String;
911 doCheck = Bool;
1012 dontUpdateAutotoolsGnuConfigScripts = Bool;
1113 meta =
1214 { description = String;
1315 homepage = String;
14− license = [ζ];
15− maintainers = [η];
16− platforms = θ;
16+ license = [ι];
17+ maintainers = [κ];
18+ platforms = λ;
1719 };
1820 name = String;
19− preFixup = ι;
20− src = κ;
21− version = λ;
21+ preFixup = ε;
22+ src = μ;
23+ version = ν;
2224 } ->
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 -> ι
25+ ξ,
26+ η.llvm = η,
27+ η.src = μ,
28+ η.version = ν,
29+ ο.lib = α,
30+ γ.asl20 = ι,
31+ γ.basvandijk = κ,
32+ γ.licenses = π,
33+ γ.maintainers = ρ,
34+ γ.mit = ι,
35+ γ.platforms = σ,
36+ σ.unix = λ,
37+ τ.lib = α
3638) =>
37−{ Security = ν;
39+{ Security = ζ;
3840 lib = υ;
3941 patchelf = φ;
40− rustPlatform = δ;
41− rustc = ε;
42+ rustPlatform = θ;
43+ rustc = η;
4244 stdenv = α;
4345} ->
44−μ
46+ξ
test/golden/importless/clooj.txt+6−6
@@ -1,21 +1,21 @@
11∀ α β γ δ ε ζ η θ.
2−( α.lib = β,
2+( α.bsd3 = β,
33 α.mkDerivation =
44 { buildInputs = [γ];
55 installPhase = String;
66 jar = δ;
7− meta = {description = String; homepage = String; license = ε;};
7+ meta = {description = String; homepage = String; license = β;};
88 phases = String;
99 pname = String;
1010 version = String;
1111 } ->
12− ζ,
13− β.licenses = η,
14− η.bsd3 = ε
12+ ε,
13+ ζ.licenses = α,
14+ η.lib = ζ
1515) =>
1616{ fetchurl = {sha256 = String; url = String;} -> δ;
1717 jre = θ;
1818 makeWrapper = γ;
1919 stdenv = α;
2020} ->
21−ζ
21+ε
test/golden/importless/closer-mop.txt+4−4
@@ -1,11 +1,11 @@
1−∀ β γ.
2−(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
1+∀ β.
2+{fetchurl = {sha256 = String; url = String;} -> β;} ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. [α];
5+ deps = ∀ α. α;
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
9− src = γ;
9+ src = β;
1010 version = String;
1111}
test/golden/importless/closure-common.txtdeleted−17
@@ -1,17 +0,0 @@
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.txtdeleted−19
@@ -1,19 +0,0 @@
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/clsql-postgresql-socket.txtdeleted−16
@@ -1,16 +0,0 @@
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.txtdeleted−16
@@ -1,16 +0,0 @@
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.txtdeleted−16
@@ -1,16 +0,0 @@
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.txtdeleted−15
@@ -1,15 +0,0 @@
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.txtdeleted−11
@@ -1,11 +0,0 @@
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.txtdeleted−17
@@ -1,17 +0,0 @@
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.txtdeleted−25
@@ -1,25 +0,0 @@
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.txtdeleted−12
@@ -1,12 +0,0 @@
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.txt+1−1
@@ -5,7 +5,7 @@
55 nativeBuildInputs = [ε];
66 pname = String;
77 prePatch = String;
8− setupHook = String;
8+ setupHook = Path;
99 src = ζ;
1010 version = String;
1111 } ->
test/golden/importless/coda.txt+6−6
@@ -1,16 +1,16 @@
11∀ α β γ δ ε ζ η.
2−( α.licenses = β,
3− α.maintainers = γ,
4− β.bsd3 = δ,
5− γ.brainrape = ε
2+( α.brainrape = β,
3+ α.bsd3 = γ,
4+ δ.licenses = α,
5+ ε.maintainers = α
66) =>
77{ build-idris-package =
88 { ipkgName = String;
99 meta =
1010 { description = String;
1111 homepage = String;
12− license = δ;
13− maintainers = [ε];
12+ license = γ;
13+ maintainers = [β];
1414 };
1515 name = String;
1616 src = ζ;
test/golden/importless/cohttp.txt+1−1
@@ -1,5 +1,5 @@
11∀ β γ δ ε ζ η θ ι κ λ.
2−( β // {description = String;} ~ γ,
2+( (β) // ({description = String;}) ~ (γ),
33 δ.optionals = Bool -> [ε] -> ζ,
44 η.meta = β,
55 η.src = θ,
test/golden/importless/collectors.txtdeleted−19
@@ -1,19 +0,0 @@
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.txt+13−15
@@ -1,23 +1,21 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
6− γ.mkEnableOption = String -> ζ,
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.colord = β,
3+ γ.mkEnableOption = String -> δ,
74 γ.mkIf =
8− η ->
9− { environment = {systemPackages = [θ];};
10− services = {dbus = {packages = [ι];}; udev = {packages = [κ];};};
11− systemd = {packages = [λ]; tmpfiles = {packages = [μ];};};
5+ ε ->
6+ { environment = {systemPackages = [ζ];};
7+ services = {dbus = {packages = [η];}; udev = {packages = [θ];};};
8+ systemd = {packages = [ι]; tmpfiles = {packages = [κ];};};
129 users =
1310 { groups = {colord = {};};
1411 users =
1512 {colord = {group = String; home = String; isSystemUser = Bool;};};
1613 };
1714 } ->
18− ν,
19− δ.colord = θ,
20− ε.colord = ξ,
21− ξ.enable = η
15+ λ,
16+ μ.colord = ζ,
17+ β.enable = ε,
18+ ν.services = α
2219) =>
23−α -> {config = ν; options = {services = {colord = {enable = ζ;};};};}
20+{config = α; lib = γ; pkgs = μ;} ->
21+{config = λ; options = {services = {colord = {enable = δ;};};};}
test/golden/importless/combinators.txt+1−1
@@ -1,5 +1,5 @@
11∀ β γ δ ε ζ η θ.
2−( β // {description = String;} ~ γ,
2+( (β) // ({description = String;}) ~ (γ),
33 δ.meta = β,
44 δ.src = ε,
55 δ.version = ζ
test/golden/importless/command-line-arguments.txt+4−4
@@ -1,11 +1,11 @@
1−∀ β γ.
2−(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
1+∀ β.
2+{fetchurl = {sha256 = String; url = String;} -> β;} ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. [α];
5+ deps = ∀ α. α;
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
9− src = γ;
9+ src = β;
1010 version = String;
1111}
test/golden/importless/common-path.txt+3−4
@@ -1,6 +1,6 @@
11∀ α β γ δ.
22( α.bash = β,
3− α.bzip2 = γ,
3+ α.bin = β,
44 α.coreutils = β,
55 α.diffutils = β,
66 α.findutils = β,
@@ -11,8 +11,7 @@
1111 α.gnutar = β,
1212 α.gzip = β,
1313 α.patch = β,
14− α.xz = δ,
15− γ.bin = β,
16− δ.bin = β
14+ γ.bzip2 = α,
15+ δ.xz = α
1716) =>
1817{pkgs = α;} -> [β]
test/golden/importless/common.txt+15−16
@@ -1,26 +1,25 @@
1−∀ θ ι.
2−(θ.system = ι) => θ ->
1+∀ η.
2+{system = η;} ->
33{ baseConfig =
4− ∀ β γ δ ε ζ η.
5− ( β.pkgs = γ,
6− γ.jq = δ,
7− γ.makeWrapper = ε,
8− γ.stdenv = ζ,
9− γ.writeTextDir = String -> String -> η,
10− ζ.mkDerivation =
11− { buildInputs = [ε];
4+ ∀ β γ δ ε ζ.
5+ ( β.jq = γ,
6+ β.makeWrapper = δ,
7+ β.mkDerivation =
8+ { buildInputs = [δ];
129 dontUnpack = Bool;
1310 installPhase = String;
1411 name = String;
1512 postFixup = String;
1613 } ->
17− δ
14+ γ,
15+ β.writeTextDir = String -> String -> ε,
16+ ζ.stdenv = β
1817 ) =>
19− β ->
20− { environment = {systemPackages = [δ];};
18+ {pkgs = β;} ->
19+ { environment = {systemPackages = [γ];};
2120 nix =
22− { binaryCaches = ∀ α. [α];
23− buildMachines = [{hostName = String; systems = [ι];}];
21+ { binaryCaches = ∀ α. α;
22+ buildMachines = [{hostName = String; systems = [η];}];
2423 distributedBuilds = Bool;
2524 };
2625 services =
@@ -33,6 +32,6 @@
3332 postfix = {enable = Bool;};
3433 };
3534 time = {timeZone = String;};
36− virtualisation = {memorySize = Number;};
35+ virtualisation = {memorySize = Integer;};
3736 };
3837}
test/golden/importless/community.txtdeleted−88
@@ -1,88 +0,0 @@
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.txt+6−6
@@ -1,15 +1,15 @@
11∀ α β γ δ ε ζ η.
2−( α.licenses = β,
3− α.maintainers = γ,
4− β.bsd3 = δ,
5− γ.brainrape = ε
2+( α.brainrape = β,
3+ α.bsd3 = γ,
4+ δ.licenses = α,
5+ ε.maintainers = α
66) =>
77{ build-idris-package =
88 { meta =
99 { description = String;
1010 homepage = String;
11− license = δ;
12− maintainers = [ε];
11+ license = γ;
12+ maintainers = [β];
1313 };
1414 name = String;
1515 src = ζ;
test/golden/importless/compiler-rt.txt+50−44
@@ -1,55 +1,61 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1 δ1 ε1 ζ1 η1 θ1 ι1 κ1
2−λ1 μ1.
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β2 γ3 δ4 ε5 ζ6 η7 θ8 ι9 κ10
2+λ11.
33( α.hostPlatform = β,
4− β.?useLLVM = Bool,
5− α.isDarwin = γ,
6− α.lib = δ,
4+ α.isAarch32 = γ,
5+ α.isDarwin = δ,
6+ α.isMusl = ε,
7+ α.isWasm = Bool,
8+ α.libc = String,
79 α.mkDerivation =
810 { NIX_CFLAGS_COMPILE = [String];
9− buildInputs = ε;
11+ buildInputs = ζ;
1012 cmakeFlags = [String];
1113 enableParallelBuilding = Bool;
12− nativeBuildInputs = [ζ];
14+ nativeBuildInputs = [η];
1315 outputs = [String];
14− patches = [String];
16+ patches = [Path];
1517 pname = String;
16− postInstall = η;
17− postPatch = θ;
18− src = ι;
19− version = κ;
18+ postInstall = θ;
19+ postPatch = ι;
20+ src = κ;
21+ version = λ;
2022 } ->
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) ~ θ
23+ μ,
24+ α.name = String,
25+ α.optional = δ -> ν -> ζ,
26+ α.optionalString = Bool -> String -> θ,
27+ α.optionals = Bool -> [String] -> [String],
28+ α.useLLVM = Bool,
29+ ξ.hostPlatform = α,
30+ β.isMusl = Bool,
31+ ο.kernel = α,
32+ π.parsed = ο,
33+ ρ.hostPlatform = π,
34+ σ.lib = α,
35+ τ.hostPlatform = α,
36+ υ.lib = α,
37+ φ.lib = α,
38+ χ.lib = α,
39+ ψ.lib = α,
40+ ω.lib = α,
41+ α1.hostPlatform = α,
42+ β2.lib = α,
43+ γ3.hostPlatform = α,
44+ δ4.lib = α,
45+ ε5.hostPlatform = α,
46+ ζ6.lib = α,
47+ η7.hostPlatform = α,
48+ θ8.hostPlatform = α,
49+ ι9.lib = α,
50+ κ10.lib = α,
51+ λ11.lib = α
4652) =>
47−{ cmake = ζ;
48− fetch = String -> String -> ι;
49− libcxxabi = ρ;
50− llvm = ζ;
51− python3 = ζ;
53+{ cmake = η;
54+ fetch = String -> String -> κ;
55+ libcxxabi = ν;
56+ llvm = η;
57+ python3 = η;
5258 stdenv = α;
53− version = κ;
59+ version = λ;
5460} ->
55−λ
61+μ
test/golden/importless/compiler.txt+7−7
@@ -1,17 +1,17 @@
11∀ β γ δ ε ζ η θ ι κ λ.
2−( β.licenses = γ,
3− β.maintainers = δ,
4− γ.gpl2 = ε,
5− δ.vbgl = ζ
2+( β.gpl2 = γ,
3+ β.vbgl = δ,
4+ ε.licenses = β,
5+ ζ.maintainers = β
66) =>
77{ buildDunePackage =
88 { buildInputs = [η];
9− configurePlatforms = ∀ α. [α];
9+ configurePlatforms = ∀ α. α;
1010 meta =
1111 { description = String;
1212 homepage = String;
13− license = ε;
14− maintainers = [ζ];
13+ license = γ;
14+ maintainers = [δ];
1515 };
1616 nativeBuildInputs = [θ];
1717 pname = String;
test/golden/importless/component-packages.txt+671−671
@@ -1,36 +1,36 @@
11{ components =
2− { abode = ∀ α β. α -> [β];
3− accuweather = ∀ α β. α -> [β];
2+ { abode = ∀ α β. α -> β;
3+ accuweather = ∀ α β. α -> β;
44 acer_projector = ∀ α β. (α.pyserial = β) => α -> [β];
5− acmeda = ∀ α β. α -> [β];
6− actiontec = ∀ α β. α -> [β];
7− adguard = ∀ α β. α -> [β];
8− ads = ∀ α β. α -> [β];
9− aftership = ∀ α β. α -> [β];
10− agent_dvr = ∀ α β. α -> [β];
11− air_quality = ∀ α β. α -> [β];
12− airly = ∀ α β. α -> [β];
5+ acmeda = ∀ α β. α -> β;
6+ actiontec = ∀ α β. α -> β;
7+ adguard = ∀ α β. α -> β;
8+ ads = ∀ α β. α -> β;
9+ aftership = ∀ α β. α -> β;
10+ agent_dvr = ∀ α β. α -> β;
11+ air_quality = ∀ α β. α -> β;
12+ airly = ∀ α β. α -> β;
1313 airvisual = ∀ α β. (α.pyairvisual = β) => α -> [β];
14− aladdin_connect = ∀ α β. α -> [β];
15− alarm_control_panel = ∀ α β. α -> [β];
16− alarmdecoder = ∀ α β. α -> [β];
17− alert = ∀ α β. α -> [β];
14+ aladdin_connect = ∀ α β. α -> β;
15+ alarm_control_panel = ∀ α β. α -> β;
16+ alarmdecoder = ∀ α β. α -> β;
17+ alert = ∀ α β. α -> β;
1818 alexa = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
1919 almond = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
20− alpha_vantage = ∀ α β. α -> [β];
20+ alpha_vantage = ∀ α β. α -> β;
2121 amazon_polly = ∀ α β. (α.boto3 = β) => α -> [β];
2222 ambiclimate = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
23− ambient_station = ∀ α β. α -> [β];
23+ ambient_station = ∀ α β. α -> β;
2424 amcrest = ∀ α β. (α.ha-ffmpeg = β) => α -> [β];
25− ampio = ∀ α β. α -> [β];
26− android_ip_webcam = ∀ α β. α -> [β];
27− androidtv = ∀ α β. α -> [β];
28− anel_pwrctrl = ∀ α β. α -> [β];
29− anthemav = ∀ α β. α -> [β];
25+ ampio = ∀ α β. α -> β;
26+ android_ip_webcam = ∀ α β. α -> β;
27+ androidtv = ∀ α β. α -> β;
28+ anel_pwrctrl = ∀ α β. α -> β;
29+ anthemav = ∀ α β. α -> β;
3030 apache_kafka = ∀ α β. (α.aiokafka = β) => α -> [β];
31− apcupsd = ∀ α β. α -> [β];
31+ apcupsd = ∀ α β. α -> β;
3232 api = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
33− apns = ∀ α β. α -> [β];
33+ apns = ∀ α β. α -> β;
3434 apple_tv =
3535 ∀ α β.
3636 ( α.aiohttp-cors = β,
@@ -40,71 +40,71 @@
4040 ) =>
4141 α -> [β];
4242 apprise = ∀ α β. (α.apprise = β) => α -> [β];
43− aprs = ∀ α β. α -> [β];
44− aqualogic = ∀ α β. α -> [β];
45− aquostv = ∀ α β. α -> [β];
46− arcam_fmj = ∀ α β. α -> [β];
47− arduino = ∀ α β. α -> [β];
48− arest = ∀ α β. α -> [β];
43+ aprs = ∀ α β. α -> β;
44+ aqualogic = ∀ α β. α -> β;
45+ aquostv = ∀ α β. α -> β;
46+ arcam_fmj = ∀ α β. α -> β;
47+ arduino = ∀ α β. α -> β;
48+ arest = ∀ α β. α -> β;
4949 arlo = ∀ α β. (α.ha-ffmpeg = β) => α -> [β];
50− arris_tg2492lg = ∀ α β. α -> [β];
50+ arris_tg2492lg = ∀ α β. α -> β;
5151 aruba = ∀ α β. (α.pexpect = β) => α -> [β];
5252 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 = ∀ α β. α -> [β];
53+ asterisk_cdr = ∀ α β. α -> β;
54+ asterisk_mbox = ∀ α β. α -> β;
55+ asuswrt = ∀ α β. α -> β;
56+ atag = ∀ α β. α -> β;
57+ aten_pe = ∀ α β. α -> β;
58+ atome = ∀ α β. α -> β;
59+ august = ∀ α β. α -> β;
60+ aurora = ∀ α β. α -> β;
61+ aurora_abb_powerone = ∀ α β. α -> β;
6262 auth = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
6363 automation = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
64− avea = ∀ α β. α -> [β];
65− avion = ∀ α β. α -> [β];
64+ avea = ∀ α β. α -> β;
65+ avion = ∀ α β. α -> β;
6666 avri = ∀ α β. (α.pycountry = β) => α -> [β];
67− awair = ∀ α β. α -> [β];
68− aws = ∀ α β. α -> [β];
67+ awair = ∀ α β. α -> β;
68+ aws = ∀ α β. α -> β;
6969 axis = ∀ α β. (α.aiohttp-cors = β, α.paho-mqtt = β) => α -> [β];
70− azure_devops = ∀ α β. α -> [β];
71− azure_event_hub = ∀ α β. α -> [β];
70+ azure_devops = ∀ α β. α -> β;
71+ azure_event_hub = ∀ α β. α -> β;
7272 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 = ∀ α β. α -> [β];
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 = ∀ α β. α -> β;
8585 blinksticklight = ∀ α β. (α.BlinkStick = β) => α -> [β];
86− blinkt = ∀ α β. α -> [β];
87− blockchain = ∀ α β. α -> [β];
88− bloomsky = ∀ α β. α -> [β];
86+ blinkt = ∀ α β. α -> β;
87+ blockchain = ∀ α β. α -> β;
88+ bloomsky = ∀ α β. α -> β;
8989 bluesound = ∀ α β. (α.xmltodict = β) => α -> [β];
90− bluetooth_le_tracker = ∀ α β. α -> [β];
90+ bluetooth_le_tracker = ∀ α β. α -> β;
9191 bluetooth_tracker = ∀ α β. (α.bt_proximity = β) => α -> [β];
92− bme280 = ∀ α β. α -> [β];
93− bme680 = ∀ α β. α -> [β];
94− bmp280 = ∀ α β. α -> [β];
95− bmw_connected_drive = ∀ α β. α -> [β];
96− bom = ∀ α β. α -> [β];
97− bond = ∀ α β. α -> [β];
92+ bme280 = ∀ α β. α -> β;
93+ bme680 = ∀ α β. α -> β;
94+ bmp280 = ∀ α β. α -> β;
95+ bmw_connected_drive = ∀ α β. α -> β;
96+ bom = ∀ α β. α -> β;
97+ bond = ∀ α β. α -> β;
9898 braviatv = ∀ α β. (α.bravia-tv = β) => α -> [β];
9999 broadlink = ∀ α β. (α.broadlink = β) => α -> [β];
100100 brother = ∀ α β. (α.brother = β) => α -> [β];
101− brottsplatskartan = ∀ α β. α -> [β];
102− browser = ∀ α β. α -> [β];
103− brunt = ∀ α β. α -> [β];
104− bsblan = ∀ α β. α -> [β];
105− bt_home_hub_5 = ∀ α β. α -> [β];
106− bt_smarthub = ∀ α β. α -> [β];
107− buienradar = ∀ α β. α -> [β];
101+ brottsplatskartan = ∀ α β. α -> β;
102+ browser = ∀ α β. α -> β;
103+ brunt = ∀ α β. α -> β;
104+ bsblan = ∀ α β. α -> β;
105+ bt_home_hub_5 = ∀ α β. α -> β;
106+ bt_smarthub = ∀ α β. α -> β;
107+ buienradar = ∀ α β. α -> β;
108108 caldav = ∀ α β. (α.caldav = β) => α -> [β];
109109 calendar = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
110110 camera = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
@@ -117,50 +117,50 @@
117117 α.zeroconf = β
118118 ) =>
119119 α -> [β];
120− cert_expiry = ∀ α β. α -> [β];
121− channels = ∀ α β. α -> [β];
122− circuit = ∀ α β. α -> [β];
120+ cert_expiry = ∀ α β. α -> β;
121+ channels = ∀ α β. α -> β;
122+ circuit = ∀ α β. α -> β;
123123 cisco_ios = ∀ α β. (α.pexpect = β) => α -> [β];
124− cisco_mobility_express = ∀ α β. α -> [β];
125− cisco_webex_teams = ∀ α β. α -> [β];
126− citybikes = ∀ α β. α -> [β];
127− clementine = ∀ α β. α -> [β];
128− clickatell = ∀ α β. α -> [β];
129− clicksend = ∀ α β. α -> [β];
130− clicksend_tts = ∀ α β. α -> [β];
131− climate = ∀ α β. α -> [β];
124+ cisco_mobility_express = ∀ α β. α -> β;
125+ cisco_webex_teams = ∀ α β. α -> β;
126+ citybikes = ∀ α β. α -> β;
127+ clementine = ∀ α β. α -> β;
128+ clickatell = ∀ α β. α -> β;
129+ clicksend = ∀ α β. α -> β;
130+ clicksend_tts = ∀ α β. α -> β;
131+ climate = ∀ α β. α -> β;
132132 cloud = ∀ α β. (α.aiohttp-cors = β, α.hass-nabucasa = β) => α -> [β];
133− cloudflare = ∀ α β. α -> [β];
134− cmus = ∀ α β. α -> [β];
135− co2signal = ∀ α β. α -> [β];
136− coinbase = ∀ α β. α -> [β];
133+ cloudflare = ∀ α β. α -> β;
134+ cmus = ∀ α β. α -> β;
135+ co2signal = ∀ α β. α -> β;
136+ coinbase = ∀ α β. α -> β;
137137 coinmarketcap = ∀ α β. (α.coinmarketcap = β) => α -> [β];
138− comed_hourly_pricing = ∀ α β. α -> [β];
139− comfoconnect = ∀ α β. α -> [β];
140− command_line = ∀ α β. α -> [β];
141− concord232 = ∀ α β. α -> [β];
138+ comed_hourly_pricing = ∀ α β. α -> β;
139+ comfoconnect = ∀ α β. α -> β;
140+ command_line = ∀ α β. α -> β;
141+ concord232 = ∀ α β. α -> β;
142142 config = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
143− configurator = ∀ α β. α -> [β];
144− control4 = ∀ α β. α -> [β];
143+ configurator = ∀ α β. α -> β;
144+ control4 = ∀ α β. α -> β;
145145 conversation = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
146− coolmaster = ∀ α β. α -> [β];
147− coronavirus = ∀ α β. α -> [β];
148− counter = ∀ α β. α -> [β];
149− cover = ∀ α β. α -> [β];
150− cppm_tracker = ∀ α β. α -> [β];
146+ coolmaster = ∀ α β. α -> β;
147+ coronavirus = ∀ α β. α -> β;
148+ counter = ∀ α β. α -> β;
149+ cover = ∀ α β. α -> β;
150+ cppm_tracker = ∀ α β. α -> β;
151151 cpuspeed = ∀ α β. (α.py-cpuinfo = β) => α -> [β];
152− crimereports = ∀ α β. α -> [β];
152+ crimereports = ∀ α β. α -> β;
153153 cups = ∀ α β. (α.pycups = β) => α -> [β];
154− currencylayer = ∀ α β. α -> [β];
155− daikin = ∀ α β. α -> [β];
156− danfoss_air = ∀ α β. α -> [β];
154+ currencylayer = ∀ α β. α -> β;
155+ daikin = ∀ α β. α -> β;
156+ danfoss_air = ∀ α β. α -> β;
157157 darksky = ∀ α β. (α.python-forecastio = β) => α -> [β];
158158 datadog = ∀ α β. (α.datadog = β) => α -> [β];
159− ddwrt = ∀ α β. α -> [β];
159+ ddwrt = ∀ α β. α -> β;
160160 debugpy = ∀ α β. (α.debugpy = β) => α -> [β];
161− deconz = ∀ α β. α -> [β];
161+ deconz = ∀ α β. α -> β;
162162 decora = ∀ α β. (α.bluepy = β) => α -> [β];
163− decora_wifi = ∀ α β. α -> [β];
163+ decora_wifi = ∀ α β. α -> β;
164164 default_config =
165165 ∀ α β.
166166 ( α.aiohttp-cors = β,
@@ -174,157 +174,157 @@
174174 α.zeroconf = β
175175 ) =>
176176 α -> [β];
177− delijn = ∀ α β. α -> [β];
177+ delijn = ∀ α β. α -> β;
178178 deluge = ∀ α β. (α.deluge-client = β) => α -> [β];
179179 demo = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
180− denon = ∀ α β. α -> [β];
180+ denon = ∀ α β. α -> β;
181181 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 = ∀ α β. α -> [β];
182+ derivative = ∀ α β. α -> β;
183+ deutsche_bahn = ∀ α β. α -> β;
184+ device_automation = ∀ α β. α -> β;
185+ device_sun_light_trigger = ∀ α β. α -> β;
186+ device_tracker = ∀ α β. α -> β;
187+ devolo_home_control = ∀ α β. α -> β;
188+ dexcom = ∀ α β. α -> β;
189+ dht = ∀ α β. α -> β;
190190 dialogflow = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
191191 digital_ocean = ∀ α β. (α.digital-ocean = β) => α -> [β];
192− digitalloggers = ∀ α β. α -> [β];
193− directv = ∀ α β. α -> [β];
192+ digitalloggers = ∀ α β. α -> β;
193+ directv = ∀ α β. α -> β;
194194 discogs = ∀ α β. (α.discogs_client = β) => α -> [β];
195195 discord = ∀ α β. (α.discordpy = β) => α -> [β];
196196 discovery =
197197 ∀ α β. (α.aiohttp-cors = β, α.netdisco = β, α.zeroconf = β) => α -> [β];
198198 dlib_face_detect = ∀ α β. (α.face_recognition = β) => α -> [β];
199199 dlib_face_identify = ∀ α β. (α.face_recognition = β) => α -> [β];
200− dlink = ∀ α β. α -> [β];
200+ dlink = ∀ α β. α -> β;
201201 dlna_dmr = ∀ α β. (α.async-upnp-client = β) => α -> [β];
202202 dnsip = ∀ α β. (α.aiodns = β) => α -> [β];
203203 dominos = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
204204 doods = ∀ α β. (α.pillow = β) => α -> [β];
205205 doorbird = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
206− dovado = ∀ α β. α -> [β];
207− downloader = ∀ α β. α -> [β];
208− dsmr = ∀ α β. α -> [β];
206+ dovado = ∀ α β. α -> β;
207+ downloader = ∀ α β. α -> β;
208+ dsmr = ∀ α β. α -> β;
209209 dsmr_reader = ∀ α β. (α.aiohttp-cors = β, α.paho-mqtt = β) => α -> [β];
210− dte_energy_bridge = ∀ α β. α -> [β];
211− dublin_bus_transport = ∀ α β. α -> [β];
212− duckdns = ∀ α β. α -> [β];
213− dunehd = ∀ α β. α -> [β];
210+ dte_energy_bridge = ∀ α β. α -> β;
211+ dublin_bus_transport = ∀ α β. α -> β;
212+ duckdns = ∀ α β. α -> β;
213+ dunehd = ∀ α β. α -> β;
214214 dwd_weather_warnings =
215215 ∀ α β. (α.jsonpath = β, α.xmltodict = β) => α -> [β];
216− dweet = ∀ α β. α -> [β];
217− dynalite = ∀ α β. α -> [β];
216+ dweet = ∀ α β. α -> β;
217+ dynalite = ∀ α β. α -> β;
218218 dyson = ∀ α β. (α.aiohttp-cors = β, α.zeroconf = β) => α -> [β];
219− ebox = ∀ α β. α -> [β];
220− ebusd = ∀ α β. α -> [β];
221− ecoal_boiler = ∀ α β. α -> [β];
222− ecobee = ∀ α β. α -> [β];
223− econet = ∀ α β. α -> [β];
224− ecovacs = ∀ α β. α -> [β];
219+ ebox = ∀ α β. α -> β;
220+ ebusd = ∀ α β. α -> β;
221+ ecoal_boiler = ∀ α β. α -> β;
222+ ecobee = ∀ α β. α -> β;
223+ econet = ∀ α β. α -> β;
224+ ecovacs = ∀ α β. α -> β;
225225 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 = ∀ α β. α -> [β];
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 = ∀ α β. α -> β;
239239 emulated_hue = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
240− emulated_roku = ∀ α β. α -> [β];
240+ emulated_roku = ∀ α β. α -> β;
241241 enigma2 = ∀ α β. (α.openwebifpy = β) => α -> [β];
242− enocean = ∀ α β. α -> [β];
243− enphase_envoy = ∀ α β. α -> [β];
244− entur_public_transport = ∀ α β. α -> [β];
245− environment_canada = ∀ α β. α -> [β];
246− envirophat = ∀ α β. α -> [β];
247− envisalink = ∀ α β. α -> [β];
248− ephember = ∀ α β. α -> [β];
249− epson = ∀ α β. α -> [β];
250− epsonworkforce = ∀ α β. α -> [β];
242+ enocean = ∀ α β. α -> β;
243+ enphase_envoy = ∀ α β. α -> β;
244+ entur_public_transport = ∀ α β. α -> β;
245+ environment_canada = ∀ α β. α -> β;
246+ envirophat = ∀ α β. α -> β;
247+ envisalink = ∀ α β. α -> β;
248+ ephember = ∀ α β. α -> β;
249+ epson = ∀ α β. α -> β;
250+ epsonworkforce = ∀ α β. α -> β;
251251 eq3btsmart = ∀ α β. (α.construct = β) => α -> [β];
252252 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 = ∀ α β. α -> [β];
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 = ∀ α β. α -> β;
266266 ffmpeg = ∀ α β. (α.ha-ffmpeg = β) => α -> [β];
267267 ffmpeg_motion = ∀ α β. (α.ha-ffmpeg = β) => α -> [β];
268268 ffmpeg_noise = ∀ α β. (α.ha-ffmpeg = β) => α -> [β];
269− fibaro = ∀ α β. α -> [β];
270− fido = ∀ α β. α -> [β];
271− file = ∀ α β. α -> [β];
272− filesize = ∀ α β. α -> [β];
269+ fibaro = ∀ α β. α -> β;
270+ fido = ∀ α β. α -> β;
271+ file = ∀ α β. α -> β;
272+ filesize = ∀ α β. α -> β;
273273 filter = ∀ α β. (α.aiohttp-cors = β, α.sqlalchemy = β) => α -> [β];
274274 fints = ∀ α β. (α.fints = β) => α -> [β];
275− firmata = ∀ α β. α -> [β];
275+ firmata = ∀ α β. α -> β;
276276 fitbit = ∀ α β. (α.aiohttp-cors = β, α.fitbit = β) => α -> [β];
277− fixer = ∀ α β. α -> [β];
278− fleetgo = ∀ α β. α -> [β];
279− flexit = ∀ α β. α -> [β];
280− flic = ∀ α β. α -> [β];
281− flick_electric = ∀ α β. α -> [β];
282− flock = ∀ α β. α -> [β];
283− flume = ∀ α β. α -> [β];
284− flunearyou = ∀ α β. α -> [β];
285− flux = ∀ α β. α -> [β];
277+ fixer = ∀ α β. α -> β;
278+ fleetgo = ∀ α β. α -> β;
279+ flexit = ∀ α β. α -> β;
280+ flic = ∀ α β. α -> β;
281+ flick_electric = ∀ α β. α -> β;
282+ flock = ∀ α β. α -> β;
283+ flume = ∀ α β. α -> β;
284+ flunearyou = ∀ α β. α -> β;
285+ flux = ∀ α β. α -> β;
286286 flux_led = ∀ α β. (α.flux-led = β) => α -> [β];
287− folder = ∀ α β. α -> [β];
287+ folder = ∀ α β. α -> β;
288288 folder_watcher = ∀ α β. (α.watchdog = β) => α -> [β];
289− foobot = ∀ α β. α -> [β];
290− forked_daapd = ∀ α β. α -> [β];
291− fortios = ∀ α β. α -> [β];
292− foscam = ∀ α β. α -> [β];
289+ foobot = ∀ α β. α -> β;
290+ forked_daapd = ∀ α β. α -> β;
291+ fortios = ∀ α β. α -> β;
292+ foscam = ∀ α β. α -> β;
293293 foursquare = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
294− free_mobile = ∀ α β. α -> [β];
294+ free_mobile = ∀ α β. α -> β;
295295 freebox =
296296 ∀ α β. (α.aiohttp-cors = β, α.netdisco = β, α.zeroconf = β) => α -> [β];
297− freedns = ∀ α β. α -> [β];
297+ freedns = ∀ α β. α -> β;
298298 fritz = ∀ α β. (α.fritzconnection = β) => α -> [β];
299299 fritzbox = ∀ α β. (α.pyfritzhome = β) => α -> [β];
300300 fritzbox_callmonitor = ∀ α β. (α.fritzconnection = β) => α -> [β];
301301 fritzbox_netmonitor = ∀ α β. (α.fritzconnection = β) => α -> [β];
302− fronius = ∀ α β. α -> [β];
302+ fronius = ∀ α β. α -> β;
303303 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 = ∀ α β. α -> [β];
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 = ∀ α β. α -> β;
317317 geofency = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
318− geonetnz_quakes = ∀ α β. α -> [β];
319− geonetnz_volcano = ∀ α β. α -> [β];
320− gios = ∀ α β. α -> [β];
318+ geonetnz_quakes = ∀ α β. α -> β;
319+ geonetnz_volcano = ∀ α β. α -> β;
320+ gios = ∀ α β. α -> β;
321321 github = ∀ α β. (α.PyGithub = β) => α -> [β];
322322 gitlab_ci = ∀ α β. (α.python-gitlab = β) => α -> [β];
323− gitter = ∀ α β. α -> [β];
324− glances = ∀ α β. α -> [β];
325− gntp = ∀ α β. α -> [β];
326− goalfeed = ∀ α β. α -> [β];
327− gogogate2 = ∀ α β. α -> [β];
323+ gitter = ∀ α β. α -> β;
324+ glances = ∀ α β. α -> β;
325+ gntp = ∀ α β. α -> β;
326+ goalfeed = ∀ α β. α -> β;
327+ gogogate2 = ∀ α β. α -> β;
328328 google =
329329 ∀ α β.
330330 ( α.google_api_python_client = β,
@@ -334,45 +334,45 @@
334334 α -> [β];
335335 google_assistant = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
336336 google_cloud = ∀ α β. (α.google_cloud_texttospeech = β) => α -> [β];
337− google_domains = ∀ α β. α -> [β];
338− google_maps = ∀ α β. α -> [β];
337+ google_domains = ∀ α β. α -> β;
338+ google_maps = ∀ α β. α -> β;
339339 google_pubsub = ∀ α β. (α.google_cloud_pubsub = β) => α -> [β];
340340 google_translate = ∀ α β. (α.gtts-token = β) => α -> [β];
341− google_travel_time = ∀ α β. α -> [β];
342− google_wifi = ∀ α β. α -> [β];
341+ google_travel_time = ∀ α β. α -> β;
342+ google_wifi = ∀ α β. α -> β;
343343 gpmdp = ∀ α β. (α.websocket_client = β) => α -> [β];
344− gpsd = ∀ α β. α -> [β];
344+ gpsd = ∀ α β. α -> β;
345345 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 = ∀ α β. α -> [β];
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 = ∀ α β. α -> β;
358358 harmony = ∀ α β. (α.aioharmony = β) => α -> [β];
359359 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 = ∀ α β. α -> [β];
360+ haveibeenpwned = ∀ α β. α -> β;
361+ hddtemp = ∀ α β. α -> β;
362+ hdmi_cec = ∀ α β. α -> β;
363+ heatmiser = ∀ α β. α -> β;
364+ heos = ∀ α β. α -> β;
365+ here_travel_time = ∀ α β. α -> β;
366+ hikvision = ∀ α β. α -> β;
367+ hikvisioncam = ∀ α β. α -> β;
368+ hisense_aehw4a1 = ∀ α β. α -> β;
369369 history = ∀ α β. (α.aiohttp-cors = β, α.sqlalchemy = β) => α -> [β];
370370 history_stats = ∀ α β. (α.aiohttp-cors = β, α.sqlalchemy = β) => α -> [β];
371− hitron_coda = ∀ α β. α -> [β];
372− hive = ∀ α β. α -> [β];
373− hlk_sw16 = ∀ α β. α -> [β];
371+ hitron_coda = ∀ α β. α -> β;
372+ hive = ∀ α β. α -> β;
373+ hlk_sw16 = ∀ α β. α -> β;
374374 home_connect = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
375− homeassistant = ∀ α β. α -> [β];
375+ homeassistant = ∀ α β. α -> β;
376376 homekit =
377377 ∀ α β.
378378 ( α.HAP-python = β,
@@ -385,152 +385,152 @@
385385 homekit_controller =
386386 ∀ α β. (α.aiohttp-cors = β, α.zeroconf = β) => α -> [β];
387387 homematic = ∀ α β. (α.pyhomematic = β) => α -> [β];
388− homematicip_cloud = ∀ α β. α -> [β];
389− homeworks = ∀ α β. α -> [β];
390− honeywell = ∀ α β. α -> [β];
391− horizon = ∀ α β. α -> [β];
392− hp_ilo = ∀ α β. α -> [β];
388+ homematicip_cloud = ∀ α β. α -> β;
389+ homeworks = ∀ α β. α -> β;
390+ honeywell = ∀ α β. α -> β;
391+ horizon = ∀ α β. α -> β;
392+ hp_ilo = ∀ α β. α -> β;
393393 html5 = ∀ α β. (α.aiohttp-cors = β, α.pywebpush = β) => α -> [β];
394394 http = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
395− htu21d = ∀ α β. α -> [β];
395+ htu21d = ∀ α β. α -> β;
396396 huawei_lte = ∀ α β. (α.getmac = β, α.stringcase = β) => α -> [β];
397− huawei_router = ∀ α β. α -> [β];
397+ huawei_router = ∀ α β. α -> β;
398398 hue = ∀ α β. (α.aiohue = β) => α -> [β];
399− humidifier = ∀ α β. α -> [β];
400− hunterdouglas_powerview = ∀ α β. α -> [β];
401− hvv_departures = ∀ α β. α -> [β];
402− hydrawise = ∀ α β. α -> [β];
403− hyperion = ∀ α β. α -> [β];
404− ialarm = ∀ α β. α -> [β];
405− iammeter = ∀ α β. α -> [β];
406− iaqualink = ∀ α β. α -> [β];
399+ humidifier = ∀ α β. α -> β;
400+ hunterdouglas_powerview = ∀ α β. α -> β;
401+ hvv_departures = ∀ α β. α -> β;
402+ hydrawise = ∀ α β. α -> β;
403+ hyperion = ∀ α β. α -> β;
404+ ialarm = ∀ α β. α -> β;
405+ iammeter = ∀ α β. α -> β;
406+ iaqualink = ∀ α β. α -> β;
407407 icloud = ∀ α β. (α.pyicloud = β) => α -> [β];
408− idteck_prox = ∀ α β. α -> [β];
408+ idteck_prox = ∀ α β. α -> β;
409409 ifttt = ∀ α β. (α.aiohttp-cors = β, α.pyfttt = β) => α -> [β];
410− iglo = ∀ α β. α -> [β];
411− ign_sismologia = ∀ α β. α -> [β];
410+ iglo = ∀ α β. α -> β;
411+ ign_sismologia = ∀ α β. α -> β;
412412 ihc = ∀ α β. (α.defusedxml = β) => α -> [β];
413413 image_processing = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
414− imap = ∀ α β. α -> [β];
415− imap_email_content = ∀ α β. α -> [β];
416− incomfort = ∀ α β. α -> [β];
414+ imap = ∀ α β. α -> β;
415+ imap_email_content = ∀ α β. α -> β;
416+ incomfort = ∀ α β. α -> β;
417417 influxdb = ∀ α β. (α.influxdb = β, α.influxdb-client = β) => α -> [β];
418− input_boolean = ∀ α β. α -> [β];
419− input_datetime = ∀ α β. α -> [β];
420− input_number = ∀ α β. α -> [β];
421− input_select = ∀ α β. α -> [β];
422− input_text = ∀ α β. α -> [β];
423− insteon = ∀ α β. α -> [β];
424− integration = ∀ α β. α -> [β];
418+ input_boolean = ∀ α β. α -> β;
419+ input_datetime = ∀ α β. α -> β;
420+ input_number = ∀ α β. α -> β;
421+ input_select = ∀ α β. α -> β;
422+ input_text = ∀ α β. α -> β;
423+ insteon = ∀ α β. α -> β;
424+ integration = ∀ α β. α -> β;
425425 intent = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
426− intent_script = ∀ α β. α -> [β];
427− intesishome = ∀ α β. α -> [β];
426+ intent_script = ∀ α β. α -> β;
427+ intesishome = ∀ α β. α -> β;
428428 ios = ∀ α β. (α.aiohttp-cors = β, α.zeroconf = β) => α -> [β];
429− iota = ∀ α β. α -> [β];
430− iperf3 = ∀ α β. α -> [β];
431− ipma = ∀ α β. α -> [β];
429+ iota = ∀ α β. α -> β;
430+ iperf3 = ∀ α β. α -> β;
431+ ipma = ∀ α β. α -> β;
432432 ipp = ∀ α β. (α.pyipp = β) => α -> [β];
433433 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 = ∀ α β. α -> [β];
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 = ∀ α β. α -> β;
448448 kef = ∀ α β. (α.getmac = β) => α -> [β];
449− keyboard = ∀ α β. α -> [β];
449+ keyboard = ∀ α β. α -> β;
450450 keyboard_remote = ∀ α β. (α.evdev = β) => α -> [β];
451− kira = ∀ α β. α -> [β];
452− kiwi = ∀ α β. α -> [β];
453− knx = ∀ α β. α -> [β];
451+ kira = ∀ α β. α -> β;
452+ kiwi = ∀ α β. α -> β;
453+ knx = ∀ α β. α -> β;
454454 kodi = ∀ α β. (α.jsonrpc-async = β, α.jsonrpc-websocket = β) => α -> [β];
455455 konnected = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
456− kwb = ∀ α β. α -> [β];
457− lacrosse = ∀ α β. α -> [β];
458− lametric = ∀ α β. α -> [β];
459− lannouncer = ∀ α β. α -> [β];
456+ kwb = ∀ α β. α -> β;
457+ lacrosse = ∀ α β. α -> β;
458+ lametric = ∀ α β. α -> β;
459+ lannouncer = ∀ α β. α -> β;
460460 lastfm = ∀ α β. (α.pylast = β) => α -> [β];
461− launch_library = ∀ α β. α -> [β];
462− lcn = ∀ α β. α -> [β];
463− lg_netcast = ∀ α β. α -> [β];
464− lg_soundbar = ∀ α β. α -> [β];
465− life360 = ∀ α β. α -> [β];
461+ launch_library = ∀ α β. α -> β;
462+ lcn = ∀ α β. α -> β;
463+ lg_netcast = ∀ α β. α -> β;
464+ lg_soundbar = ∀ α β. α -> β;
465+ life360 = ∀ α β. α -> β;
466466 lifx = ∀ α β. (α.aiolifx = β, α.aiolifx-effects = β) => α -> [β];
467− lifx_cloud = ∀ α β. α -> [β];
468− lifx_legacy = ∀ α β. α -> [β];
469− light = ∀ α β. α -> [β];
470− lightwave = ∀ α β. α -> [β];
467+ lifx_cloud = ∀ α β. α -> β;
468+ lifx_legacy = ∀ α β. α -> β;
469+ light = ∀ α β. α -> β;
470+ lightwave = ∀ α β. α -> β;
471471 limitlessled = ∀ α β. (α.limitlessled = β) => α -> [β];
472− linksys_smart = ∀ α β. α -> [β];
472+ linksys_smart = ∀ α β. α -> β;
473473 linode = ∀ α β. (α.linode-api = β) => α -> [β];
474474 linux_battery = ∀ α β. (α.batinfo = β) => α -> [β];
475− lirc = ∀ α β. α -> [β];
476− litejet = ∀ α β. α -> [β];
477− llamalab_automate = ∀ α β. α -> [β];
478− local_file = ∀ α β. α -> [β];
479− local_ip = ∀ α β. α -> [β];
475+ lirc = ∀ α β. α -> β;
476+ litejet = ∀ α β. α -> β;
477+ llamalab_automate = ∀ α β. α -> β;
478+ local_file = ∀ α β. α -> β;
479+ local_ip = ∀ α β. α -> β;
480480 locative = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
481− lock = ∀ α β. α -> [β];
481+ lock = ∀ α β. α -> β;
482482 logbook = ∀ α β. (α.aiohttp-cors = β, α.sqlalchemy = β) => α -> [β];
483− logentries = ∀ α β. α -> [β];
484− logger = ∀ α β. α -> [β];
483+ logentries = ∀ α β. α -> β;
484+ logger = ∀ α β. α -> β;
485485 logi_circle = ∀ α β. (α.aiohttp-cors = β, α.ha-ffmpeg = β) => α -> [β];
486− london_air = ∀ α β. α -> [β];
487− london_underground = ∀ α β. α -> [β];
488− loopenergy = ∀ α β. α -> [β];
489− lovelace = ∀ α β. α -> [β];
486+ london_air = ∀ α β. α -> β;
487+ london_underground = ∀ α β. α -> β;
488+ loopenergy = ∀ α β. α -> β;
489+ lovelace = ∀ α β. α -> β;
490490 luci = ∀ α β. (α.openwrt-luci-rpc = β) => α -> [β];
491491 luftdaten = ∀ α β. (α.luftdaten = β) => α -> [β];
492− lupusec = ∀ α β. α -> [β];
493− lutron = ∀ α β. α -> [β];
494− lutron_caseta = ∀ α β. α -> [β];
495− lw12wifi = ∀ α β. α -> [β];
496− lyft = ∀ α β. α -> [β];
497− magicseaweed = ∀ α β. α -> [β];
492+ lupusec = ∀ α β. α -> β;
493+ lutron = ∀ α β. α -> β;
494+ lutron_caseta = ∀ α β. α -> β;
495+ lw12wifi = ∀ α β. α -> β;
496+ lyft = ∀ α β. α -> β;
497+ magicseaweed = ∀ α β. α -> β;
498498 mailbox = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
499499 mailgun = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
500− manual = ∀ α β. α -> [β];
500+ manual = ∀ α β. α -> β;
501501 manual_mqtt = ∀ α β. (α.aiohttp-cors = β, α.paho-mqtt = β) => α -> [β];
502502 map = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
503− marytts = ∀ α β. α -> [β];
504− mastodon = ∀ α β. α -> [β];
503+ marytts = ∀ α β. α -> β;
504+ mastodon = ∀ α β. α -> β;
505505 matrix = ∀ α β. (α.matrix-client = β) => α -> [β];
506− maxcube = ∀ α β. α -> [β];
507− mcp23017 = ∀ α β. α -> [β];
506+ maxcube = ∀ α β. α -> β;
507+ mcp23017 = ∀ α β. α -> β;
508508 media_extractor =
509509 ∀ α β. (α.aiohttp-cors = β, α.youtube-dl-light = β) => α -> [β];
510510 media_player = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
511− mediaroom = ∀ α β. α -> [β];
512− melcloud = ∀ α β. α -> [β];
513− melissa = ∀ α β. α -> [β];
511+ mediaroom = ∀ α β. α -> β;
512+ melcloud = ∀ α β. α -> β;
513+ melissa = ∀ α β. α -> β;
514514 meraki = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
515− message_bird = ∀ α β. α -> [β];
515+ message_bird = ∀ α β. α -> β;
516516 met = ∀ α β. (α.pymetno = β) => α -> [β];
517− meteo_france = ∀ α β. α -> [β];
518− meteoalarm = ∀ α β. α -> [β];
519− metoffice = ∀ α β. α -> [β];
520− mfi = ∀ α β. α -> [β];
521− mhz19 = ∀ α β. α -> [β];
522− microsoft = ∀ α β. α -> [β];
517+ meteo_france = ∀ α β. α -> β;
518+ meteoalarm = ∀ α β. α -> β;
519+ metoffice = ∀ α β. α -> β;
520+ mfi = ∀ α β. α -> β;
521+ mhz19 = ∀ α β. α -> β;
522+ microsoft = ∀ α β. α -> β;
523523 microsoft_face = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
524524 microsoft_face_detect = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
525525 microsoft_face_identify = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
526526 miflora = ∀ α β. (α.bluepy = β) => α -> [β];
527− mikrotik = ∀ α β. α -> [β];
528− mill = ∀ α β. α -> [β];
529− min_max = ∀ α β. α -> [β];
527+ mikrotik = ∀ α β. α -> β;
528+ mill = ∀ α β. α -> β;
529+ min_max = ∀ α β. α -> β;
530530 minecraft_server = ∀ α β. (α.aiodns = β, α.getmac = β) => α -> [β];
531531 minio = ∀ α β. (α.minio = β) => α -> [β];
532− mitemp_bt = ∀ α β. α -> [β];
533− mjpeg = ∀ α β. α -> [β];
532+ mitemp_bt = ∀ α β. α -> β;
533+ mjpeg = ∀ α β. α -> β;
534534 mobile_app =
535535 ∀ α β.
536536 ( α.aiohttp-cors = β,
@@ -539,13 +539,13 @@
539539 α.pynacl = β
540540 ) =>
541541 α -> [β];
542− mochad = ∀ α β. α -> [β];
543− modbus = ∀ α β. α -> [β];
544− modem_callerid = ∀ α β. α -> [β];
545− mold_indicator = ∀ α β. α -> [β];
546− monoprice = ∀ α β. α -> [β];
547− moon = ∀ α β. α -> [β];
548− mpchc = ∀ α β. α -> [β];
542+ mochad = ∀ α β. α -> β;
543+ modbus = ∀ α β. α -> β;
544+ modem_callerid = ∀ α β. α -> β;
545+ mold_indicator = ∀ α β. α -> β;
546+ monoprice = ∀ α β. α -> β;
547+ moon = ∀ α β. α -> β;
548+ mpchc = ∀ α β. α -> β;
549549 mpd = ∀ α β. (α.mpd2 = β) => α -> [β];
550550 mqtt = ∀ α β. (α.aiohttp-cors = β, α.paho-mqtt = β) => α -> [β];
551551 mqtt_eventstream =
@@ -554,89 +554,89 @@
554554 mqtt_room = ∀ α β. (α.aiohttp-cors = β, α.paho-mqtt = β) => α -> [β];
555555 mqtt_statestream =
556556 ∀ α β. (α.aiohttp-cors = β, α.paho-mqtt = β) => α -> [β];
557− msteams = ∀ α β. α -> [β];
557+ msteams = ∀ α β. α -> β;
558558 mvglive = ∀ α β. (α.PyMVGLive = β) => α -> [β];
559− mychevy = ∀ α β. α -> [β];
560− mycroft = ∀ α β. α -> [β];
561− myq = ∀ α β. α -> [β];
559+ mychevy = ∀ α β. α -> β;
560+ mycroft = ∀ α β. α -> β;
561+ myq = ∀ α β. α -> β;
562562 mysensors = ∀ α β. (α.aiohttp-cors = β, α.paho-mqtt = β) => α -> [β];
563563 mystrom = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
564− mythicbeastsdns = ∀ α β. α -> [β];
565− n26 = ∀ α β. α -> [β];
566− nad = ∀ α β. α -> [β];
564+ mythicbeastsdns = ∀ α β. α -> β;
565+ n26 = ∀ α β. α -> β;
566+ nad = ∀ α β. α -> β;
567567 namecheapdns = ∀ α β. (α.defusedxml = β) => α -> [β];
568568 nanoleaf = ∀ α β. (α.pynanoleaf = β) => α -> [β];
569569 neato = ∀ α β. (α.pybotvac = β) => α -> [β];
570− nederlandse_spoorwegen = ∀ α β. α -> [β];
571− nello = ∀ α β. α -> [β];
572− ness_alarm = ∀ α β. α -> [β];
573− nest = ∀ α β. α -> [β];
570+ nederlandse_spoorwegen = ∀ α β. α -> β;
571+ nello = ∀ α β. α -> β;
572+ ness_alarm = ∀ α β. α -> β;
573+ nest = ∀ α β. α -> β;
574574 netatmo =
575575 ∀ α β.
576576 (α.aiohttp-cors = β, α.hass-nabucasa = β, α.pyatmo = β) => α -> [β];
577− netdata = ∀ α β. α -> [β];
578− netgear = ∀ α β. α -> [β];
579− netgear_lte = ∀ α β. α -> [β];
577+ netdata = ∀ α β. α -> β;
578+ netgear = ∀ α β. α -> β;
579+ netgear_lte = ∀ α β. α -> β;
580580 netio = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
581− neurio_energy = ∀ α β. α -> [β];
582− nexia = ∀ α β. α -> [β];
583− nextbus = ∀ α β. α -> [β];
584− nextcloud = ∀ α β. α -> [β];
585− nfandroidtv = ∀ α β. α -> [β];
586− niko_home_control = ∀ α β. α -> [β];
587− nilu = ∀ α β. α -> [β];
588− nissan_leaf = ∀ α β. α -> [β];
581+ neurio_energy = ∀ α β. α -> β;
582+ nexia = ∀ α β. α -> β;
583+ nextbus = ∀ α β. α -> β;
584+ nextcloud = ∀ α β. α -> β;
585+ nfandroidtv = ∀ α β. α -> β;
586+ niko_home_control = ∀ α β. α -> β;
587+ nilu = ∀ α β. α -> β;
588+ nissan_leaf = ∀ α β. α -> β;
589589 nmap_tracker = ∀ α β. (α.getmac = β) => α -> [β];
590− nmbs = ∀ α β. α -> [β];
591− no_ip = ∀ α β. α -> [β];
592− noaa_tides = ∀ α β. α -> [β];
590+ nmbs = ∀ α β. α -> β;
591+ no_ip = ∀ α β. α -> β;
592+ noaa_tides = ∀ α β. α -> β;
593593 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 = ∀ α β. α -> [β];
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 = ∀ α β. α -> β;
609609 octoprint =
610610 ∀ α β. (α.aiohttp-cors = β, α.netdisco = β, α.zeroconf = β) => α -> [β];
611− oem = ∀ α β. α -> [β];
611+ oem = ∀ α β. α -> β;
612612 ohmconnect = ∀ α β. (α.defusedxml = β) => α -> [β];
613− ombi = ∀ α β. α -> [β];
613+ ombi = ∀ α β. α -> β;
614614 onboarding = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
615− onewire = ∀ α β. α -> [β];
615+ onewire = ∀ α β. α -> β;
616616 onkyo = ∀ α β. (α.onkyo-eiscp = β) => α -> [β];
617617 onvif = ∀ α β. (α.ha-ffmpeg = β) => α -> [β];
618− openalpr_cloud = ∀ α β. α -> [β];
619− openalpr_local = ∀ α β. α -> [β];
618+ openalpr_cloud = ∀ α β. α -> β;
619+ openalpr_local = ∀ α β. α -> β;
620620 opencv = ∀ α β. (α.numpy = β) => α -> [β];
621− openerz = ∀ α β. α -> [β];
622− openevse = ∀ α β. α -> [β];
623− openexchangerates = ∀ α β. α -> [β];
624− opengarage = ∀ α β. α -> [β];
625− openhardwaremonitor = ∀ α β. α -> [β];
626− openhome = ∀ α β. α -> [β];
627− opensensemap = ∀ α β. α -> [β];
628− opensky = ∀ α β. α -> [β];
629− opentherm_gw = ∀ α β. α -> [β];
630− openuv = ∀ α β. α -> [β];
621+ openerz = ∀ α β. α -> β;
622+ openevse = ∀ α β. α -> β;
623+ openexchangerates = ∀ α β. α -> β;
624+ opengarage = ∀ α β. α -> β;
625+ openhardwaremonitor = ∀ α β. α -> β;
626+ openhome = ∀ α β. α -> β;
627+ opensensemap = ∀ α β. α -> β;
628+ opensky = ∀ α β. α -> β;
629+ opentherm_gw = ∀ α β. α -> β;
630+ openuv = ∀ α β. α -> β;
631631 openweathermap = ∀ α β. (α.pyowm = β) => α -> [β];
632− opnsense = ∀ α β. α -> [β];
633− opple = ∀ α β. α -> [β];
634− orangepi_gpio = ∀ α β. α -> [β];
635− oru = ∀ α β. α -> [β];
636− orvibo = ∀ α β. α -> [β];
637− osramlightify = ∀ α β. α -> [β];
632+ opnsense = ∀ α β. α -> β;
633+ opple = ∀ α β. α -> β;
634+ orangepi_gpio = ∀ α β. α -> β;
635+ oru = ∀ α β. α -> β;
636+ orvibo = ∀ α β. α -> β;
637+ osramlightify = ∀ α β. α -> β;
638638 otp = ∀ α β. (α.pyotp = β) => α -> [β];
639− ovo_energy = ∀ α β. α -> [β];
639+ ovo_energy = ∀ α β. α -> β;
640640 owntracks =
641641 ∀ α β.
642642 ( α.aiohttp-cors = β,
@@ -646,24 +646,24 @@
646646 ) =>
647647 α -> [β];
648648 ozw = ∀ α β. (α.aiohttp-cors = β, α.paho-mqtt = β) => α -> [β];
649− panasonic_bluray = ∀ α β. α -> [β];
650− panasonic_viera = ∀ α β. α -> [β];
649+ panasonic_bluray = ∀ α β. α -> β;
650+ panasonic_viera = ∀ α β. α -> β;
651651 pandora = ∀ α β. (α.pexpect = β) => α -> [β];
652652 panel_custom = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
653653 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 = ∀ α β. α -> [β];
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 = ∀ α β. α -> β;
667667 plaato = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
668668 plant = ∀ α β. (α.sqlalchemy = β) => α -> [β];
669669 plex =
@@ -675,158 +675,158 @@
675675 α.pysonos = β
676676 ) =>
677677 α -> [β];
678− plugwise = ∀ α β. α -> [β];
679− plum_lightpad = ∀ α β. α -> [β];
680− pocketcasts = ∀ α β. α -> [β];
678+ plugwise = ∀ α β. α -> β;
679+ plum_lightpad = ∀ α β. α -> β;
680+ pocketcasts = ∀ α β. α -> β;
681681 point = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
682− poolsense = ∀ α β. α -> [β];
683− powerwall = ∀ α β. α -> [β];
684− prezzibenzina = ∀ α β. α -> [β];
685− proliphix = ∀ α β. α -> [β];
682+ poolsense = ∀ α β. α -> β;
683+ powerwall = ∀ α β. α -> β;
684+ prezzibenzina = ∀ α β. α -> β;
685+ proliphix = ∀ α β. α -> β;
686686 prometheus =
687687 ∀ α β. (α.aiohttp-cors = β, α.prometheus_client = β) => α -> [β];
688− prowl = ∀ α β. α -> [β];
689− proximity = ∀ α β. α -> [β];
690− proxmoxve = ∀ α β. α -> [β];
688+ prowl = ∀ α β. α -> β;
689+ proximity = ∀ α β. α -> β;
690+ proxmoxve = ∀ α β. α -> β;
691691 proxy = ∀ α β. (α.pillow = β) => α -> [β];
692− ps4 = ∀ α β. α -> [β];
693− ptvsd = ∀ α β. α -> [β];
692+ ps4 = ∀ α β. α -> β;
693+ ptvsd = ∀ α β. α -> β;
694694 pulseaudio_loopback = ∀ α β. (α.pulsectl = β) => α -> [β];
695695 push = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
696696 pushbullet = ∀ α β. (α.pushbullet = β) => α -> [β];
697697 pushover = ∀ α β. (α.pushover-complete = β) => α -> [β];
698− pushsafer = ∀ α β. α -> [β];
698+ pushsafer = ∀ α β. α -> β;
699699 pvoutput = ∀ α β. (α.jsonpath = β, α.xmltodict = β) => α -> [β];
700− pvpc_hourly_pricing = ∀ α β. α -> [β];
701− pyload = ∀ α β. α -> [β];
700+ pvpc_hourly_pricing = ∀ α β. α -> β;
701+ pyload = ∀ α β. α -> β;
702702 python_script = ∀ α β. (α.restrictedpython = β) => α -> [β];
703− qbittorrent = ∀ α β. α -> [β];
704− qld_bushfire = ∀ α β. α -> [β];
705− qnap = ∀ α β. α -> [β];
703+ qbittorrent = ∀ α β. α -> β;
704+ qld_bushfire = ∀ α β. α -> β;
705+ qnap = ∀ α β. α -> β;
706706 qrcode = ∀ α β. (α.pillow = β) => α -> [β];
707− quantum_gateway = ∀ α β. α -> [β];
708− qvr_pro = ∀ α β. α -> [β];
709− qwikswitch = ∀ α β. α -> [β];
707+ quantum_gateway = ∀ α β. α -> β;
708+ qvr_pro = ∀ α β. α -> β;
709+ qwikswitch = ∀ α β. α -> β;
710710 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 = ∀ α β. α -> [β];
711+ radarr = ∀ α β. α -> β;
712+ radiotherm = ∀ α β. α -> β;
713+ rainbird = ∀ α β. α -> β;
714+ raincloud = ∀ α β. α -> β;
715+ rainforest_eagle = ∀ α β. α -> β;
716+ rainmachine = ∀ α β. α -> β;
717+ random = ∀ α β. α -> β;
718+ raspihats = ∀ α β. α -> β;
719+ raspyrfm = ∀ α β. α -> β;
720+ recollect_waste = ∀ α β. α -> β;
721721 recorder = ∀ α β. (α.sqlalchemy = β) => α -> [β];
722− recswitch = ∀ α β. α -> [β];
722+ recswitch = ∀ α β. α -> β;
723723 reddit = ∀ α β. (α.praw = β) => α -> [β];
724− rejseplanen = ∀ α β. α -> [β];
724+ rejseplanen = ∀ α β. α -> β;
725725 remember_the_milk = ∀ α β. (α.httplib2 = β) => α -> [β];
726− remote = ∀ α β. α -> [β];
727− remote_rpi_gpio = ∀ α β. α -> [β];
728− repetier = ∀ α β. α -> [β];
726+ remote = ∀ α β. α -> β;
727+ remote_rpi_gpio = ∀ α β. α -> β;
728+ repetier = ∀ α β. α -> β;
729729 rest = ∀ α β. (α.jsonpath = β, α.xmltodict = β) => α -> [β];
730− rest_command = ∀ α β. α -> [β];
731− rflink = ∀ α β. α -> [β];
732− rfxtrx = ∀ α β. α -> [β];
730+ rest_command = ∀ α β. α -> β;
731+ rflink = ∀ α β. α -> β;
732+ rfxtrx = ∀ α β. α -> β;
733733 ring = ∀ α β. (α.ha-ffmpeg = β) => α -> [β];
734− ripple = ∀ α β. α -> [β];
734+ ripple = ∀ α β. α -> β;
735735 rmvtransport = ∀ α β. (α.PyRMVtransport = β) => α -> [β];
736− rocketchat = ∀ α β. α -> [β];
737− roku = ∀ α β. α -> [β];
738− roomba = ∀ α β. α -> [β];
736+ rocketchat = ∀ α β. α -> β;
737+ roku = ∀ α β. α -> β;
738+ roomba = ∀ α β. α -> β;
739739 route53 = ∀ α β. (α.boto3 = β) => α -> [β];
740− rova = ∀ α β. α -> [β];
741− rpi_camera = ∀ α β. α -> [β];
742− rpi_gpio = ∀ α β. α -> [β];
743− rpi_gpio_pwm = ∀ α β. α -> [β];
744− rpi_pfio = ∀ α β. α -> [β];
745− rpi_rf = ∀ α β. α -> [β];
740+ rova = ∀ α β. α -> β;
741+ rpi_camera = ∀ α β. α -> β;
742+ rpi_gpio = ∀ α β. α -> β;
743+ rpi_gpio_pwm = ∀ α β. α -> β;
744+ rpi_pfio = ∀ α β. α -> β;
745+ rpi_rf = ∀ α β. α -> β;
746746 rss_feed_template = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
747− rtorrent = ∀ α β. α -> [β];
748− russound_rio = ∀ α β. α -> [β];
749− russound_rnet = ∀ α β. α -> [β];
747+ rtorrent = ∀ α β. α -> β;
748+ russound_rio = ∀ α β. α -> β;
749+ russound_rnet = ∀ α β. α -> β;
750750 sabnzbd =
751751 ∀ α β. (α.aiohttp-cors = β, α.netdisco = β, α.zeroconf = β) => α -> [β];
752752 safe_mode = ∀ α β. (α.aiohttp-cors = β, α.hass-nabucasa = β) => α -> [β];
753− saj = ∀ α β. α -> [β];
754− salt = ∀ α β. α -> [β];
753+ saj = ∀ α β. α -> β;
754+ salt = ∀ α β. α -> β;
755755 samsungtv = ∀ α β. (α.samsungctl = β, α.samsungtvws = β) => α -> [β];
756− satel_integra = ∀ α β. α -> [β];
757− scene = ∀ α β. α -> [β];
758− schluter = ∀ α β. α -> [β];
756+ satel_integra = ∀ α β. α -> β;
757+ scene = ∀ α β. α -> β;
758+ schluter = ∀ α β. α -> β;
759759 scrape =
760760 ∀ α β.
761761 (α.beautifulsoup4 = β, α.jsonpath = β, α.xmltodict = β) => α -> [β];
762− script = ∀ α β. α -> [β];
763− scsgate = ∀ α β. α -> [β];
762+ script = ∀ α β. α -> β;
763+ scsgate = ∀ α β. α -> β;
764764 search = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
765765 season = ∀ α β. (α.ephem = β) => α -> [β];
766− sendgrid = ∀ α β. α -> [β];
767− sense = ∀ α β. α -> [β];
768− sensehat = ∀ α β. α -> [β];
769− sensibo = ∀ α β. α -> [β];
770− sensor = ∀ α β. α -> [β];
766+ sendgrid = ∀ α β. α -> β;
767+ sense = ∀ α β. α -> β;
768+ sensehat = ∀ α β. α -> β;
769+ sensibo = ∀ α β. α -> β;
770+ sensor = ∀ α β. α -> β;
771771 sentry = ∀ α β. (α.sentry-sdk = β) => α -> [β];
772772 serial = ∀ α β. (α.pyserial-asyncio = β) => α -> [β];
773− serial_pm = ∀ α β. α -> [β];
774− sesame = ∀ α β. α -> [β];
773+ serial_pm = ∀ α β. α -> β;
774+ sesame = ∀ α β. α -> β;
775775 seven_segments = ∀ α β. (α.pillow = β) => α -> [β];
776− seventeentrack = ∀ α β. α -> [β];
777− shell_command = ∀ α β. α -> [β];
776+ seventeentrack = ∀ α β. α -> β;
777+ shell_command = ∀ α β. α -> β;
778778 shiftr = ∀ α β. (α.paho-mqtt = β) => α -> [β];
779779 shodan = ∀ α β. (α.shodan = β) => α -> [β];
780780 shopping_list = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
781− sht31 = ∀ α β. α -> [β];
782− sigfox = ∀ α β. α -> [β];
781+ sht31 = ∀ α β. α -> β;
782+ sigfox = ∀ α β. α -> β;
783783 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 = ∀ α β. α -> [β];
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 = ∀ α β. α -> β;
797797 smappee = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
798− smarthab = ∀ α β. α -> [β];
798+ smarthab = ∀ α β. α -> β;
799799 smartthings =
800800 ∀ α β. (α.aiohttp-cors = β, α.hass-nabucasa = β) => α -> [β];
801− smarty = ∀ α β. α -> [β];
802− smhi = ∀ α β. α -> [β];
803− sms = ∀ α β. α -> [β];
804− smtp = ∀ α β. α -> [β];
801+ smarty = ∀ α β. α -> β;
802+ smhi = ∀ α β. α -> β;
803+ sms = ∀ α β. α -> β;
804+ smtp = ∀ α β. α -> β;
805805 snapcast = ∀ α β. (α.snapcast = β) => α -> [β];
806806 snips = ∀ α β. (α.aiohttp-cors = β, α.paho-mqtt = β) => α -> [β];
807807 snmp = ∀ α β. (α.pysnmp = β) => α -> [β];
808− sochain = ∀ α β. α -> [β];
809− socialblade = ∀ α β. α -> [β];
808+ sochain = ∀ α β. α -> β;
809+ socialblade = ∀ α β. α -> β;
810810 solaredge = ∀ α β. (α.stringcase = β) => α -> [β];
811− solaredge_local = ∀ α β. α -> [β];
812− solarlog = ∀ α β. α -> [β];
813− solax = ∀ α β. α -> [β];
814− soma = ∀ α β. α -> [β];
811+ solaredge_local = ∀ α β. α -> β;
812+ solarlog = ∀ α β. α -> β;
813+ solax = ∀ α β. α -> β;
814+ soma = ∀ α β. α -> β;
815815 somfy = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
816− somfy_mylink = ∀ α β. α -> [β];
817− sonarr = ∀ α β. α -> [β];
818− songpal = ∀ α β. α -> [β];
816+ somfy_mylink = ∀ α β. α -> β;
817+ sonarr = ∀ α β. α -> β;
818+ songpal = ∀ α β. α -> β;
819819 sonos = ∀ α β. (α.pysonos = β) => α -> [β];
820− sony_projector = ∀ α β. α -> [β];
820+ sony_projector = ∀ α β. α -> β;
821821 soundtouch =
822822 ∀ α β.
823823 (α.aiohttp-cors = β, α.libsoundtouch = β, α.zeroconf = β) => α -> [β];
824824 spaceapi = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
825− spc = ∀ α β. α -> [β];
825+ spc = ∀ α β. α -> β;
826826 speedtestdotnet = ∀ α β. (α.speedtest-cli = β) => α -> [β];
827− spider = ∀ α β. α -> [β];
828− splunk = ∀ α β. α -> [β];
829− spotcrime = ∀ α β. α -> [β];
827+ spider = ∀ α β. α -> β;
828+ splunk = ∀ α β. α -> β;
829+ spotcrime = ∀ α β. α -> β;
830830 spotify = ∀ α β. (α.aiohttp-cors = β, α.spotipy = β) => α -> [β];
831831 sql = ∀ α β. (α.sqlalchemy = β) => α -> [β];
832832 squeezebox = ∀ α β. (α.pysqueezebox = β) => α -> [β];
@@ -838,47 +838,47 @@
838838 α.zeroconf = β
839839 ) =>
840840 α -> [β];
841− starline = ∀ α β. α -> [β];
842− starlingbank = ∀ α β. α -> [β];
841+ starline = ∀ α β. α -> β;
842+ starlingbank = ∀ α β. α -> β;
843843 startca = ∀ α β. (α.xmltodict = β) => α -> [β];
844844 statistics = ∀ α β. (α.sqlalchemy = β) => α -> [β];
845845 statsd = ∀ α β. (α.statsd = β) => α -> [β];
846− steam_online = ∀ α β. α -> [β];
847− stiebel_eltron = ∀ α β. α -> [β];
848− stookalert = ∀ α β. α -> [β];
846+ steam_online = ∀ α β. α -> β;
847+ stiebel_eltron = ∀ α β. α -> β;
848+ stookalert = ∀ α β. α -> β;
849849 stream = ∀ α β. (α.aiohttp-cors = β, α.av = β) => α -> [β];
850− streamlabswater = ∀ α β. α -> [β];
850+ streamlabswater = ∀ α β. α -> β;
851851 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 = ∀ α β. α -> [β];
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 = ∀ α β. α -> β;
870870 system_health = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
871871 system_log = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
872872 systemmonitor = ∀ α β. (α.psutil = β) => α -> [β];
873− tado = ∀ α β. α -> [β];
874− tahoma = ∀ α β. α -> [β];
875− tank_utility = ∀ α β. α -> [β];
876− tankerkoenig = ∀ α β. α -> [β];
877− tapsaff = ∀ α β. α -> [β];
878− tautulli = ∀ α β. α -> [β];
879− tcp = ∀ α β. α -> [β];
873+ tado = ∀ α β. α -> β;
874+ tahoma = ∀ α β. α -> β;
875+ tank_utility = ∀ α β. α -> β;
876+ tankerkoenig = ∀ α β. α -> β;
877+ tapsaff = ∀ α β. α -> β;
878+ tautulli = ∀ α β. α -> β;
879+ tcp = ∀ α β. α -> β;
880880 ted5000 = ∀ α β. (α.xmltodict = β) => α -> [β];
881− teksavvy = ∀ α β. α -> [β];
881+ teksavvy = ∀ α β. α -> β;
882882 telegram =
883883 ∀ α β.
884884 (α.aiohttp-cors = β, α.pysocks = β, α.python-telegram-bot = β) => α ->
@@ -887,139 +887,139 @@
887887 ∀ α β.
888888 (α.aiohttp-cors = β, α.pysocks = β, α.python-telegram-bot = β) => α ->
889889 [β];
890− tellduslive = ∀ α β. α -> [β];
891− tellstick = ∀ α β. α -> [β];
892− telnet = ∀ α β. α -> [β];
893− temper = ∀ α β. α -> [β];
894− template = ∀ α β. α -> [β];
890+ tellduslive = ∀ α β. α -> β;
891+ tellstick = ∀ α β. α -> β;
892+ telnet = ∀ α β. α -> β;
893+ temper = ∀ α β. α -> β;
894+ template = ∀ α β. α -> β;
895895 tensorflow =
896896 ∀ α β. (α.numpy = β, α.pillow = β, α.protobuf = β) => α -> [β];
897− tesla = ∀ α β. α -> [β];
898− tfiac = ∀ α β. α -> [β];
897+ tesla = ∀ α β. α -> β;
898+ tfiac = ∀ α β. α -> β;
899899 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 = ∀ α β. α -> [β];
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 = ∀ α β. α -> β;
912912 todoist = ∀ α β. (α.todoist = β) => α -> [β];
913− tof = ∀ α β. α -> [β];
914− tomato = ∀ α β. α -> [β];
913+ tof = ∀ α β. α -> β;
914+ tomato = ∀ α β. α -> β;
915915 toon = ∀ α β. (α.aiohttp-cors = β, α.hass-nabucasa = β) => α -> [β];
916916 torque = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
917− totalconnect = ∀ α β. α -> [β];
918− touchline = ∀ α β. α -> [β];
917+ totalconnect = ∀ α β. α -> β;
918+ touchline = ∀ α β. α -> β;
919919 tplink = ∀ α β. (α.pyhs100 = β) => α -> [β];
920− tplink_lte = ∀ α β. α -> [β];
920+ tplink_lte = ∀ α β. α -> β;
921921 traccar = ∀ α β. (α.aiohttp-cors = β, α.stringcase = β) => α -> [β];
922− trackr = ∀ α β. α -> [β];
923− tradfri = ∀ α β. α -> [β];
924− trafikverket_train = ∀ α β. α -> [β];
925− trafikverket_weatherstation = ∀ α β. α -> [β];
922+ trackr = ∀ α β. α -> β;
923+ tradfri = ∀ α β. α -> β;
924+ trafikverket_train = ∀ α β. α -> β;
925+ trafikverket_weatherstation = ∀ α β. α -> β;
926926 transmission = ∀ α β. (α.transmissionrpc = β) => α -> [β];
927− transport_nsw = ∀ α β. α -> [β];
928− travisci = ∀ α β. α -> [β];
927+ transport_nsw = ∀ α β. α -> β;
928+ travisci = ∀ α β. α -> β;
929929 trend = ∀ α β. (α.numpy = β) => α -> [β];
930930 tts = ∀ α β. (α.aiohttp-cors = β, α.mutagen = β) => α -> [β];
931− tuya = ∀ α β. α -> [β];
932− twentemilieu = ∀ α β. α -> [β];
931+ tuya = ∀ α β. α -> β;
932+ twentemilieu = ∀ α β. α -> β;
933933 twilio = ∀ α β. (α.aiohttp-cors = β, α.twilio = β) => α -> [β];
934934 twilio_call = ∀ α β. (α.aiohttp-cors = β, α.twilio = β) => α -> [β];
935935 twilio_sms = ∀ α β. (α.aiohttp-cors = β, α.twilio = β) => α -> [β];
936− twitch = ∀ α β. α -> [β];
937− twitter = ∀ α β. α -> [β];
938− ubee = ∀ α β. α -> [β];
939− ubus = ∀ α β. α -> [β];
940− ue_smart_radio = ∀ α β. α -> [β];
941− uk_transport = ∀ α β. α -> [β];
936+ twitch = ∀ α β. α -> β;
937+ twitter = ∀ α β. α -> β;
938+ ubee = ∀ α β. α -> β;
939+ ubus = ∀ α β. α -> β;
940+ ue_smart_radio = ∀ α β. α -> β;
941+ uk_transport = ∀ α β. α -> β;
942942 unifi = ∀ α β. (α.aiounifi = β) => α -> [β];
943943 unifi_direct = ∀ α β. (α.pexpect = β) => α -> [β];
944− unifiled = ∀ α β. α -> [β];
945− universal = ∀ α β. α -> [β];
946− upb = ∀ α β. α -> [β];
947− upc_connect = ∀ α β. α -> [β];
948− upcloud = ∀ α β. α -> [β];
944+ unifiled = ∀ α β. α -> β;
945+ universal = ∀ α β. α -> β;
946+ upb = ∀ α β. α -> β;
947+ upc_connect = ∀ α β. α -> β;
948+ upcloud = ∀ α β. α -> β;
949949 updater = ∀ α β. (α.distro = β) => α -> [β];
950950 upnp = ∀ α β. (α.async-upnp-client = β) => α -> [β];
951− uptime = ∀ α β. α -> [β];
952− uptimerobot = ∀ α β. α -> [β];
953− uscis = ∀ α β. α -> [β];
954− usgs_earthquakes_feed = ∀ α β. α -> [β];
955− utility_meter = ∀ α β. α -> [β];
951+ uptime = ∀ α β. α -> β;
952+ uptimerobot = ∀ α β. α -> β;
953+ uscis = ∀ α β. α -> β;
954+ usgs_earthquakes_feed = ∀ α β. α -> β;
955+ utility_meter = ∀ α β. α -> β;
956956 uvc = ∀ α β. (α.uvcclient = β) => α -> [β];
957− vacuum = ∀ α β. α -> [β];
958− vallox = ∀ α β. α -> [β];
959− vasttrafik = ∀ α β. α -> [β];
960− velbus = ∀ α β. α -> [β];
961− velux = ∀ α β. α -> [β];
962− venstar = ∀ α β. α -> [β];
963− vera = ∀ α β. α -> [β];
957+ vacuum = ∀ α β. α -> β;
958+ vallox = ∀ α β. α -> β;
959+ vasttrafik = ∀ α β. α -> β;
960+ velbus = ∀ α β. α -> β;
961+ velux = ∀ α β. α -> β;
962+ venstar = ∀ α β. α -> β;
963+ vera = ∀ α β. α -> β;
964964 verisure = ∀ α β. (α.jsonpath = β) => α -> [β];
965− versasense = ∀ α β. α -> [β];
965+ versasense = ∀ α β. α -> β;
966966 version = ∀ α β. (α.pyhaversion = β) => α -> [β];
967− vesync = ∀ α β. α -> [β];
968− viaggiatreno = ∀ α β. α -> [β];
969− vicare = ∀ α β. α -> [β];
970− vilfo = ∀ α β. α -> [β];
971− vivotek = ∀ α β. α -> [β];
972− vizio = ∀ α β. α -> [β];
967+ vesync = ∀ α β. α -> β;
968+ viaggiatreno = ∀ α β. α -> β;
969+ vicare = ∀ α β. α -> β;
970+ vilfo = ∀ α β. α -> β;
971+ vivotek = ∀ α β. α -> β;
972+ vizio = ∀ α β. α -> β;
973973 vlc = ∀ α β. (α.python-vlc = β) => α -> [β];
974− vlc_telnet = ∀ α β. α -> [β];
975− voicerss = ∀ α β. α -> [β];
976− volkszaehler = ∀ α β. α -> [β];
977− volumio = ∀ α β. α -> [β];
978− volvooncall = ∀ α β. α -> [β];
974+ vlc_telnet = ∀ α β. α -> β;
975+ voicerss = ∀ α β. α -> β;
976+ volkszaehler = ∀ α β. α -> β;
977+ volumio = ∀ α β. α -> β;
978+ volvooncall = ∀ α β. α -> β;
979979 vultr = ∀ α β. (α.vultr = β) => α -> [β];
980− w800rf32 = ∀ α β. α -> [β];
980+ w800rf32 = ∀ α β. α -> β;
981981 wake_on_lan = ∀ α β. (α.wakeonlan = β) => α -> [β];
982− waqi = ∀ α β. α -> [β];
983− water_heater = ∀ α β. α -> [β];
984− waterfurnace = ∀ α β. α -> [β];
985− watson_iot = ∀ α β. α -> [β];
986− watson_tts = ∀ α β. α -> [β];
982+ waqi = ∀ α β. α -> β;
983+ water_heater = ∀ α β. α -> β;
984+ waterfurnace = ∀ α β. α -> β;
985+ watson_iot = ∀ α β. α -> β;
986+ watson_tts = ∀ α β. α -> β;
987987 waze_travel_time = ∀ α β. (α.WazeRouteCalculator = β) => α -> [β];
988− weather = ∀ α β. α -> [β];
988+ weather = ∀ α β. α -> β;
989989 webhook = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
990− webostv = ∀ α β. α -> [β];
990+ webostv = ∀ α β. α -> β;
991991 websocket_api = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
992− wemo = ∀ α β. α -> [β];
993− whois = ∀ α β. α -> [β];
994− wiffi = ∀ α β. α -> [β];
992+ wemo = ∀ α β. α -> β;
993+ whois = ∀ α β. α -> β;
994+ wiffi = ∀ α β. α -> β;
995995 wink = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
996− wirelesstag = ∀ α β. α -> [β];
996+ wirelesstag = ∀ α β. α -> β;
997997 withings = ∀ α β. (α.aiohttp-cors = β) => α -> [β];
998− wled = ∀ α β. α -> [β];
999− wolflink = ∀ α β. α -> [β];
998+ wled = ∀ α β. α -> β;
999+ wolflink = ∀ α β. α -> β;
10001000 workday = ∀ α β. (α.holidays = β) => α -> [β];
1001− worldclock = ∀ α β. α -> [β];
1002− worldtidesinfo = ∀ α β. α -> [β];
1003− worxlandroid = ∀ α β. α -> [β];
1004− wsdot = ∀ α β. α -> [β];
1005− wunderground = ∀ α β. α -> [β];
1006− x10 = ∀ α β. α -> [β];
1007− xbee = ∀ α β. α -> [β];
1008− xbox_live = ∀ α β. α -> [β];
1009− xeoma = ∀ α β. α -> [β];
1010− xfinity = ∀ α β. α -> [β];
1001+ worldclock = ∀ α β. α -> β;
1002+ worldtidesinfo = ∀ α β. α -> β;
1003+ worxlandroid = ∀ α β. α -> β;
1004+ wsdot = ∀ α β. α -> β;
1005+ wunderground = ∀ α β. α -> β;
1006+ x10 = ∀ α β. α -> β;
1007+ xbee = ∀ α β. α -> β;
1008+ xbox_live = ∀ α β. α -> β;
1009+ xeoma = ∀ α β. α -> β;
1010+ xfinity = ∀ α β. α -> β;
10111011 xiaomi = ∀ α β. (α.ha-ffmpeg = β) => α -> [β];
10121012 xiaomi_aqara =
10131013 ∀ α β. (α.aiohttp-cors = β, α.netdisco = β, α.zeroconf = β) => α -> [β];
10141014 xiaomi_miio = ∀ α β. (α.construct = β, α.python-miio = β) => α -> [β];
1015− xiaomi_tv = ∀ α β. α -> [β];
1015+ xiaomi_tv = ∀ α β. α -> β;
10161016 xmpp = ∀ α β. (α.slixmpp = β) => α -> [β];
1017− xs1 = ∀ α β. α -> [β];
1018− yale_smart_alarm = ∀ α β. α -> [β];
1017+ xs1 = ∀ α β. α -> β;
1018+ yale_smart_alarm = ∀ α β. α -> β;
10191019 yamaha = ∀ α β. (α.rxv = β) => α -> [β];
1020− yamaha_musiccast = ∀ α β. α -> [β];
1021− yandex_transport = ∀ α β. α -> [β];
1022− yandextts = ∀ α β. α -> [β];
1020+ yamaha_musiccast = ∀ α β. α -> β;
1021+ yandex_transport = ∀ α β. α -> β;
1022+ yandextts = ∀ α β. α -> β;
10231023 yeelight =
10241024 ∀ α β.
10251025 ( α.aiohttp-cors = β,
@@ -1028,15 +1028,15 @@
10281028 α.zeroconf = β
10291029 ) =>
10301030 α -> [β];
1031− yeelightsunflower = ∀ α β. α -> [β];
1032− yessssms = ∀ α β. α -> [β];
1031+ yeelightsunflower = ∀ α β. α -> β;
1032+ yessssms = ∀ α β. α -> β;
10331033 yi = ∀ α β. (α.aioftp = β, α.ha-ffmpeg = β) => α -> [β];
10341034 yr = ∀ α β. (α.xmltodict = β) => α -> [β];
1035− zabbix = ∀ α β. α -> [β];
1036− zamg = ∀ α β. α -> [β];
1037− zengge = ∀ α β. α -> [β];
1035+ zabbix = ∀ α β. α -> β;
1036+ zamg = ∀ α β. α -> β;
1037+ zengge = ∀ α β. α -> β;
10381038 zeroconf = ∀ α β. (α.aiohttp-cors = β, α.zeroconf = β) => α -> [β];
1039− zerproc = ∀ α β. α -> [β];
1039+ zerproc = ∀ α β. α -> β;
10401040 zestimate = ∀ α β. (α.xmltodict = β) => α -> [β];
10411041 zha =
10421042 ∀ α β.
@@ -1050,9 +1050,9 @@
10501050 α.zigpy-zigate = β
10511051 ) =>
10521052 α -> [β];
1053− zhong_hong = ∀ α β. α -> [β];
1054− ziggo_mediabox_xl = ∀ α β. α -> [β];
1055− zone = ∀ α β. α -> [β];
1053+ zhong_hong = ∀ α β. α -> β;
1054+ ziggo_mediabox_xl = ∀ α β. α -> β;
1055+ zone = ∀ α β. α -> β;
10561056 zoneminder = ∀ α β. (α.zm-py = β) => α -> [β];
10571057 zwave =
10581058 ∀ α β. (α.homeassistant-pyozw = β, α.pydispatcher = β) => α -> [β];
test/golden/importless/composition.txt+6−6
@@ -1,16 +1,16 @@
11∀ α β γ δ ε ζ η θ.
2−( α.licenses = β,
3− α.maintainers = γ,
4− β.bsd3 = δ,
5− γ.brainrape = ε
2+( α.brainrape = β,
3+ α.bsd3 = γ,
4+ δ.licenses = α,
5+ ε.maintainers = α
66) =>
77{ build-idris-package =
88 { idrisDeps = [ζ];
99 meta =
1010 { description = String;
1111 homepage = String;
12− license = δ;
13− maintainers = [ε];
12+ license = γ;
13+ maintainers = [β];
1414 };
1515 name = String;
1616 src = η;
test/golden/importless/configuration-ghc-8.4.x.txtdeleted−86
@@ -1,86 +0,0 @@
1−∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1 δ1 ε1 ζ1 η1 θ1 ι1 κ1 λ1
2−μ1 ν1 ξ1 ο1 π1 ρ1 σ1 τ1 υ1 φ1 χ1 ψ1 ω1 α2 β2.
3−( β.fetchpatch = {sha256 = String; stripLen = Number; url = String;} -> γ,
4− β.llvmPackages_5 = δ,
5− ε.addBuildDepend = ζ -> η -> θ,
6− ε.appendPatch = ι -> γ -> κ,
7− ε.doJailbreak = λ -> μ,
8− ε.dontCheck = ν -> ξ,
9− ε.dontHaddock = ο -> π,
10− ρ.Cabal_2_4_1_0 = σ,
11− ρ.Cabal_3_2_0_0 = τ,
12− ρ.contravariant = η,
13− ρ.ghc-lib-parser = υ,
14− ρ.hackage-security = φ,
15− ρ.hpack = χ,
16− ρ.resolv_0_1_1_2 = ψ,
17− ω.aeson = ζ,
18− ω.base-compat-batteries = α1,
19− ω.cabal-install = β1,
20− ω.enclosed-exceptions = ν,
21− ω.fast-logger = ο,
22− ω.ghc-lib-parser-ex = γ1,
23− ω.hadoop-rpc = ι,
24− ω.hinotify_0_3_9 = λ,
25− ω.jailbreak-cabal = δ1,
26− ω.purescript = ε1,
27− ω.stack = ζ1,
28− ω.xmobar = η1,
29− θ1.Cabal_3_2_0_0 = ι1,
30− κ1.override = λ1,
31− μ1.hinotify_0_3_9 = ν1,
32− φ.override = {Cabal = ξ1;} -> ο1,
33− χ.override = {Cabal = π1;} -> ρ1,
34− β1.overrideScope = (θ1 -> σ1 -> {Cabal = ι1;}) -> τ1,
35− δ1.override = {Cabal = τ;} -> υ1,
36− η1.overrideScope = (μ1 -> φ1 -> {hinotify = ν1;}) -> χ1
37−) =>
38−{haskellLib = ε; pkgs = β;} ->
39−ρ ->
40−ω ->
41−{ Cabal = Null;
42− aeson = θ;
43− array = Null;
44− base = Null;
45− base-compat-batteries = ψ1;
46− binary = Null;
47− bytestring = Null;
48− cabal-install = τ1;
49− containers = Null;
50− deepseq = Null;
51− directory = Null;
52− enclosed-exceptions = ξ;
53− fast-logger = π;
54− filepath = Null;
55− ghc-boot = Null;
56− ghc-boot-th = Null;
57− ghc-compact = Null;
58− ghc-heap = Null;
59− ghc-lib-parser-ex = ω1;
60− ghc-prim = Null;
61− ghci = Null;
62− hadoop-rpc = κ;
63− haskeline = Null;
64− hinotify_0_3_9 = α2;
65− hpc = Null;
66− integer-gmp = Null;
67− jailbreak-cabal = υ1;
68− llvmPackages = δ;
69− mtl = Null;
70− parsec = Null;
71− pretty = Null;
72− process = Null;
73− purescript = β2;
74− resolv = ψ;
75− rts = Null;
76− stack = ∀ α. α;
77− stm = Null;
78− template-haskell = Null;
79− terminfo = Null;
80− text = Null;
81− time = Null;
82− transformers = Null;
83− unix = Null;
84− xhtml = Null;
85− xmobar = χ1;
86−}
test/golden/importless/configuration-ghc-8.6.x.txtdeleted−117
@@ -1,117 +0,0 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1 δ1 ε1 ζ1 η1 θ1 ι1 κ1
2−λ1 μ1 ν1 ξ1 ο1 π1 ρ1 σ1 τ1 υ1 φ1 χ1 ψ1 ω1 α2 β2 γ2 δ2 ε2 ζ2 η2 θ2 ι2 κ2 λ2 μ2 ν2
3−ξ2 ο2 π2 ρ2 σ2 τ2 υ2 φ2 χ2 ψ2 ω2 α3 β3 γ3.
4−( α.llvmPackages_6 = β,
5− γ.addBuildDepend = δ -> ε -> ζ,
6− γ.doDistribute = η -> θ,
7− γ.doJailbreak = ι -> κ,
8− γ.dontCheck = λ -> μ,
9− γ.markBroken = ν -> ξ,
10− γ.markUnbroken = ο -> η,
11− π.Cabal_3_2_0_0 = ρ,
12− π.ghc-lib-parser = ε,
13− π.haddock-library_1_7_0 = σ,
14− π.resolv_0_1_1_2 = τ,
15− υ.Diff = λ,
16− υ.HaTeX = ι,
17− υ.RSA = φ,
18− υ.apply-refact_0_6_0_0 = χ,
19− υ.binary-orphans = ψ,
20− υ.cabal-install = ω,
21− υ.cabal2nix = α1,
22− υ.cabal2spec = β1,
23− υ.data-clist = γ1,
24− υ.dates = δ1,
25− υ.equivalence = ε1,
26− υ.ghc-lib-parser-ex = δ,
27− υ.github = ζ1,
28− υ.haddock-library_1_7_0 = η1,
29− υ.hpc-coveralls = θ1,
30− υ.http-api-data = ι1,
31− υ.jailbreak-cabal = κ1,
32− υ.monad-par = λ1,
33− υ.persistent-sqlite = μ1,
34− υ.policeman = ν,
35− υ.rebase = ν1,
36− υ.skylighting-core = ξ1,
37− υ.stack = ο1,
38− υ.stylish-cabal = π1,
39− υ.system-fileio = ρ1,
40− υ.unicode-transforms = σ1,
41− υ.unordered-containers = τ1,
42− υ.wl-pprint-extras = υ1,
43− φ1.Cabal_3_2_0_0 = χ1,
44− ψ1.Cabal_3_2_0_0 = ω1,
45− α2.Cabal_3_2_0_0 = β2,
46− ω.overrideScope = (φ1 -> γ2 -> {Cabal = χ1;}) -> δ2,
47− α1.overrideScope = (ψ1 -> ε2 -> {Cabal = ω1;}) -> ζ2,
48− β1.overrideScope = (α2 -> η2 -> {Cabal = β2;}) -> θ2,
49− κ1.override = {Cabal = ρ;} -> ι2,
50− π1.override = {haddock-library = σ;} -> ο
51−) =>
52−{haskellLib = γ; pkgs = α;} ->
53−π ->
54−υ ->
55−{ Cabal = Null;
56− Diff = μ;
57− HaTeX = κ;
58− RSA = κ2;
59− apply-refact = χ;
60− array = Null;
61− base = Null;
62− binary = Null;
63− binary-orphans = λ2;
64− bytestring = Null;
65− cabal-install = δ2;
66− cabal2nix = ζ2;
67− cabal2spec = θ2;
68− containers = Null;
69− data-clist = μ2;
70− dates = ν2;
71− deepseq = Null;
72− directory = Null;
73− equivalence = ξ2;
74− filepath = Null;
75− ghc-boot = Null;
76− ghc-boot-th = Null;
77− ghc-compact = Null;
78− ghc-heap = Null;
79− ghc-lib-parser-ex = ζ;
80− ghc-prim = Null;
81− ghci = Null;
82− github = ο2;
83− haddock-library_1_7_0 = π2;
84− haskeline = Null;
85− hpc = Null;
86− hpc-coveralls = ρ2;
87− http-api-data = σ2;
88− integer-gmp = Null;
89− jailbreak-cabal = ι2;
90− libiserv = Null;
91− llvmPackages = β;
92− monad-par = τ2;
93− mtl = Null;
94− parsec = Null;
95− persistent-sqlite = υ2;
96− policeman = ξ;
97− pretty = Null;
98− process = Null;
99− rebase = φ2;
100− resolv = τ;
101− rts = Null;
102− skylighting-core = χ2;
103− stack = ψ2;
104− stm = Null;
105− stylish-cabal = θ;
106− system-fileio = ω2;
107− template-haskell = Null;
108− terminfo = Null;
109− text = Null;
110− time = Null;
111− transformers = Null;
112− unicode-transforms = α3;
113− unix = Null;
114− unordered-containers = β3;
115− wl-pprint-extras = γ3;
116− xhtml = Null;
117−}
test/golden/importless/configuration-ghc-head.txt+19−19
@@ -1,7 +1,7 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1 δ1 ε1 ζ1 η1 θ1 ι1 κ1
2−λ1 μ1 ν1 ξ1 ο1 π1 ρ1.
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β2 γ3 δ4 ε5 ζ6 η7 θ8 ι9 κ10
2+λ11 μ12 ν13 ξ14 ο15 π16 ρ17.
33( α.llvmPackages_6 = β,
4− γ.appendPatch = δ -> String -> ε,
4+ γ.appendPatch = δ -> Path -> ε,
55 γ.doJailbreak = ζ -> η,
66 γ.dontCheck = θ -> ι,
77 κ.Diff = θ,
@@ -24,20 +24,20 @@
2424 κ.wl-pprint-extras = α1
2525) =>
2626{haskellLib = γ; pkgs = α;} ->
27−β1 ->
27+β2 ->
2828κ ->
2929{ Cabal = Null;
3030 Diff = ι;
3131 HaTeX = η;
32− RSA = γ1;
32+ RSA = γ3;
3333 array = Null;
3434 base = Null;
3535 binary = Null;
36− binary-orphans = δ1;
36+ binary-orphans = δ4;
3737 bytestring = Null;
3838 containers = Null;
39− data-clist = ε1;
40− dates = ζ1;
39+ data-clist = ε5;
40+ dates = ζ6;
4141 deepseq = Null;
4242 directory = Null;
4343 exceptions = Null;
@@ -50,33 +50,33 @@
5050 ghc-prim = Null;
5151 ghci = Null;
5252 git-annex = ε;
53− github = η1;
53+ github = η7;
5454 haskeline = Null;
5555 hpc = Null;
56− hpc-coveralls = θ1;
57− http-api-data = ι1;
56+ hpc-coveralls = θ8;
57+ http-api-data = ι9;
5858 integer-gmp = Null;
5959 libiserv = Null;
6060 llvmPackages = β;
61− monad-par = κ1;
61+ monad-par = κ10;
6262 mtl = Null;
6363 parsec = Null;
64− persistent-sqlite = λ1;
64+ persistent-sqlite = λ11;
6565 pretty = Null;
6666 process = Null;
6767 rts = Null;
68− skylighting-core = μ1;
69− stack = ν1;
68+ skylighting-core = μ12;
69+ stack = ν13;
7070 stm = Null;
71− system-fileio = ξ1;
71+ system-fileio = ξ14;
7272 template-haskell = Null;
7373 terminfo = Null;
7474 text = Null;
7575 time = Null;
7676 transformers = Null;
77− unicode-transforms = ο1;
77+ unicode-transforms = ο15;
7878 unix = Null;
79− unordered-containers = π1;
80− wl-pprint-extras = ρ1;
79+ unordered-containers = π16;
80+ wl-pprint-extras = ρ17;
8181 xhtml = Null;
8282}
test/golden/importless/console.txt+6−6
@@ -1,16 +1,16 @@
11∀ α β γ δ ε ζ η θ.
2−( α.licenses = β,
3− α.maintainers = γ,
4− β.asl20 = δ,
5− γ.brainrape = ε
2+( α.asl20 = β,
3+ α.brainrape = γ,
4+ δ.licenses = α,
5+ ε.maintainers = α
66) =>
77{ build-idris-package =
88 { idrisDeps = [ζ];
99 meta =
1010 { description = String;
1111 homepage = String;
12− license = δ;
13− maintainers = [ε];
12+ license = β;
13+ maintainers = [γ];
1414 };
1515 name = String;
1616 src = η;
test/golden/importless/container-config.txt+12−15
@@ -1,21 +1,18 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.boot = ε,
6− γ.mkDefault = Bool -> ζ,
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.isContainer = β,
3+ γ.mkDefault = Bool -> δ,
74 γ.mkIf =
8− η ->
9− { documentation = {nixos = {enable = ζ;};};
5+ β ->
6+ { documentation = {nixos = {enable = δ;};};
107 environment = {variables = {NIX_REMOTE = String;};};
11− networking = {useHostResolvConf = θ;};
12− nix = {optimise = {automatic = ι;};};
13− powerManagement = {enable = κ;};
8+ networking = {useHostResolvConf = ε;};
9+ nix = {optimise = {automatic = ζ;};};
10+ powerManagement = {enable = η;};
1411 security = {audit = {enable = Bool;};};
15− services = {openssh = {startWhenNeeded = λ;}; udisks2 = {enable = μ;};};
12+ services = {openssh = {startWhenNeeded = θ;}; udisks2 = {enable = ι;};};
1613 system = {build = {installBootLoader = String;};};
1714 } ->
18− ν,
19− ε.isContainer = η
15+ κ,
16+ λ.boot = α
2017) =>
21−α -> {config = ν;}
18+{config = α; lib = γ; pkgs = μ;} -> {config = κ;}
test/golden/importless/containers.txt+6−6
@@ -1,16 +1,16 @@
11∀ α β γ δ ε ζ η θ.
2−( α.licenses = β,
3− α.maintainers = γ,
4− β.bsd3 = δ,
5− γ.brainrape = ε
2+( α.brainrape = β,
3+ α.bsd3 = γ,
4+ δ.licenses = α,
5+ ε.maintainers = α
66) =>
77{ build-idris-package =
88 { idrisDeps = [ζ];
99 meta =
1010 { description = String;
1111 homepage = String;
12− license = δ;
13− maintainers = [ε];
12+ license = γ;
13+ maintainers = [β];
1414 };
1515 name = String;
1616 src = η;
test/golden/importless/contrib.txt+22−21
@@ -1,5 +1,5 @@
1−∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1 δ1 ε1.
2−( β // {description = String; homepage = String;} ~ γ,
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β2 γ3 δ4 ε5.
2+( (β) // ({description = String; homepage = String;}) ~ (γ),
33 δ.lib = ε,
44 δ.mkDerivation =
55 { doInstallCheck = Bool;
@@ -21,10 +21,11 @@
2121 version = λ;
2222 } ->
2323 μ,
24− ν.meta = ξ,
24+ ν.maintainers = η,
25+ ν.meta = β,
2526 ν.src = κ,
2627 ν.version = λ,
27− ο.buildPythonApplication =
28+ ξ.buildPythonApplication =
2829 { dontBuild = Bool;
2930 dontConfigure = Bool;
3031 format = String;
@@ -32,31 +33,31 @@
3233 lname = String;
3334 meta = ∀ α. α;
3435 pname = String;
35− propagatedBuildInputs = [π];
36− src = ρ;
37− version = σ;
36+ propagatedBuildInputs = [ο];
37+ src = π;
38+ version = ρ;
3839 } ->
39− τ,
40− ο.i3ipc = π,
40+ σ,
41+ ξ.i3ipc = ο,
4142 ε.evils = η,
42− ε.licenses = υ,
43− ε.maintainers = φ,
44− ε.platforms = χ,
45− υ.mit = ζ,
46− χ.all = θ,
47− ξ.maintainers = η
43+ ε.licenses = τ,
44+ ε.maintainers = υ,
45+ ε.platforms = φ,
46+ τ.mit = ζ,
47+ φ.all = θ,
48+ χ.meta = ν
4849) =>
4950{ coreutils = ψ;
5051 fetchurl = ω;
5152 grim = α1;
5253 installShellFiles = ι;
53− jq = β1;
54− libnotify = γ1;
54+ jq = β2;
55+ libnotify = γ3;
5556 makeWrapper = ι;
56− python3Packages = ο;
57− slurp = δ1;
57+ python3Packages = ξ;
58+ slurp = δ4;
5859 stdenv = δ;
5960 sway-unwrapped = ν;
60− wl-clipboard = ε1;
61+ wl-clipboard = ε5;
6162} ->
62−{grimshot = μ; inactive-windows-transparency = τ;}
63+{grimshot = μ; inactive-windows-transparency = σ;}
test/golden/importless/control.txt+9−7
@@ -1,5 +1,5 @@
11∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ.
2−( β.lib = γ,
2+( β.majorMinor = String -> γ,
33 β.mkDerivation =
44 { buildInputs = [δ];
55 doBuild = Bool;
@@ -19,16 +19,18 @@
1919 version = ∀ α. α;
2020 } ->
2121 ι,
22+ β.unfree = ε,
23+ β.zimbatm = ζ,
2224 κ.withPackages = (λ -> [μ]) -> δ,
2325 λ.pycairo = μ,
2426 λ.pygobject2 = ν,
2527 λ.pygtk = ξ,
26− γ.versions = ο,
27− ο.majorMinor = String -> π,
28− ρ.licenses = σ,
29− σ.unfree = ε,
30− τ.maintainers = υ,
31− υ.zimbatm = ζ
28+ ο.versions = β,
29+ π.lib = ο,
30+ ρ.licenses = β,
31+ σ.lib = ρ,
32+ τ.maintainers = β,
33+ υ.lib = τ
3234) =>
3335{ autoPatchelfHook = φ;
3436 dpkg = η;
test/golden/importless/convert.txt+3−3
@@ -9,15 +9,15 @@
99 maintainers = [β];
1010 };
1111 passthru = {scriptName = String;};
12− patches = [String];
12+ patches = [Path];
1313 pname = String;
1414 postPatch = String;
1515 src = γ;
1616 version = String;
1717 } ->
1818 δ,
19− ε.maintainers = ζ,
20− ζ.Profpatsch = β
19+ ε.Profpatsch = β,
20+ ζ.maintainers = ε
2121) =>
2222{ fetchgit = {rev = String; sha256 = String; url = String;} -> γ;
2323 lib = ε;
test/golden/importless/couchpotato.txt+15−18
@@ -1,12 +1,8 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.ids = ε,
6− β.services = ζ,
7− γ.mkEnableOption = String -> η,
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.couchpotato = β,
3+ γ.mkEnableOption = String -> δ,
84 γ.mkIf =
9− θ ->
5+ ε ->
106 { systemd =
117 { services =
128 { couchpotato =
@@ -25,19 +21,20 @@
2521 };
2622 };
2723 users =
28− { groups = {couchpotato = {gid = ι;};};
24+ { groups = {couchpotato = {gid = ζ;};};
2925 users =
3026 { couchpotato =
31− {description = String; group = String; home = String; uid = κ;};
27+ {description = String; group = String; home = String; uid = η;};
3228 };
3329 };
3430 } ->
35− λ,
36− ζ.couchpotato = μ,
37− μ.enable = θ,
38− ε.gids = ν,
39− ν.couchpotato = ι,
40− ξ.uids = ο,
41− ο.couchpotato = κ
31+ θ,
32+ β.enable = ε,
33+ ι.services = α,
34+ κ.gids = α,
35+ λ.ids = κ,
36+ μ.uids = α,
37+ ν.ids = μ
4238) =>
43−α -> {config = λ; options = {services = {couchpotato = {enable = η;};};};}
39+{config = α; lib = γ; pkgs = ξ;} ->
40+{config = θ; options = {services = {couchpotato = {enable = δ;};};};}
test/golden/importless/criu.txt+18−20
@@ -1,23 +1,21 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.lib = ε,
6− β.programs = ζ,
7− γ.isYes = String -> η,
8− γ.mkIf =
9− θ ->
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.criu = β,
3+ α.kernelConfig = γ,
4+ δ.isYes = String -> ε,
5+ δ.mkIf =
6+ ζ ->
107 { boot = {kernel = {features = {criu = Bool;};};};
11− environment = {systemPackages = [ι];};
12− system = {requiredKernelConfig = [η];};
8+ environment = {systemPackages = [η];};
9+ system = {requiredKernelConfig = [ε];};
1310 } ->
14− κ,
15− γ.mkOption = {default = Bool; description = String; type = λ;} -> μ,
16− γ.types = ν,
17− δ.criu = ι,
18− ζ.criu = ξ,
19− ξ.enable = θ,
20− ε.kernelConfig = ο,
21− ν.bool = λ
11+ θ,
12+ δ.mkOption = {default = Bool; description = String; type = ι;} -> κ,
13+ δ.types = λ,
14+ μ.criu = η,
15+ β.enable = ζ,
16+ ν.programs = α,
17+ ξ.lib = α,
18+ λ.bool = ι
2219) =>
23−α -> {config = κ; options = {programs = {criu = {enable = μ;};};};}
20+{config = α; lib = δ; pkgs = μ;} ->
21+{config = θ; options = {programs = {criu = {enable = κ;};};};}
test/golden/importless/cryptpad.txt+16−19
@@ -1,11 +1,8 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
6− γ.mkEnableOption = String -> ζ,
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο.
2+( α.cryptpad = β,
3+ γ.mkEnableOption = String -> δ,
74 γ.mkIf =
8− η ->
5+ ε ->
96 { systemd =
107 { services =
118 { cryptpad =
@@ -25,19 +22,19 @@
2522 };
2623 };
2724 } ->
28− θ,
25+ ζ,
2926 γ.mkOption =
30− {default = String; defaultText = String; description = String; type = ι;} ->
31− κ,
32− γ.types = λ,
33− δ.cryptpad = μ,
34− ε.cryptpad = ν,
35− ν.enable = η,
36− λ.path = ι,
37− ξ.package = ο
27+ {default = String; defaultText = String; description = String; type = η;} ->
28+ θ,
29+ γ.types = ι,
30+ κ.cryptpad = λ,
31+ β.enable = ε,
32+ μ.services = α,
33+ ι.path = η,
34+ ν.package = ξ
3835) =>
39−α ->
40−{ config = θ;
36+{config = α; lib = γ; pkgs = κ;} ->
37+{ config = ζ;
4138 options =
42− {services = {cryptpad = {configFile = κ; enable = ζ; package = π;};};};
39+ {services = {cryptpad = {configFile = θ; enable = δ; package = ο;};};};
4340}
test/golden/importless/cryptsetup.txtdeleted−38
@@ -1,38 +0,0 @@
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− name = String;
14− nativeBuildInputs = [η];
15− patches = [θ];
16− src = ι;
17− } ->
18− κ,
19− γ.licenses = λ,
20− λ.gpl2 = ε,
21− μ.maintainers = ν,
22− ξ.platforms = ο,
23− ο.linux = ζ,
24− π.optional = Bool -> String -> [String],
25− ρ.optional = Bool -> Null -> [δ]
26−) =>
27−{ enablePython = Bool;
28− fetchpatch = {sha256 = String; url = String;} -> θ;
29− fetchurl = {sha256 = String; url = String;} -> ι;
30− libgcrypt = δ;
31− libuuid = δ;
32− lvm2 = δ;
33− pkgconfig = η;
34− popt = δ;
35− python = Null;
36− stdenv = β;
37−} ->
38−κ
test/golden/importless/css-lite.txt+4−4
@@ -1,11 +1,11 @@
1−∀ β γ.
2−(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
1+∀ β.
2+{fetchurl = {sha256 = String; url = String;} -> β;} ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. [α];
5+ deps = ∀ α. α;
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
9− src = γ;
9+ src = β;
1010 version = String;
1111}
test/golden/importless/css-selectors-simple-tree.txtdeleted−37
@@ -1,37 +0,0 @@
1−∀ β γ δ.
2−( β.alexandria = γ,
3− β.babel = γ,
4− β.buildnode = γ,
5− β.cl-html5-parser = γ,
6− β.cl-interpol = γ,
7− β.cl-ppcre = γ,
8− β.cl-unicode = γ,
9− β.closer-mop = γ,
10− β.closure-common = γ,
11− β.closure-html = γ,
12− β.collectors = γ,
13− β.css-selectors = γ,
14− β.cxml = γ,
15− β.fetchurl = {sha256 = String; url = String;} -> δ,
16− β.flexi-streams = γ,
17− β.iterate = γ,
18− β.named-readtables = γ,
19− β.puri = γ,
20− β.split-sequence = γ,
21− β.string-case = γ,
22− β.swank = γ,
23− β.symbol-munger = γ,
24− β.trivial-features = γ,
25− β.trivial-gray-streams = γ,
26− β.yacc = γ
27−) =>
28−β ->
29−{ asdFilesToKeep = [String];
30− baseName = String;
31− deps = [γ];
32− description = String;
33− overrides = ∀ α. α -> α;
34− packageName = String;
35− src = δ;
36− version = String;
37−}
test/golden/importless/css-selectors-stp.txtdeleted−38
@@ -1,38 +0,0 @@
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− β.css-selectors = γ,
13− β.cxml = γ,
14− β.cxml-stp = γ,
15− β.fetchurl = {sha256 = String; url = String;} -> δ,
16− β.flexi-streams = γ,
17− β.iterate = γ,
18− β.named-readtables = γ,
19− β.parse-number = γ,
20− β.puri = γ,
21− β.split-sequence = γ,
22− β.swank = γ,
23− β.symbol-munger = γ,
24− β.trivial-features = γ,
25− β.trivial-gray-streams = γ,
26− β.xpath = γ,
27− β.yacc = γ
28−) =>
29−β ->
30−{ asdFilesToKeep = [String];
31− baseName = String;
32− deps = [γ];
33− description = String;
34− overrides = ∀ α. α -> α;
35− packageName = String;
36− src = δ;
37− version = String;
38−}
test/golden/importless/css-selectors.txtdeleted−37
@@ -1,37 +0,0 @@
1−∀ β γ δ.
2−( β.alexandria = γ,
3− β.babel = γ,
4− β.buildnode = γ,
5− β.buildnode-xhtml = γ,
6− β.cl-interpol = γ,
7− β.cl-ppcre = γ,
8− β.cl-unicode = γ,
9− β.closer-mop = γ,
10− β.closure-common = γ,
11− β.closure-html = γ,
12− β.collectors = γ,
13− β.cxml = γ,
14− β.fetchurl = {sha256 = String; url = String;} -> δ,
15− β.flexi-streams = γ,
16− β.iterate = γ,
17− β.lisp-unit2 = γ,
18− β.named-readtables = γ,
19− β.puri = γ,
20− β.split-sequence = γ,
21− β.swank = γ,
22− β.symbol-munger = γ,
23− β.trivial-features = γ,
24− β.trivial-gray-streams = γ,
25− β.yacc = γ
26−) =>
27−β ->
28−{ asdFilesToKeep = [String];
29− baseName = String;
30− deps = [γ];
31− description = String;
32− overrides = ∀ α. α -> α;
33− packageName = String;
34− parasites = [String];
35− src = δ;
36− version = String;
37−}
test/golden/importless/cstore_fdw.txt+5−5
@@ -16,12 +16,12 @@
1616 version = String;
1717 } ->
1818 ι,
19− γ.meta = κ,
20− β.licenses = λ,
21− β.maintainers = μ,
19+ γ.platforms = ζ,
20+ β.licenses = κ,
21+ β.maintainers = λ,
2222 β.thoughtpolice = ε,
23− λ.asl20 = δ,
24− κ.platforms = ζ
23+ κ.asl20 = δ,
24+ μ.meta = γ
2525) =>
2626{ fetchFromGitHub =
2727 {owner = String; repo = String; rev = String; sha256 = String;} -> θ;
test/golden/importless/cstruct.txt+1−1
@@ -1,5 +1,5 @@
11∀ β γ δ ε ζ η θ ι.
2−( β // {description = String;} ~ γ,
2+( (β) // ({description = String;}) ~ (γ),
33 δ.meta = β,
44 δ.minimumOCamlVersion = ε,
55 δ.src = ζ,
test/golden/importless/cube.txt+6−6
@@ -1,15 +1,15 @@
11∀ α β γ δ ε ζ η.
2−( α.licenses = β,
3− α.maintainers = γ,
4− β.agpl3 = δ,
5− γ.brainrape = ε
2+( α.agpl3 = β,
3+ α.brainrape = γ,
4+ δ.licenses = α,
5+ ε.maintainers = α
66) =>
77{ build-idris-package =
88 { meta =
99 { description = String;
1010 homepage = String;
11− license = δ;
12− maintainers = [ε];
11+ license = β;
12+ maintainers = [γ];
1313 };
1414 name = String;
1515 src = ζ;
test/golden/importless/curaengine.txt+1−1
@@ -11,7 +11,7 @@
1111 platforms = ζ;
1212 };
1313 nativeBuildInputs = [η];
14− patches = [String];
14+ patches = [Path];
1515 pname = String;
1616 src = θ;
1717 version = String;
test/golden/importless/curry-base.txt+3−3
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ.
2−(α.lib = β, β.licenses = γ, γ.bsd3 = δ) => { Cabal = ε;
2+(α.bsd3 = β, γ.licenses = α, δ.lib = γ) => { Cabal = ε;
33 base = ε;
44 containers = ε;
55 directory = ε;
@@ -9,9 +9,9 @@
99 { description = String;
1010 homepage = String;
1111 libraryHaskellDepends = [ε];
12− license = δ;
12+ license = β;
1313 pname = String;
14− src = String;
14+ src = Path;
1515 testHaskellDepends = [ε];
1616 version = String;
1717 } ->
test/golden/importless/curry-frontend.txt+3−3
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ.
2−(α.lib = β, β.licenses = γ, γ.bsd3 = δ) => { Cabal = ε;
2+(α.bsd3 = β, γ.licenses = α, δ.lib = γ) => { Cabal = ε;
33 base = ε;
44 bytestring = ε;
55 containers = ε;
@@ -16,9 +16,9 @@
1616 isExecutable = Bool;
1717 isLibrary = Bool;
1818 libraryHaskellDepends = [ε];
19− license = δ;
19+ license = β;
2020 pname = String;
21− src = String;
21+ src = Path;
2222 testHaskellDepends = [ε];
2323 version = String;
2424 } ->
test/golden/importless/cursive.txt+22−21
@@ -1,38 +1,39 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ.
22( α.isDarwin = β,
33 α.lib = γ,
4− δ.buildRustPackage =
4+ α.optionals = β -> [δ] -> [ε],
5+ ζ.buildRustPackage =
56 { buildInputs = [ε];
67 cargoBuildFlags = [String];
78 cargoSha256 = String;
89 meta =
910 { description = String;
1011 homepage = String;
11− license = ζ;
12− maintainers = [η];
13− platforms = θ;
12+ license = η;
13+ maintainers = [θ];
14+ platforms = ι;
1415 };
1516 nativeBuildInputs = [ε];
16− patches = [String];
17+ patches = [Path];
1718 pname = String;
1819 preFixup = String;
19− src = ι;
20+ src = κ;
2021 version = String;
2122 } ->
22− κ,
23− δ.licenses = λ,
24− δ.maintainers = μ,
25− δ.platforms = ν,
26− δ.sgo = η,
27− ξ.libxcb = ε,
28− ο.optionals = β -> [π] -> [ε],
29− λ.gpl3 = ζ,
30− ν.unix = θ
23+ λ,
24+ ζ.licenses = μ,
25+ ζ.maintainers = ν,
26+ ζ.platforms = ξ,
27+ ζ.sgo = θ,
28+ ο.libxcb = ε,
29+ π.lib = α,
30+ μ.gpl3 = η,
31+ ξ.unix = ι
3132) =>
32−{ AppKit = π;
33− Security = π;
33+{ AppKit = δ;
34+ Security = δ;
3435 fetchFromGitHub =
35− {owner = String; repo = String; rev = String; sha256 = String;} -> ι;
36+ {owner = String; repo = String; rev = String; sha256 = String;} -> κ;
3637 gpgme = ε;
3738 lib = ρ;
3839 libgpgerror = ε;
@@ -40,8 +41,8 @@
4041 openssl = ε;
4142 pkgconfig = ε;
4243 python3 = ε;
43− rustPlatform = δ;
44+ rustPlatform = ζ;
4445 stdenv = α;
45− xorg = ξ;
46+ xorg = ο;
4647} ->
47−κ
48+λ
test/golden/importless/cutter.txt+5−5
@@ -14,13 +14,13 @@
1414 version = String;
1515 } ->
1616 ι,
17− θ.meta = κ,
17+ θ.homepage = δ,
1818 β.dtzWill = ζ,
19− β.licenses = λ,
20− β.maintainers = μ,
19+ β.licenses = κ,
20+ β.maintainers = λ,
2121 β.mic92 = ζ,
22− λ.gpl3 = ε,
23− κ.homepage = δ
22+ κ.gpl3 = ε,
23+ μ.meta = θ
2424) =>
2525{ fetchFromGitHub =
2626 {owner = String; repo = String; rev = String; sha256 = String;} -> θ;
test/golden/importless/cwm.txt+16−19
@@ -1,24 +1,21 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
6− γ.mkEnableOption = String -> ζ,
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.cwm = β,
3+ γ.mkEnableOption = String -> δ,
74 γ.mkIf =
8− η ->
9− { environment = {systemPackages = [θ];};
10− services = {xserver = {windowManager = {session = ι;};};};
5+ ε ->
6+ { environment = {systemPackages = [ζ];};
7+ services = {xserver = {windowManager = {session = η;};};};
118 } ->
12− κ,
13− γ.singleton = {name = String; start = String;} -> ι,
14− δ.cwm = θ,
15− ε.xserver = λ,
16− λ.windowManager = μ,
17− μ.cwm = ν,
18− ν.enable = η
9+ θ,
10+ γ.singleton = {name = String; start = String;} -> η,
11+ ι.cwm = ζ,
12+ β.enable = ε,
13+ κ.windowManager = α,
14+ λ.xserver = κ,
15+ μ.services = λ
1916) =>
20−α ->
21−{ config = κ;
17+{config = α; lib = γ; pkgs = ι;} ->
18+{ config = θ;
2219 options =
23− {services = {xserver = {windowManager = {cwm = {enable = ζ;};};};};};
20+ {services = {xserver = {windowManager = {cwm = {enable = δ;};};};};};
2421}
test/golden/importless/cxml-stp.txtdeleted−27
@@ -1,27 +0,0 @@
1−∀ β γ δ.
2−( β.alexandria = γ,
3− β.babel = γ,
4− β.cl-ppcre = γ,
5− β.closure-common = γ,
6− β.cxml = γ,
7− β.fetchurl = {sha256 = String; url = String;} -> δ,
8− β.parse-number = γ,
9− β.puri = γ,
10− β.rt = γ,
11− β.trivial-features = γ,
12− β.trivial-gray-streams = γ,
13− β.xpath = γ,
14− β.xpath_slash_test = γ,
15− β.yacc = γ
16−) =>
17−β ->
18−{ asdFilesToKeep = [String];
19− baseName = String;
20− deps = [γ];
21− description = String;
22− overrides = ∀ α. α -> α;
23− packageName = String;
24− parasites = [String];
25− src = δ;
26− version = String;
27−}
test/golden/importless/cxml.txtdeleted−20
@@ -1,20 +0,0 @@
1−∀ β γ δ.
2−( β.alexandria = γ,
3− β.babel = γ,
4− β.closure-common = γ,
5− β.fetchurl = {sha256 = String; url = String;} -> δ,
6− β.puri = γ,
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− parasites = [String];
18− src = δ;
19− version = String;
20−}
test/golden/importless/dante.txt+18−21
@@ -1,13 +1,10 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
6− γ.arobyn = ζ,
7− γ.maintainers = η,
8− γ.mkEnableOption = String -> θ,
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.dante = β,
3+ γ.arobyn = δ,
4+ γ.maintainers = ε,
5+ γ.mkEnableOption = String -> ζ,
96 γ.mkIf =
10− ι ->
7+ η ->
118 { assertions = [{assertion = Bool; message = String;}];
129 systemd =
1310 { services =
@@ -32,17 +29,17 @@
3229 };
3330 };
3431 } ->
35− κ,
36− γ.mkOption = {description = String; type = λ;} -> μ,
37− γ.types = ν,
38− δ.writeText = String -> String -> ξ,
39− ε.dante = ο,
40− ο.config = String,
41− ο.enable = ι,
42− ν.lines = λ
32+ θ,
33+ γ.mkOption = {description = String; type = ι;} -> κ,
34+ γ.types = λ,
35+ μ.writeText = String -> String -> ν,
36+ β.config = String,
37+ β.enable = η,
38+ ξ.services = α,
39+ λ.lines = ι
4340) =>
44−α ->
45−{ config = κ;
46− meta = {maintainers = [ζ];};
47− options = {services = {dante = {config = μ; enable = θ;};};};
41+{config = α; lib = γ; pkgs = μ;} ->
42+{ config = θ;
43+ meta = {maintainers = [δ];};
44+ options = {services = {dante = {config = κ; enable = ζ;};};};
4845}
test/golden/importless/das_watchdog.txt+11−13
@@ -1,12 +1,9 @@
1−∀ α β γ δ ε ζ η θ ι κ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
6− γ.mkEnableOption = String -> ζ,
1+∀ α β γ δ ε ζ η θ ι.
2+( α.enable = β,
3+ γ.mkEnableOption = String -> δ,
74 γ.mkIf =
8− η ->
9− { environment = {systemPackages = [θ];};
5+ β ->
6+ { environment = {systemPackages = [ε];};
107 systemd =
118 { services =
129 { das_watchdog =
@@ -23,9 +20,10 @@
2320 };
2421 };
2522 } ->
26− ι,
27− δ.das_watchdog = θ,
28− ε.das_watchdog = κ,
29− κ.enable = η
23+ ζ,
24+ η.das_watchdog = ε,
25+ θ.das_watchdog = α,
26+ ι.services = θ
3027) =>
31−α -> {config = ι; options = {services = {das_watchdog = {enable = ζ;};};};}
28+{config = α; lib = γ; pkgs = η;} ->
29+{config = ζ; options = {services = {das_watchdog = {enable = δ;};};};}
test/golden/importless/data-api.txt+6−6
@@ -4,21 +4,21 @@
44 α.maintainers = ζ,
55 α.nixType = δ -> String,
66 α.offline = η,
7− α.strings = θ,
7+ α.substring = Integer -> Integer -> String -> θ,
88 ι.buildNodePackage =
99 { deps = ε;
1010 meta = {description = String; homepage = String; maintainers = [η];};
1111 name = String;
1212 rev = String;
1313 src = κ;
14− version = λ;
14+ version = θ;
1515 } ->
16− μ,
17− ι.override = {generated = String; self = β;} -> β,
18− θ.substring = Number -> Number -> String -> λ
16+ λ,
17+ ι.override = {generated = Path; self = β;} -> β,
18+ μ.strings = α
1919) =>
2020{ fetchgit = {rev = String; sha256 = String; url = String;} -> κ;
2121 lib = α;
2222 nodePackages = ι;
2323} ->
24−μ
24+λ
test/golden/importless/data.txt+1−1
@@ -5,7 +5,7 @@
55 meta =
66 { description = String;
77 homepage = String;
8− hydraPlatforms = ∀ α. [α];
8+ hydraPlatforms = ∀ α. α;
99 license = δ;
1010 platforms = ε;
1111 };
test/golden/importless/db3.txt+4−4
@@ -1,11 +1,11 @@
1−∀ β γ.
2−(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
1+∀ β.
2+{fetchurl = {sha256 = String; url = String;} -> β;} ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. [α];
5+ deps = ∀ α. α;
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
9− src = γ;
9+ src = β;
1010 version = String;
1111}
test/golden/importless/dbd-mysql.txtdeleted−27
@@ -1,27 +0,0 @@
1−∀ β γ δ.
2−( β.alexandria = γ,
3− β.babel = γ,
4− β.bordeaux-threads = γ,
5− β.cffi = γ,
6− β.cl-annot = γ,
7− β.cl-mysql = γ,
8− β.cl-syntax = γ,
9− β.cl-syntax-annot = γ,
10− β.closer-mop = γ,
11− β.dbi = γ,
12− β.fetchurl = {sha256 = String; url = String;} -> δ,
13− β.named-readtables = γ,
14− β.split-sequence = γ,
15− β.trivial-features = γ,
16− β.trivial-types = γ
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/dbd-postgres.txtdeleted−27
@@ -1,27 +0,0 @@
1−∀ β γ δ.
2−( β.alexandria = γ,
3− β.bordeaux-threads = γ,
4− β.cl-annot = γ,
5− β.cl-postgres = γ,
6− β.cl-syntax = γ,
7− β.cl-syntax-annot = γ,
8− β.closer-mop = γ,
9− β.dbi = γ,
10− β.fetchurl = {sha256 = String; url = String;} -> δ,
11− β.md5 = γ,
12− β.named-readtables = γ,
13− β.split-sequence = γ,
14− β.trivial-garbage = γ,
15− β.trivial-types = γ,
16− β.usocket = γ
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/dbd-sqlite3.txtdeleted−30
@@ -1,30 +0,0 @@
1−∀ β γ δ.
2−( β.alexandria = γ,
3− β.babel = γ,
4− β.bordeaux-threads = γ,
5− β.cffi = γ,
6− β.cl-annot = γ,
7− β.cl-syntax = γ,
8− β.cl-syntax-annot = γ,
9− β.closer-mop = γ,
10− β.dbi = γ,
11− β.fetchurl = {sha256 = String; url = String;} -> δ,
12− β.iterate = γ,
13− β.named-readtables = γ,
14− β.split-sequence = γ,
15− β.sqlite = γ,
16− β.trivial-features = γ,
17− β.trivial-garbage = γ,
18− β.trivial-types = γ,
19− β.uiop = γ
20−) =>
21−β ->
22−{ asdFilesToKeep = [String];
23− baseName = String;
24− deps = [γ];
25− description = String;
26− overrides = ∀ α. α -> α;
27− packageName = String;
28− src = δ;
29− version = String;
30−}
test/golden/importless/dbi.txtdeleted−22
@@ -1,22 +0,0 @@
1−∀ β γ δ.
2−( β.alexandria = γ,
3− β.bordeaux-threads = γ,
4− β.cl-annot = γ,
5− β.cl-syntax = γ,
6− β.cl-syntax-annot = γ,
7− β.closer-mop = γ,
8− β.fetchurl = {sha256 = String; url = String;} -> δ,
9− β.named-readtables = γ,
10− β.split-sequence = γ,
11− β.trivial-types = γ
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/dconf2nix.txt+2−2
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ η.
2−(α.lib = β, β.licenses = γ, γ.asl20 = δ) => { base = ε;
2+(α.asl20 = β, γ.licenses = α, δ.lib = γ) => { base = ε;
33 containers = ε;
44 fetchgit =
55 {fetchSubmodules = Bool; rev = String; sha256 = String; url = String;} -> ζ;
@@ -9,7 +9,7 @@
99 isExecutable = Bool;
1010 isLibrary = Bool;
1111 libraryHaskellDepends = [ε];
12− license = δ;
12+ license = β;
1313 pname = String;
1414 src = ζ;
1515 version = String;
test/golden/importless/debian-build.txtdeleted−29
@@ -1,29 +0,0 @@
1−∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο.
2−( β //
3− { installExtraDebsPhase = String;
4− installPhase = String;
5− meta = ∀ α. α;
6− name = String;
7− postHook = String;
8− sysInfoPhase = String;
9− } ~
10− γ,
11− {doCheck = Bool; prePhases = String; prefix = String;} // γ ~ δ,
12− ε.?debProvides = [ζ],
13− ε.?debRequires = [η],
14− ε.?fsTranslation = Bool,
15− ε.meta = {},
16− ε.?name = String,
17− θ.version = String,
18− ε.checkinstall = ι,
19− ε.diskImage = κ,
20− ε.src = θ,
21− ε.stdenv = λ,
22− ε.vmTools = μ,
23− κ.name = String,
24− λ.lib = ν,
25− λ.mkDerivation = δ -> ξ,
26− μ.runInLinuxImage = ξ -> ο,
27− ν.removeAttrs = ε -> [String] -> β
28−) =>
29−ε -> ο
test/golden/importless/debug-info.txt+10−11
@@ -1,18 +1,17 @@
1−∀ α β γ δ ε ζ η θ ι.
2−( α.config = β,
3− α.lib = γ,
4− β.environment = δ,
1+∀ α β γ δ ε ζ η θ.
2+( α.enableDebugInfo = β,
53 γ.mkIf =
6− ε ->
4+ β ->
75 { environment =
86 { extraOutputsToInstall = [String];
97 variables = {NIX_DEBUG_INFO_DIRS = [String];};
108 };
119 } ->
12− ζ,
13− γ.mkOption = {default = Bool; description = String; type = η;} -> θ,
14− γ.types = ι,
15− δ.enableDebugInfo = ε,
16− ι.bool = η
10+ δ,
11+ γ.mkOption = {default = Bool; description = String; type = ε;} -> ζ,
12+ γ.types = η,
13+ θ.environment = α,
14+ η.bool = ε
1715) =>
18−α -> {config = ζ; options = {environment = {enableDebugInfo = θ;};};}
16+{config = α; lib = γ;} ->
17+{config = δ; options = {environment = {enableDebugInfo = ζ;};};}
test/golden/importless/declare-attrsOf.txt+7−7
@@ -1,8 +1,8 @@
1−∀ α β γ δ ε ζ η.
2−( α.lib = β,
3− β.mkOption = {default = {}; type = γ;} -> δ,
4− β.types = ε,
5− ε.attrsOf = ζ -> γ,
6− η.str = ζ
1+∀ α β γ δ ε ζ.
2+( α.attrsOf = β -> γ,
3+ α.mkOption = {default = {}; type = γ;} -> δ,
4+ α.str = β,
5+ ε.types = α,
6+ ζ.types = α
77) =>
8−α -> {options = {value = δ;};}
8+{lib = α;} -> {options = {value = δ;};}
test/golden/importless/declare-coerced-value-unsound.txt+11−10
@@ -1,11 +1,12 @@
1−∀ α β γ δ ε ζ η θ ι κ λ.
2−( α.lib = β,
3− β.mkOption = {default = String; type = γ;} -> δ,
4− β.toInt = ε,
5− β.types = ζ,
6− ζ.coercedTo = η -> ε -> θ -> γ,
7− ι.str = η,
8− κ.ints = λ,
9− λ.s8 = θ
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.coercedTo = β -> γ -> δ -> ε,
3+ α.mkOption = {default = String; type = ε;} -> ζ,
4+ α.s8 = δ,
5+ α.str = β,
6+ α.toInt = γ,
7+ η.types = α,
8+ θ.types = α,
9+ ι.ints = α,
10+ κ.types = ι
1011) =>
11−α -> {options = {value = δ;};}
12+{lib = α;} -> {options = {value = ζ;};}
test/golden/importless/declare-either.txt+9−8
@@ -1,9 +1,10 @@
1−∀ α β γ δ ε ζ η θ ι.
2−( α.lib = β,
3− β.mkOption = {type = γ;} -> δ,
4− β.types = ε,
5− ε.either = ζ -> η -> γ,
6− θ.int = ζ,
7− ι.str = η
1+∀ α β γ δ ε ζ η θ.
2+( α.either = β -> γ -> δ,
3+ α.int = β,
4+ α.mkOption = {type = δ;} -> ε,
5+ α.str = γ,
6+ ζ.types = α,
7+ η.types = α,
8+ θ.types = α
89) =>
9−α -> {options = {value = δ;};}
10+{lib = α;} -> {options = {value = ε;};}
test/golden/importless/declare-enable-nested.txt+6−7
@@ -1,8 +1,7 @@
1−∀ α β γ δ ε.
2−( α.lib = β,
3− β.mkOption =
4− {default = Bool; description = String; example = Bool; type = γ;} -> δ,
5− β.types = ε,
6− ε.bool = γ
1+∀ α β γ δ.
2+( α.bool = β,
3+ α.mkOption =
4+ {default = Bool; description = String; example = Bool; type = β;} -> γ,
5+ δ.types = α
76) =>
8−α -> {options = {set = {enable = δ;};};}
7+{lib = α;} -> {options = {set = {enable = γ;};};}
test/golden/importless/declare-enable.txt+6−7
@@ -1,8 +1,7 @@
1−∀ α β γ δ ε.
2−( α.lib = β,
3− β.mkOption =
4− {default = Bool; description = String; example = Bool; type = γ;} -> δ,
5− β.types = ε,
6− ε.bool = γ
1+∀ α β γ δ.
2+( α.bool = β,
3+ α.mkOption =
4+ {default = Bool; description = String; example = Bool; type = β;} -> γ,
5+ δ.types = α
76) =>
8−α -> {options = {enable = δ;};}
7+{lib = α;} -> {options = {enable = γ;};}
test/golden/importless/declare-int-between-value.txt+6−7
@@ -1,8 +1,7 @@
1−∀ α β γ δ ε ζ.
2−( α.lib = β,
3− β.mkOption = {type = γ;} -> δ,
4− β.types = ε,
5− ε.ints = ζ,
6− ζ.between = Number -> Number -> γ
1+∀ α β γ δ ε.
2+( α.between = Integer -> Integer -> β,
3+ α.mkOption = {type = β;} -> γ,
4+ δ.ints = α,
5+ ε.types = δ
76) =>
8−α -> {options = {value = δ;};}
7+{lib = α;} -> {options = {value = γ;};}
test/golden/importless/declare-int-positive-value-nested.txt+6−7
@@ -1,8 +1,7 @@
1−∀ α β γ δ ε ζ.
2−( α.lib = β,
3− β.mkOption = {type = γ;} -> δ,
4− β.types = ε,
5− ε.ints = ζ,
6− ζ.positive = γ
1+∀ α β γ δ ε.
2+( α.mkOption = {type = β;} -> γ,
3+ α.positive = β,
4+ δ.ints = α,
5+ ε.types = δ
76) =>
8−α -> {options = {set = {value = δ;};};}
7+{lib = α;} -> {options = {set = {value = γ;};};}
test/golden/importless/declare-int-positive-value.txt+6−7
@@ -1,8 +1,7 @@
1−∀ α β γ δ ε ζ.
2−( α.lib = β,
3− β.mkOption = {type = γ;} -> δ,
4− β.types = ε,
5− ε.ints = ζ,
6− ζ.positive = γ
1+∀ α β γ δ ε.
2+( α.mkOption = {type = β;} -> γ,
3+ α.positive = β,
4+ δ.ints = α,
5+ ε.types = δ
76) =>
8−α -> {options = {value = δ;};}
7+{lib = α;} -> {options = {value = γ;};}
test/golden/importless/declare-int-unsigned-value.txt+6−7
@@ -1,8 +1,7 @@
1−∀ α β γ δ ε ζ.
2−( α.lib = β,
3− β.mkOption = {type = γ;} -> δ,
4− β.types = ε,
5− ε.ints = ζ,
6− ζ.unsigned = γ
1+∀ α β γ δ ε.
2+( α.mkOption = {type = β;} -> γ,
3+ α.unsigned = β,
4+ δ.ints = α,
5+ ε.types = δ
76) =>
8−α -> {options = {value = δ;};}
7+{lib = α;} -> {options = {value = γ;};}
test/golden/importless/declare-lazyAttrsOf.txt+8−8
@@ -1,9 +1,9 @@
1−∀ α β γ δ ε ζ η θ.
2−( α // {emptyValue = {value = String;};} ~ β,
3− γ.lib = δ,
4− δ.mkOption = {default = {}; type = ε;} -> ζ,
5− δ.types = η,
6− η.lazyAttrsOf = β -> ε,
7− θ.str = α
1+∀ α β γ δ ε ζ η.
2+( (α) // ({emptyValue = {value = String;};}) ~ (β),
3+ γ.lazyAttrsOf = β -> δ,
4+ γ.mkOption = {default = {}; type = δ;} -> ε,
5+ γ.str = α,
6+ ζ.types = γ,
7+ η.types = γ
88) =>
9−γ -> {options = {value = ζ;};}
9+{lib = γ;} -> {options = {value = ε;};}
test/golden/importless/declare-oneOf.txt+12−10
@@ -1,11 +1,13 @@
1−∀ α β γ δ ε ζ η θ ι κ λ.
2−( α.lib = β,
3− β.mkOption = {type = γ;} -> δ,
4− β.types = ε,
5− ε.oneOf = [ζ] -> γ,
6− η.int = ζ,
7− θ.listOf = ι -> ζ,
8− κ.int = ι,
9− λ.str = ζ
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.int = β,
3+ α.listOf = γ -> β,
4+ α.mkOption = {type = δ;} -> ε,
5+ α.oneOf = [β] -> δ,
6+ α.str = β,
7+ ζ.types = α,
8+ η.types = α,
9+ θ.types = α,
10+ ι.types = α,
11+ κ.types = α
1012) =>
11−α -> {options = {value = δ;};}
13+{lib = α;} -> {options = {value = ε;};}
test/golden/importless/declare-submoduleWith-path.txt+5−6
@@ -1,7 +1,6 @@
1−∀ α β γ δ ε.
2−( α.lib = β,
3− β.mkOption = {default = {}; type = γ;} -> δ,
4− β.types = ε,
5− ε.submoduleWith = {modules = [String];} -> γ
1+∀ α β γ δ.
2+( α.mkOption = {default = {}; type = β;} -> γ,
3+ α.submoduleWith = {modules = [Path];} -> β,
4+ δ.types = α
65) =>
7−α -> {config = {submodule = String;}; options = {submodule = δ;};}
6+{lib = α;} -> {config = {submodule = Path;}; options = {submodule = γ;};}
test/golden/importless/declare-submoduleWith-special.txt+10−11
@@ -1,17 +1,16 @@
1−∀ ζ η θ ι κ λ.
2−( ζ // {foo = String;} ~ η,
3− θ.lib = ζ,
4− ζ.mkOption = {default = {}; type = ι;} -> κ,
5− ζ.types = λ,
6− λ.submoduleWith =
1+∀ ε ζ η θ ι.
2+( (ε) // ({foo = String;}) ~ (ζ),
3+ ε.mkOption = {default = {}; type = η;} -> θ,
4+ ε.submoduleWith =
75 { modules =
8− ∀ β γ δ ε.
9− (β.lib = γ, γ.foo = δ, γ.mkOption = {default = δ;} -> ε) => [ ( β ->
10− {options = {foo = ε;};}
6+ ∀ β γ δ.
7+ (β.foo = γ, β.mkOption = {default = γ;} -> δ) => [ ( {lib = β;} ->
8+ {options = {foo = δ;};}
119 )
1210 ];
1311 specialArgs = {lib = ∀ α. α;};
1412 } ->
15− ι
13+ η,
14+ ι.types = ε
1615) =>
17−θ -> {options = {submodule = κ;};}
16+{lib = ε;} -> {options = {submodule = θ;};}
test/golden/importless/default-crate-overrides.txt+55−54
@@ -1,64 +1,65 @@
1−∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ.
2−( β.cairo = γ,
3− β.curl = δ,
4− β.darwin = ε,
5− β.dbus = δ,
6− β.dbus-glib = ζ,
7− β.foundationdb = η,
8− β.gdk-pixbuf = θ,
9− β.gmp = ι,
10− β.libgit2 = δ,
11− β.libiconv = κ,
12− β.libsodium = δ,
13− β.libssh2 = δ,
14− β.openssl = δ,
15− β.pkgconfig = δ,
16− β.postgresql = δ,
17− β.python3 = λ,
18− β.sqlite = δ,
19− β.stdenv = μ,
20− β.zlib = δ,
21− μ.isDarwin = ν,
22− μ.lib = ξ,
23− ε.apple_sdk = ο,
24− ο.frameworks = π,
25− π.Security = κ,
26− ρ.frameworks = σ,
27− σ.CoreFoundation = κ,
28− ξ.optionals = ν -> [κ] -> [δ],
29− τ.optional = υ -> κ -> φ
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ.
2+( β.isDarwin = γ,
3+ β.optional = δ -> ε -> ζ,
4+ β.optionals = γ -> [ε] -> [η],
5+ θ.frameworks = ι,
6+ κ.lib = β,
7+ λ.lib = β,
8+ ι.Security = ε,
9+ μ.apple_sdk = θ,
10+ ν.CoreFoundation = ε,
11+ ξ.apple_sdk = θ
3012) =>
31−β ->
32−{ cairo-rs = ∀ α. α -> {buildInputs = [γ];};
33− cargo = ∀ α. α -> {buildInputs = [δ];};
13+{ cairo = ο;
14+ curl = η;
15+ darwin = θ;
16+ dbus = η;
17+ dbus-glib = π;
18+ foundationdb = ρ;
19+ gdk-pixbuf = σ;
20+ gmp = τ;
21+ libgit2 = η;
22+ libiconv = ε;
23+ libsodium = η;
24+ libssh2 = η;
25+ openssl = η;
26+ pkgconfig = η;
27+ postgresql = η;
28+ python3 = υ;
29+ sqlite = η;
30+ stdenv = β;
31+ zlib = η;
32+} ->
33+{ cairo-rs = ∀ α. α -> {buildInputs = [ο];};
34+ cargo = ∀ α. α -> {buildInputs = [η];};
3435 curl-sys =
3536 ∀ α.
3637 α ->
37− { buildInputs = [δ];
38+ { buildInputs = [η];
3839 extraLinkFlags = [String];
39− propagatedBuildInputs = [δ];
40+ propagatedBuildInputs = [η];
4041 };
41− dbus = ∀ α. α -> {buildInputs = [δ];};
42− foundationdb = ∀ α. α -> {buildInputs = [η];};
43− foundationdb-sys = ∀ α. α -> {buildInputs = [η];};
44− gdk-pixbuf = ∀ α. α -> {buildInputs = [θ];};
45− gdk-pixbuf-sys = ∀ α. α -> {buildInputs = [ζ];};
46− gio-sys = ∀ α. α -> {buildInputs = [ζ];};
47− gobject-sys = ∀ α. α -> {buildInputs = [ζ];};
48− libdbus-sys = ∀ α. α -> {buildInputs = [δ];};
42+ dbus = ∀ α. α -> {buildInputs = [η];};
43+ foundationdb = ∀ α. α -> {buildInputs = [ρ];};
44+ foundationdb-sys = ∀ α. α -> {buildInputs = [ρ];};
45+ gdk-pixbuf = ∀ α. α -> {buildInputs = [σ];};
46+ gdk-pixbuf-sys = ∀ α. α -> {buildInputs = [π];};
47+ gio-sys = ∀ α. α -> {buildInputs = [π];};
48+ gobject-sys = ∀ α. α -> {buildInputs = [π];};
49+ libdbus-sys = ∀ α. α -> {buildInputs = [η];};
4950 libgit2-sys =
50− ∀ α. α -> {LIBGIT2_SYS_USE_PKG_CONFIG = Bool; buildInputs = [δ];};
51− libsqlite3-sys = ∀ α. α -> {buildInputs = [δ];};
52− libssh2-sys = ∀ α. α -> {buildInputs = [δ];};
53− libz-sys = ∀ α. α -> {buildInputs = [δ]; extraLinkFlags = [String];};
54− openssl = ∀ α. α -> {buildInputs = [δ];};
55− openssl-sys = ∀ α. α -> {buildInputs = [δ];};
56− pq-sys = ∀ α. α -> {buildInputs = [δ];};
51+ ∀ α. α -> {LIBGIT2_SYS_USE_PKG_CONFIG = Bool; buildInputs = [η];};
52+ libsqlite3-sys = ∀ α. α -> {buildInputs = [η];};
53+ libssh2-sys = ∀ α. α -> {buildInputs = [η];};
54+ libz-sys = ∀ α. α -> {buildInputs = [η]; extraLinkFlags = [String];};
55+ openssl = ∀ α. α -> {buildInputs = [η];};
56+ openssl-sys = ∀ α. α -> {buildInputs = [η];};
57+ pq-sys = ∀ α. α -> {buildInputs = [η];};
5758 rink =
5859 ∀ α.
59− α -> {buildInputs = [ι]; crateBin = [{name = String; path = String;}];};
60− security-framework-sys = ∀ α. α -> {propagatedBuildInputs = [κ];};
61− serde_derive = ∀ α. α -> {buildInputs = φ;};
62− thrussh-libsodium = ∀ α. α -> {buildInputs = [δ];};
63− xcb = ∀ α. α -> {buildInputs = [λ];};
60+ α -> {buildInputs = [τ]; crateBin = [{name = String; path = String;}];};
61+ security-framework-sys = ∀ α. α -> {propagatedBuildInputs = [ε];};
62+ serde_derive = ∀ α. α -> {buildInputs = ζ;};
63+ thrussh-libsodium = ∀ α. α -> {buildInputs = [η];};
64+ xcb = ∀ α. α -> {buildInputs = [υ];};
6465}
test/golden/importless/define-_module-args-custom.txt+1−1
@@ -1 +1 @@
1−∀ α β. (α.lib = β) => α -> {config = {_module = {args = {custom = Bool;};};};}
1+∀ α. {lib = α;} -> {config = {_module = {args = {custom = Bool;};};};}
test/golden/importless/define-attrsOfSub-foo-enable-force.txt+2−3
@@ -1,3 +1,2 @@
1−∀ α β γ.
2−(α.lib = β, β.mkForce = Bool -> γ) => α ->
3−{attrsOfSub = {foo = {enable = γ;};};}
1+∀ α β.
2+(α.mkForce = Bool -> β) => {lib = α;} -> {attrsOfSub = {foo = {enable = β;};};}
test/golden/importless/define-attrsOfSub-foo-enable-if.txt+3−3
@@ -1,3 +1,3 @@
1−∀ α β γ δ ε.
2−(α.config = β, α.lib = γ, β.enable = δ, γ.mkIf = δ -> Bool -> ε) => α ->
3−{attrsOfSub = {foo = {enable = ε;};};}
1+∀ α β γ δ.
2+(α.enable = β, γ.mkIf = β -> Bool -> δ) => {config = α; lib = γ;} ->
3+{attrsOfSub = {foo = {enable = δ;};};}
test/golden/importless/define-attrsOfSub-foo-force-enable.txt+2−3
@@ -1,3 +1,2 @@
1−∀ α β γ.
2−(α.lib = β, β.mkForce = {enable = Bool;} -> γ) => α ->
3−{attrsOfSub = {foo = γ;};}
1+∀ α β.
2+(α.mkForce = {enable = Bool;} -> β) => {lib = α;} -> {attrsOfSub = {foo = β;};}
test/golden/importless/define-attrsOfSub-foo-if-enable.txt+3−7
@@ -1,7 +1,3 @@
1−∀ α β γ δ ε.
2−( α.config = β,
3− α.lib = γ,
4− β.enable = δ,
5− γ.mkIf = δ -> {enable = Bool;} -> ε
6−) =>
7−α -> {attrsOfSub = {foo = ε;};}
1+∀ α β γ δ.
2+(α.enable = β, γ.mkIf = β -> {enable = Bool;} -> δ) => {config = α; lib = γ;} ->
3+{attrsOfSub = {foo = δ;};}
test/golden/importless/define-attrsOfSub-force-foo-enable.txt+2−3
@@ -1,3 +1,2 @@
1−∀ α β γ.
2−(α.lib = β, β.mkForce = {foo = {enable = Bool;};} -> γ) => α ->
3−{attrsOfSub = γ;}
1+∀ α β.
2+(α.mkForce = {foo = {enable = Bool;};} -> β) => {lib = α;} -> {attrsOfSub = β;}
test/golden/importless/define-attrsOfSub-if-foo-enable.txt+5−7
@@ -1,7 +1,5 @@
1−∀ α β γ δ ε.
2−( α.config = β,
3− α.lib = γ,
4− β.enable = δ,
5− γ.mkIf = δ -> {foo = {enable = Bool;};} -> ε
6−) =>
7−α -> {attrsOfSub = ε;}
1+∀ α β γ δ.
2+(α.enable = β, γ.mkIf = β -> {foo = {enable = Bool;};} -> δ) => { config = α;
3+ lib = γ;
4+} ->
5+{attrsOfSub = δ;}
test/golden/importless/define-enable-force.txt+1−1
@@ -1 +1 @@
1−∀ α β γ. (α.lib = β, β.mkForce = Bool -> γ) => α -> {enable = γ;}
1+∀ α β. (α.mkForce = Bool -> β) => {lib = α;} -> {enable = β;}
test/golden/importless/define-enable-with-custom-arg.txt+1−1
@@ -1 +1 @@
1−∀ α β γ. (α.custom = β, α.lib = γ) => α -> {config = {enable = β;};}
1+∀ α β. {custom = α; lib = β;} -> {config = {enable = α;};}
test/golden/importless/define-force-attrsOfSub-foo-enable.txt+2−3
@@ -1,3 +1,2 @@
1−∀ α β γ.
2−(α.lib = β, β.mkForce = {attrsOfSub = {foo = {enable = Bool;};};} -> γ) => α ->
3−γ
1+∀ α β.
2+(α.mkForce = {attrsOfSub = {foo = {enable = Bool;};};} -> β) => {lib = α;} -> β
test/golden/importless/define-force-enable.txt+1−1
@@ -1 +1 @@
1−∀ α β γ. (α.lib = β, β.mkForce = {enable = Bool;} -> γ) => α -> γ
1+∀ α β. (α.mkForce = {enable = Bool;} -> β) => {lib = α;} -> β
test/golden/importless/define-if-attrsOfSub-foo-enable.txt+4−6
@@ -1,7 +1,5 @@
1−∀ α β γ δ ε.
2−( α.config = β,
3− α.lib = γ,
4− β.enable = δ,
5− γ.mkIf = δ -> {attrsOfSub = {foo = {enable = Bool;};};} -> ε
1+∀ α β γ δ.
2+( α.enable = β,
3+ γ.mkIf = β -> {attrsOfSub = {foo = {enable = Bool;};};} -> δ
64) =>
7−α -> ε
5+{config = α; lib = γ;} -> δ
test/golden/importless/define-option-dependently-nested.txt+4−9
@@ -1,10 +1,5 @@
1−∀ β γ δ ε ζ η θ ι κ.
2−( {value = Number;} // β ~ γ,
3− δ.?set = ε,
4− ε.?enable = ζ,
5− η.?enable = θ,
6− ι.lib = κ,
7− ι.options = δ,
8− κ.optionalAttrs = Bool -> {enable = Bool;} -> β
1+∀ β γ δ.
2+( ({value = Integer;}) // (β) ~ (γ),
3+ δ.optionalAttrs = Bool -> {enable = Bool;} -> β
94) =>
10−ι -> {config = {set = ∀ α. α;};}
5+{lib = δ; options = Bool;} -> {config = {set = ∀ α. α;};}
test/golden/importless/define-option-dependently.txt+4−7
@@ -1,8 +1,5 @@
1−∀ β γ δ ε ζ η.
2−( {value = Number;} // β ~ γ,
3− δ.?enable = ε,
4− ζ.lib = η,
5− ζ.options = δ,
6− η.optionalAttrs = Bool -> {enable = Bool;} -> β
1+∀ β γ δ.
2+( ({value = Integer;}) // (β) ~ (γ),
3+ δ.optionalAttrs = Bool -> {enable = Bool;} -> β
74) =>
8−ζ -> {config = ∀ α. α;}
5+{lib = δ; options = Bool;} -> {config = ∀ α. α;}
test/golden/importless/define-value-int-negative.txt+1−1
@@ -1 +1 @@
1−{value = Number;}
1+{value = Integer;}
test/golden/importless/define-value-int-positive.txt+1−1
@@ -1 +1 @@
1−{value = Number;}
1+{value = Integer;}
test/golden/importless/define-value-int-zero.txt+1−1
@@ -1 +1 @@
1−{value = Number;}
1+{value = Integer;}
test/golden/importless/define-value-list.txt+1−1
@@ -1 +1 @@
1−{value = ∀ α. [α];}
1+{value = ∀ α. α;}
test/golden/importless/dep-overrides.txtdeleted−21
@@ -1,21 +0,0 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2−( α.doJailbreak = β -> γ,
3− α.dontCheck = δ -> β,
4− α.dontHaddock = ε -> β,
5− ζ.happy_1_19_5 = η,
6− θ.ghc-api-ghcjs = ι,
7− θ.ghcjs = κ,
8− θ.haddock-api-ghcjs = ε,
9− θ.haddock-library-ghcjs = δ,
10− θ.shelly_1_8_1 = λ,
11− ι.override = {happy = η;} -> μ,
12− κ.override = {shelly = λ;} -> ν
13−) =>
14−{haskellLib = α;} ->
15−ζ ->
16−θ ->
17−{ ghc-api-ghcjs = μ;
18− ghcjs = ν;
19− haddock-api-ghcjs = γ;
20− haddock-library-ghcjs = γ;
21−}
test/golden/importless/derive.txt+6−6
@@ -1,16 +1,16 @@
11∀ α β γ δ ε ζ η θ.
2−( α.licenses = β,
3− α.maintainers = γ,
4− β.mit = δ,
5− γ.brainrape = ε
2+( α.brainrape = β,
3+ α.mit = γ,
4+ δ.licenses = α,
5+ ε.maintainers = α
66) =>
77{ build-idris-package =
88 { idrisDeps = [ζ];
99 meta =
1010 { description = String;
1111 homepage = String;
12− license = δ;
13− maintainers = [ε];
12+ license = γ;
13+ maintainers = [β];
1414 };
1515 name = String;
1616 src = η;
test/golden/importless/descncrunch.txt+6−6
@@ -1,8 +1,8 @@
11∀ α β γ δ ε ζ η θ.
2−( α.licenses = β,
3− α.maintainers = γ,
4− β.gpl3 = δ,
5− γ.brainrape = ε
2+( α.brainrape = β,
3+ α.gpl3 = γ,
4+ δ.licenses = α,
5+ ε.maintainers = α
66) =>
77{ build-idris-package =
88 { idrisDeps = [ζ];
@@ -10,8 +10,8 @@
1010 { broken = Bool;
1111 description = String;
1212 homepage = String;
13− license = δ;
14− maintainers = [ε];
13+ license = γ;
14+ maintainers = [β];
1515 };
1616 name = String;
1717 src = η;
test/golden/importless/detected.txt+3−4
@@ -1,5 +1,4 @@
1−∀ α β γ.
2−( α.lib = β,
3− β.mkDefault = {hardware = {enableRedistributableFirmware = Bool;};} -> γ
1+∀ α β.
2+( α.mkDefault = {hardware = {enableRedistributableFirmware = Bool;};} -> β
43) =>
5−α -> {config = γ;}
4+{lib = α;} -> {config = β;}
test/golden/importless/devmon.txt+15−17
@@ -1,22 +1,19 @@
1−∀ α β γ δ ε ζ η θ ι κ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− δ.procps = ε,
6− δ.udevil = ε,
7− δ.udisks2 = ε,
8− δ.which = ε,
9− β.services = ζ,
10− γ.mkEnableOption = String -> η,
11− γ.mkIf =
12− θ ->
1+∀ α β γ δ ε ζ η θ ι.
2+( α.procps = β,
3+ α.udevil = β,
4+ α.udisks2 = β,
5+ α.which = β,
6+ γ.devmon = δ,
7+ ε.mkEnableOption = String -> ζ,
8+ ε.mkIf =
9+ η ->
1310 { services = {udisks2 = {enable = Bool;};};
1411 systemd =
1512 { user =
1613 { services =
1714 { devmon =
1815 { description = String;
19− path = [ε];
16+ path = [β];
2017 serviceConfig = {ExecStart = String;};
2118 wantedBy = [String];
2219 };
@@ -24,8 +21,9 @@
2421 };
2522 };
2623 } ->
27− ι,
28− ζ.devmon = κ,
29− κ.enable = θ
24+ θ,
25+ δ.enable = η,
26+ ι.services = γ
3027) =>
31−α -> {config = ι; options = {services = {devmon = {enable = η;};};};}
28+{config = γ; lib = ε; pkgs = α;} ->
29+{config = θ; options = {services = {devmon = {enable = ζ;};};};}
test/golden/importless/dexador.txtdeleted−43
@@ -1,43 +0,0 @@
1−∀ β γ δ.
2−( β.alexandria = γ,
3− β.babel = γ,
4− β.bordeaux-threads = γ,
5− β.cffi = γ,
6− β.cffi-grovel = γ,
7− β.cffi-toolchain = γ,
8− β.chipz = γ,
9− β.chunga = γ,
10− β.cl-base64 = γ,
11− β.cl-cookie = γ,
12− β.cl-fad = γ,
13− β.cl-ppcre = γ,
14− β.cl-reexport = γ,
15− β.cl-utilities = γ,
16− β.cl_plus_ssl = γ,
17− β.fast-http = γ,
18− β.fast-io = γ,
19− β.fetchurl = {sha256 = String; url = String;} -> δ,
20− β.flexi-streams = γ,
21− β.local-time = γ,
22− β.proc-parse = γ,
23− β.quri = γ,
24− β.smart-buffer = γ,
25− β.split-sequence = γ,
26− β.static-vectors = γ,
27− β.trivial-features = γ,
28− β.trivial-garbage = γ,
29− β.trivial-gray-streams = γ,
30− β.trivial-mimes = γ,
31− β.usocket = γ,
32− β.xsubseq = γ
33−) =>
34−β ->
35−{ asdFilesToKeep = [String];
36− baseName = String;
37− deps = [γ];
38− description = String;
39− overrides = ∀ α. α -> α;
40− packageName = String;
41− src = δ;
42− version = String;
43−}
test/golden/importless/dfu-util.txt+1−1
@@ -7,7 +7,7 @@
77 homepage = String;
88 license = ε;
99 longDescription = String;
10− maintainers = ∀ α. [α];
10+ maintainers = ∀ α. α;
1111 platforms = ζ;
1212 };
1313 nativeBuildInputs = [η];
test/golden/importless/dhall-packages.txt+1−1
@@ -13,4 +13,4 @@
1313 η,
1414 α.fix' = η -> θ
1515) =>
16−{lib = α; newScope = δ -> String -> {} -> ζ; overrides = β -> γ -> {};} -> θ
16+{lib = α; newScope = δ -> Path -> {} -> ζ; overrides = β -> γ -> {};} -> θ
test/golden/importless/dict.txt+6−6
@@ -1,16 +1,16 @@
11∀ α β γ δ ε ζ η θ.
2−( α.licenses = β,
3− α.maintainers = γ,
4− β.mit = δ,
5− γ.brainrape = ε
2+( α.brainrape = β,
3+ α.mit = γ,
4+ δ.licenses = α,
5+ ε.maintainers = α
66) =>
77{ build-idris-package =
88 { idrisDeps = [ζ];
99 meta =
1010 { description = String;
1111 homepage = String;
12− license = δ;
13− maintainers = [ε];
12+ license = γ;
13+ maintainers = [β];
1414 };
1515 name = String;
1616 postUnpack = String;
test/golden/importless/dictd-db.txt+16−16
@@ -1,30 +1,30 @@
11∀ α β γ δ ε ζ η.
2−( α.lib = β,
2+( α.linux = β,
33 α.mkDerivation =
44 { buildPhase = String;
55 dbName = String;
66 installPhase = String;
77 locale = String;
8− meta = {description = String; platforms = γ;};
8+ meta = {description = String; platforms = β;};
99 name = String;
10− src = δ;
10+ src = γ;
1111 unpackPhase = String;
1212 } ->
13− ε,
14− β.platforms = ζ,
15− ζ.linux = γ
13+ δ,
14+ ε.platforms = α,
15+ ζ.lib = ε
1616) =>
17−{ callPackage = String -> {} -> η;
18− fetchurl = {sha256 = String; url = String;} -> δ;
17+{ callPackage = Path -> {} -> η;
18+ fetchurl = {sha256 = String; url = String;} -> γ;
1919 stdenv = α;
2020} ->
21−{ deu2eng = ε;
22− eng2deu = ε;
23− eng2fra = ε;
24− eng2nld = ε;
25− eng2rus = ε;
26− fra2eng = ε;
27− mueller_eng2rus_pkg = ε;
21+{ deu2eng = δ;
22+ eng2deu = δ;
23+ eng2fra = δ;
24+ eng2nld = δ;
25+ eng2rus = δ;
26+ fra2eng = δ;
27+ mueller_eng2rus_pkg = δ;
2828 mueller_enru_abbr =
2929 {dbName = String; locale = String; name = String; outPath = String;};
3030 mueller_enru_base =
@@ -35,7 +35,7 @@
3535 {dbName = String; locale = String; name = String; outPath = String;};
3636 mueller_enru_names =
3737 {dbName = String; locale = String; name = String; outPath = String;};
38− nld2eng = ε;
38+ nld2eng = δ;
3939 wiktionary = η;
4040 wordnet = η;
4141}
test/golden/importless/dictd-wiktionary.txt+8−8
@@ -1,22 +1,22 @@
11∀ β γ δ ε ζ η θ ι.
2−( β.lib = γ,
2+( β.all = γ,
33 β.mkDerivation =
44 { buildInputs = [δ];
55 builder = ε;
6− convert = String;
6+ convert = Path;
77 data = ζ;
88 meta =
99 { description = String;
1010 homepage = String;
11− maintainers = ∀ α. [α];
12− platforms = η;
11+ maintainers = ∀ α. α;
12+ platforms = γ;
1313 };
1414 pname = String;
1515 version = String;
1616 } ->
17− θ,
18− γ.platforms = ι,
19− ι.all = η
17+ η,
18+ θ.platforms = β,
19+ ι.lib = θ
2020) =>
2121{ dict = δ;
2222 fetchurl = {sha256 = String; url = String;} -> ζ;
@@ -25,4 +25,4 @@
2525 stdenv = β;
2626 writeScript = String -> String -> ε;
2727} ->
28−θ
28+η
test/golden/importless/dictd-wordnet.txt+8−8
@@ -1,21 +1,21 @@
11∀ β γ δ ε ζ η θ.
2−( β.lib = γ,
2+( β.all = γ,
33 β.mkDerivation =
44 { buildInputs = [δ];
55 builder = ε;
6− convert = String;
6+ convert = Path;
77 meta =
88 { description = String;
99 homepage = String;
1010 longDescription = String;
11− maintainers = ∀ α. [α];
12− platforms = ζ;
11+ maintainers = ∀ α. α;
12+ platforms = γ;
1313 };
1414 pname = String;
1515 version = String;
1616 } ->
17− η,
18− γ.platforms = θ,
19− θ.all = ζ
17+ ζ,
18+ η.platforms = β,
19+ θ.lib = η
2020) =>
21−{python = δ; stdenv = β; wordnet = δ; writeScript = String -> String -> ε;} -> η
21+{python = δ; stdenv = β; wordnet = δ; writeScript = String -> String -> ε;} -> ζ
test/golden/importless/digimend.txt+13−17
@@ -1,23 +1,19 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.boot = ε,
6− β.services = ζ,
7− γ.mkEnableOption = String -> η,
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.digimend = β,
3+ γ.mkEnableOption = String -> δ,
84 γ.mkIf =
9− θ ->
10− { boot = {extraModulePackages = [ι];};
5+ ε ->
6+ { boot = {extraModulePackages = [β];};
117 environment =
128 {etc = {X11/xorg.conf.d/50-digimend.conf = {source = String;};};};
139 services = {xserver = {wacom = {enable = Bool;};};};
1410 } ->
15− κ,
16− ε.kernelPackages = λ,
17− λ.digimend = ι,
18− ζ.xserver = μ,
19− μ.digimend = ν,
20− ν.enable = θ
11+ ζ,
12+ η.kernelPackages = α,
13+ θ.boot = η,
14+ ι.enable = ε,
15+ κ.xserver = α,
16+ λ.services = κ
2117) =>
22−α ->
23−{config = κ; options = {services = {xserver = {digimend = {enable = η;};};};};}
18+{config = α; lib = γ; pkgs = μ;} ->
19+{config = ζ; options = {services = {xserver = {digimend = {enable = δ;};};};};}
test/golden/importless/disable-bar.txt+1−1
@@ -1 +1 @@
1−{disabledModules = [String];}
1+{disabledModules = [Path];}
test/golden/importless/disable-declare-enable.txt+1−1
@@ -1 +1 @@
1−∀ α β. (α.lib = β) => α -> {disabledModules = [String];}
1+∀ α. {lib = α;} -> {disabledModules = [Path];}
test/golden/importless/disable-define-enable.txt+1−1
@@ -1 +1 @@
1−∀ α β. (α.lib = β) => α -> {disabledModules = [String];}
1+∀ α. {lib = α;} -> {disabledModules = [Path];}
test/golden/importless/disable-enable-modules.txt+1−1
@@ -1 +1 @@
1−∀ α β. (α.lib = β) => α -> {disabledModules = [String];}
1+∀ α. {lib = α;} -> {disabledModules = [String];}
test/golden/importless/disable-foo.txt+1−1
@@ -1 +1 @@
1−{disabledModules = [String];}
1+{disabledModules = [Path];}
test/golden/importless/dispatch.txt+1−1
@@ -15,7 +15,7 @@
1515 maintainers = [ε];
1616 };
1717 nativeBuildInputs = δ;
18− patches = [String];
18+ patches = [Path];
1919 pname = String;
2020 preBuild = String;
2121 propagatedBuildInputs = [γ];
test/golden/importless/displaylink.txt+17−20
@@ -1,18 +1,15 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.boot = ε,
6− β.services = ζ,
7− γ.elem = String -> η -> θ,
8− γ.mkIf =
9− θ ->
10− { boot = {extraModulePackages = [ι]; kernelModules = [String];};
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.evdi = β,
3+ α.videoDrivers = γ,
4+ δ.elem = String -> γ -> ε,
5+ δ.mkIf =
6+ ε ->
7+ { boot = {extraModulePackages = [β]; kernelModules = [String];};
118 environment =
129 {etc = {X11/xorg.conf.d/40-displaylink.conf = {text = String;};};};
1310 powerManagement = {powerDownCommands = String; resumeCommands = String;};
1411 services =
15− { udev = {packages = [κ];};
12+ { udev = {packages = [ζ];};
1613 xserver = {displayManager = {sessionCommands = String;};};
1714 };
1815 systemd =
@@ -25,18 +22,18 @@
2522 { ExecStart = String;
2623 LogsDirectory = String;
2724 Restart = String;
28− RestartSec = Number;
25+ RestartSec = Integer;
2926 };
3027 };
3128 };
3229 };
3330 } ->
34− λ,
35− δ.displaylink = μ,
36− ε.kernelPackages = ν,
37− ν.evdi = ι,
38− ζ.xserver = ξ,
39− ξ.videoDrivers = η,
40− μ.override = {evdi = ι;} -> κ
31+ η,
32+ θ.override = {evdi = β;} -> ζ,
33+ ι.kernelPackages = α,
34+ κ.boot = ι,
35+ λ.xserver = α,
36+ μ.services = λ,
37+ ν.displaylink = θ
4138) =>
42−α -> {config = λ;}
39+{config = α; lib = δ; pkgs = θ;} -> {config = η;}
test/golden/importless/dissect.txt+4−4
@@ -1,11 +1,11 @@
1−∀ β γ.
2−(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
1+∀ β.
2+{fetchurl = {sha256 = String; url = String;} -> β;} ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. [α];
5+ deps = ∀ α. α;
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
9− src = γ;
9+ src = β;
1010 version = String;
1111}
test/golden/importless/dleyna-renderer.txt+14−16
@@ -1,19 +1,17 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.enable = β,
63 γ.mkIf =
7− ζ ->
8− { environment = {systemPackages = [η];};
9− services = {dbus = {packages = [θ];};};
4+ β ->
5+ { environment = {systemPackages = [δ];};
6+ services = {dbus = {packages = [ε];};};
107 } ->
11− ι,
12− γ.mkOption = {default = Bool; description = String; type = κ;} -> λ,
13− γ.types = μ,
14− δ.dleyna-renderer = η,
15− ε.dleyna-renderer = ν,
16− ν.enable = ζ,
17− μ.bool = κ
8+ ζ,
9+ γ.mkOption = {default = Bool; description = String; type = η;} -> θ,
10+ γ.types = ι,
11+ κ.dleyna-renderer = δ,
12+ λ.dleyna-renderer = α,
13+ μ.services = λ,
14+ ι.bool = η
1815) =>
19−α -> {config = ι; options = {services = {dleyna-renderer = {enable = λ;};};};}
16+{config = α; lib = γ; pkgs = κ;} ->
17+{config = ζ; options = {services = {dleyna-renderer = {enable = θ;};};};}
test/golden/importless/dleyna-server.txt+14−16
@@ -1,19 +1,17 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.enable = β,
63 γ.mkIf =
7− ζ ->
8− { environment = {systemPackages = [η];};
9− services = {dbus = {packages = [θ];};};
4+ β ->
5+ { environment = {systemPackages = [δ];};
6+ services = {dbus = {packages = [ε];};};
107 } ->
11− ι,
12− γ.mkOption = {default = Bool; description = String; type = κ;} -> λ,
13− γ.types = μ,
14− δ.dleyna-server = η,
15− ε.dleyna-server = ν,
16− ν.enable = ζ,
17− μ.bool = κ
8+ ζ,
9+ γ.mkOption = {default = Bool; description = String; type = η;} -> θ,
10+ γ.types = ι,
11+ κ.dleyna-server = δ,
12+ λ.dleyna-server = α,
13+ μ.services = λ,
14+ ι.bool = η
1815) =>
19−α -> {config = ι; options = {services = {dleyna-server = {enable = λ;};};};}
16+{config = α; lib = γ; pkgs = κ;} ->
17+{config = ζ; options = {services = {dleyna-server = {enable = θ;};};};}
test/golden/importless/dmraid.txt+10−9
@@ -1,21 +1,22 @@
11∀ α β γ δ ε ζ η θ ι κ.
2−( α.lib = β,
2+( α.linux = β,
33 α.mkDerivation =
44 { buildInputs = [γ];
55 meta =
66 { description = String;
77 longDescription = String;
88 maintainers = [δ];
9− platforms = ε;
9+ platforms = β;
1010 };
1111 name = String;
1212 preConfigure = String;
13− src = ζ;
13+ src = ε;
1414 } ->
15− η,
16− β.maintainers = θ,
17− θ.raskin = δ,
18− ι.platforms = κ,
19− κ.linux = ε
15+ ζ,
16+ α.raskin = δ,
17+ η.maintainers = α,
18+ θ.lib = η,
19+ ι.platforms = α,
20+ κ.lib = ι
2021) =>
21−{fetchurl = {sha256 = String; url = String;} -> ζ; lvm2 = γ; stdenv = α;} -> η
22+{fetchurl = {sha256 = String; url = String;} -> ε; lvm2 = γ; stdenv = α;} -> ζ
test/golden/importless/do-agent.txt+11−13
@@ -1,13 +1,10 @@
1−∀ α β γ δ ε ζ η θ ι κ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
6− γ.mkEnableOption = String -> ζ,
1+∀ α β γ δ ε ζ η θ ι.
2+( α.do-agent = β,
3+ γ.mkEnableOption = String -> δ,
74 γ.mkIf =
8− η ->
5+ ε ->
96 { systemd =
10− { packages = [θ];
7+ { packages = [ζ];
118 services =
129 { do-agent =
1310 { serviceConfig = {DynamicUser = Bool; ExecStart = [String];};
@@ -16,9 +13,10 @@
1613 };
1714 };
1815 } ->
19− ι,
20− δ.do-agent = θ,
21− ε.do-agent = κ,
22− κ.enable = η
16+ η,
17+ θ.do-agent = ζ,
18+ β.enable = ε,
19+ ι.services = α
2320) =>
24−α -> {config = ι; options = {services = {do-agent = {enable = ζ;};};};}
21+{config = α; lib = γ; pkgs = θ;} ->
22+{config = η; options = {services = {do-agent = {enable = δ;};};};}
test/golden/importless/do-urlencode.txtdeleted−16
@@ -1,16 +0,0 @@
1−∀ β γ δ.
2−( β.alexandria = γ,
3− β.babel = γ,
4− β.fetchurl = {sha256 = String; url = String;} -> δ,
5− β.trivial-features = γ
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/documentation-utils.txtdeleted−14
@@ -1,14 +0,0 @@
1−∀ β γ δ.
2−( β.fetchurl = {sha256 = String; url = String;} -> γ,
3− β.trivial-indent = δ
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/dolphin-plugins.txt+2−2
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ η θ.
2−(α.licenses = β, α.maintainers = γ, β.gpl2 = δ, γ.ttuegel = ε) => { dolphin = ζ;
2+(α.gpl2 = β, α.ttuegel = γ, δ.licenses = α, ε.maintainers = α) => { dolphin = ζ;
33 extra-cmake-modules = η;
44 kdelibs4support = ζ;
55 kdoctools = η;
@@ -8,7 +8,7 @@
88 kxmlgui = ζ;
99 lib = α;
1010 mkDerivation =
11− { meta = {license = [δ]; maintainers = [ε];};
11+ { meta = {license = [β]; maintainers = [γ];};
1212 name = String;
1313 nativeBuildInputs = [η];
1414 outputs = [String];
test/golden/importless/dolphin.txt+3−3
@@ -1,9 +1,9 @@
11∀ α β γ δ ε ζ η θ.
22( α.licenses = β,
3− α.maintainers = γ,
3+ α.ttuegel = γ,
44 β.fdl12 = δ,
55 β.gpl2 = δ,
6− γ.ttuegel = ε
6+ ε.maintainers = α
77) =>
88{ baloo = ζ;
99 baloo-widgets = ζ;
@@ -30,7 +30,7 @@
3030 lib = α;
3131 mkDerivation =
3232 { cmakeFlags = [String];
33− meta = {license = [δ]; maintainers = [ε];};
33+ meta = {license = [δ]; maintainers = [γ];};
3434 name = String;
3535 nativeBuildInputs = [η];
3636 outputs = [String];
test/golden/importless/dom.txt+6−6
@@ -1,16 +1,16 @@
11∀ α β γ δ ε ζ η θ.
2−( α.licenses = β,
3− α.maintainers = γ,
4− β.asl20 = δ,
5− γ.brainrape = ε
2+( α.asl20 = β,
3+ α.brainrape = γ,
4+ δ.licenses = α,
5+ ε.maintainers = α
66) =>
77{ build-idris-package =
88 { idrisDeps = [ζ];
99 meta =
1010 { description = String;
1111 homepage = String;
12− license = δ;
13− maintainers = [ε];
12+ license = β;
13+ maintainers = [γ];
1414 };
1515 name = String;
1616 src = η;
test/golden/importless/dotty.txt+1−1
@@ -4,7 +4,7 @@
44 δ.meta = β
55) =>
66{ callPackage =
7− String -> {fetchurl = ε; jre = ζ; makeWrapper = η; stdenv = α;} -> δ;
7+ Path -> {fetchurl = ε; jre = ζ; makeWrapper = η; stdenv = α;} -> δ;
88 fetchurl = ε;
99 jre = ζ;
1010 makeWrapper = η;
test/golden/importless/dovecot-exporter.txt+1−1
@@ -11,7 +11,7 @@
1111 ζ.homepage = μ
1212) =>
1313{ buildGoPackage =
14− { goDeps = String;
14+ { goDeps = Path;
1515 goPackagePath = String;
1616 meta =
1717 {description = String; homepage = μ; license = κ; maintainers = [η];};
test/golden/importless/dragon.txt+6−6
@@ -1,9 +1,9 @@
11∀ α β γ δ ε ζ η θ.
2−( α.licenses = β,
3− α.maintainers = γ,
4− β.fdl12 = δ,
5− β.gpl2 = δ,
6− γ.jonathanreeve = ε
2+( α.jonathanreeve = β,
3+ α.licenses = γ,
4+ γ.fdl12 = δ,
5+ γ.gpl2 = δ,
6+ ε.maintainers = α
77) =>
88{ baloo = ζ;
99 baloo-widgets = ζ;
@@ -29,7 +29,7 @@
2929 kwindowsystem = ζ;
3030 lib = α;
3131 mkDerivation =
32− { meta = {description = String; license = [δ]; maintainers = [ε];};
32+ { meta = {description = String; license = [δ]; maintainers = [β];};
3333 name = String;
3434 nativeBuildInputs = [η];
3535 outputs = [String];
test/golden/importless/drakma.txtdeleted−29
@@ -1,29 +0,0 @@
1−∀ β γ δ.
2−( β.alexandria = γ,
3− β.babel = γ,
4− β.bordeaux-threads = γ,
5− β.cffi = γ,
6− β.chipz = γ,
7− β.chunga = γ,
8− β.cl-base64 = γ,
9− β.cl-ppcre = γ,
10− β.cl_plus_ssl = γ,
11− β.fetchurl = {sha256 = String; url = String;} -> δ,
12− β.flexi-streams = γ,
13− β.puri = γ,
14− β.split-sequence = γ,
15− β.trivial-features = γ,
16− β.trivial-garbage = γ,
17− β.trivial-gray-streams = γ,
18− β.usocket = γ
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/dsseries.txt+16−19
@@ -1,25 +1,22 @@
1−∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο.
2−( β // {description = String;} ~ γ,
3− δ.config = ε,
4− δ.lib = ζ,
5− δ.pkgs = η,
6− ε.hardware = θ,
7− ζ.mkEnableOption = String -> β,
8− ζ.mkIf =
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( (β) // ({description = String;}) ~ (γ),
3+ δ.enable = Bool,
4+ ε.mkEnableOption = String -> β,
5+ ε.mkIf =
96 Bool ->
107 { boot = {kernelModules = [String];};
11− hardware = {sane = {extraBackends = [ι];};};
12− services = {udev = {packages = [κ];};};
8+ hardware = {sane = {extraBackends = [ζ];};};
9+ services = {udev = {packages = [η];};};
1310 } ->
14− λ,
15− η.dsseries = ι,
16− θ.sane = μ,
17− μ.enable = Bool,
18− ν.sane = ξ,
19− ξ.dsseries = ο,
20− ο.enable = Bool
11+ θ,
12+ ι.dsseries = ζ,
13+ κ.sane = δ,
14+ λ.hardware = κ,
15+ μ.dsseries = δ,
16+ ν.sane = μ,
17+ ξ.hardware = ν
2118) =>
22−δ ->
23−{ config = λ;
19+{config = δ; lib = ε; pkgs = ι;} ->
20+{ config = θ;
2421 options = {hardware = {sane = {dsseries = {enable = ∀ α. α;};};};};
2522}
test/golden/importless/dust.txt+19−17
@@ -1,28 +1,30 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2−( α.lib = β,
2+( α.darwin = [β],
3+ α.lgpl3 = γ,
4+ α.linux = [β],
35 α.mkDerivation =
4− { buildInputs = [γ];
6+ { buildInputs = [δ];
57 configurePhase = String;
68 installPhase = String;
79 meta =
8− {description = String; homepage = δ; license = ε; platforms = [ζ];};
10+ {description = String; homepage = ε; license = γ; platforms = [β];};
911 name = String;
10− patches = [String];
11− src = η;
12+ patches = [Path];
13+ src = ζ;
1214 } ->
13− θ,
14− η.meta = ι,
15− β.licenses = κ,
16− κ.lgpl3 = ε,
17− λ.platforms = μ,
18− μ.linux = [ζ],
19− ν.platforms = ξ,
20− ξ.darwin = [ζ],
21− ι.homepage = δ
15+ η,
16+ ζ.homepage = ε,
17+ θ.licenses = α,
18+ ι.lib = θ,
19+ κ.platforms = α,
20+ λ.lib = κ,
21+ μ.platforms = α,
22+ ν.lib = μ,
23+ ξ.meta = ζ
2224) =>
2325{ fetchFromGitHub =
24− {owner = String; repo = String; rev = String; sha256 = String;} -> η;
25− pixie = γ;
26+ {owner = String; repo = String; rev = String; sha256 = String;} -> ζ;
27+ pixie = δ;
2628 stdenv = α;
2729} ->
28−θ
30+η
test/golden/importless/dvtm.txt+8−7
@@ -14,25 +14,26 @@
1414 };
1515 name = ι;
1616 nativeBuildInputs = [ε];
17− patches = [κ];
17+ patches = κ;
1818 postPatch = λ;
1919 prePatch = String;
2020 src = μ;
2121 } ->
2222 ν,
23− γ.optionalString = β -> String -> δ,
24− ξ.licenses = ο,
25− ξ.maintainers = π,
26− ξ.platforms = ρ,
23+ α.optionalString = β -> String -> δ,
24+ ξ.lib = α,
25+ γ.licenses = ο,
26+ γ.maintainers = π,
27+ γ.platforms = ρ,
2728 ο.mit = ζ,
2829 π.vrthra = η,
2930 ρ.unix = θ,
30− σ.optionalString = Bool -> String -> λ
31+ σ.lib = α
3132) =>
3233{ customConfig = Null;
3334 name = ι;
3435 ncurses = ε;
35− patches = [κ];
36+ patches = κ;
3637 src = μ;
3738 stdenv = α;
3839} ->
test/golden/importless/dwm.txt+16−19
@@ -1,24 +1,21 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
6− γ.mkEnableOption = String -> ζ,
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.dwm = β,
3+ γ.mkEnableOption = String -> δ,
74 γ.mkIf =
8− η ->
9− { environment = {systemPackages = [θ];};
10− services = {xserver = {windowManager = {session = ι;};};};
5+ ε ->
6+ { environment = {systemPackages = [ζ];};
7+ services = {xserver = {windowManager = {session = η;};};};
118 } ->
12− κ,
13− γ.singleton = {name = String; start = String;} -> ι,
14− δ.dwm = θ,
15− ε.xserver = λ,
16− λ.windowManager = μ,
17− μ.dwm = ν,
18− ν.enable = η
9+ θ,
10+ γ.singleton = {name = String; start = String;} -> η,
11+ ι.dwm = ζ,
12+ β.enable = ε,
13+ κ.windowManager = α,
14+ λ.xserver = κ,
15+ μ.services = λ
1916) =>
20−α ->
21−{ config = κ;
17+{config = α; lib = γ; pkgs = ι;} ->
18+{ config = θ;
2219 options =
23− {services = {xserver = {windowManager = {dwm = {enable = ζ;};};};};};
20+ {services = {xserver = {windowManager = {dwm = {enable = δ;};};};};};
2421}
test/golden/importless/dynamic-classes.txtdeleted−14
@@ -1,14 +0,0 @@
1−∀ β γ δ.
2−( β.fetchurl = {sha256 = String; url = String;} -> γ,
3− β.metatilities-base = δ
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/eagle.txt+4−3
@@ -1,8 +1,9 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ.
22( α.lib = β,
3− β.makeLibraryPath = [γ] -> δ,
4− ε.licenses = ζ,
5− ε.maintainers = η,
3+ α.makeLibraryPath = [γ] -> δ,
4+ ε.lib = α,
5+ β.licenses = ζ,
6+ β.maintainers = η,
67 ζ.unfree = θ,
78 η.rittelle = ι
89) =>
test/golden/importless/easyfocus.txt+9−9
@@ -16,19 +16,19 @@
1616 version = String;
1717 } ->
1818 ι,
19− κ.libX11 = λ,
20− μ.dev = γ,
21− β.licenses = ν,
22− β.maintainers = ξ,
23− β.platforms = ο,
19+ κ.dev = γ,
20+ λ.dev = γ,
21+ β.licenses = μ,
22+ β.maintainers = ν,
23+ β.platforms = ξ,
2424 β.teto = ε,
25− ν.gpl3 = δ,
26− ο.linux = ζ,
27− λ.dev = γ
25+ μ.gpl3 = δ,
26+ ξ.linux = ζ,
27+ ο.libX11 = κ
2828) =>
2929{ fetchFromGitHub =
3030 {owner = String; repo = String; rev = String; sha256 = String;} -> θ;
31− glib = μ;
31+ glib = λ;
3232 i3ipc-glib = γ;
3333 libxcb = γ;
3434 pkgconfig = η;
test/golden/importless/ecryptfs.txt+9−12
@@ -1,21 +1,18 @@
1−∀ α β γ δ ε ζ η θ ι.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.boot = ε,
6− γ.any = (String -> Bool) -> ζ -> η,
1+∀ α β γ δ ε ζ η θ.
2+( α.supportedFilesystems = β,
3+ γ.any = (String -> Bool) -> β -> δ,
74 γ.mkIf =
8− η ->
5+ δ ->
96 { security =
107 { wrappers =
118 { mount.ecryptfs_private = {source = String;};
129 umount.ecryptfs_private = {source = String;};
1310 };
1411 };
15− system = {fsPackages = [θ];};
12+ system = {fsPackages = [ε];};
1613 } ->
17− ι,
18− δ.ecryptfs = θ,
19− ε.supportedFilesystems = ζ
14+ ζ,
15+ η.ecryptfs = ε,
16+ θ.boot = α
2017) =>
21−α -> {config = ι;}
18+{config = α; lib = γ; pkgs = η;} -> {config = ζ;}
test/golden/importless/edit.txt+6−5
@@ -8,15 +8,16 @@
88 {description = String; homepage = String; license = δ; platforms = ε;};
99 name = String;
1010 nativeBuildInputs = [ζ];
11− patches = [String];
11+ patches = [Path];
1212 postPatch = String;
1313 src = η;
1414 } ->
1515 θ,
16− γ.api_version = Number,
17− β.optionalString = Bool -> String -> String,
18− ι.licenses = κ,
19− ι.platforms = λ,
16+ α.optionalString = Bool -> String -> String,
17+ γ.api_version = Integer,
18+ ι.lib = α,
19+ β.licenses = κ,
20+ β.platforms = λ,
2021 κ.gpl3Plus = δ,
2122 λ.linux = ε
2223) =>
test/golden/importless/editor.txt+6−5
@@ -1,10 +1,11 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο.
22( α.lib = β,
3− β.toLower = String -> γ,
4− δ.licenses = ε,
5− δ.maintainers = ζ,
6− δ.platforms = η,
7− δ.tadeokondrak = θ,
3+ α.toLower = String -> γ,
4+ δ.lib = α,
5+ β.licenses = ε,
6+ β.maintainers = ζ,
7+ β.platforms = η,
8+ β.tadeokondrak = θ,
89 ε.mit = ι,
910 η.all = κ
1011) =>
test/golden/importless/editors.txt+31−26
@@ -1,20 +1,24 @@
11∀ γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ.
2−( γ.lib = δ,
2+( γ.edwtjo = δ,
3+ γ.gpl2 = ε,
4+ γ.gpl2Plus = ε,
5+ γ.lib = ζ,
6+ γ.linux = η,
37 γ.mkDerivation =
4− { application = ε;
5− buildInputs = [ζ];
8+ { application = θ;
9+ buildInputs = [ι];
610 buildPhase = String;
711 description = ∀ β. β;
812 dontStrip = Bool;
9− editorItem = η;
13+ editorItem = κ;
1014 exec = String;
1115 installPhase = String;
1216 meta =
1317 { description = String;
1418 homepage = String;
15− license = θ;
16− maintainers = [ι];
17− platforms = κ;
19+ license = ε;
20+ maintainers = [δ];
21+ platforms = η;
1822 };
1923 module = ∀ β. β;
2024 patchPhase = String;
@@ -23,25 +27,26 @@
2327 version = ∀ β. β;
2428 } ->
2529 λ,
26− δ.removeSuffix = String -> μ -> String,
27− δ.toLower = ν -> μ,
28− ξ.maintainers = ο,
29− ο.edwtjo = ι,
30− π.platforms = ρ,
31− ρ.linux = κ,
32− σ.replaceChars = [String] -> [String] -> String -> String,
33− τ.licenses = υ,
34− υ.gpl2 = θ,
35− φ.licenses = χ,
36− χ.gpl2Plus = θ
30+ γ.replaceChars = [String] -> [String] -> String -> String,
31+ ζ.removeSuffix = String -> μ -> String,
32+ ζ.toLower = ν -> μ,
33+ ξ.maintainers = γ,
34+ ο.lib = ξ,
35+ π.platforms = γ,
36+ ρ.lib = π,
37+ σ.lib = γ,
38+ τ.licenses = γ,
39+ υ.lib = τ,
40+ φ.licenses = γ,
41+ χ.lib = φ
3742) =>
38−{ ant = ζ;
43+{ ant = ι;
3944 fetchcvs =
4045 {cvsRoot = String; module = String; sha256 = String; tag = String;} -> ψ;
41− gsettings-desktop-schemas = ζ;
42− gtk3 = ζ;
43− jdk = ζ;
44− jre = ζ;
46+ gsettings-desktop-schemas = ι;
47+ gtk3 = ι;
48+ jdk = ι;
49+ jre = ι;
4550 makeDesktopItem =
4651 { categories = String;
4752 comment = ∀ α. α;
@@ -50,9 +55,9 @@
5055 genericName = String;
5156 name = ∀ α. α;
5257 } ->
53− η;
54− makeWrapper = ζ;
58+ κ;
59+ makeWrapper = ι;
5560 stdenv = γ;
56− sweethome3dApp = ε;
61+ sweethome3dApp = θ;
5762} ->
5863{furniture-editor = λ; textures-editor = λ;}
test/golden/importless/egg2nix.txt+15−13
@@ -1,23 +1,25 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2−( α.lib = β,
3− γ.args = δ,
4− γ.matchable = δ,
5− β.licenses = ε,
6− ε.bsd3 = ζ,
7− η.maintainers = θ,
8− θ.corngood = ι,
9− κ.platforms = λ,
10− λ.unix = μ
2+( α.bsd3 = β,
3+ α.maintainers = γ,
4+ α.unix = δ,
5+ ε.args = ζ,
6+ ε.matchable = ζ,
7+ η.licenses = α,
8+ θ.lib = η,
9+ γ.corngood = ι,
10+ κ.lib = α,
11+ λ.platforms = α,
12+ μ.lib = λ
1113) =>
12−{ chickenEggs = γ;
14+{ chickenEggs = ε;
1315 eggDerivation =
14− { buildInputs = [δ];
16+ { buildInputs = [ζ];
1517 meta =
1618 { description = String;
1719 homepage = String;
18− license = ζ;
20+ license = β;
1921 maintainers = [ι];
20− platforms = μ;
22+ platforms = δ;
2123 };
2224 name = String;
2325 src = ν;
test/golden/importless/eggs.txtdeleted−14
@@ -1,14 +0,0 @@
1−∀ ζ η θ.
2−( ζ.eggDerivation = ∀ ε. {buildInputs = ∀ β. [β]; name = String; src = η;} -> ε,
3− ζ.fetchegg = {name = String; sha256 = String; version = String;} -> η
4−) =>
5−{pkgs = ζ; stdenv = θ;} ->
6−{ args = δ;
7− eggDerivation = ∀ γ. {buildInputs = ∀ α. [α]; name = String; src = η;} -> γ;
8− fetchegg = {name = String; sha256 = String; version = String;} -> η;
9− matchable = δ;
10− srfi-1 = δ;
11− srfi-13 = δ;
12− srfi-14 = δ;
13− srfi-37 = δ;
14−}
test/golden/importless/electron.txt+6−6
@@ -1,16 +1,16 @@
11∀ α β γ δ ε ζ η θ.
2−( α.licenses = β,
3− α.maintainers = γ,
4− β.unlicense = δ,
5− γ.brainrape = ε
2+( α.brainrape = β,
3+ α.unlicense = γ,
4+ δ.licenses = α,
5+ ε.maintainers = α
66) =>
77{ build-idris-package =
88 { idrisDeps = [ζ];
99 meta =
1010 { description = String;
1111 homepage = String;
12− license = δ;
13− maintainers = [ε];
12+ license = γ;
13+ maintainers = [β];
1414 };
1515 name = String;
1616 src = η;
test/golden/importless/element-desktop.txt+5−5
@@ -4,8 +4,8 @@
44 γ.licenses = ζ,
55 γ.teams = η,
66 ζ.asl20 = θ,
7− η.matrix = ι,
8− ι.members = κ,
7+ η.members = ι,
8+ κ.matrix = η,
99 ε.platforms = λ
1010) =>
1111{ electron_9 = δ;
@@ -32,15 +32,15 @@
3232 { description = String;
3333 homepage = String;
3434 license = θ;
35− maintainers = κ;
35+ maintainers = ι;
3636 platforms = λ;
3737 };
3838 name = String;
3939 nativeBuildInputs = [ο];
40− packageJSON = String;
40+ packageJSON = Path;
4141 src = ∀ α. α;
4242 version = ∀ α. α;
43− yarnNix = String;
43+ yarnNix = Path;
4444 } ->
4545 π;
4646 stdenv = β;
test/golden/importless/elm-format.txt+2−2
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ η.
2−(α.lib = β, β.licenses = γ, γ.bsd3 = δ) => { HUnit = ε;
2+(α.bsd3 = β, γ.licenses = α, δ.lib = γ) => { HUnit = ε;
33 QuickCheck = ε;
44 ansi-terminal = ε;
55 ansi-wl-pprint = ε;
@@ -22,7 +22,7 @@
2222 isExecutable = Bool;
2323 isLibrary = Bool;
2424 libraryHaskellDepends = [ε];
25− license = δ;
25+ license = β;
2626 pname = String;
2727 postPatch = String;
2828 src = ζ;
test/golden/importless/elm-instrument.txt+2−2
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ η.
2−(α.lib = β, β.licenses = γ, γ.bsd3 = δ) => { Cabal = ε;
2+(α.bsd3 = β, γ.licenses = α, δ.lib = γ) => { Cabal = ε;
33 HUnit = ε;
44 QuickCheck = ε;
55 ansi-terminal = ε;
@@ -24,7 +24,7 @@
2424 isExecutable = Bool;
2525 isLibrary = Bool;
2626 libraryHaskellDepends = [ε];
27− license = δ;
27+ license = β;
2828 pname = String;
2929 setupHaskellDepends = [ε];
3030 src = ζ;
test/golden/importless/elm-json.txt+1−1
@@ -1,7 +1,7 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν.
22( α.buildRustPackage =
33 { buildInputs = [β];
4− cargoPatches = [String];
4+ cargoPatches = [Path];
55 cargoSha256 = String;
66 doCheck = Bool;
77 meta =
test/golden/importless/elm.txt+2−2
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ η.
2−(α.lib = β, β.licenses = γ, γ.bsd3 = δ) => { HTTP = ε;
2+(α.bsd3 = β, γ.licenses = α, δ.lib = γ) => { HTTP = ε;
33 SHA = ε;
44 ansi-terminal = ε;
55 ansi-wl-pprint = ε;
@@ -26,7 +26,7 @@
2626 homepage = String;
2727 isExecutable = Bool;
2828 isLibrary = Bool;
29− license = δ;
29+ license = β;
3030 pname = String;
3131 src = ζ;
3232 version = String;
test/golden/importless/elmi-to-json.txt+2−2
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ η θ.
2−(α.lib = β, β.licenses = γ, γ.bsd3 = δ) => { aeson = ε;
2+(α.bsd3 = β, γ.licenses = α, δ.lib = γ) => { aeson = ε;
33 base = ε;
44 binary = ε;
55 bytestring = ε;
@@ -17,7 +17,7 @@
1717 isLibrary = Bool;
1818 libraryHaskellDepends = [ε];
1919 libraryToolDepends = [η];
20− license = δ;
20+ license = β;
2121 pname = String;
2222 prePatch = String;
2323 src = ζ;
test/golden/importless/emergency-mode.txt+10−12
@@ -1,14 +1,12 @@
1−∀ α β γ δ ε ζ η θ ι.
2−( α.config = β,
3− α.lib = γ,
4− β.systemd = δ,
5− γ.mkOption = {default = Bool; description = String; type = ε;} -> ζ,
6− γ.optionals = η -> [String] -> θ,
7− γ.types = ι,
8− δ.enableEmergencyMode = η,
9− ι.bool = ε
1+∀ α β γ δ ε ζ η θ.
2+( α.enableEmergencyMode = β,
3+ γ.mkOption = {default = Bool; description = String; type = δ;} -> ε,
4+ γ.optionals = β -> [String] -> ζ,
5+ γ.types = η,
6+ θ.systemd = α,
7+ η.bool = δ
108) =>
11−α ->
12−{ config = {systemd = {additionalUpstreamSystemUnits = θ;};};
13− options = {systemd = {enableEmergencyMode = ζ;};};
9+{config = α; lib = γ;} ->
10+{ config = {systemd = {additionalUpstreamSystemUnits = ζ;};};
11+ options = {systemd = {enableEmergencyMode = ε;};};
1412}
test/golden/importless/emscripten-packages.txtdeleted−49
@@ -1,49 +0,0 @@
1−∀ γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1 δ1 ε1 ζ1 η1 θ1 ι1.
2−( γ.autoconf = δ,
3− γ.automake = δ,
4− γ.autoreconfHook = ε,
5− γ.buildEmscriptenPackage =
6− { buildInputs = [ζ];
7− buildPhase = String;
8− checkPhase = String;
9− configurePhase = String;
10− installPhase = String;
11− nativeBuildInputs = [η];
12− outputs = [String];
13− pname = String;
14− src = θ;
15− version = String;
16− } ->
17− ι,
18− γ.emscriptenStdenv = κ,
19− γ.fetchgit = {rev = String; sha256 = String; url = String;} -> θ,
20− γ.gnumake = ζ,
21− γ.json_c = λ,
22− γ.libtool = ζ,
23− γ.libxml2 = μ,
24− γ.nodejs = ζ,
25− γ.openjdk = ζ,
26− γ.pkgconfig = ν,
27− γ.stdenv = ξ,
28− γ.zlib = ο,
29− π.overrideDerivation = ρ,
30− σ.overrideDerivation = τ,
31− υ.buildInputs = [ν],
32− φ.overrideDerivation = χ,
33− ψ.buildInputs = [ν],
34− ω.buildInputs = [ν],
35− α1.buildInputs = [β1],
36− γ1.buildInputs = [δ],
37− ο.override = {stdenv = κ;} -> π,
38− ξ.lib = δ1,
39− δ1.optionalString = ε1 -> String -> ζ1,
40− η1.isDarwin = ε1,
41− μ.override = {pythonSupport = Bool; stdenv = θ1;} -> σ,
42− λ.override = {stdenv = ι1;} -> φ
43−) =>
44−{pkgs = γ;} ->
45−{ json_c = ∀ α β. (α.buildInputs = [δ]) => β;
46− libxml2 = ∀ α β. (α.buildInputs = [β1]) => β;
47− xmlmirror = ι;
48− zlib = ∀ α β. (α.buildInputs = [ν]) => β;
49−}
test/golden/importless/emulate-app.txt+1−1
@@ -20,7 +20,7 @@
2020 app = Null;
2121 avdHomeDir = Null;
2222 enableGPU = Bool;
23− extraAVDFiles = [θ];
23+ extraAVDFiles = θ;
2424 name = β;
2525 package = Null;
2626 platformVersion = String;
test/golden/importless/emulator.txt+25−16
@@ -2,31 +2,40 @@
22( α.optional = Bool -> [β] -> [γ],
33 α.optionalString = Bool -> String -> δ,
44 ε.alsaLib = β,
5+ ε.cc = β,
56 ε.expat = β,
67 ε.freetype = β,
78 ε.glibc = β,
89 ε.libGL = β,
10+ ε.libX11 = β,
11+ ε.libXcomposite = β,
12+ ε.libXcursor = β,
13+ ε.libXdamage = β,
14+ ε.libXext = β,
15+ ε.libXfixes = β,
16+ ε.libXi = β,
17+ ε.libXrender = β,
18+ ε.libXtst = β,
919 ε.libcxx = β,
1020 ε.libpulseaudio = β,
21+ ε.libxcb = β,
1122 ε.ncurses5 = β,
1223 ε.nspr = β,
1324 ε.nss = β,
14− ε.stdenv = ζ,
15− ε.xlibs = η,
1625 ε.zlib = β,
17− θ.glibc = β,
18− η.libX11 = β,
19− ι.libXext = β,
20− κ.libXdamage = β,
21− λ.libXfixes = β,
22− μ.libxcb = β,
23− ν.libXcomposite = β,
24− ξ.libXcursor = β,
25− ο.libXi = β,
26− π.libXrender = β,
27− ρ.libXtst = β,
28− ζ.cc = σ,
29− σ.cc = β
26+ ζ.glibc = β,
27+ η.xlibs = ε,
28+ θ.xlibs = ε,
29+ ι.xlibs = ε,
30+ κ.xlibs = ε,
31+ λ.xlibs = ε,
32+ μ.xlibs = ε,
33+ ν.xlibs = ε,
34+ ξ.xlibs = ε,
35+ ο.xlibs = ε,
36+ π.xlibs = ε,
37+ ρ.cc = ε,
38+ σ.stdenv = ρ
3039) =>
3140{ autoPatchelfHook = γ;
3241 deployAndroidPackage =
@@ -42,6 +51,6 @@
4251 os = String;
4352 package = τ;
4453 pkgs = ε;
45− pkgs_i686 = θ;
54+ pkgs_i686 = ζ;
4655} ->
4756υ
test/golden/importless/engine.txt+9−8
@@ -16,15 +16,16 @@
1616 version = String;
1717 } ->
1818 κ,
19− γ.licenses = λ,
20− γ.maintainers = μ,
21− γ.platforms = ν,
22− λ.gpl3 = ε,
23− μ.aanderse = ζ,
24− ν.unix = η,
25− ξ.optional = β -> ο -> [δ]
19+ α.optional = β -> λ -> [δ],
20+ γ.licenses = μ,
21+ γ.maintainers = ν,
22+ γ.platforms = ξ,
23+ μ.gpl3 = ε,
24+ ν.aanderse = ζ,
25+ ξ.unix = η,
26+ ο.lib = α
2627) =>
27−{ Cocoa = ο;
28+{ Cocoa = λ;
2829 SDL2 = δ;
2930 SDL2_image = δ;
3031 SDL2_mixer = δ;
test/golden/importless/enterprise-edition.txt+4−4
@@ -1,4 +1,4 @@
1−∀ γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1 δ1.
1+∀ γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β2 γ3 δ4.
22( γ.lib = δ,
33 γ.mkDerivation =
44 { doInstallCheck = Bool;
@@ -42,14 +42,14 @@
4242 gtk2 = ψ;
4343 gtk3 = ω;
4444 libGL = α1;
45− libav_0_8 = β1;
46− pango = γ1;
45+ libav_0_8 = β2;
46+ pango = γ3;
4747 perl = η;
4848 requireFile = {name = String; sha256 = ∀ α. α; url = String;} -> κ;
4949 setJavaClassPath = ι;
5050 stdenv = γ;
5151 unzip = η;
52− xorg = δ1;
52+ xorg = δ4;
5353 zlib = ι;
5454} ->
5555{graalvm11-ee = θ; graalvm8-ee = θ;}
test/golden/importless/environment.txt+8−10
@@ -1,11 +1,9 @@
1−∀ α β γ δ ε ζ η.
2−( α.config = β,
3− α.lib = γ,
4− β.environment = δ,
5− γ.mkAfter = [String] -> ε,
6− γ.mkDefault = String -> ζ
1+∀ α β γ δ ε ζ.
2+( α.environment = β,
3+ γ.mkAfter = [String] -> δ,
4+ γ.mkDefault = String -> ε
75) =>
8−α ->
6+{config = α; lib = γ;} ->
97{ config =
108 { environment =
119 { extraInit = String;
@@ -21,11 +19,11 @@
2119 XDG_CONFIG_DIRS = [String];
2220 XDG_DATA_DIRS = [String];
2321 };
24− profiles = ε;
22+ profiles = δ;
2523 variables =
26− { EDITOR = ζ;
24+ { EDITOR = ε;
2725 NIXPKGS_CONFIG = String;
28− PAGER = η;
26+ PAGER = ζ;
2927 XDG_CONFIG_DIRS = [String];
3028 };
3129 };
test/golden/importless/eos.txt+4−4
@@ -1,12 +1,12 @@
1−∀ β γ.
2−(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
1+∀ β.
2+{fetchurl = {sha256 = String; url = String;} -> β;} ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. [α];
5+ deps = ∀ α. α;
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
99 parasites = [String];
10− src = γ;
10+ src = β;
1111 version = String;
1212}
test/golden/importless/epmd.txt+13−15
@@ -1,10 +1,7 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2+( α.epmd = β,
63 γ.mkIf =
7− ζ ->
4+ δ ->
85 { systemd =
96 { services =
107 { epmd =
@@ -25,13 +22,14 @@
2522 };
2623 };
2724 } ->
28− η,
29− γ.mkOption = {default = Bool; description = String; type = θ;} -> ι,
30− γ.types = κ,
31− δ.erlang = λ,
32− ε.epmd = μ,
33− μ.enable = ζ,
34− κ.bool = θ,
35− ν.package = ξ
25+ ε,
26+ γ.mkOption = {default = Bool; description = String; type = ζ;} -> η,
27+ γ.types = θ,
28+ ι.erlang = κ,
29+ β.enable = δ,
30+ λ.services = α,
31+ θ.bool = ζ,
32+ μ.package = ν
3633) =>
37−α -> {config = η; options = {services = {epmd = {enable = ι; package = ο;};};};}
34+{config = α; lib = γ; pkgs = ι;} ->
35+{config = ε; options = {services = {epmd = {enable = η; package = ξ;};};};}
test/golden/importless/espanso.txt+20−23
@@ -1,20 +1,17 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
6− γ.espanso = ζ,
7− γ.libnotify = ζ,
8− γ.maintainers = η,
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2+( α.espanso = β,
3+ γ.espanso = δ,
4+ γ.libnotify = δ,
5+ γ.maintainers = ε,
96 γ.mkIf =
10− θ ->
11− { environment = {systemPackages = [ι];};
7+ ζ ->
8+ { environment = {systemPackages = [η];};
129 systemd =
1310 { user =
1411 { services =
1512 { espanso =
1613 { description = String;
17− path = [ζ];
14+ path = [δ];
1815 serviceConfig = {ExecStart = String; Restart = String;};
1916 wantedBy = [String];
2017 };
@@ -22,17 +19,17 @@
2219 };
2320 };
2421 } ->
25− κ,
26− γ.numkem = λ,
27− γ.options = μ,
28− γ.xclip = ζ,
29− δ.espanso = ι,
30− ε.espanso = ν,
31− ν.enable = θ,
32− μ.mkEnableOption = String -> ξ
22+ θ,
23+ γ.numkem = ι,
24+ γ.options = κ,
25+ γ.xclip = δ,
26+ λ.espanso = η,
27+ β.enable = ζ,
28+ μ.services = α,
29+ κ.mkEnableOption = String -> ν
3330) =>
34−α ->
35−{ config = κ;
36− meta = {maintainers = [λ];};
37− options = {services = {espanso = {enable = ξ;};};};
31+{config = α; lib = γ; pkgs = λ;} ->
32+{ config = θ;
33+ meta = {maintainers = [ι];};
34+ options = {services = {espanso = {enable = ν;};};};
3835}
test/golden/importless/esrap-peg.txtdeleted−17
@@ -1,17 +0,0 @@
1−∀ β γ δ.
2−( β.alexandria = γ,
3− β.cl-unification = γ,
4− β.esrap = γ,
5− β.fetchurl = {sha256 = String; url = String;} -> δ,
6− β.iterate = γ
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/esrap.txtdeleted−16
@@ -1,16 +0,0 @@
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/esxi.txt+15−14
@@ -1,27 +1,28 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ.
22( α.lib = β,
3− γ.buildPythonApplication =
3+ α.replaceStrings = [String] -> [String] -> String -> γ,
4+ δ.buildPythonApplication =
45 { doCheck = Bool;
56 dontBuild = Bool;
67 installPhase = String;
78 meta =
8− {broken = Bool; homepage = String; license = δ; maintainers = [ε];};
9+ {broken = Bool; homepage = String; license = ε; maintainers = [ζ];};
910 name = String;
10− propagatedBuildInputs = [ζ];
11− src = η;
11+ propagatedBuildInputs = [η];
12+ src = θ;
1213 version = String;
1314 } ->
14− θ,
15− γ.pywbem = ζ,
16− β.replaceStrings = [String] -> [String] -> String -> ι,
17− κ.licenses = λ,
18− κ.maintainers = μ,
19− κ.peterhoeg = ε,
20− λ.gpl2 = δ
15+ ι,
16+ δ.pywbem = η,
17+ κ.lib = α,
18+ β.licenses = λ,
19+ β.maintainers = μ,
20+ β.peterhoeg = ζ,
21+ λ.gpl2 = ε
2122) =>
2223{ fetchFromGitHub =
23− {owner = String; repo = String; rev = String; sha256 = String;} -> η;
24− python2Packages = γ;
24+ {owner = String; repo = String; rev = String; sha256 = String;} -> θ;
25+ python2Packages = δ;
2526 stdenv = α;
2627} ->
27−θ
28+ι
test/golden/importless/eternal.txt+6−6
@@ -1,16 +1,16 @@
11∀ α β γ δ ε ζ η θ.
2−( α.licenses = β,
3− α.maintainers = γ,
4− β.bsd3 = δ,
5− γ.brainrape = ε
2+( α.brainrape = β,
3+ α.bsd3 = γ,
4+ δ.licenses = α,
5+ ε.maintainers = α
66) =>
77{ build-idris-package =
88 { idrisDeps = [ζ];
99 meta =
1010 { description = String;
1111 homepage = String;
12− license = δ;
13− maintainers = [ε];
12+ license = γ;
13+ maintainers = [β];
1414 };
1515 name = String;
1616 postUnpack = String;
test/golden/importless/evilwm.txt+16−19
@@ -1,24 +1,21 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
6− γ.mkEnableOption = String -> ζ,
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.evilwm = β,
3+ γ.mkEnableOption = String -> δ,
74 γ.mkIf =
8− η ->
9− { environment = {systemPackages = [θ];};
10− services = {xserver = {windowManager = {session = ι;};};};
5+ ε ->
6+ { environment = {systemPackages = [ζ];};
7+ services = {xserver = {windowManager = {session = η;};};};
118 } ->
12− κ,
13− γ.singleton = {name = String; start = String;} -> ι,
14− δ.evilwm = θ,
15− ε.xserver = λ,
16− λ.windowManager = μ,
17− μ.evilwm = ν,
18− ν.enable = η
9+ θ,
10+ γ.singleton = {name = String; start = String;} -> η,
11+ ι.evilwm = ζ,
12+ β.enable = ε,
13+ κ.windowManager = α,
14+ λ.xserver = κ,
15+ μ.services = λ
1916) =>
20−α ->
21−{ config = κ;
17+{config = α; lib = γ; pkgs = ι;} ->
18+{ config = θ;
2219 options =
23− {services = {xserver = {windowManager = {evilwm = {enable = ζ;};};};};};
20+ {services = {xserver = {windowManager = {evilwm = {enable = δ;};};};};};
2421}
test/golden/importless/evolution-data-server.txt+24−27
@@ -1,31 +1,28 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ.
2+( α.enable = β,
63 γ.mkIf =
7− ζ ->
8− { environment = {systemPackages = [η];};
9− services = {dbus = {packages = [θ];};};
10− systemd = {packages = [ι];};
4+ β ->
5+ { environment = {systemPackages = [δ];};
6+ services = {dbus = {packages = [ε];};};
7+ systemd = {packages = [ζ];};
118 } ->
12− κ,
13− γ.mkOption = {default = Bool; description = String; type = λ;} -> μ,
14− γ.teams = ν,
15− γ.types = ξ,
16− δ.gnome3 = ο,
17− ε.gnome3 = π,
18− π.evolution-data-server = ρ,
19− ρ.enable = ζ,
20− ο.evolution-data-server = η,
21− σ.evolution-data-server = θ,
22− τ.evolution-data-server = ι,
23− ν.gnome = υ,
24− υ.members = φ,
25− ξ.bool = λ
9+ η,
10+ γ.mkOption = {default = Bool; description = String; type = θ;} -> ι,
11+ γ.teams = κ,
12+ γ.types = λ,
13+ μ.evolution-data-server = δ,
14+ ν.evolution-data-server = α,
15+ ξ.gnome3 = ν,
16+ ο.services = ξ,
17+ κ.members = π,
18+ ρ.gnome = κ,
19+ λ.bool = θ,
20+ σ.gnome3 = μ,
21+ τ.gnome3 = μ,
22+ υ.gnome3 = μ
2623) =>
27−α ->
28−{ config = κ;
29− meta = {maintainers = φ;};
30− options = {services = {gnome3 = {evolution-data-server = {enable = μ;};};};};
24+{config = α; lib = γ; pkgs = μ;} ->
25+{ config = η;
26+ meta = {maintainers = π;};
27+ options = {services = {gnome3 = {evolution-data-server = {enable = ι;};};};};
3128}
test/golden/importless/exfat.txt+7−10
@@ -1,11 +1,8 @@
1−∀ α β γ δ ε ζ η θ ι.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.boot = ε,
6− γ.any = (String -> Bool) -> ζ -> η,
7− γ.mkIf = η -> {system = {fsPackages = [θ];};} -> ι,
8− δ.exfat = θ,
9− ε.supportedFilesystems = ζ
1+∀ α β γ δ ε ζ η θ.
2+( α.supportedFilesystems = β,
3+ γ.any = (String -> Bool) -> β -> δ,
4+ γ.mkIf = δ -> {system = {fsPackages = [ε];};} -> ζ,
5+ η.exfat = ε,
6+ θ.boot = α
107) =>
11−α -> {config = ι;}
8+{config = α; lib = γ; pkgs = η;} -> {config = ζ;}
test/golden/importless/ext.txt+3−3
@@ -1,10 +1,10 @@
1−∀ α β γ.
2−(α.pkgs = β, β.e2fsprogs = γ) => α ->
1+∀ α β.
2+(α.e2fsprogs = β) => {pkgs = α;} ->
33{ config =
44 { boot =
55 { initrd =
66 {availableKernelModules = [String]; extraUtilsCommands = String;};
77 };
8− system = {fsPackages = [γ];};
8+ system = {fsPackages = [β];};
99 };
1010}
test/golden/importless/external-program.txtdeleted−16
@@ -1,16 +0,0 @@
1−∀ β γ δ.
2−( β.fetchurl = {sha256 = String; url = String;} -> γ,
3− β.fiveam = δ,
4− β.trivial-features = δ
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/extlinux-conf-builder.txt+1−1
@@ -4,6 +4,6 @@
44 α.gnugrep = γ,
55 α.gnused = γ,
66 α.substituteAll =
7− {bash = β; isExecutable = Bool; path = [γ]; src = String;} -> δ
7+ {bash = β; isExecutable = Bool; path = [γ]; src = Path;} -> δ
88) =>
99{pkgs = α;} -> δ
test/golden/importless/extpack.txtnew file+27
@@ -0,0 +1,27 @@
1+∀ α β γ δ ε ζ η θ ι.
2+( α.builtins = β,
3+ α.cdepillabout = γ,
4+ α.licenses = δ,
5+ α.maintainers = ε,
6+ α.sander = γ,
7+ ζ.version = η,
8+ β.stringLength = String -> Integer,
9+ δ.virtualbox-puel = θ
10+) =>
11+{ fetchurl =
12+ { meta =
13+ { description = String;
14+ homepage = String;
15+ license = θ;
16+ maintainers = [γ];
17+ platforms = [String];
18+ };
19+ name = String;
20+ sha256 = String;
21+ url = String;
22+ } ->
23+ ι;
24+ lib = α;
25+ virtualbox = ζ;
26+} ->
27+ι
test/golden/importless/extra-target-flags.txt+2−1
@@ -1,9 +1,10 @@
11∀ α β γ δ ε ζ.
22( α.hostPlatform = β,
33 α.lib = γ,
4+ α.optionals = Bool -> [String] -> [String],
45 α.targetPlatform = β,
56 γ.optionals = Bool -> [String] -> [δ],
6− ε.optionals = Bool -> [String] -> [String]
7+ ε.lib = α
78) =>
89{ crossStageStatic = Bool;
910 langD = Bool;
test/golden/importless/extract-nuget.txt+3−6
@@ -1,4 +1,4 @@
1−∀ α β γ δ ε ζ η.
1+∀ α β γ δ ε ζ.
22( α.mkDerivation =
33 { buildInputs = [β];
44 dontBuild = Bool;
@@ -8,9 +8,6 @@
88 unpackPhase = String;
99 version = ε;
1010 } ->
11− ζ,
12− η.name = γ,
13− η.src = δ,
14− η.version = ε
11+ ζ
1512) =>
16−{stdenv = α; unzip = β;} -> η -> ζ
13+{stdenv = α; unzip = β;} -> {name = γ; src = δ; version = ε;} -> ζ
test/golden/importless/extras.txt+11−10
@@ -17,6 +17,8 @@
1717 version = String;
1818 } ->
1919 κ,
20+ α.optionalString = Bool -> String -> γ,
21+ α.optionals = Bool -> [String] -> [String],
2022 β.ekleog = ζ,
2123 β.gebner = ζ,
2224 β.licenses = λ,
@@ -24,16 +26,15 @@
2426 β.platforms = ν,
2527 λ.isc = ε,
2628 ν.linux = η,
27− ξ.optionals = Bool -> [String] -> [String],
28− ο.optionals = Bool -> [String] -> [String],
29− π.optionals = Bool -> [String] -> [String],
30− ρ.optionals = Bool -> [String] -> [String],
31− σ.optionals = Bool -> [String] -> [String],
32− τ.optionals = Bool -> [String] -> [String],
33− υ.optionals = Bool -> [String] -> [String],
34− φ.optionalString = Bool -> String -> γ,
35− χ.optionalString = Bool -> String -> γ,
36− (String | Number) ~ γ
29+ ξ.lib = α,
30+ ο.lib = α,
31+ π.lib = α,
32+ ρ.lib = α,
33+ σ.lib = α,
34+ τ.lib = α,
35+ υ.lib = α,
36+ φ.lib = α,
37+ χ.lib = α
3738) =>
3839{ enableLua = Bool;
3940 enableMysql = Bool;
test/golden/importless/facetimehd.txt+21−23
@@ -1,30 +1,28 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.boot = ε,
6− β.hardware = ζ,
7− γ.mkEnableOption = String -> η,
8− γ.mkIf =
9− θ ->
10− { assertions = ι;
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π.
2+( α.facetimehd = β,
3+ α.kernelPackages = γ,
4+ δ.mkEnableOption = String -> ε,
5+ δ.mkIf =
6+ ζ ->
7+ { assertions = η;
118 boot =
129 { blacklistedKernelModules = [String];
13− extraModulePackages = [κ];
10+ extraModulePackages = [θ];
1411 kernelModules = [String];
1512 };
16− hardware = {firmware = [λ];};
13+ hardware = {firmware = [ι];};
1714 powerManagement = {powerDownCommands = String; resumeCommands = String;};
1815 } ->
19− μ,
20− γ.singleton = {assertion = ν; message = String;} -> ι,
21− γ.versionAtLeast = ξ -> String -> ν,
22− δ.facetimehd-firmware = λ,
23− ε.kernelPackages = ο,
24− ο.facetimehd = κ,
25− ο.kernel = π,
26− ζ.facetimehd = ρ,
27− ρ.enable = θ,
28− π.version = ξ
16+ κ,
17+ δ.singleton = {assertion = λ; message = String;} -> η,
18+ δ.versionAtLeast = μ -> String -> λ,
19+ ν.facetimehd-firmware = ι,
20+ γ.facetimehd = θ,
21+ γ.version = μ,
22+ ξ.boot = α,
23+ β.enable = ζ,
24+ ο.hardware = α,
25+ π.kernel = γ
2926) =>
30−α -> {config = μ; options = {hardware = {facetimehd = {enable = η;};};};}
27+{config = α; lib = δ; pkgs = ν;} ->
28+{config = κ; options = {hardware = {facetimehd = {enable = ε;};};};}
test/golden/importless/fancontrol.txt+16−19
@@ -1,12 +1,9 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.hardware = ε,
6− γ.cfg = ζ,
7− γ.mkEnableOption = String -> η,
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π.
2+( α.fancontrol = β,
3+ γ.cfg = δ,
4+ γ.mkEnableOption = String -> ε,
85 γ.mkIf =
9− θ ->
6+ ζ ->
107 { systemd =
118 { services =
129 { fancontrol =
@@ -19,16 +16,16 @@
1916 };
2017 };
2118 } ->
22− ι,
19+ η,
2320 γ.mkOption =
24− {default = Null; description = String; example = String; type = κ;} -> λ,
25− γ.types = μ,
26− δ.writeText = String -> ν -> ξ,
27− ζ.config = ν,
28− ε.fancontrol = ο,
29− ο.enable = θ,
30− μ.nullOr = π -> κ,
31− ρ.lines = π
21+ {default = Null; description = String; example = String; type = θ;} -> ι,
22+ γ.types = κ,
23+ λ.writeText = String -> μ -> ν,
24+ β.enable = ζ,
25+ ξ.hardware = α,
26+ δ.config = μ,
27+ κ.nullOr = ο -> θ,
28+ π.lines = ο
3229) =>
33−α ->
34−{config = ι; options = {hardware = {fancontrol = {config = λ; enable = η;};};};}
30+{config = α; lib = γ; pkgs = λ;} ->
31+{config = η; options = {hardware = {fancontrol = {config = ι; enable = ε;};};};}
test/golden/importless/fare-quasiquote-extras.txtdeleted−21
@@ -1,21 +0,0 @@
1−∀ β γ δ.
2−( β.alexandria = γ,
3− β.closer-mop = γ,
4− β.fare-quasiquote = γ,
5− β.fare-quasiquote-optima = γ,
6− β.fare-quasiquote-readtable = γ,
7− β.fare-utils = γ,
8− β.fetchurl = {sha256 = String; url = String;} -> δ,
9− β.named-readtables = γ,
10− β.optima = γ
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/fare-quasiquote-optima.txtdeleted−18
@@ -1,18 +0,0 @@
1−∀ β γ δ.
2−( β.alexandria = γ,
3− β.closer-mop = γ,
4− β.fare-quasiquote = γ,
5− β.fare-utils = γ,
6− β.fetchurl = {sha256 = String; url = String;} -> δ,
7− β.optima = γ
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/fare-quasiquote-readtable.txtdeleted−16
@@ -1,16 +0,0 @@
1−∀ β γ δ.
2−( β.fare-quasiquote = γ,
3− β.fare-utils = γ,
4− β.fetchurl = {sha256 = String; url = String;} -> δ,
5− β.named-readtables = γ
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/fare-quasiquote.txtdeleted−11
@@ -1,11 +0,0 @@
1−∀ β γ δ.
2−(β.fare-utils = γ, β.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/fare-utils.txt+4−4
@@ -1,11 +1,11 @@
1−∀ β γ.
2−(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
1+∀ β.
2+{fetchurl = {sha256 = String; url = String;} -> β;} ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. [α];
5+ deps = ∀ α. α;
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
9− src = γ;
9+ src = β;
1010 version = String;
1111}
test/golden/importless/farrp.txt+6−6
@@ -1,16 +1,16 @@
11∀ α β γ δ ε ζ η θ.
2−( α.licenses = β,
3− α.maintainers = γ,
4− β.mit = δ,
5− γ.brainrape = ε
2+( α.brainrape = β,
3+ α.mit = γ,
4+ δ.licenses = α,
5+ ε.maintainers = α
66) =>
77{ build-idris-package =
88 { idrisDeps = [ζ];
99 meta =
1010 { description = String;
1111 homepage = String;
12− license = δ;
13− maintainers = [ε];
12+ license = γ;
13+ maintainers = [β];
1414 };
1515 name = String;
1616 src = η;
test/golden/importless/fast-http.txtdeleted−22
@@ -1,22 +0,0 @@
1−∀ β γ δ.
2−( β.alexandria = γ,
3− β.babel = γ,
4− β.cl-utilities = γ,
5− β.fetchurl = {sha256 = String; url = String;} -> δ,
6− β.flexi-streams = γ,
7− β.proc-parse = γ,
8− β.smart-buffer = γ,
9− β.trivial-features = γ,
10− β.trivial-gray-streams = γ,
11− β.xsubseq = γ
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/fast-io.txtdeleted−21
@@ -1,21 +0,0 @@
1−∀ β γ δ.
2−( β.alexandria = γ,
3− β.babel = γ,
4− β.cffi = γ,
5− β.cffi-grovel = γ,
6− β.cffi-toolchain = γ,
7− β.fetchurl = {sha256 = String; url = String;} -> δ,
8− β.static-vectors = γ,
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/faust1.txtdeleted−76
@@ -1,76 +0,0 @@
1−∀ γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1 δ1 ε1 ζ1.
2−( γ //
3− { dontBuild = Bool;
4− installPhase = String;
5− meta = ∀ β. β;
6− name = String;
7− postInstall = String;
8− src = δ;
9− } ~
10− ε,
11− ζ //
12− { buildInputs = [η];
13− nativeBuildInputs = [θ];
14− postFixup = String;
15− propagatedBuildInputs = [ι];
16− } ~
17− { buildInputs = [η];
18− meta = ∀ β. β;
19− passthru = {wrap = κ; wrapWithBuildEnv = λ;};
20− pname = String;
21− postFixup = String;
22− postInstall = String;
23− preConfigure = String;
24− src = δ;
25− version = μ;
26− },
27− ν //
28− {buildInputs = [η]; postFixup = String;} ~
29− { buildInputs = [η];
30− meta = ∀ β. β;
31− passthru = {wrap = κ; wrapWithBuildEnv = λ;};
32− pname = String;
33− postFixup = String;
34− postInstall = String;
35− preConfigure = String;
36− src = δ;
37− version = μ;
38− },
39− ξ.?scripts = [ο],
40− π.?scripts = [ο],
41− ρ.lib = σ,
42− ρ.mkDerivation =
43− { buildInputs = [η];
44− meta = ∀ α. α;
45− passthru = {wrap = κ; wrapWithBuildEnv = λ;};
46− pname = String;
47− postFixup = String;
48− postInstall = String;
49− preConfigure = String;
50− src = δ;
51− version = μ;
52− } ->
53− ι,
54− σ.strings = τ,
55− τ.baseName = ο,
56− τ.concatStringsSep = String -> υ -> φ,
57− τ.licenses = χ,
58− τ.magnetophon = ψ,
59− τ.maintainers = ω,
60− τ.map = (α1 -> String) -> [ι] -> υ,
61− τ.platforms = β1,
62− τ.pmahoney = ψ,
63− τ.src = δ,
64− τ.version = μ,
65− τ.wrap = κ,
66− τ.wrapWithBuildEnv = λ,
67− χ.gpl2 = γ1,
68− β1.linux = δ1
69−) =>
70−{ coreutils = ε1;
71− fetchurl = {sha256 = String; url = String;} -> ζ1;
72− makeWrapper = η;
73− pkgconfig = θ;
74− stdenv = ρ;
75−} ->
76−ι
test/golden/importless/faust2.txtdeleted−102
@@ -1,102 +0,0 @@
1−∀ γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1 δ1 ε1 ζ1 η1.
2−( γ //
3− { dontBuild = Bool;
4− installPhase = String;
5− meta = ∀ β. β;
6− name = String;
7− postInstall = String;
8− src = δ;
9− } ~
10− ε,
11− ζ //
12− { buildInputs = [η];
13− libPath = θ;
14− nativeBuildInputs = [η];
15− postFixup = String;
16− propagatedBuildInputs = [ι];
17− } ~
18− { buildInputs = [κ];
19− cmakeFlags = String;
20− meta = ∀ β. β;
21− nativeBuildInputs = [η];
22− passthru = {wrap = λ; wrapWithBuildEnv = μ;};
23− pname = String;
24− postFixup = String;
25− postInstall = String;
26− preConfigure = String;
27− src = δ;
28− version = ν;
29− },
30− ξ //
31− {buildInputs = [η]; postFixup = String;} ~
32− { buildInputs = [κ];
33− cmakeFlags = String;
34− meta = ∀ β. β;
35− nativeBuildInputs = [η];
36− passthru = {wrap = λ; wrapWithBuildEnv = μ;};
37− pname = String;
38− postFixup = String;
39− postInstall = String;
40− preConfigure = String;
41− src = δ;
42− version = ν;
43− },
44− ο.?scripts = [π],
45− ρ.?scripts = [π],
46− σ.lib = τ,
47− σ.mkDerivation =
48− { buildInputs = [κ];
49− cmakeFlags = String;
50− meta = ∀ α. α;
51− nativeBuildInputs = [η];
52− passthru = {wrap = λ; wrapWithBuildEnv = μ;};
53− pname = String;
54− postFixup = String;
55− postInstall = String;
56− preConfigure = String;
57− src = δ;
58− version = ν;
59− } ->
60− ι,
61− τ.strings = υ,
62− υ.baseName = π,
63− υ.concatStringsSep = String -> φ -> χ,
64− υ.licenses = ψ,
65− υ.magnetophon = ω,
66− υ.maintainers = α1,
67− υ.map = (β1 -> String) -> [ι] -> φ,
68− υ.platforms = γ1,
69− υ.pmahoney = ω,
70− υ.src = δ,
71− υ.version = ν,
72− υ.wrap = λ,
73− υ.wrapWithBuildEnv = μ,
74− ψ.gpl2 = δ1,
75− γ1.linux = ε1,
76− τ.makeLibraryPath = [ι] -> θ
77−) =>
78−{ cmake = η;
79− coreutils = ζ1;
80− emscripten = κ;
81− fetchFromGitHub =
82− { fetchSubmodules = Bool;
83− owner = String;
84− repo = String;
85− rev = String;
86− sha256 = String;
87− } ->
88− η1;
89− gnutls = κ;
90− libmicrohttpd = κ;
91− libsndfile = κ;
92− libtasn1 = κ;
93− llvm = κ;
94− makeWrapper = η;
95− openssl = κ;
96− p11-kit = κ;
97− pkgconfig = η;
98− stdenv = σ;
99− vim = η;
100− which = η;
101−} ->
102−ι
test/golden/importless/faxq-default.txt+1−2
@@ -1,5 +1,4 @@
1−∀ α.
2−α ->
1+{} ->
32{ ModemGroup = [String];
43 ServerTracing = String;
54 SessionTracing = String;
test/golden/importless/fcitx.txt+34−35
@@ -1,22 +1,21 @@
1−∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1 δ1 ε1 ζ1 η1 θ1 ι1.
2−( β // {check = γ -> Bool; name = String;} ~ δ,
3− ε.config = ζ,
4− ε.lib = η,
5− ε.pkgs = θ,
6− ζ.i18n = ι,
7− θ.fcitx = κ,
8− θ.fcitx-engines = λ,
9− η.attrByPath = [String] -> Bool -> γ -> Bool,
10− η.attrNames = μ -> ν,
11− η.cfg = ξ,
12− η.concatStringsSep = String -> ο -> π,
13− η.const = ρ -> σ,
14− η.filterAttrs = σ -> λ -> μ,
15− η.isDerivation = ρ,
16− η.listOf = τ -> υ,
17− η.literalExample = String -> φ,
18− η.map = (χ -> String) -> ν -> ο,
19− η.mkIf =
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β2 γ3 δ4 ε5 ζ6 η7 θ8.
2+( (β) // ({check = γ -> Bool; name = String;}) ~ (δ),
3+ ε.enabled = String,
4+ ε.fcitx = ζ,
5+ η.fcitx-engines = θ,
6+ η.override = {plugins = ι;} -> κ,
7+ λ.attrByPath = [String] -> Bool -> γ -> Bool,
8+ λ.attrNames = μ -> ν,
9+ λ.cfg = ξ,
10+ λ.check = γ -> Bool,
11+ λ.concatStringsSep = String -> ο -> π,
12+ λ.const = ρ -> σ,
13+ λ.filterAttrs = σ -> θ -> μ,
14+ λ.isDerivation = ρ,
15+ λ.listOf = τ -> υ,
16+ λ.literalExample = String -> φ,
17+ λ.map = (χ -> String) -> ν -> ο,
18+ λ.mkIf =
2019 Bool ->
2120 { environment =
2221 { variables =
@@ -25,22 +24,22 @@
2524 XMODIFIERS = String;
2625 };
2726 };
28− i18n = {inputMethod = {package = ψ;};};
27+ i18n = {inputMethod = {package = κ;};};
2928 services = {xserver = {displayManager = {sessionCommands = String;};};};
3029 } ->
31− ω,
32− η.mkOption =
33− {default = ∀ α. [α]; description = String; example = φ; type = υ;} -> α1,
34− η.types = β1,
35− κ.override = {plugins = γ1;} -> ψ,
36− ξ.engines = γ1,
37− β1.package = β,
38− δ1.package = ε1,
39− ε1.check = γ -> Bool,
40− ι.inputMethod = ζ1,
41− ζ1.fcitx = η1,
42− θ1.inputMethod = ι1,
43− ι1.enabled = String
30+ ψ,
31+ λ.mkOption =
32+ {default = ∀ α. α; description = String; example = φ; type = υ;} -> ω,
33+ λ.types = α1,
34+ β2.inputMethod = ε,
35+ γ3.i18n = β2,
36+ δ4.inputMethod = ε,
37+ ε5.i18n = δ4,
38+ ζ6.fcitx = η,
39+ ξ.engines = ι,
40+ α1.package = β,
41+ η7.package = λ,
42+ θ8.types = η7
4443) =>
45−ε ->
46−{config = ω; options = {i18n = {inputMethod = {fcitx = {engines = α1;};};};};}
44+{config = ε; lib = λ; pkgs = η;} ->
45+{config = ψ; options = {i18n = {inputMethod = {fcitx = {engines = ω;};};};};}
test/golden/importless/fetch-rebar-deps.txt+3−2
@@ -12,8 +12,9 @@
1212 phases = [String];
1313 } ->
1414 ε,
15− ζ.fetchers = η,
16− η.proxyImpureEnvVars = γ
15+ α.proxyImpureEnvVars = γ,
16+ ζ.fetchers = α,
17+ η.lib = ζ
1718) =>
1819{rebar3 = θ; stdenv = α;} ->
1920{meta = {}; name = ι; sha256 = δ; src = κ; version = λ;} -> ε
test/golden/importless/fetchNodeModules.txt+8−8
@@ -1,15 +1,15 @@
11∀ α β γ δ ε ζ η.
2−( α.lib = β,
3− α.mkDerivation =
2+( α.mkDerivation =
43 { buildCommand = String;
54 name = String;
6− nativeBuildInputs = [γ];
7− outputHash = δ;
5+ nativeBuildInputs = [β];
6+ outputHash = γ;
87 outputHashAlgo = String;
98 outputHashMode = String;
109 } ->
11− ε,
12− γ.version = ζ,
13− β.versionAtLeast = ζ -> String -> Bool
10+ δ,
11+ α.versionAtLeast = ε -> String -> Bool,
12+ β.version = ε,
13+ ζ.lib = α
1414) =>
15−{jq = γ; stdenv = α;} -> {nodejs = γ; sha256 = δ; src = η;} -> ε
15+{jq = β; stdenv = α;} -> {nodejs = β; sha256 = γ; src = η;} -> δ
test/golden/importless/ffmpegthumbs.txt+3−3
@@ -1,9 +1,9 @@
11∀ α β γ δ ε ζ η θ.
22( α.licenses = β,
3− α.maintainers = γ,
3+ α.ttuegel = γ,
44 β.bsd3 = δ,
55 β.gpl2 = δ,
6− γ.ttuegel = ε
6+ ε.maintainers = α
77) =>
88{ extra-cmake-modules = ζ;
99 ffmpeg_3 = η;
@@ -11,7 +11,7 @@
1111 lib = α;
1212 mkDerivation =
1313 { buildInputs = [η];
14− meta = {license = [δ]; maintainers = [ε];};
14+ meta = {license = [δ]; maintainers = [γ];};
1515 name = String;
1616 nativeBuildInputs = [ζ];
1717 } ->
test/golden/importless/fiasco.txtdeleted−16
@@ -1,16 +0,0 @@
1−∀ β γ δ.
2−( β.alexandria = γ,
3− β.fetchurl = {sha256 = String; url = String;} -> δ,
4− β.trivial-gray-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/filters.txt+36−34
@@ -1,49 +1,51 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2−( α.lib = β,
2+( α.gpl2 = β,
3+ α.linux = γ,
4+ α.makeBinPath = [δ] -> ε,
35 α.mkDerivation =
4− { buildInputs = [γ];
6+ { buildInputs = [ζ];
57 configureFlags = [String];
68 doCheck = Bool;
79 enableParallelBuilding = Bool;
810 makeFlags = [String];
911 meta =
10− {description = String; homepage = String; license = δ; platforms = ε;};
11− nativeBuildInputs = [ζ];
12+ {description = String; homepage = String; license = β; platforms = γ;};
13+ nativeBuildInputs = [η];
1214 pname = String;
1315 postConfigure = String;
1416 postInstall = String;
15− src = η;
17+ src = θ;
1618 version = String;
1719 } ->
18− θ,
19− β.makeBinPath = [ι] -> κ,
20− λ.licenses = μ,
21− μ.gpl2 = δ,
22− ν.platforms = ξ,
23− ξ.linux = ε
20+ ι,
21+ κ.lib = α,
22+ λ.licenses = α,
23+ μ.lib = λ,
24+ ν.platforms = α,
25+ ξ.lib = ν
2426) =>
25−{ avahi = γ;
26− bc = ι;
27− coreutils = ι;
28− cups = γ;
29− dbus = γ;
30− fetchurl = {sha256 = String; url = String;} -> η;
31− fontconfig = γ;
32− gawk = ι;
33− ghostscript = γ;
34− gnugrep = ι;
35− gnused = ι;
36− ijs = γ;
37− libjpeg = γ;
38− libpng = γ;
39− makeWrapper = ζ;
40− mupdf = γ;
41− perl = γ;
42− pkgconfig = ζ;
43− poppler = γ;
44− poppler_utils = γ;
45− qpdf = γ;
27+{ avahi = ζ;
28+ bc = δ;
29+ coreutils = δ;
30+ cups = ζ;
31+ dbus = ζ;
32+ fetchurl = {sha256 = String; url = String;} -> θ;
33+ fontconfig = ζ;
34+ gawk = δ;
35+ ghostscript = ζ;
36+ gnugrep = δ;
37+ gnused = δ;
38+ ijs = ζ;
39+ libjpeg = ζ;
40+ libpng = ζ;
41+ makeWrapper = η;
42+ mupdf = ζ;
43+ perl = ζ;
44+ pkgconfig = η;
45+ poppler = ζ;
46+ poppler_utils = ζ;
47+ qpdf = ζ;
4648 stdenv = α;
47− which = ι;
49+ which = δ;
4850} ->
49−θ
51+ι
test/golden/importless/firejail.txt+22−25
@@ -1,32 +1,29 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.programs = ε,
6− γ.literalExample = String -> ζ,
7− γ.maintainers = η,
8− γ.mkEnableOption = String -> θ,
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ.
2+( α.firejail = β,
3+ γ.literalExample = String -> δ,
4+ γ.maintainers = ε,
5+ γ.mkEnableOption = String -> ζ,
96 γ.mkIf =
10− ι ->
11− { environment = {systemPackages = [κ];};
7+ η ->
8+ { environment = {systemPackages = [θ];};
129 security = {wrappers = {firejail = {source = String;};};};
1310 } ->
14− λ,
11+ ι,
1512 γ.mkOption =
16− {default = {}; description = String; example = ζ; type = μ;} -> ν,
17− γ.peterhoeg = ξ,
18− γ.types = ο,
19− δ.firejail = κ,
20− δ.runCommand =
13+ {default = {}; description = String; example = δ; type = κ;} -> λ,
14+ γ.peterhoeg = μ,
15+ γ.types = ν,
16+ ξ.firejail = θ,
17+ ξ.runCommand =
2118 String ->
22− {allowSubstitutes = Bool; preferLocalBuild = Bool;} -> String -> κ,
23− ε.firejail = π,
24− π.enable = ι,
25− ο.attrsOf = ρ -> μ,
26− σ.path = ρ
19+ {allowSubstitutes = Bool; preferLocalBuild = Bool;} -> String -> θ,
20+ β.enable = η,
21+ ο.programs = α,
22+ ν.attrsOf = π -> κ,
23+ ρ.path = π
2724) =>
28−α ->
29−{ config = λ;
30− meta = {maintainers = [ξ];};
31− options = {programs = {firejail = {enable = θ; wrappedBinaries = ν;};};};
25+{config = α; lib = γ; pkgs = ξ;} ->
26+{ config = ι;
27+ meta = {maintainers = [μ];};
28+ options = {programs = {firejail = {enable = ζ; wrappedBinaries = λ;};};};
3229}
test/golden/importless/fiveam.txtdeleted−17
@@ -1,17 +0,0 @@
1−∀ β γ δ.
2−( β.alexandria = γ,
3− β.fetchurl = {sha256 = String; url = String;} -> δ,
4− β.net_dot_didierverna_dot_asdf-flv = γ,
5− β.trivial-backtrace = γ
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/fixed-points.txt+10−7
@@ -1,15 +1,18 @@
1−∀ θ.
2−θ ->
1+{} ->
32{ composeExtensions =
43 ∀ α β γ δ ε ζ η.
5− (α // β ~ γ, β // δ ~ ε) => (ζ -> α -> β) -> (ζ -> η -> δ) -> ζ -> α -> ε;
4+ ((α) // (β) ~ (γ), (β) // (δ) ~ (ε)) => (ζ -> α -> β) ->
5+ (ζ -> η -> δ) -> ζ -> α -> ε;
66 converge = ∀ α. (α -> α) -> α -> α;
7− extends = ∀ α β γ δ. (α // β ~ γ) => (δ -> α -> β) -> (δ -> α) -> δ -> γ;
7+ extends =
8+ ∀ α β γ δ. ((α) // (β) ~ (γ)) => (δ -> α -> β) -> (δ -> α) -> δ -> γ;
89 fix = ∀ α. (α -> α) -> α;
9− fix' = ∀ α β. (α // {__unfix__ = β -> α;} ~ β) => (β -> α) -> β;
10+ fix' = ∀ α β. ((α) // ({__unfix__ = β -> α;}) ~ (β)) => (β -> α) -> β;
1011 makeExtensible =
11− ∀ α β γ. (α // {__unfix__ = β -> α;} ~ β, β // {} ~ γ) => (β -> α) -> γ;
12+ ∀ α β γ.
13+ ((α) // ({__unfix__ = β -> α;}) ~ (β), (β) // ({}) ~ (γ)) => (β -> α) -> γ;
1214 makeExtensibleWithCustomName =
1315 ∀ α β γ δ.
14− (α // {__unfix__ = β -> α;} ~ β, β // {} ~ γ) => δ -> (β -> α) -> γ;
16+ ((α) // ({__unfix__ = β -> α;}) ~ (β), (β) // ({}) ~ (γ)) => δ ->
17+ (β -> α) -> γ;
1518}
test/golden/importless/flatpak-builder.txt+11−10
@@ -1,17 +1,18 @@
1−∀ α β γ δ ε ζ.
2−( α.makeInstalledTest =
1+∀ α β γ δ ε.
2+( α.flatpak-builder = β,
3+ γ.installedTestsDependencies = [β]
4+) =>
5+{ makeInstalledTest =
36 { testConfig =
47 { environment = {systemPackages = [β];};
58 services = {flatpak = {enable = Bool;};};
6− virtualisation = {diskSize = Number;};
9+ virtualisation = {diskSize = Integer;};
710 xdg = {portal = {enable = Bool;};};
811 };
912 testRunnerFlags = String;
10− tested = γ;
13+ tested = δ;
1114 } ->
12− δ,
13− α.pkgs = ε,
14− ε.flatpak-builder = β,
15− ζ.installedTestsDependencies = [β]
16−) =>
17−α -> δ
15+ ε;
16+ pkgs = α;
17+} ->
18+ε
test/golden/importless/flatpak.txt+30−32
@@ -1,17 +1,14 @@
1−∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω.
2−( β.config = γ,
3− β.lib = δ,
4− β.pkgs = ε,
5− γ.services = ζ,
6− γ.xdg = η,
7− δ.literalExample = String -> θ,
8− δ.mkEnableOption = String -> ι,
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ.
2+( β.enable = Bool,
3+ β.flatpak = γ,
4+ δ.literalExample = String -> ε,
5+ δ.mkEnableOption = String -> ζ,
96 δ.mkIf =
10− κ ->
7+ η ->
118 { assertions = [{assertion = Bool; message = String;}];
12− environment = {profiles = [String]; systemPackages = [λ];};
13− services = {dbus = {packages = [μ];};};
14− systemd = {packages = [ν];};
9+ environment = {profiles = [String]; systemPackages = [θ];};
10+ services = {dbus = {packages = [ι];};};
11+ systemd = {packages = [κ];};
1512 users =
1613 { groups = {flatpak = {};};
1714 users =
@@ -20,29 +17,30 @@
2017 };
2118 };
2219 } ->
23− ξ,
20+ λ,
2421 δ.mkOption =
25− { default = ∀ α. [α];
22+ { default = ∀ α. α;
2623 description = String;
27− example = θ;
24+ example = ε;
2825 internal = Bool;
29− type = ο;
26+ type = μ;
3027 } ->
31− π,
32− δ.types = ρ,
33− ε.flatpak = λ,
34− ζ.flatpak = σ,
35− σ.enable = κ,
36− σ.guiPackages = [λ],
37− η.portal = τ,
38− τ.enable = Bool,
39− υ.meta = φ,
40− φ.maintainers = χ,
41− ρ.listOf = ψ -> ο,
42− ω.package = ψ
28+ ν,
29+ δ.types = ξ,
30+ ο.flatpak = θ,
31+ ο.maintainers = π,
32+ γ.enable = η,
33+ γ.guiPackages = [θ],
34+ ρ.services = β,
35+ σ.portal = β,
36+ τ.xdg = σ,
37+ ξ.listOf = υ -> μ,
38+ φ.package = υ,
39+ χ.meta = ο,
40+ ψ.flatpak = χ
4341) =>
44−β ->
45−{ config = ξ;
46− meta = {doc = String; maintainers = χ;};
47− options = {services = {flatpak = {enable = ι; guiPackages = π;};};};
42+{config = β; lib = δ; pkgs = ο;} ->
43+{ config = λ;
44+ meta = {doc = Path; maintainers = π;};
45+ options = {services = {flatpak = {enable = ζ; guiPackages = ν;};};};
4846}
test/golden/importless/flexi-streams.txtdeleted−15
@@ -1,15 +0,0 @@
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− parasites = [String];
13− src = γ;
14− version = String;
15−}
test/golden/importless/fluxbox.txt+16−19
@@ -1,24 +1,21 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
6− γ.mkEnableOption = String -> ζ,
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
2+( α.fluxbox = β,
3+ γ.mkEnableOption = String -> δ,
74 γ.mkIf =
8− η ->
9− { environment = {systemPackages = [θ];};
10− services = {xserver = {windowManager = {session = ι;};};};
5+ ε ->
6+ { environment = {systemPackages = [ζ];};
7+ services = {xserver = {windowManager = {session = η;};};};
118 } ->
12− κ,
13− γ.singleton = {name = String; start = String;} -> ι,
14− δ.fluxbox = θ,
15− ε.xserver = λ,
16− λ.windowManager = μ,
17− μ.fluxbox = ν,
18− ν.enable = η
9+ θ,
10+ γ.singleton = {name = String; start = String;} -> η,
11+ ι.fluxbox = ζ,
12+ β.enable = ε,
13+ κ.windowManager = α,
14+ λ.xserver = κ,
15+ μ.services = λ
1916) =>
20−α ->
21−{ config = κ;
17+{config = α; lib = γ; pkgs = ι;} ->
18+{ config = θ;
2219 options =
23− {services = {xserver = {windowManager = {fluxbox = {enable = ζ;};};};};};
20+ {services = {xserver = {windowManager = {fluxbox = {enable = δ;};};};};};
2421}
test/golden/importless/fontdir.txt+10−12
@@ -1,14 +1,12 @@
1−∀ α β γ δ ε ζ η θ ι κ λ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.fonts = ε,
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.enableFontDir = β,
63 γ.mkIf =
7− ζ -> {environment = {pathsToLink = [String]; systemPackages = [η];};} -> θ,
8− γ.mkOption = {default = Bool; description = String; type = ι;} -> κ,
9− γ.types = λ,
10− δ.runCommand = String -> {preferLocalBuild = Bool;} -> String -> η,
11− ε.enableFontDir = ζ,
12− λ.bool = ι
4+ β -> {environment = {pathsToLink = [String]; systemPackages = [δ];};} -> ε,
5+ γ.mkOption = {default = Bool; description = String; type = ζ;} -> η,
6+ γ.types = θ,
7+ ι.runCommand = String -> {preferLocalBuild = Bool;} -> String -> δ,
8+ κ.fonts = α,
9+ θ.bool = ζ
1310) =>
14−α -> {config = θ; options = {fonts = {enableFontDir = κ;};};}
11+{config = α; lib = γ; pkgs = ι;} ->
12+{config = ε; options = {fonts = {enableFontDir = η;};};}
test/golden/importless/form-fiddle.txtdeleted−15
@@ -1,15 +0,0 @@
1−∀ β γ δ.
2−( β.documentation-utils = γ,
3− β.fetchurl = {sha256 = String; url = String;} -> δ,
4− β.trivial-indent = γ
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/fox-1.6.txt+30−28
@@ -1,8 +1,9 @@
11∀ γ δ ε ζ η θ ι κ λ μ ν ξ ο.
22( γ.isDarwin = δ,
3− γ.lib = ε,
3+ γ.lgpl3 = ε,
4+ γ.mesaPlatforms = ζ,
45 γ.mkDerivation =
5− { buildInputs = [ζ];
6+ { buildInputs = [η];
67 doCheck = Bool;
78 enableParallelBuilding = Bool;
89 hardeningDisable = [String];
@@ -10,37 +11,38 @@
1011 { branch = String;
1112 description = String;
1213 homepage = String;
13− license = η;
14+ license = ε;
1415 longDescription = String;
15− maintainers = ∀ α. [α];
16− platforms = θ;
16+ maintainers = ∀ α. α;
17+ platforms = ζ;
1718 };
1819 pname = String;
19− src = ι;
20+ src = θ;
2021 version = ∀ β. β;
2122 } ->
22− κ,
23− ε.licenses = λ,
24− λ.lgpl3 = η,
25− μ.platforms = ν,
26− ν.mesaPlatforms = θ,
27− ξ.optional = δ -> ο -> [ζ]
23+ ι,
24+ γ.optional = δ -> κ -> [η],
25+ λ.licenses = γ,
26+ μ.lib = λ,
27+ ν.platforms = γ,
28+ ξ.lib = ν,
29+ ο.lib = γ
2830) =>
29−{ CoreServices = ο;
30− bzip2 = ζ;
31− fetchurl = {sha256 = String; url = String;} -> ι;
32− libGL = ζ;
33− libGLU = ζ;
34− libXcursor = ζ;
35− libXfixes = ζ;
36− libXft = ζ;
37− libXrandr = ζ;
38− libjpeg = ζ;
39− libpng = ζ;
40− libtiff = ζ;
31+{ CoreServices = κ;
32+ bzip2 = η;
33+ fetchurl = {sha256 = String; url = String;} -> θ;
34+ libGL = η;
35+ libGLU = η;
36+ libXcursor = η;
37+ libXfixes = η;
38+ libXft = η;
39+ libXrandr = η;
40+ libjpeg = η;
41+ libpng = η;
42+ libtiff = η;
4143 stdenv = γ;
42− xinput = ζ;
43− xlibsWrapper = ζ;
44− zlib = ζ;
44+ xinput = η;
45+ xlibsWrapper = η;
46+ zlib = η;
4547} ->
46−κ
48+ι
test/golden/importless/frameworkintegration.txt+2−2
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ η.
2−(α.maintainers = β, β.ttuegel = γ) => { extra-cmake-modules = δ;
2+(α.ttuegel = β, γ.maintainers = α) => { extra-cmake-modules = δ;
33 kbookmarks = ε;
44 kcompletion = ε;
55 kconfig = ε;
@@ -15,7 +15,7 @@
1515 libXcursor = ε;
1616 mkDerivation =
1717 { buildInputs = [ε];
18− meta = {maintainers = [γ];};
18+ meta = {maintainers = [β];};
1919 name = String;
2020 nativeBuildInputs = [δ];
2121 propagatedBuildInputs = [ζ];
test/golden/importless/frameworks.txt+93−93
@@ -1,5 +1,5 @@
1−∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1 δ1 ε1 ζ1 η1 θ1 ι1 κ1 λ1
2−μ1 ν1 ξ1 ο1 π1 ρ1 σ1 τ1 υ1 φ1 χ1 ψ1 ω1 α2 β2 γ2 δ2 ε2 ζ2 η2 θ2.
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β2 γ3 δ4 ε5 ζ6 η7 θ8 ι9 κ10
2+λ11 μ12 ν13 ξ14 ο15 π16 ρ17 σ18 τ19 υ20 φ21 χ22 ψ23 ω24.
33( β.Accelerate = γ,
44 β.AppKit = δ,
55 β.ApplicationServices = ε,
@@ -47,115 +47,115 @@
4747{frameworks = β; libobjc = χ; libs = ψ;} ->
4848{ AGL = [θ];
4949 AVFoundation = [ε];
50− AVKit = ∀ α. [α];
50+ AVKit = ∀ α. α;
5151 Accelerate = [ο];
52− Accounts = ∀ α. [α];
52+ Accounts = ∀ α. α;
5353 AddressBook = [ω];
5454 AppKit = [ζ];
55− AppKitScripting = ∀ α. [α];
56− AppleScriptKit = ∀ α. [α];
57− AppleScriptObjC = ∀ α. [α];
55+ AppKitScripting = ∀ α. α;
56+ AppleScriptKit = ∀ α. α;
57+ AppleScriptObjC = ∀ α. α;
5858 ApplicationServices = [ν];
5959 AudioToolbox = [ι];
6060 AudioUnit = [α1];
61− AudioVideoBridging = [β1];
62− Automator = ∀ α. [α];
63− CFNetwork = ∀ α. [α];
64− CalendarStore = ∀ α. [α];
61+ AudioVideoBridging = [β2];
62+ Automator = ∀ α. α;
63+ CFNetwork = ∀ α. α;
64+ CalendarStore = ∀ α. α;
6565 Carbon = [π];
6666 Cocoa = [δ];
67− Collaboration = ∀ α. [α];
68− CoreAudio = [γ1];
69− CoreAudioKit = [δ1];
70− CoreBluetooth = ∀ α. [α];
71− CoreData = ∀ α. [α];
72− CoreFoundation = ∀ α. [α];
67+ Collaboration = ∀ α. α;
68+ CoreAudio = [γ3];
69+ CoreAudioKit = [δ4];
70+ CoreBluetooth = ∀ α. α;
71+ CoreData = ∀ α. α;
72+ CoreFoundation = ∀ α. α;
7373 CoreGraphics = [γ];
74− CoreImage = ∀ α. [α];
75− CoreLocation = ∀ α. [α];
76− CoreMIDI = ∀ α. [α];
77− CoreMIDIServer = ∀ α. [α];
74+ CoreImage = ∀ α. α;
75+ CoreLocation = ∀ α. α;
76+ CoreMIDI = ∀ α. α;
77+ CoreMIDIServer = ∀ α. α;
7878 CoreMedia = [ξ];
7979 CoreMediaIO = [λ];
8080 CoreServices = [η];
81− CoreText = [ε1];
82− CoreVideo = [ζ1];
81+ CoreText = [ε5];
82+ CoreVideo = [ζ6];
8383 CoreWLAN = [υ];
84− DVDPlayback = ∀ α. [α];
85− DirectoryService = ∀ α. [α];
86− DiscRecording = [η1];
87− DiscRecordingUI = ∀ α. [α];
88− DiskArbitration = [θ1];
89− EventKit = ∀ α. [α];
90− ExceptionHandling = ∀ α. [α];
91− FWAUserLib = ∀ α. [α];
92− ForceFeedback = [ι1];
84+ DVDPlayback = ∀ α. α;
85+ DirectoryService = ∀ α. α;
86+ DiscRecording = [η7];
87+ DiscRecordingUI = ∀ α. α;
88+ DiskArbitration = [θ8];
89+ EventKit = ∀ α. α;
90+ ExceptionHandling = ∀ α. α;
91+ FWAUserLib = ∀ α. α;
92+ ForceFeedback = [ι9];
9393 Foundation = [χ];
94− GLKit = ∀ α. [α];
95− GLUT = [κ1];
96− GSS = ∀ α. [α];
97− GameController = ∀ α. [α];
98− GameKit = [λ1];
99− Hypervisor = ∀ α. [α];
100− ICADevices = [μ1];
101− IMServicePlugIn = ∀ α. [α];
102− IOBluetooth = [ν1];
103− IOBluetoothUI = [ξ1];
104− IOKit = ∀ α. [α];
94+ GLKit = ∀ α. α;
95+ GLUT = [κ10];
96+ GSS = ∀ α. α;
97+ GameController = ∀ α. α;
98+ GameKit = [λ11];
99+ Hypervisor = ∀ α. α;
100+ ICADevices = [μ12];
101+ IMServicePlugIn = ∀ α. α;
102+ IOBluetooth = [ν13];
103+ IOBluetoothUI = [ξ14];
104+ IOKit = ∀ α. α;
105105 IOSurface = [φ];
106− ImageCaptureCore = ∀ α. [α];
107− ImageIO = [ο1];
108− InputMethodKit = [π1];
109− InstallerPlugins = ∀ α. [α];
110− InstantMessage = ∀ α. [α];
111− JavaFrameEmbedding = ∀ α. [α];
112− JavaNativeFoundation = ∀ α. [α];
113− JavaRuntimeSupport = ∀ α. [α];
114− JavaScriptCore = ∀ α. [α];
115− JavaVM = ∀ α. [α];
116− Kerberos = ∀ α. [α];
117− Kernel = [ρ1];
118− LDAP = ∀ α. [α];
119− LatentSemanticMapping = [σ1];
120− LocalAuthentication = ∀ α. [α];
121− MapKit = ∀ α. [α];
122− MediaAccessibility = [τ1];
123− MediaPlayer = ∀ α. [α];
124− MediaToolbox = [υ1];
125− Metal = ∀ α. [α];
106+ ImageCaptureCore = ∀ α. α;
107+ ImageIO = [ο15];
108+ InputMethodKit = [π16];
109+ InstallerPlugins = ∀ α. α;
110+ InstantMessage = ∀ α. α;
111+ JavaFrameEmbedding = ∀ α. α;
112+ JavaNativeFoundation = ∀ α. α;
113+ JavaRuntimeSupport = ∀ α. α;
114+ JavaScriptCore = ∀ α. α;
115+ JavaVM = ∀ α. α;
116+ Kerberos = ∀ α. α;
117+ Kernel = [ρ17];
118+ LDAP = ∀ α. α;
119+ LatentSemanticMapping = [σ18];
120+ LocalAuthentication = ∀ α. α;
121+ MapKit = ∀ α. α;
122+ MediaAccessibility = [τ19];
123+ MediaPlayer = ∀ α. α;
124+ MediaToolbox = [υ20];
125+ Metal = ∀ α. α;
126126 MetalKit = [σ];
127− ModelIO = ∀ α. [α];
128− NetFS = ∀ α. [α];
129− OSAKit = [φ1];
130− OpenAL = ∀ α. [α];
131− OpenCL = [χ1];
132− OpenDirectory = ∀ α. [α];
133− OpenGL = ∀ α. [α];
134− PCSC = [ψ1];
135− PreferencePanes = ∀ α. [α];
136− PubSub = ∀ α. [α];
127+ ModelIO = ∀ α. α;
128+ NetFS = ∀ α. α;
129+ OSAKit = [φ21];
130+ OpenAL = ∀ α. α;
131+ OpenCL = [χ22];
132+ OpenDirectory = ∀ α. α;
133+ OpenGL = ∀ α. α;
134+ PCSC = [ψ23];
135+ PreferencePanes = ∀ α. α;
136+ PubSub = ∀ α. α;
137137 QTKit = [μ];
138138 Quartz = [τ];
139139 QuartzCore = [κ];
140− QuickLook = [ω1];
141− QuickTime = [α2];
142− SceneKit = ∀ α. [α];
143− ScreenSaver = ∀ α. [α];
144− Scripting = ∀ α. [α];
145− ScriptingBridge = ∀ α. [α];
146− Security = [β2];
147− SecurityFoundation = ∀ α. [α];
148− SecurityInterface = [γ2];
149− ServiceManagement = [δ2];
150− Social = ∀ α. [α];
151− SpriteKit = ∀ α. [α];
152− StoreKit = ∀ α. [α];
153− SyncServices = ∀ α. [α];
154− SystemConfiguration = [ε2];
155− TWAIN = [ζ2];
156− Tcl = ∀ α. [α];
157− VideoDecodeAcceleration = [η2];
158− VideoToolbox = [θ2];
140+ QuickLook = [ω24];
141+ QuickTime = [〚5 47〛];
142+ SceneKit = ∀ α. α;
143+ ScreenSaver = ∀ α. α;
144+ Scripting = ∀ α. α;
145+ ScriptingBridge = ∀ α. α;
146+ Security = [〚5 48〛];
147+ SecurityFoundation = ∀ α. α;
148+ SecurityInterface = [〚5 49〛];
149+ ServiceManagement = [〚5 50〛];
150+ Social = ∀ α. α;
151+ SpriteKit = ∀ α. α;
152+ StoreKit = ∀ α. α;
153+ SyncServices = ∀ α. α;
154+ SystemConfiguration = [〚5 51〛];
155+ TWAIN = [〚5 52〛];
156+ Tcl = ∀ α. α;
157+ VideoDecodeAcceleration = [〚5 53〛];
158+ VideoToolbox = [〚5 54〛];
159159 WebKit = [ρ];
160− vmnet = ∀ α. [α];
160+ vmnet = ∀ α. α;
161161}
test/golden/importless/free.txt+6−6
@@ -1,16 +1,16 @@
11∀ α β γ δ ε ζ η.
2−( α.licenses = β,
3− α.maintainers = γ,
4− β.bsd2 = δ,
5− γ.brainrape = ε
2+( α.brainrape = β,
3+ α.bsd2 = γ,
4+ δ.licenses = α,
5+ ε.maintainers = α
66) =>
77{ build-idris-package =
88 { ipkgName = String;
99 meta =
1010 { description = String;
1111 homepage = String;
12− license = δ;
13− maintainers = [ε];
12+ license = γ;
13+ maintainers = [β];
1414 };
1515 name = String;
1616 src = ζ;
test/golden/importless/freeform-attrsOf.txt+5−8
@@ -1,8 +1,5 @@
1−∀ α β γ δ ε ζ η.
2−( α.lib = β,
3− β.types = γ,
4− γ.attrsOf = δ -> ε,
5− γ.either = ζ -> η -> δ,
6− γ.str = ζ
7−) =>
8−α -> {freeformType = ε;}
1+∀ α β γ δ ε ζ.
2+(α.types = β, β.attrsOf = γ -> δ, β.either = ε -> ζ -> γ, β.str = ε) => { lib =
3+ α;
4+} ->
5+{freeformType = δ;}
test/golden/importless/freeform-lazyAttrsOf.txt+6−7
@@ -1,8 +1,7 @@
1−∀ α β γ δ ε ζ η.
2−( α.lib = β,
3− β.types = γ,
4− γ.either = δ -> ε -> ζ,
5− γ.lazyAttrsOf = ζ -> η,
6− γ.str = δ
1+∀ α β γ δ ε ζ.
2+( α.types = β,
3+ β.either = γ -> δ -> ε,
4+ β.lazyAttrsOf = ε -> ζ,
5+ β.str = γ
76) =>
8−α -> {freeformType = η;}
7+{lib = α;} -> {freeformType = ζ;}
test/golden/importless/freeform-nested.txt+6−6
@@ -1,7 +1,7 @@
1−∀ α β γ δ ε.
2−( α.lib = β,
3− β.mkOption = {default = Bool; type = γ;} -> δ,
4− β.types = ε,
5− ε.bool = γ
1+∀ α β γ δ.
2+( α.bool = β,
3+ α.mkOption = {default = Bool; type = β;} -> γ,
4+ δ.types = α
65) =>
7−α -> {config = {nest = {bar = String;};}; options = {nest = {foo = δ;};};}
6+{lib = α;} ->
7+{config = {nest = {bar = String;};}; options = {nest = {foo = γ;};};}
test/golden/importless/freeform-str-dep-unstr.txt+9−10
@@ -1,11 +1,10 @@
1−∀ α β γ δ ε ζ η θ ι κ λ.
2−( α.value = β,
3− γ.config = α,
4− γ.lib = δ,
5− δ.mkIf = Bool -> ε -> ζ,
6− δ.mkOption = {default = Null; type = η;} -> θ,
7− δ.types = ι,
8− ι.nullOr = κ -> η,
9− λ.str = κ
1+∀ α β γ δ ε ζ η θ ι.
2+( α.mkIf = β -> γ -> δ,
3+ α.mkOption = {default = Null; type = ε;} -> ζ,
4+ α.nullOr = η -> ε,
5+ α.str = η,
6+ β.value = γ,
7+ θ.types = α,
8+ ι.types = α
109) =>
11−γ -> {config = {foo = ζ;}; options = {foo = θ;};}
10+{config = β; lib = α;} -> {config = {foo = δ;}; options = {foo = ζ;};}
test/golden/importless/freeform-unstr-dep-str.txt+9−10
@@ -1,11 +1,10 @@
1−∀ α β γ δ ε ζ η θ ι κ.
2−( α.config = β,
3− α.lib = γ,
4− γ.mkIf = Bool -> δ -> ε,
5− γ.mkOption = {default = Null; type = ζ;} -> η,
6− γ.types = θ,
7− β.value = Null,
8− θ.nullOr = ι -> ζ,
9− κ.str = ι
1+∀ α β γ δ ε ζ η θ ι.
2+( α.mkIf = Bool -> β -> γ,
3+ α.mkOption = {default = Null; type = δ;} -> ε,
4+ α.nullOr = ζ -> δ,
5+ α.str = ζ,
6+ η.value = Null,
7+ θ.types = α,
8+ ι.types = α
109) =>
11−α -> {config = {foo = ε;}; options = {value = η;};}
10+{config = η; lib = α;} -> {config = {foo = γ;}; options = {value = ε;};}
test/golden/importless/freeoffice.txtdeleted−15
@@ -1,15 +0,0 @@
1−∀ α β γ δ.
2−( α //
3− { archive = String;
4− edition = String;
5− pname = String;
6− src = β;
7− suiteName = String;
8− version = String;
9− } ~
10− γ,
11− α.?officeVersion = {edition = String; sha256 = String; version = String;},
12− α.callPackage = String -> γ -> δ,
13− α.fetchurl = {sha256 = String; url = String;} -> β
14−) =>
15−α -> δ
test/golden/importless/freetds.txt+16−18
@@ -1,27 +1,25 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.environment = ε,
6− γ.attrNames = ζ -> η,
7− γ.concatStrings = θ -> ι,
8− γ.length = η -> Number,
9− γ.literalExample = String -> κ,
10− γ.mapAttrsToList = (λ -> μ -> String) -> ζ -> θ,
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ.
2+( α.freetds = β,
3+ γ.attrNames = β -> δ,
4+ γ.concatStrings = ε -> ζ,
5+ γ.length = δ -> Integer,
6+ γ.literalExample = String -> η,
7+ γ.mapAttrsToList = (θ -> ι -> String) -> β -> ε,
118 γ.mkIf =
129 Bool ->
1310 { environment =
14− { etc = {freetds.conf = {text = ι;};};
11+ { etc = {freetds.conf = {text = ζ;};};
1512 variables =
1613 {FREETDS = String; FREETDSCONF = String; SYBASE = String;};
1714 };
1815 } ->
19− ν,
16+ κ,
2017 γ.mkOption =
21− {default = {}; description = String; example = κ; type = ξ;} -> ο,
22− γ.types = π,
23− ε.freetds = ζ,
24− π.attrsOf = ρ -> ξ,
25− σ.str = ρ
18+ {default = {}; description = String; example = η; type = λ;} -> μ,
19+ γ.types = ν,
20+ ξ.environment = α,
21+ ν.attrsOf = ο -> λ,
22+ π.str = ο
2623) =>
27−α -> {config = ν; options = {environment = {freetds = ο;};};}
24+{config = α; lib = γ; pkgs = ρ;} ->
25+{config = κ; options = {environment = {freetds = μ;};};}
test/golden/importless/frontends.txt+2−1
@@ -17,13 +17,14 @@
1717 version = String;
1818 } ->
1919 ι,
20+ α.optional = Bool -> Null -> [γ],
2021 β.licenses = κ,
2122 β.maintainers = λ,
2223 β.peti = ε,
2324 β.platforms = μ,
2425 κ.gpl2Plus = δ,
2526 μ.linux = ζ,
26− ν.optional = Bool -> Null -> [γ]
27+ ν.lib = α
2728) =>
2829{ fetchurl = {sha256 = String; url = String;} -> θ;
2930 gtk2 = γ;
test/golden/importless/fs.txt+1−1
@@ -1,5 +1,5 @@
11∀ β γ δ ε ζ η θ ι κ.
2−( β // {description = String;} ~ γ,
2+( (β) // ({description = String;}) ~ (γ),
33 δ.optional = Bool -> ε -> ζ,
44 η.meta = β,
55 η.src = θ,
test/golden/importless/fset.txtdeleted−15
@@ -1,15 +0,0 @@
1−∀ β γ δ.
2−( β.fetchurl = {sha256 = String; url = String;} -> γ,
3− β.misc-extensions = δ,
4− β.mt19937 = δ
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/fsm.txt+6−6
@@ -1,15 +1,15 @@
11∀ α β γ δ ε ζ η.
2−( α.licenses = β,
3− α.maintainers = γ,
4− β.bsd3 = δ,
5− γ.brainrape = ε
2+( α.brainrape = β,
3+ α.bsd3 = γ,
4+ δ.licenses = α,
5+ ε.maintainers = α
66) =>
77{ build-idris-package =
88 { meta =
99 { description = String;
1010 homepage = String;
11− license = δ;
12− maintainers = [ε];
11+ license = γ;
12+ maintainers = [β];
1313 };
1414 name = String;
1515 src = ζ;
test/golden/importless/fstrim.txt+20−23
@@ -1,30 +1,27 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
6− γ.gnidorah = ζ,
7− γ.maintainers = η,
8− γ.mkEnableOption = String -> θ,
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο.
2+( α.fstrim = β,
3+ γ.gnidorah = δ,
4+ γ.maintainers = ε,
5+ γ.mkEnableOption = String -> ζ,
96 γ.mkIf =
10− ι ->
7+ η ->
118 { systemd =
12− { packages = [κ];
9+ { packages = [θ];
1310 timers =
14− {fstrim = {timerConfig = {OnCalendar = λ;}; wantedBy = [String];};};
11+ {fstrim = {timerConfig = {OnCalendar = ι;}; wantedBy = [String];};};
1512 };
1613 } ->
17− μ,
18− γ.mkOption = {default = String; description = String; type = ν;} -> ξ,
19− γ.types = ο,
20− δ.utillinux = κ,
21− ε.fstrim = π,
22− π.enable = ι,
23− π.interval = λ,
24− ο.str = ν
14+ κ,
15+ γ.mkOption = {default = String; description = String; type = λ;} -> μ,
16+ γ.types = ν,
17+ ξ.utillinux = θ,
18+ β.enable = η,
19+ β.interval = ι,
20+ ο.services = α,
21+ ν.str = λ
2522) =>
26−α ->
27−{ config = μ;
28− meta = {maintainers = [ζ];};
29− options = {services = {fstrim = {enable = θ; interval = ξ;};};};
23+{config = α; lib = γ; pkgs = ξ;} ->
24+{ config = κ;
25+ meta = {maintainers = [δ];};
26+ options = {services = {fstrim = {enable = ζ; interval = μ;};};};
3027}
test/golden/importless/full.txt+1−1
@@ -5,7 +5,7 @@
55 meta =
66 { description = String;
77 homepage = String;
8− hydraPlatforms = ∀ α. [α];
8+ hydraPlatforms = ∀ α. α;
99 license = [δ];
1010 maintainers = [ε];
1111 platforms = ζ;
test/golden/importless/fuseki-binary.txt+17−15
@@ -1,33 +1,35 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
2−( α.lib = β,
2+( α.asl20 = β,
3+ α.linux = γ,
34 α.mkDerivation =
4− { buildInputs = [γ];
5+ { buildInputs = [δ];
56 installPhase = String;
67 meta =
78 { description = String;
89 downloadPage = String;
910 downloadURLRegexp = String;
1011 homepage = String;
11− license = δ;
12+ license = β;
1213 maintainers = [ε];
13− platforms = ζ;
14+ platforms = γ;
1415 version = String;
1516 };
1617 name = String;
17− src = η;
18+ src = ζ;
1819 version = String;
1920 } ->
20− θ,
21− β.licenses = ι,
22− ι.asl20 = δ,
23− κ.maintainers = λ,
24− λ.raskin = ε,
25− μ.platforms = ν,
26− ν.linux = ζ
21+ η,
22+ α.raskin = ε,
23+ θ.licenses = α,
24+ ι.lib = θ,
25+ κ.maintainers = α,
26+ λ.lib = κ,
27+ μ.platforms = α,
28+ ν.lib = μ
2729) =>
28−{ fetchurl = {sha256 = String; url = String;} -> η;
30+{ fetchurl = {sha256 = String; url = String;} -> ζ;
2931 java = ξ;
30− makeWrapper = γ;
32+ makeWrapper = δ;
3133 stdenv = α;
3234} ->
33−θ
35+η
test/golden/importless/fvwm.txt+22−25
@@ -1,32 +1,29 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
6− γ.cfg = ζ,
7− γ.mkEnableOption = String -> η,
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ.
2+( α.fvwm = β,
3+ γ.cfg = δ,
4+ γ.mkEnableOption = String -> ε,
85 γ.mkIf =
9− θ ->
10− { environment = {systemPackages = [ι];};
11− services = {xserver = {windowManager = {session = κ;};};};
6+ ζ ->
7+ { environment = {systemPackages = [η];};
8+ services = {xserver = {windowManager = {session = θ;};};};
129 } ->
13− λ,
14− γ.mkOption = {default = Bool; description = String; type = μ;} -> ν,
15− γ.singleton = {name = String; start = String;} -> κ,
16− γ.types = ξ,
17− δ.fvwm = ο,
18− ο.override = {gestures = π;} -> ι,
19− ζ.gestures = π,
20− ε.xserver = ρ,
21− ρ.windowManager = σ,
22− σ.fvwm = τ,
23− τ.enable = θ,
24− ξ.bool = μ
10+ ι,
11+ γ.mkOption = {default = Bool; description = String; type = κ;} -> λ,
12+ γ.singleton = {name = String; start = String;} -> θ,
13+ γ.types = μ,
14+ ν.override = {gestures = ξ;} -> η,
15+ β.enable = ζ,
16+ ο.windowManager = α,
17+ π.xserver = ο,
18+ ρ.services = π,
19+ δ.gestures = ξ,
20+ μ.bool = κ,
21+ σ.fvwm = ν
2522) =>
26−α ->
27−{ config = λ;
23+{config = α; lib = γ; pkgs = ν;} ->
24+{ config = ι;
2825 options =
2926 { services =
30− {xserver = {windowManager = {fvwm = {enable = η; gestures = ν;};};};};
27+ {xserver = {windowManager = {fvwm = {enable = ε; gestures = λ;};};};};
3128 };
3229}
test/golden/importless/garbage-pools.txt+4−4
@@ -1,11 +1,11 @@
1−∀ β γ.
2−(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
1+∀ β.
2+{fetchurl = {sha256 = String; url = String;} -> β;} ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. [α];
5+ deps = ∀ α. α;
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
9− src = γ;
9+ src = β;
1010 version = String;
1111}
test/golden/importless/gateone.txt+36−40
@@ -1,62 +1,58 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.ids = ε,
6− β.services = ζ,
7− γ.coreutils = η,
8− γ.gateone = θ,
9− γ.mkEnableOption = String -> ι,
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β2.
2+( α.gateone = β,
3+ γ.coreutils = δ,
4+ γ.gateone = ε,
5+ γ.mkEnableOption = String -> ζ,
106 γ.mkIf =
11− κ ->
12− { environment = {systemPackages = [θ];};
7+ η ->
8+ { environment = {systemPackages = [ε];};
139 systemd =
1410 { services =
1511 { gateone =
1612 { description = String;
17− path = [η];
13+ path = [δ];
1814 preStart = String;
1915 requires = [String];
2016 serviceConfig =
2117 { ExecStart = String;
2218 Group = String;
2319 User = String;
24− WorkingDirectory = λ;
20+ WorkingDirectory = θ;
2521 };
2622 wantedBy = [String];
2723 };
2824 };
2925 };
3026 users =
31− { groups = {gateone = {gid = μ;};};
32− users = {gateone = {description = String; home = ν; uid = ξ;};};
27+ { groups = {gateone = {gid = ι;};};
28+ users = {gateone = {description = String; home = κ; uid = λ;};};
3329 };
3430 } ->
35− ο,
36− γ.mkOption = {default = String; description = String; type = π;} -> ρ,
37− γ.nix = η,
38− γ.openssh = η,
39− γ.procps = η,
40− γ.pythonPackages = σ,
41− γ.types = τ,
42− δ.cacert = θ,
43− δ.coreutils = θ,
44− δ.openssh = θ,
45− δ.procps = θ,
46− δ.pythonPackages = υ,
47− ζ.gateone = φ,
48− φ.enable = κ,
49− φ.settingsDir = λ,
50− σ.gateone = η,
51− ε.gids = χ,
52− χ.gateone = μ,
53− ψ.uids = ω,
54− ω.gateone = ξ,
55− τ.path = π,
56− α1.path = β1
31+ μ,
32+ γ.mkOption = {default = String; description = String; type = ν;} -> ξ,
33+ γ.nix = δ,
34+ γ.openssh = δ,
35+ γ.procps = δ,
36+ γ.pythonPackages = ο,
37+ γ.types = π,
38+ ρ.cacert = ε,
39+ ρ.coreutils = ε,
40+ ρ.openssh = ε,
41+ ρ.procps = ε,
42+ ρ.pythonPackages = σ,
43+ β.enable = η,
44+ β.settingsDir = θ,
45+ τ.services = α,
46+ υ.gids = α,
47+ φ.ids = υ,
48+ χ.uids = α,
49+ ψ.ids = χ,
50+ ο.gateone = δ,
51+ π.path = ν,
52+ ω.path = α1
5753) =>
58−α ->
59−{ config = ο;
54+{config = α; lib = γ; pkgs = ρ;} ->
55+{ config = μ;
6056 options =
61− {services = {gateone = {enable = ι; pidDir = ρ; settingsDir = γ1;};};};
57+ {services = {gateone = {enable = ζ; pidDir = ξ; settingsDir = β2;};};};
6258}
test/golden/importless/gc.txt+2−2
@@ -18,9 +18,9 @@
1818 θ.maintainers = κ,
1919 θ.offline = δ,
2020 θ.rev = λ,
21− μ.meta = ν,
21+ μ.platforms = ε,
2222 ι.asl20 = γ,
23− ν.platforms = ε
23+ ν.meta = μ
2424) =>
2525{ coreutils = ξ;
2626 docker = μ;
test/golden/importless/gcab.txt+2−2
@@ -1,2 +1,2 @@
1−∀ α β γ δ.
2−(α.makeInstalledTest = {tested = β;} -> γ, α.pkgs = δ, δ.gcab = β) => α -> γ
1+∀ α β γ.
2+(α.gcab = β) => {makeInstalledTest = {tested = β;} -> γ; pkgs = α;} -> γ
test/golden/importless/gdal-1_11.txt+28−26
@@ -1,49 +1,51 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ.
2−( α.lib = β,
2+( α.marcweber = β,
3+ α.mit = γ,
34 α.mkDerivation =
45 { NIX_CFLAGS_COMPILE = String;
5− buildInputs = [γ];
6+ buildInputs = [δ];
67 configureFlags = [String];
78 enableParallelBuilding = Bool;
89 hardeningDisable = [String];
910 meta =
1011 { description = String;
1112 homepage = String;
12− license = δ;
13− maintainers = [ε];
14− platforms = [ζ];
13+ license = γ;
14+ maintainers = [β];
15+ platforms = [ε];
1516 };
16− patches = [String];
17+ patches = [Path];
1718 pname = String;
1819 preBuild = String;
1920 preConfigure = String;
20− src = η;
21+ src = ζ;
2122 version = String;
2223 } ->
23− θ,
24− ι.numpy = γ,
25− β.licenses = κ,
26− κ.mit = δ,
27− λ.maintainers = μ,
28− μ.marcweber = ε,
29− ν.platforms = ξ,
30− ξ.darwin = [ζ],
31− ξ.linux = [ζ]
24+ η,
25+ α.platforms = θ,
26+ ι.numpy = δ,
27+ κ.licenses = α,
28+ λ.lib = κ,
29+ μ.maintainers = α,
30+ ν.lib = μ,
31+ θ.darwin = [ε],
32+ θ.linux = [ε],
33+ ξ.lib = α
3234) =>
33−{ fetchurl = {sha256 = String; url = String;} -> η;
35+{ fetchurl = {sha256 = String; url = String;} -> ζ;
3436 geos = ο;
35− libgeotiff = γ;
36− libjpeg = γ;
37− libpng = γ;
38− libtiff = γ;
37+ libgeotiff = δ;
38+ libjpeg = δ;
39+ libpng = δ;
40+ libtiff = δ;
3941 mysql57 = π;
40− openssl = γ;
42+ openssl = δ;
4143 postgresql = ρ;
42− proj = γ;
43− python = γ;
44+ proj = δ;
45+ python = δ;
4446 pythonPackages = ι;
4547 stdenv = α;
46− unzip = γ;
48+ unzip = δ;
4749 zlib = σ;
4850} ->
49−θ
51+η
test/golden/importless/gdk-pixbuf.txt+18−21
@@ -1,25 +1,22 @@
1−∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ.
2−( β.config = γ,
3− β.lib = δ,
4− β.pkgs = ε,
5− γ.services = ζ,
6− δ.cfg = η,
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ.
2+( β.gdk-pixbuf = γ,
3+ δ.cfg = ε,
74 δ.mkIf =
85 Bool ->
9− {environment = {variables = {GDK_PIXBUF_MODULE_FILE = String;};};} -> θ,
10− δ.mkOption = {default = ∀ α. [α]; description = String; type = ι;} -> κ,
11− δ.types = λ,
12− δ.unique = [μ] -> ν,
13− ε.gdk-pixbuf = μ,
14− ε.runCommand = String -> {preferLocalBuild = Bool;} -> String -> ξ,
15− η.modulePackages = [μ],
16− ζ.xserver = ο,
17− ο.gdk-pixbuf = π,
18− π.modulePackages = [ρ],
19− λ.listOf = σ -> ι,
20− τ.package = σ
6+ {environment = {variables = {GDK_PIXBUF_MODULE_FILE = String;};};} -> ζ,
7+ δ.mkOption = {default = ∀ α. α; description = String; type = η;} -> θ,
8+ δ.types = ι,
9+ δ.unique = [κ] -> λ,
10+ μ.gdk-pixbuf = κ,
11+ μ.runCommand = String -> {preferLocalBuild = Bool;} -> String -> ν,
12+ γ.modulePackages = ξ,
13+ ο.xserver = β,
14+ π.services = ο,
15+ ε.modulePackages = [κ],
16+ ι.listOf = ρ -> η,
17+ σ.package = ρ
2118) =>
22−β ->
23−{ config = θ;
24− options = {services = {xserver = {gdk-pixbuf = {modulePackages = κ;};};};};
19+{config = β; lib = δ; pkgs = μ;} ->
20+{ config = ζ;
21+ options = {services = {xserver = {gdk-pixbuf = {modulePackages = θ;};};};};
2522}
test/golden/importless/gdomap.txt+12−14
@@ -1,27 +1,25 @@
1−∀ α β γ δ ε ζ η θ ι κ λ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
6− γ.mkEnableOption = String -> ζ,
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.enable = β,
3+ γ.mkEnableOption = String -> δ,
74 γ.mkIf =
8− η ->
5+ β ->
96 { systemd =
107 { services =
118 { gdomap =
129 { after = [String];
1310 description = String;
14− path = [θ];
11+ path = [ε];
1512 serviceConfig = {ExecStart = String;};
1613 wantedBy = [String];
1714 };
1815 };
1916 };
2017 } ->
21− ι,
22− δ.gnustep = κ,
23− ε.gdomap = λ,
24− λ.enable = η,
25− κ.base = θ
18+ ζ,
19+ η.base = ε,
20+ θ.gdomap = α,
21+ ι.services = θ,
22+ κ.gnustep = η
2623) =>
27−α -> {config = ι; options = {services = {gdomap = {enable = ζ;};};};}
24+{config = α; lib = γ; pkgs = η;} ->
25+{config = ζ; options = {services = {gdomap = {enable = δ;};};};}
test/golden/importless/geary.txt+18−21

This diff is too big to show here.

test/golden/importless/gemset-beta.txt+36−36

This diff is too big to show here.

test/golden/importless/gemset_libvirt.txt+15−15

This diff is too big to show here.

test/golden/importless/generations-dir.txt+32−39

This diff is too big to show here.

test/golden/importless/generatorrunner.txt+20−19

This diff is too big to show here.

test/golden/importless/generic-builder.txtdeleted−36

This diff is too big to show here.

test/golden/importless/generic-stack-builder.txtdeleted−45

This diff is too big to show here.

test/golden/importless/generic-v3.txt+51−45

This diff is too big to show here.

test/golden/importless/generic.txt+35−33

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/gerbil-crypto.txt+20−20

This diff is too big to show here.

test/golden/importless/gerbil-ethereum.txt+20−20

This diff is too big to show here.

test/golden/importless/gerbil-persist.txt+19−19

This diff is too big to show here.

test/golden/importless/gerbil-poo.txt+18−18

This diff is too big to show here.

test/golden/importless/gerbil-utils.txt+14−14

This diff is too big to show here.

test/golden/importless/ghcjs-base.txt+2−2

This diff is too big to show here.

test/golden/importless/ghostscript.txt+9−11

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/gjs.txt+5−6

This diff is too big to show here.

test/golden/importless/glfw.txt+6−6

This diff is too big to show here.

test/golden/importless/glib-networking.txt+19−22

This diff is too big to show here.

test/golden/importless/glib-testing.txt+2−6

This diff is too big to show here.

test/golden/importless/global-vars.txt+4−4

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/gnome-initial-setup.txt+27−30

This diff is too big to show here.

test/golden/importless/gnome-keyring.txt+26−29

This diff is too big to show here.

test/golden/importless/gnome-online-accounts.txt+21−24

This diff is too big to show here.

test/golden/importless/gnome-online-miners.txt+23−26

This diff is too big to show here.

test/golden/importless/gnome-photos.txt+22−21

This diff is too big to show here.

test/golden/importless/gnome-remote-desktop.txt+18−21

This diff is too big to show here.

test/golden/importless/gnome-user-share.txt+19−22

This diff is too big to show here.

test/golden/importless/gnu.txt+20−23

This diff is too big to show here.

test/golden/importless/go-ethereum.txt+10−9

This diff is too big to show here.

test/golden/importless/go-shadowsocks2.txt+14−17

This diff is too big to show here.

test/golden/importless/google_oslogin.txt+13−15

This diff is too big to show here.

test/golden/importless/gphoto2.txt+19−22

This diff is too big to show here.

test/golden/importless/graphene.txt+2−2

This diff is too big to show here.

test/golden/importless/graphical.txt+3−3

This diff is too big to show here.

test/golden/importless/graphite2.txt+5−4

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/graphviz-2.0.txt+13−12

This diff is too big to show here.

test/golden/importless/graphviz.txt+6−6

This diff is too big to show here.

test/golden/importless/greenclip.txt+16−19

This diff is too big to show here.

test/golden/importless/gsl-1_16.txt+17−15

This diff is too big to show here.

test/golden/importless/gsm.txt+6−5

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/gtk-greeter.txt+2−1

This diff is too big to show here.

test/golden/importless/gtk-icon-cache.txt+12−15

This diff is too big to show here.

test/golden/importless/gui.txt+24−23

This diff is too big to show here.

test/golden/importless/gwenview.txt+3−3

This diff is too big to show here.

test/golden/importless/hamster.txt+17−19

This diff is too big to show here.

test/golden/importless/hamt.txt+6−6

This diff is too big to show here.

test/golden/importless/hdaps.txt+12−14

This diff is too big to show here.

test/golden/importless/headless.txt+2−2

This diff is too big to show here.

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

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.txt+22−25

This diff is too big to show here.

test/golden/importless/hezarfen.txt+6−6

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.txt+1−1

This diff is too big to show here.

test/golden/importless/hidepid.txt+19−21

This diff is too big to show here.

test/golden/importless/hls-ghcide.txt+2−2

This diff is too big to show here.

test/golden/importless/hpsa.txt+24−27

This diff is too big to show here.

test/golden/importless/hrtime.txt+6−6

This diff is too big to show here.

test/golden/importless/html.txt+6−6

This diff is too big to show here.

test/golden/importless/http-body.txtdeleted−37

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/http4idris.txt+6−6

This diff is too big to show here.

test/golden/importless/hu_dot_dwim_dot_asdf.txtdeleted−11

This diff is too big to show here.

test/golden/importless/hu_dot_dwim_dot_stefil.txtdeleted−16

This diff is too big to show here.

test/golden/importless/hunchentoot.txtdeleted−34

This diff is too big to show here.

test/golden/importless/hyperv-guest.txt+28−30

This diff is too big to show here.

test/golden/importless/i2p.txt+15−18

This diff is too big to show here.

test/golden/importless/iaia.txt+6−6

This diff is too big to show here.

test/golden/importless/ibus.txt+6−7

This diff is too big to show here.

test/golden/importless/icewm.txt+16−19

This diff is too big to show here.

test/golden/importless/icons.txt+16−18

This diff is too big to show here.

test/golden/importless/idna.txtdeleted−14

This diff is too big to show here.

test/golden/importless/idrishighlighter.txt+6−6

This diff is too big to show here.

test/golden/importless/idrisscript.txt+6−6

This diff is too big to show here.

test/golden/importless/ieee-floats.txtdeleted−12

This diff is too big to show here.

test/golden/importless/iftop.txt+12−14

This diff is too big to show here.

test/golden/importless/iio.txt+16−18

This diff is too big to show here.

test/golden/importless/illum.txt+11−13

This diff is too big to show here.

test/golden/importless/imapfilter.txt+9−7

This diff is too big to show here.

test/golden/importless/indents.txt+2−2

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/init-script.txt+17−20

This diff is too big to show here.

test/golden/importless/integrations-core.txtdeleted−29

This diff is too big to show here.

test/golden/importless/intel-2200bg.txt+10−12

This diff is too big to show here.

test/golden/importless/intel-microcode.txt+13−16

This diff is too big to show here.

test/golden/importless/introspect-environment.txt+4−4

This diff is too big to show here.

test/golden/importless/iolib.txtdeleted−27

This diff is too big to show here.

test/golden/importless/iolib_dot_asdf.txtdeleted−11

This diff is too big to show here.

test/golden/importless/iolib_dot_base.txtdeleted−18

This diff is too big to show here.

test/golden/importless/iolib_dot_common-lisp.txtdeleted−16

This diff is too big to show here.

test/golden/importless/iolib_dot_conf.txtdeleted−15

This diff is too big to show here.

test/golden/importless/iolib_dot_grovel.txtdeleted−23

This diff is too big to show here.

test/golden/importless/iotop.txt+9−11

This diff is too big to show here.

test/golden/importless/ipkgparser.txt+2−2

This diff is too big to show here.

test/golden/importless/iproute2.txt+25−29

This diff is too big to show here.

test/golden/importless/ironclad.txtdeleted−18

This diff is too big to show here.

test/golden/importless/irqbalance.txt+12−14

This diff is too big to show here.

test/golden/importless/iterate.txt+4−4

This diff is too big to show here.

test/golden/importless/iwd.txt+22−24

This diff is too big to show here.

test/golden/importless/ixf.txtdeleted−23

This diff is too big to show here.

test/golden/importless/janePackage.txt+13−19

This diff is too big to show here.

test/golden/importless/janePackage_0_12.txt+13−18

This diff is too big to show here.

test/golden/importless/janePackage_0_13.txt+13−18

This diff is too big to show here.

test/golden/importless/java.txt+13−16

This diff is too big to show here.

test/golden/importless/jdk-darwin-base.txt+11−10

This diff is too big to show here.

test/golden/importless/jgrpp.txt+7−6

This diff is too big to show here.

test/golden/importless/jheiling-extras.txt+6−6

This diff is too big to show here.

test/golden/importless/jheiling-js.txt+6−6

This diff is too big to show here.

test/golden/importless/jonathan.txtdeleted−29

This diff is too big to show here.

test/golden/importless/js-build-tools.txt+1−1

This diff is too big to show here.

test/golden/importless/js.txt+6−6

This diff is too big to show here.

test/golden/importless/json-exporter.txt+1−1

This diff is too big to show here.

test/golden/importless/json.txt+5−5

This diff is too big to show here.

test/golden/importless/jwm.txt+16−19

This diff is too big to show here.

test/golden/importless/kactivities-stats.txt+2−2

This diff is too big to show here.

test/golden/importless/kactivities.txt+2−2

This diff is too big to show here.

test/golden/importless/kak-fzf.txt+19−18

This diff is too big to show here.

test/golden/importless/kak-plumb.txt+21−20

This diff is too big to show here.

test/golden/importless/kalarm.txt+2−2

This diff is too big to show here.

test/golden/importless/kapidox.txt+2−2

This diff is too big to show here.

test/golden/importless/karchive.txtdeleted−18

This diff is too big to show here.

test/golden/importless/kate.txt+3−3

This diff is too big to show here.

test/golden/importless/kbdlight.txt+11−13

This diff is too big to show here.

test/golden/importless/kbookmarks.txt+2−2

This diff is too big to show here.

test/golden/importless/kcalc.txt+5−5

This diff is too big to show here.

test/golden/importless/kcalendarcore.txt+2−2

This diff is too big to show here.

test/golden/importless/kcharselect.txt+5−5

This diff is too big to show here.

test/golden/importless/kcodecs.txtdeleted−17

This diff is too big to show here.

test/golden/importless/kcolorchooser.txt+3−3

This diff is too big to show here.

test/golden/importless/kcompletion.txt+2−2

This diff is too big to show here.

test/golden/importless/kconfig.txtdeleted−15

This diff is too big to show here.

test/golden/importless/kcontacts.txt+2−2

This diff is too big to show here.

test/golden/importless/kcoreaddons.txtdeleted−16

This diff is too big to show here.

test/golden/importless/kcrash.txt+2−2

This diff is too big to show here.

test/golden/importless/kdbusaddons.txtdeleted−16

This diff is too big to show here.

test/golden/importless/kdebugsettings.txt+4−4

This diff is too big to show here.

test/golden/importless/kdeclarative.txt+2−2

This diff is too big to show here.

test/golden/importless/kdecoration.txtdeleted−15

This diff is too big to show here.

test/golden/importless/kded.txt+2−2

This diff is too big to show here.

test/golden/importless/kdegraphics-mobipocket.txt+5−5

This diff is too big to show here.

test/golden/importless/kdegraphics-thumbnailers.txt+5−5

This diff is too big to show here.

test/golden/importless/kdenetwork-filesharing.txt+7−6

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/kdesignerplugin.txt+2−2

This diff is too big to show here.

test/golden/importless/kdevelop-pg-qt.txt+20−19

This diff is too big to show here.

test/golden/importless/kdf.txt+3−3

This diff is too big to show here.

test/golden/importless/kdnssd.txtdeleted−17

This diff is too big to show here.

test/golden/importless/kemoticons.txt+2−2

This diff is too big to show here.

test/golden/importless/kexec.txt+16−17

This diff is too big to show here.

test/golden/importless/keybase.txt+13−15

This diff is too big to show here.

test/golden/importless/keylight.txt+5−5

This diff is too big to show here.

test/golden/importless/kfind.txt+5−5

This diff is too big to show here.

test/golden/importless/kgeography.txt+2−2

This diff is too big to show here.

test/golden/importless/kgpg.txt+5−5

This diff is too big to show here.

test/golden/importless/kguiaddons.txtdeleted−16

This diff is too big to show here.

test/golden/importless/khtml.txt+2−2

This diff is too big to show here.

test/golden/importless/ki18n.txtdeleted−18

This diff is too big to show here.

test/golden/importless/kidletime.txtdeleted−15

This diff is too big to show here.

test/golden/importless/kimageformats.txt+2−2

This diff is too big to show here.

test/golden/importless/kio-extras.txt+3−3

This diff is too big to show here.

test/golden/importless/kipi-plugins.txt+3−3

This diff is too big to show here.

test/golden/importless/kirigami2.txtdeleted−15

This diff is too big to show here.

test/golden/importless/kitemmodels.txtdeleted−14

This diff is too big to show here.

test/golden/importless/kitemviews.txtdeleted−16

This diff is too big to show here.

test/golden/importless/kitinerary.txt+5−5

This diff is too big to show here.

test/golden/importless/kjobwidgets.txt+2−2

This diff is too big to show here.

test/golden/importless/kjs.txt+2−2

This diff is too big to show here.

test/golden/importless/kjsembed.txt+2−2

This diff is too big to show here.

test/golden/importless/klogd.txt+19−21

This diff is too big to show here.

test/golden/importless/kmediaplayer.txt+2−2

This diff is too big to show here.

test/golden/importless/kmime.txt+3−3

This diff is too big to show here.

test/golden/importless/kmix.txt+3−3

This diff is too big to show here.

test/golden/importless/kmod.txt+24−24

This diff is too big to show here.

test/golden/importless/kmplot.txt+3−3

This diff is too big to show here.

test/golden/importless/kmrcl.txt+4−4

This diff is too big to show here.

test/golden/importless/knewstuff.txt+2−2

This diff is too big to show here.

test/golden/importless/knotifications.txt+2−2

This diff is too big to show here.

test/golden/importless/knotifyconfig.txt+2−2

This diff is too big to show here.

test/golden/importless/kodi.txt+16−19

This diff is too big to show here.

test/golden/importless/kolourpaint.txt+5−5

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/kparts.txt+2−2

This diff is too big to show here.

test/golden/importless/kpeople.txt+2−2

This diff is too big to show here.

test/golden/importless/kpkpass.txt+5−5

This diff is too big to show here.

test/golden/importless/kplotting.txtdeleted−15

This diff is too big to show here.

test/golden/importless/kpty.txt+2−2

This diff is too big to show here.

test/golden/importless/kqtquickcharts.txt+3−3

This diff is too big to show here.

test/golden/importless/kquickcharts.txt+2−2

This diff is too big to show here.

test/golden/importless/kross.txt+2−2

This diff is too big to show here.

test/golden/importless/kruler.txt+3−3

This diff is too big to show here.

test/golden/importless/krunner.txt+2−2

This diff is too big to show here.

test/golden/importless/ktexteditor.txt+2−2

This diff is too big to show here.

test/golden/importless/ktextwidgets.txt+2−2

This diff is too big to show here.

test/golden/importless/ktouch.txt+5−5

This diff is too big to show here.

test/golden/importless/kunitconversion.txt+2−2

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/kwallet.txt+2−2

This diff is too big to show here.

test/golden/importless/kwayland.txtdeleted−19

This diff is too big to show here.

test/golden/importless/kwidgetsaddons.txtdeleted−16

This diff is too big to show here.

test/golden/importless/kxmlgui.txt+2−2

This diff is too big to show here.

test/golden/importless/kxmlrpcclient.txt+2−2

This diff is too big to show here.

test/golden/importless/labs_consol_de.txt+27−26

This diff is too big to show here.

test/golden/importless/lack-component.txt+4−4

This diff is too big to show here.

test/golden/importless/lack-middleware-backtrace.txtdeleted−11

This diff is too big to show here.

test/golden/importless/lack-util.txtdeleted−17

This diff is too big to show here.

test/golden/importless/lack.txtdeleted−19

This diff is too big to show here.

test/golden/importless/ladspah.txt+13−11

This diff is too big to show here.

test/golden/importless/layout-manager.txt+24−23

This diff is too big to show here.

test/golden/importless/ledger.txt+9−11

This diff is too big to show here.

test/golden/importless/leftwm.txt+16−19

This diff is too big to show here.

test/golden/importless/legacy.txt+10−8

This diff is too big to show here.

test/golden/importless/lens.txt+6−6

This diff is too big to show here.

test/golden/importless/let-plus.txtdeleted−17

This diff is too big to show here.

test/golden/importless/lev.txtdeleted−17

This diff is too big to show here.

test/golden/importless/lfarm-client.txtdeleted−22

This diff is too big to show here.

test/golden/importless/lfarm-common.txtdeleted−20

This diff is too big to show here.

test/golden/importless/lfarm-server.txtdeleted−21

This diff is too big to show here.

test/golden/importless/lfarm-ssl.txtdeleted−26

This diff is too big to show here.

test/golden/importless/libc++abi.txt+31−27

This diff is too big to show here.

test/golden/importless/libcroco.txt+2−1

This diff is too big to show here.

test/golden/importless/libdislocator.txt+15−13

This diff is too big to show here.

test/golden/importless/libgdata.txt+6−7

This diff is too big to show here.

test/golden/importless/libjcat.txt+2−2

This diff is too big to show here.

test/golden/importless/libkdcraw.txt+3−3

This diff is too big to show here.

test/golden/importless/libkexiv2.txt+3−3

This diff is too big to show here.

test/golden/importless/libkipi.txt+3−3

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/liboping.txt+12−14

This diff is too big to show here.

test/golden/importless/library.txt+22−21

This diff is too big to show here.

test/golden/importless/libtokencap.txt+15−13

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/libunwind.txt+14−14

This diff is too big to show here.

test/golden/importless/libusb1.txt+11−8

This diff is too big to show here.

test/golden/importless/libxkbcommon_7.txt+7−6

This diff is too big to show here.

test/golden/importless/libxmlb.txt+2−2

This diff is too big to show here.

test/golden/importless/libxpdf.txt+3−3

This diff is too big to show here.

test/golden/importless/licenses.txt+38−26

This diff is too big to show here.

test/golden/importless/lift.txt+4−4

This diff is too big to show here.

test/golden/importless/light.txt+14−16

This diff is too big to show here.

test/golden/importless/lightyear.txt+3−3

This diff is too big to show here.

test/golden/importless/limesdr.txt+6−5

This diff is too big to show here.

test/golden/importless/linux-4.14.txtdeleted−23

This diff is too big to show here.

test/golden/importless/linux-4.19.txtdeleted−23

This diff is too big to show here.

test/golden/importless/linux-4.4.txtdeleted−10

This diff is too big to show here.

test/golden/importless/linux-4.9.txtdeleted−10

This diff is too big to show here.

test/golden/importless/linux-5.4.txtdeleted−23

This diff is too big to show here.

test/golden/importless/linux-5.8.txtdeleted−23

This diff is too big to show here.

test/golden/importless/linux-5.9.txtdeleted−23

This diff is too big to show here.

test/golden/importless/linux-hardkernel-4.14.txtdeleted−22

This diff is too big to show here.

test/golden/importless/linux-testing-bcachefs.txtdeleted−27

This diff is too big to show here.

test/golden/importless/linux-zen.txtdeleted−19

This diff is too big to show here.

test/golden/importless/linux.txt+8−7

This diff is too big to show here.

test/golden/importless/liquidsoap.txtnew file+66

This diff is too big to show here.

test/golden/importless/lisp-namespace.txtdeleted−11

This diff is too big to show here.

test/golden/importless/lisp-unit2.txtdeleted−22

This diff is too big to show here.

test/golden/importless/list-of.txtdeleted−14

This diff is too big to show here.

test/golden/importless/lld.txt+15−14

This diff is too big to show here.

test/golden/importless/lldb.txt+22−18

This diff is too big to show here.

test/golden/importless/lldpd.txt+20−23

This diff is too big to show here.

test/golden/importless/llvm.txt+24−21

This diff is too big to show here.

test/golden/importless/local-time.txtdeleted−18

This diff is too big to show here.

test/golden/importless/locales.txt+3−3

This diff is too big to show here.

test/golden/importless/localtime.txt+16−18

This diff is too big to show here.

test/golden/importless/lock-fancy.txt+24−23

This diff is too big to show here.

test/golden/importless/lock-kernel-modules.txt+24−26

This diff is too big to show here.

test/golden/importless/log4cl.txtdeleted−17

This diff is too big to show here.

test/golden/importless/logic.txt+6−6

This diff is too big to show here.

test/golden/importless/logkeys.txt+13−16

This diff is too big to show here.

test/golden/importless/logmein-hamachi.txt+13−15

This diff is too big to show here.

test/golden/importless/lparallel.txtdeleted−15

This diff is too big to show here.

test/golden/importless/lquery.txtdeleted−19

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/luarocks-nix.txt+1−1

This diff is too big to show here.

test/golden/importless/lumina.txt+22−23

This diff is too big to show here.

test/golden/importless/lvm2.txt+12−12

This diff is too big to show here.

test/golden/importless/lwm.txt+16−19

This diff is too big to show here.

test/golden/importless/lwt-unix.txt+3−3

This diff is too big to show here.

test/golden/importless/lxcfs.txt+16−19

This diff is too big to show here.

test/golden/importless/lxmenu-data.txt+12−11

This diff is too big to show here.

test/golden/importless/m32edit.txtdeleted−12

This diff is too big to show here.

test/golden/importless/machine.txt+4−4

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/macvim.txt+2−2

This diff is too big to show here.

test/golden/importless/magic-wormhole-mailbox-server.txt+16−19

This diff is too big to show here.

test/golden/importless/mail-exporter.txt+1−1

This diff is too big to show here.

test/golden/importless/mailhog.txt+15−17

This diff is too big to show here.

test/golden/importless/mailpile.txt+26−29

This diff is too big to show here.

test/golden/importless/mainline.txtdeleted−4

This diff is too big to show here.

test/golden/importless/maintainer-list.txt+1705−1490

This diff is too big to show here.

test/golden/importless/make-channel.txt+8−8

This diff is too big to show here.

test/golden/importless/make-dbus-conf.txt+2−2

This diff is too big to show here.

test/golden/importless/make-ext4-fs.txt+15−15

This diff is too big to show here.

test/golden/importless/make-peer.txt+13−12

This diff is too big to show here.

test/golden/importless/make-squashfs.txt+1−1

This diff is too big to show here.

test/golden/importless/malcontent.txt+15−17

This diff is too big to show here.

test/golden/importless/malloc.txt+19−22

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/map-set.txt+4−4

This diff is too big to show here.

test/golden/importless/mapping.txt+6−6

This diff is too big to show here.

test/golden/importless/marshal.txt+4−4

This diff is too big to show here.

test/golden/importless/masq.txt+6−6

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/maven-build.txt+38−30

This diff is too big to show here.

test/golden/importless/mavenPlugins.txt+18−18

This diff is too big to show here.

test/golden/importless/mcelog.txt+17−20

This diff is too big to show here.

test/golden/importless/md5.txt+4−4

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/menus.txt+15−17

This diff is too big to show here.

test/golden/importless/metabang-bind.txt+4−4

This diff is too big to show here.

test/golden/importless/metacity.txt+17−20

This diff is too big to show here.

test/golden/importless/metaocaml-3.09.txt+4−4

This diff is too big to show here.

test/golden/importless/metatilities-base.txt+4−4

This diff is too big to show here.

test/golden/importless/mhd.txt+6−6

This diff is too big to show here.

test/golden/importless/mime.txt+18−21

This diff is too big to show here.

test/golden/importless/minimal.txt+6−10

This diff is too big to show here.

test/golden/importless/mininet.txt+22−24

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/misc-extensions.txt+4−4

This diff is too big to show here.

test/golden/importless/mjpg-streamer.txt+28−32

This diff is too big to show here.

test/golden/importless/mk-string-metrics.txt+4−4

This diff is too big to show here.

test/golden/importless/moarvm.txt+9−8

This diff is too big to show here.

test/golden/importless/mod.txt+22−20

This diff is too big to show here.

test/golden/importless/modem-default.txt+2−2

This diff is too big to show here.

test/golden/importless/modemmanager-qt.txtdeleted−15

This diff is too big to show here.

test/golden/importless/modemmanager.txt+5−5

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.txt+1−1

This diff is too big to show here.

test/golden/importless/modules.txt+163−163

This diff is too big to show here.

test/golden/importless/mom.txt+23−26

This diff is too big to show here.

test/golden/importless/monit.txt+21−23

This diff is too big to show here.

test/golden/importless/moodle-utils.txt+21−23

This diff is too big to show here.

test/golden/importless/moptilities.txtdeleted−11

This diff is too big to show here.

test/golden/importless/mptcp-config.txt+3−3

This diff is too big to show here.

test/golden/importless/mspdebug.txtdeleted−55

This diff is too big to show here.

test/golden/importless/mssql.txtdeleted−20

This diff is too big to show here.

test/golden/importless/mstpd.txt+13−15

This diff is too big to show here.

test/golden/importless/mt19937.txt+4−4

This diff is too big to show here.

test/golden/importless/mtr.txt+15−17

This diff is too big to show here.

test/golden/importless/muchsync.txt+16−14

This diff is too big to show here.

test/golden/importless/mullvad-vpn.txt+19−22

This diff is too big to show here.

test/golden/importless/multi.txtdeleted−12

This diff is too big to show here.

test/golden/importless/multilib.txt+6−6

This diff is too big to show here.

test/golden/importless/multipath-tools.txt+10−10

This diff is too big to show here.

test/golden/importless/munge.txt+16−19

This diff is too big to show here.

test/golden/importless/mwm.txt+16−19

This diff is too big to show here.

test/golden/importless/mwprocapture.txt+20−21

This diff is too big to show here.

test/golden/importless/myway.txtdeleted−21

This diff is too big to show here.

test/golden/importless/nabi.txt+9−12

This diff is too big to show here.

test/golden/importless/nacl.txt+6−5

This diff is too big to show here.

test/golden/importless/named-readtables.txt+4−4

This diff is too big to show here.

test/golden/importless/nanonote.txt+10−10

This diff is too big to show here.

test/golden/importless/neard.txt+13−15

This diff is too big to show here.

test/golden/importless/net_dot_didierverna_dot_asdf-flv.txt+4−4

This diff is too big to show here.

test/golden/importless/netboot.txt+32−34

This diff is too big to show here.

test/golden/importless/networkmanager-qt.txtdeleted−15

This diff is too big to show here.

test/golden/importless/new-api.txt+7−6

This diff is too big to show here.

test/golden/importless/news-updater.txt+9−8

This diff is too big to show here.

test/golden/importless/nextcloud-exporter.txt+1−1

This diff is too big to show here.

test/golden/importless/nginxlog-exporter.txt+1−1

This diff is too big to show here.

test/golden/importless/nibbles.txtdeleted−12

This diff is too big to show here.

test/golden/importless/nix-generate-from-cpan.txt+7−6

This diff is too big to show here.

test/golden/importless/nixops-autoluks.txt+8−11

This diff is too big to show here.

test/golden/importless/nixops-v1_6_1.txt+19−19

This diff is too big to show here.

test/golden/importless/nixpkgs-lint.txt+10−9

This diff is too big to show here.

test/golden/importless/nm-applet.txt+16−19

This diff is too big to show here.

test/golden/importless/no-x-libs.txt+36−47

This diff is too big to show here.

test/golden/importless/node.txt+6−7

This diff is too big to show here.

test/golden/importless/not-detected.txt+3−3

This diff is too big to show here.

test/golden/importless/notion.txt+14−17

This diff is too big to show here.

test/golden/importless/novacomd.txt+16−19

This diff is too big to show here.

test/golden/importless/npm.txt+22−24

This diff is too big to show here.

test/golden/importless/nscd.txtnew file+60

This diff is too big to show here.

test/golden/importless/ntfs.txt+7−10

This diff is too big to show here.

test/golden/importless/nullidentdmod.txt+14−17

This diff is too big to show here.

test/golden/importless/nvidia-optimus.txt+17−18

This diff is too big to show here.

test/golden/importless/nw12.txt+43−43

This diff is too big to show here.

test/golden/importless/oauth2_proxy_nginx.txt+21−22

This diff is too big to show here.

test/golden/importless/obs-ndi.txt+1−1

This diff is too big to show here.

test/golden/importless/ocserv.txt+16−19

This diff is too big to show here.

test/golden/importless/ofono.txt+22−25

This diff is too big to show here.

test/golden/importless/oidentd.txt+19−21

This diff is too big to show here.

test/golden/importless/okular.txt+38−38

This diff is too big to show here.

test/golden/importless/openbox.txt+15−18

This diff is too big to show here.

test/golden/importless/openfire.txt+31−33

This diff is too big to show here.

test/golden/importless/openmp.txt+18−17

This diff is too big to show here.

test/golden/importless/openvpn_learnaddress.txt+18−17

This diff is too big to show here.

test/golden/importless/optima.txtdeleted−15

This diff is too big to show here.

test/golden/importless/org-generated.txt+4−4

This diff is too big to show here.

test/golden/importless/oroborus.txt+16−19

This diff is too big to show here.

test/golden/importless/osmosdr.txt+10−9

This diff is too big to show here.

test/golden/importless/ostree.txt+7−9

This diff is too big to show here.

test/golden/importless/otf.txt+15−13

This diff is too big to show here.

test/golden/importless/overlay.txt+9−9

This diff is too big to show here.

test/golden/importless/owamp.txt+9−11

This diff is too big to show here.

test/golden/importless/oxygen-icons5.txt+5−5

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/packagekit.txt+16−19

This diff is too big to show here.

test/golden/importless/pacman.txt+2−2

This diff is too big to show here.

test/golden/importless/pam_usb.txt+20−21

This diff is too big to show here.

test/golden/importless/parenscript.txtdeleted−16

This diff is too big to show here.

test/golden/importless/parse-declarations-1_dot_0.txt+4−4

This diff is too big to show here.

test/golden/importless/parse-number.txt+4−4

This diff is too big to show here.

test/golden/importless/parser.txt+9−9

This diff is too big to show here.

test/golden/importless/parted.txtdeleted−42

This diff is too big to show here.

test/golden/importless/passthru.txt+3−3

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/patricia.txt+6−6

This diff is too big to show here.

test/golden/importless/pcall-queue.txtdeleted−15

This diff is too big to show here.

test/golden/importless/pcall.txtdeleted−18

This diff is too big to show here.

test/golden/importless/pdf_sets.txt+13−13

This diff is too big to show here.

test/golden/importless/pdnsd.txt+23−26

This diff is too big to show here.

test/golden/importless/pekwm.txt+16−19

This diff is too big to show here.

test/golden/importless/perf.txt+12−10

This diff is too big to show here.

test/golden/importless/periods.txt+7−7

This diff is too big to show here.

test/golden/importless/permutations.txt+6−6

This diff is too big to show here.

test/golden/importless/persistenced.txt+10−10

This diff is too big to show here.

test/golden/importless/pfds.txt+6−6

This diff is too big to show here.

test/golden/importless/pflogsumm.txt+11−10

This diff is too big to show here.

test/golden/importless/pg_auto_failover.txt+8−8

This diff is too big to show here.

test/golden/importless/pg_bigm.txt+6−6

This diff is too big to show here.

test/golden/importless/pg_cron.txt+5−5

This diff is too big to show here.

test/golden/importless/pg_ed25519.txt+6−6

This diff is too big to show here.

test/golden/importless/pg_hll.txt+5−5

This diff is too big to show here.

test/golden/importless/pg_partman.txt+5−5

This diff is too big to show here.

test/golden/importless/pg_safeupdate.txt+4−4

This diff is too big to show here.

test/golden/importless/pg_similarity.txt+13−13

This diff is too big to show here.

test/golden/importless/pg_topn.txt+5−5

This diff is too big to show here.

test/golden/importless/pgjwt.txt+5−5

This diff is too big to show here.

test/golden/importless/pgloader.txtdeleted−74

This diff is too big to show here.

test/golden/importless/pgroonga.txt+5−5

This diff is too big to show here.

test/golden/importless/pgrouting.txt+6−6

This diff is too big to show here.

test/golden/importless/pipelinedb.txt+8−8

This diff is too big to show here.

test/golden/importless/pipes.txt+6−6

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/platform-flags.txt+14−20

This diff is too big to show here.

test/golden/importless/platform.txt+7−6

This diff is too big to show here.

test/golden/importless/plotinus.txt+16−19

This diff is too big to show here.

test/golden/importless/plpgsql_check.txt+6−6

This diff is too big to show here.

test/golden/importless/plump-dom.txtdeleted−11

This diff is too big to show here.

test/golden/importless/plump-lexer.txt+4−4

This diff is too big to show here.

test/golden/importless/plump-parser.txtdeleted−17

This diff is too big to show here.

test/golden/importless/plump.txtdeleted−16

This diff is too big to show here.

test/golden/importless/pony-stable.txt+14−12

This diff is too big to show here.

test/golden/importless/port.txtdeleted−59

This diff is too big to show here.

test/golden/importless/posix.txt+2−2

This diff is too big to show here.

test/golden/importless/postfix-exporter.txt+1−1

This diff is too big to show here.

test/golden/importless/postgis.txt+9−8

This diff is too big to show here.

test/golden/importless/postmodern.txtdeleted−27

This diff is too big to show here.

test/golden/importless/powerdns.txt+17−19

This diff is too big to show here.

test/golden/importless/powertop.txt+11−13

This diff is too big to show here.

test/golden/importless/ppx.txt+6−6

This diff is too big to show here.

test/golden/importless/pre-configure.txt+1−2

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/print-manager.txt+2−2

This diff is too big to show here.

test/golden/importless/prison.txtdeleted−17

This diff is too big to show here.

test/golden/importless/proc-parse.txtdeleted−16

This diff is too big to show here.

test/golden/importless/process-exporter.txt+1−1

This diff is too big to show here.

test/golden/importless/protobuf.txt+6−6

This diff is too big to show here.

test/golden/importless/protocols.txt+14−14

This diff is too big to show here.

test/golden/importless/prove-asdf.txt+4−4

This diff is too big to show here.

test/golden/importless/prove.txtdeleted−20

This diff is too big to show here.

test/golden/importless/ptester.txt+4−4

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/puri.txtdeleted−12

This diff is too big to show here.

test/golden/importless/purpose.txt+2−2

This diff is too big to show here.

test/golden/importless/py-configparser.txtdeleted−11

This diff is too big to show here.

test/golden/importless/pyblock.txt+9−9

This diff is too big to show here.

test/golden/importless/pykickstart.txt+2−2

This diff is too big to show here.

test/golden/importless/pyparted.txt+10−8

This diff is too big to show here.

test/golden/importless/qemu-guest-agent.txt+12−14

This diff is too big to show here.

test/golden/importless/qemu-guest.txt+3−3

This diff is too big to show here.

test/golden/importless/qemu.txtdeleted−49

This diff is too big to show here.

test/golden/importless/qmynd.txtdeleted−30

This diff is too big to show here.

test/golden/importless/qpaeq.txt+6−6

This diff is too big to show here.

test/golden/importless/qt-5.txt+18−16

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/qt5ct.txt+17−20

This diff is too big to show here.

test/golden/importless/qtModule.txt+41−38

This diff is too big to show here.

test/golden/importless/qtconnectivity.txt+2−2

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/qtile.txt+14−17

This diff is too big to show here.

test/golden/importless/qtlocation.txt+2−2

This diff is too big to show here.

test/golden/importless/qtspeech.txt+1−2

This diff is too big to show here.

test/golden/importless/qtwebengine.txt+115−113

This diff is too big to show here.

test/golden/importless/qtwebview.txt+7−6

This diff is too big to show here.

test/golden/importless/quantities.txt+5−5

This diff is too big to show here.

test/golden/importless/query-fs.txtdeleted−30

This diff is too big to show here.

test/golden/importless/quri.txtdeleted−18

This diff is too big to show here.

test/golden/importless/rabbitmq-exporter.txt+1−1

This diff is too big to show here.

test/golden/importless/racoon.txt+14−17

This diff is too big to show here.

test/golden/importless/raptor.txt+16−14

This diff is too big to show here.

test/golden/importless/raspberrypi-builder.txt+1−1

This diff is too big to show here.

test/golden/importless/rasqal.txt+27−25

This diff is too big to show here.

test/golden/importless/ratbagd.txt+13−15

This diff is too big to show here.

test/golden/importless/rationals.txt+2−2

This diff is too big to show here.

test/golden/importless/ratpoison.txt+16−19

This diff is too big to show here.

test/golden/importless/rdnssd.txt+20−23

This diff is too big to show here.

test/golden/importless/rds.txt+2−1

This diff is too big to show here.

test/golden/importless/rebar3-release.txt+63−41

This diff is too big to show here.

test/golden/importless/recursion_schemes.txt+6−6

This diff is too big to show here.

test/golden/importless/redis-exporter.txt+1−1

This diff is too big to show here.

test/golden/importless/redis.txt+2−2

This diff is too big to show here.

test/golden/importless/redland.txt+15−13

This diff is too big to show here.

test/golden/importless/refined.txt+6−6

This diff is too big to show here.

test/golden/importless/repmgr.txt+5−5

This diff is too big to show here.

test/golden/importless/require_exceptions.txt+8−8

This diff is too big to show here.

test/golden/importless/rfc2388.txt+4−4

This diff is too big to show here.

test/golden/importless/rng-mirage.txt+1−1

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/rngd.txt+14−16

This diff is too big to show here.

test/golden/importless/roboschool-fork.txt+17−15

This diff is too big to show here.

test/golden/importless/robustirc-bridge.txt+15−18

This diff is too big to show here.

test/golden/importless/rocs.txt+4−4

This diff is too big to show here.

test/golden/importless/rofi-pass.txt+25−23

This diff is too big to show here.

test/golden/importless/romkatv_libgit2.txt+8−7

This diff is too big to show here.

test/golden/importless/rove.txtdeleted−16

This diff is too big to show here.

test/golden/importless/rpcbind.txt+19−21

This diff is too big to show here.

test/golden/importless/rt.txt+4−4

This diff is too big to show here.

test/golden/importless/rtkit.txt+20−22

This diff is too big to show here.

test/golden/importless/ruby-packages.txt+253−253

This diff is too big to show here.

test/golden/importless/ruby-version.txt+1−1

This diff is too big to show here.

test/golden/importless/rustfmt.txt+21−20

This diff is too big to show here.

test/golden/importless/rxe.txt+18−21

This diff is too big to show here.

test/golden/importless/rygel.txt+24−27

This diff is too big to show here.

test/golden/importless/s-sql.txtdeleted−23

This diff is too big to show here.

test/golden/importless/s-sysdeps.txt+4−4

This diff is too big to show here.

test/golden/importless/s-xml.txt+4−4

This diff is too big to show here.

test/golden/importless/sabnzbd.txt+18−22

This diff is too big to show here.

test/golden/importless/safeeyes.txt+12−14

This diff is too big to show here.

test/golden/importless/sage-env.txt+1−1

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/salza2.txt+4−4

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/sawfish.txt+16−19

This diff is too big to show here.

test/golden/importless/sbv-7.13.txt+2−2

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/screen.txt+12−14

This diff is too big to show here.

test/golden/importless/scripts.txt+15−14

This diff is too big to show here.

test/golden/importless/sdk-pkgs.txt+30−26

This diff is too big to show here.

test/golden/importless/sdl.txt+2−2

This diff is too big to show here.

test/golden/importless/sedutil.txt+11−13

This diff is too big to show here.

test/golden/importless/semidirect.txt+2−2

This diff is too big to show here.

test/golden/importless/serapeum.txtdeleted−44

This diff is too big to show here.

test/golden/importless/server.txt+20−23

This diff is too big to show here.

test/golden/importless/setoids.txt+2−2

This diff is too big to show here.

test/golden/importless/shadow.txt+35−35

This diff is too big to show here.

test/golden/importless/share.txt+13−13

This diff is too big to show here.

test/golden/importless/shared.txt+67−64

This diff is too big to show here.

test/golden/importless/shiboken.txtdeleted−43

This diff is too big to show here.

test/golden/importless/shutdown.txt+2−2

This diff is too big to show here.

test/golden/importless/sickgear.txt+17−16

This diff is too big to show here.

test/golden/importless/sickrage.txt+14−14

This diff is too big to show here.

test/golden/importless/simple-date.txtdeleted−18

This diff is too big to show here.

test/golden/importless/singularity.txt+14−17

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/slock.txt+13−15

This diff is too big to show here.

test/golden/importless/smallwm.txt+16−19

This diff is too big to show here.

test/golden/importless/smart-buffer.txtdeleted−17

This diff is too big to show here.

test/golden/importless/smlar.txt+6−6

This diff is too big to show here.

test/golden/importless/smproc.txt+6−6

This diff is too big to show here.

test/golden/importless/snippets.txt+6−6

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/sockets.txt+7−7

This diff is too big to show here.

test/golden/importless/softmaker_office.txtdeleted−15

This diff is too big to show here.

test/golden/importless/software_foundations.txt+2−2

This diff is too big to show here.

test/golden/importless/solid.txtdeleted−20

This diff is too big to show here.

test/golden/importless/sonnet.txtdeleted−16

This diff is too big to show here.

test/golden/importless/sounds.txt+16−19

This diff is too big to show here.

test/golden/importless/source-from-head-fun.txt+1−1

This diff is too big to show here.

test/golden/importless/spago.txt+2−2

This diff is too big to show here.

test/golden/importless/specdris.txt+2−2

This diff is too big to show here.

test/golden/importless/spectrwm.txt+14−17

This diff is too big to show here.

test/golden/importless/spice-vdagentd.txt+12−14

This diff is too big to show here.

test/golden/importless/split-sequence.txtdeleted−12

This diff is too big to show here.

test/golden/importless/spotify.txt+2−2

This diff is too big to show here.

test/golden/importless/spotifyd.txt+20−23

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/sqlite.txt+10−10

This diff is too big to show here.

test/golden/importless/squeezelite.txt+11−12

This diff is too big to show here.

test/golden/importless/ssh-keys.txt+3−3

This diff is too big to show here.

test/golden/importless/ssm-agent.txt+22−25

This diff is too big to show here.

test/golden/importless/stable.txtdeleted−4

This diff is too big to show here.

test/golden/importless/staging.txt+17−15

This diff is too big to show here.

test/golden/importless/standalone.txt+51−50

This diff is too big to show here.

test/golden/importless/startx.txt+19−22

This diff is too big to show here.

test/golden/importless/static-vectors.txtdeleted−21

This diff is too big to show here.

test/golden/importless/status.txt+25−24

This diff is too big to show here.

test/golden/importless/steam-hardware.txt+14−16

This diff is too big to show here.

test/golden/importless/steam.txt+20−23

This diff is too big to show here.

test/golden/importless/stefil.txtdeleted−18

This diff is too big to show here.

test/golden/importless/stellar-core.txt+1−1

This diff is too big to show here.

test/golden/importless/str.txtdeleted−18

This diff is too big to show here.

test/golden/importless/string-case.txt+4−4

This diff is too big to show here.

test/golden/importless/stumpwm.txt+17−20

This diff is too big to show here.

test/golden/importless/sundtek.txt+11−13

This diff is too big to show here.

test/golden/importless/surfboard.txt+5−5

This diff is too big to show here.

test/golden/importless/sushi.txt+22−25

This diff is too big to show here.

test/golden/importless/swank.txt+4−4

This diff is too big to show here.

test/golden/importless/swap-bytes.txtdeleted−16

This diff is too big to show here.

test/golden/importless/swraid.txt+5−5

This diff is too big to show here.

test/golden/importless/symbol-munger.txtdeleted−15

This diff is too big to show here.

test/golden/importless/syndication.txt+2−2

This diff is too big to show here.

test/golden/importless/syntax-highlighting.txtdeleted−16

This diff is too big to show here.

test/golden/importless/sysdig.txt+14−17

This diff is too big to show here.

test/golden/importless/sysprof.txt+18−20

This diff is too big to show here.

test/golden/importless/sysstat.txt+16−19

This diff is too big to show here.

test/golden/importless/system-config-printer.txt+14−17

This diff is too big to show here.

test/golden/importless/systemtap.txt+19−21

This diff is too big to show here.

test/golden/importless/tailscale.txt+23−24

This diff is too big to show here.

test/golden/importless/tap.txt+6−6

This diff is too big to show here.

test/golden/importless/tcpcrypt.txt+20−22

This diff is too big to show here.

test/golden/importless/tds_fdw.txt+8−8

This diff is too big to show here.

test/golden/importless/teamviewer.txt+11−13

This diff is too big to show here.

test/golden/importless/telepathy.txt+19−22

This diff is too big to show here.

test/golden/importless/temporal_tables.txt+5−5

This diff is too big to show here.

test/golden/importless/terminal-server.txt+18−19

This diff is too big to show here.

test/golden/importless/terminfo.txt+2−2

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/tesseract3.txt+19−17

This diff is too big to show here.

test/golden/importless/tesseract4.txt+19−17

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.txt+1−1

This diff is too big to show here.

test/golden/importless/tfrandom.txt+6−6

This diff is too big to show here.

test/golden/importless/threadweaver.txtdeleted−14

This diff is too big to show here.

test/golden/importless/throttled.txt+17−20

This diff is too big to show here.

test/golden/importless/tiddlywiki.txt+19−22

This diff is too big to show here.

test/golden/importless/timescaledb.txt+5−5

This diff is too big to show here.

test/golden/importless/tinywm.txt+16−19

This diff is too big to show here.

test/golden/importless/tlaps.txt+23−21

This diff is too big to show here.

test/golden/importless/tlhydra.txt+2−2

This diff is too big to show here.

test/golden/importless/tls-submodule.txt+7−8

This diff is too big to show here.

test/golden/importless/tmp.txt+13−14

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/tomladris.txt+6−6

This diff is too big to show here.

test/golden/importless/tool.txt+22−21

This diff is too big to show here.

test/golden/importless/toolbox.txt+16−15

This diff is too big to show here.

test/golden/importless/tools.txt+2−2

This diff is too big to show here.

test/golden/importless/tor-arm.txt+20−18

This diff is too big to show here.

test/golden/importless/tp.txt+6−6

This diff is too big to show here.

test/golden/importless/tparsec.txt+6−6

This diff is too big to show here.

test/golden/importless/tptp.txt+21−21

This diff is too big to show here.

test/golden/importless/traceroute.txt+11−13

This diff is too big to show here.

test/golden/importless/tracker-miners.txt+22−25

This diff is too big to show here.

test/golden/importless/tracker.txt+22−25

This diff is too big to show here.

test/golden/importless/transducers.txt+6−6

This diff is too big to show here.

test/golden/importless/trees.txt+2−2

This diff is too big to show here.

test/golden/importless/trivia.txtdeleted−25

This diff is too big to show here.

test/golden/importless/trivia_dot_balland2006.txtdeleted−24

This diff is too big to show here.

test/golden/importless/trivia_dot_level0.txtdeleted−11

This diff is too big to show here.

test/golden/importless/trivia_dot_level1.txtdeleted−15

This diff is too big to show here.

test/golden/importless/trivia_dot_level2.txtdeleted−19

This diff is too big to show here.

test/golden/importless/trivia_dot_quasiquote.txtdeleted−25

This diff is too big to show here.

test/golden/importless/trivia_dot_trivial.txtdeleted−20

This diff is too big to show here.

test/golden/importless/trivial-backtrace.txt+4−4

This diff is too big to show here.

test/golden/importless/trivial-clipboard.txtdeleted−11

This diff is too big to show here.

test/golden/importless/trivial-cltl2.txt+4−4

This diff is too big to show here.

test/golden/importless/trivial-features.txt+4−4

This diff is too big to show here.

test/golden/importless/trivial-file-size.txtdeleted−16

This diff is too big to show here.

test/golden/importless/trivial-garbage.txtdeleted−12

This diff is too big to show here.

test/golden/importless/trivial-gray-streams.txt+4−4

This diff is too big to show here.

test/golden/importless/trivial-indent.txt+4−4

This diff is too big to show here.

test/golden/importless/trivial-macroexpand-all.txt+4−4

This diff is too big to show here.

test/golden/importless/trivial-mimes.txt+4−4

This diff is too big to show here.

test/golden/importless/trivial-types.txt+4−4

This diff is too big to show here.

test/golden/importless/trivial-utf-8.txt+4−4

This diff is too big to show here.

test/golden/importless/tsearch_extras.txt+5−5

This diff is too big to show here.

test/golden/importless/tuxedo-keyboard.txt+10−13

This diff is too big to show here.

test/golden/importless/tvheadend.txt+18−22

This diff is too big to show here.

test/golden/importless/twm.txt+17−20

This diff is too big to show here.

test/golden/importless/type-i.txtdeleted−22

This diff is too big to show here.

test/golden/importless/tzupdate.txt+15−18

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/udev_rules_type1.txt+12−10

This diff is too big to show here.

test/golden/importless/udevil.txt+8−10

This diff is too big to show here.

test/golden/importless/udisks2.txt+15−17

This diff is too big to show here.

test/golden/importless/uffi.txt+4−4

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/uim.txt+17−18

This diff is too big to show here.

test/golden/importless/uinput.txt+9−11

This diff is too big to show here.

test/golden/importless/uiop.txt+4−4

This diff is too big to show here.

test/golden/importless/union_type.txt+6−6

This diff is too big to show here.

test/golden/importless/unit-test.txt+4−4

This diff is too big to show here.

test/golden/importless/unix-odbc-drivers.txt+13−14

This diff is too big to show here.

test/golden/importless/unix-opts.txt+4−4

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/unstable.txt+25−22

This diff is too big to show here.

test/golden/importless/unwrapped.txt+3−3

This diff is too big to show here.

test/golden/importless/updateSettings.txtdeleted−12

This diff is too big to show here.

test/golden/importless/uptimed.txt+15−18

This diff is too big to show here.

test/golden/importless/urserver.txt+13−13

This diff is too big to show here.

test/golden/importless/usb-wwan.txt+15−17

This diff is too big to show here.

test/golden/importless/usbtop.txt+11−13

This diff is too big to show here.

test/golden/importless/user-account.txt+2−3

This diff is too big to show here.

test/golden/importless/usocket.txtdeleted−14

This diff is too big to show here.

test/golden/importless/utils.txt+22−22

This diff is too big to show here.

test/golden/importless/uuid.txtdeleted−16

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

test/golden/importless/v3_4.txt+3−3

This diff is too big to show here.

test/golden/importless/v3_6.txt+4−4

This diff is too big to show here.

test/golden/importless/v4_0.txt+4−4

This diff is too big to show here.

test/golden/importless/v4_2.txt+4−4

This diff is too big to show here.

test/golden/importless/varnish-exporter.txt+6−6

This diff is too big to show here.

test/golden/importless/vdom.txt+6−6

This diff is too big to show here.

test/golden/importless/vecspace.txt+2−2

This diff is too big to show here.

test/golden/importless/vhba.txt+15−14

This diff is too big to show here.

test/golden/importless/viewer.txt+9−7

This diff is too big to show here.

test/golden/importless/vim.txt+13−15

This diff is too big to show here.

test/golden/importless/virtualbox-guest.txt+30−32

This diff is too big to show here.

test/golden/importless/vnstat.txt+13−15

This diff is too big to show here.

test/golden/importless/vom.txt+4−4

This diff is too big to show here.

test/golden/importless/vulkan.txt+24−23

This diff is too big to show here.

test/golden/importless/wacom.txt+15−18

This diff is too big to show here.

test/golden/importless/wakeonlan.txt+11−15

This diff is too big to show here.

test/golden/importless/wavemon.txt+13−15

This diff is too big to show here.

test/golden/importless/waybar.txt+14−17

This diff is too big to show here.

test/golden/importless/webgl.txt+6−6

This diff is too big to show here.

test/golden/importless/wicd.txt+14−16

This diff is too big to show here.

test/golden/importless/windowlab.txt+15−18

This diff is too big to show here.

test/golden/importless/windowmaker.txt+16−19

This diff is too big to show here.

test/golden/importless/winetricks.txt+27−25

This diff is too big to show here.

test/golden/importless/with-extensions.txt+2−2

This diff is too big to show here.

test/golden/importless/with-fonts.txt+14−14

This diff is too big to show here.

test/golden/importless/with-packages.txt+8−7

This diff is too big to show here.

test/golden/importless/wl-pprint.txt+2−2

This diff is too big to show here.

test/golden/importless/wmcalclock.txt+22−20

This diff is too big to show here.

test/golden/importless/wmii.txt+16−19

This diff is too big to show here.

test/golden/importless/wmsm.app.txt+18−17

This diff is too big to show here.

test/golden/importless/wmsystemtray.txt+24−22

This diff is too big to show here.

test/golden/importless/woo.txtdeleted−36

This diff is too big to show here.

test/golden/importless/wookie.txtdeleted−42

This diff is too big to show here.

test/golden/importless/wooting.txt+13−15

This diff is too big to show here.

test/golden/importless/wyvern.txt+6−6

This diff is too big to show here.

test/golden/importless/x32edit.txtdeleted−12

This diff is too big to show here.

test/golden/importless/xbanish.txt+12−15

This diff is too big to show here.

test/golden/importless/xdg-desktop-portal.txt+6−6

This diff is too big to show here.

test/golden/importless/xe-guest-utilities.txt+17−20

This diff is too big to show here.

test/golden/importless/xembed.txtdeleted−11

This diff is too big to show here.

test/golden/importless/xen-domU.txt+2−3

This diff is too big to show here.

test/golden/importless/xfce4-mailwatch-plugin.txt+1−1

This diff is too big to show here.

test/golden/importless/xfce4-mpc-plugin.txt+1−1

This diff is too big to show here.

test/golden/importless/xfce4-timer-plugin.txt+1−1

This diff is too big to show here.

test/golden/importless/xfce4-windowck-plugin.txt+8−8

This diff is too big to show here.

test/golden/importless/xfs.txt+19−21

This diff is too big to show here.

test/golden/importless/xft.txt+8−8

This diff is too big to show here.

test/golden/importless/xhr.txt+6−6

This diff is too big to show here.

test/golden/importless/xkeyboard.txtdeleted−12

This diff is too big to show here.

test/golden/importless/xlib.txt+2−2

This diff is too big to show here.

test/golden/importless/xmls.txtdeleted−12

This diff is too big to show here.

test/golden/importless/xmpp-alerts.txtnew file+51

This diff is too big to show here.

test/golden/importless/xow.txt+14−16

This diff is too big to show here.

test/golden/importless/xpath.txtdeleted−24

This diff is too big to show here.

test/golden/importless/xsane.txt+12−9

This diff is too big to show here.

test/golden/importless/xsubseq.txt+4−4

This diff is too big to show here.

test/golden/importless/xterm.txt+27−29

This diff is too big to show here.

test/golden/importless/yacc.txt+4−4

This diff is too big to show here.

test/golden/importless/yakuake.txt+3−3

This diff is too big to show here.

test/golden/importless/yaml.txt+6−6

This diff is too big to show here.

test/golden/importless/yampa.txt+2−2

This diff is too big to show here.

test/golden/importless/yason.txtdeleted−15

This diff is too big to show here.

test/golden/importless/yeahwm.txt+16−19

This diff is too big to show here.

test/golden/importless/z3.txt+2−2

This diff is too big to show here.

test/golden/importless/zeitgeist.txt+17−20

This diff is too big to show here.

test/golden/importless/zmap.txt+12−14

This diff is too big to show here.

test/golden/importless/zpaqd.txt+21−18

This diff is too big to show here.

test/golden/importless/zpb-ttf.txt+4−4

This diff is too big to show here.

test/golden/importless/zsh-autoenv.txt+14−17

This diff is too big to show here.

test/golden/importless/zydas-zd1211.txt+1−1

This diff is too big to show here.

test/golden/mine/0.9.txt+1−1

This diff is too big to show here.

test/golden/mine/arbitraryRank.nixdeleted−1

This diff is too big to show here.

test/golden/mine/arbitraryRank.txtdeleted−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.nixdeleted−12

This diff is too big to show here.

test/golden/mine/define-option-dependently-nested.txtdeleted−3

This diff is too big to show here.

test/golden/mine/inftype.txtdeleted−1

This diff is too big to show here.

test/golden/mine/nums.nixdeleted−5

This diff is too big to show here.

test/golden/mine/nums.txtdeleted−1

This diff is too big to show here.

test/golden/mine/other.txt+1−1

This diff is too big to show here.

test/golden/mine/other_row.txt+3−3

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/row.nixnew file+5

This diff is too big to show here.

test/golden/mine/subsumption.nixdeleted−6

This diff is too big to show here.

test/golden/mine/subsumption.txtdeleted−4

This diff is too big to show here.

test/golden/mine/subsumption_other.nixdeleted−5

This diff is too big to show here.

test/golden/mine/subsumption_other.txtdeleted−1

This diff is too big to show here.

test/golden/mine/unionfs.nixnew file+21

This diff is too big to show here.

test/golden/mine/variadic.nixdeleted−2

This diff is too big to show here.

test/golden/mine/variadic.txtdeleted−4

This diff is too big to show here.

test/golden/mine/with.txt+1−1

This diff is too big to show here.