on master help sign in
Resolve contextual null literals
commit4d45d2ff4397ef4f3d1c800457b49e54d3e3ceb9 authoriko <mail@iko.soy> dateFri 30 Oct 2026, 20:49 (1 day ago) parent56a899f
26 files changed+650−343
docs/compiler.md+1−1 docs/status.md+7−6 jibb-dev/lib/jibb.hoon+18−7 tests/golden/prelude-1c-structural/types.txt+2−2 tests/golden/prelude-3g-basic/types.txt+2−2 tests/golden/prelude-3g-like/types.txt+2−2 tests/golden/prelude-3g-structural/types.txt+2−2 tests/golden/prelude-list-helpers/types.txt+2−2 tests/golden/prelude-list-unit/types.txt+2−2 tests/golden/prelude-unit-list-transforms/types.txt+7−7 tests/golden/types-null-context/about.txt+4 tests/golden/types-null-context/source.jibb+8 tests/golden/types-null-context/tokens.txt+57 tests/golden/types-null-context/tree.txt+25 tests/golden/types-null-context/types.txt+13 tests/golden/types-null-overlap/about.txt+4 tests/golden/types-null-overlap/source.jibb+3 tests/golden/types-null-overlap/tokens.txt+8 tests/golden/types-null-overlap/tree.txt+3 tests/golden/types-null-overlap/types.txt+8 tests/golden/types-null-unresolved/about.txt+4 tests/golden/types-null-unresolved/source.jibb+18 tests/golden/types-null-unresolved/tokens.txt+79 tests/golden/types-null-unresolved/tree.txt+34 tests/golden/types-null-unresolved/types.txt+9 tests/lib/jibb.hoon+328−310
docs/compiler.md+1−1
@@ -56,7 +56,7 @@ The core is split into chapters, `+| %name`, in this order:
5656| `%span-check` | `+check-spans`, which `+golden` runs on every tree, and `+check-spans-test` |
5757| `%type-inference` | The initial inference fragment and its unification helpers; not yet a module type checker |
5858
59−The inference fragment supports fixed auras, unrestricted `@`, one-way widening into it and toward aura-family ancestors, generic variables and gates, faced and unfaced cells, cell sample binders, known record field reads, a two-binder cell pattern, a complete two-arm loobean branch, closed local mold aliases and acyclic forward value references. It instantiates generalized top-level definitions when they are used. Acyclic local value definitions can refer forward and generalize variables that are free of their enclosing environment; captured variables and explicit capitals remain shared. Acyclic simple local mold aliases can also refer forward, and are scoped to the body, not its gate's sample. Nonrecursive generic aliases of supported molds can be applied at exact arity, including locally and through library interfaces; their parameters are lexical. Closed, provably disjoint nonrecursive unions and tagged single-case molds support contextual term values and `|=%tag` constructors; unresolved tags remain pending. Nonrecursive top-level generic union molds with provably disjoint cases also support contextual tags and constructors at exact arity; their arguments are retained through generalization and supported library interfaces. Nonrecursive generic aliases can reorder, repeat or omit parameters while preserving a supported union’s origin, including through local scopes and library interfaces. A generic union declared directly inside a body remains unsupported, as do recursive local groups and recursive molds. A value with type variable `A` can fit a field whose type is that same `A`, including in generic union payloads and nested or repeated record fields. A differing-variable face constraint remains unsupported. It can infer and generalize atom constraints arising from explicit capitals or bare sample binders, preserve those constraints through aliases, instantiate them independently, and print multiple constraints. Unresolved decimal variables default to `@ud` for inferred types without gates; defaulting inside gate types and other constraint cases remain incomplete. It does not yet check a module, complete imports, general patterns, general deferred constraints, recursive molds, dependency cycles or most errors with both conflicting excerpts. Definite cast and call mismatches, incompatible branches and overlapping union cases report both sites and excerpts. Concrete branch results can join at an explicitly present parent aura or `@`. Some known tuple and record positions acquire matching faces; other variable-dependent face merges, general branch tag context and ambiguous call-result propagation remain unsupported; function compatibility involving nested `@` and variable-dependent joins remain unsupported except for equal types. The current dependency pass can take quadratic time on long forward chains; the milestone's speed target remains unverified. A separate conservative pass reports unions whose cases are provably disjoint or overlapping and leaves other cases unresolved; it does not claim the mold is checked. Unsupported forms are reported as such, and the partial output says the module has not been checked.
59+The inference fragment supports fixed auras, unrestricted `@`, one-way widening into it and toward aura-family ancestors, generic variables and gates, faced and unfaced cells, cell sample binders, known record field reads, a two-binder cell pattern, a complete two-arm loobean branch, closed local mold aliases and acyclic forward value references. It instantiates generalized top-level definitions when they are used. Acyclic local value definitions can refer forward and generalize variables that are free of their enclosing environment; captured variables and explicit capitals remain shared. Acyclic simple local mold aliases can also refer forward, and are scoped to the body, not its gate's sample. Nonrecursive generic aliases of supported molds can be applied at exact arity, including locally and through library interfaces; their parameters are lexical. Closed, provably disjoint nonrecursive unions and tagged single-case molds support contextual term values, `~` and `|=%tag` constructors. A null-headed cell can match a union case but does not supply a `|=%$` constructor; unresolved tags and nulls remain pending, with distinct partial-inference diagnostics. Nonrecursive top-level generic union molds with provably disjoint cases also support contextual tags and constructors at exact arity; their arguments are retained through generalization and supported library interfaces. Nonrecursive generic aliases can reorder, repeat or omit parameters while preserving a supported union’s origin, including through local scopes and library interfaces. A generic union declared directly inside a body remains unsupported, as do recursive local groups and recursive molds. A value with type variable `A` can fit a field whose type is that same `A`, including in generic union payloads and nested or repeated record fields. A differing-variable face constraint remains unsupported. It can infer and generalize atom constraints arising from explicit capitals or bare sample binders, preserve those constraints through aliases, instantiate them independently, and print multiple constraints. Unresolved decimal variables default to `@ud` for inferred types without gates; defaulting inside gate types and other constraint cases remain incomplete. It does not yet check a module, complete imports, general patterns, general deferred constraints, recursive molds, dependency cycles or most errors with both conflicting excerpts. Definite cast and call mismatches, incompatible branches and overlapping union cases report both sites and excerpts. Concrete branch results can join at an explicitly present parent aura or `@`. Some known tuple and record positions acquire matching faces; other variable-dependent face merges, general branch tag context and ambiguous call-result propagation remain unsupported; function compatibility involving nested `@` and variable-dependent joins remain unsupported except for equal types. The current dependency pass can take quadratic time on long forward chains; the milestone's speed target remains unverified. A separate conservative pass reports unions whose cases are provably disjoint or overlapping and leaves other cases unresolved; it does not claim the mold is checked. Unsupported forms are reported as such, and the partial output says the module has not been checked.
6060
6161For supported closed unions, the type printer keeps the union’s origin separate from its displayed name. It prints an in-scope name such as `msg` or `msg.lib`, including in records and gates; an accessible imported nongeneric alias may name a transitive union. A nongeneric body-local union that escapes its scope, or an origin without an accessible name, prints its cases separated by spaces, parenthesized when nested. That case-list form is print-only. A supported generic union prints its name and all arguments, including unused arguments; when its name is unavailable, the partial printer reports that limitation instead of dropping its arguments. Two faces for the same imported origin remain compatible; compatibility between distinct union origins, including in gate types, remains unsupported. Some comparisons of generic union arguments also remain unsupported rather than deciding equality or mismatch. The Hoon bridge also translates some imported unnamed unions into this representation; unsupported cases remain errors.
6262
docs/status.md+7−6
@@ -19,7 +19,7 @@ On 2026-10-30, @iko decided that Jibb drops `$?`, so a `+$` takes a union's case
1919
2020## Milestone 2: in progress
2121
22−The repository spec records the subsequent type-system and prelude decisions; those changes also need synchronization to the Claude document. An initial inference fragment and a standalone Hoon type reader are being tested. The fragment explicitly reports that it does not check a module; partial bridges pass selected Hoon atoms, term singletons, nested faced or unfaced cells, supported disjoint unions and opaque standard collections from `/sur` molds and marks into inference. Collections retain their names and supported arguments for printing and unification; nested supported union arguments are retained too. The bridge trusts unchanged results from the source-aware reader; a materialized type graph alone cannot reveal cases Hoon already collapsed. Jibb-written collection molds, prelude collection operations and recursive references are not yet connected to this representation; malformed names and arities fail closed. The reader handles mark samples, recursive molds whose origins can be verified through Ford imports, nested collections, direct ordered maps, certain ordered-map fields, direct `$^` unions whose cases can be proved disjoint, and one verified explicit union argument in a list, set, map or unit. Ambiguous recursive origins fail closed; recognizable explicit unions are checked from source before Hoon can collapse their cases (doc question 22), while other nested unions, nested ordered maps, general union disjointness and complete import integration remain unfinished. The partial checker resolves a subset of ordinary library imports in dependency order using supplied Jibb sources and the current prelude names, caches completed interfaces per run, and detects missing sources and cycles. It does not yet check API or kind semantics, and the prelude inventory is incomplete. The inference fragment supports unrestricted `@`, selected one-way widenings including aura-family ancestors, generalized atom constraints arising from explicit capitals or bare sample binders, acyclic local value definitions with captures, simple and nonrecursive generic mold aliases, selected faced record casts and field reads, and contextual tags and constructors for closed disjoint unions, including direct nonrecursive generic unions and propagation through complete loobean branches in casts and known union-sample calls. A value with type variable `A` can fit a field whose type is that same `A`, including in generic union payloads and nested or repeated record fields. Other variable-dependent face merges remain unsupported. Supported closed unions print using an in-scope name or imported alias; an unnamed nongeneric union prints its cases, parenthesized when nested. The latter is print-only. Generic union types retain all arguments in their printed name; if that name is unavailable, the partial printer reports the limitation. Different import faces for the same origin remain compatible; compatibility across distinct union origins and some generic-argument comparisons remain unsupported. Nonrecursive generic aliases can reorder, repeat or omit parameters while retaining a union’s origin, including through local scopes and library interfaces. A generic union declared directly inside a body remains unsupported, as do differing-variable face constraints in a union payload. A transitive generic union whose name is unavailable is reported as unsupported instead of hiding its arguments. Unfixed decimal literals default to `@ud` in gate-free inferred types; recursive local groups and molds, general branch tag context, other constraint cases and defaulting inside gate types still need work. Collection recognition checks the originating core and fails closed on shadows or unsupported Ford subject shapes; a wrapper regression also rejects forged subjects, samples and tails. Its golden fixtures include three real Tlon files. A Clay test passes a Ford-built nested union through the reader into partial inference. The partial prelude includes `murn`, `join`, `snip` and `rear`, parsed but still awaiting checker and backend validation, and [prelude-inventory.md](prelude-inventory.md) is a source audit, not the complete inventory or signatures. The milestone remains unfinished.
22+The repository spec records the subsequent type-system and prelude decisions; those changes also need synchronization to the Claude document. An initial inference fragment and a standalone Hoon type reader are being tested. The fragment explicitly reports that it does not check a module; partial bridges pass selected Hoon atoms, term singletons, nested faced or unfaced cells, supported disjoint unions and opaque standard collections from `/sur` molds and marks into inference. Collections retain their names and supported arguments for printing and unification; nested supported union arguments are retained too. The bridge trusts unchanged results from the source-aware reader; a materialized type graph alone cannot reveal cases Hoon already collapsed. Jibb-written collection molds, prelude collection operations and recursive references are not yet connected to this representation; malformed names and arities fail closed. The reader handles mark samples, recursive molds whose origins can be verified through Ford imports, nested collections, direct ordered maps, certain ordered-map fields, direct `$^` unions whose cases can be proved disjoint, and one verified explicit union argument in a list, set, map or unit. Ambiguous recursive origins fail closed; recognizable explicit unions are checked from source before Hoon can collapse their cases (doc question 22), while other nested unions, nested ordered maps, general union disjointness and complete import integration remain unfinished. The partial checker resolves a subset of ordinary library imports in dependency order using supplied Jibb sources and the current prelude names, caches completed interfaces per run, and detects missing sources and cycles. It does not yet check API or kind semantics, and the prelude inventory is incomplete. The inference fragment supports unrestricted `@`, selected one-way widenings including aura-family ancestors, generalized atom constraints arising from explicit capitals or bare sample binders, acyclic local value definitions with captures, simple and nonrecursive generic mold aliases, selected faced record casts and field reads, and contextual tags, `~` and constructors for closed disjoint unions, including direct nonrecursive generic unions and propagation through complete loobean branches in casts and known union-sample calls. Contextual null-headed cells fit their cases, but do not supply a `|=%$` constructor; unresolved nulls remain pending and are reported separately from tags. A value with type variable `A` can fit a field whose type is that same `A`, including in generic union payloads and nested or repeated record fields. Other variable-dependent face merges remain unsupported. Supported closed unions print using an in-scope name or imported alias; an unnamed nongeneric union prints its cases, parenthesized when nested. The latter is print-only. Generic union types retain all arguments in their printed name; if that name is unavailable, the partial printer reports the limitation. Different import faces for the same origin remain compatible; compatibility across distinct union origins and some generic-argument comparisons remain unsupported. Nonrecursive generic aliases can reorder, repeat or omit parameters while retaining a union’s origin, including through local scopes and library interfaces. A generic union declared directly inside a body remains unsupported, as do differing-variable face constraints in a union payload. A transitive generic union whose name is unavailable is reported as unsupported instead of hiding its arguments. Unfixed decimal literals default to `@ud` in gate-free inferred types; recursive local groups and molds, general branch tag context, other constraint cases and defaulting inside gate types still need work. Collection recognition checks the originating core and fails closed on shadows or unsupported Ford subject shapes; a wrapper regression also rejects forged subjects, samples and tails. Its golden fixtures include three real Tlon files. A Clay test passes a Ford-built nested union through the reader into partial inference. The partial prelude includes `murn`, `join`, `snip` and `rear`, parsed but still awaiting checker and backend validation, and [prelude-inventory.md](prelude-inventory.md) is a source audit, not the complete inventory or signatures. The milestone remains unfinished.
2323
2424## Milestone 1: parser and mark
2525
@@ -37,8 +37,8 @@ What the plan asks for, and where it is:
3737
3838Besides the plan's list:
3939
40−- 490 golden cases: 274 that parse and 216 that fail, each failure at a stated line and column. One failing case has an unclear expectation (corpus question 3). The newer type-output cases exercise only the partial inference fragment. Each case's `about.txt` quotes the doc's words it tests.
41−- The 490-case corpus passed under `urbit eval` in 55.8 s. The fake ship passed all 495 tests, including the importer, importer/checker and mark/checker bridges, module scope and unification checks, with 26.9 s for sync and 24.1 s for tests. The importer golden compares 141 projections; `tools/clay-fixtures` builds the example Hoon fixtures through Clay, checks a recursive Ford import's origin, and passes Clay-built types through the Clay-built importer and partial checker.
40+- 493 golden cases: 277 that parse and 216 that fail, each failure at a stated line and column. One failing case has an unclear expectation (corpus question 3). The newer type-output cases exercise only the partial inference fragment. Each case's `about.txt` quotes the doc's words it tests.
41+- The 493-case corpus passed under `urbit eval` in 59.0 s. The fake ship passed all 498 tests, including the importer, importer/checker and mark/checker bridges, module scope and unification checks, with 29.9 s for sync and 16.1 s for tests. The importer golden compares 141 projections; `tools/clay-fixtures` builds the example Hoon fixtures through Clay, checks a recursive Ford import's origin, and passes Clay-built types through the Clay-built importer and partial checker.
4242- `tools/testdata/selftest` (22 checks) and `tools/testdata/ship-selftest` test the tools themselves.
4343- Two independent audits before 7c739b7, one of which compared the library with a reference parser written in Python from the doc over about 19,000 generated programs. Before ab797a9, a second Python parser, written from the decisions, agreed with the library on 8,000 generated programs and 900 hand-written probes.
4444- Speed: starting `urbit eval` and building the library takes about 8 s. After that, a 2,000-line module of 400 definitions parses in about a second. Loops over definitions, arms, lines and items grow no stack; nesting costs a few stack frames a level, and 100,000 nested brackets still parse (library section 3).
@@ -73,14 +73,15 @@ Besides the plan's list:
7373| 0070584 | 2026-10-30 | Propagate union context through loobean branches, read selected unions in Hoon collections, and add `flit` |
7474| 250564c | 2026-10-30 | Infer selected named generic unions, test Hoon collection wrappers, and add list helpers |
7575| e95ef8f | 2026-10-30 | Bridge selected Hoon unions into partial inference and support generic union aliases |
76−| This change | 2026-10-30 | Infer matching variable types in faced fields and bridge opaque Hoon collections |
76+| 56a899f | 2026-10-30 | Infer matching variable types in faced fields and bridge opaque Hoon collections |
77+| This change | 2026-10-30 | Resolve selected contextual null literals |
7778
7879## Checking it
7980
8081On a machine set up as [development.md](development.md) says:
8182
8283```
83−tools/golden # 490 cases under urbit eval
84+tools/golden # 493 cases under urbit eval
8485tools/importer-test # the Hoon importer fixture projection
8586tools/type-import-test # the importer/checker bridge fixture
8687tools/type-mark-test # the mark/checker bridge fixture
@@ -90,7 +91,7 @@ tools/testdata/selftest # the tools themselves
9091tools/doc-blocks docs/spec # the doc's examples are golden cases
9192tools/ship start
9293tools/ship gen-tests --check # tests/lib/jibb.hoon is up to date
93−tools/ship test # the same 490 cases as -test arms on the ship
94+tools/ship test # the same 493 cases as -test arms on the ship
9495tools/testdata/ship-selftest
9596tools/ship check-commit # |commit stores .jibb files
9697tools/clay-fixtures # example /sur files and marks build through Clay
jibb-dev/lib/jibb.hoon+18−7
@@ -4618,6 +4618,7 @@
46184618 ==
46194619+$ ibinding [id=@ud val=itype]
46204620+$ isub (list ibinding)
4621++$ ipending [id=@ud literal=lit]
46214622::
46224623++ itype-lookup
46234624 |= [n=@ud sub=isub]
@@ -4915,10 +4916,17 @@
49154916 ==
49164917::
49174918++ pending-tags
4918− |= [tags=(list @ud) sub=isub]
4919+ |= [tags=(list ipending) sub=isub]
49194920 ^- ?
49204921 ?~ tags |
4921− ?~ (itype-lookup i.tags sub) &
4922+ ?~ (itype-lookup id.i.tags sub) &
4923+ $(tags t.tags)
4924+::
4925+++ pending-null
4926+ |= [tags=(list ipending) sub=isub]
4927+ ^- ?
4928+ ?~ tags |
4929+ ?: &(?=(%null form.literal.i.tags) ?=(~ (itype-lookup id.i.tags sub))) &
49224930 $(tags t.tags)
49234931::
49244932:: Tags remain constrained until a mold selects a case or permitted atom
@@ -5000,6 +5008,7 @@
50005008 ?. ?=(%cell -.c) $(cases t.cases)
50015009 =/ head=itype (itype-walk hed.c sub)
50025010 ?. ?=(%const -.head) $(cases t.cases)
5011+ ?. =(%term form.literal.head) $(cases t.cases)
50035012 ?. =(val.literal.head val.tag) $(cases t.cases)
50045013 ?^ found [%unknown ~]
50055014 =/ trial=ifit (itype-fit sample tal.c sub next)
@@ -5180,7 +5189,7 @@
51805189:: This core has no Ford dependencies; unrecognized payloads fail closed.
51815190+$ iexternals (list [module=term name=term result=*])
51825191+$ imark-externals (list [mark=term result=*])
5183−+$ istate [next=@ud sub=isub caps=icaps binders=(list @ud) molds=imolds globals=(list term) externals=iexternals surs=(list term) mark-externals=imark-externals marks=(list term) jimports=ijimports reserved-molds=(list term) params=iparams active=(list term) tags=(list @ud) in-mold=? at=path top-molds=(list term)]
5192++$ istate [next=@ud sub=isub caps=icaps binders=(list @ud) molds=imolds globals=(list term) externals=iexternals surs=(list term) mark-externals=imark-externals marks=(list term) jimports=ijimports reserved-molds=(list term) params=iparams active=(list term) tags=(list ipending) in-mold=? at=path top-molds=(list term)]
51845193+$ idiag [msg=tape sites=(list [at=span note=tape])]
51855194+$ iresult (each [typ=itype state=istate] idiag)
51865195+$ isample-result (each [typ=itype env=ienv state=istate] tape)
@@ -5666,7 +5675,7 @@
56665675 `[[%atom aura.sh] state]
56675676 %flag `[[%flag ~] state]
56685677 %const
5669− ?. =(%term form.lit.sh) ~
5678+ ?. |(=(%term form.lit.sh) =(%null form.lit.sh)) ~
56705679 `[[%const lit.sh] state]
56715680 %union
56725681 =/ pairs=(list upair) (union-pairs cases.sh molds.state)
@@ -6011,8 +6020,8 @@
60116020 %duration [%& [%atom %dr] state]
60126021 %knot [%& [%atom %ta] state]
60136022 %loobean [%& [%flag ~] state]
6014− %term [%& [%tag next.state lit.e |] state(next +(next.state), tags [next.state tags.state])]
6015− * [%| ["literal needs contextual inference" ~]]
6023+ %term [%& [%tag next.state lit.e |] state(next +(next.state), tags [[next.state lit.e] tags.state])]
6024+ %null [%& [%tag next.state lit.e |] state(next +(next.state), tags [[next.state lit.e] tags.state])]
60166025 ==
60176026 %str
60186027 =/ interpolated=? (lien pieces.e |=(p=piece ?=(%expr -.p)))
@@ -6034,7 +6043,7 @@
60346043 =/ instance=[typ=itype state=istate] (instantiate-scheme u.scheme state)
60356044 [%& typ.instance state.instance]
60366045 %group $(e inner.e)
6037− %ctor [%& [%tag next.state tag.e &] state(next +(next.state), tags [next.state tags.state])]
6046+ %ctor [%& [%tag next.state tag.e &] state(next +(next.state), tags [[next.state tag.e] tags.state])]
60386047 %trace
60396048 =/ traced=iresult $(e val.e)
60406049 ?: ?=(%| -.traced) traced
@@ -6807,6 +6816,8 @@
68076816 ?: (constrained-capitals caps.state.p.result sub.state.p.result)
68086817 $(ds t.ds, lines [(crip "++ {(trip name.d)}: explicit capital constraints are not supported by partial inference") lines])
68096818 =/ typ=itype (default-decimals (itype-normalize typ.p.result sub.state.p.result))
6819+ ?: (pending-null tags.state.p.result sub.state.p.result)
6820+ $(ds t.ds, lines [(crip "++ {(trip name.d)}: `~` needs context in partial inference") lines])
68106821 ?: |((pending-tags tags.state.p.result sub.state.p.result) (itype-has-tag typ))
68116822 $(ds t.ds, lines [(crip "++ {(trip name.d)}: tag needs context in partial inference") lines])
68126823 ?: (itype-has-hidden-generic typ)
tests/golden/prelude-1c-structural/types.txt+2−2
@@ -5,8 +5,8 @@ partial inference; module not checked
55++ not: $-(? ?)
66+$ list: cases proven disjoint; mold not checked
77+$ unit: cases proven disjoint; mold not checked
8−++ fall: sample mold is not supported by partial inference
9−++ need: sample mold is not supported by partial inference
8+++ fall: branch pattern is not supported by partial inference
9+++ need: branch pattern is not supported by partial inference
1010++ weld: sample mold is not supported by partial inference
1111++ turn: sample mold is not supported by partial inference
1212+$ dime: not checked
tests/golden/prelude-3g-basic/types.txt+2−2
@@ -5,8 +5,8 @@ partial inference; module not checked
55++ not: $-(? ?)
66+$ list: cases proven disjoint; mold not checked
77+$ unit: cases proven disjoint; mold not checked
8−++ fall: sample mold is not supported by partial inference
9−++ need: sample mold is not supported by partial inference
8+++ fall: branch pattern is not supported by partial inference
9+++ need: branch pattern is not supported by partial inference
1010++ weld: sample mold is not supported by partial inference
1111++ turn: sample mold is not supported by partial inference
1212+$ dime: not checked
tests/golden/prelude-3g-like/types.txt+2−2
@@ -5,8 +5,8 @@ partial inference; module not checked
55++ not: $-(? ?)
66+$ list: cases proven disjoint; mold not checked
77+$ unit: cases proven disjoint; mold not checked
8−++ fall: sample mold is not supported by partial inference
9−++ need: sample mold is not supported by partial inference
8+++ fall: branch pattern is not supported by partial inference
9+++ need: branch pattern is not supported by partial inference
1010++ weld: sample mold is not supported by partial inference
1111++ turn: sample mold is not supported by partial inference
1212+$ dime: not checked
tests/golden/prelude-3g-structural/types.txt+2−2
@@ -5,8 +5,8 @@ partial inference; module not checked
55++ not: $-(? ?)
66+$ list: cases proven disjoint; mold not checked
77+$ unit: cases proven disjoint; mold not checked
8−++ fall: sample mold is not supported by partial inference
9−++ need: sample mold is not supported by partial inference
8+++ fall: branch pattern is not supported by partial inference
9+++ need: branch pattern is not supported by partial inference
1010++ weld: sample mold is not supported by partial inference
1111++ turn: sample mold is not supported by partial inference
1212+$ dime: not checked
tests/golden/prelude-list-helpers/types.txt+2−2
@@ -5,8 +5,8 @@ partial inference; module not checked
55++ not: $-(? ?)
66+$ list: cases proven disjoint; mold not checked
77+$ unit: cases proven disjoint; mold not checked
8−++ fall: sample mold is not supported by partial inference
9−++ need: sample mold is not supported by partial inference
8+++ fall: branch pattern is not supported by partial inference
9+++ need: branch pattern is not supported by partial inference
1010++ weld: sample mold is not supported by partial inference
1111++ turn: sample mold is not supported by partial inference
1212+$ dime: not checked
tests/golden/prelude-list-unit/types.txt+2−2
@@ -5,7 +5,7 @@ partial inference; module not checked
55++ not: $-(? ?)
66+$ list: cases proven disjoint; mold not checked
77+$ unit: cases proven disjoint; mold not checked
8−++ fall: sample mold is not supported by partial inference
9−++ need: sample mold is not supported by partial inference
8+++ fall: branch pattern is not supported by partial inference
9+++ need: branch pattern is not supported by partial inference
1010++ weld: sample mold is not supported by partial inference
1111++ turn: sample mold is not supported by partial inference
tests/golden/prelude-unit-list-transforms/types.txt+7−7
@@ -5,8 +5,8 @@ partial inference; module not checked
55++ not: $-(? ?)
66+$ list: cases proven disjoint; mold not checked
77+$ unit: cases proven disjoint; mold not checked
8−++ fall: sample mold is not supported by partial inference
9−++ need: sample mold is not supported by partial inference
8+++ fall: branch pattern is not supported by partial inference
9+++ need: branch pattern is not supported by partial inference
1010++ weld: sample mold is not supported by partial inference
1111++ turn: sample mold is not supported by partial inference
1212+$ dime: not checked
@@ -39,11 +39,11 @@ partial inference; module not checked
3939++ lure: cast mold is not supported by partial inference
4040++ snoc: sample mold is not supported by partial inference
4141++ flop: sample mold is not supported by partial inference
42−++ drop: sample mold is not supported by partial inference
43−++ bind: sample mold is not supported by partial inference
44−++ biff: sample mold is not supported by partial inference
45−++ both: sample mold is not supported by partial inference
46−++ clef: sample mold is not supported by partial inference
42+++ drop: branch pattern is not supported by partial inference
43+++ bind: branch pattern is not supported by partial inference
44+++ biff: branch pattern is not supported by partial inference
45+++ both: branch pattern is not supported by partial inference
46+++ clef: branch pattern is not supported by partial inference
4747++ skim: sample mold is not supported by partial inference
4848++ skip: sample mold is not supported by partial inference
4949++ levy: sample mold is not supported by partial inference
tests/golden/types-null-context/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Tag resolution: "A tag literal or `~` gets a fresh type variable and a pending constraint"; `|=%typed` "works for cases tagged at their head".
2+tests: Contextual null and a null-headed cell fit their respective cases. A null-headed case is not a `%$` constructor; a term-headed `%$` case is.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-null-context/source.jibbnew file+8
@@ -0,0 +1,8 @@
1++$ maybe
2+ ~
3+ [~ value=@t]
4++$ dollar [%$ value=@t]
5+++ empty ^- maybe ~
6+++ present ^- maybe [~ "hi"]
7+++ bad-constructor ^- $-(@t maybe) |=%$
8+++ dollar-constructor ^- $-(@t dollar) |=%$
tests/golden/types-null-context/tokens.txtnew file+57
@@ -0,0 +1,57 @@
1+1:1 glyph +$
2+1:4 name maybe
3+2:3 INDENT
4+2:3 lit ~
5+3:3 NEWLINE
6+3:3 glyph [
7+3:4 tight lit ~
8+3:6 name value
9+3:11 tight glyph =
10+3:12 tight aura @t
11+3:14 tight glyph ]
12+4:1 DEDENT
13+4:1 NEWLINE
14+4:1 glyph +$
15+4:4 name dollar
16+4:11 glyph [
17+4:12 tight lit %$
18+4:15 name value
19+4:20 tight glyph =
20+4:21 tight aura @t
21+4:23 tight glyph ]
22+5:1 NEWLINE
23+5:1 glyph ++
24+5:4 name empty
25+5:10 glyph ^-
26+5:13 name maybe
27+5:19 lit ~
28+6:1 NEWLINE
29+6:1 glyph ++
30+6:4 name present
31+6:12 glyph ^-
32+6:15 name maybe
33+6:21 glyph [
34+6:22 tight lit ~
35+6:24 str "hi"
36+6:28 tight glyph ]
37+7:1 NEWLINE
38+7:1 glyph ++
39+7:4 name bad-constructor
40+7:20 glyph ^-
41+7:23 glyph $-(
42+7:26 tight aura @t
43+7:29 name maybe
44+7:34 tight glyph )
45+7:36 glyph |=
46+7:38 tight lit %$
47+8:1 NEWLINE
48+8:1 glyph ++
49+8:4 name dollar-constructor
50+8:23 glyph ^-
51+8:26 glyph $-(
52+8:29 tight aura @t
53+8:32 name dollar
54+8:38 tight glyph )
55+8:40 glyph |=
56+8:42 tight lit %$
57+8:44 NEWLINE
tests/golden/types-null-context/tree.txtnew file+25
@@ -0,0 +1,25 @@
1+(module
2+ (mold 1:1 maybe
3+ (union 2:3
4+ (const 2:3 ~)
5+ (cell 3:3
6+ (const 3:4 ~)
7+ (face 3:6 value (aura 3:12 @t)))))
8+ (mold 4:1 dollar
9+ (cell 4:11
10+ (const 4:12 %$)
11+ (face 4:15 value (aura 4:21 @t))))
12+ (value 5:1 empty
13+ (cast 5:10 (ref 5:13 maybe) (lit 5:19 ~)))
14+ (value 6:1 present
15+ (cast 6:12
16+ (ref 6:15 maybe)
17+ (tuple 6:21 (lit 6:22 ~) (str 6:24 "hi"))))
18+ (value 7:1 bad-constructor
19+ (cast 7:20
20+ (fn 7:23 (aura 7:26 @t) (ref 7:29 maybe))
21+ (ctor 7:36 %$)))
22+ (value 8:1 dollar-constructor
23+ (cast 8:23
24+ (fn 8:26 (aura 8:29 @t) (ref 8:32 dollar))
25+ (ctor 8:40 %$))))
tests/golden/types-null-context/types.txtnew file+13
@@ -0,0 +1,13 @@
1+partial inference; module not checked
2++$ maybe: cases proven disjoint; mold not checked
3++$ dollar: not checked
4+++ empty: maybe
5+++ present: maybe
6+++ bad-constructor: cast mold and expression type do not unify
7+/tests/golden/types-null-context/source.jibb:7:23: cast mold
8+++ bad-constructor ^- $-(@t maybe) |=%$
9+ ^
10+/tests/golden/types-null-context/source.jibb:7:36: expression
11+++ bad-constructor ^- $-(@t maybe) |=%$
12+ ^
13+++ dollar-constructor: $-(@t [%$ value=@t])
tests/golden/types-null-overlap/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Molds: union cases "must differ as nouns".
2+tests: Null and the `%$` term have the same noun and overlap.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-null-overlap/source.jibbnew file+3
@@ -0,0 +1,3 @@
1++$ collide
2+ ~
3+ %$
tests/golden/types-null-overlap/tokens.txtnew file+8
@@ -0,0 +1,8 @@
1+1:1 glyph +$
2+1:4 name collide
3+2:3 INDENT
4+2:3 lit ~
5+3:3 NEWLINE
6+3:3 lit %$
7+3:5 DEDENT
8+3:5 NEWLINE
tests/golden/types-null-overlap/tree.txtnew file+3
@@ -0,0 +1,3 @@
1+(module
2+ (mold 1:1 collide
3+ (union 2:3 (const 2:3 ~) (const 3:3 %$))))
tests/golden/types-null-overlap/types.txtnew file+8
@@ -0,0 +1,8 @@
1+partial inference; module not checked
2++$ collide: overlapping cases; mold not checked
3+/tests/golden/types-null-overlap/source.jibb:2:3: first union case
4+ ~
5+ ^
6+/tests/golden/types-null-overlap/source.jibb:3:3: overlapping case
7+ %$
8+ ^
tests/golden/types-null-unresolved/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Literals by context: a tag or `~` has no default; an unresolved constraint needs a `^-`.
2+tests: Null without a fixing context remains unresolved, including in discarded traces and through a generic identity; a contextual null in a separate expression does not resolve it. A resolved null and an unresolved tag, and the reverse, keep their distinct diagnostics.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-null-unresolved/source.jibbnew file+18
@@ -0,0 +1,18 @@
1++$ maybe
2+ ~
3+ [~ value=@t]
4+++ loose ~
5+++ id |=(x x)
6+++ through (id ~)
7+++ ignored
8+ ~& ~
9+ ^- maybe ~
10+++ only-one
11+ ~& ^- maybe ~
12+ ~
13+++ null-then-tag
14+ ~& ^- maybe ~
15+ %unknown
16+++ tag-then-null
17+ ~& ^- @tas %known
18+ ~
tests/golden/types-null-unresolved/tokens.txtnew file+79
@@ -0,0 +1,79 @@
1+1:1 glyph +$
2+1:4 name maybe
3+2:3 INDENT
4+2:3 lit ~
5+3:3 NEWLINE
6+3:3 glyph [
7+3:4 tight lit ~
8+3:6 name value
9+3:11 tight glyph =
10+3:12 tight aura @t
11+3:14 tight glyph ]
12+4:1 DEDENT
13+4:1 NEWLINE
14+4:1 glyph ++
15+4:4 name loose
16+4:10 lit ~
17+5:1 NEWLINE
18+5:1 glyph ++
19+5:4 name id
20+5:7 glyph |=(
21+5:10 tight name x
22+5:12 name x
23+5:13 tight glyph )
24+6:1 NEWLINE
25+6:1 glyph ++
26+6:4 name through
27+6:12 glyph (
28+6:13 tight name id
29+6:16 lit ~
30+6:17 tight glyph )
31+7:1 NEWLINE
32+7:1 glyph ++
33+7:4 name ignored
34+8:3 INDENT
35+8:3 glyph ~&
36+8:6 lit ~
37+9:5 INDENT
38+9:5 glyph ^-
39+9:8 name maybe
40+9:14 lit ~
41+10:1 DEDENT
42+10:1 DEDENT
43+10:1 NEWLINE
44+10:1 glyph ++
45+10:4 name only-one
46+11:3 INDENT
47+11:3 glyph ~&
48+11:6 glyph ^-
49+11:9 name maybe
50+11:15 lit ~
51+12:5 INDENT
52+12:5 lit ~
53+13:1 DEDENT
54+13:1 DEDENT
55+13:1 NEWLINE
56+13:1 glyph ++
57+13:4 name null-then-tag
58+14:3 INDENT
59+14:3 glyph ~&
60+14:6 glyph ^-
61+14:9 name maybe
62+14:15 lit ~
63+15:5 INDENT
64+15:5 lit %unknown
65+16:1 DEDENT
66+16:1 DEDENT
67+16:1 NEWLINE
68+16:1 glyph ++
69+16:4 name tag-then-null
70+17:3 INDENT
71+17:3 glyph ~&
72+17:6 glyph ^-
73+17:9 aura @tas
74+17:14 lit %known
75+18:5 INDENT
76+18:5 lit ~
77+18:6 DEDENT
78+18:6 DEDENT
79+18:6 NEWLINE
tests/golden/types-null-unresolved/tree.txtnew file+34
@@ -0,0 +1,34 @@
1+(module
2+ (mold 1:1 maybe
3+ (union 2:3
4+ (const 2:3 ~)
5+ (cell 3:3
6+ (const 3:4 ~)
7+ (face 3:6 value (aura 3:12 @t)))))
8+ (value 4:1 loose (lit 4:10 ~))
9+ (value 5:1 id
10+ (gate-wide 5:7 (bind 5:10 x) (wing 5:12 x)))
11+ (value 6:1 through
12+ (group 6:12
13+ (call 6:13 (wing 6:13 id) (lit 6:16 ~))))
14+ (value 7:1 ignored
15+ (body 8:3
16+ (trace 8:3
17+ (lit 8:6 ~)
18+ (body 9:5
19+ (cast 9:5 (ref 9:8 maybe) (lit 9:14 ~))))))
20+ (value 10:1 only-one
21+ (body 11:3
22+ (trace 11:3
23+ (cast 11:6 (ref 11:9 maybe) (lit 11:15 ~))
24+ (body 12:5 (lit 12:5 ~)))))
25+ (value 13:1 null-then-tag
26+ (body 14:3
27+ (trace 14:3
28+ (cast 14:6 (ref 14:9 maybe) (lit 14:15 ~))
29+ (body 15:5 (lit 15:5 %unknown)))))
30+ (value 16:1 tag-then-null
31+ (body 17:3
32+ (trace 17:3
33+ (cast 17:6 (aura 17:9 @tas) (lit 17:14 %known))
34+ (body 18:5 (lit 18:5 ~))))))
tests/golden/types-null-unresolved/types.txtnew file+9
@@ -0,0 +1,9 @@
1+partial inference; module not checked
2++$ maybe: cases proven disjoint; mold not checked
3+++ loose: `~` needs context in partial inference
4+++ id: $-(A A)
5+++ through: `~` needs context in partial inference
6+++ ignored: `~` needs context in partial inference
7+++ only-one: `~` needs context in partial inference
8+++ null-then-tag: tag needs context in partial inference
9+++ tag-then-null: `~` needs context in partial inference
tests/lib/jibb.hoon+328−310
@@ -1459,257 +1459,269 @@
14591459/* imp-431-1 %txt /tests/golden/types-module-mixed/sur/fixture/txt
14601460/* mark-431-1 %txt /tests/golden/types-module-mixed/mar/label/txt
14611461/* mtre-431 %txt /tests/golden/types-module-mixed/module-trees/txt
1462−/* src-432 %jibb /tests/golden/types-partial-apply/source/jibb
1463−/* tok-432 %txt /tests/golden/types-partial-apply/tokens/txt
1464−/* tre-432 %txt /tests/golden/types-partial-apply/tree/txt
1465−/* typ-432 %txt /tests/golden/types-partial-apply/types/txt
1466−/* src-433 %jibb /tests/golden/types-partial-atom-alias/source/jibb
1467−/* tok-433 %txt /tests/golden/types-partial-atom-alias/tokens/txt
1468−/* tre-433 %txt /tests/golden/types-partial-atom-alias/tree/txt
1469−/* typ-433 %txt /tests/golden/types-partial-atom-alias/types/txt
1470−/* src-434 %jibb /tests/golden/types-partial-atom-constraint/source/jibb
1471−/* tok-434 %txt /tests/golden/types-partial-atom-constraint/tokens/txt
1472−/* tre-434 %txt /tests/golden/types-partial-atom-constraint/tree/txt
1473−/* typ-434 %txt /tests/golden/types-partial-atom-constraint/types/txt
1474−/* src-435 %jibb /tests/golden/types-partial-atom-widening/source/jibb
1475−/* tok-435 %txt /tests/golden/types-partial-atom-widening/tokens/txt
1476−/* tre-435 %txt /tests/golden/types-partial-atom-widening/tree/txt
1477−/* typ-435 %txt /tests/golden/types-partial-atom-widening/types/txt
1478−/* src-436 %jibb /tests/golden/types-partial-aura/source/jibb
1479−/* tok-436 %txt /tests/golden/types-partial-aura/tokens/txt
1480−/* tre-436 %txt /tests/golden/types-partial-aura/tree/txt
1481−/* typ-436 %txt /tests/golden/types-partial-aura/types/txt
1482−/* src-437 %jibb /tests/golden/types-partial-aura-family/source/jibb
1483−/* tok-437 %txt /tests/golden/types-partial-aura-family/tokens/txt
1484−/* tre-437 %txt /tests/golden/types-partial-aura-family/tree/txt
1485−/* typ-437 %txt /tests/golden/types-partial-aura-family/types/txt
1486−/* src-438 %jibb /tests/golden/types-partial-aura-generalization/source/jibb
1487−/* tok-438 %txt /tests/golden/types-partial-aura-generalization/tokens/txt
1488−/* tre-438 %txt /tests/golden/types-partial-aura-generalization/tree/txt
1489−/* typ-438 %txt /tests/golden/types-partial-aura-generalization/types/txt
1490−/* src-439 %jibb /tests/golden/types-partial-bare-atom/source/jibb
1491−/* tok-439 %txt /tests/golden/types-partial-bare-atom/tokens/txt
1492−/* tre-439 %txt /tests/golden/types-partial-bare-atom/tree/txt
1493−/* typ-439 %txt /tests/golden/types-partial-bare-atom/types/txt
1494−/* src-440 %jibb /tests/golden/types-partial-branch-widening/source/jibb
1495−/* tok-440 %txt /tests/golden/types-partial-branch-widening/tokens/txt
1496−/* tre-440 %txt /tests/golden/types-partial-branch-widening/tree/txt
1497−/* typ-440 %txt /tests/golden/types-partial-branch-widening/types/txt
1498−/* src-441 %jibb /tests/golden/types-partial-conflicting-sites/source/jibb
1499−/* tok-441 %txt /tests/golden/types-partial-conflicting-sites/tokens/txt
1500−/* tre-441 %txt /tests/golden/types-partial-conflicting-sites/tree/txt
1501−/* typ-441 %txt /tests/golden/types-partial-conflicting-sites/types/txt
1502−/* src-442 %jibb /tests/golden/types-partial-decimal-default/source/jibb
1503−/* tok-442 %txt /tests/golden/types-partial-decimal-default/tokens/txt
1504−/* tre-442 %txt /tests/golden/types-partial-decimal-default/tree/txt
1505−/* typ-442 %txt /tests/golden/types-partial-decimal-default/types/txt
1506−/* src-443 %jibb /tests/golden/types-partial-dependency-chain/source/jibb
1507−/* tok-443 %txt /tests/golden/types-partial-dependency-chain/tokens/txt
1508−/* tre-443 %txt /tests/golden/types-partial-dependency-chain/tree/txt
1509−/* typ-443 %txt /tests/golden/types-partial-dependency-chain/types/txt
1510−/* src-444 %jibb /tests/golden/types-partial-explicit-capital/source/jibb
1511−/* tok-444 %txt /tests/golden/types-partial-explicit-capital/tokens/txt
1512−/* tre-444 %txt /tests/golden/types-partial-explicit-capital/tree/txt
1513−/* typ-444 %txt /tests/golden/types-partial-explicit-capital/types/txt
1514−/* src-445 %jibb /tests/golden/types-partial-forward/source/jibb
1515−/* tok-445 %txt /tests/golden/types-partial-forward/tokens/txt
1516−/* tre-445 %txt /tests/golden/types-partial-forward/tree/txt
1517−/* typ-445 %txt /tests/golden/types-partial-forward/types/txt
1518−/* src-446 %jibb /tests/golden/types-partial-generalization/source/jibb
1519−/* tok-446 %txt /tests/golden/types-partial-generalization/tokens/txt
1520−/* tre-446 %txt /tests/golden/types-partial-generalization/tree/txt
1521−/* typ-446 %txt /tests/golden/types-partial-generalization/types/txt
1522−/* src-447 %jibb /tests/golden/types-partial-identity/source/jibb
1523−/* tok-447 %txt /tests/golden/types-partial-identity/tokens/txt
1524−/* tre-447 %txt /tests/golden/types-partial-identity/tree/txt
1525−/* typ-447 %txt /tests/golden/types-partial-identity/types/txt
1526−/* src-448 %jibb /tests/golden/types-partial-independent-atoms/source/jibb
1527−/* tok-448 %txt /tests/golden/types-partial-independent-atoms/tokens/txt
1528−/* tre-448 %txt /tests/golden/types-partial-independent-atoms/tree/txt
1529−/* typ-448 %txt /tests/golden/types-partial-independent-atoms/types/txt
1530−/* src-449 %jibb /tests/golden/types-partial-local-molds/source/jibb
1531−/* tok-449 %txt /tests/golden/types-partial-local-molds/tokens/txt
1532−/* tre-449 %txt /tests/golden/types-partial-local-molds/tree/txt
1533−/* typ-449 %txt /tests/golden/types-partial-local-molds/types/txt
1534−/* src-450 %jibb /tests/golden/types-partial-locals/source/jibb
1535−/* tok-450 %txt /tests/golden/types-partial-locals/tokens/txt
1536−/* tre-450 %txt /tests/golden/types-partial-locals/tree/txt
1537−/* typ-450 %txt /tests/golden/types-partial-locals/types/txt
1538−/* src-451 %jibb /tests/golden/types-partial-many-atom-constraints/source/jibb
1539−/* tok-451 %txt /tests/golden/types-partial-many-atom-constraints/tokens/txt
1540−/* tre-451 %txt /tests/golden/types-partial-many-atom-constraints/tree/txt
1541−/* typ-451 %txt /tests/golden/types-partial-many-atom-constraints/types/txt
1542−/* src-452 %jibb /tests/golden/types-partial-mold-bare-aura/source/jibb
1543−/* tok-452 %txt /tests/golden/types-partial-mold-bare-aura/tokens/txt
1544−/* tre-452 %txt /tests/golden/types-partial-mold-bare-aura/tree/txt
1545−/* typ-452 %txt /tests/golden/types-partial-mold-bare-aura/types/txt
1546−/* src-453 %jibb /tests/golden/types-partial-mold-composite/source/jibb
1547−/* tok-453 %txt /tests/golden/types-partial-mold-composite/tokens/txt
1548−/* tre-453 %txt /tests/golden/types-partial-mold-composite/tree/txt
1549−/* typ-453 %txt /tests/golden/types-partial-mold-composite/types/txt
1550−/* src-454 %jibb /tests/golden/types-partial-mold-forward/source/jibb
1551−/* tok-454 %txt /tests/golden/types-partial-mold-forward/tokens/txt
1552−/* tre-454 %txt /tests/golden/types-partial-mold-forward/tree/txt
1553−/* typ-454 %txt /tests/golden/types-partial-mold-forward/types/txt
1554−/* src-455 %jibb /tests/golden/types-partial-mold-recursive/source/jibb
1555−/* tok-455 %txt /tests/golden/types-partial-mold-recursive/tokens/txt
1556−/* tre-455 %txt /tests/golden/types-partial-mold-recursive/tree/txt
1557−/* typ-455 %txt /tests/golden/types-partial-mold-recursive/types/txt
1558−/* src-456 %jibb /tests/golden/types-partial-occurs/source/jibb
1559−/* tok-456 %txt /tests/golden/types-partial-occurs/tokens/txt
1560−/* tre-456 %txt /tests/golden/types-partial-occurs/tree/txt
1561−/* typ-456 %txt /tests/golden/types-partial-occurs/types/txt
1562−/* src-457 %jibb /tests/golden/types-partial-projection/source/jibb
1563−/* tok-457 %txt /tests/golden/types-partial-projection/tokens/txt
1564−/* tre-457 %txt /tests/golden/types-partial-projection/tree/txt
1565−/* typ-457 %txt /tests/golden/types-partial-projection/types/txt
1566−/* src-458 %jibb /tests/golden/types-partial-shadow-global/source/jibb
1567−/* tok-458 %txt /tests/golden/types-partial-shadow-global/tokens/txt
1568−/* tre-458 %txt /tests/golden/types-partial-shadow-global/tree/txt
1569−/* typ-458 %txt /tests/golden/types-partial-shadow-global/types/txt
1570−/* src-459 %jibb /tests/golden/types-partial-shared-tvar/source/jibb
1571−/* tok-459 %txt /tests/golden/types-partial-shared-tvar/tokens/txt
1572−/* tre-459 %txt /tests/golden/types-partial-shared-tvar/tree/txt
1573−/* typ-459 %txt /tests/golden/types-partial-shared-tvar/types/txt
1574−/* src-460 %jibb /tests/golden/types-partial-union-cases/source/jibb
1575−/* tok-460 %txt /tests/golden/types-partial-union-cases/tokens/txt
1576−/* tre-460 %txt /tests/golden/types-partial-union-cases/tree/txt
1577−/* typ-460 %txt /tests/golden/types-partial-union-cases/types/txt
1578−/* src-461 %jibb /tests/golden/types-partial-union-edges/source/jibb
1579−/* tok-461 %txt /tests/golden/types-partial-union-edges/tokens/txt
1580−/* tre-461 %txt /tests/golden/types-partial-union-edges/tree/txt
1581−/* typ-461 %txt /tests/golden/types-partial-union-edges/types/txt
1582−/* src-462 %jibb /tests/golden/types-partial-unresolved-tag/source/jibb
1583−/* tok-462 %txt /tests/golden/types-partial-unresolved-tag/tokens/txt
1584−/* tre-462 %txt /tests/golden/types-partial-unresolved-tag/tree/txt
1585−/* typ-462 %txt /tests/golden/types-partial-unresolved-tag/types/txt
1586−/* src-463 %jibb /tests/golden/types-record-bound-variable/source/jibb
1587−/* tok-463 %txt /tests/golden/types-record-bound-variable/tokens/txt
1588−/* tre-463 %txt /tests/golden/types-record-bound-variable/tree/txt
1589−/* typ-463 %txt /tests/golden/types-record-bound-variable/types/txt
1590−/* src-464 %jibb /tests/golden/types-record-faces/source/jibb
1591−/* tok-464 %txt /tests/golden/types-record-faces/tokens/txt
1592−/* tre-464 %txt /tests/golden/types-record-faces/tree/txt
1593−/* typ-464 %txt /tests/golden/types-record-faces/types/txt
1594−/* src-465 %jibb /tests/golden/types-record-import/source/jibb
1595−/* tok-465 %txt /tests/golden/types-record-import/tokens/txt
1596−/* tre-465 %txt /tests/golden/types-record-import/tree/txt
1597−/* mod-465-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
1598−/* typ-465 %txt /tests/golden/types-record-import/types/txt
1599−/* mtre-465 %txt /tests/golden/types-record-import/module-trees/txt
1600−/* src-466 %jibb /tests/golden/types-record-local-scheme/source/jibb
1601−/* tok-466 %txt /tests/golden/types-record-local-scheme/tokens/txt
1602−/* tre-466 %txt /tests/golden/types-record-local-scheme/tree/txt
1603−/* typ-466 %txt /tests/golden/types-record-local-scheme/types/txt
1604−/* src-467 %jibb /tests/golden/types-record-nested/source/jibb
1605−/* tok-467 %txt /tests/golden/types-record-nested/tokens/txt
1606−/* tre-467 %txt /tests/golden/types-record-nested/tree/txt
1607−/* typ-467 %txt /tests/golden/types-record-nested/types/txt
1608−/* src-468 %jibb /tests/golden/types-record-to-tuple/source/jibb
1609−/* tok-468 %txt /tests/golden/types-record-to-tuple/tokens/txt
1610−/* tre-468 %txt /tests/golden/types-record-to-tuple/tree/txt
1611−/* typ-468 %txt /tests/golden/types-record-to-tuple/types/txt
1612−/* src-469 %jibb /tests/golden/types-union-alias/source/jibb
1613−/* tok-469 %txt /tests/golden/types-union-alias/tokens/txt
1614−/* tre-469 %txt /tests/golden/types-union-alias/tree/txt
1615−/* typ-469 %txt /tests/golden/types-union-alias/types/txt
1616−/* src-470 %jibb /tests/golden/types-union-branch-context/source/jibb
1617−/* tok-470 %txt /tests/golden/types-union-branch-context/tokens/txt
1618−/* tre-470 %txt /tests/golden/types-union-branch-context/tree/txt
1619−/* typ-470 %txt /tests/golden/types-union-branch-context/types/txt
1620−/* src-471 %jibb /tests/golden/types-union-branch-pending/source/jibb
1621−/* tok-471 %txt /tests/golden/types-union-branch-pending/tokens/txt
1622−/* tre-471 %txt /tests/golden/types-union-branch-pending/tree/txt
1623−/* typ-471 %txt /tests/golden/types-union-branch-pending/types/txt
1624−/* src-472 %jibb /tests/golden/types-union-constructor-shape/source/jibb
1625−/* tok-472 %txt /tests/golden/types-union-constructor-shape/tokens/txt
1626−/* tre-472 %txt /tests/golden/types-union-constructor-shape/tree/txt
1627−/* typ-472 %txt /tests/golden/types-union-constructor-shape/types/txt
1628−/* src-473 %jibb /tests/golden/types-union-context-flow/source/jibb
1629−/* tok-473 %txt /tests/golden/types-union-context-flow/tokens/txt
1630−/* tre-473 %txt /tests/golden/types-union-context-flow/tree/txt
1631−/* typ-473 %txt /tests/golden/types-union-context-flow/types/txt
1632−/* src-474 %jibb /tests/golden/types-union-import/source/jibb
1633−/* tok-474 %txt /tests/golden/types-union-import/tokens/txt
1634−/* tre-474 %txt /tests/golden/types-union-import/tree/txt
1635−/* mod-474-1 %jibb /tests/golden/types-union-import/modules/ui/lib/jibb
1636−/* typ-474 %txt /tests/golden/types-union-import/types/txt
1637−/* mtre-474 %txt /tests/golden/types-union-import/module-trees/txt
1638−/* src-475 %jibb /tests/golden/types-union-local-pending/source/jibb
1639−/* tok-475 %txt /tests/golden/types-union-local-pending/tokens/txt
1640−/* tre-475 %txt /tests/golden/types-union-local-pending/tree/txt
1641−/* typ-475 %txt /tests/golden/types-union-local-pending/types/txt
1642−/* src-476 %jibb /tests/golden/types-union-overlap/source/jibb
1643−/* tok-476 %txt /tests/golden/types-union-overlap/tokens/txt
1644−/* tre-476 %txt /tests/golden/types-union-overlap/tree/txt
1645−/* typ-476 %txt /tests/golden/types-union-overlap/types/txt
1646−/* src-477 %jibb /tests/golden/types-union-overlap-nested/source/jibb
1647−/* tok-477 %txt /tests/golden/types-union-overlap-nested/tokens/txt
1648−/* tre-477 %txt /tests/golden/types-union-overlap-nested/tree/txt
1649−/* typ-477 %txt /tests/golden/types-union-overlap-nested/types/txt
1650−/* src-478 %jibb /tests/golden/types-union-phantom-generic/source/jibb
1651−/* tok-478 %txt /tests/golden/types-union-phantom-generic/tokens/txt
1652−/* tre-478 %txt /tests/golden/types-union-phantom-generic/tree/txt
1653−/* typ-478 %txt /tests/golden/types-union-phantom-generic/types/txt
1654−/* src-479 %jibb /tests/golden/types-union-print-cross-namespace/source/jibb
1655−/* tok-479 %txt /tests/golden/types-union-print-cross-namespace/tokens/txt
1656−/* tre-479 %txt /tests/golden/types-union-print-cross-namespace/tree/txt
1657−/* mod-479-1 %jibb /tests/golden/types-union-print-cross-namespace/modules/ui/lib/jibb
1658−/* typ-479 %txt /tests/golden/types-union-print-cross-namespace/types/txt
1659−/* mtre-479 %txt /tests/golden/types-union-print-cross-namespace/module-trees/txt
1660−/* src-480 %jibb /tests/golden/types-union-print-distinct/source/jibb
1661−/* tok-480 %txt /tests/golden/types-union-print-distinct/tokens/txt
1662−/* tre-480 %txt /tests/golden/types-union-print-distinct/tree/txt
1663−/* mod-480-1 %jibb /tests/golden/types-union-print-distinct/modules/ui/left/jibb
1664−/* mod-480-2 %jibb /tests/golden/types-union-print-distinct/modules/ui/right/jibb
1665−/* mod-480-3 %jibb /tests/golden/types-union-print-distinct/modules/ui/twin/jibb
1666−/* typ-480 %txt /tests/golden/types-union-print-distinct/types/txt
1667−/* mtre-480 %txt /tests/golden/types-union-print-distinct/module-trees/txt
1668−/* src-481 %jibb /tests/golden/types-union-print-escape/source/jibb
1669−/* tok-481 %txt /tests/golden/types-union-print-escape/tokens/txt
1670−/* tre-481 %txt /tests/golden/types-union-print-escape/tree/txt
1671−/* typ-481 %txt /tests/golden/types-union-print-escape/types/txt
1672−/* src-482 %jibb /tests/golden/types-union-print-local/source/jibb
1673−/* tok-482 %txt /tests/golden/types-union-print-local/tokens/txt
1674−/* tre-482 %txt /tests/golden/types-union-print-local/tree/txt
1675−/* typ-482 %txt /tests/golden/types-union-print-local/types/txt
1676−/* src-483 %jibb /tests/golden/types-union-print-nested/source/jibb
1677−/* tok-483 %txt /tests/golden/types-union-print-nested/tokens/txt
1678−/* tre-483 %txt /tests/golden/types-union-print-nested/tree/txt
1679−/* typ-483 %txt /tests/golden/types-union-print-nested/types/txt
1680−/* src-484 %jibb /tests/golden/types-union-print-same-origin/source/jibb
1681−/* tok-484 %txt /tests/golden/types-union-print-same-origin/tokens/txt
1682−/* tre-484 %txt /tests/golden/types-union-print-same-origin/tree/txt
1683−/* mod-484-1 %jibb /tests/golden/types-union-print-same-origin/modules/ui/shared/jibb
1684−/* typ-484 %txt /tests/golden/types-union-print-same-origin/types/txt
1685−/* mtre-484 %txt /tests/golden/types-union-print-same-origin/module-trees/txt
1686−/* src-485 %jibb /tests/golden/types-union-print-transitive/source/jibb
1687−/* tok-485 %txt /tests/golden/types-union-print-transitive/tokens/txt
1688−/* tre-485 %txt /tests/golden/types-union-print-transitive/tree/txt
1689−/* mod-485-1 %jibb /tests/golden/types-union-print-transitive/modules/ui/mid/jibb
1690−/* mod-485-2 %jibb /tests/golden/types-union-print-transitive/modules/ui/base/jibb
1691−/* typ-485 %txt /tests/golden/types-union-print-transitive/types/txt
1692−/* mtre-485 %txt /tests/golden/types-union-print-transitive/module-trees/txt
1693−/* src-486 %jibb /tests/golden/types-union-singleton/source/jibb
1694−/* tok-486 %txt /tests/golden/types-union-singleton/tokens/txt
1695−/* tre-486 %txt /tests/golden/types-union-singleton/tree/txt
1696−/* typ-486 %txt /tests/golden/types-union-singleton/types/txt
1697−/* src-487 %jibb /tests/golden/types-union-tag-atoms/source/jibb
1698−/* tok-487 %txt /tests/golden/types-union-tag-atoms/tokens/txt
1699−/* tre-487 %txt /tests/golden/types-union-tag-atoms/tree/txt
1700−/* typ-487 %txt /tests/golden/types-union-tag-atoms/types/txt
1701−/* src-488 %jibb /tests/golden/types-union-tags/source/jibb
1702−/* tok-488 %txt /tests/golden/types-union-tags/tokens/txt
1703−/* tre-488 %txt /tests/golden/types-union-tags/tree/txt
1704−/* typ-488 %txt /tests/golden/types-union-tags/types/txt
1705−/* src-489 %jibb /tests/golden/types-union-unresolved/source/jibb
1706−/* tok-489 %txt /tests/golden/types-union-unresolved/tokens/txt
1707−/* tre-489 %txt /tests/golden/types-union-unresolved/tree/txt
1708−/* typ-489 %txt /tests/golden/types-union-unresolved/types/txt
1709−/* src-490 %jibb /tests/golden/types-union-unresolved-flow/source/jibb
1710−/* tok-490 %txt /tests/golden/types-union-unresolved-flow/tokens/txt
1711−/* tre-490 %txt /tests/golden/types-union-unresolved-flow/tree/txt
1712−/* typ-490 %txt /tests/golden/types-union-unresolved-flow/types/txt
1462+/* src-432 %jibb /tests/golden/types-null-context/source/jibb
1463+/* tok-432 %txt /tests/golden/types-null-context/tokens/txt
1464+/* tre-432 %txt /tests/golden/types-null-context/tree/txt
1465+/* typ-432 %txt /tests/golden/types-null-context/types/txt
1466+/* src-433 %jibb /tests/golden/types-null-overlap/source/jibb
1467+/* tok-433 %txt /tests/golden/types-null-overlap/tokens/txt
1468+/* tre-433 %txt /tests/golden/types-null-overlap/tree/txt
1469+/* typ-433 %txt /tests/golden/types-null-overlap/types/txt
1470+/* src-434 %jibb /tests/golden/types-null-unresolved/source/jibb
1471+/* tok-434 %txt /tests/golden/types-null-unresolved/tokens/txt
1472+/* tre-434 %txt /tests/golden/types-null-unresolved/tree/txt
1473+/* typ-434 %txt /tests/golden/types-null-unresolved/types/txt
1474+/* src-435 %jibb /tests/golden/types-partial-apply/source/jibb
1475+/* tok-435 %txt /tests/golden/types-partial-apply/tokens/txt
1476+/* tre-435 %txt /tests/golden/types-partial-apply/tree/txt
1477+/* typ-435 %txt /tests/golden/types-partial-apply/types/txt
1478+/* src-436 %jibb /tests/golden/types-partial-atom-alias/source/jibb
1479+/* tok-436 %txt /tests/golden/types-partial-atom-alias/tokens/txt
1480+/* tre-436 %txt /tests/golden/types-partial-atom-alias/tree/txt
1481+/* typ-436 %txt /tests/golden/types-partial-atom-alias/types/txt
1482+/* src-437 %jibb /tests/golden/types-partial-atom-constraint/source/jibb
1483+/* tok-437 %txt /tests/golden/types-partial-atom-constraint/tokens/txt
1484+/* tre-437 %txt /tests/golden/types-partial-atom-constraint/tree/txt
1485+/* typ-437 %txt /tests/golden/types-partial-atom-constraint/types/txt
1486+/* src-438 %jibb /tests/golden/types-partial-atom-widening/source/jibb
1487+/* tok-438 %txt /tests/golden/types-partial-atom-widening/tokens/txt
1488+/* tre-438 %txt /tests/golden/types-partial-atom-widening/tree/txt
1489+/* typ-438 %txt /tests/golden/types-partial-atom-widening/types/txt
1490+/* src-439 %jibb /tests/golden/types-partial-aura/source/jibb
1491+/* tok-439 %txt /tests/golden/types-partial-aura/tokens/txt
1492+/* tre-439 %txt /tests/golden/types-partial-aura/tree/txt
1493+/* typ-439 %txt /tests/golden/types-partial-aura/types/txt
1494+/* src-440 %jibb /tests/golden/types-partial-aura-family/source/jibb
1495+/* tok-440 %txt /tests/golden/types-partial-aura-family/tokens/txt
1496+/* tre-440 %txt /tests/golden/types-partial-aura-family/tree/txt
1497+/* typ-440 %txt /tests/golden/types-partial-aura-family/types/txt
1498+/* src-441 %jibb /tests/golden/types-partial-aura-generalization/source/jibb
1499+/* tok-441 %txt /tests/golden/types-partial-aura-generalization/tokens/txt
1500+/* tre-441 %txt /tests/golden/types-partial-aura-generalization/tree/txt
1501+/* typ-441 %txt /tests/golden/types-partial-aura-generalization/types/txt
1502+/* src-442 %jibb /tests/golden/types-partial-bare-atom/source/jibb
1503+/* tok-442 %txt /tests/golden/types-partial-bare-atom/tokens/txt
1504+/* tre-442 %txt /tests/golden/types-partial-bare-atom/tree/txt
1505+/* typ-442 %txt /tests/golden/types-partial-bare-atom/types/txt
1506+/* src-443 %jibb /tests/golden/types-partial-branch-widening/source/jibb
1507+/* tok-443 %txt /tests/golden/types-partial-branch-widening/tokens/txt
1508+/* tre-443 %txt /tests/golden/types-partial-branch-widening/tree/txt
1509+/* typ-443 %txt /tests/golden/types-partial-branch-widening/types/txt
1510+/* src-444 %jibb /tests/golden/types-partial-conflicting-sites/source/jibb
1511+/* tok-444 %txt /tests/golden/types-partial-conflicting-sites/tokens/txt
1512+/* tre-444 %txt /tests/golden/types-partial-conflicting-sites/tree/txt
1513+/* typ-444 %txt /tests/golden/types-partial-conflicting-sites/types/txt
1514+/* src-445 %jibb /tests/golden/types-partial-decimal-default/source/jibb
1515+/* tok-445 %txt /tests/golden/types-partial-decimal-default/tokens/txt
1516+/* tre-445 %txt /tests/golden/types-partial-decimal-default/tree/txt
1517+/* typ-445 %txt /tests/golden/types-partial-decimal-default/types/txt
1518+/* src-446 %jibb /tests/golden/types-partial-dependency-chain/source/jibb
1519+/* tok-446 %txt /tests/golden/types-partial-dependency-chain/tokens/txt
1520+/* tre-446 %txt /tests/golden/types-partial-dependency-chain/tree/txt
1521+/* typ-446 %txt /tests/golden/types-partial-dependency-chain/types/txt
1522+/* src-447 %jibb /tests/golden/types-partial-explicit-capital/source/jibb
1523+/* tok-447 %txt /tests/golden/types-partial-explicit-capital/tokens/txt
1524+/* tre-447 %txt /tests/golden/types-partial-explicit-capital/tree/txt
1525+/* typ-447 %txt /tests/golden/types-partial-explicit-capital/types/txt
1526+/* src-448 %jibb /tests/golden/types-partial-forward/source/jibb
1527+/* tok-448 %txt /tests/golden/types-partial-forward/tokens/txt
1528+/* tre-448 %txt /tests/golden/types-partial-forward/tree/txt
1529+/* typ-448 %txt /tests/golden/types-partial-forward/types/txt
1530+/* src-449 %jibb /tests/golden/types-partial-generalization/source/jibb
1531+/* tok-449 %txt /tests/golden/types-partial-generalization/tokens/txt
1532+/* tre-449 %txt /tests/golden/types-partial-generalization/tree/txt
1533+/* typ-449 %txt /tests/golden/types-partial-generalization/types/txt
1534+/* src-450 %jibb /tests/golden/types-partial-identity/source/jibb
1535+/* tok-450 %txt /tests/golden/types-partial-identity/tokens/txt
1536+/* tre-450 %txt /tests/golden/types-partial-identity/tree/txt
1537+/* typ-450 %txt /tests/golden/types-partial-identity/types/txt
1538+/* src-451 %jibb /tests/golden/types-partial-independent-atoms/source/jibb
1539+/* tok-451 %txt /tests/golden/types-partial-independent-atoms/tokens/txt
1540+/* tre-451 %txt /tests/golden/types-partial-independent-atoms/tree/txt
1541+/* typ-451 %txt /tests/golden/types-partial-independent-atoms/types/txt
1542+/* src-452 %jibb /tests/golden/types-partial-local-molds/source/jibb
1543+/* tok-452 %txt /tests/golden/types-partial-local-molds/tokens/txt
1544+/* tre-452 %txt /tests/golden/types-partial-local-molds/tree/txt
1545+/* typ-452 %txt /tests/golden/types-partial-local-molds/types/txt
1546+/* src-453 %jibb /tests/golden/types-partial-locals/source/jibb
1547+/* tok-453 %txt /tests/golden/types-partial-locals/tokens/txt
1548+/* tre-453 %txt /tests/golden/types-partial-locals/tree/txt
1549+/* typ-453 %txt /tests/golden/types-partial-locals/types/txt
1550+/* src-454 %jibb /tests/golden/types-partial-many-atom-constraints/source/jibb
1551+/* tok-454 %txt /tests/golden/types-partial-many-atom-constraints/tokens/txt
1552+/* tre-454 %txt /tests/golden/types-partial-many-atom-constraints/tree/txt
1553+/* typ-454 %txt /tests/golden/types-partial-many-atom-constraints/types/txt
1554+/* src-455 %jibb /tests/golden/types-partial-mold-bare-aura/source/jibb
1555+/* tok-455 %txt /tests/golden/types-partial-mold-bare-aura/tokens/txt
1556+/* tre-455 %txt /tests/golden/types-partial-mold-bare-aura/tree/txt
1557+/* typ-455 %txt /tests/golden/types-partial-mold-bare-aura/types/txt
1558+/* src-456 %jibb /tests/golden/types-partial-mold-composite/source/jibb
1559+/* tok-456 %txt /tests/golden/types-partial-mold-composite/tokens/txt
1560+/* tre-456 %txt /tests/golden/types-partial-mold-composite/tree/txt
1561+/* typ-456 %txt /tests/golden/types-partial-mold-composite/types/txt
1562+/* src-457 %jibb /tests/golden/types-partial-mold-forward/source/jibb
1563+/* tok-457 %txt /tests/golden/types-partial-mold-forward/tokens/txt
1564+/* tre-457 %txt /tests/golden/types-partial-mold-forward/tree/txt
1565+/* typ-457 %txt /tests/golden/types-partial-mold-forward/types/txt
1566+/* src-458 %jibb /tests/golden/types-partial-mold-recursive/source/jibb
1567+/* tok-458 %txt /tests/golden/types-partial-mold-recursive/tokens/txt
1568+/* tre-458 %txt /tests/golden/types-partial-mold-recursive/tree/txt
1569+/* typ-458 %txt /tests/golden/types-partial-mold-recursive/types/txt
1570+/* src-459 %jibb /tests/golden/types-partial-occurs/source/jibb
1571+/* tok-459 %txt /tests/golden/types-partial-occurs/tokens/txt
1572+/* tre-459 %txt /tests/golden/types-partial-occurs/tree/txt
1573+/* typ-459 %txt /tests/golden/types-partial-occurs/types/txt
1574+/* src-460 %jibb /tests/golden/types-partial-projection/source/jibb
1575+/* tok-460 %txt /tests/golden/types-partial-projection/tokens/txt
1576+/* tre-460 %txt /tests/golden/types-partial-projection/tree/txt
1577+/* typ-460 %txt /tests/golden/types-partial-projection/types/txt
1578+/* src-461 %jibb /tests/golden/types-partial-shadow-global/source/jibb
1579+/* tok-461 %txt /tests/golden/types-partial-shadow-global/tokens/txt
1580+/* tre-461 %txt /tests/golden/types-partial-shadow-global/tree/txt
1581+/* typ-461 %txt /tests/golden/types-partial-shadow-global/types/txt
1582+/* src-462 %jibb /tests/golden/types-partial-shared-tvar/source/jibb
1583+/* tok-462 %txt /tests/golden/types-partial-shared-tvar/tokens/txt
1584+/* tre-462 %txt /tests/golden/types-partial-shared-tvar/tree/txt
1585+/* typ-462 %txt /tests/golden/types-partial-shared-tvar/types/txt
1586+/* src-463 %jibb /tests/golden/types-partial-union-cases/source/jibb
1587+/* tok-463 %txt /tests/golden/types-partial-union-cases/tokens/txt
1588+/* tre-463 %txt /tests/golden/types-partial-union-cases/tree/txt
1589+/* typ-463 %txt /tests/golden/types-partial-union-cases/types/txt
1590+/* src-464 %jibb /tests/golden/types-partial-union-edges/source/jibb
1591+/* tok-464 %txt /tests/golden/types-partial-union-edges/tokens/txt
1592+/* tre-464 %txt /tests/golden/types-partial-union-edges/tree/txt
1593+/* typ-464 %txt /tests/golden/types-partial-union-edges/types/txt
1594+/* src-465 %jibb /tests/golden/types-partial-unresolved-tag/source/jibb
1595+/* tok-465 %txt /tests/golden/types-partial-unresolved-tag/tokens/txt
1596+/* tre-465 %txt /tests/golden/types-partial-unresolved-tag/tree/txt
1597+/* typ-465 %txt /tests/golden/types-partial-unresolved-tag/types/txt
1598+/* src-466 %jibb /tests/golden/types-record-bound-variable/source/jibb
1599+/* tok-466 %txt /tests/golden/types-record-bound-variable/tokens/txt
1600+/* tre-466 %txt /tests/golden/types-record-bound-variable/tree/txt
1601+/* typ-466 %txt /tests/golden/types-record-bound-variable/types/txt
1602+/* src-467 %jibb /tests/golden/types-record-faces/source/jibb
1603+/* tok-467 %txt /tests/golden/types-record-faces/tokens/txt
1604+/* tre-467 %txt /tests/golden/types-record-faces/tree/txt
1605+/* typ-467 %txt /tests/golden/types-record-faces/types/txt
1606+/* src-468 %jibb /tests/golden/types-record-import/source/jibb
1607+/* tok-468 %txt /tests/golden/types-record-import/tokens/txt
1608+/* tre-468 %txt /tests/golden/types-record-import/tree/txt
1609+/* mod-468-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
1610+/* typ-468 %txt /tests/golden/types-record-import/types/txt
1611+/* mtre-468 %txt /tests/golden/types-record-import/module-trees/txt
1612+/* src-469 %jibb /tests/golden/types-record-local-scheme/source/jibb
1613+/* tok-469 %txt /tests/golden/types-record-local-scheme/tokens/txt
1614+/* tre-469 %txt /tests/golden/types-record-local-scheme/tree/txt
1615+/* typ-469 %txt /tests/golden/types-record-local-scheme/types/txt
1616+/* src-470 %jibb /tests/golden/types-record-nested/source/jibb
1617+/* tok-470 %txt /tests/golden/types-record-nested/tokens/txt
1618+/* tre-470 %txt /tests/golden/types-record-nested/tree/txt
1619+/* typ-470 %txt /tests/golden/types-record-nested/types/txt
1620+/* src-471 %jibb /tests/golden/types-record-to-tuple/source/jibb
1621+/* tok-471 %txt /tests/golden/types-record-to-tuple/tokens/txt
1622+/* tre-471 %txt /tests/golden/types-record-to-tuple/tree/txt
1623+/* typ-471 %txt /tests/golden/types-record-to-tuple/types/txt
1624+/* src-472 %jibb /tests/golden/types-union-alias/source/jibb
1625+/* tok-472 %txt /tests/golden/types-union-alias/tokens/txt
1626+/* tre-472 %txt /tests/golden/types-union-alias/tree/txt
1627+/* typ-472 %txt /tests/golden/types-union-alias/types/txt
1628+/* src-473 %jibb /tests/golden/types-union-branch-context/source/jibb
1629+/* tok-473 %txt /tests/golden/types-union-branch-context/tokens/txt
1630+/* tre-473 %txt /tests/golden/types-union-branch-context/tree/txt
1631+/* typ-473 %txt /tests/golden/types-union-branch-context/types/txt
1632+/* src-474 %jibb /tests/golden/types-union-branch-pending/source/jibb
1633+/* tok-474 %txt /tests/golden/types-union-branch-pending/tokens/txt
1634+/* tre-474 %txt /tests/golden/types-union-branch-pending/tree/txt
1635+/* typ-474 %txt /tests/golden/types-union-branch-pending/types/txt
1636+/* src-475 %jibb /tests/golden/types-union-constructor-shape/source/jibb
1637+/* tok-475 %txt /tests/golden/types-union-constructor-shape/tokens/txt
1638+/* tre-475 %txt /tests/golden/types-union-constructor-shape/tree/txt
1639+/* typ-475 %txt /tests/golden/types-union-constructor-shape/types/txt
1640+/* src-476 %jibb /tests/golden/types-union-context-flow/source/jibb
1641+/* tok-476 %txt /tests/golden/types-union-context-flow/tokens/txt
1642+/* tre-476 %txt /tests/golden/types-union-context-flow/tree/txt
1643+/* typ-476 %txt /tests/golden/types-union-context-flow/types/txt
1644+/* src-477 %jibb /tests/golden/types-union-import/source/jibb
1645+/* tok-477 %txt /tests/golden/types-union-import/tokens/txt
1646+/* tre-477 %txt /tests/golden/types-union-import/tree/txt
1647+/* mod-477-1 %jibb /tests/golden/types-union-import/modules/ui/lib/jibb
1648+/* typ-477 %txt /tests/golden/types-union-import/types/txt
1649+/* mtre-477 %txt /tests/golden/types-union-import/module-trees/txt
1650+/* src-478 %jibb /tests/golden/types-union-local-pending/source/jibb
1651+/* tok-478 %txt /tests/golden/types-union-local-pending/tokens/txt
1652+/* tre-478 %txt /tests/golden/types-union-local-pending/tree/txt
1653+/* typ-478 %txt /tests/golden/types-union-local-pending/types/txt
1654+/* src-479 %jibb /tests/golden/types-union-overlap/source/jibb
1655+/* tok-479 %txt /tests/golden/types-union-overlap/tokens/txt
1656+/* tre-479 %txt /tests/golden/types-union-overlap/tree/txt
1657+/* typ-479 %txt /tests/golden/types-union-overlap/types/txt
1658+/* src-480 %jibb /tests/golden/types-union-overlap-nested/source/jibb
1659+/* tok-480 %txt /tests/golden/types-union-overlap-nested/tokens/txt
1660+/* tre-480 %txt /tests/golden/types-union-overlap-nested/tree/txt
1661+/* typ-480 %txt /tests/golden/types-union-overlap-nested/types/txt
1662+/* src-481 %jibb /tests/golden/types-union-phantom-generic/source/jibb
1663+/* tok-481 %txt /tests/golden/types-union-phantom-generic/tokens/txt
1664+/* tre-481 %txt /tests/golden/types-union-phantom-generic/tree/txt
1665+/* typ-481 %txt /tests/golden/types-union-phantom-generic/types/txt
1666+/* src-482 %jibb /tests/golden/types-union-print-cross-namespace/source/jibb
1667+/* tok-482 %txt /tests/golden/types-union-print-cross-namespace/tokens/txt
1668+/* tre-482 %txt /tests/golden/types-union-print-cross-namespace/tree/txt
1669+/* mod-482-1 %jibb /tests/golden/types-union-print-cross-namespace/modules/ui/lib/jibb
1670+/* typ-482 %txt /tests/golden/types-union-print-cross-namespace/types/txt
1671+/* mtre-482 %txt /tests/golden/types-union-print-cross-namespace/module-trees/txt
1672+/* src-483 %jibb /tests/golden/types-union-print-distinct/source/jibb
1673+/* tok-483 %txt /tests/golden/types-union-print-distinct/tokens/txt
1674+/* tre-483 %txt /tests/golden/types-union-print-distinct/tree/txt
1675+/* mod-483-1 %jibb /tests/golden/types-union-print-distinct/modules/ui/left/jibb
1676+/* mod-483-2 %jibb /tests/golden/types-union-print-distinct/modules/ui/right/jibb
1677+/* mod-483-3 %jibb /tests/golden/types-union-print-distinct/modules/ui/twin/jibb
1678+/* typ-483 %txt /tests/golden/types-union-print-distinct/types/txt
1679+/* mtre-483 %txt /tests/golden/types-union-print-distinct/module-trees/txt
1680+/* src-484 %jibb /tests/golden/types-union-print-escape/source/jibb
1681+/* tok-484 %txt /tests/golden/types-union-print-escape/tokens/txt
1682+/* tre-484 %txt /tests/golden/types-union-print-escape/tree/txt
1683+/* typ-484 %txt /tests/golden/types-union-print-escape/types/txt
1684+/* src-485 %jibb /tests/golden/types-union-print-local/source/jibb
1685+/* tok-485 %txt /tests/golden/types-union-print-local/tokens/txt
1686+/* tre-485 %txt /tests/golden/types-union-print-local/tree/txt
1687+/* typ-485 %txt /tests/golden/types-union-print-local/types/txt
1688+/* src-486 %jibb /tests/golden/types-union-print-nested/source/jibb
1689+/* tok-486 %txt /tests/golden/types-union-print-nested/tokens/txt
1690+/* tre-486 %txt /tests/golden/types-union-print-nested/tree/txt
1691+/* typ-486 %txt /tests/golden/types-union-print-nested/types/txt
1692+/* src-487 %jibb /tests/golden/types-union-print-same-origin/source/jibb
1693+/* tok-487 %txt /tests/golden/types-union-print-same-origin/tokens/txt
1694+/* tre-487 %txt /tests/golden/types-union-print-same-origin/tree/txt
1695+/* mod-487-1 %jibb /tests/golden/types-union-print-same-origin/modules/ui/shared/jibb
1696+/* typ-487 %txt /tests/golden/types-union-print-same-origin/types/txt
1697+/* mtre-487 %txt /tests/golden/types-union-print-same-origin/module-trees/txt
1698+/* src-488 %jibb /tests/golden/types-union-print-transitive/source/jibb
1699+/* tok-488 %txt /tests/golden/types-union-print-transitive/tokens/txt
1700+/* tre-488 %txt /tests/golden/types-union-print-transitive/tree/txt
1701+/* mod-488-1 %jibb /tests/golden/types-union-print-transitive/modules/ui/mid/jibb
1702+/* mod-488-2 %jibb /tests/golden/types-union-print-transitive/modules/ui/base/jibb
1703+/* typ-488 %txt /tests/golden/types-union-print-transitive/types/txt
1704+/* mtre-488 %txt /tests/golden/types-union-print-transitive/module-trees/txt
1705+/* src-489 %jibb /tests/golden/types-union-singleton/source/jibb
1706+/* tok-489 %txt /tests/golden/types-union-singleton/tokens/txt
1707+/* tre-489 %txt /tests/golden/types-union-singleton/tree/txt
1708+/* typ-489 %txt /tests/golden/types-union-singleton/types/txt
1709+/* src-490 %jibb /tests/golden/types-union-tag-atoms/source/jibb
1710+/* tok-490 %txt /tests/golden/types-union-tag-atoms/tokens/txt
1711+/* tre-490 %txt /tests/golden/types-union-tag-atoms/tree/txt
1712+/* typ-490 %txt /tests/golden/types-union-tag-atoms/types/txt
1713+/* src-491 %jibb /tests/golden/types-union-tags/source/jibb
1714+/* tok-491 %txt /tests/golden/types-union-tags/tokens/txt
1715+/* tre-491 %txt /tests/golden/types-union-tags/tree/txt
1716+/* typ-491 %txt /tests/golden/types-union-tags/types/txt
1717+/* src-492 %jibb /tests/golden/types-union-unresolved/source/jibb
1718+/* tok-492 %txt /tests/golden/types-union-unresolved/tokens/txt
1719+/* tre-492 %txt /tests/golden/types-union-unresolved/tree/txt
1720+/* typ-492 %txt /tests/golden/types-union-unresolved/types/txt
1721+/* src-493 %jibb /tests/golden/types-union-unresolved-flow/source/jibb
1722+/* tok-493 %txt /tests/golden/types-union-unresolved-flow/tokens/txt
1723+/* tre-493 %txt /tests/golden/types-union-unresolved-flow/tree/txt
1724+/* typ-493 %txt /tests/golden/types-union-unresolved-flow/types/txt
17131725|%
17141726:: one arm per case
17151727::
@@ -2575,124 +2587,130 @@
25752587 (weld (weld (check-at ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-430 `tok-430 `tre-430) (check-module-types ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-430 `typ-430 ~ ~ ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-430-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-430-2]])) (check-module-trees ~.types-module-fixtures `mtre-430 ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-430-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-430-2]]))
25762588++ test-types-module-mixed
25772589 (weld (weld (check ~.types-module-mixed src-431 `tok-431 `tre-431) (check-module-types ~.types-module-mixed ~[%tests %golden ~.types-module-mixed %source %jibb] src-431 `typ-431 ~[[%fixture %title imp-431-1]] ~[[%label mark-431-1]] ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-431-1]])) (check-module-trees ~.types-module-mixed `mtre-431 ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-431-1]]))
2590+++ test-types-null-context
2591+ (weld (check ~.types-null-context src-432 `tok-432 `tre-432) (check-types ~.types-null-context ~[%tests %golden ~.types-null-context %source %jibb] src-432 `typ-432))
2592+++ test-types-null-overlap
2593+ (weld (check ~.types-null-overlap src-433 `tok-433 `tre-433) (check-types ~.types-null-overlap ~[%tests %golden ~.types-null-overlap %source %jibb] src-433 `typ-433))
2594+++ test-types-null-unresolved
2595+ (weld (check ~.types-null-unresolved src-434 `tok-434 `tre-434) (check-types ~.types-null-unresolved ~[%tests %golden ~.types-null-unresolved %source %jibb] src-434 `typ-434))
25782596++ test-types-partial-apply
2579− (weld (check ~.types-partial-apply src-432 `tok-432 `tre-432) (check-types ~.types-partial-apply ~[%tests %golden ~.types-partial-apply %source %jibb] src-432 `typ-432))
2597+ (weld (check ~.types-partial-apply src-435 `tok-435 `tre-435) (check-types ~.types-partial-apply ~[%tests %golden ~.types-partial-apply %source %jibb] src-435 `typ-435))
25802598++ test-types-partial-atom-alias
2581− (weld (check ~.types-partial-atom-alias src-433 `tok-433 `tre-433) (check-types ~.types-partial-atom-alias ~[%tests %golden ~.types-partial-atom-alias %source %jibb] src-433 `typ-433))
2599+ (weld (check ~.types-partial-atom-alias src-436 `tok-436 `tre-436) (check-types ~.types-partial-atom-alias ~[%tests %golden ~.types-partial-atom-alias %source %jibb] src-436 `typ-436))
25822600++ test-types-partial-atom-constraint
2583− (weld (check ~.types-partial-atom-constraint src-434 `tok-434 `tre-434) (check-types ~.types-partial-atom-constraint ~[%tests %golden ~.types-partial-atom-constraint %source %jibb] src-434 `typ-434))
2601+ (weld (check ~.types-partial-atom-constraint src-437 `tok-437 `tre-437) (check-types ~.types-partial-atom-constraint ~[%tests %golden ~.types-partial-atom-constraint %source %jibb] src-437 `typ-437))
25842602++ test-types-partial-atom-widening
2585− (weld (check ~.types-partial-atom-widening src-435 `tok-435 `tre-435) (check-types ~.types-partial-atom-widening ~[%tests %golden ~.types-partial-atom-widening %source %jibb] src-435 `typ-435))
2603+ (weld (check ~.types-partial-atom-widening src-438 `tok-438 `tre-438) (check-types ~.types-partial-atom-widening ~[%tests %golden ~.types-partial-atom-widening %source %jibb] src-438 `typ-438))
25862604++ test-types-partial-aura
2587− (weld (check ~.types-partial-aura src-436 `tok-436 `tre-436) (check-types ~.types-partial-aura ~[%tests %golden ~.types-partial-aura %source %jibb] src-436 `typ-436))
2605+ (weld (check ~.types-partial-aura src-439 `tok-439 `tre-439) (check-types ~.types-partial-aura ~[%tests %golden ~.types-partial-aura %source %jibb] src-439 `typ-439))
25882606++ test-types-partial-aura-family
2589− (weld (check ~.types-partial-aura-family src-437 `tok-437 `tre-437) (check-types ~.types-partial-aura-family ~[%tests %golden ~.types-partial-aura-family %source %jibb] src-437 `typ-437))
2607+ (weld (check ~.types-partial-aura-family src-440 `tok-440 `tre-440) (check-types ~.types-partial-aura-family ~[%tests %golden ~.types-partial-aura-family %source %jibb] src-440 `typ-440))
25902608++ test-types-partial-aura-generalization
2591− (weld (check ~.types-partial-aura-generalization src-438 `tok-438 `tre-438) (check-types ~.types-partial-aura-generalization ~[%tests %golden ~.types-partial-aura-generalization %source %jibb] src-438 `typ-438))
2609+ (weld (check ~.types-partial-aura-generalization src-441 `tok-441 `tre-441) (check-types ~.types-partial-aura-generalization ~[%tests %golden ~.types-partial-aura-generalization %source %jibb] src-441 `typ-441))
25922610++ test-types-partial-bare-atom
2593− (weld (check ~.types-partial-bare-atom src-439 `tok-439 `tre-439) (check-types ~.types-partial-bare-atom ~[%tests %golden ~.types-partial-bare-atom %source %jibb] src-439 `typ-439))
2611+ (weld (check ~.types-partial-bare-atom src-442 `tok-442 `tre-442) (check-types ~.types-partial-bare-atom ~[%tests %golden ~.types-partial-bare-atom %source %jibb] src-442 `typ-442))
25942612++ test-types-partial-branch-widening
2595− (weld (check ~.types-partial-branch-widening src-440 `tok-440 `tre-440) (check-types ~.types-partial-branch-widening ~[%tests %golden ~.types-partial-branch-widening %source %jibb] src-440 `typ-440))
2613+ (weld (check ~.types-partial-branch-widening src-443 `tok-443 `tre-443) (check-types ~.types-partial-branch-widening ~[%tests %golden ~.types-partial-branch-widening %source %jibb] src-443 `typ-443))
25962614++ test-types-partial-conflicting-sites
2597− (weld (check ~.types-partial-conflicting-sites src-441 `tok-441 `tre-441) (check-types ~.types-partial-conflicting-sites ~[%tests %golden ~.types-partial-conflicting-sites %source %jibb] src-441 `typ-441))
2615+ (weld (check ~.types-partial-conflicting-sites src-444 `tok-444 `tre-444) (check-types ~.types-partial-conflicting-sites ~[%tests %golden ~.types-partial-conflicting-sites %source %jibb] src-444 `typ-444))
25982616++ test-types-partial-decimal-default
2599− (weld (check ~.types-partial-decimal-default src-442 `tok-442 `tre-442) (check-types ~.types-partial-decimal-default ~[%tests %golden ~.types-partial-decimal-default %source %jibb] src-442 `typ-442))
2617+ (weld (check ~.types-partial-decimal-default src-445 `tok-445 `tre-445) (check-types ~.types-partial-decimal-default ~[%tests %golden ~.types-partial-decimal-default %source %jibb] src-445 `typ-445))
26002618++ test-types-partial-dependency-chain
2601− (weld (check ~.types-partial-dependency-chain src-443 `tok-443 `tre-443) (check-types ~.types-partial-dependency-chain ~[%tests %golden ~.types-partial-dependency-chain %source %jibb] src-443 `typ-443))
2619+ (weld (check ~.types-partial-dependency-chain src-446 `tok-446 `tre-446) (check-types ~.types-partial-dependency-chain ~[%tests %golden ~.types-partial-dependency-chain %source %jibb] src-446 `typ-446))
26022620++ test-types-partial-explicit-capital
2603− (weld (check ~.types-partial-explicit-capital src-444 `tok-444 `tre-444) (check-types ~.types-partial-explicit-capital ~[%tests %golden ~.types-partial-explicit-capital %source %jibb] src-444 `typ-444))
2621+ (weld (check ~.types-partial-explicit-capital src-447 `tok-447 `tre-447) (check-types ~.types-partial-explicit-capital ~[%tests %golden ~.types-partial-explicit-capital %source %jibb] src-447 `typ-447))
26042622++ test-types-partial-forward
2605− (weld (check ~.types-partial-forward src-445 `tok-445 `tre-445) (check-types ~.types-partial-forward ~[%tests %golden ~.types-partial-forward %source %jibb] src-445 `typ-445))
2623+ (weld (check ~.types-partial-forward src-448 `tok-448 `tre-448) (check-types ~.types-partial-forward ~[%tests %golden ~.types-partial-forward %source %jibb] src-448 `typ-448))
26062624++ test-types-partial-generalization
2607− (weld (check ~.types-partial-generalization src-446 `tok-446 `tre-446) (check-types ~.types-partial-generalization ~[%tests %golden ~.types-partial-generalization %source %jibb] src-446 `typ-446))
2625+ (weld (check ~.types-partial-generalization src-449 `tok-449 `tre-449) (check-types ~.types-partial-generalization ~[%tests %golden ~.types-partial-generalization %source %jibb] src-449 `typ-449))
26082626++ test-types-partial-identity
2609− (weld (check ~.types-partial-identity src-447 `tok-447 `tre-447) (check-types ~.types-partial-identity ~[%tests %golden ~.types-partial-identity %source %jibb] src-447 `typ-447))
2627+ (weld (check ~.types-partial-identity src-450 `tok-450 `tre-450) (check-types ~.types-partial-identity ~[%tests %golden ~.types-partial-identity %source %jibb] src-450 `typ-450))
26102628++ test-types-partial-independent-atoms
2611− (weld (check ~.types-partial-independent-atoms src-448 `tok-448 `tre-448) (check-types ~.types-partial-independent-atoms ~[%tests %golden ~.types-partial-independent-atoms %source %jibb] src-448 `typ-448))
2629+ (weld (check ~.types-partial-independent-atoms src-451 `tok-451 `tre-451) (check-types ~.types-partial-independent-atoms ~[%tests %golden ~.types-partial-independent-atoms %source %jibb] src-451 `typ-451))
26122630++ test-types-partial-local-molds
2613− (weld (check ~.types-partial-local-molds src-449 `tok-449 `tre-449) (check-types ~.types-partial-local-molds ~[%tests %golden ~.types-partial-local-molds %source %jibb] src-449 `typ-449))
2631+ (weld (check ~.types-partial-local-molds src-452 `tok-452 `tre-452) (check-types ~.types-partial-local-molds ~[%tests %golden ~.types-partial-local-molds %source %jibb] src-452 `typ-452))
26142632++ test-types-partial-locals
2615− (weld (check ~.types-partial-locals src-450 `tok-450 `tre-450) (check-types ~.types-partial-locals ~[%tests %golden ~.types-partial-locals %source %jibb] src-450 `typ-450))
2633+ (weld (check ~.types-partial-locals src-453 `tok-453 `tre-453) (check-types ~.types-partial-locals ~[%tests %golden ~.types-partial-locals %source %jibb] src-453 `typ-453))
26162634++ test-types-partial-many-atom-constraints
2617− (weld (check ~.types-partial-many-atom-constraints src-451 `tok-451 `tre-451) (check-types ~.types-partial-many-atom-constraints ~[%tests %golden ~.types-partial-many-atom-constraints %source %jibb] src-451 `typ-451))
2635+ (weld (check ~.types-partial-many-atom-constraints src-454 `tok-454 `tre-454) (check-types ~.types-partial-many-atom-constraints ~[%tests %golden ~.types-partial-many-atom-constraints %source %jibb] src-454 `typ-454))
26182636++ test-types-partial-mold-bare-aura
2619− (weld (check ~.types-partial-mold-bare-aura src-452 `tok-452 `tre-452) (check-types ~.types-partial-mold-bare-aura ~[%tests %golden ~.types-partial-mold-bare-aura %source %jibb] src-452 `typ-452))
2637+ (weld (check ~.types-partial-mold-bare-aura src-455 `tok-455 `tre-455) (check-types ~.types-partial-mold-bare-aura ~[%tests %golden ~.types-partial-mold-bare-aura %source %jibb] src-455 `typ-455))
26202638++ test-types-partial-mold-composite
2621− (weld (check ~.types-partial-mold-composite src-453 `tok-453 `tre-453) (check-types ~.types-partial-mold-composite ~[%tests %golden ~.types-partial-mold-composite %source %jibb] src-453 `typ-453))
2639+ (weld (check ~.types-partial-mold-composite src-456 `tok-456 `tre-456) (check-types ~.types-partial-mold-composite ~[%tests %golden ~.types-partial-mold-composite %source %jibb] src-456 `typ-456))
26222640++ test-types-partial-mold-forward
2623− (weld (check ~.types-partial-mold-forward src-454 `tok-454 `tre-454) (check-types ~.types-partial-mold-forward ~[%tests %golden ~.types-partial-mold-forward %source %jibb] src-454 `typ-454))
2641+ (weld (check ~.types-partial-mold-forward src-457 `tok-457 `tre-457) (check-types ~.types-partial-mold-forward ~[%tests %golden ~.types-partial-mold-forward %source %jibb] src-457 `typ-457))
26242642++ test-types-partial-mold-recursive
2625− (weld (check ~.types-partial-mold-recursive src-455 `tok-455 `tre-455) (check-types ~.types-partial-mold-recursive ~[%tests %golden ~.types-partial-mold-recursive %source %jibb] src-455 `typ-455))
2643+ (weld (check ~.types-partial-mold-recursive src-458 `tok-458 `tre-458) (check-types ~.types-partial-mold-recursive ~[%tests %golden ~.types-partial-mold-recursive %source %jibb] src-458 `typ-458))
26262644++ test-types-partial-occurs
2627− (weld (check ~.types-partial-occurs src-456 `tok-456 `tre-456) (check-types ~.types-partial-occurs ~[%tests %golden ~.types-partial-occurs %source %jibb] src-456 `typ-456))
2645+ (weld (check ~.types-partial-occurs src-459 `tok-459 `tre-459) (check-types ~.types-partial-occurs ~[%tests %golden ~.types-partial-occurs %source %jibb] src-459 `typ-459))
26282646++ test-types-partial-projection
2629− (weld (check ~.types-partial-projection src-457 `tok-457 `tre-457) (check-types ~.types-partial-projection ~[%tests %golden ~.types-partial-projection %source %jibb] src-457 `typ-457))
2647+ (weld (check ~.types-partial-projection src-460 `tok-460 `tre-460) (check-types ~.types-partial-projection ~[%tests %golden ~.types-partial-projection %source %jibb] src-460 `typ-460))
26302648++ test-types-partial-shadow-global
2631− (weld (check ~.types-partial-shadow-global src-458 `tok-458 `tre-458) (check-types ~.types-partial-shadow-global ~[%tests %golden ~.types-partial-shadow-global %source %jibb] src-458 `typ-458))
2649+ (weld (check ~.types-partial-shadow-global src-461 `tok-461 `tre-461) (check-types ~.types-partial-shadow-global ~[%tests %golden ~.types-partial-shadow-global %source %jibb] src-461 `typ-461))
26322650++ test-types-partial-shared-tvar
2633− (weld (check ~.types-partial-shared-tvar src-459 `tok-459 `tre-459) (check-types ~.types-partial-shared-tvar ~[%tests %golden ~.types-partial-shared-tvar %source %jibb] src-459 `typ-459))
2651+ (weld (check ~.types-partial-shared-tvar src-462 `tok-462 `tre-462) (check-types ~.types-partial-shared-tvar ~[%tests %golden ~.types-partial-shared-tvar %source %jibb] src-462 `typ-462))
26342652++ test-types-partial-union-cases
2635− (weld (check ~.types-partial-union-cases src-460 `tok-460 `tre-460) (check-types ~.types-partial-union-cases ~[%tests %golden ~.types-partial-union-cases %source %jibb] src-460 `typ-460))
2653+ (weld (check ~.types-partial-union-cases src-463 `tok-463 `tre-463) (check-types ~.types-partial-union-cases ~[%tests %golden ~.types-partial-union-cases %source %jibb] src-463 `typ-463))
26362654++ test-types-partial-union-edges
2637− (weld (check ~.types-partial-union-edges src-461 `tok-461 `tre-461) (check-types ~.types-partial-union-edges ~[%tests %golden ~.types-partial-union-edges %source %jibb] src-461 `typ-461))
2655+ (weld (check ~.types-partial-union-edges src-464 `tok-464 `tre-464) (check-types ~.types-partial-union-edges ~[%tests %golden ~.types-partial-union-edges %source %jibb] src-464 `typ-464))
26382656++ test-types-partial-unresolved-tag
2639− (weld (check ~.types-partial-unresolved-tag src-462 `tok-462 `tre-462) (check-types ~.types-partial-unresolved-tag ~[%tests %golden ~.types-partial-unresolved-tag %source %jibb] src-462 `typ-462))
2657+ (weld (check ~.types-partial-unresolved-tag src-465 `tok-465 `tre-465) (check-types ~.types-partial-unresolved-tag ~[%tests %golden ~.types-partial-unresolved-tag %source %jibb] src-465 `typ-465))
26402658++ test-types-record-bound-variable
2641− (weld (check ~.types-record-bound-variable src-463 `tok-463 `tre-463) (check-types ~.types-record-bound-variable ~[%tests %golden ~.types-record-bound-variable %source %jibb] src-463 `typ-463))
2659+ (weld (check ~.types-record-bound-variable src-466 `tok-466 `tre-466) (check-types ~.types-record-bound-variable ~[%tests %golden ~.types-record-bound-variable %source %jibb] src-466 `typ-466))
26422660++ test-types-record-faces
2643− (weld (check ~.types-record-faces src-464 `tok-464 `tre-464) (check-types ~.types-record-faces ~[%tests %golden ~.types-record-faces %source %jibb] src-464 `typ-464))
2661+ (weld (check ~.types-record-faces src-467 `tok-467 `tre-467) (check-types ~.types-record-faces ~[%tests %golden ~.types-record-faces %source %jibb] src-467 `typ-467))
26442662++ test-types-record-import
2645− (weld (weld (check ~.types-record-import src-465 `tok-465 `tre-465) (check-module-types ~.types-record-import ~[%tests %golden ~.types-record-import %source %jibb] src-465 `typ-465 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-465-1]])) (check-module-trees ~.types-record-import `mtre-465 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-465-1]]))
2663+ (weld (weld (check ~.types-record-import src-468 `tok-468 `tre-468) (check-module-types ~.types-record-import ~[%tests %golden ~.types-record-import %source %jibb] src-468 `typ-468 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-468-1]])) (check-module-trees ~.types-record-import `mtre-468 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-468-1]]))
26462664++ test-types-record-local-scheme
2647− (weld (check ~.types-record-local-scheme src-466 `tok-466 `tre-466) (check-types ~.types-record-local-scheme ~[%tests %golden ~.types-record-local-scheme %source %jibb] src-466 `typ-466))
2665+ (weld (check ~.types-record-local-scheme src-469 `tok-469 `tre-469) (check-types ~.types-record-local-scheme ~[%tests %golden ~.types-record-local-scheme %source %jibb] src-469 `typ-469))
26482666++ test-types-record-nested
2649− (weld (check ~.types-record-nested src-467 `tok-467 `tre-467) (check-types ~.types-record-nested ~[%tests %golden ~.types-record-nested %source %jibb] src-467 `typ-467))
2667+ (weld (check ~.types-record-nested src-470 `tok-470 `tre-470) (check-types ~.types-record-nested ~[%tests %golden ~.types-record-nested %source %jibb] src-470 `typ-470))
26502668++ test-types-record-to-tuple
2651− (weld (check ~.types-record-to-tuple src-468 `tok-468 `tre-468) (check-types ~.types-record-to-tuple ~[%tests %golden ~.types-record-to-tuple %source %jibb] src-468 `typ-468))
2669+ (weld (check ~.types-record-to-tuple src-471 `tok-471 `tre-471) (check-types ~.types-record-to-tuple ~[%tests %golden ~.types-record-to-tuple %source %jibb] src-471 `typ-471))
26522670++ test-types-union-alias
2653− (weld (check ~.types-union-alias src-469 `tok-469 `tre-469) (check-types ~.types-union-alias ~[%tests %golden ~.types-union-alias %source %jibb] src-469 `typ-469))
2671+ (weld (check ~.types-union-alias src-472 `tok-472 `tre-472) (check-types ~.types-union-alias ~[%tests %golden ~.types-union-alias %source %jibb] src-472 `typ-472))
26542672++ test-types-union-branch-context
2655− (weld (check ~.types-union-branch-context src-470 `tok-470 `tre-470) (check-types ~.types-union-branch-context ~[%tests %golden ~.types-union-branch-context %source %jibb] src-470 `typ-470))
2673+ (weld (check ~.types-union-branch-context src-473 `tok-473 `tre-473) (check-types ~.types-union-branch-context ~[%tests %golden ~.types-union-branch-context %source %jibb] src-473 `typ-473))
26562674++ test-types-union-branch-pending
2657− (weld (check ~.types-union-branch-pending src-471 `tok-471 `tre-471) (check-types ~.types-union-branch-pending ~[%tests %golden ~.types-union-branch-pending %source %jibb] src-471 `typ-471))
2675+ (weld (check ~.types-union-branch-pending src-474 `tok-474 `tre-474) (check-types ~.types-union-branch-pending ~[%tests %golden ~.types-union-branch-pending %source %jibb] src-474 `typ-474))
26582676++ test-types-union-constructor-shape
2659− (weld (check ~.types-union-constructor-shape src-472 `tok-472 `tre-472) (check-types ~.types-union-constructor-shape ~[%tests %golden ~.types-union-constructor-shape %source %jibb] src-472 `typ-472))
2677+ (weld (check ~.types-union-constructor-shape src-475 `tok-475 `tre-475) (check-types ~.types-union-constructor-shape ~[%tests %golden ~.types-union-constructor-shape %source %jibb] src-475 `typ-475))
26602678++ test-types-union-context-flow
2661− (weld (check ~.types-union-context-flow src-473 `tok-473 `tre-473) (check-types ~.types-union-context-flow ~[%tests %golden ~.types-union-context-flow %source %jibb] src-473 `typ-473))
2679+ (weld (check ~.types-union-context-flow src-476 `tok-476 `tre-476) (check-types ~.types-union-context-flow ~[%tests %golden ~.types-union-context-flow %source %jibb] src-476 `typ-476))
26622680++ test-types-union-import
2663− (weld (weld (check ~.types-union-import src-474 `tok-474 `tre-474) (check-module-types ~.types-union-import ~[%tests %golden ~.types-union-import %source %jibb] src-474 `typ-474 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-474-1]])) (check-module-trees ~.types-union-import `mtre-474 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-474-1]]))
2681+ (weld (weld (check ~.types-union-import src-477 `tok-477 `tre-477) (check-module-types ~.types-union-import ~[%tests %golden ~.types-union-import %source %jibb] src-477 `typ-477 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-477-1]])) (check-module-trees ~.types-union-import `mtre-477 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-477-1]]))
26642682++ test-types-union-local-pending
2665− (weld (check ~.types-union-local-pending src-475 `tok-475 `tre-475) (check-types ~.types-union-local-pending ~[%tests %golden ~.types-union-local-pending %source %jibb] src-475 `typ-475))
2683+ (weld (check ~.types-union-local-pending src-478 `tok-478 `tre-478) (check-types ~.types-union-local-pending ~[%tests %golden ~.types-union-local-pending %source %jibb] src-478 `typ-478))
26662684++ test-types-union-overlap
2667− (weld (check ~.types-union-overlap src-476 `tok-476 `tre-476) (check-types ~.types-union-overlap ~[%tests %golden ~.types-union-overlap %source %jibb] src-476 `typ-476))
2685+ (weld (check ~.types-union-overlap src-479 `tok-479 `tre-479) (check-types ~.types-union-overlap ~[%tests %golden ~.types-union-overlap %source %jibb] src-479 `typ-479))
26682686++ test-types-union-overlap-nested
2669− (weld (check ~.types-union-overlap-nested src-477 `tok-477 `tre-477) (check-types ~.types-union-overlap-nested ~[%tests %golden ~.types-union-overlap-nested %source %jibb] src-477 `typ-477))
2687+ (weld (check ~.types-union-overlap-nested src-480 `tok-480 `tre-480) (check-types ~.types-union-overlap-nested ~[%tests %golden ~.types-union-overlap-nested %source %jibb] src-480 `typ-480))
26702688++ test-types-union-phantom-generic
2671− (weld (check ~.types-union-phantom-generic src-478 `tok-478 `tre-478) (check-types ~.types-union-phantom-generic ~[%tests %golden ~.types-union-phantom-generic %source %jibb] src-478 `typ-478))
2689+ (weld (check ~.types-union-phantom-generic src-481 `tok-481 `tre-481) (check-types ~.types-union-phantom-generic ~[%tests %golden ~.types-union-phantom-generic %source %jibb] src-481 `typ-481))
26722690++ test-types-union-print-cross-namespace
2673− (weld (weld (check ~.types-union-print-cross-namespace src-479 `tok-479 `tre-479) (check-module-types ~.types-union-print-cross-namespace ~[%tests %golden ~.types-union-print-cross-namespace %source %jibb] src-479 `typ-479 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-479-1]])) (check-module-trees ~.types-union-print-cross-namespace `mtre-479 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-479-1]]))
2691+ (weld (weld (check ~.types-union-print-cross-namespace src-482 `tok-482 `tre-482) (check-module-types ~.types-union-print-cross-namespace ~[%tests %golden ~.types-union-print-cross-namespace %source %jibb] src-482 `typ-482 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-482-1]])) (check-module-trees ~.types-union-print-cross-namespace `mtre-482 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-482-1]]))
26742692++ test-types-union-print-distinct
2675− (weld (weld (check ~.types-union-print-distinct src-480 `tok-480 `tre-480) (check-module-types ~.types-union-print-distinct ~[%tests %golden ~.types-union-print-distinct %source %jibb] src-480 `typ-480 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-480-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-480-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-480-3]])) (check-module-trees ~.types-union-print-distinct `mtre-480 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-480-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-480-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-480-3]]))
2693+ (weld (weld (check ~.types-union-print-distinct src-483 `tok-483 `tre-483) (check-module-types ~.types-union-print-distinct ~[%tests %golden ~.types-union-print-distinct %source %jibb] src-483 `typ-483 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-483-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-483-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-483-3]])) (check-module-trees ~.types-union-print-distinct `mtre-483 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-483-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-483-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-483-3]]))
26762694++ test-types-union-print-escape
2677− (weld (check ~.types-union-print-escape src-481 `tok-481 `tre-481) (check-types ~.types-union-print-escape ~[%tests %golden ~.types-union-print-escape %source %jibb] src-481 `typ-481))
2695+ (weld (check ~.types-union-print-escape src-484 `tok-484 `tre-484) (check-types ~.types-union-print-escape ~[%tests %golden ~.types-union-print-escape %source %jibb] src-484 `typ-484))
26782696++ test-types-union-print-local
2679− (weld (check ~.types-union-print-local src-482 `tok-482 `tre-482) (check-types ~.types-union-print-local ~[%tests %golden ~.types-union-print-local %source %jibb] src-482 `typ-482))
2697+ (weld (check ~.types-union-print-local src-485 `tok-485 `tre-485) (check-types ~.types-union-print-local ~[%tests %golden ~.types-union-print-local %source %jibb] src-485 `typ-485))
26802698++ test-types-union-print-nested
2681− (weld (check ~.types-union-print-nested src-483 `tok-483 `tre-483) (check-types ~.types-union-print-nested ~[%tests %golden ~.types-union-print-nested %source %jibb] src-483 `typ-483))
2699+ (weld (check ~.types-union-print-nested src-486 `tok-486 `tre-486) (check-types ~.types-union-print-nested ~[%tests %golden ~.types-union-print-nested %source %jibb] src-486 `typ-486))
26822700++ test-types-union-print-same-origin
2683− (weld (weld (check ~.types-union-print-same-origin src-484 `tok-484 `tre-484) (check-module-types ~.types-union-print-same-origin ~[%tests %golden ~.types-union-print-same-origin %source %jibb] src-484 `typ-484 ~ ~ ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-484-1]])) (check-module-trees ~.types-union-print-same-origin `mtre-484 ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-484-1]]))
2701+ (weld (weld (check ~.types-union-print-same-origin src-487 `tok-487 `tre-487) (check-module-types ~.types-union-print-same-origin ~[%tests %golden ~.types-union-print-same-origin %source %jibb] src-487 `typ-487 ~ ~ ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-487-1]])) (check-module-trees ~.types-union-print-same-origin `mtre-487 ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-487-1]]))
26842702++ test-types-union-print-transitive
2685− (weld (weld (check ~.types-union-print-transitive src-485 `tok-485 `tre-485) (check-module-types ~.types-union-print-transitive ~[%tests %golden ~.types-union-print-transitive %source %jibb] src-485 `typ-485 ~ ~ ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-485-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-485-2]])) (check-module-trees ~.types-union-print-transitive `mtre-485 ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-485-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-485-2]]))
2703+ (weld (weld (check ~.types-union-print-transitive src-488 `tok-488 `tre-488) (check-module-types ~.types-union-print-transitive ~[%tests %golden ~.types-union-print-transitive %source %jibb] src-488 `typ-488 ~ ~ ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-488-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-488-2]])) (check-module-trees ~.types-union-print-transitive `mtre-488 ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-488-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-488-2]]))
26862704++ test-types-union-singleton
2687− (weld (check ~.types-union-singleton src-486 `tok-486 `tre-486) (check-types ~.types-union-singleton ~[%tests %golden ~.types-union-singleton %source %jibb] src-486 `typ-486))
2705+ (weld (check ~.types-union-singleton src-489 `tok-489 `tre-489) (check-types ~.types-union-singleton ~[%tests %golden ~.types-union-singleton %source %jibb] src-489 `typ-489))
26882706++ test-types-union-tag-atoms
2689− (weld (check ~.types-union-tag-atoms src-487 `tok-487 `tre-487) (check-types ~.types-union-tag-atoms ~[%tests %golden ~.types-union-tag-atoms %source %jibb] src-487 `typ-487))
2707+ (weld (check ~.types-union-tag-atoms src-490 `tok-490 `tre-490) (check-types ~.types-union-tag-atoms ~[%tests %golden ~.types-union-tag-atoms %source %jibb] src-490 `typ-490))
26902708++ test-types-union-tags
2691− (weld (check ~.types-union-tags src-488 `tok-488 `tre-488) (check-types ~.types-union-tags ~[%tests %golden ~.types-union-tags %source %jibb] src-488 `typ-488))
2709+ (weld (check ~.types-union-tags src-491 `tok-491 `tre-491) (check-types ~.types-union-tags ~[%tests %golden ~.types-union-tags %source %jibb] src-491 `typ-491))
26922710++ test-types-union-unresolved
2693− (weld (check ~.types-union-unresolved src-489 `tok-489 `tre-489) (check-types ~.types-union-unresolved ~[%tests %golden ~.types-union-unresolved %source %jibb] src-489 `typ-489))
2711+ (weld (check ~.types-union-unresolved src-492 `tok-492 `tre-492) (check-types ~.types-union-unresolved ~[%tests %golden ~.types-union-unresolved %source %jibb] src-492 `typ-492))
26942712++ test-types-union-unresolved-flow
2695− (weld (check ~.types-union-unresolved-flow src-490 `tok-490 `tre-490) (check-types ~.types-union-unresolved-flow ~[%tests %golden ~.types-union-unresolved-flow %source %jibb] src-490 `typ-490))
2713+ (weld (check ~.types-union-unresolved-flow src-493 `tok-493 `tre-493) (check-types ~.types-union-unresolved-flow ~[%tests %golden ~.types-union-unresolved-flow %source %jibb] src-493 `typ-493))
26962714::
26972715:: +check: run golden:jibb on a case and compare both outputs
26982716::