on 0959fb4 help sign in
308 files changed+2743−2592
since splitsnapshots
unifiedsplit
docs/paper.lhs+43−160 docs/pres_2/img/ter.png docs/pres_2/pres.md+52−52 paper.pdf src/Tix/Builtins.hs−68 src/Tix/Typechecker.hs+1−3 src/Tix/Types.hs+1−1 test/golden/importless/0.10.txt+1−1 test/golden/importless/0.2.txt+1−1 test/golden/importless/0.3.3.txt+1−1 test/golden/importless/0.5.1.txt+1−1 test/golden/importless/0.8.5.txt+2−2 test/golden/importless/1-default.txt+1−1 test/golden/importless/1.0.0.txt+1−1 test/golden/importless/1.0.txt+2−2 test/golden/importless/1.5.txt+2−2 test/golden/importless/1.55.txt+1−1 test/golden/importless/1.59.txt+1−1 test/golden/importless/1.60.txt+1−1 test/golden/importless/1.65.txt+1−1 test/golden/importless/1.66.txt+1−1 test/golden/importless/1.67.txt+1−1 test/golden/importless/1.68.txt+1−1 test/golden/importless/1.69.txt+1−1 test/golden/importless/1.70.txt+1−1 test/golden/importless/1.71.txt+1−1 test/golden/importless/1.72.txt+1−1 test/golden/importless/12.txt+1−1 test/golden/importless/1compat.txt+1−1 test/golden/importless/2.0.0.txt+1−1 test/golden/importless/2.1.txt+1−1 test/golden/importless/2.2.txt+1−1 test/golden/importless/2.5.txt+1−1 test/golden/importless/2.6.13-pre.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.8.txt+1−1 test/golden/importless/2_4.txt+1−1 test/golden/importless/3.0.txt+1−1 test/golden/importless/3.11.txt+1−1 test/golden/importless/3.5.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/38.txt+1−1 test/golden/importless/3_1.txt+1−1 test/golden/importless/4.13a.txt+1−1 test/golden/importless/4.3.2.txt+1−1 test/golden/importless/422.txt+1−1 test/golden/importless/6.3.txt+1−1 test/golden/importless/60.txt+1−1 test/golden/importless/68.txt+1−1 test/golden/importless/7.6.6.txt+1−1 test/golden/importless/78.txt+1−1 test/golden/importless/8.5.txt+1−1 test/golden/importless/8.6.txt+1−1 test/golden/importless/8_0.txt+10−7 test/golden/importless/9.2.txt+1−1 test/golden/importless/alexandria.txt+1−1 test/golden/importless/aliases.txt+217 test/golden/importless/apiextractor.txt+1−1 test/golden/importless/appliance.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/attica.txt−14 test/golden/importless/b43.txt+15−13 test/golden/importless/binary-tarball.txt+22−16 test/golden/importless/bluez-qt.txt−16 test/golden/importless/build-rebar3.txt+22−19 test/golden/importless/build-solution.txt+1−1 test/golden/importless/build.txt+2−2 test/golden/importless/buildOcamlJane.txt+16−13 test/golden/importless/builder.txt+13−10 test/golden/importless/chipz.txt+1−1 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/closer-mop.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+1−1 test/golden/importless/compiler.txt+1−1 test/golden/importless/component-packages.txt+671−671 test/golden/importless/contrib.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/data.txt+1−1 test/golden/importless/db3.txt+1−1 test/golden/importless/debian-build.txt+15−12 test/golden/importless/declare-lazyAttrsOf.txt+1−1 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-list.txt+1−1 test/golden/importless/dfu-util.txt+1−1 test/golden/importless/dictd-wiktionary.txt+1−1 test/golden/importless/dictd-wordnet.txt+1−1 test/golden/importless/dissect.txt+1−1 test/golden/importless/dsseries.txt+1−1 test/golden/importless/dvtm.txt+2−2 test/golden/importless/eggs.txt−14 test/golden/importless/emulate-app.txt+1−1 test/golden/importless/eos.txt+1−1 test/golden/importless/extpack.txt+27 test/golden/importless/fare-utils.txt+1−1 test/golden/importless/faust1.txt+46−37 test/golden/importless/faust2.txt+51−42 test/golden/importless/fcitx.txt+2−2 test/golden/importless/fixed-points.txt+9−5 test/golden/importless/flatpak.txt+1−1 test/golden/importless/fox-1.6.txt+1−1 test/golden/importless/frameworks.txt+60−60 test/golden/importless/freeoffice.txt+12−9 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/gdk-pixbuf.txt+2−2 test/golden/importless/gemset-beta.txt+36−36 test/golden/importless/gemset_libvirt.txt+15−15 test/golden/importless/generatorrunner.txt+1−1 test/golden/importless/generic-builder.txt+16−13 test/golden/importless/generic-stack-builder.txt+22−19 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/global-vars.txt+1−1 test/golden/importless/gmusic.txt+1−1 test/golden/importless/graphql.txt+1−1 test/golden/importless/helper.txt+1−1 test/golden/importless/http.txt+1−1 test/golden/importless/imapfilter.txt+1−1 test/golden/importless/integrations-core.txt+13−10 test/golden/importless/introspect-environment.txt+1−1 test/golden/importless/iterate.txt+1−1 test/golden/importless/janePackage.txt+10−7 test/golden/importless/janePackage_0_12.txt+10−7 test/golden/importless/janePackage_0_13.txt+10−7 test/golden/importless/java.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/kdnssd.txt−17 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/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/library.txt+1−1 test/golden/importless/libtool2.txt+1−1 test/golden/importless/licenses.txt+17−14 test/golden/importless/lift.txt+1−1 test/golden/importless/linux-4.14.txt+10−7 test/golden/importless/linux-4.19.txt+10−7 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+10−7 test/golden/importless/linux-5.8.txt+10−7 test/golden/importless/linux-5.9.txt+10−7 test/golden/importless/linux-hardkernel-4.14.txt+12−9 test/golden/importless/linux-testing-bcachefs.txt+16−13 test/golden/importless/linux-testing.txt+23 test/golden/importless/linux-zen.txt+11−8 test/golden/importless/liquidsoap.txt+68 test/golden/importless/lldpd.txt+1−1 test/golden/importless/ltc.txt+1−1 test/golden/importless/m32edit.txt+11−8 test/golden/importless/macvim.txt+1−1 test/golden/importless/make-dbus-conf.txt+2−2 test/golden/importless/make-squashfs.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+20−17 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/mk-string-metrics.txt+1−1 test/golden/importless/modemmanager-qt.txt−15 test/golden/importless/modules.txt+163−163 test/golden/importless/moodle-utils.txt+12−9 test/golden/importless/mt19937.txt+1−1 test/golden/importless/named-readtables.txt+1−1 test/golden/importless/net_dot_didierverna_dot_asdf-flv.txt+1−1 test/golden/importless/networkmanager-qt.txt−15 test/golden/importless/new-api.txt+1−1 test/golden/importless/node.txt+1−2 test/golden/importless/nscd.txt+62 test/golden/importless/oauth2_proxy_nginx.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/pk.txt+1−1 test/golden/importless/platform-flags.txt+1−1 test/golden/importless/plump-lexer.txt+1−1 test/golden/importless/pressureaudio.txt+1−1 test/golden/importless/prison.txt−17 test/golden/importless/prove-asdf.txt+1−1 test/golden/importless/ptester.txt+1−1 test/golden/importless/qt4.txt+1−1 test/golden/importless/qtModule.txt+18−15 test/golden/importless/qtgamepad.txt+1−1 test/golden/importless/qtspeech.txt+1−2 test/golden/importless/rebar3-release.txt+19−16 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/robustirc-bridge.txt+1−1 test/golden/importless/rt.txt+1−1 test/golden/importless/ruby-packages.txt+253−253 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/sage-env.txt+1−1 test/golden/importless/salza2.txt+1−1 test/golden/importless/schema.txt+1−1 test/golden/importless/scripts.txt+1−1 test/golden/importless/sdk-pkgs.txt+13−10 test/golden/importless/shadow.txt+11−8 test/golden/importless/share.txt+1−1 test/golden/importless/shiboken.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+12−9 test/golden/importless/solid.txt−20 test/golden/importless/sonnet.txt−16 test/golden/importless/spotify.txt+2−2 test/golden/importless/squeezelite.txt+14−12 test/golden/importless/staging.txt+2−2 test/golden/importless/status.txt+1−1 test/golden/importless/string-case.txt+1−1 test/golden/importless/swank.txt+1−1 test/golden/importless/syntax-highlighting.txt−16 test/golden/importless/terminal-server.txt+1−1 test/golden/importless/test.txt+1−1 test/golden/importless/threadweaver.txt−14 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/uffi.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/utils.txt+4−4 test/golden/importless/vom.txt+1−1 test/golden/importless/wakeonlan.txt+1−1 test/golden/importless/with-extensions.txt+2−2 test/golden/importless/x32edit.txt+11−8 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/inftype.txt+1−1 test/golden/mine/row.nix+5 test/golden/mine/unionfs.nix+21
docs/paper.lhs+43−160
@@ -68,7 +68,7 @@
6868\pagestyle{plain}
6969
7070\begin{abstract}
71− Configuring and building even the most straightforward software projects is often not simple -- it requires downloading and installing copious amounts of prerequisite software. This often makes reproducing builds of a project on different machines problematic. The Nix package manager aims to address this problem by providing a unified language for describing software packages in a purely functional way. This language is called the Nix Expression Language. Since all of the complexity of software configuration needs to be expressed in the Nix Expression Language, the expressions themselves often become pretty complicated, making it difficult to understand and extend existing expressions without introducing errors. A widespread tool for easing the understandability and correctness of expressions in other languages is static type checking. This paper will explore the techniques that can be used to add static type checking to the Nix Expression Language.
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 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.
7272\end{abstract}
7373
7474% \begin{otherlanguage}{russian}
@@ -87,11 +87,11 @@
8787
8888\section*{Introduction}
8989
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.
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 install additional libraries and tools manually.
9191
9292Such 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.
9393
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:
94+This problem is partially solved by so-called virtual environment 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. These tools can generally be split into one of two categories:
9595
9696\begin{enumerate}
9797 \item \emph{language-specific tools} which simplify installing and switching between different versions of some tools (usually compilers). Examples of such tools are:
@@ -109,7 +109,7 @@ So-called virtual environment tools partially solve this problem. A virtual envi
109109 \end{enumerate}
110110\end{enumerate}
111111
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}.
112+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}.
113113
114114Secondly, 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.
115115
@@ -127,13 +127,13 @@ Refactoring existing code is also tricky since the generated expressions are onl
127127
128128A 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.
129129
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).
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).
131131
132132The 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.
133133
134134\section{Nix Expression Language}
135135
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.
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.
137137
138138\subsection{Atomic types}
139139
@@ -158,7 +158,7 @@ Atomic types are described in table~\ref{tab:atomicTypes}.
158158
159159\subsubsection{Double quoted string literals}
160160
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}.
161+Double quoted string literals are string literals just like in many other programming languages. It can contain esaped newline character literals \texttt{\textbackslash n} which will be preserved as shown in figure~\ref{lst:newlineString}.
162162
163163\begin{figure}
164164 \begin{minipage}{\textwidth}
@@ -172,7 +172,7 @@ Double quoted string literals are string literals, just like in many other progr
172172
173173\subsubsection{Multiline string literals}
174174
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}.
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}.
176176
177177\begin{figure}
178178 \begin{minipage}{\textwidth}
@@ -206,7 +206,7 @@ Palnet''
206206
207207\subsection{Lists}
208208
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}.
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}.
210210
211211\begin{figure}
212212 \begin{minipage}{\textwidth}
@@ -236,7 +236,7 @@ An attribute set is internally implemented as a hashmap with strings as keys whe
236236 \label{lst:attrSet}
237237\end{figure}
238238
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.
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.
240240
241241\begin{figure}
242242 \begin{minipage}{\textwidth}
@@ -271,7 +271,7 @@ There is a binary \emph{update} operator that takes two \emph{attribute sets} as
271271
272272\subsection{Recursive attribute sets} \label{sec:recAttrSet}
273273
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.
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 form normal \emph{attribute set} literals by the \texttt{rec} key word at the beginning.
275275
276276\begin{figure}
277277 \begin{minipage}{\textwidth}
@@ -307,7 +307,7 @@ in d
307307
308308\subsection{With expression} \label{sec:withExp}
309309
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}.
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 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 figure~\ref{lst:with}.
311311
312312\begin{figure}
313313 \begin{minipage}{\textwidth}
@@ -322,7 +322,7 @@ in d
322322 \label{lst:with}
323323\end{figure}
324324
325−\section{Existing typecheckers implementations}
325+\section{Existing typecheckers}
326326
327327In 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.
328328
@@ -345,7 +345,7 @@ haskell-nix/hnix\footnote{\url{https://github.com/haskell-nix/hnix}} is primaril
345345\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.
346346
347347
348−\section{Existing type system research}
348+\section{Existing Approaches}
349349
350350In this section we will explore existing techniques used to develop typecheckers, and explore how they can be applicable to our implementation.
351351
@@ -393,9 +393,9 @@ There has been some research conducted in the field of type systems with row-pol
393393
394394% 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.
395395
396−\section{Our Nix type system}
396+\section{Type system}
397397
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.
398+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 developed typechecker processes a program without errors, then the program should have no type errors during execution.
399399
400400\subsection{Polymorphism} \label{sec:polymorphism}
401401
@@ -568,7 +568,7 @@ The term \texttt{x: y: x // y} would yield the following type:
568568 \forall \alpha \beta \gamma. \; \alpha \update \beta \sim \gamma \Rightarrow \alpha \rightarrow \beta \rightarrow \gamma
569569\end{equation}
570570
571−\subsection{Atomic types}
571+\subsection{Atmoic types}
572572
573573Nix 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''.}
574574
@@ -883,7 +883,7 @@ instance Semigroup Substitution where
883883
884884This means that the order of composition does no longer matter, and applying the composition of substitutions yields more information than applying them sequentially.
885885
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:
886+Another consequence of the decision to delay substitutions is that now the role of the |infer| step of typechecking only does the following tree things:
887887
888888\begin{enumerate}
889889 \item returns a type variable that represents the type of the expression being inferred
@@ -893,7 +893,7 @@ Another consequence of the decision to delay substitutions is that now the role
893893
894894\subsection{Typing context}
895895
896−The typing context in our implementation, in essence, consists of two distinct data structures:
896+The typing context in our implementation in essence consists of two distinct data structures:
897897
898898\begin{enumerate}
899899 \item the types of variables currently in scope
@@ -902,9 +902,9 @@ The typing context in our implementation, in essence, consists of two distinct d
902902
903903\subsubsection{Variables in scope}
904904
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.
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.
906906
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}}:
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 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}}:
908908
909909\begin{code}
910910data VariableMapEff x where
@@ -918,13 +918,13 @@ lookupVar
918918lookupVar = send . LookupVariable
919919\end{code}
920920
921−This allows us to dynamically redefine what it means to look up a variable in terms of its implementation in the outer context.
921+This allows us to dynamically redefine what it means to lookup a variable in terms of its implementation in the outer context.
922922
923923\subsubsection{Predicates}
924924
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.
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.
926926
927−For this reason, we have developed a data structure we call ``multi-keyed map''.
927+For this reason we have developed a data structure we call ``multi-keyed map''.
928928
929929\begin{code}
930930class (Ord (Key t), Ord t) => Keyable t where
@@ -938,8 +938,8 @@ data MultiKeyedMap t = MultiKeyedMap
938938The data structure is the product of two other data structures:
939939
940940\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
941+ \item A map, mapping possible keys of the stored |t| to a set of values the contain the given key
942+ \item A set which contains the values that don't contain any keys
943943\end{enumerate}
944944
945945The |Keyable| typeclass is used to extract the keys from the values that need to be stored.
@@ -994,11 +994,11 @@ An observation we can make is the following: it only makes sense to close over t
994994 \item are used in an outer lexical scope (environment)
995995\end{enumerate}
996996
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.
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 which 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.
998998
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.
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.
10001000
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:
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 which has the same lexical scope as another type variable:
10021002
10031003\begin{code}
10041004data TypeVariable
@@ -1006,126 +1006,7 @@ data TypeVariable
10061006 | SubTypeVariable Int Int
10071007\end{code}
10081008
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.
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.
11291010
11301011\section{Possible improvements}
11311012
@@ -1139,22 +1020,22 @@ The technique is based on the fact that a type variable by itself can only conve
11391020
11401021\begin{enumerate}
11411022 \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
1023+ \item identity information -- the type variable is equivalent to other type variable with the same name within the scope where it is declared
11431024\end{enumerate}
11441025
11451026Note that all of what follows is only concerned with syntactic constructs. It does in no way alter the semantic of the predicates described above.
11461027
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}.
1028+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 which 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}.
11481029
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.
1030+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.
11501031
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:
1032+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:
11521033
11531034\begin{equation}
11541035 \forall \alpha. \; \alpha \rightarrow \alpha.\text{y}
11551036\end{equation}
11561037
1157−When applied to the type~\ref{eq:updatePredExample}, it yields:
1038+When applied to the type~\ref{eq:updatePredExample} it yields:
11581039
11591040\begin{equation}
11601041 \forall \alpha \beta. \; \alpha \rightarrow \beta \rightarrow (\alpha \update \beta)
@@ -1166,11 +1047,11 @@ We believe the derived types above are a lot easier to understand than their ini
11661047
11671048For 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.
11681049
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.
1050+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.
11701051
11711052\subsubsection{Limitations}
11721053
1173−The technique is not applicable if the ``result'' of a predicate is not a type variable like in type \ref{eq:optFieldPredExample2}.
1054+The technique is not in applicable if the ``result'' of a predicate is not a type variable like in type \ref{eq:optFieldPredExample2}.
11741055
11751056Another 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.
11761057
@@ -1182,12 +1063,12 @@ Some information that might be useful as type hints:
11821063
11831064\begin{enumerate}
11841065 \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.
1066+ \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.
11861067\end{enumerate}
11871068
11881069\subsection{Sum types} \label{sec:sumTypes}
11891070
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.
1071+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.
11911072
11921073The 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:
11931074
@@ -1201,9 +1082,11 @@ where $\beta$ can be the type $\alpha$. With this predicate, our ``String or Num
12011082 \strOrNum \sim \alpha = (\text{String} \lessdot \alpha, \text{Number} \lessdot \alpha)
12021083\end{equation}
12031084
1204−\section*{Conclusion}
1085+\section{Conclusion}
1086+
1087+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.
12051088
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.
1089+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.
12071090
12081091\newpage
12091092
docs/pres_2/img/ter.png

