on master help sign in
Infer exhaustive list patterns
commita2a6ef51ed1f95cb7c2936eed2f673cb6259c473 authoriko <mail@iko.soy> dateFri 30 Oct 2026, 21:42 (9 hours ago) parent29bd39f
21 files changed+1194−377
docs/compiler.md+1−1 docs/status.md+7−6 jibb-dev/lib/jibb.hoon+63−3 tests/golden/types-list-pattern-imported/about.txt+4 tests/golden/types-list-pattern-imported/imports.txt+2 tests/golden/types-list-pattern-imported/modules.txt+1 tests/golden/types-list-pattern-imported/source.jibb+13 tests/golden/types-list-pattern-imported/sur/fixture.txt+5 tests/golden/types-list-pattern-imported/tokens.txt+66 tests/golden/types-list-pattern-imported/tree.txt+32 tests/golden/types-list-pattern-imported/types.txt+4 tests/golden/types-list-patterns/about.txt+4 tests/golden/types-list-patterns/modules.txt+1 tests/golden/types-list-patterns/source.jibb+64 tests/golden/types-list-patterns/tokens.txt+359 tests/golden/types-list-patterns/tree.txt+168 tests/golden/types-list-patterns/types.txt+17 tests/lib/jibb-module-scope.hoon+1−1 tests/lib/jibb.hoon+379−365 tests/type-module-scope/about.txt+1−1 tests/type-module-scope/expected.txt+2
docs/compiler.md+1−1
@@ -60,7 +60,7 @@ The inference fragment supports fixed auras, unrestricted `@`, one-way widening
6060
6161For supported closed unions, the type printer keeps the union’s origin separate from its displayed name. It prints an in-scope name such as `msg` or `msg.lib`, including in records and gates; an accessible imported nongeneric alias may name a transitive union. A nongeneric body-local union that escapes its scope, or an origin without an accessible name, prints its cases separated by spaces, parenthesized when nested. That case-list form is print-only. A supported generic union prints its name and all arguments, including unused arguments; when its name is unavailable, the partial printer reports that limitation instead of dropping its arguments. Two faces for the same imported origin remain compatible; compatibility between distinct union origins, including in gate types, remains unsupported. Some comparisons of generic union arguments also remain unsupported rather than deciding equality or mismatch. The Hoon bridge also translates some imported unnamed unions into this representation; unsupported cases remain errors.
6262
63−A list literal can be inferred when a cast or known gate sample supplies a list type and the supplied prelude has the validated standard list definition. Empty, nonempty and nested literals work, including contextual union tags in elements; mismatched elements report the item and expected type. Imported Hoon lists share this representation. Without a known context or the validated prelude list, the partial checker fails closed; general list construction and list-pattern inference remain unfinished.
63+A list literal can be inferred when a cast or known gate sample supplies a list type and the supplied prelude has the validated standard list definition. Empty, nonempty and nested literals work, including contextual union tags in elements; mismatched elements report the item and expected type. Imported Hoon lists share this representation. Without a known context or the validated prelude list, the partial checker fails closed; general list construction remains unfinished. For a known standard list with a supported element type, it also infers a complete two-arm branch using `~` and `[item rest]`, in either order. The binders have the element and list types and cannot shadow or duplicate names. Unknown subjects, unsupported element types, other patterns and incomplete arms remain unsupported.
6464
6565A known union of `~` and a null-headed cell can be matched by `~` and `[~ value]` arms in either order. The payload binder is checked for shadowing. Unknown subjects, missing or duplicate arms, and unresolved branch results remain unsupported; this fragment infers the prelude’s `fall` and `need` signatures.
6666
docs/status.md+7−6
@@ -19,7 +19,7 @@ On 2026-10-30, @iko decided that Jibb drops `$?`, so a `+$` takes a union's case
1919
2020## Milestone 2: in progress
2121
22−The repository spec records the subsequent type-system and prelude decisions; those changes also need synchronization to the Claude document. An initial inference fragment and a standalone Hoon type reader are being tested. The fragment explicitly reports that it does not check a module; partial bridges pass selected Hoon atoms, term singletons, nested faced or unfaced cells, supported disjoint unions and opaque standard collections from `/sur` molds and marks into inference. Collections retain their names and supported arguments for printing and unification; nested supported union arguments are retained too. The bridge trusts unchanged results from the source-aware reader; a materialized type graph alone cannot reveal cases Hoon already collapsed. The source-validated standard prelude `list` mold shares this representation with imported lists; other Jibb-written collection molds and prelude collection operations are not yet connected; malformed names and arities fail closed. Selected self-recursive `/sur` molds cross as opaque module-and-name identities; aliases, foreign references, recursive marks, unfolding and construction remain unsupported. 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 a source-derived partial prelude interface, 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 and unit-shaped branches in casts and known union-sample calls, including nested branches. Contextual null-headed cells fit their cases, but do not supply a `|=%$` constructor; unresolved nulls remain pending and are reported separately from tags. A known union of `~` and a null-headed cell supports a complete `~` / `[~ value]` branch in either order, including shadow checks; unknown subjects, missing or duplicate arms, and unresolved branch results remain unsupported. This fragment infers the prelude’s `fall` and `need` signatures. With the validated prelude list and a known cast or gate sample, empty, nonempty and nested list literals infer their element types, including contextual union tags; a mismatched element names both sites. Uncontextualized list literals and general list construction or patterns remain unsupported. 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. The source-validated standard prelude `list` mold shares this representation with imported lists; other Jibb-written collection molds and prelude collection operations are not yet connected; malformed names and arities fail closed. Selected self-recursive `/sur` molds cross as opaque module-and-name identities; aliases, foreign references, recursive marks, unfolding and construction remain unsupported. 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 a source-derived partial prelude interface, 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 and unit-shaped branches in casts and known union-sample calls, including nested branches. Contextual null-headed cells fit their cases, but do not supply a `|=%$` constructor; unresolved nulls remain pending and are reported separately from tags. A known union of `~` and a null-headed cell supports a complete `~` / `[~ value]` branch in either order, including shadow checks; unknown subjects, missing or duplicate arms, and unresolved branch results remain unsupported. This fragment infers the prelude’s `fall` and `need` signatures. With the validated prelude list and a known cast or gate sample, empty, nonempty and nested list literals infer their element types, including contextual union tags; a mismatched element names both sites. For a known standard list with a supported element type, a complete `~` / `[item rest]` branch infers the element and tail types in either arm order and checks binders for shadowing. Uncontextualized list literals, general list construction, unknown subjects, unsupported element types and other or incomplete list patterns remain unsupported. A value with type variable `A` can fit a field whose type is that same `A`, including in generic union payloads and nested or repeated record fields. Other variable-dependent face merges remain unsupported. Supported closed unions print using an in-scope name or imported alias; an unnamed nongeneric union prints its cases, parenthesized when nested. The latter is print-only. Generic union types retain all arguments in their printed name; if that name is unavailable, the partial printer reports the limitation. Different import faces for the same origin remain compatible; compatibility across distinct union origins and some generic-argument comparisons remain unsupported. Nonrecursive generic aliases can reorder, repeat or omit parameters while retaining a union’s origin, including through local scopes and library interfaces. A generic union declared directly inside a body remains unsupported, as do differing-variable face constraints in a union payload. A transitive generic union whose name is unavailable is reported as unsupported instead of hiding its arguments. Unfixed decimal literals default to `@ud` in gate-free inferred types; recursive local groups and molds, general branch tag context, other constraint cases and defaulting inside gate types still need work. Collection recognition checks the originating core and fails closed on shadows or unsupported Ford subject shapes; a wrapper regression also rejects forged subjects, samples and tails. Its golden fixtures include three real Tlon files. A Clay test passes a Ford-built nested union through the reader into partial inference. The partial prelude includes `murn`, `join`, `snip` and `rear`, parsed but still awaiting checker and backend validation, and [prelude-inventory.md](prelude-inventory.md) is a source audit, not the complete inventory or signatures. The milestone remains unfinished.
2323
2424The shared prelude interface reserves every name present in the supplied vendored source and makes only supported inferred entries available, including `list`, `unit`, `same`, `fall` and `need`. Unsupported entries such as most list helpers remain reserved but unavailable. All callers use the same prelude origin, so a library can export a type containing unqualified `(unit A)` to another module. Preparation rejects empty, malformed, conflicting or import-bearing source; the prepared value is trusted and must come unchanged from `+prepare-prelude`. The module-scope fixture compares the prepared and source-taking paths against the real prelude and a two-module golden under eval and on the ship. The source and checker remain incomplete, so this does not establish complete shadowing coverage or a checked module.
2525
@@ -39,8 +39,8 @@ What the plan asks for, and where it is:
3939
4040Besides the plan's list:
4141
42−- 499 golden cases: 283 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.
43−- The 499-case corpus passed under `urbit eval` in 56.2 s. The fake ship passed all 504 tests, including the importer, importer/checker and mark/checker bridges, module scope and unification checks, with 28.5 s for sync and 31.2 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+- 501 golden cases: 285 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.
43+- The 501-case corpus passed under `urbit eval` in 58.3 s. The fake ship passed all 506 tests, including the importer, importer/checker and mark/checker bridges, module scope and unification checks, with 27.5 s for sync and 32.5 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.
4444- `tools/testdata/selftest` (22 checks) and `tools/testdata/ship-selftest` test the tools themselves.
4545- 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.
4646- 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).
@@ -80,14 +80,15 @@ Besides the plan's list:
8080| e878edc | 2026-10-30 | Infer complete unit-shaped branches and bridge selected recursive Hoon molds |
8181| 743dfd8 | 2026-10-30 | Propagate union context through unit-shaped branches |
8282| 3f90fa8 | 2026-10-30 | Share a partial prelude interface across module inference |
83−| This change | 2026-10-30 | Infer contextual list literals and validate prelude parity |
83+| 29bd39f | 2026-10-30 | Infer contextual list literals and validate prelude parity |
84+| This change | 2026-10-30 | Infer complete list-shaped branches |
8485
8586## Checking it
8687
8788On a machine set up as [development.md](development.md) says:
8889
8990```
90−tools/golden # 499 cases under urbit eval
91+tools/golden # 501 cases under urbit eval
9192tools/importer-test # the Hoon importer fixture projection
9293tools/type-import-test # the importer/checker bridge fixture
9394tools/type-mark-test # the mark/checker bridge fixture
@@ -97,7 +98,7 @@ tools/testdata/selftest # the tools themselves
9798tools/doc-blocks docs/spec # the doc's examples are golden cases
9899tools/ship start
99100tools/ship gen-tests --check # tests/lib/jibb.hoon is up to date
100−tools/ship test # the same 499 cases as -test arms on the ship
101+tools/ship test # the same 501 cases as -test arms on the ship
101102tools/testdata/ship-selftest
102103tools/ship check-commit # |commit stores .jibb files
103104tools/clay-fixtures # example /sur files and marks build through Clay
jibb-dev/lib/jibb.hoon+63−3
@@ -6251,6 +6251,64 @@
62516251 ?: (unit-empty-case i.t.cases.t) (unit-payload-case i.cases.t)
62526252 ~
62536253::
6254+:: List matching currently covers exactly null and a cell of two binders.
6255+:: The head has the element type and the tail has the whole list type.
6256+:: Other patterns and lists whose element mold is empty remain unsupported.
6257+::
6258+++ list-payload-pattern
6259+ |= p=pattern
6260+ ^- (unit [head=term tail=term])
6261+ ?. ?=(%cell -.p) ~
6262+ ?~ items.p ~
6263+ ?~ t.items.p ~
6264+ ?^ t.t.items.p ~
6265+ ?. ?=(%bind -.i.items.p) ~
6266+ ?. ?=(%bind -.i.t.items.p) ~
6267+ `[name.i.items.p name.i.t.items.p]
6268+::
6269+++ infer-list-branch
6270+ |= [e=expr env=ienv state=istate expected=(unit [typ=itype context=span]) typ=itype]
6271+ ^- iresult
6272+ ?> ?=(%branch -.e)
6273+ ?> ?=(%collection -.typ)
6274+ ?. =(%list name.typ) [%| ["list pattern is not supported by partial inference" ~]]
6275+ ?~ prelude.state [%| ["list pattern needs the standard prelude in partial inference" ~]]
6276+ ?. =(at.u.prelude.state /lib/jibb/prelude/jibb)
6277+ [%| ["list pattern needs the standard prelude in partial inference" ~]]
6278+ =/ standard=(unit ischeme) (find-jibb-mold %list u.prelude.state)
6279+ ?~ standard [%| ["list pattern needs the standard prelude in partial inference" ~]]
6280+ ?. =(u.standard [[%collection %list ~[[%var 0]]] ~[0]])
6281+ [%| ["list pattern needs the standard prelude in partial inference" ~]]
6282+ ?~ args.typ [%| ["list pattern is not supported by partial inference" ~]]
6283+ ?^ t.args.typ [%| ["list pattern is not supported by partial inference" ~]]
6284+ ?~ arms.e [%| ["list branch is not supported by partial inference" ~]]
6285+ ?~ t.arms.e [%| ["list branch is not supported by partial inference" ~]]
6286+ ?^ t.t.arms.e [%| ["list branch is not supported by partial inference" ~]]
6287+ =/ x=arm i.arms.e
6288+ =/ y=arm i.t.arms.e
6289+ =/ first-empty=? (unit-empty-pattern pat.x)
6290+ =/ first-name=(unit [head=term tail=term]) (list-payload-pattern pat.x)
6291+ =/ second-name=(unit [head=term tail=term]) (list-payload-pattern pat.y)
6292+ ?. |(&(first-empty ?=(^ second-name)) &((unit-empty-pattern pat.y) ?=(^ first-name)))
6293+ [%| ["list branch pattern is not supported by partial inference" ~]]
6294+ =/ binder=(unit [head=term tail=term]) ?:(first-empty second-name first-name)
6295+ ?~ binder [%| ["list branch pattern is not supported by partial inference" ~]]
6296+ ?: |(=(head.u.binder tail.u.binder) ?=(^ (ienv-lookup head.u.binder env)) ?=(^ (ienv-lookup tail.u.binder env)) (lien globals.state |=(n=term |(=(n head.u.binder) =(n tail.u.binder)))))
6297+ [%| ["pattern binder shadows a name" ~]]
6298+ =/ extended=ienv [[head.u.binder [i.args.typ ~]] [tail.u.binder [typ ~]] env]
6299+ =/ left=iresult
6300+ ?~ expected (infer-fragment val.x ?:(first-empty env extended) state)
6301+ (infer-union-context val.x typ.u.expected ?:(first-empty env extended) state context.u.expected)
6302+ ?: ?=(%| -.left) left
6303+ =/ right=iresult
6304+ ?~ expected (infer-fragment val.y ?:(first-empty extended env) state.p.left)
6305+ (infer-union-context val.y typ.u.expected ?:(first-empty extended env) state.p.left context.u.expected)
6306+ ?: ?=(%| -.right) right
6307+ ?^ expected [%& typ.u.expected state.p.right]
6308+ =/ joined=(unit isub) (itype-unify typ.p.left typ.p.right sub.state.p.right)
6309+ ?~ joined [%| ["list branch results need unsupported inference" ~]]
6310+ [%& typ.p.left state.p.right(sub u.joined)]
6311+::
62546312++ infer-unit-branch
62556313 |= [e=expr env=ienv state=istate expected=(unit [typ=itype context=span])]
62566314 ^- iresult
@@ -6258,6 +6316,11 @@
62586316 ?~ arms.e [%| ["unit branch is not supported by partial inference" ~]]
62596317 ?~ t.arms.e [%| ["unit branch is not supported by partial inference" ~]]
62606318 ?^ t.t.arms.e [%| ["unit branch is not supported by partial inference" ~]]
6319+ =/ subject=iresult (infer-fragment subject.e env state)
6320+ ?: ?=(%| -.subject) subject
6321+ =/ typ=itype (itype-normalize typ.p.subject sub.state.p.subject)
6322+ ?: &(?=(%collection -.typ) =(%list name.typ))
6323+ (infer-list-branch e env state.p.subject expected typ)
62616324 =/ x=arm i.arms.e
62626325 =/ y=arm i.t.arms.e
62636326 =/ first-empty=? (unit-empty-pattern pat.x)
@@ -6269,9 +6332,6 @@
62696332 ?~ binder [%| ["unit branch pattern is not supported by partial inference" ~]]
62706333 ?: |(?=(^ (ienv-lookup u.binder env)) (lien globals.state |=(n=term =(n u.binder))))
62716334 [%| ["pattern binder shadows a name" ~]]
6272− =/ subject=iresult (infer-fragment subject.e env state)
6273− ?: ?=(%| -.subject) subject
6274− =/ typ=itype (itype-normalize typ.p.subject sub.state.p.subject)
62756335 =/ payload=(unit itype) (unit-union-payload typ)
62766336 ?~ payload [%| ["unit branch subject is not supported by partial inference" ~]]
62776337 =/ extended=ienv [[u.binder [u.payload ~]] env]
tests/golden/types-list-pattern-imported/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Patterns: "Every case needs an arm or a catch-all"; Molds: containers include `(list A)` and `(set A)`.
2+tests: A real Hoon list import supports head and tail patterns in either order; an imported set is not silently treated as a list.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-list-pattern-imported/imports.txtnew file+2
@@ -0,0 +1,2 @@
1+fixture texts
2+fixture text-set
tests/golden/types-list-pattern-imported/modules.txtnew file+1
@@ -0,0 +1 @@
1+# Use the prelude-aware checker.
tests/golden/types-list-pattern-imported/source.jibbnew file+13
@@ -0,0 +1,13 @@
1+/- fixture
2+++ imported-head |= xs=texts.fixture
3+ ?- xs
4+ ~ !!
5+ [item rest] item
6+++ imported-tail |= xs=texts.fixture
7+ ?- xs
8+ [item rest] rest
9+ ~ !!
10+++ set-shape |= xs=text-set.fixture
11+ ?- xs
12+ ~ !!
13+ [item rest] item
tests/golden/types-list-pattern-imported/sur/fixture.txtnew file+5
@@ -0,0 +1,5 @@
1+|%
2++$ texts (list @t)
3++$ ships (list @p)
4++$ text-set (set @t)
5+--
tests/golden/types-list-pattern-imported/tokens.txtnew file+66
@@ -0,0 +1,66 @@
1+1:1 glyph /-
2+1:5 name fixture
3+2:1 NEWLINE
4+2:1 glyph ++
5+2:4 name imported-head
6+2:18 glyph |=
7+2:21 name xs
8+2:23 tight glyph =
9+2:24 tight wing texts.fixture
10+3:3 INDENT
11+3:3 glyph ?-
12+3:6 name xs
13+4:5 INDENT
14+4:5 lit ~
15+4:7 glyph !!
16+5:5 NEWLINE
17+5:5 glyph [
18+5:6 tight name item
19+5:11 name rest
20+5:15 tight glyph ]
21+5:17 name item
22+6:1 DEDENT
23+6:1 DEDENT
24+6:1 NEWLINE
25+6:1 glyph ++
26+6:4 name imported-tail
27+6:18 glyph |=
28+6:21 name xs
29+6:23 tight glyph =
30+6:24 tight wing texts.fixture
31+7:3 INDENT
32+7:3 glyph ?-
33+7:6 name xs
34+8:5 INDENT
35+8:5 glyph [
36+8:6 tight name item
37+8:11 name rest
38+8:15 tight glyph ]
39+8:17 name rest
40+9:5 NEWLINE
41+9:5 lit ~
42+9:7 glyph !!
43+10:1 DEDENT
44+10:1 DEDENT
45+10:1 NEWLINE
46+10:1 glyph ++
47+10:4 name set-shape
48+10:14 glyph |=
49+10:17 name xs
50+10:19 tight glyph =
51+10:20 tight wing text-set.fixture
52+11:3 INDENT
53+11:3 glyph ?-
54+11:6 name xs
55+12:5 INDENT
56+12:5 lit ~
57+12:7 glyph !!
58+13:5 NEWLINE
59+13:5 glyph [
60+13:6 tight name item
61+13:11 name rest
62+13:15 tight glyph ]
63+13:17 name item
64+13:21 DEDENT
65+13:21 DEDENT
66+13:21 NEWLINE
tests/golden/types-list-pattern-imported/tree.txtnew file+32
@@ -0,0 +1,32 @@
1+(module
2+ (sur 1:1 fixture)
3+ (value 2:1 imported-head
4+ (gate 2:18
5+ (face 2:21 xs (ref 2:24 texts.fixture))
6+ (body 3:3
7+ (branch 3:3
8+ (wing 3:6 xs)
9+ (arm 4:5 (lit 4:5 ~) (crash 4:7))
10+ (arm 5:5
11+ (cell 5:5 (bind 5:6 item) (bind 5:11 rest))
12+ (wing 5:17 item))))))
13+ (value 6:1 imported-tail
14+ (gate 6:18
15+ (face 6:21 xs (ref 6:24 texts.fixture))
16+ (body 7:3
17+ (branch 7:3
18+ (wing 7:6 xs)
19+ (arm 8:5
20+ (cell 8:5 (bind 8:6 item) (bind 8:11 rest))
21+ (wing 8:17 rest))
22+ (arm 9:5 (lit 9:5 ~) (crash 9:7))))))
23+ (value 10:1 set-shape
24+ (gate 10:14
25+ (face 10:17 xs (ref 10:20 text-set.fixture))
26+ (body 11:3
27+ (branch 11:3
28+ (wing 11:6 xs)
29+ (arm 12:5 (lit 12:5 ~) (crash 12:7))
30+ (arm 13:5
31+ (cell 13:5 (bind 13:6 item) (bind 13:11 rest))
32+ (wing 13:17 item)))))))
tests/golden/types-list-pattern-imported/types.txtnew file+4
@@ -0,0 +1,4 @@
1+partial inference; module not checked
2+++ imported-head: $-((list @t) @t)
3+++ imported-tail: $-((list @t) (list @t))
4+++ set-shape: unit branch pattern is not supported by partial inference
tests/golden/types-list-patterns/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Patterns: "Every case needs an arm or a catch-all"; "A name in a pattern always binds anew". Modules: no name may shadow an in-scope name.
2+tests: Both orders of an exhaustive list branch bind the head and tail with their respective types; unsupported subjects or patterns, conflicting binders, and unrelated unresolved tags fail closed.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-list-patterns/modules.txtnew file+1
@@ -0,0 +1 @@
1+# Use the source-validated prelude list.
tests/golden/types-list-patterns/source.jibbnew file+64
@@ -0,0 +1,64 @@
1++$ msg
2+ %empty
3+ [%item text=@t]
4+++ first-item |= xs=(list @t)
5+ ?- xs
6+ ~ !!
7+ [item rest] item
8+++ rest-items |= xs=(list @t)
9+ ?- xs
10+ [item rest] rest
11+ ~ !!
12+++ with-context |= xs=(list @t)
13+ ^- msg
14+ ?- xs
15+ ~ %empty
16+ [item rest] [%item item]
17+++ shadow |= xs=(list @t)
18+ ?- xs
19+ ~ !!
20+ [xs rest] xs
21+++ duplicate |= xs=(list @t)
22+ ?- xs
23+ ~ !!
24+ [item item] item
25+++ unknown |= xs
26+ ?- xs
27+ ~ !!
28+ [item rest] item
29+++ not-list |= xs=@t
30+ ?- xs
31+ ~ !!
32+ [item rest] item
33+++ missing |= xs=(list @t)
34+ ?- xs
35+ ~ !!
36+++ invalid |= xs=(list @t)
37+ ?- xs
38+ ~ !!
39+ [%tag rest] rest
40+++ unresolved |= xs=(list @t)
41+ ?- xs
42+ ~ %empty
43+ [item rest] %more
44+++ duplicate-arm |= xs=(list @t)
45+ ?- xs
46+ ~ !!
47+ ~ !!
48+ [item rest] item
49+++ unrelated |= xs=(list @t)
50+ ~& %pending
51+ ?- xs
52+ ~ !!
53+ [item rest] item
54+++ empty-elements |= xs=(list !!)
55+ ?- xs
56+ ~ !!
57+ [item rest] item
58++$ maybe
59+ ~
60+ [~ value=@t]
61+++ unit-shape |= xs=maybe
62+ ?- xs
63+ ~ !!
64+ [item rest] item
tests/golden/types-list-patterns/tokens.txtnew file+359
@@ -0,0 +1,359 @@
1+1:1 glyph +$
2+1:4 name msg
3+2:3 INDENT
4+2:3 lit %empty
5+3:3 NEWLINE
6+3:3 glyph [
7+3:4 tight lit %item
8+3:10 name text
9+3:14 tight glyph =
10+3:15 tight aura @t
11+3:17 tight glyph ]
12+4:1 DEDENT
13+4:1 NEWLINE
14+4:1 glyph ++
15+4:4 name first-item
16+4:15 glyph |=
17+4:18 name xs
18+4:20 tight glyph =
19+4:21 tight glyph (
20+4:22 tight name list
21+4:27 aura @t
22+4:29 tight glyph )
23+5:3 INDENT
24+5:3 glyph ?-
25+5:6 name xs
26+6:5 INDENT
27+6:5 lit ~
28+6:7 glyph !!
29+7:5 NEWLINE
30+7:5 glyph [
31+7:6 tight name item
32+7:11 name rest
33+7:15 tight glyph ]
34+7:17 name item
35+8:1 DEDENT
36+8:1 DEDENT
37+8:1 NEWLINE
38+8:1 glyph ++
39+8:4 name rest-items
40+8:15 glyph |=
41+8:18 name xs
42+8:20 tight glyph =
43+8:21 tight glyph (
44+8:22 tight name list
45+8:27 aura @t
46+8:29 tight glyph )
47+9:3 INDENT
48+9:3 glyph ?-
49+9:6 name xs
50+10:5 INDENT
51+10:5 glyph [
52+10:6 tight name item
53+10:11 name rest
54+10:15 tight glyph ]
55+10:17 name rest
56+11:5 NEWLINE
57+11:5 lit ~
58+11:7 glyph !!
59+12:1 DEDENT
60+12:1 DEDENT
61+12:1 NEWLINE
62+12:1 glyph ++
63+12:4 name with-context
64+12:17 glyph |=
65+12:20 name xs
66+12:22 tight glyph =
67+12:23 tight glyph (
68+12:24 tight name list
69+12:29 aura @t
70+12:31 tight glyph )
71+13:3 INDENT
72+13:3 glyph ^-
73+13:6 name msg
74+14:5 INDENT
75+14:5 glyph ?-
76+14:8 name xs
77+15:7 INDENT
78+15:7 lit ~
79+15:9 lit %empty
80+16:7 NEWLINE
81+16:7 glyph [
82+16:8 tight name item
83+16:13 name rest
84+16:17 tight glyph ]
85+16:19 glyph [
86+16:20 tight lit %item
87+16:26 name item
88+16:30 tight glyph ]
89+17:1 DEDENT
90+17:1 DEDENT
91+17:1 DEDENT
92+17:1 NEWLINE
93+17:1 glyph ++
94+17:4 name shadow
95+17:11 glyph |=
96+17:14 name xs
97+17:16 tight glyph =
98+17:17 tight glyph (
99+17:18 tight name list
100+17:23 aura @t
101+17:25 tight glyph )
102+18:3 INDENT
103+18:3 glyph ?-
104+18:6 name xs
105+19:5 INDENT
106+19:5 lit ~
107+19:7 glyph !!
108+20:5 NEWLINE
109+20:5 glyph [
110+20:6 tight name xs
111+20:9 name rest
112+20:13 tight glyph ]
113+20:15 name xs
114+21:1 DEDENT
115+21:1 DEDENT
116+21:1 NEWLINE
117+21:1 glyph ++
118+21:4 name duplicate
119+21:14 glyph |=
120+21:17 name xs
121+21:19 tight glyph =
122+21:20 tight glyph (
123+21:21 tight name list
124+21:26 aura @t
125+21:28 tight glyph )
126+22:3 INDENT
127+22:3 glyph ?-
128+22:6 name xs
129+23:5 INDENT
130+23:5 lit ~
131+23:7 glyph !!
132+24:5 NEWLINE
133+24:5 glyph [
134+24:6 tight name item
135+24:11 name item
136+24:15 tight glyph ]
137+24:17 name item
138+25:1 DEDENT
139+25:1 DEDENT
140+25:1 NEWLINE
141+25:1 glyph ++
142+25:4 name unknown
143+25:12 glyph |=
144+25:15 name xs
145+26:3 INDENT
146+26:3 glyph ?-
147+26:6 name xs
148+27:5 INDENT
149+27:5 lit ~
150+27:7 glyph !!
151+28:5 NEWLINE
152+28:5 glyph [
153+28:6 tight name item
154+28:11 name rest
155+28:15 tight glyph ]
156+28:17 name item
157+29:1 DEDENT
158+29:1 DEDENT
159+29:1 NEWLINE
160+29:1 glyph ++
161+29:4 name not-list
162+29:13 glyph |=
163+29:16 name xs
164+29:18 tight glyph =
165+29:19 tight aura @t
166+30:3 INDENT
167+30:3 glyph ?-
168+30:6 name xs
169+31:5 INDENT
170+31:5 lit ~
171+31:7 glyph !!
172+32:5 NEWLINE
173+32:5 glyph [
174+32:6 tight name item
175+32:11 name rest
176+32:15 tight glyph ]
177+32:17 name item
178+33:1 DEDENT
179+33:1 DEDENT
180+33:1 NEWLINE
181+33:1 glyph ++
182+33:4 name missing
183+33:12 glyph |=
184+33:15 name xs
185+33:17 tight glyph =
186+33:18 tight glyph (
187+33:19 tight name list
188+33:24 aura @t
189+33:26 tight glyph )
190+34:3 INDENT
191+34:3 glyph ?-
192+34:6 name xs
193+35:5 INDENT
194+35:5 lit ~
195+35:7 glyph !!
196+36:1 DEDENT
197+36:1 DEDENT
198+36:1 NEWLINE
199+36:1 glyph ++
200+36:4 name invalid
201+36:12 glyph |=
202+36:15 name xs
203+36:17 tight glyph =
204+36:18 tight glyph (
205+36:19 tight name list
206+36:24 aura @t
207+36:26 tight glyph )
208+37:3 INDENT
209+37:3 glyph ?-
210+37:6 name xs
211+38:5 INDENT
212+38:5 lit ~
213+38:7 glyph !!
214+39:5 NEWLINE
215+39:5 glyph [
216+39:6 tight lit %tag
217+39:11 name rest
218+39:15 tight glyph ]
219+39:17 name rest
220+40:1 DEDENT
221+40:1 DEDENT
222+40:1 NEWLINE
223+40:1 glyph ++
224+40:4 name unresolved
225+40:15 glyph |=
226+40:18 name xs
227+40:20 tight glyph =
228+40:21 tight glyph (
229+40:22 tight name list
230+40:27 aura @t
231+40:29 tight glyph )
232+41:3 INDENT
233+41:3 glyph ?-
234+41:6 name xs
235+42:5 INDENT
236+42:5 lit ~
237+42:7 lit %empty
238+43:5 NEWLINE
239+43:5 glyph [
240+43:6 tight name item
241+43:11 name rest
242+43:15 tight glyph ]
243+43:17 lit %more
244+44:1 DEDENT
245+44:1 DEDENT
246+44:1 NEWLINE
247+44:1 glyph ++
248+44:4 name duplicate-arm
249+44:18 glyph |=
250+44:21 name xs
251+44:23 tight glyph =
252+44:24 tight glyph (
253+44:25 tight name list
254+44:30 aura @t
255+44:32 tight glyph )
256+45:3 INDENT
257+45:3 glyph ?-
258+45:6 name xs
259+46:5 INDENT
260+46:5 lit ~
261+46:7 glyph !!
262+47:5 NEWLINE
263+47:5 lit ~
264+47:7 glyph !!
265+48:5 NEWLINE
266+48:5 glyph [
267+48:6 tight name item
268+48:11 name rest
269+48:15 tight glyph ]
270+48:17 name item
271+49:1 DEDENT
272+49:1 DEDENT
273+49:1 NEWLINE
274+49:1 glyph ++
275+49:4 name unrelated
276+49:14 glyph |=
277+49:17 name xs
278+49:19 tight glyph =
279+49:20 tight glyph (
280+49:21 tight name list
281+49:26 aura @t
282+49:28 tight glyph )
283+50:3 INDENT
284+50:3 glyph ~&
285+50:6 lit %pending
286+51:5 INDENT
287+51:5 glyph ?-
288+51:8 name xs
289+52:7 INDENT
290+52:7 lit ~
291+52:9 glyph !!
292+53:7 NEWLINE
293+53:7 glyph [
294+53:8 tight name item
295+53:13 name rest
296+53:17 tight glyph ]
297+53:19 name item
298+54:1 DEDENT
299+54:1 DEDENT
300+54:1 DEDENT
301+54:1 NEWLINE
302+54:1 glyph ++
303+54:4 name empty-elements
304+54:19 glyph |=
305+54:22 name xs
306+54:24 tight glyph =
307+54:25 tight glyph (
308+54:26 tight name list
309+54:31 glyph !!
310+54:33 tight glyph )
311+55:3 INDENT
312+55:3 glyph ?-
313+55:6 name xs
314+56:5 INDENT
315+56:5 lit ~
316+56:7 glyph !!
317+57:5 NEWLINE
318+57:5 glyph [
319+57:6 tight name item
320+57:11 name rest
321+57:15 tight glyph ]
322+57:17 name item
323+58:1 DEDENT
324+58:1 DEDENT
325+58:1 NEWLINE
326+58:1 glyph +$
327+58:4 name maybe
328+59:3 INDENT
329+59:3 lit ~
330+60:3 NEWLINE
331+60:3 glyph [
332+60:4 tight lit ~
333+60:6 name value
334+60:11 tight glyph =
335+60:12 tight aura @t
336+60:14 tight glyph ]
337+61:1 DEDENT
338+61:1 NEWLINE
339+61:1 glyph ++
340+61:4 name unit-shape
341+61:15 glyph |=
342+61:18 name xs
343+61:20 tight glyph =
344+61:21 tight name maybe
345+62:3 INDENT
346+62:3 glyph ?-
347+62:6 name xs
348+63:5 INDENT
349+63:5 lit ~
350+63:7 glyph !!
351+64:5 NEWLINE
352+64:5 glyph [
353+64:6 tight name item
354+64:11 name rest
355+64:15 tight glyph ]
356+64:17 name item
357+64:21 DEDENT
358+64:21 DEDENT
359+64:21 NEWLINE
tests/golden/types-list-patterns/tree.txtnew file+168
@@ -0,0 +1,168 @@
1+(module
2+ (mold 1:1 msg
3+ (union 2:3
4+ (const 2:3 %empty)
5+ (cell 3:3
6+ (const 3:4 %item)
7+ (face 3:10 text (aura 3:15 @t)))))
8+ (value 4:1 first-item
9+ (gate 4:15
10+ (face 4:18 xs
11+ (apply 4:21 list (aura 4:27 @t)))
12+ (body 5:3
13+ (branch 5:3
14+ (wing 5:6 xs)
15+ (arm 6:5 (lit 6:5 ~) (crash 6:7))
16+ (arm 7:5
17+ (cell 7:5 (bind 7:6 item) (bind 7:11 rest))
18+ (wing 7:17 item))))))
19+ (value 8:1 rest-items
20+ (gate 8:15
21+ (face 8:18 xs
22+ (apply 8:21 list (aura 8:27 @t)))
23+ (body 9:3
24+ (branch 9:3
25+ (wing 9:6 xs)
26+ (arm 10:5
27+ (cell 10:5 (bind 10:6 item) (bind 10:11 rest))
28+ (wing 10:17 rest))
29+ (arm 11:5 (lit 11:5 ~) (crash 11:7))))))
30+ (value 12:1 with-context
31+ (gate 12:17
32+ (face 12:20 xs
33+ (apply 12:23 list (aura 12:29 @t)))
34+ (body 13:3
35+ (cast 13:3
36+ (ref 13:6 msg)
37+ (body 14:5
38+ (branch 14:5
39+ (wing 14:8 xs)
40+ (arm 15:7 (lit 15:7 ~) (lit 15:9 %empty))
41+ (arm 16:7
42+ (cell 16:7 (bind 16:8 item) (bind 16:13 rest))
43+ (tuple 16:19 (lit 16:20 %item) (wing 16:26 item)))))))))
44+ (value 17:1 shadow
45+ (gate 17:11
46+ (face 17:14 xs
47+ (apply 17:17 list (aura 17:23 @t)))
48+ (body 18:3
49+ (branch 18:3
50+ (wing 18:6 xs)
51+ (arm 19:5 (lit 19:5 ~) (crash 19:7))
52+ (arm 20:5
53+ (cell 20:5 (bind 20:6 xs) (bind 20:9 rest))
54+ (wing 20:15 xs))))))
55+ (value 21:1 duplicate
56+ (gate 21:14
57+ (face 21:17 xs
58+ (apply 21:20 list (aura 21:26 @t)))
59+ (body 22:3
60+ (branch 22:3
61+ (wing 22:6 xs)
62+ (arm 23:5 (lit 23:5 ~) (crash 23:7))
63+ (arm 24:5
64+ (cell 24:5 (bind 24:6 item) (bind 24:11 item))
65+ (wing 24:17 item))))))
66+ (value 25:1 unknown
67+ (gate 25:12
68+ (bind 25:15 xs)
69+ (body 26:3
70+ (branch 26:3
71+ (wing 26:6 xs)
72+ (arm 27:5 (lit 27:5 ~) (crash 27:7))
73+ (arm 28:5
74+ (cell 28:5 (bind 28:6 item) (bind 28:11 rest))
75+ (wing 28:17 item))))))
76+ (value 29:1 not-list
77+ (gate 29:13
78+ (face 29:16 xs (aura 29:19 @t))
79+ (body 30:3
80+ (branch 30:3
81+ (wing 30:6 xs)
82+ (arm 31:5 (lit 31:5 ~) (crash 31:7))
83+ (arm 32:5
84+ (cell 32:5 (bind 32:6 item) (bind 32:11 rest))
85+ (wing 32:17 item))))))
86+ (value 33:1 missing
87+ (gate 33:12
88+ (face 33:15 xs
89+ (apply 33:18 list (aura 33:24 @t)))
90+ (body 34:3
91+ (branch 34:3
92+ (wing 34:6 xs)
93+ (arm 35:5 (lit 35:5 ~) (crash 35:7))))))
94+ (value 36:1 invalid
95+ (gate 36:12
96+ (face 36:15 xs
97+ (apply 36:18 list (aura 36:24 @t)))
98+ (body 37:3
99+ (branch 37:3
100+ (wing 37:6 xs)
101+ (arm 38:5 (lit 38:5 ~) (crash 38:7))
102+ (arm 39:5
103+ (cell 39:5 (lit 39:6 %tag) (bind 39:11 rest))
104+ (wing 39:17 rest))))))
105+ (value 40:1 unresolved
106+ (gate 40:15
107+ (face 40:18 xs
108+ (apply 40:21 list (aura 40:27 @t)))
109+ (body 41:3
110+ (branch 41:3
111+ (wing 41:6 xs)
112+ (arm 42:5 (lit 42:5 ~) (lit 42:7 %empty))
113+ (arm 43:5
114+ (cell 43:5 (bind 43:6 item) (bind 43:11 rest))
115+ (lit 43:17 %more))))))
116+ (value 44:1 duplicate-arm
117+ (gate 44:18
118+ (face 44:21 xs
119+ (apply 44:24 list (aura 44:30 @t)))
120+ (body 45:3
121+ (branch 45:3
122+ (wing 45:6 xs)
123+ (arm 46:5 (lit 46:5 ~) (crash 46:7))
124+ (arm 47:5 (lit 47:5 ~) (crash 47:7))
125+ (arm 48:5
126+ (cell 48:5 (bind 48:6 item) (bind 48:11 rest))
127+ (wing 48:17 item))))))
128+ (value 49:1 unrelated
129+ (gate 49:14
130+ (face 49:17 xs
131+ (apply 49:20 list (aura 49:26 @t)))
132+ (body 50:3
133+ (trace 50:3
134+ (lit 50:6 %pending)
135+ (body 51:5
136+ (branch 51:5
137+ (wing 51:8 xs)
138+ (arm 52:7 (lit 52:7 ~) (crash 52:9))
139+ (arm 53:7
140+ (cell 53:7 (bind 53:8 item) (bind 53:13 rest))
141+ (wing 53:19 item))))))))
142+ (value 54:1 empty-elements
143+ (gate 54:19
144+ (face 54:22 xs
145+ (apply 54:25 list (void 54:31)))
146+ (body 55:3
147+ (branch 55:3
148+ (wing 55:6 xs)
149+ (arm 56:5 (lit 56:5 ~) (crash 56:7))
150+ (arm 57:5
151+ (cell 57:5 (bind 57:6 item) (bind 57:11 rest))
152+ (wing 57:17 item))))))
153+ (mold 58:1 maybe
154+ (union 59:3
155+ (const 59:3 ~)
156+ (cell 60:3
157+ (const 60:4 ~)
158+ (face 60:6 value (aura 60:12 @t)))))
159+ (value 61:1 unit-shape
160+ (gate 61:15
161+ (face 61:18 xs (ref 61:21 maybe))
162+ (body 62:3
163+ (branch 62:3
164+ (wing 62:6 xs)
165+ (arm 63:5 (lit 63:5 ~) (crash 63:7))
166+ (arm 64:5
167+ (cell 64:5 (bind 64:6 item) (bind 64:11 rest))
168+ (wing 64:17 item)))))))
tests/golden/types-list-patterns/types.txtnew file+17
@@ -0,0 +1,17 @@
1+partial inference; module not checked
2++$ msg: cases proven disjoint; mold not checked
3+++ first-item: $-((list @t) @t)
4+++ rest-items: $-((list @t) (list @t))
5+++ with-context: $-((list @t) msg)
6+++ shadow: pattern binder shadows a name
7+++ duplicate: pattern binder shadows a name
8+++ unknown: unit branch pattern is not supported by partial inference
9+++ not-list: unit branch pattern is not supported by partial inference
10+++ missing: branch pattern is not supported by partial inference
11+++ invalid: list branch pattern is not supported by partial inference
12+++ unresolved: list branch results need unsupported inference
13+++ duplicate-arm: branch is not supported by partial inference
14+++ unrelated: tag needs context in partial inference
15+++ empty-elements: sample mold is not supported by partial inference
16++$ maybe: cases proven disjoint; mold not checked
17+++ unit-shape: unit branch pattern is not supported by partial inference
tests/lib/jibb-module-scope.hoon+1−1
@@ -54,7 +54,7 @@
5454::
5555++ list-guard
5656 ^- @t
57− =/ source=@t (crip "/- fixture\0a++ imported |= x=texts.fixture x\0a++ imported-literal ^- texts.fixture ~[\"hi\"]\0a++ literal ^- (list @t) ~[\"hi\"]\0a++ bridge |= x=texts.fixture ^- (list @t) x\0a")
57+ =/ source=@t (crip "/- fixture\0a++ imported |= x=texts.fixture x\0a++ imported-pattern |= xs=texts.fixture\0a ?- xs\0a ~ !!\0a [item rest] item\0a++ imported-literal ^- texts.fixture ~[\"hi\"]\0a++ literal ^- (list @t) ~[\"hi\"]\0a++ bridge |= x=texts.fixture ^- (list @t) x\0a")
5858 =/ ext=(list [module=term name=term result=*])
5959 ~[[%fixture %texts [%& [%apply %list ~[[%atom %t ~]]]]]]
6060 =/ omitted=@t (crip "++ same |=(x x)\0a")
tests/lib/jibb.hoon+379−365
@@ -1454,303 +1454,313 @@
14541454/* typ-431 %txt /tests/golden/types-list-imported/types/txt
14551455/* imp-431-1 %txt /tests/golden/types-list-imported/sur/fixture/txt
14561456/* imp-431-2 %txt /tests/golden/types-list-imported/sur/fixture/txt
1457−/* src-432 %jibb /tests/golden/types-module-fixtures/source/jibb
1458−/* tok-432 %txt /tests/golden/types-module-fixtures/tokens/txt
1459−/* tre-432 %txt /tests/golden/types-module-fixtures/tree/txt
1460−/* mod-432-1 %jibb /tests/golden/types-module-fixtures/modules/ui/api/blog/jibb
1461−/* mod-432-2 %jibb /tests/golden/types-module-fixtures/modules/ui/components/card/jibb
1462−/* typ-432 %txt /tests/golden/types-module-fixtures/types/txt
1463−/* mtre-432 %txt /tests/golden/types-module-fixtures/module-trees/txt
1464−/* src-433 %jibb /tests/golden/types-module-mixed/source/jibb
1465−/* tok-433 %txt /tests/golden/types-module-mixed/tokens/txt
1466−/* tre-433 %txt /tests/golden/types-module-mixed/tree/txt
1467−/* mod-433-1 %jibb /tests/golden/types-module-mixed/modules/ui/helper/jibb
1468−/* typ-433 %txt /tests/golden/types-module-mixed/types/txt
1469−/* imp-433-1 %txt /tests/golden/types-module-mixed/sur/fixture/txt
1470−/* mark-433-1 %txt /tests/golden/types-module-mixed/mar/label/txt
1471−/* mtre-433 %txt /tests/golden/types-module-mixed/module-trees/txt
1472−/* src-434 %jibb /tests/golden/types-null-context/source/jibb
1473−/* tok-434 %txt /tests/golden/types-null-context/tokens/txt
1474−/* tre-434 %txt /tests/golden/types-null-context/tree/txt
1475−/* typ-434 %txt /tests/golden/types-null-context/types/txt
1476−/* src-435 %jibb /tests/golden/types-null-overlap/source/jibb
1477−/* tok-435 %txt /tests/golden/types-null-overlap/tokens/txt
1478−/* tre-435 %txt /tests/golden/types-null-overlap/tree/txt
1479−/* typ-435 %txt /tests/golden/types-null-overlap/types/txt
1480−/* src-436 %jibb /tests/golden/types-null-unresolved/source/jibb
1481−/* tok-436 %txt /tests/golden/types-null-unresolved/tokens/txt
1482−/* tre-436 %txt /tests/golden/types-null-unresolved/tree/txt
1483−/* typ-436 %txt /tests/golden/types-null-unresolved/types/txt
1484−/* src-437 %jibb /tests/golden/types-partial-apply/source/jibb
1485−/* tok-437 %txt /tests/golden/types-partial-apply/tokens/txt
1486−/* tre-437 %txt /tests/golden/types-partial-apply/tree/txt
1487−/* typ-437 %txt /tests/golden/types-partial-apply/types/txt
1488−/* src-438 %jibb /tests/golden/types-partial-atom-alias/source/jibb
1489−/* tok-438 %txt /tests/golden/types-partial-atom-alias/tokens/txt
1490−/* tre-438 %txt /tests/golden/types-partial-atom-alias/tree/txt
1491−/* typ-438 %txt /tests/golden/types-partial-atom-alias/types/txt
1492−/* src-439 %jibb /tests/golden/types-partial-atom-constraint/source/jibb
1493−/* tok-439 %txt /tests/golden/types-partial-atom-constraint/tokens/txt
1494−/* tre-439 %txt /tests/golden/types-partial-atom-constraint/tree/txt
1495−/* typ-439 %txt /tests/golden/types-partial-atom-constraint/types/txt
1496−/* src-440 %jibb /tests/golden/types-partial-atom-widening/source/jibb
1497−/* tok-440 %txt /tests/golden/types-partial-atom-widening/tokens/txt
1498−/* tre-440 %txt /tests/golden/types-partial-atom-widening/tree/txt
1499−/* typ-440 %txt /tests/golden/types-partial-atom-widening/types/txt
1500−/* src-441 %jibb /tests/golden/types-partial-aura/source/jibb
1501−/* tok-441 %txt /tests/golden/types-partial-aura/tokens/txt
1502−/* tre-441 %txt /tests/golden/types-partial-aura/tree/txt
1503−/* typ-441 %txt /tests/golden/types-partial-aura/types/txt
1504−/* src-442 %jibb /tests/golden/types-partial-aura-family/source/jibb
1505−/* tok-442 %txt /tests/golden/types-partial-aura-family/tokens/txt
1506−/* tre-442 %txt /tests/golden/types-partial-aura-family/tree/txt
1507−/* typ-442 %txt /tests/golden/types-partial-aura-family/types/txt
1508−/* src-443 %jibb /tests/golden/types-partial-aura-generalization/source/jibb
1509−/* tok-443 %txt /tests/golden/types-partial-aura-generalization/tokens/txt
1510−/* tre-443 %txt /tests/golden/types-partial-aura-generalization/tree/txt
1511−/* typ-443 %txt /tests/golden/types-partial-aura-generalization/types/txt
1512−/* src-444 %jibb /tests/golden/types-partial-bare-atom/source/jibb
1513−/* tok-444 %txt /tests/golden/types-partial-bare-atom/tokens/txt
1514−/* tre-444 %txt /tests/golden/types-partial-bare-atom/tree/txt
1515−/* typ-444 %txt /tests/golden/types-partial-bare-atom/types/txt
1516−/* src-445 %jibb /tests/golden/types-partial-branch-widening/source/jibb
1517−/* tok-445 %txt /tests/golden/types-partial-branch-widening/tokens/txt
1518−/* tre-445 %txt /tests/golden/types-partial-branch-widening/tree/txt
1519−/* typ-445 %txt /tests/golden/types-partial-branch-widening/types/txt
1520−/* src-446 %jibb /tests/golden/types-partial-conflicting-sites/source/jibb
1521−/* tok-446 %txt /tests/golden/types-partial-conflicting-sites/tokens/txt
1522−/* tre-446 %txt /tests/golden/types-partial-conflicting-sites/tree/txt
1523−/* typ-446 %txt /tests/golden/types-partial-conflicting-sites/types/txt
1524−/* src-447 %jibb /tests/golden/types-partial-decimal-default/source/jibb
1525−/* tok-447 %txt /tests/golden/types-partial-decimal-default/tokens/txt
1526−/* tre-447 %txt /tests/golden/types-partial-decimal-default/tree/txt
1527−/* typ-447 %txt /tests/golden/types-partial-decimal-default/types/txt
1528−/* src-448 %jibb /tests/golden/types-partial-dependency-chain/source/jibb
1529−/* tok-448 %txt /tests/golden/types-partial-dependency-chain/tokens/txt
1530−/* tre-448 %txt /tests/golden/types-partial-dependency-chain/tree/txt
1531−/* typ-448 %txt /tests/golden/types-partial-dependency-chain/types/txt
1532−/* src-449 %jibb /tests/golden/types-partial-explicit-capital/source/jibb
1533−/* tok-449 %txt /tests/golden/types-partial-explicit-capital/tokens/txt
1534−/* tre-449 %txt /tests/golden/types-partial-explicit-capital/tree/txt
1535−/* typ-449 %txt /tests/golden/types-partial-explicit-capital/types/txt
1536−/* src-450 %jibb /tests/golden/types-partial-forward/source/jibb
1537−/* tok-450 %txt /tests/golden/types-partial-forward/tokens/txt
1538−/* tre-450 %txt /tests/golden/types-partial-forward/tree/txt
1539−/* typ-450 %txt /tests/golden/types-partial-forward/types/txt
1540−/* src-451 %jibb /tests/golden/types-partial-generalization/source/jibb
1541−/* tok-451 %txt /tests/golden/types-partial-generalization/tokens/txt
1542−/* tre-451 %txt /tests/golden/types-partial-generalization/tree/txt
1543−/* typ-451 %txt /tests/golden/types-partial-generalization/types/txt
1544−/* src-452 %jibb /tests/golden/types-partial-identity/source/jibb
1545−/* tok-452 %txt /tests/golden/types-partial-identity/tokens/txt
1546−/* tre-452 %txt /tests/golden/types-partial-identity/tree/txt
1547−/* typ-452 %txt /tests/golden/types-partial-identity/types/txt
1548−/* src-453 %jibb /tests/golden/types-partial-independent-atoms/source/jibb
1549−/* tok-453 %txt /tests/golden/types-partial-independent-atoms/tokens/txt
1550−/* tre-453 %txt /tests/golden/types-partial-independent-atoms/tree/txt
1551−/* typ-453 %txt /tests/golden/types-partial-independent-atoms/types/txt
1552−/* src-454 %jibb /tests/golden/types-partial-local-molds/source/jibb
1553−/* tok-454 %txt /tests/golden/types-partial-local-molds/tokens/txt
1554−/* tre-454 %txt /tests/golden/types-partial-local-molds/tree/txt
1555−/* typ-454 %txt /tests/golden/types-partial-local-molds/types/txt
1556−/* src-455 %jibb /tests/golden/types-partial-locals/source/jibb
1557−/* tok-455 %txt /tests/golden/types-partial-locals/tokens/txt
1558−/* tre-455 %txt /tests/golden/types-partial-locals/tree/txt
1559−/* typ-455 %txt /tests/golden/types-partial-locals/types/txt
1560−/* src-456 %jibb /tests/golden/types-partial-many-atom-constraints/source/jibb
1561−/* tok-456 %txt /tests/golden/types-partial-many-atom-constraints/tokens/txt
1562−/* tre-456 %txt /tests/golden/types-partial-many-atom-constraints/tree/txt
1563−/* typ-456 %txt /tests/golden/types-partial-many-atom-constraints/types/txt
1564−/* src-457 %jibb /tests/golden/types-partial-mold-bare-aura/source/jibb
1565−/* tok-457 %txt /tests/golden/types-partial-mold-bare-aura/tokens/txt
1566−/* tre-457 %txt /tests/golden/types-partial-mold-bare-aura/tree/txt
1567−/* typ-457 %txt /tests/golden/types-partial-mold-bare-aura/types/txt
1568−/* src-458 %jibb /tests/golden/types-partial-mold-composite/source/jibb
1569−/* tok-458 %txt /tests/golden/types-partial-mold-composite/tokens/txt
1570−/* tre-458 %txt /tests/golden/types-partial-mold-composite/tree/txt
1571−/* typ-458 %txt /tests/golden/types-partial-mold-composite/types/txt
1572−/* src-459 %jibb /tests/golden/types-partial-mold-forward/source/jibb
1573−/* tok-459 %txt /tests/golden/types-partial-mold-forward/tokens/txt
1574−/* tre-459 %txt /tests/golden/types-partial-mold-forward/tree/txt
1575−/* typ-459 %txt /tests/golden/types-partial-mold-forward/types/txt
1576−/* src-460 %jibb /tests/golden/types-partial-mold-recursive/source/jibb
1577−/* tok-460 %txt /tests/golden/types-partial-mold-recursive/tokens/txt
1578−/* tre-460 %txt /tests/golden/types-partial-mold-recursive/tree/txt
1579−/* typ-460 %txt /tests/golden/types-partial-mold-recursive/types/txt
1580−/* src-461 %jibb /tests/golden/types-partial-occurs/source/jibb
1581−/* tok-461 %txt /tests/golden/types-partial-occurs/tokens/txt
1582−/* tre-461 %txt /tests/golden/types-partial-occurs/tree/txt
1583−/* typ-461 %txt /tests/golden/types-partial-occurs/types/txt
1584−/* src-462 %jibb /tests/golden/types-partial-projection/source/jibb
1585−/* tok-462 %txt /tests/golden/types-partial-projection/tokens/txt
1586−/* tre-462 %txt /tests/golden/types-partial-projection/tree/txt
1587−/* typ-462 %txt /tests/golden/types-partial-projection/types/txt
1588−/* src-463 %jibb /tests/golden/types-partial-shadow-global/source/jibb
1589−/* tok-463 %txt /tests/golden/types-partial-shadow-global/tokens/txt
1590−/* tre-463 %txt /tests/golden/types-partial-shadow-global/tree/txt
1591−/* typ-463 %txt /tests/golden/types-partial-shadow-global/types/txt
1592−/* src-464 %jibb /tests/golden/types-partial-shared-tvar/source/jibb
1593−/* tok-464 %txt /tests/golden/types-partial-shared-tvar/tokens/txt
1594−/* tre-464 %txt /tests/golden/types-partial-shared-tvar/tree/txt
1595−/* typ-464 %txt /tests/golden/types-partial-shared-tvar/types/txt
1596−/* src-465 %jibb /tests/golden/types-partial-union-cases/source/jibb
1597−/* tok-465 %txt /tests/golden/types-partial-union-cases/tokens/txt
1598−/* tre-465 %txt /tests/golden/types-partial-union-cases/tree/txt
1599−/* typ-465 %txt /tests/golden/types-partial-union-cases/types/txt
1600−/* src-466 %jibb /tests/golden/types-partial-union-edges/source/jibb
1601−/* tok-466 %txt /tests/golden/types-partial-union-edges/tokens/txt
1602−/* tre-466 %txt /tests/golden/types-partial-union-edges/tree/txt
1603−/* typ-466 %txt /tests/golden/types-partial-union-edges/types/txt
1604−/* src-467 %jibb /tests/golden/types-partial-unresolved-tag/source/jibb
1605−/* tok-467 %txt /tests/golden/types-partial-unresolved-tag/tokens/txt
1606−/* tre-467 %txt /tests/golden/types-partial-unresolved-tag/tree/txt
1607−/* typ-467 %txt /tests/golden/types-partial-unresolved-tag/types/txt
1608−/* src-468 %jibb /tests/golden/types-prelude-direct/source/jibb
1609−/* tok-468 %txt /tests/golden/types-prelude-direct/tokens/txt
1610−/* tre-468 %txt /tests/golden/types-prelude-direct/tree/txt
1611−/* typ-468 %txt /tests/golden/types-prelude-direct/types/txt
1612−/* src-469 %jibb /tests/golden/types-prelude-interface/source/jibb
1613−/* tok-469 %txt /tests/golden/types-prelude-interface/tokens/txt
1614−/* tre-469 %txt /tests/golden/types-prelude-interface/tree/txt
1615−/* mod-469-1 %jibb /tests/golden/types-prelude-interface/modules/ui/left/jibb
1616−/* mod-469-2 %jibb /tests/golden/types-prelude-interface/modules/ui/right/jibb
1617−/* typ-469 %txt /tests/golden/types-prelude-interface/types/txt
1618−/* mtre-469 %txt /tests/golden/types-prelude-interface/module-trees/txt
1619−/* src-470 %jibb /tests/golden/types-record-bound-variable/source/jibb
1620−/* tok-470 %txt /tests/golden/types-record-bound-variable/tokens/txt
1621−/* tre-470 %txt /tests/golden/types-record-bound-variable/tree/txt
1622−/* typ-470 %txt /tests/golden/types-record-bound-variable/types/txt
1623−/* src-471 %jibb /tests/golden/types-record-faces/source/jibb
1624−/* tok-471 %txt /tests/golden/types-record-faces/tokens/txt
1625−/* tre-471 %txt /tests/golden/types-record-faces/tree/txt
1626−/* typ-471 %txt /tests/golden/types-record-faces/types/txt
1627−/* src-472 %jibb /tests/golden/types-record-import/source/jibb
1628−/* tok-472 %txt /tests/golden/types-record-import/tokens/txt
1629−/* tre-472 %txt /tests/golden/types-record-import/tree/txt
1630−/* mod-472-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
1631−/* typ-472 %txt /tests/golden/types-record-import/types/txt
1632−/* mtre-472 %txt /tests/golden/types-record-import/module-trees/txt
1633−/* src-473 %jibb /tests/golden/types-record-local-scheme/source/jibb
1634−/* tok-473 %txt /tests/golden/types-record-local-scheme/tokens/txt
1635−/* tre-473 %txt /tests/golden/types-record-local-scheme/tree/txt
1636−/* typ-473 %txt /tests/golden/types-record-local-scheme/types/txt
1637−/* src-474 %jibb /tests/golden/types-record-nested/source/jibb
1638−/* tok-474 %txt /tests/golden/types-record-nested/tokens/txt
1639−/* tre-474 %txt /tests/golden/types-record-nested/tree/txt
1640−/* typ-474 %txt /tests/golden/types-record-nested/types/txt
1641−/* src-475 %jibb /tests/golden/types-record-to-tuple/source/jibb
1642−/* tok-475 %txt /tests/golden/types-record-to-tuple/tokens/txt
1643−/* tre-475 %txt /tests/golden/types-record-to-tuple/tree/txt
1644−/* typ-475 %txt /tests/golden/types-record-to-tuple/types/txt
1645−/* src-476 %jibb /tests/golden/types-union-alias/source/jibb
1646−/* tok-476 %txt /tests/golden/types-union-alias/tokens/txt
1647−/* tre-476 %txt /tests/golden/types-union-alias/tree/txt
1648−/* typ-476 %txt /tests/golden/types-union-alias/types/txt
1649−/* src-477 %jibb /tests/golden/types-union-branch-context/source/jibb
1650−/* tok-477 %txt /tests/golden/types-union-branch-context/tokens/txt
1651−/* tre-477 %txt /tests/golden/types-union-branch-context/tree/txt
1652−/* typ-477 %txt /tests/golden/types-union-branch-context/types/txt
1653−/* src-478 %jibb /tests/golden/types-union-branch-pending/source/jibb
1654−/* tok-478 %txt /tests/golden/types-union-branch-pending/tokens/txt
1655−/* tre-478 %txt /tests/golden/types-union-branch-pending/tree/txt
1656−/* typ-478 %txt /tests/golden/types-union-branch-pending/types/txt
1657−/* src-479 %jibb /tests/golden/types-union-constructor-shape/source/jibb
1658−/* tok-479 %txt /tests/golden/types-union-constructor-shape/tokens/txt
1659−/* tre-479 %txt /tests/golden/types-union-constructor-shape/tree/txt
1660−/* typ-479 %txt /tests/golden/types-union-constructor-shape/types/txt
1661−/* src-480 %jibb /tests/golden/types-union-context-flow/source/jibb
1662−/* tok-480 %txt /tests/golden/types-union-context-flow/tokens/txt
1663−/* tre-480 %txt /tests/golden/types-union-context-flow/tree/txt
1664−/* typ-480 %txt /tests/golden/types-union-context-flow/types/txt
1665−/* src-481 %jibb /tests/golden/types-union-import/source/jibb
1666−/* tok-481 %txt /tests/golden/types-union-import/tokens/txt
1667−/* tre-481 %txt /tests/golden/types-union-import/tree/txt
1668−/* mod-481-1 %jibb /tests/golden/types-union-import/modules/ui/lib/jibb
1669−/* typ-481 %txt /tests/golden/types-union-import/types/txt
1670−/* mtre-481 %txt /tests/golden/types-union-import/module-trees/txt
1671−/* src-482 %jibb /tests/golden/types-union-local-pending/source/jibb
1672−/* tok-482 %txt /tests/golden/types-union-local-pending/tokens/txt
1673−/* tre-482 %txt /tests/golden/types-union-local-pending/tree/txt
1674−/* typ-482 %txt /tests/golden/types-union-local-pending/types/txt
1675−/* src-483 %jibb /tests/golden/types-union-overlap/source/jibb
1676−/* tok-483 %txt /tests/golden/types-union-overlap/tokens/txt
1677−/* tre-483 %txt /tests/golden/types-union-overlap/tree/txt
1678−/* typ-483 %txt /tests/golden/types-union-overlap/types/txt
1679−/* src-484 %jibb /tests/golden/types-union-overlap-nested/source/jibb
1680−/* tok-484 %txt /tests/golden/types-union-overlap-nested/tokens/txt
1681−/* tre-484 %txt /tests/golden/types-union-overlap-nested/tree/txt
1682−/* typ-484 %txt /tests/golden/types-union-overlap-nested/types/txt
1683−/* src-485 %jibb /tests/golden/types-union-phantom-generic/source/jibb
1684−/* tok-485 %txt /tests/golden/types-union-phantom-generic/tokens/txt
1685−/* tre-485 %txt /tests/golden/types-union-phantom-generic/tree/txt
1686−/* typ-485 %txt /tests/golden/types-union-phantom-generic/types/txt
1687−/* src-486 %jibb /tests/golden/types-union-print-cross-namespace/source/jibb
1688−/* tok-486 %txt /tests/golden/types-union-print-cross-namespace/tokens/txt
1689−/* tre-486 %txt /tests/golden/types-union-print-cross-namespace/tree/txt
1690−/* mod-486-1 %jibb /tests/golden/types-union-print-cross-namespace/modules/ui/lib/jibb
1691−/* typ-486 %txt /tests/golden/types-union-print-cross-namespace/types/txt
1692−/* mtre-486 %txt /tests/golden/types-union-print-cross-namespace/module-trees/txt
1693−/* src-487 %jibb /tests/golden/types-union-print-distinct/source/jibb
1694−/* tok-487 %txt /tests/golden/types-union-print-distinct/tokens/txt
1695−/* tre-487 %txt /tests/golden/types-union-print-distinct/tree/txt
1696−/* mod-487-1 %jibb /tests/golden/types-union-print-distinct/modules/ui/left/jibb
1697−/* mod-487-2 %jibb /tests/golden/types-union-print-distinct/modules/ui/right/jibb
1698−/* mod-487-3 %jibb /tests/golden/types-union-print-distinct/modules/ui/twin/jibb
1699−/* typ-487 %txt /tests/golden/types-union-print-distinct/types/txt
1700−/* mtre-487 %txt /tests/golden/types-union-print-distinct/module-trees/txt
1701−/* src-488 %jibb /tests/golden/types-union-print-escape/source/jibb
1702−/* tok-488 %txt /tests/golden/types-union-print-escape/tokens/txt
1703−/* tre-488 %txt /tests/golden/types-union-print-escape/tree/txt
1704−/* typ-488 %txt /tests/golden/types-union-print-escape/types/txt
1705−/* src-489 %jibb /tests/golden/types-union-print-local/source/jibb
1706−/* tok-489 %txt /tests/golden/types-union-print-local/tokens/txt
1707−/* tre-489 %txt /tests/golden/types-union-print-local/tree/txt
1708−/* typ-489 %txt /tests/golden/types-union-print-local/types/txt
1709−/* src-490 %jibb /tests/golden/types-union-print-nested/source/jibb
1710−/* tok-490 %txt /tests/golden/types-union-print-nested/tokens/txt
1711−/* tre-490 %txt /tests/golden/types-union-print-nested/tree/txt
1712−/* typ-490 %txt /tests/golden/types-union-print-nested/types/txt
1713−/* src-491 %jibb /tests/golden/types-union-print-same-origin/source/jibb
1714−/* tok-491 %txt /tests/golden/types-union-print-same-origin/tokens/txt
1715−/* tre-491 %txt /tests/golden/types-union-print-same-origin/tree/txt
1716−/* mod-491-1 %jibb /tests/golden/types-union-print-same-origin/modules/ui/shared/jibb
1717−/* typ-491 %txt /tests/golden/types-union-print-same-origin/types/txt
1718−/* mtre-491 %txt /tests/golden/types-union-print-same-origin/module-trees/txt
1719−/* src-492 %jibb /tests/golden/types-union-print-transitive/source/jibb
1720−/* tok-492 %txt /tests/golden/types-union-print-transitive/tokens/txt
1721−/* tre-492 %txt /tests/golden/types-union-print-transitive/tree/txt
1722−/* mod-492-1 %jibb /tests/golden/types-union-print-transitive/modules/ui/mid/jibb
1723−/* mod-492-2 %jibb /tests/golden/types-union-print-transitive/modules/ui/base/jibb
1724−/* typ-492 %txt /tests/golden/types-union-print-transitive/types/txt
1725−/* mtre-492 %txt /tests/golden/types-union-print-transitive/module-trees/txt
1726−/* src-493 %jibb /tests/golden/types-union-singleton/source/jibb
1727−/* tok-493 %txt /tests/golden/types-union-singleton/tokens/txt
1728−/* tre-493 %txt /tests/golden/types-union-singleton/tree/txt
1729−/* typ-493 %txt /tests/golden/types-union-singleton/types/txt
1730−/* src-494 %jibb /tests/golden/types-union-tag-atoms/source/jibb
1731−/* tok-494 %txt /tests/golden/types-union-tag-atoms/tokens/txt
1732−/* tre-494 %txt /tests/golden/types-union-tag-atoms/tree/txt
1733−/* typ-494 %txt /tests/golden/types-union-tag-atoms/types/txt
1734−/* src-495 %jibb /tests/golden/types-union-tags/source/jibb
1735−/* tok-495 %txt /tests/golden/types-union-tags/tokens/txt
1736−/* tre-495 %txt /tests/golden/types-union-tags/tree/txt
1737−/* typ-495 %txt /tests/golden/types-union-tags/types/txt
1738−/* src-496 %jibb /tests/golden/types-union-unresolved/source/jibb
1739−/* tok-496 %txt /tests/golden/types-union-unresolved/tokens/txt
1740−/* tre-496 %txt /tests/golden/types-union-unresolved/tree/txt
1741−/* typ-496 %txt /tests/golden/types-union-unresolved/types/txt
1742−/* src-497 %jibb /tests/golden/types-union-unresolved-flow/source/jibb
1743−/* tok-497 %txt /tests/golden/types-union-unresolved-flow/tokens/txt
1744−/* tre-497 %txt /tests/golden/types-union-unresolved-flow/tree/txt
1745−/* typ-497 %txt /tests/golden/types-union-unresolved-flow/types/txt
1746−/* src-498 %jibb /tests/golden/types-unit-context/source/jibb
1747−/* tok-498 %txt /tests/golden/types-unit-context/tokens/txt
1748−/* tre-498 %txt /tests/golden/types-unit-context/tree/txt
1749−/* typ-498 %txt /tests/golden/types-unit-context/types/txt
1750−/* src-499 %jibb /tests/golden/types-unit-patterns/source/jibb
1751−/* tok-499 %txt /tests/golden/types-unit-patterns/tokens/txt
1752−/* tre-499 %txt /tests/golden/types-unit-patterns/tree/txt
1753−/* typ-499 %txt /tests/golden/types-unit-patterns/types/txt
1457+/* src-432 %jibb /tests/golden/types-list-pattern-imported/source/jibb
1458+/* tok-432 %txt /tests/golden/types-list-pattern-imported/tokens/txt
1459+/* tre-432 %txt /tests/golden/types-list-pattern-imported/tree/txt
1460+/* typ-432 %txt /tests/golden/types-list-pattern-imported/types/txt
1461+/* imp-432-1 %txt /tests/golden/types-list-pattern-imported/sur/fixture/txt
1462+/* imp-432-2 %txt /tests/golden/types-list-pattern-imported/sur/fixture/txt
1463+/* src-433 %jibb /tests/golden/types-list-patterns/source/jibb
1464+/* tok-433 %txt /tests/golden/types-list-patterns/tokens/txt
1465+/* tre-433 %txt /tests/golden/types-list-patterns/tree/txt
1466+/* typ-433 %txt /tests/golden/types-list-patterns/types/txt
1467+/* src-434 %jibb /tests/golden/types-module-fixtures/source/jibb
1468+/* tok-434 %txt /tests/golden/types-module-fixtures/tokens/txt
1469+/* tre-434 %txt /tests/golden/types-module-fixtures/tree/txt
1470+/* mod-434-1 %jibb /tests/golden/types-module-fixtures/modules/ui/api/blog/jibb
1471+/* mod-434-2 %jibb /tests/golden/types-module-fixtures/modules/ui/components/card/jibb
1472+/* typ-434 %txt /tests/golden/types-module-fixtures/types/txt
1473+/* mtre-434 %txt /tests/golden/types-module-fixtures/module-trees/txt
1474+/* src-435 %jibb /tests/golden/types-module-mixed/source/jibb
1475+/* tok-435 %txt /tests/golden/types-module-mixed/tokens/txt
1476+/* tre-435 %txt /tests/golden/types-module-mixed/tree/txt
1477+/* mod-435-1 %jibb /tests/golden/types-module-mixed/modules/ui/helper/jibb
1478+/* typ-435 %txt /tests/golden/types-module-mixed/types/txt
1479+/* imp-435-1 %txt /tests/golden/types-module-mixed/sur/fixture/txt
1480+/* mark-435-1 %txt /tests/golden/types-module-mixed/mar/label/txt
1481+/* mtre-435 %txt /tests/golden/types-module-mixed/module-trees/txt
1482+/* src-436 %jibb /tests/golden/types-null-context/source/jibb
1483+/* tok-436 %txt /tests/golden/types-null-context/tokens/txt
1484+/* tre-436 %txt /tests/golden/types-null-context/tree/txt
1485+/* typ-436 %txt /tests/golden/types-null-context/types/txt
1486+/* src-437 %jibb /tests/golden/types-null-overlap/source/jibb
1487+/* tok-437 %txt /tests/golden/types-null-overlap/tokens/txt
1488+/* tre-437 %txt /tests/golden/types-null-overlap/tree/txt
1489+/* typ-437 %txt /tests/golden/types-null-overlap/types/txt
1490+/* src-438 %jibb /tests/golden/types-null-unresolved/source/jibb
1491+/* tok-438 %txt /tests/golden/types-null-unresolved/tokens/txt
1492+/* tre-438 %txt /tests/golden/types-null-unresolved/tree/txt
1493+/* typ-438 %txt /tests/golden/types-null-unresolved/types/txt
1494+/* src-439 %jibb /tests/golden/types-partial-apply/source/jibb
1495+/* tok-439 %txt /tests/golden/types-partial-apply/tokens/txt
1496+/* tre-439 %txt /tests/golden/types-partial-apply/tree/txt
1497+/* typ-439 %txt /tests/golden/types-partial-apply/types/txt
1498+/* src-440 %jibb /tests/golden/types-partial-atom-alias/source/jibb
1499+/* tok-440 %txt /tests/golden/types-partial-atom-alias/tokens/txt
1500+/* tre-440 %txt /tests/golden/types-partial-atom-alias/tree/txt
1501+/* typ-440 %txt /tests/golden/types-partial-atom-alias/types/txt
1502+/* src-441 %jibb /tests/golden/types-partial-atom-constraint/source/jibb
1503+/* tok-441 %txt /tests/golden/types-partial-atom-constraint/tokens/txt
1504+/* tre-441 %txt /tests/golden/types-partial-atom-constraint/tree/txt
1505+/* typ-441 %txt /tests/golden/types-partial-atom-constraint/types/txt
1506+/* src-442 %jibb /tests/golden/types-partial-atom-widening/source/jibb
1507+/* tok-442 %txt /tests/golden/types-partial-atom-widening/tokens/txt
1508+/* tre-442 %txt /tests/golden/types-partial-atom-widening/tree/txt
1509+/* typ-442 %txt /tests/golden/types-partial-atom-widening/types/txt
1510+/* src-443 %jibb /tests/golden/types-partial-aura/source/jibb
1511+/* tok-443 %txt /tests/golden/types-partial-aura/tokens/txt
1512+/* tre-443 %txt /tests/golden/types-partial-aura/tree/txt
1513+/* typ-443 %txt /tests/golden/types-partial-aura/types/txt
1514+/* src-444 %jibb /tests/golden/types-partial-aura-family/source/jibb
1515+/* tok-444 %txt /tests/golden/types-partial-aura-family/tokens/txt
1516+/* tre-444 %txt /tests/golden/types-partial-aura-family/tree/txt
1517+/* typ-444 %txt /tests/golden/types-partial-aura-family/types/txt
1518+/* src-445 %jibb /tests/golden/types-partial-aura-generalization/source/jibb
1519+/* tok-445 %txt /tests/golden/types-partial-aura-generalization/tokens/txt
1520+/* tre-445 %txt /tests/golden/types-partial-aura-generalization/tree/txt
1521+/* typ-445 %txt /tests/golden/types-partial-aura-generalization/types/txt
1522+/* src-446 %jibb /tests/golden/types-partial-bare-atom/source/jibb
1523+/* tok-446 %txt /tests/golden/types-partial-bare-atom/tokens/txt
1524+/* tre-446 %txt /tests/golden/types-partial-bare-atom/tree/txt
1525+/* typ-446 %txt /tests/golden/types-partial-bare-atom/types/txt
1526+/* src-447 %jibb /tests/golden/types-partial-branch-widening/source/jibb
1527+/* tok-447 %txt /tests/golden/types-partial-branch-widening/tokens/txt
1528+/* tre-447 %txt /tests/golden/types-partial-branch-widening/tree/txt
1529+/* typ-447 %txt /tests/golden/types-partial-branch-widening/types/txt
1530+/* src-448 %jibb /tests/golden/types-partial-conflicting-sites/source/jibb
1531+/* tok-448 %txt /tests/golden/types-partial-conflicting-sites/tokens/txt
1532+/* tre-448 %txt /tests/golden/types-partial-conflicting-sites/tree/txt
1533+/* typ-448 %txt /tests/golden/types-partial-conflicting-sites/types/txt
1534+/* src-449 %jibb /tests/golden/types-partial-decimal-default/source/jibb
1535+/* tok-449 %txt /tests/golden/types-partial-decimal-default/tokens/txt
1536+/* tre-449 %txt /tests/golden/types-partial-decimal-default/tree/txt
1537+/* typ-449 %txt /tests/golden/types-partial-decimal-default/types/txt
1538+/* src-450 %jibb /tests/golden/types-partial-dependency-chain/source/jibb
1539+/* tok-450 %txt /tests/golden/types-partial-dependency-chain/tokens/txt
1540+/* tre-450 %txt /tests/golden/types-partial-dependency-chain/tree/txt
1541+/* typ-450 %txt /tests/golden/types-partial-dependency-chain/types/txt
1542+/* src-451 %jibb /tests/golden/types-partial-explicit-capital/source/jibb
1543+/* tok-451 %txt /tests/golden/types-partial-explicit-capital/tokens/txt
1544+/* tre-451 %txt /tests/golden/types-partial-explicit-capital/tree/txt
1545+/* typ-451 %txt /tests/golden/types-partial-explicit-capital/types/txt
1546+/* src-452 %jibb /tests/golden/types-partial-forward/source/jibb
1547+/* tok-452 %txt /tests/golden/types-partial-forward/tokens/txt
1548+/* tre-452 %txt /tests/golden/types-partial-forward/tree/txt
1549+/* typ-452 %txt /tests/golden/types-partial-forward/types/txt
1550+/* src-453 %jibb /tests/golden/types-partial-generalization/source/jibb
1551+/* tok-453 %txt /tests/golden/types-partial-generalization/tokens/txt
1552+/* tre-453 %txt /tests/golden/types-partial-generalization/tree/txt
1553+/* typ-453 %txt /tests/golden/types-partial-generalization/types/txt
1554+/* src-454 %jibb /tests/golden/types-partial-identity/source/jibb
1555+/* tok-454 %txt /tests/golden/types-partial-identity/tokens/txt
1556+/* tre-454 %txt /tests/golden/types-partial-identity/tree/txt
1557+/* typ-454 %txt /tests/golden/types-partial-identity/types/txt
1558+/* src-455 %jibb /tests/golden/types-partial-independent-atoms/source/jibb
1559+/* tok-455 %txt /tests/golden/types-partial-independent-atoms/tokens/txt
1560+/* tre-455 %txt /tests/golden/types-partial-independent-atoms/tree/txt
1561+/* typ-455 %txt /tests/golden/types-partial-independent-atoms/types/txt
1562+/* src-456 %jibb /tests/golden/types-partial-local-molds/source/jibb
1563+/* tok-456 %txt /tests/golden/types-partial-local-molds/tokens/txt
1564+/* tre-456 %txt /tests/golden/types-partial-local-molds/tree/txt
1565+/* typ-456 %txt /tests/golden/types-partial-local-molds/types/txt
1566+/* src-457 %jibb /tests/golden/types-partial-locals/source/jibb
1567+/* tok-457 %txt /tests/golden/types-partial-locals/tokens/txt
1568+/* tre-457 %txt /tests/golden/types-partial-locals/tree/txt
1569+/* typ-457 %txt /tests/golden/types-partial-locals/types/txt
1570+/* src-458 %jibb /tests/golden/types-partial-many-atom-constraints/source/jibb
1571+/* tok-458 %txt /tests/golden/types-partial-many-atom-constraints/tokens/txt
1572+/* tre-458 %txt /tests/golden/types-partial-many-atom-constraints/tree/txt
1573+/* typ-458 %txt /tests/golden/types-partial-many-atom-constraints/types/txt
1574+/* src-459 %jibb /tests/golden/types-partial-mold-bare-aura/source/jibb
1575+/* tok-459 %txt /tests/golden/types-partial-mold-bare-aura/tokens/txt
1576+/* tre-459 %txt /tests/golden/types-partial-mold-bare-aura/tree/txt
1577+/* typ-459 %txt /tests/golden/types-partial-mold-bare-aura/types/txt
1578+/* src-460 %jibb /tests/golden/types-partial-mold-composite/source/jibb
1579+/* tok-460 %txt /tests/golden/types-partial-mold-composite/tokens/txt
1580+/* tre-460 %txt /tests/golden/types-partial-mold-composite/tree/txt
1581+/* typ-460 %txt /tests/golden/types-partial-mold-composite/types/txt
1582+/* src-461 %jibb /tests/golden/types-partial-mold-forward/source/jibb
1583+/* tok-461 %txt /tests/golden/types-partial-mold-forward/tokens/txt
1584+/* tre-461 %txt /tests/golden/types-partial-mold-forward/tree/txt
1585+/* typ-461 %txt /tests/golden/types-partial-mold-forward/types/txt
1586+/* src-462 %jibb /tests/golden/types-partial-mold-recursive/source/jibb
1587+/* tok-462 %txt /tests/golden/types-partial-mold-recursive/tokens/txt
1588+/* tre-462 %txt /tests/golden/types-partial-mold-recursive/tree/txt
1589+/* typ-462 %txt /tests/golden/types-partial-mold-recursive/types/txt
1590+/* src-463 %jibb /tests/golden/types-partial-occurs/source/jibb
1591+/* tok-463 %txt /tests/golden/types-partial-occurs/tokens/txt
1592+/* tre-463 %txt /tests/golden/types-partial-occurs/tree/txt
1593+/* typ-463 %txt /tests/golden/types-partial-occurs/types/txt
1594+/* src-464 %jibb /tests/golden/types-partial-projection/source/jibb
1595+/* tok-464 %txt /tests/golden/types-partial-projection/tokens/txt
1596+/* tre-464 %txt /tests/golden/types-partial-projection/tree/txt
1597+/* typ-464 %txt /tests/golden/types-partial-projection/types/txt
1598+/* src-465 %jibb /tests/golden/types-partial-shadow-global/source/jibb
1599+/* tok-465 %txt /tests/golden/types-partial-shadow-global/tokens/txt
1600+/* tre-465 %txt /tests/golden/types-partial-shadow-global/tree/txt
1601+/* typ-465 %txt /tests/golden/types-partial-shadow-global/types/txt
1602+/* src-466 %jibb /tests/golden/types-partial-shared-tvar/source/jibb
1603+/* tok-466 %txt /tests/golden/types-partial-shared-tvar/tokens/txt
1604+/* tre-466 %txt /tests/golden/types-partial-shared-tvar/tree/txt
1605+/* typ-466 %txt /tests/golden/types-partial-shared-tvar/types/txt
1606+/* src-467 %jibb /tests/golden/types-partial-union-cases/source/jibb
1607+/* tok-467 %txt /tests/golden/types-partial-union-cases/tokens/txt
1608+/* tre-467 %txt /tests/golden/types-partial-union-cases/tree/txt
1609+/* typ-467 %txt /tests/golden/types-partial-union-cases/types/txt
1610+/* src-468 %jibb /tests/golden/types-partial-union-edges/source/jibb
1611+/* tok-468 %txt /tests/golden/types-partial-union-edges/tokens/txt
1612+/* tre-468 %txt /tests/golden/types-partial-union-edges/tree/txt
1613+/* typ-468 %txt /tests/golden/types-partial-union-edges/types/txt
1614+/* src-469 %jibb /tests/golden/types-partial-unresolved-tag/source/jibb
1615+/* tok-469 %txt /tests/golden/types-partial-unresolved-tag/tokens/txt
1616+/* tre-469 %txt /tests/golden/types-partial-unresolved-tag/tree/txt
1617+/* typ-469 %txt /tests/golden/types-partial-unresolved-tag/types/txt
1618+/* src-470 %jibb /tests/golden/types-prelude-direct/source/jibb
1619+/* tok-470 %txt /tests/golden/types-prelude-direct/tokens/txt
1620+/* tre-470 %txt /tests/golden/types-prelude-direct/tree/txt
1621+/* typ-470 %txt /tests/golden/types-prelude-direct/types/txt
1622+/* src-471 %jibb /tests/golden/types-prelude-interface/source/jibb
1623+/* tok-471 %txt /tests/golden/types-prelude-interface/tokens/txt
1624+/* tre-471 %txt /tests/golden/types-prelude-interface/tree/txt
1625+/* mod-471-1 %jibb /tests/golden/types-prelude-interface/modules/ui/left/jibb
1626+/* mod-471-2 %jibb /tests/golden/types-prelude-interface/modules/ui/right/jibb
1627+/* typ-471 %txt /tests/golden/types-prelude-interface/types/txt
1628+/* mtre-471 %txt /tests/golden/types-prelude-interface/module-trees/txt
1629+/* src-472 %jibb /tests/golden/types-record-bound-variable/source/jibb
1630+/* tok-472 %txt /tests/golden/types-record-bound-variable/tokens/txt
1631+/* tre-472 %txt /tests/golden/types-record-bound-variable/tree/txt
1632+/* typ-472 %txt /tests/golden/types-record-bound-variable/types/txt
1633+/* src-473 %jibb /tests/golden/types-record-faces/source/jibb
1634+/* tok-473 %txt /tests/golden/types-record-faces/tokens/txt
1635+/* tre-473 %txt /tests/golden/types-record-faces/tree/txt
1636+/* typ-473 %txt /tests/golden/types-record-faces/types/txt
1637+/* src-474 %jibb /tests/golden/types-record-import/source/jibb
1638+/* tok-474 %txt /tests/golden/types-record-import/tokens/txt
1639+/* tre-474 %txt /tests/golden/types-record-import/tree/txt
1640+/* mod-474-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
1641+/* typ-474 %txt /tests/golden/types-record-import/types/txt
1642+/* mtre-474 %txt /tests/golden/types-record-import/module-trees/txt
1643+/* src-475 %jibb /tests/golden/types-record-local-scheme/source/jibb
1644+/* tok-475 %txt /tests/golden/types-record-local-scheme/tokens/txt
1645+/* tre-475 %txt /tests/golden/types-record-local-scheme/tree/txt
1646+/* typ-475 %txt /tests/golden/types-record-local-scheme/types/txt
1647+/* src-476 %jibb /tests/golden/types-record-nested/source/jibb
1648+/* tok-476 %txt /tests/golden/types-record-nested/tokens/txt
1649+/* tre-476 %txt /tests/golden/types-record-nested/tree/txt
1650+/* typ-476 %txt /tests/golden/types-record-nested/types/txt
1651+/* src-477 %jibb /tests/golden/types-record-to-tuple/source/jibb
1652+/* tok-477 %txt /tests/golden/types-record-to-tuple/tokens/txt
1653+/* tre-477 %txt /tests/golden/types-record-to-tuple/tree/txt
1654+/* typ-477 %txt /tests/golden/types-record-to-tuple/types/txt
1655+/* src-478 %jibb /tests/golden/types-union-alias/source/jibb
1656+/* tok-478 %txt /tests/golden/types-union-alias/tokens/txt
1657+/* tre-478 %txt /tests/golden/types-union-alias/tree/txt
1658+/* typ-478 %txt /tests/golden/types-union-alias/types/txt
1659+/* src-479 %jibb /tests/golden/types-union-branch-context/source/jibb
1660+/* tok-479 %txt /tests/golden/types-union-branch-context/tokens/txt
1661+/* tre-479 %txt /tests/golden/types-union-branch-context/tree/txt
1662+/* typ-479 %txt /tests/golden/types-union-branch-context/types/txt
1663+/* src-480 %jibb /tests/golden/types-union-branch-pending/source/jibb
1664+/* tok-480 %txt /tests/golden/types-union-branch-pending/tokens/txt
1665+/* tre-480 %txt /tests/golden/types-union-branch-pending/tree/txt
1666+/* typ-480 %txt /tests/golden/types-union-branch-pending/types/txt
1667+/* src-481 %jibb /tests/golden/types-union-constructor-shape/source/jibb
1668+/* tok-481 %txt /tests/golden/types-union-constructor-shape/tokens/txt
1669+/* tre-481 %txt /tests/golden/types-union-constructor-shape/tree/txt
1670+/* typ-481 %txt /tests/golden/types-union-constructor-shape/types/txt
1671+/* src-482 %jibb /tests/golden/types-union-context-flow/source/jibb
1672+/* tok-482 %txt /tests/golden/types-union-context-flow/tokens/txt
1673+/* tre-482 %txt /tests/golden/types-union-context-flow/tree/txt
1674+/* typ-482 %txt /tests/golden/types-union-context-flow/types/txt
1675+/* src-483 %jibb /tests/golden/types-union-import/source/jibb
1676+/* tok-483 %txt /tests/golden/types-union-import/tokens/txt
1677+/* tre-483 %txt /tests/golden/types-union-import/tree/txt
1678+/* mod-483-1 %jibb /tests/golden/types-union-import/modules/ui/lib/jibb
1679+/* typ-483 %txt /tests/golden/types-union-import/types/txt
1680+/* mtre-483 %txt /tests/golden/types-union-import/module-trees/txt
1681+/* src-484 %jibb /tests/golden/types-union-local-pending/source/jibb
1682+/* tok-484 %txt /tests/golden/types-union-local-pending/tokens/txt
1683+/* tre-484 %txt /tests/golden/types-union-local-pending/tree/txt
1684+/* typ-484 %txt /tests/golden/types-union-local-pending/types/txt
1685+/* src-485 %jibb /tests/golden/types-union-overlap/source/jibb
1686+/* tok-485 %txt /tests/golden/types-union-overlap/tokens/txt
1687+/* tre-485 %txt /tests/golden/types-union-overlap/tree/txt
1688+/* typ-485 %txt /tests/golden/types-union-overlap/types/txt
1689+/* src-486 %jibb /tests/golden/types-union-overlap-nested/source/jibb
1690+/* tok-486 %txt /tests/golden/types-union-overlap-nested/tokens/txt
1691+/* tre-486 %txt /tests/golden/types-union-overlap-nested/tree/txt
1692+/* typ-486 %txt /tests/golden/types-union-overlap-nested/types/txt
1693+/* src-487 %jibb /tests/golden/types-union-phantom-generic/source/jibb
1694+/* tok-487 %txt /tests/golden/types-union-phantom-generic/tokens/txt
1695+/* tre-487 %txt /tests/golden/types-union-phantom-generic/tree/txt
1696+/* typ-487 %txt /tests/golden/types-union-phantom-generic/types/txt
1697+/* src-488 %jibb /tests/golden/types-union-print-cross-namespace/source/jibb
1698+/* tok-488 %txt /tests/golden/types-union-print-cross-namespace/tokens/txt
1699+/* tre-488 %txt /tests/golden/types-union-print-cross-namespace/tree/txt
1700+/* mod-488-1 %jibb /tests/golden/types-union-print-cross-namespace/modules/ui/lib/jibb
1701+/* typ-488 %txt /tests/golden/types-union-print-cross-namespace/types/txt
1702+/* mtre-488 %txt /tests/golden/types-union-print-cross-namespace/module-trees/txt
1703+/* src-489 %jibb /tests/golden/types-union-print-distinct/source/jibb
1704+/* tok-489 %txt /tests/golden/types-union-print-distinct/tokens/txt
1705+/* tre-489 %txt /tests/golden/types-union-print-distinct/tree/txt
1706+/* mod-489-1 %jibb /tests/golden/types-union-print-distinct/modules/ui/left/jibb
1707+/* mod-489-2 %jibb /tests/golden/types-union-print-distinct/modules/ui/right/jibb
1708+/* mod-489-3 %jibb /tests/golden/types-union-print-distinct/modules/ui/twin/jibb
1709+/* typ-489 %txt /tests/golden/types-union-print-distinct/types/txt
1710+/* mtre-489 %txt /tests/golden/types-union-print-distinct/module-trees/txt
1711+/* src-490 %jibb /tests/golden/types-union-print-escape/source/jibb
1712+/* tok-490 %txt /tests/golden/types-union-print-escape/tokens/txt
1713+/* tre-490 %txt /tests/golden/types-union-print-escape/tree/txt
1714+/* typ-490 %txt /tests/golden/types-union-print-escape/types/txt
1715+/* src-491 %jibb /tests/golden/types-union-print-local/source/jibb
1716+/* tok-491 %txt /tests/golden/types-union-print-local/tokens/txt
1717+/* tre-491 %txt /tests/golden/types-union-print-local/tree/txt
1718+/* typ-491 %txt /tests/golden/types-union-print-local/types/txt
1719+/* src-492 %jibb /tests/golden/types-union-print-nested/source/jibb
1720+/* tok-492 %txt /tests/golden/types-union-print-nested/tokens/txt
1721+/* tre-492 %txt /tests/golden/types-union-print-nested/tree/txt
1722+/* typ-492 %txt /tests/golden/types-union-print-nested/types/txt
1723+/* src-493 %jibb /tests/golden/types-union-print-same-origin/source/jibb
1724+/* tok-493 %txt /tests/golden/types-union-print-same-origin/tokens/txt
1725+/* tre-493 %txt /tests/golden/types-union-print-same-origin/tree/txt
1726+/* mod-493-1 %jibb /tests/golden/types-union-print-same-origin/modules/ui/shared/jibb
1727+/* typ-493 %txt /tests/golden/types-union-print-same-origin/types/txt
1728+/* mtre-493 %txt /tests/golden/types-union-print-same-origin/module-trees/txt
1729+/* src-494 %jibb /tests/golden/types-union-print-transitive/source/jibb
1730+/* tok-494 %txt /tests/golden/types-union-print-transitive/tokens/txt
1731+/* tre-494 %txt /tests/golden/types-union-print-transitive/tree/txt
1732+/* mod-494-1 %jibb /tests/golden/types-union-print-transitive/modules/ui/mid/jibb
1733+/* mod-494-2 %jibb /tests/golden/types-union-print-transitive/modules/ui/base/jibb
1734+/* typ-494 %txt /tests/golden/types-union-print-transitive/types/txt
1735+/* mtre-494 %txt /tests/golden/types-union-print-transitive/module-trees/txt
1736+/* src-495 %jibb /tests/golden/types-union-singleton/source/jibb
1737+/* tok-495 %txt /tests/golden/types-union-singleton/tokens/txt
1738+/* tre-495 %txt /tests/golden/types-union-singleton/tree/txt
1739+/* typ-495 %txt /tests/golden/types-union-singleton/types/txt
1740+/* src-496 %jibb /tests/golden/types-union-tag-atoms/source/jibb
1741+/* tok-496 %txt /tests/golden/types-union-tag-atoms/tokens/txt
1742+/* tre-496 %txt /tests/golden/types-union-tag-atoms/tree/txt
1743+/* typ-496 %txt /tests/golden/types-union-tag-atoms/types/txt
1744+/* src-497 %jibb /tests/golden/types-union-tags/source/jibb
1745+/* tok-497 %txt /tests/golden/types-union-tags/tokens/txt
1746+/* tre-497 %txt /tests/golden/types-union-tags/tree/txt
1747+/* typ-497 %txt /tests/golden/types-union-tags/types/txt
1748+/* src-498 %jibb /tests/golden/types-union-unresolved/source/jibb
1749+/* tok-498 %txt /tests/golden/types-union-unresolved/tokens/txt
1750+/* tre-498 %txt /tests/golden/types-union-unresolved/tree/txt
1751+/* typ-498 %txt /tests/golden/types-union-unresolved/types/txt
1752+/* src-499 %jibb /tests/golden/types-union-unresolved-flow/source/jibb
1753+/* tok-499 %txt /tests/golden/types-union-unresolved-flow/tokens/txt
1754+/* tre-499 %txt /tests/golden/types-union-unresolved-flow/tree/txt
1755+/* typ-499 %txt /tests/golden/types-union-unresolved-flow/types/txt
1756+/* src-500 %jibb /tests/golden/types-unit-context/source/jibb
1757+/* tok-500 %txt /tests/golden/types-unit-context/tokens/txt
1758+/* tre-500 %txt /tests/golden/types-unit-context/tree/txt
1759+/* typ-500 %txt /tests/golden/types-unit-context/types/txt
1760+/* src-501 %jibb /tests/golden/types-unit-patterns/source/jibb
1761+/* tok-501 %txt /tests/golden/types-unit-patterns/tokens/txt
1762+/* tre-501 %txt /tests/golden/types-unit-patterns/tree/txt
1763+/* typ-501 %txt /tests/golden/types-unit-patterns/types/txt
17541764=/ prepared-prelude (prepare-prelude:jibb prelude-source)
17551765|%
17561766:: one arm per case
@@ -2617,142 +2627,146 @@
26172627 (weld (check ~.types-list-context src-430 `tok-430 `tre-430) (check-module-types ~.types-list-context ~[%tests %golden ~.types-list-context %source %jibb] src-430 `typ-430 ~ ~ ~))
26182628++ test-types-list-imported
26192629 (weld (check ~.types-list-imported src-431 `tok-431 `tre-431) (check-module-types ~.types-list-imported ~[%tests %golden ~.types-list-imported %source %jibb] src-431 `typ-431 ~[[%fixture %texts imp-431-1] [%fixture %ships imp-431-2]] ~ ~))
2630+++ test-types-list-pattern-imported
2631+ (weld (check ~.types-list-pattern-imported src-432 `tok-432 `tre-432) (check-module-types ~.types-list-pattern-imported ~[%tests %golden ~.types-list-pattern-imported %source %jibb] src-432 `typ-432 ~[[%fixture %texts imp-432-1] [%fixture %text-set imp-432-2]] ~ ~))
2632+++ test-types-list-patterns
2633+ (weld (check ~.types-list-patterns src-433 `tok-433 `tre-433) (check-module-types ~.types-list-patterns ~[%tests %golden ~.types-list-patterns %source %jibb] src-433 `typ-433 ~ ~ ~))
26202634++ test-types-module-fixtures
2621− (weld (weld (check-at ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-432 `tok-432 `tre-432) (check-module-types ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-432 `typ-432 ~ ~ ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-432-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-432-2]])) (check-module-trees ~.types-module-fixtures `mtre-432 ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-432-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-432-2]]))
2635+ (weld (weld (check-at ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-434 `tok-434 `tre-434) (check-module-types ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-434 `typ-434 ~ ~ ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-434-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-434-2]])) (check-module-trees ~.types-module-fixtures `mtre-434 ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-434-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-434-2]]))
26222636++ test-types-module-mixed
2623− (weld (weld (check ~.types-module-mixed src-433 `tok-433 `tre-433) (check-module-types ~.types-module-mixed ~[%tests %golden ~.types-module-mixed %source %jibb] src-433 `typ-433 ~[[%fixture %title imp-433-1]] ~[[%label mark-433-1]] ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-433-1]])) (check-module-trees ~.types-module-mixed `mtre-433 ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-433-1]]))
2637+ (weld (weld (check ~.types-module-mixed src-435 `tok-435 `tre-435) (check-module-types ~.types-module-mixed ~[%tests %golden ~.types-module-mixed %source %jibb] src-435 `typ-435 ~[[%fixture %title imp-435-1]] ~[[%label mark-435-1]] ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-435-1]])) (check-module-trees ~.types-module-mixed `mtre-435 ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-435-1]]))
26242638++ test-types-null-context
2625− (weld (check ~.types-null-context src-434 `tok-434 `tre-434) (check-types ~.types-null-context ~[%tests %golden ~.types-null-context %source %jibb] src-434 `typ-434))
2639+ (weld (check ~.types-null-context src-436 `tok-436 `tre-436) (check-types ~.types-null-context ~[%tests %golden ~.types-null-context %source %jibb] src-436 `typ-436))
26262640++ test-types-null-overlap
2627− (weld (check ~.types-null-overlap src-435 `tok-435 `tre-435) (check-types ~.types-null-overlap ~[%tests %golden ~.types-null-overlap %source %jibb] src-435 `typ-435))
2641+ (weld (check ~.types-null-overlap src-437 `tok-437 `tre-437) (check-types ~.types-null-overlap ~[%tests %golden ~.types-null-overlap %source %jibb] src-437 `typ-437))
26282642++ test-types-null-unresolved
2629− (weld (check ~.types-null-unresolved src-436 `tok-436 `tre-436) (check-types ~.types-null-unresolved ~[%tests %golden ~.types-null-unresolved %source %jibb] src-436 `typ-436))
2643+ (weld (check ~.types-null-unresolved src-438 `tok-438 `tre-438) (check-types ~.types-null-unresolved ~[%tests %golden ~.types-null-unresolved %source %jibb] src-438 `typ-438))
26302644++ test-types-partial-apply
2631− (weld (check ~.types-partial-apply src-437 `tok-437 `tre-437) (check-types ~.types-partial-apply ~[%tests %golden ~.types-partial-apply %source %jibb] src-437 `typ-437))
2645+ (weld (check ~.types-partial-apply src-439 `tok-439 `tre-439) (check-types ~.types-partial-apply ~[%tests %golden ~.types-partial-apply %source %jibb] src-439 `typ-439))
26322646++ test-types-partial-atom-alias
2633− (weld (check ~.types-partial-atom-alias src-438 `tok-438 `tre-438) (check-types ~.types-partial-atom-alias ~[%tests %golden ~.types-partial-atom-alias %source %jibb] src-438 `typ-438))
2647+ (weld (check ~.types-partial-atom-alias src-440 `tok-440 `tre-440) (check-types ~.types-partial-atom-alias ~[%tests %golden ~.types-partial-atom-alias %source %jibb] src-440 `typ-440))
26342648++ test-types-partial-atom-constraint
2635− (weld (check ~.types-partial-atom-constraint src-439 `tok-439 `tre-439) (check-types ~.types-partial-atom-constraint ~[%tests %golden ~.types-partial-atom-constraint %source %jibb] src-439 `typ-439))
2649+ (weld (check ~.types-partial-atom-constraint src-441 `tok-441 `tre-441) (check-types ~.types-partial-atom-constraint ~[%tests %golden ~.types-partial-atom-constraint %source %jibb] src-441 `typ-441))
26362650++ test-types-partial-atom-widening
2637− (weld (check ~.types-partial-atom-widening src-440 `tok-440 `tre-440) (check-types ~.types-partial-atom-widening ~[%tests %golden ~.types-partial-atom-widening %source %jibb] src-440 `typ-440))
2651+ (weld (check ~.types-partial-atom-widening src-442 `tok-442 `tre-442) (check-types ~.types-partial-atom-widening ~[%tests %golden ~.types-partial-atom-widening %source %jibb] src-442 `typ-442))
26382652++ test-types-partial-aura
2639− (weld (check ~.types-partial-aura src-441 `tok-441 `tre-441) (check-types ~.types-partial-aura ~[%tests %golden ~.types-partial-aura %source %jibb] src-441 `typ-441))
2653+ (weld (check ~.types-partial-aura src-443 `tok-443 `tre-443) (check-types ~.types-partial-aura ~[%tests %golden ~.types-partial-aura %source %jibb] src-443 `typ-443))
26402654++ test-types-partial-aura-family
2641− (weld (check ~.types-partial-aura-family src-442 `tok-442 `tre-442) (check-types ~.types-partial-aura-family ~[%tests %golden ~.types-partial-aura-family %source %jibb] src-442 `typ-442))
2655+ (weld (check ~.types-partial-aura-family src-444 `tok-444 `tre-444) (check-types ~.types-partial-aura-family ~[%tests %golden ~.types-partial-aura-family %source %jibb] src-444 `typ-444))
26422656++ test-types-partial-aura-generalization
2643− (weld (check ~.types-partial-aura-generalization src-443 `tok-443 `tre-443) (check-types ~.types-partial-aura-generalization ~[%tests %golden ~.types-partial-aura-generalization %source %jibb] src-443 `typ-443))
2657+ (weld (check ~.types-partial-aura-generalization src-445 `tok-445 `tre-445) (check-types ~.types-partial-aura-generalization ~[%tests %golden ~.types-partial-aura-generalization %source %jibb] src-445 `typ-445))
26442658++ test-types-partial-bare-atom
2645− (weld (check ~.types-partial-bare-atom src-444 `tok-444 `tre-444) (check-types ~.types-partial-bare-atom ~[%tests %golden ~.types-partial-bare-atom %source %jibb] src-444 `typ-444))
2659+ (weld (check ~.types-partial-bare-atom src-446 `tok-446 `tre-446) (check-types ~.types-partial-bare-atom ~[%tests %golden ~.types-partial-bare-atom %source %jibb] src-446 `typ-446))
26462660++ test-types-partial-branch-widening
2647− (weld (check ~.types-partial-branch-widening src-445 `tok-445 `tre-445) (check-types ~.types-partial-branch-widening ~[%tests %golden ~.types-partial-branch-widening %source %jibb] src-445 `typ-445))
2661+ (weld (check ~.types-partial-branch-widening src-447 `tok-447 `tre-447) (check-types ~.types-partial-branch-widening ~[%tests %golden ~.types-partial-branch-widening %source %jibb] src-447 `typ-447))
26482662++ test-types-partial-conflicting-sites
2649− (weld (check ~.types-partial-conflicting-sites src-446 `tok-446 `tre-446) (check-types ~.types-partial-conflicting-sites ~[%tests %golden ~.types-partial-conflicting-sites %source %jibb] src-446 `typ-446))
2663+ (weld (check ~.types-partial-conflicting-sites src-448 `tok-448 `tre-448) (check-types ~.types-partial-conflicting-sites ~[%tests %golden ~.types-partial-conflicting-sites %source %jibb] src-448 `typ-448))
26502664++ test-types-partial-decimal-default
2651− (weld (check ~.types-partial-decimal-default src-447 `tok-447 `tre-447) (check-types ~.types-partial-decimal-default ~[%tests %golden ~.types-partial-decimal-default %source %jibb] src-447 `typ-447))
2665+ (weld (check ~.types-partial-decimal-default src-449 `tok-449 `tre-449) (check-types ~.types-partial-decimal-default ~[%tests %golden ~.types-partial-decimal-default %source %jibb] src-449 `typ-449))
26522666++ test-types-partial-dependency-chain
2653− (weld (check ~.types-partial-dependency-chain src-448 `tok-448 `tre-448) (check-types ~.types-partial-dependency-chain ~[%tests %golden ~.types-partial-dependency-chain %source %jibb] src-448 `typ-448))
2667+ (weld (check ~.types-partial-dependency-chain src-450 `tok-450 `tre-450) (check-types ~.types-partial-dependency-chain ~[%tests %golden ~.types-partial-dependency-chain %source %jibb] src-450 `typ-450))
26542668++ test-types-partial-explicit-capital
2655− (weld (check ~.types-partial-explicit-capital src-449 `tok-449 `tre-449) (check-types ~.types-partial-explicit-capital ~[%tests %golden ~.types-partial-explicit-capital %source %jibb] src-449 `typ-449))
2669+ (weld (check ~.types-partial-explicit-capital src-451 `tok-451 `tre-451) (check-types ~.types-partial-explicit-capital ~[%tests %golden ~.types-partial-explicit-capital %source %jibb] src-451 `typ-451))
26562670++ test-types-partial-forward
2657− (weld (check ~.types-partial-forward src-450 `tok-450 `tre-450) (check-types ~.types-partial-forward ~[%tests %golden ~.types-partial-forward %source %jibb] src-450 `typ-450))
2671+ (weld (check ~.types-partial-forward src-452 `tok-452 `tre-452) (check-types ~.types-partial-forward ~[%tests %golden ~.types-partial-forward %source %jibb] src-452 `typ-452))
26582672++ test-types-partial-generalization
2659− (weld (check ~.types-partial-generalization src-451 `tok-451 `tre-451) (check-types ~.types-partial-generalization ~[%tests %golden ~.types-partial-generalization %source %jibb] src-451 `typ-451))
2673+ (weld (check ~.types-partial-generalization src-453 `tok-453 `tre-453) (check-types ~.types-partial-generalization ~[%tests %golden ~.types-partial-generalization %source %jibb] src-453 `typ-453))
26602674++ test-types-partial-identity
2661− (weld (check ~.types-partial-identity src-452 `tok-452 `tre-452) (check-types ~.types-partial-identity ~[%tests %golden ~.types-partial-identity %source %jibb] src-452 `typ-452))
2675+ (weld (check ~.types-partial-identity src-454 `tok-454 `tre-454) (check-types ~.types-partial-identity ~[%tests %golden ~.types-partial-identity %source %jibb] src-454 `typ-454))
26622676++ test-types-partial-independent-atoms
2663− (weld (check ~.types-partial-independent-atoms src-453 `tok-453 `tre-453) (check-types ~.types-partial-independent-atoms ~[%tests %golden ~.types-partial-independent-atoms %source %jibb] src-453 `typ-453))
2677+ (weld (check ~.types-partial-independent-atoms src-455 `tok-455 `tre-455) (check-types ~.types-partial-independent-atoms ~[%tests %golden ~.types-partial-independent-atoms %source %jibb] src-455 `typ-455))
26642678++ test-types-partial-local-molds
2665− (weld (check ~.types-partial-local-molds src-454 `tok-454 `tre-454) (check-types ~.types-partial-local-molds ~[%tests %golden ~.types-partial-local-molds %source %jibb] src-454 `typ-454))
2679+ (weld (check ~.types-partial-local-molds src-456 `tok-456 `tre-456) (check-types ~.types-partial-local-molds ~[%tests %golden ~.types-partial-local-molds %source %jibb] src-456 `typ-456))
26662680++ test-types-partial-locals
2667− (weld (check ~.types-partial-locals src-455 `tok-455 `tre-455) (check-types ~.types-partial-locals ~[%tests %golden ~.types-partial-locals %source %jibb] src-455 `typ-455))
2681+ (weld (check ~.types-partial-locals src-457 `tok-457 `tre-457) (check-types ~.types-partial-locals ~[%tests %golden ~.types-partial-locals %source %jibb] src-457 `typ-457))
26682682++ test-types-partial-many-atom-constraints
2669− (weld (check ~.types-partial-many-atom-constraints src-456 `tok-456 `tre-456) (check-types ~.types-partial-many-atom-constraints ~[%tests %golden ~.types-partial-many-atom-constraints %source %jibb] src-456 `typ-456))
2683+ (weld (check ~.types-partial-many-atom-constraints src-458 `tok-458 `tre-458) (check-types ~.types-partial-many-atom-constraints ~[%tests %golden ~.types-partial-many-atom-constraints %source %jibb] src-458 `typ-458))
26702684++ test-types-partial-mold-bare-aura
2671− (weld (check ~.types-partial-mold-bare-aura src-457 `tok-457 `tre-457) (check-types ~.types-partial-mold-bare-aura ~[%tests %golden ~.types-partial-mold-bare-aura %source %jibb] src-457 `typ-457))
2685+ (weld (check ~.types-partial-mold-bare-aura src-459 `tok-459 `tre-459) (check-types ~.types-partial-mold-bare-aura ~[%tests %golden ~.types-partial-mold-bare-aura %source %jibb] src-459 `typ-459))
26722686++ test-types-partial-mold-composite
2673− (weld (check ~.types-partial-mold-composite src-458 `tok-458 `tre-458) (check-types ~.types-partial-mold-composite ~[%tests %golden ~.types-partial-mold-composite %source %jibb] src-458 `typ-458))
2687+ (weld (check ~.types-partial-mold-composite src-460 `tok-460 `tre-460) (check-types ~.types-partial-mold-composite ~[%tests %golden ~.types-partial-mold-composite %source %jibb] src-460 `typ-460))
26742688++ test-types-partial-mold-forward
2675− (weld (check ~.types-partial-mold-forward src-459 `tok-459 `tre-459) (check-types ~.types-partial-mold-forward ~[%tests %golden ~.types-partial-mold-forward %source %jibb] src-459 `typ-459))
2689+ (weld (check ~.types-partial-mold-forward src-461 `tok-461 `tre-461) (check-types ~.types-partial-mold-forward ~[%tests %golden ~.types-partial-mold-forward %source %jibb] src-461 `typ-461))
26762690++ test-types-partial-mold-recursive
2677− (weld (check ~.types-partial-mold-recursive src-460 `tok-460 `tre-460) (check-types ~.types-partial-mold-recursive ~[%tests %golden ~.types-partial-mold-recursive %source %jibb] src-460 `typ-460))
2691+ (weld (check ~.types-partial-mold-recursive src-462 `tok-462 `tre-462) (check-types ~.types-partial-mold-recursive ~[%tests %golden ~.types-partial-mold-recursive %source %jibb] src-462 `typ-462))
26782692++ test-types-partial-occurs
2679− (weld (check ~.types-partial-occurs src-461 `tok-461 `tre-461) (check-types ~.types-partial-occurs ~[%tests %golden ~.types-partial-occurs %source %jibb] src-461 `typ-461))
2693+ (weld (check ~.types-partial-occurs src-463 `tok-463 `tre-463) (check-types ~.types-partial-occurs ~[%tests %golden ~.types-partial-occurs %source %jibb] src-463 `typ-463))
26802694++ test-types-partial-projection
2681− (weld (check ~.types-partial-projection src-462 `tok-462 `tre-462) (check-types ~.types-partial-projection ~[%tests %golden ~.types-partial-projection %source %jibb] src-462 `typ-462))
2695+ (weld (check ~.types-partial-projection src-464 `tok-464 `tre-464) (check-types ~.types-partial-projection ~[%tests %golden ~.types-partial-projection %source %jibb] src-464 `typ-464))
26822696++ test-types-partial-shadow-global
2683− (weld (check ~.types-partial-shadow-global src-463 `tok-463 `tre-463) (check-types ~.types-partial-shadow-global ~[%tests %golden ~.types-partial-shadow-global %source %jibb] src-463 `typ-463))
2697+ (weld (check ~.types-partial-shadow-global src-465 `tok-465 `tre-465) (check-types ~.types-partial-shadow-global ~[%tests %golden ~.types-partial-shadow-global %source %jibb] src-465 `typ-465))
26842698++ test-types-partial-shared-tvar
2685− (weld (check ~.types-partial-shared-tvar src-464 `tok-464 `tre-464) (check-types ~.types-partial-shared-tvar ~[%tests %golden ~.types-partial-shared-tvar %source %jibb] src-464 `typ-464))
2699+ (weld (check ~.types-partial-shared-tvar src-466 `tok-466 `tre-466) (check-types ~.types-partial-shared-tvar ~[%tests %golden ~.types-partial-shared-tvar %source %jibb] src-466 `typ-466))
26862700++ test-types-partial-union-cases
2687− (weld (check ~.types-partial-union-cases src-465 `tok-465 `tre-465) (check-types ~.types-partial-union-cases ~[%tests %golden ~.types-partial-union-cases %source %jibb] src-465 `typ-465))
2701+ (weld (check ~.types-partial-union-cases src-467 `tok-467 `tre-467) (check-types ~.types-partial-union-cases ~[%tests %golden ~.types-partial-union-cases %source %jibb] src-467 `typ-467))
26882702++ test-types-partial-union-edges
2689− (weld (check ~.types-partial-union-edges src-466 `tok-466 `tre-466) (check-types ~.types-partial-union-edges ~[%tests %golden ~.types-partial-union-edges %source %jibb] src-466 `typ-466))
2703+ (weld (check ~.types-partial-union-edges src-468 `tok-468 `tre-468) (check-types ~.types-partial-union-edges ~[%tests %golden ~.types-partial-union-edges %source %jibb] src-468 `typ-468))
26902704++ test-types-partial-unresolved-tag
2691− (weld (check ~.types-partial-unresolved-tag src-467 `tok-467 `tre-467) (check-types ~.types-partial-unresolved-tag ~[%tests %golden ~.types-partial-unresolved-tag %source %jibb] src-467 `typ-467))
2705+ (weld (check ~.types-partial-unresolved-tag src-469 `tok-469 `tre-469) (check-types ~.types-partial-unresolved-tag ~[%tests %golden ~.types-partial-unresolved-tag %source %jibb] src-469 `typ-469))
26922706++ test-types-prelude-direct
2693− (weld (check ~.types-prelude-direct src-468 `tok-468 `tre-468) (check-module-types ~.types-prelude-direct ~[%tests %golden ~.types-prelude-direct %source %jibb] src-468 `typ-468 ~ ~ ~))
2707+ (weld (check ~.types-prelude-direct src-470 `tok-470 `tre-470) (check-module-types ~.types-prelude-direct ~[%tests %golden ~.types-prelude-direct %source %jibb] src-470 `typ-470 ~ ~ ~))
26942708++ test-types-prelude-interface
2695− (weld (weld (check ~.types-prelude-interface src-469 `tok-469 `tre-469) (check-module-types ~.types-prelude-interface ~[%tests %golden ~.types-prelude-interface %source %jibb] src-469 `typ-469 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-469-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-469-2]])) (check-module-trees ~.types-prelude-interface `mtre-469 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-469-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-469-2]]))
2709+ (weld (weld (check ~.types-prelude-interface src-471 `tok-471 `tre-471) (check-module-types ~.types-prelude-interface ~[%tests %golden ~.types-prelude-interface %source %jibb] src-471 `typ-471 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-471-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-471-2]])) (check-module-trees ~.types-prelude-interface `mtre-471 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-471-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-471-2]]))
26962710++ test-types-record-bound-variable
2697− (weld (check ~.types-record-bound-variable src-470 `tok-470 `tre-470) (check-types ~.types-record-bound-variable ~[%tests %golden ~.types-record-bound-variable %source %jibb] src-470 `typ-470))
2711+ (weld (check ~.types-record-bound-variable src-472 `tok-472 `tre-472) (check-types ~.types-record-bound-variable ~[%tests %golden ~.types-record-bound-variable %source %jibb] src-472 `typ-472))
26982712++ test-types-record-faces
2699− (weld (check ~.types-record-faces src-471 `tok-471 `tre-471) (check-types ~.types-record-faces ~[%tests %golden ~.types-record-faces %source %jibb] src-471 `typ-471))
2713+ (weld (check ~.types-record-faces src-473 `tok-473 `tre-473) (check-types ~.types-record-faces ~[%tests %golden ~.types-record-faces %source %jibb] src-473 `typ-473))
27002714++ test-types-record-import
2701− (weld (weld (check ~.types-record-import src-472 `tok-472 `tre-472) (check-module-types ~.types-record-import ~[%tests %golden ~.types-record-import %source %jibb] src-472 `typ-472 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-472-1]])) (check-module-trees ~.types-record-import `mtre-472 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-472-1]]))
2715+ (weld (weld (check ~.types-record-import src-474 `tok-474 `tre-474) (check-module-types ~.types-record-import ~[%tests %golden ~.types-record-import %source %jibb] src-474 `typ-474 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-474-1]])) (check-module-trees ~.types-record-import `mtre-474 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-474-1]]))
27022716++ test-types-record-local-scheme
2703− (weld (check ~.types-record-local-scheme src-473 `tok-473 `tre-473) (check-types ~.types-record-local-scheme ~[%tests %golden ~.types-record-local-scheme %source %jibb] src-473 `typ-473))
2717+ (weld (check ~.types-record-local-scheme src-475 `tok-475 `tre-475) (check-types ~.types-record-local-scheme ~[%tests %golden ~.types-record-local-scheme %source %jibb] src-475 `typ-475))
27042718++ test-types-record-nested
2705− (weld (check ~.types-record-nested src-474 `tok-474 `tre-474) (check-types ~.types-record-nested ~[%tests %golden ~.types-record-nested %source %jibb] src-474 `typ-474))
2719+ (weld (check ~.types-record-nested src-476 `tok-476 `tre-476) (check-types ~.types-record-nested ~[%tests %golden ~.types-record-nested %source %jibb] src-476 `typ-476))
27062720++ test-types-record-to-tuple
2707− (weld (check ~.types-record-to-tuple src-475 `tok-475 `tre-475) (check-types ~.types-record-to-tuple ~[%tests %golden ~.types-record-to-tuple %source %jibb] src-475 `typ-475))
2721+ (weld (check ~.types-record-to-tuple src-477 `tok-477 `tre-477) (check-types ~.types-record-to-tuple ~[%tests %golden ~.types-record-to-tuple %source %jibb] src-477 `typ-477))
27082722++ test-types-union-alias
2709− (weld (check ~.types-union-alias src-476 `tok-476 `tre-476) (check-types ~.types-union-alias ~[%tests %golden ~.types-union-alias %source %jibb] src-476 `typ-476))
2723+ (weld (check ~.types-union-alias src-478 `tok-478 `tre-478) (check-types ~.types-union-alias ~[%tests %golden ~.types-union-alias %source %jibb] src-478 `typ-478))
27102724++ test-types-union-branch-context
2711− (weld (check ~.types-union-branch-context src-477 `tok-477 `tre-477) (check-types ~.types-union-branch-context ~[%tests %golden ~.types-union-branch-context %source %jibb] src-477 `typ-477))
2725+ (weld (check ~.types-union-branch-context src-479 `tok-479 `tre-479) (check-types ~.types-union-branch-context ~[%tests %golden ~.types-union-branch-context %source %jibb] src-479 `typ-479))
27122726++ test-types-union-branch-pending
2713− (weld (check ~.types-union-branch-pending src-478 `tok-478 `tre-478) (check-types ~.types-union-branch-pending ~[%tests %golden ~.types-union-branch-pending %source %jibb] src-478 `typ-478))
2727+ (weld (check ~.types-union-branch-pending src-480 `tok-480 `tre-480) (check-types ~.types-union-branch-pending ~[%tests %golden ~.types-union-branch-pending %source %jibb] src-480 `typ-480))
27142728++ test-types-union-constructor-shape
2715− (weld (check ~.types-union-constructor-shape src-479 `tok-479 `tre-479) (check-types ~.types-union-constructor-shape ~[%tests %golden ~.types-union-constructor-shape %source %jibb] src-479 `typ-479))
2729+ (weld (check ~.types-union-constructor-shape src-481 `tok-481 `tre-481) (check-types ~.types-union-constructor-shape ~[%tests %golden ~.types-union-constructor-shape %source %jibb] src-481 `typ-481))
27162730++ test-types-union-context-flow
2717− (weld (check ~.types-union-context-flow src-480 `tok-480 `tre-480) (check-types ~.types-union-context-flow ~[%tests %golden ~.types-union-context-flow %source %jibb] src-480 `typ-480))
2731+ (weld (check ~.types-union-context-flow src-482 `tok-482 `tre-482) (check-types ~.types-union-context-flow ~[%tests %golden ~.types-union-context-flow %source %jibb] src-482 `typ-482))
27182732++ test-types-union-import
2719− (weld (weld (check ~.types-union-import src-481 `tok-481 `tre-481) (check-module-types ~.types-union-import ~[%tests %golden ~.types-union-import %source %jibb] src-481 `typ-481 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-481-1]])) (check-module-trees ~.types-union-import `mtre-481 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-481-1]]))
2733+ (weld (weld (check ~.types-union-import src-483 `tok-483 `tre-483) (check-module-types ~.types-union-import ~[%tests %golden ~.types-union-import %source %jibb] src-483 `typ-483 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-483-1]])) (check-module-trees ~.types-union-import `mtre-483 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-483-1]]))
27202734++ test-types-union-local-pending
2721− (weld (check ~.types-union-local-pending src-482 `tok-482 `tre-482) (check-types ~.types-union-local-pending ~[%tests %golden ~.types-union-local-pending %source %jibb] src-482 `typ-482))
2735+ (weld (check ~.types-union-local-pending src-484 `tok-484 `tre-484) (check-types ~.types-union-local-pending ~[%tests %golden ~.types-union-local-pending %source %jibb] src-484 `typ-484))
27222736++ test-types-union-overlap
2723− (weld (check ~.types-union-overlap src-483 `tok-483 `tre-483) (check-types ~.types-union-overlap ~[%tests %golden ~.types-union-overlap %source %jibb] src-483 `typ-483))
2737+ (weld (check ~.types-union-overlap src-485 `tok-485 `tre-485) (check-types ~.types-union-overlap ~[%tests %golden ~.types-union-overlap %source %jibb] src-485 `typ-485))
27242738++ test-types-union-overlap-nested
2725− (weld (check ~.types-union-overlap-nested src-484 `tok-484 `tre-484) (check-types ~.types-union-overlap-nested ~[%tests %golden ~.types-union-overlap-nested %source %jibb] src-484 `typ-484))
2739+ (weld (check ~.types-union-overlap-nested src-486 `tok-486 `tre-486) (check-types ~.types-union-overlap-nested ~[%tests %golden ~.types-union-overlap-nested %source %jibb] src-486 `typ-486))
27262740++ test-types-union-phantom-generic
2727− (weld (check ~.types-union-phantom-generic src-485 `tok-485 `tre-485) (check-types ~.types-union-phantom-generic ~[%tests %golden ~.types-union-phantom-generic %source %jibb] src-485 `typ-485))
2741+ (weld (check ~.types-union-phantom-generic src-487 `tok-487 `tre-487) (check-types ~.types-union-phantom-generic ~[%tests %golden ~.types-union-phantom-generic %source %jibb] src-487 `typ-487))
27282742++ test-types-union-print-cross-namespace
2729− (weld (weld (check ~.types-union-print-cross-namespace src-486 `tok-486 `tre-486) (check-module-types ~.types-union-print-cross-namespace ~[%tests %golden ~.types-union-print-cross-namespace %source %jibb] src-486 `typ-486 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-486-1]])) (check-module-trees ~.types-union-print-cross-namespace `mtre-486 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-486-1]]))
2743+ (weld (weld (check ~.types-union-print-cross-namespace src-488 `tok-488 `tre-488) (check-module-types ~.types-union-print-cross-namespace ~[%tests %golden ~.types-union-print-cross-namespace %source %jibb] src-488 `typ-488 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-488-1]])) (check-module-trees ~.types-union-print-cross-namespace `mtre-488 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-488-1]]))
27302744++ test-types-union-print-distinct
2731− (weld (weld (check ~.types-union-print-distinct src-487 `tok-487 `tre-487) (check-module-types ~.types-union-print-distinct ~[%tests %golden ~.types-union-print-distinct %source %jibb] src-487 `typ-487 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-487-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-487-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-487-3]])) (check-module-trees ~.types-union-print-distinct `mtre-487 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-487-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-487-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-487-3]]))
2745+ (weld (weld (check ~.types-union-print-distinct src-489 `tok-489 `tre-489) (check-module-types ~.types-union-print-distinct ~[%tests %golden ~.types-union-print-distinct %source %jibb] src-489 `typ-489 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-489-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-489-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-489-3]])) (check-module-trees ~.types-union-print-distinct `mtre-489 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-489-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-489-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-489-3]]))
27322746++ test-types-union-print-escape
2733− (weld (check ~.types-union-print-escape src-488 `tok-488 `tre-488) (check-types ~.types-union-print-escape ~[%tests %golden ~.types-union-print-escape %source %jibb] src-488 `typ-488))
2747+ (weld (check ~.types-union-print-escape src-490 `tok-490 `tre-490) (check-types ~.types-union-print-escape ~[%tests %golden ~.types-union-print-escape %source %jibb] src-490 `typ-490))
27342748++ test-types-union-print-local
2735− (weld (check ~.types-union-print-local src-489 `tok-489 `tre-489) (check-types ~.types-union-print-local ~[%tests %golden ~.types-union-print-local %source %jibb] src-489 `typ-489))
2749+ (weld (check ~.types-union-print-local src-491 `tok-491 `tre-491) (check-types ~.types-union-print-local ~[%tests %golden ~.types-union-print-local %source %jibb] src-491 `typ-491))
27362750++ test-types-union-print-nested
2737− (weld (check ~.types-union-print-nested src-490 `tok-490 `tre-490) (check-types ~.types-union-print-nested ~[%tests %golden ~.types-union-print-nested %source %jibb] src-490 `typ-490))
2751+ (weld (check ~.types-union-print-nested src-492 `tok-492 `tre-492) (check-types ~.types-union-print-nested ~[%tests %golden ~.types-union-print-nested %source %jibb] src-492 `typ-492))
27382752++ test-types-union-print-same-origin
2739− (weld (weld (check ~.types-union-print-same-origin src-491 `tok-491 `tre-491) (check-module-types ~.types-union-print-same-origin ~[%tests %golden ~.types-union-print-same-origin %source %jibb] src-491 `typ-491 ~ ~ ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-491-1]])) (check-module-trees ~.types-union-print-same-origin `mtre-491 ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-491-1]]))
2753+ (weld (weld (check ~.types-union-print-same-origin src-493 `tok-493 `tre-493) (check-module-types ~.types-union-print-same-origin ~[%tests %golden ~.types-union-print-same-origin %source %jibb] src-493 `typ-493 ~ ~ ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-493-1]])) (check-module-trees ~.types-union-print-same-origin `mtre-493 ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-493-1]]))
27402754++ test-types-union-print-transitive
2741− (weld (weld (check ~.types-union-print-transitive src-492 `tok-492 `tre-492) (check-module-types ~.types-union-print-transitive ~[%tests %golden ~.types-union-print-transitive %source %jibb] src-492 `typ-492 ~ ~ ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-492-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-492-2]])) (check-module-trees ~.types-union-print-transitive `mtre-492 ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-492-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-492-2]]))
2755+ (weld (weld (check ~.types-union-print-transitive src-494 `tok-494 `tre-494) (check-module-types ~.types-union-print-transitive ~[%tests %golden ~.types-union-print-transitive %source %jibb] src-494 `typ-494 ~ ~ ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-494-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-494-2]])) (check-module-trees ~.types-union-print-transitive `mtre-494 ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-494-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-494-2]]))
27422756++ test-types-union-singleton
2743− (weld (check ~.types-union-singleton src-493 `tok-493 `tre-493) (check-types ~.types-union-singleton ~[%tests %golden ~.types-union-singleton %source %jibb] src-493 `typ-493))
2757+ (weld (check ~.types-union-singleton src-495 `tok-495 `tre-495) (check-types ~.types-union-singleton ~[%tests %golden ~.types-union-singleton %source %jibb] src-495 `typ-495))
27442758++ test-types-union-tag-atoms
2745− (weld (check ~.types-union-tag-atoms src-494 `tok-494 `tre-494) (check-types ~.types-union-tag-atoms ~[%tests %golden ~.types-union-tag-atoms %source %jibb] src-494 `typ-494))
2759+ (weld (check ~.types-union-tag-atoms src-496 `tok-496 `tre-496) (check-types ~.types-union-tag-atoms ~[%tests %golden ~.types-union-tag-atoms %source %jibb] src-496 `typ-496))
27462760++ test-types-union-tags
2747− (weld (check ~.types-union-tags src-495 `tok-495 `tre-495) (check-types ~.types-union-tags ~[%tests %golden ~.types-union-tags %source %jibb] src-495 `typ-495))
2761+ (weld (check ~.types-union-tags src-497 `tok-497 `tre-497) (check-types ~.types-union-tags ~[%tests %golden ~.types-union-tags %source %jibb] src-497 `typ-497))
27482762++ test-types-union-unresolved
2749− (weld (check ~.types-union-unresolved src-496 `tok-496 `tre-496) (check-types ~.types-union-unresolved ~[%tests %golden ~.types-union-unresolved %source %jibb] src-496 `typ-496))
2763+ (weld (check ~.types-union-unresolved src-498 `tok-498 `tre-498) (check-types ~.types-union-unresolved ~[%tests %golden ~.types-union-unresolved %source %jibb] src-498 `typ-498))
27502764++ test-types-union-unresolved-flow
2751− (weld (check ~.types-union-unresolved-flow src-497 `tok-497 `tre-497) (check-types ~.types-union-unresolved-flow ~[%tests %golden ~.types-union-unresolved-flow %source %jibb] src-497 `typ-497))
2765+ (weld (check ~.types-union-unresolved-flow src-499 `tok-499 `tre-499) (check-types ~.types-union-unresolved-flow ~[%tests %golden ~.types-union-unresolved-flow %source %jibb] src-499 `typ-499))
27522766++ test-types-unit-context
2753− (weld (check ~.types-unit-context src-498 `tok-498 `tre-498) (check-types ~.types-unit-context ~[%tests %golden ~.types-unit-context %source %jibb] src-498 `typ-498))
2767+ (weld (check ~.types-unit-context src-500 `tok-500 `tre-500) (check-types ~.types-unit-context ~[%tests %golden ~.types-unit-context %source %jibb] src-500 `typ-500))
27542768++ test-types-unit-patterns
2755− (weld (check ~.types-unit-patterns src-499 `tok-499 `tre-499) (check-types ~.types-unit-patterns ~[%tests %golden ~.types-unit-patterns %source %jibb] src-499 `typ-499))
2769+ (weld (check ~.types-unit-patterns src-501 `tok-501 `tre-501) (check-types ~.types-unit-patterns ~[%tests %golden ~.types-unit-patterns %source %jibb] src-501 `typ-501))
27562770::
27572771:: +check: run golden:jibb on a case and compare both outputs
27582772::
tests/type-module-scope/about.txt+1−1
@@ -10,4 +10,4 @@ The real vendored prelude and the existing two-module prelude golden check
1010that source-wrapper and prepared-interface outputs agree with each other and
1111with the golden report under eval and on the ship.
1212An imported list stays representable with an omitted or altered prelude
13−list, but its list literals fail closed; a malformed prelude is rejected.
13+list, but its list literals and list patterns fail closed; a malformed prelude is rejected.
tests/type-module-scope/expected.txt+2
@@ -18,11 +18,13 @@ duplicate module sources: /ui/dup/jibb
1818real prelude prepared/wrapper and golden match
1919partial inference; module not checked
2020++ imported: $-((list @t) (list @t))
21+++ imported-pattern: list pattern needs the standard prelude in partial inference
2122++ imported-literal: list literal needs the standard prelude in partial inference
2223++ literal: cast mold is not supported by partial inference
2324++ bridge: cast mold is not supported by partial inference
2425partial inference; module not checked
2526++ imported: $-((list @t) (list @t))
27+++ imported-pattern: list pattern needs the standard prelude in partial inference
2628++ imported-literal: list literal needs the standard prelude in partial inference
2729++ literal: cast mold is not supported by partial inference
2830++ bridge: cast mold is not supported by partial inference