on master help sign in
Resolve contextual null literals
4d45d2fiko
docs/compiler.md+1−1
@@ -56,7 +56,7 @@ The core is split into chapters, `+| %name`, in this order:
56| `%span-check` | `+check-spans`, which `+golden` runs on every tree, and `+check-spans-test` |
56| `%span-check` | `+check-spans`, which `+golden` runs on every tree, and `+check-spans-test` |
57| `%type-inference` | The initial inference fragment and its unification helpers; not yet a module type checker |
57| `%type-inference` | The initial inference fragment and its unification helpers; not yet a module type checker |
58
58
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.
60
60
61For 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.
61For 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.
62
62
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
19
19
20## Milestone 2: in progress
20## Milestone 2: in progress
21
21
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.
23
23
24## Milestone 1: parser and mark
24## Milestone 1: parser and mark
25
25
@@ -37,8 +37,8 @@ What the plan asks for, and where it is:
37
37
38Besides the plan's list:
38Besides the plan's list:
39
39
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.
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 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.
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.
42- `tools/testdata/selftest` (22 checks) and `tools/testdata/ship-selftest` test the tools themselves.
42- `tools/testdata/selftest` (22 checks) and `tools/testdata/ship-selftest` test the tools themselves.
43- 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.
43- 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.
44- 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).
44- 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:
73| 0070584 | 2026-10-30 | Propagate union context through loobean branches, read selected unions in Hoon collections, and add `flit` |
73| 0070584 | 2026-10-30 | Propagate union context through loobean branches, read selected unions in Hoon collections, and add `flit` |
74| 250564c | 2026-10-30 | Infer selected named generic unions, test Hoon collection wrappers, and add list helpers |
74| 250564c | 2026-10-30 | Infer selected named generic unions, test Hoon collection wrappers, and add list helpers |
75| e95ef8f | 2026-10-30 | Bridge selected Hoon unions into partial inference and support generic union aliases |
75| 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 |
77
78
78## Checking it
79## Checking it
79
80
80On a machine set up as [development.md](development.md) says:
81On a machine set up as [development.md](development.md) says:
81
82
82```
83```
83−tools/golden # 490 cases under urbit eval
84+tools/golden # 493 cases under urbit eval
84tools/importer-test # the Hoon importer fixture projection
85tools/importer-test # the Hoon importer fixture projection
85tools/type-import-test # the importer/checker bridge fixture
86tools/type-import-test # the importer/checker bridge fixture
86tools/type-mark-test # the mark/checker bridge fixture
87tools/type-mark-test # the mark/checker bridge fixture
@@ -90,7 +91,7 @@ tools/testdata/selftest # the tools themselves
90tools/doc-blocks docs/spec # the doc's examples are golden cases
91tools/doc-blocks docs/spec # the doc's examples are golden cases
91tools/ship start
92tools/ship start
92tools/ship gen-tests --check # tests/lib/jibb.hoon is up to date
93tools/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
94tools/testdata/ship-selftest
95tools/testdata/ship-selftest
95tools/ship check-commit # |commit stores .jibb files
96tools/ship check-commit # |commit stores .jibb files
96tools/clay-fixtures # example /sur files and marks build through Clay
97tools/clay-fixtures # example /sur files and marks build through Clay
jibb-dev/lib/jibb.hoon+18−7
@@ -4618,6 +4618,7 @@
4618 ==
4618 ==
4619+$ ibinding [id=@ud val=itype]
4619+$ ibinding [id=@ud val=itype]
4620+$ isub (list ibinding)
4620+$ isub (list ibinding)
4621++$ ipending [id=@ud literal=lit]
4621::
4622::
4622++ itype-lookup
4623++ itype-lookup
4623 |= [n=@ud sub=isub]
4624 |= [n=@ud sub=isub]
@@ -4915,10 +4916,17 @@
4915 ==
4916 ==
4916::
4917::
4917++ pending-tags
4918++ pending-tags
4918− |= [tags=(list @ud) sub=isub]
4919+ |= [tags=(list ipending) sub=isub]
4919 ^- ?
4920 ^- ?
4920 ?~ tags |
4921 ?~ 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))) &
4922 $(tags t.tags)
4930 $(tags t.tags)
4923::
4931::
4924:: Tags remain constrained until a mold selects a case or permitted atom
4932:: Tags remain constrained until a mold selects a case or permitted atom
@@ -5000,6 +5008,7 @@
5000 ?. ?=(%cell -.c) $(cases t.cases)
5008 ?. ?=(%cell -.c) $(cases t.cases)
5001 =/ head=itype (itype-walk hed.c sub)
5009 =/ head=itype (itype-walk hed.c sub)
5002 ?. ?=(%const -.head) $(cases t.cases)
5010 ?. ?=(%const -.head) $(cases t.cases)
5011+ ?. =(%term form.literal.head) $(cases t.cases)
5003 ?. =(val.literal.head val.tag) $(cases t.cases)
5012 ?. =(val.literal.head val.tag) $(cases t.cases)
5004 ?^ found [%unknown ~]
5013 ?^ found [%unknown ~]
5005 =/ trial=ifit (itype-fit sample tal.c sub next)
5014 =/ trial=ifit (itype-fit sample tal.c sub next)
@@ -5180,7 +5189,7 @@
5180:: This core has no Ford dependencies; unrecognized payloads fail closed.
5189:: This core has no Ford dependencies; unrecognized payloads fail closed.
5181+$ iexternals (list [module=term name=term result=*])
5190+$ iexternals (list [module=term name=term result=*])
5182+$ imark-externals (list [mark=term result=*])
5191+$ 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)]
5184+$ idiag [msg=tape sites=(list [at=span note=tape])]
5193+$ idiag [msg=tape sites=(list [at=span note=tape])]
5185+$ iresult (each [typ=itype state=istate] idiag)
5194+$ iresult (each [typ=itype state=istate] idiag)
5186+$ isample-result (each [typ=itype env=ienv state=istate] tape)
5195+$ isample-result (each [typ=itype env=ienv state=istate] tape)
@@ -5666,7 +5675,7 @@
5666 `[[%atom aura.sh] state]
5675 `[[%atom aura.sh] state]
5667 %flag `[[%flag ~] state]
5676 %flag `[[%flag ~] state]
5668 %const
5677 %const
5669− ?. =(%term form.lit.sh) ~
5678+ ?. |(=(%term form.lit.sh) =(%null form.lit.sh)) ~
5670 `[[%const lit.sh] state]
5679 `[[%const lit.sh] state]
5671 %union
5680 %union
5672 =/ pairs=(list upair) (union-pairs cases.sh molds.state)
5681 =/ pairs=(list upair) (union-pairs cases.sh molds.state)
@@ -6011,8 +6020,8 @@
6011 %duration [%& [%atom %dr] state]
6020 %duration [%& [%atom %dr] state]
6012 %knot [%& [%atom %ta] state]
6021 %knot [%& [%atom %ta] state]
6013 %loobean [%& [%flag ~] state]
6022 %loobean [%& [%flag ~] state]
6014− %term [%& [%tag next.state lit.e |] state(next +(next.state), tags [next.state tags.state])]
6023+ %term [%& [%tag next.state lit.e |] state(next +(next.state), tags [[next.state lit.e] tags.state])]
6015− * [%| ["literal needs contextual inference" ~]]
6024+ %null [%& [%tag next.state lit.e |] state(next +(next.state), tags [[next.state lit.e] tags.state])]
6016 ==
6025 ==
6017 %str
6026 %str
6018 =/ interpolated=? (lien pieces.e |=(p=piece ?=(%expr -.p)))
6027 =/ interpolated=? (lien pieces.e |=(p=piece ?=(%expr -.p)))
@@ -6034,7 +6043,7 @@
6034 =/ instance=[typ=itype state=istate] (instantiate-scheme u.scheme state)
6043 =/ instance=[typ=itype state=istate] (instantiate-scheme u.scheme state)
6035 [%& typ.instance state.instance]
6044 [%& typ.instance state.instance]
6036 %group $(e inner.e)
6045 %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])]
6038 %trace
6047 %trace
6039 =/ traced=iresult $(e val.e)
6048 =/ traced=iresult $(e val.e)
6040 ?: ?=(%| -.traced) traced
6049 ?: ?=(%| -.traced) traced
@@ -6807,6 +6816,8 @@
6807 ?: (constrained-capitals caps.state.p.result sub.state.p.result)
6816 ?: (constrained-capitals caps.state.p.result sub.state.p.result)
6808 $(ds t.ds, lines [(crip "++ {(trip name.d)}: explicit capital constraints are not supported by partial inference") lines])
6817 $(ds t.ds, lines [(crip "++ {(trip name.d)}: explicit capital constraints are not supported by partial inference") lines])
6809 =/ typ=itype (default-decimals (itype-normalize typ.p.result sub.state.p.result))
6818 =/ 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])
6810 ?: |((pending-tags tags.state.p.result sub.state.p.result) (itype-has-tag typ))
6821 ?: |((pending-tags tags.state.p.result sub.state.p.result) (itype-has-tag typ))
6811 $(ds t.ds, lines [(crip "++ {(trip name.d)}: tag needs context in partial inference") lines])
6822 $(ds t.ds, lines [(crip "++ {(trip name.d)}: tag needs context in partial inference") lines])
6812 ?: (itype-has-hidden-generic typ)
6823 ?: (itype-has-hidden-generic typ)
tests/golden/prelude-1c-structural/types.txt+2−2
@@ -5,8 +5,8 @@ partial inference; module not checked
5++ not: $-(? ?)
5++ not: $-(? ?)
6+$ list: cases proven disjoint; mold not checked
6+$ list: cases proven disjoint; mold not checked
7+$ unit: cases proven disjoint; mold not checked
7+$ unit: cases proven disjoint; mold not checked
8−++ fall: sample mold is not supported by partial inference
8+++ fall: branch pattern is not supported by partial inference
9−++ need: sample mold is not supported by partial inference
9+++ need: branch pattern is not supported by partial inference
10++ weld: sample mold is not supported by partial inference
10++ weld: sample mold is not supported by partial inference
11++ turn: sample mold is not supported by partial inference
11++ turn: sample mold is not supported by partial inference
12+$ dime: not checked
12+$ dime: not checked
tests/golden/prelude-3g-basic/types.txt+2−2
@@ -5,8 +5,8 @@ partial inference; module not checked
5++ not: $-(? ?)
5++ not: $-(? ?)
6+$ list: cases proven disjoint; mold not checked
6+$ list: cases proven disjoint; mold not checked
7+$ unit: cases proven disjoint; mold not checked
7+$ unit: cases proven disjoint; mold not checked
8−++ fall: sample mold is not supported by partial inference
8+++ fall: branch pattern is not supported by partial inference
9−++ need: sample mold is not supported by partial inference
9+++ need: branch pattern is not supported by partial inference
10++ weld: sample mold is not supported by partial inference
10++ weld: sample mold is not supported by partial inference
11++ turn: sample mold is not supported by partial inference
11++ turn: sample mold is not supported by partial inference
12+$ dime: not checked
12+$ dime: not checked
tests/golden/prelude-3g-like/types.txt+2−2
@@ -5,8 +5,8 @@ partial inference; module not checked
5++ not: $-(? ?)
5++ not: $-(? ?)
6+$ list: cases proven disjoint; mold not checked
6+$ list: cases proven disjoint; mold not checked
7+$ unit: cases proven disjoint; mold not checked
7+$ unit: cases proven disjoint; mold not checked
8−++ fall: sample mold is not supported by partial inference
8+++ fall: branch pattern is not supported by partial inference
9−++ need: sample mold is not supported by partial inference
9+++ need: branch pattern is not supported by partial inference
10++ weld: sample mold is not supported by partial inference
10++ weld: sample mold is not supported by partial inference
11++ turn: sample mold is not supported by partial inference
11++ turn: sample mold is not supported by partial inference
12+$ dime: not checked
12+$ dime: not checked
tests/golden/prelude-3g-structural/types.txt+2−2
@@ -5,8 +5,8 @@ partial inference; module not checked
5++ not: $-(? ?)
5++ not: $-(? ?)
6+$ list: cases proven disjoint; mold not checked
6+$ list: cases proven disjoint; mold not checked
7+$ unit: cases proven disjoint; mold not checked
7+$ unit: cases proven disjoint; mold not checked
8−++ fall: sample mold is not supported by partial inference
8+++ fall: branch pattern is not supported by partial inference
9−++ need: sample mold is not supported by partial inference
9+++ need: branch pattern is not supported by partial inference
10++ weld: sample mold is not supported by partial inference
10++ weld: sample mold is not supported by partial inference
11++ turn: sample mold is not supported by partial inference
11++ turn: sample mold is not supported by partial inference
12+$ dime: not checked
12+$ dime: not checked
tests/golden/prelude-list-helpers/types.txt+2−2
@@ -5,8 +5,8 @@ partial inference; module not checked
5++ not: $-(? ?)
5++ not: $-(? ?)
6+$ list: cases proven disjoint; mold not checked
6+$ list: cases proven disjoint; mold not checked
7+$ unit: cases proven disjoint; mold not checked
7+$ unit: cases proven disjoint; mold not checked
8−++ fall: sample mold is not supported by partial inference
8+++ fall: branch pattern is not supported by partial inference
9−++ need: sample mold is not supported by partial inference
9+++ need: branch pattern is not supported by partial inference
10++ weld: sample mold is not supported by partial inference
10++ weld: sample mold is not supported by partial inference
11++ turn: sample mold is not supported by partial inference
11++ turn: sample mold is not supported by partial inference
12+$ dime: not checked
12+$ dime: not checked
tests/golden/prelude-list-unit/types.txt+2−2
@@ -5,7 +5,7 @@ partial inference; module not checked
5++ not: $-(? ?)
5++ not: $-(? ?)
6+$ list: cases proven disjoint; mold not checked
6+$ list: cases proven disjoint; mold not checked
7+$ unit: cases proven disjoint; mold not checked
7+$ unit: cases proven disjoint; mold not checked
8−++ fall: sample mold is not supported by partial inference
8+++ fall: branch pattern is not supported by partial inference
9−++ need: sample mold is not supported by partial inference
9+++ need: branch pattern is not supported by partial inference
10++ weld: sample mold is not supported by partial inference
10++ weld: sample mold is not supported by partial inference
11++ turn: sample mold is not supported by partial inference
11++ 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
5++ not: $-(? ?)
5++ not: $-(? ?)
6+$ list: cases proven disjoint; mold not checked
6+$ list: cases proven disjoint; mold not checked
7+$ unit: cases proven disjoint; mold not checked
7+$ unit: cases proven disjoint; mold not checked
8−++ fall: sample mold is not supported by partial inference
8+++ fall: branch pattern is not supported by partial inference
9−++ need: sample mold is not supported by partial inference
9+++ need: branch pattern is not supported by partial inference
10++ weld: sample mold is not supported by partial inference
10++ weld: sample mold is not supported by partial inference
11++ turn: sample mold is not supported by partial inference
11++ turn: sample mold is not supported by partial inference
12+$ dime: not checked
12+$ dime: not checked
@@ -39,11 +39,11 @@ partial inference; module not checked
39++ lure: cast mold is not supported by partial inference
39++ lure: cast mold is not supported by partial inference
40++ snoc: sample mold is not supported by partial inference
40++ snoc: sample mold is not supported by partial inference
41++ flop: sample mold is not supported by partial inference
41++ flop: sample mold is not supported by partial inference
42−++ drop: sample mold is not supported by partial inference
42+++ drop: branch pattern is not supported by partial inference
43−++ bind: sample mold is not supported by partial inference
43+++ bind: branch pattern is not supported by partial inference
44−++ biff: sample mold is not supported by partial inference
44+++ biff: branch pattern is not supported by partial inference
45−++ both: sample mold is not supported by partial inference
45+++ both: branch pattern is not supported by partial inference
46−++ clef: sample mold is not supported by partial inference
46+++ clef: branch pattern is not supported by partial inference
47++ skim: sample mold is not supported by partial inference
47++ skim: sample mold is not supported by partial inference
48++ skip: sample mold is not supported by partial inference
48++ skip: sample mold is not supported by partial inference
49++ levy: sample mold is not supported by partial inference
49++ 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 @@
1459/* imp-431-1 %txt /tests/golden/types-module-mixed/sur/fixture/txt
1459/* imp-431-1 %txt /tests/golden/types-module-mixed/sur/fixture/txt
1460/* mark-431-1 %txt /tests/golden/types-module-mixed/mar/label/txt
1460/* mark-431-1 %txt /tests/golden/types-module-mixed/mar/label/txt
1461/* mtre-431 %txt /tests/golden/types-module-mixed/module-trees/txt
1461/* mtre-431 %txt /tests/golden/types-module-mixed/module-trees/txt
1462−/* src-432 %jibb /tests/golden/types-partial-apply/source/jibb
1462+/* src-432 %jibb /tests/golden/types-null-context/source/jibb
1463−/* tok-432 %txt /tests/golden/types-partial-apply/tokens/txt
1463+/* tok-432 %txt /tests/golden/types-null-context/tokens/txt
1464−/* tre-432 %txt /tests/golden/types-partial-apply/tree/txt
1464+/* tre-432 %txt /tests/golden/types-null-context/tree/txt
1465−/* typ-432 %txt /tests/golden/types-partial-apply/types/txt
1465+/* typ-432 %txt /tests/golden/types-null-context/types/txt
1466−/* src-433 %jibb /tests/golden/types-partial-atom-alias/source/jibb
1466+/* src-433 %jibb /tests/golden/types-null-overlap/source/jibb
1467−/* tok-433 %txt /tests/golden/types-partial-atom-alias/tokens/txt
1467+/* tok-433 %txt /tests/golden/types-null-overlap/tokens/txt
1468−/* tre-433 %txt /tests/golden/types-partial-atom-alias/tree/txt
1468+/* tre-433 %txt /tests/golden/types-null-overlap/tree/txt
1469−/* typ-433 %txt /tests/golden/types-partial-atom-alias/types/txt
1469+/* typ-433 %txt /tests/golden/types-null-overlap/types/txt
1470−/* src-434 %jibb /tests/golden/types-partial-atom-constraint/source/jibb
1470+/* src-434 %jibb /tests/golden/types-null-unresolved/source/jibb
1471−/* tok-434 %txt /tests/golden/types-partial-atom-constraint/tokens/txt
1471+/* tok-434 %txt /tests/golden/types-null-unresolved/tokens/txt
1472−/* tre-434 %txt /tests/golden/types-partial-atom-constraint/tree/txt
1472+/* tre-434 %txt /tests/golden/types-null-unresolved/tree/txt
1473−/* typ-434 %txt /tests/golden/types-partial-atom-constraint/types/txt
1473+/* typ-434 %txt /tests/golden/types-null-unresolved/types/txt
1474−/* src-435 %jibb /tests/golden/types-partial-atom-widening/source/jibb
1474+/* src-435 %jibb /tests/golden/types-partial-apply/source/jibb
1475−/* tok-435 %txt /tests/golden/types-partial-atom-widening/tokens/txt
1475+/* tok-435 %txt /tests/golden/types-partial-apply/tokens/txt
1476−/* tre-435 %txt /tests/golden/types-partial-atom-widening/tree/txt
1476+/* tre-435 %txt /tests/golden/types-partial-apply/tree/txt
1477−/* typ-435 %txt /tests/golden/types-partial-atom-widening/types/txt
1477+/* typ-435 %txt /tests/golden/types-partial-apply/types/txt
1478−/* src-436 %jibb /tests/golden/types-partial-aura/source/jibb
1478+/* src-436 %jibb /tests/golden/types-partial-atom-alias/source/jibb
1479−/* tok-436 %txt /tests/golden/types-partial-aura/tokens/txt
1479+/* tok-436 %txt /tests/golden/types-partial-atom-alias/tokens/txt
1480−/* tre-436 %txt /tests/golden/types-partial-aura/tree/txt
1480+/* tre-436 %txt /tests/golden/types-partial-atom-alias/tree/txt
1481−/* typ-436 %txt /tests/golden/types-partial-aura/types/txt
1481+/* typ-436 %txt /tests/golden/types-partial-atom-alias/types/txt
1482−/* src-437 %jibb /tests/golden/types-partial-aura-family/source/jibb
1482+/* src-437 %jibb /tests/golden/types-partial-atom-constraint/source/jibb
1483−/* tok-437 %txt /tests/golden/types-partial-aura-family/tokens/txt
1483+/* tok-437 %txt /tests/golden/types-partial-atom-constraint/tokens/txt
1484−/* tre-437 %txt /tests/golden/types-partial-aura-family/tree/txt
1484+/* tre-437 %txt /tests/golden/types-partial-atom-constraint/tree/txt
1485−/* typ-437 %txt /tests/golden/types-partial-aura-family/types/txt
1485+/* typ-437 %txt /tests/golden/types-partial-atom-constraint/types/txt
1486−/* src-438 %jibb /tests/golden/types-partial-aura-generalization/source/jibb
1486+/* src-438 %jibb /tests/golden/types-partial-atom-widening/source/jibb
1487−/* tok-438 %txt /tests/golden/types-partial-aura-generalization/tokens/txt
1487+/* tok-438 %txt /tests/golden/types-partial-atom-widening/tokens/txt
1488−/* tre-438 %txt /tests/golden/types-partial-aura-generalization/tree/txt
1488+/* tre-438 %txt /tests/golden/types-partial-atom-widening/tree/txt
1489−/* typ-438 %txt /tests/golden/types-partial-aura-generalization/types/txt
1489+/* typ-438 %txt /tests/golden/types-partial-atom-widening/types/txt
1490−/* src-439 %jibb /tests/golden/types-partial-bare-atom/source/jibb
1490+/* src-439 %jibb /tests/golden/types-partial-aura/source/jibb
1491−/* tok-439 %txt /tests/golden/types-partial-bare-atom/tokens/txt
1491+/* tok-439 %txt /tests/golden/types-partial-aura/tokens/txt
1492−/* tre-439 %txt /tests/golden/types-partial-bare-atom/tree/txt
1492+/* tre-439 %txt /tests/golden/types-partial-aura/tree/txt
1493−/* typ-439 %txt /tests/golden/types-partial-bare-atom/types/txt
1493+/* typ-439 %txt /tests/golden/types-partial-aura/types/txt
1494−/* src-440 %jibb /tests/golden/types-partial-branch-widening/source/jibb
1494+/* src-440 %jibb /tests/golden/types-partial-aura-family/source/jibb
1495−/* tok-440 %txt /tests/golden/types-partial-branch-widening/tokens/txt
1495+/* tok-440 %txt /tests/golden/types-partial-aura-family/tokens/txt
1496−/* tre-440 %txt /tests/golden/types-partial-branch-widening/tree/txt
1496+/* tre-440 %txt /tests/golden/types-partial-aura-family/tree/txt
1497−/* typ-440 %txt /tests/golden/types-partial-branch-widening/types/txt
1497+/* typ-440 %txt /tests/golden/types-partial-aura-family/types/txt
1498−/* src-441 %jibb /tests/golden/types-partial-conflicting-sites/source/jibb
1498+/* src-441 %jibb /tests/golden/types-partial-aura-generalization/source/jibb
1499−/* tok-441 %txt /tests/golden/types-partial-conflicting-sites/tokens/txt
1499+/* tok-441 %txt /tests/golden/types-partial-aura-generalization/tokens/txt
1500−/* tre-441 %txt /tests/golden/types-partial-conflicting-sites/tree/txt
1500+/* tre-441 %txt /tests/golden/types-partial-aura-generalization/tree/txt
1501−/* typ-441 %txt /tests/golden/types-partial-conflicting-sites/types/txt
1501+/* typ-441 %txt /tests/golden/types-partial-aura-generalization/types/txt
1502−/* src-442 %jibb /tests/golden/types-partial-decimal-default/source/jibb
1502+/* src-442 %jibb /tests/golden/types-partial-bare-atom/source/jibb
1503−/* tok-442 %txt /tests/golden/types-partial-decimal-default/tokens/txt
1503+/* tok-442 %txt /tests/golden/types-partial-bare-atom/tokens/txt
1504−/* tre-442 %txt /tests/golden/types-partial-decimal-default/tree/txt
1504+/* tre-442 %txt /tests/golden/types-partial-bare-atom/tree/txt
1505−/* typ-442 %txt /tests/golden/types-partial-decimal-default/types/txt
1505+/* typ-442 %txt /tests/golden/types-partial-bare-atom/types/txt
1506−/* src-443 %jibb /tests/golden/types-partial-dependency-chain/source/jibb
1506+/* src-443 %jibb /tests/golden/types-partial-branch-widening/source/jibb
1507−/* tok-443 %txt /tests/golden/types-partial-dependency-chain/tokens/txt
1507+/* tok-443 %txt /tests/golden/types-partial-branch-widening/tokens/txt
1508−/* tre-443 %txt /tests/golden/types-partial-dependency-chain/tree/txt
1508+/* tre-443 %txt /tests/golden/types-partial-branch-widening/tree/txt
1509−/* typ-443 %txt /tests/golden/types-partial-dependency-chain/types/txt
1509+/* typ-443 %txt /tests/golden/types-partial-branch-widening/types/txt
1510−/* src-444 %jibb /tests/golden/types-partial-explicit-capital/source/jibb
1510+/* src-444 %jibb /tests/golden/types-partial-conflicting-sites/source/jibb
1511−/* tok-444 %txt /tests/golden/types-partial-explicit-capital/tokens/txt
1511+/* tok-444 %txt /tests/golden/types-partial-conflicting-sites/tokens/txt
1512−/* tre-444 %txt /tests/golden/types-partial-explicit-capital/tree/txt
1512+/* tre-444 %txt /tests/golden/types-partial-conflicting-sites/tree/txt
1513−/* typ-444 %txt /tests/golden/types-partial-explicit-capital/types/txt
1513+/* typ-444 %txt /tests/golden/types-partial-conflicting-sites/types/txt
1514−/* src-445 %jibb /tests/golden/types-partial-forward/source/jibb
1514+/* src-445 %jibb /tests/golden/types-partial-decimal-default/source/jibb
1515−/* tok-445 %txt /tests/golden/types-partial-forward/tokens/txt
1515+/* tok-445 %txt /tests/golden/types-partial-decimal-default/tokens/txt
1516−/* tre-445 %txt /tests/golden/types-partial-forward/tree/txt
1516+/* tre-445 %txt /tests/golden/types-partial-decimal-default/tree/txt
1517−/* typ-445 %txt /tests/golden/types-partial-forward/types/txt
1517+/* typ-445 %txt /tests/golden/types-partial-decimal-default/types/txt
1518−/* src-446 %jibb /tests/golden/types-partial-generalization/source/jibb
1518+/* src-446 %jibb /tests/golden/types-partial-dependency-chain/source/jibb
1519−/* tok-446 %txt /tests/golden/types-partial-generalization/tokens/txt
1519+/* tok-446 %txt /tests/golden/types-partial-dependency-chain/tokens/txt
1520−/* tre-446 %txt /tests/golden/types-partial-generalization/tree/txt
1520+/* tre-446 %txt /tests/golden/types-partial-dependency-chain/tree/txt
1521−/* typ-446 %txt /tests/golden/types-partial-generalization/types/txt
1521+/* typ-446 %txt /tests/golden/types-partial-dependency-chain/types/txt
1522−/* src-447 %jibb /tests/golden/types-partial-identity/source/jibb
1522+/* src-447 %jibb /tests/golden/types-partial-explicit-capital/source/jibb
1523−/* tok-447 %txt /tests/golden/types-partial-identity/tokens/txt
1523+/* tok-447 %txt /tests/golden/types-partial-explicit-capital/tokens/txt
1524−/* tre-447 %txt /tests/golden/types-partial-identity/tree/txt
1524+/* tre-447 %txt /tests/golden/types-partial-explicit-capital/tree/txt
1525−/* typ-447 %txt /tests/golden/types-partial-identity/types/txt
1525+/* typ-447 %txt /tests/golden/types-partial-explicit-capital/types/txt
1526−/* src-448 %jibb /tests/golden/types-partial-independent-atoms/source/jibb
1526+/* src-448 %jibb /tests/golden/types-partial-forward/source/jibb
1527−/* tok-448 %txt /tests/golden/types-partial-independent-atoms/tokens/txt
1527+/* tok-448 %txt /tests/golden/types-partial-forward/tokens/txt
1528−/* tre-448 %txt /tests/golden/types-partial-independent-atoms/tree/txt
1528+/* tre-448 %txt /tests/golden/types-partial-forward/tree/txt
1529−/* typ-448 %txt /tests/golden/types-partial-independent-atoms/types/txt
1529+/* typ-448 %txt /tests/golden/types-partial-forward/types/txt
1530−/* src-449 %jibb /tests/golden/types-partial-local-molds/source/jibb
1530+/* src-449 %jibb /tests/golden/types-partial-generalization/source/jibb
1531−/* tok-449 %txt /tests/golden/types-partial-local-molds/tokens/txt
1531+/* tok-449 %txt /tests/golden/types-partial-generalization/tokens/txt
1532−/* tre-449 %txt /tests/golden/types-partial-local-molds/tree/txt
1532+/* tre-449 %txt /tests/golden/types-partial-generalization/tree/txt
1533−/* typ-449 %txt /tests/golden/types-partial-local-molds/types/txt
1533+/* typ-449 %txt /tests/golden/types-partial-generalization/types/txt
1534−/* src-450 %jibb /tests/golden/types-partial-locals/source/jibb
1534+/* src-450 %jibb /tests/golden/types-partial-identity/source/jibb
1535−/* tok-450 %txt /tests/golden/types-partial-locals/tokens/txt
1535+/* tok-450 %txt /tests/golden/types-partial-identity/tokens/txt
1536−/* tre-450 %txt /tests/golden/types-partial-locals/tree/txt
1536+/* tre-450 %txt /tests/golden/types-partial-identity/tree/txt
1537−/* typ-450 %txt /tests/golden/types-partial-locals/types/txt
1537+/* typ-450 %txt /tests/golden/types-partial-identity/types/txt
1538−/* src-451 %jibb /tests/golden/types-partial-many-atom-constraints/source/jibb
1538+/* src-451 %jibb /tests/golden/types-partial-independent-atoms/source/jibb
1539−/* tok-451 %txt /tests/golden/types-partial-many-atom-constraints/tokens/txt
1539+/* tok-451 %txt /tests/golden/types-partial-independent-atoms/tokens/txt
1540−/* tre-451 %txt /tests/golden/types-partial-many-atom-constraints/tree/txt
1540+/* tre-451 %txt /tests/golden/types-partial-independent-atoms/tree/txt
1541−/* typ-451 %txt /tests/golden/types-partial-many-atom-constraints/types/txt
1541+/* typ-451 %txt /tests/golden/types-partial-independent-atoms/types/txt
1542−/* src-452 %jibb /tests/golden/types-partial-mold-bare-aura/source/jibb
1542+/* src-452 %jibb /tests/golden/types-partial-local-molds/source/jibb
1543−/* tok-452 %txt /tests/golden/types-partial-mold-bare-aura/tokens/txt
1543+/* tok-452 %txt /tests/golden/types-partial-local-molds/tokens/txt
1544−/* tre-452 %txt /tests/golden/types-partial-mold-bare-aura/tree/txt
1544+/* tre-452 %txt /tests/golden/types-partial-local-molds/tree/txt
1545−/* typ-452 %txt /tests/golden/types-partial-mold-bare-aura/types/txt
1545+/* typ-452 %txt /tests/golden/types-partial-local-molds/types/txt
1546−/* src-453 %jibb /tests/golden/types-partial-mold-composite/source/jibb
1546+/* src-453 %jibb /tests/golden/types-partial-locals/source/jibb
1547−/* tok-453 %txt /tests/golden/types-partial-mold-composite/tokens/txt
1547+/* tok-453 %txt /tests/golden/types-partial-locals/tokens/txt
1548−/* tre-453 %txt /tests/golden/types-partial-mold-composite/tree/txt
1548+/* tre-453 %txt /tests/golden/types-partial-locals/tree/txt
1549−/* typ-453 %txt /tests/golden/types-partial-mold-composite/types/txt
1549+/* typ-453 %txt /tests/golden/types-partial-locals/types/txt
1550−/* src-454 %jibb /tests/golden/types-partial-mold-forward/source/jibb
1550+/* src-454 %jibb /tests/golden/types-partial-many-atom-constraints/source/jibb
1551−/* tok-454 %txt /tests/golden/types-partial-mold-forward/tokens/txt
1551+/* tok-454 %txt /tests/golden/types-partial-many-atom-constraints/tokens/txt
1552−/* tre-454 %txt /tests/golden/types-partial-mold-forward/tree/txt
1552+/* tre-454 %txt /tests/golden/types-partial-many-atom-constraints/tree/txt
1553−/* typ-454 %txt /tests/golden/types-partial-mold-forward/types/txt
1553+/* typ-454 %txt /tests/golden/types-partial-many-atom-constraints/types/txt
1554−/* src-455 %jibb /tests/golden/types-partial-mold-recursive/source/jibb
1554+/* src-455 %jibb /tests/golden/types-partial-mold-bare-aura/source/jibb
1555−/* tok-455 %txt /tests/golden/types-partial-mold-recursive/tokens/txt
1555+/* tok-455 %txt /tests/golden/types-partial-mold-bare-aura/tokens/txt
1556−/* tre-455 %txt /tests/golden/types-partial-mold-recursive/tree/txt
1556+/* tre-455 %txt /tests/golden/types-partial-mold-bare-aura/tree/txt
1557−/* typ-455 %txt /tests/golden/types-partial-mold-recursive/types/txt
1557+/* typ-455 %txt /tests/golden/types-partial-mold-bare-aura/types/txt
1558−/* src-456 %jibb /tests/golden/types-partial-occurs/source/jibb
1558+/* src-456 %jibb /tests/golden/types-partial-mold-composite/source/jibb
1559−/* tok-456 %txt /tests/golden/types-partial-occurs/tokens/txt
1559+/* tok-456 %txt /tests/golden/types-partial-mold-composite/tokens/txt
1560−/* tre-456 %txt /tests/golden/types-partial-occurs/tree/txt
1560+/* tre-456 %txt /tests/golden/types-partial-mold-composite/tree/txt
1561−/* typ-456 %txt /tests/golden/types-partial-occurs/types/txt
1561+/* typ-456 %txt /tests/golden/types-partial-mold-composite/types/txt
1562−/* src-457 %jibb /tests/golden/types-partial-projection/source/jibb
1562+/* src-457 %jibb /tests/golden/types-partial-mold-forward/source/jibb
1563−/* tok-457 %txt /tests/golden/types-partial-projection/tokens/txt
1563+/* tok-457 %txt /tests/golden/types-partial-mold-forward/tokens/txt
1564−/* tre-457 %txt /tests/golden/types-partial-projection/tree/txt
1564+/* tre-457 %txt /tests/golden/types-partial-mold-forward/tree/txt
1565−/* typ-457 %txt /tests/golden/types-partial-projection/types/txt
1565+/* typ-457 %txt /tests/golden/types-partial-mold-forward/types/txt
1566−/* src-458 %jibb /tests/golden/types-partial-shadow-global/source/jibb
1566+/* src-458 %jibb /tests/golden/types-partial-mold-recursive/source/jibb
1567−/* tok-458 %txt /tests/golden/types-partial-shadow-global/tokens/txt
1567+/* tok-458 %txt /tests/golden/types-partial-mold-recursive/tokens/txt
1568−/* tre-458 %txt /tests/golden/types-partial-shadow-global/tree/txt
1568+/* tre-458 %txt /tests/golden/types-partial-mold-recursive/tree/txt
1569−/* typ-458 %txt /tests/golden/types-partial-shadow-global/types/txt
1569+/* typ-458 %txt /tests/golden/types-partial-mold-recursive/types/txt
1570−/* src-459 %jibb /tests/golden/types-partial-shared-tvar/source/jibb
1570+/* src-459 %jibb /tests/golden/types-partial-occurs/source/jibb
1571−/* tok-459 %txt /tests/golden/types-partial-shared-tvar/tokens/txt
1571+/* tok-459 %txt /tests/golden/types-partial-occurs/tokens/txt
1572−/* tre-459 %txt /tests/golden/types-partial-shared-tvar/tree/txt
1572+/* tre-459 %txt /tests/golden/types-partial-occurs/tree/txt
1573−/* typ-459 %txt /tests/golden/types-partial-shared-tvar/types/txt
1573+/* typ-459 %txt /tests/golden/types-partial-occurs/types/txt
1574−/* src-460 %jibb /tests/golden/types-partial-union-cases/source/jibb
1574+/* src-460 %jibb /tests/golden/types-partial-projection/source/jibb
1575−/* tok-460 %txt /tests/golden/types-partial-union-cases/tokens/txt
1575+/* tok-460 %txt /tests/golden/types-partial-projection/tokens/txt
1576−/* tre-460 %txt /tests/golden/types-partial-union-cases/tree/txt
1576+/* tre-460 %txt /tests/golden/types-partial-projection/tree/txt
1577−/* typ-460 %txt /tests/golden/types-partial-union-cases/types/txt
1577+/* typ-460 %txt /tests/golden/types-partial-projection/types/txt
1578−/* src-461 %jibb /tests/golden/types-partial-union-edges/source/jibb
1578+/* src-461 %jibb /tests/golden/types-partial-shadow-global/source/jibb
1579−/* tok-461 %txt /tests/golden/types-partial-union-edges/tokens/txt
1579+/* tok-461 %txt /tests/golden/types-partial-shadow-global/tokens/txt
1580−/* tre-461 %txt /tests/golden/types-partial-union-edges/tree/txt
1580+/* tre-461 %txt /tests/golden/types-partial-shadow-global/tree/txt
1581−/* typ-461 %txt /tests/golden/types-partial-union-edges/types/txt
1581+/* typ-461 %txt /tests/golden/types-partial-shadow-global/types/txt
1582−/* src-462 %jibb /tests/golden/types-partial-unresolved-tag/source/jibb
1582+/* src-462 %jibb /tests/golden/types-partial-shared-tvar/source/jibb
1583−/* tok-462 %txt /tests/golden/types-partial-unresolved-tag/tokens/txt
1583+/* tok-462 %txt /tests/golden/types-partial-shared-tvar/tokens/txt
1584−/* tre-462 %txt /tests/golden/types-partial-unresolved-tag/tree/txt
1584+/* tre-462 %txt /tests/golden/types-partial-shared-tvar/tree/txt
1585−/* typ-462 %txt /tests/golden/types-partial-unresolved-tag/types/txt
1585+/* typ-462 %txt /tests/golden/types-partial-shared-tvar/types/txt
1586−/* src-463 %jibb /tests/golden/types-record-bound-variable/source/jibb
1586+/* src-463 %jibb /tests/golden/types-partial-union-cases/source/jibb
1587−/* tok-463 %txt /tests/golden/types-record-bound-variable/tokens/txt
1587+/* tok-463 %txt /tests/golden/types-partial-union-cases/tokens/txt
1588−/* tre-463 %txt /tests/golden/types-record-bound-variable/tree/txt
1588+/* tre-463 %txt /tests/golden/types-partial-union-cases/tree/txt
1589−/* typ-463 %txt /tests/golden/types-record-bound-variable/types/txt
1589+/* typ-463 %txt /tests/golden/types-partial-union-cases/types/txt
1590−/* src-464 %jibb /tests/golden/types-record-faces/source/jibb
1590+/* src-464 %jibb /tests/golden/types-partial-union-edges/source/jibb
1591−/* tok-464 %txt /tests/golden/types-record-faces/tokens/txt
1591+/* tok-464 %txt /tests/golden/types-partial-union-edges/tokens/txt
1592−/* tre-464 %txt /tests/golden/types-record-faces/tree/txt
1592+/* tre-464 %txt /tests/golden/types-partial-union-edges/tree/txt
1593−/* typ-464 %txt /tests/golden/types-record-faces/types/txt
1593+/* typ-464 %txt /tests/golden/types-partial-union-edges/types/txt
1594−/* src-465 %jibb /tests/golden/types-record-import/source/jibb
1594+/* src-465 %jibb /tests/golden/types-partial-unresolved-tag/source/jibb
1595−/* tok-465 %txt /tests/golden/types-record-import/tokens/txt
1595+/* tok-465 %txt /tests/golden/types-partial-unresolved-tag/tokens/txt
1596−/* tre-465 %txt /tests/golden/types-record-import/tree/txt
1596+/* tre-465 %txt /tests/golden/types-partial-unresolved-tag/tree/txt
1597−/* mod-465-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
1597+/* typ-465 %txt /tests/golden/types-partial-unresolved-tag/types/txt
1598−/* typ-465 %txt /tests/golden/types-record-import/types/txt
1598+/* src-466 %jibb /tests/golden/types-record-bound-variable/source/jibb
1599−/* mtre-465 %txt /tests/golden/types-record-import/module-trees/txt
1599+/* tok-466 %txt /tests/golden/types-record-bound-variable/tokens/txt
1600−/* src-466 %jibb /tests/golden/types-record-local-scheme/source/jibb
1600+/* tre-466 %txt /tests/golden/types-record-bound-variable/tree/txt
1601−/* tok-466 %txt /tests/golden/types-record-local-scheme/tokens/txt
1601+/* typ-466 %txt /tests/golden/types-record-bound-variable/types/txt
1602−/* tre-466 %txt /tests/golden/types-record-local-scheme/tree/txt
1602+/* src-467 %jibb /tests/golden/types-record-faces/source/jibb
1603−/* typ-466 %txt /tests/golden/types-record-local-scheme/types/txt
1603+/* tok-467 %txt /tests/golden/types-record-faces/tokens/txt
1604−/* src-467 %jibb /tests/golden/types-record-nested/source/jibb
1604+/* tre-467 %txt /tests/golden/types-record-faces/tree/txt
1605−/* tok-467 %txt /tests/golden/types-record-nested/tokens/txt
1605+/* typ-467 %txt /tests/golden/types-record-faces/types/txt
1606−/* tre-467 %txt /tests/golden/types-record-nested/tree/txt
1606+/* src-468 %jibb /tests/golden/types-record-import/source/jibb
1607−/* typ-467 %txt /tests/golden/types-record-nested/types/txt
1607+/* tok-468 %txt /tests/golden/types-record-import/tokens/txt
1608−/* src-468 %jibb /tests/golden/types-record-to-tuple/source/jibb
1608+/* tre-468 %txt /tests/golden/types-record-import/tree/txt
1609−/* tok-468 %txt /tests/golden/types-record-to-tuple/tokens/txt
1609+/* mod-468-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
1610−/* tre-468 %txt /tests/golden/types-record-to-tuple/tree/txt
1610+/* typ-468 %txt /tests/golden/types-record-import/types/txt
1611−/* typ-468 %txt /tests/golden/types-record-to-tuple/types/txt
1611+/* mtre-468 %txt /tests/golden/types-record-import/module-trees/txt
1612−/* src-469 %jibb /tests/golden/types-union-alias/source/jibb
1612+/* src-469 %jibb /tests/golden/types-record-local-scheme/source/jibb
1613−/* tok-469 %txt /tests/golden/types-union-alias/tokens/txt
1613+/* tok-469 %txt /tests/golden/types-record-local-scheme/tokens/txt
1614−/* tre-469 %txt /tests/golden/types-union-alias/tree/txt
1614+/* tre-469 %txt /tests/golden/types-record-local-scheme/tree/txt
1615−/* typ-469 %txt /tests/golden/types-union-alias/types/txt
1615+/* typ-469 %txt /tests/golden/types-record-local-scheme/types/txt
1616−/* src-470 %jibb /tests/golden/types-union-branch-context/source/jibb
1616+/* src-470 %jibb /tests/golden/types-record-nested/source/jibb
1617−/* tok-470 %txt /tests/golden/types-union-branch-context/tokens/txt
1617+/* tok-470 %txt /tests/golden/types-record-nested/tokens/txt
1618−/* tre-470 %txt /tests/golden/types-union-branch-context/tree/txt
1618+/* tre-470 %txt /tests/golden/types-record-nested/tree/txt
1619−/* typ-470 %txt /tests/golden/types-union-branch-context/types/txt
1619+/* typ-470 %txt /tests/golden/types-record-nested/types/txt
1620−/* src-471 %jibb /tests/golden/types-union-branch-pending/source/jibb
1620+/* src-471 %jibb /tests/golden/types-record-to-tuple/source/jibb
1621−/* tok-471 %txt /tests/golden/types-union-branch-pending/tokens/txt
1621+/* tok-471 %txt /tests/golden/types-record-to-tuple/tokens/txt
1622−/* tre-471 %txt /tests/golden/types-union-branch-pending/tree/txt
1622+/* tre-471 %txt /tests/golden/types-record-to-tuple/tree/txt
1623−/* typ-471 %txt /tests/golden/types-union-branch-pending/types/txt
1623+/* typ-471 %txt /tests/golden/types-record-to-tuple/types/txt
1624−/* src-472 %jibb /tests/golden/types-union-constructor-shape/source/jibb
1624+/* src-472 %jibb /tests/golden/types-union-alias/source/jibb
1625−/* tok-472 %txt /tests/golden/types-union-constructor-shape/tokens/txt
1625+/* tok-472 %txt /tests/golden/types-union-alias/tokens/txt
1626−/* tre-472 %txt /tests/golden/types-union-constructor-shape/tree/txt
1626+/* tre-472 %txt /tests/golden/types-union-alias/tree/txt
1627−/* typ-472 %txt /tests/golden/types-union-constructor-shape/types/txt
1627+/* typ-472 %txt /tests/golden/types-union-alias/types/txt
1628−/* src-473 %jibb /tests/golden/types-union-context-flow/source/jibb
1628+/* src-473 %jibb /tests/golden/types-union-branch-context/source/jibb
1629−/* tok-473 %txt /tests/golden/types-union-context-flow/tokens/txt
1629+/* tok-473 %txt /tests/golden/types-union-branch-context/tokens/txt
1630−/* tre-473 %txt /tests/golden/types-union-context-flow/tree/txt
1630+/* tre-473 %txt /tests/golden/types-union-branch-context/tree/txt
1631−/* typ-473 %txt /tests/golden/types-union-context-flow/types/txt
1631+/* typ-473 %txt /tests/golden/types-union-branch-context/types/txt
1632−/* src-474 %jibb /tests/golden/types-union-import/source/jibb
1632+/* src-474 %jibb /tests/golden/types-union-branch-pending/source/jibb
1633−/* tok-474 %txt /tests/golden/types-union-import/tokens/txt
1633+/* tok-474 %txt /tests/golden/types-union-branch-pending/tokens/txt
1634−/* tre-474 %txt /tests/golden/types-union-import/tree/txt
1634+/* tre-474 %txt /tests/golden/types-union-branch-pending/tree/txt
1635−/* mod-474-1 %jibb /tests/golden/types-union-import/modules/ui/lib/jibb
1635+/* typ-474 %txt /tests/golden/types-union-branch-pending/types/txt
1636−/* typ-474 %txt /tests/golden/types-union-import/types/txt
1636+/* src-475 %jibb /tests/golden/types-union-constructor-shape/source/jibb
1637−/* mtre-474 %txt /tests/golden/types-union-import/module-trees/txt
1637+/* tok-475 %txt /tests/golden/types-union-constructor-shape/tokens/txt
1638−/* src-475 %jibb /tests/golden/types-union-local-pending/source/jibb
1638+/* tre-475 %txt /tests/golden/types-union-constructor-shape/tree/txt
1639−/* tok-475 %txt /tests/golden/types-union-local-pending/tokens/txt
1639+/* typ-475 %txt /tests/golden/types-union-constructor-shape/types/txt
1640−/* tre-475 %txt /tests/golden/types-union-local-pending/tree/txt
1640+/* src-476 %jibb /tests/golden/types-union-context-flow/source/jibb
1641−/* typ-475 %txt /tests/golden/types-union-local-pending/types/txt
1641+/* tok-476 %txt /tests/golden/types-union-context-flow/tokens/txt
1642−/* src-476 %jibb /tests/golden/types-union-overlap/source/jibb
1642+/* tre-476 %txt /tests/golden/types-union-context-flow/tree/txt
1643−/* tok-476 %txt /tests/golden/types-union-overlap/tokens/txt
1643+/* typ-476 %txt /tests/golden/types-union-context-flow/types/txt
1644−/* tre-476 %txt /tests/golden/types-union-overlap/tree/txt
1644+/* src-477 %jibb /tests/golden/types-union-import/source/jibb
1645−/* typ-476 %txt /tests/golden/types-union-overlap/types/txt
1645+/* tok-477 %txt /tests/golden/types-union-import/tokens/txt
1646−/* src-477 %jibb /tests/golden/types-union-overlap-nested/source/jibb
1646+/* tre-477 %txt /tests/golden/types-union-import/tree/txt
1647−/* tok-477 %txt /tests/golden/types-union-overlap-nested/tokens/txt
1647+/* mod-477-1 %jibb /tests/golden/types-union-import/modules/ui/lib/jibb
1648−/* tre-477 %txt /tests/golden/types-union-overlap-nested/tree/txt
1648+/* typ-477 %txt /tests/golden/types-union-import/types/txt
1649−/* typ-477 %txt /tests/golden/types-union-overlap-nested/types/txt
1649+/* mtre-477 %txt /tests/golden/types-union-import/module-trees/txt
1650−/* src-478 %jibb /tests/golden/types-union-phantom-generic/source/jibb
1650+/* src-478 %jibb /tests/golden/types-union-local-pending/source/jibb
1651−/* tok-478 %txt /tests/golden/types-union-phantom-generic/tokens/txt
1651+/* tok-478 %txt /tests/golden/types-union-local-pending/tokens/txt
1652−/* tre-478 %txt /tests/golden/types-union-phantom-generic/tree/txt
1652+/* tre-478 %txt /tests/golden/types-union-local-pending/tree/txt
1653−/* typ-478 %txt /tests/golden/types-union-phantom-generic/types/txt
1653+/* typ-478 %txt /tests/golden/types-union-local-pending/types/txt
1654−/* src-479 %jibb /tests/golden/types-union-print-cross-namespace/source/jibb
1654+/* src-479 %jibb /tests/golden/types-union-overlap/source/jibb
1655−/* tok-479 %txt /tests/golden/types-union-print-cross-namespace/tokens/txt
1655+/* tok-479 %txt /tests/golden/types-union-overlap/tokens/txt
1656−/* tre-479 %txt /tests/golden/types-union-print-cross-namespace/tree/txt
1656+/* tre-479 %txt /tests/golden/types-union-overlap/tree/txt
1657−/* mod-479-1 %jibb /tests/golden/types-union-print-cross-namespace/modules/ui/lib/jibb
1657+/* typ-479 %txt /tests/golden/types-union-overlap/types/txt
1658−/* typ-479 %txt /tests/golden/types-union-print-cross-namespace/types/txt
1658+/* src-480 %jibb /tests/golden/types-union-overlap-nested/source/jibb
1659−/* mtre-479 %txt /tests/golden/types-union-print-cross-namespace/module-trees/txt
1659+/* tok-480 %txt /tests/golden/types-union-overlap-nested/tokens/txt
1660−/* src-480 %jibb /tests/golden/types-union-print-distinct/source/jibb
1660+/* tre-480 %txt /tests/golden/types-union-overlap-nested/tree/txt
1661−/* tok-480 %txt /tests/golden/types-union-print-distinct/tokens/txt
1661+/* typ-480 %txt /tests/golden/types-union-overlap-nested/types/txt
1662−/* tre-480 %txt /tests/golden/types-union-print-distinct/tree/txt
1662+/* src-481 %jibb /tests/golden/types-union-phantom-generic/source/jibb
1663−/* mod-480-1 %jibb /tests/golden/types-union-print-distinct/modules/ui/left/jibb
1663+/* tok-481 %txt /tests/golden/types-union-phantom-generic/tokens/txt
1664−/* mod-480-2 %jibb /tests/golden/types-union-print-distinct/modules/ui/right/jibb
1664+/* tre-481 %txt /tests/golden/types-union-phantom-generic/tree/txt
1665−/* mod-480-3 %jibb /tests/golden/types-union-print-distinct/modules/ui/twin/jibb
1665+/* typ-481 %txt /tests/golden/types-union-phantom-generic/types/txt
1666−/* typ-480 %txt /tests/golden/types-union-print-distinct/types/txt
1666+/* src-482 %jibb /tests/golden/types-union-print-cross-namespace/source/jibb
1667−/* mtre-480 %txt /tests/golden/types-union-print-distinct/module-trees/txt
1667+/* tok-482 %txt /tests/golden/types-union-print-cross-namespace/tokens/txt
1668−/* src-481 %jibb /tests/golden/types-union-print-escape/source/jibb
1668+/* tre-482 %txt /tests/golden/types-union-print-cross-namespace/tree/txt
1669−/* tok-481 %txt /tests/golden/types-union-print-escape/tokens/txt
1669+/* mod-482-1 %jibb /tests/golden/types-union-print-cross-namespace/modules/ui/lib/jibb
1670−/* tre-481 %txt /tests/golden/types-union-print-escape/tree/txt
1670+/* typ-482 %txt /tests/golden/types-union-print-cross-namespace/types/txt
1671−/* typ-481 %txt /tests/golden/types-union-print-escape/types/txt
1671+/* mtre-482 %txt /tests/golden/types-union-print-cross-namespace/module-trees/txt
1672−/* src-482 %jibb /tests/golden/types-union-print-local/source/jibb
1672+/* src-483 %jibb /tests/golden/types-union-print-distinct/source/jibb
1673−/* tok-482 %txt /tests/golden/types-union-print-local/tokens/txt
1673+/* tok-483 %txt /tests/golden/types-union-print-distinct/tokens/txt
1674−/* tre-482 %txt /tests/golden/types-union-print-local/tree/txt
1674+/* tre-483 %txt /tests/golden/types-union-print-distinct/tree/txt
1675−/* typ-482 %txt /tests/golden/types-union-print-local/types/txt
1675+/* mod-483-1 %jibb /tests/golden/types-union-print-distinct/modules/ui/left/jibb
1676−/* src-483 %jibb /tests/golden/types-union-print-nested/source/jibb
1676+/* mod-483-2 %jibb /tests/golden/types-union-print-distinct/modules/ui/right/jibb
1677−/* tok-483 %txt /tests/golden/types-union-print-nested/tokens/txt
1677+/* mod-483-3 %jibb /tests/golden/types-union-print-distinct/modules/ui/twin/jibb
1678−/* tre-483 %txt /tests/golden/types-union-print-nested/tree/txt
1678+/* typ-483 %txt /tests/golden/types-union-print-distinct/types/txt
1679−/* typ-483 %txt /tests/golden/types-union-print-nested/types/txt
1679+/* mtre-483 %txt /tests/golden/types-union-print-distinct/module-trees/txt
1680−/* src-484 %jibb /tests/golden/types-union-print-same-origin/source/jibb
1680+/* src-484 %jibb /tests/golden/types-union-print-escape/source/jibb
1681−/* tok-484 %txt /tests/golden/types-union-print-same-origin/tokens/txt
1681+/* tok-484 %txt /tests/golden/types-union-print-escape/tokens/txt
1682−/* tre-484 %txt /tests/golden/types-union-print-same-origin/tree/txt
1682+/* tre-484 %txt /tests/golden/types-union-print-escape/tree/txt
1683−/* mod-484-1 %jibb /tests/golden/types-union-print-same-origin/modules/ui/shared/jibb
1683+/* typ-484 %txt /tests/golden/types-union-print-escape/types/txt
1684−/* typ-484 %txt /tests/golden/types-union-print-same-origin/types/txt
1684+/* src-485 %jibb /tests/golden/types-union-print-local/source/jibb
1685−/* mtre-484 %txt /tests/golden/types-union-print-same-origin/module-trees/txt
1685+/* tok-485 %txt /tests/golden/types-union-print-local/tokens/txt
1686−/* src-485 %jibb /tests/golden/types-union-print-transitive/source/jibb
1686+/* tre-485 %txt /tests/golden/types-union-print-local/tree/txt
1687−/* tok-485 %txt /tests/golden/types-union-print-transitive/tokens/txt
1687+/* typ-485 %txt /tests/golden/types-union-print-local/types/txt
1688−/* tre-485 %txt /tests/golden/types-union-print-transitive/tree/txt
1688+/* src-486 %jibb /tests/golden/types-union-print-nested/source/jibb
1689−/* mod-485-1 %jibb /tests/golden/types-union-print-transitive/modules/ui/mid/jibb
1689+/* tok-486 %txt /tests/golden/types-union-print-nested/tokens/txt
1690−/* mod-485-2 %jibb /tests/golden/types-union-print-transitive/modules/ui/base/jibb
1690+/* tre-486 %txt /tests/golden/types-union-print-nested/tree/txt
1691−/* typ-485 %txt /tests/golden/types-union-print-transitive/types/txt
1691+/* typ-486 %txt /tests/golden/types-union-print-nested/types/txt
1692−/* mtre-485 %txt /tests/golden/types-union-print-transitive/module-trees/txt
1692+/* src-487 %jibb /tests/golden/types-union-print-same-origin/source/jibb
1693−/* src-486 %jibb /tests/golden/types-union-singleton/source/jibb
1693+/* tok-487 %txt /tests/golden/types-union-print-same-origin/tokens/txt
1694−/* tok-486 %txt /tests/golden/types-union-singleton/tokens/txt
1694+/* tre-487 %txt /tests/golden/types-union-print-same-origin/tree/txt
1695−/* tre-486 %txt /tests/golden/types-union-singleton/tree/txt
1695+/* mod-487-1 %jibb /tests/golden/types-union-print-same-origin/modules/ui/shared/jibb
1696−/* typ-486 %txt /tests/golden/types-union-singleton/types/txt
1696+/* typ-487 %txt /tests/golden/types-union-print-same-origin/types/txt
1697−/* src-487 %jibb /tests/golden/types-union-tag-atoms/source/jibb
1697+/* mtre-487 %txt /tests/golden/types-union-print-same-origin/module-trees/txt
1698−/* tok-487 %txt /tests/golden/types-union-tag-atoms/tokens/txt
1698+/* src-488 %jibb /tests/golden/types-union-print-transitive/source/jibb
1699−/* tre-487 %txt /tests/golden/types-union-tag-atoms/tree/txt
1699+/* tok-488 %txt /tests/golden/types-union-print-transitive/tokens/txt
1700−/* typ-487 %txt /tests/golden/types-union-tag-atoms/types/txt
1700+/* tre-488 %txt /tests/golden/types-union-print-transitive/tree/txt
1701−/* src-488 %jibb /tests/golden/types-union-tags/source/jibb
1701+/* mod-488-1 %jibb /tests/golden/types-union-print-transitive/modules/ui/mid/jibb
1702−/* tok-488 %txt /tests/golden/types-union-tags/tokens/txt
1702+/* mod-488-2 %jibb /tests/golden/types-union-print-transitive/modules/ui/base/jibb
1703−/* tre-488 %txt /tests/golden/types-union-tags/tree/txt
1703+/* typ-488 %txt /tests/golden/types-union-print-transitive/types/txt
1704−/* typ-488 %txt /tests/golden/types-union-tags/types/txt
1704+/* mtre-488 %txt /tests/golden/types-union-print-transitive/module-trees/txt
1705−/* src-489 %jibb /tests/golden/types-union-unresolved/source/jibb
1705+/* src-489 %jibb /tests/golden/types-union-singleton/source/jibb
1706−/* tok-489 %txt /tests/golden/types-union-unresolved/tokens/txt
1706+/* tok-489 %txt /tests/golden/types-union-singleton/tokens/txt
1707−/* tre-489 %txt /tests/golden/types-union-unresolved/tree/txt
1707+/* tre-489 %txt /tests/golden/types-union-singleton/tree/txt
1708−/* typ-489 %txt /tests/golden/types-union-unresolved/types/txt
1708+/* typ-489 %txt /tests/golden/types-union-singleton/types/txt
1709−/* src-490 %jibb /tests/golden/types-union-unresolved-flow/source/jibb
1709+/* src-490 %jibb /tests/golden/types-union-tag-atoms/source/jibb
1710−/* tok-490 %txt /tests/golden/types-union-unresolved-flow/tokens/txt
1710+/* tok-490 %txt /tests/golden/types-union-tag-atoms/tokens/txt
1711−/* tre-490 %txt /tests/golden/types-union-unresolved-flow/tree/txt
1711+/* tre-490 %txt /tests/golden/types-union-tag-atoms/tree/txt
1712−/* typ-490 %txt /tests/golden/types-union-unresolved-flow/types/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
1713|%
1725|%
1714:: one arm per case
1726:: one arm per case
1715::
1727::
@@ -2575,124 +2587,130 @@
2575 (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]]))
2587 (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]]))
2576++ test-types-module-mixed
2588++ test-types-module-mixed
2577 (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]]))
2589 (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))
2578++ test-types-partial-apply
2596++ 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))
2580++ test-types-partial-atom-alias
2598++ 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))
2582++ test-types-partial-atom-constraint
2600++ 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))
2584++ test-types-partial-atom-widening
2602++ 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))
2586++ test-types-partial-aura
2604++ 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))
2588++ test-types-partial-aura-family
2606++ 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))
2590++ test-types-partial-aura-generalization
2608++ 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))
2592++ test-types-partial-bare-atom
2610++ 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))
2594++ test-types-partial-branch-widening
2612++ 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))
2596++ test-types-partial-conflicting-sites
2614++ 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))
2598++ test-types-partial-decimal-default
2616++ 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))
2600++ test-types-partial-dependency-chain
2618++ 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))
2602++ test-types-partial-explicit-capital
2620++ 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))
2604++ test-types-partial-forward
2622++ 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))
2606++ test-types-partial-generalization
2624++ 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))
2608++ test-types-partial-identity
2626++ 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))
2610++ test-types-partial-independent-atoms
2628++ 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))
2612++ test-types-partial-local-molds
2630++ 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))
2614++ test-types-partial-locals
2632++ 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))
2616++ test-types-partial-many-atom-constraints
2634++ 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))
2618++ test-types-partial-mold-bare-aura
2636++ 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))
2620++ test-types-partial-mold-composite
2638++ 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))
2622++ test-types-partial-mold-forward
2640++ 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))
2624++ test-types-partial-mold-recursive
2642++ 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))
2626++ test-types-partial-occurs
2644++ 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))
2628++ test-types-partial-projection
2646++ 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))
2630++ test-types-partial-shadow-global
2648++ 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))
2632++ test-types-partial-shared-tvar
2650++ 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))
2634++ test-types-partial-union-cases
2652++ 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))
2636++ test-types-partial-union-edges
2654++ 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))
2638++ test-types-partial-unresolved-tag
2656++ 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))
2640++ test-types-record-bound-variable
2658++ 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))
2642++ test-types-record-faces
2660++ 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))
2644++ test-types-record-import
2662++ 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]]))
2646++ test-types-record-local-scheme
2664++ 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))
2648++ test-types-record-nested
2666++ 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))
2650++ test-types-record-to-tuple
2668++ 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))
2652++ test-types-union-alias
2670++ 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))
2654++ test-types-union-branch-context
2672++ 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))
2656++ test-types-union-branch-pending
2674++ 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))
2658++ test-types-union-constructor-shape
2676++ 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))
2660++ test-types-union-context-flow
2678++ 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))
2662++ test-types-union-import
2680++ 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]]))
2664++ test-types-union-local-pending
2682++ 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))
2666++ test-types-union-overlap
2684++ 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))
2668++ test-types-union-overlap-nested
2686++ 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))
2670++ test-types-union-phantom-generic
2688++ 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))
2672++ test-types-union-print-cross-namespace
2690++ 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]]))
2674++ test-types-union-print-distinct
2692++ 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]]))
2676++ test-types-union-print-escape
2694++ 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))
2678++ test-types-union-print-local
2696++ 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))
2680++ test-types-union-print-nested
2698++ 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))
2682++ test-types-union-print-same-origin
2700++ 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]]))
2684++ test-types-union-print-transitive
2702++ 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]]))
2686++ test-types-union-singleton
2704++ 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))
2688++ test-types-union-tag-atoms
2706++ 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))
2690++ test-types-union-tags
2708++ 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))
2692++ test-types-union-unresolved
2710++ 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))
2694++ test-types-union-unresolved-flow
2712++ 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))
2696::
2714::
2697:: +check: run golden:jibb on a case and compare both outputs
2715:: +check: run golden:jibb on a case and compare both outputs
2698::
2716::