on master help sign in
Report missing union tags and infer unit helpers
commita140383285e18edb46ef5cc350e2093884bfdf74 authoriko <mail@iko.soy> dateSat 31 Oct 2026, 00:42 (16 hours ago) parent264a436
43 files changed+1918−926
docs/compiler.md+3−1 docs/open-questions.md+3−1 docs/prelude-inventory.md+1−1 docs/prompts/milestone-2.md+1−1 docs/status.md+7−6 jibb-dev/lib/jibb.hoon+64−2 jibb-dev/lib/jibb/prelude.jibb+7−6 tests/golden/prelude-unit-list-transforms/source.jibb+7−6 tests/golden/prelude-unit-list-transforms/tokens.txt+255−230 tests/golden/prelude-unit-list-transforms/tree.txt+148−138 tests/golden/prelude-unit-list-transforms/types.txt+1−1 tests/golden/types-generic-union-errors/types.txt+3−3 tests/golden/types-missing-tag-context/about.txt+4 tests/golden/types-missing-tag-context/modules.txt+1 tests/golden/types-missing-tag-context/source.jibb+17 tests/golden/types-missing-tag-context/tokens.txt+98 tests/golden/types-missing-tag-context/tree.txt+45 tests/golden/types-missing-tag-context/types.txt+38 tests/golden/types-missing-tag-imported/about.txt+4 tests/golden/types-missing-tag-imported/imports.txt+2 tests/golden/types-missing-tag-imported/source.jibb+6 tests/golden/types-missing-tag-imported/sur/fixture.txt+21 tests/golden/types-missing-tag-imported/tokens.txt+43 tests/golden/types-missing-tag-imported/tree.txt+18 tests/golden/types-missing-tag-imported/types.txt+12 tests/golden/types-missing-tag-named/about.txt+4 tests/golden/types-missing-tag-named/modules.txt+1 tests/golden/types-missing-tag-named/source.jibb+23 tests/golden/types-missing-tag-named/tokens.txt+155 tests/golden/types-missing-tag-named/tree.txt+66 tests/golden/types-missing-tag-named/types.txt+66 tests/golden/types-prelude-unit-helpers/about.txt+4 tests/golden/types-prelude-unit-helpers/modules.txt+1 tests/golden/types-prelude-unit-helpers/source.jibb+11 tests/golden/types-prelude-unit-helpers/tokens.txt+131 tests/golden/types-prelude-unit-helpers/tree.txt+75 tests/golden/types-prelude-unit-helpers/types.txt+16 tests/golden/types-union-branch-context/types.txt+4−4 tests/golden/types-union-tags/types.txt+3−3 tests/golden/types-unit-construction/types.txt+3−3 tests/golden/types-unit-context/types.txt+12−12 tests/lib/jibb.hoon+531−505 tests/type-import/expected.txt+3−3
docs/compiler.md+3−1
@@ -60,6 +60,8 @@ The inference fragment supports fixed auras, unrestricted `@`, one-way widening
6060
6161String interpolation infers its pieces in order and preserves substitutions and pending constraints. A piece with a known atom aura, unrestricted `@`, or a tape `(list @tD)` is accepted; an isolated decimal literal takes its normal `@ud` default. A known cell reports that it needs a printer, and an explicitly generic atom asks for an aura at its use site. Loobeans, term singletons, non-tape collections, open types and a type fixed only later remain unsupported in this fragment.
6262
63+A bare tag that provably matches no case of a known union reports the union and tag sites. This covers casts, single-argument calls, contextual unit payloads, list items and supported branch arms, including unnamed imported unions. Existing tags whose shape or payload does not fit retain the ordinary mismatch; unresolved tags stay pending.
64+
6365A change can replace uniquely named fields on a fully known, faced record spine, including through a nested wing. Replacements receive the field type as context, substitutions and pending constraints are retained, and the resulting type remains the original record. Missing fields, empty changes and definite replacement mismatches report sites; the expected-type site is the edit, since the original field declaration location is not retained. Unknown or partly unfaced spines, ambiguous fields and repeated edits remain unsupported. A cast to a known record also supplies field context to a tuple or record initializer, including nested list and union fields. The expected-type site is the cast mold; the original field declaration location is not retained. The cart-store example’s `init` and `update` infer in this fragment; store kind and declaration checking remain unfinished.
6466
6567For 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.
@@ -68,7 +70,7 @@ Multi-argument calls form one right-nested sample: `f a b c` supplies `[a [b c]]
6870
6971A 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. Under the same known context, `~` and zero-valued term literals fit an empty list, and a two-item unfaced cell `[head tail]` is a cons; cons cells and list literals can be nested. Mismatched heads or tails report both sites. A known list result also supplies context through complete loobean, unit-shaped and list-shaped branches, including recursive and nested branches. A known gate sample also supplies context to corresponding positions of a single tuple or record argument, including nested cells; a zero literal can therefore fit a list position. A bound zero constant still remains unsupported rather than a definite mismatch, and an unknown callee does not supply context. Faced or longer cells, uncontextualized construction, and a missing or altered prelude list remain unsupported. 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.
7072
71−A backtick constructs a unit when the supplied prelude has the validated standard `unit` template. Its payload is inferred normally, retaining pending literals and generic variables; nested units work and the prelude’s `some` becomes available. A known unit in a cast, call, list item or record field supplies its payload context, including nested units and lists; definite mismatches identify the payload and context. Unrelated union identities, some variable-dependent fits, and missing or altered prelude templates remain unsupported.
73+A backtick constructs a unit when the supplied prelude has the validated standard `unit` template. Its payload is inferred normally, retaining pending literals and generic variables; nested units work and the prelude’s `some` becomes available. With ordinary result annotations, its `bind`, `biff`, `both` and `flit` also infer. A known unit in a cast, call, list item or record field supplies its payload context, including nested units and lists; definite mismatches identify the payload and context. Unrelated union identities, some variable-dependent fits, and missing or altered prelude templates remain unsupported.
7274
7375A 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.
7476
docs/open-questions.md+3−1
@@ -18,7 +18,7 @@ On 2026-10-30, @iko adopted gate-free `eq` arguments and map and set keys, treat
1818
1919## Questions milestone 2 raises
2020
21−Found while writing [prompts/milestone-2.md](prompts/milestone-2.md), checking it against the doc's examples, and building the checker. The numbering is retained so existing references stay valid. Questions 3 and 18 remain open; the other questions are settled.
21+Found while writing [prompts/milestone-2.md](prompts/milestone-2.md), checking it against the doc's examples, and building the checker. The numbering is retained so existing references stay valid. Questions 3, 18 and 24 remain open; the other questions are settled.
2222
23231. **Settled: how the prelude identifies jetted functions.** On 2026-10-30, @iko said the prelude functions have working Jibb implementations, and the compiler recognizes their shapes and uses the Hoon versions so jets can fire.
24242. **Settled: how the prelude keeps helpers private.** On 2026-10-30, @iko chose a separate internal prelude module imported by the prelude, without exposing the imported helpers.
@@ -44,6 +44,8 @@ Found while writing [prompts/milestone-2.md](prompts/milestone-2.md), checking i
444422. **Settled: overlapping imported `$%` and `$?` cases.** On 2026-10-30, @iko confirmed that the general union disjointness rule rejects imported `$%` and `$?` cases that overlap as nouns where the type is used, as it does for `$^`. The importer rejects recognizable overlaps and fails closed when it cannot verify them.
454523. **Settled: converging explicit capitals.** On 2026-10-30, @iko chose that a body cannot force two separately written capitals to be equal. For `++ repeated |= x=(choice A A) x`, `++ f |= x=(choice A B) (repeated x)` is an error; use `A` in both positions when the type must be shared. This also applies across local captures and within generic mold applications.
4646
47+24. **How the internal prelude provides opaque types.** The public prelude needs an opaque `poke` type, but Jibb has no syntax to declare an opaque type in its private internal module. Should the internal module instead be a compiler-provided private interface that the prelude imports and re-exports, or should Jibb gain syntax for private opaque declarations? @iko has been asked; the answer is pending. The separate internal module and private primitives were already agreed in questions 2 and 14.
48+
4749## Grammar questions never put to the doc's author
4850
4951In milestone 1 the parser met about thirty places where the doc could be read more than one way. Twelve went to @iko on 2026-10-30 and are rows of the Decisions tab. These were not asked. For each, the parser follows the reading below, and some are marked "(doc question)" in the library's notes. None changes what a valid program means, except where a reading makes something an error.
docs/prelude-inventory.md+1−1
@@ -20,7 +20,7 @@ Hoon `+$` arms are marked **mold** below; `++` arms can be gates, doors or mold
2020
2121`biff`, `bind`, `bond`, `both`, `clap`, `clef`, `drop`, `fall`, `flit`, `hunt`, `lift`, `mate`, `need`, `some`.
2222
23−The following is an audit of the Hoon 135 bodies, not a completed Jibb interface. The partial checker infers `fall`, `need` and `some`; the remaining written implementations have been parsed, but complete checker validation remains outstanding. Backend validation remains outstanding for all of them.
23+The following is an audit of the Hoon 135 bodies, not a completed Jibb interface. The partial checker infers `fall`, `need`, `some`, `bind`, `biff`, `both` and `flit`; the remaining written implementations have been parsed, but complete checker validation remains outstanding. Backend validation remains outstanding for all of them.
2424
2525| Name | Hoon behavior | Jibb status |
2626| --- | --- | --- |
docs/prompts/milestone-2.md+1−1
@@ -49,7 +49,7 @@ And from the plan's Risks:
4949
5050## First steps
5151
52−1. **Specify the prelude inventory.** The checker needs the prelude's complete exported inventory and signatures; include all names from the listed Hoon library sections except explicitly excluded groups, as `docs/open-questions.md` question 3 records. The prelude imports private helpers and low-level primitives from a separate internal module without exposing them; its public foundational gates are implemented in Jibb on those primitives.
52+1. **Specify the prelude inventory.** The checker needs the prelude's complete exported inventory and signatures; include all names from the listed Hoon library sections except explicitly excluded groups, as `docs/open-questions.md` question 3 records. The prelude imports private helpers and low-level primitives from a separate internal module without exposing them; its public foundational gates are implemented in Jibb on those primitives. How that module supplies opaque types such as `poke` is still awaiting @iko’s answer: question 24 records the alternatives of a compiler-provided private interface or syntax for private opaque declarations.
5353
5454 The plan's three core-language rules were adopted: gate-free `eq` arguments and map and set keys, with gates opaque for union matching; jetted prelude functions taking gates; and rejection of a non-gate value that depends on itself even through a gate.
55552. **Start the importer early**, as the plan's Risks ask: first on a small `/sur` file, then on Tlon's. "Suggested design" below has a way in.
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 most prelude collection operations remain unsupported; 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, as @iko confirmed for imported `$%`, `$?` and `$^`, while other nested unions, nested ordered maps, general union disjointness and complete import integration remain unfinished. Opt-in structured reader APIs preserve successful graphs and distinguish definite unsupported-aura and core evidence from failures the reader cannot prove; unverified union disjointness and name-only vase recognition remain unsupported. They revalidate and re-walk failed types. An opt-in partial checker entry point consumes unchanged reader results and reports definite aura or core errors at imported mold use sites when their inputs are unique. Ordered replay covers nested cell samples, record and function casts, and non-generic same-module aliases; unsupported prefixes, cycles and shadowing stop it. Union molds, generic applications, transitive modules and unsupported reader outcomes remain generic. Replay repeats inference and may add work. 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, selected single self-recursive top-level and local gates, 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. Multi-argument calls form a right-nested sample, retain known faces and shared type variables, and can use known sample positions to contextualize list and union arguments. A definite mismatch points to the failing argument when the fragment can establish it, otherwise to the combined sample; unsupported contextual forms still fail closed. For a supported recursive gate, the checker infers the sample first and uses its exact type, including field faces, for one monomorphic self reference. It generalizes after the body is checked; subsequent uses instantiate it independently. Incompatible recursive arguments can report the gate and argument sites. For a complete loobean branch with one direct self-call arm, a separately inferred closed base type can seed the recursive result before the whole body is checked. Open or pending base types do not seed it; other branch shapes remain subject to the fragment’s existing limits. A supported single local recursive gate also uses a monomorphic self reference and generalizes variables free of the enclosing environment after checking its body; captured variables remain shared. The checker collects written capitals per `++` before inference, excluding nested definitions: a capital used in an enclosing definition is shared with its locals even when written later, while a capital introduced only in a local definition is generalized there. Sibling locals can introduce independent capitals with the same spelling; generic mold parameters keep their own scope. Top-level groups of syntactic gates are inferred together with monomorphic placeholders and shared substitutions, then generalized only after the whole group checks; downstream uses and library interfaces instantiate those schemes independently. A dependency graph identifies groups with two iterative depth-first passes; its conservative local-reference edges can reject otherwise valid programs. Local mutual groups, polymorphic recursion, value cycles, unresolved literal constraints and unresolved branch joins remain unsupported. Reporting repeats inference for a single recursive gate outside a group; grouped reports use the stored schemes. Its performance cost remains unmeasured. String interpolation accepts known atom auras, unrestricted `@`, tapes and isolated decimal literals; a known cell asks for a printer, and an explicitly generic atom asks for an aura. Loobeans, term singletons, non-tape collections, open types and a type fixed only later remain unsupported. A known closed union with two or more arms supports patterns that provably cover or exclude each remaining case, including payload binders, imported and generic cases, and binder-free catch-alls. Partial boolean patterns can split known `?` positions into their two noun values, up to 64 alternatives across the union; binders retain their original case type. Missing alternatives and covered arms are reported. Other partial patterns, expansions above the limit, binders spanning distinct cases, differing arm result types, some complex two-arm subjects and contextual union-pattern branches remain unsupported. The Grammar’s `step` block infers in this fragment, but its module is not yet checked. Known faced records support uniquely named field changes, including nested wings, with field context passed to replacements and the original record type retained. Missing fields, empty changes and definite mismatches report sites; the expected-type site is the edit because the original field declaration location is not retained. Unknown or partly unfaced spines, ambiguous fields and repeated edits remain unsupported. A known record cast supplies field context to its tuple or record initializer, including nested list and union fields; mismatch diagnostics use the cast mold because the original field declaration location is not retained. The cart-store example’s `init` and `update` now infer, while its kind, declarations and full module remain unchecked. Backtick unit construction uses the validated standard prelude unit template, infers its payload without losing pending constraints, and makes the prelude’s `some` available. A known unit in a cast, call, list item or record field supplies context to its payload, including nested units and lists; mismatches identify the payload and context. Unrelated union identities, some variable-dependent fits, and missing or altered prelude unit templates remain unsupported. 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. In that context `~` and zero-valued terms fit an empty list, and two-item unfaced cells form cons lists, including nested cons and imported-list contexts; invalid heads or tails name both sites. A known gate sample also supplies context to matching positions in a single tuple or record argument, including nested cells; zero literals can fit list positions. A bound zero constant remains unsupported rather than a definite mismatch, and an unknown callee does not supply context. Faced or longer cells and a missing or altered prelude list fail closed. A known list result also supplies context through complete loobean, unit-shaped and list-shaped branches, including recursive and nested branches. 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 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. Forced equality of distinct written capitals now reports both source sites, following @iko’s decision; forcing one to a concrete type remains unsupported. Imported record spines with repeated faces fail closed where used, but only with a generic unsupported diagnostic. Hoon may erase unfaced nested-cell boundaries, so the check can conservatively reject valid names in distinct erased scopes. 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; mutually recursive local groups and recursive 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`, `rear` and the newly agreed shared-type `clap`, 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 most prelude collection operations remain unsupported; 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, as @iko confirmed for imported `$%`, `$?` and `$^`, while other nested unions, nested ordered maps, general union disjointness and complete import integration remain unfinished. Opt-in structured reader APIs preserve successful graphs and distinguish definite unsupported-aura and core evidence from failures the reader cannot prove; unverified union disjointness and name-only vase recognition remain unsupported. They revalidate and re-walk failed types. An opt-in partial checker entry point consumes unchanged reader results and reports definite aura or core errors at imported mold use sites when their inputs are unique. Ordered replay covers nested cell samples, record and function casts, and non-generic same-module aliases; unsupported prefixes, cycles and shadowing stop it. Union molds, generic applications, transitive modules and unsupported reader outcomes remain generic. Replay repeats inference and may add work. 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, selected single self-recursive top-level and local gates, 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. Multi-argument calls form a right-nested sample, retain known faces and shared type variables, and can use known sample positions to contextualize list and union arguments. A definite mismatch points to the failing argument when the fragment can establish it, otherwise to the combined sample; unsupported contextual forms still fail closed. For a supported recursive gate, the checker infers the sample first and uses its exact type, including field faces, for one monomorphic self reference. It generalizes after the body is checked; subsequent uses instantiate it independently. Incompatible recursive arguments can report the gate and argument sites. For a complete loobean branch with one direct self-call arm, a separately inferred closed base type can seed the recursive result before the whole body is checked. Open or pending base types do not seed it; other branch shapes remain subject to the fragment’s existing limits. A supported single local recursive gate also uses a monomorphic self reference and generalizes variables free of the enclosing environment after checking its body; captured variables remain shared. The checker collects written capitals per `++` before inference, excluding nested definitions: a capital used in an enclosing definition is shared with its locals even when written later, while a capital introduced only in a local definition is generalized there. Sibling locals can introduce independent capitals with the same spelling; generic mold parameters keep their own scope. Top-level groups of syntactic gates are inferred together with monomorphic placeholders and shared substitutions, then generalized only after the whole group checks; downstream uses and library interfaces instantiate those schemes independently. A dependency graph identifies groups with two iterative depth-first passes; its conservative local-reference edges can reject otherwise valid programs. Local mutual groups, polymorphic recursion, value cycles, unresolved literal constraints and unresolved branch joins remain unsupported. Reporting repeats inference for a single recursive gate outside a group; grouped reports use the stored schemes. Its performance cost remains unmeasured. String interpolation accepts known atom auras, unrestricted `@`, tapes and isolated decimal literals; a known cell asks for a printer, and an explicitly generic atom asks for an aura. Loobeans, term singletons, non-tape collections, open types and a type fixed only later remain unsupported. A known closed union with two or more arms supports patterns that provably cover or exclude each remaining case, including payload binders, imported and generic cases, and binder-free catch-alls. Partial boolean patterns can split known `?` positions into their two noun values, up to 64 alternatives across the union; binders retain their original case type. Missing alternatives and covered arms are reported. Other partial patterns, expansions above the limit, binders spanning distinct cases, differing arm result types, some complex two-arm subjects and contextual union-pattern branches remain unsupported. The Grammar’s `step` block infers in this fragment, but its module is not yet checked. A bare tag proved absent from a known union reports the union and tag sites in casts, single-argument calls, unit payloads, list items and supported branch arms; imported unnamed unions print their cases. Known faced records support uniquely named field changes, including nested wings, with field context passed to replacements and the original record type retained. Missing fields, empty changes and definite mismatches report sites; the expected-type site is the edit because the original field declaration location is not retained. Unknown or partly unfaced spines, ambiguous fields and repeated edits remain unsupported. A known record cast supplies field context to its tuple or record initializer, including nested list and union fields; mismatch diagnostics use the cast mold because the original field declaration location is not retained. The cart-store example’s `init` and `update` now infer, while its kind, declarations and full module remain unchecked. Backtick unit construction uses the validated standard prelude unit template, infers its payload without losing pending constraints, and makes the prelude’s `some` available. Ordinary result annotations also let its `bind`, `biff`, `both` and `flit` infer. A known unit in a cast, call, list item or record field supplies context to its payload, including nested units and lists; mismatches identify the payload and context. Unrelated union identities, some variable-dependent fits, and missing or altered prelude unit templates remain unsupported. 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. In that context `~` and zero-valued terms fit an empty list, and two-item unfaced cells form cons lists, including nested cons and imported-list contexts; invalid heads or tails name both sites. A known gate sample also supplies context to matching positions in a single tuple or record argument, including nested cells; zero literals can fit list positions. A bound zero constant remains unsupported rather than a definite mismatch, and an unknown callee does not supply context. Faced or longer cells and a missing or altered prelude list fail closed. A known list result also supplies context through complete loobean, unit-shaped and list-shaped branches, including recursive and nested branches. 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 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. Forced equality of distinct written capitals now reports both source sites, following @iko’s decision; forcing one to a concrete type remains unsupported. Imported record spines with repeated faces fail closed where used, but only with a generic unsupported diagnostic. Hoon may erase unfaced nested-cell boundaries, so the check can conservatively reject valid names in distinct erased scopes. 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; mutually recursive local groups and recursive 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`, `rear` and the newly agreed shared-type `clap`, 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`, `need`, `lure`, `weld`, `snoc` and `turn`. The validated standard `list` mold is injected when the prelude’s own gates are inferred; `weld` and `turn` have ordinary explicit result casts. An absent or altered `list` is not injected, and an altered declaration cannot leak through direct or transitive mold aliases. List-dependent prelude mold aliases remain unsupported because their templates are prepared before injection. Unsupported entries such as most list helpers remain reserved but unavailable; backend validation of the helpers remains outstanding. 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−- 535 golden cases: 319 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 535-case corpus passed under `urbit eval` in 62.4 s. The fake ship passed all 541 tests, including the importer, importer/checker and mark/checker bridges, module scope and unification checks, with 32.8 s for sync and 39.4 s for tests. The importer golden compares 149 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+- 539 golden cases: 323 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 539-case corpus passed under `urbit eval` in 63.0 s. The fake ship passed all 545 tests, including the importer, importer/checker and mark/checker bridges, module scope and unification checks, with 37.7 s for sync and 18.5 s for tests. The importer golden compares 149 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).
@@ -98,14 +98,15 @@ Besides the plan's list:
9898| 9dd35c8 | 2026-10-31 | Match finite boolean refinements of union cases |
9999| 54852d4 | 2026-10-31 | Contextualize tuple calls and infer known record changes |
100100| 0bc5113 | 2026-10-31 | Contextualize record initializers and infer unit construction |
101−| This change | 2026-10-31 | Contextualize unit payloads in casts, calls and nested values |
101+| 264a436 | 2026-10-31 | Contextualize unit payloads in casts, calls and nested values |
102+| This change | 2026-10-31 | Report missing union tags and infer prelude unit helpers |
102103
103104## Checking it
104105
105106On a machine set up as [development.md](development.md) says:
106107
107108```
108−tools/golden # 535 cases under urbit eval
109+tools/golden # 539 cases under urbit eval
109110tools/importer-test # the Hoon importer fixture projection
110111tools/type-import-test # the importer/checker bridge fixture
111112tools/type-mark-test # the mark/checker bridge fixture
@@ -115,7 +116,7 @@ tools/testdata/selftest # the tools themselves
115116tools/doc-blocks docs/spec # the doc's examples are golden cases
116117tools/ship start
117118tools/ship gen-tests --check # tests/lib/jibb.hoon is up to date
118−tools/ship test # the same 535 cases as -test arms on the ship
119+tools/ship test # the same 539 cases as -test arms on the ship
119120tools/testdata/ship-selftest
120121tools/ship check-commit # |commit stores .jibb files
121122tools/clay-fixtures # example /sur files and marks build through Clay
jibb-dev/lib/jibb.hoon+64−2
@@ -6454,6 +6454,8 @@
64546454 [%| ["branch list constraint is not supported by partial inference" ~]]
64556455 [%| ["branch union constraint is not supported by partial inference" ~]]
64566456 ?: ?=(%bad -.fit)
6457+ =/ missing=(unit idiag) (missing-union-tag e expected sub.state.p.value context)
6458+ ?^ missing [%| u.missing]
64576459 ?: &(?=(%collection -.expected) =(%list name.expected))
64586460 [%| ["branch arm does not fit its expected list" ~[[context "expected list"] [(span-of e) "branch arm"]]]]
64596461 [%| ["branch arm does not fit its expected union" ~[[context "expected union"] [(span-of e) "branch arm"]]]]
@@ -6530,6 +6532,8 @@
65306532 =/ fit=ifit (itype-fit typ.p.value target sub.state.p.value next.state.p.value)
65316533 ?: ?=(%unknown -.fit) [%| ["list item constraint is not supported by partial inference" ~]]
65326534 ?: ?=(%bad -.fit)
6535+ =/ missing=(unit idiag) (missing-union-tag i.items target sub.state.p.value context)
6536+ ?^ missing [%| u.missing]
65336537 [%| ["list item does not fit its expected type" ~[[context (site-type-note "expected item" target sub.state.p.value)] [(span-of i.items) (site-type-note "list item" typ.p.value sub.state.p.value)]]]]
65346538 $(items t.items, state state.p.value(sub sub.fit, next next.fit))
65356539::
@@ -6949,6 +6953,56 @@
69496953 [%union ~[nil [%cell nil [%face %u [%var v]]]] `[at %unit] `%unit ~[[%var v]]]
69506954 =(typ.template expected)
69516955::
6956+:: A named missing-case diagnostic needs more than a failed fit: a case
6957+:: with that tag but the wrong payload is not a missing case. Unknown
6958+:: shapes and atom types that accept terms keep the proof conservative.
6959++$ itag-presence ?(%yes %no %maybe)
6960+++ tag-presence-cases
6961+ |= [cases=(list itype) value=@ sub=isub]
6962+ ^- itag-presence
6963+ ?~ cases %no
6964+ =/ first=itag-presence (tag-presence i.cases value sub)
6965+ ?: =(%yes first) %yes
6966+ =/ rest=itag-presence $(cases t.cases)
6967+ ?: =(%yes rest) %yes
6968+ ?: |(=(%maybe first) =(%maybe rest)) %maybe
6969+ %no
6970+::
6971+++ tag-presence
6972+ |= [t=itype value=@ sub=isub]
6973+ ^- itag-presence
6974+ =. t (itype-walk t sub)
6975+ ?- -.t
6976+ %const ?:(=(value val.literal.t) %yes %no)
6977+ %flag ?:(|(=(value 0) =(value 1)) %yes %no)
6978+ %atom ?:(|(=(%tas aura.t) =(%ta aura.t)) %maybe %no)
6979+ %face $(t body.t)
6980+ %cell
6981+ =/ first=itag-presence $(t hed.t)
6982+ ?: =(%yes first) %yes
6983+ =/ rest=itag-presence $(t tal.t)
6984+ ?: =(%yes rest) %yes
6985+ ?: |(=(%maybe first) =(%maybe rest)) %maybe
6986+ %no
6987+ %union (tag-presence-cases cases.t value sub)
6988+ * %maybe
6989+ ==
6990+::
6991+++ missing-union-tag
6992+ |= [e=expr expected=itype sub=isub context=span]
6993+ ^- (unit idiag)
6994+ ?. ?=(%lit -.e) ~
6995+ ?. =(%term form.lit.e) ~
6996+ =. expected (itype-walk expected sub)
6997+ |-
6998+ ?: ?=(%face -.expected) $(expected (itype-walk body.expected sub))
6999+ ?. ?=(%union -.expected) ~
7000+ ?. =(%no (tag-presence-cases cases.expected val.lit.e sub)) ~
7001+ =/ label=tape
7002+ ?~ label.expected "union {(show-itype expected sub)}"
7003+ (show-itype expected sub)
7004+ `["{label} has no case `{(trip txt.lit.e)}`" ~[[context "expected union"] [(span-of e) "tag"]]]
7005+::
69527006++ infer-fragment
69537007 |= [e=expr env=ienv state=istate]
69547008 ^- iresult
@@ -7087,6 +7141,8 @@
70877141 =/ fit=ifit (itype-fit typ.p.value typ.u.target sub.state.p.value next.state.p.value)
70887142 ?: ?=(%unknown -.fit) [%| ["cast constraint is not supported by partial inference" ~]]
70897143 ?: ?=(%bad -.fit)
7144+ =/ missing=(unit idiag) (missing-union-tag val.e typ.u.target sub.state.p.value at.shape.e)
7145+ ?^ missing [%| u.missing]
70907146 [%| ["cast mold and expression type do not unify" ~[[at.shape.e (site-type-note "cast mold" typ.u.target sub.state.p.value)] [(span-of val.e) (site-type-note "expression" typ.p.value sub.state.p.value)]]]]
70917147 =/ merged=itype (itype-merge-faces typ.p.value typ.u.target sub.fit)
70927148 [%& merged state.p.value(sub sub.fit, next next.fit)]
@@ -7129,10 +7185,14 @@
71297185 =/ fit=ifit (itype-fit typ.p.arg sample.ht sub.st next.st)
71307186 ?: ?=(%unknown -.fit) [%| ["call constraint is not supported by partial inference" ~]]
71317187 ?: ?=(%bad -.fit)
7188+ ?~ t.args.e
7189+ =/ missing=(unit idiag) (missing-union-tag i.args.e sample.ht sub.st (span-of head.e))
7190+ ?^ missing [%| u.missing]
7191+ [%| ["call's sample and argument types do not unify" ~[[(span-of head.e) (site-type-note "called gate" ht sub.st)] [(span-of i.args.e) (site-type-note "argument" typ.p.arg sub.st)]]]]
71327192 =/ bad=(unit [at=span typ=itype])
7133− ?~(t.args.e ~ (call-error-site args.e typ.p.arg sample.ht sub.st next.st))
7193+ (call-error-site args.e typ.p.arg sample.ht sub.st next.st)
71347194 =/ whole-args=span
7135− ?~(t.args.e (span-of i.args.e) [beg:(span-of i.args.e) end:(span-of (rear args.e))])
7195+ [beg:(span-of i.args.e) end:(span-of (rear args.e))]
71367196 =/ arg-at=span ?~(bad whole-args at.u.bad)
71377197 =/ arg-type=itype ?~(bad typ.p.arg typ.u.bad)
71387198 [%| ["call's sample and argument types do not unify" ~[[(span-of head.e) (site-type-note "called gate" ht sub.st)] [arg-at (site-type-note "argument" arg-type sub.st)]]]]
@@ -7199,6 +7259,8 @@
71997259 =/ fit=ifit (itype-fit typ.p.value payload sub.state.p.value next.state.p.value)
72007260 ?: ?=(%unknown -.fit) [%| ["unit payload constraint is not supported by partial inference" ~]]
72017261 ?: ?=(%bad -.fit)
7262+ =/ missing=(unit idiag) (missing-union-tag val.e payload sub.state.p.value context)
7263+ ?^ missing [%| u.missing]
72027264 [%| ["unit payload does not fit its expected type" ~[[context (site-type-note "expected unit payload" payload sub.state.p.value)] [(span-of val.e) (site-type-note "payload" typ.p.value sub.state.p.value)]]]]
72037265 [%& expected state.p.value(sub sub.fit, next next.fit)]
72047266::
jibb-dev/lib/jibb/prelude.jibb+7−6
@@ -146,21 +146,21 @@
146146
147147++ bind |= args=[(unit A) $-(A B)]
148148 ?- args
149− [maybe f]
149+ [maybe f] ^- (unit B)
150150 ?- maybe
151151 ~ ~
152152 [~ value] `(f value)
153153
154154++ biff |= args=[(unit A) $-(A (unit B))]
155155 ?- args
156− [maybe f]
156+ [maybe f] ^- (unit B)
157157 ?- maybe
158158 ~ ~
159159 [~ value] (f value)
160160
161161++ both |= args=[(unit A) (unit B)]
162162 ?- args
163− [first second]
163+ [first second] ^- (unit [A B])
164164 ?- first
165165 ~ ~
166166 [~ a]
@@ -244,9 +244,10 @@
244244
245245++ flit |= predicate=$-(A ?)
246246 |= value=A
247− ?- (predicate value)
248− %.y `value
249− %.n ~
247+ ^- (unit A)
248+ ?- (predicate value)
249+ %.y `value
250+ %.n ~
250251
251252++ murn |= args=[(list A) $-(A (unit B))]
252253 ?- args
tests/golden/prelude-unit-list-transforms/source.jibb+7−6
@@ -146,21 +146,21 @@
146146
147147++ bind |= args=[(unit A) $-(A B)]
148148 ?- args
149− [maybe f]
149+ [maybe f] ^- (unit B)
150150 ?- maybe
151151 ~ ~
152152 [~ value] `(f value)
153153
154154++ biff |= args=[(unit A) $-(A (unit B))]
155155 ?- args
156− [maybe f]
156+ [maybe f] ^- (unit B)
157157 ?- maybe
158158 ~ ~
159159 [~ value] (f value)
160160
161161++ both |= args=[(unit A) (unit B)]
162162 ?- args
163− [first second]
163+ [first second] ^- (unit [A B])
164164 ?- first
165165 ~ ~
166166 [~ a]
@@ -244,9 +244,10 @@
244244
245245++ flit |= predicate=$-(A ?)
246246 |= value=A
247− ?- (predicate value)
248− %.y `value
249− %.n ~
247+ ^- (unit A)
248+ ?- (predicate value)
249+ %.y `value
250+ %.n ~
250251
251252++ murn |= args=[(list A) $-(A (unit B))]
252253 ?- args
tests/golden/prelude-unit-list-transforms/tokens.txt+255−230
@@ -901,6 +901,11 @@
901901149:6 tight name maybe
902902149:12 name f
903903149:13 tight glyph ]
904+149:15 glyph ^-
905+149:18 glyph (
906+149:19 tight name unit
907+149:24 tvar B
908+149:25 tight glyph )
904909150:7 INDENT
905910150:7 glyph ?-
906911150:10 name maybe
@@ -948,6 +953,11 @@
948953156:6 tight name maybe
949954156:12 name f
950955156:13 tight glyph ]
956+156:15 glyph ^-
957+156:18 glyph (
958+156:19 tight name unit
959+156:24 tvar B
960+156:25 tight glyph )
951961157:7 INDENT
952962157:7 glyph ?-
953963157:10 name maybe
@@ -991,6 +1001,14 @@
9911001163:6 tight name first
9921002163:12 name second
9931003163:18 tight glyph ]
1004+163:20 glyph ^-
1005+163:23 glyph (
1006+163:24 tight name unit
1007+163:29 glyph [
1008+163:30 tight tvar A
1009+163:32 tvar B
1010+163:33 tight glyph ]
1011+163:34 tight glyph )
9941012164:7 INDENT
9951013164:7 glyph ?-
9961014164:10 name first
@@ -1524,235 +1542,242 @@
15241542246:11 tight glyph =
15251543246:12 tight tvar A
15261544247:5 INDENT
1527−247:5 glyph ?-
1545+247:5 glyph ^-
15281546247:8 glyph (
1529−247:9 tight name predicate
1530−247:19 name value
1531−247:24 tight glyph )
1547+247:9 tight name unit
1548+247:14 tvar A
1549+247:15 tight glyph )
15321550248:7 INDENT
1533−248:7 lit %.y
1534−248:11 glyph `
1535−248:12 tight name value
1536−249:7 NEWLINE
1537−249:7 lit %.n
1538−249:11 lit ~
1539−251:1 DEDENT
1540−251:1 DEDENT
1541−251:1 DEDENT
1542−251:1 NEWLINE
1543−251:1 glyph ++
1544−251:4 name murn
1545−251:9 glyph |=
1546−251:12 name args
1547−251:16 tight glyph =
1548−251:17 tight glyph [
1549−251:18 tight glyph (
1550−251:19 tight name list
1551−251:24 tvar A
1552−251:25 tight glyph )
1553−251:27 glyph $-(
1554−251:30 tight tvar A
1555−251:32 glyph (
1556−251:33 tight name unit
1557−251:38 tvar B
1558−251:39 tight glyph )
1559−251:40 tight glyph )
1560−251:41 tight glyph ]
1561−252:3 INDENT
1562−252:3 glyph ?-
1563−252:6 name args
1564−253:5 INDENT
1565−253:5 glyph [
1566−253:6 tight name xs
1567−253:9 name f
1568−253:10 tight glyph ]
1569−254:7 INDENT
1570−254:7 glyph ?-
1571−254:10 name xs
1572−255:9 INDENT
1573−255:9 lit ~
1574−255:11 lit ~
1575−256:9 NEWLINE
1576−256:9 glyph [
1577−256:10 tight name item
1578−256:15 name rest
1579−256:19 tight glyph ]
1580−257:11 INDENT
1581−257:11 glyph ?-
1582−257:14 glyph (
1583−257:15 tight name f
1584−257:17 name item
1585−257:21 tight glyph )
1586−258:13 INDENT
1587−258:13 lit ~
1588−258:15 glyph (
1589−258:16 tight name murn
1590−258:21 name rest
1591−258:26 name f
1592−258:27 tight glyph )
1593−259:13 NEWLINE
1594−259:13 glyph [
1595−259:14 tight lit ~
1596−259:16 name value
1597−259:21 tight glyph ]
1598−259:23 glyph [
1599−259:24 tight name value
1600−259:30 glyph (
1601−259:31 tight name murn
1602−259:36 name rest
1603−259:41 name f
1604−259:42 tight glyph )
1605−259:43 tight glyph ]
1606−261:1 DEDENT
1607−261:1 DEDENT
1608−261:1 DEDENT
1609−261:1 DEDENT
1610−261:1 DEDENT
1611−261:1 DEDENT
1612−261:1 NEWLINE
1613−261:1 glyph ++
1614−261:4 name join
1615−261:9 glyph |=
1616−261:12 name args
1617−261:16 tight glyph =
1618−261:17 tight glyph [
1619−261:18 tight tvar A
1620−261:20 glyph (
1621−261:21 tight name list
1622−261:26 tvar A
1623−261:27 tight glyph )
1624−261:28 tight glyph ]
1625−262:3 INDENT
1626−262:3 glyph ?-
1627−262:6 name args
1628−263:5 INDENT
1629−263:5 glyph [
1630−263:6 tight name separator
1631−263:16 name xs
1632−263:18 tight glyph ]
1633−264:7 INDENT
1634−264:7 glyph ?-
1635−264:10 name xs
1636−265:9 INDENT
1637−265:9 lit ~
1638−265:11 lit ~
1639−266:9 NEWLINE
1640−266:9 glyph [
1641−266:10 tight name item
1642−266:15 name rest
1643−266:19 tight glyph ]
1644−267:11 INDENT
1645−267:11 glyph ?-
1646−267:14 name rest
1647−268:13 INDENT
1648−268:13 lit ~
1649−268:15 glyph [
1650−268:16 tight name item
1651−268:21 lit ~
1652−268:22 tight glyph ]
1653−269:13 NEWLINE
1654−269:13 glyph [
1655−269:14 tight name next
1656−269:19 name more
1657−269:23 tight glyph ]
1658−269:25 glyph [
1659−269:26 tight name item
1660−269:31 glyph [
1661−269:32 tight name separator
1662−269:42 glyph (
1663−269:43 tight name join
1664−269:48 name separator
1665−269:58 name rest
1666−269:62 tight glyph )
1667−269:63 tight glyph ]
1668−269:64 tight glyph ]
1669−271:1 DEDENT
1670−271:1 DEDENT
1671−271:1 DEDENT
1672−271:1 DEDENT
1673−271:1 DEDENT
1674−271:1 DEDENT
1675−271:1 NEWLINE
1676−271:1 glyph ++
1677−271:4 name snip
1678−271:9 glyph |=
1679−271:12 name xs
1680−271:14 tight glyph =
1681−271:15 tight glyph (
1682−271:16 tight name list
1683−271:21 tvar A
1684−271:22 tight glyph )
1685−272:3 INDENT
1686−272:3 glyph ?-
1687−272:6 name xs
1688−273:5 INDENT
1689−273:5 lit ~
1690−273:7 lit ~
1691−274:5 NEWLINE
1692−274:5 glyph [
1693−274:6 tight name item
1694−274:11 name rest
1695−274:15 tight glyph ]
1696−275:7 INDENT
1697−275:7 glyph ?-
1698−275:10 name rest
1699−276:9 INDENT
1700−276:9 lit ~
1701−276:11 lit ~
1702−277:9 NEWLINE
1703−277:9 glyph [
1704−277:10 tight name next
1705−277:15 name more
1706−277:19 tight glyph ]
1707−277:21 glyph [
1708−277:22 tight name item
1709−277:27 glyph (
1710−277:28 tight name snip
1711−277:33 name rest
1712−277:37 tight glyph )
1713−277:38 tight glyph ]
1714−279:1 DEDENT
1715−279:1 DEDENT
1716−279:1 DEDENT
1717−279:1 DEDENT
1718−279:1 NEWLINE
1719−279:1 glyph ++
1720−279:4 name rear
1721−279:9 glyph |=
1722−279:12 name xs
1723−279:14 tight glyph =
1724−279:15 tight glyph (
1725−279:16 tight name list
1726−279:21 tvar A
1727−279:22 tight glyph )
1728−280:3 INDENT
1729−280:3 glyph ?-
1730−280:6 name xs
1731−281:5 INDENT
1732−281:5 lit ~
1733−281:7 glyph !!
1734−282:5 NEWLINE
1735−282:5 glyph [
1736−282:6 tight name item
1737−282:11 name rest
1738−282:15 tight glyph ]
1739−283:7 INDENT
1740−283:7 glyph ?-
1741−283:10 name rest
1742−284:9 INDENT
1743−284:9 lit ~
1744−284:11 name item
1745−285:9 NEWLINE
1746−285:9 glyph [
1747−285:10 tight name next
1748−285:15 name more
1749−285:19 tight glyph ]
1750−285:21 glyph (
1751−285:22 tight name rear
1752−285:27 name rest
1753−285:31 tight glyph )
1754−285:32 DEDENT
1755−285:32 DEDENT
1756−285:32 DEDENT
1757−285:32 DEDENT
1758−285:32 NEWLINE
1551+248:7 glyph ?-
1552+248:10 glyph (
1553+248:11 tight name predicate
1554+248:21 name value
1555+248:26 tight glyph )
1556+249:9 INDENT
1557+249:9 lit %.y
1558+249:13 glyph `
1559+249:14 tight name value
1560+250:9 NEWLINE
1561+250:9 lit %.n
1562+250:13 lit ~
1563+252:1 DEDENT
1564+252:1 DEDENT
1565+252:1 DEDENT
1566+252:1 DEDENT
1567+252:1 NEWLINE
1568+252:1 glyph ++
1569+252:4 name murn
1570+252:9 glyph |=
1571+252:12 name args
1572+252:16 tight glyph =
1573+252:17 tight glyph [
1574+252:18 tight glyph (
1575+252:19 tight name list
1576+252:24 tvar A
1577+252:25 tight glyph )
1578+252:27 glyph $-(
1579+252:30 tight tvar A
1580+252:32 glyph (
1581+252:33 tight name unit
1582+252:38 tvar B
1583+252:39 tight glyph )
1584+252:40 tight glyph )
1585+252:41 tight glyph ]
1586+253:3 INDENT
1587+253:3 glyph ?-
1588+253:6 name args
1589+254:5 INDENT
1590+254:5 glyph [
1591+254:6 tight name xs
1592+254:9 name f
1593+254:10 tight glyph ]
1594+255:7 INDENT
1595+255:7 glyph ?-
1596+255:10 name xs
1597+256:9 INDENT
1598+256:9 lit ~
1599+256:11 lit ~
1600+257:9 NEWLINE
1601+257:9 glyph [
1602+257:10 tight name item
1603+257:15 name rest
1604+257:19 tight glyph ]
1605+258:11 INDENT
1606+258:11 glyph ?-
1607+258:14 glyph (
1608+258:15 tight name f
1609+258:17 name item
1610+258:21 tight glyph )
1611+259:13 INDENT
1612+259:13 lit ~
1613+259:15 glyph (
1614+259:16 tight name murn
1615+259:21 name rest
1616+259:26 name f
1617+259:27 tight glyph )
1618+260:13 NEWLINE
1619+260:13 glyph [
1620+260:14 tight lit ~
1621+260:16 name value
1622+260:21 tight glyph ]
1623+260:23 glyph [
1624+260:24 tight name value
1625+260:30 glyph (
1626+260:31 tight name murn
1627+260:36 name rest
1628+260:41 name f
1629+260:42 tight glyph )
1630+260:43 tight glyph ]
1631+262:1 DEDENT
1632+262:1 DEDENT
1633+262:1 DEDENT
1634+262:1 DEDENT
1635+262:1 DEDENT
1636+262:1 DEDENT
1637+262:1 NEWLINE
1638+262:1 glyph ++
1639+262:4 name join
1640+262:9 glyph |=
1641+262:12 name args
1642+262:16 tight glyph =
1643+262:17 tight glyph [
1644+262:18 tight tvar A
1645+262:20 glyph (
1646+262:21 tight name list
1647+262:26 tvar A
1648+262:27 tight glyph )
1649+262:28 tight glyph ]
1650+263:3 INDENT
1651+263:3 glyph ?-
1652+263:6 name args
1653+264:5 INDENT
1654+264:5 glyph [
1655+264:6 tight name separator
1656+264:16 name xs
1657+264:18 tight glyph ]
1658+265:7 INDENT
1659+265:7 glyph ?-
1660+265:10 name xs
1661+266:9 INDENT
1662+266:9 lit ~
1663+266:11 lit ~
1664+267:9 NEWLINE
1665+267:9 glyph [
1666+267:10 tight name item
1667+267:15 name rest
1668+267:19 tight glyph ]
1669+268:11 INDENT
1670+268:11 glyph ?-
1671+268:14 name rest
1672+269:13 INDENT
1673+269:13 lit ~
1674+269:15 glyph [
1675+269:16 tight name item
1676+269:21 lit ~
1677+269:22 tight glyph ]
1678+270:13 NEWLINE
1679+270:13 glyph [
1680+270:14 tight name next
1681+270:19 name more
1682+270:23 tight glyph ]
1683+270:25 glyph [
1684+270:26 tight name item
1685+270:31 glyph [
1686+270:32 tight name separator
1687+270:42 glyph (
1688+270:43 tight name join
1689+270:48 name separator
1690+270:58 name rest
1691+270:62 tight glyph )
1692+270:63 tight glyph ]
1693+270:64 tight glyph ]
1694+272:1 DEDENT
1695+272:1 DEDENT
1696+272:1 DEDENT
1697+272:1 DEDENT
1698+272:1 DEDENT
1699+272:1 DEDENT
1700+272:1 NEWLINE
1701+272:1 glyph ++
1702+272:4 name snip
1703+272:9 glyph |=
1704+272:12 name xs
1705+272:14 tight glyph =
1706+272:15 tight glyph (
1707+272:16 tight name list
1708+272:21 tvar A
1709+272:22 tight glyph )
1710+273:3 INDENT
1711+273:3 glyph ?-
1712+273:6 name xs
1713+274:5 INDENT
1714+274:5 lit ~
1715+274:7 lit ~
1716+275:5 NEWLINE
1717+275:5 glyph [
1718+275:6 tight name item
1719+275:11 name rest
1720+275:15 tight glyph ]
1721+276:7 INDENT
1722+276:7 glyph ?-
1723+276:10 name rest
1724+277:9 INDENT
1725+277:9 lit ~
1726+277:11 lit ~
1727+278:9 NEWLINE
1728+278:9 glyph [
1729+278:10 tight name next
1730+278:15 name more
1731+278:19 tight glyph ]
1732+278:21 glyph [
1733+278:22 tight name item
1734+278:27 glyph (
1735+278:28 tight name snip
1736+278:33 name rest
1737+278:37 tight glyph )
1738+278:38 tight glyph ]
1739+280:1 DEDENT
1740+280:1 DEDENT
1741+280:1 DEDENT
1742+280:1 DEDENT
1743+280:1 NEWLINE
1744+280:1 glyph ++
1745+280:4 name rear
1746+280:9 glyph |=
1747+280:12 name xs
1748+280:14 tight glyph =
1749+280:15 tight glyph (
1750+280:16 tight name list
1751+280:21 tvar A
1752+280:22 tight glyph )
1753+281:3 INDENT
1754+281:3 glyph ?-
1755+281:6 name xs
1756+282:5 INDENT
1757+282:5 lit ~
1758+282:7 glyph !!
1759+283:5 NEWLINE
1760+283:5 glyph [
1761+283:6 tight name item
1762+283:11 name rest
1763+283:15 tight glyph ]
1764+284:7 INDENT
1765+284:7 glyph ?-
1766+284:10 name rest
1767+285:9 INDENT
1768+285:9 lit ~
1769+285:11 name item
1770+286:9 NEWLINE
1771+286:9 glyph [
1772+286:10 tight name next
1773+286:15 name more
1774+286:19 tight glyph ]
1775+286:21 glyph (
1776+286:22 tight name rear
1777+286:27 name rest
1778+286:31 tight glyph )
1779+286:32 DEDENT
1780+286:32 DEDENT
1781+286:32 DEDENT
1782+286:32 DEDENT
1783+286:32 NEWLINE
tests/golden/prelude-unit-list-transforms/tree.txt+148−138
@@ -366,15 +366,17 @@
366366 (wing 148:6 args)
367367 (arm 149:5
368368 (cell 149:5 (bind 149:6 maybe) (bind 149:12 f))
369− (body 150:7
370− (branch 150:7
371− (wing 150:10 maybe)
372− (arm 151:9 (lit 151:9 ~) (lit 151:11 ~))
373− (arm 152:9
374− (cell 152:9 (lit 152:10 ~) (bind 152:12 value))
375− (unit 152:19
376− (group 152:20
377− (call 152:21 (wing 152:21 f) (wing 152:23 value))))))))))))
369+ (cast 149:15
370+ (apply 149:18 unit (tvar 149:24 B))
371+ (body 150:7
372+ (branch 150:7
373+ (wing 150:10 maybe)
374+ (arm 151:9 (lit 151:9 ~) (lit 151:11 ~))
375+ (arm 152:9
376+ (cell 152:9 (lit 152:10 ~) (bind 152:12 value))
377+ (unit 152:19
378+ (group 152:20
379+ (call 152:21 (wing 152:21 f) (wing 152:23 value)))))))))))))
378380 (value 154:1 biff
379381 (gate 154:9
380382 (face 154:12 args
@@ -388,14 +390,16 @@
388390 (wing 155:6 args)
389391 (arm 156:5
390392 (cell 156:5 (bind 156:6 maybe) (bind 156:12 f))
391− (body 157:7
392− (branch 157:7
393− (wing 157:10 maybe)
394− (arm 158:9 (lit 158:9 ~) (lit 158:11 ~))
395− (arm 159:9
396− (cell 159:9 (lit 159:10 ~) (bind 159:12 value))
397− (group 159:19
398− (call 159:20 (wing 159:20 f) (wing 159:22 value)))))))))))
393+ (cast 156:15
394+ (apply 156:18 unit (tvar 156:24 B))
395+ (body 157:7
396+ (branch 157:7
397+ (wing 157:10 maybe)
398+ (arm 158:9 (lit 158:9 ~) (lit 158:11 ~))
399+ (arm 159:9
400+ (cell 159:9 (lit 159:10 ~) (bind 159:12 value))
401+ (group 159:19
402+ (call 159:20 (wing 159:20 f) (wing 159:22 value))))))))))))
399403 (value 161:1 both
400404 (gate 161:9
401405 (face 161:12 args
@@ -407,20 +411,23 @@
407411 (wing 162:6 args)
408412 (arm 163:5
409413 (cell 163:5 (bind 163:6 first) (bind 163:12 second))
410− (body 164:7
411− (branch 164:7
412− (wing 164:10 first)
413− (arm 165:9 (lit 165:9 ~) (lit 165:11 ~))
414− (arm 166:9
415− (cell 166:9 (lit 166:10 ~) (bind 166:12 a))
416− (body 167:11
417− (branch 167:11
418− (wing 167:14 second)
419− (arm 168:13 (lit 168:13 ~) (lit 168:15 ~))
420− (arm 169:13
421− (cell 169:13 (lit 169:14 ~) (bind 169:16 b))
422− (unit 169:19
423− (tuple 169:20 (wing 169:21 a) (wing 169:23 b))))))))))))))
414+ (cast 163:20
415+ (apply 163:23 unit
416+ (cell 163:29 (tvar 163:30 A) (tvar 163:32 B)))
417+ (body 164:7
418+ (branch 164:7
419+ (wing 164:10 first)
420+ (arm 165:9 (lit 165:9 ~) (lit 165:11 ~))
421+ (arm 166:9
422+ (cell 166:9 (lit 166:10 ~) (bind 166:12 a))
423+ (body 167:11
424+ (branch 167:11
425+ (wing 167:14 second)
426+ (arm 168:13 (lit 168:13 ~) (lit 168:15 ~))
427+ (arm 169:13
428+ (cell 169:13 (lit 169:14 ~) (bind 169:16 b))
429+ (unit 169:19
430+ (tuple 169:20 (wing 169:21 a) (wing 169:23 b)))))))))))))))
424431 (value 171:1 clap
425432 (gate 171:9
426433 (face 171:12 args
@@ -653,112 +660,115 @@
653660 (gate 246:3
654661 (face 246:6 value (tvar 246:12 A))
655662 (body 247:5
656− (branch 247:5
657− (group 247:8
658− (call 247:9 (wing 247:9 predicate) (wing 247:19 value)))
659− (arm 248:7
660− (lit 248:7 %.y)
661− (unit 248:11 (wing 248:12 value)))
662− (arm 249:7 (lit 249:7 %.n) (lit 249:11 ~))))))))
663− (value 251:1 murn
664− (gate 251:9
665− (face 251:12 args
666− (cell 251:17
667− (apply 251:18 list (tvar 251:24 A))
668− (fn 251:27
669− (tvar 251:30 A)
670− (apply 251:32 unit (tvar 251:38 B)))))
671− (body 252:3
672− (branch 252:3
673− (wing 252:6 args)
674− (arm 253:5
675− (cell 253:5 (bind 253:6 xs) (bind 253:9 f))
676− (body 254:7
677− (branch 254:7
678− (wing 254:10 xs)
679− (arm 255:9 (lit 255:9 ~) (lit 255:11 ~))
680− (arm 256:9
681− (cell 256:9 (bind 256:10 item) (bind 256:15 rest))
682− (body 257:11
683− (branch 257:11
684− (group 257:14
685− (call 257:15 (wing 257:15 f) (wing 257:17 item)))
686− (arm 258:13
687− (lit 258:13 ~)
688− (group 258:15
689− (call 258:16 (wing 258:16 murn) (wing 258:21 rest) (wing 258:26 f))))
663+ (cast 247:5
664+ (apply 247:8 unit (tvar 247:14 A))
665+ (body 248:7
666+ (branch 248:7
667+ (group 248:10
668+ (call 248:11 (wing 248:11 predicate) (wing 248:21 value)))
669+ (arm 249:9
670+ (lit 249:9 %.y)
671+ (unit 249:13 (wing 249:14 value)))
672+ (arm 250:9 (lit 250:9 %.n) (lit 250:13 ~))))))))))
673+ (value 252:1 murn
674+ (gate 252:9
675+ (face 252:12 args
676+ (cell 252:17
677+ (apply 252:18 list (tvar 252:24 A))
678+ (fn 252:27
679+ (tvar 252:30 A)
680+ (apply 252:32 unit (tvar 252:38 B)))))
681+ (body 253:3
682+ (branch 253:3
683+ (wing 253:6 args)
684+ (arm 254:5
685+ (cell 254:5 (bind 254:6 xs) (bind 254:9 f))
686+ (body 255:7
687+ (branch 255:7
688+ (wing 255:10 xs)
689+ (arm 256:9 (lit 256:9 ~) (lit 256:11 ~))
690+ (arm 257:9
691+ (cell 257:9 (bind 257:10 item) (bind 257:15 rest))
692+ (body 258:11
693+ (branch 258:11
694+ (group 258:14
695+ (call 258:15 (wing 258:15 f) (wing 258:17 item)))
690696 (arm 259:13
691− (cell 259:13 (lit 259:14 ~) (bind 259:16 value))
692− (tuple 259:23
693− (wing 259:24 value)
694− (group 259:30
695− (call 259:31 (wing 259:31 murn) (wing 259:36 rest) (wing 259:41 f)))))))))))))))
696− (value 261:1 join
697− (gate 261:9
698− (face 261:12 args
699− (cell 261:17
700− (tvar 261:18 A)
701− (apply 261:20 list (tvar 261:26 A))))
702− (body 262:3
703− (branch 262:3
704− (wing 262:6 args)
705− (arm 263:5
706− (cell 263:5 (bind 263:6 separator) (bind 263:16 xs))
707− (body 264:7
708− (branch 264:7
709− (wing 264:10 xs)
710− (arm 265:9 (lit 265:9 ~) (lit 265:11 ~))
711− (arm 266:9
712− (cell 266:9 (bind 266:10 item) (bind 266:15 rest))
713− (body 267:11
714− (branch 267:11
715− (wing 267:14 rest)
716− (arm 268:13
717− (lit 268:13 ~)
718− (tuple 268:15 (wing 268:16 item) (lit 268:21 ~)))
697+ (lit 259:13 ~)
698+ (group 259:15
699+ (call 259:16 (wing 259:16 murn) (wing 259:21 rest) (wing 259:26 f))))
700+ (arm 260:13
701+ (cell 260:13 (lit 260:14 ~) (bind 260:16 value))
702+ (tuple 260:23
703+ (wing 260:24 value)
704+ (group 260:30
705+ (call 260:31 (wing 260:31 murn) (wing 260:36 rest) (wing 260:41 f)))))))))))))))
706+ (value 262:1 join
707+ (gate 262:9
708+ (face 262:12 args
709+ (cell 262:17
710+ (tvar 262:18 A)
711+ (apply 262:20 list (tvar 262:26 A))))
712+ (body 263:3
713+ (branch 263:3
714+ (wing 263:6 args)
715+ (arm 264:5
716+ (cell 264:5 (bind 264:6 separator) (bind 264:16 xs))
717+ (body 265:7
718+ (branch 265:7
719+ (wing 265:10 xs)
720+ (arm 266:9 (lit 266:9 ~) (lit 266:11 ~))
721+ (arm 267:9
722+ (cell 267:9 (bind 267:10 item) (bind 267:15 rest))
723+ (body 268:11
724+ (branch 268:11
725+ (wing 268:14 rest)
719726 (arm 269:13
720− (cell 269:13 (bind 269:14 next) (bind 269:19 more))
721− (tuple 269:25
722− (wing 269:26 item)
723− (tuple 269:31
724− (wing 269:32 separator)
725− (group 269:42
726− (call 269:43 (wing 269:43 join) (wing 269:48 separator) (wing 269:58 rest))))))))))))))))
727− (value 271:1 snip
728− (gate 271:9
729− (face 271:12 xs
730− (apply 271:15 list (tvar 271:21 A)))
731− (body 272:3
732− (branch 272:3
733− (wing 272:6 xs)
734− (arm 273:5 (lit 273:5 ~) (lit 273:7 ~))
735− (arm 274:5
736− (cell 274:5 (bind 274:6 item) (bind 274:11 rest))
737− (body 275:7
738− (branch 275:7
739− (wing 275:10 rest)
740− (arm 276:9 (lit 276:9 ~) (lit 276:11 ~))
741− (arm 277:9
742− (cell 277:9 (bind 277:10 next) (bind 277:15 more))
743− (tuple 277:21
744− (wing 277:22 item)
745− (group 277:27
746− (call 277:28 (wing 277:28 snip) (wing 277:33 rest))))))))))))
747− (value 279:1 rear
748− (gate 279:9
749− (face 279:12 xs
750− (apply 279:15 list (tvar 279:21 A)))
751− (body 280:3
752− (branch 280:3
753− (wing 280:6 xs)
754− (arm 281:5 (lit 281:5 ~) (crash 281:7))
755− (arm 282:5
756− (cell 282:5 (bind 282:6 item) (bind 282:11 rest))
757− (body 283:7
758− (branch 283:7
759− (wing 283:10 rest)
760− (arm 284:9 (lit 284:9 ~) (wing 284:11 item))
761− (arm 285:9
762− (cell 285:9 (bind 285:10 next) (bind 285:15 more))
763− (group 285:21
764− (call 285:22 (wing 285:22 rear) (wing 285:27 rest))))))))))))
727+ (lit 269:13 ~)
728+ (tuple 269:15 (wing 269:16 item) (lit 269:21 ~)))
729+ (arm 270:13
730+ (cell 270:13 (bind 270:14 next) (bind 270:19 more))
731+ (tuple 270:25
732+ (wing 270:26 item)
733+ (tuple 270:31
734+ (wing 270:32 separator)
735+ (group 270:42
736+ (call 270:43 (wing 270:43 join) (wing 270:48 separator) (wing 270:58 rest))))))))))))))))
737+ (value 272:1 snip
738+ (gate 272:9
739+ (face 272:12 xs
740+ (apply 272:15 list (tvar 272:21 A)))
741+ (body 273:3
742+ (branch 273:3
743+ (wing 273:6 xs)
744+ (arm 274:5 (lit 274:5 ~) (lit 274:7 ~))
745+ (arm 275:5
746+ (cell 275:5 (bind 275:6 item) (bind 275:11 rest))
747+ (body 276:7
748+ (branch 276:7
749+ (wing 276:10 rest)
750+ (arm 277:9 (lit 277:9 ~) (lit 277:11 ~))
751+ (arm 278:9
752+ (cell 278:9 (bind 278:10 next) (bind 278:15 more))
753+ (tuple 278:21
754+ (wing 278:22 item)
755+ (group 278:27
756+ (call 278:28 (wing 278:28 snip) (wing 278:33 rest))))))))))))
757+ (value 280:1 rear
758+ (gate 280:9
759+ (face 280:12 xs
760+ (apply 280:15 list (tvar 280:21 A)))
761+ (body 281:3
762+ (branch 281:3
763+ (wing 281:6 xs)
764+ (arm 282:5 (lit 282:5 ~) (crash 282:7))
765+ (arm 283:5
766+ (cell 283:5 (bind 283:6 item) (bind 283:11 rest))
767+ (body 284:7
768+ (branch 284:7
769+ (wing 284:10 rest)
770+ (arm 285:9 (lit 285:9 ~) (wing 285:11 item))
771+ (arm 286:9
772+ (cell 286:9 (bind 286:10 next) (bind 286:15 more))
773+ (group 286:21
774+ (call 286:22 (wing 286:22 rear) (wing 286:27 rest))))))))))))
tests/golden/prelude-unit-list-transforms/types.txt+1−1
@@ -41,7 +41,7 @@ partial inference; module not checked
4141++ flop: sample mold is not supported by partial inference
4242++ drop: unit branch results need unsupported inference
4343++ bind: unit construction needs the standard prelude in partial inference
44−++ biff: unit branch results need unsupported inference
44+++ biff: $-([(unit A) $-(A (unit B))] (unit B))
4545++ both: unit construction needs the standard prelude in partial inference
4646++ clap: branch pattern is not supported by partial inference
4747++ clef: branch pattern is not supported by partial inference
tests/golden/types-generic-union-errors/types.txt+3−3
@@ -9,11 +9,11 @@ partial inference; module not checked
99 ^
1010++ few: sample mold is not supported by partial inference
1111++ many: sample mold is not supported by partial inference
12−++ bad-tag: cast mold and expression type do not unify
13−/tests/golden/types-generic-union-errors/source.jibb:9:15: cast mold
12+++ bad-tag: (choice @t @p) has no case `%missing`
13+/tests/golden/types-generic-union-errors/source.jibb:9:15: expected union
1414++ bad-tag ^- (choice @t @p) %missing
1515 ^
16−/tests/golden/types-generic-union-errors/source.jibb:9:30: expression
16+/tests/golden/types-generic-union-errors/source.jibb:9:30: tag
1717++ bad-tag ^- (choice @t @p) %missing
1818 ^
1919++ bad-payload: cast mold and expression type do not unify
tests/golden/types-missing-tag-context/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Tag resolution: an unmatched literal is an error naming its union, such as "msg has no case %submitt".
2+tests: A definitely absent tag names the known union and both sites. Existing tags with incompatible shape retain the usual mismatch; unconstrained or discarded tags remain pending. Partial inference stays conservative for unproven shapes.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-missing-tag-context/modules.txtnew file+1
@@ -0,0 +1 @@
1+# Use prepared prelude.
tests/golden/types-missing-tag-context/source.jibbnew file+17
@@ -0,0 +1,17 @@
1++$ msg
2+ %go
3+ [%typed text=@t]
4+++ items ^- (list msg) ~[%go %missing]
5+++ existing ^- (list msg) ~[%typed]
6+++ arm |= x=? ^- msg
7+ ?- x
8+ %.y %go
9+ %.n %missing
10+++ existing-arm |= x=? ^- msg
11+ ?- x
12+ %.y %go
13+ %.n %typed
14+++ unrelated
15+ ~& %other
16+ ^- msg %go
17+++ unit ^- (unit msg) `%missing
tests/golden/types-missing-tag-context/tokens.txtnew file+98
@@ -0,0 +1,98 @@
1+1:1 glyph +$
2+1:4 name msg
3+2:3 INDENT
4+2:3 lit %go
5+3:3 NEWLINE
6+3:3 glyph [
7+3:4 tight lit %typed
8+3:11 name text
9+3:15 tight glyph =
10+3:16 tight aura @t
11+3:18 tight glyph ]
12+4:1 DEDENT
13+4:1 NEWLINE
14+4:1 glyph ++
15+4:4 name items
16+4:10 glyph ^-
17+4:13 glyph (
18+4:14 tight name list
19+4:19 name msg
20+4:22 tight glyph )
21+4:24 glyph ~[
22+4:26 tight lit %go
23+4:30 lit %missing
24+4:38 tight glyph ]
25+5:1 NEWLINE
26+5:1 glyph ++
27+5:4 name existing
28+5:13 glyph ^-
29+5:16 glyph (
30+5:17 tight name list
31+5:22 name msg
32+5:25 tight glyph )
33+5:27 glyph ~[
34+5:29 tight lit %typed
35+5:35 tight glyph ]
36+6:1 NEWLINE
37+6:1 glyph ++
38+6:4 name arm
39+6:8 glyph |=
40+6:11 name x
41+6:12 tight glyph =
42+6:13 tight glyph ?
43+6:15 glyph ^-
44+6:18 name msg
45+7:3 INDENT
46+7:3 glyph ?-
47+7:6 name x
48+8:5 INDENT
49+8:5 lit %.y
50+8:9 lit %go
51+9:5 NEWLINE
52+9:5 lit %.n
53+9:9 lit %missing
54+10:1 DEDENT
55+10:1 DEDENT
56+10:1 NEWLINE
57+10:1 glyph ++
58+10:4 name existing-arm
59+10:17 glyph |=
60+10:20 name x
61+10:21 tight glyph =
62+10:22 tight glyph ?
63+10:24 glyph ^-
64+10:27 name msg
65+11:3 INDENT
66+11:3 glyph ?-
67+11:6 name x
68+12:5 INDENT
69+12:5 lit %.y
70+12:9 lit %go
71+13:5 NEWLINE
72+13:5 lit %.n
73+13:9 lit %typed
74+14:1 DEDENT
75+14:1 DEDENT
76+14:1 NEWLINE
77+14:1 glyph ++
78+14:4 name unrelated
79+15:3 INDENT
80+15:3 glyph ~&
81+15:6 lit %other
82+16:5 INDENT
83+16:5 glyph ^-
84+16:8 name msg
85+16:12 lit %go
86+17:1 DEDENT
87+17:1 DEDENT
88+17:1 NEWLINE
89+17:1 glyph ++
90+17:4 name unit
91+17:9 glyph ^-
92+17:12 glyph (
93+17:13 tight name unit
94+17:18 name msg
95+17:21 tight glyph )
96+17:23 glyph `
97+17:24 tight lit %missing
98+17:32 NEWLINE
tests/golden/types-missing-tag-context/tree.txtnew file+45
@@ -0,0 +1,45 @@
1+(module
2+ (mold 1:1 msg
3+ (union 2:3
4+ (const 2:3 %go)
5+ (cell 3:3
6+ (const 3:4 %typed)
7+ (face 3:11 text (aura 3:16 @t)))))
8+ (value 4:1 items
9+ (cast 4:10
10+ (apply 4:13 list (ref 4:19 msg))
11+ (list 4:24 (lit 4:26 %go) (lit 4:30 %missing))))
12+ (value 5:1 existing
13+ (cast 5:13
14+ (apply 5:16 list (ref 5:22 msg))
15+ (list 5:27 (lit 5:29 %typed))))
16+ (value 6:1 arm
17+ (gate 6:8
18+ (face 6:11 x (flag 6:13))
19+ (cast 6:15
20+ (ref 6:18 msg)
21+ (body 7:3
22+ (branch 7:3
23+ (wing 7:6 x)
24+ (arm 8:5 (lit 8:5 %.y) (lit 8:9 %go))
25+ (arm 9:5 (lit 9:5 %.n) (lit 9:9 %missing)))))))
26+ (value 10:1 existing-arm
27+ (gate 10:17
28+ (face 10:20 x (flag 10:22))
29+ (cast 10:24
30+ (ref 10:27 msg)
31+ (body 11:3
32+ (branch 11:3
33+ (wing 11:6 x)
34+ (arm 12:5 (lit 12:5 %.y) (lit 12:9 %go))
35+ (arm 13:5 (lit 13:5 %.n) (lit 13:9 %typed)))))))
36+ (value 14:1 unrelated
37+ (body 15:3
38+ (trace 15:3
39+ (lit 15:6 %other)
40+ (body 16:5
41+ (cast 16:5 (ref 16:8 msg) (lit 16:12 %go))))))
42+ (value 17:1 unit
43+ (cast 17:9
44+ (apply 17:12 unit (ref 17:18 msg))
45+ (unit 17:23 (lit 17:24 %missing)))))
tests/golden/types-missing-tag-context/types.txtnew file+38
@@ -0,0 +1,38 @@
1+partial inference; module not checked
2++$ msg: cases proven disjoint; mold not checked
3+++ items: msg has no case `%missing`
4+/tests/golden/types-missing-tag-context/source.jibb:4:13: expected union
5+++ items ^- (list msg) ~[%go %missing]
6+ ^
7+/tests/golden/types-missing-tag-context/source.jibb:4:30: tag
8+++ items ^- (list msg) ~[%go %missing]
9+ ^
10+++ existing: list item does not fit its expected type
11+/tests/golden/types-missing-tag-context/source.jibb:5:16: expected item
12+++ existing ^- (list msg) ~[%typed]
13+ ^
14+/tests/golden/types-missing-tag-context/source.jibb:5:29: list item
15+++ existing ^- (list msg) ~[%typed]
16+ ^
17+++ arm: msg has no case `%missing`
18+/tests/golden/types-missing-tag-context/source.jibb:6:18: expected union
19+++ arm |= x=? ^- msg
20+ ^
21+/tests/golden/types-missing-tag-context/source.jibb:9:9: tag
22+ %.n %missing
23+ ^
24+++ existing-arm: branch arm does not fit its expected union
25+/tests/golden/types-missing-tag-context/source.jibb:10:27: expected union
26+++ existing-arm |= x=? ^- msg
27+ ^
28+/tests/golden/types-missing-tag-context/source.jibb:13:9: branch arm
29+ %.n %typed
30+ ^
31+++ unrelated: tag needs context in partial inference
32+++ unit: msg has no case `%missing`
33+/tests/golden/types-missing-tag-context/source.jibb:17:12: expected union
34+++ unit ^- (unit msg) `%missing
35+ ^
36+/tests/golden/types-missing-tag-context/source.jibb:17:24: tag
37+++ unit ^- (unit msg) `%missing
38+ ^
tests/golden/types-missing-tag-imported/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Tag resolution: an unmatched literal names the union; Overview, Importing Hoon types: Hoon unions can import without a Jibb name.
2+tests: A real imported Hoon union prints its cases in the missing-tag diagnostic, and a nested unnamed union retains its field context. Unsupported conversions remain partial.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-missing-tag-imported/imports.txtnew file+2
@@ -0,0 +1,2 @@
1+fixture choice
2+fixture nested-choice
tests/golden/types-missing-tag-imported/source.jibbnew file+6
@@ -0,0 +1,6 @@
1+/- fixture
2+++ good ^- choice.fixture %yes
3+++ bad ^- choice.fixture %other
4+++ nested |= x=nested-choice.fixture ^- @t text.x
5+++ get-status |= x=nested-choice.fixture status.x
6+++ via-field |= x=nested-choice.fixture ^- choice.fixture status.x
tests/golden/types-missing-tag-imported/sur/fixture.txtnew file+21
@@ -0,0 +1,21 @@
1+|%
2++$ title @t
3++$ pair [@ud @t]
4++$ faced [name=@t age=@ud]
5++$ nested [entry=faced number=@ud]
6++$ constant %yes
7++$ choice ?(%yes %no)
8++$ nested-choice [status=?(%approve %deny) text=@t]
9++$ collapsed $?([%x @ud] [%x @ud])
10++$ dollar %$
11++$ dollar-choice ?(%$ %yes)
12++$ texts (list @t)
13++$ numbers (list @ud)
14++$ maybe (unit @t)
15++$ tagged-list (list $?([%x @ud] [%y @t]))
16++$ buckets (map @ud @t)
17++$ collection-rec [items=(list @t) slots=(unit @ud)]
18++$ chain $@(~ [value=@ud next=chain])
19++$ other $@(~ [value=@ud next=other])
20++$ alias chain
21+--
tests/golden/types-missing-tag-imported/tokens.txtnew file+43
@@ -0,0 +1,43 @@
1+1:1 glyph /-
2+1:4 name fixture
3+2:1 NEWLINE
4+2:1 glyph ++
5+2:4 name good
6+2:9 glyph ^-
7+2:12 wing choice.fixture
8+2:27 lit %yes
9+3:1 NEWLINE
10+3:1 glyph ++
11+3:4 name bad
12+3:8 glyph ^-
13+3:11 wing choice.fixture
14+3:26 lit %other
15+4:1 NEWLINE
16+4:1 glyph ++
17+4:4 name nested
18+4:11 glyph |=
19+4:14 name x
20+4:15 tight glyph =
21+4:16 tight wing nested-choice.fixture
22+4:38 glyph ^-
23+4:41 aura @t
24+4:44 wing text.x
25+5:1 NEWLINE
26+5:1 glyph ++
27+5:4 name get-status
28+5:15 glyph |=
29+5:18 name x
30+5:19 tight glyph =
31+5:20 tight wing nested-choice.fixture
32+5:42 wing status.x
33+6:1 NEWLINE
34+6:1 glyph ++
35+6:4 name via-field
36+6:14 glyph |=
37+6:17 name x
38+6:18 tight glyph =
39+6:19 tight wing nested-choice.fixture
40+6:41 glyph ^-
41+6:44 wing choice.fixture
42+6:59 wing status.x
43+6:67 NEWLINE
tests/golden/types-missing-tag-imported/tree.txtnew file+18
@@ -0,0 +1,18 @@
1+(module
2+ (sur 1:1 fixture)
3+ (value 2:1 good
4+ (cast 2:9 (ref 2:12 choice.fixture) (lit 2:27 %yes)))
5+ (value 3:1 bad
6+ (cast 3:8 (ref 3:11 choice.fixture) (lit 3:26 %other)))
7+ (value 4:1 nested
8+ (gate 4:11
9+ (face 4:14 x (ref 4:16 nested-choice.fixture))
10+ (cast 4:38 (aura 4:41 @t) (wing 4:44 text.x))))
11+ (value 5:1 get-status
12+ (gate 5:15
13+ (face 5:18 x (ref 5:20 nested-choice.fixture))
14+ (wing 5:42 status.x)))
15+ (value 6:1 via-field
16+ (gate 6:14
17+ (face 6:17 x (ref 6:19 nested-choice.fixture))
18+ (cast 6:41 (ref 6:44 choice.fixture) (wing 6:59 status.x)))))
tests/golden/types-missing-tag-imported/types.txtnew file+12
@@ -0,0 +1,12 @@
1+partial inference; module not checked
2+++ good: %no %yes
3+++ bad: union %no %yes has no case `%other`
4+/tests/golden/types-missing-tag-imported/source.jibb:3:11: expected union
5+++ bad ^- choice.fixture %other
6+ ^
7+/tests/golden/types-missing-tag-imported/source.jibb:3:26: tag
8+++ bad ^- choice.fixture %other
9+ ^
10+++ nested: $-([status=(%deny %approve) text=@t] @t)
11+++ get-status: $-([status=(%deny %approve) text=@t] (%deny %approve))
12+++ via-field: cast constraint is not supported by partial inference
tests/golden/types-missing-tag-named/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Tag resolution: an unmatched literal is an error naming its union, such as "msg has no case %submitt".
2+tests: A definitely absent tag names the known union and both sites. Existing tags with incompatible shape retain the usual mismatch; unconstrained or discarded tags remain pending. Partial inference stays conservative for unproven shapes.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-missing-tag-named/modules.txtnew file+1
@@ -0,0 +1 @@
1+# Use prepared prelude.
tests/golden/types-missing-tag-named/source.jibbnew file+23
@@ -0,0 +1,23 @@
1++$ msg
2+ [%typed text=@t]
3+ %add
4++$ choice |$ [A]
5+ [%some value=A]
6+ %none
7++$ wrapped [%wrapper payload=msg]
8+++ good ^- msg %add
9+++ bad ^- msg %submitt
10+++ good-head ^- msg [%typed "ok"]
11+++ bad-head ^- msg [%other "ok"]
12+++ payload ^- msg [%typed ~zod]
13+++ tag-only ^- msg %typed
14+++ nested ^- wrapped [%wrapper %submitt]
15+++ generic ^- (choice @t) %missing
16+++ generic-payload ^- (choice @t) [%some ~zod]
17+++ take |= x=msg "ok"
18+++ call (take %submitt)
19+++ absent %submitt
20+++ discarded
21+ ~& %submitt
22+ ^- msg %add
23+++ generic-unknown |= x=A ^- A %submitt
tests/golden/types-missing-tag-named/tokens.txtnew file+155
@@ -0,0 +1,155 @@
1+1:1 glyph +$
2+1:4 name msg
3+2:3 INDENT
4+2:3 glyph [
5+2:4 tight lit %typed
6+2:11 name text
7+2:15 tight glyph =
8+2:16 tight aura @t
9+2:18 tight glyph ]
10+3:3 NEWLINE
11+3:3 lit %add
12+4:1 DEDENT
13+4:1 NEWLINE
14+4:1 glyph +$
15+4:4 name choice
16+4:11 glyph |$
17+4:14 glyph [
18+4:15 tight tvar A
19+4:16 tight glyph ]
20+5:3 INDENT
21+5:3 glyph [
22+5:4 tight lit %some
23+5:10 name value
24+5:15 tight glyph =
25+5:16 tight tvar A
26+5:17 tight glyph ]
27+6:3 NEWLINE
28+6:3 lit %none
29+7:1 DEDENT
30+7:1 NEWLINE
31+7:1 glyph +$
32+7:4 name wrapped
33+7:12 glyph [
34+7:13 tight lit %wrapper
35+7:22 name payload
36+7:29 tight glyph =
37+7:30 tight name msg
38+7:33 tight glyph ]
39+8:1 NEWLINE
40+8:1 glyph ++
41+8:4 name good
42+8:9 glyph ^-
43+8:12 name msg
44+8:16 lit %add
45+9:1 NEWLINE
46+9:1 glyph ++
47+9:4 name bad
48+9:8 glyph ^-
49+9:11 name msg
50+9:15 lit %submitt
51+10:1 NEWLINE
52+10:1 glyph ++
53+10:4 name good-head
54+10:14 glyph ^-
55+10:17 name msg
56+10:21 glyph [
57+10:22 tight lit %typed
58+10:29 str "ok"
59+10:33 tight glyph ]
60+11:1 NEWLINE
61+11:1 glyph ++
62+11:4 name bad-head
63+11:13 glyph ^-
64+11:16 name msg
65+11:20 glyph [
66+11:21 tight lit %other
67+11:28 str "ok"
68+11:32 tight glyph ]
69+12:1 NEWLINE
70+12:1 glyph ++
71+12:4 name payload
72+12:12 glyph ^-
73+12:15 name msg
74+12:19 glyph [
75+12:20 tight lit %typed
76+12:27 lit ~zod
77+12:31 tight glyph ]
78+13:1 NEWLINE
79+13:1 glyph ++
80+13:4 name tag-only
81+13:13 glyph ^-
82+13:16 name msg
83+13:20 lit %typed
84+14:1 NEWLINE
85+14:1 glyph ++
86+14:4 name nested
87+14:11 glyph ^-
88+14:14 name wrapped
89+14:22 glyph [
90+14:23 tight lit %wrapper
91+14:32 lit %submitt
92+14:40 tight glyph ]
93+15:1 NEWLINE
94+15:1 glyph ++
95+15:4 name generic
96+15:12 glyph ^-
97+15:15 glyph (
98+15:16 tight name choice
99+15:23 aura @t
100+15:25 tight glyph )
101+15:27 lit %missing
102+16:1 NEWLINE
103+16:1 glyph ++
104+16:4 name generic-payload
105+16:20 glyph ^-
106+16:23 glyph (
107+16:24 tight name choice
108+16:31 aura @t
109+16:33 tight glyph )
110+16:35 glyph [
111+16:36 tight lit %some
112+16:42 lit ~zod
113+16:46 tight glyph ]
114+17:1 NEWLINE
115+17:1 glyph ++
116+17:4 name take
117+17:9 glyph |=
118+17:12 name x
119+17:13 tight glyph =
120+17:14 tight name msg
121+17:18 str "ok"
122+18:1 NEWLINE
123+18:1 glyph ++
124+18:4 name call
125+18:9 glyph (
126+18:10 tight name take
127+18:15 lit %submitt
128+18:23 tight glyph )
129+19:1 NEWLINE
130+19:1 glyph ++
131+19:4 name absent
132+19:11 lit %submitt
133+20:1 NEWLINE
134+20:1 glyph ++
135+20:4 name discarded
136+21:3 INDENT
137+21:3 glyph ~&
138+21:6 lit %submitt
139+22:5 INDENT
140+22:5 glyph ^-
141+22:8 name msg
142+22:12 lit %add
143+23:1 DEDENT
144+23:1 DEDENT
145+23:1 NEWLINE
146+23:1 glyph ++
147+23:4 name generic-unknown
148+23:20 glyph |=
149+23:23 name x
150+23:24 tight glyph =
151+23:25 tight tvar A
152+23:27 glyph ^-
153+23:30 tvar A
154+23:32 lit %submitt
155+23:40 NEWLINE
tests/golden/types-missing-tag-named/tree.txtnew file+66
@@ -0,0 +1,66 @@
1+(module
2+ (mold 1:1 msg
3+ (union 2:3
4+ (cell 2:3
5+ (const 2:4 %typed)
6+ (face 2:11 text (aura 2:16 @t)))
7+ (const 3:3 %add)))
8+ (mold 4:1 choice
9+ (generic 4:11 A
10+ (union 5:3
11+ (cell 5:3
12+ (const 5:4 %some)
13+ (face 5:10 value (tvar 5:16 A)))
14+ (const 6:3 %none))))
15+ (mold 7:1 wrapped
16+ (cell 7:12
17+ (const 7:13 %wrapper)
18+ (face 7:22 payload (ref 7:30 msg))))
19+ (value 8:1 good
20+ (cast 8:9 (ref 8:12 msg) (lit 8:16 %add)))
21+ (value 9:1 bad
22+ (cast 9:8 (ref 9:11 msg) (lit 9:15 %submitt)))
23+ (value 10:1 good-head
24+ (cast 10:14
25+ (ref 10:17 msg)
26+ (tuple 10:21 (lit 10:22 %typed) (str 10:29 "ok"))))
27+ (value 11:1 bad-head
28+ (cast 11:13
29+ (ref 11:16 msg)
30+ (tuple 11:20 (lit 11:21 %other) (str 11:28 "ok"))))
31+ (value 12:1 payload
32+ (cast 12:12
33+ (ref 12:15 msg)
34+ (tuple 12:19 (lit 12:20 %typed) (lit 12:27 ~zod))))
35+ (value 13:1 tag-only
36+ (cast 13:13 (ref 13:16 msg) (lit 13:20 %typed)))
37+ (value 14:1 nested
38+ (cast 14:11
39+ (ref 14:14 wrapped)
40+ (tuple 14:22 (lit 14:23 %wrapper) (lit 14:32 %submitt))))
41+ (value 15:1 generic
42+ (cast 15:12
43+ (apply 15:15 choice (aura 15:23 @t))
44+ (lit 15:27 %missing)))
45+ (value 16:1 generic-payload
46+ (cast 16:20
47+ (apply 16:23 choice (aura 16:31 @t))
48+ (tuple 16:35 (lit 16:36 %some) (lit 16:42 ~zod))))
49+ (value 17:1 take
50+ (gate 17:9
51+ (face 17:12 x (ref 17:14 msg))
52+ (str 17:18 "ok")))
53+ (value 18:1 call
54+ (group 18:9
55+ (call 18:10 (wing 18:10 take) (lit 18:15 %submitt))))
56+ (value 19:1 absent (lit 19:11 %submitt))
57+ (value 20:1 discarded
58+ (body 21:3
59+ (trace 21:3
60+ (lit 21:6 %submitt)
61+ (body 22:5
62+ (cast 22:5 (ref 22:8 msg) (lit 22:12 %add))))))
63+ (value 23:1 generic-unknown
64+ (gate 23:20
65+ (face 23:23 x (tvar 23:25 A))
66+ (cast 23:27 (tvar 23:30 A) (lit 23:32 %submitt)))))
tests/golden/types-missing-tag-named/types.txtnew file+66
@@ -0,0 +1,66 @@
1+partial inference; module not checked
2++$ msg: cases proven disjoint; mold not checked
3++$ choice: cases proven disjoint; mold not checked
4++$ wrapped: not checked
5+++ good: msg
6+++ bad: msg has no case `%submitt`
7+/tests/golden/types-missing-tag-named/source.jibb:9:11: expected union
8+++ bad ^- msg %submitt
9+ ^
10+/tests/golden/types-missing-tag-named/source.jibb:9:15: tag
11+++ bad ^- msg %submitt
12+ ^
13+++ good-head: msg
14+++ bad-head: cast mold and expression type do not unify
15+/tests/golden/types-missing-tag-named/source.jibb:11:16: cast mold
16+++ bad-head ^- msg [%other "ok"]
17+ ^
18+/tests/golden/types-missing-tag-named/source.jibb:11:20: expression
19+++ bad-head ^- msg [%other "ok"]
20+ ^
21+++ payload: cast mold and expression type do not unify
22+/tests/golden/types-missing-tag-named/source.jibb:12:15: cast mold
23+++ payload ^- msg [%typed ~zod]
24+ ^
25+/tests/golden/types-missing-tag-named/source.jibb:12:19: expression
26+++ payload ^- msg [%typed ~zod]
27+ ^
28+++ tag-only: cast mold and expression type do not unify
29+/tests/golden/types-missing-tag-named/source.jibb:13:16: cast mold
30+++ tag-only ^- msg %typed
31+ ^
32+/tests/golden/types-missing-tag-named/source.jibb:13:20: expression
33+++ tag-only ^- msg %typed
34+ ^
35+++ nested: cast mold and expression type do not unify
36+/tests/golden/types-missing-tag-named/source.jibb:14:14: cast mold
37+++ nested ^- wrapped [%wrapper %submitt]
38+ ^
39+/tests/golden/types-missing-tag-named/source.jibb:14:22: expression
40+++ nested ^- wrapped [%wrapper %submitt]
41+ ^
42+++ generic: (choice @t) has no case `%missing`
43+/tests/golden/types-missing-tag-named/source.jibb:15:15: expected union
44+++ generic ^- (choice @t) %missing
45+ ^
46+/tests/golden/types-missing-tag-named/source.jibb:15:27: tag
47+++ generic ^- (choice @t) %missing
48+ ^
49+++ generic-payload: cast mold and expression type do not unify
50+/tests/golden/types-missing-tag-named/source.jibb:16:23: cast mold
51+++ generic-payload ^- (choice @t) [%some ~zod]
52+ ^
53+/tests/golden/types-missing-tag-named/source.jibb:16:35: expression
54+++ generic-payload ^- (choice @t) [%some ~zod]
55+ ^
56+++ take: $-(msg @t)
57+++ call: msg has no case `%submitt`
58+/tests/golden/types-missing-tag-named/source.jibb:18:10: expected union
59+++ call (take %submitt)
60+ ^
61+/tests/golden/types-missing-tag-named/source.jibb:18:15: tag
62+++ call (take %submitt)
63+ ^
64+++ absent: tag needs context in partial inference
65+++ discarded: tag needs context in partial inference
66+++ generic-unknown: explicit capital constraints are not supported by partial inference
tests/golden/types-prelude-unit-helpers/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Overview, Prelude: Hoon standard-library gates are regrouped into the prelude, with Jibb implementations.
2+tests: The actual prelude exposes bind, biff, both and flit with independently instantiated unit payloads. A mismatched gate argument reports both sites, and an unrelated tag stays pending. clap and clef remain unsupported.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-prelude-unit-helpers/modules.txtnew file+1
@@ -0,0 +1 @@
1+# Use the prepared prelude.
tests/golden/types-prelude-unit-helpers/source.jibbnew file+11
@@ -0,0 +1,11 @@
1+++ bind-text (bind `"hi" |=(x x))
2+++ bind-ship (bind `~zod |=(x x))
3+++ biff-text (biff `"hi" |=(x `x))
4+++ both-mixed (both `"hi" `~zod)
5+++ clap-text (clap `"hi" `"there" |=(p=[@t @t] "yes"))
6+++ clef-mixed (clef `"hi" `~zod |=(p=[@t @p] `"ok"))
7+++ flit-text ((flit |=(x=@t %.y)) "hi")
8+++ wrong (bind `~zod |=(x=@t x))
9+++ pending
10+ ~& %open
11+ (both `"hi" `~zod)
tests/golden/types-prelude-unit-helpers/tokens.txtnew file+131
@@ -0,0 +1,131 @@
1+1:1 glyph ++
2+1:4 name bind-text
3+1:14 glyph (
4+1:15 tight name bind
5+1:20 glyph `
6+1:21 tight str "hi"
7+1:26 glyph |=(
8+1:29 tight name x
9+1:31 name x
10+1:32 tight glyph )
11+1:33 tight glyph )
12+2:1 NEWLINE
13+2:1 glyph ++
14+2:4 name bind-ship
15+2:14 glyph (
16+2:15 tight name bind
17+2:20 glyph `
18+2:21 tight lit ~zod
19+2:26 glyph |=(
20+2:29 tight name x
21+2:31 name x
22+2:32 tight glyph )
23+2:33 tight glyph )
24+3:1 NEWLINE
25+3:1 glyph ++
26+3:4 name biff-text
27+3:14 glyph (
28+3:15 tight name biff
29+3:20 glyph `
30+3:21 tight str "hi"
31+3:26 glyph |=(
32+3:29 tight name x
33+3:31 glyph `
34+3:32 tight name x
35+3:33 tight glyph )
36+3:34 tight glyph )
37+4:1 NEWLINE
38+4:1 glyph ++
39+4:4 name both-mixed
40+4:15 glyph (
41+4:16 tight name both
42+4:21 glyph `
43+4:22 tight str "hi"
44+4:27 glyph `
45+4:28 tight lit ~zod
46+4:32 tight glyph )
47+5:1 NEWLINE
48+5:1 glyph ++
49+5:4 name clap-text
50+5:14 glyph (
51+5:15 tight name clap
52+5:20 glyph `
53+5:21 tight str "hi"
54+5:26 glyph `
55+5:27 tight str "there"
56+5:35 glyph |=(
57+5:38 tight name p
58+5:39 tight glyph =
59+5:40 tight glyph [
60+5:41 tight aura @t
61+5:44 aura @t
62+5:46 tight glyph ]
63+5:48 str "yes"
64+5:53 tight glyph )
65+5:54 tight glyph )
66+6:1 NEWLINE
67+6:1 glyph ++
68+6:4 name clef-mixed
69+6:15 glyph (
70+6:16 tight name clef
71+6:21 glyph `
72+6:22 tight str "hi"
73+6:27 glyph `
74+6:28 tight lit ~zod
75+6:33 glyph |=(
76+6:36 tight name p
77+6:37 tight glyph =
78+6:38 tight glyph [
79+6:39 tight aura @t
80+6:42 aura @p
81+6:44 tight glyph ]
82+6:46 glyph `
83+6:47 tight str "ok"
84+6:51 tight glyph )
85+6:52 tight glyph )
86+7:1 NEWLINE
87+7:1 glyph ++
88+7:4 name flit-text
89+7:14 glyph (
90+7:15 tight glyph (
91+7:16 tight name flit
92+7:21 glyph |=(
93+7:24 tight name x
94+7:25 tight glyph =
95+7:26 tight aura @t
96+7:29 lit %.y
97+7:32 tight glyph )
98+7:33 tight glyph )
99+7:35 str "hi"
100+7:39 tight glyph )
101+8:1 NEWLINE
102+8:1 glyph ++
103+8:4 name wrong
104+8:10 glyph (
105+8:11 tight name bind
106+8:16 glyph `
107+8:17 tight lit ~zod
108+8:22 glyph |=(
109+8:25 tight name x
110+8:26 tight glyph =
111+8:27 tight aura @t
112+8:30 name x
113+8:31 tight glyph )
114+8:32 tight glyph )
115+9:1 NEWLINE
116+9:1 glyph ++
117+9:4 name pending
118+10:3 INDENT
119+10:3 glyph ~&
120+10:6 lit %open
121+11:5 INDENT
122+11:5 glyph (
123+11:6 tight name both
124+11:11 glyph `
125+11:12 tight str "hi"
126+11:17 glyph `
127+11:18 tight lit ~zod
128+11:22 tight glyph )
129+11:23 DEDENT
130+11:23 DEDENT
131+11:23 NEWLINE
tests/golden/types-prelude-unit-helpers/tree.txtnew file+75
@@ -0,0 +1,75 @@
1+(module
2+ (value 1:1 bind-text
3+ (group 1:14
4+ (call 1:15
5+ (wing 1:15 bind)
6+ (unit 1:20 (str 1:21 "hi"))
7+ (gate-wide 1:26 (bind 1:29 x) (wing 1:31 x)))))
8+ (value 2:1 bind-ship
9+ (group 2:14
10+ (call 2:15
11+ (wing 2:15 bind)
12+ (unit 2:20 (lit 2:21 ~zod))
13+ (gate-wide 2:26 (bind 2:29 x) (wing 2:31 x)))))
14+ (value 3:1 biff-text
15+ (group 3:14
16+ (call 3:15
17+ (wing 3:15 biff)
18+ (unit 3:20 (str 3:21 "hi"))
19+ (gate-wide 3:26
20+ (bind 3:29 x)
21+ (unit 3:31 (wing 3:32 x))))))
22+ (value 4:1 both-mixed
23+ (group 4:15
24+ (call 4:16
25+ (wing 4:16 both)
26+ (unit 4:21 (str 4:22 "hi"))
27+ (unit 4:27 (lit 4:28 ~zod)))))
28+ (value 5:1 clap-text
29+ (group 5:14
30+ (call 5:15
31+ (wing 5:15 clap)
32+ (unit 5:20 (str 5:21 "hi"))
33+ (unit 5:26 (str 5:27 "there"))
34+ (gate-wide 5:35
35+ (face 5:38 p
36+ (cell 5:40 (aura 5:41 @t) (aura 5:44 @t)))
37+ (str 5:48 "yes")))))
38+ (value 6:1 clef-mixed
39+ (group 6:15
40+ (call 6:16
41+ (wing 6:16 clef)
42+ (unit 6:21 (str 6:22 "hi"))
43+ (unit 6:27 (lit 6:28 ~zod))
44+ (gate-wide 6:33
45+ (face 6:36 p
46+ (cell 6:38 (aura 6:39 @t) (aura 6:42 @p)))
47+ (unit 6:46 (str 6:47 "ok"))))))
48+ (value 7:1 flit-text
49+ (group 7:14
50+ (call 7:15
51+ (group 7:15
52+ (call 7:16
53+ (wing 7:16 flit)
54+ (gate-wide 7:21
55+ (face 7:24 x (aura 7:26 @t))
56+ (lit 7:29 %.y))))
57+ (str 7:35 "hi"))))
58+ (value 8:1 wrong
59+ (group 8:10
60+ (call 8:11
61+ (wing 8:11 bind)
62+ (unit 8:16 (lit 8:17 ~zod))
63+ (gate-wide 8:22
64+ (face 8:25 x (aura 8:27 @t))
65+ (wing 8:30 x)))))
66+ (value 9:1 pending
67+ (body 10:3
68+ (trace 10:3
69+ (lit 10:6 %open)
70+ (body 11:5
71+ (group 11:5
72+ (call 11:6
73+ (wing 11:6 both)
74+ (unit 11:11 (str 11:12 "hi"))
75+ (unit 11:17 (lit 11:18 ~zod)))))))))
tests/golden/types-prelude-unit-helpers/types.txtnew file+16
@@ -0,0 +1,16 @@
1+partial inference; module not checked
2+++ bind-text: (unit @t)
3+++ bind-ship: (unit @p)
4+++ biff-text: (unit @t)
5+++ both-mixed: (unit [@t @p])
6+++ clap-text: name is not available to partial inference
7+++ clef-mixed: name is not available to partial inference
8+++ flit-text: (unit @t)
9+++ wrong: call's sample and argument types do not unify
10+/tests/golden/types-prelude-unit-helpers/source.jibb:8:11: called gate
11+++ wrong (bind `~zod |=(x=@t x))
12+ ^
13+/tests/golden/types-prelude-unit-helpers/source.jibb:8:22: argument has type $-(@t @t)
14+++ wrong (bind `~zod |=(x=@t x))
15+ ^
16+++ pending: tag needs context in partial inference
tests/golden/types-union-branch-context/types.txt+4−4
@@ -2,18 +2,18 @@ partial inference; module not checked
22+$ msg: cases proven disjoint; mold not checked
33++ choose: $-(? msg)
44++ records: $-(? msg)
5−++ bad: branch arm does not fit its expected union
5+++ bad: msg has no case `%missing`
66/tests/golden/types-union-branch-context/source.jibb:16:6: expected union
77 ^- msg
88 ^
9−/tests/golden/types-union-branch-context/source.jibb:19:11: branch arm
9+/tests/golden/types-union-branch-context/source.jibb:19:11: tag
1010 %.n %missing
1111 ^
12−++ bad-first: branch arm does not fit its expected union
12+++ bad-first: msg has no case `%missing`
1313/tests/golden/types-union-branch-context/source.jibb:21:6: expected union
1414 ^- msg
1515 ^
16−/tests/golden/types-union-branch-context/source.jibb:23:11: branch arm
16+/tests/golden/types-union-branch-context/source.jibb:23:11: tag
1717 %.y %missing
1818 ^
1919++ nested: $-(? msg)
tests/golden/types-union-tags/types.txt+3−3
@@ -2,10 +2,10 @@ partial inference; module not checked
22+$ msg: cases proven disjoint; mold not checked
33++ simple: msg
44++ record: msg
5−++ wrong: cast mold and expression type do not unify
6−/tests/golden/types-union-tags/source.jibb:6:13: cast mold
5+++ wrong: msg has no case `%missing`
6+/tests/golden/types-union-tags/source.jibb:6:13: expected union
77++ wrong ^- msg %missing
88 ^
9−/tests/golden/types-union-tags/source.jibb:6:17: expression
9+/tests/golden/types-union-tags/source.jibb:6:17: tag
1010++ wrong ^- msg %missing
1111 ^
tests/golden/types-unit-construction/types.txt+3−3
@@ -9,11 +9,11 @@ partial inference; module not checked
99++ same-first: (unit @t)
1010++ same-second: (unit @p)
1111++ ctx: (unit msg)
12−++ bad-tag: unit payload does not fit its expected type
13−/tests/golden/types-unit-construction/source.jibb:17:15: expected unit payload
12+++ bad-tag: msg has no case `%bad`
13+/tests/golden/types-unit-construction/source.jibb:17:15: expected union
1414++ bad-tag ^- (unit msg) `%bad
1515 ^
16−/tests/golden/types-unit-construction/source.jibb:17:27: payload
16+/tests/golden/types-unit-construction/source.jibb:17:27: tag
1717++ bad-tag ^- (unit msg) `%bad
1818 ^
1919++ missing-tag: tag needs context in partial inference
tests/golden/types-unit-context/types.txt+12−12
@@ -3,11 +3,11 @@ partial inference; module not checked
33+$ mimic: cases proven disjoint; mold not checked
44+$ record: not checked
55++ valid: (unit msg)
6−++ invalid: unit payload does not fit its expected type
7−/tests/golden/types-unit-context/source.jibb:9:15: expected unit payload
6+++ invalid: msg has no case `%bad`
7+/tests/golden/types-unit-context/source.jibb:9:15: expected union
88++ invalid ^- (unit msg) `%bad
99 ^
10−/tests/golden/types-unit-context/source.jibb:9:27: payload
10+/tests/golden/types-unit-context/source.jibb:9:27: tag
1111++ invalid ^- (unit msg) `%bad
1212 ^
1313++ str: (unit @t)
@@ -36,19 +36,19 @@ partial inference; module not checked
3636 ^
3737++ accept: $-((unit msg) (unit msg))
3838++ call: (unit msg)
39−++ bad-call: unit payload does not fit its expected type
40−/tests/golden/types-unit-context/source.jibb:18:14: expected unit payload
39+++ bad-call: msg has no case `%bad`
40+/tests/golden/types-unit-context/source.jibb:18:14: expected union
4141++ bad-call (accept `%bad)
4242 ^
43−/tests/golden/types-unit-context/source.jibb:18:22: payload
43+/tests/golden/types-unit-context/source.jibb:18:22: tag
4444++ bad-call (accept `%bad)
4545 ^
4646++ field: [u=(unit msg) xs=(list (unit @t))]
47−++ field-bad: unit payload does not fit its expected type
48−/tests/golden/types-unit-context/source.jibb:20:17: expected unit payload
47+++ field-bad: msg has no case `%bad`
48+/tests/golden/types-unit-context/source.jibb:20:17: expected union
4949++ field-bad ^- record [`%bad ~[`"hi"]]
5050 ^
51−/tests/golden/types-unit-context/source.jibb:20:26: payload
51+/tests/golden/types-unit-context/source.jibb:20:26: tag
5252++ field-bad ^- record [`%bad ~[`"hi"]]
5353 ^
5454++ mimic-mismatch: cast constraint is not supported by partial inference
@@ -85,11 +85,11 @@ partial inference; module not checked
8585++ contextual: $-(A [a=A b=(unit A)])
8686++ contextual-bad: explicit capital constraints are not supported by partial inference
8787++ nested-units: (list (unit msg))
88−++ nested-units-bad: unit payload does not fit its expected type
89−/tests/golden/types-unit-context/source.jibb:43:24: expected unit payload
88+++ nested-units-bad: msg has no case `%oops`
89+/tests/golden/types-unit-context/source.jibb:43:24: expected union
9090++ nested-units-bad ^- (list (unit msg)) ~[`%go `%oops]
9191 ^
92−/tests/golden/types-unit-context/source.jibb:43:50: payload
92+/tests/golden/types-unit-context/source.jibb:43:50: tag
9393++ nested-units-bad ^- (list (unit msg)) ~[`%go `%oops]
9494 ^
9595++ case-discarded: tag needs context in partial inference
tests/lib/jibb.hoon+531−505
@@ -1502,417 +1502,435 @@
15021502/* tok-441 %txt /tests/golden/types-local-recursive/tokens/txt
15031503/* tre-441 %txt /tests/golden/types-local-recursive/tree/txt
15041504/* typ-441 %txt /tests/golden/types-local-recursive/types/txt
1505−/* src-442 %jibb /tests/golden/types-module-fixtures/source/jibb
1506−/* tok-442 %txt /tests/golden/types-module-fixtures/tokens/txt
1507−/* tre-442 %txt /tests/golden/types-module-fixtures/tree/txt
1508−/* mod-442-1 %jibb /tests/golden/types-module-fixtures/modules/ui/api/blog/jibb
1509−/* mod-442-2 %jibb /tests/golden/types-module-fixtures/modules/ui/components/card/jibb
1510−/* typ-442 %txt /tests/golden/types-module-fixtures/types/txt
1511−/* mtre-442 %txt /tests/golden/types-module-fixtures/module-trees/txt
1512−/* src-443 %jibb /tests/golden/types-module-mixed/source/jibb
1513−/* tok-443 %txt /tests/golden/types-module-mixed/tokens/txt
1514−/* tre-443 %txt /tests/golden/types-module-mixed/tree/txt
1515−/* mod-443-1 %jibb /tests/golden/types-module-mixed/modules/ui/helper/jibb
1516−/* typ-443 %txt /tests/golden/types-module-mixed/types/txt
1517−/* imp-443-1 %txt /tests/golden/types-module-mixed/sur/fixture/txt
1518−/* mark-443-1 %txt /tests/golden/types-module-mixed/mar/label/txt
1519−/* mtre-443 %txt /tests/golden/types-module-mixed/module-trees/txt
1520−/* src-444 %jibb /tests/golden/types-multi-call/source/jibb
1521−/* tok-444 %txt /tests/golden/types-multi-call/tokens/txt
1522−/* tre-444 %txt /tests/golden/types-multi-call/tree/txt
1523−/* typ-444 %txt /tests/golden/types-multi-call/types/txt
1524−/* src-445 %jibb /tests/golden/types-multi-import/source/jibb
1525−/* tok-445 %txt /tests/golden/types-multi-import/tokens/txt
1526−/* tre-445 %txt /tests/golden/types-multi-import/tree/txt
1527−/* mod-445-1 %jibb /tests/golden/types-multi-import/modules/ui/lib/jibb
1528−/* typ-445 %txt /tests/golden/types-multi-import/types/txt
1529−/* mtre-445 %txt /tests/golden/types-multi-import/module-trees/txt
1530−/* src-446 %jibb /tests/golden/types-null-context/source/jibb
1531−/* tok-446 %txt /tests/golden/types-null-context/tokens/txt
1532−/* tre-446 %txt /tests/golden/types-null-context/tree/txt
1533−/* typ-446 %txt /tests/golden/types-null-context/types/txt
1534−/* src-447 %jibb /tests/golden/types-null-overlap/source/jibb
1535−/* tok-447 %txt /tests/golden/types-null-overlap/tokens/txt
1536−/* tre-447 %txt /tests/golden/types-null-overlap/tree/txt
1537−/* typ-447 %txt /tests/golden/types-null-overlap/types/txt
1538−/* src-448 %jibb /tests/golden/types-null-unresolved/source/jibb
1539−/* tok-448 %txt /tests/golden/types-null-unresolved/tokens/txt
1540−/* tre-448 %txt /tests/golden/types-null-unresolved/tree/txt
1541−/* typ-448 %txt /tests/golden/types-null-unresolved/types/txt
1542−/* src-449 %jibb /tests/golden/types-partial-apply/source/jibb
1543−/* tok-449 %txt /tests/golden/types-partial-apply/tokens/txt
1544−/* tre-449 %txt /tests/golden/types-partial-apply/tree/txt
1545−/* typ-449 %txt /tests/golden/types-partial-apply/types/txt
1546−/* src-450 %jibb /tests/golden/types-partial-atom-alias/source/jibb
1547−/* tok-450 %txt /tests/golden/types-partial-atom-alias/tokens/txt
1548−/* tre-450 %txt /tests/golden/types-partial-atom-alias/tree/txt
1549−/* typ-450 %txt /tests/golden/types-partial-atom-alias/types/txt
1550−/* src-451 %jibb /tests/golden/types-partial-atom-constraint/source/jibb
1551−/* tok-451 %txt /tests/golden/types-partial-atom-constraint/tokens/txt
1552−/* tre-451 %txt /tests/golden/types-partial-atom-constraint/tree/txt
1553−/* typ-451 %txt /tests/golden/types-partial-atom-constraint/types/txt
1554−/* src-452 %jibb /tests/golden/types-partial-atom-widening/source/jibb
1555−/* tok-452 %txt /tests/golden/types-partial-atom-widening/tokens/txt
1556−/* tre-452 %txt /tests/golden/types-partial-atom-widening/tree/txt
1557−/* typ-452 %txt /tests/golden/types-partial-atom-widening/types/txt
1558−/* src-453 %jibb /tests/golden/types-partial-aura/source/jibb
1559−/* tok-453 %txt /tests/golden/types-partial-aura/tokens/txt
1560−/* tre-453 %txt /tests/golden/types-partial-aura/tree/txt
1561−/* typ-453 %txt /tests/golden/types-partial-aura/types/txt
1562−/* src-454 %jibb /tests/golden/types-partial-aura-family/source/jibb
1563−/* tok-454 %txt /tests/golden/types-partial-aura-family/tokens/txt
1564−/* tre-454 %txt /tests/golden/types-partial-aura-family/tree/txt
1565−/* typ-454 %txt /tests/golden/types-partial-aura-family/types/txt
1566−/* src-455 %jibb /tests/golden/types-partial-aura-generalization/source/jibb
1567−/* tok-455 %txt /tests/golden/types-partial-aura-generalization/tokens/txt
1568−/* tre-455 %txt /tests/golden/types-partial-aura-generalization/tree/txt
1569−/* typ-455 %txt /tests/golden/types-partial-aura-generalization/types/txt
1570−/* src-456 %jibb /tests/golden/types-partial-bare-atom/source/jibb
1571−/* tok-456 %txt /tests/golden/types-partial-bare-atom/tokens/txt
1572−/* tre-456 %txt /tests/golden/types-partial-bare-atom/tree/txt
1573−/* typ-456 %txt /tests/golden/types-partial-bare-atom/types/txt
1574−/* src-457 %jibb /tests/golden/types-partial-branch-widening/source/jibb
1575−/* tok-457 %txt /tests/golden/types-partial-branch-widening/tokens/txt
1576−/* tre-457 %txt /tests/golden/types-partial-branch-widening/tree/txt
1577−/* typ-457 %txt /tests/golden/types-partial-branch-widening/types/txt
1578−/* src-458 %jibb /tests/golden/types-partial-conflicting-sites/source/jibb
1579−/* tok-458 %txt /tests/golden/types-partial-conflicting-sites/tokens/txt
1580−/* tre-458 %txt /tests/golden/types-partial-conflicting-sites/tree/txt
1581−/* typ-458 %txt /tests/golden/types-partial-conflicting-sites/types/txt
1582−/* src-459 %jibb /tests/golden/types-partial-decimal-default/source/jibb
1583−/* tok-459 %txt /tests/golden/types-partial-decimal-default/tokens/txt
1584−/* tre-459 %txt /tests/golden/types-partial-decimal-default/tree/txt
1585−/* typ-459 %txt /tests/golden/types-partial-decimal-default/types/txt
1586−/* src-460 %jibb /tests/golden/types-partial-dependency-chain/source/jibb
1587−/* tok-460 %txt /tests/golden/types-partial-dependency-chain/tokens/txt
1588−/* tre-460 %txt /tests/golden/types-partial-dependency-chain/tree/txt
1589−/* typ-460 %txt /tests/golden/types-partial-dependency-chain/types/txt
1590−/* src-461 %jibb /tests/golden/types-partial-explicit-capital/source/jibb
1591−/* tok-461 %txt /tests/golden/types-partial-explicit-capital/tokens/txt
1592−/* tre-461 %txt /tests/golden/types-partial-explicit-capital/tree/txt
1593−/* typ-461 %txt /tests/golden/types-partial-explicit-capital/types/txt
1594−/* src-462 %jibb /tests/golden/types-partial-forward/source/jibb
1595−/* tok-462 %txt /tests/golden/types-partial-forward/tokens/txt
1596−/* tre-462 %txt /tests/golden/types-partial-forward/tree/txt
1597−/* typ-462 %txt /tests/golden/types-partial-forward/types/txt
1598−/* src-463 %jibb /tests/golden/types-partial-generalization/source/jibb
1599−/* tok-463 %txt /tests/golden/types-partial-generalization/tokens/txt
1600−/* tre-463 %txt /tests/golden/types-partial-generalization/tree/txt
1601−/* typ-463 %txt /tests/golden/types-partial-generalization/types/txt
1602−/* src-464 %jibb /tests/golden/types-partial-identity/source/jibb
1603−/* tok-464 %txt /tests/golden/types-partial-identity/tokens/txt
1604−/* tre-464 %txt /tests/golden/types-partial-identity/tree/txt
1605−/* typ-464 %txt /tests/golden/types-partial-identity/types/txt
1606−/* src-465 %jibb /tests/golden/types-partial-independent-atoms/source/jibb
1607−/* tok-465 %txt /tests/golden/types-partial-independent-atoms/tokens/txt
1608−/* tre-465 %txt /tests/golden/types-partial-independent-atoms/tree/txt
1609−/* typ-465 %txt /tests/golden/types-partial-independent-atoms/types/txt
1610−/* src-466 %jibb /tests/golden/types-partial-local-molds/source/jibb
1611−/* tok-466 %txt /tests/golden/types-partial-local-molds/tokens/txt
1612−/* tre-466 %txt /tests/golden/types-partial-local-molds/tree/txt
1613−/* typ-466 %txt /tests/golden/types-partial-local-molds/types/txt
1614−/* src-467 %jibb /tests/golden/types-partial-locals/source/jibb
1615−/* tok-467 %txt /tests/golden/types-partial-locals/tokens/txt
1616−/* tre-467 %txt /tests/golden/types-partial-locals/tree/txt
1617−/* typ-467 %txt /tests/golden/types-partial-locals/types/txt
1618−/* src-468 %jibb /tests/golden/types-partial-many-atom-constraints/source/jibb
1619−/* tok-468 %txt /tests/golden/types-partial-many-atom-constraints/tokens/txt
1620−/* tre-468 %txt /tests/golden/types-partial-many-atom-constraints/tree/txt
1621−/* typ-468 %txt /tests/golden/types-partial-many-atom-constraints/types/txt
1622−/* src-469 %jibb /tests/golden/types-partial-mold-bare-aura/source/jibb
1623−/* tok-469 %txt /tests/golden/types-partial-mold-bare-aura/tokens/txt
1624−/* tre-469 %txt /tests/golden/types-partial-mold-bare-aura/tree/txt
1625−/* typ-469 %txt /tests/golden/types-partial-mold-bare-aura/types/txt
1626−/* src-470 %jibb /tests/golden/types-partial-mold-composite/source/jibb
1627−/* tok-470 %txt /tests/golden/types-partial-mold-composite/tokens/txt
1628−/* tre-470 %txt /tests/golden/types-partial-mold-composite/tree/txt
1629−/* typ-470 %txt /tests/golden/types-partial-mold-composite/types/txt
1630−/* src-471 %jibb /tests/golden/types-partial-mold-forward/source/jibb
1631−/* tok-471 %txt /tests/golden/types-partial-mold-forward/tokens/txt
1632−/* tre-471 %txt /tests/golden/types-partial-mold-forward/tree/txt
1633−/* typ-471 %txt /tests/golden/types-partial-mold-forward/types/txt
1634−/* src-472 %jibb /tests/golden/types-partial-mold-recursive/source/jibb
1635−/* tok-472 %txt /tests/golden/types-partial-mold-recursive/tokens/txt
1636−/* tre-472 %txt /tests/golden/types-partial-mold-recursive/tree/txt
1637−/* typ-472 %txt /tests/golden/types-partial-mold-recursive/types/txt
1638−/* src-473 %jibb /tests/golden/types-partial-occurs/source/jibb
1639−/* tok-473 %txt /tests/golden/types-partial-occurs/tokens/txt
1640−/* tre-473 %txt /tests/golden/types-partial-occurs/tree/txt
1641−/* typ-473 %txt /tests/golden/types-partial-occurs/types/txt
1642−/* src-474 %jibb /tests/golden/types-partial-projection/source/jibb
1643−/* tok-474 %txt /tests/golden/types-partial-projection/tokens/txt
1644−/* tre-474 %txt /tests/golden/types-partial-projection/tree/txt
1645−/* typ-474 %txt /tests/golden/types-partial-projection/types/txt
1646−/* src-475 %jibb /tests/golden/types-partial-shadow-global/source/jibb
1647−/* tok-475 %txt /tests/golden/types-partial-shadow-global/tokens/txt
1648−/* tre-475 %txt /tests/golden/types-partial-shadow-global/tree/txt
1649−/* typ-475 %txt /tests/golden/types-partial-shadow-global/types/txt
1650−/* src-476 %jibb /tests/golden/types-partial-shared-tvar/source/jibb
1651−/* tok-476 %txt /tests/golden/types-partial-shared-tvar/tokens/txt
1652−/* tre-476 %txt /tests/golden/types-partial-shared-tvar/tree/txt
1653−/* typ-476 %txt /tests/golden/types-partial-shared-tvar/types/txt
1654−/* src-477 %jibb /tests/golden/types-partial-union-cases/source/jibb
1655−/* tok-477 %txt /tests/golden/types-partial-union-cases/tokens/txt
1656−/* tre-477 %txt /tests/golden/types-partial-union-cases/tree/txt
1657−/* typ-477 %txt /tests/golden/types-partial-union-cases/types/txt
1658−/* src-478 %jibb /tests/golden/types-partial-union-edges/source/jibb
1659−/* tok-478 %txt /tests/golden/types-partial-union-edges/tokens/txt
1660−/* tre-478 %txt /tests/golden/types-partial-union-edges/tree/txt
1661−/* typ-478 %txt /tests/golden/types-partial-union-edges/types/txt
1662−/* src-479 %jibb /tests/golden/types-partial-unresolved-tag/source/jibb
1663−/* tok-479 %txt /tests/golden/types-partial-unresolved-tag/tokens/txt
1664−/* tre-479 %txt /tests/golden/types-partial-unresolved-tag/tree/txt
1665−/* typ-479 %txt /tests/golden/types-partial-unresolved-tag/types/txt
1666−/* src-480 %jibb /tests/golden/types-prelude-direct/source/jibb
1667−/* tok-480 %txt /tests/golden/types-prelude-direct/tokens/txt
1668−/* tre-480 %txt /tests/golden/types-prelude-direct/tree/txt
1669−/* typ-480 %txt /tests/golden/types-prelude-direct/types/txt
1670−/* src-481 %jibb /tests/golden/types-prelude-interface/source/jibb
1671−/* tok-481 %txt /tests/golden/types-prelude-interface/tokens/txt
1672−/* tre-481 %txt /tests/golden/types-prelude-interface/tree/txt
1673−/* mod-481-1 %jibb /tests/golden/types-prelude-interface/modules/ui/left/jibb
1674−/* mod-481-2 %jibb /tests/golden/types-prelude-interface/modules/ui/right/jibb
1675−/* typ-481 %txt /tests/golden/types-prelude-interface/types/txt
1676−/* mtre-481 %txt /tests/golden/types-prelude-interface/module-trees/txt
1677−/* src-482 %jibb /tests/golden/types-prelude-list-functions/source/jibb
1678−/* tok-482 %txt /tests/golden/types-prelude-list-functions/tokens/txt
1679−/* tre-482 %txt /tests/golden/types-prelude-list-functions/tree/txt
1680−/* mod-482-1 %jibb /tests/golden/types-prelude-list-functions/modules/ui/lib/jibb
1681−/* typ-482 %txt /tests/golden/types-prelude-list-functions/types/txt
1682−/* mtre-482 %txt /tests/golden/types-prelude-list-functions/module-trees/txt
1683−/* src-483 %jibb /tests/golden/types-record-bound-variable/source/jibb
1684−/* tok-483 %txt /tests/golden/types-record-bound-variable/tokens/txt
1685−/* tre-483 %txt /tests/golden/types-record-bound-variable/tree/txt
1686−/* typ-483 %txt /tests/golden/types-record-bound-variable/types/txt
1687−/* src-484 %jibb /tests/golden/types-record-cast-context/source/jibb
1688−/* tok-484 %txt /tests/golden/types-record-cast-context/tokens/txt
1689−/* tre-484 %txt /tests/golden/types-record-cast-context/tree/txt
1690−/* typ-484 %txt /tests/golden/types-record-cast-context/types/txt
1691−/* src-485 %jibb /tests/golden/types-record-change/source/jibb
1692−/* tok-485 %txt /tests/golden/types-record-change/tokens/txt
1693−/* tre-485 %txt /tests/golden/types-record-change/tree/txt
1694−/* typ-485 %txt /tests/golden/types-record-change/types/txt
1695−/* src-486 %jibb /tests/golden/types-record-change-generic/source/jibb
1696−/* tok-486 %txt /tests/golden/types-record-change-generic/tokens/txt
1697−/* tre-486 %txt /tests/golden/types-record-change-generic/tree/txt
1698−/* typ-486 %txt /tests/golden/types-record-change-generic/types/txt
1699−/* src-487 %jibb /tests/golden/types-record-faces/source/jibb
1700−/* tok-487 %txt /tests/golden/types-record-faces/tokens/txt
1701−/* tre-487 %txt /tests/golden/types-record-faces/tree/txt
1702−/* typ-487 %txt /tests/golden/types-record-faces/types/txt
1703−/* src-488 %jibb /tests/golden/types-record-import/source/jibb
1704−/* tok-488 %txt /tests/golden/types-record-import/tokens/txt
1705−/* tre-488 %txt /tests/golden/types-record-import/tree/txt
1706−/* mod-488-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
1707−/* typ-488 %txt /tests/golden/types-record-import/types/txt
1708−/* mtre-488 %txt /tests/golden/types-record-import/module-trees/txt
1709−/* src-489 %jibb /tests/golden/types-record-local-scheme/source/jibb
1710−/* tok-489 %txt /tests/golden/types-record-local-scheme/tokens/txt
1711−/* tre-489 %txt /tests/golden/types-record-local-scheme/tree/txt
1712−/* typ-489 %txt /tests/golden/types-record-local-scheme/types/txt
1713−/* src-490 %jibb /tests/golden/types-record-nested/source/jibb
1714−/* tok-490 %txt /tests/golden/types-record-nested/tokens/txt
1715−/* tre-490 %txt /tests/golden/types-record-nested/tree/txt
1716−/* typ-490 %txt /tests/golden/types-record-nested/types/txt
1717−/* src-491 %jibb /tests/golden/types-record-to-tuple/source/jibb
1718−/* tok-491 %txt /tests/golden/types-record-to-tuple/tokens/txt
1719−/* tre-491 %txt /tests/golden/types-record-to-tuple/tree/txt
1720−/* typ-491 %txt /tests/golden/types-record-to-tuple/types/txt
1721−/* src-492 %jibb /tests/golden/types-recursion-scc-failures/source/jibb
1722−/* tok-492 %txt /tests/golden/types-recursion-scc-failures/tokens/txt
1723−/* tre-492 %txt /tests/golden/types-recursion-scc-failures/tree/txt
1724−/* typ-492 %txt /tests/golden/types-recursion-scc-failures/types/txt
1725−/* src-493 %jibb /tests/golden/types-recursion-scc-groups/source/jibb
1726−/* tok-493 %txt /tests/golden/types-recursion-scc-groups/tokens/txt
1727−/* tre-493 %txt /tests/golden/types-recursion-scc-groups/tree/txt
1728−/* typ-493 %txt /tests/golden/types-recursion-scc-groups/types/txt
1729−/* src-494 %jibb /tests/golden/types-recursion-scc-import/source/jibb
1730−/* tok-494 %txt /tests/golden/types-recursion-scc-import/tokens/txt
1731−/* tre-494 %txt /tests/golden/types-recursion-scc-import/tree/txt
1732−/* mod-494-1 %jibb /tests/golden/types-recursion-scc-import/modules/ui/lib/jibb
1733−/* typ-494 %txt /tests/golden/types-recursion-scc-import/types/txt
1734−/* mtre-494 %txt /tests/golden/types-recursion-scc-import/module-trees/txt
1735−/* src-495 %jibb /tests/golden/types-recursion-scc-import-bad/source/jibb
1736−/* tok-495 %txt /tests/golden/types-recursion-scc-import-bad/tokens/txt
1737−/* tre-495 %txt /tests/golden/types-recursion-scc-import-bad/tree/txt
1738−/* mod-495-1 %jibb /tests/golden/types-recursion-scc-import-bad/modules/ui/lib/jibb
1739−/* typ-495 %txt /tests/golden/types-recursion-scc-import-bad/types/txt
1740−/* mtre-495 %txt /tests/golden/types-recursion-scc-import-bad/module-trees/txt
1741−/* src-496 %jibb /tests/golden/types-recursion-scc-local/source/jibb
1742−/* tok-496 %txt /tests/golden/types-recursion-scc-local/tokens/txt
1743−/* tre-496 %txt /tests/golden/types-recursion-scc-local/tree/txt
1744−/* typ-496 %txt /tests/golden/types-recursion-scc-local/types/txt
1745−/* src-497 %jibb /tests/golden/types-recursion-scc-order/source/jibb
1746−/* tok-497 %txt /tests/golden/types-recursion-scc-order/tokens/txt
1747−/* tre-497 %txt /tests/golden/types-recursion-scc-order/tree/txt
1748−/* typ-497 %txt /tests/golden/types-recursion-scc-order/types/txt
1749−/* src-498 %jibb /tests/golden/types-recursion-scc-shadow/source/jibb
1750−/* tok-498 %txt /tests/golden/types-recursion-scc-shadow/tokens/txt
1751−/* tre-498 %txt /tests/golden/types-recursion-scc-shadow/tree/txt
1752−/* typ-498 %txt /tests/golden/types-recursion-scc-shadow/types/txt
1753−/* src-499 %jibb /tests/golden/types-recursive-branch/source/jibb
1754−/* tok-499 %txt /tests/golden/types-recursive-branch/tokens/txt
1755−/* tre-499 %txt /tests/golden/types-recursive-branch/tree/txt
1756−/* typ-499 %txt /tests/golden/types-recursive-branch/types/txt
1757−/* src-500 %jibb /tests/golden/types-recursive-gate/source/jibb
1758−/* tok-500 %txt /tests/golden/types-recursive-gate/tokens/txt
1759−/* tre-500 %txt /tests/golden/types-recursive-gate/tree/txt
1760−/* typ-500 %txt /tests/golden/types-recursive-gate/types/txt
1761−/* src-501 %jibb /tests/golden/types-recursive-sample/source/jibb
1762−/* tok-501 %txt /tests/golden/types-recursive-sample/tokens/txt
1763−/* tre-501 %txt /tests/golden/types-recursive-sample/tree/txt
1764−/* typ-501 %txt /tests/golden/types-recursive-sample/types/txt
1765−/* src-502 %jibb /tests/golden/types-string-interpolation/source/jibb
1766−/* tok-502 %txt /tests/golden/types-string-interpolation/tokens/txt
1767−/* tre-502 %txt /tests/golden/types-string-interpolation/tree/txt
1768−/* typ-502 %txt /tests/golden/types-string-interpolation/types/txt
1769−/* src-503 %jibb /tests/golden/types-tuple-context/source/jibb
1770−/* tok-503 %txt /tests/golden/types-tuple-context/tokens/txt
1771−/* tre-503 %txt /tests/golden/types-tuple-context/tree/txt
1772−/* typ-503 %txt /tests/golden/types-tuple-context/types/txt
1773−/* src-504 %jibb /tests/golden/types-tuple-context-nested/source/jibb
1774−/* tok-504 %txt /tests/golden/types-tuple-context-nested/tokens/txt
1775−/* tre-504 %txt /tests/golden/types-tuple-context-nested/tree/txt
1776−/* typ-504 %txt /tests/golden/types-tuple-context-nested/types/txt
1777−/* src-505 %jibb /tests/golden/types-union-alias/source/jibb
1778−/* tok-505 %txt /tests/golden/types-union-alias/tokens/txt
1779−/* tre-505 %txt /tests/golden/types-union-alias/tree/txt
1780−/* typ-505 %txt /tests/golden/types-union-alias/types/txt
1781−/* src-506 %jibb /tests/golden/types-union-branch-context/source/jibb
1782−/* tok-506 %txt /tests/golden/types-union-branch-context/tokens/txt
1783−/* tre-506 %txt /tests/golden/types-union-branch-context/tree/txt
1784−/* typ-506 %txt /tests/golden/types-union-branch-context/types/txt
1785−/* src-507 %jibb /tests/golden/types-union-branch-pending/source/jibb
1786−/* tok-507 %txt /tests/golden/types-union-branch-pending/tokens/txt
1787−/* tre-507 %txt /tests/golden/types-union-branch-pending/tree/txt
1788−/* typ-507 %txt /tests/golden/types-union-branch-pending/types/txt
1789−/* src-508 %jibb /tests/golden/types-union-constructor-shape/source/jibb
1790−/* tok-508 %txt /tests/golden/types-union-constructor-shape/tokens/txt
1791−/* tre-508 %txt /tests/golden/types-union-constructor-shape/tree/txt
1792−/* typ-508 %txt /tests/golden/types-union-constructor-shape/types/txt
1793−/* src-509 %jibb /tests/golden/types-union-context-flow/source/jibb
1794−/* tok-509 %txt /tests/golden/types-union-context-flow/tokens/txt
1795−/* tre-509 %txt /tests/golden/types-union-context-flow/tree/txt
1796−/* typ-509 %txt /tests/golden/types-union-context-flow/types/txt
1797−/* src-510 %jibb /tests/golden/types-union-finite/source/jibb
1798−/* tok-510 %txt /tests/golden/types-union-finite/tokens/txt
1799−/* tre-510 %txt /tests/golden/types-union-finite/tree/txt
1800−/* typ-510 %txt /tests/golden/types-union-finite/types/txt
1801−/* src-511 %jibb /tests/golden/types-union-finite-generic/source/jibb
1802−/* tok-511 %txt /tests/golden/types-union-finite-generic/tokens/txt
1803−/* tre-511 %txt /tests/golden/types-union-finite-generic/tree/txt
1804−/* typ-511 %txt /tests/golden/types-union-finite-generic/types/txt
1805−/* src-512 %jibb /tests/golden/types-union-finite-limit/source/jibb
1806−/* tok-512 %txt /tests/golden/types-union-finite-limit/tokens/txt
1807−/* tre-512 %txt /tests/golden/types-union-finite-limit/tree/txt
1808−/* typ-512 %txt /tests/golden/types-union-finite-limit/types/txt
1809−/* src-513 %jibb /tests/golden/types-union-import/source/jibb
1810−/* tok-513 %txt /tests/golden/types-union-import/tokens/txt
1811−/* tre-513 %txt /tests/golden/types-union-import/tree/txt
1812−/* mod-513-1 %jibb /tests/golden/types-union-import/modules/ui/lib/jibb
1813−/* typ-513 %txt /tests/golden/types-union-import/types/txt
1814−/* mtre-513 %txt /tests/golden/types-union-import/module-trees/txt
1815−/* src-514 %jibb /tests/golden/types-union-local-pending/source/jibb
1816−/* tok-514 %txt /tests/golden/types-union-local-pending/tokens/txt
1817−/* tre-514 %txt /tests/golden/types-union-local-pending/tree/txt
1818−/* typ-514 %txt /tests/golden/types-union-local-pending/types/txt
1819−/* src-515 %jibb /tests/golden/types-union-overlap/source/jibb
1820−/* tok-515 %txt /tests/golden/types-union-overlap/tokens/txt
1821−/* tre-515 %txt /tests/golden/types-union-overlap/tree/txt
1822−/* typ-515 %txt /tests/golden/types-union-overlap/types/txt
1823−/* src-516 %jibb /tests/golden/types-union-overlap-nested/source/jibb
1824−/* tok-516 %txt /tests/golden/types-union-overlap-nested/tokens/txt
1825−/* tre-516 %txt /tests/golden/types-union-overlap-nested/tree/txt
1826−/* typ-516 %txt /tests/golden/types-union-overlap-nested/types/txt
1827−/* src-517 %jibb /tests/golden/types-union-patterns/source/jibb
1828−/* tok-517 %txt /tests/golden/types-union-patterns/tokens/txt
1829−/* tre-517 %txt /tests/golden/types-union-patterns/tree/txt
1830−/* typ-517 %txt /tests/golden/types-union-patterns/types/txt
1831−/* src-518 %jibb /tests/golden/types-union-patterns-generic/source/jibb
1832−/* tok-518 %txt /tests/golden/types-union-patterns-generic/tokens/txt
1833−/* tre-518 %txt /tests/golden/types-union-patterns-generic/tree/txt
1834−/* typ-518 %txt /tests/golden/types-union-patterns-generic/types/txt
1835−/* src-519 %jibb /tests/golden/types-union-patterns-import/source/jibb
1836−/* tok-519 %txt /tests/golden/types-union-patterns-import/tokens/txt
1837−/* tre-519 %txt /tests/golden/types-union-patterns-import/tree/txt
1838−/* mod-519-1 %jibb /tests/golden/types-union-patterns-import/modules/ui/lib/jibb
1839−/* typ-519 %txt /tests/golden/types-union-patterns-import/types/txt
1840−/* mtre-519 %txt /tests/golden/types-union-patterns-import/module-trees/txt
1841−/* src-520 %jibb /tests/golden/types-union-phantom-generic/source/jibb
1842−/* tok-520 %txt /tests/golden/types-union-phantom-generic/tokens/txt
1843−/* tre-520 %txt /tests/golden/types-union-phantom-generic/tree/txt
1844−/* typ-520 %txt /tests/golden/types-union-phantom-generic/types/txt
1845−/* src-521 %jibb /tests/golden/types-union-print-cross-namespace/source/jibb
1846−/* tok-521 %txt /tests/golden/types-union-print-cross-namespace/tokens/txt
1847−/* tre-521 %txt /tests/golden/types-union-print-cross-namespace/tree/txt
1848−/* mod-521-1 %jibb /tests/golden/types-union-print-cross-namespace/modules/ui/lib/jibb
1849−/* typ-521 %txt /tests/golden/types-union-print-cross-namespace/types/txt
1850−/* mtre-521 %txt /tests/golden/types-union-print-cross-namespace/module-trees/txt
1851−/* src-522 %jibb /tests/golden/types-union-print-distinct/source/jibb
1852−/* tok-522 %txt /tests/golden/types-union-print-distinct/tokens/txt
1853−/* tre-522 %txt /tests/golden/types-union-print-distinct/tree/txt
1854−/* mod-522-1 %jibb /tests/golden/types-union-print-distinct/modules/ui/left/jibb
1855−/* mod-522-2 %jibb /tests/golden/types-union-print-distinct/modules/ui/right/jibb
1856−/* mod-522-3 %jibb /tests/golden/types-union-print-distinct/modules/ui/twin/jibb
1857−/* typ-522 %txt /tests/golden/types-union-print-distinct/types/txt
1858−/* mtre-522 %txt /tests/golden/types-union-print-distinct/module-trees/txt
1859−/* src-523 %jibb /tests/golden/types-union-print-escape/source/jibb
1860−/* tok-523 %txt /tests/golden/types-union-print-escape/tokens/txt
1861−/* tre-523 %txt /tests/golden/types-union-print-escape/tree/txt
1862−/* typ-523 %txt /tests/golden/types-union-print-escape/types/txt
1863−/* src-524 %jibb /tests/golden/types-union-print-local/source/jibb
1864−/* tok-524 %txt /tests/golden/types-union-print-local/tokens/txt
1865−/* tre-524 %txt /tests/golden/types-union-print-local/tree/txt
1866−/* typ-524 %txt /tests/golden/types-union-print-local/types/txt
1867−/* src-525 %jibb /tests/golden/types-union-print-nested/source/jibb
1868−/* tok-525 %txt /tests/golden/types-union-print-nested/tokens/txt
1869−/* tre-525 %txt /tests/golden/types-union-print-nested/tree/txt
1870−/* typ-525 %txt /tests/golden/types-union-print-nested/types/txt
1871−/* src-526 %jibb /tests/golden/types-union-print-same-origin/source/jibb
1872−/* tok-526 %txt /tests/golden/types-union-print-same-origin/tokens/txt
1873−/* tre-526 %txt /tests/golden/types-union-print-same-origin/tree/txt
1874−/* mod-526-1 %jibb /tests/golden/types-union-print-same-origin/modules/ui/shared/jibb
1875−/* typ-526 %txt /tests/golden/types-union-print-same-origin/types/txt
1876−/* mtre-526 %txt /tests/golden/types-union-print-same-origin/module-trees/txt
1877−/* src-527 %jibb /tests/golden/types-union-print-transitive/source/jibb
1878−/* tok-527 %txt /tests/golden/types-union-print-transitive/tokens/txt
1879−/* tre-527 %txt /tests/golden/types-union-print-transitive/tree/txt
1880−/* mod-527-1 %jibb /tests/golden/types-union-print-transitive/modules/ui/mid/jibb
1881−/* mod-527-2 %jibb /tests/golden/types-union-print-transitive/modules/ui/base/jibb
1882−/* typ-527 %txt /tests/golden/types-union-print-transitive/types/txt
1883−/* mtre-527 %txt /tests/golden/types-union-print-transitive/module-trees/txt
1884−/* src-528 %jibb /tests/golden/types-union-singleton/source/jibb
1885−/* tok-528 %txt /tests/golden/types-union-singleton/tokens/txt
1886−/* tre-528 %txt /tests/golden/types-union-singleton/tree/txt
1887−/* typ-528 %txt /tests/golden/types-union-singleton/types/txt
1888−/* src-529 %jibb /tests/golden/types-union-tag-atoms/source/jibb
1889−/* tok-529 %txt /tests/golden/types-union-tag-atoms/tokens/txt
1890−/* tre-529 %txt /tests/golden/types-union-tag-atoms/tree/txt
1891−/* typ-529 %txt /tests/golden/types-union-tag-atoms/types/txt
1892−/* src-530 %jibb /tests/golden/types-union-tags/source/jibb
1893−/* tok-530 %txt /tests/golden/types-union-tags/tokens/txt
1894−/* tre-530 %txt /tests/golden/types-union-tags/tree/txt
1895−/* typ-530 %txt /tests/golden/types-union-tags/types/txt
1896−/* src-531 %jibb /tests/golden/types-union-unresolved/source/jibb
1897−/* tok-531 %txt /tests/golden/types-union-unresolved/tokens/txt
1898−/* tre-531 %txt /tests/golden/types-union-unresolved/tree/txt
1899−/* typ-531 %txt /tests/golden/types-union-unresolved/types/txt
1900−/* src-532 %jibb /tests/golden/types-union-unresolved-flow/source/jibb
1901−/* tok-532 %txt /tests/golden/types-union-unresolved-flow/tokens/txt
1902−/* tre-532 %txt /tests/golden/types-union-unresolved-flow/tree/txt
1903−/* typ-532 %txt /tests/golden/types-union-unresolved-flow/types/txt
1904−/* src-533 %jibb /tests/golden/types-unit-construction/source/jibb
1905−/* tok-533 %txt /tests/golden/types-unit-construction/tokens/txt
1906−/* tre-533 %txt /tests/golden/types-unit-construction/tree/txt
1907−/* typ-533 %txt /tests/golden/types-unit-construction/types/txt
1908−/* src-534 %jibb /tests/golden/types-unit-context/source/jibb
1909−/* tok-534 %txt /tests/golden/types-unit-context/tokens/txt
1910−/* tre-534 %txt /tests/golden/types-unit-context/tree/txt
1911−/* typ-534 %txt /tests/golden/types-unit-context/types/txt
1912−/* src-535 %jibb /tests/golden/types-unit-patterns/source/jibb
1913−/* tok-535 %txt /tests/golden/types-unit-patterns/tokens/txt
1914−/* tre-535 %txt /tests/golden/types-unit-patterns/tree/txt
1915−/* typ-535 %txt /tests/golden/types-unit-patterns/types/txt
1505+/* src-442 %jibb /tests/golden/types-missing-tag-context/source/jibb
1506+/* tok-442 %txt /tests/golden/types-missing-tag-context/tokens/txt
1507+/* tre-442 %txt /tests/golden/types-missing-tag-context/tree/txt
1508+/* typ-442 %txt /tests/golden/types-missing-tag-context/types/txt
1509+/* src-443 %jibb /tests/golden/types-missing-tag-imported/source/jibb
1510+/* tok-443 %txt /tests/golden/types-missing-tag-imported/tokens/txt
1511+/* tre-443 %txt /tests/golden/types-missing-tag-imported/tree/txt
1512+/* typ-443 %txt /tests/golden/types-missing-tag-imported/types/txt
1513+/* imp-443-1 %txt /tests/golden/types-missing-tag-imported/sur/fixture/txt
1514+/* imp-443-2 %txt /tests/golden/types-missing-tag-imported/sur/fixture/txt
1515+/* src-444 %jibb /tests/golden/types-missing-tag-named/source/jibb
1516+/* tok-444 %txt /tests/golden/types-missing-tag-named/tokens/txt
1517+/* tre-444 %txt /tests/golden/types-missing-tag-named/tree/txt
1518+/* typ-444 %txt /tests/golden/types-missing-tag-named/types/txt
1519+/* src-445 %jibb /tests/golden/types-module-fixtures/source/jibb
1520+/* tok-445 %txt /tests/golden/types-module-fixtures/tokens/txt
1521+/* tre-445 %txt /tests/golden/types-module-fixtures/tree/txt
1522+/* mod-445-1 %jibb /tests/golden/types-module-fixtures/modules/ui/api/blog/jibb
1523+/* mod-445-2 %jibb /tests/golden/types-module-fixtures/modules/ui/components/card/jibb
1524+/* typ-445 %txt /tests/golden/types-module-fixtures/types/txt
1525+/* mtre-445 %txt /tests/golden/types-module-fixtures/module-trees/txt
1526+/* src-446 %jibb /tests/golden/types-module-mixed/source/jibb
1527+/* tok-446 %txt /tests/golden/types-module-mixed/tokens/txt
1528+/* tre-446 %txt /tests/golden/types-module-mixed/tree/txt
1529+/* mod-446-1 %jibb /tests/golden/types-module-mixed/modules/ui/helper/jibb
1530+/* typ-446 %txt /tests/golden/types-module-mixed/types/txt
1531+/* imp-446-1 %txt /tests/golden/types-module-mixed/sur/fixture/txt
1532+/* mark-446-1 %txt /tests/golden/types-module-mixed/mar/label/txt
1533+/* mtre-446 %txt /tests/golden/types-module-mixed/module-trees/txt
1534+/* src-447 %jibb /tests/golden/types-multi-call/source/jibb
1535+/* tok-447 %txt /tests/golden/types-multi-call/tokens/txt
1536+/* tre-447 %txt /tests/golden/types-multi-call/tree/txt
1537+/* typ-447 %txt /tests/golden/types-multi-call/types/txt
1538+/* src-448 %jibb /tests/golden/types-multi-import/source/jibb
1539+/* tok-448 %txt /tests/golden/types-multi-import/tokens/txt
1540+/* tre-448 %txt /tests/golden/types-multi-import/tree/txt
1541+/* mod-448-1 %jibb /tests/golden/types-multi-import/modules/ui/lib/jibb
1542+/* typ-448 %txt /tests/golden/types-multi-import/types/txt
1543+/* mtre-448 %txt /tests/golden/types-multi-import/module-trees/txt
1544+/* src-449 %jibb /tests/golden/types-null-context/source/jibb
1545+/* tok-449 %txt /tests/golden/types-null-context/tokens/txt
1546+/* tre-449 %txt /tests/golden/types-null-context/tree/txt
1547+/* typ-449 %txt /tests/golden/types-null-context/types/txt
1548+/* src-450 %jibb /tests/golden/types-null-overlap/source/jibb
1549+/* tok-450 %txt /tests/golden/types-null-overlap/tokens/txt
1550+/* tre-450 %txt /tests/golden/types-null-overlap/tree/txt
1551+/* typ-450 %txt /tests/golden/types-null-overlap/types/txt
1552+/* src-451 %jibb /tests/golden/types-null-unresolved/source/jibb
1553+/* tok-451 %txt /tests/golden/types-null-unresolved/tokens/txt
1554+/* tre-451 %txt /tests/golden/types-null-unresolved/tree/txt
1555+/* typ-451 %txt /tests/golden/types-null-unresolved/types/txt
1556+/* src-452 %jibb /tests/golden/types-partial-apply/source/jibb
1557+/* tok-452 %txt /tests/golden/types-partial-apply/tokens/txt
1558+/* tre-452 %txt /tests/golden/types-partial-apply/tree/txt
1559+/* typ-452 %txt /tests/golden/types-partial-apply/types/txt
1560+/* src-453 %jibb /tests/golden/types-partial-atom-alias/source/jibb
1561+/* tok-453 %txt /tests/golden/types-partial-atom-alias/tokens/txt
1562+/* tre-453 %txt /tests/golden/types-partial-atom-alias/tree/txt
1563+/* typ-453 %txt /tests/golden/types-partial-atom-alias/types/txt
1564+/* src-454 %jibb /tests/golden/types-partial-atom-constraint/source/jibb
1565+/* tok-454 %txt /tests/golden/types-partial-atom-constraint/tokens/txt
1566+/* tre-454 %txt /tests/golden/types-partial-atom-constraint/tree/txt
1567+/* typ-454 %txt /tests/golden/types-partial-atom-constraint/types/txt
1568+/* src-455 %jibb /tests/golden/types-partial-atom-widening/source/jibb
1569+/* tok-455 %txt /tests/golden/types-partial-atom-widening/tokens/txt
1570+/* tre-455 %txt /tests/golden/types-partial-atom-widening/tree/txt
1571+/* typ-455 %txt /tests/golden/types-partial-atom-widening/types/txt
1572+/* src-456 %jibb /tests/golden/types-partial-aura/source/jibb
1573+/* tok-456 %txt /tests/golden/types-partial-aura/tokens/txt
1574+/* tre-456 %txt /tests/golden/types-partial-aura/tree/txt
1575+/* typ-456 %txt /tests/golden/types-partial-aura/types/txt
1576+/* src-457 %jibb /tests/golden/types-partial-aura-family/source/jibb
1577+/* tok-457 %txt /tests/golden/types-partial-aura-family/tokens/txt
1578+/* tre-457 %txt /tests/golden/types-partial-aura-family/tree/txt
1579+/* typ-457 %txt /tests/golden/types-partial-aura-family/types/txt
1580+/* src-458 %jibb /tests/golden/types-partial-aura-generalization/source/jibb
1581+/* tok-458 %txt /tests/golden/types-partial-aura-generalization/tokens/txt
1582+/* tre-458 %txt /tests/golden/types-partial-aura-generalization/tree/txt
1583+/* typ-458 %txt /tests/golden/types-partial-aura-generalization/types/txt
1584+/* src-459 %jibb /tests/golden/types-partial-bare-atom/source/jibb
1585+/* tok-459 %txt /tests/golden/types-partial-bare-atom/tokens/txt
1586+/* tre-459 %txt /tests/golden/types-partial-bare-atom/tree/txt
1587+/* typ-459 %txt /tests/golden/types-partial-bare-atom/types/txt
1588+/* src-460 %jibb /tests/golden/types-partial-branch-widening/source/jibb
1589+/* tok-460 %txt /tests/golden/types-partial-branch-widening/tokens/txt
1590+/* tre-460 %txt /tests/golden/types-partial-branch-widening/tree/txt
1591+/* typ-460 %txt /tests/golden/types-partial-branch-widening/types/txt
1592+/* src-461 %jibb /tests/golden/types-partial-conflicting-sites/source/jibb
1593+/* tok-461 %txt /tests/golden/types-partial-conflicting-sites/tokens/txt
1594+/* tre-461 %txt /tests/golden/types-partial-conflicting-sites/tree/txt
1595+/* typ-461 %txt /tests/golden/types-partial-conflicting-sites/types/txt
1596+/* src-462 %jibb /tests/golden/types-partial-decimal-default/source/jibb
1597+/* tok-462 %txt /tests/golden/types-partial-decimal-default/tokens/txt
1598+/* tre-462 %txt /tests/golden/types-partial-decimal-default/tree/txt
1599+/* typ-462 %txt /tests/golden/types-partial-decimal-default/types/txt
1600+/* src-463 %jibb /tests/golden/types-partial-dependency-chain/source/jibb
1601+/* tok-463 %txt /tests/golden/types-partial-dependency-chain/tokens/txt
1602+/* tre-463 %txt /tests/golden/types-partial-dependency-chain/tree/txt
1603+/* typ-463 %txt /tests/golden/types-partial-dependency-chain/types/txt
1604+/* src-464 %jibb /tests/golden/types-partial-explicit-capital/source/jibb
1605+/* tok-464 %txt /tests/golden/types-partial-explicit-capital/tokens/txt
1606+/* tre-464 %txt /tests/golden/types-partial-explicit-capital/tree/txt
1607+/* typ-464 %txt /tests/golden/types-partial-explicit-capital/types/txt
1608+/* src-465 %jibb /tests/golden/types-partial-forward/source/jibb
1609+/* tok-465 %txt /tests/golden/types-partial-forward/tokens/txt
1610+/* tre-465 %txt /tests/golden/types-partial-forward/tree/txt
1611+/* typ-465 %txt /tests/golden/types-partial-forward/types/txt
1612+/* src-466 %jibb /tests/golden/types-partial-generalization/source/jibb
1613+/* tok-466 %txt /tests/golden/types-partial-generalization/tokens/txt
1614+/* tre-466 %txt /tests/golden/types-partial-generalization/tree/txt
1615+/* typ-466 %txt /tests/golden/types-partial-generalization/types/txt
1616+/* src-467 %jibb /tests/golden/types-partial-identity/source/jibb
1617+/* tok-467 %txt /tests/golden/types-partial-identity/tokens/txt
1618+/* tre-467 %txt /tests/golden/types-partial-identity/tree/txt
1619+/* typ-467 %txt /tests/golden/types-partial-identity/types/txt
1620+/* src-468 %jibb /tests/golden/types-partial-independent-atoms/source/jibb
1621+/* tok-468 %txt /tests/golden/types-partial-independent-atoms/tokens/txt
1622+/* tre-468 %txt /tests/golden/types-partial-independent-atoms/tree/txt
1623+/* typ-468 %txt /tests/golden/types-partial-independent-atoms/types/txt
1624+/* src-469 %jibb /tests/golden/types-partial-local-molds/source/jibb
1625+/* tok-469 %txt /tests/golden/types-partial-local-molds/tokens/txt
1626+/* tre-469 %txt /tests/golden/types-partial-local-molds/tree/txt
1627+/* typ-469 %txt /tests/golden/types-partial-local-molds/types/txt
1628+/* src-470 %jibb /tests/golden/types-partial-locals/source/jibb
1629+/* tok-470 %txt /tests/golden/types-partial-locals/tokens/txt
1630+/* tre-470 %txt /tests/golden/types-partial-locals/tree/txt
1631+/* typ-470 %txt /tests/golden/types-partial-locals/types/txt
1632+/* src-471 %jibb /tests/golden/types-partial-many-atom-constraints/source/jibb
1633+/* tok-471 %txt /tests/golden/types-partial-many-atom-constraints/tokens/txt
1634+/* tre-471 %txt /tests/golden/types-partial-many-atom-constraints/tree/txt
1635+/* typ-471 %txt /tests/golden/types-partial-many-atom-constraints/types/txt
1636+/* src-472 %jibb /tests/golden/types-partial-mold-bare-aura/source/jibb
1637+/* tok-472 %txt /tests/golden/types-partial-mold-bare-aura/tokens/txt
1638+/* tre-472 %txt /tests/golden/types-partial-mold-bare-aura/tree/txt
1639+/* typ-472 %txt /tests/golden/types-partial-mold-bare-aura/types/txt
1640+/* src-473 %jibb /tests/golden/types-partial-mold-composite/source/jibb
1641+/* tok-473 %txt /tests/golden/types-partial-mold-composite/tokens/txt
1642+/* tre-473 %txt /tests/golden/types-partial-mold-composite/tree/txt
1643+/* typ-473 %txt /tests/golden/types-partial-mold-composite/types/txt
1644+/* src-474 %jibb /tests/golden/types-partial-mold-forward/source/jibb
1645+/* tok-474 %txt /tests/golden/types-partial-mold-forward/tokens/txt
1646+/* tre-474 %txt /tests/golden/types-partial-mold-forward/tree/txt
1647+/* typ-474 %txt /tests/golden/types-partial-mold-forward/types/txt
1648+/* src-475 %jibb /tests/golden/types-partial-mold-recursive/source/jibb
1649+/* tok-475 %txt /tests/golden/types-partial-mold-recursive/tokens/txt
1650+/* tre-475 %txt /tests/golden/types-partial-mold-recursive/tree/txt
1651+/* typ-475 %txt /tests/golden/types-partial-mold-recursive/types/txt
1652+/* src-476 %jibb /tests/golden/types-partial-occurs/source/jibb
1653+/* tok-476 %txt /tests/golden/types-partial-occurs/tokens/txt
1654+/* tre-476 %txt /tests/golden/types-partial-occurs/tree/txt
1655+/* typ-476 %txt /tests/golden/types-partial-occurs/types/txt
1656+/* src-477 %jibb /tests/golden/types-partial-projection/source/jibb
1657+/* tok-477 %txt /tests/golden/types-partial-projection/tokens/txt
1658+/* tre-477 %txt /tests/golden/types-partial-projection/tree/txt
1659+/* typ-477 %txt /tests/golden/types-partial-projection/types/txt
1660+/* src-478 %jibb /tests/golden/types-partial-shadow-global/source/jibb
1661+/* tok-478 %txt /tests/golden/types-partial-shadow-global/tokens/txt
1662+/* tre-478 %txt /tests/golden/types-partial-shadow-global/tree/txt
1663+/* typ-478 %txt /tests/golden/types-partial-shadow-global/types/txt
1664+/* src-479 %jibb /tests/golden/types-partial-shared-tvar/source/jibb
1665+/* tok-479 %txt /tests/golden/types-partial-shared-tvar/tokens/txt
1666+/* tre-479 %txt /tests/golden/types-partial-shared-tvar/tree/txt
1667+/* typ-479 %txt /tests/golden/types-partial-shared-tvar/types/txt
1668+/* src-480 %jibb /tests/golden/types-partial-union-cases/source/jibb
1669+/* tok-480 %txt /tests/golden/types-partial-union-cases/tokens/txt
1670+/* tre-480 %txt /tests/golden/types-partial-union-cases/tree/txt
1671+/* typ-480 %txt /tests/golden/types-partial-union-cases/types/txt
1672+/* src-481 %jibb /tests/golden/types-partial-union-edges/source/jibb
1673+/* tok-481 %txt /tests/golden/types-partial-union-edges/tokens/txt
1674+/* tre-481 %txt /tests/golden/types-partial-union-edges/tree/txt
1675+/* typ-481 %txt /tests/golden/types-partial-union-edges/types/txt
1676+/* src-482 %jibb /tests/golden/types-partial-unresolved-tag/source/jibb
1677+/* tok-482 %txt /tests/golden/types-partial-unresolved-tag/tokens/txt
1678+/* tre-482 %txt /tests/golden/types-partial-unresolved-tag/tree/txt
1679+/* typ-482 %txt /tests/golden/types-partial-unresolved-tag/types/txt
1680+/* src-483 %jibb /tests/golden/types-prelude-direct/source/jibb
1681+/* tok-483 %txt /tests/golden/types-prelude-direct/tokens/txt
1682+/* tre-483 %txt /tests/golden/types-prelude-direct/tree/txt
1683+/* typ-483 %txt /tests/golden/types-prelude-direct/types/txt
1684+/* src-484 %jibb /tests/golden/types-prelude-interface/source/jibb
1685+/* tok-484 %txt /tests/golden/types-prelude-interface/tokens/txt
1686+/* tre-484 %txt /tests/golden/types-prelude-interface/tree/txt
1687+/* mod-484-1 %jibb /tests/golden/types-prelude-interface/modules/ui/left/jibb
1688+/* mod-484-2 %jibb /tests/golden/types-prelude-interface/modules/ui/right/jibb
1689+/* typ-484 %txt /tests/golden/types-prelude-interface/types/txt
1690+/* mtre-484 %txt /tests/golden/types-prelude-interface/module-trees/txt
1691+/* src-485 %jibb /tests/golden/types-prelude-list-functions/source/jibb
1692+/* tok-485 %txt /tests/golden/types-prelude-list-functions/tokens/txt
1693+/* tre-485 %txt /tests/golden/types-prelude-list-functions/tree/txt
1694+/* mod-485-1 %jibb /tests/golden/types-prelude-list-functions/modules/ui/lib/jibb
1695+/* typ-485 %txt /tests/golden/types-prelude-list-functions/types/txt
1696+/* mtre-485 %txt /tests/golden/types-prelude-list-functions/module-trees/txt
1697+/* src-486 %jibb /tests/golden/types-prelude-unit-helpers/source/jibb
1698+/* tok-486 %txt /tests/golden/types-prelude-unit-helpers/tokens/txt
1699+/* tre-486 %txt /tests/golden/types-prelude-unit-helpers/tree/txt
1700+/* typ-486 %txt /tests/golden/types-prelude-unit-helpers/types/txt
1701+/* src-487 %jibb /tests/golden/types-record-bound-variable/source/jibb
1702+/* tok-487 %txt /tests/golden/types-record-bound-variable/tokens/txt
1703+/* tre-487 %txt /tests/golden/types-record-bound-variable/tree/txt
1704+/* typ-487 %txt /tests/golden/types-record-bound-variable/types/txt
1705+/* src-488 %jibb /tests/golden/types-record-cast-context/source/jibb
1706+/* tok-488 %txt /tests/golden/types-record-cast-context/tokens/txt
1707+/* tre-488 %txt /tests/golden/types-record-cast-context/tree/txt
1708+/* typ-488 %txt /tests/golden/types-record-cast-context/types/txt
1709+/* src-489 %jibb /tests/golden/types-record-change/source/jibb
1710+/* tok-489 %txt /tests/golden/types-record-change/tokens/txt
1711+/* tre-489 %txt /tests/golden/types-record-change/tree/txt
1712+/* typ-489 %txt /tests/golden/types-record-change/types/txt
1713+/* src-490 %jibb /tests/golden/types-record-change-generic/source/jibb
1714+/* tok-490 %txt /tests/golden/types-record-change-generic/tokens/txt
1715+/* tre-490 %txt /tests/golden/types-record-change-generic/tree/txt
1716+/* typ-490 %txt /tests/golden/types-record-change-generic/types/txt
1717+/* src-491 %jibb /tests/golden/types-record-faces/source/jibb
1718+/* tok-491 %txt /tests/golden/types-record-faces/tokens/txt
1719+/* tre-491 %txt /tests/golden/types-record-faces/tree/txt
1720+/* typ-491 %txt /tests/golden/types-record-faces/types/txt
1721+/* src-492 %jibb /tests/golden/types-record-import/source/jibb
1722+/* tok-492 %txt /tests/golden/types-record-import/tokens/txt
1723+/* tre-492 %txt /tests/golden/types-record-import/tree/txt
1724+/* mod-492-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
1725+/* typ-492 %txt /tests/golden/types-record-import/types/txt
1726+/* mtre-492 %txt /tests/golden/types-record-import/module-trees/txt
1727+/* src-493 %jibb /tests/golden/types-record-local-scheme/source/jibb
1728+/* tok-493 %txt /tests/golden/types-record-local-scheme/tokens/txt
1729+/* tre-493 %txt /tests/golden/types-record-local-scheme/tree/txt
1730+/* typ-493 %txt /tests/golden/types-record-local-scheme/types/txt
1731+/* src-494 %jibb /tests/golden/types-record-nested/source/jibb
1732+/* tok-494 %txt /tests/golden/types-record-nested/tokens/txt
1733+/* tre-494 %txt /tests/golden/types-record-nested/tree/txt
1734+/* typ-494 %txt /tests/golden/types-record-nested/types/txt
1735+/* src-495 %jibb /tests/golden/types-record-to-tuple/source/jibb
1736+/* tok-495 %txt /tests/golden/types-record-to-tuple/tokens/txt
1737+/* tre-495 %txt /tests/golden/types-record-to-tuple/tree/txt
1738+/* typ-495 %txt /tests/golden/types-record-to-tuple/types/txt
1739+/* src-496 %jibb /tests/golden/types-recursion-scc-failures/source/jibb
1740+/* tok-496 %txt /tests/golden/types-recursion-scc-failures/tokens/txt
1741+/* tre-496 %txt /tests/golden/types-recursion-scc-failures/tree/txt
1742+/* typ-496 %txt /tests/golden/types-recursion-scc-failures/types/txt
1743+/* src-497 %jibb /tests/golden/types-recursion-scc-groups/source/jibb
1744+/* tok-497 %txt /tests/golden/types-recursion-scc-groups/tokens/txt
1745+/* tre-497 %txt /tests/golden/types-recursion-scc-groups/tree/txt
1746+/* typ-497 %txt /tests/golden/types-recursion-scc-groups/types/txt
1747+/* src-498 %jibb /tests/golden/types-recursion-scc-import/source/jibb
1748+/* tok-498 %txt /tests/golden/types-recursion-scc-import/tokens/txt
1749+/* tre-498 %txt /tests/golden/types-recursion-scc-import/tree/txt
1750+/* mod-498-1 %jibb /tests/golden/types-recursion-scc-import/modules/ui/lib/jibb
1751+/* typ-498 %txt /tests/golden/types-recursion-scc-import/types/txt
1752+/* mtre-498 %txt /tests/golden/types-recursion-scc-import/module-trees/txt
1753+/* src-499 %jibb /tests/golden/types-recursion-scc-import-bad/source/jibb
1754+/* tok-499 %txt /tests/golden/types-recursion-scc-import-bad/tokens/txt
1755+/* tre-499 %txt /tests/golden/types-recursion-scc-import-bad/tree/txt
1756+/* mod-499-1 %jibb /tests/golden/types-recursion-scc-import-bad/modules/ui/lib/jibb
1757+/* typ-499 %txt /tests/golden/types-recursion-scc-import-bad/types/txt
1758+/* mtre-499 %txt /tests/golden/types-recursion-scc-import-bad/module-trees/txt
1759+/* src-500 %jibb /tests/golden/types-recursion-scc-local/source/jibb
1760+/* tok-500 %txt /tests/golden/types-recursion-scc-local/tokens/txt
1761+/* tre-500 %txt /tests/golden/types-recursion-scc-local/tree/txt
1762+/* typ-500 %txt /tests/golden/types-recursion-scc-local/types/txt
1763+/* src-501 %jibb /tests/golden/types-recursion-scc-order/source/jibb
1764+/* tok-501 %txt /tests/golden/types-recursion-scc-order/tokens/txt
1765+/* tre-501 %txt /tests/golden/types-recursion-scc-order/tree/txt
1766+/* typ-501 %txt /tests/golden/types-recursion-scc-order/types/txt
1767+/* src-502 %jibb /tests/golden/types-recursion-scc-shadow/source/jibb
1768+/* tok-502 %txt /tests/golden/types-recursion-scc-shadow/tokens/txt
1769+/* tre-502 %txt /tests/golden/types-recursion-scc-shadow/tree/txt
1770+/* typ-502 %txt /tests/golden/types-recursion-scc-shadow/types/txt
1771+/* src-503 %jibb /tests/golden/types-recursive-branch/source/jibb
1772+/* tok-503 %txt /tests/golden/types-recursive-branch/tokens/txt
1773+/* tre-503 %txt /tests/golden/types-recursive-branch/tree/txt
1774+/* typ-503 %txt /tests/golden/types-recursive-branch/types/txt
1775+/* src-504 %jibb /tests/golden/types-recursive-gate/source/jibb
1776+/* tok-504 %txt /tests/golden/types-recursive-gate/tokens/txt
1777+/* tre-504 %txt /tests/golden/types-recursive-gate/tree/txt
1778+/* typ-504 %txt /tests/golden/types-recursive-gate/types/txt
1779+/* src-505 %jibb /tests/golden/types-recursive-sample/source/jibb
1780+/* tok-505 %txt /tests/golden/types-recursive-sample/tokens/txt
1781+/* tre-505 %txt /tests/golden/types-recursive-sample/tree/txt
1782+/* typ-505 %txt /tests/golden/types-recursive-sample/types/txt
1783+/* src-506 %jibb /tests/golden/types-string-interpolation/source/jibb
1784+/* tok-506 %txt /tests/golden/types-string-interpolation/tokens/txt
1785+/* tre-506 %txt /tests/golden/types-string-interpolation/tree/txt
1786+/* typ-506 %txt /tests/golden/types-string-interpolation/types/txt
1787+/* src-507 %jibb /tests/golden/types-tuple-context/source/jibb
1788+/* tok-507 %txt /tests/golden/types-tuple-context/tokens/txt
1789+/* tre-507 %txt /tests/golden/types-tuple-context/tree/txt
1790+/* typ-507 %txt /tests/golden/types-tuple-context/types/txt
1791+/* src-508 %jibb /tests/golden/types-tuple-context-nested/source/jibb
1792+/* tok-508 %txt /tests/golden/types-tuple-context-nested/tokens/txt
1793+/* tre-508 %txt /tests/golden/types-tuple-context-nested/tree/txt
1794+/* typ-508 %txt /tests/golden/types-tuple-context-nested/types/txt
1795+/* src-509 %jibb /tests/golden/types-union-alias/source/jibb
1796+/* tok-509 %txt /tests/golden/types-union-alias/tokens/txt
1797+/* tre-509 %txt /tests/golden/types-union-alias/tree/txt
1798+/* typ-509 %txt /tests/golden/types-union-alias/types/txt
1799+/* src-510 %jibb /tests/golden/types-union-branch-context/source/jibb
1800+/* tok-510 %txt /tests/golden/types-union-branch-context/tokens/txt
1801+/* tre-510 %txt /tests/golden/types-union-branch-context/tree/txt
1802+/* typ-510 %txt /tests/golden/types-union-branch-context/types/txt
1803+/* src-511 %jibb /tests/golden/types-union-branch-pending/source/jibb
1804+/* tok-511 %txt /tests/golden/types-union-branch-pending/tokens/txt
1805+/* tre-511 %txt /tests/golden/types-union-branch-pending/tree/txt
1806+/* typ-511 %txt /tests/golden/types-union-branch-pending/types/txt
1807+/* src-512 %jibb /tests/golden/types-union-constructor-shape/source/jibb
1808+/* tok-512 %txt /tests/golden/types-union-constructor-shape/tokens/txt
1809+/* tre-512 %txt /tests/golden/types-union-constructor-shape/tree/txt
1810+/* typ-512 %txt /tests/golden/types-union-constructor-shape/types/txt
1811+/* src-513 %jibb /tests/golden/types-union-context-flow/source/jibb
1812+/* tok-513 %txt /tests/golden/types-union-context-flow/tokens/txt
1813+/* tre-513 %txt /tests/golden/types-union-context-flow/tree/txt
1814+/* typ-513 %txt /tests/golden/types-union-context-flow/types/txt
1815+/* src-514 %jibb /tests/golden/types-union-finite/source/jibb
1816+/* tok-514 %txt /tests/golden/types-union-finite/tokens/txt
1817+/* tre-514 %txt /tests/golden/types-union-finite/tree/txt
1818+/* typ-514 %txt /tests/golden/types-union-finite/types/txt
1819+/* src-515 %jibb /tests/golden/types-union-finite-generic/source/jibb
1820+/* tok-515 %txt /tests/golden/types-union-finite-generic/tokens/txt
1821+/* tre-515 %txt /tests/golden/types-union-finite-generic/tree/txt
1822+/* typ-515 %txt /tests/golden/types-union-finite-generic/types/txt
1823+/* src-516 %jibb /tests/golden/types-union-finite-limit/source/jibb
1824+/* tok-516 %txt /tests/golden/types-union-finite-limit/tokens/txt
1825+/* tre-516 %txt /tests/golden/types-union-finite-limit/tree/txt
1826+/* typ-516 %txt /tests/golden/types-union-finite-limit/types/txt
1827+/* src-517 %jibb /tests/golden/types-union-import/source/jibb
1828+/* tok-517 %txt /tests/golden/types-union-import/tokens/txt
1829+/* tre-517 %txt /tests/golden/types-union-import/tree/txt
1830+/* mod-517-1 %jibb /tests/golden/types-union-import/modules/ui/lib/jibb
1831+/* typ-517 %txt /tests/golden/types-union-import/types/txt
1832+/* mtre-517 %txt /tests/golden/types-union-import/module-trees/txt
1833+/* src-518 %jibb /tests/golden/types-union-local-pending/source/jibb
1834+/* tok-518 %txt /tests/golden/types-union-local-pending/tokens/txt
1835+/* tre-518 %txt /tests/golden/types-union-local-pending/tree/txt
1836+/* typ-518 %txt /tests/golden/types-union-local-pending/types/txt
1837+/* src-519 %jibb /tests/golden/types-union-overlap/source/jibb
1838+/* tok-519 %txt /tests/golden/types-union-overlap/tokens/txt
1839+/* tre-519 %txt /tests/golden/types-union-overlap/tree/txt
1840+/* typ-519 %txt /tests/golden/types-union-overlap/types/txt
1841+/* src-520 %jibb /tests/golden/types-union-overlap-nested/source/jibb
1842+/* tok-520 %txt /tests/golden/types-union-overlap-nested/tokens/txt
1843+/* tre-520 %txt /tests/golden/types-union-overlap-nested/tree/txt
1844+/* typ-520 %txt /tests/golden/types-union-overlap-nested/types/txt
1845+/* src-521 %jibb /tests/golden/types-union-patterns/source/jibb
1846+/* tok-521 %txt /tests/golden/types-union-patterns/tokens/txt
1847+/* tre-521 %txt /tests/golden/types-union-patterns/tree/txt
1848+/* typ-521 %txt /tests/golden/types-union-patterns/types/txt
1849+/* src-522 %jibb /tests/golden/types-union-patterns-generic/source/jibb
1850+/* tok-522 %txt /tests/golden/types-union-patterns-generic/tokens/txt
1851+/* tre-522 %txt /tests/golden/types-union-patterns-generic/tree/txt
1852+/* typ-522 %txt /tests/golden/types-union-patterns-generic/types/txt
1853+/* src-523 %jibb /tests/golden/types-union-patterns-import/source/jibb
1854+/* tok-523 %txt /tests/golden/types-union-patterns-import/tokens/txt
1855+/* tre-523 %txt /tests/golden/types-union-patterns-import/tree/txt
1856+/* mod-523-1 %jibb /tests/golden/types-union-patterns-import/modules/ui/lib/jibb
1857+/* typ-523 %txt /tests/golden/types-union-patterns-import/types/txt
1858+/* mtre-523 %txt /tests/golden/types-union-patterns-import/module-trees/txt
1859+/* src-524 %jibb /tests/golden/types-union-phantom-generic/source/jibb
1860+/* tok-524 %txt /tests/golden/types-union-phantom-generic/tokens/txt
1861+/* tre-524 %txt /tests/golden/types-union-phantom-generic/tree/txt
1862+/* typ-524 %txt /tests/golden/types-union-phantom-generic/types/txt
1863+/* src-525 %jibb /tests/golden/types-union-print-cross-namespace/source/jibb
1864+/* tok-525 %txt /tests/golden/types-union-print-cross-namespace/tokens/txt
1865+/* tre-525 %txt /tests/golden/types-union-print-cross-namespace/tree/txt
1866+/* mod-525-1 %jibb /tests/golden/types-union-print-cross-namespace/modules/ui/lib/jibb
1867+/* typ-525 %txt /tests/golden/types-union-print-cross-namespace/types/txt
1868+/* mtre-525 %txt /tests/golden/types-union-print-cross-namespace/module-trees/txt
1869+/* src-526 %jibb /tests/golden/types-union-print-distinct/source/jibb
1870+/* tok-526 %txt /tests/golden/types-union-print-distinct/tokens/txt
1871+/* tre-526 %txt /tests/golden/types-union-print-distinct/tree/txt
1872+/* mod-526-1 %jibb /tests/golden/types-union-print-distinct/modules/ui/left/jibb
1873+/* mod-526-2 %jibb /tests/golden/types-union-print-distinct/modules/ui/right/jibb
1874+/* mod-526-3 %jibb /tests/golden/types-union-print-distinct/modules/ui/twin/jibb
1875+/* typ-526 %txt /tests/golden/types-union-print-distinct/types/txt
1876+/* mtre-526 %txt /tests/golden/types-union-print-distinct/module-trees/txt
1877+/* src-527 %jibb /tests/golden/types-union-print-escape/source/jibb
1878+/* tok-527 %txt /tests/golden/types-union-print-escape/tokens/txt
1879+/* tre-527 %txt /tests/golden/types-union-print-escape/tree/txt
1880+/* typ-527 %txt /tests/golden/types-union-print-escape/types/txt
1881+/* src-528 %jibb /tests/golden/types-union-print-local/source/jibb
1882+/* tok-528 %txt /tests/golden/types-union-print-local/tokens/txt
1883+/* tre-528 %txt /tests/golden/types-union-print-local/tree/txt
1884+/* typ-528 %txt /tests/golden/types-union-print-local/types/txt
1885+/* src-529 %jibb /tests/golden/types-union-print-nested/source/jibb
1886+/* tok-529 %txt /tests/golden/types-union-print-nested/tokens/txt
1887+/* tre-529 %txt /tests/golden/types-union-print-nested/tree/txt
1888+/* typ-529 %txt /tests/golden/types-union-print-nested/types/txt
1889+/* src-530 %jibb /tests/golden/types-union-print-same-origin/source/jibb
1890+/* tok-530 %txt /tests/golden/types-union-print-same-origin/tokens/txt
1891+/* tre-530 %txt /tests/golden/types-union-print-same-origin/tree/txt
1892+/* mod-530-1 %jibb /tests/golden/types-union-print-same-origin/modules/ui/shared/jibb
1893+/* typ-530 %txt /tests/golden/types-union-print-same-origin/types/txt
1894+/* mtre-530 %txt /tests/golden/types-union-print-same-origin/module-trees/txt
1895+/* src-531 %jibb /tests/golden/types-union-print-transitive/source/jibb
1896+/* tok-531 %txt /tests/golden/types-union-print-transitive/tokens/txt
1897+/* tre-531 %txt /tests/golden/types-union-print-transitive/tree/txt
1898+/* mod-531-1 %jibb /tests/golden/types-union-print-transitive/modules/ui/mid/jibb
1899+/* mod-531-2 %jibb /tests/golden/types-union-print-transitive/modules/ui/base/jibb
1900+/* typ-531 %txt /tests/golden/types-union-print-transitive/types/txt
1901+/* mtre-531 %txt /tests/golden/types-union-print-transitive/module-trees/txt
1902+/* src-532 %jibb /tests/golden/types-union-singleton/source/jibb
1903+/* tok-532 %txt /tests/golden/types-union-singleton/tokens/txt
1904+/* tre-532 %txt /tests/golden/types-union-singleton/tree/txt
1905+/* typ-532 %txt /tests/golden/types-union-singleton/types/txt
1906+/* src-533 %jibb /tests/golden/types-union-tag-atoms/source/jibb
1907+/* tok-533 %txt /tests/golden/types-union-tag-atoms/tokens/txt
1908+/* tre-533 %txt /tests/golden/types-union-tag-atoms/tree/txt
1909+/* typ-533 %txt /tests/golden/types-union-tag-atoms/types/txt
1910+/* src-534 %jibb /tests/golden/types-union-tags/source/jibb
1911+/* tok-534 %txt /tests/golden/types-union-tags/tokens/txt
1912+/* tre-534 %txt /tests/golden/types-union-tags/tree/txt
1913+/* typ-534 %txt /tests/golden/types-union-tags/types/txt
1914+/* src-535 %jibb /tests/golden/types-union-unresolved/source/jibb
1915+/* tok-535 %txt /tests/golden/types-union-unresolved/tokens/txt
1916+/* tre-535 %txt /tests/golden/types-union-unresolved/tree/txt
1917+/* typ-535 %txt /tests/golden/types-union-unresolved/types/txt
1918+/* src-536 %jibb /tests/golden/types-union-unresolved-flow/source/jibb
1919+/* tok-536 %txt /tests/golden/types-union-unresolved-flow/tokens/txt
1920+/* tre-536 %txt /tests/golden/types-union-unresolved-flow/tree/txt
1921+/* typ-536 %txt /tests/golden/types-union-unresolved-flow/types/txt
1922+/* src-537 %jibb /tests/golden/types-unit-construction/source/jibb
1923+/* tok-537 %txt /tests/golden/types-unit-construction/tokens/txt
1924+/* tre-537 %txt /tests/golden/types-unit-construction/tree/txt
1925+/* typ-537 %txt /tests/golden/types-unit-construction/types/txt
1926+/* src-538 %jibb /tests/golden/types-unit-context/source/jibb
1927+/* tok-538 %txt /tests/golden/types-unit-context/tokens/txt
1928+/* tre-538 %txt /tests/golden/types-unit-context/tree/txt
1929+/* typ-538 %txt /tests/golden/types-unit-context/types/txt
1930+/* src-539 %jibb /tests/golden/types-unit-patterns/source/jibb
1931+/* tok-539 %txt /tests/golden/types-unit-patterns/tokens/txt
1932+/* tre-539 %txt /tests/golden/types-unit-patterns/tree/txt
1933+/* typ-539 %txt /tests/golden/types-unit-patterns/types/txt
19161934=/ prepared-prelude (prepare-prelude:jibb prelude-source)
19171935|%
19181936:: one arm per case
@@ -2799,194 +2817,202 @@
27992817 (weld (check ~.types-local-capitals src-440 `tok-440 `tre-440) (check-module-types ~.types-local-capitals ~[%tests %golden ~.types-local-capitals %source %jibb] src-440 `typ-440 ~ ~ ~))
28002818++ test-types-local-recursive
28012819 (weld (check ~.types-local-recursive src-441 `tok-441 `tre-441) (check-module-types ~.types-local-recursive ~[%tests %golden ~.types-local-recursive %source %jibb] src-441 `typ-441 ~ ~ ~))
2820+++ test-types-missing-tag-context
2821+ (weld (check ~.types-missing-tag-context src-442 `tok-442 `tre-442) (check-module-types ~.types-missing-tag-context ~[%tests %golden ~.types-missing-tag-context %source %jibb] src-442 `typ-442 ~ ~ ~))
2822+++ test-types-missing-tag-imported
2823+ (weld (check ~.types-missing-tag-imported src-443 `tok-443 `tre-443) (check-import-types ~.types-missing-tag-imported ~[%tests %golden ~.types-missing-tag-imported %source %jibb] src-443 `typ-443 ~[[%fixture %choice imp-443-1] [%fixture %nested-choice imp-443-2]]))
2824+++ test-types-missing-tag-named
2825+ (weld (check ~.types-missing-tag-named src-444 `tok-444 `tre-444) (check-module-types ~.types-missing-tag-named ~[%tests %golden ~.types-missing-tag-named %source %jibb] src-444 `typ-444 ~ ~ ~))
28022826++ test-types-module-fixtures
2803− (weld (weld (check-at ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-442 `tok-442 `tre-442) (check-module-types ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-442 `typ-442 ~ ~ ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-442-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-442-2]])) (check-module-trees ~.types-module-fixtures `mtre-442 ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-442-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-442-2]]))
2827+ (weld (weld (check-at ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-445 `tok-445 `tre-445) (check-module-types ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-445 `typ-445 ~ ~ ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-445-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-445-2]])) (check-module-trees ~.types-module-fixtures `mtre-445 ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-445-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-445-2]]))
28042828++ test-types-module-mixed
2805− (weld (weld (check ~.types-module-mixed src-443 `tok-443 `tre-443) (check-module-types ~.types-module-mixed ~[%tests %golden ~.types-module-mixed %source %jibb] src-443 `typ-443 ~[[%fixture %title imp-443-1]] ~[[%label mark-443-1]] ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-443-1]])) (check-module-trees ~.types-module-mixed `mtre-443 ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-443-1]]))
2829+ (weld (weld (check ~.types-module-mixed src-446 `tok-446 `tre-446) (check-module-types ~.types-module-mixed ~[%tests %golden ~.types-module-mixed %source %jibb] src-446 `typ-446 ~[[%fixture %title imp-446-1]] ~[[%label mark-446-1]] ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-446-1]])) (check-module-trees ~.types-module-mixed `mtre-446 ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-446-1]]))
28062830++ test-types-multi-call
2807− (weld (check ~.types-multi-call src-444 `tok-444 `tre-444) (check-module-types ~.types-multi-call ~[%tests %golden ~.types-multi-call %source %jibb] src-444 `typ-444 ~ ~ ~))
2831+ (weld (check ~.types-multi-call src-447 `tok-447 `tre-447) (check-module-types ~.types-multi-call ~[%tests %golden ~.types-multi-call %source %jibb] src-447 `typ-447 ~ ~ ~))
28082832++ test-types-multi-import
2809− (weld (weld (check ~.types-multi-import src-445 `tok-445 `tre-445) (check-module-types ~.types-multi-import ~[%tests %golden ~.types-multi-import %source %jibb] src-445 `typ-445 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-445-1]])) (check-module-trees ~.types-multi-import `mtre-445 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-445-1]]))
2833+ (weld (weld (check ~.types-multi-import src-448 `tok-448 `tre-448) (check-module-types ~.types-multi-import ~[%tests %golden ~.types-multi-import %source %jibb] src-448 `typ-448 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-448-1]])) (check-module-trees ~.types-multi-import `mtre-448 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-448-1]]))
28102834++ test-types-null-context
2811− (weld (check ~.types-null-context src-446 `tok-446 `tre-446) (check-types ~.types-null-context ~[%tests %golden ~.types-null-context %source %jibb] src-446 `typ-446))
2835+ (weld (check ~.types-null-context src-449 `tok-449 `tre-449) (check-types ~.types-null-context ~[%tests %golden ~.types-null-context %source %jibb] src-449 `typ-449))
28122836++ test-types-null-overlap
2813− (weld (check ~.types-null-overlap src-447 `tok-447 `tre-447) (check-types ~.types-null-overlap ~[%tests %golden ~.types-null-overlap %source %jibb] src-447 `typ-447))
2837+ (weld (check ~.types-null-overlap src-450 `tok-450 `tre-450) (check-types ~.types-null-overlap ~[%tests %golden ~.types-null-overlap %source %jibb] src-450 `typ-450))
28142838++ test-types-null-unresolved
2815− (weld (check ~.types-null-unresolved src-448 `tok-448 `tre-448) (check-types ~.types-null-unresolved ~[%tests %golden ~.types-null-unresolved %source %jibb] src-448 `typ-448))
2839+ (weld (check ~.types-null-unresolved src-451 `tok-451 `tre-451) (check-types ~.types-null-unresolved ~[%tests %golden ~.types-null-unresolved %source %jibb] src-451 `typ-451))
28162840++ test-types-partial-apply
2817− (weld (check ~.types-partial-apply src-449 `tok-449 `tre-449) (check-types ~.types-partial-apply ~[%tests %golden ~.types-partial-apply %source %jibb] src-449 `typ-449))
2841+ (weld (check ~.types-partial-apply src-452 `tok-452 `tre-452) (check-types ~.types-partial-apply ~[%tests %golden ~.types-partial-apply %source %jibb] src-452 `typ-452))
28182842++ test-types-partial-atom-alias
2819− (weld (check ~.types-partial-atom-alias src-450 `tok-450 `tre-450) (check-types ~.types-partial-atom-alias ~[%tests %golden ~.types-partial-atom-alias %source %jibb] src-450 `typ-450))
2843+ (weld (check ~.types-partial-atom-alias src-453 `tok-453 `tre-453) (check-types ~.types-partial-atom-alias ~[%tests %golden ~.types-partial-atom-alias %source %jibb] src-453 `typ-453))
28202844++ test-types-partial-atom-constraint
2821− (weld (check ~.types-partial-atom-constraint src-451 `tok-451 `tre-451) (check-types ~.types-partial-atom-constraint ~[%tests %golden ~.types-partial-atom-constraint %source %jibb] src-451 `typ-451))
2845+ (weld (check ~.types-partial-atom-constraint src-454 `tok-454 `tre-454) (check-types ~.types-partial-atom-constraint ~[%tests %golden ~.types-partial-atom-constraint %source %jibb] src-454 `typ-454))
28222846++ test-types-partial-atom-widening
2823− (weld (check ~.types-partial-atom-widening src-452 `tok-452 `tre-452) (check-types ~.types-partial-atom-widening ~[%tests %golden ~.types-partial-atom-widening %source %jibb] src-452 `typ-452))
2847+ (weld (check ~.types-partial-atom-widening src-455 `tok-455 `tre-455) (check-types ~.types-partial-atom-widening ~[%tests %golden ~.types-partial-atom-widening %source %jibb] src-455 `typ-455))
28242848++ test-types-partial-aura
2825− (weld (check ~.types-partial-aura src-453 `tok-453 `tre-453) (check-types ~.types-partial-aura ~[%tests %golden ~.types-partial-aura %source %jibb] src-453 `typ-453))
2849+ (weld (check ~.types-partial-aura src-456 `tok-456 `tre-456) (check-types ~.types-partial-aura ~[%tests %golden ~.types-partial-aura %source %jibb] src-456 `typ-456))
28262850++ test-types-partial-aura-family
2827− (weld (check ~.types-partial-aura-family src-454 `tok-454 `tre-454) (check-types ~.types-partial-aura-family ~[%tests %golden ~.types-partial-aura-family %source %jibb] src-454 `typ-454))
2851+ (weld (check ~.types-partial-aura-family src-457 `tok-457 `tre-457) (check-types ~.types-partial-aura-family ~[%tests %golden ~.types-partial-aura-family %source %jibb] src-457 `typ-457))
28282852++ test-types-partial-aura-generalization
2829− (weld (check ~.types-partial-aura-generalization src-455 `tok-455 `tre-455) (check-types ~.types-partial-aura-generalization ~[%tests %golden ~.types-partial-aura-generalization %source %jibb] src-455 `typ-455))
2853+ (weld (check ~.types-partial-aura-generalization src-458 `tok-458 `tre-458) (check-types ~.types-partial-aura-generalization ~[%tests %golden ~.types-partial-aura-generalization %source %jibb] src-458 `typ-458))
28302854++ test-types-partial-bare-atom
2831− (weld (check ~.types-partial-bare-atom src-456 `tok-456 `tre-456) (check-types ~.types-partial-bare-atom ~[%tests %golden ~.types-partial-bare-atom %source %jibb] src-456 `typ-456))
2855+ (weld (check ~.types-partial-bare-atom src-459 `tok-459 `tre-459) (check-types ~.types-partial-bare-atom ~[%tests %golden ~.types-partial-bare-atom %source %jibb] src-459 `typ-459))
28322856++ test-types-partial-branch-widening
2833− (weld (check ~.types-partial-branch-widening src-457 `tok-457 `tre-457) (check-types ~.types-partial-branch-widening ~[%tests %golden ~.types-partial-branch-widening %source %jibb] src-457 `typ-457))
2857+ (weld (check ~.types-partial-branch-widening src-460 `tok-460 `tre-460) (check-types ~.types-partial-branch-widening ~[%tests %golden ~.types-partial-branch-widening %source %jibb] src-460 `typ-460))
28342858++ test-types-partial-conflicting-sites
2835− (weld (check ~.types-partial-conflicting-sites src-458 `tok-458 `tre-458) (check-types ~.types-partial-conflicting-sites ~[%tests %golden ~.types-partial-conflicting-sites %source %jibb] src-458 `typ-458))
2859+ (weld (check ~.types-partial-conflicting-sites src-461 `tok-461 `tre-461) (check-types ~.types-partial-conflicting-sites ~[%tests %golden ~.types-partial-conflicting-sites %source %jibb] src-461 `typ-461))
28362860++ test-types-partial-decimal-default
2837− (weld (check ~.types-partial-decimal-default src-459 `tok-459 `tre-459) (check-types ~.types-partial-decimal-default ~[%tests %golden ~.types-partial-decimal-default %source %jibb] src-459 `typ-459))
2861+ (weld (check ~.types-partial-decimal-default src-462 `tok-462 `tre-462) (check-types ~.types-partial-decimal-default ~[%tests %golden ~.types-partial-decimal-default %source %jibb] src-462 `typ-462))
28382862++ test-types-partial-dependency-chain
2839− (weld (check ~.types-partial-dependency-chain src-460 `tok-460 `tre-460) (check-types ~.types-partial-dependency-chain ~[%tests %golden ~.types-partial-dependency-chain %source %jibb] src-460 `typ-460))
2863+ (weld (check ~.types-partial-dependency-chain src-463 `tok-463 `tre-463) (check-types ~.types-partial-dependency-chain ~[%tests %golden ~.types-partial-dependency-chain %source %jibb] src-463 `typ-463))
28402864++ test-types-partial-explicit-capital
2841− (weld (check ~.types-partial-explicit-capital src-461 `tok-461 `tre-461) (check-types ~.types-partial-explicit-capital ~[%tests %golden ~.types-partial-explicit-capital %source %jibb] src-461 `typ-461))
2865+ (weld (check ~.types-partial-explicit-capital src-464 `tok-464 `tre-464) (check-types ~.types-partial-explicit-capital ~[%tests %golden ~.types-partial-explicit-capital %source %jibb] src-464 `typ-464))
28422866++ test-types-partial-forward
2843− (weld (check ~.types-partial-forward src-462 `tok-462 `tre-462) (check-types ~.types-partial-forward ~[%tests %golden ~.types-partial-forward %source %jibb] src-462 `typ-462))
2867+ (weld (check ~.types-partial-forward src-465 `tok-465 `tre-465) (check-types ~.types-partial-forward ~[%tests %golden ~.types-partial-forward %source %jibb] src-465 `typ-465))
28442868++ test-types-partial-generalization
2845− (weld (check ~.types-partial-generalization src-463 `tok-463 `tre-463) (check-types ~.types-partial-generalization ~[%tests %golden ~.types-partial-generalization %source %jibb] src-463 `typ-463))
2869+ (weld (check ~.types-partial-generalization src-466 `tok-466 `tre-466) (check-types ~.types-partial-generalization ~[%tests %golden ~.types-partial-generalization %source %jibb] src-466 `typ-466))
28462870++ test-types-partial-identity
2847− (weld (check ~.types-partial-identity src-464 `tok-464 `tre-464) (check-types ~.types-partial-identity ~[%tests %golden ~.types-partial-identity %source %jibb] src-464 `typ-464))
2871+ (weld (check ~.types-partial-identity src-467 `tok-467 `tre-467) (check-types ~.types-partial-identity ~[%tests %golden ~.types-partial-identity %source %jibb] src-467 `typ-467))
28482872++ test-types-partial-independent-atoms
2849− (weld (check ~.types-partial-independent-atoms src-465 `tok-465 `tre-465) (check-types ~.types-partial-independent-atoms ~[%tests %golden ~.types-partial-independent-atoms %source %jibb] src-465 `typ-465))
2873+ (weld (check ~.types-partial-independent-atoms src-468 `tok-468 `tre-468) (check-types ~.types-partial-independent-atoms ~[%tests %golden ~.types-partial-independent-atoms %source %jibb] src-468 `typ-468))
28502874++ test-types-partial-local-molds
2851− (weld (check ~.types-partial-local-molds src-466 `tok-466 `tre-466) (check-types ~.types-partial-local-molds ~[%tests %golden ~.types-partial-local-molds %source %jibb] src-466 `typ-466))
2875+ (weld (check ~.types-partial-local-molds src-469 `tok-469 `tre-469) (check-types ~.types-partial-local-molds ~[%tests %golden ~.types-partial-local-molds %source %jibb] src-469 `typ-469))
28522876++ test-types-partial-locals
2853− (weld (check ~.types-partial-locals src-467 `tok-467 `tre-467) (check-types ~.types-partial-locals ~[%tests %golden ~.types-partial-locals %source %jibb] src-467 `typ-467))
2877+ (weld (check ~.types-partial-locals src-470 `tok-470 `tre-470) (check-types ~.types-partial-locals ~[%tests %golden ~.types-partial-locals %source %jibb] src-470 `typ-470))
28542878++ test-types-partial-many-atom-constraints
2855− (weld (check ~.types-partial-many-atom-constraints src-468 `tok-468 `tre-468) (check-types ~.types-partial-many-atom-constraints ~[%tests %golden ~.types-partial-many-atom-constraints %source %jibb] src-468 `typ-468))
2879+ (weld (check ~.types-partial-many-atom-constraints src-471 `tok-471 `tre-471) (check-types ~.types-partial-many-atom-constraints ~[%tests %golden ~.types-partial-many-atom-constraints %source %jibb] src-471 `typ-471))
28562880++ test-types-partial-mold-bare-aura
2857− (weld (check ~.types-partial-mold-bare-aura src-469 `tok-469 `tre-469) (check-types ~.types-partial-mold-bare-aura ~[%tests %golden ~.types-partial-mold-bare-aura %source %jibb] src-469 `typ-469))
2881+ (weld (check ~.types-partial-mold-bare-aura src-472 `tok-472 `tre-472) (check-types ~.types-partial-mold-bare-aura ~[%tests %golden ~.types-partial-mold-bare-aura %source %jibb] src-472 `typ-472))
28582882++ test-types-partial-mold-composite
2859− (weld (check ~.types-partial-mold-composite src-470 `tok-470 `tre-470) (check-types ~.types-partial-mold-composite ~[%tests %golden ~.types-partial-mold-composite %source %jibb] src-470 `typ-470))
2883+ (weld (check ~.types-partial-mold-composite src-473 `tok-473 `tre-473) (check-types ~.types-partial-mold-composite ~[%tests %golden ~.types-partial-mold-composite %source %jibb] src-473 `typ-473))
28602884++ test-types-partial-mold-forward
2861− (weld (check ~.types-partial-mold-forward src-471 `tok-471 `tre-471) (check-types ~.types-partial-mold-forward ~[%tests %golden ~.types-partial-mold-forward %source %jibb] src-471 `typ-471))
2885+ (weld (check ~.types-partial-mold-forward src-474 `tok-474 `tre-474) (check-types ~.types-partial-mold-forward ~[%tests %golden ~.types-partial-mold-forward %source %jibb] src-474 `typ-474))
28622886++ test-types-partial-mold-recursive
2863− (weld (check ~.types-partial-mold-recursive src-472 `tok-472 `tre-472) (check-types ~.types-partial-mold-recursive ~[%tests %golden ~.types-partial-mold-recursive %source %jibb] src-472 `typ-472))
2887+ (weld (check ~.types-partial-mold-recursive src-475 `tok-475 `tre-475) (check-types ~.types-partial-mold-recursive ~[%tests %golden ~.types-partial-mold-recursive %source %jibb] src-475 `typ-475))
28642888++ test-types-partial-occurs
2865− (weld (check ~.types-partial-occurs src-473 `tok-473 `tre-473) (check-types ~.types-partial-occurs ~[%tests %golden ~.types-partial-occurs %source %jibb] src-473 `typ-473))
2889+ (weld (check ~.types-partial-occurs src-476 `tok-476 `tre-476) (check-types ~.types-partial-occurs ~[%tests %golden ~.types-partial-occurs %source %jibb] src-476 `typ-476))
28662890++ test-types-partial-projection
2867− (weld (check ~.types-partial-projection src-474 `tok-474 `tre-474) (check-types ~.types-partial-projection ~[%tests %golden ~.types-partial-projection %source %jibb] src-474 `typ-474))
2891+ (weld (check ~.types-partial-projection src-477 `tok-477 `tre-477) (check-types ~.types-partial-projection ~[%tests %golden ~.types-partial-projection %source %jibb] src-477 `typ-477))
28682892++ test-types-partial-shadow-global
2869− (weld (check ~.types-partial-shadow-global src-475 `tok-475 `tre-475) (check-types ~.types-partial-shadow-global ~[%tests %golden ~.types-partial-shadow-global %source %jibb] src-475 `typ-475))
2893+ (weld (check ~.types-partial-shadow-global src-478 `tok-478 `tre-478) (check-types ~.types-partial-shadow-global ~[%tests %golden ~.types-partial-shadow-global %source %jibb] src-478 `typ-478))
28702894++ test-types-partial-shared-tvar
2871− (weld (check ~.types-partial-shared-tvar src-476 `tok-476 `tre-476) (check-types ~.types-partial-shared-tvar ~[%tests %golden ~.types-partial-shared-tvar %source %jibb] src-476 `typ-476))
2895+ (weld (check ~.types-partial-shared-tvar src-479 `tok-479 `tre-479) (check-types ~.types-partial-shared-tvar ~[%tests %golden ~.types-partial-shared-tvar %source %jibb] src-479 `typ-479))
28722896++ test-types-partial-union-cases
2873− (weld (check ~.types-partial-union-cases src-477 `tok-477 `tre-477) (check-types ~.types-partial-union-cases ~[%tests %golden ~.types-partial-union-cases %source %jibb] src-477 `typ-477))
2897+ (weld (check ~.types-partial-union-cases src-480 `tok-480 `tre-480) (check-types ~.types-partial-union-cases ~[%tests %golden ~.types-partial-union-cases %source %jibb] src-480 `typ-480))
28742898++ test-types-partial-union-edges
2875− (weld (check ~.types-partial-union-edges src-478 `tok-478 `tre-478) (check-types ~.types-partial-union-edges ~[%tests %golden ~.types-partial-union-edges %source %jibb] src-478 `typ-478))
2899+ (weld (check ~.types-partial-union-edges src-481 `tok-481 `tre-481) (check-types ~.types-partial-union-edges ~[%tests %golden ~.types-partial-union-edges %source %jibb] src-481 `typ-481))
28762900++ test-types-partial-unresolved-tag
2877− (weld (check ~.types-partial-unresolved-tag src-479 `tok-479 `tre-479) (check-types ~.types-partial-unresolved-tag ~[%tests %golden ~.types-partial-unresolved-tag %source %jibb] src-479 `typ-479))
2901+ (weld (check ~.types-partial-unresolved-tag src-482 `tok-482 `tre-482) (check-types ~.types-partial-unresolved-tag ~[%tests %golden ~.types-partial-unresolved-tag %source %jibb] src-482 `typ-482))
28782902++ test-types-prelude-direct
2879− (weld (check ~.types-prelude-direct src-480 `tok-480 `tre-480) (check-module-types ~.types-prelude-direct ~[%tests %golden ~.types-prelude-direct %source %jibb] src-480 `typ-480 ~ ~ ~))
2903+ (weld (check ~.types-prelude-direct src-483 `tok-483 `tre-483) (check-module-types ~.types-prelude-direct ~[%tests %golden ~.types-prelude-direct %source %jibb] src-483 `typ-483 ~ ~ ~))
28802904++ test-types-prelude-interface
2881− (weld (weld (check ~.types-prelude-interface src-481 `tok-481 `tre-481) (check-module-types ~.types-prelude-interface ~[%tests %golden ~.types-prelude-interface %source %jibb] src-481 `typ-481 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-481-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-481-2]])) (check-module-trees ~.types-prelude-interface `mtre-481 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-481-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-481-2]]))
2905+ (weld (weld (check ~.types-prelude-interface src-484 `tok-484 `tre-484) (check-module-types ~.types-prelude-interface ~[%tests %golden ~.types-prelude-interface %source %jibb] src-484 `typ-484 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-484-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-484-2]])) (check-module-trees ~.types-prelude-interface `mtre-484 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-484-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-484-2]]))
28822906++ test-types-prelude-list-functions
2883− (weld (weld (check ~.types-prelude-list-functions src-482 `tok-482 `tre-482) (check-module-types ~.types-prelude-list-functions ~[%tests %golden ~.types-prelude-list-functions %source %jibb] src-482 `typ-482 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-482-1]])) (check-module-trees ~.types-prelude-list-functions `mtre-482 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-482-1]]))
2907+ (weld (weld (check ~.types-prelude-list-functions src-485 `tok-485 `tre-485) (check-module-types ~.types-prelude-list-functions ~[%tests %golden ~.types-prelude-list-functions %source %jibb] src-485 `typ-485 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-485-1]])) (check-module-trees ~.types-prelude-list-functions `mtre-485 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-485-1]]))
2908+++ test-types-prelude-unit-helpers
2909+ (weld (check ~.types-prelude-unit-helpers src-486 `tok-486 `tre-486) (check-module-types ~.types-prelude-unit-helpers ~[%tests %golden ~.types-prelude-unit-helpers %source %jibb] src-486 `typ-486 ~ ~ ~))
28842910++ test-types-record-bound-variable
2885− (weld (check ~.types-record-bound-variable src-483 `tok-483 `tre-483) (check-types ~.types-record-bound-variable ~[%tests %golden ~.types-record-bound-variable %source %jibb] src-483 `typ-483))
2911+ (weld (check ~.types-record-bound-variable src-487 `tok-487 `tre-487) (check-types ~.types-record-bound-variable ~[%tests %golden ~.types-record-bound-variable %source %jibb] src-487 `typ-487))
28862912++ test-types-record-cast-context
2887− (weld (check ~.types-record-cast-context src-484 `tok-484 `tre-484) (check-module-types ~.types-record-cast-context ~[%tests %golden ~.types-record-cast-context %source %jibb] src-484 `typ-484 ~ ~ ~))
2913+ (weld (check ~.types-record-cast-context src-488 `tok-488 `tre-488) (check-module-types ~.types-record-cast-context ~[%tests %golden ~.types-record-cast-context %source %jibb] src-488 `typ-488 ~ ~ ~))
28882914++ test-types-record-change
2889− (weld (check ~.types-record-change src-485 `tok-485 `tre-485) (check-module-types ~.types-record-change ~[%tests %golden ~.types-record-change %source %jibb] src-485 `typ-485 ~ ~ ~))
2915+ (weld (check ~.types-record-change src-489 `tok-489 `tre-489) (check-module-types ~.types-record-change ~[%tests %golden ~.types-record-change %source %jibb] src-489 `typ-489 ~ ~ ~))
28902916++ test-types-record-change-generic
2891− (weld (check ~.types-record-change-generic src-486 `tok-486 `tre-486) (check-module-types ~.types-record-change-generic ~[%tests %golden ~.types-record-change-generic %source %jibb] src-486 `typ-486 ~ ~ ~))
2917+ (weld (check ~.types-record-change-generic src-490 `tok-490 `tre-490) (check-module-types ~.types-record-change-generic ~[%tests %golden ~.types-record-change-generic %source %jibb] src-490 `typ-490 ~ ~ ~))
28922918++ test-types-record-faces
2893− (weld (check ~.types-record-faces src-487 `tok-487 `tre-487) (check-types ~.types-record-faces ~[%tests %golden ~.types-record-faces %source %jibb] src-487 `typ-487))
2919+ (weld (check ~.types-record-faces src-491 `tok-491 `tre-491) (check-types ~.types-record-faces ~[%tests %golden ~.types-record-faces %source %jibb] src-491 `typ-491))
28942920++ test-types-record-import
2895− (weld (weld (check ~.types-record-import src-488 `tok-488 `tre-488) (check-module-types ~.types-record-import ~[%tests %golden ~.types-record-import %source %jibb] src-488 `typ-488 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-488-1]])) (check-module-trees ~.types-record-import `mtre-488 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-488-1]]))
2921+ (weld (weld (check ~.types-record-import src-492 `tok-492 `tre-492) (check-module-types ~.types-record-import ~[%tests %golden ~.types-record-import %source %jibb] src-492 `typ-492 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-492-1]])) (check-module-trees ~.types-record-import `mtre-492 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-492-1]]))
28962922++ test-types-record-local-scheme
2897− (weld (check ~.types-record-local-scheme src-489 `tok-489 `tre-489) (check-types ~.types-record-local-scheme ~[%tests %golden ~.types-record-local-scheme %source %jibb] src-489 `typ-489))
2923+ (weld (check ~.types-record-local-scheme src-493 `tok-493 `tre-493) (check-types ~.types-record-local-scheme ~[%tests %golden ~.types-record-local-scheme %source %jibb] src-493 `typ-493))
28982924++ test-types-record-nested
2899− (weld (check ~.types-record-nested src-490 `tok-490 `tre-490) (check-types ~.types-record-nested ~[%tests %golden ~.types-record-nested %source %jibb] src-490 `typ-490))
2925+ (weld (check ~.types-record-nested src-494 `tok-494 `tre-494) (check-types ~.types-record-nested ~[%tests %golden ~.types-record-nested %source %jibb] src-494 `typ-494))
29002926++ test-types-record-to-tuple
2901− (weld (check ~.types-record-to-tuple src-491 `tok-491 `tre-491) (check-types ~.types-record-to-tuple ~[%tests %golden ~.types-record-to-tuple %source %jibb] src-491 `typ-491))
2927+ (weld (check ~.types-record-to-tuple src-495 `tok-495 `tre-495) (check-types ~.types-record-to-tuple ~[%tests %golden ~.types-record-to-tuple %source %jibb] src-495 `typ-495))
29022928++ test-types-recursion-scc-failures
2903− (weld (check ~.types-recursion-scc-failures src-492 `tok-492 `tre-492) (check-module-types ~.types-recursion-scc-failures ~[%tests %golden ~.types-recursion-scc-failures %source %jibb] src-492 `typ-492 ~ ~ ~))
2929+ (weld (check ~.types-recursion-scc-failures src-496 `tok-496 `tre-496) (check-module-types ~.types-recursion-scc-failures ~[%tests %golden ~.types-recursion-scc-failures %source %jibb] src-496 `typ-496 ~ ~ ~))
29042930++ test-types-recursion-scc-groups
2905− (weld (check ~.types-recursion-scc-groups src-493 `tok-493 `tre-493) (check-module-types ~.types-recursion-scc-groups ~[%tests %golden ~.types-recursion-scc-groups %source %jibb] src-493 `typ-493 ~ ~ ~))
2931+ (weld (check ~.types-recursion-scc-groups src-497 `tok-497 `tre-497) (check-module-types ~.types-recursion-scc-groups ~[%tests %golden ~.types-recursion-scc-groups %source %jibb] src-497 `typ-497 ~ ~ ~))
29062932++ test-types-recursion-scc-import
2907− (weld (weld (check ~.types-recursion-scc-import src-494 `tok-494 `tre-494) (check-module-types ~.types-recursion-scc-import ~[%tests %golden ~.types-recursion-scc-import %source %jibb] src-494 `typ-494 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-494-1]])) (check-module-trees ~.types-recursion-scc-import `mtre-494 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-494-1]]))
2933+ (weld (weld (check ~.types-recursion-scc-import src-498 `tok-498 `tre-498) (check-module-types ~.types-recursion-scc-import ~[%tests %golden ~.types-recursion-scc-import %source %jibb] src-498 `typ-498 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-498-1]])) (check-module-trees ~.types-recursion-scc-import `mtre-498 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-498-1]]))
29082934++ test-types-recursion-scc-import-bad
2909− (weld (weld (check ~.types-recursion-scc-import-bad src-495 `tok-495 `tre-495) (check-module-types ~.types-recursion-scc-import-bad ~[%tests %golden ~.types-recursion-scc-import-bad %source %jibb] src-495 `typ-495 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-495-1]])) (check-module-trees ~.types-recursion-scc-import-bad `mtre-495 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-495-1]]))
2935+ (weld (weld (check ~.types-recursion-scc-import-bad src-499 `tok-499 `tre-499) (check-module-types ~.types-recursion-scc-import-bad ~[%tests %golden ~.types-recursion-scc-import-bad %source %jibb] src-499 `typ-499 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-499-1]])) (check-module-trees ~.types-recursion-scc-import-bad `mtre-499 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-499-1]]))
29102936++ test-types-recursion-scc-local
2911− (weld (check ~.types-recursion-scc-local src-496 `tok-496 `tre-496) (check-module-types ~.types-recursion-scc-local ~[%tests %golden ~.types-recursion-scc-local %source %jibb] src-496 `typ-496 ~ ~ ~))
2937+ (weld (check ~.types-recursion-scc-local src-500 `tok-500 `tre-500) (check-module-types ~.types-recursion-scc-local ~[%tests %golden ~.types-recursion-scc-local %source %jibb] src-500 `typ-500 ~ ~ ~))
29122938++ test-types-recursion-scc-order
2913− (weld (check ~.types-recursion-scc-order src-497 `tok-497 `tre-497) (check-module-types ~.types-recursion-scc-order ~[%tests %golden ~.types-recursion-scc-order %source %jibb] src-497 `typ-497 ~ ~ ~))
2939+ (weld (check ~.types-recursion-scc-order src-501 `tok-501 `tre-501) (check-module-types ~.types-recursion-scc-order ~[%tests %golden ~.types-recursion-scc-order %source %jibb] src-501 `typ-501 ~ ~ ~))
29142940++ test-types-recursion-scc-shadow
2915− (weld (check ~.types-recursion-scc-shadow src-498 `tok-498 `tre-498) (check-module-types ~.types-recursion-scc-shadow ~[%tests %golden ~.types-recursion-scc-shadow %source %jibb] src-498 `typ-498 ~ ~ ~))
2941+ (weld (check ~.types-recursion-scc-shadow src-502 `tok-502 `tre-502) (check-module-types ~.types-recursion-scc-shadow ~[%tests %golden ~.types-recursion-scc-shadow %source %jibb] src-502 `typ-502 ~ ~ ~))
29162942++ test-types-recursive-branch
2917− (weld (check ~.types-recursive-branch src-499 `tok-499 `tre-499) (check-module-types ~.types-recursive-branch ~[%tests %golden ~.types-recursive-branch %source %jibb] src-499 `typ-499 ~ ~ ~))
2943+ (weld (check ~.types-recursive-branch src-503 `tok-503 `tre-503) (check-module-types ~.types-recursive-branch ~[%tests %golden ~.types-recursive-branch %source %jibb] src-503 `typ-503 ~ ~ ~))
29182944++ test-types-recursive-gate
2919− (weld (check ~.types-recursive-gate src-500 `tok-500 `tre-500) (check-types ~.types-recursive-gate ~[%tests %golden ~.types-recursive-gate %source %jibb] src-500 `typ-500))
2945+ (weld (check ~.types-recursive-gate src-504 `tok-504 `tre-504) (check-types ~.types-recursive-gate ~[%tests %golden ~.types-recursive-gate %source %jibb] src-504 `typ-504))
29202946++ test-types-recursive-sample
2921− (weld (check ~.types-recursive-sample src-501 `tok-501 `tre-501) (check-types ~.types-recursive-sample ~[%tests %golden ~.types-recursive-sample %source %jibb] src-501 `typ-501))
2947+ (weld (check ~.types-recursive-sample src-505 `tok-505 `tre-505) (check-types ~.types-recursive-sample ~[%tests %golden ~.types-recursive-sample %source %jibb] src-505 `typ-505))
29222948++ test-types-string-interpolation
2923− (weld (check ~.types-string-interpolation src-502 `tok-502 `tre-502) (check-module-types ~.types-string-interpolation ~[%tests %golden ~.types-string-interpolation %source %jibb] src-502 `typ-502 ~ ~ ~))
2949+ (weld (check ~.types-string-interpolation src-506 `tok-506 `tre-506) (check-module-types ~.types-string-interpolation ~[%tests %golden ~.types-string-interpolation %source %jibb] src-506 `typ-506 ~ ~ ~))
29242950++ test-types-tuple-context
2925− (weld (check ~.types-tuple-context src-503 `tok-503 `tre-503) (check-module-types ~.types-tuple-context ~[%tests %golden ~.types-tuple-context %source %jibb] src-503 `typ-503 ~ ~ ~))
2951+ (weld (check ~.types-tuple-context src-507 `tok-507 `tre-507) (check-module-types ~.types-tuple-context ~[%tests %golden ~.types-tuple-context %source %jibb] src-507 `typ-507 ~ ~ ~))
29262952++ test-types-tuple-context-nested
2927− (weld (check ~.types-tuple-context-nested src-504 `tok-504 `tre-504) (check-module-types ~.types-tuple-context-nested ~[%tests %golden ~.types-tuple-context-nested %source %jibb] src-504 `typ-504 ~ ~ ~))
2953+ (weld (check ~.types-tuple-context-nested src-508 `tok-508 `tre-508) (check-module-types ~.types-tuple-context-nested ~[%tests %golden ~.types-tuple-context-nested %source %jibb] src-508 `typ-508 ~ ~ ~))
29282954++ test-types-union-alias
2929− (weld (check ~.types-union-alias src-505 `tok-505 `tre-505) (check-types ~.types-union-alias ~[%tests %golden ~.types-union-alias %source %jibb] src-505 `typ-505))
2955+ (weld (check ~.types-union-alias src-509 `tok-509 `tre-509) (check-types ~.types-union-alias ~[%tests %golden ~.types-union-alias %source %jibb] src-509 `typ-509))
29302956++ test-types-union-branch-context
2931− (weld (check ~.types-union-branch-context src-506 `tok-506 `tre-506) (check-types ~.types-union-branch-context ~[%tests %golden ~.types-union-branch-context %source %jibb] src-506 `typ-506))
2957+ (weld (check ~.types-union-branch-context src-510 `tok-510 `tre-510) (check-types ~.types-union-branch-context ~[%tests %golden ~.types-union-branch-context %source %jibb] src-510 `typ-510))
29322958++ test-types-union-branch-pending
2933− (weld (check ~.types-union-branch-pending src-507 `tok-507 `tre-507) (check-types ~.types-union-branch-pending ~[%tests %golden ~.types-union-branch-pending %source %jibb] src-507 `typ-507))
2959+ (weld (check ~.types-union-branch-pending src-511 `tok-511 `tre-511) (check-types ~.types-union-branch-pending ~[%tests %golden ~.types-union-branch-pending %source %jibb] src-511 `typ-511))
29342960++ test-types-union-constructor-shape
2935− (weld (check ~.types-union-constructor-shape src-508 `tok-508 `tre-508) (check-types ~.types-union-constructor-shape ~[%tests %golden ~.types-union-constructor-shape %source %jibb] src-508 `typ-508))
2961+ (weld (check ~.types-union-constructor-shape src-512 `tok-512 `tre-512) (check-types ~.types-union-constructor-shape ~[%tests %golden ~.types-union-constructor-shape %source %jibb] src-512 `typ-512))
29362962++ test-types-union-context-flow
2937− (weld (check ~.types-union-context-flow src-509 `tok-509 `tre-509) (check-types ~.types-union-context-flow ~[%tests %golden ~.types-union-context-flow %source %jibb] src-509 `typ-509))
2963+ (weld (check ~.types-union-context-flow src-513 `tok-513 `tre-513) (check-types ~.types-union-context-flow ~[%tests %golden ~.types-union-context-flow %source %jibb] src-513 `typ-513))
29382964++ test-types-union-finite
2939− (weld (check ~.types-union-finite src-510 `tok-510 `tre-510) (check-module-types ~.types-union-finite ~[%tests %golden ~.types-union-finite %source %jibb] src-510 `typ-510 ~ ~ ~))
2965+ (weld (check ~.types-union-finite src-514 `tok-514 `tre-514) (check-module-types ~.types-union-finite ~[%tests %golden ~.types-union-finite %source %jibb] src-514 `typ-514 ~ ~ ~))
29402966++ test-types-union-finite-generic
2941− (weld (check ~.types-union-finite-generic src-511 `tok-511 `tre-511) (check-module-types ~.types-union-finite-generic ~[%tests %golden ~.types-union-finite-generic %source %jibb] src-511 `typ-511 ~ ~ ~))
2967+ (weld (check ~.types-union-finite-generic src-515 `tok-515 `tre-515) (check-module-types ~.types-union-finite-generic ~[%tests %golden ~.types-union-finite-generic %source %jibb] src-515 `typ-515 ~ ~ ~))
29422968++ test-types-union-finite-limit
2943− (weld (check ~.types-union-finite-limit src-512 `tok-512 `tre-512) (check-module-types ~.types-union-finite-limit ~[%tests %golden ~.types-union-finite-limit %source %jibb] src-512 `typ-512 ~ ~ ~))
2969+ (weld (check ~.types-union-finite-limit src-516 `tok-516 `tre-516) (check-module-types ~.types-union-finite-limit ~[%tests %golden ~.types-union-finite-limit %source %jibb] src-516 `typ-516 ~ ~ ~))
29442970++ test-types-union-import
2945− (weld (weld (check ~.types-union-import src-513 `tok-513 `tre-513) (check-module-types ~.types-union-import ~[%tests %golden ~.types-union-import %source %jibb] src-513 `typ-513 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-513-1]])) (check-module-trees ~.types-union-import `mtre-513 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-513-1]]))
2971+ (weld (weld (check ~.types-union-import src-517 `tok-517 `tre-517) (check-module-types ~.types-union-import ~[%tests %golden ~.types-union-import %source %jibb] src-517 `typ-517 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-517-1]])) (check-module-trees ~.types-union-import `mtre-517 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-517-1]]))
29462972++ test-types-union-local-pending
2947− (weld (check ~.types-union-local-pending src-514 `tok-514 `tre-514) (check-types ~.types-union-local-pending ~[%tests %golden ~.types-union-local-pending %source %jibb] src-514 `typ-514))
2973+ (weld (check ~.types-union-local-pending src-518 `tok-518 `tre-518) (check-types ~.types-union-local-pending ~[%tests %golden ~.types-union-local-pending %source %jibb] src-518 `typ-518))
29482974++ test-types-union-overlap
2949− (weld (check ~.types-union-overlap src-515 `tok-515 `tre-515) (check-types ~.types-union-overlap ~[%tests %golden ~.types-union-overlap %source %jibb] src-515 `typ-515))
2975+ (weld (check ~.types-union-overlap src-519 `tok-519 `tre-519) (check-types ~.types-union-overlap ~[%tests %golden ~.types-union-overlap %source %jibb] src-519 `typ-519))
29502976++ test-types-union-overlap-nested
2951− (weld (check ~.types-union-overlap-nested src-516 `tok-516 `tre-516) (check-types ~.types-union-overlap-nested ~[%tests %golden ~.types-union-overlap-nested %source %jibb] src-516 `typ-516))
2977+ (weld (check ~.types-union-overlap-nested src-520 `tok-520 `tre-520) (check-types ~.types-union-overlap-nested ~[%tests %golden ~.types-union-overlap-nested %source %jibb] src-520 `typ-520))
29522978++ test-types-union-patterns
2953− (weld (check ~.types-union-patterns src-517 `tok-517 `tre-517) (check-module-types ~.types-union-patterns ~[%tests %golden ~.types-union-patterns %source %jibb] src-517 `typ-517 ~ ~ ~))
2979+ (weld (check ~.types-union-patterns src-521 `tok-521 `tre-521) (check-module-types ~.types-union-patterns ~[%tests %golden ~.types-union-patterns %source %jibb] src-521 `typ-521 ~ ~ ~))
29542980++ test-types-union-patterns-generic
2955− (weld (check ~.types-union-patterns-generic src-518 `tok-518 `tre-518) (check-module-types ~.types-union-patterns-generic ~[%tests %golden ~.types-union-patterns-generic %source %jibb] src-518 `typ-518 ~ ~ ~))
2981+ (weld (check ~.types-union-patterns-generic src-522 `tok-522 `tre-522) (check-module-types ~.types-union-patterns-generic ~[%tests %golden ~.types-union-patterns-generic %source %jibb] src-522 `typ-522 ~ ~ ~))
29562982++ test-types-union-patterns-import
2957− (weld (weld (check ~.types-union-patterns-import src-519 `tok-519 `tre-519) (check-module-types ~.types-union-patterns-import ~[%tests %golden ~.types-union-patterns-import %source %jibb] src-519 `typ-519 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-519-1]])) (check-module-trees ~.types-union-patterns-import `mtre-519 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-519-1]]))
2983+ (weld (weld (check ~.types-union-patterns-import src-523 `tok-523 `tre-523) (check-module-types ~.types-union-patterns-import ~[%tests %golden ~.types-union-patterns-import %source %jibb] src-523 `typ-523 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-523-1]])) (check-module-trees ~.types-union-patterns-import `mtre-523 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-523-1]]))
29582984++ test-types-union-phantom-generic
2959− (weld (check ~.types-union-phantom-generic src-520 `tok-520 `tre-520) (check-types ~.types-union-phantom-generic ~[%tests %golden ~.types-union-phantom-generic %source %jibb] src-520 `typ-520))
2985+ (weld (check ~.types-union-phantom-generic src-524 `tok-524 `tre-524) (check-types ~.types-union-phantom-generic ~[%tests %golden ~.types-union-phantom-generic %source %jibb] src-524 `typ-524))
29602986++ test-types-union-print-cross-namespace
2961− (weld (weld (check ~.types-union-print-cross-namespace src-521 `tok-521 `tre-521) (check-module-types ~.types-union-print-cross-namespace ~[%tests %golden ~.types-union-print-cross-namespace %source %jibb] src-521 `typ-521 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-521-1]])) (check-module-trees ~.types-union-print-cross-namespace `mtre-521 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-521-1]]))
2987+ (weld (weld (check ~.types-union-print-cross-namespace src-525 `tok-525 `tre-525) (check-module-types ~.types-union-print-cross-namespace ~[%tests %golden ~.types-union-print-cross-namespace %source %jibb] src-525 `typ-525 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-525-1]])) (check-module-trees ~.types-union-print-cross-namespace `mtre-525 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-525-1]]))
29622988++ test-types-union-print-distinct
2963− (weld (weld (check ~.types-union-print-distinct src-522 `tok-522 `tre-522) (check-module-types ~.types-union-print-distinct ~[%tests %golden ~.types-union-print-distinct %source %jibb] src-522 `typ-522 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-522-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-522-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-522-3]])) (check-module-trees ~.types-union-print-distinct `mtre-522 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-522-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-522-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-522-3]]))
2989+ (weld (weld (check ~.types-union-print-distinct src-526 `tok-526 `tre-526) (check-module-types ~.types-union-print-distinct ~[%tests %golden ~.types-union-print-distinct %source %jibb] src-526 `typ-526 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-526-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-526-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-526-3]])) (check-module-trees ~.types-union-print-distinct `mtre-526 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-526-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-526-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-526-3]]))
29642990++ test-types-union-print-escape
2965− (weld (check ~.types-union-print-escape src-523 `tok-523 `tre-523) (check-types ~.types-union-print-escape ~[%tests %golden ~.types-union-print-escape %source %jibb] src-523 `typ-523))
2991+ (weld (check ~.types-union-print-escape src-527 `tok-527 `tre-527) (check-types ~.types-union-print-escape ~[%tests %golden ~.types-union-print-escape %source %jibb] src-527 `typ-527))
29662992++ test-types-union-print-local
2967− (weld (check ~.types-union-print-local src-524 `tok-524 `tre-524) (check-types ~.types-union-print-local ~[%tests %golden ~.types-union-print-local %source %jibb] src-524 `typ-524))
2993+ (weld (check ~.types-union-print-local src-528 `tok-528 `tre-528) (check-types ~.types-union-print-local ~[%tests %golden ~.types-union-print-local %source %jibb] src-528 `typ-528))
29682994++ test-types-union-print-nested
2969− (weld (check ~.types-union-print-nested src-525 `tok-525 `tre-525) (check-types ~.types-union-print-nested ~[%tests %golden ~.types-union-print-nested %source %jibb] src-525 `typ-525))
2995+ (weld (check ~.types-union-print-nested src-529 `tok-529 `tre-529) (check-types ~.types-union-print-nested ~[%tests %golden ~.types-union-print-nested %source %jibb] src-529 `typ-529))
29702996++ test-types-union-print-same-origin
2971− (weld (weld (check ~.types-union-print-same-origin src-526 `tok-526 `tre-526) (check-module-types ~.types-union-print-same-origin ~[%tests %golden ~.types-union-print-same-origin %source %jibb] src-526 `typ-526 ~ ~ ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-526-1]])) (check-module-trees ~.types-union-print-same-origin `mtre-526 ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-526-1]]))
2997+ (weld (weld (check ~.types-union-print-same-origin src-530 `tok-530 `tre-530) (check-module-types ~.types-union-print-same-origin ~[%tests %golden ~.types-union-print-same-origin %source %jibb] src-530 `typ-530 ~ ~ ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-530-1]])) (check-module-trees ~.types-union-print-same-origin `mtre-530 ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-530-1]]))
29722998++ test-types-union-print-transitive
2973− (weld (weld (check ~.types-union-print-transitive src-527 `tok-527 `tre-527) (check-module-types ~.types-union-print-transitive ~[%tests %golden ~.types-union-print-transitive %source %jibb] src-527 `typ-527 ~ ~ ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-527-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-527-2]])) (check-module-trees ~.types-union-print-transitive `mtre-527 ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-527-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-527-2]]))
2999+ (weld (weld (check ~.types-union-print-transitive src-531 `tok-531 `tre-531) (check-module-types ~.types-union-print-transitive ~[%tests %golden ~.types-union-print-transitive %source %jibb] src-531 `typ-531 ~ ~ ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-531-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-531-2]])) (check-module-trees ~.types-union-print-transitive `mtre-531 ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-531-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-531-2]]))
29743000++ test-types-union-singleton
2975− (weld (check ~.types-union-singleton src-528 `tok-528 `tre-528) (check-types ~.types-union-singleton ~[%tests %golden ~.types-union-singleton %source %jibb] src-528 `typ-528))
3001+ (weld (check ~.types-union-singleton src-532 `tok-532 `tre-532) (check-types ~.types-union-singleton ~[%tests %golden ~.types-union-singleton %source %jibb] src-532 `typ-532))
29763002++ test-types-union-tag-atoms
2977− (weld (check ~.types-union-tag-atoms src-529 `tok-529 `tre-529) (check-types ~.types-union-tag-atoms ~[%tests %golden ~.types-union-tag-atoms %source %jibb] src-529 `typ-529))
3003+ (weld (check ~.types-union-tag-atoms src-533 `tok-533 `tre-533) (check-types ~.types-union-tag-atoms ~[%tests %golden ~.types-union-tag-atoms %source %jibb] src-533 `typ-533))
29783004++ test-types-union-tags
2979− (weld (check ~.types-union-tags src-530 `tok-530 `tre-530) (check-types ~.types-union-tags ~[%tests %golden ~.types-union-tags %source %jibb] src-530 `typ-530))
3005+ (weld (check ~.types-union-tags src-534 `tok-534 `tre-534) (check-types ~.types-union-tags ~[%tests %golden ~.types-union-tags %source %jibb] src-534 `typ-534))
29803006++ test-types-union-unresolved
2981− (weld (check ~.types-union-unresolved src-531 `tok-531 `tre-531) (check-types ~.types-union-unresolved ~[%tests %golden ~.types-union-unresolved %source %jibb] src-531 `typ-531))
3007+ (weld (check ~.types-union-unresolved src-535 `tok-535 `tre-535) (check-types ~.types-union-unresolved ~[%tests %golden ~.types-union-unresolved %source %jibb] src-535 `typ-535))
29823008++ test-types-union-unresolved-flow
2983− (weld (check ~.types-union-unresolved-flow src-532 `tok-532 `tre-532) (check-types ~.types-union-unresolved-flow ~[%tests %golden ~.types-union-unresolved-flow %source %jibb] src-532 `typ-532))
3009+ (weld (check ~.types-union-unresolved-flow src-536 `tok-536 `tre-536) (check-types ~.types-union-unresolved-flow ~[%tests %golden ~.types-union-unresolved-flow %source %jibb] src-536 `typ-536))
29843010++ test-types-unit-construction
2985− (weld (check ~.types-unit-construction src-533 `tok-533 `tre-533) (check-module-types ~.types-unit-construction ~[%tests %golden ~.types-unit-construction %source %jibb] src-533 `typ-533 ~ ~ ~))
3011+ (weld (check ~.types-unit-construction src-537 `tok-537 `tre-537) (check-module-types ~.types-unit-construction ~[%tests %golden ~.types-unit-construction %source %jibb] src-537 `typ-537 ~ ~ ~))
29863012++ test-types-unit-context
2987− (weld (check ~.types-unit-context src-534 `tok-534 `tre-534) (check-module-types ~.types-unit-context ~[%tests %golden ~.types-unit-context %source %jibb] src-534 `typ-534 ~ ~ ~))
3013+ (weld (check ~.types-unit-context src-538 `tok-538 `tre-538) (check-module-types ~.types-unit-context ~[%tests %golden ~.types-unit-context %source %jibb] src-538 `typ-538 ~ ~ ~))
29883014++ test-types-unit-patterns
2989− (weld (check ~.types-unit-patterns src-535 `tok-535 `tre-535) (check-types ~.types-unit-patterns ~[%tests %golden ~.types-unit-patterns %source %jibb] src-535 `typ-535))
3015+ (weld (check ~.types-unit-patterns src-539 `tok-539 `tre-539) (check-types ~.types-unit-patterns ~[%tests %golden ~.types-unit-patterns %source %jibb] src-539 `typ-539))
29903016::
29913017:: +check: run golden:jibb on a case and compare both outputs
29923018::
tests/type-import/expected.txt+3−3
@@ -10,11 +10,11 @@ partial inference; module not checked
1010++ duplicate: sample mold is not supported by partial inference
1111++ undeclared: sample mold is not supported by partial inference
1212++ yes: %no %yes
13−++ absent: cast mold and expression type do not unify
14−/test.jibb:14:14: cast mold
13+++ absent: union %no %yes has no case `%other`
14+/test.jibb:14:14: expected union
1515++ absent ^- choice.fixture %other
1616 ^
17−/test.jibb:14:29: expression
17+/test.jibb:14:29: tag
1818++ absent ^- choice.fixture %other
1919 ^
2020++ status: $-([status=(%deny %approve) text=@t] (%deny %approve))