on master help sign in
Substitutions are now commutative
commit62abc7b5a8fef64fc84798f111791d48c21b350a authoriko <ilyakooo0@gmail.com> dateThu 15 Apr 2021, 16:41 (6 years ago) parent93c958b
38 files changed+524−467
src/Tix/Typechecker.hs+42−17 test/golden/importless/aspell-with-dicts.txt+2−2 test/golden/importless/curry-base.txt+14−14 test/golden/importless/curry-frontend.txt+19−19 test/golden/importless/declare.txt−64 test/golden/importless/default-crate-overrides.txt+42−42 test/golden/importless/dhall-packages.txt+2−2 test/golden/importless/elm-format.txt+24−24 test/golden/importless/elm-instrument.txt+26−26 test/golden/importless/engines.txt+11−6 test/golden/importless/ghcjs-base.txt+25−25 test/golden/importless/hls-ghcide.txt+63−63 test/golden/importless/maps.txt+2−2 test/golden/importless/nuget.txt+1−1 test/golden/importless/primary.txt+6−6 test/golden/importless/sbv-7.13.txt+24−24 test/golden/importless/spago.txt+21−21 test/golden/importless/v10.txt+6−3 test/golden/importless/v12.txt+6−3 test/golden/importless/v14.txt+6−3 test/golden/importless/v3_4.txt+16−10 test/golden/importless/v3_6.txt+19−8 test/golden/importless/v4_0.txt+19−8 test/golden/importless/v4_2.txt+19−8 test/golden/importless/with-provers.txt+3−3 test/golden/importless/xsa-patches.txt+50−50 test/golden/importless/z3.txt+12−12 test/golden/mine/0.9.nix+5 test/golden/mine/0.9.txt+1 test/golden/mine/dhall-packages.nix+14 test/golden/mine/dhall-packages.txt+1 test/golden/mine/nuget.txt+1−1 test/golden/mine/org-generated.nix+6 test/golden/mine/org-generated.txt+1 test/golden/mine/polyArgs.nix+1 test/golden/mine/polyArgs.txt+1 test/golden/mine/z3.nix+10 test/golden/mine/z3.txt+3
src/Tix/Typechecker.hs+42−17
@@ -77,20 +77,40 @@ runConstraintEnv ::
7777 Members '[State VariableMap, State (MKM.Map Pred)] effs =>
7878 Eff (SubstituteEnv : Writer Substitution : Writer Constraint : State (Seq Constraint) : effs) a ->
7979 Eff effs ((a, Substitution), Seq Constraint)
80−runConstraintEnv =
81− runState @(Seq Constraint) Empty
82− . interpret @(Writer Constraint) (\(Tell x) -> modify (x :<|))
83− . runWriter @Substitution
84− . interpret @SubstituteEnv
85− ( \(SubstituteEnv x) -> do
86− modify @(Seq Constraint) (sub x <$>)
87− -- TODO: I have a feeling that variables in the env should already be closed over.
88− -- (aka this is redundant)
89− modify @VariableMap (sub x <$>)
90− modify @(MKM.Map Pred) (sub x)
91− tell x
92− return ()
93− )
80+runConstraintEnv f = do
81+ ((x, subs), cs) <-
82+ runState @(Seq Constraint) Empty
83+ . interpret @(Writer Constraint) (\(Tell x) -> modify (x :<|))
84+ . runWriter @Substitution
85+ . interpret @SubstituteEnv
86+ ( \(SubstituteEnv x) -> do
87+ -- modify @(Seq Constraint) (sub x <$>)
88+ -- TODone: I have a feeling that variables in the env should already be closed over.
89+ -- (aka this is redundant)
90+ --
91+ -- No, they can have type variables. E g when they are arguments in a function.
92+ modify @VariableMap (sub x <$>)
93+ modify @(MKM.Map Pred) (sub x)
94+ tell x
95+ return ()
96+ )
97+ $ f
98+ return ((x, subs), sub subs <$> cs)
99+
100+captureSubstitutions ::
101+ Members '[SubstituteEnv] effs =>
102+ Eff (Writer Substitution : effs) a ->
103+ Eff effs (a, Substitution)
104+captureSubstitutions f = do
105+ (x, s) <-
106+ runWriter @Substitution
107+ . interpose @SubstituteEnv
108+ ( \(SubstituteEnv x) -> do
109+ tell x
110+ subEnv x
111+ )
112+ $ f
113+ return (x, s)
94114
95115data SubstituteEnv a where
96116 SubstituteEnv :: Substitution -> SubstituteEnv ()
@@ -166,7 +186,7 @@ prettySubstitution = A.toJSON . M.mapKeysMonotonic (TL.pack . show) . fmap rende
166186
167187-- | @older <> newer@
168188instance Semigroup Substitution where
169− x'@(Substitution x) <> (Substitution y) = Substitution (fmap (sub x') y <> x)
189+ x'@(Substitution x) <> y'@(Substitution y) = Substitution (M.unionWithKey (error "invariant") (fmap (sub y') x) (fmap (sub x') y))
170190
171191instance Monoid Substitution where
172192 mempty = Substitution mempty
@@ -598,8 +618,12 @@ inferComponents n ((S.toList -> paths) : otherComponents) = do
598618 return $ fmap fst <$> tvsTypes
599619 -- TODO: There should probably be some smarter predicate filtering
600620 schemes <- types & traverse . traverse %%~ (\t -> solveAndClose p $ sub s $ preds :=> t)
601− fmap (M.unionWith mergeBindings schemes) . withBindings (toScheme' <$> schemes) $
602− inferComponents n otherComponents
621+
622+ (otherBindings, s') <-
623+ captureSubstitutions $
624+ withBindings (toScheme' <$> schemes) $
625+ inferComponents n otherComponents
626+ return $ M.unionWith mergeBindings (fmap (sub s') <$> schemes) otherBindings
603627 where
604628 bindingToNExpr :: NonEmpty VarName -> NExprLoc -> Binding NExpr
605629 bindingToNExpr name expr = NamedVar (StaticKey <$> name) (stripAnnotation expr) nullPos
@@ -724,6 +748,7 @@ inferGeneral' toPretty f = do
724748 traceValue "substitutions_after_solving" $ prettySubstitution s'
725749 let s = subs <> s'
726750 returnedS = Substitution . M.filterWithKey (\k _ -> k `RS.notMember` range) . unSubstitution $ s
751+ traceValue "composed_substitution" $ prettySubstitution s
727752 traceSubtree "returned" $ do
728753 traceValue "substitutions" $ prettySubstitution returnedS
729754 -- Filter for optimization purposes
test/golden/importless/aspell-with-dicts.txt+2−2
@@ -1,8 +1,8 @@
1−∀ α β γ δ ε.
1+∀ α β γ δ.
22{ aspell = α;
33 aspellDicts = β;
44 buildEnv =
55 {buildInputs = [γ]; name = String; paths = [α]; postBuild = String;} -> δ;
66 makeWrapper = γ;
77} ->
8−(β -> ε) -> δ
8+(β -> [α]) -> δ
test/golden/importless/curry-base.txt+14−14
@@ -1,26 +1,26 @@
1−∀ δ ε ζ η.
1+∀ δ ε ζ.
22{ Cabal = δ;
3− base = ε;
4− containers = ε;
5− directory = ε;
6− extra = ε;
7− filepath = ε;
3+ base = δ;
4+ containers = δ;
5+ directory = δ;
6+ extra = δ;
7+ filepath = δ;
88 mkDerivation =
99 { description = String;
1010 homepage = String;
1111 libraryHaskellDepends = [δ];
12− license = ∀ α β γ. (ζ.lib = α, α.licenses = β, β.bsd3 = γ) => γ;
12+ license = ∀ α β γ. (ε.lib = α, α.licenses = β, β.bsd3 = γ) => γ;
1313 pname = String;
1414 src = Path;
1515 testHaskellDepends = [δ];
1616 version = String;
1717 } ->
18− η;
19− mtl = ε;
20− parsec = ε;
21− pretty = ε;
22− stdenv = ζ;
23− time = ε;
18+ ζ;
19+ mtl = δ;
20+ parsec = δ;
21+ pretty = δ;
22+ stdenv = ε;
23+ time = δ;
2424 transformers = δ;
2525} ->
26−η
26+ζ
test/golden/importless/curry-frontend.txt+19−19
@@ -1,13 +1,13 @@
1−∀ δ ε ζ η.
1+∀ δ ε ζ.
22{ Cabal = δ;
3− base = ε;
4− bytestring = ε;
5− containers = ε;
6− curry-base = ε;
7− directory = ε;
8− extra = ε;
9− file-embed = ε;
10− filepath = ε;
3+ base = δ;
4+ bytestring = δ;
5+ containers = δ;
6+ curry-base = δ;
7+ directory = δ;
8+ extra = δ;
9+ file-embed = δ;
10+ filepath = δ;
1111 mkDerivation =
1212 { description = String;
1313 enableSeparateDataOutput = Bool;
@@ -16,20 +16,20 @@
1616 isExecutable = Bool;
1717 isLibrary = Bool;
1818 libraryHaskellDepends = [δ];
19− license = ∀ α β γ. (ζ.lib = α, α.licenses = β, β.bsd3 = γ) => γ;
19+ license = ∀ α β γ. (ε.lib = α, α.licenses = β, β.bsd3 = γ) => γ;
2020 pname = String;
2121 src = Path;
2222 testHaskellDepends = [δ];
2323 version = String;
2424 } ->
25− η;
26− mtl = ε;
27− network-uri = ε;
28− pretty = ε;
29− process = ε;
30− set-extra = ε;
31− stdenv = ζ;
32− template-haskell = ε;
25+ ζ;
26+ mtl = δ;
27+ network-uri = δ;
28+ pretty = δ;
29+ process = δ;
30+ set-extra = δ;
31+ stdenv = ε;
32+ template-haskell = δ;
3333 transformers = δ;
3434} ->
35−η
35+ζ
test/golden/importless/declare.txtdeleted−64
@@ -1,64 +0,0 @@
1−{ configA =
2− ∀ ι κ λ μ.
3− ι ->
4− κ ->
5− { optionA =
6− ∀ η θ.
7− ( ι.lib = η,
8− η.mkOption =
9− { default = Bool;
10− merge = ∀ ε ζ. (ι.lib = ε, ε.mergeEnableOption = ζ) => ζ;
11− } ->
12− θ
13− ) =>
14− θ;
15− optionB = ∀ η. (κ.optionA = η) => η;
16− require =
17− λ ->
18− μ ->
19− { optionB =
20− ∀ ε ζ. (λ.lib = ε, ε.mkOption = {default = Bool;} -> ζ) => ζ;
21− require = [{optionA = Bool; optionD = Bool;}];
22− };
23− };
24− configB =
25− ∀ ι κ.
26− ι ->
27− κ ->
28− { optionB = ∀ η θ. (ι.lib = η, η.mkOption = {default = Bool;} -> θ) => θ;
29− require = [{optionA = Bool; optionD = Bool;}];
30− };
31− configC =
32− ∀ ι κ λ μ ν ξ.
33− ι ->
34− κ ->
35− { optionA = ∀ η. (κ.optionC = η) => η;
36− optionC = ∀ η θ. (ι.lib = η, η.mkOption = {default = Bool;} -> θ) => θ;
37− require =
38− [ ( λ ->
39− μ ->
40− { optionA =
41− ∀ γ δ.
42− ( λ.lib = γ,
43− γ.mkOption =
44− { default = Bool;
45− merge = ∀ α β. (λ.lib = α, α.mergeEnableOption = β) => β;
46− } ->
47− δ
48− ) =>
49− δ;
50− optionB = ∀ γ. (μ.optionA = γ) => γ;
51− require =
52− ν ->
53− ξ ->
54− { optionB =
55− ∀ α β.
56− (ν.lib = α, α.mkOption = {default = Bool;} -> β) => β;
57− require = [{optionA = Bool; optionD = Bool;}];
58− };
59− }
60− )
61− ];
62− };
63− configD = {optionA = Bool; optionD = Bool;};
64−}
test/golden/importless/default-crate-overrides.txt+42−42
@@ -1,4 +1,4 @@
1−∀ θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω α1 β2 γ3.
1+∀ θ ι κ λ μ ν ξ ο π ρ σ τ υ φ.
22( θ.apple_sdk = ι,
33 θ.apple_sdk = κ,
44 θ.apple_sdk = λ,
@@ -7,22 +7,22 @@
77{ cairo = ν;
88 curl = ξ;
99 darwin = θ;
10− dbus = ο;
11− dbus-glib = π;
12− foundationdb = ρ;
13− gdk-pixbuf = σ;
14− gmp = τ;
15− libgit2 = υ;
16− libiconv = φ;
17− libsodium = χ;
18− libssh2 = ψ;
19− openssl = ω;
20− pkgconfig = ω;
21− postgresql = χ;
22− python3 = α1;
23− sqlite = β2;
24− stdenv = γ3;
25− zlib = ω;
10+ dbus = ξ;
11+ dbus-glib = ο;
12+ foundationdb = π;
13+ gdk-pixbuf = ρ;
14+ gmp = σ;
15+ libgit2 = ξ;
16+ libiconv = τ;
17+ libsodium = ξ;
18+ libssh2 = ξ;
19+ openssl = ξ;
20+ pkgconfig = ξ;
21+ postgresql = ξ;
22+ python3 = υ;
23+ sqlite = ξ;
24+ stdenv = φ;
25+ zlib = ξ;
2626} ->
2727{ cairo-rs = ∀ η. η -> {buildInputs = [ν];};
2828 cargo =
@@ -30,13 +30,13 @@
3030 η ->
3131 { buildInputs =
3232 ∀ α β γ δ ε ζ.
33− ( γ3.lib = α,
34− α.optionals = β -> [φ] -> [ξ],
35− γ3.isDarwin = β,
33+ ( φ.lib = α,
34+ α.optionals = β -> [τ] -> [ξ],
35+ φ.isDarwin = β,
3636 γ.frameworks = δ,
37− δ.CoreFoundation = φ,
37+ δ.CoreFoundation = τ,
3838 ε.frameworks = ζ,
39− ζ.Security = φ
39+ ζ.Security = τ
4040 ) =>
4141 [ξ];
4242 };
@@ -47,25 +47,25 @@
4747 extraLinkFlags = [String];
4848 propagatedBuildInputs = [ξ];
4949 };
50− dbus = ∀ η. η -> {buildInputs = [ο];};
51− foundationdb = ∀ η. η -> {buildInputs = [ρ];};
52− foundationdb-sys = ∀ η. η -> {buildInputs = [ρ];};
53− gdk-pixbuf = ∀ η. η -> {buildInputs = [σ];};
54− gdk-pixbuf-sys = ∀ η. η -> {buildInputs = [π];};
55− gio-sys = ∀ η. η -> {buildInputs = [π];};
56− gobject-sys = ∀ η. η -> {buildInputs = [π];};
57− libdbus-sys = ∀ η. η -> {buildInputs = [ο];};
50+ dbus = ∀ η. η -> {buildInputs = [ξ];};
51+ foundationdb = ∀ η. η -> {buildInputs = [π];};
52+ foundationdb-sys = ∀ η. η -> {buildInputs = [π];};
53+ gdk-pixbuf = ∀ η. η -> {buildInputs = [ρ];};
54+ gdk-pixbuf-sys = ∀ η. η -> {buildInputs = [ο];};
55+ gio-sys = ∀ η. η -> {buildInputs = [ο];};
56+ gobject-sys = ∀ η. η -> {buildInputs = [ο];};
57+ libdbus-sys = ∀ η. η -> {buildInputs = [ξ];};
5858 libgit2-sys =
59− ∀ η. η -> {LIBGIT2_SYS_USE_PKG_CONFIG = Bool; buildInputs = [υ];};
60− libsqlite3-sys = ∀ η. η -> {buildInputs = [β2];};
61− libssh2-sys = ∀ η. η -> {buildInputs = [ψ];};
62− libz-sys = ∀ η. η -> {buildInputs = [ψ]; extraLinkFlags = [String];};
63− openssl = ∀ η. η -> {buildInputs = [ψ];};
64− openssl-sys = ∀ η. η -> {buildInputs = [ψ];};
65− pq-sys = ∀ η. η -> {buildInputs = [χ];};
59+ ∀ η. η -> {LIBGIT2_SYS_USE_PKG_CONFIG = Bool; buildInputs = [ξ];};
60+ libsqlite3-sys = ∀ η. η -> {buildInputs = [ξ];};
61+ libssh2-sys = ∀ η. η -> {buildInputs = [ξ];};
62+ libz-sys = ∀ η. η -> {buildInputs = [ξ]; extraLinkFlags = [String];};
63+ openssl = ∀ η. η -> {buildInputs = [ξ];};
64+ openssl-sys = ∀ η. η -> {buildInputs = [ξ];};
65+ pq-sys = ∀ η. η -> {buildInputs = [ξ];};
6666 rink =
6767 ∀ η.
68− η -> {buildInputs = [τ]; crateBin = [{name = String; path = String;}];};
68+ η -> {buildInputs = [σ]; crateBin = [{name = String; path = String;}];};
6969 security-framework-sys =
7070 ∀ η.
7171 η ->
@@ -77,14 +77,14 @@
7777 η ->
7878 { buildInputs =
7979 ∀ α β γ δ ε ζ.
80− ( γ3.lib = α,
80+ ( φ.lib = α,
8181 α.optional = β -> γ -> δ,
82− γ3.isDarwin = β,
82+ φ.isDarwin = β,
8383 ε.frameworks = ζ,
8484 ζ.Security = γ
8585 ) =>
8686 δ;
8787 };
88− thrussh-libsodium = ∀ η. η -> {buildInputs = [χ];};
89− xcb = ∀ η. η -> {buildInputs = [α1];};
88+ thrussh-libsodium = ∀ η. η -> {buildInputs = [ξ];};
89+ xcb = ∀ η. η -> {buildInputs = [υ];};
9090}
test/golden/importless/dhall-packages.txt+2−2
@@ -1,4 +1,4 @@
1−∀ α β γ δ ε ζ η θ ι.
1+∀ α β γ δ ε ζ η θ.
22( α.fix' = β -> γ,
33 α.extends =
44 (δ -> ε -> {}) ->
@@ -13,4 +13,4 @@
1313 ) ->
1414 β
1515) =>
16−{lib = α; newScope = ζ -> ι; overrides = δ -> ε -> {};} -> γ
16+{lib = α; newScope = ζ -> Path -> {} -> θ; overrides = δ -> ε -> {};} -> γ
test/golden/importless/elm-format.txt+24−24
@@ -1,46 +1,46 @@
1−∀ δ ε ζ η θ.
1+∀ δ ε ζ η.
22{ HUnit = δ;
33 QuickCheck = δ;
4− ansi-terminal = ε;
5− ansi-wl-pprint = ε;
6− base = ε;
7− binary = ε;
8− bytestring = ε;
4+ ansi-terminal = δ;
5+ ansi-wl-pprint = δ;
6+ base = δ;
7+ binary = δ;
8+ bytestring = δ;
99 cmark = δ;
10− containers = ε;
11− directory = ε;
12− fetchgit = {rev = String; sha256 = String; url = String;} -> ζ;
13− filepath = ε;
14− free = ε;
15− indents = ε;
16− json = ε;
10+ containers = δ;
11+ directory = δ;
12+ fetchgit = {rev = String; sha256 = String; url = String;} -> ε;
13+ filepath = δ;
14+ free = δ;
15+ indents = δ;
16+ json = δ;
1717 mkDerivation =
1818 { description = String;
1919 doHaddock = Bool;
20− executableHaskellDepends = [ε];
20+ executableHaskellDepends = [δ];
2121 homepage = String;
2222 isExecutable = Bool;
2323 isLibrary = Bool;
2424 libraryHaskellDepends = [δ];
25− license = ∀ α β γ. (η.lib = α, α.licenses = β, β.bsd3 = γ) => γ;
25+ license = ∀ α β γ. (ζ.lib = α, α.licenses = β, β.bsd3 = γ) => γ;
2626 pname = String;
2727 postPatch = String;
28− src = ζ;
28+ src = ε;
2929 testHaskellDepends = [δ];
3030 version = String;
3131 } ->
32− θ;
33− mtl = ε;
34− optparse-applicative = ε;
35− parsec = ε;
36− process = ε;
32+ η;
33+ mtl = δ;
34+ optparse-applicative = δ;
35+ parsec = δ;
36+ process = δ;
3737 quickcheck-io = δ;
38− split = ε;
39− stdenv = η;
38+ split = δ;
39+ stdenv = ζ;
4040 tasty = δ;
4141 tasty-golden = δ;
4242 tasty-hunit = δ;
4343 tasty-quickcheck = δ;
4444 text = δ;
4545} ->
46−θ
46+η
test/golden/importless/elm-instrument.txt+26−26
@@ -1,48 +1,48 @@
1−∀ δ ε ζ η θ ι.
1+∀ δ ε ζ η.
22{ Cabal = δ;
33 HUnit = δ;
44 QuickCheck = δ;
5− ansi-terminal = ε;
6− ansi-wl-pprint = ε;
7− base = ε;
8− binary = ε;
9− bytestring = ε;
5+ ansi-terminal = δ;
6+ ansi-wl-pprint = δ;
7+ base = δ;
8+ binary = δ;
9+ bytestring = δ;
1010 cmark = δ;
11− containers = ε;
12− directory = ε;
11+ containers = δ;
12+ directory = δ;
1313 elm-format = δ;
1414 fetchgit =
15− {fetchSubmodules = Bool; rev = String; sha256 = String; url = String;} -> ζ;
16− filepath = ε;
17− free = ε;
18− indents = ε;
19− json = ε;
15+ {fetchSubmodules = Bool; rev = String; sha256 = String; url = String;} -> ε;
16+ filepath = δ;
17+ free = δ;
18+ indents = δ;
19+ json = δ;
2020 mkDerivation =
2121 { description = String;
22− executableHaskellDepends = [ε];
22+ executableHaskellDepends = [δ];
2323 homepage = String;
2424 isExecutable = Bool;
2525 isLibrary = Bool;
26− libraryHaskellDepends = [η];
27− license = ∀ α β γ. (θ.lib = α, α.licenses = β, β.bsd3 = γ) => γ;
26+ libraryHaskellDepends = [δ];
27+ license = ∀ α β γ. (ζ.lib = α, α.licenses = β, β.bsd3 = γ) => γ;
2828 pname = String;
2929 setupHaskellDepends = [δ];
30− src = ζ;
30+ src = ε;
3131 testHaskellDepends = [δ];
3232 version = String;
3333 } ->
34− ι;
35− mtl = ε;
36− optparse-applicative = ε;
37− parsec = ε;
38− process = ε;
34+ η;
35+ mtl = δ;
36+ optparse-applicative = δ;
37+ parsec = δ;
38+ process = δ;
3939 quickcheck-io = δ;
40− split = ε;
41− stdenv = θ;
40+ split = δ;
41+ stdenv = ζ;
4242 tasty = δ;
4343 tasty-golden = δ;
4444 tasty-hunit = δ;
4545 tasty-quickcheck = δ;
46− text = η;
46+ text = δ;
4747} ->
48−ι
48+η
test/golden/importless/engines.txt+11−6
@@ -1,4 +1,4 @@
1−∀ β γ δ ε ζ η θ ι κ λ μ ν ξ.
1+∀ β γ δ ε ζ η θ ι κ λ.
22( β.overrideAttrs = (γ -> {postInstall = String;}) -> δ,
33 β.overrideAttrs = (ε -> {postInstall = String;}) -> ζ,
44 β.overrideAttrs = (η -> {postInstall = String;}) -> θ
@@ -8,12 +8,17 @@
88 homepage = String;
99 mods = [String];
1010 src = ι;
11− version = κ;
11+ version = String;
1212 } ->
13− λ -> β;
14− extraPostFetch = μ;
13+ κ -> β;
14+ extraPostFetch = λ;
1515 fetchFromGitHub =
16− {extraPostFetch = μ; owner = String; repo = String; rev = ν; sha256 = ξ;} ->
16+ { extraPostFetch = λ;
17+ owner = String;
18+ repo = String;
19+ rev = String;
20+ sha256 = String;
21+ } ->
1722 ι;
1823} ->
19−{bleed = ∀ α. λ -> α; playtest = ∀ α. λ -> α; release = ∀ α. λ -> α;}
24+{bleed = ∀ α. κ -> α; playtest = ∀ α. κ -> α; release = ∀ α. κ -> α;}
test/golden/importless/ghcjs-base.txt+25−25
@@ -1,44 +1,44 @@
1−∀ δ ε ζ η θ.
1+∀ δ ε ζ η.
22{ HUnit = δ;
33 QuickCheck = δ;
4− aeson = ε;
4+ aeson = δ;
55 array = δ;
6− attoparsec = ε;
7− base = ε;
8− binary = ε;
9− bytestring = ε;
10− containers = ε;
11− deepseq = ε;
6+ attoparsec = δ;
7+ base = δ;
8+ binary = δ;
9+ bytestring = δ;
10+ containers = δ;
11+ deepseq = δ;
1212 directory = δ;
13− dlist = ε;
14− fetchgit = {rev = String; sha256 = String; url = String;} -> ζ;
15− ghc-prim = ε;
16− ghcjs-prim = ε;
17− hashable = ε;
18− integer-gmp = ε;
13+ dlist = δ;
14+ fetchgit = {rev = String; sha256 = String; url = String;} -> ε;
15+ ghc-prim = δ;
16+ ghcjs-prim = δ;
17+ hashable = δ;
18+ integer-gmp = δ;
1919 mkDerivation =
2020 { description = String;
2121 homepage = String;
2222 libraryHaskellDepends = [δ];
23− license = ∀ α β γ. (η.lib = α, α.licenses = β, β.mit = γ) => γ;
23+ license = ∀ α β γ. (ζ.lib = α, α.licenses = β, β.mit = γ) => γ;
2424 pname = String;
25− src = ζ;
25+ src = ε;
2626 testHaskellDepends = [δ];
2727 version = String;
2828 } ->
29− θ;
30− primitive = ε;
29+ η;
30+ primitive = δ;
3131 quickcheck-unicode = δ;
3232 random = δ;
33− scientific = ε;
34− stdenv = η;
33+ scientific = δ;
34+ stdenv = ζ;
3535 test-framework = δ;
3636 test-framework-hunit = δ;
3737 test-framework-quickcheck2 = δ;
38− text = ε;
39− time = ε;
40− transformers = ε;
41− unordered-containers = ε;
38+ text = δ;
39+ time = δ;
40+ transformers = δ;
41+ unordered-containers = δ;
4242 vector = δ;
4343} ->
44−θ
44+η
test/golden/importless/hls-ghcide.txt+63−63
@@ -1,84 +1,84 @@
1−∀ δ ε ζ η θ ι κ.
1+∀ δ ε ζ η.
22{ Chart = δ;
33 Chart-diagrams = δ;
4− QuickCheck = ε;
4+ QuickCheck = δ;
55 aeson = δ;
6− array = ζ;
7− async = ζ;
6+ array = δ;
7+ async = δ;
88 base = δ;
9− base16-bytestring = ζ;
10− binary = ζ;
11− bytestring = η;
12− containers = η;
13− cryptohash-sha1 = ζ;
14− data-default = η;
15− deepseq = ζ;
9+ base16-bytestring = δ;
10+ binary = δ;
11+ bytestring = δ;
12+ containers = δ;
13+ cryptohash-sha1 = δ;
14+ data-default = δ;
15+ deepseq = δ;
1616 diagrams = δ;
1717 diagrams-svg = δ;
1818 directory = δ;
1919 extra = δ;
2020 fetchgit =
21− {fetchSubmodules = Bool; rev = String; sha256 = String; url = String;} -> θ;
21+ {fetchSubmodules = Bool; rev = String; sha256 = String; url = String;} -> ε;
2222 filepath = δ;
23− fuzzy = ζ;
24− ghc = ζ;
25− ghc-boot = ζ;
26− ghc-boot-th = ζ;
27− ghc-check = ζ;
28− ghc-paths = ζ;
29− ghc-typelits-knownnat = ε;
30− gitrev = η;
31− haddock-library = ζ;
32− hashable = η;
33− haskell-lsp = η;
34− haskell-lsp-types = η;
35− hie-bios = η;
36− hslogger = ζ;
37− lens = η;
38− lsp-test = η;
23+ fuzzy = δ;
24+ ghc = δ;
25+ ghc-boot = δ;
26+ ghc-boot-th = δ;
27+ ghc-check = δ;
28+ ghc-paths = δ;
29+ ghc-typelits-knownnat = δ;
30+ gitrev = δ;
31+ haddock-library = δ;
32+ hashable = δ;
33+ haskell-lsp = δ;
34+ haskell-lsp-types = δ;
35+ hie-bios = δ;
36+ hslogger = δ;
37+ lens = δ;
38+ lsp-test = δ;
3939 mkDerivation =
40− { benchmarkHaskellDepends = [η];
40+ { benchmarkHaskellDepends = [δ];
4141 description = String;
42− executableHaskellDepends = [ζ];
42+ executableHaskellDepends = [δ];
4343 homepage = String;
4444 isExecutable = Bool;
4545 isLibrary = Bool;
46− libraryHaskellDepends = [ε];
47− license = ∀ α β γ. (ι.lib = α, α.licenses = β, β.asl20 = γ) => γ;
46+ libraryHaskellDepends = [δ];
47+ license = ∀ α β γ. (ζ.lib = α, α.licenses = β, β.asl20 = γ) => γ;
4848 pname = String;
49− src = θ;
50− testHaskellDepends = [ε];
49+ src = ε;
50+ testHaskellDepends = [δ];
5151 version = String;
5252 } ->
53− κ;
54− mtl = ζ;
55− network-uri = ζ;
56− opentelemetry = ζ;
57− optparse-applicative = η;
58− prettyprinter = ζ;
59− prettyprinter-ansi-terminal = ζ;
60− process = η;
61− quickcheck-instances = ε;
62− regex-tdfa = ζ;
63− rope-utf16-splay = ζ;
64− safe = ζ;
65− safe-exceptions = η;
53+ η;
54+ mtl = δ;
55+ network-uri = δ;
56+ opentelemetry = δ;
57+ optparse-applicative = δ;
58+ prettyprinter = δ;
59+ prettyprinter-ansi-terminal = δ;
60+ process = δ;
61+ quickcheck-instances = δ;
62+ regex-tdfa = δ;
63+ rope-utf16-splay = δ;
64+ safe = δ;
65+ safe-exceptions = δ;
6666 shake = δ;
67− sorted-list = ζ;
68− stdenv = ι;
69− stm = ζ;
70− syb = ζ;
71− tasty = ε;
72− tasty-expected-failure = ε;
73− tasty-hunit = ε;
74− tasty-quickcheck = ε;
75− tasty-rerun = ε;
67+ sorted-list = δ;
68+ stdenv = ζ;
69+ stm = δ;
70+ syb = δ;
71+ tasty = δ;
72+ tasty-expected-failure = δ;
73+ tasty-hunit = δ;
74+ tasty-quickcheck = δ;
75+ tasty-rerun = δ;
7676 text = δ;
77− time = ζ;
78− transformers = ζ;
79− unix = ζ;
80− unordered-containers = ζ;
81− utf8-string = ε;
82− yaml = η;
77+ time = δ;
78+ transformers = δ;
79+ unix = δ;
80+ unordered-containers = δ;
81+ utf8-string = δ;
82+ yaml = δ;
8383} ->
84−κ
84+η
test/golden/importless/maps.txt+2−2
@@ -1,4 +1,4 @@
1−∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ.
1+∀ β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ.
22( β.overrideAttrs = (γ -> {UNZIP = String;}) -> δ,
33 β.overrideAttrs = (ε -> {UNZIP = String;}) -> ζ,
44 β.overrideAttrs = (η -> {UNZIP = String;}) -> θ,
@@ -10,7 +10,7 @@
1010 β.overrideAttrs = (τ -> {UNZIP = String;}) -> υ,
1111 β.overrideAttrs = (φ -> {UNZIP = String;}) -> χ
1212) =>
13−{fetchzip = ψ -> β;} ->
13+{fetchzip = {sha256 = String; stripRoot = Bool; url = String;} -> β;} ->
1414{ ladder2017season1 = ∀ α. α;
1515 ladder2017season2 = ∀ α. α;
1616 ladder2017season3 = ∀ α. α;
test/golden/importless/nuget.txt+1−1
@@ -1 +1 @@
1−∀ α β γ δ. {fetchurl = {name = α; sha256 = β; url = γ;} -> δ;} -> [δ]
1+∀ α. {fetchurl = {name = String; sha256 = String; url = String;} -> α;} -> [α]
test/golden/importless/primary.txt+6−6
@@ -1,13 +1,13 @@
1−∀ β γ.
2−{fetchurl = {sha256 = β; url = String;} -> γ;} ->
3−{ fetchSrc = ∀ α. {name = α; sha256 = String;} -> γ;
4− help = γ;
1+∀ β.
2+{fetchurl = {sha256 = String; url = String;} -> β;} ->
3+{ fetchSrc = ∀ α. {name = α; sha256 = String;} -> β;
4+ help = β;
55 major = String;
66 minor = String;
77 patch = String;
8− src = γ;
8+ src = β;
99 subdir = String;
10− translations = γ;
10+ translations = β;
1111 tweak = String;
1212 version = String;
1313}
test/golden/importless/sbv-7.13.txt+24−24
@@ -1,44 +1,44 @@
1−∀ δ ε ζ η θ.
1+∀ δ ε ζ η.
22{ Glob = δ;
3− QuickCheck = ε;
4− array = ε;
5− async = ε;
6− base = ε;
3+ QuickCheck = δ;
4+ array = δ;
5+ async = δ;
6+ base = δ;
77 bytestring = δ;
8− containers = ε;
9− crackNum = ε;
10− deepseq = ε;
11− directory = ε;
8+ containers = δ;
9+ crackNum = δ;
10+ deepseq = δ;
11+ directory = δ;
1212 doctest = δ;
13− filepath = ε;
14− generic-deriving = ε;
15− ghc = ε;
13+ filepath = δ;
14+ generic-deriving = δ;
15+ ghc = δ;
1616 hlint = δ;
1717 mkDerivation =
1818 { description = String;
1919 enableSeparateDataOutput = Bool;
2020 homepage = String;
2121 libraryHaskellDepends = [δ];
22− license = ∀ α β γ. (ζ.lib = α, α.licenses = β, β.bsd3 = γ) => γ;
22+ license = ∀ α β γ. (ε.lib = α, α.licenses = β, β.bsd3 = γ) => γ;
2323 pname = String;
2424 sha256 = String;
2525 testHaskellDepends = [δ];
26− testSystemDepends = [η];
26+ testSystemDepends = [ζ];
2727 version = String;
2828 } ->
29− θ;
30− mtl = ε;
31− pretty = ε;
32− process = ε;
33− random = ε;
34− stdenv = ζ;
35− syb = ε;
29+ η;
30+ mtl = δ;
31+ pretty = δ;
32+ process = δ;
33+ random = δ;
34+ stdenv = ε;
35+ syb = δ;
3636 tasty = δ;
3737 tasty-golden = δ;
3838 tasty-hunit = δ;
3939 tasty-quickcheck = δ;
40− template-haskell = ε;
40+ template-haskell = δ;
4141 time = δ;
42− z3 = η;
42+ z3 = ζ;
4343} ->
44−θ
44+η
test/golden/importless/spago.txt+21−21
@@ -1,12 +1,12 @@
1−∀ δ ε ζ η θ ι κ λ.
1+∀ δ ε ζ η θ ι.
22{ Cabal = δ;
33 Glob = δ;
4− QuickCheck = ε;
4+ QuickCheck = δ;
55 aeson = δ;
66 aeson-pretty = δ;
77 ansi-terminal = δ;
88 async-pool = δ;
9− base = ζ;
9+ base = δ;
1010 bower-json = δ;
1111 bytestring = δ;
1212 containers = δ;
@@ -14,18 +14,18 @@
1414 directory = δ;
1515 either = δ;
1616 exceptions = δ;
17− extra = ε;
17+ extra = δ;
1818 fetchgit =
19− {fetchSubmodules = Bool; rev = String; sha256 = String; url = String;} -> η;
19+ {fetchSubmodules = Bool; rev = String; sha256 = String; url = String;} -> ε;
2020 file-embed = δ;
2121 filepath = δ;
2222 foldl = δ;
2323 fsnotify = δ;
2424 github = δ;
25− hpack = θ;
26− hspec = ε;
27− hspec-discover = ι;
28− hspec-megaparsec = ε;
25+ hpack = ζ;
26+ hspec = δ;
27+ hspec-discover = η;
28+ hspec-megaparsec = δ;
2929 http-client = δ;
3030 http-conduit = δ;
3131 lens-family-core = δ;
@@ -35,17 +35,17 @@
3535 homepage = String;
3636 isExecutable = Bool;
3737 isLibrary = Bool;
38− libraryHaskellDepends = [ε];
39− libraryToolDepends = [θ];
40− license = ∀ α β γ. (κ.lib = α, α.licenses = β, β.bsd3 = γ) => γ;
38+ libraryHaskellDepends = [δ];
39+ libraryToolDepends = [ζ];
40+ license = ∀ α β γ. (θ.lib = α, α.licenses = β, β.bsd3 = γ) => γ;
4141 pname = String;
4242 prePatch = String;
43− src = η;
44− testHaskellDepends = [ε];
45− testToolDepends = [ι];
43+ src = ε;
44+ testHaskellDepends = [δ];
45+ testToolDepends = [η];
4646 version = String;
4747 } ->
48− λ;
48+ ι;
4949 mtl = δ;
5050 network-uri = δ;
5151 open-browser = δ;
@@ -57,20 +57,20 @@
5757 rio-orphans = δ;
5858 safe = δ;
5959 semver-range = δ;
60− stdenv = κ;
60+ stdenv = θ;
6161 stm = δ;
6262 tar = δ;
6363 template-haskell = δ;
6464 temporary = δ;
65− text = ζ;
65+ text = δ;
6666 time = δ;
6767 transformers = δ;
68− turtle = ζ;
68+ turtle = δ;
6969 unliftio = δ;
7070 unordered-containers = δ;
7171 vector = δ;
7272 versions = δ;
7373 with-utf8 = δ;
74− zlib = ε;
74+ zlib = δ;
7575} ->
76−λ
76+ι
test/golden/importless/v10.txt+6−3
@@ -1,8 +1,11 @@
1−∀ α β γ δ ε.
2−{ callPackage = Path -> {icu = α; openssl = β; python = γ;} -> δ;
1+∀ α β γ δ.
2+{ callPackage =
3+ Path ->
4+ {icu = α; openssl = β; python = γ;} ->
5+ {enableNpm = Bool; sha256 = String; version = String;} -> δ;
36 enableNpm = Bool;
47 icu = α;
58 openssl = β;
69 python2 = γ;
710} ->
8−ε
11+δ
test/golden/importless/v12.txt+6−3
@@ -1,8 +1,11 @@
1−∀ α β γ δ ε.
2−{ callPackage = Path -> {icu = α; openssl = β; python = γ;} -> δ;
1+∀ α β γ δ.
2+{ callPackage =
3+ Path ->
4+ {icu = α; openssl = β; python = γ;} ->
5+ {enableNpm = Bool; sha256 = String; version = String;} -> δ;
36 enableNpm = Bool;
47 icu = α;
58 openssl = β;
69 python2 = γ;
710} ->
8−ε
11+δ
test/golden/importless/v14.txt+6−3
@@ -1,7 +1,10 @@
1−∀ α β γ δ.
2−{ callPackage = Path -> {openssl = α; python = β;} -> γ;
1+∀ α β γ.
2+{ callPackage =
3+ Path ->
4+ {openssl = α; python = β;} ->
5+ {enableNpm = Bool; sha256 = String; version = String;} -> γ;
36 enableNpm = Bool;
47 openssl = α;
58 python3 = β;
69} ->
7−δ
10+γ
test/golden/importless/v3_4.txt+16−10
@@ -1,13 +1,19 @@
1−∀ α β γ δ ε ζ η θ ι.
2−{ CoreFoundation = α;
3− Security = β;
4− boost = γ;
1+∀ δ ε ζ η θ ι κ λ.
2+{ CoreFoundation = δ;
3+ Security = ε;
4+ boost = ζ;
55 callPackage =
66 Path ->
7− {CoreFoundation = α; Security = β; boost = γ; cctools = δ; sasl = ε;} -> ζ;
8− cctools = δ;
9− lib = η;
10− sasl = ε;
11− stdenv = θ;
7+ {CoreFoundation = δ; Security = ε; boost = ζ; cctools = η; sasl = θ;} ->
8+ { license = ∀ α β γ. (ι.lib = α, α.licenses = β, β.agpl3 = γ) => γ;
9+ patches = [Path];
10+ sha256 = String;
11+ version = String;
12+ } ->
13+ κ;
14+ cctools = η;
15+ lib = λ;
16+ sasl = θ;
17+ stdenv = ι;
1218} ->
13−ι
19+κ
test/golden/importless/v3_6.txt+19−8
@@ -1,13 +1,24 @@
1−∀ α β γ δ ε ζ η θ ι.
2−{ CoreFoundation = α;
3− Security = β;
4− boost = γ;
1+∀ γ δ ε ζ η θ ι κ.
2+{ CoreFoundation = γ;
3+ Security = δ;
4+ boost = ε;
55 callPackage =
66 Path ->
7− {CoreFoundation = α; Security = β; boost = γ; cctools = δ; sasl = ε;} -> ζ;
8− cctools = δ;
9− lib = η;
10− sasl = ε;
7+ {CoreFoundation = γ; Security = δ; boost = ε; cctools = ζ; sasl = η;} ->
8+ { patches =
9+ ∀ α β.
10+ ( θ.lib = α,
11+ α.optionals = β -> [Path] -> [Path],
12+ θ.isDarwin = β
13+ ) =>
14+ [Path];
15+ sha256 = String;
16+ version = String;
17+ } ->
18+ ι;
19+ cctools = ζ;
20+ lib = κ;
21+ sasl = η;
1122 stdenv = θ;
1223} ->
1324ι
test/golden/importless/v4_0.txt+19−8
@@ -1,13 +1,24 @@
1−∀ α β γ δ ε ζ η θ ι.
2−{ CoreFoundation = α;
3− Security = β;
4− boost = γ;
1+∀ γ δ ε ζ η θ ι κ.
2+{ CoreFoundation = γ;
3+ Security = δ;
4+ boost = ε;
55 callPackage =
66 Path ->
7− {CoreFoundation = α; Security = β; boost = γ; cctools = δ; sasl = ε;} -> ζ;
8− cctools = δ;
9− lib = η;
10− sasl = ε;
7+ {CoreFoundation = γ; Security = δ; boost = ε; cctools = ζ; sasl = η;} ->
8+ { patches =
9+ ∀ α β.
10+ ( θ.lib = α,
11+ α.optionals = β -> [Path] -> [Path],
12+ θ.isDarwin = β
13+ ) =>
14+ [Path];
15+ sha256 = String;
16+ version = String;
17+ } ->
18+ ι;
19+ cctools = ζ;
20+ lib = κ;
21+ sasl = η;
1122 stdenv = θ;
1223} ->
1324ι
test/golden/importless/v4_2.txt+19−8
@@ -1,13 +1,24 @@
1−∀ α β γ δ ε ζ η θ ι.
2−{ CoreFoundation = α;
3− Security = β;
4− boost = γ;
1+∀ γ δ ε ζ η θ ι κ.
2+{ CoreFoundation = γ;
3+ Security = δ;
4+ boost = ε;
55 callPackage =
66 Path ->
7− {CoreFoundation = α; Security = β; boost = γ; cctools = δ; sasl = ε;} -> ζ;
8− cctools = δ;
9− lib = η;
10− sasl = ε;
7+ {CoreFoundation = γ; Security = δ; boost = ε; cctools = ζ; sasl = η;} ->
8+ { patches =
9+ ∀ α β.
10+ ( θ.lib = α,
11+ α.optionals = β -> [Path] -> [Path],
12+ θ.isDarwin = β
13+ ) =>
14+ [Path];
15+ sha256 = String;
16+ version = String;
17+ } ->
18+ ι;
19+ cctools = ζ;
20+ lib = κ;
21+ sasl = η;
1122 stdenv = θ;
1223} ->
1324ι
test/golden/importless/with-provers.txt+3−3
@@ -1,4 +1,4 @@
1−∀ α β γ δ ε ζ.
1+∀ α β γ δ ε.
22( α.mkDerivation =
33 { buildInputs = [β];
44 buildPhase = String;
@@ -9,9 +9,9 @@
99 γ
1010) =>
1111{ makeWrapper = β;
12− runCommand = String -> {provers = δ;} -> String -> ε;
12+ runCommand = String -> {provers = [β];} -> String -> δ;
1313 stdenv = α;
14− symlinkJoin = ζ;
14+ symlinkJoin = ε;
1515 why3 = β;
1616} ->
1717[β] -> γ
test/golden/importless/xsa-patches.txt+50−50
@@ -1,51 +1,51 @@
1−∀ α β.
2−{fetchpatch = {sha256 = α; url = String;} -> β;} ->
3−{ XSA_190 = β;
4− XSA_191 = β;
5− XSA_192 = β;
6− XSA_193 = β;
7− XSA_195 = β;
8− XSA_196 = [β];
9− XSA_198 = β;
10− XSA_200 = β;
11− XSA_202_45 = β;
12− XSA_204_45 = β;
13− XSA_206_45 = [β];
14− XSA_207 = β;
15− XSA_212 = β;
16− XSA_213_45 = β;
17− XSA_214 = β;
18− XSA_215 = β;
19− XSA_217_45 = β;
20− XSA_218_45 = [β];
21− XSA_219_45 = β;
22− XSA_220_45 = β;
23− XSA_221 = β;
24− XSA_222_45 = [β];
25− XSA_223 = β;
26− XSA_224_45 = [β];
27− XSA_226_45 = [β];
28− XSA_227_45 = β;
29− XSA_230 = β;
30− XSA_231_45 = β;
31− XSA_232 = β;
32− XSA_233 = β;
33− XSA_234_45 = β;
34− XSA_235_45 = β;
35− XSA_236_45 = β;
36− XSA_237_45 = [β];
37− XSA_238_45 = β;
38− XSA_239_45 = β;
39− XSA_240_45 = [β];
40− XSA_241 = β;
41− XSA_242 = β;
42− XSA_243_45 = [β];
43− XSA_244_45 = β;
44− XSA_245 = [β];
45− XSA_246_45 = [β];
46− XSA_247_45 = [β];
47− XSA_248_45 = [β];
48− XSA_249 = [β];
49− XSA_250_45 = [β];
50− XSA_251_45 = [β];
1+∀ α.
2+{fetchpatch = {sha256 = String; url = String;} -> α;} ->
3+{ XSA_190 = α;
4+ XSA_191 = α;
5+ XSA_192 = α;
6+ XSA_193 = α;
7+ XSA_195 = α;
8+ XSA_196 = [α];
9+ XSA_198 = α;
10+ XSA_200 = α;
11+ XSA_202_45 = α;
12+ XSA_204_45 = α;
13+ XSA_206_45 = [α];
14+ XSA_207 = α;
15+ XSA_212 = α;
16+ XSA_213_45 = α;
17+ XSA_214 = α;
18+ XSA_215 = α;
19+ XSA_217_45 = α;
20+ XSA_218_45 = [α];
21+ XSA_219_45 = α;
22+ XSA_220_45 = α;
23+ XSA_221 = α;
24+ XSA_222_45 = [α];
25+ XSA_223 = α;
26+ XSA_224_45 = [α];
27+ XSA_226_45 = [α];
28+ XSA_227_45 = α;
29+ XSA_230 = α;
30+ XSA_231_45 = α;
31+ XSA_232 = α;
32+ XSA_233 = α;
33+ XSA_234_45 = α;
34+ XSA_235_45 = α;
35+ XSA_236_45 = α;
36+ XSA_237_45 = [α];
37+ XSA_238_45 = α;
38+ XSA_239_45 = α;
39+ XSA_240_45 = [α];
40+ XSA_241 = α;
41+ XSA_242 = α;
42+ XSA_243_45 = [α];
43+ XSA_244_45 = α;
44+ XSA_245 = [α];
45+ XSA_246_45 = [α];
46+ XSA_247_45 = [α];
47+ XSA_248_45 = [α];
48+ XSA_249 = [α];
49+ XSA_250_45 = [α];
50+ XSA_251_45 = [α];
5151}
test/golden/importless/z3.txt+12−12
@@ -1,9 +1,9 @@
1−∀ δ ε ζ η θ ι.
1+∀ δ ε ζ η θ.
22{ QuickCheck = δ;
3− base = ε;
4− containers = ε;
5− fetchpatch = {sha256 = String; url = String;} -> ζ;
6− gomp = η;
3+ base = δ;
4+ containers = δ;
5+ fetchpatch = {sha256 = String; url = String;} -> ε;
6+ gomp = ζ;
77 hspec = δ;
88 mkDerivation =
99 { description = String;
@@ -12,17 +12,17 @@
1212 isExecutable = Bool;
1313 isLibrary = Bool;
1414 libraryHaskellDepends = [δ];
15− librarySystemDepends = [η];
16− license = ∀ α β γ. (θ.lib = α, α.licenses = β, β.bsd3 = γ) => γ;
17− patches = [ζ];
15+ librarySystemDepends = [ζ];
16+ license = ∀ α β γ. (η.lib = α, α.licenses = β, β.bsd3 = γ) => γ;
17+ patches = [ε];
1818 pname = String;
1919 sha256 = String;
2020 testHaskellDepends = [δ];
2121 version = String;
2222 } ->
23− ι;
24− stdenv = θ;
23+ θ;
24+ stdenv = η;
2525 transformers = δ;
26− z3 = η;
26+ z3 = ζ;
2727} ->
28−ι
28+θ
test/golden/mine/0.9.nixnew file+5
@@ -0,0 +1,5 @@
1+{ a, b }:
2+rec {
3+ bar = [ a b ];
4+ baz = 1;
5+}
test/golden/mine/0.9.txtnew file+1
@@ -0,0 +1 @@
1+∀ α. {a = α; b = α;} -> {bar = [α]; baz = Integer;}
test/golden/mine/dhall-packages.nixnew file+14
@@ -0,0 +1,14 @@
1+g:
2+let packages = self:
3+ let
4+ f = g self;
5+ prefer = version: path:
6+ let packages = f path { }; in
7+ packages."${version}".overrideAttrs (_: { passthru = packages; });
8+ foo = f "b" { };
9+ in
10+ {
11+ Prelude =
12+ prefer "d" "f";
13+ };
14+in packages
test/golden/mine/dhall-packages.txtnew file+1
@@ -0,0 +1 @@
1+∀ α β γ. (α -> String -> {} -> β) -> α -> {Prelude = γ;}
test/golden/mine/nuget.txt+1−1
@@ -1 +1 @@
1−∀ α β. {fetchurl = {url = α;} -> β;} -> [β]
1+∀ α. {fetchurl = {url = String;} -> α;} -> [α]
test/golden/mine/org-generated.nixnew file+6
@@ -0,0 +1,6 @@
1+f:
2+{
3+ a = f ({ x, y }: x { c = y { }; });
4+ b = f ({ x, y }:
5+ let u = 1; in x { c = y { }; });
6+}
test/golden/mine/org-generated.txtnew file+1
@@ -0,0 +1 @@
1+∀ α β γ. (({x = {c = α;} -> β; y = {} -> α;} -> β) -> γ) -> {a = γ; b = γ;}
test/golden/mine/polyArgs.nixnew file+1
@@ -0,0 +1 @@
1+{ x, y, z }: { a = [ x y ]; b = [ y z ]; c = [ x z ]; }
test/golden/mine/polyArgs.txtnew file+1
@@ -0,0 +1 @@
1+∀ α. {x = α; y = α; z = α;} -> {a = [α]; b = [α]; c = [α];}
test/golden/mine/z3.nixnew file+10
@@ -0,0 +1,10 @@
1+{ mkDerivation
2+, a
3+, b
4+, c
5+, g
6+}:
7+{
8+ libraryHaskellDepends = [ a b ];
9+ librarySystemDepends = [ c g ];
10+}
test/golden/mine/z3.txtnew file+3
@@ -0,0 +1,3 @@
1+∀ α β γ.
2+{a = α; b = α; c = β; g = β; mkDerivation = γ;} ->
3+{libraryHaskellDepends = [α]; librarySystemDepends = [β];}