on master help sign in
510 files changed+5610−4870
since splitsnapshots
unifiedsplit
.github/workflows/build_docs.yaml+4 docs/.vscode/settings.json+8−1 docs/bibl.bib+16−1 docs/default.nix+2−10 docs/nix/sources.json−12 docs/paper.lhs+904−116 docs/pres_2/img/ter.png docs/pres_2/pres.md+52−52 docs/trfrac.sty+193 paper.pdf src/Tix/Builtins.hs+68 src/Tix/Typechecker.hs+50−20 src/Tix/Types.hs+10−6 test/golden/importless/0.1.txt+1−1 test/golden/importless/0.10.txt+1−1 test/golden/importless/0.11.1.txt+1−1 test/golden/importless/0.11.txt+1−1 test/golden/importless/0.12.txt+1−1 test/golden/importless/0.2.txt+1−1 test/golden/importless/0.29.txt+1−1 test/golden/importless/0.3.3.txt+2−2 test/golden/importless/0.5.1.txt+2−2 test/golden/importless/0.61.txt+2−2 test/golden/importless/0.8.5.txt+2−2 test/golden/importless/0.9.txt+1−1 test/golden/importless/1-default.txt+2−2 test/golden/importless/1.0.0.txt+1−1 test/golden/importless/1.0.txt+2−2 test/golden/importless/1.3.txt+1−1 test/golden/importless/1.5.txt+2−2 test/golden/importless/1.55.txt+2−2 test/golden/importless/1.59.txt+2−2 test/golden/importless/1.60.txt+2−2 test/golden/importless/1.65.txt+2−2 test/golden/importless/1.66.txt+2−2 test/golden/importless/1.67.txt+3−3 test/golden/importless/1.68.txt+2−2 test/golden/importless/1.69.txt+2−2 test/golden/importless/1.70.txt+2−2 test/golden/importless/1.71.txt+2−2 test/golden/importless/1.72.txt+2−2 test/golden/importless/1.8.5.txt+1−1 test/golden/importless/1.8.txt+2−2 test/golden/importless/12.txt+1−1 test/golden/importless/16.1.2.txt+2−2 test/golden/importless/1compat.txt+1−1 test/golden/importless/2.0.0.txt+2−2 test/golden/importless/2.1.txt+2−2 test/golden/importless/2.2.txt+2−2 test/golden/importless/2.5.txt+2−2 test/golden/importless/2.6.13-pre.txt+1−1 test/golden/importless/2.6.2.txt+1−1 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+2−2 test/golden/importless/2_4.txt+2−2 test/golden/importless/3.0.txt+2−2 test/golden/importless/3.0.x.txt+1−1 test/golden/importless/3.08.0.txt+2−2 test/golden/importless/3.10.txt+1−1 test/golden/importless/3.11.txt+2−2 test/golden/importless/3.12.1.txt+42 test/golden/importless/3.12.txt+1−1 test/golden/importless/3.13.txt+1−1 test/golden/importless/3.5.txt+2−2 test/golden/importless/3.6.txt+1−1 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−1 test/golden/importless/3.8.txt+1−1 test/golden/importless/3.9.txt+1−1 test/golden/importless/38.txt+1−1 test/golden/importless/3_1.txt+2−2 test/golden/importless/3dovideo.txt+4−3 test/golden/importless/4.13a.txt+1−1 test/golden/importless/4.3.2.txt+1−1 test/golden/importless/4.txt+2−2 test/golden/importless/422.txt+1−1 test/golden/importless/44.0.txt+1−1 test/golden/importless/5.41.txt+3−3 test/golden/importless/5.7.txt+1−1 test/golden/importless/6.3.txt+1−1 test/golden/importless/6.txt+1−1 test/golden/importless/60.txt+1−1 test/golden/importless/68.txt+1−1 test/golden/importless/7.6.6.txt+46 test/golden/importless/78.txt+1−1 test/golden/importless/8.0.x.txt+1−1 test/golden/importless/8.5.txt+2−2 test/golden/importless/8.6.txt+3−3 test/golden/importless/8_0.txt+8−11 test/golden/importless/9.2.txt+3−3 test/golden/importless/Cargo.txt+1−1 test/golden/importless/account-service-util.txt+1−1 test/golden/importless/alexandria.txt+1−1 test/golden/importless/aliases.txt−217 test/golden/importless/amd-microcode.txt+1−1 test/golden/importless/apcupsd.txt+1−1 test/golden/importless/apeclex.txt+1−1 test/golden/importless/apiextractor.txt+1−1 test/golden/importless/appliance.txt+1−1 test/golden/importless/archive-version.txt+1−1 test/golden/importless/array-utils.txt+1−1 test/golden/importless/asdf-finalizers.txt+1−1 test/golden/importless/asdf-package-system.txt+1−1 test/golden/importless/asdf-system-connections.txt+1−1 test/golden/importless/assets.txt+1−1 test/golden/importless/atd.txt−59 test/golden/importless/atop.txt+1−1 test/golden/importless/attica.txt+14 test/golden/importless/automake-1.11.x.txt+3−3 test/golden/importless/automake-1.15.x.txt+2−2 test/golden/importless/automake-1.16.x.txt+1−1 test/golden/importless/autorandr.txt+2−2 test/golden/importless/aws-s3-exporter.txt+1−1 test/golden/importless/azure-agent.txt+2−2 test/golden/importless/b43.txt+13−15 test/golden/importless/bcc-git.txt+1−1 test/golden/importless/binary-tarball.txt+16−22 test/golden/importless/blivet.txt+1−1 test/golden/importless/blocks-gaps.txt+1−1 test/golden/importless/bloodspilot-server.txt+1−1 test/golden/importless/bluez-qt.txt+16 test/golden/importless/brltty.txt+5−5 test/golden/importless/build-rebar3.txt+19−22 test/golden/importless/build-solution.txt+1−1 test/golden/importless/build.txt+2−2 test/golden/importless/buildOcamlJane.txt+13−16 test/golden/importless/builder.txt+10−13 test/golden/importless/builds.txt+1−1 test/golden/importless/chacha.txt+1−1 test/golden/importless/check-plugin.txt+1−1 test/golden/importless/chipz.txt+1−1 test/golden/importless/chrootenv.txt+2−2 test/golden/importless/cl-aa.txt+1−1 test/golden/importless/cl-anonfun.txt+1−1 test/golden/importless/cl-css.txt+1−1 test/golden/importless/cl-html-parse.txt+1−1 test/golden/importless/cl-jpeg.txt+1−1 test/golden/importless/cl-l10n-cldr.txt+1−1 test/golden/importless/cl-log.txt+1−1 test/golden/importless/cl-markup.txt+1−1 test/golden/importless/cl-paths.txt+1−1 test/golden/importless/cl-unification.txt+1−1 test/golden/importless/cl-utilities.txt+1−1 test/golden/importless/clack-socket.txt+1−1 test/golden/importless/clippy.txt+1−1 test/golden/importless/closer-mop.txt+1−1 test/golden/importless/cmake-modules.txt+1−1 test/golden/importless/cohttp.txt+1−1 test/golden/importless/combinators.txt+1−1 test/golden/importless/command-line-arguments.txt+1−1 test/golden/importless/common.txt+2−2 test/golden/importless/community.txt+1−1 test/golden/importless/compiler-rt.txt+7−5 test/golden/importless/compiler.txt+1−1 test/golden/importless/component-packages.txt+671−671 test/golden/importless/configuration-ghc-8.4.x.txt+1−1 test/golden/importless/configuration-ghc-head.txt+1−1 test/golden/importless/contrib.txt+1−1 test/golden/importless/convert.txt+1−1 test/golden/importless/cryptsetup.txt+1−1 test/golden/importless/css-lite.txt+1−1 test/golden/importless/cstruct.txt+1−1 test/golden/importless/curaengine.txt+1−1 test/golden/importless/curry-base.txt+1−1 test/golden/importless/curry-frontend.txt+1−1 test/golden/importless/cursive.txt+1−1 test/golden/importless/data-api.txt+2−2 test/golden/importless/data.txt+1−1 test/golden/importless/db3.txt+1−1 test/golden/importless/debian-build.txt+12−15 test/golden/importless/declare-int-between-value.txt+1−1 test/golden/importless/declare-lazyAttrsOf.txt+1−1 test/golden/importless/declare-submoduleWith-path.txt+2−2 test/golden/importless/declare-submoduleWith-special.txt+1−1 test/golden/importless/define-option-dependently-nested.txt+1−1 test/golden/importless/define-option-dependently.txt+1−1 test/golden/importless/define-value-int-negative.txt+1−1 test/golden/importless/define-value-int-positive.txt+1−1 test/golden/importless/define-value-int-zero.txt+1−1 test/golden/importless/define-value-list.txt+1−1 test/golden/importless/dfu-util.txt+1−1 test/golden/importless/dhall-packages.txt+1−1 test/golden/importless/dictd-db.txt+1−1 test/golden/importless/dictd-wiktionary.txt+2−2 test/golden/importless/dictd-wordnet.txt+2−2 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-foo.txt+1−1 test/golden/importless/dispatch.txt+1−1 test/golden/importless/displaylink.txt+1−1 test/golden/importless/dissect.txt+1−1 test/golden/importless/dotty.txt+1−1 test/golden/importless/dovecot-exporter.txt+1−1 test/golden/importless/dsseries.txt+1−1 test/golden/importless/dust.txt+1−1 test/golden/importless/dvtm.txt+2−2 test/golden/importless/edit.txt+2−2 test/golden/importless/eggs.txt+14 test/golden/importless/element-desktop.txt+2−2 test/golden/importless/elm-json.txt+1−1 test/golden/importless/emulate-app.txt+1−1 test/golden/importless/eos.txt+1−1 test/golden/importless/extlinux-conf-builder.txt+1−1 test/golden/importless/extpack.txt−27 test/golden/importless/extras.txt+2−1 test/golden/importless/fare-utils.txt+1−1 test/golden/importless/faust1.txt+37−46 test/golden/importless/faust2.txt+42−51 test/golden/importless/fcitx.txt+2−2 test/golden/importless/fixed-points.txt+5−9 test/golden/importless/flatpak-builder.txt+1−1 test/golden/importless/flatpak.txt+2−2 test/golden/importless/fox-1.6.txt+1−1 test/golden/importless/frameworks.txt+60−60 test/golden/importless/freeoffice.txt+10−13 test/golden/importless/freetds.txt+1−1 test/golden/importless/fs.txt+1−1 test/golden/importless/full.txt+1−1 test/golden/importless/garbage-pools.txt+1−1 test/golden/importless/gdal-1_11.txt+1−1 test/golden/importless/gdk-pixbuf.txt+2−2 test/golden/importless/gemset-beta.txt+36−36 test/golden/importless/gemset_libvirt.txt+15−15 test/golden/importless/generations-dir.txt+6−1 test/golden/importless/generatorrunner.txt+1−1 test/golden/importless/generic-builder.txt+13−16 test/golden/importless/generic-stack-builder.txt+20−23 test/golden/importless/geogebra6.txt+1−1 test/golden/importless/gerbil-ethereum.txt+1−1 test/golden/importless/gerbil-persist.txt+1−1 test/golden/importless/gerbil-poo.txt+1−1 test/golden/importless/gitlab-ci-pipelines-exporter.txt+1−1 test/golden/importless/global-vars.txt+1−1 test/golden/importless/gmusic.txt+1−1 test/golden/importless/gnu.txt+1−1 test/golden/importless/graphite2.txt+1−1 test/golden/importless/graphql.txt+1−1 test/golden/importless/gstreamer.txt+1−1 test/golden/importless/helper.txt+1−1 test/golden/importless/hg.txt+1−1 test/golden/importless/hidepid.txt+1−1 test/golden/importless/http.txt+1−1 test/golden/importless/imapfilter.txt+1−1 test/golden/importless/info.txt+1−1 test/golden/importless/init-script.txt+1−1 test/golden/importless/integrations-core.txt+10−13 test/golden/importless/intel-microcode.txt+1−1 test/golden/importless/introspect-environment.txt+1−1 test/golden/importless/iproute2.txt+2−1 test/golden/importless/iterate.txt+1−1 test/golden/importless/janePackage.txt+7−10 test/golden/importless/janePackage_0_12.txt+7−10 test/golden/importless/janePackage_0_13.txt+7−10 test/golden/importless/java.txt+1−1 test/golden/importless/jdk-darwin-base.txt+1−1 test/golden/importless/js-build-tools.txt+1−1 test/golden/importless/json-exporter.txt+1−1 test/golden/importless/json.txt+1−1 test/golden/importless/karchive.txt+18 test/golden/importless/kcodecs.txt+17 test/golden/importless/kconfig.txt+15 test/golden/importless/kcoreaddons.txt+16 test/golden/importless/kdbusaddons.txt+16 test/golden/importless/kdebugsettings.txt+1−1 test/golden/importless/kdecoration.txt+15 test/golden/importless/kdenlive.txt+1−1 test/golden/importless/kdnssd.txt+17 test/golden/importless/keylight.txt+1−1 test/golden/importless/kguiaddons.txt+16 test/golden/importless/ki18n.txt+18 test/golden/importless/kidletime.txt+15 test/golden/importless/kirigami2.txt+15 test/golden/importless/kitemmodels.txt+14 test/golden/importless/kitemviews.txt+16 test/golden/importless/kmrcl.txt+1−1 test/golden/importless/konqueror.txt+1−1 test/golden/importless/kplotting.txt+15 test/golden/importless/kvm.txt+1−1 test/golden/importless/kwayland.txt+19 test/golden/importless/kwidgetsaddons.txt+16 test/golden/importless/lack-component.txt+1−1 test/golden/importless/layout-manager.txt+1−1 test/golden/importless/libmaa.txt+1−1 test/golden/importless/libnvc.txt+1−1 test/golden/importless/library.txt+1−1 test/golden/importless/libtool2.txt+1−1 test/golden/importless/libxpdf.txt+3−3 test/golden/importless/licenses.txt+14−17 test/golden/importless/lift.txt+1−1 test/golden/importless/linux-4.14.txt+8−11 test/golden/importless/linux-4.19.txt+8−11 test/golden/importless/linux-4.4.txt+1−1 test/golden/importless/linux-4.9.txt+1−1 test/golden/importless/linux-5.4.txt+8−11 test/golden/importless/linux-5.8.txt+8−11 test/golden/importless/linux-5.9.txt+8−11 test/golden/importless/linux-hardkernel-4.14.txt+9−12 test/golden/importless/linux-testing-bcachefs.txt+13−16 test/golden/importless/linux-testing.txt−23 test/golden/importless/linux-zen.txt+8−11 test/golden/importless/linux.txt+1−1 test/golden/importless/liquidsoap.txt−68 test/golden/importless/lldb.txt+1−1 test/golden/importless/lldpd.txt+1−1 test/golden/importless/locales.txt+2−2 test/golden/importless/ltc.txt+1−1 test/golden/importless/luarocks-nix.txt+1−1 test/golden/importless/m32edit.txt+9−12 test/golden/importless/machine.txt+1−1 test/golden/importless/macport.txt+1−1 test/golden/importless/macvim.txt+2−2 test/golden/importless/mail-exporter.txt+1−1 test/golden/importless/mailpile.txt+1−1 test/golden/importless/mainline.txt+3−2 test/golden/importless/maintainer-list.txt+1490−1705 test/golden/importless/make-dbus-conf.txt+2−2 test/golden/importless/make-peer.txt+4−6 test/golden/importless/make-squashfs.txt+1−1 test/golden/importless/man.txt+1−1 test/golden/importless/map-set.txt+1−1 test/golden/importless/marshal.txt+1−1 test/golden/importless/master.txt−56 test/golden/importless/material-theme.txt+1−1 test/golden/importless/maven-build.txt+17−20 test/golden/importless/mavenPlugins.txt+1−1 test/golden/importless/md5.txt+1−1 test/golden/importless/mem.txt+1−1 test/golden/importless/metabang-bind.txt+1−1 test/golden/importless/metatilities-base.txt+1−1 test/golden/importless/minion.txt−53 test/golden/importless/misc-extensions.txt+1−1 test/golden/importless/mjpg-streamer.txt+1−1 test/golden/importless/mk-string-metrics.txt+1−1 test/golden/importless/modemmanager-qt.txt+15 test/golden/importless/modemmanager.txt+1−1 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/moodle-utils.txt+9−12 test/golden/importless/mt19937.txt+1−1 test/golden/importless/mullvad-vpn.txt+3−3 test/golden/importless/named-readtables.txt+1−1 test/golden/importless/net_dot_didierverna_dot_asdf-flv.txt+1−1 test/golden/importless/netboot.txt+2−2 test/golden/importless/networkmanager-qt.txt+15 test/golden/importless/new-api.txt+1−1 test/golden/importless/nextcloud-exporter.txt+1−1 test/golden/importless/nginxlog-exporter.txt+1−1 test/golden/importless/nixops-v1_6_1.txt+2−2 test/golden/importless/node.txt+3−2 test/golden/importless/nscd.txt−62 test/golden/importless/oauth2_proxy_nginx.txt+1−1 test/golden/importless/obs-ndi.txt+1−1 test/golden/importless/ofono.txt+2−2 test/golden/importless/org-generated.txt+1−1 test/golden/importless/pack.txt+1−1 test/golden/importless/parse-declarations-1_dot_0.txt+1−1 test/golden/importless/parse-number.txt+1−1 test/golden/importless/parted.txt+1−1 test/golden/importless/paste.txt+1−1 test/golden/importless/pdf_sets.txt+1−1 test/golden/importless/pk.txt+1−1 test/golden/importless/platform-flags.txt+1−1 test/golden/importless/plotinus.txt+1−1 test/golden/importless/plump-lexer.txt+1−1 test/golden/importless/port.txt+1−1 test/golden/importless/postfix-exporter.txt+1−1 test/golden/importless/pre-configure.txt+2−1 test/golden/importless/pressureaudio.txt+1−1 test/golden/importless/prison.txt+17 test/golden/importless/process-exporter.txt+1−1 test/golden/importless/prove-asdf.txt+1−1 test/golden/importless/ptester.txt+1−1 test/golden/importless/pure.txt+1−1 test/golden/importless/pyblock.txt+1−1 test/golden/importless/qemu-guest-agent.txt+1−1 test/golden/importless/qemu.txt+49 test/golden/importless/qt4.txt+1−1 test/golden/importless/qtModule.txt+15−18 test/golden/importless/qtgamepad.txt+1−1 test/golden/importless/qtspeech.txt+2−1 test/golden/importless/qtwebengine.txt+1−1 test/golden/importless/rabbitmq-exporter.txt+1−1 test/golden/importless/raspberrypi-builder.txt+1−1 test/golden/importless/rebar3-release.txt+16−19 test/golden/importless/redis-exporter.txt+1−1 test/golden/importless/redis.txt+1−1 test/golden/importless/require_exceptions.txt+8−8 test/golden/importless/rfc2388.txt+1−1 test/golden/importless/rng-mirage.txt+1−1 test/golden/importless/rng.txt+1−1 test/golden/importless/roboschool-fork.txt+1−1 test/golden/importless/robustirc-bridge.txt+1−1 test/golden/importless/rt.txt+1−1 test/golden/importless/ruby-packages.txt+253−253 test/golden/importless/ruby-version.txt+1−1 test/golden/importless/rustfmt.txt+1−1 test/golden/importless/rxe.txt+1−1 test/golden/importless/s-sysdeps.txt+1−1 test/golden/importless/s-xml.txt+1−1 test/golden/importless/safeeyes.txt+3−3 test/golden/importless/sage-env.txt+1−1 test/golden/importless/sagenb.txt+1−1 test/golden/importless/salza2.txt+1−1 test/golden/importless/samtools_0_1_19.txt+1−1 test/golden/importless/schema.txt+1−1 test/golden/importless/scripts.txt+1−1 test/golden/importless/sdk-pkgs.txt+10−13 test/golden/importless/shadow.txt+8−11 test/golden/importless/share.txt+1−1 test/golden/importless/shared.txt+1−1 test/golden/importless/shiboken.txt+43 test/golden/importless/singularity.txt+2−1 test/golden/importless/skeinjar.txt+1−1 test/golden/importless/skeinrepo.txt+1−1 test/golden/importless/socket.txt+1−1 test/golden/importless/sockets.txt+1−1 test/golden/importless/softmaker_office.txt+10−13 test/golden/importless/solid.txt+20 test/golden/importless/sonnet.txt+16 test/golden/importless/spotify.txt+2−2 test/golden/importless/spotifyd.txt+1−1 test/golden/importless/springlobby.txt+1−1 test/golden/importless/squeezelite.txt+12−14 test/golden/importless/stable.txt+3−2 test/golden/importless/staging.txt+3−3 test/golden/importless/status.txt+1−1 test/golden/importless/stellar-core.txt+1−1 test/golden/importless/string-case.txt+1−1 test/golden/importless/surfboard.txt+1−1 test/golden/importless/swank.txt+1−1 test/golden/importless/syntax-highlighting.txt+16 test/golden/importless/tailscale.txt+5−7 test/golden/importless/terminal-server.txt+2−2 test/golden/importless/tes3mp.txt+1−1 test/golden/importless/test-case.txt+1−1 test/golden/importless/test.txt+1−1 test/golden/importless/threadweaver.txt+14 test/golden/importless/tiddlywiki.txt+1−1 test/golden/importless/todo.txt+1−1 test/golden/importless/tool.txt+1−1 test/golden/importless/trivial-backtrace.txt+1−1 test/golden/importless/trivial-cltl2.txt+1−1 test/golden/importless/trivial-features.txt+1−1 test/golden/importless/trivial-gray-streams.txt+1−1 test/golden/importless/trivial-indent.txt+1−1 test/golden/importless/trivial-macroexpand-all.txt+1−1 test/golden/importless/trivial-mimes.txt+1−1 test/golden/importless/trivial-types.txt+1−1 test/golden/importless/trivial-utf-8.txt+1−1 test/golden/importless/tvheadend.txt+2−2 test/golden/importless/udev.txt+1−1 test/golden/importless/uffi.txt+1−1 test/golden/importless/ui.txt+1−1 test/golden/importless/uiop.txt+1−1 test/golden/importless/unit-test.txt+1−1 test/golden/importless/unix-odbc-drivers.txt+2−2 test/golden/importless/unix-opts.txt+1−1 test/golden/importless/unix.txt+1−1 test/golden/importless/updateSettings.txt+12 test/golden/importless/uptimed.txt+1−1 test/golden/importless/urserver.txt+2−4 test/golden/importless/user-account.txt+1−1 test/golden/importless/utils.txt+4−4 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+2−2 test/golden/importless/v3_6.txt+3−3 test/golden/importless/v4_0.txt+3−3 test/golden/importless/v4_2.txt+3−3 test/golden/importless/vim.txt+1−1 test/golden/importless/virtualbox-guest.txt+1−1 test/golden/importless/vom.txt+1−1 test/golden/importless/wakeonlan.txt+3−2 test/golden/importless/winetricks.txt+1−1 test/golden/importless/with-extensions.txt+2−2 test/golden/importless/x32edit.txt+9−12 test/golden/importless/xen-domU.txt+1−1 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/xmpp-alerts.txt−54 test/golden/importless/xsubseq.txt+1−1 test/golden/importless/yacc.txt+1−1 test/golden/importless/zpb-ttf.txt+1−1 test/golden/mine/0.9.txt+1−1 test/golden/mine/curry.txt+1−1 test/golden/mine/define-option-dependently-nested.txt+1−1 test/golden/mine/inftype.txt+1−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.txt+3−3 test/golden/mine/subsumption_other.nix+5 test/golden/mine/subsumption_other.txt+1 test/golden/mine/unionfs.nix−21 test/golden/mine/variadic.txt+4−1 test/golden/mine/with.txt+1−1
.github/workflows/build_docs.yaml+4
@@ -3,9 +3,13 @@ on:
33 push:
44 branches:
55 - master
6+ paths:
7+ - docs/**
68 pull_request:
79 branches:
810 - master
11+ paths:
12+ - docs/**
913
1014jobs:
1115 linux:
docs/.vscode/settings.json+8−1
@@ -11,5 +11,12 @@
1111 "-A",
1212 "%DOCFILE%"
1313 ],
14− "nixEnvSelector.suggestion": false
14+ "nixEnvSelector.suggestion": false,
15+ "latex-workshop.latexindent.args": [
16+ "-c",
17+ "%DIR%/",
18+ "%TMPFILE%",
19+ "-y=defaultIndent: '%INDENT%'",
20+ "-l"
21+ ]
1522}
docs/bibl.bib+16−1
@@ -1,13 +1,18 @@
11%% This BibTeX bibliography file was created using BibDesk.
22%% https://bibdesk.sourceforge.io/
33
4−%% Created for Ilya at 2021-04-25 18:35:19 +0300
4+%% Created for Ilya at 2021-05-15 17:02:08 +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+
1116@article{goldberg2000mercury,
1217 author = {Goldberg, Ken and Gentner, Steve and Sutter, Carl and Wiegley, Jeff},
1318 date-added = {2021-04-25 18:35:16 +0300},
@@ -200,3 +205,13 @@
200205 pages = {367--378},
201206 title = {NixOS: A purely functional Linux distribution},
202207 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+2−10
@@ -27,15 +27,7 @@ builtins.listToAttrs (map
2727 # , compressBlanksInIndex ? true
2828 # , packages ? [ ]
2929 texPackages = {
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− };
30+ inherit (pkgs.texlive) scheme-medium IEEEtran polytable lazylist multirow;
3931 };
4032 # , copySources ? false
4133 };
@@ -43,6 +35,6 @@ builtins.listToAttrs (map
4335 [
4436 { file = ./tech_spec.tex; }
4537 { file = ./project_proposal.tex; }
46− { file = ./paper.lhs; extraFiles = [ (sources.TechDoc + "/TechDoc.cls") ./bibl.bib ]; }
38+ { file = ./paper.lhs; extraFiles = [ ./bibl.bib ./trfrac.sty ]; }
4739 ]
4840)
docs/nix/sources.json−12
@@ -11,18 +11,6 @@
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− },
2614 "niv": {
2715 "branch": "master",
2816 "description": "Easy dependency management for Nix projects",
docs/paper.lhs+904−116
@@ -1,57 +1,97 @@
1−\PassOptionsToPackage{main=english,russian}{babel}
1+\documentclass[a4paper,journal,compsoc]{IEEEtran}
22
3−\documentclass[]{TechDoc}
4−
5−\usepackage{float}
3+% \usepackage{float}
64\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}
714
8−\selectlanguage{english}
15+% \sectionsAreChapters
916
10−\sectionsAreChapters
1117
12−\floatstyle{boxed}
13−\newfloat{Listing}{hbp}{lst}
18+%include polycode.fmt
19+
20+%format forall = "\forall"
21+%format a = "\alpha"
22+%format a'
23+%format b = "\beta"
24+%format b'
25+%format c = "\gamma"
26+%format c'
27+%format d = "\delta"
28+%format d'
29+%format s = "\sigma"
30+%format m = "\mu"
31+%format r = "\psi"
32+%format x = "\eta"
33+%format x'
34+%format y = "\zeta"
35+%format y'
36+%format ^ = " "
37+%format ^^ = "\;"
38+%format !! = "{\;}''\!\!"
39+%format <> = "\diamond"
40+
41+% \floatstyle{boxed}
42+% \newfloat{figure}{hbp}{lst}
1443
1544\newcommand{\parr}[1]{\medskip\textbf{#1}\hspace{0.6cm}}
45+\newcommand{\strOrNum}{(\text{String} || \text{Number})}
1646
17−%include polycode.fmt
1847
19−\year{2021}
48+% \year{2021}
2049\title{Static analyzer for the Nix Expression Language}
21−\author{Student, BSE174}{I. I. Kostyuchenko}
22−\academicTeacher{Associate Professor, PhD}{V. V. Kuliamin}
23−
24−\documentTitle{Explanatory note}
25−\documentCode{RU.17701729.04.05-01 ПЗ 01-1}
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+}
2664
2765\begin{document}
2866\maketitle
67+\thispagestyle{plain}
68+\pagestyle{plain}
2969
3070\begin{abstract}
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.
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.
3272\end{abstract}
3373
34−\begin{otherlanguage}{russian}
74+% \begin{otherlanguage}{russian}
3575
36− \begin{abstract}
37− Настройка и сборка даже самых простых программных проектов часто бывает непростой задачей -- для этого требуется загрузить и установить большое количество необходимого программного обеспечения. Это часто делает проблематичным воспроизведение сборок проекта на разных компьютерах. Менеджер пакетов Nix стремится решить эту проблему, предоставляя единый язык для описания пакетов программного обеспечения чисто функциональным способом. Этот язык называется языком Nix Expression Language. Поскольку вся сложность конфигурации программного обеспечения должна быть выражена на языке Nix Expression Language, сами выражения часто становятся довольно сложными, что затрудняет понимание и расширение существующих выражений без ошибок. Широко распространенным инструментом для облегчения понимания и проверки корректности выражений на других языках является статическая проверка типов. В этой статье будут рассмотрены методы, которые можно использовать для добавления статической проверки типов в язык выражений Nix Expression Language.
38− \end{abstract}
76+% \begin{abstract}
77+% Настройка и сборка даже самых простых программных проектов часто бывает непростой задачей -- для этого требуется загрузить и установить большое количество необходимого программного обеспечения. Это часто делает проблематичным воспроизведение сборок проекта на разных компьютерах. Менеджер пакетов Nix стремится решить эту проблему, предоставляя единый язык для описания пакетов программного обеспечения чисто функциональным способом. Этот язык называется языком Nix Expression Language. Поскольку вся сложность конфигурации программного обеспечения должна быть выражена на языке Nix Expression Language, сами выражения часто становятся довольно сложными, что затрудняет понимание и расширение существующих выражений без ошибок. Широко распространенным инструментом для облегчения понимания и проверки корректности выражений на других языках является статическая проверка типов. В этой статье будут рассмотрены методы, которые можно использовать для добавления статической проверки типов в язык выражений Nix Expression Language.
78+% \end{abstract}
3979
40−\end{otherlanguage}
80+% \end{otherlanguage}
4181
42−\parr{Source code} \url{https://github.com/ilyakooo0/tix}
82+% \parr{Source code} \url{https://github.com/ilyakooo0/tix}
4383
44−\newpage
84+% \newpage
4585
46−\tableofcontents
86+% \tableofcontents
4787
4888\section*{Introduction}
4989
50−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.
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.
5191
5292Such 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.
5393
54−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:
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:
5595
5696\begin{enumerate}
5797 \item \emph{language-specific tools} which simplify installing and switching between different versions of some tools (usually compilers). Examples of such tools are:
@@ -69,7 +109,7 @@ This problem is partially solved by so-called virtual environments tools. A virt
69109 \end{enumerate}
70110\end{enumerate}
71111
72−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}.
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}.
73113
74114Secondly, 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.
75115
@@ -81,19 +121,19 @@ Using a fully-fledged programming language allows the users to reuse common defi
81121
82122Nix 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.
83123
84−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.}
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.}
85125
86126Refactoring 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.
87127
88−Static type checking is the process of analyzing the types of expressions and detecting type errors in programs without evaluating them.
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.
89129
90−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).
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).
91131
92132The 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.
93133
94134\section{Nix Expression Language}
95135
96−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.
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.
97137
98138\subsection{Atomic types}
99139
@@ -101,8 +141,9 @@ Atomic types are described in table~\ref{tab:atomicTypes}.
101141
102142\begin{table}[hbp]
103143 \centering
104− \begin{tabular}{ ||c||p{6cm}||p{6cm}|| } \hline
105− \textbf{Atomic type} & \textbf{Description} & \textbf{Example terms} \\ \hline
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
106147 URI & A string literal representing a URI. Does not require quoting. & \texttt{https://example.com} \\ \hline
107148 Path literal & A path literal referring to either a relative or absolute path. Does not require quoting. & \texttt{../../directory/file.txt} \\ \hline
108149 Integer & The current C implementation of Nix allows values of 64-bit signed integers. & \texttt{69} \newline \texttt{-42} \\ \hline
@@ -110,7 +151,6 @@ Atomic types are described in table~\ref{tab:atomicTypes}.
110151 Bool & Boolean values. & \texttt{true} \newline \texttt{false} \\ \hline
111152 Null & A type with a single value. & \texttt{null} \\ \hline
112153 \end{tabular}
113− \caption{Table of atomic Nix Expression Language types}
114154 \label{tab:atomicTypes}
115155\end{table}
116156
@@ -118,9 +158,9 @@ Atomic types are described in table~\ref{tab:atomicTypes}.
118158
119159\subsubsection{Double quoted string literals}
120160
121−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}.
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}.
122162
123−\begin{Listing}
163+\begin{figure}
124164 \begin{minipage}{\textwidth}
125165 \begin{verbatim}
126166"Sampel\nPalnet"
@@ -128,13 +168,13 @@ Double quoted string literals are string literals just like in many other progra
128168 \end{minipage}
129169 \caption{Nix Expression Language double quoted string literal example}
130170 \label{lst:newlineString}
131−\end{Listing}
171+\end{figure}
132172
133173\subsubsection{Multiline string literals}
134174
135−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}.
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}.
136176
137−\begin{Listing}
177+\begin{figure}
138178 \begin{minipage}{\textwidth}
139179 \begin{verbatim}
140180''
@@ -146,43 +186,43 @@ Palnet''
146186 \end{minipage}
147187 \caption{Nix Expression Language multiline string literal example and an equivalent double quoted string literal}
148188 \label{lst:multilineString}
149−\end{Listing}
189+\end{figure}
150190
151−\subsubsection{String interpolation}
191+% \subsubsection{String interpolation}
152192
153−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}.
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}.
154194
155−\begin{Listing}
156− \begin{minipage}{\textwidth}
157− \begin{verbatim}
158−"one is ${ if 1 == 2 then "equal" else "not equal" } to two."
195+% \begin{figure}
196+% \begin{minipage}{\textwidth}
197+% \begin{verbatim}
198+% "one is ${ if 1 == 2 then "equal" else "not equal" } to two."
159199
160−"one is not equal to two."
161− \end{verbatim}
162− \end{minipage}
163− \caption{Nix Expression Language string interpolation example with the resulting string.}
164− \label{lst:stringInterpolation}
165−\end{Listing}
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}
166206
167207\subsection{Lists}
168208
169−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}.
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}.
170210
171−\begin{Listing}
211+\begin{figure}
172212 \begin{minipage}{\textwidth}
173213 \begin{verbatim}
174−[1 2 "hello" ../../file.txt https://example.com]
214+[1 2 "hello" ../../file.txt]
175215 \end{verbatim}
176216 \end{minipage}
177217 \caption{Nix Expression Language List literals.}
178218 \label{lst:list}
179−\end{Listing}
219+\end{figure}
180220
181221\subsection{Attribute sets} \label{sec:attrSet}
182222
183−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}.
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}.
184224
185−\begin{Listing}
225+\begin{figure}
186226 \begin{minipage}{\textwidth}
187227 \begin{verbatim}
188228{ a = 42;
@@ -194,29 +234,46 @@ An attribute set is internally implemented as a hashmap with strings as keys whe
194234 \end{minipage}
195235 \caption{Nix Expression Language attribute set literals.}
196236 \label{lst:attrSet}
197−\end{Listing}
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}
198254
199255\subsection{Attribute set updates} \label{sec:update}
200256
201−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 listing~\ref{lst:update}.
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}.
202258
203−\begin{Listing}
259+\begin{figure}
204260 \begin{minipage}{\textwidth}
205261 \begin{verbatim}
206−{x = {a = 1;}; y = 2;} // {x = "hello"; z = 1.5;}
262+{x = {a = 1;}; y = 2;}
263+ // {x = "hello"; z = 1.5;}
207264
208265{ x = "hello"; y = 2; z = 1.5; }
209266 \end{verbatim}
210267 \end{minipage}
211268 \caption{Nix Expression Language attribute set updates.}
212269 \label{lst:update}
213−\end{Listing}
270+\end{figure}
214271
215272\subsection{Recursive attribute sets} \label{sec:recAttrSet}
216273
217−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.
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.
218275
219−\begin{Listing}
276+\begin{figure}
220277 \begin{minipage}{\textwidth}
221278 \begin{verbatim}
222279rec {
@@ -229,13 +286,13 @@ rec {
229286 \end{minipage}
230287 \caption{Nix Expression Language recursive attribute set literals.}
231288 \label{lst:recAttrSet}
232−\end{Listing}
289+\end{figure}
233290
234291\subsection{Let expressions} \label{sec:let}
235292
236−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}.
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}.
237294
238−\begin{Listing}
295+\begin{figure}
239296 \begin{minipage}{\textwidth}
240297 \begin{verbatim}
241298let
@@ -246,13 +303,13 @@ in d
246303 \end{minipage}
247304 \caption{Nix Expression Language \emph{let} expression literals.}
248305 \label{lst:let}
249−\end{Listing}
306+\end{figure}
250307
251−\subsection{With expression}
308+\subsection{With expression} \label{sec:withExp}
252309
253−\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}.
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}.
254311
255−\begin{Listing}
312+\begin{figure}
256313 \begin{minipage}{\textwidth}
257314 \begin{verbatim}
258315let
@@ -263,32 +320,34 @@ in d
263320 \end{minipage}
264321 \caption{Nix Expression Language \emph{with} expression literals.}
265322 \label{lst:with}
266−\end{Listing}
323+\end{figure}
267324
268−\section{Existing typecheckers}
325+\section{Existing typecheckers implementations}
269326
270−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.
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.
271328
272329\subsection{regnat/tix} \label{sec:regnat/tix}
273330
274−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.
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.
275332
276333\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}.
277334
278335\subsection{regnat/ptyx} \label{sec:regnat/ptyx}
279336
280−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.
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.
281338
282339\parr{Status} The last commit was published in 2018. Unsupported language features include lists and attribute sets.
283340
284341\subsection{haskell-nix/hnix}
285342
286−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.
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.
287344
288345\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.
289346
290347
291−\section{Existing Approaches}
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.
292351
293352\subsection{Type System Approach}
294353
@@ -318,7 +377,7 @@ In some cases, this approach will likely yield too little information to be usef
318377
319378The 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.
320379
321−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.
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.
322381
323382\subsection{Row-Polymorphism}
324383
@@ -326,43 +385,27 @@ One of the language-level constructs in the Nix Expression Language is the ``att
326385
327386There 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}.
328387
329−\subsection{Message Reporting}
330−
331−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.
388+% \subsection{Message Reporting}
332389
333−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.
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.
334391
335−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.
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.
336393
337−\section{Architecture}
338−
339−\subsection{Effect system}
340−
341−\subsubsection{Monad transformers}
342−
343−Developing a typechecker requires working with a large amount of non-trivial algorithms which influence each other in complex ways. A widespread way of dealing with such situations is introducing a common computational environment through which different parts of the program can interact (instead of ``manually'' passing state around). A well-established way of handling state in purely functional programming languages is the \emph{Monad} abstraction~\cite{moggi1988computational}.
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.
344395
345−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}.
396+\section{Our Nix type system}
346397
347−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.
348−
349−\subsubsection{Free monad extensible effects}
350−
351−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}.
352−
353−\subsection{Type system}
354−
355−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.
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.
356399
357400\subsection{Polymorphism} \label{sec:polymorphism}
358401
359−Dynamic languages have potenitally 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.
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.
360403
361404The 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).
362405
363406Parametric 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}.
364407
365−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{fig:closing} is an example of closing for a type variable.
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.
366409
367410Traditionally 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.
368411
@@ -375,9 +418,9 @@ Traditionally in languages similar to \emph{simply-typed lambda calculus} genera
375418 \label{fig:closing}
376419\end{figure}
377420
378−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}.
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}.
379422
380−\subsection{Inferring recursive types}
423+\subsection{Inferring recursive types} \label{sec:recLet}
381424
382425Recursive 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:
383426
@@ -387,7 +430,7 @@ Recursive definitions pose a challenge for type inference without developer-supp
387430 \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.
388431\end{enumerate}
389432
390−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.
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.
391434
392435\subsection{Row polymorphism}
393436
@@ -395,9 +438,9 @@ Nix has first-class hashmaps with strings as keys called \emph{attribute sets} a
395438
396439Of 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.
397440
398−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 listing~\ref{lst:update_ex}. The listing 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 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.
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.
399442
400−\begin{Listing}
443+\begin{figure}
401444 \begin{minipage}{\textwidth}
402445 \begin{verbatim}
403446x: x // {a = 1;}
@@ -405,23 +448,768 @@ x: x // {a = 1;}
405448 \end{minipage}
406449 \caption{A lambda expression which updates an input set.}
407450 \label{lst:update_ex}
408−\end{Listing}
451+\end{figure}
452+
453+This problem is widely known as \emph{row polymorphism}~\cite{wand1991type} – the term \emph{row} refers to a single key-value type pair. Thus, \emph{row polymorphism} is the polymorphism of key-value pairs. This fields has already received some research attention: a recent paper on the topic was written by Morris and McKinna~\cite{morris2019abstracting}. In the paper the authors introduce the \emph{Rose}\footnote{The name is a pun on ``rows'' referring to row polymorphism.} programming language which supports \emph{row polymorphism}.
454+
455+\subsubsection{Rose} \label{sec:rose}
456+
457+In \emph{Rose} row polymorphism is implemented by introducing two predicates on types. The first one denotes a \emph{combination} of two ``record'' types:
458+
459+\begin{equation} \label{eq:combination}
460+ \alpha \odot \beta \sim \gamma
461+\end{equation}
462+
463+
464+where $\alpha$ and $\beta$ are the two types that are being combined and $\gamma$ is the resulting type. The semantics of what \emph{combination} is depend on the semantics of the language itself. Examples include:
465+
466+\begin{enumerate}
467+ \item The two types can not have overlapping rows (combining types with overlapping rows is considered an error), and the resulting type is the union of the rows from the two types.
468+ \item The two types can have overlapping rows, and the resulting type is either a left-biased or right-biased union of the rows from the two types.
469+\end{enumerate}
470+
471+\def\clt{\mathrel{\mathrlap{\bigcirc}\!<\:}}
472+
473+The second predicate is:
474+
475+\begin{equation}
476+ \alpha \clt \beta
477+\end{equation}
478+
479+where all rows from $\alpha$ are present in $\beta$. This predicate isn't strictly necessary, and can be expressed through predicate~\ref{eq:combination}:
480+
481+\begin{equation}
482+ \alpha \clt \gamma = \exists \beta. \; \beta \odot \alpha \sim \gamma
483+\end{equation}
484+
485+Nevertheless, this predicate was still introduced as it closely matches the language term syntax and simplifies further processing of type.
486+
487+\subsubsection{Row polymophism in Nix} \label{sec:nixRowPoly}
488+
489+When deciding how to represent row polymorphism in Nix it is helpful to examine the base operators which would conjure row-related predicates during type inference. They include:
490+
491+\begin{enumerate}
492+ \item Attribute set field accessing (the \texttt{.} operator) as discussed in section~\ref{sec:attrSet}
493+ \item Attribute set field accessing with a default value (\texttt{\{a = 1;\}.b or 8})
494+ \item Attribute set field presence check (\texttt{\{a = 1;\} ? a})
495+ \item Attribute set updates (the \texttt{//} operator) as discussed in section~\ref{sec:attrSet}
496+\end{enumerate}
497+
498+In terms of the predicates described in section~\ref{sec:rose} the expression \texttt{x: x.a}, which is a lambda expression which return the field \texttt{a} from the attribute set supplied as the argument, would have the following type:
499+
500+\begin{equation}
501+ \forall \alpha \beta. \; (\{ a = \beta; \} \clt \alpha) \Rightarrow \alpha \rightarrow \beta
502+\end{equation}
503+
504+Analogously, the expression \texttt{x: y: x // {a = y;}}, which returns the attribute set supplied as the argument updated with the field \texttt{a} supplied as the second argument, would have the following type:
505+
506+\begin{equation}
507+ \forall \alpha \beta \gamma. \; (\alpha \odot \{ a = \beta; \} \sim \gamma) \Rightarrow \alpha \rightarrow \beta \rightarrow \gamma
508+\end{equation}
509+
510+The types of the other two expressions are not fully expressible with the predicates from \emph{Rose}. This is due to the \emph{Rose} type system not having support for working with missing (optional) rows as it is very dynamic in nature. Nix, on the other hand, being a dynamic language, has full support for introspecting values at runtime, including branching on the presence of a key in an \emph{attribute set} as mentioned before.
511+
512+\subsubsection{Nix row predicates}
513+
514+When deciding how to model the four base row-related operations we decided to derive the predicates from the operations themselves. This would yield simpler types, and having simpler types for base operations leads to simpler types overall. Furthermore, the type system would in all likelihood be easier for Nix developers to use and understand if it is expressed in terms of familiar operations.
515+
516+We will now describe the row predicates we have chosen for Nix. Note the analogy with the enumeration from section~\ref{sec:nixRowPoly}.
517+
518+\newcommand{\update}{\mathbin{/\!\!/}}
519+\newcommand{\optDot}{.\!?}
520+
521+\paragraph{Attribute set field predicate} \label{sec:attrSetPred}
522+
523+\begin{equation} \label{eq:fieldPred}
524+ \alpha. \text{x} = \beta
525+\end{equation}
409526
410−This problem is widely known as \emph{row polymorphism} – 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}.
527+The type $\alpha$ should be an attribute set and it should contain a field $x$ of the type $\beta$. This predicate arises from the use of the \emph{dot operator} (\texttt{.}) as discussed in section~\ref{sec:attrSet}. The syntax was chosen to be analogous to that of the Nix term syntax.
528+
529+The term \texttt{x: x.y} would yield the following type:
530+
531+\begin{equation} \label{eq:dotExample}
532+ \forall \alpha \beta. \; \alpha.\text{y} = \beta \Rightarrow \alpha \rightarrow \beta
533+\end{equation}
534+
535+\paragraph{Optional attribute set field predicate}
536+
537+\begin{equation} \label{eq:optFieldPred}
538+ \alpha \optDot \text{x} = \beta
539+\end{equation}
540+
541+The type $\alpha$ should be an attribute set and if it contains the field $x$, then the type of the field should be $\beta$. This predicate arises from the combination of the \emph{dot operator} (\texttt{.}) and the \emph{or operator} (\texttt{or}) which is used to supply a fallback value if the attribute set does not contain the required field. The syntax was chosen to be analogous to that of the Nix term syntax.
542+
543+The term \texttt{x: x.y or 1} would yield the following type:
544+
545+\begin{equation} \label{eq:optFieldPredExample}
546+ \forall \alpha. \; \alpha \optDot \text{y} = \text{Number} \Rightarrow \alpha \rightarrow \text{Number}
547+\end{equation}
548+
549+This predicate also arises from the use of the \emph{attribute set field presence check operator} (\texttt{?}). In that case the
550+
551+The term \texttt{x: x ? y} would yield the following type:
552+
553+\begin{equation} \label{eq:optFieldPredExample2}
554+ \forall \alpha \beta. \; \alpha \optDot \text{y} = \beta \Rightarrow \alpha \rightarrow \text{Bool}
555+\end{equation}
556+
557+\paragraph{Record update predicate}
558+
559+\begin{equation} \label{eq:upatePred}
560+ \alpha \update \beta \sim \gamma
561+\end{equation}
562+
563+All $\alpha$, $\beta$ and $\gamma$ should be \emph{attribute sets}. The \emph{attribute set} $\gamma$ should contain all fields from both $\alpha$ and $\beta$, preferring the types from $\beta$ if they happen to overlap. That is, if $\alpha$ and $\beta$ both contain a field with the same name, then $\gamma$ should contain the same field with the type from $\beta$. This behavior matches the way the \emph{update operator} (\texttt{//}) works as discussed in section~\ref{sec:update}.
564+
565+The term \texttt{x: y: x // y} would yield the following type:
566+
567+\begin{equation} \label{eq:updatePredExample}
568+ \forall \alpha \beta \gamma. \; \alpha \update \beta \sim \gamma \Rightarrow \alpha \rightarrow \beta \rightarrow \gamma
569+\end{equation}
570+
571+\subsection{Atomic types}
572+
573+Nix is a dynamic language, and as such, allows dynamic coercions between certain types. This means that we can not use the dynamic types from the interpreter to perform static type checking -- if we did that we would reject \emph{a lot} of valid programs.\footnote{``Valid'' not just in the sense that they would not produce runtime errors, but ``valid'' in the sense that the programmer would judge the program as being ``correct''.}
574+
575+For this reason, we will have to define a smaller set of static types that will be employed in our type system. The static types along with the corresponding dynamic types from table~\ref{tab:atomicTypes} are shown in table~\ref{tbl:staticTypes}.
576+
577+\begin{table}[hbp]
578+ \centering
579+ \caption{Mapping from static types to dynamic types}
580+ \begin{tabular}{ ||c||c|| } \hline
581+ \textbf{Static type} & \textbf{Dynamic types} \\ \hline \hline
582+ \multirow{3}{*}{String} & URI \\ \cline{2-2}
583+ & Path literal \\ \cline{2-2}
584+ & String \\ \hline \hline
585+ \multirow{2}{*}{Number} & Integer \\ \cline{2-2}
586+ & Float \\ \hline \hline
587+ Bool & Bool \\ \hline \hline
588+ Null & Null \\ \hline
589+ \end{tabular}
590+ \label{tbl:staticTypes}
591+\end{table}
592+
593+\begin{table*}[hbp]
594+ \centering
595+ \caption{Table of Nix Expression Language operators and their static types}
596+ \begin{tabular}{||c||c||c||c||} \hline
597+ \textbf{Operator} & \textbf{Operator description} & \textbf{Static type} \\ \hline \hline
598+ \texttt{-} & Numeric negation & $\text{Number} \rightarrow \text{Number}$ \\ \hline
599+ \texttt{!} & Boolean negation & $\text{Bool} \rightarrow \text{Bool}$ \\ \hline
600+ \texttt{++} & List concatenation & $\forall \alpha. \; [\alpha] \rightarrow [\alpha] \rightarrow [\alpha]$ \\ \hline
601+ \texttt{==} & Equality & $\forall \alpha. \; \alpha \rightarrow \alpha \rightarrow \text{Bool}$ \\ \hline
602+ \texttt{!=} & Not equality & $\forall \alpha. \; \alpha \rightarrow \alpha \rightarrow \text{Bool}$ \\ \hline
603+ \texttt{<} & Less than & $\text{Number} \rightarrow \text{Number} \rightarrow \text{Bool}$ \\ \hline
604+ \texttt{<=} & Less than or equal & $\text{Number} \rightarrow \text{Number} \rightarrow \text{Bool}$ \\ \hline
605+ \texttt{>} & Greater than & $\text{Number} \rightarrow \text{Number} \rightarrow \text{Bool}$ \\ \hline
606+ \texttt{>=} & Greater than or equal & $\text{Number} \rightarrow \text{Number} \rightarrow \text{Bool}$ \\ \hline
607+ \texttt{+} & Addition & $\forall \alpha. \; \strOrNum \sim \alpha \Rightarrow \alpha \rightarrow \alpha \rightarrow \alpha$ \\ \hline
608+ \texttt{-} & Subtraction & $\text{Number} \rightarrow \text{Number} \rightarrow \text{Number}$ \\ \hline
609+ \texttt{*} & Multiplication & $\text{Number} \rightarrow \text{Number} \rightarrow \text{Number}$ \\ \hline
610+ \texttt{/} & Division & $\text{Number} \rightarrow \text{Number} \rightarrow \text{Number}$ \\ \hline
611+ \texttt{\&\&} & Boolean ``and'' & $\text{Bool} \rightarrow \text{Bool} \rightarrow \text{Bool}$ \\ \hline
612+ \texttt{||||} & Boolean ``and'' & $\text{Bool} \rightarrow \text{Bool} \rightarrow \text{Bool}$ \\ \hline
613+ \texttt{->} & Implication & $\text{Bool} \rightarrow \text{Bool} \rightarrow \text{Bool}$ \\ \hline
614+ \texttt{//} & Attribute set update & $ \forall \alpha \beta \gamma. \; \alpha \update \beta \sim \gamma \Rightarrow \alpha \rightarrow \beta \rightarrow \gamma$ \\ \hline
615+ \end{tabular}
616+ \label{tbl:allOperators}
617+\end{table*}
618+
619+\subsection{Addition} \label{sec:addition}
620+
621+Among all operators, addition (\texttt{+}) has semantics that stand out from the rest: addition can be applied to either two \texttt{Number} operands or two \texttt{String} operands. All other operands are monomorphic in that they can only be applied to two operands of a predefined type. In that sense addition in polymorphic.
622+
623+Since our current implementation does not support sum types (see section~\ref{sec:sumTypes} for more detail), it is non-trivial to encode the type of addition in our current type system. We wanted to encode the type without having to resort to extending the type system too much (without implementing sum types).
624+
625+The simplest approach is to introduce a simple predicate which is satisfied only if the argument is either of type \texttt{Number} or \texttt{String}:
626+
627+\begin{equation}
628+ \strOrNum \sim \alpha
629+\end{equation}
630+
631+With this predicate the type of the addition operator (\texttt{+}) now becomes:
632+
633+\begin{equation}
634+ \forall \alpha. \; \strOrNum \sim \alpha \Rightarrow \alpha \rightarrow \alpha \rightarrow \alpha
635+\end{equation}
636+
637+\subsection{Typing rules}
638+
639+What follows is a formal description of the developed type system. For brevity we have omitted rules for typing literal constant values described in tables \ref{tab:atomicTypes} and \ref{tbl:staticTypes}, and most operators described in table~\ref{tbl:allOperators} as those rules are trivial.
640+
641+\subsubsection{Lists}
642+
643+After doing an informal analysis of existing Nix codebases we have concluded that it is not idiomatic to have heterogeneous lists in Nix. Thus, we have chosen to enforce homogenous lists in our static type system:
644+
645+\begin{equation}
646+ \trfrac
647+ {\Gamma \vdash e_1:\tau \quad \cdots \quad \Gamma \vdash e_n:\tau}
648+ {\Gamma \vdash [e_1 \; \cdots \; e_n ] : [\tau]}
649+\end{equation}
650+
651+\begin{equation}
652+ \trfrac
653+ {\Gamma \vdash e_1:[\tau] \qquad \Gamma \vdash e_2 : [\tau]}
654+ {\Gamma \vdash (e_1 +\!\!+ \: e_2) : [\tau]}
655+\end{equation}
656+
657+\subsubsection{Lambda abstractions}
658+
659+Typing rules for both lambda abstraction definitions and application is common among type system derived from Hindley-Milner:
660+
661+\begin{equation}
662+ \trfrac
663+ {\Gamma \vdash e_1:\tau_1 \rightarrow \tau_2 \qquad \Gamma \vdash e_2 : \tau_1}
664+ {\Gamma \vdash (e_1 \; e_2) : \tau_2}
665+\end{equation}
666+
667+\begin{equation}
668+ \trfrac
669+ {\Gamma, \text{x}: \tau_1 \vdash e : \tau_2}
670+ {\Gamma \vdash (\text{x: } e) : \tau_1 \rightarrow \tau_2}
671+\end{equation}
672+
673+\subsubsection{Addition}
674+
675+The rationale for having a special case for the addition operator is layed out in section~\ref{sec:addition}:
676+
677+\begin{equation}
678+ \trfrac
679+ {\Gamma \vdash e_1:\tau \qquad \Gamma \vdash e_2 : \tau \qquad \Gamma \vdash (\text{String} || \text{Number}) \sim \tau}
680+ {\Gamma \vdash (e_1 + e_2) : \tau}
681+\end{equation}
682+
683+\subsubsection{Conditional expressions}
684+
685+Conditionals are also very similar to what is described in the Hindley–Milner type system:
686+
687+\begin{equation}
688+ \trfrac
689+ {\Gamma \vdash e_1 : \text{Bool} \qquad \Gamma \vdash e_2 : \tau \qquad \Gamma \vdash e_3 : \tau}
690+ {\Gamma \vdash (\text{if} \; e_1 \; \text{then} \; e_2 \; \text{else} \; e_3) : \tau}
691+\end{equation}
692+
693+\subsubsection{\texttt{let}-generalization}
694+
695+Just like in many functional type systems, our type system will support let-generalization -- constants bound in a \texttt{let} expression are generalized as much as possible. All free type variables that were defined while inferring an expression are closed over.
696+
697+A simple version of rule is as follows:
698+
699+\begin{equation} \label{eq:letGeneralization}
700+ \trfrac
701+ {\Gamma \vdash e_1 : \tau_1 \qquad \Gamma, (\text{x}: \forall \{\text{ftv}(\tau_1) - \text{ftv}(\Gamma)\}. \; \tau_1) \vdash e_2 : \tau_2}
702+ {\Gamma \vdash (\text{let} \; \text{x = } e_1; \; \text{in} \; e_2) : \tau_2}
703+\end{equation}
704+
705+where $\text{fvt}(\alpha)$ is the set of all free variables that occur in $\alpha$.
706+
707+Of course, this does not cover all possible syntactic constructs -- it is only concerned with inferring a single declaration. It is trivially extendable to a series of independent declarations. Inferring recursive declarations is discussed in section~\ref{sec:recLet}.
708+
709+Inferring \emph{let expressions} trivially extends to inferring fields of \emph{attribute sets} and is omitted for brevity.
710+
711+\subsubsection{Instantiation}
712+
713+When using expressions with generalized types, we need to instantiate theme to concrete types:
714+
715+\begin{equation}
716+ \trfrac
717+ {\Gamma \vdash e : \forall \alpha. \; \tau_1}
718+ {\Gamma \vdash e: [\alpha \rightarrow \tau_2] \tau_1}
719+\end{equation}
720+
721+where $[\alpha \rightarrow \beta]\gamma$ denotes the result of substituting all free occurrences of $\alpha$ in $\gamma$ with $\beta$.
722+
723+\subsubsection{Attribute sets}
724+
725+Basic \emph{attribute set} operations are now trivially expressible through the predicate defined in section~\ref{sec:attrSetPred}:
726+
727+\begin{equation}
728+ \trfrac
729+ {\Gamma \vdash e_1 : \tau_1 \qquad \Gamma \vdash e_2 : \tau_2 \qquad \Gamma \vdash \tau_1 \update \tau_2 \sim \tau_3}
730+ {\Gamma \vdash (e_1 \update e_2) : \tau_3}
731+\end{equation}
732+
733+\begin{equation}
734+ \trfrac
735+ {\Gamma \vdash e.\text{x} = \tau}
736+ {\Gamma \vdash (e.\text{x}) : \tau}
737+\end{equation}
738+
739+\begin{equation}
740+ \trfrac
741+ {\Gamma \vdash e_2 : \tau \qquad \Gamma \vdash e_1 \optDot \text{x} = \tau}
742+ {\Gamma \vdash (e.\text{x} \; \text{or} \; e_2) : \tau}
743+\end{equation}
744+
745+\begin{equation}
746+ \trfrac
747+ {\Gamma \vdash e \optDot \text{x} = \tau}
748+ {\Gamma \vdash (e \; \text{?} \; \text{x}) : \text{Bool}}
749+\end{equation}
750+
751+When defining typing rules for \emph{attribute sets} we will use the notion of rows similar to what is used in the \emph{Rose} paper~\cite{morris2019abstracting}: for typing purposes an attribute set will be defined as a product of a set of \emph{rows} – key-value pairs: $\Pi \xi$ where $\xi$ is a set of \emph{rows}.
752+
753+A key-value pair will be denoted as $\text{x} = \alpha$ where `x' is the name of a field and $\alpha$ is the type of the field.
754+
755+Of course, a \emph{set of rows} can not contain multiple \emph{rows} with the same key.
756+
757+With that we can define how those predicate are actually satisfied:
758+
759+\begin{equation}
760+ \trfrac
761+ {(\text{x} = \tau) \in \xi}
762+ {(\Pi \xi).\text{x} = \tau}
763+\end{equation}
764+
765+\begin{equation}
766+ \trfrac
767+ {\text{x} \notin \xi}
768+ {(\Pi \xi) \optDot \text{x} = \tau}
769+\end{equation}
770+
771+\begin{equation}
772+ \trfrac
773+ {\Gamma \vdash \tau_1.\text{x} = \tau_2}
774+ {\Gamma \vdash (\tau_1 \optDot \text{x}) = \tau_2}
775+\end{equation}
776+
777+where $(\text{x} = \tau) \in \xi$ denotes the presence of the \emph{row} $(\text{x} = \tau)$ in the \emph{set} $\xi$, and $\text{x} \notin \xi$ denotes the absence of a \emph{row} with the key `x' in the \emph{set} $\xi$.
778+
779+The definition of the ``update'' predicate uses standard set comprehension notation:
780+
781+\begin{equation}
782+ \trfrac
783+ {}
784+ {\Pi \xi_1 \update \Pi \xi_2 \sim \Pi (\xi_2 \cup \{a = \tau || (a = \tau) \leftarrow \xi_1, a \notin \xi_2\})}
785+\end{equation}
786+
787+\subsubsection{with expressions} \label{sec:withExprType}
788+
789+\emph{with expressions} discussed in section~\ref{sec:withExp} are not difficult to define a typing rule for:
790+
791+\begin{equation}
792+ \trfrac
793+ {\Gamma \vdash e_1: \Pi \xi \qquad \Gamma, \xi \vdash e_2 : \tau}
794+ {\Gamma \vdash (\text{with } e_1\text{; } e_2) : \tau}
795+\end{equation}
796+
797+\emph{with expressions} do, however, pose a particularly hard problem when implementing the type system – we can't always statically know the fields in $e_1$ -- it can be passed in as a function argument. This means that the typing environment of a function can depend on its argument. Implementing this in a wholistic manner would require our type system support a form of dependent types. That is not a direction we want to pursue -- introducing dependent types would greatly complicate the type system to a point where automated type inference would not practical and the type system would be a lot harder to work with.
798+
799+Instead, we opted to define a heuristic which in our testing was proven to cover most practical cases: when encountering a variable in the body of a \emph{with expression}:
800+
801+\begin{enumerate}
802+ \item if a variable was defined in the body of the with expression and is in scope, return that type
803+ \item if the \emph{attribute set} from the \emph{with expression} is statically known and defined a key with the appropriate name then return that types
804+ \item if the \emph{attribute set} from the \emph{with expression} is not statically known and the outer context of the \emph{with expression} contains a variable with the appropriate name, return that type
805+ \item else, create a constraint that the first operand in the \emph{with expression} contains a field with the appropriate name and type
806+\end{enumerate}
411807
412808\section{Implementation} \label{sec:implementation}
413809
414−\section{Conclusion}
810+In this section we will explore the techniques employed in our implementation~\cite{github-source} of our type system. It is implemented in the \emph{Haskell}\footnote{\url{https://www.haskell.org}} programming language.
811+
812+% \subsubsection{Effects}
813+
814+% Our implementation uses the \emph{freer-simple}\footnote{\url{https://github.com/lexi-lambda/freer-simple}} library as the effects system.
815+
816+% The
817+
818+% \begin{code}
819+% type InferEffs =
820+% !! [ Fresh,
821+% Reader SrcSpan,
822+% Writer (SrcSpan, Errors),
823+% Writer PredicateError,
824+% Writer Pred,
825+% State (MKM.Map Pred),
826+% VariableMapEff,
827+% Writer UnifyingError,
828+% Writer InferError,
829+% State Substitution,
830+% TreeTracer
831+% ]
832+% \end{code}
833+
834+\subsection{Effect system}
835+
836+\subsubsection{Monad transformers}
837+
838+Developing a typechecker requires working with a large amount of non-trivial algorithms which influence each other in complex ways. A widespread way of dealing with such situations is introducing a common computational environment through which different parts of the program can interact (instead of ``manually'' passing state around). A well-established way of handling state in purely functional programming languages is the \emph{Monad} abstraction~\cite{moggi1988computational}.
839+
840+It is natural to want to abstract the underlying monad – explicitly declare what features a function actually needs the monad to have. Furthermore, it is desireable to decompose the features of the a monad not only in function definitions, but also at the call site – it is desireable to be able to conjure up monads with desireable traits in an ad-hoc manner. This has been achieved a while ago with \emph{monad transformers}~\cite{liang1995monad}.
841+
842+A drawback of monad transformers is their somewhat rigid nature – every behavior a monad needs to have needs to be defined as a distinct transformer with appropriate instances. The instances need to not only implement the desired behavior, but also explicitly ``pass through'' \emph{all} other effects that it might be used in combination with. This means that adding extra behavior leads to a large amount of boilerplate. Furthermore, monads themselves (monad transformers) are not in general composable, leading to a whole other set of problems. In addition, it is cumbersome to locally change parts of the underlying implementation of a monad dynamically – it might be useful to tweak some behavior in only a part of an algorithm, leaving the rest to the abstract implementation; monad transformers don't really have such capabilities.
843+
844+\subsubsection{Free monad extensible effects}
845+
846+Recently a new approach to effect systems has been getting more attention – \emph{free monads algebraic effects}~\cite{kiselyov2015freer, ploeg2014reflection, kiselyov2013extensible}. This approach solves the problems with monad transformers mentioned above. Rather than being transformers, effects are described as \emph{functors}. The composability problem is resolved due to functors being in general composable. Contrary to how monad transformers operate, effects (or their carriers) in \emph{free monads algebraic effects} (we will from now on refer to them as just \emph{algebraic effects}) don't have any particular interpretation of the effect associated with them. Effects are interpreted in an ad-hoc manner at the call site. Furthermore, this allows us to dynamically modify the behavior of effects without changing the types or implementations of functions we wish to change the behavior of.
847+% How we use \emph{algebraic effects} will be discussed in more detail in section~\ref{sec:implementation}.
848+
849+\subsection{Substitutions}
850+
851+\subsubsection{Substitutions in other implementations}
852+
853+In most typechecker implementations a substitution is a mapping from \emph{type variables} to \emph{types}. These substitutions are usually generated during the unification of type constraints and are, in general, applied to types as soon as they are available.
854+
855+The notion of substitution composition is usually taken to mean a binary operation which produces a new substitution that when applied (|sub|) to a type would produce the same result as sequentially applying the two source substitutions:
856+
857+\begin{code}
858+sub (s1 . s2) = sub s1 . sub s2
859+\end{code}
860+
861+\subsubsection{Substitutions in our implementation}
862+
863+In our implementation the application of substitutions is delayed as much as possible. They are applied in exactly two cases:
864+
865+\begin{enumerate}
866+ \item Right before unifying a constraint
867+ \item Right before closing over a type
868+\end{enumerate}
869+
870+This choice has several implications. Firstly, we can never have conflicting ``keys'' in substitutions (which is not the case in other implementations). Using this information we can define stronger substitution composition:
871+
872+\begin{code}
873+newtype Substitution = Substitution
874+ {unSubstitution :: Map TypeVariable NType}
875+
876+instance Semigroup Substitution where
877+ a'@(Substitution a) <> b'@(Substitution b) =
878+ Substitution $ M.unionWith undefined
879+ (fmap (sub b') a)
880+ (fmap (sub a') b)
881+\end{code}
882+
883+
884+This means that the order of composition does no longer matter, and applying the composition of substitutions yields more information than applying them sequentially.
885+
886+Another consequence of the decision to delay substitutions is that now the role of the |infer| step of typechecking only does the following three things:
887+
888+\begin{enumerate}
889+ \item returns a type variable that represents the type of the expression being inferred
890+ \item emits constraints generated during inferring
891+ \item emits predicates generated during inferring
892+\end{enumerate}
893+
894+\subsection{Typing context}
895+
896+The typing context in our implementation, in essence, consists of two distinct data structures:
897+
898+\begin{enumerate}
899+ \item the types of variables currently in scope
900+ \item the predicates which are applicable to those types
901+\end{enumerate}
902+
903+\subsubsection{Variables in scope}
904+
905+Note that in practice, the ``variables in scope'' data structure only needs to contain type variables since we apply substitutions as late as possible.
906+
907+In actual fact, due to the heuristics described in section~\ref{sec:withExprType}, the types of variables in scope can not be represented as a static data structure but rather is implemented as a scoped effect\footnote{Effects in our case are implemented using the \emph{freer-simple} library: \url{https://github.com/lexi-lambda/freer-simple}}:
908+
909+\begin{code}
910+data VariableMapEff x where
911+ LookupVariable
912+ :: VarName
913+ -> VariableMapEff (Maybe Scheme)
914+
915+lookupVar
916+ :: Member VariableMapEff eff
917+ => VarName -> Eff eff (Maybe Scheme)
918+lookupVar = send . LookupVariable
919+\end{code}
920+
921+This allows us to dynamically redefine what it means to look up a variable in terms of its implementation in the outer context.
922+
923+\subsubsection{Predicates}
924+
925+Predicates can, on the other hand, be stored as a static data structure. The only non-standard behavior is that the set of predicates needs to be queried and manipulated based on the types that they contain rather than on the predicates themselves.
926+
927+For this reason, we have developed a data structure we call ``multi-keyed map''.
928+
929+\begin{code}
930+class (Ord (Key t), Ord t) => Keyable t where
931+ type Key t :: Type
932+ getKeys :: t -> [Key t]
933+
934+data MultiKeyedMap t = MultiKeyedMap
935+ (M.Map (Key t) (S.Set t)) (S.Set t)
936+\end{code}
937+
938+The data structure is the product of two other data structures:
939+
940+\begin{enumerate}
941+ \item A map, mapping possible keys of the stored |t| to a set of values that contain the given key
942+ \item A set that contains the values that don't contain any keys
943+\end{enumerate}
944+
945+The |Keyable| typeclass is used to extract the keys from the values that need to be stored.
946+
947+The union of two maps is defined trivially -- by taking the union of the inner structures:
948+
949+\begin{code}
950+instance (Ord (Key t), Ord t)
951+ => Semigroup (MultiKeyedMap t) where
952+ (MultiKeyedMap x x') <> (MultiKeyedMap y y') =
953+ MultiKeyedMap
954+ (M.unionWith S.union x y) (x' <> y')
955+\end{code}
956+
957+Creating a singleton map from a single values is defined like so:
958+
959+\begin{code}
960+singleton :: Keyable t => t -> MultiKeyedMap t
961+singleton t = case getKeys t of
962+ [] -> MultiKeyedMap M.empty (S.singleton t)
963+ ks@(_ : _) -> MultiKeyedMap
964+ (M.fromList $ fmap (,s) ks) S.empty
965+ where
966+ s = S.singleton t
967+\end{code}
968+
969+With these operations defining the |insert| operation becomes trivial:
970+
971+\begin{code}
972+insert
973+ :: Keyable t
974+ => t -> MultiKeyedMap t -> MultiKeyedMap t
975+insert t m = m <> singleton t
976+\end{code}
977+
978+Now we come to the lookup operation. Note that the algorithmic complexity of querying the predicates by a type they contain is now the cost of an ordinary map lookup -- $O(log(n))$ where $n$ is the number of values contained in the map (in our case the number of all types referenced from within the predicates):
979+
980+\begin{code}
981+lookup
982+ :: Keyable t
983+ => Key t -> MultiKeyedMap t -> S.Set t
984+lookup k (MultiKeyedMap m _) =
985+ fromMaybe S.empty $ M.lookup k m
986+\end{code}
987+
988+\subsection{Closing over type variables}
989+
990+An observation we can make is the following: it only makes sense to close over the type variables that were generated during the inference of the type we are closing over. Any other type variables either:
991+
992+\begin{enumerate}
993+ \item are not present in the type
994+ \item are used in an outer lexical scope (environment)
995+\end{enumerate}
996+
997+This greatly simplifies implementing the typing rule~\ref{eq:letGeneralization} since instead of having to calculate a set of free type variables of the whole context, we only need to obtain a predicate that identifies if a type variable was introduced during the inference of an expression. This is made even easier if type variables are internally represented as integers, as they often are.
998+
999+In our case, this is complicated by the fact that we need to introduce type variables which are fields of an \emph{attribute set} from an outer lexical scope. This is problematic because while the type variable can be defined during inference, it is actually logically defined at the same position as the initial \emph{attribute set}; it has the same lexical scope as the \emph{attribute set}. So, the lexical scope of a type variable can not be derived from the inference context of an expression.
1000+
1001+A solution we came up with is to have two ways a type variable can be constructed -- as an ordinary type variable backed by a single integer or as a sub-type variable that has the same lexical scope as another type variable:
1002+
1003+\begin{code}
1004+data TypeVariable
1005+ = TypeVariable Int
1006+ | SubTypeVariable Int Int
1007+\end{code}
1008+
1009+This way, when applying a predicate to check the lexical scope of a type variable, we can always restrict ourselves to the first integer.
1010+
1011+\section{Evaluation of our implementation}
1012+
1013+In this section, we will examine how our implementation of the typechecker behaves on real input.
1014+
1015+\subsection{Evaluating nixpkgs}
1016+
1017+To evaluate our typechecker implementation~\cite{github-source}, we collected \emph{Nix} source files from the largest \emph{Nix} package repository – \emph{nixpkgs}\footnote{\url{https://github.com/NixOS/nixpkgs}}. Due to our current implementation not supporting file imports (file imports are the responsibility of the system calling the typechecker, not the type checker itself), the files were filtered down to those that do not contain import statements.
1018+
1019+Running our typechecker on the test set of \emph{Nix} source files results in \emph{1963} out of \emph{2948} (67\%) typechecking with no type errors.
1020+
1021+We believe this is a very good result since the files were not prepared in any way and were taken as-is from the package repository. Furthermore, it is important to note that rejecting a portion of ``valid'' programs is an unavoidable property of static typecheckers.
1022+
1023+We would also like to point out that even in those cases when type errors were encountered during typechecking, the typechecker still produces output types that can be useful to the developer and can be used for further typechecking of larger expressions (though providing fewer guarantees).
1024+
1025+\subsection{Evaluating common expressions}
1026+
1027+We will now examine a few language constructs to see how our typechecker handles them and what errors it can detect.
1028+
1029+\subsubsection{Script interpreters}
1030+
1031+In listing~\ref{lst:interpreters} we present a sample script that demonstrates our type inference algorithm.
1032+
1033+The function \texttt{getScriptInterpreters} takes a single ``package'' structure and returns a list of interpreters used in the scripts of the package. Out type inference algorithm correctly infers the following type of the function:
1034+
1035+\begin{equation}
1036+ \forall \alpha \beta \gamma. \; (\alpha. \text{scripts} = [\beta], \beta. \text{interpreter} = \gamma) \Rightarrow \alpha \rightarrow [\gamma]
1037+\end{equation}
1038+
1039+The constant \texttt{package} contains a sample ``package'' structure with three scripts. In real code, the structure would be a lot more complex, but it is simplified for brevity.
1040+
1041+The result of the whole expression (applying \texttt{getScriptInterpreters} to \texttt{package}) is correctly inferred by our type checker to have the type:
1042+
1043+\begin{equation}
1044+ [\text{String}]
1045+\end{equation}
1046+
1047+\begin{figure}
1048+ \begin{minipage}{\textwidth}
1049+ \begin{verbatim}
1050+let getScriptInterpreters = x:
1051+ builtins.map
1052+ (y: y.interpreter)
1053+ x.scripts;
1054+ package = {
1055+ scripts = [
1056+ {interpreter = "bash";}
1057+ {interpreter = "zsh";}
1058+ {interpreter = "fish";}
1059+ ];
1060+ };
1061+in getScriptInterpreters package
1062+\end{verbatim}
1063+ \end{minipage}
1064+ \caption{A sample nix program which gathers all interpreters used by a script in a package.}
1065+ \label{lst:interpreters}
1066+\end{figure}
1067+
1068+If a programmer makes a certain class of mistakes when developing the program, our typechecker would report an error. For example, the programmer might forget to access the ``scripts'' field of the package and pass the whole package by accident:
1069+
1070+\begin{verbatim}
1071+getScriptInterpreters =
1072+ x: builtins.map (y: y.interpreter) x;
1073+\end{verbatim}
1074+
1075+In that case, when evaluating the whole expression from listing~\ref{lst:interpreters}, he would receive the following error from the typechecker: ``could not match list with type \texttt{\{scripts = [{interpreter = String;}]\}}''. This error is a result of trying to \texttt{map} over an attribute set.
1076+
1077+\subsubsection{Haskell packages}
1078+
1079+In listing~\ref{lst:haskellPackages}, we defined a function \texttt{haskellPackage} that takes parameters for a Haskell package and returns a configuration that might describe how to build the package. Out tool correctly infers the type of the function:
1080+
1081+\begin{equation}
1082+ \begin{aligned}
1083+ \forall \alpha \beta. \; &
1084+ \\ ( & \alpha \optDot \text{compilerFlags} = [\text{String}],
1085+ \\ & \alpha \optDot \text{compilerVersion} = \text{String},
1086+ \\ & \alpha.\text{src} = \beta)
1087+ \\ \Rightarrow & \alpha
1088+ \\ \rightarrow & \{ \text{compiler} = \text{String};
1089+ \\ & \text{compilerFlags} = [\text{String}];
1090+ \\ & \text{src} = \beta; \}
1091+ \end{aligned}
1092+\end{equation}
1093+
1094+By the derived type of the function, we can clearly see that the \texttt{compilerFlags} and \texttt{compilerVersion} fields of the input attribute set are optional.
1095+
1096+The result of the whole expression is a list of applications of the \texttt{haskellPackage} function to multiple configurations. Ou implementation correctly infers the following type:
1097+
1098+\begin{equation}
1099+ [{\text{compiler} = \text{String}; \text{compilerFlags} = [\text{String}]; \text{src} = \text{String};}]
1100+\end{equation}
1101+
1102+\begin{figure}
1103+ \begin{minipage}{\textwidth}
1104+ \begin{verbatim}
1105+let haskellPackage = x: {
1106+ compiler = "ghc" + (x.compilerVersion or "900");
1107+ inherit (x) src;
1108+ compilerFlags = x.compilerFlags or ["-O3" "-j"];
1109+};
1110+in [
1111+ (haskellPackage {
1112+ src = ./project-m36;
1113+ compilerVersion = "865";
1114+ })
1115+ (haskellPackage {
1116+ src = ./pandoc;
1117+ compilerFlags = ["-static"];
1118+ })
1119+]
1120+ \end{verbatim}
1121+ \end{minipage}
1122+ \caption{A sample nix program which defined several haskell packages..}
1123+ \label{lst:haskellPackages}
1124+\end{figure}
1125+
1126+A mistake that is easy to make here is to forget to quote the \texttt{compilerVersion} field, leading to the type being `Number' instead of `String'. In that case, our implementation will convey exactly that in an error.
1127+
1128+Another common mistake is specifying the \texttt{compilerFlags} field as a single `String' instead of a list. In that case, our implementation will emit an appropriate error without the need to execute the expression.
1129+
1130+\section{Possible improvements}
1131+
1132+\subsection{Making predicates more user-friendly}
1133+
1134+\subsubsection{A novel technique}
1135+
1136+The reader might observe that, although the predicates have a parallel with the Nix term syntax, visually parsing predicates and mentally applying them to the specified type variables can be difficult even in such simple examples. Here we will explore a technique that can be used to make these predicates easier for the programmer to work with.
1137+
1138+The technique is based on the fact that a type variable by itself can only convey the following information:
1139+
1140+\begin{enumerate}
1141+ \item positional information -- a specific position in a type
1142+ \item identity information -- the type variable is equivalent to other type variables with the same name within the scope where it is declared
1143+\end{enumerate}
1144+
1145+Note that all of what follows is only concerned with syntactic constructs. It does in no way alter the semantic of the predicates described above.
1146+
1147+We would like to point out that all of the predicates have an operand which is the ``result'' of the predicate -- a single type variable that is said to be equivalent to a more complex expression. That is $\beta$ in predicates \ref{eq:fieldPred} and \ref{eq:optFieldPred}, and $\gamma$ in predicate \ref{eq:upatePred}.
1148+
1149+The observation we need to make is that \emph{referential transparency}\footnote{\url{https://en.wikipedia.org/wiki/Referential_transparency}} is a natural notion in functional programming languages like Nix, and it is natural to replace variables with their definitions. In some sense, the ``results'' of predicates described above can be interpreted as being ``defined'' by the predicate to be ``equal'' to the combination of the other operands and, as such, can be replaced with their definitions.
1150+
1151+This means that we can syntactically replace \emph{type variables} with a portion of a predicate -- replace the variable with the definition. If we apply this technique to the type~\ref{eq:dotExample}, we get the following type:
1152+
1153+\begin{equation}
1154+ \forall \alpha. \; \alpha \rightarrow \alpha.\text{y}
1155+\end{equation}
1156+
1157+When applied to the type~\ref{eq:updatePredExample}, it yields:
1158+
1159+\begin{equation}
1160+ \forall \alpha \beta. \; \alpha \rightarrow \beta \rightarrow (\alpha \update \beta)
1161+\end{equation}
1162+
1163+We believe the derived types above are a lot easier to understand than their initial counterparts.
1164+
1165+\subsubsection{Implementation notes}
1166+
1167+For practical reasons, when applying the technique, there should be a threshold that limits the syntactic complexity of types that can be ``inlined''. This is due to the types being potentially as big as literals in the source expressions.
1168+
1169+The complexity of types should also be used as a heuristic in cases where there are multiple potential ``definitions'' for the same type variable – it is preferable to use the ``definitions'' with the lowest syntactic complexity as it leads to simpler types.
1170+
1171+\subsubsection{Limitations}
1172+
1173+The technique is not applicable if the ``result'' of a predicate is not a type variable like in type \ref{eq:optFieldPredExample2}.
1174+
1175+Another limitation is that we can not remove predicates if their ``result'' type variable is not present in the head of the type like in type \ref{eq:optFieldPredExample}, since we would be losing typing information by doing so.
1176+
1177+\subsection{Type hints}
1178+
1179+Dynamic types in Nix contain more information than our static type system can convey. A usability improvement to provide more utility to the programmer might be to allow extra information to be tagged onto type information and propagated during type inference. This information would not influence the typechecking algorithm in any way. It would only provide utility to the person reading the resulting types or to external tools.
1180+
1181+Some information that might be useful as type hints:
1182+
1183+\begin{enumerate}
1184+ \item The dynamic type of strings (URI, Path, etc.) – useful information for the programmer
1185+ \item Programmer-supplied annotations. When writing nix expressions, it is common practice to have a program in some other programming language embedded in Nix as a string literal. It would be useful to propagate information about the underlying programming language to aid IDEs -- they could enable special syntax highlighting and linting based on the programming language.
1186+\end{enumerate}
1187+
1188+\subsection{Sum types} \label{sec:sumTypes}
1189+
1190+In our static type system, we introduced a ``special case'' for the \emph{addition operator} as it could be applied to a number of different types.
1191+
1192+The idea of this improvement is to generalize the case and allow the type system to handle arbitrary sums of arbitrary types. This can be implemented as a predicate stating that a type variable can be a certain type:
1193+
1194+\begin{equation}
1195+ \alpha \lessdot \beta
1196+\end{equation}
1197+
1198+where $\beta$ can be the type $\alpha$. With this predicate, our ``String or Number'' predicate can be expressed like so:
1199+
1200+\begin{equation}
1201+ \strOrNum \sim \alpha = (\text{String} \lessdot \alpha, \text{Number} \lessdot \alpha)
1202+\end{equation}
4151203
416−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.
1204+\section*{Conclusion}
4171205
418−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.
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.
4191207
4201208\newpage
4211209
422−\bibliographystyle{gost2008}
1210+\bibliographystyle{IEEEtran}
4231211\bibliography{bibl}
4241212
425−\registrationList
1213+% \registrationList
4261214
4271215\end{document}
docs/pres_2/img/ter.png

Binary file not shown.

docs/pres_2/pres.md+52−52
@@ -20,8 +20,9 @@ _Supervisor:_ Victor Kuliamin, Associate Professor, PhD
2020
2121---
2222
23−> Nix is a powerful package manager that makes package management reliable and reproducible.
24−-- [nixos.org](https://nixos.org)
23+## Nix is a powerful package manager that makes package management reliable and reproducible.
24+
25+#### – [nixos.org](https://nixos.org)
2526
2627---
2728
@@ -65,10 +66,12 @@ in derivation {
6566
6667---
6768
68−[.text: text-scale(0.75)]
69+[.text: text-scale(0.55)]
6970
7071# Terms and definitions
7172
73+**Type** – an attribute of data which tells the compiler or interpreter how the programmer intends to use the data
74+
7275**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
7376
7477**Type checking** – the process of verifying and enforcing the constraints of types.
@@ -102,14 +105,14 @@ Adding static typing would:
102105- Increase reliability of code
103106- Lower costs of development (resolving issue earlier is cheaper)
104107
105−_The typechecker should help find issues in existing code_
108+<!-- _The typechecker should help find issues in existing code_ -->
106109
107110---
108111
109112# The goal
110113
111−1. Develop a type static system for the existing Nix expression language
112−2. Develop a type checker for this type system
114+1. Develop a static type system for the existing Nix expression language
115+2. Develop a type checker for this static type system
113116
114117---
115118
@@ -129,31 +132,48 @@ The Hindley–Milner type system_[1]_ is a simple, but well-studied type system
129132
130133---
131134
132−# Functional requirements
135+# Methods and algorithms
133136
134−- The system should perform type checking on expression.
137+The developed type system is heavily influenced by the Hindley–Milner_[1]_ type system.
135138
136−- The system should analyze the types and presence of attributes in attribute sets.
137139
138−- The system should report encountered typechecking.
140+---
139141
140−- The system should report the use of undefined terms.
142+# Methods and algorithms
141143
142−- The system should report the resulting types of expressions to the user.
144+The developed type system supports parametric polymorphism to support code that does not require a specific type.
143145
144−---
146+```nix
147+x: y: x ++ y
148+```
145149
146−[.text: text-scale(0.85)]
150+```
151+∀ α. [α] -> [α] -> [α]
152+```
153+
154+---
147155
148156# Methods and algorithms
149157
150−The type system will be heavily influenced by the Hindley–Milner_[1]_ type system.
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+```
151167
152−The type system will implement parametric polymorphism to support code that does not require a specific type.
168+<br />
153169
154−The type system will implement arbitrary-ranked polymorphism_[3]_ with deep instantiation to disambiguate types in existing untyped code.
170+```nix
171+x: x // {v = "hello";}
172+```
155173
156−The type system will implement row polymorphism to work with attribute sets.
174+```
175+∀ α β. (α // {v = String;} ~ β) => α -> β
176+```
157177
158178---
159179
@@ -177,49 +197,28 @@ The typechecker is implemented in a two-step architecture:
177197
178198---
179199
180−# Current results
200+# Results
181201
182−A typechecker executable that successfully typechecks _most_ of the selected files from _nixpkgs_.
202+- Theoretical
203+ - A static type system for the Nix Expression Language
183204
184−The typechecker currently has some support for all language constructs.
205+- Practical
185206
186−![.right .fit](img/ter.png)
187−
188−---
207+ - A typechecker executable that successfully typechecks _most_ of the selected files from _nixpkgs_.
189208
190−[.build-lists: false]
209+ - The typechecker supports all language constructs.
191210
192−# Current results
193−
194−## Paper status
195−
196−1. Nix Expression Language (80%)
197−2. Existing typecheckers (100%)
198−3. Existing approaches (100%)
199−4. Architecture (20%)
200−5. Implementation (0%)
201−6. Conclusion (60%)
202−
203−![.right .fit](img/paper.png)
204−
205−---
206−
207−# What is left
208−
209−- Better type rendering (predicates)
210−- Subsumption
211−- A lot of minor big fixes in type inference
212−- Add type information about built-in functions
211+![.right .fit](img/ter.png)
213212
214213---
215214
216215# Potential future developments
217216
218217- Add support for user-supplied type annotations.
219− - Fork parser
220− - Bidirectional type inference_[4]_
221218- Type holes
222219- Language Server Integration
220+- Better type rendering
221+- Sum types
223222
224223---
225224
@@ -228,9 +227,10 @@ The typechecker currently has some support for all language constructs.
228227
229228# References
230229
231−1. Damas L., Milner R. Principal type-schemes for functional programs //Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages. – 1982. – С. 207-212.
232−2. Jones S. P. et al. Practical type inference for arbitrary-rank types //Journal of functional programming. – 2007. – Т. 17. – №. 1. – С. 1-82. MLA
233−3. Stuckey P. J., Sulzmann M., Wazny J. Improved inference for checking type annotations //arXiv preprint cs/0507036. – 2005. MLA
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.
234234
235235---
236236
@@ -347,7 +347,7 @@ let f = x: x.a; in f {b = "hello";}
347347```
348348
349349```
350−Error: key "a" NotPresent in { b = String; }
350+Error: key "a" not present in { b = String; }
351351```
352352
353353---
docs/trfrac.stynew file+193
@@ -0,0 +1,193 @@
1+%%
2+%% This is file `trfrac.sty',
3+%% generated with the docstrip utility.
4+%%
5+%% The original source files were:
6+%%
7+%% trfrac.dtx (with options: `file')
8+%%
9+%% This is a generated file.
10+%%
11+%% Copyright (C) 2009 by Kevin W. Hamlen
12+%%
13+%% This file may be distributed and/or modified under the conditions of
14+%% the LaTeX Project Public License, either version 1.3a of this license
15+%% or (at your option) any later version. The latest version of this
16+%% license is in:
17+%%
18+%% http://www.latex-project.org/lppl.txt
19+%%
20+%% and version 1.3a or later is part of all distributions of LaTeX version
21+%% 2004/10/01 or later.
22+%%
23+\newdimen\trtopgap\trtopgap\z@
24+\newdimen\trbotgap\trbotgap\z@
25+\newcommand\TRF@startp{31415926}
26+\newcommand\TRF@endp{27182818}
27+\newif\ifTRF@first
28+\newif\ifTRF@outer\TRF@outertrue
29+\newif\ifTRF@derivok\TRF@derivoktrue
30+\newdimen\TRF@lhang\TRF@lhang\z@
31+\newdimen\TRF@rhang\TRF@rhang\z@
32+\newdimen\TRF@lsave
33+\newdimen\TRF@ni
34+\newdimen\TRF@bi
35+\newdimen\TRF@bw
36+\newbox\TRF@numbox
37+\newbox\TRF@denombox
38+\newbox\TRF@eqbox
39+\newcommand\TRF@trfrac[3]{%
40+ \begingroup%
41+ \ifnum\lastpenalty=\TRF@startp\relax%
42+ \TRF@firsttrue%
43+ \else%
44+ \TRF@firstfalse%
45+ \fi%
46+ \TRF@lsave\TRF@lhang%
47+ \setbox\TRF@eqbox\hbox{\TRF@derivokfalse#1}%
48+ \ifdim\wd\TRF@eqbox>\z@%
49+ \setbox\TRF@eqbox\hbox{\kern\p@\unhbox\TRF@eqbox}%
50+ \fi%
51+ \TRF@lhang\z@%
52+ \setbox\TRF@numbox\hbox{%
53+ \TRF@outerfalse%
54+ \m@th$\strut%
55+ \penalty\TRF@startp\relax%
56+ #2%
57+ \ifnum\lastpenalty=\TRF@endp\relax\else%
58+ \global\TRF@rhang\z@%
59+ \fi%
60+ $%
61+ }%
62+ \setbox\TRF@denombox\hbox{%
63+ \TRF@derivokfalse%
64+ \m@th$\strut#3$%
65+ }%
66+ \dimen@\wd\TRF@numbox%
67+ \advance\dimen@-\TRF@rhang%
68+ \TRF@bw\dimen@%
69+ \advance\TRF@bw-\TRF@lhang%
70+ \ifdim\wd\TRF@denombox>\TRF@bw\TRF@bw\wd\TRF@denombox\fi%
71+ \advance\dimen@\TRF@lhang%
72+ \advance\dimen@-\wd\TRF@denombox%
73+ \TRF@ni\ifdim\dimen@>\z@\z@\else-.5\dimen@\fi%
74+ \TRF@bi\TRF@ni%
75+ \advance\TRF@bi\TRF@lhang%
76+ \TRF@lhang\ifdim\dimen@<\z@\z@\else.5\dimen@\fi%
77+ \ifdim\TRF@bi>\TRF@lhang\TRF@bi\TRF@lhang\fi%
78+ \TRF@rhang\TRF@ni%
79+ \advance\TRF@rhang\wd\TRF@numbox%
80+ \dimen@\TRF@bi%
81+ \advance\dimen@\TRF@bw%
82+ \advance\dimen@\wd\TRF@eqbox%
83+ \ifdim\dimen@>\TRF@rhang\TRF@rhang\dimen@\fi%
84+ \advance\TRF@rhang-\TRF@lhang%
85+ \advance\TRF@rhang-\wd\TRF@denombox%
86+ \global\TRF@rhang\TRF@rhang%
87+ \mathinner{%
88+ \ifTRF@outer%
89+ \raise\fontdimen22\textfont\tw@\vtop%
90+ \else%
91+ \vbox%
92+ \fi%
93+ {%
94+ \offinterlineskip%
95+ \hbox{%
96+ \vbox{%
97+ \dimen@\fontdimen8\textfont\tw@%
98+ \advance\dimen@-\fontdimen22\textfont\tw@%
99+ \advance\dimen@-.5\fontdimen8\textfont\thr@@%
100+ \advance\dimen@-\dp\TRF@numbox%
101+ \ifdim\dimen@<3\fontdimen8\textfont\thr@@%
102+ \dimen@3\fontdimen8\textfont\thr@@%
103+ \fi%
104+ \advance\dimen@\trtopgap%
105+ \hbox{\kern\TRF@ni\unhbox\TRF@numbox}%
106+ \kern\dimen@%
107+ \hbox{%
108+ \kern\TRF@bi%
109+ \vrule\@width\TRF@bw%
110+ \@height.5\fontdimen8\textfont\thr@@%
111+ \@depth.5\fontdimen8\textfont\thr@@%
112+ \vbox{%
113+ \dimen@.5\ht\TRF@eqbox%
114+ \advance\dimen@.5\dp\TRF@eqbox%
115+ \kern-\dimen@%
116+ \box\TRF@eqbox%
117+ \kern-\dimen@%
118+ }%
119+ }%
120+ }%
121+ }%
122+ \dimen@\fontdimen11\textfont\tw@%
123+ \advance\dimen@\fontdimen22\textfont\tw@%
124+ \advance\dimen@-.5\fontdimen8\textfont\thr@@%
125+ \advance\dimen@-\ht\TRF@denombox%
126+ \ifdim\dimen@<3\fontdimen8\textfont\thr@@%
127+ \dimen@3\fontdimen8\textfont\thr@@%
128+ \fi%
129+ \advance\dimen@\trbotgap%
130+ \kern\dimen@%
131+ \hbox{\kern\TRF@lhang\box\TRF@denombox}%
132+ }%
133+ }%
134+ \ifTRF@outer\else%
135+ \penalty\TRF@endp\relax%
136+ \fi%
137+ \global\TRF@lhang\ifTRF@first\TRF@lhang\else\TRF@lsave\fi%
138+ \endgroup%
139+}
140+\newcommand\trfrac[3][]{%
141+ \ifTRF@derivok%
142+ \ifmmode%
143+ \TRF@trfrac{#1}{#2}{#3}%
144+ \else%
145+ \TRF@mmerr%
146+ \fi%
147+ \else%
148+ \TRF@derr%
149+ \fi%
150+}
151+\newcommand\TRF@mmerr{%
152+ \PackageError{trfrac}{\protect\trfrac\space%
153+ only allowed in math mode}%
154+ {I encountered a \protect\trfrac\space%
155+ macro without first encountering a begin-math token.}%
156+}
157+\newcommand\TRF@derr{%
158+ \PackageError{trfrac}{\protect\trfrac\space%
159+ not allowed in the consequent of another \protect\trfrac}%
160+ {\protect\trfrac\space can only appear in the premise (numerator%
161+ ) of another \protect\trfrac, not in the consequent (denominator%
162+ ) of a \protect\trfrac.}%
163+}
164+\newcommand\TRF@next{}
165+\newcommand\TRF@sep{\futurelet\TRF@next\TRF@@sep}
166+\newcommand\TRF@@sep{%
167+ \ifx[\TRF@next%
168+ \let\TRF@next\TRF@separg%
169+ \else%
170+ \let\TRF@next\TRF@sepnoarg%
171+ \fi%
172+ \TRF@next%
173+}
174+\newcommand\TRF@separg{}
175+\def\TRF@separg[#1]{\cr\noalign{\kern#1}}
176+\newcommand\TRF@sepnoarg{\cr}
177+\newenvironment{trgather}{%
178+ \vbox\bgroup%
179+ \let\\\TRF@sep%
180+ \ialign\bgroup\hfil{\m@th$##$}\hfil\cr%
181+}{%
182+ \crcr\egroup\egroup%
183+}
184+\newenvironment{tralign}{%
185+ \vbox\bgroup%
186+ \let\\\TRF@sep%
187+ \ialign\bgroup\hfil{\m@th$##\null$}&{\m@th$\null##$}\hfil\cr%
188+}{%
189+ \crcr\egroup\egroup%
190+}
191+\endinput
192+%%
193+%% End of file `trfrac.sty'.
paper.pdfnew file

Binary file not shown.

src/Tix/Builtins.hsnew file+68
@@ -0,0 +1,68 @@
1+module Tix.Builtins (builtins) where
2+
3+import Data.Map (Map)
4+import qualified Data.Map as M
5+import Data.Text (Text)
6+import Tix.Types
7+
8+builtins :: Map Text Scheme
9+builtins =
10+ M.fromList
11+ [ ( "builtins",
12+ scheme $
13+ NAttrSet $
14+ M.fromList
15+ [ ("abort", scheme $ NAtomic String :-> deBruijn 0 0),
16+ ("add", [StringOrNumber $ deBruijn 2 0] :=> (deBruijn 3 0 :-> (deBruijn 4 0 :-> deBruijn 4 0))),
17+ ("all", [] :=> ((deBruijn 4 0 :-> NAtomic Bool) :-> (List (deBruijn 5 0) :-> NAtomic Bool))),
18+ ("any", [] :=> ((deBruijn 4 0 :-> NAtomic Bool) :-> (List (deBruijn 5 0) :-> NAtomic Bool))),
19+ ("attrNames", [] :=> (deBruijn 3 0 :-> List (NAtomic String))),
20+ ("attrValues", [] :=> (deBruijn 3 0 :-> List (deBruijn 0 0))),
21+ ("baseNameOf", [] :=> (NAtomic String :-> NAtomic String)),
22+ ("bitAnd", [] :=> (NAtomic Number :-> (NAtomic Number :-> NAtomic Number))),
23+ ("bitXor", [] :=> (NAtomic Number :-> (NAtomic Number :-> NAtomic Number))),
24+ ("bitOr", [] :=> (NAtomic Number :-> (NAtomic Number :-> NAtomic Number))),
25+ ("ceil", [] :=> (NAtomic Number :-> NAtomic Number)),
26+ ("compareVersions", [] :=> (NAtomic String :-> (NAtomic String :-> NAtomic Number))),
27+ ("concatLists", [] :=> (List (List (deBruijn 5 0)) :-> List (deBruijn 4 0))),
28+ ("concatMap", [] :=> ((deBruijn 4 0 :-> List (deBruijn 5 1)) :-> (List (deBruijn 5 0) :-> List (deBruijn 5 1)))),
29+ ("map", [] :=> ((deBruijn 4 0 :-> deBruijn 4 1) :-> (List (deBruijn 5 0) :-> List (deBruijn 5 1)))),
30+ ("catAttrs", [] :=> (NAtomic String :-> (List (deBruijn 0 0) :-> List (deBruijn 0 0))))
31+ ]
32+ ),
33+ ( "derivation",
34+ [ deBruijn 2 0
35+ // attrSet
36+ [ ("all", scheme $ List (deBruijn 5 1)),
37+ ("drvAttrs", scheme $ deBruijn 4 0),
38+ ("drvPath", string),
39+ ("out", scheme $ deBruijn 4 1),
40+ ("outPath", string),
41+ ("outputName", string),
42+ ("type", string)
43+ ]
44+ $ deBruijn 2 1,
45+ deBruijn 2 0 .! ("name", string),
46+ deBruijn 2 0 .! ("builder", string),
47+ deBruijn 2 0 .! ("system", string),
48+ deBruijn 2 0 .? ("args", scheme $ List (NAtomic String)),
49+ deBruijn 2 0 .? ("outputs", scheme $ List (NAtomic String))
50+ ]
51+ :=> (deBruijn 3 0 :-> deBruijn 3 1)
52+ )
53+ ]
54+
55+string :: Scheme
56+string = scheme $ NAtomic String
57+
58+deBruijn :: Int -> Int -> NType
59+deBruijn a b = NBruijn $ DeBruijn a b
60+
61+attrSet :: [(Text, Scheme)] -> NType
62+attrSet = NAttrSet . M.fromList
63+
64+(.!) :: NType -> (Text, Scheme) -> Pred
65+(.!) = HasField RequiredField
66+
67+(.?) :: NType -> (Text, Scheme) -> Pred
68+(.?) = HasField OptionalField
src/Tix/Typechecker.hs+50−20
@@ -52,6 +52,7 @@ import Data.Traversable
5252import Nix.Atoms
5353import Nix.Expr
5454import Nix.Pretty
55+import Tix.Builtins (builtins)
5556import Tix.Types
5657import Prelude as P
5758
@@ -63,6 +64,7 @@ getType r =
6364 . evalState @(MKM.Map Pred) mempty
6465 . interpret @(Writer Pred) (\(Tell x) -> modify (<> MKM.singleton x))
6566 . runVariableMapEff
67+ . localVariablesMap builtins
6668 . evalState @Substitution mempty
6769 . runState @[(TypeVariable, SrcSpan)] []
6870 . interpret @(Writer (TypeVariable, SrcSpan)) (\(Tell x) -> modify (x :))
@@ -144,9 +146,11 @@ instance Free Pred where
144146 free = \case
145147 Update x y z -> free x <> free y <> free z
146148 HasField _ x (_, y) -> free x <> free y
149+ StringOrNumber x -> free x
147150 sub s = \case
148151 Update x y z -> Update (sub s x) (sub s y) (sub s z)
149152 HasField r t (f, v) -> HasField r (sub s t) (f, sub s v)
153+ StringOrNumber x -> StringOrNumber $ sub s x
150154
151155instance Free Scheme where
152156 free (x :=> y) = free x <> free y
@@ -183,7 +187,7 @@ prettySubstitution :: Substitution -> A.Value
183187prettySubstitution = A.toJSON . M.mapKeysMonotonic (TL.pack . show) . fmap renderPretty . unSubstitution
184188
185189instance Semigroup Substitution where
186− x'@(Substitution x) <> y'@(Substitution y) = Substitution (M.unionWithKey (error "invariant") (fmap (sub y') x) (fmap (sub x') y))
190+ x'@(Substitution x) <> y'@(Substitution y) = Substitution (M.unionWith (error "invariant") (fmap (sub y') x) (fmap (sub x') y))
187191
188192instance Monoid Substitution where
189193 mempty = Substitution mempty
@@ -275,6 +279,7 @@ data UnifyingError
275279data PredicateError
276280 = KeyNotPresent Text NType
277281 | NotAnAttributeSet NType
282+ | NotAddable NType
278283 deriving stock (Eq, Show)
279284
280285data InferError
@@ -358,13 +363,13 @@ instantiate s = do
358363infer :: NExprLoc -> InferM' NType
359364infer (Fix (Compose (Ann src x))) = local (const src) $ case x of
360365 NConstant a -> return . NAtomic $ case a of
361− NURI {} -> URI
362− NInt {} -> Integer
363− NFloat {} -> Float
366+ NURI {} -> String
367+ NInt {} -> Number
368+ NFloat {} -> Number
364369 NBool {} -> Bool
365370 NNull {} -> Null
366− NLiteralPath {} -> return . NAtomic $ Path
367− NEnvPath {} -> return . NAtomic $ Path
371+ NLiteralPath {} -> return . NAtomic $ String
372+ NEnvPath {} -> return . NAtomic $ String
368373 NStr {} -> return $ NAtomic String
369374 NSym var ->
370375 lookupVar var
@@ -374,17 +379,16 @@ infer (Fix (Compose (Ann src x))) = local (const src) $ case x of
374379 xs' <- traverse infer xs
375380 traverse_ tell . fmap (uncurry (:~)) $ zip xs' (tail xs')
376381 case xs' of
377− [] -> NTypeVariable <$> fresh
382+ [] -> List . NTypeVariable <$> fresh
378383 y : _ -> return $ List y
379384 NUnary NNeg y -> do
380385 t <- infer y
381− -- TODO: Infer either Float or Integer
382− -- tell $ t :~ (normalType . NAtomic $ )
383− return t
386+ t ~~ NAtomic Number
387+ return $ NAtomic Number
384388 NUnary NNot y -> do
385389 t <- infer y
386390 t ~~ NAtomic Bool
387− return t
391+ return $ NAtomic Bool
388392 NBinary NUpdate lhs rhs -> do
389393 lhsT <- infer lhs
390394 rhsT <- infer rhs
@@ -411,7 +415,12 @@ infer (Fix (Compose (Ann src x))) = local (const src) $ case x of
411415 NBinary NLte lhs rhs -> comparison lhs rhs
412416 NBinary NGt lhs rhs -> comparison lhs rhs
413417 NBinary NGte lhs rhs -> comparison lhs rhs
414− NBinary NPlus lhs rhs -> math lhs rhs
418+ NBinary NPlus lhs rhs -> do
419+ lhst <- infer lhs
420+ rhst <- infer rhs
421+ lhst ~~ rhst
422+ tell $ StringOrNumber lhst
423+ return lhst
415424 NBinary NMinus lhs rhs -> math lhs rhs
416425 NBinary NMult lhs rhs -> math lhs rhs
417426 NBinary NDiv lhs rhs -> math lhs rhs
@@ -514,21 +523,23 @@ infer (Fix (Compose (Ann src x))) = local (const src) $ case x of
514523 comparison lhs rhs = do
515524 lhst <- infer lhs
516525 rhst <- infer rhs
517− -- TODO: Infer lhst and rhst are either Integer or Double or String
526+ tell (StringOrNumber lhst)
518527 lhst ~~ rhst
519528 return $ NAtomic Bool
520529 math lhs rhs = do
521530 lhst <- infer lhs
522531 rhst <- infer rhs
523− -- TODO: Infer lhst and rhst are either Integer or Double
524− lhst ~~ rhst
525− return lhst
532+ let t = NAtomic Number
533+ lhst ~~ t
534+ rhst ~~ t
535+ return t
526536 logic lhs rhs = do
527537 lhst <- infer lhs
528538 rhst <- infer rhs
529− rhst ~~ NAtomic Bool
530− lhst ~~ NAtomic Bool
531− return $ NAtomic Bool
539+ let t = NAtomic Bool
540+ rhst ~~ t
541+ lhst ~~ t
542+ return t
532543
533544type NormalizedBinding' = F.Free (Map VarName)
534545
@@ -788,6 +799,7 @@ solveAndClose range (cs :=> t) = evalState @Substitution mempty $ do
788799 solveAndClose newRange $ sub s $ (collectedPreds <> solvedPreds) :=> t
789800
790801solveConstraints ::
802+ forall effs.
791803 Members
792804 '[ Fresh,
793805 Writer Pred,
@@ -802,6 +814,15 @@ solveConstraints ::
802814 Eff effs [Pred]
803815solveConstraints _ [] = pure []
804816solveConstraints 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
805826 HasField r (NAttrSet ts) (f, t) -> case M.lookup f ts of
806827 Nothing -> do
807828 case r of
@@ -829,10 +850,19 @@ solveConstraints range (p : ps) = case p of
829850 HasField _ t _ -> do
830851 tell $ NotAnAttributeSet t
831852 solveConstraints range ps
853+ -- Update
832854 (Update (NAttrSet a) (NAttrSet b) t) -> do
833855 (NAttrSet $ b <> a) ~~ t
834856 solveConstraints range ps
835− _ -> (p :) <$> 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
836866
837867partitionWith :: (a -> Either b c) -> [a] -> ([b], [c])
838868partitionWith f = partitionEithers . map f
src/Tix/Types.hs+10−6
@@ -39,7 +39,10 @@ data Pred
3939 -- ^ y
4040 !NType
4141 -- ^ z
42− | HasField {- Is the field optional? -} !FieldStrictness !NType !(Text, Scheme)
42+ -- | 'x.a ~ y'
43+ | HasField !FieldStrictness !NType !(Text, Scheme)
44+ | -- | supports '+' operator (strings and numbers)
45+ StringOrNumber !NType
4346 deriving stock (Eq, Ord, Show, Generic)
4447
4548data FieldStrictness = OptionalField | RequiredField
@@ -112,6 +115,7 @@ instance TraversableNTypes Pred where
112115 <$> traverseNTypesWith ctx f x
113116 <*> traverseNTypesWith ctx f y
114117 <*> traverseNTypesWith ctx f z
118+ (StringOrNumber x) -> StringOrNumber <$> traverseNTypesWith ctx f x
115119 {-# INLINE traverseNTypesWith #-}
116120
117121traverseNTypes :: TraversableNTypes s => Traversal' s TerminalNType
@@ -128,13 +132,10 @@ data NType
128132 deriving stock (Eq, Ord, Show, Generic)
129133
130134data AtomicType
131− = Integer
132− | Float
135+ = Number
133136 | Bool
134137 | String
135− | Path
136138 | Null
137− | URI
138139 deriving stock (Eq, Ord, Show, Generic)
139140
140141instance Pretty AtomicType where
@@ -251,7 +252,10 @@ prettyScheme u@(cs :=> t) = do
251252 x' <- prettyNType False x
252253 y' <- prettyNType False y
253254 z' <- prettyNType False z
254− return $ group $ paren x' <+> "//" <> line <> paren y' <+> "~" <> line <> paren z'
255+ return $ group $ x' <+> "//" <> line <> y' <+> "~" <> line <> z'
256+ prettyPred (StringOrNumber x) = do
257+ x' <- prettyNType False x
258+ return $ "(String | Number)" <+> "~" <+> x'
255259 paren = bracketed "(" ")"
256260
257261-- | Returns the set of all De Bruijn type variables relative to the outermost
test/golden/importless/0.1.txt+1−1
@@ -21,7 +21,7 @@
2121 version = String;
2222 } ->
2323 κ,
24− γ.optional = λ -> Path -> θ,
24+ γ.optional = λ -> String -> θ,
2525 β.isMusl = λ,
2626 μ.licenses = ν,
2727 μ.platforms = ξ,
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+1−1
@@ -6,7 +6,7 @@
66 meta =
77 {description = String; homepage = String; license = δ; platforms = ε;};
88 name = String;
9− patches = [Path];
9+ patches = [String];
1010 src = ζ;
1111 } ->
1212 η,
test/golden/importless/0.11.txt+1−1
@@ -1 +1 @@
1−∀ α. {callPackage = Path -> {sha256 = String; version = String;} -> α;} -> α
1+∀ α. {callPackage = String -> {sha256 = String; version = String;} -> α;} -> α
test/golden/importless/0.12.txt+1−1
@@ -1 +1 @@
1−∀ α. {callPackage = Path -> {sha256 = String; version = String;} -> α;} -> α
1+∀ α. {callPackage = String -> {sha256 = String; version = String;} -> α;} -> α
test/golden/importless/0.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.29.txt+1−1
@@ -16,7 +16,7 @@
1616 version = String;
1717 } ->
1818 λ,
19− γ.optionals = β -> [Path] -> ι,
19+ γ.optionals = β -> [String] -> ι,
2020 μ.licenses = ν,
2121 μ.platforms = ξ,
2222 ν.lgpl2 = ζ,
test/golden/importless/0.3.3.txt+2−2
@@ -1,5 +1,5 @@
11∀ α β γ.
2−( (α) // ({patches = [Path]; sha256 = String; version = String;}) ~ (β),
3− α.callPackage = Path -> β -> γ
2+( α // {patches = [String]; sha256 = String; version = String;} ~ β,
3+ α.callPackage = String -> β -> γ
44) =>
55α -> γ
test/golden/importless/0.5.1.txt+2−2
@@ -1,6 +1,6 @@
11∀ α β γ δ.
2−( (α) // ({prePatch = String; src = β; version = String;}) ~ (γ),
3− α.callPackage = Path -> γ -> δ,
2+( α // {prePatch = String; src = β; version = String;} ~ γ,
3+ α.callPackage = String -> γ -> δ,
44 α.fetchurl = {sha256 = String; url = String;} -> β
55) =>
66α -> δ
test/golden/importless/0.61.txt+2−2
@@ -16,7 +16,7 @@
1616 name = String;
1717 nativeBuildInputs = [ι];
1818 outputs = [String];
19− patches = [Path];
19+ patches = [String];
2020 propagatedBuildInputs = [κ];
2121 src = λ;
2222 } ->
@@ -35,7 +35,7 @@
3535{ cairo = π;
3636 cmake = ι;
3737 curl = π;
38− fetchpatch = {name = String; sha256 = String; url = String;} -> Path;
38+ fetchpatch = {name = String; sha256 = String; url = String;} -> String;
3939 fetchurl = {sha256 = String; url = String;} -> λ;
4040 fontconfig = κ;
4141 freetype = κ;
test/golden/importless/0.8.5.txt+2−2
@@ -1,6 +1,6 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν.
22( α.?meta = β,
3− β.?platforms = γ,
3+ β.?platforms = [γ],
44 δ.lib = ε,
55 δ.mkDerivation =
66 { buildInputs = [α];
@@ -10,7 +10,7 @@
1010 homepage = String;
1111 license = ζ;
1212 maintainers = [η];
13− platforms = γ;
13+ platforms = [γ];
1414 };
1515 patches = [θ];
1616 pname = String;
test/golden/importless/0.9.txt+1−1
@@ -14,7 +14,7 @@
1414 maintainers = [ε];
1515 };
1616 name = String;
17− patches = [Path];
17+ patches = [String];
1818 postPatch = String;
1919 src = ζ;
2020 version = String;
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 = [Path];
16+ patches = [String];
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+2−2
@@ -1,6 +1,6 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
22( α.?meta = β,
3− β.?platforms = γ,
3+ β.?platforms = [γ],
44 δ.lib = ε,
55 δ.mkDerivation =
66 { buildInputs = [α];
@@ -11,7 +11,7 @@
1111 homepage = String;
1212 license = ζ;
1313 maintainers = [η];
14− platforms = γ;
14+ platforms = [γ];
1515 };
1616 name = String;
1717 preBuild = String;
test/golden/importless/1.3.txt+1−1
@@ -27,7 +27,7 @@
2727 minorVersion = String;
2828 site = String;
2929 };
30− patches = [Path];
30+ patches = [String];
3131 pname = String;
3232 postInstall = String;
3333 postPatch = String;
test/golden/importless/1.5.txt+2−2
@@ -1,6 +1,6 @@
11∀ α β γ δ ε ζ η θ ι κ λ.
22( α.?meta = β,
3− β.?platforms = γ,
3+ β.?platforms = [γ],
44 δ.lib = ε,
55 δ.mkDerivation =
66 { buildInputs = [α];
@@ -15,7 +15,7 @@
1515 homepage = String;
1616 license = ζ;
1717 maintainers = [η];
18− platforms = γ;
18+ platforms = [γ];
1919 };
2020 name = String;
2121 src = θ;
test/golden/importless/1.55.txt+2−2
@@ -1,6 +1,6 @@
11∀ α β γ δ.
2−( (α) // ({patches = [Path]; src = β; version = String;}) ~ (γ),
3− α.callPackage = Path -> γ -> δ,
2+( α // {patches = [String]; src = β; version = String;} ~ γ,
3+ α.callPackage = String -> γ -> δ,
44 α.fetchurl = {sha256 = String; url = String;} -> β
55) =>
66α -> δ
test/golden/importless/1.59.txt+2−2
@@ -1,6 +1,6 @@
11∀ α β γ δ ε.
2−( (α) // ({src = β; version = String;}) ~ (γ),
3− α.callPackage = Path -> γ -> δ,
2+( α // {src = β; version = String;} ~ γ,
3+ α.callPackage = String -> γ -> δ,
44 α.fetchurl = {sha256 = String; url = String;} -> β,
55 α.stdenv = ε
66) =>
test/golden/importless/1.60.txt+2−2
@@ -1,6 +1,6 @@
11∀ α β γ δ ε.
2−( (α) // ({src = β; version = String;}) ~ (γ),
3− α.callPackage = Path -> γ -> δ,
2+( α // {src = β; version = String;} ~ γ,
3+ α.callPackage = String -> γ -> δ,
44 α.fetchurl = {sha256 = String; url = String;} -> β,
55 α.stdenv = ε
66) =>
test/golden/importless/1.65.txt+2−2
@@ -1,6 +1,6 @@
11∀ α β γ δ ε.
2−( (α) // ({src = β; version = String;}) ~ (γ),
3− α.callPackage = Path -> γ -> δ,
2+( α // {src = β; version = String;} ~ γ,
3+ α.callPackage = String -> γ -> δ,
44 α.fetchurl = {sha256 = String; url = String;} -> β,
55 α.stdenv = ε
66) =>
test/golden/importless/1.66.txt+2−2
@@ -1,6 +1,6 @@
11∀ α β γ δ ε.
2−( (α) // ({src = β; version = String;}) ~ (γ),
3− α.callPackage = Path -> γ -> δ,
2+( α // {src = β; version = String;} ~ γ,
3+ α.callPackage = String -> γ -> δ,
44 α.fetchurl = {sha256 = String; url = String;} -> β,
55 α.stdenv = ε
66) =>
test/golden/importless/1.67.txt+3−3
@@ -1,7 +1,7 @@
11∀ α β γ δ ε ζ η θ ι.
2−( (α) // ({patches = [β]; src = γ; version = String;}) ~ (δ),
3− α.callPackage = Path -> δ -> ε,
4− α.fetchpatch = {sha256 = String; stripLen = Integer; url = String;} -> β,
2+( α // {patches = [β]; src = γ; version = String;} ~ δ,
3+ α.callPackage = String -> δ -> ε,
4+ α.fetchpatch = {sha256 = String; stripLen = Number; url = String;} -> β,
55 α.fetchurl = {sha256 = String; url = String;} -> γ,
66 α.stdenv = ζ,
77 ζ.cc = η,
test/golden/importless/1.68.txt+2−2
@@ -1,6 +1,6 @@
11∀ α β γ δ ε ζ.
2−( (α) // ({src = β; version = String;}) ~ (γ),
3− α.callPackage = Path -> γ -> δ,
2+( α // {src = β; version = String;} ~ γ,
3+ α.callPackage = String -> γ -> δ,
44 α.fetchpatch = ε,
55 α.fetchurl = {sha256 = String; url = String;} -> β,
66 α.stdenv = ζ
test/golden/importless/1.69.txt+2−2
@@ -1,6 +1,6 @@
11∀ α β γ δ ε ζ.
2−( (α) // ({src = β; version = String;}) ~ (γ),
3− α.callPackage = Path -> γ -> δ,
2+( α // {src = β; version = String;} ~ γ,
3+ α.callPackage = String -> γ -> δ,
44 α.fetchpatch = ε,
55 α.fetchurl = {sha256 = String; url = String;} -> β,
66 α.stdenv = ζ
test/golden/importless/1.70.txt+2−2
@@ -1,6 +1,6 @@
11∀ α β γ δ ε ζ.
2−( (α) // ({src = β; version = String;}) ~ (γ),
3− α.callPackage = Path -> γ -> δ,
2+( α // {src = β; version = String;} ~ γ,
3+ α.callPackage = String -> γ -> δ,
44 α.fetchpatch = ε,
55 α.fetchurl = {sha256 = String; url = String;} -> β,
66 α.stdenv = ζ
test/golden/importless/1.71.txt+2−2
@@ -1,6 +1,6 @@
11∀ α β γ δ ε ζ.
2−( (α) // ({src = β; version = String;}) ~ (γ),
3− α.callPackage = Path -> γ -> δ,
2+( α // {src = β; version = String;} ~ γ,
3+ α.callPackage = String -> γ -> δ,
44 α.fetchpatch = ε,
55 α.fetchurl = {sha256 = String; urls = [String];} -> β,
66 α.stdenv = ζ
test/golden/importless/1.72.txt+2−2
@@ -1,6 +1,6 @@
11∀ α β γ δ ε ζ.
2−( (α) // ({src = β; version = String;}) ~ (γ),
3− α.callPackage = Path -> γ -> δ,
2+( α // {src = β; version = String;} ~ γ,
3+ α.callPackage = String -> γ -> δ,
44 α.fetchpatch = ε,
55 α.fetchurl = {sha256 = String; urls = [String];} -> β,
66 α.stdenv = ζ
test/golden/importless/1.8.5.txt+1−1
@@ -36,7 +36,7 @@
3636 π.platforms = σ,
3737 ρ.goibhniu = η,
3838 σ.linux = θ,
39− τ.optionals = υ -> [Path] -> [κ]
39+ τ.optionals = υ -> [String] -> [κ]
4040) =>
4141{ autoconf213 = ο;
4242 fetchpatch = {name = String; sha256 = String; url = String;} -> κ;
test/golden/importless/1.8.txt+2−2
@@ -19,12 +19,12 @@
1919 name = String;
2020 nativeBuildInputs = [ι];
2121 outputs = [String];
22− patches = [Path];
22+ patches = [String];
2323 postInstall = String;
2424 preBuild = String;
2525 propagatedBuildInputs = [δ];
2626 setOutputFlags = Bool;
27− setupHook = Path;
27+ setupHook = String;
2828 src = κ;
2929 } ->
3030 λ,
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+2−2
@@ -12,7 +12,7 @@
1212 version = String;
1313 };
1414 name = String;
15− patches = [Path];
15+ patches = [String];
1616 postInstall = String;
1717 propagatedBuildInputs = [η];
1818 src = θ;
@@ -31,7 +31,7 @@
3131{ autoconf = γ;
3232 automake = γ;
3333 boehmgc = Null;
34− fetchpatch = {name = String; sha256 = String; url = String;} -> Path;
34+ fetchpatch = {name = String; sha256 = String; url = String;} -> String;
3535 fetchurl = {sha256 = String; url = String;} -> θ;
3636 gcc = η;
3737 gmp = η;
test/golden/importless/1compat.txt+1−1
@@ -1,5 +1,5 @@
11∀ β γ δ ε ζ η θ ι.
2−( (β) // ({description = String; priority = Integer;}) ~ (γ),
2+( β // {description = String; priority = Number;} ~ γ,
33 δ.mkDerivation = {builder = ε; meta = ∀ α. α; name = String;} -> ζ,
44 η.meta = β,
55 θ.description = String
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 = [Path];
16+ patches = [String];
1717 pname = String;
1818 postPatch = String;
1919 src = θ;
test/golden/importless/2.1.txt+2−2
@@ -1,5 +1,5 @@
11∀ α β γ.
2−( (α) // ({sha256 = String; version = String;}) ~ (β),
3− α.callPackage = Path -> β -> γ
2+( α // {sha256 = String; version = String;} ~ β,
3+ α.callPackage = String -> β -> γ
44) =>
55α -> γ
test/golden/importless/2.2.txt+2−2
@@ -1,5 +1,5 @@
11∀ α β γ.
2−( (α) // ({sha256 = String; version = String;}) ~ (β),
3− α.callPackage = Path -> β -> γ
2+( α // {sha256 = String; version = String;} ~ β,
3+ α.callPackage = String -> β -> γ
44) =>
55α -> γ
test/golden/importless/2.5.txt+2−2
@@ -1,6 +1,6 @@
11∀ α β γ δ.
2−( (α) // ({src = β; version = String;}) ~ (γ),
3− α.callPackage = Path -> γ -> δ,
2+( α // {src = β; version = String;} ~ γ,
3+ α.callPackage = String -> γ -> δ,
44 α.fetchurl = {sha256 = String; url = String;} -> β
55) =>
66α -> δ
test/golden/importless/2.6.13-pre.txt+1−1
@@ -7,7 +7,7 @@
77 configureFlags = [String];
88 hardeningDisable = [String];
99 meta = {description = String; maintainers = [θ]; platforms = ι;};
10− patches = ∀ α. α;
10+ patches = ∀ α. [α];
1111 pname = String;
1212 postPatch = String;
1313 sourceRoot = String;
test/golden/importless/2.6.2.txt+1−1
@@ -12,7 +12,7 @@
1212 meta =
1313 {description = String; homepage = String; license = ζ; platforms = η;};
1414 nativeBuildInputs = [θ];
15− patches = [Path];
15+ patches = [String];
1616 pname = String;
1717 preConfigure = String;
1818 src = ι;
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 = [Path];
14+ patches = [String];
1515 src = η;
1616 } ->
1717 θ,
test/golden/importless/2.8.txt+2−2
@@ -1,5 +1,5 @@
11∀ α β γ.
2−( ({branch = String; sha256 = String; version = String;}) // (α) ~ (β),
3− α.callPackage = Path -> β -> γ
2+( {branch = String; sha256 = String; version = String;} // α ~ β,
3+ α.callPackage = String -> β -> γ
44) =>
55α -> γ
test/golden/importless/2_4.txt+2−2
@@ -1,5 +1,5 @@
11∀ α β γ.
2−( (α) // ({sha256 = String; version = String;}) ~ (β),
3− α.callPackage = Path -> β -> γ
2+( α // {sha256 = String; version = String;} ~ β,
3+ α.callPackage = String -> β -> γ
44) =>
55α -> γ
test/golden/importless/3.0.txt+2−2
@@ -1,5 +1,5 @@
11∀ α β γ.
2−( (α) // ({sha256 = String; version = String;}) ~ (β),
3− α.callPackage = Path -> β -> γ
2+( α // {sha256 = String; version = String;} ~ β,
3+ α.callPackage = String -> β -> γ
44) =>
55α -> γ
test/golden/importless/3.0.x.txt+1−1
@@ -10,7 +10,7 @@
1010 };
1111 name = String;
1212 nativeBuildInputs = [ε];
13− patches = [Path];
13+ patches = [String];
1414 src = ζ;
1515 } ->
1616 η,
test/golden/importless/3.08.0.txt+2−2
@@ -2,10 +2,10 @@
22( α.lib = β,
33 α.mkDerivation =
44 { buildFlags = [String];
5− builder = Path;
5+ builder = String;
66 checkTarget = [String];
77 configureFlags = [String];
8− configureScript = Path;
8+ configureScript = String;
99 dontAddPrefix = String;
1010 meta = {platforms = γ;};
1111 pname = String;
test/golden/importless/3.10.txt+1−1
@@ -1,2 +1,2 @@
11∀ α β.
2−(α.callPackage = Path -> {sha256 = String; version = String;} -> β) => α -> β
2+(α.callPackage = String -> {sha256 = String; version = String;} -> β) => α -> β
test/golden/importless/3.11.txt+2−2
@@ -1,5 +1,5 @@
11∀ α β γ.
2−( (α) // ({sha256 = String; version = String;}) ~ (β),
3− α.callPackage = Path -> β -> γ
2+( α // {sha256 = String; version = String;} ~ β,
3+ α.callPackage = String -> β -> γ
44) =>
55α -> γ
test/golden/importless/3.12.1.txtnew file+42
@@ -0,0 +1,42 @@
1+∀ α β γ δ ε ζ η θ ι κ.
2+( α.isAarch32 = Bool,
3+ α.isDarwin = Bool,
4+ α.isMips = Bool,
5+ α.lib = β,
6+ α.mkDerivation =
7+ { buildFlags = [String];
8+ buildInputs = [String];
9+ configureFlags = [String];
10+ installTargets = String;
11+ meta =
12+ { branch = String;
13+ description = String;
14+ homepage = String;
15+ license = [γ];
16+ longDescription = String;
17+ platforms = δ;
18+ };
19+ passthru = {nativeCompilers = Bool;};
20+ patches = [String];
21+ pname = String;
22+ postBuild = String;
23+ preConfigure = String;
24+ prefixKey = String;
25+ src = ε;
26+ version = String;
27+ } ->
28+ ζ,
29+ β.optionals = Bool -> [String] -> [String],
30+ η.optionalString = Bool -> String -> String,
31+ θ.lgpl2 = γ,
32+ θ.licenses = ι,
33+ θ.linux = δ,
34+ θ.platforms = κ,
35+ θ.qpl = γ
36+) =>
37+{ fetchurl = {sha256 = String; url = String;} -> ε;
38+ ncurses = String;
39+ stdenv = α;
40+ xlibsWrapper = String;
41+} ->
42+ζ
test/golden/importless/3.12.txt+1−1
@@ -1,2 +1,2 @@
11∀ α β.
2−(α.callPackage = Path -> {sha256 = String; version = String;} -> β) => α -> β
2+(α.callPackage = String -> {sha256 = String; version = String;} -> β) => α -> β
test/golden/importless/3.13.txt+1−1
@@ -1,2 +1,2 @@
11∀ α β.
2−(α.callPackage = Path -> {sha256 = String; version = String;} -> β) => α -> β
2+(α.callPackage = String -> {sha256 = String; version = String;} -> β) => α -> β
test/golden/importless/3.5.txt+2−2
@@ -1,7 +1,7 @@
11∀ α β γ δ ε.
2−( (α) // ({src = β; version = String;}) ~ (γ),
2+( α // {src = β; version = String;} ~ γ,
33 α.autoreconfHook = δ,
4− α.callPackage = Path -> γ -> ε,
4+ α.callPackage = String -> γ -> ε,
55 α.fetchFromGitHub =
66 {owner = String; repo = String; rev = String; sha256 = String;} -> β
77) =>
test/golden/importless/3.6.txt+1−1
@@ -1,2 +1,2 @@
11∀ α β.
2−(α.callPackage = Path -> {sha256 = String; version = String;} -> β) => α -> β
2+(α.callPackage = String -> {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−1
@@ -1,2 +1,2 @@
11∀ α β.
2−(α.callPackage = Path -> {sha256 = String; version = String;} -> β) => α -> β
2+(α.callPackage = String -> {sha256 = String; version = String;} -> β) => α -> β
test/golden/importless/3.8.txt+1−1
@@ -1,2 +1,2 @@
11∀ α β.
2−(α.callPackage = Path -> {sha256 = String; version = String;} -> β) => α -> β
2+(α.callPackage = String -> {sha256 = String; version = String;} -> β) => α -> β
test/golden/importless/3.9.txt+1−1
@@ -1,2 +1,2 @@
11∀ α β.
2−(α.callPackage = Path -> {sha256 = String; version = String;} -> β) => α -> β
2+(α.callPackage = String -> {sha256 = String; version = String;} -> β) => α -> β
test/golden/importless/38.txt+1−1
@@ -6,7 +6,7 @@
66 β.mkDerivation =
77 { buildInputs = [ζ];
88 configureFlags = [String];
9− configurePlatforms = ∀ α. α;
9+ configurePlatforms = ∀ α. [α];
1010 depsBuildBuild = [η];
1111 enableParallelBuilding = Bool;
1212 meta =
test/golden/importless/3_1.txt+2−2
@@ -1,5 +1,5 @@
11∀ α β γ.
2−( (α) // ({sha256 = String; version = String;}) ~ (β),
3− α.callPackage = Path -> β -> γ
2+( α // {sha256 = String; version = String;} ~ β,
3+ α.callPackage = String -> β -> γ
44) =>
55α -> γ
test/golden/importless/3dovideo.txt+4−3
@@ -6,7 +6,7 @@
66 β.bytestring = ε,
77 β.concatMapStrings = (ζ -> String) -> η -> String,
88 β.filepath = ε,
9− β.lessThan = ζ -> Integer -> θ,
9+ β.lessThan = ζ -> Number -> θ,
1010 β.mkDerivation =
1111 { buildDepends = [ε];
1212 description = String;
@@ -19,11 +19,12 @@
1919 } ->
2020 λ,
2121 β.optionalString = θ -> String -> μ,
22− β.range = Integer -> Integer -> η,
22+ β.range = Number -> Number -> η,
2323 β.tar = ε,
2424 β.toString = ζ -> μ,
2525 ν.licenses = ξ,
26− ξ.bsd3 = ι
26+ ξ.bsd3 = ι,
27+ (String | Number) ~ μ
2728) =>
2829{ fetchurl = {sha256 = String; url = String;} -> κ;
2930 haskellPackages = ο;
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.3.2.txt+1−1
@@ -11,7 +11,7 @@
1111 homepage = String;
1212 license = ε;
1313 longDescription = String;
14− maintainers = ∀ α. α;
14+ maintainers = ∀ α. [α];
1515 platforms = ζ;
1616 };
1717 name = String;
test/golden/importless/4.txt+2−2
@@ -1,10 +1,10 @@
11∀ α β γ.
22{ Foundation = α;
33 callPackage =
4− Path ->
4+ String ->
55 { Foundation = α;
66 enableParallelBuilding = Bool;
7− extraPatches = [Path];
7+ extraPatches = [String];
88 libobjc = β;
99 sha256 = String;
1010 version = String;
test/golden/importless/422.txt+1−1
@@ -8,7 +8,7 @@
88 homepage = String;
99 license = ζ;
1010 longDescription = String;
11− maintainers = ∀ α. α;
11+ maintainers = ∀ α. [α];
1212 platforms = η;
1313 };
1414 name = String;
test/golden/importless/44.0.txt+1−1
@@ -24,7 +24,7 @@
2424 homepage = String;
2525 license = [ο];
2626 platforms = π;
27− priority = Integer;
27+ priority = Number;
2828 };
2929 nativeBuildInputs = [μ];
3030 pipInstallFlags = [String];
test/golden/importless/5.41.txt+3−3
@@ -13,7 +13,7 @@
1313 platforms = ζ;
1414 };
1515 name = String;
16− patches = [Path];
16+ patches = [String];
1717 postInstall = String;
1818 src = η;
1919 version = String;
@@ -28,12 +28,12 @@
2828 π.peti = ε,
2929 ρ.platforms = σ,
3030 σ.unix = ζ,
31− τ.optionals = Bool -> [Path] -> [Path],
31+ τ.optionals = Bool -> [String] -> [String],
3232 υ.optionalString = Bool -> String -> String
3333) =>
3434{ ecl = Null;
3535 ecl-fasl = Bool;
36− fetchpatch = {sha256 = String; url = String;} -> Path;
36+ fetchpatch = {sha256 = String; url = String;} -> String;
3737 fetchurl = {sha256 = String; url = String;} -> η;
3838 gnuplot = Null;
3939 makeWrapper = Null;
test/golden/importless/5.7.txt+1−1
@@ -13,7 +13,7 @@
1313 platforms = [η];
1414 };
1515 nativeBuildInputs = θ;
16− patches = [Path];
16+ patches = [String];
1717 pname = String;
1818 prePatch = ι;
1919 src = κ;
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− Path ->
4+ String ->
55 { Foundation = α;
66 enableParallelBuilding = Bool;
77 libobjc = β;
test/golden/importless/60.txt+1−1
@@ -5,7 +5,7 @@
55 β.mkDerivation =
66 { buildInputs = [ε];
77 configureFlags = [String];
8− configurePlatforms = ∀ α. α;
8+ configurePlatforms = ∀ α. [α];
99 depsBuildBuild = [ζ];
1010 enableParallelBuilding = Bool;
1111 meta =
test/golden/importless/68.txt+1−1
@@ -5,7 +5,7 @@
55 β.mkDerivation =
66 { buildInputs = [ε];
77 configureFlags = [String];
8− configurePlatforms = ∀ α. α;
8+ configurePlatforms = ∀ α. [α];
99 depsBuildBuild = [ζ];
1010 enableParallelBuilding = Bool;
1111 meta =
test/golden/importless/7.6.6.txtnew file+46
@@ -0,0 +1,46 @@
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ.
2+( β.optional = γ -> String -> [δ],
3+ ε.buildPlatform = ζ,
4+ ε.hostPlatform = η,
5+ ε.isLinux = θ,
6+ ε.lib = ι,
7+ ε.mkDerivation =
8+ { buildInputs = [κ];
9+ configureFlags = [String];
10+ doCheck = Bool;
11+ dontStrip = Bool;
12+ enableParallelBuilding = Bool;
13+ meta =
14+ { description = String;
15+ homepage = String;
16+ license = String;
17+ longDescription = String;
18+ maintainers = ∀ α. [α];
19+ platforms = λ;
20+ };
21+ nativeBuildInputs = [μ];
22+ outputs = [String];
23+ patches = [δ];
24+ pname = String;
25+ preConfigure = ν;
26+ separateDebugInfo = θ;
27+ src = ξ;
28+ version = String;
29+ } ->
30+ ο,
31+ ι.optionalString = Bool -> String -> ν,
32+ η.libc = String,
33+ π.isRiscV = γ,
34+ ρ.platforms = σ,
35+ σ.all = λ,
36+ τ.libc = String
37+) =>
38+{ enableLargeConfig = Bool;
39+ fetchpatch = {sha256 = String; url = String;} -> δ;
40+ fetchurl = {sha256 = String; urls = [String];} -> ξ;
41+ lib = β;
42+ libatomic_ops = κ;
43+ pkgconfig = μ;
44+ stdenv = ε;
45+} ->
46+ο
test/golden/importless/78.txt+1−1
@@ -5,7 +5,7 @@
55 β.mkDerivation =
66 { buildInputs = [ε];
77 configureFlags = [String];
8− configurePlatforms = ∀ α. α;
8+ configurePlatforms = ∀ α. [α];
99 depsBuildBuild = [ζ];
1010 enableParallelBuilding = Bool;
1111 meta =
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 = [Path];
23+ patches = [String];
2424 pname = String;
2525 postInstall = String;
2626 src = ο;
test/golden/importless/8.5.txt+2−2
@@ -1,6 +1,6 @@
11∀ α β γ δ ε.
2−( (α) // ({src = β;}) ~ (γ),
3− α.callPackage = Path -> γ -> δ,
2+( α // {src = β;} ~ γ,
3+ α.callPackage = String -> γ -> δ,
44 α.fetchurl = {sha256 = String; url = String;} -> β,
55 α.tcl = ε
66) =>
test/golden/importless/8.6.txt+3−3
@@ -1,11 +1,11 @@
11∀ α β γ δ ε ζ η θ.
2−( (α) // ({patches = [Path]; src = β;}) ~ (γ),
3− α.callPackage = Path -> γ -> δ,
2+( α // {patches = [String]; src = β;} ~ γ,
3+ α.callPackage = String -> γ -> δ,
44 α.fetchurl = {sha256 = String; url = String;} -> β,
55 α.stdenv = ε,
66 α.tcl = ζ,
77 ε.isDarwin = η,
88 ε.lib = θ,
9− θ.optionals = η -> [Path] -> [Path]
9+ θ.optionals = η -> [String] -> [String]
1010) =>
1111α -> δ
test/golden/importless/8_0.txt+8−11
@@ -1,14 +1,11 @@
11∀ α β γ.
2−( ( α
3− ) //
4− ( { extraPatches = [Path];
5− extraPostInstall = String;
6− sha256 = String;
7− version = String;
8− }
9− ) ~
10− ( β
11− ),
12− α.callPackage = Path -> β -> γ
2+( α //
3+ { extraPatches = [String];
4+ extraPostInstall = String;
5+ sha256 = String;
6+ version = String;
7+ } ~
8+ β,
9+ α.callPackage = String -> β -> γ
1310) =>
1411α -> γ
test/golden/importless/9.2.txt+3−3
@@ -1,14 +1,14 @@
11∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π.
22( β.lib = γ,
33 δ.mkDerivation =
4− { alt_wrapper = Path;
4+ { alt_wrapper = String;
55 buildInputs = [ε];
6− builder = Path;
6+ builder = String;
77 cctools_port = ζ;
88 ldid = ζ;
99 meta =
1010 { description = String;
11− hydraPlatforms = ∀ α. α;
11+ hydraPlatforms = ∀ α. [α];
1212 license = η;
1313 maintainers = [θ];
1414 platforms = ι;
test/golden/importless/Cargo.txt+1−1
@@ -2,7 +2,7 @@
22( α.isDarwin = β,
33 α.lib = γ,
44 δ.buildRustPackage =
5− { RUSTC_BOOTSTRAP = Integer;
5+ { RUSTC_BOOTSTRAP = Number;
66 buildAndTestSubdir = String;
77 buildInputs = [ε];
88 cargoVendorDir = String;
test/golden/importless/account-service-util.txt+1−1
@@ -11,7 +11,7 @@
1111 name = String;
1212 nativeBuildInputs = [η];
1313 propagatedBuildInputs = [θ];
14− src = Path;
14+ src = String;
1515 strictDeps = Bool;
1616 } ->
1717 ι,
test/golden/importless/alexandria.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/aliases.txtdeleted−217
@@ -1,217 +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 δ3 ε3 ζ3 η3 θ3 ι3 κ3 λ3 μ3 ν3 ξ3 ο3 π3
4−ρ3 σ3 τ3 υ3 φ3 χ3 ψ3 ω3 α4 β4 γ4 δ4 ε4 ζ4 η4 θ4 ι4 κ4 λ4 μ4 ν4 ξ4 ο4 π4 ρ4 σ4
5−τ4.
6−( ( { BufOnly = α;
7− CSApprox = β;
8− Colour_Sampler_Pack = γ;
9− Cosco = δ;
10− Gist = ε;
11− Gundo = ζ;
12− Hoogle = η;
13− Solarized = θ;
14− Supertab = ι;
15− Syntastic = κ;
16− SyntaxRange = λ;
17− Tabular = μ;
18− Tagbar = ν;
19− The_NERD_Commenter = ξ;
20− The_NERD_tree = ο;
21− UltiSnips = π;
22− WebAPI = ρ;
23− Yankring = σ;
24− airline = τ;
25− alternative = υ;
26− bats = φ;
27− calendar = χ;
28− caw = ψ;
29− coffee-script = ω;
30− coffeeScript = α1;
31− colors-solarized = β1;
32− colorsamplerpack = γ1;
33− command_T = δ1;
34− commentary = ε1;
35− committia = ζ1;
36− concealedyank = η1;
37− context-filetype = θ1;
38− css_color_5056 = ι1;
39− csv = κ1;
40− ctrlp = λ1;
41− cute-python = μ1;
42− denite = ν1;
43− easy-align = ξ1;
44− easygit = ο1;
45− easymotion = π1;
46− echodoc = ρ1;
47− eighties = σ1;
48− extradite = τ1;
49− fugitive = υ1;
50− ghc-mod-vim = φ1;
51− ghcmod = χ1;
52− gitgutter = ψ1;
53− goyo = ω1;
54− gundo = α2;
55− haskellConceal = β2;
56− haskellConcealPlus = γ2;
57− haskellconceal = δ2;
58− hier = ε2;
59− hlint-refactor = ζ2;
60− hoogle = η2;
61− ipython = θ2;
62− latex-live-preview = ι2;
63− maktaba = κ2;
64− multiple-cursors = λ2;
65− necoGhc = μ2;
66− neocomplete = ν2;
67− neoinclude = ξ2;
68− neomru = ο2;
69− neosnippet = π2;
70− open-browser = ρ2;
71− pathogen = σ2;
72− polyglot = τ2;
73− prettyprint = υ2;
74− quickrun = φ2;
75− rainbow_parentheses = χ2;
76− repeat = ψ2;
77− rhubarb = ω2;
78− riv = α3;
79− sensible = β3;
80− signature = γ3;
81− sleuth = δ3;
82− snipmate = ε3;
83− solarized = ζ3;
84− solidity = η3;
85− sourcemap = θ3;
86− sourcemap.vim = ι3;
87− stylish-haskell = κ3;
88− stylishHaskell = λ3;
89− surround = μ3;
90− table-mode = ν3;
91− tabpagebuffer = ξ3;
92− tabpagecd = ο3;
93− taglist = π3;
94− thumbnail = ρ3;
95− tlib = σ3;
96− tmux-navigator = τ3;
97− tmuxNavigator = υ3;
98− tslime = φ3;
99− unite = χ3;
100− vim-addon-vim2nix = ψ3;
101− vimproc = ω3;
102− vimshell = α4;
103− vinegar = β4;
104− watchdogs = γ4;
105− wombat256 = δ4;
106− xterm-color-table = ε4;
107− yankring = ζ4;
108− zeavim = η4;
109− }
110− ) //
111− ( θ4
112− ) ~
113− ( ι4
114− ),
115− κ4.?recurseForDerivations = Bool,
116− λ4.mapAttrs = (μ4 -> κ4 -> κ4) -> ι4 -> ν4,
117− ξ4.BufOnly-vim = α,
118− ξ4.Colour-Sampler-Pack = γ,
119− ξ4.YankRing-vim = σ,
120− ξ4.a-vim = υ,
121− ξ4.bats-vim = φ,
122− ξ4.builtins = ο4,
123− ξ4.calendar-vim = χ,
124− ξ4.caw-vim = ψ,
125− ξ4.command-t = δ1,
126− ξ4.committia-vim = ζ1,
127− ξ4.concealedyank-vim = η1,
128− ξ4.context_filetype-vim = θ1,
129− ξ4.cosco-vim = δ,
130− ξ4.csapprox = β,
131− ξ4.csv-vim = κ1,
132− ξ4.ctrlp-vim = λ1,
133− ξ4.denite-nvim = ν1,
134− ξ4.dontDistribute = κ4 -> κ4,
135− ξ4.echodoc-vim = ρ1,
136− ξ4.ghcmod-vim = φ1,
137− ξ4.goyo-vim = ω1,
138− ξ4.gundo-vim = ζ,
139− ξ4.hlint-refactor-vim = ζ2,
140− ξ4.isDerivation = κ4 -> Bool,
141− ξ4.neco-ghc = μ2,
142− ξ4.neocomplete-vim = ν2,
143− ξ4.neoinclude-vim = ξ2,
144− ξ4.neomru-vim = ο2,
145− ξ4.neosnippet-vim = π2,
146− ξ4.nerdcommenter = ξ,
147− ξ4.nerdtree = ο,
148− ξ4.open-browser-vim = ρ2,
149− ξ4.rainbow_parentheses-vim = χ2,
150− ξ4.removeAttrs = κ4 -> [String] -> κ4,
151− ξ4.riv-vim = α3,
152− ξ4.sourcemap-vim = θ3,
153− ξ4.supertab = ι,
154− ξ4.syntastic = κ,
155− ξ4.tabpagebuffer-vim = ξ3,
156− ξ4.tabular = μ,
157− ξ4.tagbar = ν,
158− ξ4.taglist-vim = π3,
159− ξ4.throw = String -> κ4,
160− ξ4.thumbnail-vim = ρ3,
161− ξ4.tlib_vim = σ3,
162− ξ4.tslime-vim = φ3,
163− ξ4.ultisnips = π,
164− ξ4.unite-vim = χ3,
165− ξ4.vim-SyntaxRange = λ,
166− ξ4.vim-airline = τ,
167− ξ4.vim-coffee-script = ω,
168− ξ4.vim-colors-solarized = θ,
169− ξ4.vim-commentary = ε1,
170− ξ4.vim-css-color = ι1,
171− ξ4.vim-cute-python = μ1,
172− ξ4.vim-easy-align = ξ1,
173− ξ4.vim-easygit = ο1,
174− ξ4.vim-easymotion = π1,
175− ξ4.vim-eighties = σ1,
176− ξ4.vim-extradite = τ1,
177− ξ4.vim-fugitive = υ1,
178− ξ4.vim-gist = ε,
179− ξ4.vim-gitgutter = ψ1,
180− ξ4.vim-haskellConcealPlus = γ2,
181− ξ4.vim-haskellconceal = β2,
182− ξ4.vim-hier = ε2,
183− ξ4.vim-hoogle = η,
184− ξ4.vim-ipython = θ2,
185− ξ4.vim-latex-live-preview = ι2,
186− ξ4.vim-maktaba = κ2,
187− ξ4.vim-multiple-cursors = λ2,
188− ξ4.vim-pathogen = σ2,
189− ξ4.vim-polyglot = τ2,
190− ξ4.vim-prettyprint = υ2,
191− ξ4.vim-quickrun = φ2,
192− ξ4.vim-repeat = ψ2,
193− ξ4.vim-rhubarb = ω2,
194− ξ4.vim-sensible = β3,
195− ξ4.vim-signature = γ3,
196− ξ4.vim-sleuth = δ3,
197− ξ4.vim-snipmate = ε3,
198− ξ4.vim-solidity = η3,
199− ξ4.vim-stylish-haskell = κ3,
200− ξ4.vim-surround = μ3,
201− ξ4.vim-table-mode = ν3,
202− ξ4.vim-tabpagecd = ο3,
203− ξ4.vim-tmux-navigator = τ3,
204− ξ4.vim-vinegar = β4,
205− ξ4.vim-watchdogs = γ4,
206− ξ4.vim2nix = ψ3,
207− ξ4.vimproc-vim = ω3,
208− ξ4.vimshell-vim = α4,
209− ξ4.webapi-vim = ρ,
210− ξ4.wombat256-vim = δ4,
211− ξ4.xterm-color-table-vim = ε4,
212− ξ4.zeavim-vim = η4,
213− ο4.hasAttr = μ4 -> ξ4 -> Bool,
214− π4.fromJSON = ρ4 -> σ4,
215− τ4.readFile = Path -> ρ4
216−) =>
217−λ4 -> ξ4 -> ν4
test/golden/importless/amd-microcode.txt+1−1
@@ -5,7 +5,7 @@
55 β.hardware = ε,
66 γ.mkIf = ζ -> {boot = {initrd = {prepend = η;};};} -> θ,
77 γ.mkOption = {default = Bool; description = String; type = ι;} -> κ,
8− γ.mkOrder = Integer -> [String] -> η,
8+ γ.mkOrder = Number -> [String] -> η,
99 γ.types = λ,
1010 ε.cpu = μ,
1111 μ.amd = ν,
test/golden/importless/apcupsd.txt+1−1
@@ -10,6 +10,6 @@
1010) =>
1111{config = α; lib = γ; options = μ; pkgs = ν;} ->
1212{ extraOpts = {apcupsdAddress = ε; apcupsdNetwork = ξ;};
13− port = Integer;
13+ port = Number;
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− Path ->
4+ String ->
55 { description = String;
66 lexiconPath = String;
77 license = [δ];
test/golden/importless/apiextractor.txt+1−1
@@ -7,7 +7,7 @@
77 { description = String;
88 homepage = String;
99 license = ε;
10− maintainers = ∀ α. α;
10+ maintainers = ∀ α. [α];
1111 platforms = ζ;
1212 };
1313 name = String;
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/archive-version.txt+1−1
@@ -1,6 +1,6 @@
11∀ α β γ δ ε.
22( α.concatMapStrings = β -> γ -> String,
3− α.fixedWidthNumber = Integer -> β,
3+ α.fixedWidthNumber = Number -> β,
44 α.head = δ -> String,
55 α.splitVersion = ε -> δ,
66 α.tail = δ -> γ
test/golden/importless/array-utils.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/asdf-finalizers.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/asdf-package-system.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/asdf-system-connections.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
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.txtdeleted−59
@@ -1,59 +0,0 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.ids = ε,
6− β.services = ζ,
7− γ.builtins = η,
8− γ.map =
9− ( θ ->
10− { name = String;
11− value =
12− { group = String;
13− owner = String;
14− setgid = Bool;
15− setuid = Bool;
16− source = String;
17− };
18− }
19− ) ->
20− [String] -> ι,
21− γ.mkIf =
22− κ ->
23− { environment = {systemPackages = [λ];};
24− security = {pam = {services = {atd = {};};}; wrappers = μ;};
25− systemd =
26− { services =
27− { atd =
28− { description = String;
29− path = [λ];
30− preStart = String;
31− script = String;
32− serviceConfig = {Type = String;};
33− wantedBy = [String];
34− };
35− };
36− };
37− users =
38− { groups = {atd = {gid = ν;};};
39− users = {atd = {description = String; home = String; uid = ξ;};};
40− };
41− } ->
42− ο,
43− γ.mkOption = {default = Bool; description = String; type = π;} -> ρ,
44− γ.types = σ,
45− δ.at = λ,
46− ζ.atd = τ,
47− τ.enable = κ,
48− η.listToAttrs = ι -> μ,
49− ε.gids = υ,
50− υ.atd = ν,
51− φ.uids = χ,
52− χ.atd = ξ,
53− σ.bool = π,
54− ψ.bool = ω
55−) =>
56−α ->
57−{ config = ο;
58− options = {services = {atd = {allowEveryone = ρ; enable = α1;};};};
59−}
test/golden/importless/atop.txt+1−1
@@ -8,7 +8,7 @@
88 γ.mkOption =
99 { default = {};
1010 description = String;
11− example = {flags = String; interval = Integer;};
11+ example = {flags = String; interval = Number;};
1212 type = λ;
1313 } ->
1414 μ,
test/golden/importless/attica.txtnew file+14
@@ -0,0 +1,14 @@
1+∀ α β γ δ ε ζ η.
2+(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3+ lib = α;
4+ mkDerivation =
5+ { buildInputs = [γ];
6+ meta = {broken = Bool; maintainers = [ε];};
7+ name = String;
8+ nativeBuildInputs = [ζ];
9+ outputs = [String];
10+ } ->
11+ η;
12+ qtbase = γ;
13+} ->
14+η
test/golden/importless/automake-1.11.x.txt+3−3
@@ -2,7 +2,7 @@
22( α.lib = β,
33 α.mkDerivation =
44 { buildInputs = [γ];
5− builder = Path;
5+ builder = String;
66 doCheck = Bool;
77 dontPatchShebangs = Bool;
88 enableParallelBuilding = Bool;
@@ -15,9 +15,9 @@
1515 platforms = ε;
1616 };
1717 name = String;
18− patches = [Path];
18+ patches = [String];
1919 preCheck = String;
20− setupHook = Path;
20+ setupHook = String;
2121 src = ζ;
2222 } ->
2323 η,
test/golden/importless/automake-1.15.x.txt+2−2
@@ -16,9 +16,9 @@
1616 };
1717 name = String;
1818 nativeBuildInputs = [γ];
19− patches = [Path];
19+ patches = [String];
2020 preCheck = String;
21− setupHook = Path;
21+ setupHook = String;
2222 src = ζ;
2323 } ->
2424 η,
test/golden/importless/automake-1.16.x.txt+1−1
@@ -17,7 +17,7 @@
1717 name = String;
1818 nativeBuildInputs = [γ];
1919 preCheck = String;
20− setupHook = Path;
20+ setupHook = String;
2121 src = ζ;
2222 } ->
2323 η,
test/golden/importless/autorandr.txt+2−2
@@ -18,8 +18,8 @@
1818 serviceConfig =
1919 { ExecStart = String;
2020 RemainAfterExit = Bool;
21− StartLimitBurst = Integer;
22− StartLimitInterval = Integer;
21+ StartLimitBurst = Number;
22+ StartLimitInterval = Number;
2323 Type = String;
2424 };
2525 wantedBy = [String];
test/golden/importless/aws-s3-exporter.txt+1−1
@@ -7,7 +7,7 @@
77) =>
88{ buildGoPackage =
99 { doCheck = Bool;
10− goDeps = Path;
10+ goDeps = String;
1111 goPackagePath = String;
1212 meta =
1313 { description = String;
test/golden/importless/azure-agent.txt+2−2
@@ -16,7 +16,7 @@
1616 environment = {etc = {waagent.conf = {text = String;};};};
1717 networking =
1818 { dhcpcd = {persistent = Bool;};
19− firewall = {allowedUDPPorts = [Integer];};
19+ firewall = {allowedUDPPorts = [Number];};
2020 };
2121 services =
2222 { logrotate = {config = String; enable = Bool;};
@@ -75,7 +75,7 @@
7575 configurePhase = Bool;
7676 installPhase = String;
7777 name = String;
78− patches = [Path];
78+ patches = [String];
7979 pythonPath = [υ];
8080 runtimeDeps = [η];
8181 src = ρ;
test/golden/importless/b43.txt+13−15
@@ -1,21 +1,19 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ.
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ.
22( α.config = β,
33 α.lib = γ,
44 α.pkgs = δ,
55 β.boot = ε,
66 β.networking = ζ,
7− γ.builtins = η,
8− γ.lessThan = Integer -> θ -> ι,
9− γ.mkIf = κ -> {assertions = λ; hardware = {firmware = [μ];};} -> ν,
10− γ.mkOption = {default = Bool; description = String; type = ξ;} -> ο,
11− γ.singleton = {assertion = ι; message = String;} -> λ,
12− γ.types = π,
13− δ.b43Firmware_5_1_138 = μ,
14− ε.kernelPackages = ρ,
15− ρ.kernel = σ,
16− σ.version = τ,
17− ζ.enableB43Firmware = κ,
18− η.compareVersions = τ -> String -> θ,
19− π.bool = ξ
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 = ν
2018) =>
21−α -> {config = ν; options = {networking = {enableB43Firmware = ο;};};}
19+α -> {config = μ; options = {networking = {enableB43Firmware = ξ;};};}
test/golden/importless/bcc-git.txt+1−1
@@ -11,7 +11,7 @@
1111 maintainers = [δ];
1212 };
1313 name = String;
14− patches = [Path];
14+ patches = [String];
1515 src = ε;
1616 } ->
1717 ζ,
test/golden/importless/binary-tarball.txt+16−22
@@ -1,26 +1,20 @@
11∀ β γ δ ε ζ η.
2−( ( β
3− ) //
4− ( { distPhase = String;
5− doDist = Bool;
6− finalPhase = String;
7− meta = ∀ α. α;
8− name = String;
9− postHook = String;
10− }
11− ) ~
12− ( γ
13− ),
14− ( { doCheck = Bool;
15− postPhases = String;
16− prefix = String;
17− showBuildStats = Bool;
18− }
19− ) //
20− ( γ
21− ) ~
22− ( δ
23− ),
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+ δ,
2418 β.meta = {},
2519 β.?name = String,
2620 ε.version = String,
test/golden/importless/blivet.txt+1−1
@@ -15,7 +15,7 @@
1515 license = [ε];
1616 platforms = θ;
1717 };
18− patches = [Path];
18+ patches = [String];
1919 pname = String;
2020 postPatch = String;
2121 propagatedBuildInputs = [γ];
test/golden/importless/blocks-gaps.txt+1−1
@@ -20,7 +20,7 @@
2020 ι,
2121 β.carlsverre = ε,
2222 β.intersectLists = [String] -> [String] -> κ,
23− β.length = κ -> Integer,
23+ β.length = κ -> Number,
2424 β.licenses = λ,
2525 β.maintainers = μ,
2626 β.optional = Bool -> ν -> γ,
test/golden/importless/bloodspilot-server.txt+1−1
@@ -9,7 +9,7 @@
99 maintainers = [ε];
1010 platforms = ζ;
1111 };
12− patches = [Path];
12+ patches = [String];
1313 pname = String;
1414 src = η;
1515 version = String;
test/golden/importless/bluez-qt.txtnew file+16
@@ -0,0 +1,16 @@
1+∀ α β γ δ ε ζ η θ.
2+(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3+ lib = α;
4+ mkDerivation =
5+ { buildInputs = [η];
6+ meta = {broken = Bool; maintainers = [ε];};
7+ name = String;
8+ nativeBuildInputs = [ζ];
9+ preConfigure = String;
10+ propagatedBuildInputs = [γ];
11+ } ->
12+ θ;
13+ qtbase = γ;
14+ qtdeclarative = η;
15+} ->
16+θ
test/golden/importless/brltty.txt+5−5
@@ -13,15 +13,15 @@
1313 description = String;
1414 serviceConfig =
1515 { ExecStart = String;
16− Nice = Integer;
17− OOMScoreAdjust = Integer;
16+ Nice = Number;
17+ OOMScoreAdjust = Number;
1818 ProtectHome = String;
1919 ProtectSystem = String;
2020 Restart = String;
21− RestartSec = Integer;
21+ RestartSec = Number;
2222 SystemCallArchitectures = String;
23− TimeoutStartSec = Integer;
24− TimeoutStopSec = Integer;
23+ TimeoutStartSec = Number;
24+ TimeoutStopSec = Number;
2525 Type = String;
2626 };
2727 unitConfig =
test/golden/importless/build-rebar3.txt+19−22
@@ -1,26 +1,23 @@
11∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ.
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− ) ~
22− ( γ
23− ),
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+ γ,
2421 β.?beamDeps = [ζ],
2522 β.?buildInputs = [ε],
2623 β.?buildPhase = Null,
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+13−16
@@ -1,20 +1,17 @@
11∀ α β γ δ ε ζ.
2−( ( α
3− ) //
4− ( { buildInputs = [β];
5− buildPhase = String;
6− configurePhase = String;
7− dontAddPrefix = Bool;
8− hasSharedObjects = Bool;
9− installPhase = String;
10− minimumSupportedOcamlVersion = String;
11− name = γ;
12− src = δ;
13− version = String;
14− }
15− ) ~
16− ( ε
17− ),
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+ ε,
1815 α.?buildInputs = [β],
1916 α.?hash = String,
2017 α.?minimumSupportedOcamlVersion = String,
test/golden/importless/builder.txt+10−13
@@ -1,17 +1,14 @@
11∀ α β γ δ ε ζ η θ.
2−( ( α
3− ) //
4− ( { buildPhase = String;
5− checkPhase = String;
6− configurePhase = String;
7− installPhase = String;
8− modRoot = String;
9− passthru = {forCurses = Bool; forTiles = Bool;};
10− pname = String;
11− }
12− ) ~
13− ( β
14− ),
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+ β,
1512 α.?buildPhase = String,
1613 α.?checkPhase = String,
1714 α.?configurePhase = String,
test/golden/importless/builds.txt+1−1
@@ -22,7 +22,7 @@
2222 maintainers = [ζ];
2323 };
2424 nativeBuildInputs = ε;
25− patches = [Path];
25+ patches = [String];
2626 pname = String;
2727 postInstall = String;
2828 preBuild = String;
test/golden/importless/chacha.txt+1−1
@@ -12,7 +12,7 @@
1212 license = δ;
1313 maintainers = [ε];
1414 platforms = [String];
15− priority = Integer;
15+ priority = Number;
1616 };
1717 nativeBuildInputs = [ζ];
1818 outputs = [String];
test/golden/importless/check-plugin.txt+1−1
@@ -11,7 +11,7 @@
1111 };
1212 name = String;
1313 nativeBuildInputs = [η];
14− patches = [Path];
14+ patches = [String];
1515 prePatch = String;
1616 propagatedBuildInputs = [δ];
1717 src = θ;
test/golden/importless/chipz.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/chrootenv.txt+2−2
@@ -23,7 +23,7 @@
2323 β.pkgs = δ,
2424 γ.override =
2525 { packageOverrides =
26− (ε.callPackage = Path -> {} -> ζ) => ε ->
26+ (ε.callPackage = String -> {} -> ζ) => ε ->
2727 η -> {platformio = ζ;};
2828 } ->
2929 β,
@@ -43,7 +43,7 @@
4343 β.pkgs = δ,
4444 γ.override =
4545 { packageOverrides =
46− (ε.callPackage = Path -> {} -> ζ) => ε ->
46+ (ε.callPackage = String -> {} -> ζ) => ε ->
4747 η -> {platformio = ζ;};
4848 } ->
4949 β,
test/golden/importless/cl-aa.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/cl-anonfun.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/cl-css.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/cl-html-parse.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/cl-jpeg.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/cl-l10n-cldr.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/cl-log.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/cl-markup.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/cl-paths.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/cl-unification.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/cl-utilities.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/clack-socket.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/clippy.txt+1−1
@@ -2,7 +2,7 @@
22( α.isDarwin = β,
33 α.lib = γ,
44 δ.buildRustPackage =
5− { RUSTC_BOOTSTRAP = Integer;
5+ { RUSTC_BOOTSTRAP = Number;
66 buildAndTestSubdir = String;
77 buildInputs = [ε];
88 cargoVendorDir = String;
test/golden/importless/closer-mop.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/cmake-modules.txt+1−1
@@ -5,7 +5,7 @@
55 nativeBuildInputs = [ε];
66 pname = String;
77 prePatch = String;
8− setupHook = Path;
8+ setupHook = String;
99 src = ζ;
1010 version = String;
1111 } ->
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/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+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/common.txt+2−2
@@ -19,7 +19,7 @@
1919 β ->
2020 { environment = {systemPackages = [δ];};
2121 nix =
22− { binaryCaches = ∀ α. α;
22+ { binaryCaches = ∀ α. [α];
2323 buildMachines = [{hostName = String; systems = [ι];}];
2424 distributedBuilds = Bool;
2525 };
@@ -33,6 +33,6 @@
3333 postfix = {enable = Bool;};
3434 };
3535 time = {timeZone = String;};
36− virtualisation = {memorySize = Integer;};
36+ virtualisation = {memorySize = Number;};
3737 };
3838}
test/golden/importless/community.txt+1−1
@@ -20,7 +20,7 @@
2020 platforms = [κ];
2121 };
2222 nativeBuildInputs = [λ];
23− patches = [Path];
23+ patches = [String];
2424 pname = String;
2525 postPatch = μ;
2626 preFixup = ν;
test/golden/importless/compiler-rt.txt+7−5
@@ -11,7 +11,7 @@
1111 enableParallelBuilding = Bool;
1212 nativeBuildInputs = [ζ];
1313 outputs = [String];
14− patches = [Path];
14+ patches = [String];
1515 pname = String;
1616 postInstall = η;
1717 postPatch = θ;
@@ -29,18 +29,20 @@
2929 υ.optionals = Bool -> [String] -> [String],
3030 φ.optionals = Bool -> [String] -> [String],
3131 χ.optionals = Bool -> [String] -> [String],
32− ψ.optional = ω -> Path -> [Path],
32+ ψ.optional = ω -> String -> [String],
3333 α1.isMusl = ω,
34− β1.optional = Bool -> Path -> [Path],
34+ β1.optional = Bool -> String -> [String],
3535 γ1.libc = String,
36− δ1.optional = ε1 -> Path -> [Path],
36+ δ1.optional = ε1 -> String -> [String],
3737 ζ1.isAarch32 = ε1,
3838 η1.optionalString = Bool -> String -> η,
3939 θ1.isDarwin = Bool,
4040 ι1.isWasm = Bool,
4141 κ1.optionalString = Bool -> String -> η,
4242 λ1.optionalString = γ -> String -> θ,
43− μ1.optionalString = Bool -> String -> θ
43+ μ1.optionalString = Bool -> String -> θ,
44+ (String | Number) ~ η,
45+ (String | Number) ~ θ
4446) =>
4547{ cmake = ζ;
4648 fetch = String -> String -> ι;
test/golden/importless/compiler.txt+1−1
@@ -6,7 +6,7 @@
66) =>
77{ buildDunePackage =
88 { buildInputs = [η];
9− configurePlatforms = ∀ α. α;
9+ configurePlatforms = ∀ α. [α];
1010 meta =
1111 { description = String;
1212 homepage = 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/configuration-ghc-8.4.x.txt+1−1
@@ -1,6 +1,6 @@
11∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1 δ1 ε1 ζ1 η1 θ1 ι1 κ1 λ1
22μ1 ν1 ξ1 ο1 π1 ρ1 σ1 τ1 υ1 φ1 χ1 ψ1 ω1 α2 β2.
3−( β.fetchpatch = {sha256 = String; stripLen = Integer; url = String;} -> γ,
3+( β.fetchpatch = {sha256 = String; stripLen = Number; url = String;} -> γ,
44 β.llvmPackages_5 = δ,
55 ε.addBuildDepend = ζ -> η -> θ,
66 ε.appendPatch = ι -> γ -> κ,
test/golden/importless/configuration-ghc-head.txt+1−1
@@ -1,7 +1,7 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1 δ1 ε1 ζ1 η1 θ1 ι1 κ1
22λ1 μ1 ν1 ξ1 ο1 π1 ρ1.
33( α.llvmPackages_6 = β,
4− γ.appendPatch = δ -> Path -> ε,
4+ γ.appendPatch = δ -> String -> ε,
55 γ.doJailbreak = ζ -> η,
66 γ.dontCheck = θ -> ι,
77 κ.Diff = θ,
test/golden/importless/contrib.txt+1−1
@@ -1,5 +1,5 @@
11∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1 δ1 ε1.
2−( (β) // ({description = String; homepage = String;}) ~ (γ),
2+( β // {description = String; homepage = String;} ~ γ,
33 δ.lib = ε,
44 δ.mkDerivation =
55 { doInstallCheck = Bool;
test/golden/importless/convert.txt+1−1
@@ -9,7 +9,7 @@
99 maintainers = [β];
1010 };
1111 passthru = {scriptName = String;};
12− patches = [Path];
12+ patches = [String];
1313 pname = String;
1414 postPatch = String;
1515 src = γ;
test/golden/importless/cryptsetup.txt+1−1
@@ -7,7 +7,7 @@
77 { description = String;
88 homepage = String;
99 license = ε;
10− maintainers = ∀ α. α;
10+ maintainers = ∀ α. [α];
1111 platforms = ζ;
1212 };
1313 name = String;
test/golden/importless/css-lite.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = 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/curaengine.txt+1−1
@@ -11,7 +11,7 @@
1111 platforms = ζ;
1212 };
1313 nativeBuildInputs = [η];
14− patches = [Path];
14+ patches = [String];
1515 pname = String;
1616 src = θ;
1717 version = String;
test/golden/importless/curry-base.txt+1−1
@@ -11,7 +11,7 @@
1111 libraryHaskellDepends = [ε];
1212 license = δ;
1313 pname = String;
14− src = Path;
14+ src = String;
1515 testHaskellDepends = [ε];
1616 version = String;
1717 } ->
test/golden/importless/curry-frontend.txt+1−1
@@ -18,7 +18,7 @@
1818 libraryHaskellDepends = [ε];
1919 license = δ;
2020 pname = String;
21− src = Path;
21+ src = String;
2222 testHaskellDepends = [ε];
2323 version = String;
2424 } ->
test/golden/importless/cursive.txt+1−1
@@ -13,7 +13,7 @@
1313 platforms = θ;
1414 };
1515 nativeBuildInputs = [ε];
16− patches = [Path];
16+ patches = [String];
1717 pname = String;
1818 preFixup = String;
1919 src = ι;
test/golden/importless/data-api.txt+2−2
@@ -14,8 +14,8 @@
1414 version = λ;
1515 } ->
1616 μ,
17− ι.override = {generated = Path; self = β;} -> β,
18− θ.substring = Integer -> Integer -> String -> λ
17+ ι.override = {generated = String; self = β;} -> β,
18+ θ.substring = Number -> Number -> String -> λ
1919) =>
2020{ fetchgit = {rev = String; sha256 = String; url = String;} -> κ;
2121 lib = α;
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+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/debian-build.txt+12−15
@@ -1,19 +1,16 @@
11∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο.
2−( ( β
3− ) //
4− ( { installExtraDebsPhase = String;
5− installPhase = String;
6− meta = ∀ α. α;
7− name = String;
8− postHook = String;
9− sysInfoPhase = String;
10− }
11− ) ~
12− ( γ
13− ),
14− ({doCheck = Bool; prePhases = String; prefix = String;}) // (γ) ~ (δ),
15− ε.?debProvides = ζ,
16− ε.?debRequires = η,
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 = [η],
1714 ε.?fsTranslation = Bool,
1815 ε.meta = {},
1916 ε.?name = String,
test/golden/importless/declare-int-between-value.txt+1−1
@@ -3,6 +3,6 @@
33 β.mkOption = {type = γ;} -> δ,
44 β.types = ε,
55 ε.ints = ζ,
6− ζ.between = Integer -> Integer -> γ
6+ ζ.between = Number -> Number -> γ
77) =>
88α -> {options = {value = δ;};}
test/golden/importless/declare-lazyAttrsOf.txt+1−1
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ η θ.
2−( (α) // ({emptyValue = {value = String;};}) ~ (β),
2+( α // {emptyValue = {value = String;};} ~ β,
33 γ.lib = δ,
44 δ.mkOption = {default = {}; type = ε;} -> ζ,
55 δ.types = η,
test/golden/importless/declare-submoduleWith-path.txt+2−2
@@ -2,6 +2,6 @@
22( α.lib = β,
33 β.mkOption = {default = {}; type = γ;} -> δ,
44 β.types = ε,
5− ε.submoduleWith = {modules = [Path];} -> γ
5+ ε.submoduleWith = {modules = [String];} -> γ
66) =>
7−α -> {config = {submodule = Path;}; options = {submodule = δ;};}
7+α -> {config = {submodule = String;}; options = {submodule = δ;};}
test/golden/importless/declare-submoduleWith-special.txt+1−1
@@ -1,5 +1,5 @@
11∀ ζ η θ ι κ λ.
2−( (ζ) // ({foo = String;}) ~ (η),
2+( ζ // {foo = String;} ~ η,
33 θ.lib = ζ,
44 ζ.mkOption = {default = {}; type = ι;} -> κ,
55 ζ.types = λ,
test/golden/importless/define-option-dependently-nested.txt+1−1
@@ -1,5 +1,5 @@
11∀ β γ δ ε ζ η θ ι κ.
2−( ({value = Integer;}) // (β) ~ (γ),
2+( {value = Number;} // β ~ γ,
33 δ.?set = ε,
44 ε.?enable = ζ,
55 η.?enable = θ,
test/golden/importless/define-option-dependently.txt+1−1
@@ -1,5 +1,5 @@
11∀ β γ δ ε ζ η.
2−( ({value = Integer;}) // (β) ~ (γ),
2+( {value = Number;} // β ~ γ,
33 δ.?enable = ε,
44 ζ.lib = η,
55 ζ.options = δ,
test/golden/importless/define-value-int-negative.txt+1−1
@@ -1 +1 @@
1−{value = Integer;}
1+{value = Number;}
test/golden/importless/define-value-int-positive.txt+1−1
@@ -1 +1 @@
1−{value = Integer;}
1+{value = Number;}
test/golden/importless/define-value-int-zero.txt+1−1
@@ -1 +1 @@
1−{value = Integer;}
1+{value = Number;}
test/golden/importless/define-value-list.txt+1−1
@@ -1 +1 @@
1−{value = ∀ α. α;}
1+{value = ∀ α. [α];}
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 = δ -> Path -> {} -> ζ; overrides = β -> γ -> {};} -> θ
16+{lib = α; newScope = δ -> String -> {} -> ζ; overrides = β -> γ -> {};} -> θ
test/golden/importless/dictd-db.txt+1−1
@@ -14,7 +14,7 @@
1414 β.platforms = ζ,
1515 ζ.linux = γ
1616) =>
17−{ callPackage = Path -> {} -> η;
17+{ callPackage = String -> {} -> η;
1818 fetchurl = {sha256 = String; url = String;} -> δ;
1919 stdenv = α;
2020} ->
test/golden/importless/dictd-wiktionary.txt+2−2
@@ -3,12 +3,12 @@
33 β.mkDerivation =
44 { buildInputs = [δ];
55 builder = ε;
6− convert = Path;
6+ convert = String;
77 data = ζ;
88 meta =
99 { description = String;
1010 homepage = String;
11− maintainers = ∀ α. α;
11+ maintainers = ∀ α. [α];
1212 platforms = η;
1313 };
1414 pname = String;
test/golden/importless/dictd-wordnet.txt+2−2
@@ -3,12 +3,12 @@
33 β.mkDerivation =
44 { buildInputs = [δ];
55 builder = ε;
6− convert = Path;
6+ convert = String;
77 meta =
88 { description = String;
99 homepage = String;
1010 longDescription = String;
11− maintainers = ∀ α. α;
11+ maintainers = ∀ α. [α];
1212 platforms = ζ;
1313 };
1414 pname = String;
test/golden/importless/disable-bar.txt+1−1
@@ -1 +1 @@
1−{disabledModules = [Path];}
1+{disabledModules = [String];}
test/golden/importless/disable-declare-enable.txt+1−1
@@ -1 +1 @@
1−∀ α β. (α.lib = β) => α -> {disabledModules = [Path];}
1+∀ α β. (α.lib = β) => α -> {disabledModules = [String];}
test/golden/importless/disable-define-enable.txt+1−1
@@ -1 +1 @@
1−∀ α β. (α.lib = β) => α -> {disabledModules = [Path];}
1+∀ α β. (α.lib = β) => α -> {disabledModules = [String];}
test/golden/importless/disable-foo.txt+1−1
@@ -1 +1 @@
1−{disabledModules = [Path];}
1+{disabledModules = [String];}
test/golden/importless/dispatch.txt+1−1
@@ -15,7 +15,7 @@
1515 maintainers = [ε];
1616 };
1717 nativeBuildInputs = δ;
18− patches = [Path];
18+ patches = [String];
1919 pname = String;
2020 preBuild = String;
2121 propagatedBuildInputs = [γ];
test/golden/importless/displaylink.txt+1−1
@@ -25,7 +25,7 @@
2525 { ExecStart = String;
2626 LogsDirectory = String;
2727 Restart = String;
28− RestartSec = Integer;
28+ RestartSec = Number;
2929 };
3030 };
3131 };
test/golden/importless/dissect.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/dotty.txt+1−1
@@ -4,7 +4,7 @@
44 δ.meta = β
55) =>
66{ callPackage =
7− Path -> {fetchurl = ε; jre = ζ; makeWrapper = η; stdenv = α;} -> δ;
7+ String -> {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 = Path;
14+ { goDeps = String;
1515 goPackagePath = String;
1616 meta =
1717 {description = String; homepage = μ; license = κ; maintainers = [η];};
test/golden/importless/dsseries.txt+1−1
@@ -1,5 +1,5 @@
11∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο.
2−( (β) // ({description = String;}) ~ (γ),
2+( β // {description = String;} ~ γ,
33 δ.config = ε,
44 δ.lib = ζ,
55 δ.pkgs = η,
test/golden/importless/dust.txt+1−1
@@ -7,7 +7,7 @@
77 meta =
88 {description = String; homepage = δ; license = ε; platforms = [ζ];};
99 name = String;
10− patches = [Path];
10+ patches = [String];
1111 src = η;
1212 } ->
1313 θ,
test/golden/importless/dvtm.txt+2−2
@@ -14,7 +14,7 @@
1414 };
1515 name = ι;
1616 nativeBuildInputs = [ε];
17− patches = κ;
17+ patches = [κ];
1818 postPatch = λ;
1919 prePatch = String;
2020 src = μ;
@@ -32,7 +32,7 @@
3232{ customConfig = Null;
3333 name = ι;
3434 ncurses = ε;
35− patches = κ;
35+ patches = [κ];
3636 src = μ;
3737 stdenv = α;
3838} ->
test/golden/importless/edit.txt+2−2
@@ -8,12 +8,12 @@
88 {description = String; homepage = String; license = δ; platforms = ε;};
99 name = String;
1010 nativeBuildInputs = [ζ];
11− patches = [Path];
11+ patches = [String];
1212 postPatch = String;
1313 src = η;
1414 } ->
1515 θ,
16− γ.api_version = Integer,
16+ γ.api_version = Number,
1717 β.optionalString = Bool -> String -> String,
1818 ι.licenses = κ,
1919 ι.platforms = λ,
test/golden/importless/eggs.txtnew file+14
@@ -0,0 +1,14 @@
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/element-desktop.txt+2−2
@@ -37,10 +37,10 @@
3737 };
3838 name = String;
3939 nativeBuildInputs = [ο];
40− packageJSON = Path;
40+ packageJSON = String;
4141 src = ∀ α. α;
4242 version = ∀ α. α;
43− yarnNix = Path;
43+ yarnNix = String;
4444 } ->
4545 π;
4646 stdenv = β;
test/golden/importless/elm-json.txt+1−1
@@ -1,7 +1,7 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν.
22( α.buildRustPackage =
33 { buildInputs = [β];
4− cargoPatches = [Path];
4+ cargoPatches = [String];
55 cargoSha256 = String;
66 doCheck = Bool;
77 meta =
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/eos.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
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 = Path;} -> δ
7+ {bash = β; isExecutable = Bool; path = [γ]; src = String;} -> δ
88) =>
99{pkgs = α;} -> δ
test/golden/importless/extpack.txtdeleted−27
@@ -1,27 +0,0 @@
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/extras.txt+2−1
@@ -32,7 +32,8 @@
3232 τ.optionals = Bool -> [String] -> [String],
3333 υ.optionals = Bool -> [String] -> [String],
3434 φ.optionalString = Bool -> String -> γ,
35− χ.optionalString = Bool -> String -> γ
35+ χ.optionalString = Bool -> String -> γ,
36+ (String | Number) ~ γ
3637) =>
3738{ enableLua = Bool;
3839 enableMysql = Bool;
test/golden/importless/fare-utils.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/faust1.txt+37−46
@@ -1,50 +1,41 @@
11∀ γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1 δ1 ε1 ζ1.
2−( ( γ
3− ) //
4− ( { dontBuild = Bool;
5− installPhase = String;
6− meta = ∀ β. β;
7− name = String;
8− postInstall = String;
9− src = δ;
10− }
11− ) ~
12− ( ε
13− ),
14− ( ζ
15− ) //
16− ( { buildInputs = [η];
17− nativeBuildInputs = [θ];
18− postFixup = String;
19− propagatedBuildInputs = [ι];
20− }
21− ) ~
22− ( { buildInputs = [η];
23− meta = ∀ β. β;
24− passthru = {wrap = κ; wrapWithBuildEnv = λ;};
25− pname = String;
26− postFixup = String;
27− postInstall = String;
28− preConfigure = String;
29− src = δ;
30− version = μ;
31− }
32− ),
33− ( ν
34− ) //
35− ( {buildInputs = [η]; postFixup = String;}
36− ) ~
37− ( { buildInputs = [η];
38− meta = ∀ β. β;
39− passthru = {wrap = κ; wrapWithBuildEnv = λ;};
40− pname = String;
41− postFixup = String;
42− postInstall = String;
43− preConfigure = String;
44− src = δ;
45− version = μ;
46− }
47− ),
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+ },
4839 ξ.?scripts = [ο],
4940 π.?scripts = [ο],
5041 ρ.lib = σ,
test/golden/importless/faust2.txt+42−51
@@ -1,55 +1,46 @@
11∀ γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1 δ1 ε1 ζ1 η1.
2−( ( γ
3− ) //
4− ( { dontBuild = Bool;
5− installPhase = String;
6− meta = ∀ β. β;
7− name = String;
8− postInstall = String;
9− src = δ;
10− }
11− ) ~
12− ( ε
13− ),
14− ( ζ
15− ) //
16− ( { buildInputs = [η];
17− libPath = θ;
18− nativeBuildInputs = [η];
19− postFixup = String;
20− propagatedBuildInputs = [ι];
21− }
22− ) ~
23− ( { buildInputs = [κ];
24− cmakeFlags = String;
25− meta = ∀ β. β;
26− nativeBuildInputs = [η];
27− passthru = {wrap = λ; wrapWithBuildEnv = μ;};
28− pname = String;
29− postFixup = String;
30− postInstall = String;
31− preConfigure = String;
32− src = δ;
33− version = ν;
34− }
35− ),
36− ( ξ
37− ) //
38− ( {buildInputs = [η]; postFixup = String;}
39− ) ~
40− ( { buildInputs = [κ];
41− cmakeFlags = String;
42− meta = ∀ β. β;
43− nativeBuildInputs = [η];
44− passthru = {wrap = λ; wrapWithBuildEnv = μ;};
45− pname = String;
46− postFixup = String;
47− postInstall = String;
48− preConfigure = String;
49− src = δ;
50− version = ν;
51− }
52− ),
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+ },
5344 ο.?scripts = [π],
5445 ρ.?scripts = [π],
5546 σ.lib = τ,
test/golden/importless/fcitx.txt+2−2
@@ -1,5 +1,5 @@
11∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1 δ1 ε1 ζ1 η1 θ1 ι1.
2−( (β) // ({check = γ -> Bool; name = String;}) ~ (δ),
2+( β // {check = γ -> Bool; name = String;} ~ δ,
33 ε.config = ζ,
44 ε.lib = η,
55 ε.pkgs = θ,
@@ -30,7 +30,7 @@
3030 } ->
3131 ω,
3232 η.mkOption =
33− {default = ∀ α. α; description = String; example = φ; type = υ;} -> α1,
33+ {default = ∀ α. [α]; description = String; example = φ; type = υ;} -> α1,
3434 η.types = β1,
3535 κ.override = {plugins = γ1;} -> ψ,
3636 ξ.engines = γ1,
test/golden/importless/fixed-points.txt+5−9
@@ -2,18 +2,14 @@
22θ ->
33{ composeExtensions =
44 ∀ α β γ δ ε ζ η.
5− ((α) // (β) ~ (γ), (β) // (δ) ~ (ε)) => (ζ -> α -> β) ->
6− (ζ -> η -> δ) -> ζ -> α -> ε;
5+ (α // β ~ γ, β // δ ~ ε) => (ζ -> α -> β) -> (ζ -> η -> δ) -> ζ -> α -> ε;
76 converge = ∀ α. (α -> α) -> α -> α;
8− extends =
9− ∀ α β γ δ. ((α) // (β) ~ (γ)) => (δ -> α -> β) -> (δ -> α) -> δ -> γ;
7+ extends = ∀ α β γ δ. (α // β ~ γ) => (δ -> α -> β) -> (δ -> α) -> δ -> γ;
108 fix = ∀ α. (α -> α) -> α;
11− fix' = ∀ α β. ((α) // ({__unfix__ = β -> α;}) ~ (β)) => (β -> α) -> β;
9+ fix' = ∀ α β. (α // {__unfix__ = β -> α;} ~ β) => (β -> α) -> β;
1210 makeExtensible =
13− ∀ α β γ.
14− ((α) // ({__unfix__ = β -> α;}) ~ (β), (β) // ({}) ~ (γ)) => (β -> α) -> γ;
11+ ∀ α β γ. (α // {__unfix__ = β -> α;} ~ β, β // {} ~ γ) => (β -> α) -> γ;
1512 makeExtensibleWithCustomName =
1613 ∀ α β γ δ.
17− ((α) // ({__unfix__ = β -> α;}) ~ (β), (β) // ({}) ~ (γ)) => δ ->
18− (β -> α) -> γ;
14+ (α // {__unfix__ = β -> α;} ~ β, β // {} ~ γ) => δ -> (β -> α) -> γ;
1915}
test/golden/importless/flatpak-builder.txt+1−1
@@ -3,7 +3,7 @@
33 { testConfig =
44 { environment = {systemPackages = [β];};
55 services = {flatpak = {enable = Bool;};};
6− virtualisation = {diskSize = Integer;};
6+ virtualisation = {diskSize = Number;};
77 xdg = {portal = {enable = Bool;};};
88 };
99 testRunnerFlags = String;
test/golden/importless/flatpak.txt+2−2
@@ -22,7 +22,7 @@
2222 } ->
2323 ξ,
2424 δ.mkOption =
25− { default = ∀ α. α;
25+ { default = ∀ α. [α];
2626 description = String;
2727 example = θ;
2828 internal = Bool;
@@ -43,6 +43,6 @@
4343) =>
4444β ->
4545{ config = ξ;
46− meta = {doc = Path; maintainers = χ;};
46+ meta = {doc = String; maintainers = χ;};
4747 options = {services = {flatpak = {enable = ι; guiPackages = π;};};};
4848}
test/golden/importless/fox-1.6.txt+1−1
@@ -12,7 +12,7 @@
1212 homepage = String;
1313 license = η;
1414 longDescription = String;
15− maintainers = ∀ α. α;
15+ maintainers = ∀ α. [α];
1616 platforms = θ;
1717 };
1818 pname = String;
test/golden/importless/frameworks.txt+60−60
@@ -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];
6161 AudioVideoBridging = [β1];
62− Automator = ∀ α. α;
63− CFNetwork = ∀ α. α;
64− CalendarStore = ∀ α. α;
62+ Automator = ∀ α. [α];
63+ CFNetwork = ∀ α. [α];
64+ CalendarStore = ∀ α. [α];
6565 Carbon = [π];
6666 Cocoa = [δ];
67− Collaboration = ∀ α. α;
67+ Collaboration = ∀ α. [α];
6868 CoreAudio = [γ1];
6969 CoreAudioKit = [δ1];
70− CoreBluetooth = ∀ α. α;
71− CoreData = ∀ α. α;
72− CoreFoundation = ∀ α. α;
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 = [η];
8181 CoreText = [ε1];
8282 CoreVideo = [ζ1];
8383 CoreWLAN = [υ];
84− DVDPlayback = ∀ α. α;
85− DirectoryService = ∀ α. α;
84+ DVDPlayback = ∀ α. [α];
85+ DirectoryService = ∀ α. [α];
8686 DiscRecording = [η1];
87− DiscRecordingUI = ∀ α. α;
87+ DiscRecordingUI = ∀ α. [α];
8888 DiskArbitration = [θ1];
89− EventKit = ∀ α. α;
90− ExceptionHandling = ∀ α. α;
91− FWAUserLib = ∀ α. α;
89+ EventKit = ∀ α. [α];
90+ ExceptionHandling = ∀ α. [α];
91+ FWAUserLib = ∀ α. [α];
9292 ForceFeedback = [ι1];
9393 Foundation = [χ];
94− GLKit = ∀ α. α;
94+ GLKit = ∀ α. [α];
9595 GLUT = [κ1];
96− GSS = ∀ α. α;
97− GameController = ∀ α. α;
96+ GSS = ∀ α. [α];
97+ GameController = ∀ α. [α];
9898 GameKit = [λ1];
99− Hypervisor = ∀ α. α;
99+ Hypervisor = ∀ α. [α];
100100 ICADevices = [μ1];
101− IMServicePlugIn = ∀ α. α;
101+ IMServicePlugIn = ∀ α. [α];
102102 IOBluetooth = [ν1];
103103 IOBluetoothUI = [ξ1];
104− IOKit = ∀ α. α;
104+ IOKit = ∀ α. [α];
105105 IOSurface = [φ];
106− ImageCaptureCore = ∀ α. α;
106+ ImageCaptureCore = ∀ α. [α];
107107 ImageIO = [ο1];
108108 InputMethodKit = [π1];
109− InstallerPlugins = ∀ α. α;
110− InstantMessage = ∀ α. α;
111− JavaFrameEmbedding = ∀ α. α;
112− JavaNativeFoundation = ∀ α. α;
113− JavaRuntimeSupport = ∀ α. α;
114− JavaScriptCore = ∀ α. α;
115− JavaVM = ∀ α. α;
116− Kerberos = ∀ α. α;
109+ InstallerPlugins = ∀ α. [α];
110+ InstantMessage = ∀ α. [α];
111+ JavaFrameEmbedding = ∀ α. [α];
112+ JavaNativeFoundation = ∀ α. [α];
113+ JavaRuntimeSupport = ∀ α. [α];
114+ JavaScriptCore = ∀ α. [α];
115+ JavaVM = ∀ α. [α];
116+ Kerberos = ∀ α. [α];
117117 Kernel = [ρ1];
118− LDAP = ∀ α. α;
118+ LDAP = ∀ α. [α];
119119 LatentSemanticMapping = [σ1];
120− LocalAuthentication = ∀ α. α;
121− MapKit = ∀ α. α;
120+ LocalAuthentication = ∀ α. [α];
121+ MapKit = ∀ α. [α];
122122 MediaAccessibility = [τ1];
123− MediaPlayer = ∀ α. α;
123+ MediaPlayer = ∀ α. [α];
124124 MediaToolbox = [υ1];
125− Metal = ∀ α. α;
125+ Metal = ∀ α. [α];
126126 MetalKit = [σ];
127− ModelIO = ∀ α. α;
128− NetFS = ∀ α. α;
127+ ModelIO = ∀ α. [α];
128+ NetFS = ∀ α. [α];
129129 OSAKit = [φ1];
130− OpenAL = ∀ α. α;
130+ OpenAL = ∀ α. [α];
131131 OpenCL = [χ1];
132− OpenDirectory = ∀ α. α;
133− OpenGL = ∀ α. α;
132+ OpenDirectory = ∀ α. [α];
133+ OpenGL = ∀ α. [α];
134134 PCSC = [ψ1];
135− PreferencePanes = ∀ α. α;
136− PubSub = ∀ α. α;
135+ PreferencePanes = ∀ α. [α];
136+ PubSub = ∀ α. [α];
137137 QTKit = [μ];
138138 Quartz = [τ];
139139 QuartzCore = [κ];
140140 QuickLook = [ω1];
141141 QuickTime = [α2];
142− SceneKit = ∀ α. α;
143− ScreenSaver = ∀ α. α;
144− Scripting = ∀ α. α;
145− ScriptingBridge = ∀ α. α;
142+ SceneKit = ∀ α. [α];
143+ ScreenSaver = ∀ α. [α];
144+ Scripting = ∀ α. [α];
145+ ScriptingBridge = ∀ α. [α];
146146 Security = [β2];
147− SecurityFoundation = ∀ α. α;
147+ SecurityFoundation = ∀ α. [α];
148148 SecurityInterface = [γ2];
149149 ServiceManagement = [δ2];
150− Social = ∀ α. α;
151− SpriteKit = ∀ α. α;
152− StoreKit = ∀ α. α;
153− SyncServices = ∀ α. α;
150+ Social = ∀ α. [α];
151+ SpriteKit = ∀ α. [α];
152+ StoreKit = ∀ α. [α];
153+ SyncServices = ∀ α. [α];
154154 SystemConfiguration = [ε2];
155155 TWAIN = [ζ2];
156− Tcl = ∀ α. α;
156+ Tcl = ∀ α. [α];
157157 VideoDecodeAcceleration = [η2];
158158 VideoToolbox = [θ2];
159159 WebKit = [ρ];
160− vmnet = ∀ α. α;
160+ vmnet = ∀ α. [α];
161161}
test/golden/importless/freeoffice.txt+10−13
@@ -1,18 +1,15 @@
11∀ α β γ δ.
2−( ( α
3− ) //
4− ( { archive = String;
5− edition = String;
6− pname = String;
7− src = β;
8− suiteName = String;
9− version = String;
10− }
11− ) ~
12− ( γ
13− ),
2+( α //
3+ { archive = String;
4+ edition = String;
5+ pname = String;
6+ src = β;
7+ suiteName = String;
8+ version = String;
9+ } ~
10+ γ,
1411 α.?officeVersion = {edition = String; sha256 = String; version = String;},
15− α.callPackage = Path -> γ -> δ,
12+ α.callPackage = String -> γ -> δ,
1613 α.fetchurl = {sha256 = String; url = String;} -> β
1714) =>
1815α -> δ
test/golden/importless/freetds.txt+1−1
@@ -5,7 +5,7 @@
55 β.environment = ε,
66 γ.attrNames = ζ -> η,
77 γ.concatStrings = θ -> ι,
8− γ.length = η -> Integer,
8+ γ.length = η -> Number,
99 γ.literalExample = String -> κ,
1010 γ.mapAttrsToList = (λ -> μ -> String) -> ζ -> θ,
1111 γ.mkIf =
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/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/garbage-pools.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/gdal-1_11.txt+1−1
@@ -13,7 +13,7 @@
1313 maintainers = [ε];
1414 platforms = [ζ];
1515 };
16− patches = [Path];
16+ patches = [String];
1717 pname = String;
1818 preBuild = String;
1919 preConfigure = String;
test/golden/importless/gdk-pixbuf.txt+2−2
@@ -7,7 +7,7 @@
77 δ.mkIf =
88 Bool ->
99 {environment = {variables = {GDK_PIXBUF_MODULE_FILE = String;};};} -> θ,
10− δ.mkOption = {default = ∀ α. α; description = String; type = ι;} -> κ,
10+ δ.mkOption = {default = ∀ α. [α]; description = String; type = ι;} -> κ,
1111 δ.types = λ,
1212 δ.unique = [μ] -> ν,
1313 ε.gdk-pixbuf = μ,
@@ -15,7 +15,7 @@
1515 η.modulePackages = [μ],
1616 ζ.xserver = ο,
1717 ο.gdk-pixbuf = π,
18− π.modulePackages = ρ,
18+ π.modulePackages = [ρ],
1919 λ.listOf = σ -> ι,
2020 τ.package = σ
2121) =>
test/golden/importless/gemset-beta.txt+36−36
@@ -1,228 +1,228 @@
11{ CFPropertyList =
22 { groups = [String];
3− platforms = ∀ α. α;
3+ platforms = ∀ α. [α];
44 source = {remotes = [String]; sha256 = String; type = String;};
55 version = String;
66 };
77 activesupport =
88 { dependencies = [String];
99 groups = [String];
10− platforms = ∀ α. α;
10+ platforms = ∀ α. [α];
1111 source = {remotes = [String]; sha256 = String; type = String;};
1212 version = String;
1313 };
1414 addressable =
1515 { dependencies = [String];
1616 groups = [String];
17− platforms = ∀ α. α;
17+ platforms = ∀ α. [α];
1818 source = {remotes = [String]; sha256 = String; type = String;};
1919 version = String;
2020 };
2121 algoliasearch =
2222 { dependencies = [String];
2323 groups = [String];
24− platforms = ∀ α. α;
24+ platforms = ∀ α. [α];
2525 source = {remotes = [String]; sha256 = String; type = String;};
2626 version = String;
2727 };
2828 atomos =
2929 { groups = [String];
30− platforms = ∀ α. α;
30+ platforms = ∀ α. [α];
3131 source = {remotes = [String]; sha256 = String; type = String;};
3232 version = String;
3333 };
3434 claide =
3535 { groups = [String];
36− platforms = ∀ α. α;
36+ platforms = ∀ α. [α];
3737 source = {remotes = [String]; sha256 = String; type = String;};
3838 version = String;
3939 };
4040 cocoapods =
4141 { dependencies = [String];
4242 groups = [String];
43− platforms = ∀ α. α;
43+ platforms = ∀ α. [α];
4444 source = {remotes = [String]; sha256 = String; type = String;};
4545 version = String;
4646 };
4747 cocoapods-core =
4848 { dependencies = [String];
4949 groups = [String];
50− platforms = ∀ α. α;
50+ platforms = ∀ α. [α];
5151 source = {remotes = [String]; sha256 = String; type = String;};
5252 version = String;
5353 };
5454 cocoapods-deintegrate =
5555 { groups = [String];
56− platforms = ∀ α. α;
56+ platforms = ∀ α. [α];
5757 source = {remotes = [String]; sha256 = String; type = String;};
5858 version = String;
5959 };
6060 cocoapods-downloader =
6161 { groups = [String];
62− platforms = ∀ α. α;
62+ platforms = ∀ α. [α];
6363 source = {remotes = [String]; sha256 = String; type = String;};
6464 version = String;
6565 };
6666 cocoapods-plugins =
6767 { dependencies = [String];
6868 groups = [String];
69− platforms = ∀ α. α;
69+ platforms = ∀ α. [α];
7070 source = {remotes = [String]; sha256 = String; type = String;};
7171 version = String;
7272 };
7373 cocoapods-search =
7474 { groups = [String];
75− platforms = ∀ α. α;
75+ platforms = ∀ α. [α];
7676 source = {remotes = [String]; sha256 = String; type = String;};
7777 version = String;
7878 };
7979 cocoapods-trunk =
8080 { dependencies = [String];
8181 groups = [String];
82− platforms = ∀ α. α;
82+ platforms = ∀ α. [α];
8383 source = {remotes = [String]; sha256 = String; type = String;};
8484 version = String;
8585 };
8686 cocoapods-try =
8787 { groups = [String];
88− platforms = ∀ α. α;
88+ platforms = ∀ α. [α];
8989 source = {remotes = [String]; sha256 = String; type = String;};
9090 version = String;
9191 };
9292 colored2 =
9393 { groups = [String];
94− platforms = ∀ α. α;
94+ platforms = ∀ α. [α];
9595 source = {remotes = [String]; sha256 = String; type = String;};
9696 version = String;
9797 };
9898 concurrent-ruby =
9999 { groups = [String];
100− platforms = ∀ α. α;
100+ platforms = ∀ α. [α];
101101 source = {remotes = [String]; sha256 = String; type = String;};
102102 version = String;
103103 };
104104 escape =
105105 { groups = [String];
106− platforms = ∀ α. α;
106+ platforms = ∀ α. [α];
107107 source = {remotes = [String]; sha256 = String; type = String;};
108108 version = String;
109109 };
110110 ethon =
111111 { dependencies = [String];
112112 groups = [String];
113− platforms = ∀ α. α;
113+ platforms = ∀ α. [α];
114114 source = {remotes = [String]; sha256 = String; type = String;};
115115 version = String;
116116 };
117117 ffi =
118118 { groups = [String];
119− platforms = ∀ α. α;
119+ platforms = ∀ α. [α];
120120 source = {remotes = [String]; sha256 = String; type = String;};
121121 version = String;
122122 };
123123 fourflusher =
124124 { groups = [String];
125− platforms = ∀ α. α;
125+ platforms = ∀ α. [α];
126126 source = {remotes = [String]; sha256 = String; type = String;};
127127 version = String;
128128 };
129129 fuzzy_match =
130130 { groups = [String];
131− platforms = ∀ α. α;
131+ platforms = ∀ α. [α];
132132 source = {remotes = [String]; sha256 = String; type = String;};
133133 version = String;
134134 };
135135 gh_inspector =
136136 { groups = [String];
137− platforms = ∀ α. α;
137+ platforms = ∀ α. [α];
138138 source = {remotes = [String]; sha256 = String; type = String;};
139139 version = String;
140140 };
141141 httpclient =
142142 { groups = [String];
143− platforms = ∀ α. α;
143+ platforms = ∀ α. [α];
144144 source = {remotes = [String]; sha256 = String; type = String;};
145145 version = String;
146146 };
147147 i18n =
148148 { dependencies = [String];
149149 groups = [String];
150− platforms = ∀ α. α;
150+ platforms = ∀ α. [α];
151151 source = {remotes = [String]; sha256 = String; type = String;};
152152 version = String;
153153 };
154154 json =
155155 { groups = [String];
156− platforms = ∀ α. α;
156+ platforms = ∀ α. [α];
157157 source = {remotes = [String]; sha256 = String; type = String;};
158158 version = String;
159159 };
160160 minitest =
161161 { groups = [String];
162− platforms = ∀ α. α;
162+ platforms = ∀ α. [α];
163163 source = {remotes = [String]; sha256 = String; type = String;};
164164 version = String;
165165 };
166166 molinillo =
167167 { groups = [String];
168− platforms = ∀ α. α;
168+ platforms = ∀ α. [α];
169169 source = {remotes = [String]; sha256 = String; type = String;};
170170 version = String;
171171 };
172172 nanaimo =
173173 { groups = [String];
174− platforms = ∀ α. α;
174+ platforms = ∀ α. [α];
175175 source = {remotes = [String]; sha256 = String; type = String;};
176176 version = String;
177177 };
178178 nap =
179179 { groups = [String];
180− platforms = ∀ α. α;
180+ platforms = ∀ α. [α];
181181 source = {remotes = [String]; sha256 = String; type = String;};
182182 version = String;
183183 };
184184 netrc =
185185 { groups = [String];
186− platforms = ∀ α. α;
186+ platforms = ∀ α. [α];
187187 source = {remotes = [String]; sha256 = String; type = String;};
188188 version = String;
189189 };
190190 public_suffix =
191191 { groups = [String];
192− platforms = ∀ α. α;
192+ platforms = ∀ α. [α];
193193 source = {remotes = [String]; sha256 = String; type = String;};
194194 version = String;
195195 };
196196 ruby-macho =
197197 { groups = [String];
198− platforms = ∀ α. α;
198+ platforms = ∀ α. [α];
199199 source = {remotes = [String]; sha256 = String; type = String;};
200200 version = String;
201201 };
202202 thread_safe =
203203 { groups = [String];
204− platforms = ∀ α. α;
204+ platforms = ∀ α. [α];
205205 source = {remotes = [String]; sha256 = String; type = String;};
206206 version = String;
207207 };
208208 typhoeus =
209209 { dependencies = [String];
210210 groups = [String];
211− platforms = ∀ α. α;
211+ platforms = ∀ α. [α];
212212 source = {remotes = [String]; sha256 = String; type = String;};
213213 version = String;
214214 };
215215 tzinfo =
216216 { dependencies = [String];
217217 groups = [String];
218− platforms = ∀ α. α;
218+ platforms = ∀ α. [α];
219219 source = {remotes = [String]; sha256 = String; type = String;};
220220 version = String;
221221 };
222222 xcodeproj =
223223 { dependencies = [String];
224224 groups = [String];
225− platforms = ∀ α. α;
225+ platforms = ∀ α. [α];
226226 source = {remotes = [String]; sha256 = String; type = String;};
227227 version = String;
228228 };
test/golden/importless/gemset_libvirt.txt+15−15
@@ -1,97 +1,97 @@
11{ builder =
22 { groups = [String];
3− platforms = ∀ α. α;
3+ platforms = ∀ α. [α];
44 source = {remotes = [String]; sha256 = String; type = String;};
55 version = String;
66 };
77 excon =
88 { groups = [String];
9− platforms = ∀ α. α;
9+ platforms = ∀ α. [α];
1010 source = {remotes = [String]; sha256 = String; type = String;};
1111 version = String;
1212 };
1313 fog-core =
1414 { dependencies = [String];
1515 groups = [String];
16− platforms = ∀ α. α;
16+ platforms = ∀ α. [α];
1717 source = {remotes = [String]; sha256 = String; type = String;};
1818 version = String;
1919 };
2020 fog-json =
2121 { dependencies = [String];
2222 groups = [String];
23− platforms = ∀ α. α;
23+ platforms = ∀ α. [α];
2424 source = {remotes = [String]; sha256 = String; type = String;};
2525 version = String;
2626 };
2727 fog-libvirt =
2828 { dependencies = [String];
2929 groups = [String];
30− platforms = ∀ α. α;
30+ platforms = ∀ α. [α];
3131 source = {remotes = [String]; sha256 = String; type = String;};
3232 version = String;
3333 };
3434 fog-xml =
3535 { dependencies = [String];
3636 groups = [String];
37− platforms = ∀ α. α;
37+ platforms = ∀ α. [α];
3838 source = {remotes = [String]; sha256 = String; type = String;};
3939 version = String;
4040 };
4141 formatador =
4242 { groups = [String];
43− platforms = ∀ α. α;
43+ platforms = ∀ α. [α];
4444 source = {remotes = [String]; sha256 = String; type = String;};
4545 version = String;
4646 };
4747 json =
4848 { groups = [String];
49− platforms = ∀ α. α;
49+ platforms = ∀ α. [α];
5050 source = {remotes = [String]; sha256 = String; type = String;};
5151 version = String;
5252 };
5353 mime-types =
5454 { dependencies = [String];
5555 groups = [String];
56− platforms = ∀ α. α;
56+ platforms = ∀ α. [α];
5757 source = {remotes = [String]; sha256 = String; type = String;};
5858 version = String;
5959 };
6060 mime-types-data =
6161 { groups = [String];
62− platforms = ∀ α. α;
62+ platforms = ∀ α. [α];
6363 source = {remotes = [String]; sha256 = String; type = String;};
6464 version = String;
6565 };
6666 mini_portile2 =
6767 { groups = [String];
68− platforms = ∀ α. α;
68+ platforms = ∀ α. [α];
6969 source = {remotes = [String]; sha256 = String; type = String;};
7070 version = String;
7171 };
7272 multi_json =
7373 { groups = [String];
74− platforms = ∀ α. α;
74+ platforms = ∀ α. [α];
7575 source = {remotes = [String]; sha256 = String; type = String;};
7676 version = String;
7777 };
7878 nokogiri =
7979 { dependencies = [String];
8080 groups = [String];
81− platforms = ∀ α. α;
81+ platforms = ∀ α. [α];
8282 source = {remotes = [String]; sha256 = String; type = String;};
8383 version = String;
8484 };
8585 ruby-libvirt =
8686 { groups = [String];
87− platforms = ∀ α. α;
87+ platforms = ∀ α. [α];
8888 source = {remotes = [String]; sha256 = String; type = String;};
8989 version = String;
9090 };
9191 vagrant-libvirt =
9292 { dependencies = [String];
9393 groups = [String];
94− platforms = ∀ α. α;
94+ platforms = ∀ α. [α];
9595 source = {remotes = [String]; sha256 = String; type = String;};
9696 version = String;
9797 };
test/golden/importless/generations-dir.txt+6−1
@@ -19,7 +19,12 @@
1919 δ.gnused = ξ,
2020 δ.stdenv = ο,
2121 δ.substituteAll =
22− {bash = ν; copyKernels = π; isExecutable = Bool; path = [ξ]; src = Path;} ->
22+ { bash = ν;
23+ copyKernels = π;
24+ isExecutable = Bool;
25+ path = [ξ];
26+ src = String;
27+ } ->
2328 θ,
2429 ο.hostPlatform = ρ,
2530 ρ.platform = σ,
test/golden/importless/generatorrunner.txt+1−1
@@ -7,7 +7,7 @@
77 { description = String;
88 homepage = String;
99 license = ε;
10− maintainers = ∀ α. α;
10+ maintainers = ∀ α. [α];
1111 platforms = ζ;
1212 };
1313 name = String;
test/golden/importless/generic-builder.txt+13−16
@@ -1,20 +1,17 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο.
2−( (α) // ({name = String;}) ~ (β),
3− ( { NIX_CFLAGS_COMPILE = γ;
4− buildInputs = [δ];
5− buildPhase = String;
6− checkPhase = String;
7− configurePhase = String;
8− installFlags = [String];
9− installPhase = String;
10− postFixup = String;
11− rCommand = String;
12− }
13− ) //
14− ( β
15− ) ~
16− ( ε
17− ),
2+( α // {name = String;} ~ β,
3+ { NIX_CFLAGS_COMPILE = γ;
4+ buildInputs = [δ];
5+ buildPhase = String;
6+ checkPhase = String;
7+ configurePhase = String;
8+ installFlags = [String];
9+ installPhase = String;
10+ postFixup = String;
11+ rCommand = String;
12+ } //
13+ β ~
14+ ε,
1815 α.?buildInputs = [δ],
1916 α.?doCheck = Bool,
2017 α.?requireX = Bool,
test/golden/importless/generic-stack-builder.txt+20−23
@@ -1,31 +1,28 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ.
2−( ( α
3− ) //
4− ( { GIT_SSL_CAINFO = String;
5− LANG = String;
6− LD_LIBRARY_PATH = β;
7− STACK_IN_NIX_EXTRA_ARGS = γ;
8− STACK_IN_NIX_SHELL = Integer;
9− STACK_PLATFORM_VARIANT = String;
10− __noChroot = Bool;
11− buildInputs = [δ];
12− buildPhase = String;
13− checkPhase = String;
14− doCheck = Bool;
15− installPhase = String;
16− nativeBuildInputs = [ε];
17− preConfigure = String;
18− preferLocalBuild = Bool;
19− }
20− ) ~
21− ( ζ
22− ),
2+( α //
3+ { GIT_SSL_CAINFO = String;
4+ LANG = String;
5+ LD_LIBRARY_PATH = β;
6+ STACK_IN_NIX_EXTRA_ARGS = [γ];
7+ STACK_IN_NIX_SHELL = Number;
8+ STACK_PLATFORM_VARIANT = String;
9+ __noChroot = Bool;
10+ buildInputs = [δ];
11+ buildPhase = String;
12+ checkPhase = String;
13+ doCheck = Bool;
14+ installPhase = String;
15+ nativeBuildInputs = [ε];
16+ preConfigure = String;
17+ preferLocalBuild = Bool;
18+ } ~
19+ ζ,
2320 α.?LD_LIBRARY_PATH = [δ],
2421 α.?buildInputs = [δ],
2522 α.?buildPhase = String,
2623 α.?checkPhase = String,
2724 α.?doCheck = Bool,
28− α.?extraArgs = γ,
25+ α.?extraArgs = [γ],
2926 α.?ghc = ε,
3027 α.?installPhase = String,
3128 α.?nativeBuildInputs = [ε],
@@ -40,7 +37,7 @@
4037 ghc = ε;
4138 glibcLocales = λ;
4239 lib = κ;
43− makeSetupHook = {} -> Path -> ε;
40+ makeSetupHook = {} -> String -> ε;
4441 pkgconfig = ε;
4542 stack = ε;
4643 stdenv = η;
test/golden/importless/geogebra6.txt+1−1
@@ -1,5 +1,5 @@
11∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ.
2−( (β) // ({license = γ; maintainers = [δ]; platforms = ε;}) ~ (ζ),
2+( β // {license = γ; maintainers = [δ]; platforms = ε;} ~ ζ,
33 η.lib = θ,
44 η.mkDerivation =
55 { desktopItem = ι;
test/golden/importless/gerbil-ethereum.txt+1−1
@@ -3,7 +3,7 @@
33 β.maintainers = δ,
44 β.platforms = ε,
55 ζ.gerbilPackage =
6− { buildInputs = ∀ α. α;
6+ { buildInputs = ∀ α. [α];
77 gambit-params = η;
88 gerbil = θ;
99 gerbil-package = String;
test/golden/importless/gerbil-persist.txt+1−1
@@ -3,7 +3,7 @@
33 β.maintainers = δ,
44 β.platforms = ε,
55 ζ.gerbilPackage =
6− { buildInputs = ∀ α. α;
6+ { buildInputs = ∀ α. [α];
77 gambit-params = η;
88 gerbil = θ;
99 gerbil-package = String;
test/golden/importless/gerbil-poo.txt+1−1
@@ -3,7 +3,7 @@
33 β.maintainers = δ,
44 β.platforms = ε,
55 ζ.gerbilPackage =
6− { buildInputs = ∀ α. α;
6+ { buildInputs = ∀ α. [α];
77 gambit-params = η;
88 gerbil = θ;
99 gerbil-package = String;
test/golden/importless/gitlab-ci-pipelines-exporter.txt+1−1
@@ -7,7 +7,7 @@
77) =>
88{ buildGoPackage =
99 { doCheck = Bool;
10− goDeps = Path;
10+ goDeps = String;
1111 goPackagePath = String;
1212 meta =
1313 { description = String;
test/golden/importless/global-vars.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/gmusic.txt+1−1
@@ -5,7 +5,7 @@
55 meta =
66 { description = String;
77 homepage = String;
8− hydraPlatforms = ∀ α. α;
8+ hydraPlatforms = ∀ α. [α];
99 license = ε;
1010 maintainers = [ζ];
1111 };
test/golden/importless/gnu.txt+1−1
@@ -6,7 +6,7 @@
66 γ.grub2 = ζ,
77 γ.mkIf =
88 ε ->
9− { boot = {loader = {grub = {enable = Bool; version = Integer;};};};
9+ { boot = {loader = {grub = {enable = Bool; version = Number;};};};
1010 environment = {systemPackages = [η];};
1111 programs = {ssh = {startAgent = Bool;};};
1212 services =
test/golden/importless/graphite2.txt+1−1
@@ -14,7 +14,7 @@
1414 version = String;
1515 } ->
1616 μ,
17− γ.optionals = β -> [Path] -> κ,
17+ γ.optionals = β -> [String] -> κ,
1818 ν.licenses = ξ,
1919 ν.maintainers = ο,
2020 ν.platforms = π,
test/golden/importless/graphql.txt+1−1
@@ -1,5 +1,5 @@
11∀ β γ δ ε ζ η θ.
2−( (β) // ({description = String;}) ~ (γ),
2+( β // {description = String;} ~ γ,
33 δ.meta = β,
44 δ.src = ε,
55 δ.version = ζ
test/golden/importless/gstreamer.txt+1−1
@@ -12,7 +12,7 @@
1212 platforms = η;
1313 };
1414 nativeBuildInputs = [θ];
15− patches = [Path];
15+ patches = [String];
1616 pname = String;
1717 src = ι;
1818 version = String;
test/golden/importless/helper.txt+1−1
@@ -5,7 +5,7 @@
55 installPhase = String;
66 meta =
77 { description = String;
8− hydraPlatforms = ∀ α. α;
8+ hydraPlatforms = ∀ α. [α];
99 license = ε;
1010 maintainers = [ζ];
1111 platforms = η;
test/golden/importless/hg.txt+1−1
@@ -14,7 +14,7 @@
1414 maintainers = [ε];
1515 };
1616 nativeBuildInputs = δ;
17− patches = [Path];
17+ patches = [String];
1818 pname = String;
1919 preBuild = String;
2020 propagatedBuildInputs = [γ];
test/golden/importless/hidepid.txt+1−1
@@ -26,6 +26,6 @@
2626) =>
2727α ->
2828{ config = ι;
29− meta = {doc = Path; maintainers = [ξ];};
29+ meta = {doc = String; maintainers = [ξ];};
3030 options = {security = {hideProcessInformation = λ;};};
3131}
test/golden/importless/http.txt+1−1
@@ -1,5 +1,5 @@
11∀ β γ δ ε ζ η θ ι κ.
2−( (β) // ({description = String;}) ~ (γ),
2+( β // {description = String;} ~ γ,
33 δ.optionals = Bool -> [ε] -> ζ,
44 η.meta = β,
55 η.src = θ,
test/golden/importless/imapfilter.txt+1−1
@@ -6,7 +6,7 @@
66 { description = String;
77 homepage = String;
88 license = δ;
9− maintainers = ∀ α. α;
9+ maintainers = ∀ α. [α];
1010 platforms = ε;
1111 };
1212 pname = String;
test/golden/importless/info.txt+1−1
@@ -1,6 +1,6 @@
11∀ α β.
22{ callPackage =
3− Path ->
3+ String ->
44 {} ->
55 { buildInputs = [α];
66 buildPhase = String;
test/golden/importless/init-script.txt+1−1
@@ -11,7 +11,7 @@
1111 δ.gnugrep = ν,
1212 δ.gnused = ν,
1313 δ.substituteAll =
14− {bash = μ; isExecutable = Bool; path = [ν]; src = Path;} -> η,
14+ {bash = μ; isExecutable = Bool; path = [ν]; src = String;} -> η,
1515 ε.loader = ξ,
1616 ξ.initScript = ο,
1717 ο.enable = ζ,
test/golden/importless/integrations-core.txt+10−13
@@ -1,17 +1,14 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ.
2−( ( α
3− ) //
4− ( { doCheck = Bool;
5− name = String;
6− postPatch = String;
7− sourceRoot = String;
8− src = β;
9− version = String;
10− }
11− ) ~
12− ( γ
13− ),
14− (δ) // ({datadog_checks_base = ε; python = ζ;}) ~ (η),
2+( α //
3+ { doCheck = Bool;
4+ name = String;
5+ postPatch = String;
6+ sourceRoot = String;
7+ src = β;
8+ version = String;
9+ } ~
10+ γ,
11+ δ // {datadog_checks_base = ε; python = ζ;} ~ η,
1512 θ.fetchFromGitHub =
1613 {owner = String; repo = String; rev = String; sha256 = String;} -> β,
1714 θ.lib = ι,
test/golden/importless/intel-microcode.txt+1−1
@@ -5,7 +5,7 @@
55 β.hardware = ε,
66 γ.mkIf = ζ -> {boot = {initrd = {prepend = η;};};} -> θ,
77 γ.mkOption = {default = Bool; description = String; type = ι;} -> κ,
8− γ.mkOrder = Integer -> [String] -> η,
8+ γ.mkOrder = Number -> [String] -> η,
99 γ.types = λ,
1010 ε.cpu = μ,
1111 μ.intel = ν,
test/golden/importless/introspect-environment.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/iproute2.txt+2−1
@@ -28,7 +28,8 @@
2828 ε.iproute2 = φ,
2929 φ.enable = θ,
3030 φ.rttablesExtraConfig = String,
31− υ.lines = σ
31+ υ.lines = σ,
32+ (String | Number) ~ π
3233) =>
3334α ->
3435{ config = ρ;
test/golden/importless/iterate.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/janePackage.txt+7−10
@@ -1,14 +1,11 @@
11∀ α β γ δ ε ζ η θ ι κ.
2−( ( α
3− ) //
4− ( { meta = {homepage = String; license = β;};
5− minimumOCamlVersion = String;
6− src = γ;
7− version = String;
8− }
9− ) ~
10− ( δ
11− ),
2+( α //
3+ { meta = {homepage = String; license = β;};
4+ minimumOCamlVersion = String;
5+ src = γ;
6+ version = String;
7+ } ~
8+ δ,
129 α.?version = String,
1310 ε.lib = ζ,
1411 α.hash = η,
test/golden/importless/janePackage_0_12.txt+7−10
@@ -1,14 +1,11 @@
11∀ α β γ δ ε ζ η θ ι.
2−( ( α
3− ) //
4− ( { meta = {homepage = String; license = β;};
5− minimumOCamlVersion = String;
6− src = γ;
7− version = String;
8− }
9− ) ~
10− ( δ
11− ),
2+( α //
3+ { meta = {homepage = String; license = β;};
4+ minimumOCamlVersion = String;
5+ src = γ;
6+ version = String;
7+ } ~
8+ δ,
129 α.?version = String,
1310 ε.licenses = ζ,
1411 α.hash = η,
test/golden/importless/janePackage_0_13.txt+7−10
@@ -1,14 +1,11 @@
11∀ α β γ δ ε ζ η θ ι.
2−( ( α
3− ) //
4− ( { meta = {homepage = String; license = β;};
5− minimumOCamlVersion = String;
6− src = γ;
7− version = String;
8− }
9− ) ~
10− ( δ
11− ),
2+( α //
3+ { meta = {homepage = String; license = β;};
4+ minimumOCamlVersion = String;
5+ src = γ;
6+ version = String;
7+ } ~
8+ δ,
129 α.?version = String,
1310 ε.licenses = ζ,
1411 α.hash = η,
test/golden/importless/java.txt+1−1
@@ -1,5 +1,5 @@
11∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π.
2−( (β) // ({description = String;}) ~ (γ),
2+( β // {description = String;} ~ γ,
33 δ.config = ε,
44 δ.lib = ζ,
55 δ.pkgs = η,
test/golden/importless/jdk-darwin-base.txt+1−1
@@ -3,7 +3,7 @@
33 δ.hostPlatform = ε,
44 δ.lib = ζ,
55 δ.mkDerivation =
6− { dontStrip = Integer;
6+ { dontStrip = Number;
77 installPhase = String;
88 meta =
99 { description = String;
test/golden/importless/js-build-tools.txt+1−1
@@ -14,7 +14,7 @@
1414 meta = {description = String; license = ε; maintainers = [ζ];};
1515 minimumSupportedOcamlVersion = String;
1616 name = String;
17− patches = [Path];
17+ patches = [String];
1818 src = θ;
1919 version = String;
2020 } ->
test/golden/importless/json-exporter.txt+1−1
@@ -7,7 +7,7 @@
77 ζ.json = θ
88) =>
99{ buildGoPackage =
10− { goDeps = Path;
10+ { goDeps = String;
1111 goPackagePath = String;
1212 meta =
1313 { description = String;
test/golden/importless/json.txt+1−1
@@ -10,6 +10,6 @@
1010) =>
1111{config = α; lib = γ; options = μ; pkgs = ν;} ->
1212{ extraOpts = {configFile = ε; listenAddress = {}; url = ξ;};
13− port = Integer;
13+ port = Number;
1414 serviceOpts = {serviceConfig = {ExecStart = String;};};
1515}
test/golden/importless/karchive.txtnew file+18
@@ -0,0 +1,18 @@
1+∀ α β γ δ ε ζ η θ.
2+(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { bzip2 = ζ;
3+ extra-cmake-modules = η;
4+ lib = α;
5+ lzma = ζ;
6+ mkDerivation =
7+ { buildInputs = [ζ];
8+ meta = {broken = Bool; maintainers = [ε];};
9+ name = String;
10+ nativeBuildInputs = [η];
11+ outputs = [String];
12+ propagatedBuildInputs = [γ];
13+ } ->
14+ θ;
15+ qtbase = γ;
16+ zlib = ζ;
17+} ->
18+θ
test/golden/importless/kcodecs.txtnew file+17
@@ -0,0 +1,17 @@
1+∀ α β γ δ ε ζ η θ.
2+(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3+ gperf = η;
4+ lib = α;
5+ mkDerivation =
6+ { buildInputs = [η];
7+ meta = {broken = Bool; maintainers = [ε];};
8+ name = String;
9+ nativeBuildInputs = [ζ];
10+ outputs = [String];
11+ propagatedBuildInputs = [γ];
12+ } ->
13+ θ;
14+ qtbase = γ;
15+ qttools = η;
16+} ->
17+θ
test/golden/importless/kconfig.txtnew file+15
@@ -0,0 +1,15 @@
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+ propagatedBuildInputs = [γ];
10+ } ->
11+ θ;
12+ qtbase = γ;
13+ qttools = η;
14+} ->
15+θ
test/golden/importless/kcoreaddons.txtnew file+16
@@ -0,0 +1,16 @@
1+∀ α β γ δ ε ζ η θ.
2+(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3+ lib = α;
4+ mkDerivation =
5+ { buildInputs = [η];
6+ meta = {broken = Bool; maintainers = [ε];};
7+ name = String;
8+ nativeBuildInputs = [ζ];
9+ propagatedBuildInputs = [γ];
10+ } ->
11+ θ;
12+ qtbase = γ;
13+ qttools = η;
14+ shared-mime-info = η;
15+} ->
16+θ
test/golden/importless/kdbusaddons.txtnew file+16
@@ -0,0 +1,16 @@
1+∀ α β γ δ ε ζ η θ.
2+(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3+ lib = α;
4+ mkDerivation =
5+ { buildInputs = [η];
6+ meta = {broken = Bool; maintainers = [ε];};
7+ name = String;
8+ nativeBuildInputs = [ζ];
9+ propagatedBuildInputs = [γ];
10+ } ->
11+ θ;
12+ qtbase = γ;
13+ qttools = η;
14+ qtx11extras = η;
15+} ->
16+θ
test/golden/importless/kdebugsettings.txt+1−1
@@ -19,7 +19,7 @@
1919 meta = {license = [ε]; maintainers = [ζ];};
2020 name = String;
2121 nativeBuildInputs = [η];
22− propagatedUserEnvPkgs = ∀ α. α;
22+ propagatedUserEnvPkgs = ∀ α. [α];
2323 } ->
2424 ι;
2525 python = θ;
test/golden/importless/kdecoration.txtnew file+15
@@ -0,0 +1,15 @@
1+∀ α β γ δ.
2+(α.version = β) => { extra-cmake-modules = γ;
3+ ki18n = α;
4+ mkDerivation =
5+ { broken = Bool;
6+ buildInputs = [α];
7+ meta = {broken = Bool;};
8+ name = String;
9+ nativeBuildInputs = [γ];
10+ outputs = [String];
11+ } ->
12+ δ;
13+ qtbase = α;
14+} ->
15+δ
test/golden/importless/kdenlive.txt+1−1
@@ -31,7 +31,7 @@
3131 mlt = δ;
3232 name = String;
3333 nativeBuildInputs = [ε];
34− patches = [Path];
34+ patches = [String];
3535 postPatch = String;
3636 preFixup = String;
3737 qtWrapperArgs = [String];
test/golden/importless/kdnssd.txtnew file+17
@@ -0,0 +1,17 @@
1+∀ α β γ δ ε ζ η θ.
2+(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { avahi = ζ;
3+ extra-cmake-modules = η;
4+ lib = α;
5+ mkDerivation =
6+ { buildInputs = [ζ];
7+ meta = {broken = Bool; maintainers = [ε];};
8+ name = String;
9+ nativeBuildInputs = [η];
10+ outputs = [String];
11+ propagatedBuildInputs = [γ];
12+ } ->
13+ θ;
14+ qtbase = γ;
15+ qttools = ζ;
16+} ->
17+θ
test/golden/importless/keylight.txt+1−1
@@ -5,4 +5,4 @@
55 δ.keylight = ε
66) =>
77{config = α; lib = ζ; options = η; pkgs = θ;} ->
8−{port = Integer; serviceOpts = {serviceConfig = {ExecStart = String;};};}
8+{port = Number; serviceOpts = {serviceConfig = {ExecStart = String;};};}
test/golden/importless/kguiaddons.txtnew file+16
@@ -0,0 +1,16 @@
1+∀ α β γ δ ε ζ η θ.
2+(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3+ lib = α;
4+ mkDerivation =
5+ { buildInputs = [η];
6+ meta = {broken = Bool; maintainers = [ε];};
7+ name = String;
8+ nativeBuildInputs = [ζ];
9+ outputs = [String];
10+ propagatedBuildInputs = [γ];
11+ } ->
12+ θ;
13+ qtbase = γ;
14+ qtx11extras = η;
15+} ->
16+θ
test/golden/importless/ki18n.txtnew file+18
@@ -0,0 +1,18 @@
1+∀ α β γ δ ε ζ η θ ι.
2+(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3+ gettext = η;
4+ lib = α;
5+ mkDerivation =
6+ { buildInputs = [θ];
7+ meta = {broken = Bool; maintainers = [ε];};
8+ name = String;
9+ nativeBuildInputs = [ζ];
10+ propagatedNativeBuildInputs = [η];
11+ } ->
12+ ι;
13+ python3 = η;
14+ qtbase = γ;
15+ qtdeclarative = θ;
16+ qtscript = θ;
17+} ->
18+ι
test/golden/importless/kidletime.txtnew file+15
@@ -0,0 +1,15 @@
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+ propagatedBuildInputs = [γ];
10+ } ->
11+ θ;
12+ qtbase = γ;
13+ qtx11extras = η;
14+} ->
15+θ
test/golden/importless/kirigami2.txtnew file+15
@@ -0,0 +1,15 @@
1+∀ α β γ δ.
2+(α.version = β) => { extra-cmake-modules = γ;
3+ mkDerivation =
4+ { buildInputs = [α];
5+ meta = {broken = Bool;};
6+ name = String;
7+ nativeBuildInputs = [γ];
8+ outputs = [String];
9+ } ->
10+ δ;
11+ qtbase = α;
12+ qtquickcontrols2 = α;
13+ qttranslations = α;
14+} ->
15+δ
test/golden/importless/kitemmodels.txtnew file+14
@@ -0,0 +1,14 @@
1+∀ α β γ δ ε ζ η.
2+(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3+ lib = α;
4+ mkDerivation =
5+ { meta = {broken = Bool; maintainers = [ε];};
6+ name = String;
7+ nativeBuildInputs = [ζ];
8+ outputs = [String];
9+ propagatedBuildInputs = [γ];
10+ } ->
11+ η;
12+ qtbase = γ;
13+} ->
14+η
test/golden/importless/kitemviews.txtnew file+16
@@ -0,0 +1,16 @@
1+∀ α β γ δ ε ζ η θ.
2+(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3+ lib = α;
4+ mkDerivation =
5+ { buildInputs = [η];
6+ meta = {broken = Bool; maintainers = [ε];};
7+ name = String;
8+ nativeBuildInputs = [ζ];
9+ outputs = [String];
10+ propagatedBuildInputs = [γ];
11+ } ->
12+ θ;
13+ qtbase = γ;
14+ qttools = η;
15+} ->
16+θ
test/golden/importless/kmrcl.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/konqueror.txt+1−1
@@ -8,7 +8,7 @@
88 lib = β;
99 mkDerivation =
1010 { buildInputs = [η];
11− meta = {license = [ε]; maintainers = ∀ α. α;};
11+ meta = {license = [ε]; maintainers = ∀ α. [α];};
1212 name = String;
1313 nativeBuildInputs = [ζ];
1414 postPatch = String;
test/golden/importless/kplotting.txtnew file+15
@@ -0,0 +1,15 @@
1+∀ α β γ δ ε ζ η.
2+(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3+ lib = α;
4+ mkDerivation =
5+ { meta = {broken = Bool; maintainers = [ε];};
6+ name = String;
7+ nativeBuildInputs = [ζ];
8+ outputs = [String];
9+ propagatedBuildInputs = [γ];
10+ } ->
11+ η;
12+ qtbase = γ;
13+ qttools = γ;
14+} ->
15+η
test/golden/importless/kvm.txt+1−1
@@ -9,7 +9,7 @@
99) =>
1010{ buildGoPackage =
1111 { buildInputs = [ι];
12− goDeps = Path;
12+ goDeps = String;
1313 goPackagePath = String;
1414 meta =
1515 { description = String;
test/golden/importless/kwayland.txtnew file+19
@@ -0,0 +1,19 @@
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+ propagatedBuildInputs = [γ];
10+ setupHook = θ;
11+ } ->
12+ ι;
13+ plasma-wayland-protocols = η;
14+ propagateBin = θ;
15+ qtbase = γ;
16+ wayland = η;
17+ wayland-protocols = η;
18+} ->
19+ι
test/golden/importless/kwidgetsaddons.txtnew file+16
@@ -0,0 +1,16 @@
1+∀ α β γ δ ε ζ η θ.
2+(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3+ lib = α;
4+ mkDerivation =
5+ { buildInputs = [η];
6+ meta = {broken = Bool; maintainers = [ε];};
7+ name = String;
8+ nativeBuildInputs = [ζ];
9+ outputs = [String];
10+ propagatedBuildInputs = [γ];
11+ } ->
12+ θ;
13+ qtbase = γ;
14+ qttools = η;
15+} ->
16+θ
test/golden/importless/lack-component.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/layout-manager.txt+1−1
@@ -7,7 +7,7 @@
77 { description = String;
88 homepage = String;
99 license = δ;
10− maintainers = ∀ α. α;
10+ maintainers = ∀ α. [α];
1111 platforms = ε;
1212 };
1313 nativeBuildInputs = [ζ];
test/golden/importless/libmaa.txt+1−1
@@ -3,7 +3,7 @@
33 β.mkDerivation =
44 { NIX_CFLAGS_COMPILE = String;
55 buildInputs = [δ];
6− meta = {description = String; maintainers = ∀ α. α; platforms = ε;};
6+ meta = {description = String; maintainers = ∀ α. [α]; platforms = ε;};
77 pname = String;
88 src = ζ;
99 version = String;
test/golden/importless/libnvc.txt+1−1
@@ -5,7 +5,7 @@
55 meta =
66 {description = String; homepage = String; license = γ; platforms = δ;};
77 nativeBuildInputs = [ε];
8− patches = [Path];
8+ patches = [String];
99 pname = String;
1010 postPatch = String;
1111 src = ζ;
test/golden/importless/library.txt+1−1
@@ -6,7 +6,7 @@
66 { description = String;
77 homepage = String;
88 license = ε;
9− maintainers = ∀ α. α;
9+ maintainers = ∀ α. [α];
1010 platforms = ζ;
1111 };
1212 nativeBuildInputs = [η];
test/golden/importless/libtool2.txt+1−1
@@ -10,7 +10,7 @@
1010 homepage = String;
1111 license = δ;
1212 longDescription = String;
13− maintainers = ∀ α. α;
13+ maintainers = ∀ α. [α];
1414 platforms = ε;
1515 };
1616 nativeBuildInputs = [ζ];
test/golden/importless/libxpdf.txt+3−3
@@ -4,8 +4,8 @@
44 { installPhase = String;
55 meta = {license = γ; platforms = δ;};
66 name = String;
7− patches = [Path];
8− src = Path;
7+ patches = [String];
8+ src = String;
99 } ->
1010 ε,
1111 β.licenses = ζ,
@@ -13,4 +13,4 @@
1313 ζ.gpl2 = γ,
1414 η.unix = δ
1515) =>
16−{fetchurl = {sha256 = String; url = String;} -> Path; stdenv = α;} -> ε
16+{fetchurl = {sha256 = String; url = String;} -> String; stdenv = α;} -> ε
test/golden/importless/licenses.txt+14−17
@@ -1,21 +1,18 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1.
2−( (α) // ({shortName = β;}) ~ (γ),
3− ( δ
4− ) //
5− ( { agpl3 = ε;
6− fdl11 = ζ;
7− fdl12 = η;
8− fdl13 = θ;
9− gpl1 = ι;
10− gpl2 = κ;
11− gpl3 = λ;
12− lgpl2 = μ;
13− lgpl21 = ν;
14− lgpl3 = ξ;
15− }
16− ) ~
17− ( ο
18− ),
2+( α // {shortName = β;} ~ γ,
3+ δ //
4+ { agpl3 = ε;
5+ fdl11 = ζ;
6+ fdl12 = η;
7+ fdl13 = θ;
8+ gpl1 = ι;
9+ gpl2 = κ;
10+ gpl3 = λ;
11+ lgpl2 = μ;
12+ lgpl21 = ν;
13+ lgpl3 = ξ;
14+ } ~
15+ ο,
1916 π.licenses = ρ,
2017 π.mapAttrs =
2118 (β -> α -> γ) ->
test/golden/importless/lift.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/linux-4.14.txt+8−11
@@ -1,14 +1,11 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ.
2−( ( α
3− ) //
4− ( { extraMeta = {branch = β;};
5− modDirVersion = Null;
6− src = γ;
7− version = String;
8− }
9− ) ~
10− ( δ
11− ),
2+( α //
3+ { extraMeta = {branch = β;};
4+ modDirVersion = Null;
5+ src = γ;
6+ version = String;
7+ } ~
8+ δ,
129 α.?argsOverride = {},
1310 α.?modDirVersionArg = Null,
1411 α.buildLinux = δ -> ε,
@@ -19,7 +16,7 @@
1916 θ.lib = ι,
2017 ι.concatStringsSep = String -> κ -> Null,
2118 ι.splitVersion = String -> λ,
22− ι.take = Integer -> λ -> κ,
19+ ι.take = Number -> λ -> κ,
2320 ι.versions = μ,
2421 μ.majorMinor = String -> β
2522) =>
test/golden/importless/linux-4.19.txt+8−11
@@ -1,14 +1,11 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ.
2−( ( α
3− ) //
4− ( { extraMeta = {branch = β;};
5− modDirVersion = Null;
6− src = γ;
7− version = String;
8− }
9− ) ~
10− ( δ
11− ),
2+( α //
3+ { extraMeta = {branch = β;};
4+ modDirVersion = Null;
5+ src = γ;
6+ version = String;
7+ } ~
8+ δ,
129 α.?argsOverride = {},
1310 α.?modDirVersionArg = Null,
1411 α.buildLinux = δ -> ε,
@@ -19,7 +16,7 @@
1916 θ.lib = ι,
2017 ι.concatStringsSep = String -> κ -> Null,
2118 ι.splitVersion = String -> λ,
22− ι.take = Integer -> λ -> κ,
19+ ι.take = Number -> λ -> κ,
2320 ι.versions = μ,
2421 μ.majorMinor = String -> β
2522) =>
test/golden/importless/linux-4.4.txt+1−1
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ η.
2−( (α) // ({extraMeta = {branch = String;}; src = β; version = String;}) ~ (γ),
2+( α // {extraMeta = {branch = String;}; src = β; version = String;} ~ γ,
33 α.?argsOverride = {},
44 α.buildLinux = γ -> δ,
55 α.buildPackages = ε,
test/golden/importless/linux-4.9.txt+1−1
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ η.
2−( (α) // ({extraMeta = {branch = String;}; src = β; version = String;}) ~ (γ),
2+( α // {extraMeta = {branch = String;}; src = β; version = String;} ~ γ,
33 α.?argsOverride = {},
44 α.buildLinux = γ -> δ,
55 α.buildPackages = ε,
test/golden/importless/linux-5.4.txt+8−11
@@ -1,14 +1,11 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ.
2−( ( α
3− ) //
4− ( { extraMeta = {branch = β;};
5− modDirVersion = Null;
6− src = γ;
7− version = String;
8− }
9− ) ~
10− ( δ
11− ),
2+( α //
3+ { extraMeta = {branch = β;};
4+ modDirVersion = Null;
5+ src = γ;
6+ version = String;
7+ } ~
8+ δ,
129 α.?argsOverride = {},
1310 α.?modDirVersionArg = Null,
1411 α.buildLinux = δ -> ε,
@@ -19,7 +16,7 @@
1916 θ.lib = ι,
2017 ι.concatStringsSep = String -> κ -> Null,
2118 ι.splitVersion = String -> λ,
22− ι.take = Integer -> λ -> κ,
19+ ι.take = Number -> λ -> κ,
2320 ι.versions = μ,
2421 μ.majorMinor = String -> β
2522) =>
test/golden/importless/linux-5.8.txt+8−11
@@ -1,14 +1,11 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ.
2−( ( α
3− ) //
4− ( { extraMeta = {branch = β;};
5− modDirVersion = Null;
6− src = γ;
7− version = String;
8− }
9− ) ~
10− ( δ
11− ),
2+( α //
3+ { extraMeta = {branch = β;};
4+ modDirVersion = Null;
5+ src = γ;
6+ version = String;
7+ } ~
8+ δ,
129 α.?argsOverride = {},
1310 α.?modDirVersionArg = Null,
1411 α.buildLinux = δ -> ε,
@@ -19,7 +16,7 @@
1916 θ.lib = ι,
2017 ι.concatStringsSep = String -> κ -> Null,
2118 ι.splitVersion = String -> λ,
22− ι.take = Integer -> λ -> κ,
19+ ι.take = Number -> λ -> κ,
2320 ι.versions = μ,
2421 μ.majorMinor = String -> β
2522) =>
test/golden/importless/linux-5.9.txt+8−11
@@ -1,14 +1,11 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ.
2−( ( α
3− ) //
4− ( { extraMeta = {branch = β;};
5− modDirVersion = Null;
6− src = γ;
7− version = String;
8− }
9− ) ~
10− ( δ
11− ),
2+( α //
3+ { extraMeta = {branch = β;};
4+ modDirVersion = Null;
5+ src = γ;
6+ version = String;
7+ } ~
8+ δ,
129 α.?argsOverride = {},
1310 α.?modDirVersionArg = Null,
1411 α.buildLinux = δ -> ε,
@@ -19,7 +16,7 @@
1916 θ.lib = ι,
2017 ι.concatStringsSep = String -> κ -> Null,
2118 ι.splitVersion = String -> λ,
22− ι.take = Integer -> λ -> κ,
19+ ι.take = Number -> λ -> κ,
2320 ι.versions = μ,
2421 μ.majorMinor = String -> β
2522) =>
test/golden/importless/linux-hardkernel-4.14.txt+9−12
@@ -1,16 +1,13 @@
11∀ α β γ δ ε ζ η θ ι.
2−( ( α
3− ) //
4− ( { defconfig = String;
5− extraConfig = String;
6− extraMeta = {branch = String; platforms = [String];};
7− modDirVersion = String;
8− src = β;
9− version = String;
10− }
11− ) ~
12− ( γ
13− ),
2+( α //
3+ { defconfig = String;
4+ extraConfig = String;
5+ extraMeta = {branch = String; platforms = [String];};
6+ modDirVersion = String;
7+ src = β;
8+ version = String;
9+ } ~
10+ γ,
1411 α.?argsOverride = {},
1512 α.?extraConfig = String,
1613 α.buildLinux = γ -> δ,
test/golden/importless/linux-testing-bcachefs.txt+13−16
@@ -1,20 +1,17 @@
11∀ β γ δ ε ζ η θ ι κ λ μ.
2−( ( β
3− ) //
4− ( { extraConfig = String;
5− extraMeta =
6− { branch = String;
7− hydraPlatforms = ∀ α. α;
8− maintainers = [γ];
9− platforms = [String];
10− };
11− modDirVersion = String;
12− src = δ;
13− version = String;
14− }
15− ) ~
16− ( ε
17− ),
2+( β //
3+ { extraConfig = String;
4+ extraMeta =
5+ { branch = String;
6+ hydraPlatforms = ∀ α. [α];
7+ maintainers = [γ];
8+ platforms = [String];
9+ };
10+ modDirVersion = String;
11+ src = δ;
12+ version = String;
13+ } ~
14+ ε,
1815 β.?argsOverride = {},
1916 β.buildLinux = ε -> ζ,
2017 β.buildPackages = η,
test/golden/importless/linux-testing.txtdeleted−23
@@ -1,23 +0,0 @@
1−∀ β γ δ ε ζ η θ ι κ.
2−( ( β
3− ) //
4− ( { extraMeta = {branch = String; hydraPlatforms = ∀ α. α;};
5− modDirVersion = Null;
6− src = γ;
7− version = String;
8− }
9− ) ~
10− ( δ
11− ),
12− β.?argsOverride = {},
13− β.?modDirVersionArg = Null,
14− β.buildLinux = δ -> ε,
15− β.buildPackages = ζ,
16− β.fetchurl = {sha256 = String; url = String;} -> γ,
17− β.perl = η,
18− β.stdenv = θ,
19− θ.lib = ι,
20− ι.builtins = κ,
21− κ.replaceStrings = [String] -> [String] -> String -> Null
22−) =>
23−β -> ε
test/golden/importless/linux-zen.txt+8−11
@@ -1,15 +1,12 @@
11∀ α β γ δ ε ζ η θ.
2−( ( α
3− ) //
4− ( { extraMeta = {branch = String; maintainers = [β];};
5− isZen = Bool;
6− modDirVersion = String;
7− src = γ;
8− version = String;
9− }
10− ) ~
11− ( δ
12− ),
2+( α //
3+ { extraMeta = {branch = String; maintainers = [β];};
4+ isZen = Bool;
5+ modDirVersion = String;
6+ src = γ;
7+ version = String;
8+ } ~
9+ δ,
1310 α.?argsOverride = {},
1411 α.buildLinux = δ -> ε,
1512 α.fetchFromGitHub =
test/golden/importless/linux.txt+1−1
@@ -2,7 +2,7 @@
22( α.pkgs = β,
33 β.isPy27 = Bool,
44 γ.buildPythonPackage =
5− { patches = [Path];
5+ { patches = [String];
66 pname = String;
77 postFixup = String;
88 postInstall = String;
test/golden/importless/liquidsoap.txtdeleted−68
@@ -1,68 +0,0 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1 δ1 ε1 ζ1 η1 θ1 ι1 κ1
2−λ1 μ1 ν1 ξ1 ο1.
3−( α.config = β,
4− α.lib = γ,
5− α.pkgs = δ,
6− β.ids = ε,
7− β.services = ζ,
8− γ.builtins = η,
9− γ.literalExample = String -> θ,
10− γ.map =
11− ( ι ->
12− { name = ι;
13− value =
14− { after = [String];
15− description = String;
16− path = [κ];
17− serviceConfig =
18− {ExecStart = String; LogsDirectory = String; User = String;};
19− wantedBy = [String];
20− };
21− }
22− ) ->
23− λ -> μ,
24− γ.mkIf =
25− Bool ->
26− { systemd = {services = ν;};
27− users =
28− { groups = {liquidsoap = {gid = ξ;};};
29− users =
30− { liquidsoap =
31− { createHome = Bool;
32− description = String;
33− extraGroups = [String];
34− group = String;
35− home = String;
36− uid = ο;
37− };
38− };
39− };
40− } ->
41− π,
42− γ.mkOption =
43− { default = {};
44− description = String;
45− example = {myStream1 = θ; myStream2 = ρ; myStream3 = σ;};
46− type = τ;
47− } ->
48− υ,
49− γ.types = φ,
50− δ.wget = κ,
51− η.attrNames = χ -> λ,
52− ζ.liquidsoap = ψ,
53− ψ.streams = χ,
54− ω.getAttr = ι -> α1 -> β1,
55− γ1.liquidsoap = δ1,
56− δ1.streams = α1,
57− ε1.length = λ -> Integer,
58− ζ1.listToAttrs = μ -> ν,
59− ε.gids = η1,
60− η1.liquidsoap = ξ,
61− θ1.uids = ι1,
62− ι1.liquidsoap = ο,
63− φ.attrsOf = κ1 -> τ,
64− λ1.either = μ1 -> ν1 -> κ1,
65− ξ1.path = μ1,
66− ο1.str = ν1
67−) =>
68−α -> {config = π; options = {services = {liquidsoap = {streams = υ;};};};}
test/golden/importless/lldb.txt+1−1
@@ -39,7 +39,7 @@
3939 cmake = η;
4040 darwin = μ;
4141 fetch = String -> String -> ι;
42− fetchpatch = {sha256 = String; stripLen = Integer; url = String;} -> θ;
42+ fetchpatch = {sha256 = String; stripLen = Number; url = String;} -> θ;
4343 libedit = δ;
4444 libxml2 = δ;
4545 llvm = δ;
test/golden/importless/lldpd.txt+1−1
@@ -29,7 +29,7 @@
2929 } ->
3030 ν,
3131 δ.mkOption =
32− {default = ∀ α. α; description = String; example = [String]; type = ξ;} ->
32+ {default = ∀ α. [α]; description = String; example = [String]; type = ξ;} ->
3333 ο,
3434 δ.types = π,
3535 ε.lldpd = λ,
test/golden/importless/locales.txt+2−2
@@ -2,10 +2,10 @@
22(α.lib = β, β.optionalString = Bool -> String -> String) => { allLocales = Bool;
33 buildPackages = γ;
44 callPackage =
5− Path ->
5+ String ->
66 {stdenv = α;} ->
77 { buildPhase = String;
8− builder = Path;
8+ builder = String;
99 installPhase = String;
1010 meta = {description = String;};
1111 name = String;
test/golden/importless/ltc.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/luarocks-nix.txt+1−1
@@ -1,6 +1,6 @@
11∀ α β γ δ.
22( α.overrideAttrs =
3− (β -> {patches = [Path]; pname = String; src = γ; version = String;}) -> δ
3+ (β -> {patches = [String]; pname = String; src = γ; version = String;}) -> δ
44) =>
55{ fetchFromGitHub =
66 {owner = String; repo = String; rev = String; sha256 = String;} -> γ;
test/golden/importless/m32edit.txt+9−12
@@ -1,15 +1,12 @@
11∀ α β γ.
2−( ( α
3− ) //
4− ( { brand = String;
5− homepage = String;
6− sha256 = String;
7− type = String;
8− version = String;
9− }
10− ) ~
11− ( β
12− ),
13− α.callPackage = Path -> β -> γ
2+( α //
3+ { brand = String;
4+ homepage = String;
5+ sha256 = String;
6+ type = String;
7+ version = String;
8+ } ~
9+ β,
10+ α.callPackage = String -> β -> γ
1411) =>
1512α -> γ
test/golden/importless/machine.txt+1−1
@@ -4,7 +4,7 @@
44 { config =
55 { packageOverrides =
66 ∀ α β.
7− (α.callPackage = Path -> {} -> β) => α ->
7+ (α.callPackage = String -> {} -> β) => α ->
88 {hello-world-container = β;};
99 };
1010 };
test/golden/importless/macport.txt+1−1
@@ -21,7 +21,7 @@
2121 };
2222 name = String;
2323 nativeBuildInputs = [θ];
24− patches = [Path];
24+ patches = [String];
2525 pname = String;
2626 postInstall = String;
2727 postPatch = String;
test/golden/importless/macvim.txt+2−2
@@ -7,13 +7,13 @@
77 meta =
88 { description = String;
99 homepage = String;
10− hydraPlatforms = ∀ α. α;
10+ hydraPlatforms = ∀ α. [α];
1111 license = ε;
1212 maintainers = [ζ];
1313 platforms = η;
1414 };
1515 nativeBuildInputs = [θ];
16− patches = [Path];
16+ patches = [String];
1717 pname = String;
1818 postConfigure = String;
1919 postInstall = String;
test/golden/importless/mail-exporter.txt+1−1
@@ -11,7 +11,7 @@
1111 δ.mail = λ
1212) =>
1313{ buildGoPackage =
14− { goDeps = Path;
14+ { goDeps = String;
1515 goPackagePath = String;
1616 meta =
1717 { description = String;
test/golden/importless/mailpile.txt+1−1
@@ -19,7 +19,7 @@
1919 { ExecStart = String;
2020 KillMode = String;
2121 KillSignal = String;
22− TimeoutSec = Integer;
22+ TimeoutSec = Number;
2323 User = String;
2424 };
2525 wantedBy = [String];
test/golden/importless/mainline.txt+3−2
@@ -1,3 +1,4 @@
11∀ α β.
2−(α.callPackage = Path -> α -> {sha256 = String; version = String;} -> β) => α ->
3−β
2+( α.callPackage = String -> α -> {sha256 = String; version = String;} -> β
3+) =>
4+α -> β
test/golden/importless/maintainer-list.txt+1490−1705
@@ -1,3218 +1,3003 @@
11{ Adjective-Object =
2− {email = String; github = String; githubId = Integer; name = String;};
2+ {email = String; github = String; githubId = Number; name = String;};
33 AluisioASG =
44 { email = String;
55 github = String;
6− githubId = Integer;
6+ githubId = Number;
77 keys = [{fingerprint = String; longkeyid = String;}];
88 name = String;
99 };
1010 AndersonTorres =
11− {email = String; github = String; githubId = Integer; name = String;};
11+ {email = String; github = String; githubId = Number; name = String;};
1212 Anton-Latukha =
13− {email = String; github = String; githubId = Integer; name = String;};
14− Baughn =
15− {email = String; github = String; githubId = Integer; name = String;};
13+ {email = String; github = String; githubId = Number; name = String;};
14+ Baughn = {email = String; github = String; githubId = Number; name = String;};
1615 CRTified =
1716 { email = String;
1817 github = String;
19− githubId = Integer;
18+ githubId = Number;
2019 keys = [{fingerprint = String; longkeyid = String;}];
2120 name = String;
2221 };
2322 CharlesHD =
24− {email = String; github = String; githubId = Integer; name = String;};
23+ {email = String; github = String; githubId = Number; name = String;};
2524 ChengCat =
26− {email = String; github = String; githubId = Integer; name = String;};
25+ {email = String; github = String; githubId = Number; name = String;};
2726 Chili-Man =
2827 { email = String;
2928 github = String;
30− githubId = Integer;
29+ githubId = Number;
3130 keys = [{fingerprint = String; longkeyid = String;}];
3231 name = String;
3332 };
3433 CrazedProgrammer =
35− {email = String; github = String; githubId = Integer; name = String;};
34+ {email = String; github = String; githubId = Number; name = String;};
3635 CrystalGamma =
37− {email = String; github = String; githubId = Integer; name = String;};
36+ {email = String; github = String; githubId = Number; name = String;};
3837 DamienCassou =
39− {email = String; github = String; githubId = Integer; name = String;};
38+ {email = String; github = String; githubId = Number; name = String;};
4039 DerGuteMoritz =
41− {email = String; github = String; githubId = Integer; name = String;};
40+ {email = String; github = String; githubId = Number; name = String;};
4241 DerTim1 =
43− {email = String; github = String; githubId = Integer; name = String;};
42+ {email = String; github = String; githubId = Number; name = String;};
4443 Dje4321 =
45− {email = String; github = String; githubId = Integer; name = String;};
44+ {email = String; github = String; githubId = Number; name = String;};
4645 DmitryTsygankov =
47− {email = String; github = String; githubId = Integer; name = String;};
48− Enteee =
49− {email = String; github = String; githubId = Integer; name = String;};
46+ {email = String; github = String; githubId = Number; name = String;};
47+ Enteee = {email = String; github = String; githubId = Number; name = String;};
5048 Esteth = {email = String; name = String;};
5149 FireyFly =
52− {email = String; github = String; githubId = Integer; name = String;};
50+ {email = String; github = String; githubId = Number; name = String;};
5351 Flakebi =
5452 { email = String;
5553 github = String;
56− githubId = Integer;
54+ githubId = Number;
5755 keys = [{fingerprint = String; longkeyid = String;}];
5856 name = String;
5957 };
6058 FlorianFranzen =
61− {email = String; github = String; githubId = Integer; name = String;};
59+ {email = String; github = String; githubId = Number; name = String;};
6260 Fresheyeball =
63− {email = String; github = String; githubId = Integer; name = String;};
61+ {email = String; github = String; githubId = Number; name = String;};
6462 Frostman =
65− {email = String; github = String; githubId = Integer; name = String;};
66− Gonzih =
67− {email = String; github = String; githubId = Integer; name = String;};
63+ {email = String; github = String; githubId = Number; name = String;};
64+ Gonzih = {email = String; github = String; githubId = Number; name = String;};
6865 GuillaumeDesforges =
69− {email = String; github = String; githubId = Integer; name = String;};
66+ {email = String; github = String; githubId = Number; name = String;};
7067 HaoZeke =
7168 { email = String;
7269 github = String;
73− githubId = Integer;
70+ githubId = Number;
7471 keys = [{fingerprint = String; longkeyid = String;}];
7572 name = String;
7673 };
7774 KarlJoad =
78− {email = String; github = String; githubId = Integer; name = String;};
75+ {email = String; github = String; githubId = Number; name = String;};
7976 KibaFox =
80− {email = String; github = String; githubId = Integer; name = String;};
77+ {email = String; github = String; githubId = Number; name = String;};
8178 Luflosi =
8279 { email = String;
8380 github = String;
84− githubId = Integer;
81+ githubId = Number;
8582 keys = [{fingerprint = String; longkeyid = String;}];
8683 name = String;
8784 };
88− MP2E = {email = String; github = String; githubId = Integer; name = String;};
85+ MP2E = {email = String; github = String; githubId = Number; name = String;};
8986 McSinyx =
90− {email = String; github = String; githubId = Integer; name = String;};
91− Mogria =
92− {email = String; github = String; githubId = Integer; name = String;};
87+ {email = String; github = String; githubId = Number; name = String;};
88+ Mogria = {email = String; github = String; githubId = Number; name = String;};
9389 MostAwesomeDude =
94− {email = String; github = String; githubId = Integer; name = String;};
95− MtP = {email = String; github = String; githubId = Integer; name = String;};
90+ {email = String; github = String; githubId = Number; name = String;};
91+ MtP = {email = String; github = String; githubId = Number; name = String;};
9692 Nate-Devv = {email = String; name = String;};
9793 NikolaMandic =
98− {email = String; github = String; githubId = Integer; name = String;};
94+ {email = String; github = String; githubId = Number; name = String;};
9995 OPNA2608 =
100− {email = String; github = String; githubId = Integer; name = String;};
96+ {email = String; github = String; githubId = Number; name = String;};
10197 Phlogistique =
102− {email = String; github = String; githubId = Integer; name = String;};
98+ {email = String; github = String; githubId = Number; name = String;};
10399 Profpatsch =
104− {email = String; github = String; githubId = Integer; name = String;};
100+ {email = String; github = String; githubId = Number; name = String;};
105101 RaghavSood =
106− {email = String; github = String; githubId = Integer; name = String;};
102+ {email = String; github = String; githubId = Number; name = String;};
107103 SShrike =
108− {email = String; github = String; githubId = Integer; name = String;};
104+ {email = String; github = String; githubId = Number; name = String;};
109105 Scriptkiddi =
110− {email = String; github = String; githubId = Integer; name = String;};
106+ {email = String; github = String; githubId = Number; name = String;};
111107 SeanZicari =
112− {email = String; github = String; githubId = Integer; name = String;};
108+ {email = String; github = String; githubId = Number; name = String;};
113109 ShamrockLee =
114− {email = String; github = String; githubId = Integer; name = String;};
110+ {email = String; github = String; githubId = Number; name = String;};
115111 SlothOfAnarchy =
116− {email = String; github = String; githubId = Integer; name = String;};
112+ {email = String; github = String; githubId = Number; name = String;};
117113 StijnDW =
118− {email = String; github = String; githubId = Integer; name = String;};
114+ {email = String; github = String; githubId = Number; name = String;};
119115 StillerHarpo =
120− {email = String; github = String; githubId = Integer; name = String;};
116+ {email = String; github = String; githubId = Number; name = String;};
121117 SuperSandro2000 =
122− {email = String; github = String; githubId = Integer; name = String;};
118+ {email = String; github = String; githubId = Number; name = String;};
123119 SuprDewd =
124− {email = String; github = String; githubId = Integer; name = String;};
120+ {email = String; github = String; githubId = Number; name = String;};
125121 TethysSvensson =
126− {email = String; github = String; githubId = Integer; name = String;};
122+ {email = String; github = String; githubId = Number; name = String;};
127123 TheBrainScrambler =
128− {email = String; github = String; githubId = Integer; name = String;};
124+ {email = String; github = String; githubId = Number; name = String;};
129125 ThomasMader =
130− {email = String; github = String; githubId = Integer; name = String;};
131− Thra11 =
132− {email = String; github = String; githubId = Integer; name = String;};
126+ {email = String; github = String; githubId = Number; name = String;};
127+ Thra11 = {email = String; github = String; githubId = Number; name = String;};
133128 WhittlesJr =
134− {email = String; github = String; githubId = Integer; name = String;};
129+ {email = String; github = String; githubId = Number; name = String;};
135130 Yumasi =
136131 { email = String;
137132 github = String;
138− githubId = Integer;
133+ githubId = Number;
139134 keys = [{fingerprint = String; longkeyid = String;}];
140135 name = String;
141136 };
142137 Zimmi48 =
143− {email = String; github = String; githubId = Integer; name = String;};
138+ {email = String; github = String; githubId = Number; name = String;};
144139 _0x4A6F =
145140 { email = String;
146141 github = String;
147− githubId = Integer;
142+ githubId = Number;
148143 keys = [{fingerprint = String; longkeyid = String;}];
149144 name = String;
150145 };
151146 _1000101 =
152− {email = String; github = String; githubId = Integer; name = String;};
147+ {email = String; github = String; githubId = Number; name = String;};
153148 a1russell =
154− {email = String; github = String; githubId = Integer; name = String;};
149+ {email = String; github = String; githubId = Number; name = String;};
155150 aanderse =
156− {email = String; github = String; githubId = Integer; name = String;};
151+ {email = String; github = String; githubId = Number; name = String;};
157152 aaronjanse =
158− {email = String; github = String; githubId = Integer; name = String;};
153+ {email = String; github = String; githubId = Number; name = String;};
159154 aaronschif =
160− {email = String; github = String; githubId = Integer; name = String;};
155+ {email = String; github = String; githubId = Number; name = String;};
161156 abaldeau =
162− {email = String; github = String; githubId = Integer; name = String;};
157+ {email = String; github = String; githubId = Number; name = String;};
163158 abbe =
164159 { email = String;
165160 github = String;
166− githubId = Integer;
161+ githubId = Number;
167162 keys = [{fingerprint = String; longkeyid = String;}];
168163 name = String;
169164 };
170165 abbradar =
171− {email = String; github = String; githubId = Integer; name = String;};
166+ {email = String; github = String; githubId = Number; name = String;};
172167 abhi18av =
173− {email = String; github = String; githubId = Integer; name = String;};
168+ {email = String; github = String; githubId = Number; name = String;};
174169 abigailbuccaneer =
175− {email = String; github = String; githubId = Integer; name = String;};
176− aborsu =
177− {email = String; github = String; githubId = Integer; name = String;};
170+ {email = String; github = String; githubId = Number; name = String;};
171+ aborsu = {email = String; github = String; githubId = Number; name = String;};
178172 aboseley =
179− {email = String; github = String; githubId = Integer; name = String;};
173+ {email = String; github = String; githubId = Number; name = String;};
180174 abuibrahim =
181− {email = String; github = String; githubId = Integer; name = String;};
175+ {email = String; github = String; githubId = Number; name = String;};
182176 acairncross =
183− {email = String; github = String; githubId = Integer; name = String;};
177+ {email = String; github = String; githubId = Number; name = String;};
184178 aciceri =
185− {email = String; github = String; githubId = Integer; name = String;};
179+ {email = String; github = String; githubId = Number; name = String;};
186180 acowley =
187− {email = String; github = String; githubId = Integer; name = String;};
188− adamt = {email = String; github = String; githubId = Integer; name = String;};
181+ {email = String; github = String; githubId = Number; name = String;};
182+ adamt = {email = String; github = String; githubId = Number; name = String;};
189183 adelbertc =
190− {email = String; github = String; githubId = Integer; name = String;};
191− adev = {email = String; github = String; githubId = Integer; name = String;};
184+ {email = String; github = String; githubId = Number; name = String;};
185+ adev = {email = String; github = String; githubId = Number; name = String;};
192186 adisbladis =
193− {email = String; github = String; githubId = Integer; name = String;};
187+ {email = String; github = String; githubId = Number; name = String;};
194188 adnelson =
195− {email = String; github = String; githubId = Integer; name = String;};
189+ {email = String; github = String; githubId = Number; name = String;};
196190 adolfogc =
197− {email = String; github = String; githubId = Integer; name = String;};
198− adsr = {email = String; github = String; githubId = Integer; name = String;};
191+ {email = String; github = String; githubId = Number; name = String;};
192+ adsr = {email = String; github = String; githubId = Number; name = String;};
199193 aerialx =
200− {email = String; github = String; githubId = Integer; name = String;};
194+ {email = String; github = String; githubId = Number; name = String;};
201195 aespinosa =
202− {email = String; github = String; githubId = Integer; name = String;};
196+ {email = String; github = String; githubId = Number; name = String;};
203197 aethelz =
204− {email = String; github = String; githubId = Integer; name = String;};
198+ {email = String; github = String; githubId = Number; name = String;};
205199 aflatter =
206− {email = String; github = String; githubId = Integer; name = String;};
207− afldcr =
208− {email = String; github = String; githubId = Integer; name = String;};
200+ {email = String; github = String; githubId = Number; name = String;};
201+ afldcr = {email = String; github = String; githubId = Number; name = String;};
209202 aforemny =
210− {email = String; github = String; githubId = Integer; name = String;};
203+ {email = String; github = String; githubId = Number; name = String;};
211204 afranchuk =
212− {email = String; github = String; githubId = Integer; name = String;};
205+ {email = String; github = String; githubId = Number; name = String;};
213206 aherrmann =
214− {email = String; github = String; githubId = Integer; name = String;};
215− ahrzb = {email = String; github = String; githubId = Integer; name = String;};
216− ahuzik =
217− {email = String; github = String; githubId = Integer; name = String;};
218− aij = {email = String; github = String; githubId = Integer; name = String;};
219− ajgrf = {email = String; github = String; githubId = Integer; name = String;};
220− ajs124 =
221− {email = String; github = String; githubId = Integer; name = String;};
222− ak = {email = String; github = String; githubId = Integer; name = String;};
207+ {email = String; github = String; githubId = Number; name = String;};
208+ ahrzb = {email = String; github = String; githubId = Number; name = String;};
209+ ahuzik = {email = String; github = String; githubId = Number; name = String;};
210+ aij = {email = String; github = String; githubId = Number; name = String;};
211+ ajgrf = {email = String; github = String; githubId = Number; name = String;};
212+ ajs124 = {email = String; github = String; githubId = Number; name = String;};
213+ ak = {email = String; github = String; githubId = Number; name = String;};
223214 akaWolf =
224− {email = String; github = String; githubId = Integer; name = String;};
215+ {email = String; github = String; githubId = Number; name = String;};
225216 akamaus =
226− {email = String; github = String; githubId = Integer; name = String;};
227− akavel =
228− {email = String; github = String; githubId = Integer; name = String;};
229− akc = {email = String; github = String; githubId = Integer; name = String;};
230− akru = {email = String; github = String; githubId = Integer; name = String;};
217+ {email = String; github = String; githubId = Number; name = String;};
218+ akavel = {email = String; github = String; githubId = Number; name = String;};
219+ akc = {email = String; github = String; githubId = Number; name = String;};
220+ akru = {email = String; github = String; githubId = Number; name = String;};
231221 albakham =
232− {email = String; github = String; githubId = Integer; name = String;};
222+ {email = String; github = String; githubId = Number; name = String;};
233223 alerque =
234− {email = String; github = String; githubId = Integer; name = String;};
224+ {email = String; github = String; githubId = Number; name = String;};
235225 alexarice =
236− {email = String; github = String; githubId = Integer; name = String;};
226+ {email = String; github = String; githubId = Number; name = String;};
237227 alexbakker =
238− {email = String; github = String; githubId = Integer; name = String;};
228+ {email = String; github = String; githubId = Number; name = String;};
239229 alexbiehl =
240− {email = String; github = String; githubId = Integer; name = String;};
230+ {email = String; github = String; githubId = Number; name = String;};
241231 alexchapman =
242− {email = String; github = String; githubId = Integer; name = String;};
232+ {email = String; github = String; githubId = Number; name = String;};
243233 alexfmpe =
244− {email = String; github = String; githubId = Integer; name = String;};
234+ {email = String; github = String; githubId = Number; name = String;};
245235 alexvorobiev =
246− {email = String; github = String; githubId = Integer; name = String;};
236+ {email = String; github = String; githubId = Number; name = String;};
247237 algorith = {email = String; name = String;};
248238 alibabzo =
249− {email = String; github = String; githubId = Integer; name = String;};
239+ {email = String; github = String; githubId = Number; name = String;};
250240 alkeryn =
251− {email = String; github = String; githubId = Integer; name = String;};
241+ {email = String; github = String; githubId = Number; name = String;};
252242 all = {email = String; name = String;};
253243 allonsy =
254− {email = String; github = String; githubId = Integer; name = String;};
255− almac = {email = String; github = String; githubId = Integer; name = String;};
244+ {email = String; github = String; githubId = Number; name = String;};
245+ almac = {email = String; github = String; githubId = Number; name = String;};
256246 alunduil =
257− {email = String; github = String; githubId = Integer; name = String;};
247+ {email = String; github = String; githubId = Number; name = String;};
258248 alva =
259249 { email = String;
260250 github = String;
261− githubId = Integer;
251+ githubId = Number;
262252 keys = [{fingerprint = String; longkeyid = String;}];
263253 name = String;
264254 };
265255 amar1729 =
266− {email = String; github = String; githubId = Integer; name = String;};
256+ {email = String; github = String; githubId = Number; name = String;};
267257 ambrop72 =
268− {email = String; github = String; githubId = Integer; name = String;};
258+ {email = String; github = String; githubId = Number; name = String;};
269259 amiddelk =
270− {email = String; github = String; githubId = Integer; name = String;};
260+ {email = String; github = String; githubId = Number; name = String;};
271261 amiloradovsky =
272− {email = String; github = String; githubId = Integer; name = String;};
262+ {email = String; github = String; githubId = Number; name = String;};
273263 aminechikhaoui =
274− {email = String; github = String; githubId = Integer; name = String;};
264+ {email = String; github = String; githubId = Number; name = String;};
275265 amorsillo =
276− {email = String; github = String; githubId = Integer; name = String;};
266+ {email = String; github = String; githubId = Number; name = String;};
277267 andehen =
278− {email = String; github = String; githubId = Integer; name = String;};
268+ {email = String; github = String; githubId = Number; name = String;};
279269 andersk =
280− {email = String; github = String; githubId = Integer; name = String;};
270+ {email = String; github = String; githubId = Number; name = String;};
281271 anderslundstedt =
282− {email = String; github = String; githubId = Integer; name = String;};
272+ {email = String; github = String; githubId = Number; name = String;};
283273 anderspapitto =
284− {email = String; github = String; githubId = Integer; name = String;};
285− andir = {email = String; github = String; githubId = Integer; name = String;};
274+ {email = String; github = String; githubId = Number; name = String;};
275+ andir = {email = String; github = String; githubId = Number; name = String;};
286276 andreabedini =
287− {email = String; github = String; githubId = Integer; name = String;};
288− andres =
289− {email = String; github = String; githubId = Integer; name = String;};
277+ {email = String; github = String; githubId = Number; name = String;};
278+ andres = {email = String; github = String; githubId = Number; name = String;};
290279 andrestylianos =
291− {email = String; github = String; githubId = Integer; name = String;};
280+ {email = String; github = String; githubId = Number; name = String;};
292281 andrew-d =
293− {email = String; github = String; githubId = Integer; name = String;};
282+ {email = String; github = String; githubId = Number; name = String;};
294283 andrewchambers =
295− {email = String; github = String; githubId = Integer; name = String;};
284+ {email = String; github = String; githubId = Number; name = String;};
296285 andrewrk =
297− {email = String; github = String; githubId = Integer; name = String;};
286+ {email = String; github = String; githubId = Number; name = String;};
298287 andsild =
299− {email = String; github = String; githubId = Integer; name = String;};
288+ {email = String; github = String; githubId = Number; name = String;};
300289 aneeshusa =
301− {email = String; github = String; githubId = Integer; name = String;};
290+ {email = String; github = String; githubId = Number; name = String;};
302291 angristan =
303− {email = String; github = String; githubId = Integer; name = String;};
292+ {email = String; github = String; githubId = Number; name = String;};
304293 ankhers =
305− {email = String; github = String; githubId = Integer; name = String;};
294+ {email = String; github = String; githubId = Number; name = String;};
306295 anmonteiro =
307− {email = String; github = String; githubId = Integer; name = String;};
296+ {email = String; github = String; githubId = Number; name = String;};
308297 anna328p =
309− {email = String; github = String; githubId = Integer; name = String;};
310− anpryl =
311− {email = String; github = String; githubId = Integer; name = String;};
298+ {email = String; github = String; githubId = Number; name = String;};
299+ anpryl = {email = String; github = String; githubId = Number; name = String;};
312300 antoinerg =
313− {email = String; github = String; githubId = Integer; name = String;};
301+ {email = String; github = String; githubId = Number; name = String;};
314302 anton-dessiatov =
315− {email = String; github = String; githubId = Integer; name = String;};
316− antono =
317− {email = String; github = String; githubId = Integer; name = String;};
303+ {email = String; github = String; githubId = Number; name = String;};
304+ antono = {email = String; github = String; githubId = Number; name = String;};
318305 antonxy =
319− {email = String; github = String; githubId = Integer; name = String;};
306+ {email = String; github = String; githubId = Number; name = String;};
320307 apeschar =
321− {email = String; github = String; githubId = Integer; name = String;};
308+ {email = String; github = String; githubId = Number; name = String;};
322309 apeyroux =
323− {email = String; github = String; githubId = Integer; name = String;};
324− ar1a = {email = String; github = String; githubId = Integer; name = String;};
310+ {email = String; github = String; githubId = Number; name = String;};
311+ ar1a = {email = String; github = String; githubId = Number; name = String;};
325312 arcadio =
326− {email = String; github = String; githubId = Integer; name = String;};
327− arcnmx =
328− {email = String; github = String; githubId = Integer; name = String;};
313+ {email = String; github = String; githubId = Number; name = String;};
314+ arcnmx = {email = String; github = String; githubId = Number; name = String;};
329315 ardumont =
330− {email = String; github = String; githubId = Integer; name = String;};
316+ {email = String; github = String; githubId = Number; name = String;};
331317 arianvp =
332− {email = String; github = String; githubId = Integer; name = String;};
318+ {email = String; github = String; githubId = Number; name = String;};
333319 aristid =
334− {email = String; github = String; githubId = Integer; name = String;};
320+ {email = String; github = String; githubId = Number; name = String;};
335321 ariutta =
336− {email = String; github = String; githubId = Integer; name = String;};
337− arnarg =
338− {email = String; github = String; githubId = Integer; name = String;};
322+ {email = String; github = String; githubId = Number; name = String;};
323+ arnarg = {email = String; github = String; githubId = Number; name = String;};
339324 arnoldfarkas =
340− {email = String; github = String; githubId = Integer; name = String;};
341− arobyn =
342− {email = String; github = String; githubId = Integer; name = String;};
325+ {email = String; github = String; githubId = Number; name = String;};
326+ arobyn = {email = String; github = String; githubId = Number; name = String;};
343327 artemist =
344328 { email = String;
345329 github = String;
346− githubId = Integer;
330+ githubId = Number;
347331 keys = [{fingerprint = String; longkeyid = String;}];
348332 name = String;
349333 };
350− arthur =
351− {email = String; github = String; githubId = Integer; name = String;};
334+ arthur = {email = String; github = String; githubId = Number; name = String;};
352335 artturin =
353− {email = String; github = String; githubId = Integer; name = String;};
336+ {email = String; github = String; githubId = Number; name = String;};
354337 arturcygan =
355− {email = String; github = String; githubId = Integer; name = String;};
338+ {email = String; github = String; githubId = Number; name = String;};
356339 artuuge =
357− {email = String; github = String; githubId = Integer; name = String;};
340+ {email = String; github = String; githubId = Number; name = String;};
358341 asbachb =
359− {email = String; github = String; githubId = Integer; name = String;};
342+ {email = String; github = String; githubId = Number; name = String;};
360343 ashalkhakov =
361− {email = String; github = String; githubId = Integer; name = String;};
344+ {email = String; github = String; githubId = Number; name = String;};
362345 ashgillman =
363− {email = String; github = String; githubId = Integer; name = String;};
346+ {email = String; github = String; githubId = Number; name = String;};
364347 ashkitten =
365− {email = String; github = String; githubId = Integer; name = String;};
366− aske = {email = String; github = String; githubId = Integer; name = String;};
367− asppsa =
368− {email = String; github = String; githubId = Integer; name = String;};
369− astro = {email = String; github = String; githubId = Integer; name = String;};
348+ {email = String; github = String; githubId = Number; name = String;};
349+ aske = {email = String; github = String; githubId = Number; name = String;};
350+ asppsa = {email = String; github = String; githubId = Number; name = String;};
351+ astro = {email = String; github = String; githubId = Number; name = String;};
370352 astsmtl =
371− {email = String; github = String; githubId = Integer; name = String;};
353+ {email = String; github = String; githubId = Number; name = String;};
372354 asymmetric =
373− {email = String; github = String; githubId = Integer; name = String;};
374− aszlig =
375− {email = String; github = String; githubId = Integer; name = String;};
376− atemu = {email = String; github = String; githubId = Integer; name = String;};
377− athas = {email = String; github = String; githubId = Integer; name = String;};
355+ {email = String; github = String; githubId = Number; name = String;};
356+ aszlig = {email = String; github = String; githubId = Number; name = String;};
357+ atemu = {email = String; github = String; githubId = Number; name = String;};
358+ athas = {email = String; github = String; githubId = Number; name = String;};
378359 atkinschang =
379− {email = String; github = String; githubId = Integer; name = String;};
380− atnnn = {email = String; github = String; githubId = Integer; name = String;};
381− auntie =
382− {email = String; github = String; githubId = Integer; name = String;};
360+ {email = String; github = String; githubId = Number; name = String;};
361+ atnnn = {email = String; github = String; githubId = Number; name = String;};
362+ auntie = {email = String; github = String; githubId = Number; name = String;};
383363 austinbutler =
384− {email = String; github = String; githubId = Integer; name = String;};
385− avaq = {email = String; github = String; githubId = Integer; name = String;};
364+ {email = String; github = String; githubId = Number; name = String;};
365+ avaq = {email = String; github = String; githubId = Number; name = String;};
386366 averelld =
387− {email = String; github = String; githubId = Integer; name = String;};
388− avery = {email = String; github = String; githubId = Integer; name = String;};
367+ {email = String; github = String; githubId = Number; name = String;};
368+ avery = {email = String; github = String; githubId = Number; name = String;};
389369 avitex =
390370 { email = String;
391371 github = String;
392− githubId = Integer;
372+ githubId = Number;
393373 keys = [{fingerprint = String; longkeyid = String;}];
394374 name = String;
395375 };
396− avnik = {email = String; github = String; githubId = Integer; name = String;};
397− aw = {email = String; github = String; githubId = Integer; name = String;};
376+ avnik = {email = String; github = String; githubId = Number; name = String;};
377+ aw = {email = String; github = String; githubId = Number; name = String;};
398378 aycanirican =
399− {email = String; github = String; githubId = Integer; name = String;};
379+ {email = String; github = String; githubId = Number; name = String;};
400380 b4dm4n =
401381 { email = String;
402382 github = String;
403− githubId = Integer;
383+ githubId = Number;
404384 keys = [{fingerprint = String; longkeyid = String;}];
405385 name = String;
406386 };
407387 babariviere =
408− {email = String; github = String; githubId = Integer; name = String;};
409− bachp = {email = String; github = String; githubId = Integer; name = String;};
388+ {email = String; github = String; githubId = Number; name = String;};
389+ bachp = {email = String; github = String; githubId = Number; name = String;};
410390 backuitist =
411− {email = String; github = String; githubId = Integer; name = String;};
412− badi = {email = String; github = String; githubId = Integer; name = String;};
391+ {email = String; github = String; githubId = Number; name = String;};
392+ badi = {email = String; github = String; githubId = Number; name = String;};
413393 balajisivaraman = {email = String; name = String;};
414394 balsoft =
415− {email = String; github = String; githubId = Integer; name = String;};
395+ {email = String; github = String; githubId = Number; name = String;};
416396 bandresen =
417− {email = String; github = String; githubId = Integer; name = String;};
397+ {email = String; github = String; githubId = Number; name = String;};
418398 baracoder =
419− {email = String; github = String; githubId = Integer; name = String;};
399+ {email = String; github = String; githubId = Number; name = String;};
420400 barrucadu =
421− {email = String; github = String; githubId = Integer; name = String;};
401+ {email = String; github = String; githubId = Number; name = String;};
422402 basvandijk =
423− {email = String; github = String; githubId = Integer; name = String;};
424− bb010g =
425− {email = String; github = String; githubId = Integer; name = String;};
403+ {email = String; github = String; githubId = Number; name = String;};
404+ bb010g = {email = String; github = String; githubId = Number; name = String;};
426405 bbarker =
427− {email = String; github = String; githubId = Integer; name = String;};
406+ {email = String; github = String; githubId = Number; name = String;};
428407 bbigras =
429− {email = String; github = String; githubId = Integer; name = String;};
408+ {email = String; github = String; githubId = Number; name = String;};
430409 bcarrell =
431− {email = String; github = String; githubId = Integer; name = String;};
410+ {email = String; github = String; githubId = Number; name = String;};
432411 bcdarwin =
433− {email = String; github = String; githubId = Integer; name = String;};
412+ {email = String; github = String; githubId = Number; name = String;};
434413 bdesham =
435− {email = String; github = String; githubId = Integer; name = String;};
414+ {email = String; github = String; githubId = Number; name = String;};
436415 bdimcheff =
437− {email = String; github = String; githubId = Integer; name = String;};
416+ {email = String; github = String; githubId = Number; name = String;};
438417 bendlas =
439− {email = String; github = String; githubId = Integer; name = String;};
440− benley =
441− {email = String; github = String; githubId = Integer; name = String;};
418+ {email = String; github = String; githubId = Number; name = String;};
419+ benley = {email = String; github = String; githubId = Number; name = String;};
442420 bennofs =
443− {email = String; github = String; githubId = Integer; name = String;};
444− benpye =
445− {email = String; github = String; githubId = Integer; name = String;};
421+ {email = String; github = String; githubId = Number; name = String;};
422+ benpye = {email = String; github = String; githubId = Number; name = String;};
446423 benwbooth =
447− {email = String; github = String; githubId = Integer; name = String;};
448− berce = {email = String; github = String; githubId = Integer; name = String;};
424+ {email = String; github = String; githubId = Number; name = String;};
425+ berce = {email = String; github = String; githubId = Number; name = String;};
449426 berdario =
450− {email = String; github = String; githubId = Integer; name = String;};
451− bergey =
452− {email = String; github = String; githubId = Integer; name = String;};
427+ {email = String; github = String; githubId = Number; name = String;};
428+ bergey = {email = String; github = String; githubId = Number; name = String;};
453429 betaboon =
454− {email = String; github = String; githubId = Integer; name = String;};
455− bfortz =
456− {email = String; github = String; githubId = Integer; name = String;};
430+ {email = String; github = String; githubId = Number; name = String;};
431+ bfortz = {email = String; github = String; githubId = Number; name = String;};
457432 bgamari =
458− {email = String; github = String; githubId = Integer; name = String;};
459− bhall = {email = String; github = String; githubId = Integer; name = String;};
433+ {email = String; github = String; githubId = Number; name = String;};
434+ bhall = {email = String; github = String; githubId = Number; name = String;};
460435 bhipple =
461− {email = String; github = String; githubId = Integer; name = String;};
436+ {email = String; github = String; githubId = Number; name = String;};
462437 bhougland =
463− {email = String; github = String; githubId = Integer; name = String;};
438+ {email = String; github = String; githubId = Number; name = String;};
464439 binarin =
465− {email = String; github = String; githubId = Integer; name = String;};
440+ {email = String; github = String; githubId = Number; name = String;};
466441 bjg = {email = String; name = String;};
467442 bjornfor =
468− {email = String; github = String; githubId = Integer; name = String;};
469− bkchr = {email = String; github = String; githubId = Integer; name = String;};
443+ {email = String; github = String; githubId = Number; name = String;};
444+ bkchr = {email = String; github = String; githubId = Number; name = String;};
470445 blaggacao =
471− {email = String; github = String; githubId = Integer; name = String;};
446+ {email = String; github = String; githubId = Number; name = String;};
472447 blanky0230 =
473− {email = String; github = String; githubId = Integer; name = String;};
474− blitz = {email = String; github = String; githubId = Integer; name = String;};
448+ {email = String; github = String; githubId = Number; name = String;};
449+ blitz = {email = String; github = String; githubId = Number; name = String;};
475450 bluescreen303 =
476− {email = String; github = String; githubId = Integer; name = String;};
451+ {email = String; github = String; githubId = Number; name = String;};
477452 bmilanov =
478− {email = String; github = String; githubId = Integer; name = String;};
453+ {email = String; github = String; githubId = Number; name = String;};
479454 bobakker =
480− {email = String; github = String; githubId = Integer; name = String;};
455+ {email = String; github = String; githubId = Number; name = String;};
481456 bobvanderlinden =
482− {email = String; github = String; githubId = Integer; name = String;};
483− bodil = {email = String; github = String; githubId = Integer; name = String;};
484− boj = {email = String; github = String; githubId = Integer; name = String;};
457+ {email = String; github = String; githubId = Number; name = String;};
458+ bodil = {email = String; github = String; githubId = Number; name = String;};
459+ boj = {email = String; github = String; githubId = Number; name = String;};
485460 boothead =
486− {email = String; github = String; githubId = Integer; name = String;};
461+ {email = String; github = String; githubId = Number; name = String;};
487462 borisbabic =
488− {email = String; github = String; githubId = Integer; name = String;};
489− bosu = {email = String; github = String; githubId = Integer; name = String;};
490− bouk = {email = String; github = String; githubId = Integer; name = String;};
463+ {email = String; github = String; githubId = Number; name = String;};
464+ bosu = {email = String; github = String; githubId = Number; name = String;};
465+ bouk = {email = String; github = String; githubId = Number; name = String;};
491466 bradediger =
492− {email = String; github = String; githubId = Integer; name = String;};
467+ {email = String; github = String; githubId = Number; name = String;};
493468 brainrape =
494− {email = String; github = String; githubId = Integer; name = String;};
495− bramd = {email = String; github = String; githubId = Integer; name = String;};
469+ {email = String; github = String; githubId = Number; name = String;};
470+ bramd = {email = String; github = String; githubId = Number; name = String;};
496471 braydenjw =
497− {email = String; github = String; githubId = Integer; name = String;};
472+ {email = String; github = String; githubId = Number; name = String;};
498473 breakds =
499− {email = String; github = String; githubId = Integer; name = String;};
474+ {email = String; github = String; githubId = Number; name = String;};
500475 brettlyons =
501− {email = String; github = String; githubId = Integer; name = String;};
476+ {email = String; github = String; githubId = Number; name = String;};
502477 brian-dawn =
503− {email = String; github = String; githubId = Integer; name = String;};
478+ {email = String; github = String; githubId = Number; name = String;};
504479 brianhicks =
505− {email = String; github = String; githubId = Integer; name = String;};
480+ {email = String; github = String; githubId = Number; name = String;};
506481 bricewge =
507− {email = String; github = String; githubId = Integer; name = String;};
508− bstrik =
509− {email = String; github = String; githubId = Integer; name = String;};
510− btlvr = {email = String; github = String; githubId = Integer; name = String;};
511− buffet =
512− {email = String; github = String; githubId = Integer; name = String;};
482+ {email = String; github = String; githubId = Number; name = String;};
483+ bstrik = {email = String; github = String; githubId = Number; name = String;};
484+ btlvr = {email = String; github = String; githubId = Number; name = String;};
485+ buffet = {email = String; github = String; githubId = Number; name = String;};
513486 bugworm =
514− {email = String; github = String; githubId = Integer; name = String;};
515− bzizou =
516− {email = String; github = String; githubId = Integer; name = String;};
517− c00w = {email = String; github = String; githubId = Integer; name = String;};
518− c0bw3b =
519− {email = String; github = String; githubId = Integer; name = String;};
487+ {email = String; github = String; githubId = Number; name = String;};
488+ bzizou = {email = String; github = String; githubId = Number; name = String;};
489+ c00w = {email = String; github = String; githubId = Number; name = String;};
490+ c0bw3b = {email = String; github = String; githubId = Number; name = String;};
520491 c0deaddict =
521− {email = String; github = String; githubId = Integer; name = String;};
522− caadar =
523− {email = String; github = String; githubId = Integer; name = String;};
492+ {email = String; github = String; githubId = Number; name = String;};
493+ caadar = {email = String; github = String; githubId = Number; name = String;};
524494 cab404 =
525495 { email = String;
526496 github = String;
527− githubId = Integer;
497+ githubId = Number;
528498 keys = [{fingerprint = String; longkeyid = String;}];
529499 name = String;
530500 };
531501 calbrecht =
532− {email = String; github = String; githubId = Integer; name = String;};
502+ {email = String; github = String; githubId = Number; name = String;};
533503 callahad =
534− {email = String; github = String; githubId = Integer; name = String;};
504+ {email = String; github = String; githubId = Number; name = String;};
535505 calvertvl =
536− {email = String; github = String; githubId = Integer; name = String;};
506+ {email = String; github = String; githubId = Number; name = String;};
537507 campadrenalin =
538− {email = String; github = String; githubId = Integer; name = String;};
508+ {email = String; github = String; githubId = Number; name = String;};
539509 candeira =
540− {email = String; github = String; githubId = Integer; name = String;};
510+ {email = String; github = String; githubId = Number; name = String;};
541511 canndrew =
542− {email = String; github = String; githubId = Integer; name = String;};
543− cap = {email = String; github = String; githubId = Integer; name = String;};
512+ {email = String; github = String; githubId = Number; name = String;};
513+ cap = {email = String; github = String; githubId = Number; name = String;};
544514 carlosdagos =
545− {email = String; github = String; githubId = Integer; name = String;};
515+ {email = String; github = String; githubId = Number; name = String;};
546516 carlsverre =
547− {email = String; github = String; githubId = Integer; name = String;};
548− cartr = {email = String; github = String; githubId = Integer; name = String;};
549− casey = {email = String; github = String; githubId = Integer; name = String;};
550− catern =
551− {email = String; github = String; githubId = Integer; name = String;};
517+ {email = String; github = String; githubId = Number; name = String;};
518+ cartr = {email = String; github = String; githubId = Number; name = String;};
519+ casey = {email = String; github = String; githubId = Number; name = String;};
520+ catern = {email = String; github = String; githubId = Number; name = String;};
552521 caugner =
553− {email = String; github = String; githubId = Integer; name = String;};
554− cbley = {email = String; github = String; githubId = Integer; name = String;};
522+ {email = String; github = String; githubId = Number; name = String;};
523+ cbley = {email = String; github = String; githubId = Number; name = String;};
555524 ccellado =
556− {email = String; github = String; githubId = Integer; name = String;};
525+ {email = String; github = String; githubId = Number; name = String;};
557526 cdepillabout =
558− {email = String; github = String; githubId = Integer; name = String;};
527+ {email = String; github = String; githubId = Number; name = String;};
559528 ceedubs =
560− {email = String; github = String; githubId = Integer; name = String;};
529+ {email = String; github = String; githubId = Number; name = String;};
561530 cfouche =
562− {email = String; github = String; githubId = Integer; name = String;};
563− cfsmp3 =
564− {email = String; github = String; githubId = Integer; name = String;};
531+ {email = String; github = String; githubId = Number; name = String;};
532+ cfsmp3 = {email = String; github = String; githubId = Number; name = String;};
565533 cge =
566534 { email = String;
567535 github = String;
568− githubId = Integer;
536+ githubId = Number;
569537 keys = [{fingerprint = String; longkeyid = String;}];
570538 name = String;
571539 };
572540 chaduffy =
573− {email = String; github = String; githubId = Integer; name = String;};
541+ {email = String; github = String; githubId = Number; name = String;};
574542 changlinli =
575− {email = String; github = String; githubId = Integer; name = String;};
543+ {email = String; github = String; githubId = Number; name = String;};
576544 chaoflow =
577− {email = String; github = String; githubId = Integer; name = String;};
545+ {email = String; github = String; githubId = Number; name = String;};
578546 chattered = {email = String; name = String;};
579547 chessai =
580− {email = String; github = String; githubId = Integer; name = String;};
548+ {email = String; github = String; githubId = Number; name = String;};
581549 chiiruno =
582− {email = String; github = String; githubId = Integer; name = String;};
550+ {email = String; github = String; githubId = Number; name = String;};
583551 chiroptical =
584− {email = String; github = String; githubId = Integer; name = String;};
585− chkno = {email = String; github = String; githubId = Integer; name = String;};
552+ {email = String; github = String; githubId = Number; name = String;};
553+ chkno = {email = String; github = String; githubId = Number; name = String;};
586554 choochootrain =
587− {email = String; github = String; githubId = Integer; name = String;};
555+ {email = String; github = String; githubId = Number; name = String;};
588556 chpatrick =
589− {email = String; github = String; githubId = Integer; name = String;};
557+ {email = String; github = String; githubId = Number; name = String;};
590558 chreekat =
591− {email = String; github = String; githubId = Integer; name = String;};
559+ {email = String; github = String; githubId = Number; name = String;};
592560 chris-martin =
593− {email = String; github = String; githubId = Integer; name = String;};
561+ {email = String; github = String; githubId = Number; name = String;};
594562 chrisaw =
595− {email = String; github = String; githubId = Integer; name = String;};
563+ {email = String; github = String; githubId = Number; name = String;};
596564 chrisjefferson =
597− {email = String; github = String; githubId = Integer; name = String;};
565+ {email = String; github = String; githubId = Number; name = String;};
598566 chrisrosset =
599− {email = String; github = String; githubId = Integer; name = String;};
567+ {email = String; github = String; githubId = Number; name = String;};
600568 christianharke =
601569 { email = String;
602570 github = String;
603− githubId = Integer;
571+ githubId = Number;
604572 keys = [{fingerprint = String; longkeyid = String;}];
605573 name = String;
606574 };
607575 christopherpoole =
608− {email = String; github = String; githubId = Integer; name = String;};
609− ciil = {email = String; github = String; githubId = Integer; name = String;};
610− cizra = {email = String; github = String; githubId = Integer; name = String;};
611− ck3d = {email = String; github = String; githubId = Integer; name = String;};
576+ {email = String; github = String; githubId = Number; name = String;};
577+ ciil = {email = String; github = String; githubId = Number; name = String;};
578+ cizra = {email = String; github = String; githubId = Number; name = String;};
579+ ck3d = {email = String; github = String; githubId = Number; name = String;};
612580 ckauhaus =
613− {email = String; github = String; githubId = Integer; name = String;};
614− cko = {email = String; github = String; githubId = Integer; name = String;};
615− clacke =
616− {email = String; github = String; githubId = Integer; name = String;};
581+ {email = String; github = String; githubId = Number; name = String;};
582+ cko = {email = String; github = String; githubId = Number; name = String;};
583+ clacke = {email = String; github = String; githubId = Number; name = String;};
617584 cleverca22 =
618− {email = String; github = String; githubId = Integer; name = String;};
619− clkamp =
620− {email = String; github = String; githubId = Integer; name = String;};
585+ {email = String; github = String; githubId = Number; name = String;};
586+ clkamp = {email = String; github = String; githubId = Number; name = String;};
621587 cmacrae =
622− {email = String; github = String; githubId = Integer; name = String;};
588+ {email = String; github = String; githubId = Number; name = String;};
623589 cmcdragonkai =
624− {email = String; github = String; githubId = Integer; name = String;};
625− cmfwyp =
626− {email = String; github = String; githubId = Integer; name = String;};
627− cobbal =
628− {email = String; github = String; githubId = Integer; name = String;};
590+ {email = String; github = String; githubId = Number; name = String;};
591+ cmfwyp = {email = String; github = String; githubId = Number; name = String;};
592+ cobbal = {email = String; github = String; githubId = Number; name = String;};
629593 coconnor =
630− {email = String; github = String; githubId = Integer; name = String;};
631− codsl = {email = String; github = String; githubId = Integer; name = String;};
594+ {email = String; github = String; githubId = Number; name = String;};
595+ codsl = {email = String; github = String; githubId = Number; name = String;};
632596 codyopel =
633− {email = String; github = String; githubId = Integer; name = String;};
597+ {email = String; github = String; githubId = Number; name = String;};
634598 cohencyril =
635− {email = String; github = String; githubId = Integer; name = String;};
599+ {email = String; github = String; githubId = Number; name = String;};
636600 cole-h =
637601 { email = String;
638602 github = String;
639− githubId = Integer;
603+ githubId = Number;
640604 keys = [{fingerprint = String; longkeyid = String;}];
641605 name = String;
642606 };
643607 colemickens =
644− {email = String; github = String; githubId = Integer; name = String;};
608+ {email = String; github = String; githubId = Number; name = String;};
645609 colescott =
646− {email = String; github = String; githubId = Integer; name = String;};
610+ {email = String; github = String; githubId = Number; name = String;};
647611 conradmearns =
648− {email = String; github = String; githubId = Integer; name = String;};
612+ {email = String; github = String; githubId = Number; name = String;};
649613 contrun =
650− {email = String; github = String; githubId = Integer; name = String;};
614+ {email = String; github = String; githubId = Number; name = String;};
651615 copumpkin =
652− {email = String; github = String; githubId = Integer; name = String;};
616+ {email = String; github = String; githubId = Number; name = String;};
653617 corngood =
654− {email = String; github = String; githubId = Integer; name = String;};
655− coroa = {email = String; github = String; githubId = Integer; name = String;};
618+ {email = String; github = String; githubId = Number; name = String;};
619+ coroa = {email = String; github = String; githubId = Number; name = String;};
656620 costrouc =
657− {email = String; github = String; githubId = Integer; name = String;};
621+ {email = String; github = String; githubId = Number; name = String;};
658622 couchemar =
659− {email = String; github = String; githubId = Integer; name = String;};
660− cpages =
661− {email = String; github = String; githubId = Integer; name = String;};
623+ {email = String; github = String; githubId = Number; name = String;};
624+ cpages = {email = String; github = String; githubId = Number; name = String;};
662625 cpcloud =
663− {email = String; github = String; githubId = Integer; name = String;};
626+ {email = String; github = String; githubId = Number; name = String;};
664627 cpu =
665628 { email = String;
666629 github = String;
667− githubId = Integer;
630+ githubId = Number;
668631 keys = [{fingerprint = String; longkeyid = String;}];
669632 name = String;
670633 };
671634 craigem =
672− {email = String; github = String; githubId = Integer; name = String;};
635+ {email = String; github = String; githubId = Number; name = String;};
673636 cransom =
674− {email = String; github = String; githubId = Integer; name = String;};
637+ {email = String; github = String; githubId = Number; name = String;};
675638 cript0nauta =
676− {email = String; github = String; githubId = Integer; name = String;};
639+ {email = String; github = String; githubId = Number; name = String;};
677640 cryptix =
678− {email = String; github = String; githubId = Integer; name = String;};
641+ {email = String; github = String; githubId = Number; name = String;};
679642 csingley =
680− {email = String; github = String; githubId = Integer; name = String;};
643+ {email = String; github = String; githubId = Number; name = String;};
681644 cstrahan =
682− {email = String; github = String; githubId = Integer; name = String;};
683− cswank =
684− {email = String; github = String; githubId = Integer; name = String;};
645+ {email = String; github = String; githubId = Number; name = String;};
646+ cswank = {email = String; github = String; githubId = Number; name = String;};
685647 cust0dian =
686648 { email = String;
687649 github = String;
688− githubId = Integer;
650+ githubId = Number;
689651 keys = [{fingerprint = String; longkeyid = String;}];
690652 name = String;
691653 };
692− cwoac = {email = String; github = String; githubId = Integer; name = String;};
654+ cwoac = {email = String; github = String; githubId = Number; name = String;};
693655 cypherpunk2140 =
694656 { email = String;
695657 github = String;
696− githubId = Integer;
658+ githubId = Number;
697659 keys = [{fingerprint = String; longkeyid = String;}];
698660 name = String;
699661 };
700− cyplo = {email = String; github = String; githubId = Integer; name = String;};
662+ cyplo = {email = String; github = String; githubId = Number; name = String;};
701663 d-goldin =
702664 { email = String;
703665 github = String;
704− githubId = Integer;
666+ githubId = Number;
705667 keys = [{fingerprint = String; longkeyid = String;}];
706668 name = String;
707669 };
708670 dadada =
709671 { email = String;
710672 github = String;
711− githubId = Integer;
673+ githubId = Number;
712674 keys = [{fingerprint = String; longkeyid = String;}];
713675 name = String;
714676 };
715677 dalance =
716− {email = String; github = String; githubId = Integer; name = String;};
717− danbst =
718− {email = String; github = String; githubId = Integer; name = String;};
719− dancek =
720− {email = String; github = String; githubId = Integer; name = String;};
678+ {email = String; github = String; githubId = Number; name = String;};
679+ danbst = {email = String; github = String; githubId = Number; name = String;};
680+ dancek = {email = String; github = String; githubId = Number; name = String;};
721681 dandellion =
722− {email = String; github = String; githubId = Integer; name = String;};
682+ {email = String; github = String; githubId = Number; name = String;};
723683 danderson =
724− {email = String; github = String; githubId = Integer; name = String;};
684+ {email = String; github = String; githubId = Number; name = String;};
725685 danharaj =
726− {email = String; github = String; githubId = Integer; name = String;};
686+ {email = String; github = String; githubId = Number; name = String;};
727687 danieldk =
728− {email = String; github = String; githubId = Integer; name = String;};
688+ {email = String; github = String; githubId = Number; name = String;};
729689 danielfullmer =
730− {email = String; github = String; githubId = Integer; name = String;};
731− das-g = {email = String; github = String; githubId = Integer; name = String;};
732− das_j = {email = String; github = String; githubId = Integer; name = String;};
733− dasj19 =
734− {email = String; github = String; githubId = Integer; name = String;};
690+ {email = String; github = String; githubId = Number; name = String;};
691+ das-g = {email = String; github = String; githubId = Number; name = String;};
692+ das_j = {email = String; github = String; githubId = Number; name = String;};
693+ dasj19 = {email = String; github = String; githubId = Number; name = String;};
735694 dasuxullebt = {email = String; name = String;};
736695 davegallant =
737− {email = String; github = String; githubId = Integer; name = String;};
696+ {email = String; github = String; githubId = Number; name = String;};
738697 david-sawatzke =
739− {email = String; github = String; githubId = Integer; name = String;};
698+ {email = String; github = String; githubId = Number; name = String;};
740699 david50407 =
741− {email = String; github = String; githubId = Integer; name = String;};
700+ {email = String; github = String; githubId = Number; name = String;};
742701 davidak =
743− {email = String; github = String; githubId = Integer; name = String;};
702+ {email = String; github = String; githubId = Number; name = String;};
744703 davidrusu =
745− {email = String; github = String; githubId = Integer; name = String;};
704+ {email = String; github = String; githubId = Number; name = String;};
746705 davidtwco =
747706 { email = String;
748707 github = String;
749− githubId = Integer;
708+ githubId = Number;
750709 keys = [{fingerprint = String; longkeyid = String;}];
751710 name = String;
752711 };
753− davorb =
754− {email = String; github = String; githubId = Integer; name = String;};
712+ davorb = {email = String; github = String; githubId = Number; name = String;};
755713 dawidsowa =
756− {email = String; github = String; githubId = Integer; name = String;};
714+ {email = String; github = String; githubId = Number; name = String;};
757715 dbohdan =
758− {email = String; github = String; githubId = Integer; name = String;};
759− dbrock =
760− {email = String; github = String; githubId = Integer; name = String;};
716+ {email = String; github = String; githubId = Number; name = String;};
717+ dbrock = {email = String; github = String; githubId = Number; name = String;};
761718 ddelabru =
762− {email = String; github = String; githubId = Integer; name = String;};
763− dduan = {email = String; github = String; githubId = Integer; name = String;};
719+ {email = String; github = String; githubId = Number; name = String;};
720+ dduan = {email = String; github = String; githubId = Number; name = String;};
764721 deepfire =
765− {email = String; github = String; githubId = Integer; name = String;};
722+ {email = String; github = String; githubId = Number; name = String;};
766723 deifactor =
767− {email = String; github = String; githubId = Integer; name = String;};
768− delan = {email = String; github = String; githubId = Integer; name = String;};
724+ {email = String; github = String; githubId = Number; name = String;};
725+ delan = {email = String; github = String; githubId = Number; name = String;};
769726 delroth =
770− {email = String; github = String; githubId = Integer; name = String;};
727+ {email = String; github = String; githubId = Number; name = String;};
771728 deltaevo =
772− {email = String; github = String; githubId = Integer; name = String;};
729+ {email = String; github = String; githubId = Number; name = String;};
773730 demin-dmitriy =
774− {email = String; github = String; githubId = Integer; name = String;};
775− demize =
776− {email = String; github = String; githubId = Integer; name = String;};
731+ {email = String; github = String; githubId = Number; name = String;};
732+ demize = {email = String; github = String; githubId = Number; name = String;};
777733 demyanrogozhin =
778− {email = String; github = String; githubId = Integer; name = String;};
734+ {email = String; github = String; githubId = Number; name = String;};
779735 derchris =
780− {email = String; github = String; githubId = Integer; name = String;};
736+ {email = String; github = String; githubId = Number; name = String;};
781737 dermetfan =
782− {email = String; github = String; githubId = Integer; name = String;};
738+ {email = String; github = String; githubId = Number; name = String;};
783739 desiderius =
784− {email = String; github = String; githubId = Integer; name = String;};
740+ {email = String; github = String; githubId = Number; name = String;};
785741 devhell =
786− {email = String; github = String; githubId = Integer; name = String;};
787− dezgeg =
788− {email = String; github = String; githubId = Integer; name = String;};
742+ {email = String; github = String; githubId = Number; name = String;};
743+ dezgeg = {email = String; github = String; githubId = Number; name = String;};
789744 dfordivam =
790− {email = String; github = String; githubId = Integer; name = String;};
745+ {email = String; github = String; githubId = Number; name = String;};
791746 dfoxfranke =
792− {email = String; github = String; githubId = Integer; name = String;};
747+ {email = String; github = String; githubId = Number; name = String;};
793748 dgonyeo =
794− {email = String; github = String; githubId = Integer; name = String;};
795− dhkl = {email = String; github = String; githubId = Integer; name = String;};
749+ {email = String; github = String; githubId = Number; name = String;};
750+ dhkl = {email = String; github = String; githubId = Number; name = String;};
796751 dipinhora =
797− {email = String; github = String; githubId = Integer; name = String;};
798− dirkx = {email = String; github = String; githubId = Integer; name = String;};
752+ {email = String; github = String; githubId = Number; name = String;};
753+ dirkx = {email = String; github = String; githubId = Number; name = String;};
799754 disassembler =
800− {email = String; github = String; githubId = Integer; name = String;};
755+ {email = String; github = String; githubId = Number; name = String;};
801756 disserman =
802− {email = String; github = String; githubId = Integer; name = String;};
803− dizfer =
804− {email = String; github = String; githubId = Integer; name = String;};
805− dkabot =
806− {email = String; github = String; githubId = Integer; name = String;};
757+ {email = String; github = String; githubId = Number; name = String;};
758+ dizfer = {email = String; github = String; githubId = Number; name = String;};
759+ dkabot = {email = String; github = String; githubId = Number; name = String;};
807760 dmalikov =
808− {email = String; github = String; githubId = Integer; name = String;};
809− dmjio = {email = String; github = String; githubId = Integer; name = String;};
810− dmrauh =
811− {email = String; github = String; githubId = Integer; name = String;};
761+ {email = String; github = String; githubId = Number; name = String;};
762+ dmjio = {email = String; github = String; githubId = Number; name = String;};
763+ dmrauh = {email = String; github = String; githubId = Number; name = String;};
812764 dmvianna =
813− {email = String; github = String; githubId = Integer; name = String;};
765+ {email = String; github = String; githubId = Number; name = String;};
814766 dochang =
815− {email = String; github = String; githubId = Integer; name = String;};
767+ {email = String; github = String; githubId = Number; name = String;};
816768 domenkozar =
817− {email = String; github = String; githubId = Integer; name = String;};
769+ {email = String; github = String; githubId = Number; name = String;};
818770 dominikh =
819− {email = String; github = String; githubId = Integer; name = String;};
771+ {email = String; github = String; githubId = Number; name = String;};
820772 doronbehar =
821− {email = String; github = String; githubId = Integer; name = String;};
773+ {email = String; github = String; githubId = Number; name = String;};
822774 dotlambda =
823− {email = String; github = String; githubId = Integer; name = String;};
775+ {email = String; github = String; githubId = Number; name = String;};
824776 doublec =
825− {email = String; github = String; githubId = Integer; name = String;};
777+ {email = String; github = String; githubId = Number; name = String;};
826778 dpaetzel =
827− {email = String; github = String; githubId = Integer; name = String;};
779+ {email = String; github = String; githubId = Number; name = String;};
828780 dpausp =
829781 { email = String;
830782 github = String;
831− githubId = Integer;
783+ githubId = Number;
832784 keys = [{fingerprint = String; longkeyid = String;}];
833785 name = String;
834786 };
835− dpflug =
836− {email = String; github = String; githubId = Integer; name = String;};
787+ dpflug = {email = String; github = String; githubId = Number; name = String;};
837788 dramaturg =
838− {email = String; github = String; githubId = Integer; name = String;};
839− drets = {email = String; github = String; githubId = Integer; name = String;};
789+ {email = String; github = String; githubId = Number; name = String;};
790+ drets = {email = String; github = String; githubId = Number; name = String;};
840791 drewkett = {email = String; name = String;};
841792 drewrisinger =
842− {email = String; github = String; githubId = Integer; name = String;};
793+ {email = String; github = String; githubId = Number; name = String;};
843794 dsferruzza =
844− {email = String; github = String; githubId = Integer; name = String;};
795+ {email = String; github = String; githubId = Number; name = String;};
845796 dtzWill =
846797 { email = String;
847798 github = String;
848− githubId = Integer;
799+ githubId = Number;
849800 keys = [{fingerprint = String; longkeyid = String;}];
850801 name = String;
851802 };
852803 dump_stack =
853804 { email = String;
854805 github = String;
855− githubId = Integer;
806+ githubId = Number;
856807 keys = [{fingerprint = String; longkeyid = String;}];
857808 name = String;
858809 };
859810 dwarfmaster =
860− {email = String; github = String; githubId = Integer; name = String;};
861− dxf = {email = String; github = String; githubId = Integer; name = String;};
811+ {email = String; github = String; githubId = Number; name = String;};
812+ dxf = {email = String; github = String; githubId = Number; name = String;};
862813 dysinger =
863− {email = String; github = String; githubId = Integer; name = String;};
814+ {email = String; github = String; githubId = Number; name = String;};
864815 dywedir =
865− {email = String; github = String; githubId = Integer; name = String;};
816+ {email = String; github = String; githubId = Number; name = String;};
866817 dzabraev =
867− {email = String; github = String; githubId = Integer; name = String;};
868− e-user =
869− {email = String; github = String; githubId = Integer; name = String;};
870− eadwu = {email = String; github = String; githubId = Integer; name = String;};
871− ealasu =
872− {email = String; github = String; githubId = Integer; name = String;};
818+ {email = String; github = String; githubId = Number; name = String;};
819+ e-user = {email = String; github = String; githubId = Number; name = String;};
820+ eadwu = {email = String; github = String; githubId = Number; name = String;};
821+ ealasu = {email = String; github = String; githubId = Number; name = String;};
873822 eamsden =
874− {email = String; github = String; githubId = Integer; name = String;};
823+ {email = String; github = String; githubId = Number; name = String;};
875824 earldouglas =
876− {email = String; github = String; githubId = Integer; name = String;};
825+ {email = String; github = String; githubId = Number; name = String;};
877826 earvstedt =
878− {email = String; github = String; githubId = Integer; name = String;};
879− ebzzry =
880− {email = String; github = String; githubId = Integer; name = String;};
827+ {email = String; github = String; githubId = Number; name = String;};
828+ ebzzry = {email = String; github = String; githubId = Number; name = String;};
881829 edanaher =
882− {email = String; github = String; githubId = Integer; name = String;};
883− edef = {email = String; github = String; githubId = Integer; name = String;};
830+ {email = String; github = String; githubId = Number; name = String;};
831+ edef = {email = String; github = String; githubId = Number; name = String;};
884832 ederoyd46 =
885− {email = String; github = String; githubId = Integer; name = String;};
833+ {email = String; github = String; githubId = Number; name = String;};
886834 edibopp =
887− {email = String; github = String; githubId = Integer; name = String;};
835+ {email = String; github = String; githubId = Number; name = String;};
888836 eduarrrd =
889− {email = String; github = String; githubId = Integer; name = String;};
837+ {email = String; github = String; githubId = Number; name = String;};
890838 edude03 =
891− {email = String; github = String; githubId = Integer; name = String;};
892− edwtjo =
893− {email = String; github = String; githubId = Integer; name = String;};
894− eelco = {email = String; github = String; githubId = Integer; name = String;};
839+ {email = String; github = String; githubId = Number; name = String;};
840+ edwtjo = {email = String; github = String; githubId = Number; name = String;};
841+ eelco = {email = String; github = String; githubId = Number; name = String;};
895842 ehegnes =
896− {email = String; github = String; githubId = Integer; name = String;};
897− ehmry = {email = String; github = String; githubId = Integer; name = String;};
898− eikek = {email = String; github = String; githubId = Integer; name = String;};
899− ekleog =
900− {email = String; github = String; githubId = Integer; name = String;};
843+ {email = String; github = String; githubId = Number; name = String;};
844+ ehmry = {email = String; github = String; githubId = Number; name = String;};
845+ eikek = {email = String; github = String; githubId = Number; name = String;};
846+ ekleog = {email = String; github = String; githubId = Number; name = String;};
901847 elasticdog =
902− {email = String; github = String; githubId = Integer; name = String;};
848+ {email = String; github = String; githubId = Number; name = String;};
903849 eleanor =
904− {email = String; github = String; githubId = Integer; name = String;};
905− eliasp =
906− {email = String; github = String; githubId = Integer; name = String;};
850+ {email = String; github = String; githubId = Number; name = String;};
851+ eliasp = {email = String; github = String; githubId = Number; name = String;};
907852 elijahcaine =
908− {email = String; github = String; githubId = Integer; name = String;};
909− elitak =
910− {email = String; github = String; githubId = Integer; name = String;};
853+ {email = String; github = String; githubId = Number; name = String;};
854+ elitak = {email = String; github = String; githubId = Number; name = String;};
911855 elkowar =
912− {email = String; github = String; githubId = Integer; name = String;};
856+ {email = String; github = String; githubId = Number; name = String;};
913857 elliottvillars =
914− {email = String; github = String; githubId = Integer; name = String;};
915− ellis = {email = String; github = String; githubId = Integer; name = String;};
858+ {email = String; github = String; githubId = Number; name = String;};
859+ ellis = {email = String; github = String; githubId = Number; name = String;};
916860 elohmeier =
917− {email = String; github = String; githubId = Integer; name = String;};
918− elseym =
919− {email = String; github = String; githubId = Integer; name = String;};
861+ {email = String; github = String; githubId = Number; name = String;};
862+ elseym = {email = String; github = String; githubId = Number; name = String;};
920863 elvishjerricco =
921− {email = String; github = String; githubId = Integer; name = String;};
864+ {email = String; github = String; githubId = Number; name = String;};
922865 elyhaka =
923− {email = String; github = String; githubId = Integer; name = String;};
866+ {email = String; github = String; githubId = Number; name = String;};
924867 emantor =
925− {email = String; github = String; githubId = Integer; name = String;};
926− embr = {email = String; github = String; githubId = Integer; name = String;};
927− emily = {email = String; github = String; githubId = Integer; name = String;};
868+ {email = String; github = String; githubId = Number; name = String;};
869+ embr = {email = String; github = String; githubId = Number; name = String;};
870+ emily = {email = String; github = String; githubId = Number; name = String;};
928871 emmanuelrosa =
929− {email = String; github = String; githubId = Integer; name = String;};
872+ {email = String; github = String; githubId = Number; name = String;};
930873 endgame =
931− {email = String; github = String; githubId = Integer; name = String;};
874+ {email = String; github = String; githubId = Number; name = String;};
932875 endocrimes =
933− {email = String; github = String; githubId = Integer; name = String;};
876+ {email = String; github = String; githubId = Number; name = String;};
934877 enorris =
935− {email = String; github = String; githubId = Integer; name = String;};
936− enzime =
937− {email = String; github = String; githubId = Integer; name = String;};
878+ {email = String; github = String; githubId = Number; name = String;};
879+ enzime = {email = String; github = String; githubId = Number; name = String;};
938880 eonpatapon =
939− {email = String; github = String; githubId = Integer; name = String;};
881+ {email = String; github = String; githubId = Number; name = String;};
940882 eperuffo =
941− {email = String; github = String; githubId = Integer; name = String;};
883+ {email = String; github = String; githubId = Number; name = String;};
942884 epitrochoid = {email = String; name = String;};
943885 equirosa =
944− {email = String; github = String; githubId = Integer; name = String;};
945− eqyiel =
946− {email = String; github = String; githubId = Integer; name = String;};
886+ {email = String; github = String; githubId = Number; name = String;};
887+ eqyiel = {email = String; github = String; githubId = Number; name = String;};
947888 eraserhd =
948− {email = String; github = String; githubId = Integer; name = String;};
889+ {email = String; github = String; githubId = Number; name = String;};
949890 ericbmerritt =
950− {email = String; github = String; githubId = Integer; name = String;};
891+ {email = String; github = String; githubId = Number; name = String;};
951892 ericdallo =
952− {email = String; github = String; githubId = Integer; name = String;};
893+ {email = String; github = String; githubId = Number; name = String;};
953894 ericsagnes =
954− {email = String; github = String; githubId = Integer; name = String;};
895+ {email = String; github = String; githubId = Number; name = String;};
955896 ericson2314 =
956− {email = String; github = String; githubId = Integer; name = String;};
897+ {email = String; github = String; githubId = Number; name = String;};
957898 erictapen =
958899 { email = String;
959900 github = String;
960− githubId = Integer;
901+ githubId = Number;
961902 keys = [{fingerprint = String; longkeyid = String;}];
962903 name = String;
963904 };
964905 erikryb =
965− {email = String; github = String; githubId = Integer; name = String;};
906+ {email = String; github = String; githubId = Number; name = String;};
966907 erosennin =
967− {email = String; github = String; githubId = Integer; name = String;};
968− ersin = {email = String; github = String; githubId = Integer; name = String;};
969− ertes = {email = String; github = String; githubId = Integer; name = String;};
908+ {email = String; github = String; githubId = Number; name = String;};
909+ ersin = {email = String; github = String; githubId = Number; name = String;};
910+ ertes = {email = String; github = String; githubId = Number; name = String;};
970911 esclear =
971− {email = String; github = String; githubId = Integer; name = String;};
912+ {email = String; github = String; githubId = Number; name = String;};
972913 eskytthe =
973− {email = String; github = String; githubId = Integer; name = String;};
914+ {email = String; github = String; githubId = Number; name = String;};
974915 ethercrow =
975− {email = String; github = String; githubId = Integer; name = String;};
916+ {email = String; github = String; githubId = Number; name = String;};
976917 etu =
977918 { email = String;
978919 github = String;
979− githubId = Integer;
920+ githubId = Number;
980921 keys = [{fingerprint = String; longkeyid = String;}];
981922 name = String;
982923 };
983− euank = {email = String; github = String; githubId = Integer; name = String;};
984− evanjs =
985− {email = String; github = String; githubId = Integer; name = String;};
986− evck = {email = String; github = String; githubId = Integer; name = String;};
924+ euank = {email = String; github = String; githubId = Number; name = String;};
925+ evanjs = {email = String; github = String; githubId = Number; name = String;};
926+ evck = {email = String; github = String; githubId = Number; name = String;};
987927 evenbrenden =
988− {email = String; github = String; githubId = Integer; name = String;};
989− evils = {email = String; github = String; githubId = Integer; name = String;};
928+ {email = String; github = String; githubId = Number; name = String;};
929+ evils = {email = String; github = String; githubId = Number; name = String;};
990930 exfalso =
991− {email = String; github = String; githubId = Integer; name = String;};
992− exi = {email = String; github = String; githubId = Integer; name = String;};
931+ {email = String; github = String; githubId = Number; name = String;};
932+ exi = {email = String; github = String; githubId = Number; name = String;};
993933 exlevan =
994− {email = String; github = String; githubId = Integer; name = String;};
934+ {email = String; github = String; githubId = Number; name = String;};
995935 expipiplus1 =
996− {email = String; github = String; githubId = Integer; name = String;};
936+ {email = String; github = String; githubId = Number; name = String;};
997937 extends =
998− {email = String; github = String; githubId = Integer; name = String;};
999− eyjhb = {email = String; github = String; githubId = Integer; name = String;};
1000− f--t = {email = String; github = String; githubId = Integer; name = String;};
1001− f4814n =
1002− {email = String; github = String; githubId = Integer; name = String;};
938+ {email = String; github = String; githubId = Number; name = String;};
939+ eyjhb = {email = String; github = String; githubId = Number; name = String;};
940+ f--t = {email = String; github = String; githubId = Number; name = String;};
941+ f4814n = {email = String; github = String; githubId = Number; name = String;};
1003942 fabianhauser =
1004943 { email = String;
1005944 github = String;
1006− githubId = Integer;
945+ githubId = Number;
1007946 keys = [{fingerprint = String; longkeyid = String;}];
1008947 name = String;
1009948 };
1010− fadenb =
1011− {email = String; github = String; githubId = Integer; name = String;};
949+ fadenb = {email = String; github = String; githubId = Number; name = String;};
1012950 falsifian =
1013− {email = String; github = String; githubId = Integer; name = String;};
1014− fare = {email = String; github = String; githubId = Integer; name = String;};
951+ {email = String; github = String; githubId = Number; name = String;};
952+ fare = {email = String; github = String; githubId = Number; name = String;};
1015953 farlion =
1016− {email = String; github = String; githubId = Integer; name = String;};
1017− fdns = {email = String; github = String; githubId = Integer; name = String;};
954+ {email = String; github = String; githubId = Number; name = String;};
955+ fdns = {email = String; github = String; githubId = Number; name = String;};
1018956 ffinkdevs =
1019− {email = String; github = String; githubId = Integer; name = String;};
1020− fgaz = {email = String; github = String; githubId = Integer; name = String;};
957+ {email = String; github = String; githubId = Number; name = String;};
958+ fgaz = {email = String; github = String; githubId = Number; name = String;};
1021959 filalex77 =
1022960 { email = String;
1023961 github = String;
1024− githubId = Integer;
962+ githubId = Number;
1025963 keys = [{fingerprint = String; longkeyid = String;}];
1026964 name = String;
1027965 };
1028966 fionera =
1029− {email = String; github = String; githubId = Integer; name = String;};
967+ {email = String; github = String; githubId = Number; name = String;};
1030968 fishi0x01 =
1031− {email = String; github = String; githubId = Integer; name = String;};
1032− flexw = {email = String; github = String; githubId = Integer; name = String;};
1033− flokli =
1034− {email = String; github = String; githubId = Integer; name = String;};
969+ {email = String; github = String; githubId = Number; name = String;};
970+ flexw = {email = String; github = String; githubId = Number; name = String;};
971+ flokli = {email = String; github = String; githubId = Number; name = String;};
1035972 florianjacob =
1036− {email = String; github = String; githubId = Integer; name = String;};
1037− flosse =
1038− {email = String; github = String; githubId = Integer; name = String;};
973+ {email = String; github = String; githubId = Number; name = String;};
974+ flosse = {email = String; github = String; githubId = Number; name = String;};
1039975 fluffynukeit =
1040− {email = String; github = String; githubId = Integer; name = String;};
976+ {email = String; github = String; githubId = Number; name = String;};
1041977 flyfloh =
1042− {email = String; github = String; githubId = Integer; name = String;};
978+ {email = String; github = String; githubId = Number; name = String;};
1043979 fmthoma =
1044− {email = String; github = String; githubId = Integer; name = String;};
1045− fooker =
1046− {email = String; github = String; githubId = Integer; name = String;};
1047− forkk = {email = String; github = String; githubId = Integer; name = String;};
980+ {email = String; github = String; githubId = Number; name = String;};
981+ fooker = {email = String; github = String; githubId = Number; name = String;};
982+ forkk = {email = String; github = String; githubId = Number; name = String;};
1048983 fornever =
1049− {email = String; github = String; githubId = Integer; name = String;};
984+ {email = String; github = String; githubId = Number; name = String;};
1050985 foxit64 =
1051− {email = String; github = String; githubId = Integer; name = String;};
986+ {email = String; github = String; githubId = Number; name = String;};
1052987 fpletz =
1053988 { email = String;
1054989 github = String;
1055− githubId = Integer;
990+ githubId = Number;
1056991 keys = [{fingerprint = String; longkeyid = String;}];
1057992 name = String;
1058993 };
1059− fps = {email = String; github = String; githubId = Integer; name = String;};
994+ fps = {email = String; github = String; githubId = Number; name = String;};
1060995 fragamus =
1061− {email = String; github = String; githubId = Integer; name = String;};
1062− fredeb =
1063− {email = String; github = String; githubId = Integer; name = String;};
996+ {email = String; github = String; githubId = Number; name = String;};
997+ fredeb = {email = String; github = String; githubId = Number; name = String;};
1064998 freepotion =
1065− {email = String; github = String; githubId = Integer; name = String;};
999+ {email = String; github = String; githubId = Number; name = String;};
10661000 freezeboy =
1067− {email = String; github = String; githubId = Integer; name = String;};
1068− fridh = {email = String; github = String; githubId = Integer; name = String;};
1069− frlan = {email = String; github = String; githubId = Integer; name = String;};
1001+ {email = String; github = String; githubId = Number; name = String;};
1002+ fridh = {email = String; github = String; githubId = Number; name = String;};
1003+ frlan = {email = String; github = String; githubId = Number; name = String;};
10701004 fro_ozen =
1071− {email = String; github = String; githubId = Integer; name = String;};
1005+ {email = String; github = String; githubId = Number; name = String;};
10721006 frontsideair =
1073− {email = String; github = String; githubId = Integer; name = String;};
1007+ {email = String; github = String; githubId = Number; name = String;};
10741008 ftrvxmtrx =
1075− {email = String; github = String; githubId = Integer; name = String;};
1009+ {email = String; github = String; githubId = Number; name = String;};
10761010 fuerbringer =
1077− {email = String; github = String; githubId = Integer; name = String;};
1011+ {email = String; github = String; githubId = Number; name = String;};
10781012 funfunctor = {email = String; name = String;};
10791013 fusion809 =
1080− {email = String; github = String; githubId = Integer; name = String;};
1014+ {email = String; github = String; githubId = Number; name = String;};
10811015 fuuzetsu =
1082− {email = String; github = String; githubId = Integer; name = String;};
1083− fuwa = {email = String; github = String; githubId = Integer; name = String;};
1084− fuzen = {email = String; github = String; githubId = Integer; name = String;};
1016+ {email = String; github = String; githubId = Number; name = String;};
1017+ fuwa = {email = String; github = String; githubId = Number; name = String;};
1018+ fuzen = {email = String; github = String; githubId = Number; name = String;};
10851019 fuzzy-id = {email = String; name = String;};
10861020 fxfactorial =
1087− {email = String; github = String; githubId = Integer; name = String;};
1021+ {email = String; github = String; githubId = Number; name = String;};
10881022 fzakaria =
1089− {email = String; github = String; githubId = Integer; name = String;};
1023+ {email = String; github = String; githubId = Number; name = String;};
10901024 gabesoft =
1091− {email = String; github = String; githubId = Integer; name = String;};
1025+ {email = String; github = String; githubId = Number; name = String;};
10921026 gal_bolle =
1093− {email = String; github = String; githubId = Integer; name = String;};
1027+ {email = String; github = String; githubId = Number; name = String;};
10941028 galagora =
1095− {email = String; github = String; githubId = Integer; name = String;};
1096− gamb = {email = String; github = String; githubId = Integer; name = String;};
1097− garbas =
1098− {email = String; github = String; githubId = Integer; name = String;};
1029+ {email = String; github = String; githubId = Number; name = String;};
1030+ gamb = {email = String; github = String; githubId = Number; name = String;};
1031+ garbas = {email = String; github = String; githubId = Number; name = String;};
10991032 garrison =
1100− {email = String; github = String; githubId = Integer; name = String;};
1101− gavin = {email = String; github = String; githubId = Integer; name = String;};
1033+ {email = String; github = String; githubId = Number; name = String;};
1034+ gavin = {email = String; github = String; githubId = Number; name = String;};
11021035 gazally =
1103− {email = String; github = String; githubId = Integer; name = String;};
1104− gebner =
1105− {email = String; github = String; githubId = Integer; name = String;};
1036+ {email = String; github = String; githubId = Number; name = String;};
1037+ gebner = {email = String; github = String; githubId = Number; name = String;};
11061038 genesis =
1107− {email = String; github = String; githubId = Integer; name = String;};
1039+ {email = String; github = String; githubId = Number; name = String;};
11081040 georgewhewell =
1109− {email = String; github = String; githubId = Integer; name = String;};
1041+ {email = String; github = String; githubId = Number; name = String;};
11101042 gerschtli =
1111− {email = String; github = String; githubId = Integer; name = String;};
1112− ggpeti =
1113− {email = String; github = String; githubId = Integer; name = String;};
1114− gila = {email = String; github = String; githubId = Integer; name = String;};
1043+ {email = String; github = String; githubId = Number; name = String;};
1044+ ggpeti = {email = String; github = String; githubId = Number; name = String;};
1045+ gila = {email = String; github = String; githubId = Number; name = String;};
11151046 gilligan =
1116− {email = String; github = String; githubId = Integer; name = String;};
1047+ {email = String; github = String; githubId = Number; name = String;};
11171048 giogadi =
1118− {email = String; github = String; githubId = Integer; name = String;};
1119− gleber =
1120− {email = String; github = String; githubId = Integer; name = String;};
1121− glenns =
1122− {email = String; github = String; githubId = Integer; name = String;};
1049+ {email = String; github = String; githubId = Number; name = String;};
1050+ gleber = {email = String; github = String; githubId = Number; name = String;};
1051+ glenns = {email = String; github = String; githubId = Number; name = String;};
11231052 glittershark =
11241053 { email = String;
11251054 github = String;
1126− githubId = Integer;
1055+ githubId = Number;
11271056 keys = [{fingerprint = String; longkeyid = String;}];
11281057 name = String;
11291058 };
11301059 gloaming =
1131− {email = String; github = String; githubId = Integer; name = String;};
1132− globin =
1133− {email = String; github = String; githubId = Integer; name = String;};
1060+ {email = String; github = String; githubId = Number; name = String;};
1061+ globin = {email = String; github = String; githubId = Number; name = String;};
11341062 gnidorah =
1135− {email = String; github = String; githubId = Integer; name = String;};
1063+ {email = String; github = String; githubId = Number; name = String;};
11361064 gnxlxnxx =
1137− {email = String; github = String; githubId = Integer; name = String;};
1065+ {email = String; github = String; githubId = Number; name = String;};
11381066 goertzenator =
1139− {email = String; github = String; githubId = Integer; name = String;};
1067+ {email = String; github = String; githubId = Number; name = String;};
11401068 goibhniu =
1141− {email = String; github = String; githubId = Integer; name = String;};
1069+ {email = String; github = String; githubId = Number; name = String;};
11421070 goodrone =
1143− {email = String; github = String; githubId = Integer; name = String;};
1144− gpyh = {email = String; github = String; githubId = Integer; name = String;};
1071+ {email = String; github = String; githubId = Number; name = String;};
1072+ gpyh = {email = String; github = String; githubId = Number; name = String;};
11451073 grahamc =
1146− {email = String; github = String; githubId = Integer; name = String;};
1074+ {email = String; github = String; githubId = Number; name = String;};
11471075 grburst =
11481076 { email = String;
11491077 github = String;
1150− githubId = Integer;
1078+ githubId = Number;
11511079 keys = [{fingerprint = String; longkeyid = String;}];
11521080 name = String;
11531081 };
11541082 greydot =
1155− {email = String; github = String; githubId = Integer; name = String;};
1083+ {email = String; github = String; githubId = Number; name = String;};
11561084 gridaphobe =
1157− {email = String; github = String; githubId = Integer; name = String;};
1158− groodt =
1159− {email = String; github = String; githubId = Integer; name = String;};
1085+ {email = String; github = String; githubId = Number; name = String;};
1086+ groodt = {email = String; github = String; githubId = Number; name = String;};
11601087 guibert =
1161− {email = String; github = String; githubId = Integer; name = String;};
1162− guibou =
1163− {email = String; github = String; githubId = Integer; name = String;};
1088+ {email = String; github = String; githubId = Number; name = String;};
1089+ guibou = {email = String; github = String; githubId = Number; name = String;};
11641090 guillaumekoenig =
1165− {email = String; github = String; githubId = Integer; name = String;};
1091+ {email = String; github = String; githubId = Number; name = String;};
11661092 guyonvarch =
1167− {email = String; github = String; githubId = Integer; name = String;};
1168− gvolpe =
1169− {email = String; github = String; githubId = Integer; name = String;};
1170− hakuch =
1171− {email = String; github = String; githubId = Integer; name = String;};
1093+ {email = String; github = String; githubId = Number; name = String;};
1094+ gvolpe = {email = String; github = String; githubId = Number; name = String;};
1095+ hakuch = {email = String; github = String; githubId = Number; name = String;};
11721096 hamhut1066 =
1173− {email = String; github = String; githubId = Integer; name = String;};
1097+ {email = String; github = String; githubId = Number; name = String;};
11741098 hansjoergschurr =
1175− {email = String; github = String; githubId = Integer; name = String;};
1099+ {email = String; github = String; githubId = Number; name = String;};
11761100 haslersn =
1177− {email = String; github = String; githubId = Integer; name = String;};
1178− havvy = {email = String; github = String; githubId = Integer; name = String;};
1179− hax404 =
1180− {email = String; github = String; githubId = Integer; name = String;};
1181− hbunke =
1182− {email = String; github = String; githubId = Integer; name = String;};
1183− hce = {email = String; github = String; githubId = Integer; name = String;};
1101+ {email = String; github = String; githubId = Number; name = String;};
1102+ havvy = {email = String; github = String; githubId = Number; name = String;};
1103+ hax404 = {email = String; github = String; githubId = Number; name = String;};
1104+ hbunke = {email = String; github = String; githubId = Number; name = String;};
1105+ hce = {email = String; github = String; githubId = Number; name = String;};
11841106 hectorj =
1185− {email = String; github = String; githubId = Integer; name = String;};
1107+ {email = String; github = String; githubId = Number; name = String;};
11861108 hedning =
1187− {email = String; github = String; githubId = Integer; name = String;};
1188− heel = {email = String; github = String; githubId = Integer; name = String;};
1109+ {email = String; github = String; githubId = Number; name = String;};
1110+ heel = {email = String; github = String; githubId = Number; name = String;};
11891111 helkafen =
1190− {email = String; github = String; githubId = Integer; name = String;};
1112+ {email = String; github = String; githubId = Number; name = String;};
11911113 henrytill =
1192− {email = String; github = String; githubId = Integer; name = String;};
1114+ {email = String; github = String; githubId = Number; name = String;};
11931115 herberteuler =
1194− {email = String; github = String; githubId = Integer; name = String;};
1195− hexa = {email = String; github = String; githubId = Integer; name = String;};
1196− hh = {email = String; github = String; githubId = Integer; name = String;};
1197− hhm = {email = String; github = String; githubId = Integer; name = String;};
1116+ {email = String; github = String; githubId = Number; name = String;};
1117+ hexa = {email = String; github = String; githubId = Number; name = String;};
1118+ hh = {email = String; github = String; githubId = Number; name = String;};
1119+ hhm = {email = String; github = String; githubId = Number; name = String;};
11981120 hinton = {email = String; name = String;};
11991121 hkjn =
12001122 { email = String;
12011123 github = String;
1202− githubId = Integer;
1124+ githubId = Number;
12031125 keys = [{fingerprint = String; longkeyid = String;}];
12041126 name = String;
12051127 };
1206− hlolli =
1207− {email = String; github = String; githubId = Integer; name = String;};
1128+ hlolli = {email = String; github = String; githubId = Number; name = String;};
12081129 hmenke =
12091130 { email = String;
12101131 github = String;
1211− githubId = Integer;
1132+ githubId = Number;
12121133 keys = [{fingerprint = String; longkeyid = String;}];
12131134 name = String;
12141135 };
1215− hodapp =
1216− {email = String; github = String; githubId = Integer; name = String;};
1136+ hodapp = {email = String; github = String; githubId = Number; name = String;};
12171137 hrdinka =
1218− {email = String; github = String; githubId = Integer; name = String;};
1138+ {email = String; github = String; githubId = Number; name = String;};
12191139 hschaeidt =
1220− {email = String; github = String; githubId = Integer; name = String;};
1221− htr = {email = String; github = String; githubId = Integer; name = String;};
1140+ {email = String; github = String; githubId = Number; name = String;};
1141+ htr = {email = String; github = String; githubId = Number; name = String;};
12221142 hugoreeves =
12231143 { email = String;
12241144 github = String;
1225− githubId = Integer;
1145+ githubId = Number;
12261146 keys = [{fingerprint = String; longkeyid = String;}];
12271147 name = String;
12281148 };
12291149 hyphon81 =
1230− {email = String; github = String; githubId = Integer; name = String;};
1231− i077 = {email = String; github = String; githubId = Integer; name = String;};
1150+ {email = String; github = String; githubId = Number; name = String;};
1151+ i077 = {email = String; github = String; githubId = Number; name = String;};
12321152 iand675 =
1233− {email = String; github = String; githubId = Integer; name = String;};
1153+ {email = String; github = String; githubId = Number; name = String;};
12341154 ianmjones =
1235− {email = String; github = String; githubId = Integer; name = String;};
1155+ {email = String; github = String; githubId = Number; name = String;};
12361156 ianwookim =
1237− {email = String; github = String; githubId = Integer; name = String;};
1238− iblech =
1239− {email = String; github = String; githubId = Integer; name = String;};
1157+ {email = String; github = String; githubId = Number; name = String;};
1158+ iblech = {email = String; github = String; githubId = Number; name = String;};
12401159 idontgetoutmuch =
1241− {email = String; github = String; githubId = Integer; name = String;};
1242− igsha = {email = String; github = String; githubId = Integer; name = String;};
1243− iimog = {email = String; github = String; githubId = Integer; name = String;};
1160+ {email = String; github = String; githubId = Number; name = String;};
1161+ igsha = {email = String; github = String; githubId = Number; name = String;};
1162+ iimog = {email = String; github = String; githubId = Number; name = String;};
12441163 ikervagyok =
1245− {email = String; github = String; githubId = Integer; name = String;};
1164+ {email = String; github = String; githubId = Number; name = String;};
12461165 ilikeavocadoes =
1247− {email = String; github = String; githubId = Integer; name = String;};
1166+ {email = String; github = String; githubId = Number; name = String;};
12481167 illegalprime =
1249− {email = String; github = String; githubId = Integer; name = String;};
1168+ {email = String; github = String; githubId = Number; name = String;};
12501169 illiusdope =
1251− {email = String; github = String; githubId = Integer; name = String;};
1170+ {email = String; github = String; githubId = Number; name = String;};
12521171 ilya-fedin =
1253− {email = String; github = String; githubId = Integer; name = String;};
1172+ {email = String; github = String; githubId = Number; name = String;};
12541173 ilya-kolpakov =
1255− {email = String; github = String; githubId = Integer; name = String;};
1174+ {email = String; github = String; githubId = Number; name = String;};
12561175 imalison =
1257− {email = String; github = String; githubId = Integer; name = String;};
1176+ {email = String; github = String; githubId = Number; name = String;};
12581177 imalsogreg =
1259− {email = String; github = String; githubId = Integer; name = String;};
1260− immae = {email = String; github = String; githubId = Integer; name = String;};
1261− imuli = {email = String; github = String; githubId = Integer; name = String;};
1178+ {email = String; github = String; githubId = Number; name = String;};
1179+ immae = {email = String; github = String; githubId = Number; name = String;};
1180+ imuli = {email = String; github = String; githubId = Number; name = String;};
12621181 infinisil =
12631182 { email = String;
12641183 github = String;
1265− githubId = Integer;
1184+ githubId = Number;
12661185 keys = [{fingerprint = String; longkeyid = String;}];
12671186 name = String;
12681187 };
12691188 ingenieroariel =
1270− {email = String; github = String; githubId = Integer; name = String;};
1189+ {email = String; github = String; githubId = Number; name = String;};
12711190 ironpinguin =
1272− {email = String; github = String; githubId = Integer; name = String;};
1191+ {email = String; github = String; githubId = Number; name = String;};
12731192 isgy =
12741193 { email = String;
12751194 github = String;
1276− githubId = Integer;
1195+ githubId = Number;
12771196 keys = [{fingerprint = String; longkeyid = String;}];
12781197 name = String;
12791198 };
1280− ivan = {email = String; github = String; githubId = Integer; name = String;};
1199+ ivan = {email = String; github = String; githubId = Number; name = String;};
12811200 ivan-timokhin =
1282− {email = String; github = String; githubId = Integer; name = String;};
1201+ {email = String; github = String; githubId = Number; name = String;};
12831202 ivan-tkatchev = {email = String; name = String;};
12841203 ivanbrennan =
12851204 { email = String;
12861205 github = String;
1287− githubId = Integer;
1206+ githubId = Number;
12881207 keys = [{fingerprint = String; longkeyid = String;}];
12891208 name = String;
12901209 };
1291− ivar = {email = String; github = String; githubId = Integer; name = String;};
1210+ ivar = {email = String; github = String; githubId = Number; name = String;};
12921211 ivegotasthma =
12931212 { email = String;
12941213 github = String;
1295− githubId = Integer;
1214+ githubId = Number;
12961215 keys = [{fingerprint = String; longkeyid = String;}];
12971216 name = String;
12981217 };
12991218 ixmatus =
1300− {email = String; github = String; githubId = Integer; name = String;};
1301− ixxie = {email = String; github = String; githubId = Integer; name = String;};
1219+ {email = String; github = String; githubId = Number; name = String;};
1220+ ixxie = {email = String; github = String; githubId = Number; name = String;};
13021221 izorkin =
1303− {email = String; github = String; githubId = Integer; name = String;};
1304− j-keck =
1305− {email = String; github = String; githubId = Integer; name = String;};
1306− j03 = {email = String; github = String; githubId = Integer; name = String;};
1307− j0hax = {email = String; github = String; githubId = Integer; name = String;};
1222+ {email = String; github = String; githubId = Number; name = String;};
1223+ j-keck = {email = String; github = String; githubId = Number; name = String;};
1224+ j03 = {email = String; github = String; githubId = Number; name = String;};
1225+ j0hax = {email = String; github = String; githubId = Number; name = String;};
13081226 jD91mZM2 =
1309− {email = String; github = String; githubId = Integer; name = String;};
1310− jacg = {email = String; github = String; githubId = Integer; name = String;};
1227+ {email = String; github = String; githubId = Number; name = String;};
1228+ jacg = {email = String; github = String; githubId = Number; name = String;};
13111229 jagajaga =
1312− {email = String; github = String; githubId = Integer; name = String;};
1230+ {email = String; github = String; githubId = Number; name = String;};
13131231 jakelogemann =
1314− {email = String; github = String; githubId = Integer; name = String;};
1232+ {email = String; github = String; githubId = Number; name = String;};
13151233 jakestanger =
1316− {email = String; github = String; githubId = Integer; name = String;};
1234+ {email = String; github = String; githubId = Number; name = String;};
13171235 jakewaksbaum =
1318− {email = String; github = String; githubId = Integer; name = String;};
1236+ {email = String; github = String; githubId = Number; name = String;};
13191237 jammerful =
1320− {email = String; github = String; githubId = Integer; name = String;};
1321− jansol =
1322− {email = String; github = String; githubId = Integer; name = String;};
1238+ {email = String; github = String; githubId = Number; name = String;};
1239+ jansol = {email = String; github = String; githubId = Number; name = String;};
13231240 jasoncarr =
1324− {email = String; github = String; githubId = Integer; name = String;};
1241+ {email = String; github = String; githubId = Number; name = String;};
13251242 javaguirre =
1326− {email = String; github = String; githubId = Integer; name = String;};
1327− jb55 = {email = String; github = String; githubId = Integer; name = String;};
1328− jbedo = {email = String; github = String; githubId = Integer; name = String;};
1329− jbgi = {email = String; github = String; githubId = Integer; name = String;};
1330− jchw = {email = String; github = String; githubId = Integer; name = String;};
1243+ {email = String; github = String; githubId = Number; name = String;};
1244+ jb55 = {email = String; github = String; githubId = Number; name = String;};
1245+ jbedo = {email = String; github = String; githubId = Number; name = String;};
1246+ jbgi = {email = String; github = String; githubId = Number; name = String;};
1247+ jchw = {email = String; github = String; githubId = Number; name = String;};
13311248 jcumming = {email = String; name = String;};
13321249 jdagilliland =
1333− {email = String; github = String; githubId = Integer; name = String;};
1250+ {email = String; github = String; githubId = Number; name = String;};
13341251 jdanek =
13351252 { email = String;
13361253 github = String;
1337− githubId = Integer;
1254+ githubId = Number;
13381255 keys = [{fingerprint = String; longkeyid = String;}];
13391256 name = String;
13401257 };
13411258 jdbaldry =
1342− {email = String; github = String; githubId = Integer; name = String;};
1259+ {email = String; github = String; githubId = Number; name = String;};
13431260 jdehaas =
1344− {email = String; github = String; githubId = Integer; name = String;};
1345− jduan = {email = String; github = String; githubId = Integer; name = String;};
1346− jefdaj =
1347− {email = String; github = String; githubId = Integer; name = String;};
1261+ {email = String; github = String; githubId = Number; name = String;};
1262+ jduan = {email = String; github = String; githubId = Number; name = String;};
1263+ jefdaj = {email = String; github = String; githubId = Number; name = String;};
13481264 jefflabonte =
1349− {email = String; github = String; githubId = Integer; name = String;};
1265+ {email = String; github = String; githubId = Number; name = String;};
13501266 jensbin =
1351− {email = String; github = String; githubId = Integer; name = String;};
1267+ {email = String; github = String; githubId = Number; name = String;};
13521268 jeremyschlatter =
1353− {email = String; github = String; githubId = Integer; name = String;};
1269+ {email = String; github = String; githubId = Number; name = String;};
13541270 jerith666 =
1355− {email = String; github = String; githubId = Integer; name = String;};
1271+ {email = String; github = String; githubId = Number; name = String;};
13561272 jeschli =
1357− {email = String; github = String; githubId = Integer; name = String;};
1358− jethro =
1359− {email = String; github = String; githubId = Integer; name = String;};
1360− jfb = {email = String; github = String; githubId = Integer; name = String;};
1273+ {email = String; github = String; githubId = Number; name = String;};
1274+ jethro = {email = String; github = String; githubId = Number; name = String;};
1275+ jfb = {email = String; github = String; githubId = Number; name = String;};
13611276 jflanglois =
1362− {email = String; github = String; githubId = Integer; name = String;};
1277+ {email = String; github = String; githubId = Number; name = String;};
13631278 jfrankenau =
1364− {email = String; github = String; githubId = Integer; name = String;};
1279+ {email = String; github = String; githubId = Number; name = String;};
13651280 jfroche =
13661281 { email = String;
13671282 github = String;
1368− githubId = Integer;
1283+ githubId = Number;
13691284 keys = [{fingerprint = String; longkeyid = String;}];
13701285 name = String;
13711286 };
13721287 jgeerds =
1373− {email = String; github = String; githubId = Integer; name = String;};
1374− jgertm =
1375− {email = String; github = String; githubId = Integer; name = String;};
1288+ {email = String; github = String; githubId = Number; name = String;};
1289+ jgertm = {email = String; github = String; githubId = Number; name = String;};
13761290 jgillich =
1377− {email = String; github = String; githubId = Integer; name = String;};
1291+ {email = String; github = String; githubId = Number; name = String;};
13781292 jglukasik =
1379− {email = String; github = String; githubId = Integer; name = String;};
1380− jhhuh = {email = String; github = String; githubId = Integer; name = String;};
1293+ {email = String; github = String; githubId = Number; name = String;};
1294+ jhhuh = {email = String; github = String; githubId = Number; name = String;};
13811295 jhillyerd =
1382− {email = String; github = String; githubId = Integer; name = String;};
1296+ {email = String; github = String; githubId = Number; name = String;};
13831297 jirkamarsik =
1384− {email = String; github = String; githubId = Integer; name = String;};
1385− jitwit =
1386− {email = String; github = String; githubId = Integer; name = String;};
1298+ {email = String; github = String; githubId = Number; name = String;};
1299+ jitwit = {email = String; github = String; githubId = Number; name = String;};
13871300 jjjollyjim =
1388− {email = String; github = String; githubId = Integer; name = String;};
1389− jk = {email = String; github = String; githubId = Integer; name = String;};
1301+ {email = String; github = String; githubId = Number; name = String;};
1302+ jk = {email = String; github = String; githubId = Number; name = String;};
13901303 jlesquembre =
1391− {email = String; github = String; githubId = Integer; name = String;};
1392− jloyet =
1393− {email = String; github = String; githubId = Integer; name = String;};
1304+ {email = String; github = String; githubId = Number; name = String;};
1305+ jloyet = {email = String; github = String; githubId = Number; name = String;};
13941306 jluttine =
1395− {email = String; github = String; githubId = Integer; name = String;};
1396− jm2dev =
1397− {email = String; github = String; githubId = Integer; name = String;};
1307+ {email = String; github = String; githubId = Number; name = String;};
1308+ jm2dev = {email = String; github = String; githubId = Number; name = String;};
13981309 jmagnusj =
1399− {email = String; github = String; githubId = Integer; name = String;};
1310+ {email = String; github = String; githubId = Number; name = String;};
14001311 jmettes =
1401− {email = String; github = String; githubId = Integer; name = String;};
1312+ {email = String; github = String; githubId = Number; name = String;};
14021313 joachifm =
1403− {email = String; github = String; githubId = Integer; name = String;};
1314+ {email = String; github = String; githubId = Number; name = String;};
14041315 joachimschmidt557 =
1405− {email = String; github = String; githubId = Integer; name = String;};
1316+ {email = String; github = String; githubId = Number; name = String;};
14061317 joamaki =
1407− {email = String; github = String; githubId = Integer; name = String;};
1318+ {email = String; github = String; githubId = Number; name = String;};
14081319 jobojeha =
1409− {email = String; github = String; githubId = Integer; name = String;};
1320+ {email = String; github = String; githubId = Number; name = String;};
14101321 joelburget =
1411− {email = String; github = String; githubId = Integer; name = String;};
1412− joelmo =
1413− {email = String; github = String; githubId = Integer; name = String;};
1322+ {email = String; github = String; githubId = Number; name = String;};
1323+ joelmo = {email = String; github = String; githubId = Number; name = String;};
14141324 joelteon = {email = String; name = String;};
14151325 joepie91 =
1416− {email = String; github = String; githubId = Integer; name = String;};
1326+ {email = String; github = String; githubId = Number; name = String;};
14171327 joesalisbury =
1418− {email = String; github = String; githubId = Integer; name = String;};
1328+ {email = String; github = String; githubId = Number; name = String;};
14191329 johanot =
1420− {email = String; github = String; githubId = Integer; name = String;};
1421− johbo = {email = String; github = String; githubId = Integer; name = String;};
1330+ {email = String; github = String; githubId = Number; name = String;};
1331+ johbo = {email = String; github = String; githubId = Number; name = String;};
14221332 johnazoidberg =
1423− {email = String; github = String; githubId = Integer; name = String;};
1333+ {email = String; github = String; githubId = Number; name = String;};
14241334 johnchildren =
1425− {email = String; github = String; githubId = Integer; name = String;};
1426− johnmh =
1427− {email = String; github = String; githubId = Integer; name = String;};
1335+ {email = String; github = String; githubId = Number; name = String;};
1336+ johnmh = {email = String; github = String; githubId = Number; name = String;};
14281337 johnramsden =
1429− {email = String; github = String; githubId = Integer; name = String;};
1338+ {email = String; github = String; githubId = Number; name = String;};
14301339 johntitor =
1431− {email = String; github = String; githubId = Integer; name = String;};
1340+ {email = String; github = String; githubId = Number; name = String;};
14321341 jojosch =
14331342 { email = String;
14341343 github = String;
1435− githubId = Integer;
1344+ githubId = Number;
14361345 keys = [{fingerprint = String; longkeyid = String;}];
14371346 name = String;
14381347 };
14391348 joko =
14401349 { email = String;
14411350 github = String;
1442− githubId = Integer;
1351+ githubId = Number;
14431352 keys = [{fingerprint = String; longkeyid = String;}];
14441353 name = String;
14451354 };
14461355 jonafato =
1447− {email = String; github = String; githubId = Integer; name = String;};
1356+ {email = String; github = String; githubId = Number; name = String;};
14481357 jonathanmarler =
1449− {email = String; github = String; githubId = Integer; name = String;};
1358+ {email = String; github = String; githubId = Number; name = String;};
14501359 jonathanreeve =
1451− {email = String; github = String; githubId = Integer; name = String;};
1360+ {email = String; github = String; githubId = Number; name = String;};
14521361 joncojonathan =
1453− {email = String; github = String; githubId = Integer; name = String;};
1362+ {email = String; github = String; githubId = Number; name = String;};
14541363 jonringer =
1455− {email = String; github = String; githubId = Integer; name = String;};
1456− jorise =
1457− {email = String; github = String; githubId = Integer; name = String;};
1458− jorsn = {email = String; github = String; githubId = Integer; name = String;};
1364+ {email = String; github = String; githubId = Number; name = String;};
1365+ jorise = {email = String; github = String; githubId = Number; name = String;};
1366+ jorsn = {email = String; github = String; githubId = Number; name = String;};
14591367 joshuafern =
1460− {email = String; github = String; githubId = Integer; name = String;};
1461− jpas = {email = String; github = String; githubId = Integer; name = String;};
1368+ {email = String; github = String; githubId = Number; name = String;};
1369+ jpas = {email = String; github = String; githubId = Number; name = String;};
14621370 jpdoyle =
1463− {email = String; github = String; githubId = Integer; name = String;};
1371+ {email = String; github = String; githubId = Number; name = String;};
14641372 jperras =
1465− {email = String; github = String; githubId = Integer; name = String;};
1373+ {email = String; github = String; githubId = Number; name = String;};
14661374 jpierre03 =
1467− {email = String; github = String; githubId = Integer; name = String;};
1375+ {email = String; github = String; githubId = Number; name = String;};
14681376 jpotier =
1469− {email = String; github = String; githubId = Integer; name = String;};
1377+ {email = String; github = String; githubId = Number; name = String;};
14701378 jqueiroz =
1471− {email = String; github = String; githubId = Integer; name = String;};
1379+ {email = String; github = String; githubId = Number; name = String;};
14721380 jraygauthier =
1473− {email = String; github = String; githubId = Integer; name = String;};
1381+ {email = String; github = String; githubId = Number; name = String;};
14741382 jschievink =
1475− {email = String; github = String; githubId = Integer; name = String;};
1383+ {email = String; github = String; githubId = Number; name = String;};
14761384 jtcoolen =
14771385 { email = String;
14781386 github = String;
1479− githubId = Integer;
1387+ githubId = Number;
14801388 keys = [{fingerprint = String; longkeyid = String;}];
14811389 name = String;
14821390 };
1483− jtobin =
1484− {email = String; github = String; githubId = Integer; name = String;};
1391+ jtobin = {email = String; github = String; githubId = Number; name = String;};
14851392 jtojnar =
1486− {email = String; github = String; githubId = Integer; name = String;};
1393+ {email = String; github = String; githubId = Number; name = String;};
14871394 juaningan =
1488− {email = String; github = String; githubId = Integer; name = String;};
1395+ {email = String; github = String; githubId = Number; name = String;};
14891396 juliendehos =
1490− {email = String; github = String; githubId = Integer; name = String;};
1491− julm = {email = String; github = String; githubId = Integer; name = String;};
1397+ {email = String; github = String; githubId = Number; name = String;};
1398+ julm = {email = String; github = String; githubId = Number; name = String;};
14921399 jumper149 =
1493− {email = String; github = String; githubId = Integer; name = String;};
1400+ {email = String; github = String; githubId = Number; name = String;};
14941401 justinwoo =
1495− {email = String; github = String; githubId = Integer; name = String;};
1496− jwatt = {email = String; github = String; githubId = Integer; name = String;};
1402+ {email = String; github = String; githubId = Number; name = String;};
1403+ jwatt = {email = String; github = String; githubId = Number; name = String;};
14971404 jwiegley =
1498− {email = String; github = String; githubId = Integer; name = String;};
1405+ {email = String; github = String; githubId = Number; name = String;};
14991406 jwijenbergh =
1500− {email = String; github = String; githubId = Integer; name = String;};
1407+ {email = String; github = String; githubId = Number; name = String;};
15011408 jwilberding = {email = String; name = String;};
1502− jyp = {email = String; github = String; githubId = Integer; name = String;};
1409+ jyp = {email = String; github = String; githubId = Number; name = String;};
15031410 jzellner =
1504− {email = String; github = String; githubId = Integer; name = String;};
1411+ {email = String; github = String; githubId = Number; name = String;};
15051412 kaction =
15061413 { email = String;
15071414 github = String;
1508− githubId = Integer;
1415+ githubId = Number;
15091416 keys = [{fingerprint = String; longkeyid = String;}];
15101417 name = String;
15111418 };
1512− kaiha = {email = String; github = String; githubId = Integer; name = String;};
1419+ kaiha = {email = String; github = String; githubId = Number; name = String;};
15131420 kalbasit =
1514− {email = String; github = String; githubId = Integer; name = String;};
1421+ {email = String; github = String; githubId = Number; name = String;};
15151422 kalekseev =
1516− {email = String; github = String; githubId = Integer; name = String;};
1423+ {email = String; github = String; githubId = Number; name = String;};
15171424 kamadorueda =
15181425 { email = String;
15191426 github = String;
1520− githubId = Integer;
1427+ githubId = Number;
15211428 keys = [{fingerprint = String; longkeyid = String;}];
15221429 name = String;
15231430 };
15241431 kamilchm =
1525− {email = String; github = String; githubId = Integer; name = String;};
1432+ {email = String; github = String; githubId = Number; name = String;};
15261433 kampfschlaefer =
1527− {email = String; github = String; githubId = Integer; name = String;};
1434+ {email = String; github = String; githubId = Number; name = String;};
15281435 kampka =
15291436 { email = String;
15301437 github = String;
1531− githubId = Integer;
1438+ githubId = Number;
15321439 keys = [{fingerprint = String; longkeyid = String;}];
15331440 name = String;
15341441 };
15351442 karantan =
1536− {email = String; github = String; githubId = Integer; name = String;};
1443+ {email = String; github = String; githubId = Number; name = String;};
15371444 karolchmist = {email = String; name = String;};
15381445 kayhide =
1539− {email = String; github = String; githubId = Integer; name = String;};
1540− kazcw = {email = String; github = String; githubId = Integer; name = String;};
1446+ {email = String; github = String; githubId = Number; name = String;};
1447+ kazcw = {email = String; github = String; githubId = Number; name = String;};
15411448 kcalvinalvin =
1542− {email = String; github = String; githubId = Integer; name = String;};
1449+ {email = String; github = String; githubId = Number; name = String;};
15431450 kentjames =
1544− {email = String; github = String; githubId = Integer; name = String;};
1451+ {email = String; github = String; githubId = Number; name = String;};
15451452 kevincox =
1546− {email = String; github = String; githubId = Integer; name = String;};
1453+ {email = String; github = String; githubId = Number; name = String;};
15471454 kfollesdal =
1548− {email = String; github = String; githubId = Integer; name = String;};
1549− khumba =
1550− {email = String; github = String; githubId = Integer; name = String;};
1455+ {email = String; github = String; githubId = Number; name = String;};
1456+ khumba = {email = String; github = String; githubId = Number; name = String;};
15511457 kierdavis =
1552− {email = String; github = String; githubId = Integer; name = String;};
1458+ {email = String; github = String; githubId = Number; name = String;};
15531459 killercup =
1554− {email = String; github = String; githubId = Integer; name = String;};
1460+ {email = String; github = String; githubId = Number; name = String;};
15551461 kiloreux =
1556− {email = String; github = String; githubId = Integer; name = String;};
1557− kim0 = {email = String; github = String; githubId = Integer; name = String;};
1558− kimat = {email = String; github = String; githubId = Integer; name = String;};
1462+ {email = String; github = String; githubId = Number; name = String;};
1463+ kim0 = {email = String; github = String; githubId = Number; name = String;};
1464+ kimat = {email = String; github = String; githubId = Number; name = String;};
15591465 kimburgess =
1560− {email = String; github = String; githubId = Integer; name = String;};
1561− kini = {email = String; github = String; githubId = Integer; name = String;};
1466+ {email = String; github = String; githubId = Number; name = String;};
1467+ kini = {email = String; github = String; githubId = Number; name = String;};
15621468 kirelagin =
1563− {email = String; github = String; githubId = Integer; name = String;};
1469+ {email = String; github = String; githubId = Number; name = String;};
15641470 kirikaza =
1565− {email = String; github = String; githubId = Integer; name = String;};
1471+ {email = String; github = String; githubId = Number; name = String;};
15661472 kisonecat =
1567− {email = String; github = String; githubId = Integer; name = String;};
1473+ {email = String; github = String; githubId = Number; name = String;};
15681474 kiwi =
15691475 { email = String;
15701476 github = String;
1571− githubId = Integer;
1477+ githubId = Number;
15721478 keys = [{fingerprint = String; longkeyid = String;}];
15731479 name = String;
15741480 };
15751481 kkallio = {email = String; name = String;};
15761482 klntsky =
1577− {email = String; github = String; githubId = Integer; name = String;};
1483+ {email = String; github = String; githubId = Number; name = String;};
15781484 kloenk =
15791485 { email = String;
15801486 github = String;
1581− githubId = Integer;
1487+ githubId = Number;
15821488 keys = [{fingerprint = String; longkeyid = String;}];
15831489 name = String;
15841490 };
15851491 kmcopper =
1586− {email = String; github = String; githubId = Integer; name = String;};
1492+ {email = String; github = String; githubId = Number; name = String;};
15871493 kmeakin =
1588− {email = String; github = String; githubId = Integer; name = String;};
1589− kmein = {email = String; github = String; githubId = Integer; name = String;};
1494+ {email = String; github = String; githubId = Number; name = String;};
1495+ kmein = {email = String; github = String; githubId = Number; name = String;};
15901496 knairda =
1591− {email = String; github = String; githubId = Integer; name = String;};
1497+ {email = String; github = String; githubId = Number; name = String;};
15921498 knedlsepp =
1593− {email = String; github = String; githubId = Integer; name = String;};
1594− knl = {email = String; github = String; githubId = Integer; name = String;};
1499+ {email = String; github = String; githubId = Number; name = String;};
1500+ knl = {email = String; github = String; githubId = Number; name = String;};
15951501 kolaente =
1596− {email = String; github = String; githubId = Integer; name = String;};
1502+ {email = String; github = String; githubId = Number; name = String;};
15971503 kolbycrouch =
1598− {email = String; github = String; githubId = Integer; name = String;};
1504+ {email = String; github = String; githubId = Number; name = String;};
15991505 kolloch =
1600− {email = String; github = String; githubId = Integer; name = String;};
1506+ {email = String; github = String; githubId = Number; name = String;};
16011507 konimex =
1602− {email = String; github = String; githubId = Integer; name = String;};
1603− koral = {email = String; github = String; githubId = Integer; name = String;};
1508+ {email = String; github = String; githubId = Number; name = String;};
1509+ koral = {email = String; github = String; githubId = Number; name = String;};
16041510 koslambrou =
1605− {email = String; github = String; githubId = Integer; name = String;};
1511+ {email = String; github = String; githubId = Number; name = String;};
16061512 kovirobi =
1607− {email = String; github = String; githubId = Integer; name = String;};
1608− kquick =
1609− {email = String; github = String; githubId = Integer; name = String;};
1610− kraem = {email = String; github = String; githubId = Integer; name = String;};
1513+ {email = String; github = String; githubId = Number; name = String;};
1514+ kquick = {email = String; github = String; githubId = Number; name = String;};
1515+ kraem = {email = String; github = String; githubId = Number; name = String;};
16111516 kragniz =
1612− {email = String; github = String; githubId = Integer; name = String;};
1613− krav = {email = String; github = String; githubId = Integer; name = String;};
1517+ {email = String; github = String; githubId = Number; name = String;};
1518+ krav = {email = String; github = String; githubId = Number; name = String;};
16141519 kristian-brucaj =
1615− {email = String; github = String; githubId = Integer; name = String;};
1520+ {email = String; github = String; githubId = Number; name = String;};
16161521 kristoff3r =
1617− {email = String; github = String; githubId = Integer; name = String;};
1618− kroell =
1619− {email = String; github = String; githubId = Integer; name = String;};
1620− ktf = {email = String; github = String; githubId = Integer; name = String;};
1522+ {email = String; github = String; githubId = Number; name = String;};
1523+ kroell = {email = String; github = String; githubId = Number; name = String;};
1524+ ktf = {email = String; github = String; githubId = Number; name = String;};
16211525 kthielen =
1622− {email = String; github = String; githubId = Integer; name = String;};
1623− ktor = {email = String; github = String; githubId = Integer; name = String;};
1526+ {email = String; github = String; githubId = Number; name = String;};
1527+ ktor = {email = String; github = String; githubId = Number; name = String;};
16241528 ktosiek =
1625− {email = String; github = String; githubId = Integer; name = String;};
1529+ {email = String; github = String; githubId = Number; name = String;};
16261530 kuznero =
1627− {email = String; github = String; githubId = Integer; name = String;};
1531+ {email = String; github = String; githubId = Number; name = String;};
16281532 kwohlfahrt =
1629− {email = String; github = String; githubId = Integer; name = String;};
1533+ {email = String; github = String; githubId = Number; name = String;};
16301534 kylesferrazza =
16311535 { email = String;
16321536 github = String;
1633− githubId = Integer;
1537+ githubId = Number;
16341538 keys = [{fingerprint = String; longkeyid = String;}];
16351539 name = String;
16361540 };
16371541 kylewlacy =
1638− {email = String; github = String; githubId = Integer; name = String;};
1639− laikq = {email = String; github = String; githubId = Integer; name = String;};
1542+ {email = String; github = String; githubId = Number; name = String;};
1543+ laikq = {email = String; github = String; githubId = Number; name = String;};
16401544 lambda-11235 =
1641− {email = String; github = String; githubId = Integer; name = String;};
1545+ {email = String; github = String; githubId = Number; name = String;};
16421546 lasandell =
1643− {email = String; github = String; githubId = Integer; name = String;};
1547+ {email = String; github = String; githubId = Number; name = String;};
16441548 lassulus =
1645− {email = String; github = String; githubId = Integer; name = String;};
1549+ {email = String; github = String; githubId = Number; name = String;};
16461550 lattfein = {email = String; name = String;};
1647− layus = {email = String; github = String; githubId = Integer; name = String;};
1648− lblasc =
1649− {email = String; github = String; githubId = Integer; name = String;};
1650− lbpdt = {email = String; github = String; githubId = Integer; name = String;};
1551+ layus = {email = String; github = String; githubId = Number; name = String;};
1552+ lblasc = {email = String; github = String; githubId = Number; name = String;};
1553+ lbpdt = {email = String; github = String; githubId = Number; name = String;};
16511554 ldelelis =
1652− {email = String; github = String; githubId = Integer; name = String;};
1555+ {email = String; github = String; githubId = Number; name = String;};
16531556 ldesgoui =
1654− {email = String; github = String; githubId = Integer; name = String;};
1655− league =
1656− {email = String; github = String; githubId = Integer; name = String;};
1557+ {email = String; github = String; githubId = Number; name = String;};
1558+ league = {email = String; github = String; githubId = Number; name = String;};
16571559 leahneukirchen =
1658− {email = String; github = String; githubId = Integer; name = String;};
1560+ {email = String; github = String; githubId = Number; name = String;};
16591561 lebastr =
1660− {email = String; github = String; githubId = Integer; name = String;};
1661− ledif = {email = String; github = String; githubId = Integer; name = String;};
1562+ {email = String; github = String; githubId = Number; name = String;};
1563+ ledif = {email = String; github = String; githubId = Number; name = String;};
16621564 leemachin =
1663− {email = String; github = String; githubId = Integer; name = String;};
1565+ {email = String; github = String; githubId = Number; name = String;};
16641566 leenaars =
1665− {email = String; github = String; githubId = Integer; name = String;};
1567+ {email = String; github = String; githubId = Number; name = String;};
16661568 lejonet =
1667− {email = String; github = String; githubId = Integer; name = String;};
1569+ {email = String; github = String; githubId = Number; name = String;};
16681570 leo60228 =
1669− {email = String; github = String; githubId = Integer; name = String;};
1571+ {email = String; github = String; githubId = Number; name = String;};
16701572 leonardoce =
1671− {email = String; github = String; githubId = Integer; name = String;};
1573+ {email = String; github = String; githubId = Number; name = String;};
16721574 leshainc =
1673− {email = String; github = String; githubId = Integer; name = String;};
1575+ {email = String; github = String; githubId = Number; name = String;};
16741576 lethalman =
1675− {email = String; github = String; githubId = Integer; name = String;};
1676− lewo = {email = String; github = String; githubId = Integer; name = String;};
1577+ {email = String; github = String; githubId = Number; name = String;};
1578+ lewo = {email = String; github = String; githubId = Number; name = String;};
16771579 lexuge =
16781580 { email = String;
16791581 github = String;
1680− githubId = Integer;
1582+ githubId = Number;
16811583 keys = [{fingerprint = String; longkeyid = String;}];
16821584 name = String;
16831585 };
1684− lf- = {email = String; github = String; githubId = Integer; name = String;};
1586+ lf- = {email = String; github = String; githubId = Number; name = String;};
16851587 lheckemann =
1686− {email = String; github = String; githubId = Integer; name = String;};
1687− lhvwb = {email = String; github = String; githubId = Integer; name = String;};
1688− liff = {email = String; github = String; githubId = Integer; name = String;};
1588+ {email = String; github = String; githubId = Number; name = String;};
1589+ lhvwb = {email = String; github = String; githubId = Number; name = String;};
1590+ liff = {email = String; github = String; githubId = Number; name = String;};
16891591 lightbulbjim =
1690− {email = String; github = String; githubId = Integer; name = String;};
1592+ {email = String; github = String; githubId = Number; name = String;};
16911593 lightdiscord =
1692− {email = String; github = String; githubId = Integer; name = String;};
1693− lihop = {email = String; github = String; githubId = Integer; name = String;};
1594+ {email = String; github = String; githubId = Number; name = String;};
1595+ lihop = {email = String; github = String; githubId = Number; name = String;};
16941596 lilyball =
1695− {email = String; github = String; githubId = Integer; name = String;};
1597+ {email = String; github = String; githubId = Number; name = String;};
16961598 limeytexan =
1697− {email = String; github = String; githubId = Integer; name = String;};
1599+ {email = String; github = String; githubId = Number; name = String;};
16981600 linarcx =
1699− {email = String; github = String; githubId = Integer; name = String;};
1601+ {email = String; github = String; githubId = Number; name = String;};
17001602 linc01n =
1701− {email = String; github = String; githubId = Integer; name = String;};
1603+ {email = String; github = String; githubId = Number; name = String;};
17021604 linquize =
1703− {email = String; github = String; githubId = Integer; name = String;};
1704− linus = {email = String; github = String; githubId = Integer; name = String;};
1605+ {email = String; github = String; githubId = Number; name = String;};
1606+ linus = {email = String; github = String; githubId = Number; name = String;};
17051607 lionello =
1706− {email = String; github = String; githubId = Integer; name = String;};
1608+ {email = String; github = String; githubId = Number; name = String;};
17071609 livnev =
17081610 { email = String;
17091611 github = String;
1710− githubId = Integer;
1612+ githubId = Number;
17111613 keys = [{fingerprint = String; longkeyid = String;}];
17121614 name = String;
17131615 };
1714− lluchs =
1715− {email = String; github = String; githubId = Integer; name = String;};
1716− lnl7 = {email = String; github = String; githubId = Integer; name = String;};
1616+ lluchs = {email = String; github = String; githubId = Number; name = String;};
1617+ lnl7 = {email = String; github = String; githubId = Number; name = String;};
17171618 lo1tuma =
1718− {email = String; github = String; githubId = Integer; name = String;};
1619+ {email = String; github = String; githubId = Number; name = String;};
17191620 loewenheim =
1720− {email = String; github = String; githubId = Integer; name = String;};
1621+ {email = String; github = String; githubId = Number; name = String;};
17211622 lopsided98 =
1722− {email = String; github = String; githubId = Integer; name = String;};
1623+ {email = String; github = String; githubId = Number; name = String;};
17231624 loskutov =
1724− {email = String; github = String; githubId = Integer; name = String;};
1625+ {email = String; github = String; githubId = Number; name = String;};
17251626 lostnet =
1726− {email = String; github = String; githubId = Integer; name = String;};
1627+ {email = String; github = String; githubId = Number; name = String;};
17271628 louisdk1 =
1728− {email = String; github = String; githubId = Integer; name = String;};
1629+ {email = String; github = String; githubId = Number; name = String;};
17291630 lourkeur =
17301631 { email = String;
17311632 github = String;
1732− githubId = Integer;
1633+ githubId = Number;
17331634 keys = [{fingerprint = String; longkeyid = String;}];
17341635 name = String;
17351636 };
17361637 lovek323 =
1737− {email = String; github = String; githubId = Integer; name = String;};
1638+ {email = String; github = String; githubId = Number; name = String;};
17381639 lovesegfault =
17391640 { email = String;
17401641 github = String;
1741− githubId = Integer;
1642+ githubId = Number;
17421643 keys = [{fingerprint = String; longkeyid = String;}];
17431644 name = String;
17441645 };
17451646 lowfatcomputing =
1746− {email = String; github = String; githubId = Integer; name = String;};
1647+ {email = String; github = String; githubId = Number; name = String;};
17471648 lschuermann =
1748− {email = String; github = String; githubId = Integer; name = String;};
1749− lsix = {email = String; github = String; githubId = Integer; name = String;};
1649+ {email = String; github = String; githubId = Number; name = String;};
1650+ lsix = {email = String; github = String; githubId = Number; name = String;};
17501651 ltavard =
1751− {email = String; github = String; githubId = Integer; name = String;};
1752− luc65r =
1753− {email = String; github = String; githubId = Integer; name = String;};
1652+ {email = String; github = String; githubId = Number; name = String;};
1653+ luc65r = {email = String; github = String; githubId = Number; name = String;};
17541654 lucperkins =
1755− {email = String; github = String; githubId = Integer; name = String;};
1655+ {email = String; github = String; githubId = Number; name = String;};
17561656 lucus16 =
1757− {email = String; github = String; githubId = Integer; name = String;};
1758− ludo = {email = String; github = String; githubId = Integer; name = String;};
1759− lufia = {email = String; github = String; githubId = Integer; name = String;};
1760− luis = {email = String; github = String; githubId = Integer; name = String;};
1657+ {email = String; github = String; githubId = Number; name = String;};
1658+ ludo = {email = String; github = String; githubId = Number; name = String;};
1659+ lufia = {email = String; github = String; githubId = Number; name = String;};
1660+ luis = {email = String; github = String; githubId = Number; name = String;};
17611661 luispedro =
1762− {email = String; github = String; githubId = Integer; name = String;};
1662+ {email = String; github = String; githubId = Number; name = String;};
17631663 lukeadams =
1764− {email = String; github = String; githubId = Integer; name = String;};
1664+ {email = String; github = String; githubId = Number; name = String;};
17651665 lukebfox =
1766− {email = String; github = String; githubId = Integer; name = String;};
1767− lukegb =
1768− {email = String; github = String; githubId = Integer; name = String;};
1769− lukego =
1770− {email = String; github = String; githubId = Integer; name = String;};
1771− lumi = {email = String; github = String; githubId = Integer; name = String;};
1666+ {email = String; github = String; githubId = Number; name = String;};
1667+ lukegb = {email = String; github = String; githubId = Number; name = String;};
1668+ lukego = {email = String; github = String; githubId = Number; name = String;};
1669+ lumi = {email = String; github = String; githubId = Number; name = String;};
17721670 lunik1 =
17731671 { email = String;
17741672 github = String;
1775− githubId = Integer;
1673+ githubId = Number;
17761674 keys = [{fingerprint = String; longkeyid = String;}];
17771675 name = String;
17781676 };
1779− luz = {email = String; github = String; githubId = Integer; name = String;};
1780− lw = {email = String; github = String; githubId = Integer; name = String;};
1781− lynty = {email = String; github = String; githubId = Integer; name = String;};
1677+ luz = {email = String; github = String; githubId = Number; name = String;};
1678+ lw = {email = String; github = String; githubId = Number; name = String;};
1679+ lynty = {email = String; github = String; githubId = Number; name = String;};
17821680 lyt = {email = String; name = String;};
17831681 m1cr0man =
1784− {email = String; github = String; githubId = Integer; name = String;};
1682+ {email = String; github = String; githubId = Number; name = String;};
17851683 m3tti = {email = String; name = String;};
1786− ma27 = {email = String; github = String; githubId = Integer; name = String;};
1787− ma9e = {email = String; github = String; githubId = Integer; name = String;};
1788− madjar =
1789− {email = String; github = String; githubId = Integer; name = String;};
1790− mafo = {email = String; github = String; githubId = Integer; name = String;};
1684+ ma27 = {email = String; github = String; githubId = Number; name = String;};
1685+ ma9e = {email = String; github = String; githubId = Number; name = String;};
1686+ madjar = {email = String; github = String; githubId = Number; name = String;};
1687+ mafo = {email = String; github = String; githubId = Number; name = String;};
17911688 magenbluten =
1792− {email = String; github = String; githubId = Integer; name = String;};
1689+ {email = String; github = String; githubId = Number; name = String;};
17931690 maggesi =
1794− {email = String; github = String; githubId = Integer; name = String;};
1691+ {email = String; github = String; githubId = Number; name = String;};
17951692 magnetophon =
1796− {email = String; github = String; githubId = Integer; name = String;};
1797− mahe = {email = String; github = String; githubId = Integer; name = String;};
1798− makefu =
1799− {email = String; github = String; githubId = Integer; name = String;};
1800− malyn = {email = String; github = String; githubId = Integer; name = String;};
1693+ {email = String; github = String; githubId = Number; name = String;};
1694+ mahe = {email = String; github = String; githubId = Number; name = String;};
1695+ makefu = {email = String; github = String; githubId = Number; name = String;};
1696+ malyn = {email = String; github = String; githubId = Number; name = String;};
18011697 manveru =
1802− {email = String; github = String; githubId = Integer; name = String;};
1698+ {email = String; github = String; githubId = Number; name = String;};
18031699 maralorn =
1804− {email = String; github = String; githubId = Integer; name = String;};
1700+ {email = String; github = String; githubId = Number; name = String;};
18051701 marcus7070 =
1806− {email = String; github = String; githubId = Integer; name = String;};
1702+ {email = String; github = String; githubId = Number; name = String;};
18071703 marcweber =
1808− {email = String; github = String; githubId = Integer; name = String;};
1809− marenz =
1810− {email = String; github = String; githubId = Integer; name = String;};
1704+ {email = String; github = String; githubId = Number; name = String;};
1705+ marenz = {email = String; github = String; githubId = Number; name = String;};
18111706 marius851000 =
1812− {email = String; github = String; githubId = Integer; name = String;};
1707+ {email = String; github = String; githubId = Number; name = String;};
18131708 markWot = {email = String; name = String;};
18141709 markus1189 =
1815− {email = String; github = String; githubId = Integer; name = String;};
1710+ {email = String; github = String; githubId = Number; name = String;};
18161711 markuskowa =
1817− {email = String; github = String; githubId = Integer; name = String;};
1818− marsam =
1819− {email = String; github = String; githubId = Integer; name = String;};
1712+ {email = String; github = String; githubId = Number; name = String;};
1713+ marsam = {email = String; github = String; githubId = Number; name = String;};
18201714 martijnvermaat =
1821− {email = String; github = String; githubId = Integer; name = String;};
1715+ {email = String; github = String; githubId = Number; name = String;};
18221716 martingms =
1823− {email = String; github = String; githubId = Integer; name = String;};
1717+ {email = String; github = String; githubId = Number; name = String;};
18241718 marzipankaiser =
18251719 { email = String;
18261720 github = String;
1827− githubId = Integer;
1721+ githubId = Number;
18281722 keys = [{fingerprint = String; longkeyid = String;}];
18291723 name = String;
18301724 };
18311725 masaeedu =
1832− {email = String; github = String; githubId = Integer; name = String;};
1833− matejc =
1834− {email = String; github = String; githubId = Integer; name = String;};
1726+ {email = String; github = String; githubId = Number; name = String;};
1727+ matejc = {email = String; github = String; githubId = Number; name = String;};
18351728 mathnerd314 =
1836− {email = String; github = String; githubId = Integer; name = String;};
1729+ {email = String; github = String; githubId = Number; name = String;};
18371730 matklad =
1838− {email = String; github = String; githubId = Integer; name = String;};
1731+ {email = String; github = String; githubId = Number; name = String;};
18391732 matt-snider =
1840− {email = String; github = String; githubId = Integer; name = String;};
1733+ {email = String; github = String; githubId = Number; name = String;};
18411734 matthewbauer =
1842− {email = String; github = String; githubId = Integer; name = String;};
1735+ {email = String; github = String; githubId = Number; name = String;};
18431736 matthiasbeyer =
1844− {email = String; github = String; githubId = Integer; name = String;};
1737+ {email = String; github = String; githubId = Number; name = String;};
18451738 matthuszagh =
1846− {email = String; github = String; githubId = Integer; name = String;};
1739+ {email = String; github = String; githubId = Number; name = String;};
18471740 matti-kariluoma =
1848− {email = String; github = String; githubId = Integer; name = String;};
1849− maurer =
1850− {email = String; github = String; githubId = Integer; name = String;};
1741+ {email = String; github = String; githubId = Number; name = String;};
1742+ maurer = {email = String; github = String; githubId = Number; name = String;};
18511743 maxdamantus =
1852− {email = String; github = String; githubId = Integer; name = String;};
1744+ {email = String; github = String; githubId = Number; name = String;};
18531745 maxeaubrey =
1854− {email = String; github = String; githubId = Integer; name = String;};
1855− maxxk = {email = String; github = String; githubId = Integer; name = String;};
1746+ {email = String; github = String; githubId = Number; name = String;};
1747+ maxxk = {email = String; github = String; githubId = Number; name = String;};
18561748 mbaillie =
1857− {email = String; github = String; githubId = Integer; name = String;};
1858− mbakke =
1859− {email = String; github = String; githubId = Integer; name = String;};
1749+ {email = String; github = String; githubId = Number; name = String;};
1750+ mbakke = {email = String; github = String; githubId = Number; name = String;};
18601751 mbbx6spp =
1861− {email = String; github = String; githubId = Integer; name = String;};
1862− mbe = {email = String; github = String; githubId = Integer; name = String;};
1863− mbode = {email = String; github = String; githubId = Integer; name = String;};
1864− mboes = {email = String; github = String; githubId = Integer; name = String;};
1865− mbrgm = {email = String; github = String; githubId = Integer; name = String;};
1866− mcbeth =
1867− {email = String; github = String; githubId = Integer; name = String;};
1752+ {email = String; github = String; githubId = Number; name = String;};
1753+ mbe = {email = String; github = String; githubId = Number; name = String;};
1754+ mbode = {email = String; github = String; githubId = Number; name = String;};
1755+ mboes = {email = String; github = String; githubId = Number; name = String;};
1756+ mbrgm = {email = String; github = String; githubId = Number; name = String;};
1757+ mcbeth = {email = String; github = String; githubId = Number; name = String;};
18681758 mcmtroffaes =
1869− {email = String; github = String; githubId = Integer; name = String;};
1870− mcwitt =
1871− {email = String; github = String; githubId = Integer; name = String;};
1759+ {email = String; github = String; githubId = Number; name = String;};
1760+ mcwitt = {email = String; github = String; githubId = Number; name = String;};
18721761 mdaiter =
1873− {email = String; github = String; githubId = Integer; name = String;};
1762+ {email = String; github = String; githubId = Number; name = String;};
18741763 mdevlamynck =
1875− {email = String; github = String; githubId = Integer; name = String;};
1764+ {email = String; github = String; githubId = Number; name = String;};
18761765 mdlayher =
18771766 { email = String;
18781767 github = String;
1879− githubId = Integer;
1768+ githubId = Number;
18801769 keys = [{fingerprint = String; longkeyid = String;}];
18811770 name = String;
18821771 };
18831772 meditans =
1884− {email = String; github = String; githubId = Integer; name = String;};
1773+ {email = String; github = String; githubId = Number; name = String;};
18851774 megheaiulian =
1886− {email = String; github = String; githubId = Integer; name = String;};
1775+ {email = String; github = String; githubId = Number; name = String;};
18871776 mehandes =
1888− {email = String; github = String; githubId = Integer; name = String;};
1777+ {email = String; github = String; githubId = Number; name = String;};
18891778 meisternu =
1890− {email = String; github = String; githubId = Integer; name = String;};
1779+ {email = String; github = String; githubId = Number; name = String;};
18911780 melchips =
1892− {email = String; github = String; githubId = Integer; name = String;};
1781+ {email = String; github = String; githubId = Number; name = String;};
18931782 melkor333 =
1894− {email = String; github = String; githubId = Integer; name = String;};
1783+ {email = String; github = String; githubId = Number; name = String;};
18951784 melling =
1896− {email = String; github = String; githubId = Integer; name = String;};
1785+ {email = String; github = String; githubId = Number; name = String;};
18971786 melsigl =
1898− {email = String; github = String; githubId = Integer; name = String;};
1787+ {email = String; github = String; githubId = Number; name = String;};
18991788 metabar = {email = String; name = String;};
19001789 metadark =
1901− {email = String; github = String; githubId = Integer; name = String;};
1790+ {email = String; github = String; githubId = Number; name = String;};
19021791 meutraa =
1903− {email = String; github = String; githubId = Integer; name = String;};
1792+ {email = String; github = String; githubId = Number; name = String;};
19041793 mfossen =
1905− {email = String; github = String; githubId = Integer; name = String;};
1794+ {email = String; github = String; githubId = Number; name = String;};
19061795 mgdelacroix =
1907− {email = String; github = String; githubId = Integer; name = String;};
1908− mgdm = {email = String; github = String; githubId = Integer; name = String;};
1796+ {email = String; github = String; githubId = Number; name = String;};
1797+ mgdm = {email = String; github = String; githubId = Number; name = String;};
19091798 mgregoire =
1910− {email = String; github = String; githubId = Integer; name = String;};
1799+ {email = String; github = String; githubId = Number; name = String;};
19111800 mgttlinger =
1912− {email = String; github = String; githubId = Integer; name = String;};
1801+ {email = String; github = String; githubId = Number; name = String;};
19131802 mguentner =
1914− {email = String; github = String; githubId = Integer; name = String;};
1803+ {email = String; github = String; githubId = Number; name = String;};
19151804 mhaselsteiner =
1916− {email = String; github = String; githubId = Integer; name = String;};
1805+ {email = String; github = String; githubId = Number; name = String;};
19171806 mic92 =
19181807 { email = String;
19191808 github = String;
1920− githubId = Integer;
1809+ githubId = Number;
19211810 keys = [{fingerprint = String; longkeyid = String;}];
19221811 name = String;
19231812 };
19241813 michaelpj =
1925− {email = String; github = String; githubId = Integer; name = String;};
1814+ {email = String; github = String; githubId = Number; name = String;};
19261815 michalrus =
1927− {email = String; github = String; githubId = Integer; name = String;};
1816+ {email = String; github = String; githubId = Number; name = String;};
19281817 michelk =
1929− {email = String; github = String; githubId = Integer; name = String;};
1818+ {email = String; github = String; githubId = Number; name = String;};
19301819 michojel =
1931− {email = String; github = String; githubId = Integer; name = String;};
1820+ {email = String; github = String; githubId = Number; name = String;};
19321821 mickours =
1933− {email = String; github = String; githubId = Integer; name = String;};
1822+ {email = String; github = String; githubId = Number; name = String;};
19341823 midchildan =
1935− {email = String; github = String; githubId = Integer; name = String;};
1824+ {email = String; github = String; githubId = Number; name = String;};
19361825 mikefaille =
1937− {email = String; github = String; githubId = Integer; name = String;};
1826+ {email = String; github = String; githubId = Number; name = String;};
19381827 mikesperber =
1939− {email = String; github = String; githubId = Integer; name = String;};
1940− mikoim =
1941− {email = String; github = String; githubId = Integer; name = String;};
1828+ {email = String; github = String; githubId = Number; name = String;};
1829+ mikoim = {email = String; github = String; githubId = Number; name = String;};
19421830 mildlyincompetent =
1943− {email = String; github = String; githubId = Integer; name = String;};
1831+ {email = String; github = String; githubId = Number; name = String;};
19441832 millerjason =
1945− {email = String; github = String; githubId = Integer; name = String;};
1833+ {email = String; github = String; githubId = Number; name = String;};
19461834 miltador = {email = String; name = String;};
1947− mimame =
1948− {email = String; github = String; githubId = Integer; name = String;};
1835+ mimame = {email = String; github = String; githubId = Number; name = String;};
19491836 mindavi =
1950− {email = String; github = String; githubId = Integer; name = String;};
1837+ {email = String; github = String; githubId = Number; name = String;};
19511838 minijackson =
19521839 { email = String;
19531840 github = String;
1954− githubId = Integer;
1841+ githubId = Number;
19551842 keys = [{fingerprint = String; longkeyid = String;}];
19561843 name = String;
19571844 };
1958− mir06 = {email = String; github = String; githubId = Integer; name = String;};
1845+ mir06 = {email = String; github = String; githubId = Number; name = String;};
19591846 mirdhyn =
1960− {email = String; github = String; githubId = Integer; name = String;};
1847+ {email = String; github = String; githubId = Number; name = String;};
19611848 mirrexagon =
1962− {email = String; github = String; githubId = Integer; name = String;};
1963− misuzu =
1964− {email = String; github = String; githubId = Integer; name = String;};
1849+ {email = String; github = String; githubId = Number; name = String;};
1850+ misuzu = {email = String; github = String; githubId = Number; name = String;};
19651851 mjanczyk =
1966− {email = String; github = String; githubId = Integer; name = String;};
1967− mjp = {email = String; github = String; githubId = Integer; name = String;};
1968− mkaito =
1969− {email = String; github = String; githubId = Integer; name = String;};
1852+ {email = String; github = String; githubId = Number; name = String;};
1853+ mjp = {email = String; github = String; githubId = Number; name = String;};
1854+ mkaito = {email = String; github = String; githubId = Number; name = String;};
19701855 mkazulak =
1971− {email = String; github = String; githubId = Integer; name = String;};
1856+ {email = String; github = String; githubId = Number; name = String;};
19721857 mkf =
19731858 { email = String;
19741859 github = String;
1975− githubId = Integer;
1860+ githubId = Number;
19761861 keys = [{fingerprint = String; longkeyid = String;}];
19771862 name = String;
19781863 };
1979− mkg = {email = String; github = String; githubId = Integer; name = String;};
1864+ mkg = {email = String; github = String; githubId = Number; name = String;};
19801865 mkg20001 =
19811866 { email = String;
19821867 github = String;
1983− githubId = Integer;
1868+ githubId = Number;
19841869 keys = [{fingerprint = String; longkeyid = String;}];
19851870 name = String;
19861871 };
1987− mlatus =
1988− {email = String; github = String; githubId = Integer; name = String;};
1872+ mlatus = {email = String; github = String; githubId = Number; name = String;};
19891873 mlieberman85 =
1990− {email = String; github = String; githubId = Integer; name = String;};
1991− mmahut =
1992− {email = String; github = String; githubId = Integer; name = String;};
1993− mmai = {email = String; github = String; githubId = Integer; name = String;};
1874+ {email = String; github = String; githubId = Number; name = String;};
1875+ mmahut = {email = String; github = String; githubId = Number; name = String;};
1876+ mmai = {email = String; github = String; githubId = Number; name = String;};
19941877 mmilata =
1995− {email = String; github = String; githubId = Integer; name = String;};
1996− mmlb = {email = String; github = String; githubId = Integer; name = String;};
1878+ {email = String; github = String; githubId = Number; name = String;};
1879+ mmlb = {email = String; github = String; githubId = Number; name = String;};
19971880 mnacamura =
1998− {email = String; github = String; githubId = Integer; name = String;};
1999− moaxcp =
2000− {email = String; github = String; githubId = Integer; name = String;};
1881+ {email = String; github = String; githubId = Number; name = String;};
1882+ moaxcp = {email = String; github = String; githubId = Number; name = String;};
20011883 modulistic =
2002− {email = String; github = String; githubId = Integer; name = String;};
2003− mog = {email = String; github = String; githubId = Integer; name = String;};
1884+ {email = String; github = String; githubId = Number; name = String;};
1885+ mog = {email = String; github = String; githubId = Number; name = String;};
20041886 monsieurp =
2005− {email = String; github = String; githubId = Integer; name = String;};
1887+ {email = String; github = String; githubId = Number; name = String;};
20061888 montag451 =
2007− {email = String; github = String; githubId = Integer; name = String;};
1889+ {email = String; github = String; githubId = Number; name = String;};
20081890 moosingin3space =
2009− {email = String; github = String; githubId = Integer; name = String;};
1891+ {email = String; github = String; githubId = Number; name = String;};
20101892 moredread =
20111893 { email = String;
20121894 github = String;
2013− githubId = Integer;
1895+ githubId = Number;
20141896 keys = [{fingerprint = String; longkeyid = String;}];
20151897 name = String;
20161898 };
20171899 moretea =
2018− {email = String; github = String; githubId = Integer; name = String;};
1900+ {email = String; github = String; githubId = Number; name = String;};
20191901 mothsart =
2020− {email = String; github = String; githubId = Integer; name = String;};
1902+ {email = String; github = String; githubId = Number; name = String;};
20211903 mounium =
2022− {email = String; github = String; githubId = Integer; name = String;};
2023− mpcsh = {email = String; github = String; githubId = Integer; name = String;};
1904+ {email = String; github = String; githubId = Number; name = String;};
1905+ mpcsh = {email = String; github = String; githubId = Number; name = String;};
20241906 mpickering =
2025− {email = String; github = String; githubId = Integer; name = String;};
1907+ {email = String; github = String; githubId = Number; name = String;};
20261908 mpoquet =
2027− {email = String; github = String; githubId = Integer; name = String;};
1909+ {email = String; github = String; githubId = Number; name = String;};
20281910 mpscholten =
2029− {email = String; github = String; githubId = Integer; name = String;};
2030− mpsyco =
2031− {email = String; github = String; githubId = Integer; name = String;};
1911+ {email = String; github = String; githubId = Number; name = String;};
1912+ mpsyco = {email = String; github = String; githubId = Number; name = String;};
20321913 mrVanDalo =
2033− {email = String; github = String; githubId = Integer; name = String;};
1914+ {email = String; github = String; githubId = Number; name = String;};
20341915 mredaelli =
2035− {email = String; github = String; githubId = Integer; name = String;};
2036− mrkkrp =
2037− {email = String; github = String; githubId = Integer; name = String;};
1916+ {email = String; github = String; githubId = Number; name = String;};
1917+ mrkkrp = {email = String; github = String; githubId = Number; name = String;};
20381918 mrmebelman =
2039− {email = String; github = String; githubId = Integer; name = String;};
1919+ {email = String; github = String; githubId = Number; name = String;};
20401920 msackman = {email = String; name = String;};
20411921 mschneider = {email = String; name = String;};
20421922 mschristiansen =
2043− {email = String; github = String; githubId = Integer; name = String;};
1923+ {email = String; github = String; githubId = Number; name = String;};
20441924 mschuwalow =
2045− {email = String; github = String; githubId = Integer; name = String;};
1925+ {email = String; github = String; githubId = Number; name = String;};
20461926 msiedlarek =
2047− {email = String; github = String; githubId = Integer; name = String;};
2048− msm = {email = String; github = String; githubId = Integer; name = String;};
1927+ {email = String; github = String; githubId = Number; name = String;};
1928+ msm = {email = String; github = String; githubId = Number; name = String;};
20491929 mstarzyk =
2050− {email = String; github = String; githubId = Integer; name = String;};
2051− msteen =
2052− {email = String; github = String; githubId = Integer; name = String;};
1930+ {email = String; github = String; githubId = Number; name = String;};
1931+ msteen = {email = String; github = String; githubId = Number; name = String;};
20531932 mt-caret =
2054− {email = String; github = String; githubId = Integer; name = String;};
1933+ {email = String; github = String; githubId = Number; name = String;};
20551934 mtreskin =
2056− {email = String; github = String; githubId = Integer; name = String;};
2057− mtrsk = {email = String; github = String; githubId = Integer; name = String;};
2058− mudri = {email = String; github = String; githubId = Integer; name = String;};
2059− muflax =
2060− {email = String; github = String; githubId = Integer; name = String;};
2061− multun =
2062− {email = String; github = String; githubId = Integer; name = String;};
2063− mupdt = {email = String; github = String; githubId = Integer; name = String;};
1935+ {email = String; github = String; githubId = Number; name = String;};
1936+ mtrsk = {email = String; github = String; githubId = Number; name = String;};
1937+ mudri = {email = String; github = String; githubId = Number; name = String;};
1938+ muflax = {email = String; github = String; githubId = Number; name = String;};
1939+ multun = {email = String; github = String; githubId = Number; name = String;};
1940+ mupdt = {email = String; github = String; githubId = Number; name = String;};
20641941 mvnetbiz =
2065− {email = String; github = String; githubId = Integer; name = String;};
1942+ {email = String; github = String; githubId = Number; name = String;};
20661943 mwilsoninsight =
2067− {email = String; github = String; githubId = Integer; name = String;};
2068− myrl = {email = String; github = String; githubId = Integer; name = String;};
1944+ {email = String; github = String; githubId = Number; name = String;};
1945+ myrl = {email = String; github = String; githubId = Number; name = String;};
20691946 nadrieril =
2070− {email = String; github = String; githubId = Integer; name = String;};
2071− nagisa =
2072− {email = String; github = String; githubId = Integer; name = String;};
1947+ {email = String; github = String; githubId = Number; name = String;};
1948+ nagisa = {email = String; github = String; githubId = Number; name = String;};
20731949 nalbyuites =
2074− {email = String; github = String; githubId = Integer; name = String;};
2075− namore =
2076− {email = String; github = String; githubId = Integer; name = String;};
2077− nand0p =
2078− {email = String; github = String; githubId = Integer; name = String;};
1950+ {email = String; github = String; githubId = Number; name = String;};
1951+ namore = {email = String; github = String; githubId = Number; name = String;};
1952+ nand0p = {email = String; github = String; githubId = Number; name = String;};
20791953 nathan-gs =
2080− {email = String; github = String; githubId = Integer; name = String;};
1954+ {email = String; github = String; githubId = Number; name = String;};
20811955 nathyong =
2082− {email = String; github = String; githubId = Integer; name = String;};
2083− nckx = {email = String; github = String; githubId = Integer; name = String;};
1956+ {email = String; github = String; githubId = Number; name = String;};
1957+ nckx = {email = String; github = String; githubId = Number; name = String;};
20841958 neeasade =
2085− {email = String; github = String; githubId = Integer; name = String;};
1959+ {email = String; github = String; githubId = Number; name = String;};
20861960 neonfuz =
2087− {email = String; github = String; githubId = Integer; name = String;};
1961+ {email = String; github = String; githubId = Number; name = String;};
20881962 nequissimus =
2089− {email = String; github = String; githubId = Integer; name = String;};
2090− netixx =
2091− {email = String; github = String; githubId = Integer; name = String;};
1963+ {email = String; github = String; githubId = Number; name = String;};
1964+ netixx = {email = String; github = String; githubId = Number; name = String;};
20921965 nfjinjing = {email = String; name = String;};
20931966 ngerstle =
2094− {email = String; github = String; githubId = Integer; name = String;};
2095− nh2 = {email = String; github = String; githubId = Integer; name = String;};
2096− nhooyr =
2097− {email = String; github = String; githubId = Integer; name = String;};
2098− nickhu =
2099− {email = String; github = String; githubId = Integer; name = String;};
1967+ {email = String; github = String; githubId = Number; name = String;};
1968+ nh2 = {email = String; github = String; githubId = Number; name = String;};
1969+ nhooyr = {email = String; github = String; githubId = Number; name = String;};
1970+ nickhu = {email = String; github = String; githubId = Number; name = String;};
21001971 nicknovitski =
2101− {email = String; github = String; githubId = Integer; name = String;};
1972+ {email = String; github = String; githubId = Number; name = String;};
21021973 nico202 =
2103− {email = String; github = String; githubId = Integer; name = String;};
1974+ {email = String; github = String; githubId = Number; name = String;};
21041975 nikitavoloboev =
2105− {email = String; github = String; githubId = Integer; name = String;};
1976+ {email = String; github = String; githubId = Number; name = String;};
21061977 nilp0inter =
2107− {email = String; github = String; githubId = Integer; name = String;};
1978+ {email = String; github = String; githubId = Number; name = String;};
21081979 nilsirl =
2109− {email = String; github = String; githubId = Integer; name = String;};
1980+ {email = String; github = String; githubId = Number; name = String;};
21101981 ninjatrappeur =
2111− {email = String; github = String; githubId = Integer; name = String;};
1982+ {email = String; github = String; githubId = Number; name = String;};
21121983 nioncode =
2113− {email = String; github = String; githubId = Integer; name = String;};
2114− nipav = {email = String; github = String; githubId = Integer; name = String;};
2115− nixy = {email = String; github = String; githubId = Integer; name = String;};
1984+ {email = String; github = String; githubId = Number; name = String;};
1985+ nipav = {email = String; github = String; githubId = Number; name = String;};
1986+ nixy = {email = String; github = String; githubId = Number; name = String;};
21161987 nloomans =
2117− {email = String; github = String; githubId = Integer; name = String;};
1988+ {email = String; github = String; githubId = Number; name = String;};
21181989 nmattia =
2119− {email = String; github = String; githubId = Integer; name = String;};
2120− nocent =
2121− {email = String; github = String; githubId = Integer; name = String;};
1990+ {email = String; github = String; githubId = Number; name = String;};
1991+ nocent = {email = String; github = String; githubId = Number; name = String;};
21221992 nocoolnametom =
2123− {email = String; github = String; githubId = Integer; name = String;};
1993+ {email = String; github = String; githubId = Number; name = String;};
21241994 nomeata =
2125− {email = String; github = String; githubId = Integer; name = String;};
1995+ {email = String; github = String; githubId = Number; name = String;};
21261996 noneucat =
2127− {email = String; github = String; githubId = Integer; name = String;};
1997+ {email = String; github = String; githubId = Number; name = String;};
21281998 notbandali =
21291999 { email = String;
21302000 github = String;
2131− githubId = Integer;
2001+ githubId = Number;
21322002 keys = [{fingerprint = String; longkeyid = String;}];
21332003 name = String;
21342004 };
21352005 notthemessiah =
2136− {email = String; github = String; githubId = Integer; name = String;};
2006+ {email = String; github = String; githubId = Number; name = String;};
21372007 novoxudonoser =
2138− {email = String; github = String; githubId = Integer; name = String;};
2139− np = {email = String; github = String; githubId = Integer; name = String;};
2008+ {email = String; github = String; githubId = Number; name = String;};
2009+ np = {email = String; github = String; githubId = Number; name = String;};
21402010 nphilou =
2141− {email = String; github = String; githubId = Integer; name = String;};
2142− nrdxp = {email = String; github = String; githubId = Integer; name = String;};
2011+ {email = String; github = String; githubId = Number; name = String;};
2012+ nrdxp = {email = String; github = String; githubId = Number; name = String;};
21432013 nshalman =
2144− {email = String; github = String; githubId = Integer; name = String;};
2014+ {email = String; github = String; githubId = Number; name = String;};
21452015 nslqqq = {email = String; name = String;};
21462016 nthorne =
2147− {email = String; github = String; githubId = Integer; name = String;};
2017+ {email = String; github = String; githubId = Number; name = String;};
21482018 numinit =
2149− {email = String; github = String; githubId = Integer; name = String;};
2150− numkem =
2151− {email = String; github = String; githubId = Integer; name = String;};
2019+ {email = String; github = String; githubId = Number; name = String;};
2020+ numkem = {email = String; github = String; githubId = Number; name = String;};
21522021 nyanloutre =
2153− {email = String; github = String; githubId = Integer; name = String;};
2154− nyarly =
2155− {email = String; github = String; githubId = Integer; name = String;};
2022+ {email = String; github = String; githubId = Number; name = String;};
2023+ nyarly = {email = String; github = String; githubId = Number; name = String;};
21562024 nzhang-zh =
2157− {email = String; github = String; githubId = Integer; name = String;};
2158− obadz = {email = String; github = String; githubId = Integer; name = String;};
2025+ {email = String; github = String; githubId = Number; name = String;};
2026+ obadz = {email = String; github = String; githubId = Number; name = String;};
21592027 ocharles =
2160− {email = String; github = String; githubId = Integer; name = String;};
2161− odi = {email = String; github = String; githubId = Integer; name = String;};
2028+ {email = String; github = String; githubId = Number; name = String;};
2029+ odi = {email = String; github = String; githubId = Number; name = String;};
21622030 offline =
2163− {email = String; github = String; githubId = Integer; name = String;};
2164− oida = {email = String; github = String; githubId = Integer; name = String;};
2031+ {email = String; github = String; githubId = Number; name = String;};
2032+ oida = {email = String; github = String; githubId = Number; name = String;};
21652033 okasu = {email = String; name = String;};
2166− olcai = {email = String; github = String; githubId = Integer; name = String;};
2034+ olcai = {email = String; github = String; githubId = Number; name = String;};
21672035 olejorgenb =
2168− {email = String; github = String; githubId = Integer; name = String;};
2169− olynch =
2170− {email = String; github = String; githubId = Integer; name = String;};
2036+ {email = String; github = String; githubId = Number; name = String;};
2037+ olynch = {email = String; github = String; githubId = Number; name = String;};
21712038 omnipotententity =
2172− {email = String; github = String; githubId = Integer; name = String;};
2173− orbekk =
2174− {email = String; github = String; githubId = Integer; name = String;};
2175− orbitz =
2176− {email = String; github = String; githubId = Integer; name = String;};
2177− orivej =
2178− {email = String; github = String; githubId = Integer; name = String;};
2179− oro = {email = String; github = String; githubId = Integer; name = String;};
2180− osener =
2181− {email = String; github = String; githubId = Integer; name = String;};
2039+ {email = String; github = String; githubId = Number; name = String;};
2040+ orbekk = {email = String; github = String; githubId = Number; name = String;};
2041+ orbitz = {email = String; github = String; githubId = Number; name = String;};
2042+ orivej = {email = String; github = String; githubId = Number; name = String;};
2043+ oro = {email = String; github = String; githubId = Number; name = String;};
2044+ osener = {email = String; github = String; githubId = Number; name = String;};
21822045 otwieracz =
2183− {email = String; github = String; githubId = Integer; name = String;};
2046+ {email = String; github = String; githubId = Number; name = String;};
21842047 oxalica =
21852048 { email = String;
21862049 github = String;
2187− githubId = Integer;
2050+ githubId = Number;
21882051 keys = [{fingerprint = String; longkeyid = String;}];
21892052 name = String;
21902053 };
21912054 oxij =
21922055 { email = String;
21932056 github = String;
2194− githubId = Integer;
2057+ githubId = Number;
21952058 keys = [{fingerprint = String; longkeyid = String;}];
21962059 name = String;
21972060 };
21982061 oxzi =
21992062 { email = String;
22002063 github = String;
2201− githubId = Integer;
2064+ githubId = Number;
22022065 keys = [{fingerprint = String; longkeyid = String;}];
22032066 name = String;
22042067 };
2205− oyren = {email = String; github = String; githubId = Integer; name = String;};
2206− pSub = {email = String; github = String; githubId = Integer; name = String;};
2068+ oyren = {email = String; github = String; githubId = Number; name = String;};
2069+ pSub = {email = String; github = String; githubId = Number; name = String;};
22072070 pablovsky =
2208− {email = String; github = String; githubId = Integer; name = String;};
2209− pacien =
2210− {email = String; github = String; githubId = Integer; name = String;};
2071+ {email = String; github = String; githubId = Number; name = String;};
2072+ pacien = {email = String; github = String; githubId = Number; name = String;};
22112073 paddygord =
2212− {email = String; github = String; githubId = Integer; name = String;};
2213− paholg =
2214− {email = String; github = String; githubId = Integer; name = String;};
2215− pakhfn =
2216− {email = String; github = String; githubId = Integer; name = String;};
2217− paluh = {email = String; github = String; githubId = Integer; name = String;};
2074+ {email = String; github = String; githubId = Number; name = String;};
2075+ paholg = {email = String; github = String; githubId = Number; name = String;};
2076+ pakhfn = {email = String; github = String; githubId = Number; name = String;};
2077+ paluh = {email = String; github = String; githubId = Number; name = String;};
22182078 pamplemousse =
2219− {email = String; github = String; githubId = Integer; name = String;};
2079+ {email = String; github = String; githubId = Number; name = String;};
22202080 panaeon =
2221− {email = String; github = String; githubId = Integer; name = String;};
2081+ {email = String; github = String; githubId = Number; name = String;};
22222082 pandaman =
2223− {email = String; github = String; githubId = Integer; name = String;};
2083+ {email = String; github = String; githubId = Number; name = String;};
22242084 paperdigits =
2225− {email = String; github = String; githubId = Integer; name = String;};
2085+ {email = String; github = String; githubId = Number; name = String;};
22262086 paraseba =
2227− {email = String; github = String; githubId = Integer; name = String;};
2087+ {email = String; github = String; githubId = Number; name = String;};
22282088 parasrah =
2229− {email = String; github = String; githubId = Integer; name = String;};
2089+ {email = String; github = String; githubId = Number; name = String;};
22302090 pashashocky =
2231− {email = String; github = String; githubId = Integer; name = String;};
2232− pashev =
2233− {email = String; github = String; githubId = Integer; name = String;};
2091+ {email = String; github = String; githubId = Number; name = String;};
2092+ pashev = {email = String; github = String; githubId = Number; name = String;};
22342093 patryk27 =
22352094 { email = String;
22362095 github = String;
2237− githubId = Integer;
2096+ githubId = Number;
22382097 keys = [{fingerprint = String; longkeyid = String;}];
22392098 name = String;
22402099 };
22412100 patternspandemic =
2242− {email = String; github = String; githubId = Integer; name = String;};
2101+ {email = String; github = String; githubId = Number; name = String;};
22432102 pawelpacana =
2244− {email = String; github = String; githubId = Integer; name = String;};
2245− pblkt = {email = String; github = String; githubId = Integer; name = String;};
2103+ {email = String; github = String; githubId = Number; name = String;};
2104+ pblkt = {email = String; github = String; githubId = Number; name = String;};
22462105 pbogdan =
2247− {email = String; github = String; githubId = Integer; name = String;};
2106+ {email = String; github = String; githubId = Number; name = String;};
22482107 pcarrier =
2249− {email = String; github = String; githubId = Integer; name = String;};
2250− peelz = {email = String; github = String; githubId = Integer; name = String;};
2108+ {email = String; github = String; githubId = Number; name = String;};
2109+ peelz = {email = String; github = String; githubId = Number; name = String;};
22512110 periklis =
2252− {email = String; github = String; githubId = Integer; name = String;};
2111+ {email = String; github = String; githubId = Number; name = String;};
22532112 pesterhazy =
2254− {email = String; github = String; githubId = Integer; name = String;};
2113+ {email = String; github = String; githubId = Number; name = String;};
22552114 petabyteboy =
2256− {email = String; github = String; githubId = Integer; name = String;};
2115+ {email = String; github = String; githubId = Number; name = String;};
22572116 petercommand =
2258− {email = String; github = String; githubId = Integer; name = String;};
2117+ {email = String; github = String; githubId = Number; name = String;};
22592118 peterhoeg =
2260− {email = String; github = String; githubId = Integer; name = String;};
2119+ {email = String; github = String; githubId = Number; name = String;};
22612120 peterromfeldhk =
2262− {email = String; github = String; githubId = Integer; name = String;};
2121+ {email = String; github = String; githubId = Number; name = String;};
22632122 petersjt014 =
2264− {email = String; github = String; githubId = Integer; name = String;};
2265− peti = {email = String; github = String; githubId = Integer; name = String;};
2123+ {email = String; github = String; githubId = Number; name = String;};
2124+ peti = {email = String; github = String; githubId = Number; name = String;};
22662125 philandstuff =
2267− {email = String; github = String; githubId = Integer; name = String;};
2126+ {email = String; github = String; githubId = Number; name = String;};
22682127 phile314 =
2269− {email = String; github = String; githubId = Integer; name = String;};
2128+ {email = String; github = String; githubId = Number; name = String;};
22702129 phreedom =
2271− {email = String; github = String; githubId = Integer; name = String;};
2130+ {email = String; github = String; githubId = Number; name = String;};
22722131 phryneas =
2273− {email = String; github = String; githubId = Integer; name = String;};
2132+ {email = String; github = String; githubId = Number; name = String;};
22742133 phunehehe =
2275− {email = String; github = String; githubId = Integer; name = String;};
2134+ {email = String; github = String; githubId = Number; name = String;};
22762135 pierrechevalier83 =
2277− {email = String; github = String; githubId = Integer; name = String;};
2136+ {email = String; github = String; githubId = Number; name = String;};
22782137 pierreis =
2279− {email = String; github = String; githubId = Integer; name = String;};
2138+ {email = String; github = String; githubId = Number; name = String;};
22802139 pierrer =
2281− {email = String; github = String; githubId = Integer; name = String;};
2140+ {email = String; github = String; githubId = Number; name = String;};
22822141 pierron =
2283− {email = String; github = String; githubId = Integer; name = String;};
2142+ {email = String; github = String; githubId = Number; name = String;};
22842143 pingiun =
22852144 { email = String;
22862145 github = String;
2287− githubId = Integer;
2146+ githubId = Number;
22882147 keys = [{fingerprint = String; longkeyid = String;}];
22892148 name = String;
22902149 };
22912150 piotr = {email = String; name = String;};
22922151 pjbarnoy =
2293− {email = String; github = String; githubId = Integer; name = String;};
2294− pjjw = {email = String; github = String; githubId = Integer; name = String;};
2295− pjones =
2296− {email = String; github = String; githubId = Integer; name = String;};
2297− pkmx = {email = String; github = String; githubId = Integer; name = String;};
2152+ {email = String; github = String; githubId = Number; name = String;};
2153+ pjjw = {email = String; github = String; githubId = Number; name = String;};
2154+ pjones = {email = String; github = String; githubId = Number; name = String;};
2155+ pkmx = {email = String; github = String; githubId = Number; name = String;};
22982156 plchldr =
2299− {email = String; github = String; githubId = Integer; name = String;};
2300− plcplc =
2301− {email = String; github = String; githubId = Integer; name = String;};
2302− plumps =
2303− {email = String; github = String; githubId = Integer; name = String;};
2157+ {email = String; github = String; githubId = Number; name = String;};
2158+ plcplc = {email = String; github = String; githubId = Number; name = String;};
2159+ plumps = {email = String; github = String; githubId = Number; name = String;};
23042160 pmahoney =
2305− {email = String; github = String; githubId = Integer; name = String;};
2161+ {email = String; github = String; githubId = Number; name = String;};
23062162 pmeunier =
2307− {email = String; github = String; githubId = Integer; name = String;};
2163+ {email = String; github = String; githubId = Number; name = String;};
23082164 pmiddend =
2309− {email = String; github = String; githubId = Integer; name = String;};
2165+ {email = String; github = String; githubId = Number; name = String;};
23102166 pmyjavec =
2311− {email = String; github = String; githubId = Integer; name = String;};
2167+ {email = String; github = String; githubId = Number; name = String;};
23122168 pnelson =
2313− {email = String; github = String; githubId = Integer; name = String;};
2169+ {email = String; github = String; githubId = Number; name = String;};
23142170 pneumaticat =
2315− {email = String; github = String; githubId = Integer; name = String;};
2171+ {email = String; github = String; githubId = Number; name = String;};
23162172 polyrod =
2317− {email = String; github = String; githubId = Integer; name = String;};
2173+ {email = String; github = String; githubId = Number; name = String;};
23182174 pombeirp =
2319− {email = String; github = String; githubId = Integer; name = String;};
2175+ {email = String; github = String; githubId = Number; name = String;};
23202176 pradeepchhetri =
2321− {email = String; github = String; githubId = Integer; name = String;};
2177+ {email = String; github = String; githubId = Number; name = String;};
23222178 pradyuman =
23232179 { email = String;
23242180 github = String;
2325− githubId = Integer;
2181+ githubId = Number;
23262182 keys = [{fingerprint = String; longkeyid = String;}];
23272183 name = String;
23282184 };
23292185 priegger =
2330− {email = String; github = String; githubId = Integer; name = String;};
2331− prikhi =
2332− {email = String; github = String; githubId = Integer; name = String;};
2186+ {email = String; github = String; githubId = Number; name = String;};
2187+ prikhi = {email = String; github = String; githubId = Number; name = String;};
23332188 primeos =
23342189 { email = String;
23352190 github = String;
2336− githubId = Integer;
2191+ githubId = Number;
23372192 keys = [{fingerprint = String; longkeyid = String;}];
23382193 name = String;
23392194 };
23402195 proglodyte =
2341− {email = String; github = String; githubId = Integer; name = String;};
2196+ {email = String; github = String; githubId = Number; name = String;};
23422197 protoben =
2343− {email = String; github = String; githubId = Integer; name = String;};
2198+ {email = String; github = String; githubId = Number; name = String;};
23442199 prusnak =
23452200 { email = String;
23462201 github = String;
2347− githubId = Integer;
2202+ githubId = Number;
23482203 keys = [{fingerprint = String; longkeyid = String;}];
23492204 name = String;
23502205 };
23512206 psanford =
2352− {email = String; github = String; githubId = Integer; name = String;};
2207+ {email = String; github = String; githubId = Number; name = String;};
23532208 pshendry =
2354− {email = String; github = String; githubId = Integer; name = String;};
2355− psibi = {email = String; github = String; githubId = Integer; name = String;};
2209+ {email = String; github = String; githubId = Number; name = String;};
2210+ psibi = {email = String; github = String; githubId = Number; name = String;};
23562211 pstn = {email = String; name = String;};
23572212 psyanticy =
2358− {email = String; github = String; githubId = Integer; name = String;};
2359− ptival =
2360− {email = String; github = String; githubId = Integer; name = String;};
2361− ptrhlm =
2362− {email = String; github = String; githubId = Integer; name = String;};
2213+ {email = String; github = String; githubId = Number; name = String;};
2214+ ptival = {email = String; github = String; githubId = Number; name = String;};
2215+ ptrhlm = {email = String; github = String; githubId = Number; name = String;};
23632216 puckipedia =
2364− {email = String; github = String; githubId = Integer; name = String;};
2217+ {email = String; github = String; githubId = Number; name = String;};
23652218 puffnfresh =
2366− {email = String; github = String; githubId = Integer; name = String;};
2219+ {email = String; github = String; githubId = Number; name = String;};
23672220 purcell =
2368− {email = String; github = String; githubId = Integer; name = String;};
2221+ {email = String; github = String; githubId = Number; name = String;};
23692222 puzzlewolf =
2370− {email = String; github = String; githubId = Integer; name = String;};
2223+ {email = String; github = String; githubId = Number; name = String;};
23712224 pyrolagus =
2372− {email = String; github = String; githubId = Integer; name = String;};
2373− q3k = {email = String; github = String; githubId = Integer; name = String;};
2225+ {email = String; github = String; githubId = Number; name = String;};
2226+ q3k = {email = String; github = String; githubId = Number; name = String;};
23742227 qknight =
2375− {email = String; github = String; githubId = Integer; name = String;};
2376− qoelet =
2377− {email = String; github = String; githubId = Integer; name = String;};
2228+ {email = String; github = String; githubId = Number; name = String;};
2229+ qoelet = {email = String; github = String; githubId = Number; name = String;};
23782230 quentini =
2379− {email = String; github = String; githubId = Integer; name = String;};
2231+ {email = String; github = String; githubId = Number; name = String;};
23802232 qyliss =
23812233 { email = String;
23822234 github = String;
2383− githubId = Integer;
2235+ githubId = Number;
23842236 keys = [{fingerprint = String; longkeyid = String;}];
23852237 name = String;
23862238 };
2387− raboof =
2388− {email = String; github = String; githubId = Integer; name = String;};
2239+ raboof = {email = String; github = String; githubId = Number; name = String;};
23892240 rafaelgg =
2390− {email = String; github = String; githubId = Integer; name = String;};
2391− ragge = {email = String; github = String; githubId = Integer; name = String;};
2241+ {email = String; github = String; githubId = Number; name = String;};
2242+ ragge = {email = String; github = String; githubId = Number; name = String;};
23922243 rakesh4g =
2393− {email = String; github = String; githubId = Integer; name = String;};
2394− ralith =
2395− {email = String; github = String; githubId = Integer; name = String;};
2244+ {email = String; github = String; githubId = Number; name = String;};
2245+ ralith = {email = String; github = String; githubId = Number; name = String;};
23962246 ramkromberg =
2397− {email = String; github = String; githubId = Integer; name = String;};
2247+ {email = String; github = String; githubId = Number; name = String;};
23982248 raquelgb =
2399− {email = String; github = String; githubId = Integer; name = String;};
2249+ {email = String; github = String; githubId = Number; name = String;};
24002250 rardiol =
2401− {email = String; github = String; githubId = Integer; name = String;};
2251+ {email = String; github = String; githubId = Number; name = String;};
24022252 rasendubi =
2403− {email = String; github = String; githubId = Integer; name = String;};
2404− raskin =
2405− {email = String; github = String; githubId = Integer; name = String;};
2253+ {email = String; github = String; githubId = Number; name = String;};
2254+ raskin = {email = String; github = String; githubId = Number; name = String;};
24062255 ravloony = {email = String; name = String;};
24072256 rawkode =
2408− {email = String; github = String; githubId = Integer; name = String;};
2409− razvan =
2410− {email = String; github = String; githubId = Integer; name = String;};
2411− rbasso =
2412− {email = String; github = String; githubId = Integer; name = String;};
2257+ {email = String; github = String; githubId = Number; name = String;};
2258+ razvan = {email = String; github = String; githubId = Number; name = String;};
2259+ rbasso = {email = String; github = String; githubId = Number; name = String;};
24132260 rbrewer =
2414− {email = String; github = String; githubId = Integer; name = String;};
2261+ {email = String; github = String; githubId = Number; name = String;};
24152262 rdnetto =
2416− {email = String; github = String; githubId = Integer; name = String;};
2263+ {email = String; github = String; githubId = Number; name = String;};
24172264 redbaron =
2418− {email = String; github = String; githubId = Integer; name = String;};
2265+ {email = String; github = String; githubId = Number; name = String;};
24192266 redfish64 =
2420− {email = String; github = String; githubId = Integer; name = String;};
2267+ {email = String; github = String; githubId = Number; name = String;};
24212268 redvers =
2422− {email = String; github = String; githubId = Integer; name = String;};
2423− refnil =
2424− {email = String; github = String; githubId = Integer; name = String;};
2425− regnat =
2426− {email = String; github = String; githubId = Integer; name = String;};
2427− relrod =
2428− {email = String; github = String; githubId = Integer; name = String;};
2269+ {email = String; github = String; githubId = Number; name = String;};
2270+ refnil = {email = String; github = String; githubId = Number; name = String;};
2271+ regnat = {email = String; github = String; githubId = Number; name = String;};
2272+ relrod = {email = String; github = String; githubId = Number; name = String;};
24292273 rembo10 =
2430− {email = String; github = String; githubId = Integer; name = String;};
2274+ {email = String; github = String; githubId = Number; name = String;};
24312275 renatoGarcia =
2432− {email = String; github = String; githubId = Integer; name = String;};
2276+ {email = String; github = String; githubId = Number; name = String;};
24332277 rencire =
2434− {email = String; github = String; githubId = Integer; name = String;};
2435− renzo = {email = String; github = String; githubId = Integer; name = String;};
2436− retrry =
2437− {email = String; github = String; githubId = Integer; name = String;};
2438− rexim = {email = String; github = String; githubId = Integer; name = String;};
2439− rht = {email = String; github = String; githubId = Integer; name = String;};
2278+ {email = String; github = String; githubId = Number; name = String;};
2279+ renzo = {email = String; github = String; githubId = Number; name = String;};
2280+ retrry = {email = String; github = String; githubId = Number; name = String;};
2281+ rexim = {email = String; github = String; githubId = Number; name = String;};
2282+ rht = {email = String; github = String; githubId = Number; name = String;};
24402283 richardipsum =
2441− {email = String; github = String; githubId = Integer; name = String;};
2442− rick68 =
2443− {email = String; github = String; githubId = Integer; name = String;};
2284+ {email = String; github = String; githubId = Number; name = String;};
2285+ rick68 = {email = String; github = String; githubId = Number; name = String;};
24442286 rickynils =
2445− {email = String; github = String; githubId = Integer; name = String;};
2446− rika = {email = String; github = String; githubId = Integer; name = String;};
2287+ {email = String; github = String; githubId = Number; name = String;};
2288+ rika = {email = String; github = String; githubId = Number; name = String;};
24472289 rileyinman =
2448− {email = String; github = String; githubId = Integer; name = String;};
2449− ris = {email = String; github = String; githubId = Integer; name = String;};
2290+ {email = String; github = String; githubId = Number; name = String;};
2291+ ris = {email = String; github = String; githubId = Number; name = String;};
24502292 risson =
24512293 { email = String;
24522294 github = String;
2453− githubId = Integer;
2295+ githubId = Number;
24542296 keys = [{fingerprint = String; longkeyid = String;}];
24552297 name = String;
24562298 };
24572299 rittelle =
2458− {email = String; github = String; githubId = Integer; name = String;};
2459− rixed = {email = String; github = String; githubId = Integer; name = String;};
2460− rizary =
2461− {email = String; github = String; githubId = Integer; name = String;};
2462− rkoe = {email = String; github = String; githubId = Integer; name = String;};
2463− rkrzr = {email = String; github = String; githubId = Integer; name = String;};
2300+ {email = String; github = String; githubId = Number; name = String;};
2301+ rixed = {email = String; github = String; githubId = Number; name = String;};
2302+ rizary = {email = String; github = String; githubId = Number; name = String;};
2303+ rkoe = {email = String; github = String; githubId = Number; name = String;};
2304+ rkrzr = {email = String; github = String; githubId = Number; name = String;};
24642305 rlupton20 =
2465− {email = String; github = String; githubId = Integer; name = String;};
2306+ {email = String; github = String; githubId = Number; name = String;};
24662307 rnhmjoj =
24672308 { email = String;
24682309 github = String;
2469− githubId = Integer;
2310+ githubId = Number;
24702311 keys = [{fingerprint = String; longkeyid = String;}];
24712312 name = String;
24722313 };
24732314 roastiek =
2474− {email = String; github = String; githubId = Integer; name = String;};
2475− rob = {email = String; github = String; githubId = Integer; name = String;};
2476− robaca =
2477− {email = String; github = String; githubId = Integer; name = String;};
2315+ {email = String; github = String; githubId = Number; name = String;};
2316+ rob = {email = String; github = String; githubId = Number; name = String;};
2317+ robaca = {email = String; github = String; githubId = Number; name = String;};
24782318 robberer =
2479− {email = String; github = String; githubId = Integer; name = String;};
2319+ {email = String; github = String; githubId = Number; name = String;};
24802320 robbinch =
2481− {email = String; github = String; githubId = Integer; name = String;};
2321+ {email = String; github = String; githubId = Number; name = String;};
24822322 roberth =
2483− {email = String; github = String; githubId = Integer; name = String;};
2323+ {email = String; github = String; githubId = Number; name = String;};
24842324 robertodr =
2485− {email = String; github = String; githubId = Integer; name = String;};
2325+ {email = String; github = String; githubId = Number; name = String;};
24862326 robgssp =
2487− {email = String; github = String; githubId = Integer; name = String;};
2327+ {email = String; github = String; githubId = Number; name = String;};
24882328 roblabla =
2489− {email = String; github = String; githubId = Integer; name = String;};
2329+ {email = String; github = String; githubId = Number; name = String;};
24902330 roconnor =
2491− {email = String; github = String; githubId = Integer; name = String;};
2331+ {email = String; github = String; githubId = Number; name = String;};
24922332 roelvandijk =
2493− {email = String; github = String; githubId = Integer; name = String;};
2333+ {email = String; github = String; githubId = Number; name = String;};
24942334 romildo =
2495− {email = String; github = String; githubId = Integer; name = String;};
2335+ {email = String; github = String; githubId = Number; name = String;};
24962336 rongcuid =
2497− {email = String; github = String; githubId = Integer; name = String;};
2337+ {email = String; github = String; githubId = Number; name = String;};
24982338 roosemberth =
2499− {email = String; github = String; githubId = Integer; name = String;};
2339+ {email = String; github = String; githubId = Number; name = String;};
25002340 rople380 =
25012341 { email = String;
25022342 github = String;
2503− githubId = Integer;
2343+ githubId = Number;
25042344 keys = [{fingerprint = String; longkeyid = String;}];
25052345 name = String;
25062346 };
25072347 royneary =
2508− {email = String; github = String; githubId = Integer; name = String;};
2348+ {email = String; github = String; githubId = Number; name = String;};
25092349 rpearce =
2510− {email = String; github = String; githubId = Integer; name = String;};
2350+ {email = String; github = String; githubId = Number; name = String;};
25112351 rprospero =
2512− {email = String; github = String; githubId = Integer; name = String;};
2513− rps = {email = String; github = String; githubId = Integer; name = String;};
2352+ {email = String; github = String; githubId = Number; name = String;};
2353+ rps = {email = String; github = String; githubId = Number; name = String;};
25142354 rszibele =
2515− {email = String; github = String; githubId = Integer; name = String;};
2355+ {email = String; github = String; githubId = Number; name = String;};
25162356 rtreffer =
2517− {email = String; github = String; githubId = Integer; name = String;};
2357+ {email = String; github = String; githubId = Number; name = String;};
25182358 rushmorem =
2519− {email = String; github = String; githubId = Integer; name = String;};
2520− ruuda = {email = String; github = String; githubId = Integer; name = String;};
2521− rvl = {email = String; github = String; githubId = Integer; name = String;};
2359+ {email = String; github = String; githubId = Number; name = String;};
2360+ ruuda = {email = String; github = String; githubId = Number; name = String;};
2361+ rvl = {email = String; github = String; githubId = Number; name = String;};
25222362 rvlander =
2523− {email = String; github = String; githubId = Integer; name = String;};
2363+ {email = String; github = String; githubId = Number; name = String;};
25242364 rvolosatovs =
2525− {email = String; github = String; githubId = Integer; name = String;};
2365+ {email = String; github = String; githubId = Number; name = String;};
25262366 ryanartecona =
2527− {email = String; github = String; githubId = Integer; name = String;};
2367+ {email = String; github = String; githubId = Number; name = String;};
25282368 ryanorendorff =
2529− {email = String; github = String; githubId = Integer; name = String;};
2369+ {email = String; github = String; githubId = Number; name = String;};
25302370 ryansydnor =
2531− {email = String; github = String; githubId = Integer; name = String;};
2532− ryantm =
2533− {email = String; github = String; githubId = Integer; name = String;};
2371+ {email = String; github = String; githubId = Number; name = String;};
2372+ ryantm = {email = String; github = String; githubId = Number; name = String;};
25342373 ryantrinkle =
2535− {email = String; github = String; githubId = Integer; name = String;};
2536− rybern =
2537− {email = String; github = String; githubId = Integer; name = String;};
2374+ {email = String; github = String; githubId = Number; name = String;};
2375+ rybern = {email = String; github = String; githubId = Number; name = String;};
25382376 rycee =
25392377 { email = String;
25402378 github = String;
2541− githubId = Integer;
2379+ githubId = Number;
25422380 keys = [{fingerprint = String; longkeyid = String;}];
25432381 name = String;
25442382 };
25452383 ryneeverett =
2546− {email = String; github = String; githubId = Integer; name = String;};
2384+ {email = String; github = String; githubId = Number; name = String;};
25472385 rzetterberg =
2548− {email = String; github = String; githubId = Integer; name = String;};
2549− s1341 = {email = String; github = String; githubId = Integer; name = String;};
2386+ {email = String; github = String; githubId = Number; name = String;};
2387+ s1341 = {email = String; github = String; githubId = Number; name = String;};
25502388 samdoshi =
2551− {email = String; github = String; githubId = Integer; name = String;};
2389+ {email = String; github = String; githubId = Number; name = String;};
25522390 samdroid-apps =
2553− {email = String; github = String; githubId = Integer; name = String;};
2391+ {email = String; github = String; githubId = Number; name = String;};
25542392 samlich =
25552393 { email = String;
25562394 github = String;
2557− githubId = Integer;
2395+ githubId = Number;
25582396 keys = [{fingerprint = String; longkeyid = String;}];
25592397 name = String;
25602398 };
25612399 samrose =
2562− {email = String; github = String; githubId = Integer; name = String;};
2400+ {email = String; github = String; githubId = Number; name = String;};
25632401 samueldr =
2564− {email = String; github = String; githubId = Integer; name = String;};
2402+ {email = String; github = String; githubId = Number; name = String;};
25652403 samuelgrf =
25662404 { email = String;
25672405 github = String;
2568− githubId = Integer;
2406+ githubId = Number;
25692407 keys = [{fingerprint = String; longkeyid = String;}];
25702408 name = String;
25712409 };
25722410 samuelrivas =
2573− {email = String; github = String; githubId = Integer; name = String;};
2574− sander =
2575− {email = String; github = String; githubId = Integer; name = String;};
2411+ {email = String; github = String; githubId = Number; name = String;};
2412+ sander = {email = String; github = String; githubId = Number; name = String;};
25762413 sarcasticadmin =
2577− {email = String; github = String; githubId = Integer; name = String;};
2578− sargon =
2579− {email = String; github = String; githubId = Integer; name = String;};
2414+ {email = String; github = String; githubId = Number; name = String;};
2415+ sargon = {email = String; github = String; githubId = Number; name = String;};
25802416 saschagrunert =
2581− {email = String; github = String; githubId = Integer; name = String;};
2417+ {email = String; github = String; githubId = Number; name = String;};
25822418 saulecabrera =
2583− {email = String; github = String; githubId = Integer; name = String;};
2584− sauyon =
2585− {email = String; github = String; githubId = Integer; name = String;};
2419+ {email = String; github = String; githubId = Number; name = String;};
2420+ sauyon = {email = String; github = String; githubId = Number; name = String;};
25862421 savannidgerinel =
2587− {email = String; github = String; githubId = Integer; name = String;};
2588− sb0 = {email = String; github = String; githubId = Integer; name = String;};
2422+ {email = String; github = String; githubId = Number; name = String;};
2423+ sb0 = {email = String; github = String; githubId = Number; name = String;};
25892424 sboosali =
2590− {email = String; github = String; githubId = Integer; name = String;};
2425+ {email = String; github = String; githubId = Number; name = String;};
25912426 scalavision =
2592− {email = String; github = String; githubId = Integer; name = String;};
2427+ {email = String; github = String; githubId = Number; name = String;};
25932428 schmitthenner =
2594− {email = String; github = String; githubId = Integer; name = String;};
2429+ {email = String; github = String; githubId = Number; name = String;};
25952430 schmittlauch =
2596− {email = String; github = String; githubId = Integer; name = String;};
2431+ {email = String; github = String; githubId = Number; name = String;};
25972432 schneefux =
2598− {email = String; github = String; githubId = Integer; name = String;};
2433+ {email = String; github = String; githubId = Number; name = String;};
25992434 schristo = {email = String; name = String;};
2600− scode = {email = String; github = String; githubId = Integer; name = String;};
2435+ scode = {email = String; github = String; githubId = Number; name = String;};
26012436 scolobb =
2602− {email = String; github = String; githubId = Integer; name = String;};
2437+ {email = String; github = String; githubId = Number; name = String;};
26032438 screendriver =
2604− {email = String; github = String; githubId = Integer; name = String;};
2439+ {email = String; github = String; githubId = Number; name = String;};
26052440 scubed2 =
2606− {email = String; github = String; githubId = Integer; name = String;};
2607− sdier = {email = String; github = String; githubId = Integer; name = String;};
2608− sdll = {email = String; github = String; githubId = Integer; name = String;};
2609− seb314 =
2610− {email = String; github = String; githubId = Integer; name = String;};
2441+ {email = String; github = String; githubId = Number; name = String;};
2442+ sdier = {email = String; github = String; githubId = Number; name = String;};
2443+ sdll = {email = String; github = String; githubId = Number; name = String;};
2444+ seb314 = {email = String; github = String; githubId = Number; name = String;};
26112445 sellout =
2612− {email = String; github = String; githubId = Integer; name = String;};
2446+ {email = String; github = String; githubId = Number; name = String;};
26132447 sengaya =
2614− {email = String; github = String; githubId = Integer; name = String;};
2448+ {email = String; github = String; githubId = Number; name = String;};
26152449 sephalon =
2616− {email = String; github = String; githubId = Integer; name = String;};
2617− sepi = {email = String; github = String; githubId = Integer; name = String;};
2450+ {email = String; github = String; githubId = Number; name = String;};
2451+ sepi = {email = String; github = String; githubId = Number; name = String;};
26182452 seppeljordan =
2619− {email = String; github = String; githubId = Integer; name = String;};
2620− seqizz =
2621− {email = String; github = String; githubId = Integer; name = String;};
2453+ {email = String; github = String; githubId = Number; name = String;};
2454+ seqizz = {email = String; github = String; githubId = Number; name = String;};
26222455 servalcatty =
26232456 { email = String;
26242457 github = String;
2625− githubId = Integer;
2458+ githubId = Number;
26262459 keys = [{fingerprint = String; longkeyid = String;}];
26272460 name = String;
26282461 };
26292462 sfrijters =
2630− {email = String; github = String; githubId = Integer; name = String;};
2631− sgo = {email = String; github = String; githubId = Integer; name = String;};
2632− sgraf = {email = String; github = String; githubId = Integer; name = String;};
2463+ {email = String; github = String; githubId = Number; name = String;};
2464+ sgo = {email = String; github = String; githubId = Number; name = String;};
2465+ sgraf = {email = String; github = String; githubId = Number; name = String;};
26332466 shahrukh330 =
2634− {email = String; github = String; githubId = Integer; name = String;};
2467+ {email = String; github = String; githubId = Number; name = String;};
26352468 shamilton =
2636− {email = String; github = String; githubId = Integer; name = String;};
2469+ {email = String; github = String; githubId = Number; name = String;};
26372470 shanemikel =
2638− {email = String; github = String; githubId = Integer; name = String;};
2639− shardy =
2640− {email = String; github = String; githubId = Integer; name = String;};
2471+ {email = String; github = String; githubId = Number; name = String;};
2472+ shardy = {email = String; github = String; githubId = Number; name = String;};
26412473 shawndellysse =
2642− {email = String; github = String; githubId = Integer; name = String;};
2643− shazow =
2644− {email = String; github = String; githubId = Integer; name = String;};
2474+ {email = String; github = String; githubId = Number; name = String;};
2475+ shazow = {email = String; github = String; githubId = Number; name = String;};
26452476 sheenobu =
2646− {email = String; github = String; githubId = Integer; name = String;};
2477+ {email = String; github = String; githubId = Number; name = String;};
26472478 sheganinans =
2648− {email = String; github = String; githubId = Integer; name = String;};
2649− shell = {email = String; github = String; githubId = Integer; name = String;};
2650− shlevy =
2651− {email = String; github = String; githubId = Integer; name = String;};
2479+ {email = String; github = String; githubId = Number; name = String;};
2480+ shell = {email = String; github = String; githubId = Number; name = String;};
2481+ shlevy = {email = String; github = String; githubId = Number; name = String;};
26522482 shmish111 =
2653− {email = String; github = String; githubId = Integer; name = String;};
2483+ {email = String; github = String; githubId = Number; name = String;};
26542484 shnarazk =
2655− {email = String; github = String; githubId = Integer; name = String;};
2656− shou = {email = String; github = String; githubId = Integer; name = String;};
2657− shyim = {email = String; github = String; githubId = Integer; name = String;};
2485+ {email = String; github = String; githubId = Number; name = String;};
2486+ shou = {email = String; github = String; githubId = Number; name = String;};
2487+ shyim = {email = String; github = String; githubId = Number; name = String;};
26582488 siddharthist =
2659− {email = String; github = String; githubId = Integer; name = String;};
2660− siers = {email = String; github = String; githubId = Integer; name = String;};
2489+ {email = String; github = String; githubId = Number; name = String;};
2490+ siers = {email = String; github = String; githubId = Number; name = String;};
26612491 sifmelcara =
2662− {email = String; github = String; githubId = Integer; name = String;};
2663− sigma = {email = String; github = String; githubId = Integer; name = String;};
2492+ {email = String; github = String; githubId = Number; name = String;};
2493+ sigma = {email = String; github = String; githubId = Number; name = String;};
26642494 sikmir =
26652495 { email = String;
26662496 github = String;
2667− githubId = Integer;
2497+ githubId = Number;
26682498 keys = [{fingerprint = String; longkeyid = String;}];
26692499 name = String;
26702500 };
26712501 simonchatts =
2672− {email = String; github = String; githubId = Integer; name = String;};
2502+ {email = String; github = String; githubId = Number; name = String;};
26732503 simonvandel =
2674− {email = String; github = String; githubId = Integer; name = String;};
2504+ {email = String; github = String; githubId = Number; name = String;};
26752505 siraben =
2676− {email = String; github = String; githubId = Integer; name = String;};
2506+ {email = String; github = String; githubId = Number; name = String;};
26772507 siriobalmelli =
26782508 { email = String;
26792509 github = String;
2680− githubId = Integer;
2510+ githubId = Number;
26812511 keys = [{fingerprint = String; longkeyid = String;}];
26822512 name = String;
26832513 };
26842514 sivteck =
2685− {email = String; github = String; githubId = Integer; name = String;};
2686− sjagoe =
2687− {email = String; github = String; githubId = Integer; name = String;};
2688− sjau = {email = String; github = String; githubId = Integer; name = String;};
2515+ {email = String; github = String; githubId = Number; name = String;};
2516+ sjagoe = {email = String; github = String; githubId = Number; name = String;};
2517+ sjau = {email = String; github = String; githubId = Number; name = String;};
26892518 sjfloat =
2690− {email = String; github = String; githubId = Integer; name = String;};
2519+ {email = String; github = String; githubId = Number; name = String;};
26912520 sjmackenzie =
2692− {email = String; github = String; githubId = Integer; name = String;};
2521+ {email = String; github = String; githubId = Number; name = String;};
26932522 sjourdois = {email = String; name = String;};
26942523 skeidel =
2695− {email = String; github = String; githubId = Integer; name = String;};
2524+ {email = String; github = String; githubId = Number; name = String;};
26962525 skrzyp = {email = String; name = String;};
26972526 skykanin =
2698− {email = String; github = String; githubId = Integer; name = String;};
2527+ {email = String; github = String; githubId = Number; name = String;};
26992528 sleexyz =
2700− {email = String; github = String; githubId = Integer; name = String;};
2529+ {email = String; github = String; githubId = Number; name = String;};
27012530 smakarov =
27022531 { email = String;
27032532 github = String;
2704− githubId = Integer;
2533+ githubId = Number;
27052534 keys = [{fingerprint = String; longkeyid = String;}];
27062535 name = String;
27072536 };
27082537 smaret =
27092538 { email = String;
27102539 github = String;
2711− githubId = Integer;
2540+ githubId = Number;
27122541 keys = [{fingerprint = String; longkeyid = String;}];
27132542 name = String;
27142543 };
27152544 smironov =
2716− {email = String; github = String; githubId = Integer; name = String;};
2717− sna = {email = String; github = String; githubId = Integer; name = String;};
2718− snaar = {email = String; github = String; githubId = Integer; name = String;};
2719− snglth =
2720− {email = String; github = String; githubId = Integer; name = String;};
2545+ {email = String; github = String; githubId = Number; name = String;};
2546+ sna = {email = String; github = String; githubId = Number; name = String;};
2547+ snaar = {email = String; github = String; githubId = Number; name = String;};
2548+ snglth = {email = String; github = String; githubId = Number; name = String;};
27212549 snicket2100 =
2722− {email = String; github = String; githubId = Integer; name = String;};
2723− snyh = {email = String; github = String; githubId = Integer; name = String;};
2550+ {email = String; github = String; githubId = Number; name = String;};
2551+ snyh = {email = String; github = String; githubId = Number; name = String;};
27242552 softinio =
2725− {email = String; github = String; githubId = Integer; name = String;};
2726− solson =
2727− {email = String; github = String; githubId = Integer; name = String;};
2553+ {email = String; github = String; githubId = Number; name = String;};
2554+ solson = {email = String; github = String; githubId = Number; name = String;};
27282555 sondr3 =
27292556 { email = String;
27302557 github = String;
2731− githubId = Integer;
2558+ githubId = Number;
27322559 keys = [{fingerprint = String; longkeyid = String;}];
27332560 name = String;
27342561 };
2735− sorki = {email = String; github = String; githubId = Integer; name = String;};
2562+ sorki = {email = String; github = String; githubId = Number; name = String;};
27362563 sorpaas =
2737− {email = String; github = String; githubId = Integer; name = String;};
2564+ {email = String; github = String; githubId = Number; name = String;};
27382565 spacefrogg =
2739− {email = String; github = String; githubId = Integer; name = String;};
2566+ {email = String; github = String; githubId = Number; name = String;};
27402567 spacekookie =
2741− {email = String; github = String; githubId = Integer; name = String;};
2568+ {email = String; github = String; githubId = Number; name = String;};
27422569 spencerjanssen =
2743− {email = String; github = String; githubId = Integer; name = String;};
2744− spinus =
2745− {email = String; github = String; githubId = Integer; name = String;};
2746− sprock =
2747− {email = String; github = String; githubId = Integer; name = String;};
2570+ {email = String; github = String; githubId = Number; name = String;};
2571+ spinus = {email = String; github = String; githubId = Number; name = String;};
2572+ sprock = {email = String; github = String; githubId = Number; name = String;};
27482573 spwhitt =
2749− {email = String; github = String; githubId = Integer; name = String;};
2574+ {email = String; github = String; githubId = Number; name = String;};
27502575 squalus =
2751− {email = String; github = String; githubId = Integer; name = String;};
2752− srghma =
2753− {email = String; github = String; githubId = Integer; name = String;};
2754− srgom = {email = String; github = String; githubId = Integer; name = String;};
2755− srhb = {email = String; github = String; githubId = Integer; name = String;};
2756− sstef = {email = String; github = String; githubId = Integer; name = String;};
2757− steell =
2758− {email = String; github = String; githubId = Integer; name = String;};
2576+ {email = String; github = String; githubId = Number; name = String;};
2577+ srghma = {email = String; github = String; githubId = Number; name = String;};
2578+ srgom = {email = String; github = String; githubId = Number; name = String;};
2579+ srhb = {email = String; github = String; githubId = Number; name = String;};
2580+ sstef = {email = String; github = String; githubId = Number; name = String;};
2581+ steell = {email = String; github = String; githubId = Number; name = String;};
27592582 stephenmw =
2760− {email = String; github = String; githubId = Integer; name = String;};
2583+ {email = String; github = String; githubId = Number; name = String;};
27612584 sterfield =
2762− {email = String; github = String; githubId = Integer; name = String;};
2585+ {email = String; github = String; githubId = Number; name = String;};
27632586 sternenseemann =
2764− {email = String; github = String; githubId = Integer; name = String;};
2587+ {email = String; github = String; githubId = Number; name = String;};
27652588 steshaw =
27662589 { email = String;
27672590 github = String;
2768− githubId = Integer;
2591+ githubId = Number;
27692592 keys = [{fingerprint = String; longkeyid = String;}];
27702593 name = String;
27712594 };
2772− stesie =
2773− {email = String; github = String; githubId = Integer; name = String;};
2595+ stesie = {email = String; github = String; githubId = Number; name = String;};
27742596 steve-chavez =
2775− {email = String; github = String; githubId = Integer; name = String;};
2597+ {email = String; github = String; githubId = Number; name = String;};
27762598 steveej =
2777− {email = String; github = String; githubId = Integer; name = String;};
2599+ {email = String; github = String; githubId = Number; name = String;};
27782600 stianlagstad =
2779− {email = String; github = String; githubId = Integer; name = String;};
2780− stites =
2781− {email = String; github = String; githubId = Integer; name = String;};
2601+ {email = String; github = String; githubId = Number; name = String;};
2602+ stites = {email = String; github = String; githubId = Number; name = String;};
27822603 stumoss =
2783− {email = String; github = String; githubId = Integer; name = String;};
2784− suhr = {email = String; github = String; githubId = Integer; name = String;};
2785− suvash =
2786− {email = String; github = String; githubId = Integer; name = String;};
2604+ {email = String; github = String; githubId = Number; name = String;};
2605+ suhr = {email = String; github = String; githubId = Number; name = String;};
2606+ suvash = {email = String; github = String; githubId = Number; name = String;};
27872607 sveitser =
2788− {email = String; github = String; githubId = Integer; name = String;};
2789− svsdep =
2790− {email = String; github = String; githubId = Integer; name = String;};
2608+ {email = String; github = String; githubId = Number; name = String;};
2609+ svsdep = {email = String; github = String; githubId = Number; name = String;};
27912610 swarren83 =
2792− {email = String; github = String; githubId = Integer; name = String;};
2611+ {email = String; github = String; githubId = Number; name = String;};
27932612 swdunlop =
2794− {email = String; github = String; githubId = Integer; name = String;};
2795− sweber =
2796− {email = String; github = String; githubId = Integer; name = String;};
2613+ {email = String; github = String; githubId = Number; name = String;};
2614+ sweber = {email = String; github = String; githubId = Number; name = String;};
27972615 swflint =
2798− {email = String; github = String; githubId = Integer; name = String;};
2616+ {email = String; github = String; githubId = Number; name = String;};
27992617 swistak35 =
2800− {email = String; github = String; githubId = Integer; name = String;};
2618+ {email = String; github = String; githubId = Number; name = String;};
28012619 syberant =
2802− {email = String; github = String; githubId = Integer; name = String;};
2620+ {email = String; github = String; githubId = Number; name = String;};
28032621 symphorien =
2804− {email = String; github = String; githubId = Integer; name = String;};
2622+ {email = String; github = String; githubId = Number; name = String;};
28052623 synthetica =
2806− {email = String; github = String; githubId = Integer; name = String;};
2807− szczyp =
2808− {email = String; github = String; githubId = Integer; name = String;};
2809− sztupi =
2810− {email = String; github = String; githubId = Integer; name = String;};
2624+ {email = String; github = String; githubId = Number; name = String;};
2625+ szczyp = {email = String; github = String; githubId = Number; name = String;};
2626+ sztupi = {email = String; github = String; githubId = Number; name = String;};
28112627 t184256 =
2812− {email = String; github = String; githubId = Integer; name = String;};
2628+ {email = String; github = String; githubId = Number; name = String;};
28132629 tadeokondrak =
28142630 { email = String;
28152631 github = String;
2816− githubId = Integer;
2632+ githubId = Number;
28172633 keys = [{fingerprint = String; longkeyid = String;}];
28182634 name = String;
28192635 };
28202636 tadfisher =
2821− {email = String; github = String; githubId = Integer; name = String;};
2822− taeer = {email = String; github = String; githubId = Integer; name = String;};
2823− taha = {email = String; github = String; githubId = Integer; name = String;};
2637+ {email = String; github = String; githubId = Number; name = String;};
2638+ taeer = {email = String; github = String; githubId = Number; name = String;};
2639+ taha = {email = String; github = String; githubId = Number; name = String;};
28242640 tailhook =
2825− {email = String; github = String; githubId = Integer; name = String;};
2641+ {email = String; github = String; githubId = Number; name = String;};
28262642 taketwo =
2827− {email = String; github = String; githubId = Integer; name = String;};
2643+ {email = String; github = String; githubId = Number; name = String;};
28282644 takikawa =
2829− {email = String; github = String; githubId = Integer; name = String;};
2830− taktoa =
2831− {email = String; github = String; githubId = Integer; name = String;};
2832− taku0 = {email = String; github = String; githubId = Integer; name = String;};
2645+ {email = String; github = String; githubId = Number; name = String;};
2646+ taktoa = {email = String; github = String; githubId = Number; name = String;};
2647+ taku0 = {email = String; github = String; githubId = Number; name = String;};
28332648 talkara =
2834− {email = String; github = String; githubId = Integer; name = String;};
2835− talyz = {email = String; github = String; githubId = Integer; name = String;};
2836− taneb = {email = String; github = String; githubId = Integer; name = String;};
2837− tari = {email = String; github = String; githubId = Integer; name = String;};
2838− tasmo = {email = String; github = String; githubId = Integer; name = String;};
2839− tavyc = {email = String; github = String; githubId = Integer; name = String;};
2840− tazjin =
2841− {email = String; github = String; githubId = Integer; name = String;};
2842− tbenst =
2843− {email = String; github = String; githubId = Integer; name = String;};
2649+ {email = String; github = String; githubId = Number; name = String;};
2650+ talyz = {email = String; github = String; githubId = Number; name = String;};
2651+ taneb = {email = String; github = String; githubId = Number; name = String;};
2652+ tari = {email = String; github = String; githubId = Number; name = String;};
2653+ tasmo = {email = String; github = String; githubId = Number; name = String;};
2654+ tavyc = {email = String; github = String; githubId = Number; name = String;};
2655+ tazjin = {email = String; github = String; githubId = Number; name = String;};
2656+ tbenst = {email = String; github = String; githubId = Number; name = String;};
28442657 tcbravo =
2845− {email = String; github = String; githubId = Integer; name = String;};
2846− tckmn = {email = String; github = String; githubId = Integer; name = String;};
2847− teh = {email = String; github = String; githubId = Integer; name = String;};
2658+ {email = String; github = String; githubId = Number; name = String;};
2659+ tckmn = {email = String; github = String; githubId = Number; name = String;};
2660+ teh = {email = String; github = String; githubId = Number; name = String;};
28482661 telotortium =
2849− {email = String; github = String; githubId = Integer; name = String;};
2850− teozkr =
2851− {email = String; github = String; githubId = Integer; name = String;};
2852− terlar =
2853− {email = String; github = String; githubId = Integer; name = String;};
2854− tesq0 = {email = String; github = String; githubId = Integer; name = String;};
2855− teto = {email = String; github = String; githubId = Integer; name = String;};
2856− tex = {email = String; github = String; githubId = Integer; name = String;};
2662+ {email = String; github = String; githubId = Number; name = String;};
2663+ teozkr = {email = String; github = String; githubId = Number; name = String;};
2664+ terlar = {email = String; github = String; githubId = Number; name = String;};
2665+ tesq0 = {email = String; github = String; githubId = Number; name = String;};
2666+ teto = {email = String; github = String; githubId = Number; name = String;};
2667+ tex = {email = String; github = String; githubId = Number; name = String;};
28572668 tfmoraes =
2858− {email = String; github = String; githubId = Integer; name = String;};
2859− tg-x = {email = String; github = String; githubId = Integer; name = String;};
2669+ {email = String; github = String; githubId = Number; name = String;};
2670+ tg-x = {email = String; github = String; githubId = Number; name = String;};
28602671 th0rgal =
2861− {email = String; github = String; githubId = Integer; name = String;};
2862− thall = {email = String; github = String; githubId = Integer; name = String;};
2672+ {email = String; github = String; githubId = Number; name = String;};
2673+ thall = {email = String; github = String; githubId = Number; name = String;};
28632674 thammers =
2864− {email = String; github = String; githubId = Integer; name = String;};
2675+ {email = String; github = String; githubId = Number; name = String;};
28652676 thanegill =
2866− {email = String; github = String; githubId = Integer; name = String;};
2677+ {email = String; github = String; githubId = Number; name = String;};
28672678 thedavidmeister =
2868− {email = String; github = String; githubId = Integer; name = String;};
2679+ {email = String; github = String; githubId = Number; name = String;};
28692680 thefenriswolf =
2870− {email = String; github = String; githubId = Integer; name = String;};
2681+ {email = String; github = String; githubId = Number; name = String;};
28712682 thefloweringash =
2872− {email = String; github = String; githubId = Integer; name = String;};
2683+ {email = String; github = String; githubId = Number; name = String;};
28732684 thelegy =
2874− {email = String; github = String; githubId = Integer; name = String;};
2685+ {email = String; github = String; githubId = Number; name = String;};
28752686 thesola10 =
28762687 { email = String;
28772688 github = String;
2878− githubId = Integer;
2689+ githubId = Number;
28792690 keys = [{fingerprint = String; longkeyid = String;}];
28802691 name = String;
28812692 };
2882− theuni =
2883− {email = String; github = String; githubId = Integer; name = String;};
2693+ theuni = {email = String; github = String; githubId = Number; name = String;};
28842694 thiagokokada =
2885− {email = String; github = String; githubId = Integer; name = String;};
2886− thmzlt =
2887− {email = String; github = String; githubId = Integer; name = String;};
2695+ {email = String; github = String; githubId = Number; name = String;};
2696+ thmzlt = {email = String; github = String; githubId = Number; name = String;};
28882697 thomasdesr =
2889− {email = String; github = String; githubId = Integer; name = String;};
2698+ {email = String; github = String; githubId = Number; name = String;};
28902699 thomasjm =
2891− {email = String; github = String; githubId = Integer; name = String;};
2700+ {email = String; github = String; githubId = Number; name = String;};
28922701 thoughtpolice =
2893− {email = String; github = String; githubId = Integer; name = String;};
2894− thpham =
2895− {email = String; github = String; githubId = Integer; name = String;};
2702+ {email = String; github = String; githubId = Number; name = String;};
2703+ thpham = {email = String; github = String; githubId = Number; name = String;};
28962704 tilpner =
2897− {email = String; github = String; githubId = Integer; name = String;};
2705+ {email = String; github = String; githubId = Number; name = String;};
28982706 timbertson =
2899− {email = String; github = String; githubId = Integer; name = String;};
2900− timma = {email = String; github = String; githubId = Integer; name = String;};
2707+ {email = String; github = String; githubId = Number; name = String;};
2708+ timma = {email = String; github = String; githubId = Number; name = String;};
29012709 timokau =
2902− {email = String; github = String; githubId = Integer; name = String;};
2903− timor = {email = String; github = String; githubId = Integer; name = String;};
2904− timput =
2905− {email = String; github = String; githubId = Integer; name = String;};
2710+ {email = String; github = String; githubId = Number; name = String;};
2711+ timor = {email = String; github = String; githubId = Number; name = String;};
2712+ timput = {email = String; github = String; githubId = Number; name = String;};
29062713 timstott =
2907− {email = String; github = String; githubId = Integer; name = String;};
2714+ {email = String; github = String; githubId = Number; name = String;};
29082715 tiramiseb =
2909− {email = String; github = String; githubId = Integer; name = String;};
2716+ {email = String; github = String; githubId = Number; name = String;};
29102717 titanous =
2911− {email = String; github = String; githubId = Integer; name = String;};
2718+ {email = String; github = String; githubId = Number; name = String;};
29122719 tkerber =
29132720 { email = String;
29142721 github = String;
2915− githubId = Integer;
2722+ githubId = Number;
29162723 keys = [{fingerprint = String; longkeyid = String;}];
29172724 name = String;
29182725 };
2919− tmplt = {email = String; github = String; githubId = Integer; name = String;};
2920− tnias = {email = String; github = String; githubId = Integer; name = String;};
2726+ tmplt = {email = String; github = String; githubId = Number; name = String;};
2727+ tnias = {email = String; github = String; githubId = Number; name = String;};
29212728 tobiasBora =
2922− {email = String; github = String; githubId = Integer; name = String;};
2923− tobim = {email = String; github = String; githubId = Integer; name = String;};
2924− tohl = {email = String; github = String; githubId = Integer; name = String;};
2729+ {email = String; github = String; githubId = Number; name = String;};
2730+ tobim = {email = String; github = String; githubId = Number; name = String;};
2731+ tohl = {email = String; github = String; githubId = Number; name = String;};
29252732 tokudan =
2926− {email = String; github = String; githubId = Integer; name = String;};
2733+ {email = String; github = String; githubId = Number; name = String;};
29272734 tomahna =
2928− {email = String; github = String; githubId = Integer; name = String;};
2735+ {email = String; github = String; githubId = Number; name = String;};
29292736 tomberek =
2930− {email = String; github = String; githubId = Integer; name = String;};
2737+ {email = String; github = String; githubId = Number; name = String;};
29312738 tomfitzhenry =
2932− {email = String; github = String; githubId = Integer; name = String;};
2739+ {email = String; github = String; githubId = Number; name = String;};
29332740 tomsmeets =
2934− {email = String; github = String; githubId = Integer; name = String;};
2935− toonn = {email = String; github = String; githubId = Integer; name = String;};
2741+ {email = String; github = String; githubId = Number; name = String;};
2742+ toonn = {email = String; github = String; githubId = Number; name = String;};
29362743 toschmidt =
2937− {email = String; github = String; githubId = Integer; name = String;};
2744+ {email = String; github = String; githubId = Number; name = String;};
29382745 travisbhartwell =
2939− {email = String; github = String; githubId = Integer; name = String;};
2940− treemo =
2941− {email = String; github = String; githubId = Integer; name = String;};
2746+ {email = String; github = String; githubId = Number; name = String;};
2747+ treemo = {email = String; github = String; githubId = Number; name = String;};
29422748 trepetti =
2943− {email = String; github = String; githubId = Integer; name = String;};
2749+ {email = String; github = String; githubId = Number; name = String;};
29442750 trevorj =
2945− {email = String; github = String; githubId = Integer; name = String;};
2751+ {email = String; github = String; githubId = Number; name = String;};
29462752 tricktron =
2947− {email = String; github = String; githubId = Integer; name = String;};
2948− trino = {email = String; github = String; githubId = Integer; name = String;};
2949− troydm =
2950− {email = String; github = String; githubId = Integer; name = String;};
2753+ {email = String; github = String; githubId = Number; name = String;};
2754+ trino = {email = String; github = String; githubId = Number; name = String;};
2755+ troydm = {email = String; github = String; githubId = Number; name = String;};
29512756 tscholak =
2952− {email = String; github = String; githubId = Integer; name = String;};
2757+ {email = String; github = String; githubId = Number; name = String;};
29532758 tstrobel = {email = String; name = String;};
29542759 ttuegel =
2955− {email = String; github = String; githubId = Integer; name = String;};
2760+ {email = String; github = String; githubId = Number; name = String;};
29562761 turbomack =
2957− {email = String; github = String; githubId = Integer; name = String;};
2958− turion =
2959− {email = String; github = String; githubId = Integer; name = String;};
2960− tv = {email = String; github = String; githubId = Integer; name = String;};
2762+ {email = String; github = String; githubId = Number; name = String;};
2763+ turion = {email = String; github = String; githubId = Number; name = String;};
2764+ tv = {email = String; github = String; githubId = Number; name = String;};
29612765 tvestelind =
2962− {email = String; github = String; githubId = Integer; name = String;};
2963− tviti = {email = String; github = String; githubId = Integer; name = String;};
2964− tvorog =
2965− {email = String; github = String; githubId = Integer; name = String;};
2966− tweber =
2967− {email = String; github = String; githubId = Integer; name = String;};
2968− twey = {email = String; github = String; githubId = Integer; name = String;};
2766+ {email = String; github = String; githubId = Number; name = String;};
2767+ tviti = {email = String; github = String; githubId = Number; name = String;};
2768+ tvorog = {email = String; github = String; githubId = Number; name = String;};
2769+ tweber = {email = String; github = String; githubId = Number; name = String;};
2770+ twey = {email = String; github = String; githubId = Number; name = String;};
29692771 twhitehead =
29702772 { email = String;
29712773 github = String;
2972− githubId = Integer;
2774+ githubId = Number;
29732775 keys = [{fingerprint = String; longkeyid = String;}];
29742776 name = String;
29752777 };
29762778 typetetris =
2977− {email = String; github = String; githubId = Integer; name = String;};
2978− udono = {email = String; github = String; githubId = Integer; name = String;};
2979− unode = {email = String; github = String; githubId = Integer; name = String;};
2779+ {email = String; github = String; githubId = Number; name = String;};
2780+ udono = {email = String; github = String; githubId = Number; name = String;};
2781+ unode = {email = String; github = String; githubId = Number; name = String;};
29802782 uralbash =
2981− {email = String; github = String; githubId = Integer; name = String;};
2783+ {email = String; github = String; githubId = Number; name = String;};
29822784 uri-canva =
2983− {email = String; github = String; githubId = Integer; name = String;};
2785+ {email = String; github = String; githubId = Number; name = String;};
29842786 uskudnik =
2985− {email = String; github = String; githubId = Integer; name = String;};
2787+ {email = String; github = String; githubId = Number; name = String;};
29862788 utdemir =
2987− {email = String; github = String; githubId = Integer; name = String;};
2789+ {email = String; github = String; githubId = Number; name = String;};
29882790 uvnikita =
2989− {email = String; github = String; githubId = Integer; name = String;};
2990− uwap = {email = String; github = String; githubId = Integer; name = String;};
2791+ {email = String; github = String; githubId = Number; name = String;};
2792+ uwap = {email = String; github = String; githubId = Number; name = String;};
29912793 va1entin =
2992− {email = String; github = String; githubId = Integer; name = String;};
2794+ {email = String; github = String; githubId = Number; name = String;};
29932795 vaibhavsagar =
2994− {email = String; github = String; githubId = Integer; name = String;};
2796+ {email = String; github = String; githubId = Number; name = String;};
29952797 valebes =
2996− {email = String; github = String; githubId = Integer; name = String;};
2798+ {email = String; github = String; githubId = Number; name = String;};
29972799 valeriangalliat =
2998− {email = String; github = String; githubId = Integer; name = String;};
2800+ {email = String; github = String; githubId = Number; name = String;};
29992801 valodim =
3000− {email = String; github = String; githubId = Integer; name = String;};
2802+ {email = String; github = String; githubId = Number; name = String;};
30012803 vandenoever =
3002− {email = String; github = String; githubId = Integer; name = String;};
2804+ {email = String; github = String; githubId = Number; name = String;};
30032805 vanschelven =
3004− {email = String; github = String; githubId = Integer; name = String;};
3005− vanzef =
3006− {email = String; github = String; githubId = Integer; name = String;};
2806+ {email = String; github = String; githubId = Number; name = String;};
2807+ vanzef = {email = String; github = String; githubId = Number; name = String;};
30072808 varunpatro =
3008− {email = String; github = String; githubId = Integer; name = String;};
3009− vbgl = {email = String; github = String; githubId = Integer; name = String;};
2809+ {email = String; github = String; githubId = Number; name = String;};
2810+ vbgl = {email = String; github = String; githubId = Number; name = String;};
30102811 vbmithr =
3011− {email = String; github = String; githubId = Integer; name = String;};
2812+ {email = String; github = String; githubId = Number; name = String;};
30122813 vcanadi =
3013− {email = String; github = String; githubId = Integer; name = String;};
2814+ {email = String; github = String; githubId = Number; name = String;};
30142815 vcunat =
30152816 { email = String;
30162817 github = String;
3017− githubId = Integer;
2818+ githubId = Number;
30182819 keys = [{fingerprint = String; longkeyid = String;}];
30192820 name = String;
30202821 };
30212822 vdemeester =
3022− {email = String; github = String; githubId = Integer; name = String;};
2823+ {email = String; github = String; githubId = Number; name = String;};
30232824 veehaitch =
30242825 { email = String;
30252826 github = String;
3026− githubId = Integer;
2827+ githubId = Number;
30272828 keys = [{fingerprint = String; longkeyid = String;}];
30282829 name = String;
30292830 };
30302831 velovix =
3031− {email = String; github = String; githubId = Integer; name = String;};
3032− veprbl =
3033− {email = String; github = String; githubId = Integer; name = String;};
2832+ {email = String; github = String; githubId = Number; name = String;};
2833+ veprbl = {email = String; github = String; githubId = Number; name = String;};
30342834 vidbina =
3035− {email = String; github = String; githubId = Integer; name = String;};
3036− vifino =
3037− {email = String; github = String; githubId = Integer; name = String;};
2835+ {email = String; github = String; githubId = Number; name = String;};
2836+ vifino = {email = String; github = String; githubId = Number; name = String;};
30382837 vika_nezrimaya =
30392838 { email = String;
30402839 github = String;
3041− githubId = Integer;
2840+ githubId = Number;
30422841 keys = [{fingerprint = String; longkeyid = String;}];
30432842 name = String;
30442843 };
30452844 vincentbernat =
30462845 { email = String;
30472846 github = String;
3048− githubId = Integer;
2847+ githubId = Number;
30492848 keys = [{fingerprint = String; longkeyid = String;}];
30502849 name = String;
30512850 };
30522851 vinymeuh =
3053− {email = String; github = String; githubId = Integer; name = String;};
3054− viric = {email = String; github = String; githubId = Integer; name = String;};
2852+ {email = String; github = String; githubId = Number; name = String;};
2853+ viric = {email = String; github = String; githubId = Number; name = String;};
30552854 virusdave =
3056− {email = String; github = String; githubId = Integer; name = String;};
2855+ {email = String; github = String; githubId = Number; name = String;};
30572856 vizanto =
3058− {email = String; github = String; githubId = Integer; name = String;};
2857+ {email = String; github = String; githubId = Number; name = String;};
30592858 vklquevs =
3060− {email = String; github = String; githubId = Integer; name = String;};
3061− vlaci = {email = String; github = String; githubId = Integer; name = String;};
2859+ {email = String; github = String; githubId = Number; name = String;};
2860+ vlaci = {email = String; github = String; githubId = Number; name = String;};
30622861 vlstill =
3063− {email = String; github = String; githubId = Integer; name = String;};
2862+ {email = String; github = String; githubId = Number; name = String;};
30642863 vmandela =
3065− {email = String; github = String; githubId = Integer; name = String;};
2864+ {email = String; github = String; githubId = Number; name = String;};
30662865 vmchale =
3067− {email = String; github = String; githubId = Integer; name = String;};
2866+ {email = String; github = String; githubId = Number; name = String;};
30682867 voidless =
3069− {email = String; github = String; githubId = Integer; name = String;};
2868+ {email = String; github = String; githubId = Number; name = String;};
30702869 volhovm =
3071− {email = String; github = String; githubId = Integer; name = String;};
3072− volth = {email = String; github = String; githubId = Integer; name = String;};
2870+ {email = String; github = String; githubId = Number; name = String;};
2871+ volth = {email = String; github = String; githubId = Number; name = String;};
30732872 vozz = {email = String; name = String;};
3074− vrthra =
3075− {email = String; github = String; githubId = Integer; name = String;};
2873+ vrthra = {email = String; github = String; githubId = Number; name = String;};
30762874 vskilet =
3077− {email = String; github = String; githubId = Integer; name = String;};
2875+ {email = String; github = String; githubId = Number; name = String;};
30782876 vyorkin =
3079− {email = String; github = String; githubId = Integer; name = String;};
3080− vyp = {email = String; github = String; githubId = Integer; name = String;};
2877+ {email = String; github = String; githubId = Number; name = String;};
2878+ vyp = {email = String; github = String; githubId = Number; name = String;};
30812879 waiting-for-dev =
3082− {email = String; github = String; githubId = Integer; name = String;};
2880+ {email = String; github = String; githubId = Number; name = String;};
30832881 wamserma =
3084− {email = String; github = String; githubId = Integer; name = String;};
3085− waynr = {email = String; github = String; githubId = Integer; name = String;};
2882+ {email = String; github = String; githubId = Number; name = String;};
2883+ waynr = {email = String; github = String; githubId = Number; name = String;};
30862884 wchresta =
3087− {email = String; github = String; githubId = Integer; name = String;};
3088− wd15 = {email = String; github = String; githubId = Integer; name = String;};
2885+ {email = String; github = String; githubId = Number; name = String;};
2886+ wd15 = {email = String; github = String; githubId = Number; name = String;};
30892887 wedens = {email = String; name = String;};
30902888 willibutz =
3091− {email = String; github = String; githubId = Integer; name = String;};
2889+ {email = String; github = String; githubId = Number; name = String;};
30922890 willtim = {email = String; name = String;};
30932891 winden = {email = String; name = String;};
3094− winpat =
3095− {email = String; github = String; githubId = Integer; name = String;};
2892+ winpat = {email = String; github = String; githubId = Number; name = String;};
30962893 wishfort36 =
3097− {email = String; github = String; githubId = Integer; name = String;};
2894+ {email = String; github = String; githubId = Number; name = String;};
30982895 wizeman =
3099− {email = String; github = String; githubId = Integer; name = String;};
3100− wjlroe =
3101− {email = String; github = String; githubId = Integer; name = String;};
2896+ {email = String; github = String; githubId = Number; name = String;};
2897+ wjlroe = {email = String; github = String; githubId = Number; name = String;};
31022898 wmertens =
3103− {email = String; github = String; githubId = Integer; name = String;};
2899+ {email = String; github = String; githubId = Number; name = String;};
31042900 wnklmnn =
3105− {email = String; github = String; githubId = Integer; name = String;};
3106− woffs = {email = String; github = String; githubId = Integer; name = String;};
2901+ {email = String; github = String; githubId = Number; name = String;};
2902+ woffs = {email = String; github = String; githubId = Number; name = String;};
31072903 wohanley =
3108− {email = String; github = String; githubId = Integer; name = String;};
3109− womfoo =
3110− {email = String; github = String; githubId = Integer; name = String;};
2904+ {email = String; github = String; githubId = Number; name = String;};
2905+ womfoo = {email = String; github = String; githubId = Number; name = String;};
31112906 worldofpeace =
3112− {email = String; github = String; githubId = Integer; name = String;};
3113− wscott =
3114− {email = String; github = String; githubId = Integer; name = String;};
2907+ {email = String; github = String; githubId = Number; name = String;};
2908+ wscott = {email = String; github = String; githubId = Number; name = String;};
31152909 wucke13 =
3116− {email = String; github = String; githubId = Integer; name = String;};
2910+ {email = String; github = String; githubId = Number; name = String;};
31172911 wulfsta =
3118− {email = String; github = String; githubId = Integer; name = String;};
3119− wykurz =
3120− {email = String; github = String; githubId = Integer; name = String;};
3121− wyvie = {email = String; github = String; githubId = Integer; name = String;};
2912+ {email = String; github = String; githubId = Number; name = String;};
2913+ wykurz = {email = String; github = String; githubId = Number; name = String;};
2914+ wyvie = {email = String; github = String; githubId = Number; name = String;};
31222915 xaverdh =
3123− {email = String; github = String; githubId = Integer; name = String;};
2916+ {email = String; github = String; githubId = Number; name = String;};
31242917 xavierzwirtz =
3125− {email = String; github = String; githubId = Integer; name = String;};
3126− xbreak =
3127− {email = String; github = String; githubId = Integer; name = String;};
3128− xe = {email = String; github = String; githubId = Integer; name = String;};
3129− xeji = {email = String; github = String; githubId = Integer; name = String;};
3130− xfix = {email = String; github = String; githubId = Integer; name = String;};
2918+ {email = String; github = String; githubId = Number; name = String;};
2919+ xbreak = {email = String; github = String; githubId = Number; name = String;};
2920+ xe = {email = String; github = String; githubId = Number; name = String;};
2921+ xeji = {email = String; github = String; githubId = Number; name = String;};
2922+ xfix = {email = String; github = String; githubId = Number; name = String;};
31312923 xiorcale =
3132− {email = String; github = String; githubId = Integer; name = String;};
2924+ {email = String; github = String; githubId = Number; name = String;};
31332925 xnaveira =
3134− {email = String; github = String; githubId = Integer; name = String;};
3135− xnwdd = {email = String; github = String; githubId = Integer; name = String;};
3136− xrelkd =
3137− {email = String; github = String; githubId = Integer; name = String;};
3138− xurei = {email = String; github = String; githubId = Integer; name = String;};
3139− xvapx = {email = String; github = String; githubId = Integer; name = String;};
2926+ {email = String; github = String; githubId = Number; name = String;};
2927+ xnwdd = {email = String; github = String; githubId = Number; name = String;};
2928+ xrelkd = {email = String; github = String; githubId = Number; name = String;};
2929+ xurei = {email = String; github = String; githubId = Number; name = String;};
2930+ xvapx = {email = String; github = String; githubId = Number; name = String;};
31402931 xwvvvvwx =
3141− {email = String; github = String; githubId = Integer; name = String;};
3142− xzfc = {email = String; github = String; githubId = Integer; name = String;};
3143− y0no = {email = String; github = String; githubId = Integer; name = String;};
3144− yarny = {email = String; github = String; githubId = Integer; name = String;};
3145− yarr = {email = String; github = String; githubId = Integer; name = String;};
2932+ {email = String; github = String; githubId = Number; name = String;};
2933+ xzfc = {email = String; github = String; githubId = Number; name = String;};
2934+ y0no = {email = String; github = String; githubId = Number; name = String;};
2935+ yarny = {email = String; github = String; githubId = Number; name = String;};
2936+ yarr = {email = String; github = String; githubId = Number; name = String;};
31462937 yegortimoshenko =
3147− {email = String; github = String; githubId = Integer; name = String;};
3148− yesbox =
3149− {email = String; github = String; githubId = Integer; name = String;};
2938+ {email = String; github = String; githubId = Number; name = String;};
2939+ yesbox = {email = String; github = String; githubId = Number; name = String;};
31502940 yevhenshymotiuk =
3151− {email = String; github = String; githubId = Integer; name = String;};
2941+ {email = String; github = String; githubId = Number; name = String;};
31522942 ylwghst =
3153− {email = String; github = String; githubId = Integer; name = String;};
2943+ {email = String; github = String; githubId = Number; name = String;};
31542944 ymarkus =
3155− {email = String; github = String; githubId = Integer; name = String;};
2945+ {email = String; github = String; githubId = Number; name = String;};
31562946 ymeister =
3157− {email = String; github = String; githubId = Integer; name = String;};
3158− yochai =
3159− {email = String; github = String; githubId = Integer; name = String;};
2947+ {email = String; github = String; githubId = Number; name = String;};
2948+ yochai = {email = String; github = String; githubId = Number; name = String;};
31602949 yorickvp =
3161− {email = String; github = String; githubId = Integer; name = String;};
3162− yrashk =
3163− {email = String; github = String; githubId = Integer; name = String;};
3164− ysndr = {email = String; github = String; githubId = Integer; name = String;};
2950+ {email = String; github = String; githubId = Number; name = String;};
2951+ yrashk = {email = String; github = String; githubId = Number; name = String;};
2952+ ysndr = {email = String; github = String; githubId = Number; name = String;};
31652953 yuriaisaka =
3166− {email = String; github = String; githubId = Integer; name = String;};
2954+ {email = String; github = String; githubId = Number; name = String;};
31672955 yurrriq =
3168− {email = String; github = String; githubId = Integer; name = String;};
2956+ {email = String; github = String; githubId = Number; name = String;};
31692957 yusdacra =
31702958 { email = String;
31712959 github = String;
3172− githubId = Integer;
2960+ githubId = Number;
31732961 keys = [{fingerprint = String; longkeyid = String;}];
31742962 name = String;
31752963 };
3176− yvesf = {email = String; github = String; githubId = Integer; name = String;};
3177− yvt = {email = String; github = String; githubId = Integer; name = String;};
2964+ yvesf = {email = String; github = String; githubId = Number; name = String;};
2965+ yvt = {email = String; github = String; githubId = Number; name = String;};
31782966 zachcoyle =
3179− {email = String; github = String; githubId = Integer; name = String;};
3180− zagy = {email = String; github = String; githubId = Integer; name = String;};
3181− zakkor =
3182− {email = String; github = String; githubId = Integer; name = String;};
2967+ {email = String; github = String; githubId = Number; name = String;};
2968+ zagy = {email = String; github = String; githubId = Number; name = String;};
2969+ zakkor = {email = String; github = String; githubId = Number; name = String;};
31832970 zalakain =
3184− {email = String; github = String; githubId = Integer; name = String;};
2971+ {email = String; github = String; githubId = Number; name = String;};
31852972 zaninime =
3186− {email = String; github = String; githubId = Integer; name = String;};
2973+ {email = String; github = String; githubId = Number; name = String;};
31872974 zarelit =
3188− {email = String; github = String; githubId = Integer; name = String;};
2975+ {email = String; github = String; githubId = Number; name = String;};
31892976 zauberpony =
3190− {email = String; github = String; githubId = Integer; name = String;};
2977+ {email = String; github = String; githubId = Number; name = String;};
31912978 zef = {email = String; name = String;};
31922979 zeratax =
31932980 { email = String;
31942981 github = String;
3195− githubId = Integer;
2982+ githubId = Number;
31962983 keys = [{fingerprint = String; longkeyid = String;}];
31972984 name = String;
31982985 };
3199− zfnmxt =
3200− {email = String; github = String; githubId = Integer; name = String;};
2986+ zfnmxt = {email = String; github = String; githubId = Number; name = String;};
32012987 zgrannan =
3202− {email = String; github = String; githubId = Integer; name = String;};
2988+ {email = String; github = String; githubId = Number; name = String;};
32032989 zimbatm =
3204− {email = String; github = String; githubId = Integer; name = String;};
3205− zohl = {email = String; github = String; githubId = Integer; name = String;};
2990+ {email = String; github = String; githubId = Number; name = String;};
2991+ zohl = {email = String; github = String; githubId = Number; name = String;};
32062992 zokrezyl =
3207− {email = String; github = String; githubId = Integer; name = String;};
2993+ {email = String; github = String; githubId = Number; name = String;};
32082994 zookatron =
3209− {email = String; github = String; githubId = Integer; name = String;};
2995+ {email = String; github = String; githubId = Number; name = String;};
32102996 zoomulator =
3211− {email = String; github = String; githubId = Integer; name = String;};
3212− zowoq = {email = String; github = String; githubId = Integer; name = String;};
3213− zraexy =
3214− {email = String; github = String; githubId = Integer; name = String;};
3215− zx2c4 = {email = String; github = String; githubId = Integer; name = String;};
2997+ {email = String; github = String; githubId = Number; name = String;};
2998+ zowoq = {email = String; github = String; githubId = Number; name = String;};
2999+ zraexy = {email = String; github = String; githubId = Number; name = String;};
3000+ zx2c4 = {email = String; github = String; githubId = Number; name = String;};
32163001 zzamboni =
3217− {email = String; github = String; githubId = Integer; name = String;};
3002+ {email = String; github = String; githubId = Number; name = String;};
32183003}
test/golden/importless/make-dbus-conf.txt+2−2
@@ -7,11 +7,11 @@
77 allowSubstitutes = Bool;
88 nativeBuildInputs = [β];
99 preferLocalBuild = Bool;
10− serviceDirectories = ε;
10+ serviceDirectories = [ε];
1111 suidHelper = String;
1212 } ->
1313 String -> ζ;
14− serviceDirectories = ε;
14+ serviceDirectories = [ε];
1515 suidHelper = String;
1616 writeText = String -> String -> δ;
1717} ->
test/golden/importless/make-peer.txt+4−6
@@ -14,9 +14,9 @@
1414 { interfaces =
1515 { eth1 =
1616 { ipv4 =
17− {addresses = [{address = γ; prefixLength = Integer;}];};
17+ {addresses = [{address = γ; prefixLength = Number;}];};
1818 ipv6 =
19− {addresses = [{address = δ; prefixLength = Integer;}];};
19+ {addresses = [{address = δ; prefixLength = Number;}];};
2020 };
2121 };
2222 useDHCP = Bool;
@@ -39,10 +39,8 @@
3939 networking =
4040 { interfaces =
4141 { eth1 =
42− { ipv4 =
43− {addresses = [{address = γ; prefixLength = Integer;}];};
44− ipv6 =
45− {addresses = [{address = δ; prefixLength = Integer;}];};
42+ { ipv4 = {addresses = [{address = γ; prefixLength = Number;}];};
43+ ipv6 = {addresses = [{address = δ; prefixLength = Number;}];};
4644 };
4745 };
4846 useDHCP = Bool;
test/golden/importless/make-squashfs.txt+1−1
@@ -6,6 +6,6 @@
66 comp = String;
77 squashfsTools = β;
88 stdenv = α;
9− storeContents = ε;
9+ storeContents = [ε];
1010} ->
1111γ
test/golden/importless/man.txt+1−1
@@ -14,7 +14,7 @@
1414 maintainers = [ε];
1515 };
1616 nativeBuildInputs = δ;
17− patches = [Path];
17+ patches = [String];
1818 pname = String;
1919 preBuild = String;
2020 propagatedBuildInputs = [γ];
test/golden/importless/map-set.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/marshal.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/master.txtdeleted−56
@@ -1,56 +0,0 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.environment = ε,
6− β.services = ζ,
7− δ.writeText = String -> η -> θ,
8− γ.aneeshusa = ι,
9− γ.builtins = κ,
10− γ.cfg = λ,
11− γ.maintainers = μ,
12− γ.mkEnableOption = String -> ν,
13− γ.mkIf =
14− ξ ->
15− { environment =
16− {etc = {salt/master = {source = θ;};}; systemPackages = [ο];};
17− systemd =
18− { services =
19− { salt-master =
20− { after = [String];
21− description = String;
22− path = [π];
23− restartTriggers = [ρ];
24− serviceConfig =
25− { ExecStart = String;
26− LimitNOFILE = Integer;
27− NotifyAccess = String;
28− Type = String;
29− };
30− wantedBy = [String];
31− };
32− };
33− };
34− } ->
35− σ,
36− γ.mkOption = {default = {}; description = String; type = τ;} -> υ,
37− γ.recursiveUpdate = {default_include = String; pki_dir = String;} -> φ -> χ,
38− γ.salt = ο,
39− γ.types = ψ,
40− γ.utillinux = π,
41− λ.configuration = φ,
42− ζ.salt = ω,
43− ω.master = α1,
44− α1.enable = ξ,
45− κ.toJSON = χ -> η,
46− ε.etc = β1,
47− β1.salt/master = γ1,
48− γ1.source = ρ,
49− ψ.attrs = τ
50−) =>
51−α ->
52−{ config = σ;
53− meta = {maintainers = [ι];};
54− options =
55− {services = {salt = {master = {configuration = υ; enable = ν;};};};};
56−}
test/golden/importless/material-theme.txt+1−1
@@ -7,7 +7,7 @@
77 description = String;
88 homepage = String;
99 license = δ;
10− maintainers = ∀ α. α;
10+ maintainers = ∀ α. [α];
1111 platforms = ε;
1212 };
1313 patchPhase = String;
test/golden/importless/maven-build.txt+17−20
@@ -1,24 +1,21 @@
11∀ α β γ δ ε ζ.
2−( ( { finalPhase = String;
3− mvnAssembly = String;
4− mvnCheckstyle = String;
5− mvnCompile = String;
6− mvnJar = String;
7− mvnJavadoc = String;
8− mvnRelease = String;
9− mvnTest = String;
10− mvnTestCompile = String;
11− mvnTestJar = String;
12− name = α;
13− phases = String;
14− setupPhase = String;
15− src = β;
16− }
17− ) //
18− ( γ
19− ) ~
20− ( δ
21− ),
2+( { finalPhase = String;
3+ mvnAssembly = String;
4+ mvnCheckstyle = String;
5+ mvnCompile = String;
6+ mvnJar = String;
7+ mvnJavadoc = String;
8+ mvnRelease = String;
9+ mvnTest = String;
10+ mvnTestCompile = String;
11+ mvnTestJar = String;
12+ name = α;
13+ phases = String;
14+ setupPhase = String;
15+ src = β;
16+ } //
17+ γ ~
18+ δ,
2219 γ.?doCheckstyle = Bool,
2320 γ.?doJavadoc = Bool,
2421 γ.?doRelease = Bool,
test/golden/importless/mavenPlugins.txt+1−1
@@ -1,7 +1,7 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1 δ1 ε1 ζ1 η1 θ1 ι1 κ1
22λ1 μ1 ν1 ξ1 ο1 π1 ρ1 σ1 τ1.
33( α.callPackage =
4− Path ->
4+ String ->
55 {} ->
66 { artifactId = String;
77 groupId = String;
test/golden/importless/md5.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/mem.txt+1−1
@@ -1,5 +1,5 @@
11∀ β γ δ ε ζ η θ ι κ.
2−( (β) // ({description = String;}) ~ (γ),
2+( β // {description = String;} ~ γ,
33 δ.optional = Bool -> ε -> ζ,
44 η.meta = β,
55 η.src = θ,
test/golden/importless/metabang-bind.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/metatilities-base.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/minion.txtdeleted−53
@@ -1,53 +0,0 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.environment = ε,
6− β.services = ζ,
7− δ.writeText = String -> η -> θ,
8− γ.builtins = ι,
9− γ.cfg = κ,
10− γ.mkEnableOption = String -> λ,
11− γ.mkIf =
12− μ ->
13− { environment =
14− {etc = {salt/minion = {source = θ;};}; systemPackages = [ν];};
15− systemd =
16− { services =
17− { salt-minion =
18− { after = [String];
19− description = String;
20− path = [ξ];
21− restartTriggers = [ο];
22− serviceConfig =
23− { ExecStart = String;
24− LimitNOFILE = Integer;
25− NotifyAccess = String;
26− Type = String;
27− };
28− wantedBy = [String];
29− };
30− };
31− };
32− } ->
33− π,
34− γ.mkOption = {default = {}; description = String; type = ρ;} -> σ,
35− γ.recursiveUpdate = {default_include = String; pki_dir = String;} -> τ -> υ,
36− γ.salt = ν,
37− γ.types = φ,
38− γ.utillinux = ξ,
39− κ.configuration = τ,
40− ζ.salt = χ,
41− χ.minion = ψ,
42− ψ.enable = μ,
43− ι.toJSON = υ -> η,
44− ε.etc = ω,
45− ω.salt/minion = α1,
46− α1.source = ο,
47− φ.attrs = ρ
48−) =>
49−α ->
50−{ config = π;
51− options =
52− {services = {salt = {minion = {configuration = σ; enable = λ;};};};};
53−}
test/golden/importless/misc-extensions.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/mjpg-streamer.txt+1−1
@@ -15,7 +15,7 @@
1515 serviceConfig =
1616 { Group = ι;
1717 Restart = String;
18− RestartSec = Integer;
18+ RestartSec = Number;
1919 User = κ;
2020 };
2121 wantedBy = [String];
test/golden/importless/mk-string-metrics.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/modemmanager-qt.txtnew file+15
@@ -0,0 +1,15 @@
1+∀ α β γ δ ε ζ η.
2+(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3+ lib = α;
4+ mkDerivation =
5+ { meta = {broken = Bool; maintainers = [ε];};
6+ name = String;
7+ nativeBuildInputs = [ζ];
8+ outputs = [String];
9+ propagatedBuildInputs = [γ];
10+ } ->
11+ η;
12+ modemmanager = γ;
13+ qtbase = γ;
14+} ->
15+η
test/golden/importless/modemmanager.txt+1−1
@@ -9,7 +9,7 @@
99) =>
1010{config = α; lib = γ; options = κ; pkgs = λ;} ->
1111{ extraOpts = {refreshRate = ε;};
12− port = Integer;
12+ port = Number;
1313 serviceOpts =
1414 {serviceConfig = {ExecStart = String; SupplementaryGroups = String;};};
1515}
test/golden/importless/module-list.txt+1−1
@@ -1 +1 @@
1−[Path]
1+[String]
test/golden/importless/modules-closure.txt+1−1
@@ -2,7 +2,7 @@
22( α.mkDerivation =
33 { allowMissing = Bool;
44 allowedReferences = [String];
5− builder = Path;
5+ builder = String;
66 firmware = β;
77 kernel = γ;
88 name = String;
test/golden/importless/modules.txt+163−163
@@ -12,201 +12,201 @@
1212 postgresql = ι;
1313} ->
1414{ applications =
15− { abstraction = ∀ α. {inputs = α; path = String;};
15+ { abstraction = ∀ α. {inputs = [α]; path = String;};
1616 av = {inputs = [δ]; path = String;};
17− avmd = ∀ α. {inputs = α; path = String;};
18− bert = ∀ α. {inputs = α; path = String;};
19− blacklist = ∀ α. {inputs = α; path = String;};
20− callcenter = ∀ α. {inputs = α; path = String;};
21− cidlookup = ∀ α. {inputs = α; path = String;};
22− cluechoo = ∀ α. {inputs = α; path = String;};
23− commands = ∀ α. {inputs = α; path = String;};
24− conference = ∀ α. {inputs = α; path = String;};
17+ avmd = ∀ α. {inputs = [α]; path = String;};
18+ bert = ∀ α. {inputs = [α]; path = String;};
19+ blacklist = ∀ α. {inputs = [α]; path = String;};
20+ callcenter = ∀ α. {inputs = [α]; path = String;};
21+ cidlookup = ∀ α. {inputs = [α]; path = String;};
22+ cluechoo = ∀ α. {inputs = [α]; path = String;};
23+ commands = ∀ α. {inputs = [α]; path = String;};
24+ conference = ∀ α. {inputs = [α]; path = String;};
2525 curl = {inputs = [γ]; path = String;};
26− cv = ∀ α. {inputs = α; path = String;};
27− db = ∀ α. {inputs = α; path = String;};
28− directory = ∀ α. {inputs = α; path = String;};
29− distributor = ∀ α. {inputs = α; path = String;};
30− dptools = ∀ α. {inputs = α; path = String;};
31− easyroute = ∀ α. {inputs = α; path = String;};
32− enum = ∀ α. {inputs = α; path = String;};
33− esf = ∀ α. {inputs = α; path = String;};
34− esl = ∀ α. {inputs = α; path = String;};
35− expr = ∀ α. {inputs = α; path = String;};
36− fifo = ∀ α. {inputs = α; path = String;};
37− fsk = ∀ α. {inputs = α; path = String;};
38− fsv = ∀ α. {inputs = α; path = String;};
39− hash = ∀ α. {inputs = α; path = String;};
40− hiredis = ∀ α. {inputs = α; path = String;};
41− httapi = ∀ α. {inputs = α; path = String;};
42− http_cache = ∀ α. {inputs = α; path = String;};
43− ladspa = ∀ α. {inputs = α; path = String;};
44− lcr = ∀ α. {inputs = α; path = String;};
45− memcache = ∀ α. {inputs = α; path = String;};
46− mongo = ∀ α. {inputs = α; path = String;};
47− mp4 = ∀ α. {inputs = α; path = String;};
48− mp4v2 = ∀ α. {inputs = α; path = String;};
49− nibblebill = ∀ α. {inputs = α; path = String;};
50− oreka = ∀ α. {inputs = α; path = String;};
51− osp = ∀ α. {inputs = α; path = String;};
52− prefix = ∀ α. {inputs = α; path = String;};
53− rad_auth = ∀ α. {inputs = α; path = String;};
54− redis = ∀ α. {inputs = α; path = String;};
55− rss = ∀ α. {inputs = α; path = String;};
56− signalwire = ∀ α. {inputs = α; path = String;};
57− sms = ∀ α. {inputs = α; path = String;};
58− sms_flowroute = ∀ α. {inputs = α; path = String;};
59− snapshot = ∀ α. {inputs = α; path = String;};
60− snom = ∀ α. {inputs = α; path = String;};
61− sonar = ∀ α. {inputs = α; path = String;};
62− soundtouch = ∀ α. {inputs = α; path = String;};
63− spandsp = ∀ α. {inputs = α; path = String;};
64− spy = ∀ α. {inputs = α; path = String;};
65− stress = ∀ α. {inputs = α; path = String;};
66− translate = ∀ α. {inputs = α; path = String;};
67− valet_parking = ∀ α. {inputs = α; path = String;};
68− video_filter = ∀ α. {inputs = α; path = String;};
69− vmd = ∀ α. {inputs = α; path = String;};
70− voicemail = ∀ α. {inputs = α; path = String;};
71− voicemail_ivr = ∀ α. {inputs = α; path = String;};
26+ cv = ∀ α. {inputs = [α]; path = String;};
27+ db = ∀ α. {inputs = [α]; path = String;};
28+ directory = ∀ α. {inputs = [α]; path = String;};
29+ distributor = ∀ α. {inputs = [α]; path = String;};
30+ dptools = ∀ α. {inputs = [α]; path = String;};
31+ easyroute = ∀ α. {inputs = [α]; path = String;};
32+ enum = ∀ α. {inputs = [α]; path = String;};
33+ esf = ∀ α. {inputs = [α]; path = String;};
34+ esl = ∀ α. {inputs = [α]; path = String;};
35+ expr = ∀ α. {inputs = [α]; path = String;};
36+ fifo = ∀ α. {inputs = [α]; path = String;};
37+ fsk = ∀ α. {inputs = [α]; path = String;};
38+ fsv = ∀ α. {inputs = [α]; path = String;};
39+ hash = ∀ α. {inputs = [α]; path = String;};
40+ hiredis = ∀ α. {inputs = [α]; path = String;};
41+ httapi = ∀ α. {inputs = [α]; path = String;};
42+ http_cache = ∀ α. {inputs = [α]; path = String;};
43+ ladspa = ∀ α. {inputs = [α]; path = String;};
44+ lcr = ∀ α. {inputs = [α]; path = String;};
45+ memcache = ∀ α. {inputs = [α]; path = String;};
46+ mongo = ∀ α. {inputs = [α]; path = String;};
47+ mp4 = ∀ α. {inputs = [α]; path = String;};
48+ mp4v2 = ∀ α. {inputs = [α]; path = String;};
49+ nibblebill = ∀ α. {inputs = [α]; path = String;};
50+ oreka = ∀ α. {inputs = [α]; path = String;};
51+ osp = ∀ α. {inputs = [α]; path = String;};
52+ prefix = ∀ α. {inputs = [α]; path = String;};
53+ rad_auth = ∀ α. {inputs = [α]; path = String;};
54+ redis = ∀ α. {inputs = [α]; path = String;};
55+ rss = ∀ α. {inputs = [α]; path = String;};
56+ signalwire = ∀ α. {inputs = [α]; path = String;};
57+ sms = ∀ α. {inputs = [α]; path = String;};
58+ sms_flowroute = ∀ α. {inputs = [α]; path = String;};
59+ snapshot = ∀ α. {inputs = [α]; path = String;};
60+ snom = ∀ α. {inputs = [α]; path = String;};
61+ sonar = ∀ α. {inputs = [α]; path = String;};
62+ soundtouch = ∀ α. {inputs = [α]; path = String;};
63+ spandsp = ∀ α. {inputs = [α]; path = String;};
64+ spy = ∀ α. {inputs = [α]; path = String;};
65+ stress = ∀ α. {inputs = [α]; path = String;};
66+ translate = ∀ α. {inputs = [α]; path = String;};
67+ valet_parking = ∀ α. {inputs = [α]; path = String;};
68+ video_filter = ∀ α. {inputs = [α]; path = String;};
69+ vmd = ∀ α. {inputs = [α]; path = String;};
70+ voicemail = ∀ α. {inputs = [α]; path = String;};
71+ voicemail_ivr = ∀ α. {inputs = [α]; path = String;};
7272 };
7373 ast_tts =
74− { cepstral = ∀ α. {inputs = α; path = String;};
75− flite = ∀ α. {inputs = α; path = String;};
76− pocketsphinx = ∀ α. {inputs = α; path = String;};
77− tts_commandline = ∀ α. {inputs = α; path = String;};
78− unimrcp = ∀ α. {inputs = α; path = String;};
74+ { cepstral = ∀ α. {inputs = [α]; path = String;};
75+ flite = ∀ α. {inputs = [α]; path = String;};
76+ pocketsphinx = ∀ α. {inputs = [α]; path = String;};
77+ tts_commandline = ∀ α. {inputs = [α]; path = String;};
78+ unimrcp = ∀ α. {inputs = [α]; path = String;};
7979 };
8080 codecs =
81− { amr = ∀ α. {inputs = α; path = String;};
82− amrwb = ∀ α. {inputs = α; path = String;};
83− b64 = ∀ α. {inputs = α; path = String;};
84− bv = ∀ α. {inputs = α; path = String;};
85− clearmode = ∀ α. {inputs = α; path = String;};
86− codec2 = ∀ α. {inputs = α; path = String;};
87− com_g729 = ∀ α. {inputs = α; path = String;};
88− dahdi_codec = ∀ α. {inputs = α; path = String;};
89− g723_1 = ∀ α. {inputs = α; path = String;};
90− g729 = ∀ α. {inputs = α; path = String;};
91− h26x = ∀ α. {inputs = α; path = String;};
92− ilbc = ∀ α. {inputs = α; path = String;};
93− isac = ∀ α. {inputs = α; path = String;};
94− mp4v = ∀ α. {inputs = α; path = String;};
81+ { amr = ∀ α. {inputs = [α]; path = String;};
82+ amrwb = ∀ α. {inputs = [α]; path = String;};
83+ b64 = ∀ α. {inputs = [α]; path = String;};
84+ bv = ∀ α. {inputs = [α]; path = String;};
85+ clearmode = ∀ α. {inputs = [α]; path = String;};
86+ codec2 = ∀ α. {inputs = [α]; path = String;};
87+ com_g729 = ∀ α. {inputs = [α]; path = String;};
88+ dahdi_codec = ∀ α. {inputs = [α]; path = String;};
89+ g723_1 = ∀ α. {inputs = [α]; path = String;};
90+ g729 = ∀ α. {inputs = [α]; path = String;};
91+ h26x = ∀ α. {inputs = [α]; path = String;};
92+ ilbc = ∀ α. {inputs = [α]; path = String;};
93+ isac = ∀ α. {inputs = [α]; path = String;};
94+ mp4v = ∀ α. {inputs = [α]; path = String;};
9595 opus = {inputs = [η]; path = String;};
96− sangoma_codec = ∀ α. {inputs = α; path = String;};
97− silk = ∀ α. {inputs = α; path = String;};
98− siren = ∀ α. {inputs = α; path = String;};
99− theora = ∀ α. {inputs = α; path = String;};
96+ sangoma_codec = ∀ α. {inputs = [α]; path = String;};
97+ silk = ∀ α. {inputs = [α]; path = String;};
98+ siren = ∀ α. {inputs = [α]; path = String;};
99+ theora = ∀ α. {inputs = [α]; path = String;};
100100 };
101101 databases =
102102 { mariadb = {inputs = [ζ]; path = String;};
103103 pgsql = {inputs = [ι]; path = String;};
104104 };
105105 dialplans =
106− { asterisk = ∀ α. {inputs = α; path = String;};
107− directory = ∀ α. {inputs = α; path = String;};
108− xml = ∀ α. {inputs = α; path = String;};
106+ { asterisk = ∀ α. {inputs = [α]; path = String;};
107+ directory = ∀ α. {inputs = [α]; path = String;};
108+ xml = ∀ α. {inputs = [α]; path = String;};
109109 };
110− directories = {ldap = ∀ α. {inputs = α; path = String;};};
110+ directories = {ldap = ∀ α. {inputs = [α]; path = String;};};
111111 endpoints =
112− { alsa = ∀ α. {inputs = α; path = String;};
113− dingaling = ∀ α. {inputs = α; path = String;};
112+ { alsa = ∀ α. {inputs = [α]; path = String;};
113+ dingaling = ∀ α. {inputs = [α]; path = String;};
114114 gsmopen = {inputs = [ε]; path = String;};
115− h323 = ∀ α. {inputs = α; path = String;};
116− khomp = ∀ α. {inputs = α; path = String;};
117− loopback = ∀ α. {inputs = α; path = String;};
118− opal = ∀ α. {inputs = α; path = String;};
119− portaudio = ∀ α. {inputs = α; path = String;};
120− rtc = ∀ α. {inputs = α; path = String;};
121− rtmp = ∀ α. {inputs = α; path = String;};
122− skinny = ∀ α. {inputs = α; path = String;};
123− sofia = ∀ α. {inputs = α; path = String;};
124− verto = ∀ α. {inputs = α; path = String;};
115+ h323 = ∀ α. {inputs = [α]; path = String;};
116+ khomp = ∀ α. {inputs = [α]; path = String;};
117+ loopback = ∀ α. {inputs = [α]; path = String;};
118+ opal = ∀ α. {inputs = [α]; path = String;};
119+ portaudio = ∀ α. {inputs = [α]; path = String;};
120+ rtc = ∀ α. {inputs = [α]; path = String;};
121+ rtmp = ∀ α. {inputs = [α]; path = String;};
122+ skinny = ∀ α. {inputs = [α]; path = String;};
123+ sofia = ∀ α. {inputs = [α]; path = String;};
124+ verto = ∀ α. {inputs = [α]; path = String;};
125125 };
126126 event_handlers =
127− { amqp = ∀ α. {inputs = α; path = String;};
128− cdr_csv = ∀ α. {inputs = α; path = String;};
129− cdr_mongodb = ∀ α. {inputs = α; path = String;};
130− cdr_pg_csv = ∀ α. {inputs = α; path = String;};
131− cdr_sqlite = ∀ α. {inputs = α; path = String;};
132− erlang_event = ∀ α. {inputs = α; path = String;};
133− event_multicast = ∀ α. {inputs = α; path = String;};
134− event_socket = ∀ α. {inputs = α; path = String;};
135− event_zmq = ∀ α. {inputs = α; path = String;};
136− fail2ban = ∀ α. {inputs = α; path = String;};
137− format_cdr = ∀ α. {inputs = α; path = String;};
138− json_cdr = ∀ α. {inputs = α; path = String;};
139− kazoo = ∀ α. {inputs = α; path = String;};
140− odbc_cdr = ∀ α. {inputs = α; path = String;};
141− radius_cdr = ∀ α. {inputs = α; path = String;};
142− rayo = ∀ α. {inputs = α; path = String;};
143− smpp = ∀ α. {inputs = α; path = String;};
144− snmp = ∀ α. {inputs = α; path = String;};
127+ { amqp = ∀ α. {inputs = [α]; path = String;};
128+ cdr_csv = ∀ α. {inputs = [α]; path = String;};
129+ cdr_mongodb = ∀ α. {inputs = [α]; path = String;};
130+ cdr_pg_csv = ∀ α. {inputs = [α]; path = String;};
131+ cdr_sqlite = ∀ α. {inputs = [α]; path = String;};
132+ erlang_event = ∀ α. {inputs = [α]; path = String;};
133+ event_multicast = ∀ α. {inputs = [α]; path = String;};
134+ event_socket = ∀ α. {inputs = [α]; path = String;};
135+ event_zmq = ∀ α. {inputs = [α]; path = String;};
136+ fail2ban = ∀ α. {inputs = [α]; path = String;};
137+ format_cdr = ∀ α. {inputs = [α]; path = String;};
138+ json_cdr = ∀ α. {inputs = [α]; path = String;};
139+ kazoo = ∀ α. {inputs = [α]; path = String;};
140+ odbc_cdr = ∀ α. {inputs = [α]; path = String;};
141+ radius_cdr = ∀ α. {inputs = [α]; path = String;};
142+ rayo = ∀ α. {inputs = [α]; path = String;};
143+ smpp = ∀ α. {inputs = [α]; path = String;};
144+ snmp = ∀ α. {inputs = [α]; path = String;};
145145 };
146146 formats =
147− { imagick = ∀ α. {inputs = α; path = String;};
148− local_stream = ∀ α. {inputs = α; path = String;};
149− native_file = ∀ α. {inputs = α; path = String;};
147+ { imagick = ∀ α. {inputs = [α]; path = String;};
148+ local_stream = ∀ α. {inputs = [α]; path = String;};
149+ native_file = ∀ α. {inputs = [α]; path = String;};
150150 opusfile = {inputs = [η]; path = String;};
151− png = ∀ α. {inputs = α; path = String;};
152− portaudio_stream = ∀ α. {inputs = α; path = String;};
153− shell_stream = ∀ α. {inputs = α; path = String;};
154− shout = ∀ α. {inputs = α; path = String;};
155− sndfile = ∀ α. {inputs = α; path = String;};
156− ssml = ∀ α. {inputs = α; path = String;};
157− tone_stream = ∀ α. {inputs = α; path = String;};
158− vlc = ∀ α. {inputs = α; path = String;};
159− webm = ∀ α. {inputs = α; path = String;};
151+ png = ∀ α. {inputs = [α]; path = String;};
152+ portaudio_stream = ∀ α. {inputs = [α]; path = String;};
153+ shell_stream = ∀ α. {inputs = [α]; path = String;};
154+ shout = ∀ α. {inputs = [α]; path = String;};
155+ sndfile = ∀ α. {inputs = [α]; path = String;};
156+ ssml = ∀ α. {inputs = [α]; path = String;};
157+ tone_stream = ∀ α. {inputs = [α]; path = String;};
158+ vlc = ∀ α. {inputs = [α]; path = String;};
159+ webm = ∀ α. {inputs = [α]; path = String;};
160160 };
161− freetdm = ∀ β. {inputs = β; path = String;};
161+ freetdm = ∀ β. {inputs = [β]; path = String;};
162162 languages =
163− { basic = ∀ α. {inputs = α; path = String;};
164− java = ∀ α. {inputs = α; path = String;};
163+ { basic = ∀ α. {inputs = [α]; path = String;};
164+ java = ∀ α. {inputs = [α]; path = String;};
165165 lua = {inputs = [θ]; path = String;};
166− managed = ∀ α. {inputs = α; path = String;};
167− perl = ∀ α. {inputs = α; path = String;};
168− python = ∀ α. {inputs = α; path = String;};
169− v8 = ∀ α. {inputs = α; path = String;};
170− yaml = ∀ α. {inputs = α; path = String;};
166+ managed = ∀ α. {inputs = [α]; path = String;};
167+ perl = ∀ α. {inputs = [α]; path = String;};
168+ python = ∀ α. {inputs = [α]; path = String;};
169+ v8 = ∀ α. {inputs = [α]; path = String;};
170+ yaml = ∀ α. {inputs = [α]; path = String;};
171171 };
172172 loggers =
173− { console = ∀ α. {inputs = α; path = String;};
174− graylog2 = ∀ α. {inputs = α; path = String;};
175− logfile = ∀ α. {inputs = α; path = String;};
176− raven = ∀ α. {inputs = α; path = String;};
177− syslog = ∀ α. {inputs = α; path = String;};
173+ { console = ∀ α. {inputs = [α]; path = String;};
174+ graylog2 = ∀ α. {inputs = [α]; path = String;};
175+ logfile = ∀ α. {inputs = [α]; path = String;};
176+ raven = ∀ α. {inputs = [α]; path = String;};
177+ syslog = ∀ α. {inputs = [α]; path = String;};
178178 };
179179 say =
180− { de = ∀ α. {inputs = α; path = String;};
181− en = ∀ α. {inputs = α; path = String;};
182− es = ∀ α. {inputs = α; path = String;};
183− es_ar = ∀ α. {inputs = α; path = String;};
184− fa = ∀ α. {inputs = α; path = String;};
185− fr = ∀ α. {inputs = α; path = String;};
186− he = ∀ α. {inputs = α; path = String;};
187− hr = ∀ α. {inputs = α; path = String;};
188− hu = ∀ α. {inputs = α; path = String;};
189− it = ∀ α. {inputs = α; path = String;};
190− ja = ∀ α. {inputs = α; path = String;};
191− nl = ∀ α. {inputs = α; path = String;};
192− pl = ∀ α. {inputs = α; path = String;};
193− pt = ∀ α. {inputs = α; path = String;};
194− ru = ∀ α. {inputs = α; path = String;};
195− sv = ∀ α. {inputs = α; path = String;};
196− th = ∀ α. {inputs = α; path = String;};
197− zh = ∀ α. {inputs = α; path = String;};
180+ { de = ∀ α. {inputs = [α]; path = String;};
181+ en = ∀ α. {inputs = [α]; path = String;};
182+ es = ∀ α. {inputs = [α]; path = String;};
183+ es_ar = ∀ α. {inputs = [α]; path = String;};
184+ fa = ∀ α. {inputs = [α]; path = String;};
185+ fr = ∀ α. {inputs = [α]; path = String;};
186+ he = ∀ α. {inputs = [α]; path = String;};
187+ hr = ∀ α. {inputs = [α]; path = String;};
188+ hu = ∀ α. {inputs = [α]; path = String;};
189+ it = ∀ α. {inputs = [α]; path = String;};
190+ ja = ∀ α. {inputs = [α]; path = String;};
191+ nl = ∀ α. {inputs = [α]; path = String;};
192+ pl = ∀ α. {inputs = [α]; path = String;};
193+ pt = ∀ α. {inputs = [α]; path = String;};
194+ ru = ∀ α. {inputs = [α]; path = String;};
195+ sv = ∀ α. {inputs = [α]; path = String;};
196+ th = ∀ α. {inputs = [α]; path = String;};
197+ zh = ∀ α. {inputs = [α]; path = String;};
198198 };
199199 timers =
200− { posix_timer = ∀ α. {inputs = α; path = String;};
201− timerfd = ∀ α. {inputs = α; path = String;};
200+ { posix_timer = ∀ α. {inputs = [α]; path = String;};
201+ timerfd = ∀ α. {inputs = [α]; path = String;};
202202 };
203203 xml_int =
204− { cdr = ∀ α. {inputs = α; path = String;};
204+ { cdr = ∀ α. {inputs = [α]; path = String;};
205205 curl = {inputs = [γ]; path = String;};
206− ldap = ∀ α. {inputs = α; path = String;};
207− odbc = ∀ α. {inputs = α; path = String;};
208− radius = ∀ α. {inputs = α; path = String;};
209− rpc = ∀ α. {inputs = α; path = String;};
210− scgi = ∀ α. {inputs = α; path = String;};
206+ ldap = ∀ α. {inputs = [α]; path = String;};
207+ odbc = ∀ α. {inputs = [α]; path = String;};
208+ radius = ∀ α. {inputs = [α]; path = String;};
209+ rpc = ∀ α. {inputs = [α]; path = String;};
210+ scgi = ∀ α. {inputs = [α]; path = String;};
211211 };
212212}
test/golden/importless/moodle-utils.txt+9−12
@@ -1,16 +1,13 @@
11∀ ε ζ η θ ι κ λ μ ν ξ ο.
2−( ( ε
3− ) //
4− ( { buildInputs = [ζ];
5− buildPhase = η;
6− configurePhase = θ;
7− installPhase = String;
8− name = ι;
9− pluginType = κ;
10− }
11− ) ~
12− ( λ
13− ),
2+( ε //
3+ { buildInputs = [ζ];
4+ buildPhase = η;
5+ configurePhase = θ;
6+ installPhase = String;
7+ name = ι;
8+ pluginType = κ;
9+ } ~
10+ λ,
1411 μ.?buildInputs = [ζ],
1512 ν.stdenv = ξ,
1613 ν.unzip = ζ,
test/golden/importless/mt19937.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/mullvad-vpn.txt+3−3
@@ -16,9 +16,9 @@
1616 serviceConfig =
1717 { ExecStart = String;
1818 Restart = String;
19− RestartSec = Integer;
20− StartLimitBurst = Integer;
21− StartLimitIntervalSec = Integer;
19+ RestartSec = Number;
20+ StartLimitBurst = Number;
21+ StartLimitIntervalSec = Number;
2222 };
2323 wantedBy = [String];
2424 wants = [String];
test/golden/importless/named-readtables.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/net_dot_didierverna_dot_asdf-flv.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/netboot.txt+2−2
@@ -7,7 +7,7 @@
77 β.system = η,
88 γ.literalExample = String -> θ,
99 γ.mkOption = {description = String; example = θ;} -> ι,
10− δ.callPackage = Path -> {storeContents = κ;} -> λ,
10+ δ.callPackage = String -> {storeContents = κ;} -> λ,
1111 δ.grub2 = μ,
1212 δ.grub2_efi = μ,
1313 δ.makeInitrd =
@@ -34,7 +34,7 @@
3434 { boot =
3535 { initrd =
3636 {availableKernelModules = [String]; kernelModules = [String];};
37− loader = {grub = {enable = Bool;}; timeout = Integer;};
37+ loader = {grub = {enable = Bool;}; timeout = Number;};
3838 postBootCommands = String;
3939 };
4040 environment = {systemPackages = [μ];};
test/golden/importless/networkmanager-qt.txtnew file+15
@@ -0,0 +1,15 @@
1+∀ α β γ δ ε ζ η.
2+(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3+ lib = α;
4+ mkDerivation =
5+ { meta = {broken = Bool; maintainers = [ε];};
6+ name = String;
7+ nativeBuildInputs = [ζ];
8+ outputs = [String];
9+ propagatedBuildInputs = [γ];
10+ } ->
11+ η;
12+ networkmanager = γ;
13+ qtbase = γ;
14+} ->
15+η
test/golden/importless/new-api.txt+1−1
@@ -9,7 +9,7 @@
99 meta =
1010 { description = String;
1111 license = ε;
12− maintainers = ∀ α. α;
12+ maintainers = ∀ α. [α];
1313 platforms = ζ;
1414 };
1515 name = String;
test/golden/importless/nextcloud-exporter.txt+1−1
@@ -10,7 +10,7 @@
1010) =>
1111{ buildGoPackage =
1212 { doCheck = Bool;
13− goDeps = Path;
13+ goDeps = String;
1414 goPackagePath = String;
1515 meta =
1616 { description = String;
test/golden/importless/nginxlog-exporter.txt+1−1
@@ -7,7 +7,7 @@
77) =>
88{ buildGoPackage =
99 { doCheck = Bool;
10− goDeps = Path;
10+ goDeps = String;
1111 goPackagePath = String;
1212 meta =
1313 { description = String;
test/golden/importless/nixops-v1_6_1.txt+2−2
@@ -21,7 +21,7 @@
2121 δ
2222) =>
2323{ callPackage =
24− Path ->
24+ String ->
2525 { nixopsAzurePackages = [ε];
2626 python2Packages = δ;
2727 src = θ;
@@ -29,7 +29,7 @@
2929 } ->
3030 ι;
3131 fetchurl = {sha256 = String; url = String;} -> θ;
32− newScope = ζ -> Path -> {} -> η;
32+ newScope = ζ -> String -> {} -> η;
3333 pkgs = β;
3434} ->
3535ι
test/golden/importless/node.txt+3−2
@@ -1,7 +1,8 @@
11∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ.
22( β.services = γ,
33 δ.mkOption =
4− {default = ∀ α. α; description = String; example = String; type = ε;} -> ζ,
4+ {default = ∀ α. [α]; description = String; example = String; type = ε;} ->
5+ ζ,
56 δ.types = η,
67 γ.prometheus = θ,
78 θ.exporters = ι,
@@ -13,7 +14,7 @@
1314) =>
1415{config = β; lib = δ; options = ρ; pkgs = σ;} ->
1516{ extraOpts = {disabledCollectors = ζ; enabledCollectors = τ;};
16− port = Integer;
17+ port = Number;
1718 serviceOpts =
1819 { serviceConfig =
1920 {DynamicUser = Bool; ExecStart = String; RuntimeDirectory = String;};
test/golden/importless/nscd.txtdeleted−62
@@ -1,62 +0,0 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1 δ1 ε1 ζ1 η1 θ1 ι1 κ1
2−λ1 μ1 ν1.
3−( α.config = β,
4− α.lib = γ,
5− α.pkgs = δ,
6− β.environment = ε,
7− β.services = ζ,
8− β.system = η,
9− γ.builtins = θ,
10− γ.mkIf =
11− ι ->
12− { environment = {etc = {nscd.conf = {text = κ;};};};
13− systemd =
14− { services =
15− { nscd =
16− { description = String;
17− environment = {LD_LIBRARY_PATH = λ;};
18− restartTriggers = [μ];
19− serviceConfig =
20− { DynamicUser = Bool;
21− ExecReload = [String];
22− ExecStart = String;
23− PIDFile = String;
24− Restart = String;
25− RuntimeDirectory = String;
26− Type = String;
27− };
28− wantedBy = [String];
29− };
30− };
31− };
32− } ->
33− ν,
34− γ.mkOption = {default = ξ; description = String; type = ο;} -> π,
35− γ.types = ρ,
36− δ.glibc = σ,
37− δ.stdenv = τ,
38− η.nssModules = υ,
39− υ.path = λ,
40− τ.hostPlatform = φ,
41− φ.libc = String,
42− χ.cc = ψ,
43− ψ.libc = ω,
44− ω.bin = α1,
45− σ.bin = α1,
46− ζ.nscd = β1,
47− β1.config = κ,
48− β1.enable = ι,
49− ε.etc = γ1,
50− γ1.hosts = δ1,
51− δ1.source = μ,
52− ε1.etc = ζ1,
53− ζ1.nsswitch.conf = η1,
54− η1.source = μ,
55− θ1.etc = ι1,
56− ι1.nscd.conf = κ1,
57− κ1.source = μ,
58− θ.readFile = Path -> ξ,
59− ρ.lines = ο,
60− λ1.bool = μ1
61−) =>
62−α -> {config = ν; options = {services = {nscd = {config = π; enable = ν1;};};};}
test/golden/importless/oauth2_proxy_nginx.txt+1−1
@@ -12,7 +12,7 @@
1212 δ.oauth2_proxy = ο,
1313 ο.nginx = π,
1414 π.proxy = ε,
15− π.virtualHosts = ρ,
15+ π.virtualHosts = [ρ],
1616 σ.oauth2_proxy = τ,
1717 τ.httpAddress = λ,
1818 ξ.str = μ,
test/golden/importless/obs-ndi.txt+1−1
@@ -11,7 +11,7 @@
1111 platforms = ζ;
1212 };
1313 nativeBuildInputs = [η];
14− patches = [Path];
14+ patches = [String];
1515 pname = String;
1616 postPatch = String;
1717 src = θ;
test/golden/importless/ofono.txt+2−2
@@ -17,13 +17,13 @@
1717 } ->
1818 ρ,
1919 δ.mkOption =
20− {default = ∀ α. α; description = String; example = λ; type = σ;} -> τ,
20+ {default = ∀ α. [α]; description = String; example = λ; type = σ;} -> τ,
2121 δ.types = υ,
2222 ε.ofono = ξ,
2323 η.plugins = ι,
2424 ζ.ofono = φ,
2525 φ.enable = ν,
26− φ.plugins = χ,
26+ φ.plugins = [χ],
2727 υ.listOf = ψ -> σ,
2828 ω.package = ψ
2929) =>
test/golden/importless/org-generated.txt+1−1
@@ -3,7 +3,7 @@
33 ( { elpaBuild =
44 { ename = String;
55 meta = {homepage = String; license = ε;};
6− packageRequires = ∀ α. α;
6+ packageRequires = ∀ α. [α];
77 pname = String;
88 src = ζ;
99 version = String;
test/golden/importless/pack.txt+1−1
@@ -1,5 +1,5 @@
11∀ β γ δ ε ζ η θ ι κ.
2−( (β) // ({description = String;}) ~ (γ),
2+( β // {description = String;} ~ γ,
33 δ.optionals = Bool -> [ε] -> ζ,
44 η.meta = β,
55 η.src = θ,
test/golden/importless/parse-declarations-1_dot_0.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/parse-number.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/parted.txt+1−1
@@ -10,7 +10,7 @@
1010 homepage = String;
1111 license = ζ;
1212 longDescription = String;
13− maintainers = ∀ α. α;
13+ maintainers = ∀ α. [α];
1414 platforms = η;
1515 };
1616 name = String;
test/golden/importless/paste.txt+1−1
@@ -14,7 +14,7 @@
1414 maintainers = [ε];
1515 };
1616 nativeBuildInputs = δ;
17− patches = [Path];
17+ patches = [String];
1818 pname = String;
1919 preBuild = String;
2020 propagatedBuildInputs = [γ];
test/golden/importless/pdf_sets.txt+1−1
@@ -4,7 +4,7 @@
44 { installPhase = String;
55 name = γ;
66 preferLocalBuild = Bool;
7− setupHook = Path;
7+ setupHook = String;
88 src = δ;
99 } ->
1010 ε,
test/golden/importless/pk.txt+1−1
@@ -1,5 +1,5 @@
11∀ β γ δ ε ζ η θ ι κ λ.
2−( (β) // ({description = String;}) ~ (γ),
2+( β // {description = String;} ~ γ,
33 δ.meta = β,
44 δ.minimumOCamlVersion = ε,
55 δ.src = ζ,
test/golden/importless/platform-flags.txt+1−1
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ.
2−( ({}) // (α) ~ (β),
2+( {} // α ~ β,
33 γ.?platform = δ,
44 ε.?arch = ζ,
55 η.?cpu = θ,
test/golden/importless/plotinus.txt+1−1
@@ -20,6 +20,6 @@
2020) =>
2121α ->
2222{ config = η;
23− meta = {doc = Path; maintainers = ξ;};
23+ meta = {doc = String; maintainers = ξ;};
2424 options = {programs = {plotinus = {enable = ι;};};};
2525}
test/golden/importless/plump-lexer.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/port.txt+1−1
@@ -19,7 +19,7 @@
1919 nativeBuildInputs = [θ];
2020 outputs = [String];
2121 passthru = {targetPrefix = ι;};
22− patches = [Path];
22+ patches = [String];
2323 postPatch = String;
2424 preInstall = String;
2525 src = κ;
test/golden/importless/postfix-exporter.txt+1−1
@@ -17,7 +17,7 @@
1717 { buildFlags = ρ;
1818 buildInputs = σ;
1919 extraSrcs = ν;
20− goDeps = Path;
20+ goDeps = String;
2121 goPackagePath = String;
2222 meta =
2323 {description = String; homepage = π; license = ξ; maintainers = [η];};
test/golden/importless/pre-configure.txt+2−1
@@ -3,7 +3,8 @@
33 α.versionOlder = γ -> String -> Bool,
44 δ.is64bit = Bool,
55 δ.isDarwin = ε,
6− δ.isSunOS = Bool
6+ δ.isSunOS = Bool,
7+ (String | Number) ~ β
78) =>
89{ gnatboot = Null;
910 hostPlatform = δ;
test/golden/importless/pressureaudio.txt+1−1
@@ -1,5 +1,5 @@
11∀ β γ δ ε ζ η θ ι.
2−( (β) // ({description = String; longDescription = String;}) ~ (γ),
2+( β // {description = String; longDescription = String;} ~ γ,
33 δ.mkDerivation =
44 { buildPhase = String;
55 dontConfigure = Bool;
test/golden/importless/prison.txtnew file+17
@@ -0,0 +1,17 @@
1+∀ α β γ δ ε ζ η θ.
2+(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3+ lib = α;
4+ libdmtx = η;
5+ mkDerivation =
6+ { buildInputs = [η];
7+ meta = {broken = Bool; maintainers = [ε];};
8+ name = String;
9+ nativeBuildInputs = [ζ];
10+ outputs = [String];
11+ propagatedBuildInputs = [γ];
12+ } ->
13+ θ;
14+ qrencode = η;
15+ qtbase = γ;
16+} ->
17+θ
test/golden/importless/process-exporter.txt+1−1
@@ -9,7 +9,7 @@
99) =>
1010{ buildGoPackage =
1111 { doCheck = Bool;
12− goDeps = Path;
12+ goDeps = String;
1313 goPackagePath = String;
1414 meta =
1515 { description = String;
test/golden/importless/prove-asdf.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/ptester.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/pure.txt+1−1
@@ -3,7 +3,7 @@
33 { buildInputs = [β];
44 buildPhase = String;
55 installPhase = String;
6− patches = [Path];
6+ patches = [String];
77 pname = String;
88 src = γ;
99 version = String;
test/golden/importless/pyblock.txt+1−1
@@ -5,7 +5,7 @@
55 makeFlags = [String];
66 md5_path = String;
77 meta = {description = String; license = δ;};
8− patches = [Path];
8+ patches = [String];
99 pname = String;
1010 postPatch = String;
1111 src = ε;
test/golden/importless/qemu-guest-agent.txt+1−1
@@ -13,7 +13,7 @@
1313 serviceConfig =
1414 { ExecStart = String;
1515 Restart = String;
16− RestartSec = Integer;
16+ RestartSec = Number;
1717 };
1818 };
1919 };
test/golden/importless/qemu.txtnew file+49
@@ -0,0 +1,49 @@
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο.
2+( α.lib = β,
3+ α.mkDerivation =
4+ { buildInputs = [γ];
5+ configureFlags = [String];
6+ enableParallelBuilding = Bool;
7+ meta =
8+ { description = String;
9+ homepage = String;
10+ license = δ;
11+ maintainers = [ε];
12+ platforms = ζ;
13+ };
14+ name = String;
15+ nativeBuildInputs = [η];
16+ patches = [String];
17+ postUnpack = String;
18+ sourceRoot = String;
19+ srcs = [θ];
20+ } ->
21+ ι,
22+ α.targetPlatform = κ,
23+ λ.src = θ,
24+ β.licenses = μ,
25+ β.maintainers = ν,
26+ β.platforms = ξ,
27+ β.ris = ε,
28+ β.throw = String -> String,
29+ κ.system = String,
30+ ο.system = String,
31+ μ.gpl2Plus = δ,
32+ ξ.linux = ζ
33+) =>
34+{ aflplusplus = λ;
35+ autoconf = η;
36+ bison = η;
37+ fetchurl = {sha256 = String; url = String;} -> θ;
38+ flex = η;
39+ glib = γ;
40+ libuuid = γ;
41+ perl = η;
42+ pixman = γ;
43+ pkgconfig = η;
44+ python2 = η;
45+ stdenv = α;
46+ texinfo = η;
47+ zlib = γ;
48+} ->
49+ι
test/golden/importless/qt4.txt+1−1
@@ -2,7 +2,7 @@
22( β.lib = γ,
33 β.mkDerivation =
44 { buildInputs = [δ];
5− configureFlags = ∀ α. α;
5+ configureFlags = ∀ α. [α];
66 dontAddPrefix = Bool;
77 installFlags = ε;
88 meta = {broken = Bool;};
test/golden/importless/qtModule.txt+15−18
@@ -1,25 +1,22 @@
11∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ.
2−( ( β
3− ) //
4− ( { meta = ∀ α. α;
5− name = String;
6− nativeBuildInputs = [γ];
7− outputs = [String];
8− patches = δ;
9− postFixup = String;
10− preConfigure = String;
11− preHook = String;
12− propagatedBuildInputs = [ε];
13− setOutputFlags = Bool;
14− src = ζ;
15− }
16− ) ~
17− ( η
18− ),
2+( β //
3+ { meta = ∀ α. α;
4+ name = String;
5+ nativeBuildInputs = [γ];
6+ outputs = [String];
7+ patches = [δ];
8+ postFixup = String;
9+ preConfigure = String;
10+ preHook = String;
11+ propagatedBuildInputs = [ε];
12+ setOutputFlags = Bool;
13+ src = ζ;
14+ } ~
15+ η,
1916 β.?meta = {},
2017 β.?nativeBuildInputs = [γ],
2118 β.?outputs = [String],
22− β.?patches = δ,
19+ β.?patches = [δ],
2320 β.?propagatedBuildInputs = [ε],
2421 β.?setOutputFlags = Bool,
2522 β.?src = ζ,
test/golden/importless/qtgamepad.txt+1−1
@@ -1,7 +1,7 @@
11∀ β γ δ.
22{ pkgconfig = β;
33 qtModule =
4− { buildInputs = ∀ α. α;
4+ { buildInputs = ∀ α. [α];
55 name = String;
66 nativeBuildInputs = [β];
77 outputs = [String];
test/golden/importless/qtspeech.txt+2−1
@@ -1,2 +1,3 @@
11∀ β.
2−{qtModule = {name = String; outputs = [String]; qtInputs = ∀ α. α;} -> β;} -> β
2+{qtModule = {name = String; outputs = [String]; qtInputs = ∀ α. [α];} -> β;} ->
3+β
test/golden/importless/qtwebengine.txt+1−1
@@ -58,7 +58,7 @@
5858 { extraPrefix = String;
5959 name = String;
6060 sha256 = String;
61− stripLen = Integer;
61+ stripLen = Number;
6262 url = String;
6363 } ->
6464 μ1;
test/golden/importless/rabbitmq-exporter.txt+1−1
@@ -8,7 +8,7 @@
88 ζ.unix = θ
99) =>
1010{ buildGoPackage =
11− { goDeps = Path;
11+ { goDeps = String;
1212 goPackagePath = String;
1313 meta =
1414 { description = String;
test/golden/importless/raspberrypi-builder.txt+1−1
@@ -7,7 +7,7 @@
77 firmware = γ;
88 isExecutable = Bool;
99 path = [ζ];
10− src = Path;
10+ src = String;
1111 } ->
1212 η,
1313 β.bash = δ,
test/golden/importless/rebar3-release.txt+16−19
@@ -1,23 +1,20 @@
11∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ.
2−( (β) // (γ) ~ ({buildInputs = [δ]; name = String;}),
3− ( { buildInputs = [ε];
4− buildPhase = String;
5− configurePhase = String;
6− dontStrip = Bool;
7− installPhase = String;
8− meta = ∀ α. α;
9− name = String;
10− passthru = {env = ζ; packageName = η;};
11− propagatedBuildInputs = [Null];
12− setupHook = θ;
13− src = ι;
14− version = κ;
15− }
16− ) //
17− ( λ
18− ) ~
19− ( γ
20− ),
2+( β // γ ~ {buildInputs = [δ]; name = String;},
3+ { buildInputs = [ε];
4+ buildPhase = String;
5+ configurePhase = String;
6+ dontStrip = Bool;
7+ installPhase = String;
8+ meta = ∀ α. α;
9+ name = String;
10+ passthru = {env = ζ; packageName = η;};
11+ propagatedBuildInputs = [Null];
12+ setupHook = θ;
13+ src = ι;
14+ version = κ;
15+ } //
16+ λ ~
17+ γ,
2118 β.?buildInputs = [ε],
2219 β.?buildPhase = Null,
2320 β.?checkouts = Null,
test/golden/importless/redis-exporter.txt+1−1
@@ -14,7 +14,7 @@
1414) =>
1515{ buildGoPackage =
1616 { buildFlagsArray = String;
17− goDeps = Path;
17+ goDeps = String;
1818 goPackagePath = String;
1919 meta =
2020 { description = String;
test/golden/importless/redis.txt+1−1
@@ -5,4 +5,4 @@
55 options = η;
66 pkgs = θ;
77} ->
8−{port = Integer; serviceOpts = {serviceConfig = {ExecStart = String;};};}
8+{port = Number; serviceOpts = {serviceConfig = {ExecStart = String;};};}
test/golden/importless/require_exceptions.txt+8−8
@@ -18,18 +18,18 @@
1818 cocoapods-check = String;
1919 cocoapods-clean = [String];
2020 cocoapods-coverage = [String];
21− cocoapods-deintegrate = ∀ α. α;
21+ cocoapods-deintegrate = ∀ α. [α];
2222 cocoapods-dependencies = [String];
2323 cocoapods-deploy = String;
2424 cocoapods-disable-podfile-validations = String;
2525 cocoapods-generate = String;
2626 cocoapods-git_url_rewriter = String;
27− cocoapods-keys = ∀ α. α;
27+ cocoapods-keys = ∀ α. [α];
2828 cocoapods-open = [String];
2929 cocoapods-packager = [String];
30− cocoapods-packager-pro = ∀ α. α;
30+ cocoapods-packager-pro = ∀ α. [α];
3131 cocoapods-plugins = [String];
32− cocoapods-sorted-search = ∀ α. α;
32+ cocoapods-sorted-search = ∀ α. [α];
3333 cocoapods-stats = [String];
3434 cocoapods-testing = [String];
3535 cocoapods-trunk = [String];
@@ -44,16 +44,16 @@
4444 gdk_pixbuf2 = [String];
4545 gitlab-markup = [String];
4646 gobject-introspection = [String];
47− gtk2 = ∀ α. α;
47+ gtk2 = ∀ α. [α];
4848 idn-ruby = [String];
49− jekyll-sass-converter = ∀ α. α;
49+ jekyll-sass-converter = ∀ α. [α];
5050 libxml-ruby = [String];
5151 multipart-post = [String];
5252 nap = [String];
5353 net-scp = [String];
5454 net-ssh = [String];
5555 nio4r = [String];
56− osx_keychain = ∀ α. α;
56+ osx_keychain = ∀ α. [α];
5757 ovirt-engine-sdk = [String];
5858 pango = [String];
5959 rack-test = [String];
@@ -68,7 +68,7 @@
6868 ruby-terminfo = [String];
6969 rubyzip = [String];
7070 sequel_pg = [String];
71− simplecov-html = ∀ α. α;
71+ simplecov-html = ∀ α. [α];
7272 sinatra = [String];
7373 sprockets-rails = [String];
7474 taglib-ruby = [String];
test/golden/importless/rfc2388.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/rng-mirage.txt+1−1
@@ -1,5 +1,5 @@
11∀ β γ δ ε ζ η θ ι κ.
2−( (β) // ({description = String;}) ~ (γ),
2+( β // {description = String;} ~ γ,
33 δ.meta = β,
44 δ.minimumOCamlVersion = ε,
55 δ.src = ζ,
test/golden/importless/rng.txt+1−1
@@ -1,5 +1,5 @@
11∀ β γ δ ε ζ η θ ι κ λ.
2−( (β) // ({description = String;}) ~ (γ),
2+( β // {description = String;} ~ γ,
33 δ.meta = β,
44 δ.minimumOCamlVersion = ε,
55 δ.src = ζ,
test/golden/importless/roboschool-fork.txt+1−1
@@ -14,7 +14,7 @@
1414 platforms = η;
1515 };
1616 nativeBuildInputs = [θ];
17− patches = [Path];
17+ patches = [String];
1818 pname = String;
1919 postPatch = ι;
2020 src = κ;
test/golden/importless/robustirc-bridge.txt+1−1
@@ -28,7 +28,7 @@
2828 } ->
2929 ι,
3030 δ.mkOption =
31− {default = ∀ α. α; description = String; example = [String]; type = κ;} ->
31+ {default = ∀ α. [α]; description = String; example = [String]; type = κ;} ->
3232 λ,
3333 δ.types = μ,
3434 ζ.robustirc-bridge = ν,
test/golden/importless/rt.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/ruby-packages.txt+253−253
@@ -1,708 +1,708 @@
11{ CFPropertyList =
22 { groups = [String];
3− platforms = ∀ α. α;
3+ platforms = ∀ α. [α];
44 source = {remotes = [String]; sha256 = String; type = String;};
55 version = String;
66 };
77 RubyInline =
88 { dependencies = [String];
99 groups = [String];
10− platforms = ∀ α. α;
10+ platforms = ∀ α. [α];
1111 source = {remotes = [String]; sha256 = String; type = String;};
1212 version = String;
1313 };
1414 ZenTest =
1515 { groups = [String];
16− platforms = ∀ α. α;
16+ platforms = ∀ α. [α];
1717 source = {remotes = [String]; sha256 = String; type = String;};
1818 version = String;
1919 };
2020 actionmailer =
2121 { dependencies = [String];
2222 groups = [String];
23− platforms = ∀ α. α;
23+ platforms = ∀ α. [α];
2424 source = {remotes = [String]; sha256 = String; type = String;};
2525 version = String;
2626 };
2727 actionpack =
2828 { dependencies = [String];
2929 groups = [String];
30− platforms = ∀ α. α;
30+ platforms = ∀ α. [α];
3131 source = {remotes = [String]; sha256 = String; type = String;};
3232 version = String;
3333 };
3434 actionview =
3535 { dependencies = [String];
3636 groups = [String];
37− platforms = ∀ α. α;
37+ platforms = ∀ α. [α];
3838 source = {remotes = [String]; sha256 = String; type = String;};
3939 version = String;
4040 };
4141 activejob =
4242 { dependencies = [String];
4343 groups = [String];
44− platforms = ∀ α. α;
44+ platforms = ∀ α. [α];
4545 source = {remotes = [String]; sha256 = String; type = String;};
4646 version = String;
4747 };
4848 activemodel =
4949 { dependencies = [String];
5050 groups = [String];
51− platforms = ∀ α. α;
51+ platforms = ∀ α. [α];
5252 source = {remotes = [String]; sha256 = String; type = String;};
5353 version = String;
5454 };
5555 activerecord =
5656 { dependencies = [String];
5757 groups = [String];
58− platforms = ∀ α. α;
58+ platforms = ∀ α. [α];
5959 source = {remotes = [String]; sha256 = String; type = String;};
6060 version = String;
6161 };
6262 activesupport =
6363 { dependencies = [String];
6464 groups = [String];
65− platforms = ∀ α. α;
65+ platforms = ∀ α. [α];
6666 source = {remotes = [String]; sha256 = String; type = String;};
6767 version = String;
6868 };
6969 addressable =
7070 { dependencies = [String];
7171 groups = [String];
72− platforms = ∀ α. α;
72+ platforms = ∀ α. [α];
7373 source = {remotes = [String]; sha256 = String; type = String;};
7474 version = String;
7575 };
7676 algoliasearch =
7777 { dependencies = [String];
7878 groups = [String];
79− platforms = ∀ α. α;
79+ platforms = ∀ α. [α];
8080 source = {remotes = [String]; sha256 = String; type = String;};
8181 version = String;
8282 };
8383 arel =
8484 { groups = [String];
85− platforms = ∀ α. α;
85+ platforms = ∀ α. [α];
8686 source = {remotes = [String]; sha256 = String; type = String;};
8787 version = String;
8888 };
8989 ast =
9090 { groups = [String];
91− platforms = ∀ α. α;
91+ platforms = ∀ α. [α];
9292 source = {remotes = [String]; sha256 = String; type = String;};
9393 version = String;
9494 };
9595 atk =
9696 { dependencies = [String];
9797 groups = [String];
98− platforms = ∀ α. α;
98+ platforms = ∀ α. [α];
9999 source = {remotes = [String]; sha256 = String; type = String;};
100100 version = String;
101101 };
102102 atomos =
103103 { groups = [String];
104− platforms = ∀ α. α;
104+ platforms = ∀ α. [α];
105105 source = {remotes = [String]; sha256 = String; type = String;};
106106 version = String;
107107 };
108108 awesome_print =
109109 { groups = [String];
110− platforms = ∀ α. α;
110+ platforms = ∀ α. [α];
111111 source = {remotes = [String]; sha256 = String; type = String;};
112112 version = String;
113113 };
114114 bacon =
115115 { groups = [String];
116− platforms = ∀ α. α;
116+ platforms = ∀ α. [α];
117117 source = {remotes = [String]; sha256 = String; type = String;};
118118 version = String;
119119 };
120120 builder =
121121 { groups = [String];
122− platforms = ∀ α. α;
122+ platforms = ∀ α. [α];
123123 source = {remotes = [String]; sha256 = String; type = String;};
124124 version = String;
125125 };
126126 byebug =
127127 { groups = [String];
128− platforms = ∀ α. α;
128+ platforms = ∀ α. [α];
129129 source = {remotes = [String]; sha256 = String; type = String;};
130130 version = String;
131131 };
132132 cairo =
133133 { dependencies = [String];
134134 groups = [String];
135− platforms = ∀ α. α;
135+ platforms = ∀ α. [α];
136136 source = {remotes = [String]; sha256 = String; type = String;};
137137 version = String;
138138 };
139139 cairo-gobject =
140140 { dependencies = [String];
141141 groups = [String];
142− platforms = ∀ α. α;
142+ platforms = ∀ α. [α];
143143 source = {remotes = [String]; sha256 = String; type = String;};
144144 version = String;
145145 };
146146 camping =
147147 { dependencies = [String];
148148 groups = [String];
149− platforms = ∀ α. α;
149+ platforms = ∀ α. [α];
150150 source = {remotes = [String]; sha256 = String; type = String;};
151151 version = String;
152152 };
153153 charlock_holmes =
154154 { groups = [String];
155− platforms = ∀ α. α;
155+ platforms = ∀ α. [α];
156156 source = {remotes = [String]; sha256 = String; type = String;};
157157 version = String;
158158 };
159159 claide =
160160 { groups = [String];
161− platforms = ∀ α. α;
161+ platforms = ∀ α. [α];
162162 source = {remotes = [String]; sha256 = String; type = String;};
163163 version = String;
164164 };
165165 clamp =
166166 { groups = [String];
167− platforms = ∀ α. α;
167+ platforms = ∀ α. [α];
168168 source = {remotes = [String]; sha256 = String; type = String;};
169169 version = String;
170170 };
171171 cld3 =
172172 { dependencies = [String];
173173 groups = [String];
174− platforms = ∀ α. α;
174+ platforms = ∀ α. [α];
175175 source = {remotes = [String]; sha256 = String; type = String;};
176176 version = String;
177177 };
178178 cocoapods =
179179 { dependencies = [String];
180180 groups = [String];
181− platforms = ∀ α. α;
181+ platforms = ∀ α. [α];
182182 source = {remotes = [String]; sha256 = String; type = String;};
183183 version = String;
184184 };
185185 cocoapods-acknowledgements =
186186 { dependencies = [String];
187187 groups = [String];
188− platforms = ∀ α. α;
188+ platforms = ∀ α. [α];
189189 source = {remotes = [String]; sha256 = String; type = String;};
190190 version = String;
191191 };
192192 cocoapods-art =
193193 { groups = [String];
194− platforms = ∀ α. α;
194+ platforms = ∀ α. [α];
195195 source = {remotes = [String]; sha256 = String; type = String;};
196196 version = String;
197197 };
198198 cocoapods-bin =
199199 { dependencies = [String];
200200 groups = [String];
201− platforms = ∀ α. α;
201+ platforms = ∀ α. [α];
202202 source = {remotes = [String]; sha256 = String; type = String;};
203203 version = String;
204204 };
205205 cocoapods-browser =
206206 { dependencies = [String];
207207 groups = [String];
208− platforms = ∀ α. α;
208+ platforms = ∀ α. [α];
209209 source = {remotes = [String]; sha256 = String; type = String;};
210210 version = String;
211211 };
212212 cocoapods-bugsnag =
213213 { dependencies = [String];
214214 groups = [String];
215− platforms = ∀ α. α;
215+ platforms = ∀ α. [α];
216216 source = {remotes = [String]; sha256 = String; type = String;};
217217 version = String;
218218 };
219219 cocoapods-check =
220220 { dependencies = [String];
221221 groups = [String];
222− platforms = ∀ α. α;
222+ platforms = ∀ α. [α];
223223 source = {remotes = [String]; sha256 = String; type = String;};
224224 version = String;
225225 };
226226 cocoapods-clean =
227227 { groups = [String];
228− platforms = ∀ α. α;
228+ platforms = ∀ α. [α];
229229 source = {remotes = [String]; sha256 = String; type = String;};
230230 version = String;
231231 };
232232 cocoapods-clean_build_phases_scripts =
233233 { groups = [String];
234− platforms = ∀ α. α;
234+ platforms = ∀ α. [α];
235235 source = {remotes = [String]; sha256 = String; type = String;};
236236 version = String;
237237 };
238238 cocoapods-core =
239239 { dependencies = [String];
240240 groups = [String];
241− platforms = ∀ α. α;
241+ platforms = ∀ α. [α];
242242 source = {remotes = [String]; sha256 = String; type = String;};
243243 version = String;
244244 };
245245 cocoapods-coverage =
246246 { dependencies = [String];
247247 groups = [String];
248− platforms = ∀ α. α;
248+ platforms = ∀ α. [α];
249249 source = {remotes = [String]; sha256 = String; type = String;};
250250 version = String;
251251 };
252252 cocoapods-deintegrate =
253253 { groups = [String];
254− platforms = ∀ α. α;
254+ platforms = ∀ α. [α];
255255 source = {remotes = [String]; sha256 = String; type = String;};
256256 version = String;
257257 };
258258 cocoapods-dependencies =
259259 { dependencies = [String];
260260 groups = [String];
261− platforms = ∀ α. α;
261+ platforms = ∀ α. [α];
262262 source = {remotes = [String]; sha256 = String; type = String;};
263263 version = String;
264264 };
265265 cocoapods-deploy =
266266 { groups = [String];
267− platforms = ∀ α. α;
267+ platforms = ∀ α. [α];
268268 source = {remotes = [String]; sha256 = String; type = String;};
269269 version = String;
270270 };
271271 cocoapods-disable-podfile-validations =
272272 { groups = [String];
273− platforms = ∀ α. α;
273+ platforms = ∀ α. [α];
274274 source = {remotes = [String]; sha256 = String; type = String;};
275275 version = String;
276276 };
277277 cocoapods-downloader =
278278 { groups = [String];
279− platforms = ∀ α. α;
279+ platforms = ∀ α. [α];
280280 source = {remotes = [String]; sha256 = String; type = String;};
281281 version = String;
282282 };
283283 cocoapods-expert-difficulty =
284284 { groups = [String];
285− platforms = ∀ α. α;
285+ platforms = ∀ α. [α];
286286 source = {remotes = [String]; sha256 = String; type = String;};
287287 version = String;
288288 };
289289 cocoapods-fix-react-native =
290290 { groups = [String];
291− platforms = ∀ α. α;
291+ platforms = ∀ α. [α];
292292 source = {remotes = [String]; sha256 = String; type = String;};
293293 version = String;
294294 };
295295 cocoapods-generate =
296296 { dependencies = [String];
297297 groups = [String];
298− platforms = ∀ α. α;
298+ platforms = ∀ α. [α];
299299 source = {remotes = [String]; sha256 = String; type = String;};
300300 version = String;
301301 };
302302 cocoapods-git_url_rewriter =
303303 { groups = [String];
304− platforms = ∀ α. α;
304+ platforms = ∀ α. [α];
305305 source = {remotes = [String]; sha256 = String; type = String;};
306306 version = String;
307307 };
308308 cocoapods-keys =
309309 { dependencies = [String];
310310 groups = [String];
311− platforms = ∀ α. α;
311+ platforms = ∀ α. [α];
312312 source = {remotes = [String]; sha256 = String; type = String;};
313313 version = String;
314314 };
315315 cocoapods-no-dev-schemes =
316316 { groups = [String];
317− platforms = ∀ α. α;
317+ platforms = ∀ α. [α];
318318 source = {remotes = [String]; sha256 = String; type = String;};
319319 version = String;
320320 };
321321 cocoapods-open =
322322 { groups = [String];
323− platforms = ∀ α. α;
323+ platforms = ∀ α. [α];
324324 source = {remotes = [String]; sha256 = String; type = String;};
325325 version = String;
326326 };
327327 cocoapods-packager =
328328 { dependencies = [String];
329329 groups = [String];
330− platforms = ∀ α. α;
330+ platforms = ∀ α. [α];
331331 source = {remotes = [String]; sha256 = String; type = String;};
332332 version = String;
333333 };
334334 cocoapods-packager-pro =
335335 { dependencies = [String];
336336 groups = [String];
337− platforms = ∀ α. α;
337+ platforms = ∀ α. [α];
338338 source = {remotes = [String]; sha256 = String; type = String;};
339339 version = String;
340340 };
341341 cocoapods-playgrounds =
342342 { dependencies = [String];
343343 groups = [String];
344− platforms = ∀ α. α;
344+ platforms = ∀ α. [α];
345345 source = {remotes = [String]; sha256 = String; type = String;};
346346 version = String;
347347 };
348348 cocoapods-plugins =
349349 { dependencies = [String];
350350 groups = [String];
351− platforms = ∀ α. α;
351+ platforms = ∀ α. [α];
352352 source = {remotes = [String]; sha256 = String; type = String;};
353353 version = String;
354354 };
355355 cocoapods-prune-localizations =
356356 { groups = [String];
357− platforms = ∀ α. α;
357+ platforms = ∀ α. [α];
358358 source = {remotes = [String]; sha256 = String; type = String;};
359359 version = String;
360360 };
361361 cocoapods-rome =
362362 { dependencies = [String];
363363 groups = [String];
364− platforms = ∀ α. α;
364+ platforms = ∀ α. [α];
365365 source = {remotes = [String]; sha256 = String; type = String;};
366366 version = String;
367367 };
368368 cocoapods-search =
369369 { groups = [String];
370− platforms = ∀ α. α;
370+ platforms = ∀ α. [α];
371371 source = {remotes = [String]; sha256 = String; type = String;};
372372 version = String;
373373 };
374374 cocoapods-sorted-search =
375375 { dependencies = [String];
376376 groups = [String];
377− platforms = ∀ α. α;
377+ platforms = ∀ α. [α];
378378 source = {remotes = [String]; sha256 = String; type = String;};
379379 version = String;
380380 };
381381 cocoapods-static-swift-framework =
382382 { dependencies = [String];
383383 groups = [String];
384− platforms = ∀ α. α;
384+ platforms = ∀ α. [α];
385385 source = {remotes = [String]; sha256 = String; type = String;};
386386 version = String;
387387 };
388388 cocoapods-stats =
389389 { groups = [String];
390− platforms = ∀ α. α;
390+ platforms = ∀ α. [α];
391391 source = {remotes = [String]; sha256 = String; type = String;};
392392 version = String;
393393 };
394394 cocoapods-tdfire-binary =
395395 { dependencies = [String];
396396 groups = [String];
397− platforms = ∀ α. α;
397+ platforms = ∀ α. [α];
398398 source = {remotes = [String]; sha256 = String; type = String;};
399399 version = String;
400400 };
401401 cocoapods-testing =
402402 { dependencies = [String];
403403 groups = [String];
404− platforms = ∀ α. α;
404+ platforms = ∀ α. [α];
405405 source = {remotes = [String]; sha256 = String; type = String;};
406406 version = String;
407407 };
408408 cocoapods-trunk =
409409 { dependencies = [String];
410410 groups = [String];
411− platforms = ∀ α. α;
411+ platforms = ∀ α. [α];
412412 source = {remotes = [String]; sha256 = String; type = String;};
413413 version = String;
414414 };
415415 cocoapods-try =
416416 { groups = [String];
417− platforms = ∀ α. α;
417+ platforms = ∀ α. [α];
418418 source = {remotes = [String]; sha256 = String; type = String;};
419419 version = String;
420420 };
421421 cocoapods-try-release-fix =
422422 { groups = [String];
423− platforms = ∀ α. α;
423+ platforms = ∀ α. [α];
424424 source = {remotes = [String]; sha256 = String; type = String;};
425425 version = String;
426426 };
427427 cocoapods-update-if-you-dare =
428428 { dependencies = [String];
429429 groups = [String];
430− platforms = ∀ α. α;
430+ platforms = ∀ α. [α];
431431 source = {remotes = [String]; sha256 = String; type = String;};
432432 version = String;
433433 };
434434 cocoapods-whitelist =
435435 { groups = [String];
436− platforms = ∀ α. α;
436+ platforms = ∀ α. [α];
437437 source = {remotes = [String]; sha256 = String; type = String;};
438438 version = String;
439439 };
440440 cocoapods-wholemodule =
441441 { groups = [String];
442− platforms = ∀ α. α;
442+ platforms = ∀ α. [α];
443443 source = {remotes = [String]; sha256 = String; type = String;};
444444 version = String;
445445 };
446446 coderay =
447447 { groups = [String];
448− platforms = ∀ α. α;
448+ platforms = ∀ α. [α];
449449 source = {remotes = [String]; sha256 = String; type = String;};
450450 version = String;
451451 };
452452 colorator =
453453 { groups = [String];
454− platforms = ∀ α. α;
454+ platforms = ∀ α. [α];
455455 source = {remotes = [String]; sha256 = String; type = String;};
456456 version = String;
457457 };
458458 colored2 =
459459 { groups = [String];
460− platforms = ∀ α. α;
460+ platforms = ∀ α. [α];
461461 source = {remotes = [String]; sha256 = String; type = String;};
462462 version = String;
463463 };
464464 concurrent-ruby =
465465 { groups = [String];
466− platforms = ∀ α. α;
466+ platforms = ∀ α. [α];
467467 source = {remotes = [String]; sha256 = String; type = String;};
468468 version = String;
469469 };
470470 crass =
471471 { groups = [String];
472− platforms = ∀ α. α;
472+ platforms = ∀ α. [α];
473473 source = {remotes = [String]; sha256 = String; type = String;};
474474 version = String;
475475 };
476476 curb =
477477 { groups = [String];
478− platforms = ∀ α. α;
478+ platforms = ∀ α. [α];
479479 source = {remotes = [String]; sha256 = String; type = String;};
480480 version = String;
481481 };
482482 curses =
483483 { groups = [String];
484− platforms = ∀ α. α;
484+ platforms = ∀ α. [α];
485485 source = {remotes = [String]; sha256 = String; type = String;};
486486 version = String;
487487 };
488488 daemons =
489489 { groups = [String];
490− platforms = ∀ α. α;
490+ platforms = ∀ α. [α];
491491 source = {remotes = [String]; sha256 = String; type = String;};
492492 version = String;
493493 };
494494 data_objects =
495495 { dependencies = [String];
496496 groups = [String];
497− platforms = ∀ α. α;
497+ platforms = ∀ α. [α];
498498 source = {remotes = [String]; sha256 = String; type = String;};
499499 version = String;
500500 };
501501 dep-selector-libgecode =
502502 { groups = [String];
503− platforms = ∀ α. α;
503+ platforms = ∀ α. [α];
504504 source = {remotes = [String]; sha256 = String; type = String;};
505505 version = String;
506506 };
507507 diff-lcs =
508508 { groups = [String];
509− platforms = ∀ α. α;
509+ platforms = ∀ α. [α];
510510 source = {remotes = [String]; sha256 = String; type = String;};
511511 version = String;
512512 };
513513 digest-sha3 =
514514 { groups = [String];
515− platforms = ∀ α. α;
515+ platforms = ∀ α. [α];
516516 source = {remotes = [String]; sha256 = String; type = String;};
517517 version = String;
518518 };
519519 do_sqlite3 =
520520 { dependencies = [String];
521521 groups = [String];
522− platforms = ∀ α. α;
522+ platforms = ∀ α. [α];
523523 source = {remotes = [String]; sha256 = String; type = String;};
524524 version = String;
525525 };
526526 docile =
527527 { groups = [String];
528− platforms = ∀ α. α;
528+ platforms = ∀ α. [α];
529529 source = {remotes = [String]; sha256 = String; type = String;};
530530 version = String;
531531 };
532532 domain_name =
533533 { dependencies = [String];
534534 groups = [String];
535− platforms = ∀ α. α;
535+ platforms = ∀ α. [α];
536536 source = {remotes = [String]; sha256 = String; type = String;};
537537 version = String;
538538 };
539539 dotenv =
540540 { groups = [String];
541− platforms = ∀ α. α;
541+ platforms = ∀ α. [α];
542542 source = {remotes = [String]; sha256 = String; type = String;};
543543 version = String;
544544 };
545545 em-websocket =
546546 { dependencies = [String];
547547 groups = [String];
548− platforms = ∀ α. α;
548+ platforms = ∀ α. [α];
549549 source = {remotes = [String]; sha256 = String; type = String;};
550550 version = String;
551551 };
552552 erubis =
553553 { groups = [String];
554− platforms = ∀ α. α;
554+ platforms = ∀ α. [α];
555555 source = {remotes = [String]; sha256 = String; type = String;};
556556 version = String;
557557 };
558558 escape =
559559 { groups = [String];
560− platforms = ∀ α. α;
560+ platforms = ∀ α. [α];
561561 source = {remotes = [String]; sha256 = String; type = String;};
562562 version = String;
563563 };
564564 ethon =
565565 { dependencies = [String];
566566 groups = [String];
567− platforms = ∀ α. α;
567+ platforms = ∀ α. [α];
568568 source = {remotes = [String]; sha256 = String; type = String;};
569569 version = String;
570570 };
571571 eventmachine =
572572 { groups = [String];
573− platforms = ∀ α. α;
573+ platforms = ∀ α. [α];
574574 source = {remotes = [String]; sha256 = String; type = String;};
575575 version = String;
576576 };
577577 excon =
578578 { groups = [String];
579− platforms = ∀ α. α;
579+ platforms = ∀ α. [α];
580580 source = {remotes = [String]; sha256 = String; type = String;};
581581 version = String;
582582 };
583583 faraday =
584584 { dependencies = [String];
585585 groups = [String];
586− platforms = ∀ α. α;
586+ platforms = ∀ α. [α];
587587 source = {remotes = [String]; sha256 = String; type = String;};
588588 version = String;
589589 };
590590 ffi =
591591 { groups = [String];
592− platforms = ∀ α. α;
592+ platforms = ∀ α. [α];
593593 source = {remotes = [String]; sha256 = String; type = String;};
594594 version = String;
595595 };
596596 ffi-compiler =
597597 { dependencies = [String];
598598 groups = [String];
599− platforms = ∀ α. α;
599+ platforms = ∀ α. [α];
600600 source = {remotes = [String]; sha256 = String; type = String;};
601601 version = String;
602602 };
603603 ffi-rzmq-core =
604604 { dependencies = [String];
605605 groups = [String];
606− platforms = ∀ α. α;
606+ platforms = ∀ α. [α];
607607 source = {remotes = [String]; sha256 = String; type = String;};
608608 version = String;
609609 };
610610 fog-core =
611611 { dependencies = [String];
612612 groups = [String];
613− platforms = ∀ α. α;
613+ platforms = ∀ α. [α];
614614 source = {remotes = [String]; sha256 = String; type = String;};
615615 version = String;
616616 };
617617 fog-dnsimple =
618618 { dependencies = [String];
619619 groups = [String];
620− platforms = ∀ α. α;
620+ platforms = ∀ α. [α];
621621 source = {remotes = [String]; sha256 = String; type = String;};
622622 version = String;
623623 };
624624 fog-json =
625625 { dependencies = [String];
626626 groups = [String];
627− platforms = ∀ α. α;
627+ platforms = ∀ α. [α];
628628 source = {remotes = [String]; sha256 = String; type = String;};
629629 version = String;
630630 };
631631 formatador =
632632 { groups = [String];
633− platforms = ∀ α. α;
633+ platforms = ∀ α. [α];
634634 source = {remotes = [String]; sha256 = String; type = String;};
635635 version = String;
636636 };
637637 forwardable-extended =
638638 { groups = [String];
639− platforms = ∀ α. α;
639+ platforms = ∀ α. [α];
640640 source = {remotes = [String]; sha256 = String; type = String;};
641641 version = String;
642642 };
643643 fourflusher =
644644 { groups = [String];
645− platforms = ∀ α. α;
645+ platforms = ∀ α. [α];
646646 source = {remotes = [String]; sha256 = String; type = String;};
647647 version = String;
648648 };
649649 fuzzy_match =
650650 { groups = [String];
651− platforms = ∀ α. α;
651+ platforms = ∀ α. [α];
652652 source = {remotes = [String]; sha256 = String; type = String;};
653653 version = String;
654654 };
655655 gdk_pixbuf2 =
656656 { dependencies = [String];
657657 groups = [String];
658− platforms = ∀ α. α;
658+ platforms = ∀ α. [α];
659659 source = {remotes = [String]; sha256 = String; type = String;};
660660 version = String;
661661 };
662662 gh_inspector =
663663 { groups = [String];
664− platforms = ∀ α. α;
664+ platforms = ∀ α. [α];
665665 source = {remotes = [String]; sha256 = String; type = String;};
666666 version = String;
667667 };
668668 gio2 =
669669 { dependencies = [String];
670670 groups = [String];
671− platforms = ∀ α. α;
671+ platforms = ∀ α. [α];
672672 source = {remotes = [String]; sha256 = String; type = String;};
673673 version = String;
674674 };
675675 gitlab-markup =
676676 { groups = [String];
677− platforms = ∀ α. α;
677+ platforms = ∀ α. [α];
678678 source = {remotes = [String]; sha256 = String; type = String;};
679679 version = String;
680680 };
681681 glib2 =
682682 { dependencies = [String];
683683 groups = [String];
684− platforms = ∀ α. α;
684+ platforms = ∀ α. [α];
685685 source = {remotes = [String]; sha256 = String; type = String;};
686686 version = String;
687687 };
688688 globalid =
689689 { dependencies = [String];
690690 groups = [String];
691− platforms = ∀ α. α;
691+ platforms = ∀ α. [α];
692692 source = {remotes = [String]; sha256 = String; type = String;};
693693 version = String;
694694 };
695695 gobject-introspection =
696696 { dependencies = [String];
697697 groups = [String];
698− platforms = ∀ α. α;
698+ platforms = ∀ α. [α];
699699 source = {remotes = [String]; sha256 = String; type = String;};
700700 version = String;
701701 };
702702 gpgme =
703703 { dependencies = [String];
704704 groups = [String];
705− platforms = ∀ α. α;
705+ platforms = ∀ α. [α];
706706 source = {remotes = [String]; sha256 = String; type = String;};
707707 version = String;
708708 };
@@ -710,361 +710,361 @@
710710 { dependencies = [String];
711711 groups = [String];
712712 meta = {broken = Bool;};
713− platforms = ∀ α. α;
713+ platforms = ∀ α. [α];
714714 source = {remotes = [String]; sha256 = String; type = String;};
715715 version = String;
716716 };
717717 hashie =
718718 { groups = [String];
719− platforms = ∀ α. α;
719+ platforms = ∀ α. [α];
720720 source = {remotes = [String]; sha256 = String; type = String;};
721721 version = String;
722722 };
723723 highline =
724724 { groups = [String];
725− platforms = ∀ α. α;
725+ platforms = ∀ α. [α];
726726 source = {remotes = [String]; sha256 = String; type = String;};
727727 version = String;
728728 };
729729 hike =
730730 { groups = [String];
731− platforms = ∀ α. α;
731+ platforms = ∀ α. [α];
732732 source = {remotes = [String]; sha256 = String; type = String;};
733733 version = String;
734734 };
735735 hitimes =
736736 { groups = [String];
737− platforms = ∀ α. α;
737+ platforms = ∀ α. [α];
738738 source = {remotes = [String]; sha256 = String; type = String;};
739739 version = String;
740740 };
741741 hpricot =
742742 { groups = [String];
743− platforms = ∀ α. α;
743+ platforms = ∀ α. [α];
744744 source = {remotes = [String]; sha256 = String; type = String;};
745745 version = String;
746746 };
747747 http-accept =
748748 { groups = [String];
749− platforms = ∀ α. α;
749+ platforms = ∀ α. [α];
750750 source = {remotes = [String]; sha256 = String; type = String;};
751751 version = String;
752752 };
753753 http-cookie =
754754 { dependencies = [String];
755755 groups = [String];
756− platforms = ∀ α. α;
756+ platforms = ∀ α. [α];
757757 source = {remotes = [String]; sha256 = String; type = String;};
758758 version = String;
759759 };
760760 http_parser.rb =
761761 { groups = [String];
762− platforms = ∀ α. α;
762+ platforms = ∀ α. [α];
763763 source = {remotes = [String]; sha256 = String; type = String;};
764764 version = String;
765765 };
766766 httpclient =
767767 { groups = [String];
768− platforms = ∀ α. α;
768+ platforms = ∀ α. [α];
769769 source = {remotes = [String]; sha256 = String; type = String;};
770770 version = String;
771771 };
772772 i18n =
773773 { dependencies = [String];
774774 groups = [String];
775− platforms = ∀ α. α;
775+ platforms = ∀ α. [α];
776776 source = {remotes = [String]; sha256 = String; type = String;};
777777 version = String;
778778 };
779779 iconv =
780780 { groups = [String];
781− platforms = ∀ α. α;
781+ platforms = ∀ α. [α];
782782 source = {remotes = [String]; sha256 = String; type = String;};
783783 version = String;
784784 };
785785 idn-ruby =
786786 { groups = [String];
787− platforms = ∀ α. α;
787+ platforms = ∀ α. [α];
788788 source = {remotes = [String]; sha256 = String; type = String;};
789789 version = String;
790790 };
791791 jaro_winkler =
792792 { groups = [String];
793− platforms = ∀ α. α;
793+ platforms = ∀ α. [α];
794794 source = {remotes = [String]; sha256 = String; type = String;};
795795 version = String;
796796 };
797797 jbuilder =
798798 { dependencies = [String];
799799 groups = [String];
800− platforms = ∀ α. α;
800+ platforms = ∀ α. [α];
801801 source = {remotes = [String]; sha256 = String; type = String;};
802802 version = String;
803803 };
804804 jekyll =
805805 { dependencies = [String];
806806 groups = [String];
807− platforms = ∀ α. α;
807+ platforms = ∀ α. [α];
808808 source = {remotes = [String]; sha256 = String; type = String;};
809809 version = String;
810810 };
811811 jekyll-sass-converter =
812812 { dependencies = [String];
813813 groups = [String];
814− platforms = ∀ α. α;
814+ platforms = ∀ α. [α];
815815 source = {remotes = [String]; sha256 = String; type = String;};
816816 version = String;
817817 };
818818 jekyll-watch =
819819 { dependencies = [String];
820820 groups = [String];
821− platforms = ∀ α. α;
821+ platforms = ∀ α. [α];
822822 source = {remotes = [String]; sha256 = String; type = String;};
823823 version = String;
824824 };
825825 jmespath =
826826 { groups = [String];
827− platforms = ∀ α. α;
827+ platforms = ∀ α. [α];
828828 source = {remotes = [String]; sha256 = String; type = String;};
829829 version = String;
830830 };
831831 json =
832832 { groups = [String];
833− platforms = ∀ α. α;
833+ platforms = ∀ α. [α];
834834 source = {remotes = [String]; sha256 = String; type = String;};
835835 version = String;
836836 };
837837 jwt =
838838 { groups = [String];
839− platforms = ∀ α. α;
839+ platforms = ∀ α. [α];
840840 source = {remotes = [String]; sha256 = String; type = String;};
841841 version = String;
842842 };
843843 kramdown =
844844 { groups = [String];
845− platforms = ∀ α. α;
845+ platforms = ∀ α. [α];
846846 source = {remotes = [String]; sha256 = String; type = String;};
847847 version = String;
848848 };
849849 kramdown-parser-gfm =
850850 { dependencies = [String];
851851 groups = [String];
852− platforms = ∀ α. α;
852+ platforms = ∀ α. [α];
853853 source = {remotes = [String]; sha256 = String; type = String;};
854854 version = String;
855855 };
856856 libv8 =
857857 { groups = [String];
858− platforms = ∀ α. α;
858+ platforms = ∀ α. [α];
859859 source = {remotes = [String]; sha256 = String; type = String;};
860860 version = String;
861861 };
862862 libxml-ruby =
863863 { groups = [String];
864− platforms = ∀ α. α;
864+ platforms = ∀ α. [α];
865865 source = {remotes = [String]; sha256 = String; type = String;};
866866 version = String;
867867 };
868868 liquid =
869869 { groups = [String];
870− platforms = ∀ α. α;
870+ platforms = ∀ α. [α];
871871 source = {remotes = [String]; sha256 = String; type = String;};
872872 version = String;
873873 };
874874 listen =
875875 { dependencies = [String];
876876 groups = [String];
877− platforms = ∀ α. α;
877+ platforms = ∀ α. [α];
878878 source = {remotes = [String]; sha256 = String; type = String;};
879879 version = String;
880880 };
881881 loofah =
882882 { dependencies = [String];
883883 groups = [String];
884− platforms = ∀ α. α;
884+ platforms = ∀ α. [α];
885885 source = {remotes = [String]; sha256 = String; type = String;};
886886 version = String;
887887 };
888888 mab =
889889 { groups = [String];
890− platforms = ∀ α. α;
890+ platforms = ∀ α. [α];
891891 source = {remotes = [String]; sha256 = String; type = String;};
892892 version = String;
893893 };
894894 magic =
895895 { dependencies = [String];
896896 groups = [String];
897− platforms = ∀ α. α;
897+ platforms = ∀ α. [α];
898898 source = {remotes = [String]; sha256 = String; type = String;};
899899 version = String;
900900 };
901901 mail =
902902 { dependencies = [String];
903903 groups = [String];
904− platforms = ∀ α. α;
904+ platforms = ∀ α. [α];
905905 source = {remotes = [String]; sha256 = String; type = String;};
906906 version = String;
907907 };
908908 markaby =
909909 { dependencies = [String];
910910 groups = [String];
911− platforms = ∀ α. α;
911+ platforms = ∀ α. [α];
912912 source = {remotes = [String]; sha256 = String; type = String;};
913913 version = String;
914914 };
915915 mercenary =
916916 { groups = [String];
917− platforms = ∀ α. α;
917+ platforms = ∀ α. [α];
918918 source = {remotes = [String]; sha256 = String; type = String;};
919919 version = String;
920920 };
921921 method_source =
922922 { groups = [String];
923− platforms = ∀ α. α;
923+ platforms = ∀ α. [α];
924924 source = {remotes = [String]; sha256 = String; type = String;};
925925 version = String;
926926 };
927927 mime-types =
928928 { dependencies = [String];
929929 groups = [String];
930− platforms = ∀ α. α;
930+ platforms = ∀ α. [α];
931931 source = {remotes = [String]; sha256 = String; type = String;};
932932 version = String;
933933 };
934934 mime-types-data =
935935 { groups = [String];
936− platforms = ∀ α. α;
936+ platforms = ∀ α. [α];
937937 source = {remotes = [String]; sha256 = String; type = String;};
938938 version = String;
939939 };
940940 mini_magick =
941941 { groups = [String];
942− platforms = ∀ α. α;
942+ platforms = ∀ α. [α];
943943 source = {remotes = [String]; sha256 = String; type = String;};
944944 version = String;
945945 };
946946 mini_mime =
947947 { groups = [String];
948− platforms = ∀ α. α;
948+ platforms = ∀ α. [α];
949949 source = {remotes = [String]; sha256 = String; type = String;};
950950 version = String;
951951 };
952952 mini_portile2 =
953953 { groups = [String];
954− platforms = ∀ α. α;
954+ platforms = ∀ α. [α];
955955 source = {remotes = [String]; sha256 = String; type = String;};
956956 version = String;
957957 };
958958 minitest =
959959 { groups = [String];
960− platforms = ∀ α. α;
960+ platforms = ∀ α. [α];
961961 source = {remotes = [String]; sha256 = String; type = String;};
962962 version = String;
963963 };
964964 molinillo =
965965 { groups = [String];
966− platforms = ∀ α. α;
966+ platforms = ∀ α. [α];
967967 source = {remotes = [String]; sha256 = String; type = String;};
968968 version = String;
969969 };
970970 msgpack =
971971 { groups = [String];
972− platforms = ∀ α. α;
972+ platforms = ∀ α. [α];
973973 source = {remotes = [String]; sha256 = String; type = String;};
974974 version = String;
975975 };
976976 multi_json =
977977 { groups = [String];
978− platforms = ∀ α. α;
978+ platforms = ∀ α. [α];
979979 source = {remotes = [String]; sha256 = String; type = String;};
980980 version = String;
981981 };
982982 multipart-post =
983983 { groups = [String];
984− platforms = ∀ α. α;
984+ platforms = ∀ α. [α];
985985 source = {remotes = [String]; sha256 = String; type = String;};
986986 version = String;
987987 };
988988 mysql2 =
989989 { groups = [String];
990− platforms = ∀ α. α;
990+ platforms = ∀ α. [α];
991991 source = {remotes = [String]; sha256 = String; type = String;};
992992 version = String;
993993 };
994994 nanaimo =
995995 { groups = [String];
996− platforms = ∀ α. α;
996+ platforms = ∀ α. [α];
997997 source = {remotes = [String]; sha256 = String; type = String;};
998998 version = String;
999999 };
10001000 nap =
10011001 { groups = [String];
1002− platforms = ∀ α. α;
1002+ platforms = ∀ α. [α];
10031003 source = {remotes = [String]; sha256 = String; type = String;};
10041004 version = String;
10051005 };
10061006 native-package-installer =
10071007 { groups = [String];
1008− platforms = ∀ α. α;
1008+ platforms = ∀ α. [α];
10091009 source = {remotes = [String]; sha256 = String; type = String;};
10101010 version = String;
10111011 };
10121012 ncursesw =
10131013 { groups = [String];
1014− platforms = ∀ α. α;
1014+ platforms = ∀ α. [α];
10151015 source = {remotes = [String]; sha256 = String; type = String;};
10161016 version = String;
10171017 };
10181018 net-scp =
10191019 { dependencies = [String];
10201020 groups = [String];
1021− platforms = ∀ α. α;
1021+ platforms = ∀ α. [α];
10221022 source = {remotes = [String]; sha256 = String; type = String;};
10231023 version = String;
10241024 };
10251025 net-ssh =
10261026 { groups = [String];
1027− platforms = ∀ α. α;
1027+ platforms = ∀ α. [α];
10281028 source = {remotes = [String]; sha256 = String; type = String;};
10291029 version = String;
10301030 };
10311031 netrc =
10321032 { groups = [String];
1033− platforms = ∀ α. α;
1033+ platforms = ∀ α. [α];
10341034 source = {remotes = [String]; sha256 = String; type = String;};
10351035 version = String;
10361036 };
10371037 nio4r =
10381038 { groups = [String];
1039− platforms = ∀ α. α;
1039+ platforms = ∀ α. [α];
10401040 source = {remotes = [String]; sha256 = String; type = String;};
10411041 version = String;
10421042 };
10431043 nokogiri =
10441044 { dependencies = [String];
10451045 groups = [String];
1046− platforms = ∀ α. α;
1046+ platforms = ∀ α. [α];
10471047 source = {remotes = [String]; sha256 = String; type = String;};
10481048 version = String;
10491049 };
10501050 opus-ruby =
10511051 { dependencies = [String];
10521052 groups = [String];
1053− platforms = ∀ α. α;
1053+ platforms = ∀ α. [α];
10541054 source = {remotes = [String]; sha256 = String; type = String;};
10551055 version = String;
10561056 };
10571057 osx_keychain =
10581058 { dependencies = [String];
10591059 groups = [String];
1060− platforms = ∀ α. α;
1060+ platforms = ∀ α. [α];
10611061 source = {remotes = [String]; sha256 = String; type = String;};
10621062 version = String;
10631063 };
10641064 ovirt-engine-sdk =
10651065 { dependencies = [String];
10661066 groups = [String];
1067− platforms = ∀ α. α;
1067+ platforms = ∀ α. [α];
10681068 source = {remotes = [String]; sha256 = String; type = String;};
10691069 version = String;
10701070 };
@@ -1072,563 +1072,563 @@
10721072 { dependencies = [String];
10731073 groups = [String];
10741074 meta = {broken = Bool;};
1075− platforms = ∀ α. α;
1075+ platforms = ∀ α. [α];
10761076 source = {remotes = [String]; sha256 = String; type = String;};
10771077 version = String;
10781078 };
10791079 parallel =
10801080 { groups = [String];
1081− platforms = ∀ α. α;
1081+ platforms = ∀ α. [α];
10821082 source = {remotes = [String]; sha256 = String; type = String;};
10831083 version = String;
10841084 };
10851085 parser =
10861086 { dependencies = [String];
10871087 groups = [String];
1088− platforms = ∀ α. α;
1088+ platforms = ∀ α. [α];
10891089 source = {remotes = [String]; sha256 = String; type = String;};
10901090 version = String;
10911091 };
10921092 pathutil =
10931093 { dependencies = [String];
10941094 groups = [String];
1095− platforms = ∀ α. α;
1095+ platforms = ∀ α. [α];
10961096 source = {remotes = [String]; sha256 = String; type = String;};
10971097 version = String;
10981098 };
10991099 patron =
11001100 { groups = [String];
1101− platforms = ∀ α. α;
1101+ platforms = ∀ α. [α];
11021102 source = {remotes = [String]; sha256 = String; type = String;};
11031103 version = String;
11041104 };
11051105 pcaprub =
11061106 { groups = [String];
1107− platforms = ∀ α. α;
1107+ platforms = ∀ α. [α];
11081108 source = {remotes = [String]; sha256 = String; type = String;};
11091109 version = String;
11101110 };
11111111 pg =
11121112 { groups = [String];
1113− platforms = ∀ α. α;
1113+ platforms = ∀ α. [α];
11141114 source = {remotes = [String]; sha256 = String; type = String;};
11151115 version = String;
11161116 };
11171117 pkg-config =
11181118 { groups = [String];
1119− platforms = ∀ α. α;
1119+ platforms = ∀ α. [α];
11201120 source = {remotes = [String]; sha256 = String; type = String;};
11211121 version = String;
11221122 };
11231123 polyglot =
11241124 { groups = [String];
1125− platforms = ∀ α. α;
1125+ platforms = ∀ α. [α];
11261126 source = {remotes = [String]; sha256 = String; type = String;};
11271127 version = String;
11281128 };
11291129 pry =
11301130 { dependencies = [String];
11311131 groups = [String];
1132− platforms = ∀ α. α;
1132+ platforms = ∀ α. [α];
11331133 source = {remotes = [String]; sha256 = String; type = String;};
11341134 version = String;
11351135 };
11361136 pry-byebug =
11371137 { dependencies = [String];
11381138 groups = [String];
1139− platforms = ∀ α. α;
1139+ platforms = ∀ α. [α];
11401140 source = {remotes = [String]; sha256 = String; type = String;};
11411141 version = String;
11421142 };
11431143 pry-doc =
11441144 { dependencies = [String];
11451145 groups = [String];
1146− platforms = ∀ α. α;
1146+ platforms = ∀ α. [α];
11471147 source = {remotes = [String]; sha256 = String; type = String;};
11481148 version = String;
11491149 };
11501150 public_suffix =
11511151 { groups = [String];
1152− platforms = ∀ α. α;
1152+ platforms = ∀ α. [α];
11531153 source = {remotes = [String]; sha256 = String; type = String;};
11541154 version = String;
11551155 };
11561156 puma =
11571157 { dependencies = [String];
11581158 groups = [String];
1159− platforms = ∀ α. α;
1159+ platforms = ∀ α. [α];
11601160 source = {remotes = [String]; sha256 = String; type = String;};
11611161 version = String;
11621162 };
11631163 rack =
11641164 { groups = [String];
1165− platforms = ∀ α. α;
1165+ platforms = ∀ α. [α];
11661166 source = {remotes = [String]; sha256 = String; type = String;};
11671167 version = String;
11681168 };
11691169 rack-protection =
11701170 { dependencies = [String];
11711171 groups = [String];
1172− platforms = ∀ α. α;
1172+ platforms = ∀ α. [α];
11731173 source = {remotes = [String]; sha256 = String; type = String;};
11741174 version = String;
11751175 };
11761176 rack-test =
11771177 { dependencies = [String];
11781178 groups = [String];
1179− platforms = ∀ α. α;
1179+ platforms = ∀ α. [α];
11801180 source = {remotes = [String]; sha256 = String; type = String;};
11811181 version = String;
11821182 };
11831183 rails =
11841184 { dependencies = [String];
11851185 groups = [String];
1186− platforms = ∀ α. α;
1186+ platforms = ∀ α. [α];
11871187 source = {remotes = [String]; sha256 = String; type = String;};
11881188 version = String;
11891189 };
11901190 rails-deprecated_sanitizer =
11911191 { dependencies = [String];
11921192 groups = [String];
1193− platforms = ∀ α. α;
1193+ platforms = ∀ α. [α];
11941194 source = {remotes = [String]; sha256 = String; type = String;};
11951195 version = String;
11961196 };
11971197 rails-dom-testing =
11981198 { dependencies = [String];
11991199 groups = [String];
1200− platforms = ∀ α. α;
1200+ platforms = ∀ α. [α];
12011201 source = {remotes = [String]; sha256 = String; type = String;};
12021202 version = String;
12031203 };
12041204 rails-html-sanitizer =
12051205 { dependencies = [String];
12061206 groups = [String];
1207− platforms = ∀ α. α;
1207+ platforms = ∀ α. [α];
12081208 source = {remotes = [String]; sha256 = String; type = String;};
12091209 version = String;
12101210 };
12111211 railties =
12121212 { dependencies = [String];
12131213 groups = [String];
1214− platforms = ∀ α. α;
1214+ platforms = ∀ α. [α];
12151215 source = {remotes = [String]; sha256 = String; type = String;};
12161216 version = String;
12171217 };
12181218 rainbow =
12191219 { groups = [String];
1220− platforms = ∀ α. α;
1220+ platforms = ∀ α. [α];
12211221 source = {remotes = [String]; sha256 = String; type = String;};
12221222 version = String;
12231223 };
12241224 rake =
12251225 { groups = [String];
1226− platforms = ∀ α. α;
1226+ platforms = ∀ α. [α];
12271227 source = {remotes = [String]; sha256 = String; type = String;};
12281228 version = String;
12291229 };
12301230 rb-fsevent =
12311231 { groups = [String];
1232− platforms = ∀ α. α;
1232+ platforms = ∀ α. [α];
12331233 source = {remotes = [String]; sha256 = String; type = String;};
12341234 version = String;
12351235 };
12361236 rb-inotify =
12371237 { dependencies = [String];
12381238 groups = [String];
1239− platforms = ∀ α. α;
1239+ platforms = ∀ α. [α];
12401240 source = {remotes = [String]; sha256 = String; type = String;};
12411241 version = String;
12421242 };
12431243 rb-readline =
12441244 { groups = [String];
1245− platforms = ∀ α. α;
1245+ platforms = ∀ α. [α];
12461246 source = {remotes = [String]; sha256 = String; type = String;};
12471247 version = String;
12481248 };
12491249 rbnacl =
12501250 { dependencies = [String];
12511251 groups = [String];
1252− platforms = ∀ α. α;
1252+ platforms = ∀ α. [α];
12531253 source = {remotes = [String]; sha256 = String; type = String;};
12541254 version = String;
12551255 };
12561256 re2 =
12571257 { groups = [String];
1258− platforms = ∀ α. α;
1258+ platforms = ∀ α. [α];
12591259 source = {remotes = [String]; sha256 = String; type = String;};
12601260 version = String;
12611261 };
12621262 redcarpet =
12631263 { groups = [String];
1264− platforms = ∀ α. α;
1264+ platforms = ∀ α. [α];
12651265 source = {remotes = [String]; sha256 = String; type = String;};
12661266 version = String;
12671267 };
12681268 redis =
12691269 { groups = [String];
1270− platforms = ∀ α. α;
1270+ platforms = ∀ α. [α];
12711271 source = {remotes = [String]; sha256 = String; type = String;};
12721272 version = String;
12731273 };
12741274 redis-rack =
12751275 { dependencies = [String];
12761276 groups = [String];
1277− platforms = ∀ α. α;
1277+ platforms = ∀ α. [α];
12781278 source = {remotes = [String]; sha256 = String; type = String;};
12791279 version = String;
12801280 };
12811281 redis-store =
12821282 { dependencies = [String];
12831283 groups = [String];
1284− platforms = ∀ α. α;
1284+ platforms = ∀ α. [α];
12851285 source = {remotes = [String]; sha256 = String; type = String;};
12861286 version = String;
12871287 };
12881288 rest-client =
12891289 { dependencies = [String];
12901290 groups = [String];
1291− platforms = ∀ α. α;
1291+ platforms = ∀ α. [α];
12921292 source = {remotes = [String]; sha256 = String; type = String;};
12931293 version = String;
12941294 };
12951295 rmagick =
12961296 { groups = [String];
1297− platforms = ∀ α. α;
1297+ platforms = ∀ α. [α];
12981298 source = {remotes = [String]; sha256 = String; type = String;};
12991299 version = String;
13001300 };
13011301 rouge =
13021302 { groups = [String];
1303− platforms = ∀ α. α;
1303+ platforms = ∀ α. [α];
13041304 source = {remotes = [String]; sha256 = String; type = String;};
13051305 version = String;
13061306 };
13071307 rpam2 =
13081308 { groups = [String];
1309− platforms = ∀ α. α;
1309+ platforms = ∀ α. [α];
13101310 source = {remotes = [String]; sha256 = String; type = String;};
13111311 version = String;
13121312 };
13131313 rspec =
13141314 { dependencies = [String];
13151315 groups = [String];
1316− platforms = ∀ α. α;
1316+ platforms = ∀ α. [α];
13171317 source = {remotes = [String]; sha256 = String; type = String;};
13181318 version = String;
13191319 };
13201320 rspec-core =
13211321 { dependencies = [String];
13221322 groups = [String];
1323− platforms = ∀ α. α;
1323+ platforms = ∀ α. [α];
13241324 source = {remotes = [String]; sha256 = String; type = String;};
13251325 version = String;
13261326 };
13271327 rspec-expectations =
13281328 { dependencies = [String];
13291329 groups = [String];
1330− platforms = ∀ α. α;
1330+ platforms = ∀ α. [α];
13311331 source = {remotes = [String]; sha256 = String; type = String;};
13321332 version = String;
13331333 };
13341334 rspec-mocks =
13351335 { dependencies = [String];
13361336 groups = [String];
1337− platforms = ∀ α. α;
1337+ platforms = ∀ α. [α];
13381338 source = {remotes = [String]; sha256 = String; type = String;};
13391339 version = String;
13401340 };
13411341 rspec-support =
13421342 { groups = [String];
1343− platforms = ∀ α. α;
1343+ platforms = ∀ α. [α];
13441344 source = {remotes = [String]; sha256 = String; type = String;};
13451345 version = String;
13461346 };
13471347 rubocop =
13481348 { dependencies = [String];
13491349 groups = [String];
1350− platforms = ∀ α. α;
1350+ platforms = ∀ α. [α];
13511351 source = {remotes = [String]; sha256 = String; type = String;};
13521352 version = String;
13531353 };
13541354 rubocop-performance =
13551355 { dependencies = [String];
13561356 groups = [String];
1357− platforms = ∀ α. α;
1357+ platforms = ∀ α. [α];
13581358 source = {remotes = [String]; sha256 = String; type = String;};
13591359 version = String;
13601360 };
13611361 ruby-graphviz =
13621362 { groups = [String];
1363− platforms = ∀ α. α;
1363+ platforms = ∀ α. [α];
13641364 source = {remotes = [String]; sha256 = String; type = String;};
13651365 version = String;
13661366 };
13671367 ruby-libvirt =
13681368 { groups = [String];
1369− platforms = ∀ α. α;
1369+ platforms = ∀ α. [α];
13701370 source = {remotes = [String]; sha256 = String; type = String;};
13711371 version = String;
13721372 };
13731373 ruby-lxc =
13741374 { groups = [String];
1375− platforms = ∀ α. α;
1375+ platforms = ∀ α. [α];
13761376 source = {remotes = [String]; sha256 = String; type = String;};
13771377 version = String;
13781378 };
13791379 ruby-macho =
13801380 { groups = [String];
1381− platforms = ∀ α. α;
1381+ platforms = ∀ α. [α];
13821382 source = {remotes = [String]; sha256 = String; type = String;};
13831383 version = String;
13841384 };
13851385 ruby-progressbar =
13861386 { groups = [String];
1387− platforms = ∀ α. α;
1387+ platforms = ∀ α. [α];
13881388 source = {remotes = [String]; sha256 = String; type = String;};
13891389 version = String;
13901390 };
13911391 ruby-terminfo =
13921392 { groups = [String];
1393− platforms = ∀ α. α;
1393+ platforms = ∀ α. [α];
13941394 source = {remotes = [String]; sha256 = String; type = String;};
13951395 version = String;
13961396 };
13971397 ruby-vips =
13981398 { dependencies = [String];
13991399 groups = [String];
1400− platforms = ∀ α. α;
1400+ platforms = ∀ α. [α];
14011401 source = {remotes = [String]; sha256 = String; type = String;};
14021402 version = String;
14031403 };
14041404 rubyzip =
14051405 { groups = [String];
1406− platforms = ∀ α. α;
1406+ platforms = ∀ α. [α];
14071407 source = {remotes = [String]; sha256 = String; type = String;};
14081408 version = String;
14091409 };
14101410 rugged =
14111411 { groups = [String];
1412− platforms = ∀ α. α;
1412+ platforms = ∀ α. [α];
14131413 source = {remotes = [String]; sha256 = String; type = String;};
14141414 version = String;
14151415 };
14161416 safe_yaml =
14171417 { groups = [String];
1418− platforms = ∀ α. α;
1418+ platforms = ∀ α. [α];
14191419 source = {remotes = [String]; sha256 = String; type = String;};
14201420 version = String;
14211421 };
14221422 sassc =
14231423 { dependencies = [String];
14241424 groups = [String];
1425− platforms = ∀ α. α;
1425+ platforms = ∀ α. [α];
14261426 source = {remotes = [String]; sha256 = String; type = String;};
14271427 version = String;
14281428 };
14291429 scrypt =
14301430 { dependencies = [String];
14311431 groups = [String];
1432− platforms = ∀ α. α;
1432+ platforms = ∀ α. [α];
14331433 source = {remotes = [String]; sha256 = String; type = String;};
14341434 version = String;
14351435 };
14361436 semian =
14371437 { groups = [String];
1438− platforms = ∀ α. α;
1438+ platforms = ∀ α. [α];
14391439 source = {remotes = [String]; sha256 = String; type = String;};
14401440 version = String;
14411441 };
14421442 sequel =
14431443 { groups = [String];
1444− platforms = ∀ α. α;
1444+ platforms = ∀ α. [α];
14451445 source = {remotes = [String]; sha256 = String; type = String;};
14461446 version = String;
14471447 };
14481448 sequel_pg =
14491449 { dependencies = [String];
14501450 groups = [String];
1451− platforms = ∀ α. α;
1451+ platforms = ∀ α. [α];
14521452 source = {remotes = [String]; sha256 = String; type = String;};
14531453 version = String;
14541454 };
14551455 simplecov =
14561456 { dependencies = [String];
14571457 groups = [String];
1458− platforms = ∀ α. α;
1458+ platforms = ∀ α. [α];
14591459 source = {remotes = [String]; sha256 = String; type = String;};
14601460 version = String;
14611461 };
14621462 simplecov-html =
14631463 { groups = [String];
1464− platforms = ∀ α. α;
1464+ platforms = ∀ α. [α];
14651465 source = {remotes = [String]; sha256 = String; type = String;};
14661466 version = String;
14671467 };
14681468 sinatra =
14691469 { dependencies = [String];
14701470 groups = [String];
1471− platforms = ∀ α. α;
1471+ platforms = ∀ α. [α];
14721472 source = {remotes = [String]; sha256 = String; type = String;};
14731473 version = String;
14741474 };
14751475 slather =
14761476 { dependencies = [String];
14771477 groups = [String];
1478− platforms = ∀ α. α;
1478+ platforms = ∀ α. [α];
14791479 source = {remotes = [String]; sha256 = String; type = String;};
14801480 version = String;
14811481 };
14821482 slop =
14831483 { groups = [String];
1484− platforms = ∀ α. α;
1484+ platforms = ∀ α. [α];
14851485 source = {remotes = [String]; sha256 = String; type = String;};
14861486 version = String;
14871487 };
14881488 snappy =
14891489 { groups = [String];
1490− platforms = ∀ α. α;
1490+ platforms = ∀ α. [α];
14911491 source = {remotes = [String]; sha256 = String; type = String;};
14921492 version = String;
14931493 };
14941494 sprockets =
14951495 { dependencies = [String];
14961496 groups = [String];
1497− platforms = ∀ α. α;
1497+ platforms = ∀ α. [α];
14981498 source = {remotes = [String]; sha256 = String; type = String;};
14991499 version = String;
15001500 };
15011501 sprockets-rails =
15021502 { dependencies = [String];
15031503 groups = [String];
1504− platforms = ∀ α. α;
1504+ platforms = ∀ α. [α];
15051505 source = {remotes = [String]; sha256 = String; type = String;};
15061506 version = String;
15071507 };
15081508 sqlite3 =
15091509 { groups = [String];
1510− platforms = ∀ α. α;
1510+ platforms = ∀ α. [α];
15111511 source = {remotes = [String]; sha256 = String; type = String;};
15121512 version = String;
15131513 };
15141514 taglib-ruby =
15151515 { groups = [String];
1516− platforms = ∀ α. α;
1516+ platforms = ∀ α. [α];
15171517 source = {remotes = [String]; sha256 = String; type = String;};
15181518 version = String;
15191519 };
15201520 terminal-table =
15211521 { dependencies = [String];
15221522 groups = [String];
1523− platforms = ∀ α. α;
1523+ platforms = ∀ α. [α];
15241524 source = {remotes = [String]; sha256 = String; type = String;};
15251525 version = String;
15261526 };
15271527 thor =
15281528 { groups = [String];
1529− platforms = ∀ α. α;
1529+ platforms = ∀ α. [α];
15301530 source = {remotes = [String]; sha256 = String; type = String;};
15311531 version = String;
15321532 };
15331533 thread_safe =
15341534 { groups = [String];
1535− platforms = ∀ α. α;
1535+ platforms = ∀ α. [α];
15361536 source = {remotes = [String]; sha256 = String; type = String;};
15371537 version = String;
15381538 };
15391539 thrift =
15401540 { groups = [String];
1541− platforms = ∀ α. α;
1541+ platforms = ∀ α. [α];
15421542 source = {remotes = [String]; sha256 = String; type = String;};
15431543 version = String;
15441544 };
15451545 tilt =
15461546 { groups = [String];
1547− platforms = ∀ α. α;
1547+ platforms = ∀ α. [α];
15481548 source = {remotes = [String]; sha256 = String; type = String;};
15491549 version = String;
15501550 };
15511551 tiny_tds =
15521552 { groups = [String];
1553− platforms = ∀ α. α;
1553+ platforms = ∀ α. [α];
15541554 source = {remotes = [String]; sha256 = String; type = String;};
15551555 version = String;
15561556 };
15571557 treetop =
15581558 { dependencies = [String];
15591559 groups = [String];
1560− platforms = ∀ α. α;
1560+ platforms = ∀ α. [α];
15611561 source = {remotes = [String]; sha256 = String; type = String;};
15621562 version = String;
15631563 };
15641564 typhoeus =
15651565 { dependencies = [String];
15661566 groups = [String];
1567− platforms = ∀ α. α;
1567+ platforms = ∀ α. [α];
15681568 source = {remotes = [String]; sha256 = String; type = String;};
15691569 version = String;
15701570 };
15711571 tzinfo =
15721572 { dependencies = [String];
15731573 groups = [String];
1574− platforms = ∀ α. α;
1574+ platforms = ∀ α. [α];
15751575 source = {remotes = [String]; sha256 = String; type = String;};
15761576 version = String;
15771577 };
15781578 unf =
15791579 { dependencies = [String];
15801580 groups = [String];
1581− platforms = ∀ α. α;
1581+ platforms = ∀ α. [α];
15821582 source = {remotes = [String]; sha256 = String; type = String;};
15831583 version = String;
15841584 };
15851585 unf_ext =
15861586 { groups = [String];
1587− platforms = ∀ α. α;
1587+ platforms = ∀ α. [α];
15881588 source = {remotes = [String]; sha256 = String; type = String;};
15891589 version = String;
15901590 };
15911591 unicode-display_width =
15921592 { groups = [String];
1593− platforms = ∀ α. α;
1593+ platforms = ∀ α. [α];
15941594 source = {remotes = [String]; sha256 = String; type = String;};
15951595 version = String;
15961596 };
15971597 uuid4r =
15981598 { groups = [String];
1599− platforms = ∀ α. α;
1599+ platforms = ∀ α. [α];
16001600 source = {remotes = [String]; sha256 = String; type = String;};
16011601 version = String;
16021602 };
16031603 whois =
16041604 { groups = [String];
1605− platforms = ∀ α. α;
1605+ platforms = ∀ α. [α];
16061606 source = {remotes = [String]; sha256 = String; type = String;};
16071607 version = String;
16081608 };
16091609 xcodeproj =
16101610 { dependencies = [String];
16111611 groups = [String];
1612− platforms = ∀ α. α;
1612+ platforms = ∀ α. [α];
16131613 source = {remotes = [String]; sha256 = String; type = String;};
16141614 version = String;
16151615 };
16161616 xctasks =
16171617 { dependencies = [String];
16181618 groups = [String];
1619− platforms = ∀ α. α;
1619+ platforms = ∀ α. [α];
16201620 source = {remotes = [String]; sha256 = String; type = String;};
16211621 version = String;
16221622 };
16231623 yard =
16241624 { groups = [String];
1625− platforms = ∀ α. α;
1625+ platforms = ∀ α. [α];
16261626 source = {remotes = [String]; sha256 = String; type = String;};
16271627 version = String;
16281628 };
16291629 zookeeper =
16301630 { groups = [String];
1631− platforms = ∀ α. α;
1631+ platforms = ∀ α. [α];
16321632 source = {remotes = [String]; sha256 = String; type = String;};
16331633 version = String;
16341634 };
test/golden/importless/ruby-version.txt+1−1
@@ -2,7 +2,7 @@
22( α.hasPrefix = String -> β -> Bool,
33 α.removePrefix = String -> γ -> Null,
44 α.replaceStrings = [String] -> [String] -> Null -> δ,
5− α.stringLength = δ -> Integer,
5+ α.stringLength = δ -> Number,
66 α.throw = String -> String,
77 α.versionAtLeast = String -> String -> Bool
88) =>
test/golden/importless/rustfmt.txt+1−1
@@ -4,7 +4,7 @@
44 δ.buildRustPackage =
55 { CFG_RELEASE = String;
66 CFG_RELEASE_CHANNEL = String;
7− RUSTC_BOOTSTRAP = Integer;
7+ RUSTC_BOOTSTRAP = Number;
88 buildAndTestSubdir = String;
99 buildInputs = ε;
1010 cargoVendorDir = String;
test/golden/importless/rxe.txt+1−1
@@ -26,7 +26,7 @@
2626 } ->
2727 ν,
2828 δ.mkOption =
29− {default = ∀ α. α; description = String; example = [String]; type = ξ;} ->
29+ {default = ∀ α. [α]; description = String; example = [String]; type = ξ;} ->
3030 ο,
3131 δ.types = π,
3232 ζ.rxe = ρ,
test/golden/importless/s-sysdeps.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/s-xml.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/safeeyes.txt+3−3
@@ -15,9 +15,9 @@
1515 serviceConfig =
1616 { ExecStart = String;
1717 Restart = String;
18− RestartSec = Integer;
19− StartLimitBurst = Integer;
20− StartLimitInterval = Integer;
18+ RestartSec = Number;
19+ StartLimitBurst = Number;
20+ StartLimitInterval = Number;
2121 };
2222 wantedBy = [String];
2323 };
test/golden/importless/sage-env.txt+1−1
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1.
2−( (α) // ({lib = β;}) ~ (γ),
2+( α // {lib = β;} ~ γ,
33 δ.cc = String,
44 ε.makeBinPath = [String] -> ζ,
55 η.bintools = String,
test/golden/importless/sagenb.txt+1−1
@@ -8,7 +8,7 @@
88{ buildPythonPackage =
99 { doCheck = Bool;
1010 meta = {description = String; license = ζ; maintainers = [ε];};
11− patches = [Path];
11+ patches = [String];
1212 pname = String;
1313 postInstall = String;
1414 propagatedBuildInputs = [η];
test/golden/importless/salza2.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/samtools_0_1_19.txt+1−1
@@ -10,7 +10,7 @@
1010 maintainers = [ε];
1111 platforms = ζ;
1212 };
13− patches = [Path];
13+ patches = [String];
1414 pname = String;
1515 src = η;
1616 version = String;
test/golden/importless/schema.txt+1−1
@@ -1,5 +1,5 @@
11∀ β γ.
2−((β) // ({meta = {hydraPlatforms = ∀ α. α;};}) ~ (γ)) => { fetchFromGitHub =
2+(β // {meta = {hydraPlatforms = ∀ α. [α];};} ~ γ) => { fetchFromGitHub =
33 { name = String;
44 owner = String;
55 repo = String;
test/golden/importless/scripts.txt+1−1
@@ -5,7 +5,7 @@
55 { description = String;
66 homepage = String;
77 license = δ;
8− maintainers = ∀ α. α;
8+ maintainers = ∀ α. [α];
99 platforms = ε;
1010 };
1111 nativeBuildInputs = [ζ];
test/golden/importless/sdk-pkgs.txt+10−13
@@ -1,17 +1,14 @@
11∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π.
2−( ( β
3− ) //
4− ( { sdk =
5− { name = String;
6− outPath = String;
7− platform = γ;
8− type = String;
9− version = δ;
10− };
11− }
12− ) ~
13− ( ε
14− ),
2+( β //
3+ { sdk =
4+ { name = String;
5+ outPath = String;
6+ platform = γ;
7+ type = String;
8+ version = δ;
9+ };
10+ } ~
11+ ε,
1512 ζ.sdkVer = δ,
1613 ζ.xcodePlatform = γ,
1714 η.lib = θ,
test/golden/importless/shadow.txt+8−11
@@ -1,15 +1,12 @@
11∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1 δ1 ε1 ζ1 η1.
2−( ( { newgidmap = {source = String;};
3− newgrp = {source = String;};
4− newuidmap = {source = String;};
5− sg = {source = String;};
6− su = {source = String;};
7− }
8− ) //
9− ( β
10− ) ~
11− ( γ
12− ),
2+( { newgidmap = {source = String;};
3+ newgrp = {source = String;};
4+ newuidmap = {source = String;};
5+ sg = {source = String;};
6+ su = {source = String;};
7+ } //
8+ β ~
9+ γ,
1310 δ.config = ε,
1411 δ.lib = ζ,
1512 δ.pkgs = η,
test/golden/importless/share.txt+1−1
@@ -8,7 +8,7 @@
88 { description = String;
99 homepage = String;
1010 license = ε;
11− maintainers = ∀ α. α;
11+ maintainers = ∀ α. [α];
1212 };
1313 pname = String;
1414 sources10Zip = ζ;
test/golden/importless/shared.txt+1−1
@@ -27,7 +27,7 @@
2727 minorVersion = ξ;
2828 site = String;
2929 };
30− patches = [Path];
30+ patches = [String];
3131 pname = String;
3232 postInstall = String;
3333 postPatch = String;
test/golden/importless/shiboken.txtnew file+43
@@ -0,0 +1,43 @@
1+∀ β γ δ ε ζ η θ ι κ λ.
2+( β.licenses = γ,
3+ β.optional = Bool -> String -> [String],
4+ β.platforms = δ,
5+ γ.gpl2 = ε,
6+ δ.all = ζ
7+) =>
8+{ buildPythonPackage =
9+ { cmakeFlags = η;
10+ enableParallelBuilding = Bool;
11+ format = String;
12+ meta =
13+ { broken = Bool;
14+ description = String;
15+ homepage = String;
16+ license = ε;
17+ maintainers = ∀ α. [α];
18+ platforms = ζ;
19+ };
20+ nativeBuildInputs = [θ];
21+ patches = [String];
22+ pname = String;
23+ preConfigure = String;
24+ src = ι;
25+ version = String;
26+ } ->
27+ κ;
28+ cmake = θ;
29+ fetchurl = {sha256 = String; url = String;} -> ι;
30+ isPy35 = Bool;
31+ isPy36 = Bool;
32+ isPy37 = Bool;
33+ isPy3k = λ;
34+ lib = β;
35+ libxml2 = θ;
36+ libxslt = θ;
37+ pysideApiextractor = θ;
38+ pysideGeneratorrunner = θ;
39+ python = θ;
40+ qt4 = θ;
41+ sphinx = θ;
42+} ->
43+κ
test/golden/importless/singularity.txt+2−1
@@ -15,6 +15,7 @@
1515 μ,
1616 θ.overrideAttrs = (ε -> {installPhase = String;}) -> λ,
1717 η.singularity = ν,
18− ν.enable = κ
18+ ν.enable = κ,
19+ (String | Number) ~ ζ
1920) =>
2021α -> {config = μ; options = {programs = {singularity = {enable = ι;};};};}
test/golden/importless/skeinjar.txt+1−1
@@ -8,7 +8,7 @@
88 } ->
99 δ
1010) =>
11−{ callPackage = Path -> {src = ε; version = ζ;} -> η;
11+{ callPackage = String -> {src = ε; version = ζ;} -> η;
1212 maven = γ;
1313 src = ε;
1414 stdenv = β;
test/golden/importless/skeinrepo.txt+1−1
@@ -1,5 +1,5 @@
11∀ β γ δ ε ζ η θ ι κ λ μ.
2−( (β) // (γ) ~ (δ),
2+( β // γ ~ δ,
33 ε.optional = ζ -> η -> [θ],
44 ε.optionalAttrs = ι -> {dontAutoPatchelf = Bool;} -> γ,
55 κ.isLinux = Bool,
test/golden/importless/socket.txt+1−1
@@ -1,5 +1,5 @@
11∀ β γ δ ε ζ η θ ι.
2−( (β) // ({description = String;}) ~ (γ),
2+( β // {description = String;} ~ γ,
33 δ.meta = β,
44 δ.src = ε,
55 δ.useDune2 = ζ,
test/golden/importless/sockets.txt+1−1
@@ -3,7 +3,7 @@
33 β.mkDerivation =
44 { buildInputs = [δ];
55 luaver = ε;
6− meta = {homepage = String; hydraPlatforms = ζ; maintainers = ∀ α. α;};
6+ meta = {homepage = String; hydraPlatforms = ζ; maintainers = ∀ α. [α];};
77 patchPhase = String;
88 pname = String;
99 src = η;
test/golden/importless/softmaker_office.txt+10−13
@@ -1,18 +1,15 @@
11∀ α β γ δ.
2−( ( α
3− ) //
4− ( { archive = String;
5− edition = String;
6− pname = String;
7− src = β;
8− suiteName = String;
9− version = String;
10− }
11− ) ~
12− ( γ
13− ),
2+( α //
3+ { archive = String;
4+ edition = String;
5+ pname = String;
6+ src = β;
7+ suiteName = String;
8+ version = String;
9+ } ~
10+ γ,
1411 α.?officeVersion = {edition = String; sha256 = String; version = String;},
15− α.callPackage = Path -> γ -> δ,
12+ α.callPackage = String -> γ -> δ,
1613 α.fetchurl = {sha256 = String; url = String;} -> β
1714) =>
1815α -> δ
test/golden/importless/solid.txtnew file+20
@@ -0,0 +1,20 @@
1+∀ α β γ δ ε ζ η θ.
2+(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { bison = ζ;
3+ extra-cmake-modules = ζ;
4+ flex = ζ;
5+ lib = α;
6+ media-player-info = ζ;
7+ mkDerivation =
8+ { buildInputs = [η];
9+ meta = {broken = Bool; maintainers = [ε];};
10+ name = String;
11+ nativeBuildInputs = [ζ];
12+ propagatedBuildInputs = [γ];
13+ propagatedUserEnvPkgs = [ζ];
14+ } ->
15+ θ;
16+ qtbase = γ;
17+ qtdeclarative = η;
18+ qttools = η;
19+} ->
20+θ
test/golden/importless/sonnet.txtnew file+16
@@ -0,0 +1,16 @@
1+∀ α β γ δ ε ζ η θ.
2+(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3+ hunspell = η;
4+ lib = α;
5+ mkDerivation =
6+ { buildInputs = [η];
7+ meta = {broken = Bool; maintainers = [ε];};
8+ name = String;
9+ nativeBuildInputs = [ζ];
10+ propagatedBuildInputs = [γ];
11+ } ->
12+ θ;
13+ qtbase = γ;
14+ qttools = η;
15+} ->
16+θ
test/golden/importless/spotify.txt+2−2
@@ -5,9 +5,9 @@
55 meta =
66 { description = String;
77 homepage = String;
8− hydraPlatforms = ∀ α. α;
8+ hydraPlatforms = ∀ α. [α];
99 license = ε;
10− maintainers = ∀ α. α;
10+ maintainers = ∀ α. [α];
1111 };
1212 pname = String;
1313 propagatedBuildInputs = [ζ];
test/golden/importless/spotifyd.txt+1−1
@@ -18,7 +18,7 @@
1818 DynamicUser = Bool;
1919 ExecStart = String;
2020 Restart = String;
21− RestartSec = Integer;
21+ RestartSec = Number;
2222 SupplementaryGroups = [String];
2323 };
2424 wantedBy = [String];
test/golden/importless/springlobby.txt+1−1
@@ -13,7 +13,7 @@
1313 repositories = {git = String;};
1414 };
1515 nativeBuildInputs = [η];
16− patches = [Path];
16+ patches = [String];
1717 pname = String;
1818 postInstall = String;
1919 src = θ;
test/golden/importless/squeezelite.txt+12−14
@@ -1,12 +1,11 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
1+∀ α β γ δ ε ζ η θ ι κ λ μ.
22( α.config = β,
33 α.lib = γ,
44 α.pkgs = δ,
55 β.services = ε,
6− γ.builtins = ζ,
7− γ.mkEnableOption = String -> η,
6+ γ.mkEnableOption = String -> ζ,
87 γ.mkIf =
9− θ ->
8+ η ->
109 { systemd =
1110 { services =
1211 { squeezelite =
@@ -15,7 +14,7 @@
1514 serviceConfig =
1615 { DynamicUser = Bool;
1716 ExecStart = String;
18− StateDirectory = ι;
17+ StateDirectory = String;
1918 SupplementaryGroups = String;
2019 };
2120 wantedBy = [String];
@@ -23,15 +22,14 @@
2322 };
2423 };
2524 } ->
26− κ,
27− γ.mkOption = {default = String; description = String; type = λ;} -> μ,
28− γ.types = ν,
29− ε.squeezelite = ξ,
30− ξ.enable = θ,
31− ζ.baseNameOf = String -> ι,
32− ν.str = λ
25+ θ,
26+ γ.mkOption = {default = String; description = String; type = ι;} -> κ,
27+ γ.types = λ,
28+ ε.squeezelite = μ,
29+ μ.enable = η,
30+ λ.str = ι
3331) =>
3432α ->
35−{ config = κ;
36− options = {services = {squeezelite = {enable = η; extraArguments = μ;};};};
33+{ config = θ;
34+ options = {services = {squeezelite = {enable = ζ; extraArguments = κ;};};};
3735}
test/golden/importless/stable.txt+3−2
@@ -1,3 +1,4 @@
11∀ α β.
2−(α.callPackage = Path -> α -> {sha256 = String; version = String;} -> β) => α ->
3−β
2+( α.callPackage = String -> α -> {sha256 = String; version = String;} -> β
3+) =>
4+α -> β
test/golden/importless/staging.txt+3−3
@@ -1,6 +1,6 @@
11∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π.
2−( (β) // ({meta = ∀ α. α;}) ~ (γ),
3− (δ) // ({description = String;}) ~ (ε),
2+( β // {meta = ∀ α. α;} ~ γ,
3+ δ // {description = String;} ~ ε,
44 ζ.?postPatch = String,
55 η.lib = θ,
66 ι.meta = δ,
@@ -14,4 +14,4 @@
1414 π.description = String,
1515 ν.version = ξ
1616) =>
17−{callPackage = Path -> {} -> λ; stdenv = η; wineUnstable = ι;} -> γ
17+{callPackage = String -> {} -> λ; stdenv = η; wineUnstable = ι;} -> γ
test/golden/importless/status.txt+1−1
@@ -7,7 +7,7 @@
77 { description = String;
88 homepage = String;
99 license = ε;
10− maintainers = ∀ α. α;
10+ maintainers = ∀ α. [α];
1111 platforms = ζ;
1212 };
1313 name = String;
test/golden/importless/stellar-core.txt+1−1
@@ -12,7 +12,7 @@
1212 };
1313 name = String;
1414 nativeBuildInputs = [ζ];
15− patches = [Path];
15+ patches = [String];
1616 preConfigure = String;
1717 propagatedBuildInputs = [η];
1818 src = θ;
test/golden/importless/string-case.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/surfboard.txt+1−1
@@ -9,7 +9,7 @@
99) =>
1010{config = α; lib = γ; options = κ; pkgs = λ;} ->
1111{ extraOpts = {modemAddress = ε;};
12− port = Integer;
12+ port = Number;
1313 serviceOpts =
1414 { description = String;
1515 serviceConfig = {ExecStart = String;};
test/golden/importless/swank.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/syntax-highlighting.txtnew file+16
@@ -0,0 +1,16 @@
1+∀ α β γ δ ε ζ η θ.
2+(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3+ lib = α;
4+ mkDerivation =
5+ { buildInputs = [η];
6+ meta = {broken = Bool; maintainers = [ε];};
7+ name = String;
8+ nativeBuildInputs = [ζ];
9+ propagatedBuildInputs = [γ];
10+ } ->
11+ θ;
12+ perl = ζ;
13+ qtbase = γ;
14+ qttools = η;
15+} ->
16+θ
test/golden/importless/tailscale.txt+5−7
@@ -16,18 +16,16 @@
1616 description = String;
1717 serviceConfig =
1818 { CacheDirectory = String;
19− CacheDirectoryMode = Integer;
19+ CacheDirectoryMode = Number;
2020 ExecStart = String;
2121 Restart = String;
2222 RuntimeDirectory = String;
23− RuntimeDirectoryMode = Integer;
23+ RuntimeDirectoryMode = Number;
2424 StateDirectory = String;
25− StateDirectoryMode = Integer;
25+ StateDirectoryMode = Number;
2626 };
2727 unitConfig =
28− { StartLimitBurst = Integer;
29− StartLimitIntervalSec = Integer;
30− };
28+ {StartLimitBurst = Number; StartLimitIntervalSec = Number;};
3129 wantedBy = [String];
3230 wants = [String];
3331 };
@@ -35,7 +33,7 @@
3533 };
3634 } ->
3735 κ,
38− γ.mkOption = {default = Integer; description = String; type = λ;} -> μ,
36+ γ.mkOption = {default = Number; description = String; type = λ;} -> μ,
3937 γ.types = ν,
4038 ε.tailscale = ξ,
4139 ξ.enable = ι,
test/golden/importless/terminal-server.txt+2−2
@@ -20,7 +20,7 @@
2020 { xserver =
2121 { displayManager = {gdm = {enable = Bool;};};
2222 enable = Bool;
23− videoDrivers = ∀ α. α;
23+ videoDrivers = ∀ α. [α];
2424 };
2525 };
2626 systemd =
@@ -42,7 +42,7 @@
4242 { terminal-server =
4343 { before = [String];
4444 description = String;
45− socketConfig = {Accept = Bool; ListenStream = Integer;};
45+ socketConfig = {Accept = Bool; ListenStream = Number;};
4646 wantedBy = [String];
4747 };
4848 };
test/golden/importless/tes3mp.txt+1−1
@@ -17,7 +17,7 @@
1717 };
1818 name = String;
1919 nativeBuildInputs = [λ];
20− patches = [Path];
20+ patches = [String];
2121 postInstall = String;
2222 preConfigure = String;
2323 src = δ;
test/golden/importless/test-case.txt+1−1
@@ -1 +1 @@
1−{a = Integer; b = String; c = String; d = String;}
1+{a = Number; b = String; c = String; d = String;}
test/golden/importless/test.txt+1−1
@@ -1,5 +1,5 @@
11∀ β γ δ ε ζ η.
2−( (β) // ({description = String;}) ~ (γ),
2+( β // {description = String;} ~ γ,
33 δ.meta = β,
44 δ.src = ε,
55 δ.version = ζ
test/golden/importless/threadweaver.txtnew file+14
@@ -0,0 +1,14 @@
1+∀ α β γ δ ε ζ η.
2+(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3+ lib = α;
4+ mkDerivation =
5+ { meta = {broken = Bool; maintainers = [ε];};
6+ name = String;
7+ nativeBuildInputs = [ζ];
8+ outputs = [String];
9+ propagatedBuildInputs = [γ];
10+ } ->
11+ η;
12+ qtbase = γ;
13+} ->
14+η
test/golden/importless/tiddlywiki.txt+1−1
@@ -31,7 +31,7 @@
3131 γ.mkOption =
3232 { default = {};
3333 description = String;
34− example = {credentials = String; port = Integer; readers = String;};
34+ example = {credentials = String; port = Number; readers = String;};
3535 type = ο;
3636 } ->
3737 π,
test/golden/importless/todo.txt+1−1
@@ -17,7 +17,7 @@
1717 maintainers = [ε];
1818 };
1919 nativeBuildInputs = δ;
20− patches = [Path];
20+ patches = [String];
2121 pname = String;
2222 preBuild = String;
2323 propagatedBuildInputs = [γ];
test/golden/importless/tool.txt+1−1
@@ -6,7 +6,7 @@
66 { description = String;
77 homepage = String;
88 license = ε;
9− maintainers = ∀ α. α;
9+ maintainers = ∀ α. [α];
1010 platforms = ζ;
1111 };
1212 nativeBuildInputs = [η];
test/golden/importless/trivial-backtrace.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/trivial-cltl2.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/trivial-features.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/trivial-gray-streams.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/trivial-indent.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/trivial-macroexpand-all.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/trivial-mimes.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/trivial-types.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/trivial-utf-8.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/tvheadend.txt+2−2
@@ -18,7 +18,7 @@
1818 Group = String;
1919 PIDFile = String;
2020 Restart = String;
21− RestartSec = Integer;
21+ RestartSec = Number;
2222 Type = String;
2323 User = String;
2424 };
@@ -38,7 +38,7 @@
3838 };
3939 } ->
4040 κ,
41− γ.mkOption = {default = Integer; description = String; type = λ;} -> μ,
41+ γ.mkOption = {default = Number; description = String; type = λ;} -> μ,
4242 γ.types = ν,
4343 ζ.tvheadend = ξ,
4444 ξ.enable = θ,
test/golden/importless/udev.txt+1−1
@@ -16,6 +16,6 @@
1616 θ.linux = δ
1717) =>
1818{ stdenv = α;
19− substituteAll = {isExecutable = Bool; shell = ζ; src = Path;} -> ι;
19+ substituteAll = {isExecutable = Bool; shell = ζ; src = String;} -> ι;
2020} ->
2121ε
test/golden/importless/uffi.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/ui.txt+1−1
@@ -12,7 +12,7 @@
1212 };
1313 nativeBuildInputs = [η];
1414 outputs = [String];
15− patches = [Path];
15+ patches = [String];
1616 pname = String;
1717 propagatedBuildInputs = [θ];
1818 src = ι;
test/golden/importless/uiop.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/unit-test.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/unix-odbc-drivers.txt+2−2
@@ -6,9 +6,9 @@
66 δ.literalExample = String -> ι,
77 δ.mkIf = Bool -> {environment = {etc = {odbcinst.ini = {text = θ;};};};} -> κ,
88 δ.mkOption =
9− {default = ∀ α. α; description = String; example = ι; type = λ;} -> μ,
9+ {default = ∀ α. [α]; description = String; example = ι; type = λ;} -> μ,
1010 δ.types = ν,
11− ε.unixODBCDrivers = ξ,
11+ ε.unixODBCDrivers = [ξ],
1212 ο.unixODBCDrivers = η,
1313 ν.listOf = π -> λ,
1414 ρ.package = π
test/golden/importless/unix-opts.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/unix.txt+1−1
@@ -1,5 +1,5 @@
11∀ β γ δ ε ζ η θ ι κ.
2−( (β) // ({description = String;}) ~ (γ),
2+( β // {description = String;} ~ γ,
33 δ.optional = Bool -> ε -> ζ,
44 η.meta = β,
55 η.src = θ,
test/golden/importless/updateSettings.txtnew file+12
@@ -0,0 +1,12 @@
1+∀ α β γ δ ε.
2+(α.optionalString = Bool -> String -> β) => { jq = γ;
3+ lib = α;
4+ writeShellScriptBin = String -> δ -> ε;
5+} ->
6+{ createIfDoesNotExists = Bool;
7+ settings = {};
8+ symlinkFromUserSetting = Bool;
9+ userSettingsFolder = String;
10+ vscodeSettingsFile = String;
11+} ->
12+ε
test/golden/importless/uptimed.txt+1−1
@@ -15,7 +15,7 @@
1515 { ExecStart = String;
1616 IOSchedulingClass = String;
1717 InaccessibleDirectories = String;
18− Nice = Integer;
18+ Nice = Number;
1919 NoNewPrivileges = String;
2020 PrivateNetwork = String;
2121 PrivateTmp = String;
test/golden/importless/urserver.txt+2−4
@@ -7,9 +7,7 @@
77 γ.mkIf =
88 η ->
99 { networking =
10− { firewall =
11− {allowedTCPPorts = [Integer]; allowedUDPPorts = [Integer];};
12− };
10+ {firewall = {allowedTCPPorts = [Number]; allowedUDPPorts = [Number];};};
1311 systemd =
1412 { user =
1513 { services =
@@ -21,7 +19,7 @@
2119 { ExecStart = String;
2220 ExecStop = String;
2321 Restart = String;
24− RestartSec = Integer;
22+ RestartSec = Number;
2523 Type = String;
2624 };
2725 wantedBy = [String];
test/golden/importless/user-account.txt+1−1
@@ -6,7 +6,7 @@
66 { description = String;
77 isNormalUser = Bool;
88 password = String;
9− uid = Integer;
9+ uid = Number;
1010 };
1111 bob = {description = String; isNormalUser = Bool; password = String;};
1212 };
test/golden/importless/utils.txt+4−4
@@ -7,15 +7,15 @@
77 δ.attrNames = λ -> μ,
88 δ.concatStringsSep = String -> ν -> String,
99 δ.elem = ζ -> [String] -> Bool,
10− δ.flatten = ξ -> ο,
10+ δ.flatten = [ξ] -> ο,
1111 δ.hasPrefix = String -> κ -> Bool,
12− δ.imap0 = (π -> λ -> ξ) -> λ -> ξ,
12+ δ.imap0 = (π -> λ -> [ξ]) -> λ -> [ξ],
1313 δ.imap1 = (ρ -> σ -> String) -> τ -> ν,
1414 δ.isAttrs = λ -> Bool,
1515 δ.isList = λ -> Bool,
1616 δ.listToAttrs = ο -> υ,
17− δ.map = (String -> ξ) -> μ -> ξ,
18− δ.nameValuePair = String -> φ -> ξ,
17+ δ.map = (String -> [ξ]) -> μ -> [ξ],
18+ δ.nameValuePair = String -> φ -> [ξ],
1919 δ.removePrefix = String -> χ -> ψ,
2020 δ.replaceChars = [String] -> [String] -> ψ -> ω,
2121 δ.throw = String -> String,
test/golden/importless/v10.txt+1−1
@@ -1,6 +1,6 @@
11∀ α β γ δ.
22{ callPackage =
3− Path ->
3+ String ->
44 {icu = α; openssl = β; python = γ;} ->
55 {enableNpm = Bool; sha256 = String; version = String;} -> δ;
66 enableNpm = Bool;
test/golden/importless/v12.txt+1−1
@@ -1,6 +1,6 @@
11∀ α β γ δ.
22{ callPackage =
3− Path ->
3+ String ->
44 {icu = α; openssl = β; python = γ;} ->
55 {enableNpm = Bool; sha256 = String; version = String;} -> δ;
66 enableNpm = Bool;
test/golden/importless/v14.txt+1−1
@@ -1,6 +1,6 @@
11∀ α β γ.
22{ callPackage =
3− Path ->
3+ String ->
44 {openssl = α; python = β;} ->
55 {enableNpm = Bool; sha256 = String; version = String;} -> γ;
66 enableNpm = Bool;
test/golden/importless/v3_4.txt+2−2
@@ -3,9 +3,9 @@
33 Security = ζ;
44 boost = η;
55 callPackage =
6− Path ->
6+ String ->
77 {CoreFoundation = ε; Security = ζ; boost = η; cctools = θ; sasl = ι;} ->
8− {license = δ; patches = [Path]; sha256 = String; version = String;} -> κ;
8+ {license = δ; patches = [String]; sha256 = String; version = String;} -> κ;
99 cctools = θ;
1010 lib = λ;
1111 sasl = ι;
test/golden/importless/v3_6.txt+3−3
@@ -1,15 +1,15 @@
11∀ α β γ δ ε ζ η θ ι κ.
22( α.isDarwin = β,
33 α.lib = γ,
4− γ.optionals = β -> [Path] -> [Path]
4+ γ.optionals = β -> [String] -> [String]
55) =>
66{ CoreFoundation = δ;
77 Security = ε;
88 boost = ζ;
99 callPackage =
10− Path ->
10+ String ->
1111 {CoreFoundation = δ; Security = ε; boost = ζ; cctools = η; sasl = θ;} ->
12− {patches = [Path]; sha256 = String; version = String;} -> ι;
12+ {patches = [String]; sha256 = String; version = String;} -> ι;
1313 cctools = η;
1414 lib = κ;
1515 sasl = θ;
test/golden/importless/v4_0.txt+3−3
@@ -1,15 +1,15 @@
11∀ α β γ δ ε ζ η θ ι κ.
22( α.isDarwin = β,
33 α.lib = γ,
4− γ.optionals = β -> [Path] -> [Path]
4+ γ.optionals = β -> [String] -> [String]
55) =>
66{ CoreFoundation = δ;
77 Security = ε;
88 boost = ζ;
99 callPackage =
10− Path ->
10+ String ->
1111 {CoreFoundation = δ; Security = ε; boost = ζ; cctools = η; sasl = θ;} ->
12− {patches = [Path]; sha256 = String; version = String;} -> ι;
12+ {patches = [String]; sha256 = String; version = String;} -> ι;
1313 cctools = η;
1414 lib = κ;
1515 sasl = θ;
test/golden/importless/v4_2.txt+3−3
@@ -1,15 +1,15 @@
11∀ α β γ δ ε ζ η θ ι κ.
22( α.isDarwin = β,
33 α.lib = γ,
4− γ.optionals = β -> [Path] -> [Path]
4+ γ.optionals = β -> [String] -> [String]
55) =>
66{ CoreFoundation = δ;
77 Security = ε;
88 boost = ζ;
99 callPackage =
10− Path ->
10+ String ->
1111 {CoreFoundation = δ; Security = ε; boost = ζ; cctools = η; sasl = θ;} ->
12− {patches = [Path]; sha256 = String; version = String;} -> ι;
12+ {patches = [String]; sha256 = String; version = String;} -> ι;
1313 cctools = η;
1414 lib = κ;
1515 sasl = θ;
test/golden/importless/vim.txt+1−1
@@ -7,7 +7,7 @@
77 ζ ->
88 {environment = {systemPackages = [η]; variables = {EDITOR = θ;};};} -> ι,
99 γ.mkOption = {default = Bool; description = String; type = κ;} -> λ,
10− γ.mkOverride = Integer -> String -> θ,
10+ γ.mkOverride = Number -> String -> θ,
1111 γ.types = μ,
1212 δ.vim = η,
1313 ε.vim = ν,
test/golden/importless/virtualbox-guest.txt+1−1
@@ -32,7 +32,7 @@
3232 ] ->
3333 ι,
3434 γ.mkOption = {default = Bool; description = String; type = ξ;} -> ο,
35− γ.mkOverride = Integer -> [String] -> π,
35+ γ.mkOverride = Number -> [String] -> π,
3636 γ.types = ρ,
3737 δ.stdenv = σ,
3838 ε.kernelPackages = τ,
test/golden/importless/vom.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/wakeonlan.txt+3−2
@@ -7,14 +7,15 @@
77 δ.map =
88 ({interface = κ; method = String; password = String;} -> String) -> λ -> θ,
99 δ.mkOption =
10− { default = ∀ α. α;
10+ { default = ∀ α. [α];
1111 description = String;
1212 example = [{interface = String; method = String; password = String;}];
1313 } ->
1414 μ,
1515 δ.throw = String -> String,
1616 ζ.wakeonlan = ν,
17− ν.interfaces = λ
17+ ν.interfaces = λ,
18+ (String | Number) ~ η
1819) =>
1920β ->
2021{ config = {powerManagement = {powerDownCommands = ι;};};
test/golden/importless/winetricks.txt+1−1
@@ -21,7 +21,7 @@
2121) =>
2222{ bash = γ;
2323 cabextract = γ;
24− callPackage = Path -> {} -> ι;
24+ callPackage = String -> {} -> ι;
2525 coreutils = γ;
2626 curl = γ;
2727 gnugrep = γ;
test/golden/importless/with-extensions.txt+2−2
@@ -5,7 +5,7 @@
55 β.meta = η,
66 β.name = δ
77) =>
8−{ buildEnv = {name = String; paths = θ;} -> ι;
8+{ buildEnv = {name = String; paths = [θ];} -> ι;
99 lib = α;
1010 makeWrapper = β;
1111 runCommand =
@@ -13,6 +13,6 @@
1313 {buildInputs = [β]; dontPatchELF = Bool; dontStrip = Bool; meta = η;} ->
1414 String -> κ;
1515 vscode = β;
16− vscodeExtensions = θ;
16+ vscodeExtensions = [θ];
1717} ->
1818κ
test/golden/importless/x32edit.txt+9−12
@@ -1,15 +1,12 @@
11∀ α β γ.
2−( ( α
3− ) //
4− ( { brand = String;
5− homepage = String;
6− sha256 = String;
7− type = String;
8− version = String;
9− }
10− ) ~
11− ( β
12− ),
13− α.callPackage = Path -> β -> γ
2+( α //
3+ { brand = String;
4+ homepage = String;
5+ sha256 = String;
6+ type = String;
7+ version = String;
8+ } ~
9+ β,
10+ α.callPackage = String -> β -> γ
1411) =>
1512α -> γ
test/golden/importless/xen-domU.txt+1−1
@@ -2,7 +2,7 @@
22α ->
33{ boot =
44 { initrd = {kernelModules = [String];};
5− loader = {grub = {device = String; version = Integer;};};
5+ loader = {grub = {device = String; version = Number;};};
66 };
77 services = {syslogd = {tty = String;}; timesyncd = {enable = Bool;};};
88}
test/golden/importless/xfce4-mailwatch-plugin.txt+1−1
@@ -6,7 +6,7 @@
66 { description = String;
77 homepage = String;
88 license = ε;
9− maintainers = ∀ α. α;
9+ maintainers = ∀ α. [α];
1010 platforms = ζ;
1111 };
1212 nativeBuildInputs = [η];
test/golden/importless/xfce4-mpc-plugin.txt+1−1
@@ -6,7 +6,7 @@
66 { description = String;
77 homepage = String;
88 license = ε;
9− maintainers = ∀ α. α;
9+ maintainers = ∀ α. [α];
1010 platforms = ζ;
1111 };
1212 nativeBuildInputs = [η];
test/golden/importless/xfce4-timer-plugin.txt+1−1
@@ -7,7 +7,7 @@
77 { description = String;
88 homepage = String;
99 license = ε;
10− maintainers = ∀ α. α;
10+ maintainers = ∀ α. [α];
1111 platforms = ζ;
1212 };
1313 nativeBuildInputs = [η];
test/golden/importless/xmpp-alerts.txtdeleted−54
@@ -1,54 +0,0 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ.
2−( α.config = β,
3− α.lib = γ,
4− α.pkgs = δ,
5− β.services = ε,
6− γ.builtins = ζ,
7− γ.cfg = η,
8− γ.mkEnableOption = String -> θ,
9− γ.mkIf =
10− ι ->
11− { systemd =
12− { services =
13− { prometheus-xmpp-alerts =
14− { after = [String];
15− serviceConfig =
16− { DynamicUser = Bool;
17− ExecStart = String;
18− NoNewPrivileges = Bool;
19− PrivateDevices = Bool;
20− PrivateTmp = Bool;
21− ProtectControlGroups = Bool;
22− ProtectHome = Bool;
23− ProtectKernelModules = Bool;
24− ProtectKernelTunables = Bool;
25− ProtectSystem = String;
26− Restart = String;
27− RestrictAddressFamilies = [String];
28− SystemCallArchitectures = String;
29− SystemCallFilter = [String];
30− };
31− wantedBy = [String];
32− wants = [String];
33− };
34− };
35− };
36− } ->
37− κ,
38− γ.mkOption = {description = String; type = λ;} -> μ,
39− γ.types = ν,
40− δ.writeText = String -> ξ -> ο,
41− ζ.toJSON = π -> ξ,
42− η.configuration = π,
43− ε.prometheus = ρ,
44− ρ.xmpp-alerts = σ,
45− σ.enable = ι,
46− ν.attrs = λ
47−) =>
48−α ->
49−{ config = κ;
50− options =
51− { services =
52− {prometheus = {xmpp-alerts = {configuration = μ; enable = θ;};};};
53− };
54−}
test/golden/importless/xsubseq.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/yacc.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/importless/zpb-ttf.txt+1−1
@@ -2,7 +2,7 @@
22(β.fetchurl = {sha256 = String; url = String;} -> γ) => β ->
33{ asdFilesToKeep = [String];
44 baseName = String;
5− deps = ∀ α. α;
5+ deps = ∀ α. [α];
66 description = String;
77 overrides = ∀ α. α -> α;
88 packageName = String;
test/golden/mine/0.9.txt+1−1
@@ -1 +1 @@
1−∀ α. {a = α; b = α;} -> {bar = [α]; baz = Integer;}
1+∀ α. {a = α; b = α;} -> {bar = [α]; baz = Number;}
test/golden/mine/curry.txt+1−1
@@ -1 +1 @@
1−∀ α. {f = Integer -> String -> α;} -> α
1+∀ α. {f = Number -> String -> α;} -> α
test/golden/mine/define-option-dependently-nested.txt+1−1
@@ -1,3 +1,3 @@
11∀ α β γ δ.
22(α.?set = β, β.?enable = γ, δ.options = α) => δ ->
3−{config = {set = {value = Integer;};};}
3+{config = {set = {value = Number;};};}
test/golden/mine/inftype.txt+1−1
@@ -1 +1 @@
1−∀ α β γ. ((α) // ({a = Integer;}) ~ (β), α.f = β -> γ) => α -> γ
1+∀ α β γ. (α // {a = Number;} ~ β, α.f = β -> γ) => α -> γ
test/golden/mine/nums.nixnew file+5
@@ -0,0 +1,5 @@
1+rec {
2+ f = x: y: x + y;
3+ a = f 1 2;
4+ b = f 1.1 1;
5+}
test/golden/mine/nums.txtnew file+1
@@ -0,0 +1 @@
1+{a = Number; b = Number; f = ∀ α. ((String | Number) ~ α) => α -> α -> α;}
test/golden/mine/other.txt+1−1
@@ -1 +1 @@
1−{f = ∀ α β. (α.y = β) => α -> β; out = Integer;}
1+{f = ∀ α β. (α.y = β) => α -> β; out = Number;}
test/golden/mine/other_row.txt+3−3
@@ -1,5 +1,5 @@
1−{ a = Integer;
2− b = Integer;
3− f = ∀ α. (α.y = Integer) => α -> Integer;
1+{ a = Number;
2+ b = Number;
3+ f = ∀ α. (α.y = Number) => α -> Number;
44 g = ∀ α β. (α.y = β) => α -> β;
55}
test/golden/mine/polyApply.txt+1−1
@@ -1 +1 @@
1−{a = Integer; f = ∀ α. α -> α;}
1+{a = Number; f = ∀ α. α -> α;}
test/golden/mine/row.nixdeleted−5
@@ -1,5 +0,0 @@
1−let
2− f = x: x.y + 1;
3− g = x: x.y;
4−in
5−(g { y = { n = "1"; }; }).n + 1
test/golden/mine/subsumption.txt+3−3
@@ -1,4 +1,4 @@
1−{ f = ∀ α β. (α.a = β, α.b = β) => α -> β;
2− g = ∀ α. {a = α; b = α;} -> α;
3− h = ∀ α β. (α.a = β, α.b = β) => α -> β;
1+{ f = ∀ α β. (α.a = β, α.b = β, (String | Number) ~ β) => α -> β;
2+ g = ∀ α. ((String | Number) ~ α) => {a = α; b = α;} -> α;
3+ h = ∀ α β. (α.a = β, α.b = β, (String | Number) ~ β) => α -> β;
44}
test/golden/mine/subsumption_other.nixnew file+5
@@ -0,0 +1,5 @@
1+rec {
2+ f = u: u 1;
3+ g = x: x;
4+ a = f g;
5+}
test/golden/mine/subsumption_other.txtnew file+1
@@ -0,0 +1 @@
1+{a = Number; f = ∀ α. (Number -> α) -> α; g = ∀ α. α -> α;}
test/golden/mine/unionfs.nixdeleted−21
@@ -1,21 +0,0 @@
1−{ config, pkgs, lib, ... }:
2−
3−{
4− config = lib.mkMerge [
5−
6− (lib.mkIf (lib.any (fs: fs == "unionfs-fuse") config.boot.initrd.supportedFilesystems) {
7− boot.initrd.kernelModules = [ "fuse" ];
8−
9− boot.initrd.extraUtilsCommands = "a";
10−
11− boot.initrd.postDeviceCommands = "b";
12− }
13− )
14−
15− (lib.mkIf (lib.any (fs: fs == "unionfs-fuse") config.boot.supportedFilesystems) {
16− system.fsPackages = [ pkgs.unionfs-fuse ];
17− }
18− )
19−
20− ];
21−}
test/golden/mine/variadic.txt+4−1
@@ -1 +1,4 @@
1−{a = Integer; b = Integer; f = ∀ α β. (α.a = β, α.b = β) => α -> β;}
1+{ a = Number;
2+ b = Number;
3+ f = ∀ α β. (α.a = β, α.b = β, (String | Number) ~ β) => α -> β;
4+}
test/golden/mine/with.txt+1−1
@@ -1 +1 @@
1−{f = Integer -> Integer; foo = Integer;}
1+{f = Number -> Number; foo = Number;}