Binary file not shown.

docs/pres_2/pres.md+52−52
@@ -20,9 +20,8 @@ _Supervisor:_ Victor Kuliamin, Associate Professor, PhD
2020
2121---
2222
23−## Nix is a powerful package manager that makes package management reliable and reproducible.
24−
25−#### – [nixos.org](https://nixos.org)
23+> Nix is a powerful package manager that makes package management reliable and reproducible.
24+-- [nixos.org](https://nixos.org)
2625
2726---
2827
@@ -66,12 +65,10 @@ in derivation {
6665
6766---
6867
69−[.text: text-scale(0.55)]
68+[.text: text-scale(0.75)]
7069
7170# Terms and definitions
7271
73−**Type** – an attribute of data which tells the compiler or interpreter how the programmer intends to use the data
74−
7572**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
7673
7774**Type checking** – the process of verifying and enforcing the constraints of types.
@@ -105,14 +102,14 @@ Adding static typing would:
105102- Increase reliability of code
106103- Lower costs of development (resolving issue earlier is cheaper)
107104
108−<!-- _The typechecker should help find issues in existing code_ -->
105+_The typechecker should help find issues in existing code_
109106
110107---
111108
112109# The goal
113110
114−1. Develop a static type system for the existing Nix expression language
115−2. Develop a type checker for this static type system
111+1. Develop a type static system for the existing Nix expression language
112+2. Develop a type checker for this type system
116113
117114---
118115
@@ -132,48 +129,31 @@ The Hindley–Milner type system_[1]_ is a simple, but well-studied type system
132129
133130---
134131
135−# Methods and algorithms
132+# Functional requirements
136133
137−The developed type system is heavily influenced by the Hindley–Milner_[1]_ type system.
134+- The system should perform type checking on expression.
138135
136+- The system should analyze the types and presence of attributes in attribute sets.
139137
140−---
138+- The system should report encountered typechecking.
141139
142−# Methods and algorithms
140+- The system should report the use of undefined terms.
143141
144−The developed type system supports parametric polymorphism to support code that does not require a specific type.
145−
146−```nix
147−x: y: x ++ y
148−```
149−
150−```
151−∀ α. [α] -> [α] -> [α]
152−```
142+- The system should report the resulting types of expressions to the user.
153143
154144---
155145
156−# Methods and algorithms
157−
158−The developed type system implements row polymorphism to work with attribute sets.
146+[.text: text-scale(0.85)]
159147
160−```nix
161−x: x.v + 69
162−```
148+# Methods and algorithms
163149
164−```
165−∀ α. (α.v = Number) => α -> Number
166−```
150+The type system will be heavily influenced by the Hindley–Milner_[1]_ type system.
167151
168−<br />
152+The type system will implement parametric polymorphism to support code that does not require a specific type.
169153
170−```nix
171−x: x // {v = "hello";}
172−```
154+The type system will implement arbitrary-ranked polymorphism_[3]_ with deep instantiation to disambiguate types in existing untyped code.
173155
174−```
175−∀ α β. (α // {v = String;} ~ β) => α -> β
176−```
156+The type system will implement row polymorphism to work with attribute sets.
177157
178158---
179159
@@ -197,28 +177,49 @@ The typechecker is implemented in a two-step architecture:
197177
198178---
199179
200−# Results
180+# Current results
201181
202−- Theoretical
203− - A static type system for the Nix Expression Language
182+A typechecker executable that successfully typechecks _most_ of the selected files from _nixpkgs_.
204183
205−- Practical
184+The typechecker currently has some support for all language constructs.
206185
207− - A typechecker executable that successfully typechecks _most_ of the selected files from _nixpkgs_.
186+![.right .fit](img/ter.png)
208187
209− - The typechecker supports all language constructs.
188+---
210189
211−![.right .fit](img/ter.png)
190+[.build-lists: false]
191+
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
212213
213214---
214215
215216# Potential future developments
216217
217218- Add support for user-supplied type annotations.
219+ - Fork parser
220+ - Bidirectional type inference_[4]_
218221- Type holes
219222- Language Server Integration
220−- Better type rendering
221−- Sum types
222223
223224---
224225
@@ -227,10 +228,9 @@ The typechecker is implemented in a two-step architecture:
227228
228229# References
229230
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.
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
234234
235235---
236236
@@ -347,7 +347,7 @@ let f = x: x.a; in f {b = "hello";}
347347```
348348
349349```
350−Error: key "a" not present in { b = String; }
350+Error: key "a" NotPresent in { b = String; }
351351```
352352
353353---
paper.pdfdeleted

Binary file not shown.

src/Tix/Builtins.hsdeleted−68
@@ -1,68 +0,0 @@
1−module Tix.Builtins (builtins) where
2−
3−import Data.Map (Map)
4−import qualified Data.Map as M
5−import Data.Text (Text)
6−import Tix.Types
7−
8−builtins :: Map Text Scheme
9−builtins =
10− M.fromList
11− [ ( "builtins",
12− scheme $
13− NAttrSet $
14− M.fromList
15− [ ("abort", scheme $ NAtomic String :-> deBruijn 0 0),
16− ("add", [StringOrNumber $ deBruijn 2 0] :=> (deBruijn 3 0 :-> (deBruijn 4 0 :-> deBruijn 4 0))),
17− ("all", [] :=> ((deBruijn 4 0 :-> NAtomic Bool) :-> (List (deBruijn 5 0) :-> NAtomic Bool))),
18− ("any", [] :=> ((deBruijn 4 0 :-> NAtomic Bool) :-> (List (deBruijn 5 0) :-> NAtomic Bool))),
19− ("attrNames", [] :=> (deBruijn 3 0 :-> List (NAtomic String))),
20− ("attrValues", [] :=> (deBruijn 3 0 :-> List (deBruijn 0 0))),
21− ("baseNameOf", [] :=> (NAtomic String :-> NAtomic String)),
22− ("bitAnd", [] :=> (NAtomic Number :-> (NAtomic Number :-> NAtomic Number))),
23− ("bitXor", [] :=> (NAtomic Number :-> (NAtomic Number :-> NAtomic Number))),
24− ("bitOr", [] :=> (NAtomic Number :-> (NAtomic Number :-> NAtomic Number))),
25− ("ceil", [] :=> (NAtomic Number :-> NAtomic Number)),
26− ("compareVersions", [] :=> (NAtomic String :-> (NAtomic String :-> NAtomic Number))),
27− ("concatLists", [] :=> (List (List (deBruijn 5 0)) :-> List (deBruijn 4 0))),
28− ("concatMap", [] :=> ((deBruijn 4 0 :-> List (deBruijn 5 1)) :-> (List (deBruijn 5 0) :-> List (deBruijn 5 1)))),
29− ("map", [] :=> ((deBruijn 4 0 :-> deBruijn 4 1) :-> (List (deBruijn 5 0) :-> List (deBruijn 5 1)))),
30− ("catAttrs", [] :=> (NAtomic String :-> (List (deBruijn 0 0) :-> List (deBruijn 0 0))))
31− ]
32− ),
33− ( "derivation",
34− [ deBruijn 2 0
35− // attrSet
36− [ ("all", scheme $ List (deBruijn 5 1)),
37− ("drvAttrs", scheme $ deBruijn 4 0),
38− ("drvPath", string),
39− ("out", scheme $ deBruijn 4 1),
40− ("outPath", string),
41− ("outputName", string),
42− ("type", string)
43− ]
44− $ deBruijn 2 1,
45− deBruijn 2 0 .! ("name", string),
46− deBruijn 2 0 .! ("builder", string),
47− deBruijn 2 0 .! ("system", string),
48− deBruijn 2 0 .? ("args", scheme $ List (NAtomic String)),
49− deBruijn 2 0 .? ("outputs", scheme $ List (NAtomic String))
50− ]
51− :=> (deBruijn 3 0 :-> deBruijn 3 1)
52− )
53− ]
54−
55−string :: Scheme
56−string = scheme $ NAtomic String
57−
58−deBruijn :: Int -> Int -> NType
59−deBruijn a b = NBruijn $ DeBruijn a b
60−
61−attrSet :: [(Text, Scheme)] -> NType
62−attrSet = NAttrSet . M.fromList
63−
64−(.!) :: NType -> (Text, Scheme) -> Pred
65−(.!) = HasField RequiredField
66−
67−(.?) :: NType -> (Text, Scheme) -> Pred
68−(.?) = HasField OptionalField
src/Tix/Typechecker.hs+1−3
@@ -52,7 +52,6 @@ import Data.Traversable
5252import Nix.Atoms
5353import Nix.Expr
5454import Nix.Pretty
55−import Tix.Builtins (builtins)
5655import Tix.Types
5756import Prelude as P
5857
@@ -64,7 +63,6 @@ getType r =
6463 . evalState @(MKM.Map Pred) mempty
6564 . interpret @(Writer Pred) (\(Tell x) -> modify (<> MKM.singleton x))
6665 . runVariableMapEff
67− . localVariablesMap builtins
6866 . evalState @Substitution mempty
6967 . runState @[(TypeVariable, SrcSpan)] []
7068 . interpret @(Writer (TypeVariable, SrcSpan)) (\(Tell x) -> modify (x :))
@@ -379,7 +377,7 @@ infer (Fix (Compose (Ann src x))) = local (const src) $ case x of
379377 xs' <- traverse infer xs
380378 traverse_ tell . fmap (uncurry (:~)) $ zip xs' (tail xs')
381379 case xs' of
382− [] -> List . NTypeVariable <$> fresh
380+ [] -> NTypeVariable <$> fresh
383381 y : _ -> return $ List y
384382 NUnary NNeg y -> do
385383 t <- infer y
src/Tix/Types.hs+1−1
@@ -252,7 +252,7 @@ prettyScheme u@(cs :=> t) = do
252252 x' <- prettyNType False x
253253 y' <- prettyNType False y
254254 z' <- prettyNType False z
255− return $ group $ x' <+> "//" <> line <> y' <+> "~" <> line <> z'
255+ return $ group $ paren x' <+> "//" <> line <> paren y' <+> "~" <> line <> paren z'
256256 prettyPred (StringOrNumber x) = do
257257 x' <- prettyNType False x
258258 return $ "(String | Number)" <+> "~" <+> x'
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.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.3.3.txt+1−1
@@ -1,5 +1,5 @@
11∀ α β γ.
2−( α // {patches = [String]; sha256 = String; version = String;} ~ β,
2+( (α) // ({patches = [String]; sha256 = String; version = String;}) ~ (β),
33 α.callPackage = String -> β -> γ
44) =>
55α -> γ
test/golden/importless/0.5.1.txt+1−1
@@ -1,5 +1,5 @@
11∀ α β γ δ.
2−( α // {prePatch = String; src = β; version = String;} ~ γ,
2+( (α) // ({prePatch = String; src = β; version = String;}) ~ (γ),
33 α.callPackage = String -> γ -> δ,
44 α.fetchurl = {sha256 = String; url = String;} -> β
55) =>
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/1-default.txt+1−1
@@ -7,7 +7,7 @@
77 { broken = Bool;
88 description = String;
99 homepage = String;
10− hydraPlatforms = ∀ α. [α];
10+ hydraPlatforms = ∀ α. α;
1111 license = [ε];
1212 platforms = ζ;
1313 };
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.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+1−1
@@ -1,5 +1,5 @@
11∀ α β γ δ.
2−( α // {patches = [String]; src = β; version = String;} ~ γ,
2+( (α) // ({patches = [String]; src = β; version = String;}) ~ (γ),
33 α.callPackage = String -> γ -> δ,
44 α.fetchurl = {sha256 = String; url = String;} -> β
55) =>
test/golden/importless/1.59.txt+1−1
@@ -1,5 +1,5 @@
11∀ α β γ δ ε.
2−( α // {src = β; version = String;} ~ γ,
2+( (α) // ({src = β; version = String;}) ~ (γ),
33 α.callPackage = String -> γ -> δ,
44 α.fetchurl = {sha256 = String; url = String;} -> β,
55 α.stdenv = ε
test/golden/importless/1.60.txt+1−1
@@ -1,5 +1,5 @@
11∀ α β γ δ ε.
2−( α // {src = β; version = String;} ~ γ,
2+( (α) // ({src = β; version = String;}) ~ (γ),
33 α.callPackage = String -> γ -> δ,
44 α.fetchurl = {sha256 = String; url = String;} -> β,
55 α.stdenv = ε
test/golden/importless/1.65.txt+1−1
@@ -1,5 +1,5 @@
11∀ α β γ δ ε.
2−( α // {src = β; version = String;} ~ γ,
2+( (α) // ({src = β; version = String;}) ~ (γ),
33 α.callPackage = String -> γ -> δ,
44 α.fetchurl = {sha256 = String; url = String;} -> β,
55 α.stdenv = ε
test/golden/importless/1.66.txt+1−1
@@ -1,5 +1,5 @@
11∀ α β γ δ ε.
2−( α // {src = β; version = String;} ~ γ,
2+( (α) // ({src = β; version = String;}) ~ (γ),
33 α.callPackage = String -> γ -> δ,
44 α.fetchurl = {sha256 = String; url = String;} -> β,
55 α.stdenv = ε
test/golden/importless/1.67.txt+1−1
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ η θ ι.
2−( α // {patches = [β]; src = γ; version = String;} ~ δ,
2+( (α) // ({patches = [β]; src = γ; version = String;}) ~ (δ),
33 α.callPackage = String -> δ -> ε,
44 α.fetchpatch = {sha256 = String; stripLen = Number; url = String;} -> β,
55 α.fetchurl = {sha256 = String; url = String;} -> γ,
test/golden/importless/1.68.txt+1−1
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ.
2−( α // {src = β; version = String;} ~ γ,
2+( (α) // ({src = β; version = String;}) ~ (γ),
33 α.callPackage = String -> γ -> δ,
44 α.fetchpatch = ε,
55 α.fetchurl = {sha256 = String; url = String;} -> β,
test/golden/importless/1.69.txt+1−1
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ.
2−( α // {src = β; version = String;} ~ γ,
2+( (α) // ({src = β; version = String;}) ~ (γ),
33 α.callPackage = String -> γ -> δ,
44 α.fetchpatch = ε,
55 α.fetchurl = {sha256 = String; url = String;} -> β,
test/golden/importless/1.70.txt+1−1
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ.
2−( α // {src = β; version = String;} ~ γ,
2+( (α) // ({src = β; version = String;}) ~ (γ),
33 α.callPackage = String -> γ -> δ,
44 α.fetchpatch = ε,
55 α.fetchurl = {sha256 = String; url = String;} -> β,
test/golden/importless/1.71.txt+1−1
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ.
2−( α // {src = β; version = String;} ~ γ,
2+( (α) // ({src = β; version = String;}) ~ (γ),
33 α.callPackage = String -> γ -> δ,
44 α.fetchpatch = ε,
55 α.fetchurl = {sha256 = String; urls = [String];} -> β,
test/golden/importless/1.72.txt+1−1
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ.
2−( α // {src = β; version = String;} ~ γ,
2+( (α) // ({src = β; version = String;}) ~ (γ),
33 α.callPackage = String -> γ -> δ,
44 α.fetchpatch = ε,
55 α.fetchurl = {sha256 = String; urls = [String];} -> β,
test/golden/importless/12.txt+1−1
@@ -9,7 +9,7 @@
99 description = String;
1010 homepage = String;
1111 license = ε;
12− maintainers = ∀ α. [α];
12+ maintainers = ∀ α. α;
1313 platforms = ζ;
1414 };
1515 name = String;
test/golden/importless/1compat.txt+1−1
@@ -1,5 +1,5 @@
11∀ β γ δ ε ζ η θ ι.
2−( β // {description = String; priority = Number;} ~ γ,
2+( (β) // ({description = String; priority = Number;}) ~ (γ),
33 δ.mkDerivation = {builder = ε; meta = ∀ α. α; name = String;} -> ζ,
44 η.meta = β,
55 θ.description = String
test/golden/importless/2.0.0.txt+1−1
@@ -9,7 +9,7 @@
99 { description = String;
1010 homepage = String;
1111 license = ε;
12− maintainers = ∀ α. [α];
12+ maintainers = ∀ α. α;
1313 platforms = ζ;
1414 };
1515 nativeBuildInputs = [η];
test/golden/importless/2.1.txt+1−1
@@ -1,5 +1,5 @@
11∀ α β γ.
2−( α // {sha256 = String; version = String;} ~ β,
2+( (α) // ({sha256 = String; version = String;}) ~ (β),
33 α.callPackage = String -> β -> γ
44) =>
55α -> γ
test/golden/importless/2.2.txt+1−1
@@ -1,5 +1,5 @@
11∀ α β γ.
2−( α // {sha256 = String; version = String;} ~ β,
2+( (α) // ({sha256 = String; version = String;}) ~ (β),
33 α.callPackage = String -> β -> γ
44) =>
55α -> γ
test/golden/importless/2.5.txt+1−1
@@ -1,5 +1,5 @@
11∀ α β γ δ.
2−( α // {src = β; version = String;} ~ γ,
2+( (α) // ({src = β; version = String;}) ~ (γ),
33 α.callPackage = String -> γ -> δ,
44 α.fetchurl = {sha256 = String; url = String;} -> β
55) =>
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.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.8.txt+1−1
@@ -1,5 +1,5 @@
11∀ α β γ.
2−( {branch = String; sha256 = String; version = String;} // α ~ β,
2+( ({branch = String; sha256 = String; version = String;}) // (α) ~ (β),
33 α.callPackage = String -> β -> γ
44) =>
55α -> γ
test/golden/importless/2_4.txt+1−1
@@ -1,5 +1,5 @@
11∀ α β γ.
2−( α // {sha256 = String; version = String;} ~ β,
2+( (α) // ({sha256 = String; version = String;}) ~ (β),
33 α.callPackage = String -> β -> γ
44) =>
55α -> γ
test/golden/importless/3.0.txt+1−1
@@ -1,5 +1,5 @@
11∀ α β γ.
2−( α // {sha256 = String; version = String;} ~ β,
2+( (α) // ({sha256 = String; version = String;}) ~ (β),
33 α.callPackage = String -> β -> γ
44) =>
55α -> γ
test/golden/importless/3.11.txt+1−1
@@ -1,5 +1,5 @@
11∀ α β γ.
2−( α // {sha256 = String; version = String;} ~ β,
2+( (α) // ({sha256 = String; version = String;}) ~ (β),
33 α.callPackage = String -> β -> γ
44) =>
55α -> γ
test/golden/importless/3.5.txt+1−1
@@ -1,5 +1,5 @@
11∀ α β γ δ ε.
2−( α // {src = β; version = String;} ~ γ,
2+( (α) // ({src = β; version = String;}) ~ (γ),
33 α.autoreconfHook = δ,
44 α.callPackage = String -> γ -> ε,
55 α.fetchFromGitHub =
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/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+1−1
@@ -1,5 +1,5 @@
11∀ α β γ.
2−( α // {sha256 = String; version = String;} ~ β,
2+( (α) // ({sha256 = String; version = String;}) ~ (β),
33 α.callPackage = String -> β -> γ
44) =>
55α -> γ
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/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/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/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.txt+1−1
@@ -15,7 +15,7 @@
1515 homepage = String;
1616 license = String;
1717 longDescription = String;
18− maintainers = ∀ α. [α];
18+ maintainers = ∀ α. α;
1919 platforms = λ;
2020 };
2121 nativeBuildInputs = [μ];
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.5.txt+1−1
@@ -1,5 +1,5 @@
11∀ α β γ δ ε.
2−( α // {src = β;} ~ γ,
2+( (α) // ({src = β;}) ~ (γ),
33 α.callPackage = String -> γ -> δ,
44 α.fetchurl = {sha256 = String; url = String;} -> β,
55 α.tcl = ε
test/golden/importless/8.6.txt+1−1
@@ -1,5 +1,5 @@
11∀ α β γ δ ε ζ η θ.
2−( α // {patches = [String]; src = β;} ~ γ,
2+( (α) // ({patches = [String]; src = β;}) ~ (γ),
33 α.callPackage = String -> γ -> δ,
44 α.fetchurl = {sha256 = String; url = String;} -> β,
55 α.stdenv = ε,
test/golden/importless/8_0.txt+10−7
@@ -1,11 +1,14 @@
11∀ α β γ.
2−( α //
3− { extraPatches = [String];
4− extraPostInstall = String;
5− sha256 = String;
6− version = String;
7− } ~
8− β,
2+( ( α
3+ ) //
4+ ( { extraPatches = [String];
5+ extraPostInstall = String;
6+ sha256 = String;
7+ version = String;
8+ }
9+ ) ~
10+ ( β
11+ ),
912 α.callPackage = String -> β -> γ
1013) =>
1114α -> γ
test/golden/importless/9.2.txt+1−1
@@ -8,7 +8,7 @@
88 ldid = ζ;
99 meta =
1010 { description = String;
11− hydraPlatforms = ∀ α. [α];
11+ hydraPlatforms = ∀ α. α;
1212 license = η;
1313 maintainers = [θ];
1414 platforms = ι;
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.txtnew file+217
@@ -0,0 +1,217 @@
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 = String -> ρ4
216+) =>
217+λ4 -> ξ4 -> ν4
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/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.txtnew file+59
@@ -0,0 +1,59 @@
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/attica.txtdeleted−14
@@ -1,14 +0,0 @@
1−∀ α β γ δ ε ζ η.
2−(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3− lib = α;
4− mkDerivation =
5− { buildInputs = [γ];
6− meta = {broken = Bool; maintainers = [ε];};
7− name = String;
8− nativeBuildInputs = [ζ];
9− outputs = [String];
10− } ->
11− η;
12− qtbase = γ;
13−} ->
14−η
test/golden/importless/b43.txt+15−13
@@ -1,19 +1,21 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ.
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ.
22( α.config = β,
33 α.lib = γ,
44 α.pkgs = δ,
55 β.boot = ε,
66 β.networking = ζ,
7− γ.lessThan = Number -> η -> θ,
8− γ.mkIf = ι -> {assertions = κ; hardware = {firmware = [λ];};} -> μ,
9− γ.mkOption = {default = Bool; description = String; type = ν;} -> ξ,
10− γ.singleton = {assertion = θ; message = String;} -> κ,
11− γ.types = ο,
12− δ.b43Firmware_5_1_138 = λ,
13− ε.kernelPackages = π,
14− π.kernel = ρ,
15− ρ.version = σ,
16− ζ.enableB43Firmware = ι,
17− ο.bool = ν
7+ γ.builtins = η,
8+ γ.lessThan = Number -> θ -> ι,
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 = ξ
1820) =>
19−α -> {config = μ; options = {networking = {enableB43Firmware = ξ;};};}
21+α -> {config = ν; options = {networking = {enableB43Firmware = ο;};};}
test/golden/importless/binary-tarball.txt+22−16
@@ -1,20 +1,26 @@
11∀ β γ δ ε ζ η.
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− δ,
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+ ),
1824 β.meta = {},
1925 β.?name = String,
2026 ε.version = String,
test/golden/importless/bluez-qt.txtdeleted−16
@@ -1,16 +0,0 @@
1−∀ α β γ δ ε ζ η θ.
2−(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3− lib = α;
4− mkDerivation =
5− { buildInputs = [η];
6− meta = {broken = Bool; maintainers = [ε];};
7− name = String;
8− nativeBuildInputs = [ζ];
9− preConfigure = String;
10− propagatedBuildInputs = [γ];
11− } ->
12− θ;
13− qtbase = γ;
14− qtdeclarative = η;
15−} ->
16−θ
test/golden/importless/build-rebar3.txt+22−19
@@ -1,23 +1,26 @@
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− γ,
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+ ),
2124 β.?beamDeps = [ζ],
2225 β.?buildInputs = [ε],
2326 β.?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+16−13
@@ -1,17 +1,20 @@
11∀ α β γ δ ε ζ.
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− ε,
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+ ),
1518 α.?buildInputs = [β],
1619 α.?hash = String,
1720 α.?minimumSupportedOcamlVersion = String,
test/golden/importless/builder.txt+13−10
@@ -1,14 +1,17 @@
11∀ α β γ δ ε ζ η θ.
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− β,
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+ ),
1215 α.?buildPhase = String,
1316 α.?checkPhase = String,
1417 α.?configurePhase = String,
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/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/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/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+1−1
@@ -19,7 +19,7 @@
1919 β ->
2020 { environment = {systemPackages = [δ];};
2121 nix =
22− { binaryCaches = ∀ α. [α];
22+ { binaryCaches = ∀ α. α;
2323 buildMachines = [{hostName = String; systems = [ι];}];
2424 distributedBuilds = Bool;
2525 };
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/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/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/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+15−12
@@ -1,16 +1,19 @@
11∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο.
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 = [η],
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 = η,
1417 ε.?fsTranslation = Bool,
1518 ε.meta = {},
1619 ε.?name = String,
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-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 = Number;} // β ~ γ,
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 = Number;} // β ~ γ,
2+( ({value = Number;}) // (β) ~ (γ),
33 δ.?enable = ε,
44 ζ.lib = η,
55 ζ.options = δ,
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/dictd-wiktionary.txt+1−1
@@ -8,7 +8,7 @@
88 meta =
99 { description = String;
1010 homepage = String;
11− maintainers = ∀ α. [α];
11+ maintainers = ∀ α. α;
1212 platforms = η;
1313 };
1414 pname = String;
test/golden/importless/dictd-wordnet.txt+1−1
@@ -8,7 +8,7 @@
88 { description = String;
99 homepage = String;
1010 longDescription = String;
11− maintainers = ∀ α. [α];
11+ maintainers = ∀ α. α;
1212 platforms = ζ;
1313 };
1414 pname = String;
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/dsseries.txt+1−1
@@ -1,5 +1,5 @@
11∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο.
2−( β // {description = String;} ~ γ,
2+( (β) // ({description = String;}) ~ (γ),
33 δ.config = ε,
44 δ.lib = ζ,
55 δ.pkgs = η,
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/eggs.txtdeleted−14
@@ -1,14 +0,0 @@
1−∀ ζ η θ.
2−( ζ.eggDerivation = ∀ ε. {buildInputs = ∀ β. [β]; name = String; src = η;} -> ε,
3− ζ.fetchegg = {name = String; sha256 = String; version = String;} -> η
4−) =>
5−{pkgs = ζ; stdenv = θ;} ->
6−{ args = δ;
7− eggDerivation = ∀ γ. {buildInputs = ∀ α. [α]; name = String; src = η;} -> γ;
8− fetchegg = {name = String; sha256 = String; version = String;} -> η;
9− matchable = δ;
10− srfi-1 = δ;
11− srfi-13 = δ;
12− srfi-14 = δ;
13− srfi-37 = δ;
14−}
test/golden/importless/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/extpack.txtnew file+27
@@ -0,0 +1,27 @@
1+∀ α β γ δ ε ζ η θ ι.
2+( α.builtins = β,
3+ α.cdepillabout = γ,
4+ α.licenses = δ,
5+ α.maintainers = ε,
6+ α.sander = γ,
7+ ζ.version = η,
8+ β.stringLength = String -> Number,
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/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+46−37
@@ -1,41 +1,50 @@
11∀ γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1 δ1 ε1 ζ1.
2−( γ //
3− { dontBuild = Bool;
4− installPhase = String;
5− meta = ∀ β. β;
6− name = String;
7− postInstall = String;
8− src = δ;
9− } ~
10− ε,
11− ζ //
12− { buildInputs = [η];
13− nativeBuildInputs = [θ];
14− postFixup = String;
15− propagatedBuildInputs = [ι];
16− } ~
17− { buildInputs = [η];
18− meta = ∀ β. β;
19− passthru = {wrap = κ; wrapWithBuildEnv = λ;};
20− pname = String;
21− postFixup = String;
22− postInstall = String;
23− preConfigure = String;
24− src = δ;
25− version = μ;
26− },
27− ν //
28− {buildInputs = [η]; postFixup = String;} ~
29− { buildInputs = [η];
30− meta = ∀ β. β;
31− passthru = {wrap = κ; wrapWithBuildEnv = λ;};
32− pname = String;
33− postFixup = String;
34− postInstall = String;
35− preConfigure = String;
36− src = δ;
37− version = μ;
38− },
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+ ),
3948 ξ.?scripts = [ο],
4049 π.?scripts = [ο],
4150 ρ.lib = σ,
test/golden/importless/faust2.txt+51−42
@@ -1,46 +1,55 @@
11∀ γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1 γ1 δ1 ε1 ζ1 η1.
2−( γ //
3− { dontBuild = Bool;
4− installPhase = String;
5− meta = ∀ β. β;
6− name = String;
7− postInstall = String;
8− src = δ;
9− } ~
10− ε,
11− ζ //
12− { buildInputs = [η];
13− libPath = θ;
14− nativeBuildInputs = [η];
15− postFixup = String;
16− propagatedBuildInputs = [ι];
17− } ~
18− { buildInputs = [κ];
19− cmakeFlags = String;
20− meta = ∀ β. β;
21− nativeBuildInputs = [η];
22− passthru = {wrap = λ; wrapWithBuildEnv = μ;};
23− pname = String;
24− postFixup = String;
25− postInstall = String;
26− preConfigure = String;
27− src = δ;
28− version = ν;
29− },
30− ξ //
31− {buildInputs = [η]; postFixup = String;} ~
32− { buildInputs = [κ];
33− cmakeFlags = String;
34− meta = ∀ β. β;
35− nativeBuildInputs = [η];
36− passthru = {wrap = λ; wrapWithBuildEnv = μ;};
37− pname = String;
38− postFixup = String;
39− postInstall = String;
40− preConfigure = String;
41− src = δ;
42− version = ν;
43− },
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+ ),
4453 ο.?scripts = [π],
4554 ρ.?scripts = [π],
4655 σ.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+9−5
@@ -2,14 +2,18 @@
22θ ->
33{ composeExtensions =
44 ∀ α β γ δ ε ζ η.
5− (α // β ~ γ, β // δ ~ ε) => (ζ -> α -> β) -> (ζ -> η -> δ) -> ζ -> α -> ε;
5+ ((α) // (β) ~ (γ), (β) // (δ) ~ (ε)) => (ζ -> α -> β) ->
6+ (ζ -> η -> δ) -> ζ -> α -> ε;
67 converge = ∀ α. (α -> α) -> α -> α;
7− extends = ∀ α β γ δ. (α // β ~ γ) => (δ -> α -> β) -> (δ -> α) -> δ -> γ;
8+ extends =
9+ ∀ α β γ δ. ((α) // (β) ~ (γ)) => (δ -> α -> β) -> (δ -> α) -> δ -> γ;
810 fix = ∀ α. (α -> α) -> α;
9− fix' = ∀ α β. (α // {__unfix__ = β -> α;} ~ β) => (β -> α) -> β;
11+ fix' = ∀ α β. ((α) // ({__unfix__ = β -> α;}) ~ (β)) => (β -> α) -> β;
1012 makeExtensible =
11− ∀ α β γ. (α // {__unfix__ = β -> α;} ~ β, β // {} ~ γ) => (β -> α) -> γ;
13+ ∀ α β γ.
14+ ((α) // ({__unfix__ = β -> α;}) ~ (β), (β) // ({}) ~ (γ)) => (β -> α) -> γ;
1215 makeExtensibleWithCustomName =
1316 ∀ α β γ δ.
14− (α // {__unfix__ = β -> α;} ~ β, β // {} ~ γ) => δ -> (β -> α) -> γ;
17+ ((α) // ({__unfix__ = β -> α;}) ~ (β), (β) // ({}) ~ (γ)) => δ ->
18+ (β -> α) -> γ;
1519}
test/golden/importless/flatpak.txt+1−1
@@ -22,7 +22,7 @@
2222 } ->
2323 ξ,
2424 δ.mkOption =
25− { default = ∀ α. [α];
25+ { default = ∀ α. α;
2626 description = String;
2727 example = θ;
2828 internal = Bool;
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+12−9
@@ -1,13 +1,16 @@
11∀ α β γ δ.
2−( α //
3− { archive = String;
4− edition = String;
5− pname = String;
6− src = β;
7− suiteName = String;
8− version = String;
9− } ~
10− γ,
2+( ( α
3+ ) //
4+ ( { archive = String;
5+ edition = String;
6+ pname = String;
7+ src = β;
8+ suiteName = String;
9+ version = String;
10+ }
11+ ) ~
12+ ( γ
13+ ),
1114 α.?officeVersion = {edition = String; sha256 = String; version = String;},
1215 α.callPackage = String -> γ -> δ,
1316 α.fetchurl = {sha256 = String; url = String;} -> β
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/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/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+16−13
@@ -1,17 +1,20 @@
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− ε,
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+ ),
1518 α.?buildInputs = [δ],
1619 α.?doCheck = Bool,
1720 α.?requireX = Bool,
test/golden/importless/generic-stack-builder.txt+22−19
@@ -1,28 +1,31 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ.
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− ζ,
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 = Number;
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+ ),
2023 α.?LD_LIBRARY_PATH = [δ],
2124 α.?buildInputs = [δ],
2225 α.?buildPhase = String,
2326 α.?checkPhase = String,
2427 α.?doCheck = Bool,
25− α.?extraArgs = [γ],
28+ α.?extraArgs = γ,
2629 α.?ghc = ε,
2730 α.?installPhase = String,
2831 α.?nativeBuildInputs = [ε],
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/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/graphql.txt+1−1
@@ -1,5 +1,5 @@
11∀ β γ δ ε ζ η θ.
2−( β // {description = String;} ~ γ,
2+( (β) // ({description = String;}) ~ (γ),
33 δ.meta = β,
44 δ.src = ε,
55 δ.version = ζ
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/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/integrations-core.txt+13−10
@@ -1,14 +1,17 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ.
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 = ζ;} ~ η,
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 = ζ;}) ~ (η),
1215 θ.fetchFromGitHub =
1316 {owner = String; repo = String; rev = String; sha256 = String;} -> β,
1417 θ.lib = ι,
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/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+10−7
@@ -1,11 +1,14 @@
11∀ α β γ δ ε ζ η θ ι κ.
2−( α //
3− { meta = {homepage = String; license = β;};
4− minimumOCamlVersion = String;
5− src = γ;
6− version = String;
7− } ~
8− δ,
2+( ( α
3+ ) //
4+ ( { meta = {homepage = String; license = β;};
5+ minimumOCamlVersion = String;
6+ src = γ;
7+ version = String;
8+ }
9+ ) ~
10+ ( δ
11+ ),
912 α.?version = String,
1013 ε.lib = ζ,
1114 α.hash = η,
test/golden/importless/janePackage_0_12.txt+10−7
@@ -1,11 +1,14 @@
11∀ α β γ δ ε ζ η θ ι.
2−( α //
3− { meta = {homepage = String; license = β;};
4− minimumOCamlVersion = String;
5− src = γ;
6− version = String;
7− } ~
8− δ,
2+( ( α
3+ ) //
4+ ( { meta = {homepage = String; license = β;};
5+ minimumOCamlVersion = String;
6+ src = γ;
7+ version = String;
8+ }
9+ ) ~
10+ ( δ
11+ ),
912 α.?version = String,
1013 ε.licenses = ζ,
1114 α.hash = η,
test/golden/importless/janePackage_0_13.txt+10−7
@@ -1,11 +1,14 @@
11∀ α β γ δ ε ζ η θ ι.
2−( α //
3− { meta = {homepage = String; license = β;};
4− minimumOCamlVersion = String;
5− src = γ;
6− version = String;
7− } ~
8− δ,
2+( ( α
3+ ) //
4+ ( { meta = {homepage = String; license = β;};
5+ minimumOCamlVersion = String;
6+ src = γ;
7+ version = String;
8+ }
9+ ) ~
10+ ( δ
11+ ),
912 α.?version = String,
1013 ε.licenses = ζ,
1114 α.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/karchive.txtdeleted−18
@@ -1,18 +0,0 @@
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.txtdeleted−17
@@ -1,17 +0,0 @@
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.txtdeleted−15
@@ -1,15 +0,0 @@
1−∀ α β γ δ ε ζ η θ.
2−(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3− lib = α;
4− mkDerivation =
5− { buildInputs = [η];
6− meta = {broken = Bool; maintainers = [ε];};
7− name = String;
8− nativeBuildInputs = [ζ];
9− propagatedBuildInputs = [γ];
10− } ->
11− θ;
12− qtbase = γ;
13− qttools = η;
14−} ->
15−θ
test/golden/importless/kcoreaddons.txtdeleted−16
@@ -1,16 +0,0 @@
1−∀ α β γ δ ε ζ η θ.
2−(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3− lib = α;
4− mkDerivation =
5− { buildInputs = [η];
6− meta = {broken = Bool; maintainers = [ε];};
7− name = String;
8− nativeBuildInputs = [ζ];
9− propagatedBuildInputs = [γ];
10− } ->
11− θ;
12− qtbase = γ;
13− qttools = η;
14− shared-mime-info = η;
15−} ->
16−θ
test/golden/importless/kdbusaddons.txtdeleted−16
@@ -1,16 +0,0 @@
1−∀ α β γ δ ε ζ η θ.
2−(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3− lib = α;
4− mkDerivation =
5− { buildInputs = [η];
6− meta = {broken = Bool; maintainers = [ε];};
7− name = String;
8− nativeBuildInputs = [ζ];
9− 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.txtdeleted−15
@@ -1,15 +0,0 @@
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/kdnssd.txtdeleted−17
@@ -1,17 +0,0 @@
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/kguiaddons.txtdeleted−16
@@ -1,16 +0,0 @@
1−∀ α β γ δ ε ζ η θ.
2−(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3− lib = α;
4− mkDerivation =
5− { buildInputs = [η];
6− meta = {broken = Bool; maintainers = [ε];};
7− name = String;
8− nativeBuildInputs = [ζ];
9− outputs = [String];
10− propagatedBuildInputs = [γ];
11− } ->
12− θ;
13− qtbase = γ;
14− qtx11extras = η;
15−} ->
16−θ
test/golden/importless/ki18n.txtdeleted−18
@@ -1,18 +0,0 @@
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.txtdeleted−15
@@ -1,15 +0,0 @@
1−∀ α β γ δ ε ζ η θ.
2−(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3− lib = α;
4− mkDerivation =
5− { buildInputs = [η];
6− meta = {broken = Bool; maintainers = [ε];};
7− name = String;
8− nativeBuildInputs = [ζ];
9− propagatedBuildInputs = [γ];
10− } ->
11− θ;
12− qtbase = γ;
13− qtx11extras = η;
14−} ->
15−θ
test/golden/importless/kirigami2.txtdeleted−15
@@ -1,15 +0,0 @@
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.txtdeleted−14
@@ -1,14 +0,0 @@
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.txtdeleted−16
@@ -1,16 +0,0 @@
1−∀ α β γ δ ε ζ η θ.
2−(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3− lib = α;
4− mkDerivation =
5− { buildInputs = [η];
6− meta = {broken = Bool; maintainers = [ε];};
7− name = String;
8− nativeBuildInputs = [ζ];
9− 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.txtdeleted−15
@@ -1,15 +0,0 @@
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/kwayland.txtdeleted−19
@@ -1,19 +0,0 @@
1−∀ α β γ δ ε ζ η θ ι.
2−(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3− lib = α;
4− mkDerivation =
5− { buildInputs = [η];
6− meta = {broken = Bool; maintainers = [ε];};
7− name = String;
8− nativeBuildInputs = [ζ];
9− propagatedBuildInputs = [γ];
10− setupHook = θ;
11− } ->
12− ι;
13− plasma-wayland-protocols = η;
14− propagateBin = θ;
15− qtbase = γ;
16− wayland = η;
17− wayland-protocols = η;
18−} ->
19−ι
test/golden/importless/kwidgetsaddons.txtdeleted−16
@@ -1,16 +0,0 @@
1−∀ α β γ δ ε ζ η θ.
2−(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3− lib = α;
4− mkDerivation =
5− { buildInputs = [η];
6− meta = {broken = Bool; maintainers = [ε];};
7− name = String;
8− nativeBuildInputs = [ζ];
9− 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/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/licenses.txt+17−14
@@ -1,18 +1,21 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β1.
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− ο,
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+ ),
1619 π.licenses = ρ,
1720 π.mapAttrs =
1821 (β -> α -> γ) ->
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+10−7
@@ -1,11 +1,14 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ.
2−( α //
3− { extraMeta = {branch = β;};
4− modDirVersion = Null;
5− src = γ;
6− version = String;
7− } ~
8− δ,
2+( ( α
3+ ) //
4+ ( { extraMeta = {branch = β;};
5+ modDirVersion = Null;
6+ src = γ;
7+ version = String;
8+ }
9+ ) ~
10+ ( δ
11+ ),
912 α.?argsOverride = {},
1013 α.?modDirVersionArg = Null,
1114 α.buildLinux = δ -> ε,
test/golden/importless/linux-4.19.txt+10−7
@@ -1,11 +1,14 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ.
2−( α //
3− { extraMeta = {branch = β;};
4− modDirVersion = Null;
5− src = γ;
6− version = String;
7− } ~
8− δ,
2+( ( α
3+ ) //
4+ ( { extraMeta = {branch = β;};
5+ modDirVersion = Null;
6+ src = γ;
7+ version = String;
8+ }
9+ ) ~
10+ ( δ
11+ ),
912 α.?argsOverride = {},
1013 α.?modDirVersionArg = Null,
1114 α.buildLinux = δ -> ε,
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+10−7
@@ -1,11 +1,14 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ.
2−( α //
3− { extraMeta = {branch = β;};
4− modDirVersion = Null;
5− src = γ;
6− version = String;
7− } ~
8− δ,
2+( ( α
3+ ) //
4+ ( { extraMeta = {branch = β;};
5+ modDirVersion = Null;
6+ src = γ;
7+ version = String;
8+ }
9+ ) ~
10+ ( δ
11+ ),
912 α.?argsOverride = {},
1013 α.?modDirVersionArg = Null,
1114 α.buildLinux = δ -> ε,
test/golden/importless/linux-5.8.txt+10−7
@@ -1,11 +1,14 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ.
2−( α //
3− { extraMeta = {branch = β;};
4− modDirVersion = Null;
5− src = γ;
6− version = String;
7− } ~
8− δ,
2+( ( α
3+ ) //
4+ ( { extraMeta = {branch = β;};
5+ modDirVersion = Null;
6+ src = γ;
7+ version = String;
8+ }
9+ ) ~
10+ ( δ
11+ ),
912 α.?argsOverride = {},
1013 α.?modDirVersionArg = Null,
1114 α.buildLinux = δ -> ε,
test/golden/importless/linux-5.9.txt+10−7
@@ -1,11 +1,14 @@
11∀ α β γ δ ε ζ η θ ι κ λ μ.
2−( α //
3− { extraMeta = {branch = β;};
4− modDirVersion = Null;
5− src = γ;
6− version = String;
7− } ~
8− δ,
2+( ( α
3+ ) //
4+ ( { extraMeta = {branch = β;};
5+ modDirVersion = Null;
6+ src = γ;
7+ version = String;
8+ }
9+ ) ~
10+ ( δ
11+ ),
912 α.?argsOverride = {},
1013 α.?modDirVersionArg = Null,
1114 α.buildLinux = δ -> ε,
test/golden/importless/linux-hardkernel-4.14.txt+12−9
@@ -1,13 +1,16 @@
11∀ α β γ δ ε ζ η θ ι.
2−( α //
3− { defconfig = String;
4− extraConfig = String;
5− extraMeta = {branch = String; platforms = [String];};
6− modDirVersion = String;
7− src = β;
8− version = String;
9− } ~
10− γ,
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+ ),
1114 α.?argsOverride = {},
1215 α.?extraConfig = String,
1316 α.buildLinux = γ -> δ,
test/golden/importless/linux-testing-bcachefs.txt+16−13
@@ -1,17 +1,20 @@
11∀ β γ δ ε ζ η θ ι κ λ μ.
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− ε,
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+ ),
1518 β.?argsOverride = {},
1619 β.buildLinux = ε -> ζ,
1720 β.buildPackages = η,
test/golden/importless/linux-testing.txtnew file+23
@@ -0,0 +1,23 @@
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+11−8
@@ -1,12 +1,15 @@
11∀ α β γ δ ε ζ η θ.
2−( α //
3− { extraMeta = {branch = String; maintainers = [β];};
4− isZen = Bool;
5− modDirVersion = String;
6− src = γ;
7− version = String;
8− } ~
9− δ,
2+( ( α
3+ ) //
4+ ( { extraMeta = {branch = String; maintainers = [β];};
5+ isZen = Bool;
6+ modDirVersion = String;
7+ src = γ;
8+ version = String;
9+ }
10+ ) ~
11+ ( δ
12+ ),
1013 α.?argsOverride = {},
1114 α.buildLinux = δ -> ε,
1215 α.fetchFromGitHub =
test/golden/importless/liquidsoap.txtnew file+68
@@ -0,0 +1,68 @@
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 = λ -> Number,
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/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/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/m32edit.txt+11−8
@@ -1,12 +1,15 @@
11∀ α β γ.
2−( α //
3− { brand = String;
4− homepage = String;
5− sha256 = String;
6− type = String;
7− version = String;
8− } ~
9− β,
2+( ( α
3+ ) //
4+ ( { brand = String;
5+ homepage = String;
6+ sha256 = String;
7+ type = String;
8+ version = String;
9+ }
10+ ) ~
11+ ( β
12+ ),
1013 α.callPackage = String -> β -> γ
1114) =>
1215α -> γ
test/golden/importless/macvim.txt+1−1
@@ -7,7 +7,7 @@
77 meta =
88 { description = String;
99 homepage = String;
10− hydraPlatforms = ∀ α. [α];
10+ hydraPlatforms = ∀ α. α;
1111 license = ε;
1212 maintainers = [ζ];
1313 platforms = η;
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-squashfs.txt+1−1
@@ -6,6 +6,6 @@
66 comp = String;
77 squashfsTools = β;
88 stdenv = α;
9− storeContents = [ε];
9+ storeContents = ε;
1010} ->
1111γ
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.txtnew file+56
@@ -0,0 +1,56 @@
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 = Number;
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+20−17
@@ -1,21 +1,24 @@
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− δ,
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+ ),
1922 γ.?doCheckstyle = Bool,
2023 γ.?doJavadoc = Bool,
2124 γ.?doRelease = Bool,
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.txtnew file+53
@@ -0,0 +1,53 @@
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 = Number;
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/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.txtdeleted−15
@@ -1,15 +0,0 @@
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/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+12−9
@@ -1,13 +1,16 @@
11∀ ε ζ η θ ι κ λ μ ν ξ ο.
2−( ε //
3− { buildInputs = [ζ];
4− buildPhase = η;
5− configurePhase = θ;
6− installPhase = String;
7− name = ι;
8− pluginType = κ;
9− } ~
10− λ,
2+( ( ε
3+ ) //
4+ ( { buildInputs = [ζ];
5+ buildPhase = η;
6+ configurePhase = θ;
7+ installPhase = String;
8+ name = ι;
9+ pluginType = κ;
10+ }
11+ ) ~
12+ ( λ
13+ ),
1114 μ.?buildInputs = [ζ],
1215 ν.stdenv = ξ,
1316 ν.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/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/networkmanager-qt.txtdeleted−15
@@ -1,15 +0,0 @@
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/node.txt+1−2
@@ -1,8 +1,7 @@
11∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ.
22( β.services = γ,
33 δ.mkOption =
4− {default = ∀ α. [α]; description = String; example = String; type = ε;} ->
5− ζ,
4+ {default = ∀ α. α; description = String; example = String; type = ε;} -> ζ,
65 δ.types = η,
76 γ.prometheus = θ,
87 θ.exporters = ι,
test/golden/importless/nscd.txtnew file+62
@@ -0,0 +1,62 @@
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 = String -> ξ,
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/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/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/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/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.txtdeleted−17
@@ -1,17 +0,0 @@
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/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/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+18−15
@@ -1,22 +1,25 @@
11∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ.
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− η,
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+ ),
1619 β.?meta = {},
1720 β.?nativeBuildInputs = [γ],
1821 β.?outputs = [String],
19− β.?patches = [δ],
22+ β.?patches = δ,
2023 β.?propagatedBuildInputs = [ε],
2124 β.?setOutputFlags = Bool,
2225 β.?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+1−2
@@ -1,3 +1,2 @@
11∀ β.
2−{qtModule = {name = String; outputs = [String]; qtInputs = ∀ α. [α];} -> β;} ->
3−β
2+{qtModule = {name = String; outputs = [String]; qtInputs = ∀ α. α;} -> β;} -> β
test/golden/importless/rebar3-release.txt+19−16
@@ -1,20 +1,23 @@
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− γ,
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+ ),
1821 β.?buildInputs = [ε],
1922 β.?buildPhase = Null,
2023 β.?checkouts = Null,
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/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/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/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/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/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+13−10
@@ -1,14 +1,17 @@
11∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π.
2−( β //
3− { sdk =
4− { name = String;
5− outPath = String;
6− platform = γ;
7− type = String;
8− version = δ;
9− };
10− } ~
11− ε,
2+( ( β
3+ ) //
4+ ( { sdk =
5+ { name = String;
6+ outPath = String;
7+ platform = γ;
8+ type = String;
9+ version = δ;
10+ };
11+ }
12+ ) ~
13+ ( ε
14+ ),
1215 ζ.sdkVer = δ,
1316 ζ.xcodePlatform = γ,
1417 η.lib = θ,
test/golden/importless/shadow.txt+11−8
@@ -1,12 +1,15 @@
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− γ,
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+ ),
1013 δ.config = ε,
1114 δ.lib = ζ,
1215 δ.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/shiboken.txt+1−1
@@ -14,7 +14,7 @@
1414 description = String;
1515 homepage = String;
1616 license = ε;
17− maintainers = ∀ α. [α];
17+ maintainers = ∀ α. α;
1818 platforms = ζ;
1919 };
2020 nativeBuildInputs = [θ];
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+12−9
@@ -1,13 +1,16 @@
11∀ α β γ δ.
2−( α //
3− { archive = String;
4− edition = String;
5− pname = String;
6− src = β;
7− suiteName = String;
8− version = String;
9− } ~
10− γ,
2+( ( α
3+ ) //
4+ ( { archive = String;
5+ edition = String;
6+ pname = String;
7+ src = β;
8+ suiteName = String;
9+ version = String;
10+ }
11+ ) ~
12+ ( γ
13+ ),
1114 α.?officeVersion = {edition = String; sha256 = String; version = String;},
1215 α.callPackage = String -> γ -> δ,
1316 α.fetchurl = {sha256 = String; url = String;} -> β
test/golden/importless/solid.txtdeleted−20
@@ -1,20 +0,0 @@
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.txtdeleted−16
@@ -1,16 +0,0 @@
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/squeezelite.txt+14−12
@@ -1,11 +1,12 @@
1−∀ α β γ δ ε ζ η θ ι κ λ μ.
1+∀ α β γ δ ε ζ η θ ι κ λ μ ν ξ.
22( α.config = β,
33 α.lib = γ,
44 α.pkgs = δ,
55 β.services = ε,
6− γ.mkEnableOption = String -> ζ,
6+ γ.builtins = ζ,
7+ γ.mkEnableOption = String -> η,
78 γ.mkIf =
8− η ->
9+ θ ->
910 { systemd =
1011 { services =
1112 { squeezelite =
@@ -14,7 +15,7 @@
1415 serviceConfig =
1516 { DynamicUser = Bool;
1617 ExecStart = String;
17− StateDirectory = String;
18+ StateDirectory = ι;
1819 SupplementaryGroups = String;
1920 };
2021 wantedBy = [String];
@@ -22,14 +23,15 @@
2223 };
2324 };
2425 } ->
25− θ,
26− γ.mkOption = {default = String; description = String; type = ι;} -> κ,
27− γ.types = λ,
28− ε.squeezelite = μ,
29− μ.enable = η,
30− λ.str = ι
26+ κ,
27+ γ.mkOption = {default = String; description = String; type = λ;} -> μ,
28+ γ.types = ν,
29+ ε.squeezelite = ξ,
30+ ξ.enable = θ,
31+ ζ.baseNameOf = String -> ι,
32+ ν.str = λ
3133) =>
3234α ->
33−{ config = θ;
34− options = {services = {squeezelite = {enable = ζ; extraArguments = κ;};};};
35+{ config = κ;
36+ options = {services = {squeezelite = {enable = η; extraArguments = μ;};};};
3537}
test/golden/importless/staging.txt+2−2
@@ -1,6 +1,6 @@
11∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π.
2−( β // {meta = ∀ α. α;} ~ γ,
3− δ // {description = String;} ~ ε,
2+( (β) // ({meta = ∀ α. α;}) ~ (γ),
3+ (δ) // ({description = String;}) ~ (ε),
44 ζ.?postPatch = String,
55 η.lib = θ,
66 ι.meta = δ,
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/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/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.txtdeleted−16
@@ -1,16 +0,0 @@
1−∀ α β γ δ ε ζ η θ.
2−(α.maintainers = β, γ.version = δ, β.ttuegel = ε) => { extra-cmake-modules = ζ;
3− lib = α;
4− mkDerivation =
5− { buildInputs = [η];
6− meta = {broken = Bool; maintainers = [ε];};
7− name = String;
8− nativeBuildInputs = [ζ];
9− propagatedBuildInputs = [γ];
10− } ->
11− θ;
12− perl = ζ;
13− qtbase = γ;
14− qttools = η;
15−} ->
16−θ
test/golden/importless/terminal-server.txt+1−1
@@ -20,7 +20,7 @@
2020 { xserver =
2121 { displayManager = {gdm = {enable = Bool;};};
2222 enable = Bool;
23− videoDrivers = ∀ α. [α];
23+ videoDrivers = ∀ α. α;
2424 };
2525 };
2626 systemd =
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.txtdeleted−14
@@ -1,14 +0,0 @@
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/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/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/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.txtdeleted−12
@@ -1,12 +0,0 @@
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/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/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+1−1
@@ -7,7 +7,7 @@
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 } ->
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+11−8
@@ -1,12 +1,15 @@
11∀ α β γ.
2−( α //
3− { brand = String;
4− homepage = String;
5− sha256 = String;
6− type = String;
7− version = String;
8− } ~
9− β,
2+( ( α
3+ ) //
4+ ( { brand = String;
5+ homepage = String;
6+ sha256 = String;
7+ type = String;
8+ version = String;
9+ }
10+ ) ~
11+ ( β
12+ ),
1013 α.callPackage = String -> β -> γ
1114) =>
1215α -> γ
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.txtnew file+54
@@ -0,0 +1,54 @@
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/inftype.txt+1−1
@@ -1 +1 @@
1−∀ α β γ. (α // {a = Number;} ~ β, α.f = β -> γ) => α -> γ
1+∀ α β γ. ((α) // ({a = Number;}) ~ (β), α.f = β -> γ) => α -> γ
test/golden/mine/row.nixnew file+5
@@ -0,0 +1,5 @@
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/unionfs.nixnew file+21
@@ -0,0 +1,21 @@
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+}