on master help sign in
Diagnose value cycles and import null-tagged cases
commite28f7be81c8b51d06d137113f1623642d3effd8f authoriko <mail@iko.soy> dateSat 31 Oct 2026, 03:26 (20 hours ago) parentbeada10
34 files changed+1679−651
docs/compiler.md+3−1 docs/status.md+7−6 jibb-dev/lib/jibb-import.hoon+4−1 jibb-dev/lib/jibb.hoon+122 tests/golden/types-import-tlon-notes/about.txt+4 tests/golden/types-import-tlon-notes/imports.txt+2 tests/golden/types-import-tlon-notes/source.jibb+3 tests/golden/types-import-tlon-notes/sur/notes.txt+433 tests/golden/types-import-tlon-notes/tokens.txt+19 tests/golden/types-import-tlon-notes/tree.txt+10 tests/golden/types-import-tlon-notes/types.txt+3 tests/golden/types-value-cycle-shadow/about.txt+4 tests/golden/types-value-cycle-shadow/modules.txt+1 tests/golden/types-value-cycle-shadow/source.jibb+6 tests/golden/types-value-cycle-shadow/tokens.txt+68 tests/golden/types-value-cycle-shadow/tree.txt+32 tests/golden/types-value-cycle-shadow/types.txt+7 tests/golden/types-value-cycle-unsupported/about.txt+4 tests/golden/types-value-cycle-unsupported/modules.txt+1 tests/golden/types-value-cycle-unsupported/source.jibb+11 tests/golden/types-value-cycle-unsupported/tokens.txt+45 tests/golden/types-value-cycle-unsupported/tree.txt+17 tests/golden/types-value-cycle-unsupported/types.txt+8 tests/golden/types-value-cycles/about.txt+4 tests/golden/types-value-cycles/modules.txt+1 tests/golden/types-value-cycles/source.jibb+13 tests/golden/types-value-cycles/tokens.txt+87 tests/golden/types-value-cycles/tree.txt+39 tests/golden/types-value-cycles/types.txt+44 tests/importer/about.txt+2−1 tests/importer/small.txt+4 tests/importer/tree.txt+3 tests/lib/jibb.hoon+667−641 tools/importer-test+1−1
docs/compiler.md+3−1
@@ -82,12 +82,14 @@ A known closed union with two or more arms can be matched when each arm provably
8282
8383A known closed union can also provide context to each arm of a complete loobean or unit-shaped branch in a cast or a call with a known union sample. Nested branches and transparent groups work; a mismatch reports the expected union and the offending arm. General patterns and context through bodies with local definitions remain unsupported, and unrelated unresolved tags stay pending.
8484
85−The separate `jibb-dev/lib/jibb-import.hoon` is an unfinished reader for selected Hoon type graphs. It handles named recursion, nested map, set, queue, list, unit, jar and jug arguments, direct ordered maps, and direct `$^` unions whose source branches can be proved disjoint. It also reads ordered map fields in records when the map arguments are syntactically fixed atom molds and other fields are fixed atom molds or standard collections of static atom molds. Collection names must not be shadowed. The reader can also import a mark door sample, removing its outer sample face and validating its build subject. For a mark whose sample is exactly a named arm of its single Ford-imported `/sur` core, it can recover a source-proved nonrecursive union, including source-location wrappers around fields; recursive or unverified fallback results remain unsupported. The reader checks explicit Hoon `$%`, `$?` and `$^` unions against the Grammar’s disjointness rule, as @iko confirmed on 2026-10-30. For an explicit `$%` with distinct literal head tags, it can also prove restricted local named payload dependencies, re-evaluate and validate each source branch, and recover the union before Hoon collapses it. It rejects recursive or computed dependencies, inherited same-name collisions, unsupported nested unions and proofs exceeding a shared 4,096-node budget. It re-evaluates statically recognizable source branches before Hoon can collapse them, checks materialized fork cases, and rejects shapes it cannot prove disjoint. Static records may also have verified standard-collection and `path` siblings. One direct explicit union argument in a standard list, set, map or unit is accepted when its call wrapper and collection provenance are verified and its static cases are pairwise disjoint. A synthetic regression checks that forged wrapper subjects, samples and tails are rejected. Other collection-union forms, nested ordered maps, general source-level disjointness and complete integration with the checker remain unfinished. `+golden-types-imports` can consume fixed-aura atoms, valid term singletons, Hoon's `%n` zero singleton as Jibb `~`, nested faced or unfaced cells, unions of supported, pairwise-disjoint cases, and opaque standard collections with supported arguments from caller-supplied reader results for declared `/-` imports; `+golden-types-with-marks` accepts the same shapes for declared marks. The caller must pass unchanged results from the source-aware reader: the bridge validates the supplied graph but cannot detect source cases Hoon collapsed before that graph was built. The opaque collection types retain their names and arguments for identity, unification and printing. The validated standard prelude `list` mold shares the imported list representation; other Jibb-written collection molds and most prelude collection operations remain unsupported. Other forms remain unsupported. Its disjointness proof is conservative and can reject a valid union it cannot prove disjoint. Collection recognition requires the originating `/sur` core. The reader validates direct zuse subjects and Ford subjects consisting of faced imported cores and a validated tail, checking imported cores transitively; it rejects shadowed names, inconsistent core subjects and other subject shapes. For a recursive reference, the reader matches the exact Hoon hold against named arms in validated cores, including transitive Ford imports; it rejects missing, unlabelled or ambiguous origins. Its fixtures include three real Tlon files; `tools/importer-test` compares the internal projection under eval, and the ship test compares the same golden output. `tools/type-import-test` and `tools/type-mark-test` compare bridge reports under eval and on the ship. `tools/type-tlon-test` and its ship counterpart exercise four real Tlon presence unions and a field read through the source-aware reader and partial checker. `tools/clay-fixtures` also passes Clay-built `/sur` molds and mark samples through the Clay-built importer and partial checker.
85+The separate `jibb-dev/lib/jibb-import.hoon` is an unfinished reader for selected Hoon type graphs. It handles named recursion, nested map, set, queue, list, unit, jar and jug arguments, direct ordered maps, and direct `$^` unions whose source branches can be proved disjoint. It also reads ordered map fields in records when the map arguments are syntactically fixed atom molds and other fields are fixed atom molds or standard collections of static atom molds. Collection names must not be shadowed. The reader can also import a mark door sample, removing its outer sample face and validating its build subject. For a mark whose sample is exactly a named arm of its single Ford-imported `/sur` core, it can recover a source-proved nonrecursive union, including source-location wrappers around fields; recursive or unverified fallback results remain unsupported. The reader checks explicit Hoon `$%`, `$?` and `$^` unions against the Grammar’s disjointness rule, as @iko confirmed on 2026-10-30. For an explicit `$%` with distinct literal head tags, it can also prove restricted local named payload dependencies, including bare `~` fields, re-evaluate and validate each source branch, and recover the union before Hoon collapses it. The real Tlon `notes.u-note` exercises its `[%deleted ~]` case. It rejects recursive or computed dependencies, inherited same-name collisions, unsupported nested unions and proofs exceeding a shared 4,096-node budget. It re-evaluates statically recognizable source branches before Hoon can collapse them, checks materialized fork cases, and rejects shapes it cannot prove disjoint. Static records may also have verified standard-collection and `path` siblings. One direct explicit union argument in a standard list, set, map or unit is accepted when its call wrapper and collection provenance are verified and its static cases are pairwise disjoint. A synthetic regression checks that forged wrapper subjects, samples and tails are rejected. Other collection-union forms, nested ordered maps, general source-level disjointness and complete integration with the checker remain unfinished. `+golden-types-imports` can consume fixed-aura atoms, valid term singletons, Hoon's `%n` zero singleton as Jibb `~`, nested faced or unfaced cells, unions of supported, pairwise-disjoint cases, and opaque standard collections with supported arguments from caller-supplied reader results for declared `/-` imports; `+golden-types-with-marks` accepts the same shapes for declared marks. The caller must pass unchanged results from the source-aware reader: the bridge validates the supplied graph but cannot detect source cases Hoon collapsed before that graph was built. The opaque collection types retain their names and arguments for identity, unification and printing. The validated standard prelude `list` mold shares the imported list representation; other Jibb-written collection molds and most prelude collection operations remain unsupported. Other forms remain unsupported. Its disjointness proof is conservative and can reject a valid union it cannot prove disjoint. Collection recognition requires the originating `/sur` core. The reader validates direct zuse subjects and Ford subjects consisting of faced imported cores and a validated tail, checking imported cores transitively; it rejects shadowed names, inconsistent core subjects and other subject shapes. For a recursive reference, the reader matches the exact Hoon hold against named arms in validated cores, including transitive Ford imports; it rejects missing, unlabelled or ambiguous origins. Its fixtures include three real Tlon files; `tools/importer-test` compares the internal projection under eval, and the ship test compares the same golden output. `tools/type-import-test` and `tools/type-mark-test` compare bridge reports under eval and on the ship. `tools/type-tlon-test` and its ship counterpart exercise four real Tlon presence unions and a field read through the source-aware reader and partial checker. `tools/clay-fixtures` also passes Clay-built `/sur` molds and mark samples through the Clay-built importer and partial checker.
8686
8787Self-recursive `/sur` molds can cross the bridge as opaque module-and-name identities when their supported source-aware graph passes validation. Aliases, foreign references, recursive marks, unfolding, construction and field access remain unsupported; the partial printer declines recursive names that are not in scope.
8888
8989Callers that have a `/sur` core and a name can use `+read-named`: it checks for a locally declared arm before asking Hoon to evaluate the mold, and reports evaluation failures with the final Hoon trace line. `+read-mold-in` remains available when the caller already has the selected type. The opt-in `+read-named-diagnostic` and `+read-mark-diagnostic` preserve successful graphs and distinguish definite `%invalid` aura and core evidence emitted directly by the reader from `%unsupported` failures. Other failures, including unverified union disjointness and vase recognition based only on a name, remain unsupported. These entry points revalidate and re-walk failed types; the opt-in `+golden-types-with-reader-diagnostics` accepts unchanged structured reader results and reports definite aura or core errors at their imported mold use sites, when the import and supplied input are unique. Ordered replay covers direct and nested cell samples, record and function casts, and non-generic same-module aliases; it stops at an unsupported prefix, cycle or shadowing failure. Union molds, generic applications, transitive modules and unsupported reader outcomes still report generic limitations. Replay repeats inference and may add work; this entry point remains partial. Existing checker entry points continue treating failed imports as unsupported. It also fails closed on repeated field faces along an imported record spine, including recursive roots; the diagnostic remains generic. Hoon type graphs can erase unfaced nested-cell boundaries, so the check may conservatively reject a valid source with equal names in distinct erased scopes. Faced nested records and union alternatives keep separate scopes.
9090
91+The partial report can diagnose certain non-gate value dependency cycles, including cycles through gates. It requires an explicit atom or loobean result cast and a syntactically proven dependency group with unshadowed simple samples; it identifies the value and a dependency site. Untyped results, branches, nested definitions, qualified wings and complex samples remain unsupported. The proof constructs an additional dependency graph. One 24-case recursive/generic eval run took 19.7 s with it and 18.6 s before it, including startup; these single runs do not isolate the graph cost.
92+
9193The source-backed `+api-path-analysis-source` is a separate partial analysis, not an API check: it resolves reachable Jibb imports and declared mark graphs and returns path and scry segments, full and diff mark identities and their types. It also checks derived-name collisions. Full and diff payloads must be direct declared mark names; typed scry parameters must be a same-name, same-aura subset of the watch parameters, and unknown or duplicate segment binders fail closed. It creates no request gates. The caller must pass a trusted prepared prelude and unchanged source-aware reader results.
9294
9395`+golden-types-with-prelude` accepts case-local Jibb module sources alongside `/sur` and mark results and the vendored prelude source. It resolves reachable ordinary library modules in dependency order, caching completed interfaces per invocation and exporting supported closed value schemes, direct generic unions, and simple or nonrecursive generic mold aliases whose bodies the fragment supports. It detects missing sources and cycles and rejects a dependency if its interface cannot be inferred by the fragment.
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 Hoon `*` in supported nonrecursive molds, selected Hoon atoms, term singletons, the null singleton, the two loobean singletons and their exact fork, 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, including a source-proved nonrecursive union from a single Ford-imported `/sur` core, 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. Tagged `$%` cases can additionally use restricted local named payload molds, with a bounded source proof; unsupported or ambiguous dependencies fail closed. 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. The source-backed internal prelude defines `poke` and the public prelude re-exports it as a transparent type. The partial checker resolves its supported source shape and rejects ordinary imports of the private path. An imported API with one mark and a matching direct `+$ poke` declaration can export a constructor and retain agent/mark metadata when the representation has the supported agent case. A separate partial analysis resolves supported API path declarations and their full and diff mark types, including the todo paths; it does not create requests or check an API module. Complete private module checking, other API shapes, request gates, root API and kind checking, stores, `ask`, `pure`, lowering and runtime effects remain unfinished. A possible store or root API with `+$ poke` reports unsupported kind or scope, while definite duplicates and unrelated shadowing still report conflicts. 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. Supported local mutually recursive gate groups also use shared monomorphic placeholders and generalize only after the group checks, preserving captured outer variables. Mixed gate/value cycles, polymorphic recursion, 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. A single-arm cell pattern accepts two or more binders, the last capturing the remaining tail; duplicate and shadowed binders are rejected. Intermediate union or collection tails, nested patterns, wildcards and faced records remain unsupported. 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 and some complex two-arm subjects remain unsupported. A cast or known call sample can supply result context through whole-case arms and supported finite loobean refinements for a known union accessed by a wing, including nested cell and list positions; other partial-pattern context and non-wing subjects 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. Ordered fit replay can identify a missing tag nested in a syntactic tuple, stopping at an earlier mismatch or uncertainty. 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. Isolated cart-style `init` and `update` expressions infer, while the complete cart-store fails closed because its kind and declaration scope remain unchecked. Uncontextualized list literals infer a fresh element type, including empty and nested lists, with independently generalized uses. Unresolved item tags and uncertain widening remain unsupported. 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`, `clap`, `clef` 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. 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; 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 Hoon `*` in supported nonrecursive molds, selected Hoon atoms, term singletons, the null singleton, the two loobean singletons and their exact fork, 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, including a source-proved nonrecursive union from a single Ford-imported `/sur` core, 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. Tagged `$%` cases can additionally use restricted local named payload molds and bare `~` fields, as in the real Tlon `notes.u-note`, with a bounded source proof; unsupported or ambiguous dependencies fail closed. 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. The source-backed internal prelude defines `poke` and the public prelude re-exports it as a transparent type. The partial checker resolves its supported source shape and rejects ordinary imports of the private path. An imported API with one mark and a matching direct `+$ poke` declaration can export a constructor and retain agent/mark metadata when the representation has the supported agent case. A separate partial analysis resolves supported API path declarations and their full and diff mark types, including the todo paths; it does not create requests or check an API module. Complete private module checking, other API shapes, request gates, root API and kind checking, stores, `ask`, `pure`, lowering and runtime effects remain unfinished. A possible store or root API with `+$ poke` reports unsupported kind or scope, while definite duplicates and unrelated shadowing still report conflicts. 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. Supported local mutually recursive gate groups also use shared monomorphic placeholders and generalize only after the group checks, preserving captured outer variables. A bounded dependency proof reports certain non-gate cycles through values and gates when an explicit atom or loobean result cast and simple unshadowed expressions establish the cycle. Other mixed gate/value cycles, polymorphic recursion, 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. A single-arm cell pattern accepts two or more binders, the last capturing the remaining tail; duplicate and shadowed binders are rejected. Intermediate union or collection tails, nested patterns, wildcards and faced records remain unsupported. 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 and some complex two-arm subjects remain unsupported. A cast or known call sample can supply result context through whole-case arms and supported finite loobean refinements for a known union accessed by a wing, including nested cell and list positions; other partial-pattern context and non-wing subjects 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. Ordered fit replay can identify a missing tag nested in a syntactic tuple, stopping at an earlier mismatch or uncertainty. 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. Isolated cart-style `init` and `update` expressions infer, while the complete cart-store fails closed because its kind and declaration scope remain unchecked. Uncontextualized list literals infer a fresh element type, including empty and nested lists, with independently generalized uses. Unresolved item tags and uncertain widening remain unsupported. 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`, `clap`, `clef` 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. 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; 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−- 557 golden cases: 341 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 557-case corpus passed under `urbit eval` in 68.6 s. The fake ship passed all 566 tests, including the importer, importer/checker and mark/checker bridges, module scope and unification checks, with 38.1 s for sync and 69.1 s for tests. The importer golden compares 179 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+- 561 golden cases: 345 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 561-case corpus passed under `urbit eval` in 67.4 s. The fake ship passed all 570 tests, including the importer, importer/checker and mark/checker bridges, module scope and unification checks, with 39.7 s for sync and 83.3 s for tests. The importer golden compares 182 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).
@@ -109,14 +109,15 @@ Besides the plan's list:
109109| c790a9f | 2026-10-31 | Expose transparent `poke` from the internal prelude |
110110| ef4772a | 2026-10-31 | Bridge imported loobeans and loobean singletons |
111111| ad46655 | 2026-10-31 | Bridge selected imported any-noun molds |
112−| This change | 2026-10-31 | Import source-proved Ford mark unions, analyze API paths and infer list helpers |
112+| beada10 | 2026-10-31 | Import source-proved Ford mark unions, analyze API paths and infer list helpers |
113+| This change | 2026-10-31 | Diagnose proven non-gate cycles and import Tlon null-payload union cases |
113114
114115## Checking it
115116
116117On a machine set up as [development.md](development.md) says:
117118
118119```
119−tools/golden # 557 cases under urbit eval
120+tools/golden # 561 cases under urbit eval
120121tools/importer-test # the Hoon importer fixture projection
121122tools/type-import-test # the importer/checker bridge fixture
122123tools/type-tlon-test # the real Tlon reader/checker fixture
@@ -129,7 +130,7 @@ tools/testdata/selftest # the tools themselves
129130tools/doc-blocks docs/spec # the doc's examples are golden cases
130131tools/ship start
131132tools/ship gen-tests --check # tests/lib/jibb.hoon is up to date
132−tools/ship test # the same 557 cases as -test arms on the ship
133+tools/ship test # the same 561 cases as -test arms on the ship
133134tools/testdata/ship-selftest
134135tools/ship check-commit # |commit stores .jibb files
135136tools/clay-fixtures # example /sur files and marks build through Clay
jibb-dev/lib/jibb-import.hoon+4−1
@@ -213,7 +213,7 @@
213213 =/ gist=(unit *) (source-gist-tail shape)
214214 ?^ gist $(shape ;;(spec u.gist))
215215 ?+ shape ~
216− [%base *] ?:(|(?=([%atom *] p.shape) =(%flag p.shape)) `fuel ~)
216+ [%base *] ?:(|(?=([%atom *] p.shape) =(%flag p.shape) =(%null p.shape)) `fuel ~)
217217 [%leaf *] `fuel
218218 [%bcts *] ?@ p.shape $(shape q.shape)
219219 ~
@@ -1841,6 +1841,9 @@
18411841 (crip "tag-ford-collision: {(show-result (read-named %child %choice tag-collision))}")
18421842 (crip "tag-ford-clean: {(show-result (read-named %child %choice tag-clean))}")
18431843 (crip "tag-zuse-local: {(show-result (read-named %child %choice tag-zuse-core))}")
1844+ (crip "tag-null-good: {(show-result (sample %tag-null-good))}")
1845+ (crip "tag-null-duplicate: {(show-result (sample %tag-null-duplicate))}")
1846+ (crip "tag-null-hidden: {(show-result (sample %tag-null-hidden))}")
18441847 (crip "tag-valid: {(show-result (sample %tag-valid))}")
18451848 (crip "tag-duplicate: {(show-result (sample %tag-duplicate))}")
18461849 (crip "tag-collapsed: {(show-result (sample %tag-collapsed))}")
jibb-dev/lib/jibb.hoon+122
@@ -8374,6 +8374,123 @@
83748374 ^- ienv
83758375 env:(resolve-groups ds molds globals externals surs mark-externals marks jimports reserved-molds at prelude)
83768376::
8377+:: A diagnostic-only proof for a narrow syntactic value cycle. Every
8378+:: edge is an unqualified wing in a supported expression, and samples
8379+:: may not shadow global bindings. Unknown forms yield no conclusion.
8380++$ icyclesite [name=term at=span]
8381++$ icycle [name=term first=span next=span]
8382+++ cycle-sites-list
8383+ |= [xs=(list expr) globals=(list term) locals=(list term)]
8384+ ^- (unit (list icyclesite))
8385+ ?~ xs `~
8386+ =/ first=(unit (list icyclesite)) (cycle-sites i.xs globals locals)
8387+ ?~ first ~
8388+ =/ tail=(unit (list icyclesite)) $(xs t.xs)
8389+ ?~ tail ~
8390+ `(weld u.first u.tail)
8391+::
8392+++ cycle-sample-name
8393+ |= [sam=sample globals=(list term) locals=(list term)]
8394+ ^- (unit (unit term))
8395+ ?- -.sam
8396+ %bind
8397+ ?: (lien (weld globals locals) |=(n=term =(n name.sam))) ~
8398+ ``name.sam
8399+ %face
8400+ ?: (lien (weld globals locals) |=(n=term =(n name.sam))) ~
8401+ ``name.sam
8402+ %bare `~
8403+ * ~
8404+ ==
8405+::
8406+++ cycle-sites
8407+ |= [e=expr globals=(list term) locals=(list term)]
8408+ ^- (unit (list icyclesite))
8409+ ?- -.e
8410+ %wing
8411+ ?. ?=([@ ~] names.e) ~
8412+ `~[[i.names.e at.e]]
8413+ %lit `~
8414+ %str
8415+ ?: (lien pieces.e |=(p=piece ?=(%expr -.p))) ~
8416+ `~
8417+ %group $(e inner.e)
8418+ %body ?~(defs.e $(e final.e) ~)
8419+ %cast $(e val.e)
8420+ %gate
8421+ =/ binder=(unit (unit term)) (cycle-sample-name sample.e globals locals)
8422+ ?~ binder ~
8423+ =/ nested=(list term) ?~(u.binder locals [u.u.binder locals])
8424+ $(e body.e, locals nested)
8425+ %gate-wide
8426+ =/ binder=(unit (unit term)) (cycle-sample-name sample.e globals locals)
8427+ ?~ binder ~
8428+ =/ nested=(list term) ?~(u.binder locals [u.u.binder locals])
8429+ $(e body.e, locals nested)
8430+ %call
8431+ =/ first=(unit (list icyclesite)) $(e head.e)
8432+ ?~ first ~
8433+ =/ tail=(unit (list icyclesite)) (cycle-sites-list args.e globals locals)
8434+ ?~ tail ~
8435+ `(weld u.first u.tail)
8436+ * ~
8437+ ==
8438+::
8439+++ cycle-definitely-atom
8440+ |= e=expr
8441+ ^- ?
8442+ ?: ?=(%group -.e) $(e inner.e)
8443+ ?: &(?=(%body -.e) ?=(~ defs.e)) $(e final.e)
8444+ ?. ?=(%cast -.e) |
8445+ |(?=(%aura -.shape.e) ?=(%flag -.shape.e))
8446+::
8447+++ cycle-proof-group
8448+ |= [members=(list def) globals=(list term)]
8449+ ^- ?
8450+ ?~ members &
8451+ ?. ?=(%value -.i.members) |
8452+ ?. (unique-value-name name.i.members globals) |
8453+ ?. ?=(^ (cycle-sites val.i.members globals ~)) |
8454+ $(members t.members)
8455+::
8456+++ cycle-find-site
8457+ |= [sites=(list icyclesite) component=(list term)]
8458+ ^- (unit span)
8459+ ?~ sites ~
8460+ ?: (lien component |=(n=term =(n name.i.sites))) `at.i.sites
8461+ $(sites t.sites)
8462+::
8463+++ cycle-group-errors
8464+ |= [members=(list def) component=(list term) globals=(list term)]
8465+ ^- (list icycle)
8466+ ?~ members ~
8467+ =/ d=def i.members
8468+ ?> ?=(%value -.d)
8469+ =/ tail=(list icycle) $(members t.members)
8470+ ?. (cycle-definitely-atom val.d) tail
8471+ =/ sites=(unit (list icyclesite)) (cycle-sites val.d globals ~)
8472+ ?~ sites tail
8473+ =/ found=(unit span) (cycle-find-site u.sites component)
8474+ ?~ found tail
8475+ [[name.d at.d u.found] tail]
8476+::
8477+++ definite-value-cycles
8478+ |= [ds=(list def) globals=(list term)]
8479+ ^- (list icycle)
8480+ =/ names=(list term) (global-value-names ds)
8481+ =/ graph=iadj (graph-make-forward ds (graph-nameset names ~) ~)
8482+ =/ components=icomponents (graph-components ds names)
8483+ =/ out=(list icycle) ~
8484+ |-
8485+ ?~ components out
8486+ =/ component=(list term) i.components
8487+ ?. (graph-cycle component graph) $(components t.components)
8488+ =/ members=(list def)
8489+ (skim ds |=(d=def &(?=(%value -.d) (lien component |=(n=term =(n name.d))))))
8490+ ?. =((lent members) (lent component)) $(components t.components)
8491+ ?. (cycle-proof-group members globals) $(components t.components)
8492+ $(components t.components, out (weld (cycle-group-errors members component globals) out))
8493+::
83778494+| %union-analysis
83788495::
83798496:: A conservative projection of written molds onto noun shapes. The
@@ -9191,6 +9308,7 @@
91919308 =/ surs=(list term) (collect-sur-imports imports.p.parsed)
91929309 =/ marks=(list term) (collect-mark-imports imports.p.parsed)
91939310 =/ resolution=iresolved (resolve-groups ds molds globals externals surs mark-externals marks jimports reserved-molds file prelude)
9311+ =/ cycles=(list icycle) (definite-value-cycles ds globals)
91949312 =/ env=ienv env.resolution
91959313 =/ lines=(list @t) ~
91969314 |-
@@ -9200,6 +9318,10 @@
92009318 $(ds t.ds, lines [(show-partial-mold file src d molds) lines])
92019319 ?. (unique-value-name name.d globals)
92029320 $(ds t.ds, lines [(crip "++ {(trip name.d)}: name already in scope") lines])
9321+ =/ cycle=(list icycle) (skim cycles |=(c=icycle =(name.c name.d)))
9322+ ?^ cycle
9323+ =/ diag=idiag ["non-gate value depends on itself through a cycle" ~[[first.i.cycle "value in cycle"] [next.i.cycle "dependency in cycle"]]]
9324+ $(ds t.ds, lines [(show-inference-diagnostic file src name.d diag) lines])
92039325 ?: (lien grouped.resolution |=(n=term =(n name.d)))
92049326 =/ found=(unit ischeme) (ienv-lookup name.d env)
92059327 ?~ found $(ds t.ds, lines [(crip "++ {(trip name.d)}: recursive group unavailable") lines])
tests/golden/types-import-tlon-notes/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Overview, Importing Hoon types: Hoon `$%` imports as a union if its cases differ as nouns; unused molds are skipped. Grammar, Literals: `~` is null.
2+tests: The unmodified Tlon `desk/sur/notes.hoon` at tloncorp/tlon-apps commit 38f9328f4580000a37a7fdc3ab820fcd65069487 (MIT license in `tests/importer/tlon-license.txt`) has tagged unions with null cases. Both real imported molds reach partial inference without assuming unsupported sibling molds are valid.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-import-tlon-notes/imports.txtnew file+2
@@ -0,0 +1,2 @@
1+notes u-note
2+notes a-note
tests/golden/types-import-tlon-notes/source.jibbnew file+3
@@ -0,0 +1,3 @@
1+/- notes
2+++ update |= x=u-note.notes x
3+++ action |= x=a-note.notes x
tests/golden/types-import-tlon-notes/sur/notes.txtnew file+433
@@ -0,0 +1,433 @@
1+:: notes: shared notebook surface types
2+::
3+|%
4++$ role
5+ ?(%owner %editor %viewer)
6+:: notebook visibility: private (default) rejects joins from non-members;
7+:: public allows anyone to join.
8+::
9++$ visibility
10+ ?(%public %private)
11+:: $flag: global notebook identity (ship + slug term)
12+::
13++$ flag [=ship name=@tas]
14+:: $notebook: top-level container
15+::
16++$ notebook
17+ $: id=@ud
18+ title=@t
19+ created-by=ship
20+ created-at=@da
21+ updated-at=@da
22+ updated-by=ship
23+ ==
24+:: $nest: channel identifier shared with %groups. Structurally identical
25+:: to groups' nest (kind term + host + name); for %notes channels the
26+:: kind is always %notes and [host name] is the notebook flag. Used by the
27+:: %group-channel-join / %group-channel-leave channel-host pokes from %groups.
28+::
29++$ nest [kind=@tas host=@p name=@tas]
30+:: channel-host poke payloads. %groups pokes %group-channel-join /
31+:: %group-channel-leave to auto-join/leave a notes channel as the group
32+:: fleet changes. join carries the group flag so the host can record
33+:: affiliation; leave just identifies the nest.
34+::
35++$ channel-join [=nest group=flag]
36++$ channel-leave [=nest]
37+::
38++$ group-channel
39+ $: meta=[title=@t description=@t image=@t cover=@t]
40+ created=@da
41+ section=@tas
42+ readers=(set @tas)
43+ join=?
44+ ==
45++$ group-create
46+ $: %group
47+ =flag
48+ %channel
49+ =nest
50+ %add
51+ channel=group-channel
52+ ==
53+:: %group action to remove the notes channel from a group (mirror of
54+:: group-create's %add), sent when a group-mode notebook is deleted.
55+::
56++$ group-channel-del
57+ $: %group
58+ =flag
59+ %channel
60+ =nest
61+ %del
62+ ~
63+ ==
64+:: $folder: directory node inside a notebook
65+::
66++$ folder
67+ $: id=@ud
68+ notebook-id=@ud
69+ name=@t
70+ parent-folder-id=(unit @ud)
71+ created-by=ship
72+ created-at=@da
73+ updated-at=@da
74+ updated-by=ship
75+ ==
76+:: $note: leaf document node
77+::
78++$ note
79+ $: id=@ud
80+ notebook-id=@ud
81+ folder-id=@ud
82+ title=@t
83+ slug=(unit @t)
84+ body-md=@t
85+ created-by=ship
86+ created-at=@da
87+ updated-by=ship
88+ updated-at=@da
89+ revision=@ud
90+ ==
91+::
92++$ members (map ship role)
93++$ notebook-members members :: legacy alias for v0 migration types
94+:: $note-revision: an archived prior version of a note
95+::
96++$ note-revision
97+ $: rev=@ud
98+ at=@da
99+ author=ship
100+ title=@t
101+ body-md=@t
102+ ==
103+:: $invite-info: pending invite we've received
104+::
105++$ invite-info [from=ship sent-at=@da title=@t]
106+::
107++$ import-node
108+ $% [%folder name=@t children=(list import-node)]
109+ [%note title=@t body-md=@t]
110+ ==
111+:: $notebook-state: all data for a single notebook (state-14+).
112+:: group: optional Tlon group affiliation. When set, the notebook is a group
113+:: channel — read permission defers to the group's can-read. Set once at
114+:: create (host) and propagated to subscribers via the %snapshot. Lives on
115+:: notebook-state (not $notebook) so it stays out of the on-disk log, which
116+:: embeds $notebook via u-notebook.
117+::
118++$ notebook-state
119+ $: =notebook
120+ =members
121+ =visibility
122+ folders=(map @ud folder)
123+ notes=(map @ud note)
124+ history=(map note-id=@ud (list note-revision))
125+ group=(unit flag)
126+ ==
127+:: Actions (client → agent)
128+::
129+:: $a-notes: top-level client actions.
130+:: notebook-scoped actions are routed via [%notebook =flag =a-notebook].
131+::
132++$ a-notes
133+ $% [%create-notebook title=@t]
134+ :: %create-group-notebook: born inside a group. defers read perms to
135+ :: the group; readers are the group role-ids the channel is restricted
136+ :: to (empty = open). forwarded opaquely to %groups on registration.
137+ [%create-group-notebook title=@t group=flag readers=(set @tas)]
138+ [%join =flag]
139+ [%leave =flag]
140+ [%accept-invite =flag]
141+ [%decline-invite =flag]
142+ [%notebook =flag =a-notebook]
143+ :: api-key management — local-only (?> =(our.bowl src.bowl) at the
144+ :: poke handler). Regenerate replaces the stored key; clear erases
145+ :: it (disabling the X-Api-Key bypass).
146+ [%regenerate-api-key ~]
147+ [%clear-api-key ~]
148+ :: %register-mcp: register %notes as an openapi upstream with the
149+ :: local %mcp-proxy. base-url defaults to 'http://localhost:8080'
150+ :: if ~. The api-key is minted on demand if missing. Local-only.
151+ [%register-mcp base-url=(unit @t)]
152+ ==
153+:: $a-notebook: actions scoped to a specific notebook.
154+:: Outer tag carries flag so inner tags drop the subject prefix.
155+::
156++$ a-notebook
157+ $% [%rename title=@t]
158+ [%delete ~]
159+ [%visibility =visibility]
160+ [%invite who=ship]
161+ [%create-folder parent=@ud name=@t]
162+ [%folder id=@ud =a-folder]
163+ [%create-note folder=@ud title=@t body=@t]
164+ [%note id=@ud =a-note]
165+ [%batch-import folder=@ud notes=(list [title=@t body=@t])]
166+ [%batch-import-tree parent=@ud tree=(list import-node)]
167+ ==
168+:: $a-folder: actions scoped to a specific folder
169+::
170++$ a-folder
171+ $% [%rename name=@t]
172+ [%move new-parent=@ud]
173+ [%delete recursive=?]
174+ :: %update: REST-friendly combined rename+move. Either or both
175+ :: fields may be set; the handler is a no-op for fields left ~.
176+ [%update name=(unit @t) parent=(unit @ud)]
177+ ==
178+:: $a-note: actions scoped to a specific note
179+::
180++$ a-note
181+ $% [%rename title=@t]
182+ [%move folder=@ud]
183+ [%delete ~]
184+ [%update body=@t expected-revision=@ud]
185+ :: %modify: REST-friendly combined rename+move. Either or both
186+ :: fields may be set; body updates stay on %update so the
187+ :: revision-check semantics don't get tangled with metadata edits.
188+ [%modify title=(unit @t) folder=(unit @ud)]
189+ [%publish html=@t]
190+ [%unpublish ~]
191+ [%restore rev=@ud]
192+ ==
193+:: Commands (poke surface — actor authenticated via src.bowl)
194+::
195+:: $c-notes: tagged union of cross-ship messages.
196+:: %notify-invite — host pokes invitee with a pending invite (carries title
197+:: for inbox rendering pre-join). src.bowl must equal the host of `flag`.
198+:: %notebook — subscriber forwards a notebook-scoped command to the host.
199+:: src.bowl is the actor; permission checks happen in se-core.
200+::
201++$ c-notes
202+ $% [%notify-invite =flag title=@t]
203+ [%notebook =flag =c-notebook]
204+ ==
205+:: $c-cmd: `command for a specific notebook` — the flag carries routing
206+:: context, c-notebook carries the verb. Not a wire type; c-notes
207+:: %notebook arm peels into this on the way in. se-core's arms now take
208+:: the flag from door context (se-abed) and the c-notebook payload
209+:: directly, so this shape isn't threaded through se-poke anymore —
210+:: kept here in case other code still wants the combined shape.
211+::
212++$ c-cmd [=flag =c-notebook]
213+:: $c-notebook: notebook-scoped commands. Mirrors a-notebook minus
214+:: client-only verbs (%restore is purely client-side restatement of %update).
215+:: Adds %member-join/%member-leave for peer join/leave signals.
216+::
217++$ c-notebook
218+ $% [%rename title=@t]
219+ [%delete ~]
220+ [%visibility =visibility]
221+ [%invite who=ship]
222+ [%create-folder parent=@ud name=@t]
223+ [%folder id=@ud =a-folder]
224+ [%create-note folder=@ud title=@t body=@t]
225+ [%note id=@ud =a-note]
226+ [%batch-import folder=@ud notes=(list [title=@t body=@t])]
227+ [%batch-import-tree parent=@ud tree=(list import-node)]
228+ [%member-join ~]
229+ [%member-leave ~]
230+ ==
231+:: Updates (agent → subscriber)
232+::
233++$ u-notebook
234+ $% [%created =notebook =visibility]
235+ [%updated =notebook]
236+ [%deleted ~]
237+ [%visibility =visibility]
238+ [%member-joined who=ship =role]
239+ [%member-left who=ship]
240+ [%invite-received from=ship title=@t]
241+ [%invite-removed ~]
242+ [%folder id=@ud =u-folder]
243+ [%note id=@ud =u-note]
244+ ==
245+::
246++$ u-folder
247+ $% [%created =folder]
248+ [%updated =folder]
249+ [%deleted ~]
250+ ==
251+::
252++$ u-note
253+ $% [%created =note]
254+ [%updated =note]
255+ [%deleted ~]
256+ [%published html=@t]
257+ [%unpublished ~]
258+ [%history-archived =note-revision]
259+ ==
260+:: $update: single log entry — time-keyed u-notebook
261+::
262++$ update [=time =u-notebook]
263+:: $u-notes: wire/stream shape — carries flag so listeners know which notebook
264+::
265++$ u-notes [=flag =u-notebook]
266+:: $u-inbox: events pushed on /v0/inbox/stream for cross-cutting UI signals
267+:: (pending invites + a "notebooks changed, please re-scry" ping).
268+::
269++$ u-inbox
270+ $% [%invite-received =flag from=ship sent-at=@da title=@t]
271+ [%invite-removed =flag]
272+ [%notebooks-changed ~]
273+ ==
274+:: Responses (subscription facts)
275+::
276+:: $r-notes: facts pushed to subscribers on /v0/notes/~ship/name/stream
277+:: %snapshot carries visibility so subscribers can seed their local cache.
278+::
279++$ r-notes
280+ $% [%snapshot =flag =visibility =notebook-state]
281+ [%update =flag =update]
282+ ==
283+:: $log: time-ordered append-only update log (one per notebook, u-notebook entries)
284+::
285++$ log ((mop time u-notebook) lte)
286+++ log-on ((on time u-notebook) lte)
287+:: $net: host vs subscriber discriminator
288+::
289++$ net
290+ $~ [%pub *log]
291+ $% [%pub =log]
292+ [%sub =time init=_|]
293+ ==
294+:: Scry response types — typed marks for peek endpoints
295+::
296+:: $notebook-summary: one item from /v0/notebooks (carries flag + visibility)
297+::
298++$ notebook-summary [=flag =notebook =visibility]
299+:: $notebook-detail: one item from /v0/notebook/~ship/name
300+::
301++$ notebook-detail [=flag =notebook =visibility]
302+:: $member-record: one item from /v0/members list
303+::
304++$ member-record [=ship =role]
305+:: $invite-record: one item from /v0/invites list
306+::
307++$ invite-record [=flag =invite-info]
308+:: $published-record: one item from /v0/published list — metadata only.
309+:: HTML body is served via /notes/pub/~host/name/note-id, not this list.
310+::
311++$ published-record [=flag note-id=@ud]
312+:: $note-preview: trimmed note view served on /v0/said
313+::
314+:: .snippet is the leading slice of $note's body-md
315+::
316++$ note-preview
317+ $: id=@ud
318+ title=@t
319+ snippet=@t
320+ author=ship
321+ updated-at=@da
322+ notebook-title=@t
323+ ==
324+:: $said: single-shot /v0/said response
325+::
326++$ said [=flag =note-preview]
327+:: $scam: bounded search results
328+::
329++$ scam
330+ $: last=@ud :: last note-id that was searched, 0 for end
331+ scan=(list note) :: search results
332+ ==
333+:: Type aliases
334+::
335++$ action a-notes
336++$ command c-notes
337++$ response r-notes
338+:: v1: HTTP / request-id surface
339+::
340+:: Wraps a-notes / c-notes / r-notes / update with a correlating
341+:: request-id so the client gets a typed terminal response keyed to
342+:: its action. Consumed by the HTTP API mount (/notes/~/v1) and the
343+:: per-request SSE paths (/v1/notes/~ship/name/request/...).
344+::
345+++ v1
346+ |%
347+ +$ request-id @uv
348+ +$ poke-status ?(%sending %acked %nacked)
349+ :: $action-error: enumerated failure modes returned in response-body.
350+ :: %conflict — expected-revision mismatch (drives editor conflict banner).
351+ +$ action-error
352+ $? %not-authorized
353+ %not-found
354+ %invalid-name
355+ %conflict
356+ %request-too-large
357+ %unknown
358+ ==
359+ +$ action [=request-id =a-notes]
360+ +$ command [=request-id =c-notes]
361+ +$ response [id=request-id body=response-body]
362+ +$ response-update [id=request-id body=response-update-body]
363+ :: $response-body: subscriber → client.
364+ :: %ok — a notebook mutation (snapshot/update); carries flag inline
365+ :: %notebook — a freshly-created notebook's summary (flag + metadata +
366+ :: visibility). Returned by %create-notebook so the caller
367+ :: learns the slugified flag without re-scrying.
368+ :: %api-key — the current api-key after a regenerate/clear. ~ = cleared.
369+ :: %error — typed failure
370+ :: %pending — cross-ship request still in flight; poll / sub the path
371+ +$ response-body
372+ $% [%no-change ~]
373+ [%ok =r-notes]
374+ [%notebook summary=notebook-summary]
375+ [%api-key key=(unit @t)]
376+ [%error type=action-error message=tang]
377+ [%pending status=poke-status]
378+ ==
379+ :: $response-update-body: host → subscriber. Carries the host's
380+ :: applied update (or error); subscriber wraps it as a response
381+ :: using the request-path flag for client delivery.
382+ +$ response-update-body
383+ $% [%no-change ~]
384+ [%ok =update]
385+ [%error type=action-error message=tang]
386+ ==
387+ :: $incoming-request: subscriber-side tracking record for a single
388+ :: in-flight action. http-id non-null means an Eyre POST is being
389+ :: held open waiting for the terminal response. final-at is set
390+ :: when result is %ok / %error / %no-change; cleanup uses it to
391+ :: evict the entry after a grace window.
392+ +$ incoming-request
393+ $: id=request-id
394+ http-id=(unit @ta)
395+ =poke-status
396+ result=(unit response-body)
397+ final-at=(unit @da)
398+ fetched=?
399+ ==
400+ +$ requests (map request-id incoming-request)
401+ --
402+:: Versioned state — newest first
403+::
404+:: state-15: drops the vestigial rid-counter — request-ids are minted
405+:: directly from bowl.eny (unique per event), so the counter is dead weight.
406+::
407++$ state-15
408+ $: %15
409+ books=(map flag [=net =notebook-state])
410+ next-id=@ud
411+ published=(map [=flag note-id=@ud] @t)
412+ invites=(map flag invite-info)
413+ requests=requests:v1
414+ api-key=(unit @t)
415+ ==
416+:: state-14: notebook-state gains optional `group` for group-channel mode.
417+:: Carried rid-counter (dropped in state-15). Deployed, so a real migration
418+:: target — ships that took the 14 transition load through +state-14-to-15.
419+::
420++$ state-14
421+ $: %14
422+ books=(map flag [=net =notebook-state])
423+ next-id=@ud
424+ published=(map [=flag note-id=@ud] @t)
425+ invites=(map flag invite-info)
426+ requests=requests:v1
427+ api-key=(unit @t)
428+ rid-counter=@ud
429+ ==
430+::
431++$ state state-15
432+::
433+--
tests/golden/types-import-tlon-notes/tokens.txtnew file+19
@@ -0,0 +1,19 @@
1+1:1 glyph /-
2+1:4 name notes
3+2:1 NEWLINE
4+2:1 glyph ++
5+2:4 name update
6+2:11 glyph |=
7+2:14 name x
8+2:15 tight glyph =
9+2:16 tight wing u-note.notes
10+2:29 name x
11+3:1 NEWLINE
12+3:1 glyph ++
13+3:4 name action
14+3:11 glyph |=
15+3:14 name x
16+3:15 tight glyph =
17+3:16 tight wing a-note.notes
18+3:29 name x
19+3:30 NEWLINE
tests/golden/types-import-tlon-notes/tree.txtnew file+10
@@ -0,0 +1,10 @@
1+(module
2+ (sur 1:1 notes)
3+ (value 2:1 update
4+ (gate 2:11
5+ (face 2:14 x (ref 2:16 u-note.notes))
6+ (wing 2:29 x)))
7+ (value 3:1 action
8+ (gate 3:11
9+ (face 3:14 x (ref 3:16 a-note.notes))
10+ (wing 3:29 x))))
tests/golden/types-import-tlon-notes/types.txtnew file+3
@@ -0,0 +1,3 @@
1+partial inference; module not checked
2+++ update: $-(([%updated note=[id=@ud [notebook-id=@ud [folder-id=@ud [title=@t [slug=(unit @t) [body-md=@t [created-by=@p [created-at=@da [updated-by=@p [updated-at=@da revision=@ud]]]]]]]]]]] [%created note=[id=@ud [notebook-id=@ud [folder-id=@ud [title=@t [slug=(unit @t) [body-md=@t [created-by=@p [created-at=@da [updated-by=@p [updated-at=@da revision=@ud]]]]]]]]]]] [%deleted ~] [%published html=@t] [%unpublished ~] [%history-archived note-revision=[rev=@ud [at=@da [author=@p [title=@t body-md=@t]]]]]) ([%updated note=[id=@ud [notebook-id=@ud [folder-id=@ud [title=@t [slug=(unit @t) [body-md=@t [created-by=@p [created-at=@da [updated-by=@p [updated-at=@da revision=@ud]]]]]]]]]]] [%created note=[id=@ud [notebook-id=@ud [folder-id=@ud [title=@t [slug=(unit @t) [body-md=@t [created-by=@p [created-at=@da [updated-by=@p [updated-at=@da revision=@ud]]]]]]]]]]] [%deleted ~] [%published html=@t] [%unpublished ~] [%history-archived note-revision=[rev=@ud [at=@da [author=@p [title=@t body-md=@t]]]]]))
3+++ action: $-(([%move folder=@ud] [%rename title=@t] [%update [body=@t expected-revision=@ud]] [%delete ~] [%modify [title=(unit @t) folder=(unit @ud)]] [%restore rev=@ud] [%publish html=@t] [%unpublish ~]) ([%move folder=@ud] [%rename title=@t] [%update [body=@t expected-revision=@ud]] [%delete ~] [%modify [title=(unit @t) folder=(unit @ud)]] [%restore rev=@ud] [%publish html=@t] [%unpublish ~]))
tests/golden/types-value-cycle-shadow/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Modules: no binding may shadow a name already in scope, including the prelude.
2+tests: A sample shadow is reported independently; nested cell samples, with and without a potentially shadowing binder, stay unsupported rather than yielding a false cycle error.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-value-cycle-shadow/modules.txtnew file+1
@@ -0,0 +1 @@
1+# Use the actual source-backed prelude.
tests/golden/types-value-cycle-shadow/source.jibbnew file+6
@@ -0,0 +1,6 @@
1+++ first |= second second
2+++ second first
3+++ alpha ^- @t (beta "x")
4+++ beta |= [nest=[alpha=@t other=@t] val=@t] alpha
5+++ gamma ^- @t (delta "x")
6+++ delta |= [nest=[left=@t other=@t] val=@t] gamma
tests/golden/types-value-cycle-shadow/tokens.txtnew file+68
@@ -0,0 +1,68 @@
1+1:1 glyph ++
2+1:4 name first
3+1:10 glyph |=
4+1:13 name second
5+1:20 name second
6+2:1 NEWLINE
7+2:1 glyph ++
8+2:4 name second
9+2:11 name first
10+3:1 NEWLINE
11+3:1 glyph ++
12+3:4 name alpha
13+3:10 glyph ^-
14+3:13 aura @t
15+3:16 glyph (
16+3:17 tight name beta
17+3:22 str "x"
18+3:25 tight glyph )
19+4:1 NEWLINE
20+4:1 glyph ++
21+4:4 name beta
22+4:9 glyph |=
23+4:12 glyph [
24+4:13 tight name nest
25+4:17 tight glyph =
26+4:18 tight glyph [
27+4:19 tight name alpha
28+4:24 tight glyph =
29+4:25 tight aura @t
30+4:28 name other
31+4:33 tight glyph =
32+4:34 tight aura @t
33+4:36 tight glyph ]
34+4:38 name val
35+4:41 tight glyph =
36+4:42 tight aura @t
37+4:44 tight glyph ]
38+4:46 name alpha
39+5:1 NEWLINE
40+5:1 glyph ++
41+5:4 name gamma
42+5:10 glyph ^-
43+5:13 aura @t
44+5:16 glyph (
45+5:17 tight name delta
46+5:23 str "x"
47+5:26 tight glyph )
48+6:1 NEWLINE
49+6:1 glyph ++
50+6:4 name delta
51+6:10 glyph |=
52+6:13 glyph [
53+6:14 tight name nest
54+6:18 tight glyph =
55+6:19 tight glyph [
56+6:20 tight name left
57+6:24 tight glyph =
58+6:25 tight aura @t
59+6:28 name other
60+6:33 tight glyph =
61+6:34 tight aura @t
62+6:36 tight glyph ]
63+6:38 name val
64+6:41 tight glyph =
65+6:42 tight aura @t
66+6:44 tight glyph ]
67+6:46 name gamma
68+6:51 NEWLINE
tests/golden/types-value-cycle-shadow/tree.txtnew file+32
@@ -0,0 +1,32 @@
1+(module
2+ (value 1:1 first
3+ (gate 1:10 (bind 1:13 second) (wing 1:20 second)))
4+ (value 2:1 second (wing 2:11 first))
5+ (value 3:1 alpha
6+ (cast 3:10
7+ (aura 3:13 @t)
8+ (group 3:16
9+ (call 3:17 (wing 3:17 beta) (str 3:22 "x")))))
10+ (value 4:1 beta
11+ (gate 4:9
12+ (cell 4:12
13+ (face 4:13 nest
14+ (cell 4:18
15+ (face 4:19 alpha (aura 4:25 @t))
16+ (face 4:28 other (aura 4:34 @t))))
17+ (face 4:38 val (aura 4:42 @t)))
18+ (wing 4:46 alpha)))
19+ (value 5:1 gamma
20+ (cast 5:10
21+ (aura 5:13 @t)
22+ (group 5:16
23+ (call 5:17 (wing 5:17 delta) (str 5:23 "x")))))
24+ (value 6:1 delta
25+ (gate 6:10
26+ (cell 6:13
27+ (face 6:14 nest
28+ (cell 6:19
29+ (face 6:20 left (aura 6:25 @t))
30+ (face 6:28 other (aura 6:34 @t))))
31+ (face 6:38 val (aura 6:42 @t)))
32+ (wing 6:46 gamma))))
tests/golden/types-value-cycle-shadow/types.txtnew file+7
@@ -0,0 +1,7 @@
1+partial inference; module not checked
2+++ first: sample shadows a name
3+++ second: name is not available to partial inference
4+++ alpha: name is not available to partial inference
5+++ beta: name is not available to partial inference
6+++ gamma: name is not available to partial inference
7+++ delta: name is not available to partial inference
tests/golden/types-value-cycle-unsupported/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Modules: gates may be recursive, but other values cannot refer to themselves, including through a gate.
2+tests: Bare aliases or calls can still be gates, while branch and nested-local dependency edges need a fuller proof. The partial checker declines to diagnose these as definite value cycles.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-value-cycle-unsupported/modules.txtnew file+1
@@ -0,0 +1 @@
1+# Use the actual source-backed prelude.
tests/golden/types-value-cycle-unsupported/source.jibbnew file+11
@@ -0,0 +1,11 @@
1+++ open-a open-b
2+++ open-b open-a
3+++ delayed-a (same delayed-a)
4+++ branch-a ?- %.y
5+ %.y branch-b
6+ %.n "no"
7+++ branch-b branch-a
8+++ nested-a
9+ ++ child nested-b
10+ child
11+++ nested-b nested-a
tests/golden/types-value-cycle-unsupported/tokens.txtnew file+45
@@ -0,0 +1,45 @@
1+1:1 glyph ++
2+1:4 name open-a
3+1:11 name open-b
4+2:1 NEWLINE
5+2:1 glyph ++
6+2:4 name open-b
7+2:11 name open-a
8+3:1 NEWLINE
9+3:1 glyph ++
10+3:4 name delayed-a
11+3:14 glyph (
12+3:15 tight name same
13+3:20 name delayed-a
14+3:29 tight glyph )
15+4:1 NEWLINE
16+4:1 glyph ++
17+4:4 name branch-a
18+4:13 glyph ?-
19+4:16 lit %.y
20+5:3 INDENT
21+5:3 lit %.y
22+5:7 name branch-b
23+6:3 NEWLINE
24+6:3 lit %.n
25+6:7 str "no"
26+7:1 DEDENT
27+7:1 NEWLINE
28+7:1 glyph ++
29+7:4 name branch-b
30+7:13 name branch-a
31+8:1 NEWLINE
32+8:1 glyph ++
33+8:4 name nested-a
34+9:3 INDENT
35+9:3 glyph ++
36+9:6 name child
37+9:12 name nested-b
38+10:3 NEWLINE
39+10:3 name child
40+11:1 DEDENT
41+11:1 NEWLINE
42+11:1 glyph ++
43+11:4 name nested-b
44+11:13 name nested-a
45+11:21 NEWLINE
tests/golden/types-value-cycle-unsupported/tree.txtnew file+17
@@ -0,0 +1,17 @@
1+(module
2+ (value 1:1 open-a (wing 1:11 open-b))
3+ (value 2:1 open-b (wing 2:11 open-a))
4+ (value 3:1 delayed-a
5+ (group 3:14
6+ (call 3:15 (wing 3:15 same) (wing 3:20 delayed-a))))
7+ (value 4:1 branch-a
8+ (branch 4:13
9+ (lit 4:16 %.y)
10+ (arm 5:3 (lit 5:3 %.y) (wing 5:7 branch-b))
11+ (arm 6:3 (lit 6:3 %.n) (str 6:7 "no"))))
12+ (value 7:1 branch-b (wing 7:13 branch-a))
13+ (value 8:1 nested-a
14+ (body 9:3
15+ (value 9:3 child (wing 9:12 nested-b))
16+ (wing 10:3 child)))
17+ (value 11:1 nested-b (wing 11:13 nested-a)))
tests/golden/types-value-cycle-unsupported/types.txtnew file+8
@@ -0,0 +1,8 @@
1+partial inference; module not checked
2+++ open-a: name is not available to partial inference
3+++ open-b: name is not available to partial inference
4+++ delayed-a: name is not available to partial inference
5+++ branch-a: name is not available to partial inference
6+++ branch-b: name is not available to partial inference
7+++ nested-a: local definitions need unsupported inference
8+++ nested-b: name is not available to partial inference
tests/golden/types-value-cycles/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Modules: gates may call themselves and their siblings; other values cannot refer to themselves, including through a gate.
2+tests: Explicitly atom- and loobean-typed values in direct, multiple-value and mixed gate/value cycles report the value and a dependency site; a cycle of gates remains generic. This report remains partial.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-value-cycles/modules.txtnew file+1
@@ -0,0 +1 @@
1+# Use the actual source-backed prelude.
tests/golden/types-value-cycles/source.jibbnew file+13
@@ -0,0 +1,13 @@
1+++ title ^- @t title
2+++ first ^- @t second
3+++ second third
4+++ third first
5+++ maker |= x value
6+++ value ^- @t (maker "hi")
7+++ flag-a ^- ? flag-b
8+++ flag-b flag-a
9+++ outer ^- @t (gate "hi")
10+++ gate |= x (helper x)
11+++ helper |= y outer
12+++ left |= x (right x)
13+++ right |= y (left y)
tests/golden/types-value-cycles/tokens.txtnew file+87
@@ -0,0 +1,87 @@
1+1:1 glyph ++
2+1:4 name title
3+1:10 glyph ^-
4+1:13 aura @t
5+1:16 name title
6+2:1 NEWLINE
7+2:1 glyph ++
8+2:4 name first
9+2:10 glyph ^-
10+2:13 aura @t
11+2:16 name second
12+3:1 NEWLINE
13+3:1 glyph ++
14+3:4 name second
15+3:11 name third
16+4:1 NEWLINE
17+4:1 glyph ++
18+4:4 name third
19+4:10 name first
20+5:1 NEWLINE
21+5:1 glyph ++
22+5:4 name maker
23+5:10 glyph |=
24+5:13 name x
25+5:15 name value
26+6:1 NEWLINE
27+6:1 glyph ++
28+6:4 name value
29+6:10 glyph ^-
30+6:13 aura @t
31+6:16 glyph (
32+6:17 tight name maker
33+6:23 str "hi"
34+6:27 tight glyph )
35+7:1 NEWLINE
36+7:1 glyph ++
37+7:4 name flag-a
38+7:11 glyph ^-
39+7:14 glyph ?
40+7:16 name flag-b
41+8:1 NEWLINE
42+8:1 glyph ++
43+8:4 name flag-b
44+8:11 name flag-a
45+9:1 NEWLINE
46+9:1 glyph ++
47+9:4 name outer
48+9:10 glyph ^-
49+9:13 aura @t
50+9:16 glyph (
51+9:17 tight name gate
52+9:22 str "hi"
53+9:26 tight glyph )
54+10:1 NEWLINE
55+10:1 glyph ++
56+10:4 name gate
57+10:9 glyph |=
58+10:12 name x
59+10:14 glyph (
60+10:15 tight name helper
61+10:22 name x
62+10:23 tight glyph )
63+11:1 NEWLINE
64+11:1 glyph ++
65+11:4 name helper
66+11:11 glyph |=
67+11:14 name y
68+11:16 name outer
69+12:1 NEWLINE
70+12:1 glyph ++
71+12:4 name left
72+12:9 glyph |=
73+12:12 name x
74+12:14 glyph (
75+12:15 tight name right
76+12:21 name x
77+12:22 tight glyph )
78+13:1 NEWLINE
79+13:1 glyph ++
80+13:4 name right
81+13:10 glyph |=
82+13:13 name y
83+13:15 glyph (
84+13:16 tight name left
85+13:21 name y
86+13:22 tight glyph )
87+13:23 NEWLINE
tests/golden/types-value-cycles/tree.txtnew file+39
@@ -0,0 +1,39 @@
1+(module
2+ (value 1:1 title
3+ (cast 1:10 (aura 1:13 @t) (wing 1:16 title)))
4+ (value 2:1 first
5+ (cast 2:10 (aura 2:13 @t) (wing 2:16 second)))
6+ (value 3:1 second (wing 3:11 third))
7+ (value 4:1 third (wing 4:10 first))
8+ (value 5:1 maker
9+ (gate 5:10 (bind 5:13 x) (wing 5:15 value)))
10+ (value 6:1 value
11+ (cast 6:10
12+ (aura 6:13 @t)
13+ (group 6:16
14+ (call 6:17 (wing 6:17 maker) (str 6:23 "hi")))))
15+ (value 7:1 flag-a
16+ (cast 7:11 (flag 7:14) (wing 7:16 flag-b)))
17+ (value 8:1 flag-b (wing 8:11 flag-a))
18+ (value 9:1 outer
19+ (cast 9:10
20+ (aura 9:13 @t)
21+ (group 9:16
22+ (call 9:17 (wing 9:17 gate) (str 9:22 "hi")))))
23+ (value 10:1 gate
24+ (gate 10:9
25+ (bind 10:12 x)
26+ (group 10:14
27+ (call 10:15 (wing 10:15 helper) (wing 10:22 x)))))
28+ (value 11:1 helper
29+ (gate 11:11 (bind 11:14 y) (wing 11:16 outer)))
30+ (value 12:1 left
31+ (gate 12:9
32+ (bind 12:12 x)
33+ (group 12:14
34+ (call 12:15 (wing 12:15 right) (wing 12:21 x)))))
35+ (value 13:1 right
36+ (gate 13:10
37+ (bind 13:13 y)
38+ (group 13:15
39+ (call 13:16 (wing 13:16 left) (wing 13:21 y))))))
tests/golden/types-value-cycles/types.txtnew file+44
@@ -0,0 +1,44 @@
1+partial inference; module not checked
2+++ title: non-gate value depends on itself through a cycle
3+/tests/golden/types-value-cycles/source.jibb:1:1: value in cycle
4+++ title ^- @t title
5+^
6+/tests/golden/types-value-cycles/source.jibb:1:16: dependency in cycle
7+++ title ^- @t title
8+ ^
9+++ first: non-gate value depends on itself through a cycle
10+/tests/golden/types-value-cycles/source.jibb:2:1: value in cycle
11+++ first ^- @t second
12+^
13+/tests/golden/types-value-cycles/source.jibb:2:16: dependency in cycle
14+++ first ^- @t second
15+ ^
16+++ second: name is not available to partial inference
17+++ third: name is not available to partial inference
18+++ maker: name is not available to partial inference
19+++ value: non-gate value depends on itself through a cycle
20+/tests/golden/types-value-cycles/source.jibb:6:1: value in cycle
21+++ value ^- @t (maker "hi")
22+^
23+/tests/golden/types-value-cycles/source.jibb:6:17: dependency in cycle
24+++ value ^- @t (maker "hi")
25+ ^
26+++ flag-a: non-gate value depends on itself through a cycle
27+/tests/golden/types-value-cycles/source.jibb:7:1: value in cycle
28+++ flag-a ^- ? flag-b
29+^
30+/tests/golden/types-value-cycles/source.jibb:7:16: dependency in cycle
31+++ flag-a ^- ? flag-b
32+ ^
33+++ flag-b: name is not available to partial inference
34+++ outer: non-gate value depends on itself through a cycle
35+/tests/golden/types-value-cycles/source.jibb:9:1: value in cycle
36+++ outer ^- @t (gate "hi")
37+^
38+/tests/golden/types-value-cycles/source.jibb:9:17: dependency in cycle
39+++ outer ^- @t (gate "hi")
40+ ^
41+++ gate: name is not available to partial inference
42+++ helper: name is not available to partial inference
43+++ left: $-(A B)
44+++ right: $-(A B)
tests/importer/about.txt+2−1
@@ -9,7 +9,8 @@ explicit union argument when the exact call wrapper and collection provenance
99are validated and all union cases are static and pairwise disjoint. Cases
1010cover overlap, collapsed branches, multiple or nested unions, dependent
1111branches, forged subject, sample and tail wrappers, and a shadowed
12−collection. Tagged source cases exercise named payload dependencies, valid and collapsed enums,
12+collection. Tagged source cases exercise bare null payloads, overlapping tags and hidden
13+invalid dependencies, named payload dependencies, valid and collapsed enums,
1314direct and transitively aliased overlaps, nested collections, shadowed jar and
1415jug dependencies, Ford-name collisions, zuse local-name precedence and the
1516shared proof budget. Four real `presence` unions exercise the same path.
tests/importer/small.txt+4
@@ -106,4 +106,8 @@
106106+$ mark-flag-valid $%([%added item=mark-flag-item] [%removed id=@ud])
107107+$ mark-flag-overlap $%([%x item=mark-flag-item] [%x id=@ud])
108108+$ mark-flag-hidden $%([%ok x=tag-invalid-chain] [%err item=mark-flag-item])
109+:: A bare null remains safe inside distinct tagged cases.
110++$ tag-null-good $%([%ok ~] [%err message=@t])
111++$ tag-null-duplicate $%([%same ~] [%same ~])
112++$ tag-null-hidden $%([%ok value=tag-invalid-chain] [%err ~])
109113--
tests/importer/tree.txt+3
@@ -153,6 +153,9 @@ unverified-subject: error: Hoon module provenance is unavailable
153153tag-ford-collision: error: a Hoon union needs a source-level disjointness check
154154tag-ford-clean: (union [ok a=@t] [err a=@ud])
155155tag-zuse-local: (union [ok who=@t] [err where=@ud])
156+tag-null-good: (union [ok @n:0] [err message=@t])
157+tag-null-duplicate: error: Hoon union disjointness could not be verified
158+tag-null-hidden: error: a Hoon union needs a source-level disjointness check
156159tag-valid: (union [ok a=@t] [err a=@ud])
157160tag-duplicate: error: Hoon union disjointness could not be verified
158161tag-collapsed: error: Hoon union disjointness could not be verified
tests/lib/jibb.hoon+667−641
@@ -1491,527 +1491,545 @@
14911491/* typ-437 %txt /tests/golden/types-import-sur-record-graph/types/txt
14921492/* imp-437-1 %txt /tests/golden/types-import-sur-record-graph/sur/fixture/txt
14931493/* mtre-437 %txt /tests/golden/types-import-sur-record-graph/module-trees/txt
1494−/* src-438 %jibb /tests/golden/types-list-branch/source/jibb
1495−/* tok-438 %txt /tests/golden/types-list-branch/tokens/txt
1496−/* tre-438 %txt /tests/golden/types-list-branch/tree/txt
1497−/* typ-438 %txt /tests/golden/types-list-branch/types/txt
1498−/* src-439 %jibb /tests/golden/types-list-cons/source/jibb
1499−/* tok-439 %txt /tests/golden/types-list-cons/tokens/txt
1500−/* tre-439 %txt /tests/golden/types-list-cons/tree/txt
1501−/* typ-439 %txt /tests/golden/types-list-cons/types/txt
1502−/* src-440 %jibb /tests/golden/types-list-context/source/jibb
1503−/* tok-440 %txt /tests/golden/types-list-context/tokens/txt
1504−/* tre-440 %txt /tests/golden/types-list-context/tree/txt
1505−/* typ-440 %txt /tests/golden/types-list-context/types/txt
1506−/* src-441 %jibb /tests/golden/types-list-imported/source/jibb
1507−/* tok-441 %txt /tests/golden/types-list-imported/tokens/txt
1508−/* tre-441 %txt /tests/golden/types-list-imported/tree/txt
1509−/* typ-441 %txt /tests/golden/types-list-imported/types/txt
1510−/* imp-441-1 %txt /tests/golden/types-list-imported/sur/fixture/txt
1511−/* imp-441-2 %txt /tests/golden/types-list-imported/sur/fixture/txt
1512−/* src-442 %jibb /tests/golden/types-list-open/source/jibb
1513−/* tok-442 %txt /tests/golden/types-list-open/tokens/txt
1514−/* tre-442 %txt /tests/golden/types-list-open/tree/txt
1515−/* typ-442 %txt /tests/golden/types-list-open/types/txt
1516−/* src-443 %jibb /tests/golden/types-list-open-constraints/source/jibb
1517−/* tok-443 %txt /tests/golden/types-list-open-constraints/tokens/txt
1518−/* tre-443 %txt /tests/golden/types-list-open-constraints/tree/txt
1519−/* typ-443 %txt /tests/golden/types-list-open-constraints/types/txt
1520−/* src-444 %jibb /tests/golden/types-list-pattern-imported/source/jibb
1521−/* tok-444 %txt /tests/golden/types-list-pattern-imported/tokens/txt
1522−/* tre-444 %txt /tests/golden/types-list-pattern-imported/tree/txt
1523−/* typ-444 %txt /tests/golden/types-list-pattern-imported/types/txt
1524−/* imp-444-1 %txt /tests/golden/types-list-pattern-imported/sur/fixture/txt
1525−/* imp-444-2 %txt /tests/golden/types-list-pattern-imported/sur/fixture/txt
1526−/* src-445 %jibb /tests/golden/types-list-patterns/source/jibb
1527−/* tok-445 %txt /tests/golden/types-list-patterns/tokens/txt
1528−/* tre-445 %txt /tests/golden/types-list-patterns/tree/txt
1529−/* typ-445 %txt /tests/golden/types-list-patterns/types/txt
1530−/* src-446 %jibb /tests/golden/types-list-zero-fit/source/jibb
1531−/* tok-446 %txt /tests/golden/types-list-zero-fit/tokens/txt
1532−/* tre-446 %txt /tests/golden/types-list-zero-fit/tree/txt
1533−/* typ-446 %txt /tests/golden/types-list-zero-fit/types/txt
1534−/* src-447 %jibb /tests/golden/types-local-capitals/source/jibb
1535−/* tok-447 %txt /tests/golden/types-local-capitals/tokens/txt
1536−/* tre-447 %txt /tests/golden/types-local-capitals/tree/txt
1537−/* typ-447 %txt /tests/golden/types-local-capitals/types/txt
1538−/* src-448 %jibb /tests/golden/types-local-recursive/source/jibb
1539−/* tok-448 %txt /tests/golden/types-local-recursive/tokens/txt
1540−/* tre-448 %txt /tests/golden/types-local-recursive/tree/txt
1541−/* typ-448 %txt /tests/golden/types-local-recursive/types/txt
1542−/* src-449 %jibb /tests/golden/types-local-scc/source/jibb
1543−/* tok-449 %txt /tests/golden/types-local-scc/tokens/txt
1544−/* tre-449 %txt /tests/golden/types-local-scc/tree/txt
1545−/* typ-449 %txt /tests/golden/types-local-scc/types/txt
1546−/* src-450 %jibb /tests/golden/types-local-scc-adversarial/source/jibb
1547−/* tok-450 %txt /tests/golden/types-local-scc-adversarial/tokens/txt
1548−/* tre-450 %txt /tests/golden/types-local-scc-adversarial/tree/txt
1549−/* typ-450 %txt /tests/golden/types-local-scc-adversarial/types/txt
1550−/* src-451 %jibb /tests/golden/types-missing-tag-context/source/jibb
1551−/* tok-451 %txt /tests/golden/types-missing-tag-context/tokens/txt
1552−/* tre-451 %txt /tests/golden/types-missing-tag-context/tree/txt
1553−/* typ-451 %txt /tests/golden/types-missing-tag-context/types/txt
1554−/* src-452 %jibb /tests/golden/types-missing-tag-imported/source/jibb
1555−/* tok-452 %txt /tests/golden/types-missing-tag-imported/tokens/txt
1556−/* tre-452 %txt /tests/golden/types-missing-tag-imported/tree/txt
1557−/* typ-452 %txt /tests/golden/types-missing-tag-imported/types/txt
1558−/* imp-452-1 %txt /tests/golden/types-missing-tag-imported/sur/fixture/txt
1559−/* imp-452-2 %txt /tests/golden/types-missing-tag-imported/sur/fixture/txt
1560−/* src-453 %jibb /tests/golden/types-missing-tag-named/source/jibb
1561−/* tok-453 %txt /tests/golden/types-missing-tag-named/tokens/txt
1562−/* tre-453 %txt /tests/golden/types-missing-tag-named/tree/txt
1563−/* typ-453 %txt /tests/golden/types-missing-tag-named/types/txt
1564−/* src-454 %jibb /tests/golden/types-module-fixtures/source/jibb
1565−/* tok-454 %txt /tests/golden/types-module-fixtures/tokens/txt
1566−/* tre-454 %txt /tests/golden/types-module-fixtures/tree/txt
1567−/* mod-454-1 %jibb /tests/golden/types-module-fixtures/modules/ui/api/blog/jibb
1568−/* mod-454-2 %jibb /tests/golden/types-module-fixtures/modules/ui/components/card/jibb
1569−/* typ-454 %txt /tests/golden/types-module-fixtures/types/txt
1570−/* mtre-454 %txt /tests/golden/types-module-fixtures/module-trees/txt
1571−/* src-455 %jibb /tests/golden/types-module-mixed/source/jibb
1572−/* tok-455 %txt /tests/golden/types-module-mixed/tokens/txt
1573−/* tre-455 %txt /tests/golden/types-module-mixed/tree/txt
1574−/* mod-455-1 %jibb /tests/golden/types-module-mixed/modules/ui/helper/jibb
1575−/* typ-455 %txt /tests/golden/types-module-mixed/types/txt
1576−/* imp-455-1 %txt /tests/golden/types-module-mixed/sur/fixture/txt
1577−/* mark-455-1 %txt /tests/golden/types-module-mixed/mar/label/txt
1578−/* mtre-455 %txt /tests/golden/types-module-mixed/module-trees/txt
1579−/* src-456 %jibb /tests/golden/types-multi-call/source/jibb
1580−/* tok-456 %txt /tests/golden/types-multi-call/tokens/txt
1581−/* tre-456 %txt /tests/golden/types-multi-call/tree/txt
1582−/* typ-456 %txt /tests/golden/types-multi-call/types/txt
1583−/* src-457 %jibb /tests/golden/types-multi-import/source/jibb
1584−/* tok-457 %txt /tests/golden/types-multi-import/tokens/txt
1585−/* tre-457 %txt /tests/golden/types-multi-import/tree/txt
1586−/* mod-457-1 %jibb /tests/golden/types-multi-import/modules/ui/lib/jibb
1587−/* typ-457 %txt /tests/golden/types-multi-import/types/txt
1588−/* mtre-457 %txt /tests/golden/types-multi-import/module-trees/txt
1589−/* src-458 %jibb /tests/golden/types-nested-missing-tag/source/jibb
1590−/* tok-458 %txt /tests/golden/types-nested-missing-tag/tokens/txt
1591−/* tre-458 %txt /tests/golden/types-nested-missing-tag/tree/txt
1592−/* typ-458 %txt /tests/golden/types-nested-missing-tag/types/txt
1593−/* src-459 %jibb /tests/golden/types-null-context/source/jibb
1594−/* tok-459 %txt /tests/golden/types-null-context/tokens/txt
1595−/* tre-459 %txt /tests/golden/types-null-context/tree/txt
1596−/* typ-459 %txt /tests/golden/types-null-context/types/txt
1597−/* src-460 %jibb /tests/golden/types-null-overlap/source/jibb
1598−/* tok-460 %txt /tests/golden/types-null-overlap/tokens/txt
1599−/* tre-460 %txt /tests/golden/types-null-overlap/tree/txt
1600−/* typ-460 %txt /tests/golden/types-null-overlap/types/txt
1601−/* src-461 %jibb /tests/golden/types-null-unresolved/source/jibb
1602−/* tok-461 %txt /tests/golden/types-null-unresolved/tokens/txt
1603−/* tre-461 %txt /tests/golden/types-null-unresolved/tree/txt
1604−/* typ-461 %txt /tests/golden/types-null-unresolved/types/txt
1605−/* src-462 %jibb /tests/golden/types-partial-apply/source/jibb
1606−/* tok-462 %txt /tests/golden/types-partial-apply/tokens/txt
1607−/* tre-462 %txt /tests/golden/types-partial-apply/tree/txt
1608−/* typ-462 %txt /tests/golden/types-partial-apply/types/txt
1609−/* src-463 %jibb /tests/golden/types-partial-atom-alias/source/jibb
1610−/* tok-463 %txt /tests/golden/types-partial-atom-alias/tokens/txt
1611−/* tre-463 %txt /tests/golden/types-partial-atom-alias/tree/txt
1612−/* typ-463 %txt /tests/golden/types-partial-atom-alias/types/txt
1613−/* src-464 %jibb /tests/golden/types-partial-atom-constraint/source/jibb
1614−/* tok-464 %txt /tests/golden/types-partial-atom-constraint/tokens/txt
1615−/* tre-464 %txt /tests/golden/types-partial-atom-constraint/tree/txt
1616−/* typ-464 %txt /tests/golden/types-partial-atom-constraint/types/txt
1617−/* src-465 %jibb /tests/golden/types-partial-atom-widening/source/jibb
1618−/* tok-465 %txt /tests/golden/types-partial-atom-widening/tokens/txt
1619−/* tre-465 %txt /tests/golden/types-partial-atom-widening/tree/txt
1620−/* typ-465 %txt /tests/golden/types-partial-atom-widening/types/txt
1621−/* src-466 %jibb /tests/golden/types-partial-aura/source/jibb
1622−/* tok-466 %txt /tests/golden/types-partial-aura/tokens/txt
1623−/* tre-466 %txt /tests/golden/types-partial-aura/tree/txt
1624−/* typ-466 %txt /tests/golden/types-partial-aura/types/txt
1625−/* src-467 %jibb /tests/golden/types-partial-aura-family/source/jibb
1626−/* tok-467 %txt /tests/golden/types-partial-aura-family/tokens/txt
1627−/* tre-467 %txt /tests/golden/types-partial-aura-family/tree/txt
1628−/* typ-467 %txt /tests/golden/types-partial-aura-family/types/txt
1629−/* src-468 %jibb /tests/golden/types-partial-aura-generalization/source/jibb
1630−/* tok-468 %txt /tests/golden/types-partial-aura-generalization/tokens/txt
1631−/* tre-468 %txt /tests/golden/types-partial-aura-generalization/tree/txt
1632−/* typ-468 %txt /tests/golden/types-partial-aura-generalization/types/txt
1633−/* src-469 %jibb /tests/golden/types-partial-bare-atom/source/jibb
1634−/* tok-469 %txt /tests/golden/types-partial-bare-atom/tokens/txt
1635−/* tre-469 %txt /tests/golden/types-partial-bare-atom/tree/txt
1636−/* typ-469 %txt /tests/golden/types-partial-bare-atom/types/txt
1637−/* src-470 %jibb /tests/golden/types-partial-branch-widening/source/jibb
1638−/* tok-470 %txt /tests/golden/types-partial-branch-widening/tokens/txt
1639−/* tre-470 %txt /tests/golden/types-partial-branch-widening/tree/txt
1640−/* typ-470 %txt /tests/golden/types-partial-branch-widening/types/txt
1641−/* src-471 %jibb /tests/golden/types-partial-conflicting-sites/source/jibb
1642−/* tok-471 %txt /tests/golden/types-partial-conflicting-sites/tokens/txt
1643−/* tre-471 %txt /tests/golden/types-partial-conflicting-sites/tree/txt
1644−/* typ-471 %txt /tests/golden/types-partial-conflicting-sites/types/txt
1645−/* src-472 %jibb /tests/golden/types-partial-decimal-default/source/jibb
1646−/* tok-472 %txt /tests/golden/types-partial-decimal-default/tokens/txt
1647−/* tre-472 %txt /tests/golden/types-partial-decimal-default/tree/txt
1648−/* typ-472 %txt /tests/golden/types-partial-decimal-default/types/txt
1649−/* src-473 %jibb /tests/golden/types-partial-dependency-chain/source/jibb
1650−/* tok-473 %txt /tests/golden/types-partial-dependency-chain/tokens/txt
1651−/* tre-473 %txt /tests/golden/types-partial-dependency-chain/tree/txt
1652−/* typ-473 %txt /tests/golden/types-partial-dependency-chain/types/txt
1653−/* src-474 %jibb /tests/golden/types-partial-explicit-capital/source/jibb
1654−/* tok-474 %txt /tests/golden/types-partial-explicit-capital/tokens/txt
1655−/* tre-474 %txt /tests/golden/types-partial-explicit-capital/tree/txt
1656−/* typ-474 %txt /tests/golden/types-partial-explicit-capital/types/txt
1657−/* src-475 %jibb /tests/golden/types-partial-forward/source/jibb
1658−/* tok-475 %txt /tests/golden/types-partial-forward/tokens/txt
1659−/* tre-475 %txt /tests/golden/types-partial-forward/tree/txt
1660−/* typ-475 %txt /tests/golden/types-partial-forward/types/txt
1661−/* src-476 %jibb /tests/golden/types-partial-generalization/source/jibb
1662−/* tok-476 %txt /tests/golden/types-partial-generalization/tokens/txt
1663−/* tre-476 %txt /tests/golden/types-partial-generalization/tree/txt
1664−/* typ-476 %txt /tests/golden/types-partial-generalization/types/txt
1665−/* src-477 %jibb /tests/golden/types-partial-identity/source/jibb
1666−/* tok-477 %txt /tests/golden/types-partial-identity/tokens/txt
1667−/* tre-477 %txt /tests/golden/types-partial-identity/tree/txt
1668−/* typ-477 %txt /tests/golden/types-partial-identity/types/txt
1669−/* src-478 %jibb /tests/golden/types-partial-independent-atoms/source/jibb
1670−/* tok-478 %txt /tests/golden/types-partial-independent-atoms/tokens/txt
1671−/* tre-478 %txt /tests/golden/types-partial-independent-atoms/tree/txt
1672−/* typ-478 %txt /tests/golden/types-partial-independent-atoms/types/txt
1673−/* src-479 %jibb /tests/golden/types-partial-local-molds/source/jibb
1674−/* tok-479 %txt /tests/golden/types-partial-local-molds/tokens/txt
1675−/* tre-479 %txt /tests/golden/types-partial-local-molds/tree/txt
1676−/* typ-479 %txt /tests/golden/types-partial-local-molds/types/txt
1677−/* src-480 %jibb /tests/golden/types-partial-locals/source/jibb
1678−/* tok-480 %txt /tests/golden/types-partial-locals/tokens/txt
1679−/* tre-480 %txt /tests/golden/types-partial-locals/tree/txt
1680−/* typ-480 %txt /tests/golden/types-partial-locals/types/txt
1681−/* src-481 %jibb /tests/golden/types-partial-many-atom-constraints/source/jibb
1682−/* tok-481 %txt /tests/golden/types-partial-many-atom-constraints/tokens/txt
1683−/* tre-481 %txt /tests/golden/types-partial-many-atom-constraints/tree/txt
1684−/* typ-481 %txt /tests/golden/types-partial-many-atom-constraints/types/txt
1685−/* src-482 %jibb /tests/golden/types-partial-mold-bare-aura/source/jibb
1686−/* tok-482 %txt /tests/golden/types-partial-mold-bare-aura/tokens/txt
1687−/* tre-482 %txt /tests/golden/types-partial-mold-bare-aura/tree/txt
1688−/* typ-482 %txt /tests/golden/types-partial-mold-bare-aura/types/txt
1689−/* src-483 %jibb /tests/golden/types-partial-mold-composite/source/jibb
1690−/* tok-483 %txt /tests/golden/types-partial-mold-composite/tokens/txt
1691−/* tre-483 %txt /tests/golden/types-partial-mold-composite/tree/txt
1692−/* typ-483 %txt /tests/golden/types-partial-mold-composite/types/txt
1693−/* src-484 %jibb /tests/golden/types-partial-mold-forward/source/jibb
1694−/* tok-484 %txt /tests/golden/types-partial-mold-forward/tokens/txt
1695−/* tre-484 %txt /tests/golden/types-partial-mold-forward/tree/txt
1696−/* typ-484 %txt /tests/golden/types-partial-mold-forward/types/txt
1697−/* src-485 %jibb /tests/golden/types-partial-mold-recursive/source/jibb
1698−/* tok-485 %txt /tests/golden/types-partial-mold-recursive/tokens/txt
1699−/* tre-485 %txt /tests/golden/types-partial-mold-recursive/tree/txt
1700−/* typ-485 %txt /tests/golden/types-partial-mold-recursive/types/txt
1701−/* src-486 %jibb /tests/golden/types-partial-occurs/source/jibb
1702−/* tok-486 %txt /tests/golden/types-partial-occurs/tokens/txt
1703−/* tre-486 %txt /tests/golden/types-partial-occurs/tree/txt
1704−/* typ-486 %txt /tests/golden/types-partial-occurs/types/txt
1705−/* src-487 %jibb /tests/golden/types-partial-projection/source/jibb
1706−/* tok-487 %txt /tests/golden/types-partial-projection/tokens/txt
1707−/* tre-487 %txt /tests/golden/types-partial-projection/tree/txt
1708−/* typ-487 %txt /tests/golden/types-partial-projection/types/txt
1709−/* src-488 %jibb /tests/golden/types-partial-shadow-global/source/jibb
1710−/* tok-488 %txt /tests/golden/types-partial-shadow-global/tokens/txt
1711−/* tre-488 %txt /tests/golden/types-partial-shadow-global/tree/txt
1712−/* typ-488 %txt /tests/golden/types-partial-shadow-global/types/txt
1713−/* src-489 %jibb /tests/golden/types-partial-shared-tvar/source/jibb
1714−/* tok-489 %txt /tests/golden/types-partial-shared-tvar/tokens/txt
1715−/* tre-489 %txt /tests/golden/types-partial-shared-tvar/tree/txt
1716−/* typ-489 %txt /tests/golden/types-partial-shared-tvar/types/txt
1717−/* src-490 %jibb /tests/golden/types-partial-union-cases/source/jibb
1718−/* tok-490 %txt /tests/golden/types-partial-union-cases/tokens/txt
1719−/* tre-490 %txt /tests/golden/types-partial-union-cases/tree/txt
1720−/* typ-490 %txt /tests/golden/types-partial-union-cases/types/txt
1721−/* src-491 %jibb /tests/golden/types-partial-union-edges/source/jibb
1722−/* tok-491 %txt /tests/golden/types-partial-union-edges/tokens/txt
1723−/* tre-491 %txt /tests/golden/types-partial-union-edges/tree/txt
1724−/* typ-491 %txt /tests/golden/types-partial-union-edges/types/txt
1725−/* src-492 %jibb /tests/golden/types-partial-unresolved-tag/source/jibb
1726−/* tok-492 %txt /tests/golden/types-partial-unresolved-tag/tokens/txt
1727−/* tre-492 %txt /tests/golden/types-partial-unresolved-tag/tree/txt
1728−/* typ-492 %txt /tests/golden/types-partial-unresolved-tag/types/txt
1729−/* src-493 %jibb /tests/golden/types-prelude-direct/source/jibb
1730−/* tok-493 %txt /tests/golden/types-prelude-direct/tokens/txt
1731−/* tre-493 %txt /tests/golden/types-prelude-direct/tree/txt
1732−/* typ-493 %txt /tests/golden/types-prelude-direct/types/txt
1733−/* src-494 %jibb /tests/golden/types-prelude-interface/source/jibb
1734−/* tok-494 %txt /tests/golden/types-prelude-interface/tokens/txt
1735−/* tre-494 %txt /tests/golden/types-prelude-interface/tree/txt
1736−/* mod-494-1 %jibb /tests/golden/types-prelude-interface/modules/ui/left/jibb
1737−/* mod-494-2 %jibb /tests/golden/types-prelude-interface/modules/ui/right/jibb
1738−/* typ-494 %txt /tests/golden/types-prelude-interface/types/txt
1739−/* mtre-494 %txt /tests/golden/types-prelude-interface/module-trees/txt
1740−/* src-495 %jibb /tests/golden/types-prelude-list-functions/source/jibb
1741−/* tok-495 %txt /tests/golden/types-prelude-list-functions/tokens/txt
1742−/* tre-495 %txt /tests/golden/types-prelude-list-functions/tree/txt
1743−/* mod-495-1 %jibb /tests/golden/types-prelude-list-functions/modules/ui/lib/jibb
1744−/* typ-495 %txt /tests/golden/types-prelude-list-functions/types/txt
1745−/* mtre-495 %txt /tests/golden/types-prelude-list-functions/module-trees/txt
1746−/* src-496 %jibb /tests/golden/types-prelude-list-helpers/source/jibb
1747−/* tok-496 %txt /tests/golden/types-prelude-list-helpers/tokens/txt
1748−/* tre-496 %txt /tests/golden/types-prelude-list-helpers/tree/txt
1749−/* typ-496 %txt /tests/golden/types-prelude-list-helpers/types/txt
1750−/* src-497 %jibb /tests/golden/types-prelude-unit-helpers/source/jibb
1751−/* tok-497 %txt /tests/golden/types-prelude-unit-helpers/tokens/txt
1752−/* tre-497 %txt /tests/golden/types-prelude-unit-helpers/tree/txt
1753−/* typ-497 %txt /tests/golden/types-prelude-unit-helpers/types/txt
1754−/* src-498 %jibb /tests/golden/types-record-bound-variable/source/jibb
1755−/* tok-498 %txt /tests/golden/types-record-bound-variable/tokens/txt
1756−/* tre-498 %txt /tests/golden/types-record-bound-variable/tree/txt
1757−/* typ-498 %txt /tests/golden/types-record-bound-variable/types/txt
1758−/* src-499 %jibb /tests/golden/types-record-cast-context/source/jibb
1759−/* tok-499 %txt /tests/golden/types-record-cast-context/tokens/txt
1760−/* tre-499 %txt /tests/golden/types-record-cast-context/tree/txt
1761−/* typ-499 %txt /tests/golden/types-record-cast-context/types/txt
1762−/* src-500 %jibb /tests/golden/types-record-change/source/jibb
1763−/* tok-500 %txt /tests/golden/types-record-change/tokens/txt
1764−/* tre-500 %txt /tests/golden/types-record-change/tree/txt
1765−/* typ-500 %txt /tests/golden/types-record-change/types/txt
1766−/* src-501 %jibb /tests/golden/types-record-change-generic/source/jibb
1767−/* tok-501 %txt /tests/golden/types-record-change-generic/tokens/txt
1768−/* tre-501 %txt /tests/golden/types-record-change-generic/tree/txt
1769−/* typ-501 %txt /tests/golden/types-record-change-generic/types/txt
1770−/* src-502 %jibb /tests/golden/types-record-faces/source/jibb
1771−/* tok-502 %txt /tests/golden/types-record-faces/tokens/txt
1772−/* tre-502 %txt /tests/golden/types-record-faces/tree/txt
1773−/* typ-502 %txt /tests/golden/types-record-faces/types/txt
1774−/* src-503 %jibb /tests/golden/types-record-import/source/jibb
1775−/* tok-503 %txt /tests/golden/types-record-import/tokens/txt
1776−/* tre-503 %txt /tests/golden/types-record-import/tree/txt
1777−/* mod-503-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
1778−/* typ-503 %txt /tests/golden/types-record-import/types/txt
1779−/* mtre-503 %txt /tests/golden/types-record-import/module-trees/txt
1780−/* src-504 %jibb /tests/golden/types-record-local-scheme/source/jibb
1781−/* tok-504 %txt /tests/golden/types-record-local-scheme/tokens/txt
1782−/* tre-504 %txt /tests/golden/types-record-local-scheme/tree/txt
1783−/* typ-504 %txt /tests/golden/types-record-local-scheme/types/txt
1784−/* src-505 %jibb /tests/golden/types-record-nested/source/jibb
1785−/* tok-505 %txt /tests/golden/types-record-nested/tokens/txt
1786−/* tre-505 %txt /tests/golden/types-record-nested/tree/txt
1787−/* typ-505 %txt /tests/golden/types-record-nested/types/txt
1788−/* src-506 %jibb /tests/golden/types-record-to-tuple/source/jibb
1789−/* tok-506 %txt /tests/golden/types-record-to-tuple/tokens/txt
1790−/* tre-506 %txt /tests/golden/types-record-to-tuple/tree/txt
1791−/* typ-506 %txt /tests/golden/types-record-to-tuple/types/txt
1792−/* src-507 %jibb /tests/golden/types-recursion-scc-failures/source/jibb
1793−/* tok-507 %txt /tests/golden/types-recursion-scc-failures/tokens/txt
1794−/* tre-507 %txt /tests/golden/types-recursion-scc-failures/tree/txt
1795−/* typ-507 %txt /tests/golden/types-recursion-scc-failures/types/txt
1796−/* src-508 %jibb /tests/golden/types-recursion-scc-groups/source/jibb
1797−/* tok-508 %txt /tests/golden/types-recursion-scc-groups/tokens/txt
1798−/* tre-508 %txt /tests/golden/types-recursion-scc-groups/tree/txt
1799−/* typ-508 %txt /tests/golden/types-recursion-scc-groups/types/txt
1800−/* src-509 %jibb /tests/golden/types-recursion-scc-import/source/jibb
1801−/* tok-509 %txt /tests/golden/types-recursion-scc-import/tokens/txt
1802−/* tre-509 %txt /tests/golden/types-recursion-scc-import/tree/txt
1803−/* mod-509-1 %jibb /tests/golden/types-recursion-scc-import/modules/ui/lib/jibb
1804−/* typ-509 %txt /tests/golden/types-recursion-scc-import/types/txt
1805−/* mtre-509 %txt /tests/golden/types-recursion-scc-import/module-trees/txt
1806−/* src-510 %jibb /tests/golden/types-recursion-scc-import-bad/source/jibb
1807−/* tok-510 %txt /tests/golden/types-recursion-scc-import-bad/tokens/txt
1808−/* tre-510 %txt /tests/golden/types-recursion-scc-import-bad/tree/txt
1809−/* mod-510-1 %jibb /tests/golden/types-recursion-scc-import-bad/modules/ui/lib/jibb
1810−/* typ-510 %txt /tests/golden/types-recursion-scc-import-bad/types/txt
1811−/* mtre-510 %txt /tests/golden/types-recursion-scc-import-bad/module-trees/txt
1812−/* src-511 %jibb /tests/golden/types-recursion-scc-local/source/jibb
1813−/* tok-511 %txt /tests/golden/types-recursion-scc-local/tokens/txt
1814−/* tre-511 %txt /tests/golden/types-recursion-scc-local/tree/txt
1815−/* typ-511 %txt /tests/golden/types-recursion-scc-local/types/txt
1816−/* src-512 %jibb /tests/golden/types-recursion-scc-order/source/jibb
1817−/* tok-512 %txt /tests/golden/types-recursion-scc-order/tokens/txt
1818−/* tre-512 %txt /tests/golden/types-recursion-scc-order/tree/txt
1819−/* typ-512 %txt /tests/golden/types-recursion-scc-order/types/txt
1820−/* src-513 %jibb /tests/golden/types-recursion-scc-shadow/source/jibb
1821−/* tok-513 %txt /tests/golden/types-recursion-scc-shadow/tokens/txt
1822−/* tre-513 %txt /tests/golden/types-recursion-scc-shadow/tree/txt
1823−/* typ-513 %txt /tests/golden/types-recursion-scc-shadow/types/txt
1824−/* src-514 %jibb /tests/golden/types-recursive-branch/source/jibb
1825−/* tok-514 %txt /tests/golden/types-recursive-branch/tokens/txt
1826−/* tre-514 %txt /tests/golden/types-recursive-branch/tree/txt
1827−/* typ-514 %txt /tests/golden/types-recursive-branch/types/txt
1828−/* src-515 %jibb /tests/golden/types-recursive-gate/source/jibb
1829−/* tok-515 %txt /tests/golden/types-recursive-gate/tokens/txt
1830−/* tre-515 %txt /tests/golden/types-recursive-gate/tree/txt
1831−/* typ-515 %txt /tests/golden/types-recursive-gate/types/txt
1832−/* src-516 %jibb /tests/golden/types-recursive-sample/source/jibb
1833−/* tok-516 %txt /tests/golden/types-recursive-sample/tokens/txt
1834−/* tre-516 %txt /tests/golden/types-recursive-sample/tree/txt
1835−/* typ-516 %txt /tests/golden/types-recursive-sample/types/txt
1836−/* src-517 %jibb /tests/golden/types-scope-library-poke/source/jibb
1837−/* tok-517 %txt /tests/golden/types-scope-library-poke/tokens/txt
1838−/* tre-517 %txt /tests/golden/types-scope-library-poke/tree/txt
1839−/* typ-517 %txt /tests/golden/types-scope-library-poke/types/txt
1840−/* src-518 %jibb /tests/golden/types-scope-root-api/source/jibb
1841−/* tok-518 %txt /tests/golden/types-scope-root-api/tokens/txt
1842−/* tre-518 %txt /tests/golden/types-scope-root-api/tree/txt
1843−/* typ-518 %txt /tests/golden/types-scope-root-api/types/txt
1844−/* src-519 %jibb /tests/golden/types-scope-store-duplicate/source/jibb
1845−/* tok-519 %txt /tests/golden/types-scope-store-duplicate/tokens/txt
1846−/* tre-519 %txt /tests/golden/types-scope-store-duplicate/tree/txt
1847−/* typ-519 %txt /tests/golden/types-scope-store-duplicate/types/txt
1848−/* src-520 %jibb /tests/golden/types-scope-store-shadow/source/jibb
1849−/* tok-520 %txt /tests/golden/types-scope-store-shadow/tokens/txt
1850−/* tre-520 %txt /tests/golden/types-scope-store-shadow/tree/txt
1851−/* typ-520 %txt /tests/golden/types-scope-store-shadow/types/txt
1852−/* src-521 %jibb /tests/golden/types-string-interpolation/source/jibb
1853−/* tok-521 %txt /tests/golden/types-string-interpolation/tokens/txt
1854−/* tre-521 %txt /tests/golden/types-string-interpolation/tree/txt
1855−/* typ-521 %txt /tests/golden/types-string-interpolation/types/txt
1856−/* src-522 %jibb /tests/golden/types-tuple-context/source/jibb
1857−/* tok-522 %txt /tests/golden/types-tuple-context/tokens/txt
1858−/* tre-522 %txt /tests/golden/types-tuple-context/tree/txt
1859−/* typ-522 %txt /tests/golden/types-tuple-context/types/txt
1860−/* src-523 %jibb /tests/golden/types-tuple-context-nested/source/jibb
1861−/* tok-523 %txt /tests/golden/types-tuple-context-nested/tokens/txt
1862−/* tre-523 %txt /tests/golden/types-tuple-context-nested/tree/txt
1863−/* typ-523 %txt /tests/golden/types-tuple-context-nested/types/txt
1864−/* src-524 %jibb /tests/golden/types-union-alias/source/jibb
1865−/* tok-524 %txt /tests/golden/types-union-alias/tokens/txt
1866−/* tre-524 %txt /tests/golden/types-union-alias/tree/txt
1867−/* typ-524 %txt /tests/golden/types-union-alias/types/txt
1868−/* src-525 %jibb /tests/golden/types-union-branch-context/source/jibb
1869−/* tok-525 %txt /tests/golden/types-union-branch-context/tokens/txt
1870−/* tre-525 %txt /tests/golden/types-union-branch-context/tree/txt
1871−/* typ-525 %txt /tests/golden/types-union-branch-context/types/txt
1872−/* src-526 %jibb /tests/golden/types-union-branch-pending/source/jibb
1873−/* tok-526 %txt /tests/golden/types-union-branch-pending/tokens/txt
1874−/* tre-526 %txt /tests/golden/types-union-branch-pending/tree/txt
1875−/* typ-526 %txt /tests/golden/types-union-branch-pending/types/txt
1876−/* src-527 %jibb /tests/golden/types-union-constructor-shape/source/jibb
1877−/* tok-527 %txt /tests/golden/types-union-constructor-shape/tokens/txt
1878−/* tre-527 %txt /tests/golden/types-union-constructor-shape/tree/txt
1879−/* typ-527 %txt /tests/golden/types-union-constructor-shape/types/txt
1880−/* src-528 %jibb /tests/golden/types-union-context-flow/source/jibb
1881−/* tok-528 %txt /tests/golden/types-union-context-flow/tokens/txt
1882−/* tre-528 %txt /tests/golden/types-union-context-flow/tree/txt
1883−/* typ-528 %txt /tests/golden/types-union-context-flow/types/txt
1884−/* src-529 %jibb /tests/golden/types-union-finite/source/jibb
1885−/* tok-529 %txt /tests/golden/types-union-finite/tokens/txt
1886−/* tre-529 %txt /tests/golden/types-union-finite/tree/txt
1887−/* typ-529 %txt /tests/golden/types-union-finite/types/txt
1888−/* src-530 %jibb /tests/golden/types-union-finite-context/source/jibb
1889−/* tok-530 %txt /tests/golden/types-union-finite-context/tokens/txt
1890−/* tre-530 %txt /tests/golden/types-union-finite-context/tree/txt
1891−/* typ-530 %txt /tests/golden/types-union-finite-context/types/txt
1892−/* src-531 %jibb /tests/golden/types-union-finite-generic/source/jibb
1893−/* tok-531 %txt /tests/golden/types-union-finite-generic/tokens/txt
1894−/* tre-531 %txt /tests/golden/types-union-finite-generic/tree/txt
1895−/* typ-531 %txt /tests/golden/types-union-finite-generic/types/txt
1896−/* src-532 %jibb /tests/golden/types-union-finite-limit/source/jibb
1897−/* tok-532 %txt /tests/golden/types-union-finite-limit/tokens/txt
1898−/* tre-532 %txt /tests/golden/types-union-finite-limit/tree/txt
1899−/* typ-532 %txt /tests/golden/types-union-finite-limit/types/txt
1900−/* src-533 %jibb /tests/golden/types-union-import/source/jibb
1901−/* tok-533 %txt /tests/golden/types-union-import/tokens/txt
1902−/* tre-533 %txt /tests/golden/types-union-import/tree/txt
1903−/* mod-533-1 %jibb /tests/golden/types-union-import/modules/ui/lib/jibb
1904−/* typ-533 %txt /tests/golden/types-union-import/types/txt
1905−/* mtre-533 %txt /tests/golden/types-union-import/module-trees/txt
1906−/* src-534 %jibb /tests/golden/types-union-local-pending/source/jibb
1907−/* tok-534 %txt /tests/golden/types-union-local-pending/tokens/txt
1908−/* tre-534 %txt /tests/golden/types-union-local-pending/tree/txt
1909−/* typ-534 %txt /tests/golden/types-union-local-pending/types/txt
1910−/* src-535 %jibb /tests/golden/types-union-overlap/source/jibb
1911−/* tok-535 %txt /tests/golden/types-union-overlap/tokens/txt
1912−/* tre-535 %txt /tests/golden/types-union-overlap/tree/txt
1913−/* typ-535 %txt /tests/golden/types-union-overlap/types/txt
1914−/* src-536 %jibb /tests/golden/types-union-overlap-nested/source/jibb
1915−/* tok-536 %txt /tests/golden/types-union-overlap-nested/tokens/txt
1916−/* tre-536 %txt /tests/golden/types-union-overlap-nested/tree/txt
1917−/* typ-536 %txt /tests/golden/types-union-overlap-nested/types/txt
1918−/* src-537 %jibb /tests/golden/types-union-pattern-result-context/source/jibb
1919−/* tok-537 %txt /tests/golden/types-union-pattern-result-context/tokens/txt
1920−/* tre-537 %txt /tests/golden/types-union-pattern-result-context/tree/txt
1921−/* typ-537 %txt /tests/golden/types-union-pattern-result-context/types/txt
1922−/* src-538 %jibb /tests/golden/types-union-pattern-result-controls/source/jibb
1923−/* tok-538 %txt /tests/golden/types-union-pattern-result-controls/tokens/txt
1924−/* tre-538 %txt /tests/golden/types-union-pattern-result-controls/tree/txt
1925−/* typ-538 %txt /tests/golden/types-union-pattern-result-controls/types/txt
1926−/* src-539 %jibb /tests/golden/types-union-patterns/source/jibb
1927−/* tok-539 %txt /tests/golden/types-union-patterns/tokens/txt
1928−/* tre-539 %txt /tests/golden/types-union-patterns/tree/txt
1929−/* typ-539 %txt /tests/golden/types-union-patterns/types/txt
1930−/* src-540 %jibb /tests/golden/types-union-patterns-generic/source/jibb
1931−/* tok-540 %txt /tests/golden/types-union-patterns-generic/tokens/txt
1932−/* tre-540 %txt /tests/golden/types-union-patterns-generic/tree/txt
1933−/* typ-540 %txt /tests/golden/types-union-patterns-generic/types/txt
1934−/* src-541 %jibb /tests/golden/types-union-patterns-import/source/jibb
1935−/* tok-541 %txt /tests/golden/types-union-patterns-import/tokens/txt
1936−/* tre-541 %txt /tests/golden/types-union-patterns-import/tree/txt
1937−/* mod-541-1 %jibb /tests/golden/types-union-patterns-import/modules/ui/lib/jibb
1938−/* typ-541 %txt /tests/golden/types-union-patterns-import/types/txt
1939−/* mtre-541 %txt /tests/golden/types-union-patterns-import/module-trees/txt
1940−/* src-542 %jibb /tests/golden/types-union-phantom-generic/source/jibb
1941−/* tok-542 %txt /tests/golden/types-union-phantom-generic/tokens/txt
1942−/* tre-542 %txt /tests/golden/types-union-phantom-generic/tree/txt
1943−/* typ-542 %txt /tests/golden/types-union-phantom-generic/types/txt
1944−/* src-543 %jibb /tests/golden/types-union-print-cross-namespace/source/jibb
1945−/* tok-543 %txt /tests/golden/types-union-print-cross-namespace/tokens/txt
1946−/* tre-543 %txt /tests/golden/types-union-print-cross-namespace/tree/txt
1947−/* mod-543-1 %jibb /tests/golden/types-union-print-cross-namespace/modules/ui/lib/jibb
1948−/* typ-543 %txt /tests/golden/types-union-print-cross-namespace/types/txt
1949−/* mtre-543 %txt /tests/golden/types-union-print-cross-namespace/module-trees/txt
1950−/* src-544 %jibb /tests/golden/types-union-print-distinct/source/jibb
1951−/* tok-544 %txt /tests/golden/types-union-print-distinct/tokens/txt
1952−/* tre-544 %txt /tests/golden/types-union-print-distinct/tree/txt
1953−/* mod-544-1 %jibb /tests/golden/types-union-print-distinct/modules/ui/left/jibb
1954−/* mod-544-2 %jibb /tests/golden/types-union-print-distinct/modules/ui/right/jibb
1955−/* mod-544-3 %jibb /tests/golden/types-union-print-distinct/modules/ui/twin/jibb
1956−/* typ-544 %txt /tests/golden/types-union-print-distinct/types/txt
1957−/* mtre-544 %txt /tests/golden/types-union-print-distinct/module-trees/txt
1958−/* src-545 %jibb /tests/golden/types-union-print-escape/source/jibb
1959−/* tok-545 %txt /tests/golden/types-union-print-escape/tokens/txt
1960−/* tre-545 %txt /tests/golden/types-union-print-escape/tree/txt
1961−/* typ-545 %txt /tests/golden/types-union-print-escape/types/txt
1962−/* src-546 %jibb /tests/golden/types-union-print-local/source/jibb
1963−/* tok-546 %txt /tests/golden/types-union-print-local/tokens/txt
1964−/* tre-546 %txt /tests/golden/types-union-print-local/tree/txt
1965−/* typ-546 %txt /tests/golden/types-union-print-local/types/txt
1966−/* src-547 %jibb /tests/golden/types-union-print-nested/source/jibb
1967−/* tok-547 %txt /tests/golden/types-union-print-nested/tokens/txt
1968−/* tre-547 %txt /tests/golden/types-union-print-nested/tree/txt
1969−/* typ-547 %txt /tests/golden/types-union-print-nested/types/txt
1970−/* src-548 %jibb /tests/golden/types-union-print-same-origin/source/jibb
1971−/* tok-548 %txt /tests/golden/types-union-print-same-origin/tokens/txt
1972−/* tre-548 %txt /tests/golden/types-union-print-same-origin/tree/txt
1973−/* mod-548-1 %jibb /tests/golden/types-union-print-same-origin/modules/ui/shared/jibb
1974−/* typ-548 %txt /tests/golden/types-union-print-same-origin/types/txt
1975−/* mtre-548 %txt /tests/golden/types-union-print-same-origin/module-trees/txt
1976−/* src-549 %jibb /tests/golden/types-union-print-transitive/source/jibb
1977−/* tok-549 %txt /tests/golden/types-union-print-transitive/tokens/txt
1978−/* tre-549 %txt /tests/golden/types-union-print-transitive/tree/txt
1979−/* mod-549-1 %jibb /tests/golden/types-union-print-transitive/modules/ui/mid/jibb
1980−/* mod-549-2 %jibb /tests/golden/types-union-print-transitive/modules/ui/base/jibb
1981−/* typ-549 %txt /tests/golden/types-union-print-transitive/types/txt
1982−/* mtre-549 %txt /tests/golden/types-union-print-transitive/module-trees/txt
1983−/* src-550 %jibb /tests/golden/types-union-singleton/source/jibb
1984−/* tok-550 %txt /tests/golden/types-union-singleton/tokens/txt
1985−/* tre-550 %txt /tests/golden/types-union-singleton/tree/txt
1986−/* typ-550 %txt /tests/golden/types-union-singleton/types/txt
1987−/* src-551 %jibb /tests/golden/types-union-tag-atoms/source/jibb
1988−/* tok-551 %txt /tests/golden/types-union-tag-atoms/tokens/txt
1989−/* tre-551 %txt /tests/golden/types-union-tag-atoms/tree/txt
1990−/* typ-551 %txt /tests/golden/types-union-tag-atoms/types/txt
1991−/* src-552 %jibb /tests/golden/types-union-tags/source/jibb
1992−/* tok-552 %txt /tests/golden/types-union-tags/tokens/txt
1993−/* tre-552 %txt /tests/golden/types-union-tags/tree/txt
1994−/* typ-552 %txt /tests/golden/types-union-tags/types/txt
1995−/* src-553 %jibb /tests/golden/types-union-unresolved/source/jibb
1996−/* tok-553 %txt /tests/golden/types-union-unresolved/tokens/txt
1997−/* tre-553 %txt /tests/golden/types-union-unresolved/tree/txt
1998−/* typ-553 %txt /tests/golden/types-union-unresolved/types/txt
1999−/* src-554 %jibb /tests/golden/types-union-unresolved-flow/source/jibb
2000−/* tok-554 %txt /tests/golden/types-union-unresolved-flow/tokens/txt
2001−/* tre-554 %txt /tests/golden/types-union-unresolved-flow/tree/txt
2002−/* typ-554 %txt /tests/golden/types-union-unresolved-flow/types/txt
2003−/* src-555 %jibb /tests/golden/types-unit-construction/source/jibb
2004−/* tok-555 %txt /tests/golden/types-unit-construction/tokens/txt
2005−/* tre-555 %txt /tests/golden/types-unit-construction/tree/txt
2006−/* typ-555 %txt /tests/golden/types-unit-construction/types/txt
2007−/* src-556 %jibb /tests/golden/types-unit-context/source/jibb
2008−/* tok-556 %txt /tests/golden/types-unit-context/tokens/txt
2009−/* tre-556 %txt /tests/golden/types-unit-context/tree/txt
2010−/* typ-556 %txt /tests/golden/types-unit-context/types/txt
2011−/* src-557 %jibb /tests/golden/types-unit-patterns/source/jibb
2012−/* tok-557 %txt /tests/golden/types-unit-patterns/tokens/txt
2013−/* tre-557 %txt /tests/golden/types-unit-patterns/tree/txt
2014−/* typ-557 %txt /tests/golden/types-unit-patterns/types/txt
1494+/* src-438 %jibb /tests/golden/types-import-tlon-notes/source/jibb
1495+/* tok-438 %txt /tests/golden/types-import-tlon-notes/tokens/txt
1496+/* tre-438 %txt /tests/golden/types-import-tlon-notes/tree/txt
1497+/* typ-438 %txt /tests/golden/types-import-tlon-notes/types/txt
1498+/* imp-438-1 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1499+/* imp-438-2 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1500+/* src-439 %jibb /tests/golden/types-list-branch/source/jibb
1501+/* tok-439 %txt /tests/golden/types-list-branch/tokens/txt
1502+/* tre-439 %txt /tests/golden/types-list-branch/tree/txt
1503+/* typ-439 %txt /tests/golden/types-list-branch/types/txt
1504+/* src-440 %jibb /tests/golden/types-list-cons/source/jibb
1505+/* tok-440 %txt /tests/golden/types-list-cons/tokens/txt
1506+/* tre-440 %txt /tests/golden/types-list-cons/tree/txt
1507+/* typ-440 %txt /tests/golden/types-list-cons/types/txt
1508+/* src-441 %jibb /tests/golden/types-list-context/source/jibb
1509+/* tok-441 %txt /tests/golden/types-list-context/tokens/txt
1510+/* tre-441 %txt /tests/golden/types-list-context/tree/txt
1511+/* typ-441 %txt /tests/golden/types-list-context/types/txt
1512+/* src-442 %jibb /tests/golden/types-list-imported/source/jibb
1513+/* tok-442 %txt /tests/golden/types-list-imported/tokens/txt
1514+/* tre-442 %txt /tests/golden/types-list-imported/tree/txt
1515+/* typ-442 %txt /tests/golden/types-list-imported/types/txt
1516+/* imp-442-1 %txt /tests/golden/types-list-imported/sur/fixture/txt
1517+/* imp-442-2 %txt /tests/golden/types-list-imported/sur/fixture/txt
1518+/* src-443 %jibb /tests/golden/types-list-open/source/jibb
1519+/* tok-443 %txt /tests/golden/types-list-open/tokens/txt
1520+/* tre-443 %txt /tests/golden/types-list-open/tree/txt
1521+/* typ-443 %txt /tests/golden/types-list-open/types/txt
1522+/* src-444 %jibb /tests/golden/types-list-open-constraints/source/jibb
1523+/* tok-444 %txt /tests/golden/types-list-open-constraints/tokens/txt
1524+/* tre-444 %txt /tests/golden/types-list-open-constraints/tree/txt
1525+/* typ-444 %txt /tests/golden/types-list-open-constraints/types/txt
1526+/* src-445 %jibb /tests/golden/types-list-pattern-imported/source/jibb
1527+/* tok-445 %txt /tests/golden/types-list-pattern-imported/tokens/txt
1528+/* tre-445 %txt /tests/golden/types-list-pattern-imported/tree/txt
1529+/* typ-445 %txt /tests/golden/types-list-pattern-imported/types/txt
1530+/* imp-445-1 %txt /tests/golden/types-list-pattern-imported/sur/fixture/txt
1531+/* imp-445-2 %txt /tests/golden/types-list-pattern-imported/sur/fixture/txt
1532+/* src-446 %jibb /tests/golden/types-list-patterns/source/jibb
1533+/* tok-446 %txt /tests/golden/types-list-patterns/tokens/txt
1534+/* tre-446 %txt /tests/golden/types-list-patterns/tree/txt
1535+/* typ-446 %txt /tests/golden/types-list-patterns/types/txt
1536+/* src-447 %jibb /tests/golden/types-list-zero-fit/source/jibb
1537+/* tok-447 %txt /tests/golden/types-list-zero-fit/tokens/txt
1538+/* tre-447 %txt /tests/golden/types-list-zero-fit/tree/txt
1539+/* typ-447 %txt /tests/golden/types-list-zero-fit/types/txt
1540+/* src-448 %jibb /tests/golden/types-local-capitals/source/jibb
1541+/* tok-448 %txt /tests/golden/types-local-capitals/tokens/txt
1542+/* tre-448 %txt /tests/golden/types-local-capitals/tree/txt
1543+/* typ-448 %txt /tests/golden/types-local-capitals/types/txt
1544+/* src-449 %jibb /tests/golden/types-local-recursive/source/jibb
1545+/* tok-449 %txt /tests/golden/types-local-recursive/tokens/txt
1546+/* tre-449 %txt /tests/golden/types-local-recursive/tree/txt
1547+/* typ-449 %txt /tests/golden/types-local-recursive/types/txt
1548+/* src-450 %jibb /tests/golden/types-local-scc/source/jibb
1549+/* tok-450 %txt /tests/golden/types-local-scc/tokens/txt
1550+/* tre-450 %txt /tests/golden/types-local-scc/tree/txt
1551+/* typ-450 %txt /tests/golden/types-local-scc/types/txt
1552+/* src-451 %jibb /tests/golden/types-local-scc-adversarial/source/jibb
1553+/* tok-451 %txt /tests/golden/types-local-scc-adversarial/tokens/txt
1554+/* tre-451 %txt /tests/golden/types-local-scc-adversarial/tree/txt
1555+/* typ-451 %txt /tests/golden/types-local-scc-adversarial/types/txt
1556+/* src-452 %jibb /tests/golden/types-missing-tag-context/source/jibb
1557+/* tok-452 %txt /tests/golden/types-missing-tag-context/tokens/txt
1558+/* tre-452 %txt /tests/golden/types-missing-tag-context/tree/txt
1559+/* typ-452 %txt /tests/golden/types-missing-tag-context/types/txt
1560+/* src-453 %jibb /tests/golden/types-missing-tag-imported/source/jibb
1561+/* tok-453 %txt /tests/golden/types-missing-tag-imported/tokens/txt
1562+/* tre-453 %txt /tests/golden/types-missing-tag-imported/tree/txt
1563+/* typ-453 %txt /tests/golden/types-missing-tag-imported/types/txt
1564+/* imp-453-1 %txt /tests/golden/types-missing-tag-imported/sur/fixture/txt
1565+/* imp-453-2 %txt /tests/golden/types-missing-tag-imported/sur/fixture/txt
1566+/* src-454 %jibb /tests/golden/types-missing-tag-named/source/jibb
1567+/* tok-454 %txt /tests/golden/types-missing-tag-named/tokens/txt
1568+/* tre-454 %txt /tests/golden/types-missing-tag-named/tree/txt
1569+/* typ-454 %txt /tests/golden/types-missing-tag-named/types/txt
1570+/* src-455 %jibb /tests/golden/types-module-fixtures/source/jibb
1571+/* tok-455 %txt /tests/golden/types-module-fixtures/tokens/txt
1572+/* tre-455 %txt /tests/golden/types-module-fixtures/tree/txt
1573+/* mod-455-1 %jibb /tests/golden/types-module-fixtures/modules/ui/api/blog/jibb
1574+/* mod-455-2 %jibb /tests/golden/types-module-fixtures/modules/ui/components/card/jibb
1575+/* typ-455 %txt /tests/golden/types-module-fixtures/types/txt
1576+/* mtre-455 %txt /tests/golden/types-module-fixtures/module-trees/txt
1577+/* src-456 %jibb /tests/golden/types-module-mixed/source/jibb
1578+/* tok-456 %txt /tests/golden/types-module-mixed/tokens/txt
1579+/* tre-456 %txt /tests/golden/types-module-mixed/tree/txt
1580+/* mod-456-1 %jibb /tests/golden/types-module-mixed/modules/ui/helper/jibb
1581+/* typ-456 %txt /tests/golden/types-module-mixed/types/txt
1582+/* imp-456-1 %txt /tests/golden/types-module-mixed/sur/fixture/txt
1583+/* mark-456-1 %txt /tests/golden/types-module-mixed/mar/label/txt
1584+/* mtre-456 %txt /tests/golden/types-module-mixed/module-trees/txt
1585+/* src-457 %jibb /tests/golden/types-multi-call/source/jibb
1586+/* tok-457 %txt /tests/golden/types-multi-call/tokens/txt
1587+/* tre-457 %txt /tests/golden/types-multi-call/tree/txt
1588+/* typ-457 %txt /tests/golden/types-multi-call/types/txt
1589+/* src-458 %jibb /tests/golden/types-multi-import/source/jibb
1590+/* tok-458 %txt /tests/golden/types-multi-import/tokens/txt
1591+/* tre-458 %txt /tests/golden/types-multi-import/tree/txt
1592+/* mod-458-1 %jibb /tests/golden/types-multi-import/modules/ui/lib/jibb
1593+/* typ-458 %txt /tests/golden/types-multi-import/types/txt
1594+/* mtre-458 %txt /tests/golden/types-multi-import/module-trees/txt
1595+/* src-459 %jibb /tests/golden/types-nested-missing-tag/source/jibb
1596+/* tok-459 %txt /tests/golden/types-nested-missing-tag/tokens/txt
1597+/* tre-459 %txt /tests/golden/types-nested-missing-tag/tree/txt
1598+/* typ-459 %txt /tests/golden/types-nested-missing-tag/types/txt
1599+/* src-460 %jibb /tests/golden/types-null-context/source/jibb
1600+/* tok-460 %txt /tests/golden/types-null-context/tokens/txt
1601+/* tre-460 %txt /tests/golden/types-null-context/tree/txt
1602+/* typ-460 %txt /tests/golden/types-null-context/types/txt
1603+/* src-461 %jibb /tests/golden/types-null-overlap/source/jibb
1604+/* tok-461 %txt /tests/golden/types-null-overlap/tokens/txt
1605+/* tre-461 %txt /tests/golden/types-null-overlap/tree/txt
1606+/* typ-461 %txt /tests/golden/types-null-overlap/types/txt
1607+/* src-462 %jibb /tests/golden/types-null-unresolved/source/jibb
1608+/* tok-462 %txt /tests/golden/types-null-unresolved/tokens/txt
1609+/* tre-462 %txt /tests/golden/types-null-unresolved/tree/txt
1610+/* typ-462 %txt /tests/golden/types-null-unresolved/types/txt
1611+/* src-463 %jibb /tests/golden/types-partial-apply/source/jibb
1612+/* tok-463 %txt /tests/golden/types-partial-apply/tokens/txt
1613+/* tre-463 %txt /tests/golden/types-partial-apply/tree/txt
1614+/* typ-463 %txt /tests/golden/types-partial-apply/types/txt
1615+/* src-464 %jibb /tests/golden/types-partial-atom-alias/source/jibb
1616+/* tok-464 %txt /tests/golden/types-partial-atom-alias/tokens/txt
1617+/* tre-464 %txt /tests/golden/types-partial-atom-alias/tree/txt
1618+/* typ-464 %txt /tests/golden/types-partial-atom-alias/types/txt
1619+/* src-465 %jibb /tests/golden/types-partial-atom-constraint/source/jibb
1620+/* tok-465 %txt /tests/golden/types-partial-atom-constraint/tokens/txt
1621+/* tre-465 %txt /tests/golden/types-partial-atom-constraint/tree/txt
1622+/* typ-465 %txt /tests/golden/types-partial-atom-constraint/types/txt
1623+/* src-466 %jibb /tests/golden/types-partial-atom-widening/source/jibb
1624+/* tok-466 %txt /tests/golden/types-partial-atom-widening/tokens/txt
1625+/* tre-466 %txt /tests/golden/types-partial-atom-widening/tree/txt
1626+/* typ-466 %txt /tests/golden/types-partial-atom-widening/types/txt
1627+/* src-467 %jibb /tests/golden/types-partial-aura/source/jibb
1628+/* tok-467 %txt /tests/golden/types-partial-aura/tokens/txt
1629+/* tre-467 %txt /tests/golden/types-partial-aura/tree/txt
1630+/* typ-467 %txt /tests/golden/types-partial-aura/types/txt
1631+/* src-468 %jibb /tests/golden/types-partial-aura-family/source/jibb
1632+/* tok-468 %txt /tests/golden/types-partial-aura-family/tokens/txt
1633+/* tre-468 %txt /tests/golden/types-partial-aura-family/tree/txt
1634+/* typ-468 %txt /tests/golden/types-partial-aura-family/types/txt
1635+/* src-469 %jibb /tests/golden/types-partial-aura-generalization/source/jibb
1636+/* tok-469 %txt /tests/golden/types-partial-aura-generalization/tokens/txt
1637+/* tre-469 %txt /tests/golden/types-partial-aura-generalization/tree/txt
1638+/* typ-469 %txt /tests/golden/types-partial-aura-generalization/types/txt
1639+/* src-470 %jibb /tests/golden/types-partial-bare-atom/source/jibb
1640+/* tok-470 %txt /tests/golden/types-partial-bare-atom/tokens/txt
1641+/* tre-470 %txt /tests/golden/types-partial-bare-atom/tree/txt
1642+/* typ-470 %txt /tests/golden/types-partial-bare-atom/types/txt
1643+/* src-471 %jibb /tests/golden/types-partial-branch-widening/source/jibb
1644+/* tok-471 %txt /tests/golden/types-partial-branch-widening/tokens/txt
1645+/* tre-471 %txt /tests/golden/types-partial-branch-widening/tree/txt
1646+/* typ-471 %txt /tests/golden/types-partial-branch-widening/types/txt
1647+/* src-472 %jibb /tests/golden/types-partial-conflicting-sites/source/jibb
1648+/* tok-472 %txt /tests/golden/types-partial-conflicting-sites/tokens/txt
1649+/* tre-472 %txt /tests/golden/types-partial-conflicting-sites/tree/txt
1650+/* typ-472 %txt /tests/golden/types-partial-conflicting-sites/types/txt
1651+/* src-473 %jibb /tests/golden/types-partial-decimal-default/source/jibb
1652+/* tok-473 %txt /tests/golden/types-partial-decimal-default/tokens/txt
1653+/* tre-473 %txt /tests/golden/types-partial-decimal-default/tree/txt
1654+/* typ-473 %txt /tests/golden/types-partial-decimal-default/types/txt
1655+/* src-474 %jibb /tests/golden/types-partial-dependency-chain/source/jibb
1656+/* tok-474 %txt /tests/golden/types-partial-dependency-chain/tokens/txt
1657+/* tre-474 %txt /tests/golden/types-partial-dependency-chain/tree/txt
1658+/* typ-474 %txt /tests/golden/types-partial-dependency-chain/types/txt
1659+/* src-475 %jibb /tests/golden/types-partial-explicit-capital/source/jibb
1660+/* tok-475 %txt /tests/golden/types-partial-explicit-capital/tokens/txt
1661+/* tre-475 %txt /tests/golden/types-partial-explicit-capital/tree/txt
1662+/* typ-475 %txt /tests/golden/types-partial-explicit-capital/types/txt
1663+/* src-476 %jibb /tests/golden/types-partial-forward/source/jibb
1664+/* tok-476 %txt /tests/golden/types-partial-forward/tokens/txt
1665+/* tre-476 %txt /tests/golden/types-partial-forward/tree/txt
1666+/* typ-476 %txt /tests/golden/types-partial-forward/types/txt
1667+/* src-477 %jibb /tests/golden/types-partial-generalization/source/jibb
1668+/* tok-477 %txt /tests/golden/types-partial-generalization/tokens/txt
1669+/* tre-477 %txt /tests/golden/types-partial-generalization/tree/txt
1670+/* typ-477 %txt /tests/golden/types-partial-generalization/types/txt
1671+/* src-478 %jibb /tests/golden/types-partial-identity/source/jibb
1672+/* tok-478 %txt /tests/golden/types-partial-identity/tokens/txt
1673+/* tre-478 %txt /tests/golden/types-partial-identity/tree/txt
1674+/* typ-478 %txt /tests/golden/types-partial-identity/types/txt
1675+/* src-479 %jibb /tests/golden/types-partial-independent-atoms/source/jibb
1676+/* tok-479 %txt /tests/golden/types-partial-independent-atoms/tokens/txt
1677+/* tre-479 %txt /tests/golden/types-partial-independent-atoms/tree/txt
1678+/* typ-479 %txt /tests/golden/types-partial-independent-atoms/types/txt
1679+/* src-480 %jibb /tests/golden/types-partial-local-molds/source/jibb
1680+/* tok-480 %txt /tests/golden/types-partial-local-molds/tokens/txt
1681+/* tre-480 %txt /tests/golden/types-partial-local-molds/tree/txt
1682+/* typ-480 %txt /tests/golden/types-partial-local-molds/types/txt
1683+/* src-481 %jibb /tests/golden/types-partial-locals/source/jibb
1684+/* tok-481 %txt /tests/golden/types-partial-locals/tokens/txt
1685+/* tre-481 %txt /tests/golden/types-partial-locals/tree/txt
1686+/* typ-481 %txt /tests/golden/types-partial-locals/types/txt
1687+/* src-482 %jibb /tests/golden/types-partial-many-atom-constraints/source/jibb
1688+/* tok-482 %txt /tests/golden/types-partial-many-atom-constraints/tokens/txt
1689+/* tre-482 %txt /tests/golden/types-partial-many-atom-constraints/tree/txt
1690+/* typ-482 %txt /tests/golden/types-partial-many-atom-constraints/types/txt
1691+/* src-483 %jibb /tests/golden/types-partial-mold-bare-aura/source/jibb
1692+/* tok-483 %txt /tests/golden/types-partial-mold-bare-aura/tokens/txt
1693+/* tre-483 %txt /tests/golden/types-partial-mold-bare-aura/tree/txt
1694+/* typ-483 %txt /tests/golden/types-partial-mold-bare-aura/types/txt
1695+/* src-484 %jibb /tests/golden/types-partial-mold-composite/source/jibb
1696+/* tok-484 %txt /tests/golden/types-partial-mold-composite/tokens/txt
1697+/* tre-484 %txt /tests/golden/types-partial-mold-composite/tree/txt
1698+/* typ-484 %txt /tests/golden/types-partial-mold-composite/types/txt
1699+/* src-485 %jibb /tests/golden/types-partial-mold-forward/source/jibb
1700+/* tok-485 %txt /tests/golden/types-partial-mold-forward/tokens/txt
1701+/* tre-485 %txt /tests/golden/types-partial-mold-forward/tree/txt
1702+/* typ-485 %txt /tests/golden/types-partial-mold-forward/types/txt
1703+/* src-486 %jibb /tests/golden/types-partial-mold-recursive/source/jibb
1704+/* tok-486 %txt /tests/golden/types-partial-mold-recursive/tokens/txt
1705+/* tre-486 %txt /tests/golden/types-partial-mold-recursive/tree/txt
1706+/* typ-486 %txt /tests/golden/types-partial-mold-recursive/types/txt
1707+/* src-487 %jibb /tests/golden/types-partial-occurs/source/jibb
1708+/* tok-487 %txt /tests/golden/types-partial-occurs/tokens/txt
1709+/* tre-487 %txt /tests/golden/types-partial-occurs/tree/txt
1710+/* typ-487 %txt /tests/golden/types-partial-occurs/types/txt
1711+/* src-488 %jibb /tests/golden/types-partial-projection/source/jibb
1712+/* tok-488 %txt /tests/golden/types-partial-projection/tokens/txt
1713+/* tre-488 %txt /tests/golden/types-partial-projection/tree/txt
1714+/* typ-488 %txt /tests/golden/types-partial-projection/types/txt
1715+/* src-489 %jibb /tests/golden/types-partial-shadow-global/source/jibb
1716+/* tok-489 %txt /tests/golden/types-partial-shadow-global/tokens/txt
1717+/* tre-489 %txt /tests/golden/types-partial-shadow-global/tree/txt
1718+/* typ-489 %txt /tests/golden/types-partial-shadow-global/types/txt
1719+/* src-490 %jibb /tests/golden/types-partial-shared-tvar/source/jibb
1720+/* tok-490 %txt /tests/golden/types-partial-shared-tvar/tokens/txt
1721+/* tre-490 %txt /tests/golden/types-partial-shared-tvar/tree/txt
1722+/* typ-490 %txt /tests/golden/types-partial-shared-tvar/types/txt
1723+/* src-491 %jibb /tests/golden/types-partial-union-cases/source/jibb
1724+/* tok-491 %txt /tests/golden/types-partial-union-cases/tokens/txt
1725+/* tre-491 %txt /tests/golden/types-partial-union-cases/tree/txt
1726+/* typ-491 %txt /tests/golden/types-partial-union-cases/types/txt
1727+/* src-492 %jibb /tests/golden/types-partial-union-edges/source/jibb
1728+/* tok-492 %txt /tests/golden/types-partial-union-edges/tokens/txt
1729+/* tre-492 %txt /tests/golden/types-partial-union-edges/tree/txt
1730+/* typ-492 %txt /tests/golden/types-partial-union-edges/types/txt
1731+/* src-493 %jibb /tests/golden/types-partial-unresolved-tag/source/jibb
1732+/* tok-493 %txt /tests/golden/types-partial-unresolved-tag/tokens/txt
1733+/* tre-493 %txt /tests/golden/types-partial-unresolved-tag/tree/txt
1734+/* typ-493 %txt /tests/golden/types-partial-unresolved-tag/types/txt
1735+/* src-494 %jibb /tests/golden/types-prelude-direct/source/jibb
1736+/* tok-494 %txt /tests/golden/types-prelude-direct/tokens/txt
1737+/* tre-494 %txt /tests/golden/types-prelude-direct/tree/txt
1738+/* typ-494 %txt /tests/golden/types-prelude-direct/types/txt
1739+/* src-495 %jibb /tests/golden/types-prelude-interface/source/jibb
1740+/* tok-495 %txt /tests/golden/types-prelude-interface/tokens/txt
1741+/* tre-495 %txt /tests/golden/types-prelude-interface/tree/txt
1742+/* mod-495-1 %jibb /tests/golden/types-prelude-interface/modules/ui/left/jibb
1743+/* mod-495-2 %jibb /tests/golden/types-prelude-interface/modules/ui/right/jibb
1744+/* typ-495 %txt /tests/golden/types-prelude-interface/types/txt
1745+/* mtre-495 %txt /tests/golden/types-prelude-interface/module-trees/txt
1746+/* src-496 %jibb /tests/golden/types-prelude-list-functions/source/jibb
1747+/* tok-496 %txt /tests/golden/types-prelude-list-functions/tokens/txt
1748+/* tre-496 %txt /tests/golden/types-prelude-list-functions/tree/txt
1749+/* mod-496-1 %jibb /tests/golden/types-prelude-list-functions/modules/ui/lib/jibb
1750+/* typ-496 %txt /tests/golden/types-prelude-list-functions/types/txt
1751+/* mtre-496 %txt /tests/golden/types-prelude-list-functions/module-trees/txt
1752+/* src-497 %jibb /tests/golden/types-prelude-list-helpers/source/jibb
1753+/* tok-497 %txt /tests/golden/types-prelude-list-helpers/tokens/txt
1754+/* tre-497 %txt /tests/golden/types-prelude-list-helpers/tree/txt
1755+/* typ-497 %txt /tests/golden/types-prelude-list-helpers/types/txt
1756+/* src-498 %jibb /tests/golden/types-prelude-unit-helpers/source/jibb
1757+/* tok-498 %txt /tests/golden/types-prelude-unit-helpers/tokens/txt
1758+/* tre-498 %txt /tests/golden/types-prelude-unit-helpers/tree/txt
1759+/* typ-498 %txt /tests/golden/types-prelude-unit-helpers/types/txt
1760+/* src-499 %jibb /tests/golden/types-record-bound-variable/source/jibb
1761+/* tok-499 %txt /tests/golden/types-record-bound-variable/tokens/txt
1762+/* tre-499 %txt /tests/golden/types-record-bound-variable/tree/txt
1763+/* typ-499 %txt /tests/golden/types-record-bound-variable/types/txt
1764+/* src-500 %jibb /tests/golden/types-record-cast-context/source/jibb
1765+/* tok-500 %txt /tests/golden/types-record-cast-context/tokens/txt
1766+/* tre-500 %txt /tests/golden/types-record-cast-context/tree/txt
1767+/* typ-500 %txt /tests/golden/types-record-cast-context/types/txt
1768+/* src-501 %jibb /tests/golden/types-record-change/source/jibb
1769+/* tok-501 %txt /tests/golden/types-record-change/tokens/txt
1770+/* tre-501 %txt /tests/golden/types-record-change/tree/txt
1771+/* typ-501 %txt /tests/golden/types-record-change/types/txt
1772+/* src-502 %jibb /tests/golden/types-record-change-generic/source/jibb
1773+/* tok-502 %txt /tests/golden/types-record-change-generic/tokens/txt
1774+/* tre-502 %txt /tests/golden/types-record-change-generic/tree/txt
1775+/* typ-502 %txt /tests/golden/types-record-change-generic/types/txt
1776+/* src-503 %jibb /tests/golden/types-record-faces/source/jibb
1777+/* tok-503 %txt /tests/golden/types-record-faces/tokens/txt
1778+/* tre-503 %txt /tests/golden/types-record-faces/tree/txt
1779+/* typ-503 %txt /tests/golden/types-record-faces/types/txt
1780+/* src-504 %jibb /tests/golden/types-record-import/source/jibb
1781+/* tok-504 %txt /tests/golden/types-record-import/tokens/txt
1782+/* tre-504 %txt /tests/golden/types-record-import/tree/txt
1783+/* mod-504-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
1784+/* typ-504 %txt /tests/golden/types-record-import/types/txt
1785+/* mtre-504 %txt /tests/golden/types-record-import/module-trees/txt
1786+/* src-505 %jibb /tests/golden/types-record-local-scheme/source/jibb
1787+/* tok-505 %txt /tests/golden/types-record-local-scheme/tokens/txt
1788+/* tre-505 %txt /tests/golden/types-record-local-scheme/tree/txt
1789+/* typ-505 %txt /tests/golden/types-record-local-scheme/types/txt
1790+/* src-506 %jibb /tests/golden/types-record-nested/source/jibb
1791+/* tok-506 %txt /tests/golden/types-record-nested/tokens/txt
1792+/* tre-506 %txt /tests/golden/types-record-nested/tree/txt
1793+/* typ-506 %txt /tests/golden/types-record-nested/types/txt
1794+/* src-507 %jibb /tests/golden/types-record-to-tuple/source/jibb
1795+/* tok-507 %txt /tests/golden/types-record-to-tuple/tokens/txt
1796+/* tre-507 %txt /tests/golden/types-record-to-tuple/tree/txt
1797+/* typ-507 %txt /tests/golden/types-record-to-tuple/types/txt
1798+/* src-508 %jibb /tests/golden/types-recursion-scc-failures/source/jibb
1799+/* tok-508 %txt /tests/golden/types-recursion-scc-failures/tokens/txt
1800+/* tre-508 %txt /tests/golden/types-recursion-scc-failures/tree/txt
1801+/* typ-508 %txt /tests/golden/types-recursion-scc-failures/types/txt
1802+/* src-509 %jibb /tests/golden/types-recursion-scc-groups/source/jibb
1803+/* tok-509 %txt /tests/golden/types-recursion-scc-groups/tokens/txt
1804+/* tre-509 %txt /tests/golden/types-recursion-scc-groups/tree/txt
1805+/* typ-509 %txt /tests/golden/types-recursion-scc-groups/types/txt
1806+/* src-510 %jibb /tests/golden/types-recursion-scc-import/source/jibb
1807+/* tok-510 %txt /tests/golden/types-recursion-scc-import/tokens/txt
1808+/* tre-510 %txt /tests/golden/types-recursion-scc-import/tree/txt
1809+/* mod-510-1 %jibb /tests/golden/types-recursion-scc-import/modules/ui/lib/jibb
1810+/* typ-510 %txt /tests/golden/types-recursion-scc-import/types/txt
1811+/* mtre-510 %txt /tests/golden/types-recursion-scc-import/module-trees/txt
1812+/* src-511 %jibb /tests/golden/types-recursion-scc-import-bad/source/jibb
1813+/* tok-511 %txt /tests/golden/types-recursion-scc-import-bad/tokens/txt
1814+/* tre-511 %txt /tests/golden/types-recursion-scc-import-bad/tree/txt
1815+/* mod-511-1 %jibb /tests/golden/types-recursion-scc-import-bad/modules/ui/lib/jibb
1816+/* typ-511 %txt /tests/golden/types-recursion-scc-import-bad/types/txt
1817+/* mtre-511 %txt /tests/golden/types-recursion-scc-import-bad/module-trees/txt
1818+/* src-512 %jibb /tests/golden/types-recursion-scc-local/source/jibb
1819+/* tok-512 %txt /tests/golden/types-recursion-scc-local/tokens/txt
1820+/* tre-512 %txt /tests/golden/types-recursion-scc-local/tree/txt
1821+/* typ-512 %txt /tests/golden/types-recursion-scc-local/types/txt
1822+/* src-513 %jibb /tests/golden/types-recursion-scc-order/source/jibb
1823+/* tok-513 %txt /tests/golden/types-recursion-scc-order/tokens/txt
1824+/* tre-513 %txt /tests/golden/types-recursion-scc-order/tree/txt
1825+/* typ-513 %txt /tests/golden/types-recursion-scc-order/types/txt
1826+/* src-514 %jibb /tests/golden/types-recursion-scc-shadow/source/jibb
1827+/* tok-514 %txt /tests/golden/types-recursion-scc-shadow/tokens/txt
1828+/* tre-514 %txt /tests/golden/types-recursion-scc-shadow/tree/txt
1829+/* typ-514 %txt /tests/golden/types-recursion-scc-shadow/types/txt
1830+/* src-515 %jibb /tests/golden/types-recursive-branch/source/jibb
1831+/* tok-515 %txt /tests/golden/types-recursive-branch/tokens/txt
1832+/* tre-515 %txt /tests/golden/types-recursive-branch/tree/txt
1833+/* typ-515 %txt /tests/golden/types-recursive-branch/types/txt
1834+/* src-516 %jibb /tests/golden/types-recursive-gate/source/jibb
1835+/* tok-516 %txt /tests/golden/types-recursive-gate/tokens/txt
1836+/* tre-516 %txt /tests/golden/types-recursive-gate/tree/txt
1837+/* typ-516 %txt /tests/golden/types-recursive-gate/types/txt
1838+/* src-517 %jibb /tests/golden/types-recursive-sample/source/jibb
1839+/* tok-517 %txt /tests/golden/types-recursive-sample/tokens/txt
1840+/* tre-517 %txt /tests/golden/types-recursive-sample/tree/txt
1841+/* typ-517 %txt /tests/golden/types-recursive-sample/types/txt
1842+/* src-518 %jibb /tests/golden/types-scope-library-poke/source/jibb
1843+/* tok-518 %txt /tests/golden/types-scope-library-poke/tokens/txt
1844+/* tre-518 %txt /tests/golden/types-scope-library-poke/tree/txt
1845+/* typ-518 %txt /tests/golden/types-scope-library-poke/types/txt
1846+/* src-519 %jibb /tests/golden/types-scope-root-api/source/jibb
1847+/* tok-519 %txt /tests/golden/types-scope-root-api/tokens/txt
1848+/* tre-519 %txt /tests/golden/types-scope-root-api/tree/txt
1849+/* typ-519 %txt /tests/golden/types-scope-root-api/types/txt
1850+/* src-520 %jibb /tests/golden/types-scope-store-duplicate/source/jibb
1851+/* tok-520 %txt /tests/golden/types-scope-store-duplicate/tokens/txt
1852+/* tre-520 %txt /tests/golden/types-scope-store-duplicate/tree/txt
1853+/* typ-520 %txt /tests/golden/types-scope-store-duplicate/types/txt
1854+/* src-521 %jibb /tests/golden/types-scope-store-shadow/source/jibb
1855+/* tok-521 %txt /tests/golden/types-scope-store-shadow/tokens/txt
1856+/* tre-521 %txt /tests/golden/types-scope-store-shadow/tree/txt
1857+/* typ-521 %txt /tests/golden/types-scope-store-shadow/types/txt
1858+/* src-522 %jibb /tests/golden/types-string-interpolation/source/jibb
1859+/* tok-522 %txt /tests/golden/types-string-interpolation/tokens/txt
1860+/* tre-522 %txt /tests/golden/types-string-interpolation/tree/txt
1861+/* typ-522 %txt /tests/golden/types-string-interpolation/types/txt
1862+/* src-523 %jibb /tests/golden/types-tuple-context/source/jibb
1863+/* tok-523 %txt /tests/golden/types-tuple-context/tokens/txt
1864+/* tre-523 %txt /tests/golden/types-tuple-context/tree/txt
1865+/* typ-523 %txt /tests/golden/types-tuple-context/types/txt
1866+/* src-524 %jibb /tests/golden/types-tuple-context-nested/source/jibb
1867+/* tok-524 %txt /tests/golden/types-tuple-context-nested/tokens/txt
1868+/* tre-524 %txt /tests/golden/types-tuple-context-nested/tree/txt
1869+/* typ-524 %txt /tests/golden/types-tuple-context-nested/types/txt
1870+/* src-525 %jibb /tests/golden/types-union-alias/source/jibb
1871+/* tok-525 %txt /tests/golden/types-union-alias/tokens/txt
1872+/* tre-525 %txt /tests/golden/types-union-alias/tree/txt
1873+/* typ-525 %txt /tests/golden/types-union-alias/types/txt
1874+/* src-526 %jibb /tests/golden/types-union-branch-context/source/jibb
1875+/* tok-526 %txt /tests/golden/types-union-branch-context/tokens/txt
1876+/* tre-526 %txt /tests/golden/types-union-branch-context/tree/txt
1877+/* typ-526 %txt /tests/golden/types-union-branch-context/types/txt
1878+/* src-527 %jibb /tests/golden/types-union-branch-pending/source/jibb
1879+/* tok-527 %txt /tests/golden/types-union-branch-pending/tokens/txt
1880+/* tre-527 %txt /tests/golden/types-union-branch-pending/tree/txt
1881+/* typ-527 %txt /tests/golden/types-union-branch-pending/types/txt
1882+/* src-528 %jibb /tests/golden/types-union-constructor-shape/source/jibb
1883+/* tok-528 %txt /tests/golden/types-union-constructor-shape/tokens/txt
1884+/* tre-528 %txt /tests/golden/types-union-constructor-shape/tree/txt
1885+/* typ-528 %txt /tests/golden/types-union-constructor-shape/types/txt
1886+/* src-529 %jibb /tests/golden/types-union-context-flow/source/jibb
1887+/* tok-529 %txt /tests/golden/types-union-context-flow/tokens/txt
1888+/* tre-529 %txt /tests/golden/types-union-context-flow/tree/txt
1889+/* typ-529 %txt /tests/golden/types-union-context-flow/types/txt
1890+/* src-530 %jibb /tests/golden/types-union-finite/source/jibb
1891+/* tok-530 %txt /tests/golden/types-union-finite/tokens/txt
1892+/* tre-530 %txt /tests/golden/types-union-finite/tree/txt
1893+/* typ-530 %txt /tests/golden/types-union-finite/types/txt
1894+/* src-531 %jibb /tests/golden/types-union-finite-context/source/jibb
1895+/* tok-531 %txt /tests/golden/types-union-finite-context/tokens/txt
1896+/* tre-531 %txt /tests/golden/types-union-finite-context/tree/txt
1897+/* typ-531 %txt /tests/golden/types-union-finite-context/types/txt
1898+/* src-532 %jibb /tests/golden/types-union-finite-generic/source/jibb
1899+/* tok-532 %txt /tests/golden/types-union-finite-generic/tokens/txt
1900+/* tre-532 %txt /tests/golden/types-union-finite-generic/tree/txt
1901+/* typ-532 %txt /tests/golden/types-union-finite-generic/types/txt
1902+/* src-533 %jibb /tests/golden/types-union-finite-limit/source/jibb
1903+/* tok-533 %txt /tests/golden/types-union-finite-limit/tokens/txt
1904+/* tre-533 %txt /tests/golden/types-union-finite-limit/tree/txt
1905+/* typ-533 %txt /tests/golden/types-union-finite-limit/types/txt
1906+/* src-534 %jibb /tests/golden/types-union-import/source/jibb
1907+/* tok-534 %txt /tests/golden/types-union-import/tokens/txt
1908+/* tre-534 %txt /tests/golden/types-union-import/tree/txt
1909+/* mod-534-1 %jibb /tests/golden/types-union-import/modules/ui/lib/jibb
1910+/* typ-534 %txt /tests/golden/types-union-import/types/txt
1911+/* mtre-534 %txt /tests/golden/types-union-import/module-trees/txt
1912+/* src-535 %jibb /tests/golden/types-union-local-pending/source/jibb
1913+/* tok-535 %txt /tests/golden/types-union-local-pending/tokens/txt
1914+/* tre-535 %txt /tests/golden/types-union-local-pending/tree/txt
1915+/* typ-535 %txt /tests/golden/types-union-local-pending/types/txt
1916+/* src-536 %jibb /tests/golden/types-union-overlap/source/jibb
1917+/* tok-536 %txt /tests/golden/types-union-overlap/tokens/txt
1918+/* tre-536 %txt /tests/golden/types-union-overlap/tree/txt
1919+/* typ-536 %txt /tests/golden/types-union-overlap/types/txt
1920+/* src-537 %jibb /tests/golden/types-union-overlap-nested/source/jibb
1921+/* tok-537 %txt /tests/golden/types-union-overlap-nested/tokens/txt
1922+/* tre-537 %txt /tests/golden/types-union-overlap-nested/tree/txt
1923+/* typ-537 %txt /tests/golden/types-union-overlap-nested/types/txt
1924+/* src-538 %jibb /tests/golden/types-union-pattern-result-context/source/jibb
1925+/* tok-538 %txt /tests/golden/types-union-pattern-result-context/tokens/txt
1926+/* tre-538 %txt /tests/golden/types-union-pattern-result-context/tree/txt
1927+/* typ-538 %txt /tests/golden/types-union-pattern-result-context/types/txt
1928+/* src-539 %jibb /tests/golden/types-union-pattern-result-controls/source/jibb
1929+/* tok-539 %txt /tests/golden/types-union-pattern-result-controls/tokens/txt
1930+/* tre-539 %txt /tests/golden/types-union-pattern-result-controls/tree/txt
1931+/* typ-539 %txt /tests/golden/types-union-pattern-result-controls/types/txt
1932+/* src-540 %jibb /tests/golden/types-union-patterns/source/jibb
1933+/* tok-540 %txt /tests/golden/types-union-patterns/tokens/txt
1934+/* tre-540 %txt /tests/golden/types-union-patterns/tree/txt
1935+/* typ-540 %txt /tests/golden/types-union-patterns/types/txt
1936+/* src-541 %jibb /tests/golden/types-union-patterns-generic/source/jibb
1937+/* tok-541 %txt /tests/golden/types-union-patterns-generic/tokens/txt
1938+/* tre-541 %txt /tests/golden/types-union-patterns-generic/tree/txt
1939+/* typ-541 %txt /tests/golden/types-union-patterns-generic/types/txt
1940+/* src-542 %jibb /tests/golden/types-union-patterns-import/source/jibb
1941+/* tok-542 %txt /tests/golden/types-union-patterns-import/tokens/txt
1942+/* tre-542 %txt /tests/golden/types-union-patterns-import/tree/txt
1943+/* mod-542-1 %jibb /tests/golden/types-union-patterns-import/modules/ui/lib/jibb
1944+/* typ-542 %txt /tests/golden/types-union-patterns-import/types/txt
1945+/* mtre-542 %txt /tests/golden/types-union-patterns-import/module-trees/txt
1946+/* src-543 %jibb /tests/golden/types-union-phantom-generic/source/jibb
1947+/* tok-543 %txt /tests/golden/types-union-phantom-generic/tokens/txt
1948+/* tre-543 %txt /tests/golden/types-union-phantom-generic/tree/txt
1949+/* typ-543 %txt /tests/golden/types-union-phantom-generic/types/txt
1950+/* src-544 %jibb /tests/golden/types-union-print-cross-namespace/source/jibb
1951+/* tok-544 %txt /tests/golden/types-union-print-cross-namespace/tokens/txt
1952+/* tre-544 %txt /tests/golden/types-union-print-cross-namespace/tree/txt
1953+/* mod-544-1 %jibb /tests/golden/types-union-print-cross-namespace/modules/ui/lib/jibb
1954+/* typ-544 %txt /tests/golden/types-union-print-cross-namespace/types/txt
1955+/* mtre-544 %txt /tests/golden/types-union-print-cross-namespace/module-trees/txt
1956+/* src-545 %jibb /tests/golden/types-union-print-distinct/source/jibb
1957+/* tok-545 %txt /tests/golden/types-union-print-distinct/tokens/txt
1958+/* tre-545 %txt /tests/golden/types-union-print-distinct/tree/txt
1959+/* mod-545-1 %jibb /tests/golden/types-union-print-distinct/modules/ui/left/jibb
1960+/* mod-545-2 %jibb /tests/golden/types-union-print-distinct/modules/ui/right/jibb
1961+/* mod-545-3 %jibb /tests/golden/types-union-print-distinct/modules/ui/twin/jibb
1962+/* typ-545 %txt /tests/golden/types-union-print-distinct/types/txt
1963+/* mtre-545 %txt /tests/golden/types-union-print-distinct/module-trees/txt
1964+/* src-546 %jibb /tests/golden/types-union-print-escape/source/jibb
1965+/* tok-546 %txt /tests/golden/types-union-print-escape/tokens/txt
1966+/* tre-546 %txt /tests/golden/types-union-print-escape/tree/txt
1967+/* typ-546 %txt /tests/golden/types-union-print-escape/types/txt
1968+/* src-547 %jibb /tests/golden/types-union-print-local/source/jibb
1969+/* tok-547 %txt /tests/golden/types-union-print-local/tokens/txt
1970+/* tre-547 %txt /tests/golden/types-union-print-local/tree/txt
1971+/* typ-547 %txt /tests/golden/types-union-print-local/types/txt
1972+/* src-548 %jibb /tests/golden/types-union-print-nested/source/jibb
1973+/* tok-548 %txt /tests/golden/types-union-print-nested/tokens/txt
1974+/* tre-548 %txt /tests/golden/types-union-print-nested/tree/txt
1975+/* typ-548 %txt /tests/golden/types-union-print-nested/types/txt
1976+/* src-549 %jibb /tests/golden/types-union-print-same-origin/source/jibb
1977+/* tok-549 %txt /tests/golden/types-union-print-same-origin/tokens/txt
1978+/* tre-549 %txt /tests/golden/types-union-print-same-origin/tree/txt
1979+/* mod-549-1 %jibb /tests/golden/types-union-print-same-origin/modules/ui/shared/jibb
1980+/* typ-549 %txt /tests/golden/types-union-print-same-origin/types/txt
1981+/* mtre-549 %txt /tests/golden/types-union-print-same-origin/module-trees/txt
1982+/* src-550 %jibb /tests/golden/types-union-print-transitive/source/jibb
1983+/* tok-550 %txt /tests/golden/types-union-print-transitive/tokens/txt
1984+/* tre-550 %txt /tests/golden/types-union-print-transitive/tree/txt
1985+/* mod-550-1 %jibb /tests/golden/types-union-print-transitive/modules/ui/mid/jibb
1986+/* mod-550-2 %jibb /tests/golden/types-union-print-transitive/modules/ui/base/jibb
1987+/* typ-550 %txt /tests/golden/types-union-print-transitive/types/txt
1988+/* mtre-550 %txt /tests/golden/types-union-print-transitive/module-trees/txt
1989+/* src-551 %jibb /tests/golden/types-union-singleton/source/jibb
1990+/* tok-551 %txt /tests/golden/types-union-singleton/tokens/txt
1991+/* tre-551 %txt /tests/golden/types-union-singleton/tree/txt
1992+/* typ-551 %txt /tests/golden/types-union-singleton/types/txt
1993+/* src-552 %jibb /tests/golden/types-union-tag-atoms/source/jibb
1994+/* tok-552 %txt /tests/golden/types-union-tag-atoms/tokens/txt
1995+/* tre-552 %txt /tests/golden/types-union-tag-atoms/tree/txt
1996+/* typ-552 %txt /tests/golden/types-union-tag-atoms/types/txt
1997+/* src-553 %jibb /tests/golden/types-union-tags/source/jibb
1998+/* tok-553 %txt /tests/golden/types-union-tags/tokens/txt
1999+/* tre-553 %txt /tests/golden/types-union-tags/tree/txt
2000+/* typ-553 %txt /tests/golden/types-union-tags/types/txt
2001+/* src-554 %jibb /tests/golden/types-union-unresolved/source/jibb
2002+/* tok-554 %txt /tests/golden/types-union-unresolved/tokens/txt
2003+/* tre-554 %txt /tests/golden/types-union-unresolved/tree/txt
2004+/* typ-554 %txt /tests/golden/types-union-unresolved/types/txt
2005+/* src-555 %jibb /tests/golden/types-union-unresolved-flow/source/jibb
2006+/* tok-555 %txt /tests/golden/types-union-unresolved-flow/tokens/txt
2007+/* tre-555 %txt /tests/golden/types-union-unresolved-flow/tree/txt
2008+/* typ-555 %txt /tests/golden/types-union-unresolved-flow/types/txt
2009+/* src-556 %jibb /tests/golden/types-unit-construction/source/jibb
2010+/* tok-556 %txt /tests/golden/types-unit-construction/tokens/txt
2011+/* tre-556 %txt /tests/golden/types-unit-construction/tree/txt
2012+/* typ-556 %txt /tests/golden/types-unit-construction/types/txt
2013+/* src-557 %jibb /tests/golden/types-unit-context/source/jibb
2014+/* tok-557 %txt /tests/golden/types-unit-context/tokens/txt
2015+/* tre-557 %txt /tests/golden/types-unit-context/tree/txt
2016+/* typ-557 %txt /tests/golden/types-unit-context/types/txt
2017+/* src-558 %jibb /tests/golden/types-unit-patterns/source/jibb
2018+/* tok-558 %txt /tests/golden/types-unit-patterns/tokens/txt
2019+/* tre-558 %txt /tests/golden/types-unit-patterns/tree/txt
2020+/* typ-558 %txt /tests/golden/types-unit-patterns/types/txt
2021+/* src-559 %jibb /tests/golden/types-value-cycle-shadow/source/jibb
2022+/* tok-559 %txt /tests/golden/types-value-cycle-shadow/tokens/txt
2023+/* tre-559 %txt /tests/golden/types-value-cycle-shadow/tree/txt
2024+/* typ-559 %txt /tests/golden/types-value-cycle-shadow/types/txt
2025+/* src-560 %jibb /tests/golden/types-value-cycle-unsupported/source/jibb
2026+/* tok-560 %txt /tests/golden/types-value-cycle-unsupported/tokens/txt
2027+/* tre-560 %txt /tests/golden/types-value-cycle-unsupported/tree/txt
2028+/* typ-560 %txt /tests/golden/types-value-cycle-unsupported/types/txt
2029+/* src-561 %jibb /tests/golden/types-value-cycles/source/jibb
2030+/* tok-561 %txt /tests/golden/types-value-cycles/tokens/txt
2031+/* tre-561 %txt /tests/golden/types-value-cycles/tree/txt
2032+/* typ-561 %txt /tests/golden/types-value-cycles/types/txt
20152033=/ prepared-prelude (prepare-prelude-with-internal:jibb prelude-source internal-source)
20162034|%
20172035:: one arm per case
@@ -2890,246 +2908,254 @@
28902908 (weld (check ~.types-import-sur src-436 `tok-436 `tre-436) (check-import-types ~.types-import-sur ~[%tests %golden ~.types-import-sur %source %jibb] src-436 `typ-436 ~[[%fixture %title imp-436-1] [%fixture %pair imp-436-2]]))
28912909++ test-types-import-sur-record-graph
28922910 (weld (weld (check ~.types-import-sur-record-graph src-437 `tok-437 `tre-437) (check-module-types ~.types-import-sur-record-graph ~[%tests %golden ~.types-import-sur-record-graph %source %jibb] src-437 `typ-437 ~[[%fixture %entry imp-437-1]] ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-437-1]])) (check-module-trees ~.types-import-sur-record-graph `mtre-437 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-437-1]]))
2911+++ test-types-import-tlon-notes
2912+ (weld (check ~.types-import-tlon-notes src-438 `tok-438 `tre-438) (check-import-types ~.types-import-tlon-notes ~[%tests %golden ~.types-import-tlon-notes %source %jibb] src-438 `typ-438 ~[[%notes %u-note imp-438-1] [%notes %a-note imp-438-2]]))
28932913++ test-types-list-branch
2894− (weld (check ~.types-list-branch src-438 `tok-438 `tre-438) (check-module-types ~.types-list-branch ~[%tests %golden ~.types-list-branch %source %jibb] src-438 `typ-438 ~ ~ ~))
2914+ (weld (check ~.types-list-branch src-439 `tok-439 `tre-439) (check-module-types ~.types-list-branch ~[%tests %golden ~.types-list-branch %source %jibb] src-439 `typ-439 ~ ~ ~))
28952915++ test-types-list-cons
2896− (weld (check ~.types-list-cons src-439 `tok-439 `tre-439) (check-module-types ~.types-list-cons ~[%tests %golden ~.types-list-cons %source %jibb] src-439 `typ-439 ~ ~ ~))
2916+ (weld (check ~.types-list-cons src-440 `tok-440 `tre-440) (check-module-types ~.types-list-cons ~[%tests %golden ~.types-list-cons %source %jibb] src-440 `typ-440 ~ ~ ~))
28972917++ test-types-list-context
2898− (weld (check ~.types-list-context src-440 `tok-440 `tre-440) (check-module-types ~.types-list-context ~[%tests %golden ~.types-list-context %source %jibb] src-440 `typ-440 ~ ~ ~))
2918+ (weld (check ~.types-list-context src-441 `tok-441 `tre-441) (check-module-types ~.types-list-context ~[%tests %golden ~.types-list-context %source %jibb] src-441 `typ-441 ~ ~ ~))
28992919++ test-types-list-imported
2900− (weld (check ~.types-list-imported src-441 `tok-441 `tre-441) (check-module-types ~.types-list-imported ~[%tests %golden ~.types-list-imported %source %jibb] src-441 `typ-441 ~[[%fixture %texts imp-441-1] [%fixture %ships imp-441-2]] ~ ~))
2920+ (weld (check ~.types-list-imported src-442 `tok-442 `tre-442) (check-module-types ~.types-list-imported ~[%tests %golden ~.types-list-imported %source %jibb] src-442 `typ-442 ~[[%fixture %texts imp-442-1] [%fixture %ships imp-442-2]] ~ ~))
29012921++ test-types-list-open
2902− (weld (check ~.types-list-open src-442 `tok-442 `tre-442) (check-module-types ~.types-list-open ~[%tests %golden ~.types-list-open %source %jibb] src-442 `typ-442 ~ ~ ~))
2922+ (weld (check ~.types-list-open src-443 `tok-443 `tre-443) (check-module-types ~.types-list-open ~[%tests %golden ~.types-list-open %source %jibb] src-443 `typ-443 ~ ~ ~))
29032923++ test-types-list-open-constraints
2904− (weld (check ~.types-list-open-constraints src-443 `tok-443 `tre-443) (check-module-types ~.types-list-open-constraints ~[%tests %golden ~.types-list-open-constraints %source %jibb] src-443 `typ-443 ~ ~ ~))
2924+ (weld (check ~.types-list-open-constraints src-444 `tok-444 `tre-444) (check-module-types ~.types-list-open-constraints ~[%tests %golden ~.types-list-open-constraints %source %jibb] src-444 `typ-444 ~ ~ ~))
29052925++ test-types-list-pattern-imported
2906− (weld (check ~.types-list-pattern-imported src-444 `tok-444 `tre-444) (check-module-types ~.types-list-pattern-imported ~[%tests %golden ~.types-list-pattern-imported %source %jibb] src-444 `typ-444 ~[[%fixture %texts imp-444-1] [%fixture %text-set imp-444-2]] ~ ~))
2926+ (weld (check ~.types-list-pattern-imported src-445 `tok-445 `tre-445) (check-module-types ~.types-list-pattern-imported ~[%tests %golden ~.types-list-pattern-imported %source %jibb] src-445 `typ-445 ~[[%fixture %texts imp-445-1] [%fixture %text-set imp-445-2]] ~ ~))
29072927++ test-types-list-patterns
2908− (weld (check ~.types-list-patterns src-445 `tok-445 `tre-445) (check-module-types ~.types-list-patterns ~[%tests %golden ~.types-list-patterns %source %jibb] src-445 `typ-445 ~ ~ ~))
2928+ (weld (check ~.types-list-patterns src-446 `tok-446 `tre-446) (check-module-types ~.types-list-patterns ~[%tests %golden ~.types-list-patterns %source %jibb] src-446 `typ-446 ~ ~ ~))
29092929++ test-types-list-zero-fit
2910− (weld (check ~.types-list-zero-fit src-446 `tok-446 `tre-446) (check-module-types ~.types-list-zero-fit ~[%tests %golden ~.types-list-zero-fit %source %jibb] src-446 `typ-446 ~ ~ ~))
2930+ (weld (check ~.types-list-zero-fit src-447 `tok-447 `tre-447) (check-module-types ~.types-list-zero-fit ~[%tests %golden ~.types-list-zero-fit %source %jibb] src-447 `typ-447 ~ ~ ~))
29112931++ test-types-local-capitals
2912− (weld (check ~.types-local-capitals src-447 `tok-447 `tre-447) (check-module-types ~.types-local-capitals ~[%tests %golden ~.types-local-capitals %source %jibb] src-447 `typ-447 ~ ~ ~))
2932+ (weld (check ~.types-local-capitals src-448 `tok-448 `tre-448) (check-module-types ~.types-local-capitals ~[%tests %golden ~.types-local-capitals %source %jibb] src-448 `typ-448 ~ ~ ~))
29132933++ test-types-local-recursive
2914− (weld (check ~.types-local-recursive src-448 `tok-448 `tre-448) (check-module-types ~.types-local-recursive ~[%tests %golden ~.types-local-recursive %source %jibb] src-448 `typ-448 ~ ~ ~))
2934+ (weld (check ~.types-local-recursive src-449 `tok-449 `tre-449) (check-module-types ~.types-local-recursive ~[%tests %golden ~.types-local-recursive %source %jibb] src-449 `typ-449 ~ ~ ~))
29152935++ test-types-local-scc
2916− (weld (check ~.types-local-scc src-449 `tok-449 `tre-449) (check-module-types ~.types-local-scc ~[%tests %golden ~.types-local-scc %source %jibb] src-449 `typ-449 ~ ~ ~))
2936+ (weld (check ~.types-local-scc src-450 `tok-450 `tre-450) (check-module-types ~.types-local-scc ~[%tests %golden ~.types-local-scc %source %jibb] src-450 `typ-450 ~ ~ ~))
29172937++ test-types-local-scc-adversarial
2918− (weld (check ~.types-local-scc-adversarial src-450 `tok-450 `tre-450) (check-module-types ~.types-local-scc-adversarial ~[%tests %golden ~.types-local-scc-adversarial %source %jibb] src-450 `typ-450 ~ ~ ~))
2938+ (weld (check ~.types-local-scc-adversarial src-451 `tok-451 `tre-451) (check-module-types ~.types-local-scc-adversarial ~[%tests %golden ~.types-local-scc-adversarial %source %jibb] src-451 `typ-451 ~ ~ ~))
29192939++ test-types-missing-tag-context
2920− (weld (check ~.types-missing-tag-context src-451 `tok-451 `tre-451) (check-module-types ~.types-missing-tag-context ~[%tests %golden ~.types-missing-tag-context %source %jibb] src-451 `typ-451 ~ ~ ~))
2940+ (weld (check ~.types-missing-tag-context src-452 `tok-452 `tre-452) (check-module-types ~.types-missing-tag-context ~[%tests %golden ~.types-missing-tag-context %source %jibb] src-452 `typ-452 ~ ~ ~))
29212941++ test-types-missing-tag-imported
2922− (weld (check ~.types-missing-tag-imported src-452 `tok-452 `tre-452) (check-import-types ~.types-missing-tag-imported ~[%tests %golden ~.types-missing-tag-imported %source %jibb] src-452 `typ-452 ~[[%fixture %choice imp-452-1] [%fixture %nested-choice imp-452-2]]))
2942+ (weld (check ~.types-missing-tag-imported src-453 `tok-453 `tre-453) (check-import-types ~.types-missing-tag-imported ~[%tests %golden ~.types-missing-tag-imported %source %jibb] src-453 `typ-453 ~[[%fixture %choice imp-453-1] [%fixture %nested-choice imp-453-2]]))
29232943++ test-types-missing-tag-named
2924− (weld (check ~.types-missing-tag-named src-453 `tok-453 `tre-453) (check-module-types ~.types-missing-tag-named ~[%tests %golden ~.types-missing-tag-named %source %jibb] src-453 `typ-453 ~ ~ ~))
2944+ (weld (check ~.types-missing-tag-named src-454 `tok-454 `tre-454) (check-module-types ~.types-missing-tag-named ~[%tests %golden ~.types-missing-tag-named %source %jibb] src-454 `typ-454 ~ ~ ~))
29252945++ test-types-module-fixtures
2926− (weld (weld (check-at ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-454 `tok-454 `tre-454) (check-module-types ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-454 `typ-454 ~ ~ ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-454-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-454-2]])) (check-module-trees ~.types-module-fixtures `mtre-454 ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-454-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-454-2]]))
2946+ (weld (weld (check-at ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-455 `tok-455 `tre-455) (check-module-types ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-455 `typ-455 ~ ~ ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-455-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-455-2]])) (check-module-trees ~.types-module-fixtures `mtre-455 ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-455-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-455-2]]))
29272947++ test-types-module-mixed
2928− (weld (weld (check ~.types-module-mixed src-455 `tok-455 `tre-455) (check-module-types ~.types-module-mixed ~[%tests %golden ~.types-module-mixed %source %jibb] src-455 `typ-455 ~[[%fixture %title imp-455-1]] ~[[%label mark-455-1]] ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-455-1]])) (check-module-trees ~.types-module-mixed `mtre-455 ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-455-1]]))
2948+ (weld (weld (check ~.types-module-mixed src-456 `tok-456 `tre-456) (check-module-types ~.types-module-mixed ~[%tests %golden ~.types-module-mixed %source %jibb] src-456 `typ-456 ~[[%fixture %title imp-456-1]] ~[[%label mark-456-1]] ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-456-1]])) (check-module-trees ~.types-module-mixed `mtre-456 ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-456-1]]))
29292949++ test-types-multi-call
2930− (weld (check ~.types-multi-call src-456 `tok-456 `tre-456) (check-module-types ~.types-multi-call ~[%tests %golden ~.types-multi-call %source %jibb] src-456 `typ-456 ~ ~ ~))
2950+ (weld (check ~.types-multi-call src-457 `tok-457 `tre-457) (check-module-types ~.types-multi-call ~[%tests %golden ~.types-multi-call %source %jibb] src-457 `typ-457 ~ ~ ~))
29312951++ test-types-multi-import
2932− (weld (weld (check ~.types-multi-import src-457 `tok-457 `tre-457) (check-module-types ~.types-multi-import ~[%tests %golden ~.types-multi-import %source %jibb] src-457 `typ-457 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-457-1]])) (check-module-trees ~.types-multi-import `mtre-457 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-457-1]]))
2952+ (weld (weld (check ~.types-multi-import src-458 `tok-458 `tre-458) (check-module-types ~.types-multi-import ~[%tests %golden ~.types-multi-import %source %jibb] src-458 `typ-458 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-458-1]])) (check-module-trees ~.types-multi-import `mtre-458 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-458-1]]))
29332953++ test-types-nested-missing-tag
2934− (weld (check ~.types-nested-missing-tag src-458 `tok-458 `tre-458) (check-module-types ~.types-nested-missing-tag ~[%tests %golden ~.types-nested-missing-tag %source %jibb] src-458 `typ-458 ~ ~ ~))
2954+ (weld (check ~.types-nested-missing-tag src-459 `tok-459 `tre-459) (check-module-types ~.types-nested-missing-tag ~[%tests %golden ~.types-nested-missing-tag %source %jibb] src-459 `typ-459 ~ ~ ~))
29352955++ test-types-null-context
2936− (weld (check ~.types-null-context src-459 `tok-459 `tre-459) (check-types ~.types-null-context ~[%tests %golden ~.types-null-context %source %jibb] src-459 `typ-459))
2956+ (weld (check ~.types-null-context src-460 `tok-460 `tre-460) (check-types ~.types-null-context ~[%tests %golden ~.types-null-context %source %jibb] src-460 `typ-460))
29372957++ test-types-null-overlap
2938− (weld (check ~.types-null-overlap src-460 `tok-460 `tre-460) (check-types ~.types-null-overlap ~[%tests %golden ~.types-null-overlap %source %jibb] src-460 `typ-460))
2958+ (weld (check ~.types-null-overlap src-461 `tok-461 `tre-461) (check-types ~.types-null-overlap ~[%tests %golden ~.types-null-overlap %source %jibb] src-461 `typ-461))
29392959++ test-types-null-unresolved
2940− (weld (check ~.types-null-unresolved src-461 `tok-461 `tre-461) (check-types ~.types-null-unresolved ~[%tests %golden ~.types-null-unresolved %source %jibb] src-461 `typ-461))
2960+ (weld (check ~.types-null-unresolved src-462 `tok-462 `tre-462) (check-types ~.types-null-unresolved ~[%tests %golden ~.types-null-unresolved %source %jibb] src-462 `typ-462))
29412961++ test-types-partial-apply
2942− (weld (check ~.types-partial-apply src-462 `tok-462 `tre-462) (check-types ~.types-partial-apply ~[%tests %golden ~.types-partial-apply %source %jibb] src-462 `typ-462))
2962+ (weld (check ~.types-partial-apply src-463 `tok-463 `tre-463) (check-types ~.types-partial-apply ~[%tests %golden ~.types-partial-apply %source %jibb] src-463 `typ-463))
29432963++ test-types-partial-atom-alias
2944− (weld (check ~.types-partial-atom-alias src-463 `tok-463 `tre-463) (check-types ~.types-partial-atom-alias ~[%tests %golden ~.types-partial-atom-alias %source %jibb] src-463 `typ-463))
2964+ (weld (check ~.types-partial-atom-alias src-464 `tok-464 `tre-464) (check-types ~.types-partial-atom-alias ~[%tests %golden ~.types-partial-atom-alias %source %jibb] src-464 `typ-464))
29452965++ test-types-partial-atom-constraint
2946− (weld (check ~.types-partial-atom-constraint src-464 `tok-464 `tre-464) (check-types ~.types-partial-atom-constraint ~[%tests %golden ~.types-partial-atom-constraint %source %jibb] src-464 `typ-464))
2966+ (weld (check ~.types-partial-atom-constraint src-465 `tok-465 `tre-465) (check-types ~.types-partial-atom-constraint ~[%tests %golden ~.types-partial-atom-constraint %source %jibb] src-465 `typ-465))
29472967++ test-types-partial-atom-widening
2948− (weld (check ~.types-partial-atom-widening src-465 `tok-465 `tre-465) (check-types ~.types-partial-atom-widening ~[%tests %golden ~.types-partial-atom-widening %source %jibb] src-465 `typ-465))
2968+ (weld (check ~.types-partial-atom-widening src-466 `tok-466 `tre-466) (check-types ~.types-partial-atom-widening ~[%tests %golden ~.types-partial-atom-widening %source %jibb] src-466 `typ-466))
29492969++ test-types-partial-aura
2950− (weld (check ~.types-partial-aura src-466 `tok-466 `tre-466) (check-types ~.types-partial-aura ~[%tests %golden ~.types-partial-aura %source %jibb] src-466 `typ-466))
2970+ (weld (check ~.types-partial-aura src-467 `tok-467 `tre-467) (check-types ~.types-partial-aura ~[%tests %golden ~.types-partial-aura %source %jibb] src-467 `typ-467))
29512971++ test-types-partial-aura-family
2952− (weld (check ~.types-partial-aura-family src-467 `tok-467 `tre-467) (check-types ~.types-partial-aura-family ~[%tests %golden ~.types-partial-aura-family %source %jibb] src-467 `typ-467))
2972+ (weld (check ~.types-partial-aura-family src-468 `tok-468 `tre-468) (check-types ~.types-partial-aura-family ~[%tests %golden ~.types-partial-aura-family %source %jibb] src-468 `typ-468))
29532973++ test-types-partial-aura-generalization
2954− (weld (check ~.types-partial-aura-generalization src-468 `tok-468 `tre-468) (check-types ~.types-partial-aura-generalization ~[%tests %golden ~.types-partial-aura-generalization %source %jibb] src-468 `typ-468))
2974+ (weld (check ~.types-partial-aura-generalization src-469 `tok-469 `tre-469) (check-types ~.types-partial-aura-generalization ~[%tests %golden ~.types-partial-aura-generalization %source %jibb] src-469 `typ-469))
29552975++ test-types-partial-bare-atom
2956− (weld (check ~.types-partial-bare-atom src-469 `tok-469 `tre-469) (check-types ~.types-partial-bare-atom ~[%tests %golden ~.types-partial-bare-atom %source %jibb] src-469 `typ-469))
2976+ (weld (check ~.types-partial-bare-atom src-470 `tok-470 `tre-470) (check-types ~.types-partial-bare-atom ~[%tests %golden ~.types-partial-bare-atom %source %jibb] src-470 `typ-470))
29572977++ test-types-partial-branch-widening
2958− (weld (check ~.types-partial-branch-widening src-470 `tok-470 `tre-470) (check-types ~.types-partial-branch-widening ~[%tests %golden ~.types-partial-branch-widening %source %jibb] src-470 `typ-470))
2978+ (weld (check ~.types-partial-branch-widening src-471 `tok-471 `tre-471) (check-types ~.types-partial-branch-widening ~[%tests %golden ~.types-partial-branch-widening %source %jibb] src-471 `typ-471))
29592979++ test-types-partial-conflicting-sites
2960− (weld (check ~.types-partial-conflicting-sites src-471 `tok-471 `tre-471) (check-types ~.types-partial-conflicting-sites ~[%tests %golden ~.types-partial-conflicting-sites %source %jibb] src-471 `typ-471))
2980+ (weld (check ~.types-partial-conflicting-sites src-472 `tok-472 `tre-472) (check-types ~.types-partial-conflicting-sites ~[%tests %golden ~.types-partial-conflicting-sites %source %jibb] src-472 `typ-472))
29612981++ test-types-partial-decimal-default
2962− (weld (check ~.types-partial-decimal-default src-472 `tok-472 `tre-472) (check-types ~.types-partial-decimal-default ~[%tests %golden ~.types-partial-decimal-default %source %jibb] src-472 `typ-472))
2982+ (weld (check ~.types-partial-decimal-default src-473 `tok-473 `tre-473) (check-types ~.types-partial-decimal-default ~[%tests %golden ~.types-partial-decimal-default %source %jibb] src-473 `typ-473))
29632983++ test-types-partial-dependency-chain
2964− (weld (check ~.types-partial-dependency-chain src-473 `tok-473 `tre-473) (check-types ~.types-partial-dependency-chain ~[%tests %golden ~.types-partial-dependency-chain %source %jibb] src-473 `typ-473))
2984+ (weld (check ~.types-partial-dependency-chain src-474 `tok-474 `tre-474) (check-types ~.types-partial-dependency-chain ~[%tests %golden ~.types-partial-dependency-chain %source %jibb] src-474 `typ-474))
29652985++ test-types-partial-explicit-capital
2966− (weld (check ~.types-partial-explicit-capital src-474 `tok-474 `tre-474) (check-types ~.types-partial-explicit-capital ~[%tests %golden ~.types-partial-explicit-capital %source %jibb] src-474 `typ-474))
2986+ (weld (check ~.types-partial-explicit-capital src-475 `tok-475 `tre-475) (check-types ~.types-partial-explicit-capital ~[%tests %golden ~.types-partial-explicit-capital %source %jibb] src-475 `typ-475))
29672987++ test-types-partial-forward
2968− (weld (check ~.types-partial-forward src-475 `tok-475 `tre-475) (check-types ~.types-partial-forward ~[%tests %golden ~.types-partial-forward %source %jibb] src-475 `typ-475))
2988+ (weld (check ~.types-partial-forward src-476 `tok-476 `tre-476) (check-types ~.types-partial-forward ~[%tests %golden ~.types-partial-forward %source %jibb] src-476 `typ-476))
29692989++ test-types-partial-generalization
2970− (weld (check ~.types-partial-generalization src-476 `tok-476 `tre-476) (check-types ~.types-partial-generalization ~[%tests %golden ~.types-partial-generalization %source %jibb] src-476 `typ-476))
2990+ (weld (check ~.types-partial-generalization src-477 `tok-477 `tre-477) (check-types ~.types-partial-generalization ~[%tests %golden ~.types-partial-generalization %source %jibb] src-477 `typ-477))
29712991++ test-types-partial-identity
2972− (weld (check ~.types-partial-identity src-477 `tok-477 `tre-477) (check-types ~.types-partial-identity ~[%tests %golden ~.types-partial-identity %source %jibb] src-477 `typ-477))
2992+ (weld (check ~.types-partial-identity src-478 `tok-478 `tre-478) (check-types ~.types-partial-identity ~[%tests %golden ~.types-partial-identity %source %jibb] src-478 `typ-478))
29732993++ test-types-partial-independent-atoms
2974− (weld (check ~.types-partial-independent-atoms src-478 `tok-478 `tre-478) (check-types ~.types-partial-independent-atoms ~[%tests %golden ~.types-partial-independent-atoms %source %jibb] src-478 `typ-478))
2994+ (weld (check ~.types-partial-independent-atoms src-479 `tok-479 `tre-479) (check-types ~.types-partial-independent-atoms ~[%tests %golden ~.types-partial-independent-atoms %source %jibb] src-479 `typ-479))
29752995++ test-types-partial-local-molds
2976− (weld (check ~.types-partial-local-molds src-479 `tok-479 `tre-479) (check-types ~.types-partial-local-molds ~[%tests %golden ~.types-partial-local-molds %source %jibb] src-479 `typ-479))
2996+ (weld (check ~.types-partial-local-molds src-480 `tok-480 `tre-480) (check-types ~.types-partial-local-molds ~[%tests %golden ~.types-partial-local-molds %source %jibb] src-480 `typ-480))
29772997++ test-types-partial-locals
2978− (weld (check ~.types-partial-locals src-480 `tok-480 `tre-480) (check-types ~.types-partial-locals ~[%tests %golden ~.types-partial-locals %source %jibb] src-480 `typ-480))
2998+ (weld (check ~.types-partial-locals src-481 `tok-481 `tre-481) (check-types ~.types-partial-locals ~[%tests %golden ~.types-partial-locals %source %jibb] src-481 `typ-481))
29792999++ test-types-partial-many-atom-constraints
2980− (weld (check ~.types-partial-many-atom-constraints src-481 `tok-481 `tre-481) (check-types ~.types-partial-many-atom-constraints ~[%tests %golden ~.types-partial-many-atom-constraints %source %jibb] src-481 `typ-481))
3000+ (weld (check ~.types-partial-many-atom-constraints src-482 `tok-482 `tre-482) (check-types ~.types-partial-many-atom-constraints ~[%tests %golden ~.types-partial-many-atom-constraints %source %jibb] src-482 `typ-482))
29813001++ test-types-partial-mold-bare-aura
2982− (weld (check ~.types-partial-mold-bare-aura src-482 `tok-482 `tre-482) (check-types ~.types-partial-mold-bare-aura ~[%tests %golden ~.types-partial-mold-bare-aura %source %jibb] src-482 `typ-482))
3002+ (weld (check ~.types-partial-mold-bare-aura src-483 `tok-483 `tre-483) (check-types ~.types-partial-mold-bare-aura ~[%tests %golden ~.types-partial-mold-bare-aura %source %jibb] src-483 `typ-483))
29833003++ test-types-partial-mold-composite
2984− (weld (check ~.types-partial-mold-composite src-483 `tok-483 `tre-483) (check-types ~.types-partial-mold-composite ~[%tests %golden ~.types-partial-mold-composite %source %jibb] src-483 `typ-483))
3004+ (weld (check ~.types-partial-mold-composite src-484 `tok-484 `tre-484) (check-types ~.types-partial-mold-composite ~[%tests %golden ~.types-partial-mold-composite %source %jibb] src-484 `typ-484))
29853005++ test-types-partial-mold-forward
2986− (weld (check ~.types-partial-mold-forward src-484 `tok-484 `tre-484) (check-types ~.types-partial-mold-forward ~[%tests %golden ~.types-partial-mold-forward %source %jibb] src-484 `typ-484))
3006+ (weld (check ~.types-partial-mold-forward src-485 `tok-485 `tre-485) (check-types ~.types-partial-mold-forward ~[%tests %golden ~.types-partial-mold-forward %source %jibb] src-485 `typ-485))
29873007++ test-types-partial-mold-recursive
2988− (weld (check ~.types-partial-mold-recursive src-485 `tok-485 `tre-485) (check-types ~.types-partial-mold-recursive ~[%tests %golden ~.types-partial-mold-recursive %source %jibb] src-485 `typ-485))
3008+ (weld (check ~.types-partial-mold-recursive src-486 `tok-486 `tre-486) (check-types ~.types-partial-mold-recursive ~[%tests %golden ~.types-partial-mold-recursive %source %jibb] src-486 `typ-486))
29893009++ test-types-partial-occurs
2990− (weld (check ~.types-partial-occurs src-486 `tok-486 `tre-486) (check-types ~.types-partial-occurs ~[%tests %golden ~.types-partial-occurs %source %jibb] src-486 `typ-486))
3010+ (weld (check ~.types-partial-occurs src-487 `tok-487 `tre-487) (check-types ~.types-partial-occurs ~[%tests %golden ~.types-partial-occurs %source %jibb] src-487 `typ-487))
29913011++ test-types-partial-projection
2992− (weld (check ~.types-partial-projection src-487 `tok-487 `tre-487) (check-types ~.types-partial-projection ~[%tests %golden ~.types-partial-projection %source %jibb] src-487 `typ-487))
3012+ (weld (check ~.types-partial-projection src-488 `tok-488 `tre-488) (check-types ~.types-partial-projection ~[%tests %golden ~.types-partial-projection %source %jibb] src-488 `typ-488))
29933013++ test-types-partial-shadow-global
2994− (weld (check ~.types-partial-shadow-global src-488 `tok-488 `tre-488) (check-types ~.types-partial-shadow-global ~[%tests %golden ~.types-partial-shadow-global %source %jibb] src-488 `typ-488))
3014+ (weld (check ~.types-partial-shadow-global src-489 `tok-489 `tre-489) (check-types ~.types-partial-shadow-global ~[%tests %golden ~.types-partial-shadow-global %source %jibb] src-489 `typ-489))
29953015++ test-types-partial-shared-tvar
2996− (weld (check ~.types-partial-shared-tvar src-489 `tok-489 `tre-489) (check-types ~.types-partial-shared-tvar ~[%tests %golden ~.types-partial-shared-tvar %source %jibb] src-489 `typ-489))
3016+ (weld (check ~.types-partial-shared-tvar src-490 `tok-490 `tre-490) (check-types ~.types-partial-shared-tvar ~[%tests %golden ~.types-partial-shared-tvar %source %jibb] src-490 `typ-490))
29973017++ test-types-partial-union-cases
2998− (weld (check ~.types-partial-union-cases src-490 `tok-490 `tre-490) (check-types ~.types-partial-union-cases ~[%tests %golden ~.types-partial-union-cases %source %jibb] src-490 `typ-490))
3018+ (weld (check ~.types-partial-union-cases src-491 `tok-491 `tre-491) (check-types ~.types-partial-union-cases ~[%tests %golden ~.types-partial-union-cases %source %jibb] src-491 `typ-491))
29993019++ test-types-partial-union-edges
3000− (weld (check ~.types-partial-union-edges src-491 `tok-491 `tre-491) (check-types ~.types-partial-union-edges ~[%tests %golden ~.types-partial-union-edges %source %jibb] src-491 `typ-491))
3020+ (weld (check ~.types-partial-union-edges src-492 `tok-492 `tre-492) (check-types ~.types-partial-union-edges ~[%tests %golden ~.types-partial-union-edges %source %jibb] src-492 `typ-492))
30013021++ test-types-partial-unresolved-tag
3002− (weld (check ~.types-partial-unresolved-tag src-492 `tok-492 `tre-492) (check-types ~.types-partial-unresolved-tag ~[%tests %golden ~.types-partial-unresolved-tag %source %jibb] src-492 `typ-492))
3022+ (weld (check ~.types-partial-unresolved-tag src-493 `tok-493 `tre-493) (check-types ~.types-partial-unresolved-tag ~[%tests %golden ~.types-partial-unresolved-tag %source %jibb] src-493 `typ-493))
30033023++ test-types-prelude-direct
3004− (weld (check ~.types-prelude-direct src-493 `tok-493 `tre-493) (check-module-types ~.types-prelude-direct ~[%tests %golden ~.types-prelude-direct %source %jibb] src-493 `typ-493 ~ ~ ~))
3024+ (weld (check ~.types-prelude-direct src-494 `tok-494 `tre-494) (check-module-types ~.types-prelude-direct ~[%tests %golden ~.types-prelude-direct %source %jibb] src-494 `typ-494 ~ ~ ~))
30053025++ test-types-prelude-interface
3006− (weld (weld (check ~.types-prelude-interface src-494 `tok-494 `tre-494) (check-module-types ~.types-prelude-interface ~[%tests %golden ~.types-prelude-interface %source %jibb] src-494 `typ-494 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-494-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-494-2]])) (check-module-trees ~.types-prelude-interface `mtre-494 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-494-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-494-2]]))
3026+ (weld (weld (check ~.types-prelude-interface src-495 `tok-495 `tre-495) (check-module-types ~.types-prelude-interface ~[%tests %golden ~.types-prelude-interface %source %jibb] src-495 `typ-495 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-495-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-495-2]])) (check-module-trees ~.types-prelude-interface `mtre-495 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-495-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-495-2]]))
30073027++ test-types-prelude-list-functions
3008− (weld (weld (check ~.types-prelude-list-functions src-495 `tok-495 `tre-495) (check-module-types ~.types-prelude-list-functions ~[%tests %golden ~.types-prelude-list-functions %source %jibb] src-495 `typ-495 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-495-1]])) (check-module-trees ~.types-prelude-list-functions `mtre-495 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-495-1]]))
3028+ (weld (weld (check ~.types-prelude-list-functions src-496 `tok-496 `tre-496) (check-module-types ~.types-prelude-list-functions ~[%tests %golden ~.types-prelude-list-functions %source %jibb] src-496 `typ-496 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-496-1]])) (check-module-trees ~.types-prelude-list-functions `mtre-496 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-496-1]]))
30093029++ test-types-prelude-list-helpers
3010− (weld (check ~.types-prelude-list-helpers src-496 `tok-496 `tre-496) (check-module-types ~.types-prelude-list-helpers ~[%tests %golden ~.types-prelude-list-helpers %source %jibb] src-496 `typ-496 ~ ~ ~))
3030+ (weld (check ~.types-prelude-list-helpers src-497 `tok-497 `tre-497) (check-module-types ~.types-prelude-list-helpers ~[%tests %golden ~.types-prelude-list-helpers %source %jibb] src-497 `typ-497 ~ ~ ~))
30113031++ test-types-prelude-unit-helpers
3012− (weld (check ~.types-prelude-unit-helpers src-497 `tok-497 `tre-497) (check-module-types ~.types-prelude-unit-helpers ~[%tests %golden ~.types-prelude-unit-helpers %source %jibb] src-497 `typ-497 ~ ~ ~))
3032+ (weld (check ~.types-prelude-unit-helpers src-498 `tok-498 `tre-498) (check-module-types ~.types-prelude-unit-helpers ~[%tests %golden ~.types-prelude-unit-helpers %source %jibb] src-498 `typ-498 ~ ~ ~))
30133033++ test-types-record-bound-variable
3014− (weld (check ~.types-record-bound-variable src-498 `tok-498 `tre-498) (check-types ~.types-record-bound-variable ~[%tests %golden ~.types-record-bound-variable %source %jibb] src-498 `typ-498))
3034+ (weld (check ~.types-record-bound-variable src-499 `tok-499 `tre-499) (check-types ~.types-record-bound-variable ~[%tests %golden ~.types-record-bound-variable %source %jibb] src-499 `typ-499))
30153035++ test-types-record-cast-context
3016− (weld (check ~.types-record-cast-context src-499 `tok-499 `tre-499) (check-module-types ~.types-record-cast-context ~[%tests %golden ~.types-record-cast-context %source %jibb] src-499 `typ-499 ~ ~ ~))
3036+ (weld (check ~.types-record-cast-context src-500 `tok-500 `tre-500) (check-module-types ~.types-record-cast-context ~[%tests %golden ~.types-record-cast-context %source %jibb] src-500 `typ-500 ~ ~ ~))
30173037++ test-types-record-change
3018− (weld (check ~.types-record-change src-500 `tok-500 `tre-500) (check-module-types ~.types-record-change ~[%tests %golden ~.types-record-change %source %jibb] src-500 `typ-500 ~ ~ ~))
3038+ (weld (check ~.types-record-change src-501 `tok-501 `tre-501) (check-module-types ~.types-record-change ~[%tests %golden ~.types-record-change %source %jibb] src-501 `typ-501 ~ ~ ~))
30193039++ test-types-record-change-generic
3020− (weld (check ~.types-record-change-generic src-501 `tok-501 `tre-501) (check-module-types ~.types-record-change-generic ~[%tests %golden ~.types-record-change-generic %source %jibb] src-501 `typ-501 ~ ~ ~))
3040+ (weld (check ~.types-record-change-generic src-502 `tok-502 `tre-502) (check-module-types ~.types-record-change-generic ~[%tests %golden ~.types-record-change-generic %source %jibb] src-502 `typ-502 ~ ~ ~))
30213041++ test-types-record-faces
3022− (weld (check ~.types-record-faces src-502 `tok-502 `tre-502) (check-types ~.types-record-faces ~[%tests %golden ~.types-record-faces %source %jibb] src-502 `typ-502))
3042+ (weld (check ~.types-record-faces src-503 `tok-503 `tre-503) (check-types ~.types-record-faces ~[%tests %golden ~.types-record-faces %source %jibb] src-503 `typ-503))
30233043++ test-types-record-import
3024− (weld (weld (check ~.types-record-import src-503 `tok-503 `tre-503) (check-module-types ~.types-record-import ~[%tests %golden ~.types-record-import %source %jibb] src-503 `typ-503 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-503-1]])) (check-module-trees ~.types-record-import `mtre-503 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-503-1]]))
3044+ (weld (weld (check ~.types-record-import src-504 `tok-504 `tre-504) (check-module-types ~.types-record-import ~[%tests %golden ~.types-record-import %source %jibb] src-504 `typ-504 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-504-1]])) (check-module-trees ~.types-record-import `mtre-504 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-504-1]]))
30253045++ test-types-record-local-scheme
3026− (weld (check ~.types-record-local-scheme src-504 `tok-504 `tre-504) (check-types ~.types-record-local-scheme ~[%tests %golden ~.types-record-local-scheme %source %jibb] src-504 `typ-504))
3046+ (weld (check ~.types-record-local-scheme src-505 `tok-505 `tre-505) (check-types ~.types-record-local-scheme ~[%tests %golden ~.types-record-local-scheme %source %jibb] src-505 `typ-505))
30273047++ test-types-record-nested
3028− (weld (check ~.types-record-nested src-505 `tok-505 `tre-505) (check-types ~.types-record-nested ~[%tests %golden ~.types-record-nested %source %jibb] src-505 `typ-505))
3048+ (weld (check ~.types-record-nested src-506 `tok-506 `tre-506) (check-types ~.types-record-nested ~[%tests %golden ~.types-record-nested %source %jibb] src-506 `typ-506))
30293049++ test-types-record-to-tuple
3030− (weld (check ~.types-record-to-tuple src-506 `tok-506 `tre-506) (check-types ~.types-record-to-tuple ~[%tests %golden ~.types-record-to-tuple %source %jibb] src-506 `typ-506))
3050+ (weld (check ~.types-record-to-tuple src-507 `tok-507 `tre-507) (check-types ~.types-record-to-tuple ~[%tests %golden ~.types-record-to-tuple %source %jibb] src-507 `typ-507))
30313051++ test-types-recursion-scc-failures
3032− (weld (check ~.types-recursion-scc-failures src-507 `tok-507 `tre-507) (check-module-types ~.types-recursion-scc-failures ~[%tests %golden ~.types-recursion-scc-failures %source %jibb] src-507 `typ-507 ~ ~ ~))
3052+ (weld (check ~.types-recursion-scc-failures src-508 `tok-508 `tre-508) (check-module-types ~.types-recursion-scc-failures ~[%tests %golden ~.types-recursion-scc-failures %source %jibb] src-508 `typ-508 ~ ~ ~))
30333053++ test-types-recursion-scc-groups
3034− (weld (check ~.types-recursion-scc-groups src-508 `tok-508 `tre-508) (check-module-types ~.types-recursion-scc-groups ~[%tests %golden ~.types-recursion-scc-groups %source %jibb] src-508 `typ-508 ~ ~ ~))
3054+ (weld (check ~.types-recursion-scc-groups src-509 `tok-509 `tre-509) (check-module-types ~.types-recursion-scc-groups ~[%tests %golden ~.types-recursion-scc-groups %source %jibb] src-509 `typ-509 ~ ~ ~))
30353055++ test-types-recursion-scc-import
3036− (weld (weld (check ~.types-recursion-scc-import src-509 `tok-509 `tre-509) (check-module-types ~.types-recursion-scc-import ~[%tests %golden ~.types-recursion-scc-import %source %jibb] src-509 `typ-509 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-509-1]])) (check-module-trees ~.types-recursion-scc-import `mtre-509 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-509-1]]))
3056+ (weld (weld (check ~.types-recursion-scc-import src-510 `tok-510 `tre-510) (check-module-types ~.types-recursion-scc-import ~[%tests %golden ~.types-recursion-scc-import %source %jibb] src-510 `typ-510 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-510-1]])) (check-module-trees ~.types-recursion-scc-import `mtre-510 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-510-1]]))
30373057++ test-types-recursion-scc-import-bad
3038− (weld (weld (check ~.types-recursion-scc-import-bad src-510 `tok-510 `tre-510) (check-module-types ~.types-recursion-scc-import-bad ~[%tests %golden ~.types-recursion-scc-import-bad %source %jibb] src-510 `typ-510 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-510-1]])) (check-module-trees ~.types-recursion-scc-import-bad `mtre-510 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-510-1]]))
3058+ (weld (weld (check ~.types-recursion-scc-import-bad src-511 `tok-511 `tre-511) (check-module-types ~.types-recursion-scc-import-bad ~[%tests %golden ~.types-recursion-scc-import-bad %source %jibb] src-511 `typ-511 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-511-1]])) (check-module-trees ~.types-recursion-scc-import-bad `mtre-511 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-511-1]]))
30393059++ test-types-recursion-scc-local
3040− (weld (check ~.types-recursion-scc-local src-511 `tok-511 `tre-511) (check-module-types ~.types-recursion-scc-local ~[%tests %golden ~.types-recursion-scc-local %source %jibb] src-511 `typ-511 ~ ~ ~))
3060+ (weld (check ~.types-recursion-scc-local src-512 `tok-512 `tre-512) (check-module-types ~.types-recursion-scc-local ~[%tests %golden ~.types-recursion-scc-local %source %jibb] src-512 `typ-512 ~ ~ ~))
30413061++ test-types-recursion-scc-order
3042− (weld (check ~.types-recursion-scc-order src-512 `tok-512 `tre-512) (check-module-types ~.types-recursion-scc-order ~[%tests %golden ~.types-recursion-scc-order %source %jibb] src-512 `typ-512 ~ ~ ~))
3062+ (weld (check ~.types-recursion-scc-order src-513 `tok-513 `tre-513) (check-module-types ~.types-recursion-scc-order ~[%tests %golden ~.types-recursion-scc-order %source %jibb] src-513 `typ-513 ~ ~ ~))
30433063++ test-types-recursion-scc-shadow
3044− (weld (check ~.types-recursion-scc-shadow src-513 `tok-513 `tre-513) (check-module-types ~.types-recursion-scc-shadow ~[%tests %golden ~.types-recursion-scc-shadow %source %jibb] src-513 `typ-513 ~ ~ ~))
3064+ (weld (check ~.types-recursion-scc-shadow src-514 `tok-514 `tre-514) (check-module-types ~.types-recursion-scc-shadow ~[%tests %golden ~.types-recursion-scc-shadow %source %jibb] src-514 `typ-514 ~ ~ ~))
30453065++ test-types-recursive-branch
3046− (weld (check ~.types-recursive-branch src-514 `tok-514 `tre-514) (check-module-types ~.types-recursive-branch ~[%tests %golden ~.types-recursive-branch %source %jibb] src-514 `typ-514 ~ ~ ~))
3066+ (weld (check ~.types-recursive-branch src-515 `tok-515 `tre-515) (check-module-types ~.types-recursive-branch ~[%tests %golden ~.types-recursive-branch %source %jibb] src-515 `typ-515 ~ ~ ~))
30473067++ test-types-recursive-gate
3048− (weld (check ~.types-recursive-gate src-515 `tok-515 `tre-515) (check-types ~.types-recursive-gate ~[%tests %golden ~.types-recursive-gate %source %jibb] src-515 `typ-515))
3068+ (weld (check ~.types-recursive-gate src-516 `tok-516 `tre-516) (check-types ~.types-recursive-gate ~[%tests %golden ~.types-recursive-gate %source %jibb] src-516 `typ-516))
30493069++ test-types-recursive-sample
3050− (weld (check ~.types-recursive-sample src-516 `tok-516 `tre-516) (check-types ~.types-recursive-sample ~[%tests %golden ~.types-recursive-sample %source %jibb] src-516 `typ-516))
3070+ (weld (check ~.types-recursive-sample src-517 `tok-517 `tre-517) (check-types ~.types-recursive-sample ~[%tests %golden ~.types-recursive-sample %source %jibb] src-517 `typ-517))
30513071++ test-types-scope-library-poke
3052− (weld (check-at ~.types-scope-library-poke ~[~.ui ~.lib ~.library ~.jibb] src-517 `tok-517 `tre-517) (check-module-types ~.types-scope-library-poke ~[~.ui ~.lib ~.library ~.jibb] src-517 `typ-517 ~ ~ ~))
3072+ (weld (check-at ~.types-scope-library-poke ~[~.ui ~.lib ~.library ~.jibb] src-518 `tok-518 `tre-518) (check-module-types ~.types-scope-library-poke ~[~.ui ~.lib ~.library ~.jibb] src-518 `typ-518 ~ ~ ~))
30533073++ test-types-scope-root-api
3054− (weld (check-at ~.types-scope-root-api ~[~.ui ~.api ~.todo ~.jibb] src-518 `tok-518 `tre-518) (check-module-types ~.types-scope-root-api ~[~.ui ~.api ~.todo ~.jibb] src-518 `typ-518 ~ ~ ~))
3074+ (weld (check-at ~.types-scope-root-api ~[~.ui ~.api ~.todo ~.jibb] src-519 `tok-519 `tre-519) (check-module-types ~.types-scope-root-api ~[~.ui ~.api ~.todo ~.jibb] src-519 `typ-519 ~ ~ ~))
30553075++ test-types-scope-store-duplicate
3056− (weld (check-at ~.types-scope-store-duplicate ~[~.ui ~.stores ~.cart ~.jibb] src-519 `tok-519 `tre-519) (check-module-types ~.types-scope-store-duplicate ~[~.ui ~.stores ~.cart ~.jibb] src-519 `typ-519 ~ ~ ~))
3076+ (weld (check-at ~.types-scope-store-duplicate ~[~.ui ~.stores ~.cart ~.jibb] src-520 `tok-520 `tre-520) (check-module-types ~.types-scope-store-duplicate ~[~.ui ~.stores ~.cart ~.jibb] src-520 `typ-520 ~ ~ ~))
30573077++ test-types-scope-store-shadow
3058− (weld (check-at ~.types-scope-store-shadow ~[~.ui ~.stores ~.cart ~.jibb] src-520 `tok-520 `tre-520) (check-module-types ~.types-scope-store-shadow ~[~.ui ~.stores ~.cart ~.jibb] src-520 `typ-520 ~ ~ ~))
3078+ (weld (check-at ~.types-scope-store-shadow ~[~.ui ~.stores ~.cart ~.jibb] src-521 `tok-521 `tre-521) (check-module-types ~.types-scope-store-shadow ~[~.ui ~.stores ~.cart ~.jibb] src-521 `typ-521 ~ ~ ~))
30593079++ test-types-string-interpolation
3060− (weld (check ~.types-string-interpolation src-521 `tok-521 `tre-521) (check-module-types ~.types-string-interpolation ~[%tests %golden ~.types-string-interpolation %source %jibb] src-521 `typ-521 ~ ~ ~))
3080+ (weld (check ~.types-string-interpolation src-522 `tok-522 `tre-522) (check-module-types ~.types-string-interpolation ~[%tests %golden ~.types-string-interpolation %source %jibb] src-522 `typ-522 ~ ~ ~))
30613081++ test-types-tuple-context
3062− (weld (check ~.types-tuple-context src-522 `tok-522 `tre-522) (check-module-types ~.types-tuple-context ~[%tests %golden ~.types-tuple-context %source %jibb] src-522 `typ-522 ~ ~ ~))
3082+ (weld (check ~.types-tuple-context src-523 `tok-523 `tre-523) (check-module-types ~.types-tuple-context ~[%tests %golden ~.types-tuple-context %source %jibb] src-523 `typ-523 ~ ~ ~))
30633083++ test-types-tuple-context-nested
3064− (weld (check ~.types-tuple-context-nested src-523 `tok-523 `tre-523) (check-module-types ~.types-tuple-context-nested ~[%tests %golden ~.types-tuple-context-nested %source %jibb] src-523 `typ-523 ~ ~ ~))
3084+ (weld (check ~.types-tuple-context-nested src-524 `tok-524 `tre-524) (check-module-types ~.types-tuple-context-nested ~[%tests %golden ~.types-tuple-context-nested %source %jibb] src-524 `typ-524 ~ ~ ~))
30653085++ test-types-union-alias
3066− (weld (check ~.types-union-alias src-524 `tok-524 `tre-524) (check-types ~.types-union-alias ~[%tests %golden ~.types-union-alias %source %jibb] src-524 `typ-524))
3086+ (weld (check ~.types-union-alias src-525 `tok-525 `tre-525) (check-types ~.types-union-alias ~[%tests %golden ~.types-union-alias %source %jibb] src-525 `typ-525))
30673087++ test-types-union-branch-context
3068− (weld (check ~.types-union-branch-context src-525 `tok-525 `tre-525) (check-types ~.types-union-branch-context ~[%tests %golden ~.types-union-branch-context %source %jibb] src-525 `typ-525))
3088+ (weld (check ~.types-union-branch-context src-526 `tok-526 `tre-526) (check-types ~.types-union-branch-context ~[%tests %golden ~.types-union-branch-context %source %jibb] src-526 `typ-526))
30693089++ test-types-union-branch-pending
3070− (weld (check ~.types-union-branch-pending src-526 `tok-526 `tre-526) (check-types ~.types-union-branch-pending ~[%tests %golden ~.types-union-branch-pending %source %jibb] src-526 `typ-526))
3090+ (weld (check ~.types-union-branch-pending src-527 `tok-527 `tre-527) (check-types ~.types-union-branch-pending ~[%tests %golden ~.types-union-branch-pending %source %jibb] src-527 `typ-527))
30713091++ test-types-union-constructor-shape
3072− (weld (check ~.types-union-constructor-shape src-527 `tok-527 `tre-527) (check-types ~.types-union-constructor-shape ~[%tests %golden ~.types-union-constructor-shape %source %jibb] src-527 `typ-527))
3092+ (weld (check ~.types-union-constructor-shape src-528 `tok-528 `tre-528) (check-types ~.types-union-constructor-shape ~[%tests %golden ~.types-union-constructor-shape %source %jibb] src-528 `typ-528))
30733093++ test-types-union-context-flow
3074− (weld (check ~.types-union-context-flow src-528 `tok-528 `tre-528) (check-types ~.types-union-context-flow ~[%tests %golden ~.types-union-context-flow %source %jibb] src-528 `typ-528))
3094+ (weld (check ~.types-union-context-flow src-529 `tok-529 `tre-529) (check-types ~.types-union-context-flow ~[%tests %golden ~.types-union-context-flow %source %jibb] src-529 `typ-529))
30753095++ test-types-union-finite
3076− (weld (check ~.types-union-finite src-529 `tok-529 `tre-529) (check-module-types ~.types-union-finite ~[%tests %golden ~.types-union-finite %source %jibb] src-529 `typ-529 ~ ~ ~))
3096+ (weld (check ~.types-union-finite src-530 `tok-530 `tre-530) (check-module-types ~.types-union-finite ~[%tests %golden ~.types-union-finite %source %jibb] src-530 `typ-530 ~ ~ ~))
30773097++ test-types-union-finite-context
3078− (weld (check ~.types-union-finite-context src-530 `tok-530 `tre-530) (check-module-types ~.types-union-finite-context ~[%tests %golden ~.types-union-finite-context %source %jibb] src-530 `typ-530 ~ ~ ~))
3098+ (weld (check ~.types-union-finite-context src-531 `tok-531 `tre-531) (check-module-types ~.types-union-finite-context ~[%tests %golden ~.types-union-finite-context %source %jibb] src-531 `typ-531 ~ ~ ~))
30793099++ test-types-union-finite-generic
3080− (weld (check ~.types-union-finite-generic src-531 `tok-531 `tre-531) (check-module-types ~.types-union-finite-generic ~[%tests %golden ~.types-union-finite-generic %source %jibb] src-531 `typ-531 ~ ~ ~))
3100+ (weld (check ~.types-union-finite-generic src-532 `tok-532 `tre-532) (check-module-types ~.types-union-finite-generic ~[%tests %golden ~.types-union-finite-generic %source %jibb] src-532 `typ-532 ~ ~ ~))
30813101++ test-types-union-finite-limit
3082− (weld (check ~.types-union-finite-limit src-532 `tok-532 `tre-532) (check-module-types ~.types-union-finite-limit ~[%tests %golden ~.types-union-finite-limit %source %jibb] src-532 `typ-532 ~ ~ ~))
3102+ (weld (check ~.types-union-finite-limit src-533 `tok-533 `tre-533) (check-module-types ~.types-union-finite-limit ~[%tests %golden ~.types-union-finite-limit %source %jibb] src-533 `typ-533 ~ ~ ~))
30833103++ test-types-union-import
3084− (weld (weld (check ~.types-union-import src-533 `tok-533 `tre-533) (check-module-types ~.types-union-import ~[%tests %golden ~.types-union-import %source %jibb] src-533 `typ-533 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-533-1]])) (check-module-trees ~.types-union-import `mtre-533 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-533-1]]))
3104+ (weld (weld (check ~.types-union-import src-534 `tok-534 `tre-534) (check-module-types ~.types-union-import ~[%tests %golden ~.types-union-import %source %jibb] src-534 `typ-534 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-534-1]])) (check-module-trees ~.types-union-import `mtre-534 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-534-1]]))
30853105++ test-types-union-local-pending
3086− (weld (check ~.types-union-local-pending src-534 `tok-534 `tre-534) (check-types ~.types-union-local-pending ~[%tests %golden ~.types-union-local-pending %source %jibb] src-534 `typ-534))
3106+ (weld (check ~.types-union-local-pending src-535 `tok-535 `tre-535) (check-types ~.types-union-local-pending ~[%tests %golden ~.types-union-local-pending %source %jibb] src-535 `typ-535))
30873107++ test-types-union-overlap
3088− (weld (check ~.types-union-overlap src-535 `tok-535 `tre-535) (check-types ~.types-union-overlap ~[%tests %golden ~.types-union-overlap %source %jibb] src-535 `typ-535))
3108+ (weld (check ~.types-union-overlap src-536 `tok-536 `tre-536) (check-types ~.types-union-overlap ~[%tests %golden ~.types-union-overlap %source %jibb] src-536 `typ-536))
30893109++ test-types-union-overlap-nested
3090− (weld (check ~.types-union-overlap-nested src-536 `tok-536 `tre-536) (check-types ~.types-union-overlap-nested ~[%tests %golden ~.types-union-overlap-nested %source %jibb] src-536 `typ-536))
3110+ (weld (check ~.types-union-overlap-nested src-537 `tok-537 `tre-537) (check-types ~.types-union-overlap-nested ~[%tests %golden ~.types-union-overlap-nested %source %jibb] src-537 `typ-537))
30913111++ test-types-union-pattern-result-context
3092− (weld (check ~.types-union-pattern-result-context src-537 `tok-537 `tre-537) (check-module-types ~.types-union-pattern-result-context ~[%tests %golden ~.types-union-pattern-result-context %source %jibb] src-537 `typ-537 ~ ~ ~))
3112+ (weld (check ~.types-union-pattern-result-context src-538 `tok-538 `tre-538) (check-module-types ~.types-union-pattern-result-context ~[%tests %golden ~.types-union-pattern-result-context %source %jibb] src-538 `typ-538 ~ ~ ~))
30933113++ test-types-union-pattern-result-controls
3094− (weld (check ~.types-union-pattern-result-controls src-538 `tok-538 `tre-538) (check-module-types ~.types-union-pattern-result-controls ~[%tests %golden ~.types-union-pattern-result-controls %source %jibb] src-538 `typ-538 ~ ~ ~))
3114+ (weld (check ~.types-union-pattern-result-controls src-539 `tok-539 `tre-539) (check-module-types ~.types-union-pattern-result-controls ~[%tests %golden ~.types-union-pattern-result-controls %source %jibb] src-539 `typ-539 ~ ~ ~))
30953115++ test-types-union-patterns
3096− (weld (check ~.types-union-patterns src-539 `tok-539 `tre-539) (check-module-types ~.types-union-patterns ~[%tests %golden ~.types-union-patterns %source %jibb] src-539 `typ-539 ~ ~ ~))
3116+ (weld (check ~.types-union-patterns src-540 `tok-540 `tre-540) (check-module-types ~.types-union-patterns ~[%tests %golden ~.types-union-patterns %source %jibb] src-540 `typ-540 ~ ~ ~))
30973117++ test-types-union-patterns-generic
3098− (weld (check ~.types-union-patterns-generic src-540 `tok-540 `tre-540) (check-module-types ~.types-union-patterns-generic ~[%tests %golden ~.types-union-patterns-generic %source %jibb] src-540 `typ-540 ~ ~ ~))
3118+ (weld (check ~.types-union-patterns-generic src-541 `tok-541 `tre-541) (check-module-types ~.types-union-patterns-generic ~[%tests %golden ~.types-union-patterns-generic %source %jibb] src-541 `typ-541 ~ ~ ~))
30993119++ test-types-union-patterns-import
3100− (weld (weld (check ~.types-union-patterns-import src-541 `tok-541 `tre-541) (check-module-types ~.types-union-patterns-import ~[%tests %golden ~.types-union-patterns-import %source %jibb] src-541 `typ-541 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-541-1]])) (check-module-trees ~.types-union-patterns-import `mtre-541 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-541-1]]))
3120+ (weld (weld (check ~.types-union-patterns-import src-542 `tok-542 `tre-542) (check-module-types ~.types-union-patterns-import ~[%tests %golden ~.types-union-patterns-import %source %jibb] src-542 `typ-542 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-542-1]])) (check-module-trees ~.types-union-patterns-import `mtre-542 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-542-1]]))
31013121++ test-types-union-phantom-generic
3102− (weld (check ~.types-union-phantom-generic src-542 `tok-542 `tre-542) (check-types ~.types-union-phantom-generic ~[%tests %golden ~.types-union-phantom-generic %source %jibb] src-542 `typ-542))
3122+ (weld (check ~.types-union-phantom-generic src-543 `tok-543 `tre-543) (check-types ~.types-union-phantom-generic ~[%tests %golden ~.types-union-phantom-generic %source %jibb] src-543 `typ-543))
31033123++ test-types-union-print-cross-namespace
3104− (weld (weld (check ~.types-union-print-cross-namespace src-543 `tok-543 `tre-543) (check-module-types ~.types-union-print-cross-namespace ~[%tests %golden ~.types-union-print-cross-namespace %source %jibb] src-543 `typ-543 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-543-1]])) (check-module-trees ~.types-union-print-cross-namespace `mtre-543 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-543-1]]))
3124+ (weld (weld (check ~.types-union-print-cross-namespace src-544 `tok-544 `tre-544) (check-module-types ~.types-union-print-cross-namespace ~[%tests %golden ~.types-union-print-cross-namespace %source %jibb] src-544 `typ-544 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-544-1]])) (check-module-trees ~.types-union-print-cross-namespace `mtre-544 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-544-1]]))
31053125++ test-types-union-print-distinct
3106− (weld (weld (check ~.types-union-print-distinct src-544 `tok-544 `tre-544) (check-module-types ~.types-union-print-distinct ~[%tests %golden ~.types-union-print-distinct %source %jibb] src-544 `typ-544 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-544-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-544-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-544-3]])) (check-module-trees ~.types-union-print-distinct `mtre-544 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-544-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-544-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-544-3]]))
3126+ (weld (weld (check ~.types-union-print-distinct src-545 `tok-545 `tre-545) (check-module-types ~.types-union-print-distinct ~[%tests %golden ~.types-union-print-distinct %source %jibb] src-545 `typ-545 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-545-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-545-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-545-3]])) (check-module-trees ~.types-union-print-distinct `mtre-545 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-545-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-545-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-545-3]]))
31073127++ test-types-union-print-escape
3108− (weld (check ~.types-union-print-escape src-545 `tok-545 `tre-545) (check-types ~.types-union-print-escape ~[%tests %golden ~.types-union-print-escape %source %jibb] src-545 `typ-545))
3128+ (weld (check ~.types-union-print-escape src-546 `tok-546 `tre-546) (check-types ~.types-union-print-escape ~[%tests %golden ~.types-union-print-escape %source %jibb] src-546 `typ-546))
31093129++ test-types-union-print-local
3110− (weld (check ~.types-union-print-local src-546 `tok-546 `tre-546) (check-types ~.types-union-print-local ~[%tests %golden ~.types-union-print-local %source %jibb] src-546 `typ-546))
3130+ (weld (check ~.types-union-print-local src-547 `tok-547 `tre-547) (check-types ~.types-union-print-local ~[%tests %golden ~.types-union-print-local %source %jibb] src-547 `typ-547))
31113131++ test-types-union-print-nested
3112− (weld (check ~.types-union-print-nested src-547 `tok-547 `tre-547) (check-types ~.types-union-print-nested ~[%tests %golden ~.types-union-print-nested %source %jibb] src-547 `typ-547))
3132+ (weld (check ~.types-union-print-nested src-548 `tok-548 `tre-548) (check-types ~.types-union-print-nested ~[%tests %golden ~.types-union-print-nested %source %jibb] src-548 `typ-548))
31133133++ test-types-union-print-same-origin
3114− (weld (weld (check ~.types-union-print-same-origin src-548 `tok-548 `tre-548) (check-module-types ~.types-union-print-same-origin ~[%tests %golden ~.types-union-print-same-origin %source %jibb] src-548 `typ-548 ~ ~ ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-548-1]])) (check-module-trees ~.types-union-print-same-origin `mtre-548 ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-548-1]]))
3134+ (weld (weld (check ~.types-union-print-same-origin src-549 `tok-549 `tre-549) (check-module-types ~.types-union-print-same-origin ~[%tests %golden ~.types-union-print-same-origin %source %jibb] src-549 `typ-549 ~ ~ ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-549-1]])) (check-module-trees ~.types-union-print-same-origin `mtre-549 ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-549-1]]))
31153135++ test-types-union-print-transitive
3116− (weld (weld (check ~.types-union-print-transitive src-549 `tok-549 `tre-549) (check-module-types ~.types-union-print-transitive ~[%tests %golden ~.types-union-print-transitive %source %jibb] src-549 `typ-549 ~ ~ ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-549-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-549-2]])) (check-module-trees ~.types-union-print-transitive `mtre-549 ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-549-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-549-2]]))
3136+ (weld (weld (check ~.types-union-print-transitive src-550 `tok-550 `tre-550) (check-module-types ~.types-union-print-transitive ~[%tests %golden ~.types-union-print-transitive %source %jibb] src-550 `typ-550 ~ ~ ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-550-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-550-2]])) (check-module-trees ~.types-union-print-transitive `mtre-550 ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-550-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-550-2]]))
31173137++ test-types-union-singleton
3118− (weld (check ~.types-union-singleton src-550 `tok-550 `tre-550) (check-types ~.types-union-singleton ~[%tests %golden ~.types-union-singleton %source %jibb] src-550 `typ-550))
3138+ (weld (check ~.types-union-singleton src-551 `tok-551 `tre-551) (check-types ~.types-union-singleton ~[%tests %golden ~.types-union-singleton %source %jibb] src-551 `typ-551))
31193139++ test-types-union-tag-atoms
3120− (weld (check ~.types-union-tag-atoms src-551 `tok-551 `tre-551) (check-types ~.types-union-tag-atoms ~[%tests %golden ~.types-union-tag-atoms %source %jibb] src-551 `typ-551))
3140+ (weld (check ~.types-union-tag-atoms src-552 `tok-552 `tre-552) (check-types ~.types-union-tag-atoms ~[%tests %golden ~.types-union-tag-atoms %source %jibb] src-552 `typ-552))
31213141++ test-types-union-tags
3122− (weld (check ~.types-union-tags src-552 `tok-552 `tre-552) (check-types ~.types-union-tags ~[%tests %golden ~.types-union-tags %source %jibb] src-552 `typ-552))
3142+ (weld (check ~.types-union-tags src-553 `tok-553 `tre-553) (check-types ~.types-union-tags ~[%tests %golden ~.types-union-tags %source %jibb] src-553 `typ-553))
31233143++ test-types-union-unresolved
3124− (weld (check ~.types-union-unresolved src-553 `tok-553 `tre-553) (check-types ~.types-union-unresolved ~[%tests %golden ~.types-union-unresolved %source %jibb] src-553 `typ-553))
3144+ (weld (check ~.types-union-unresolved src-554 `tok-554 `tre-554) (check-types ~.types-union-unresolved ~[%tests %golden ~.types-union-unresolved %source %jibb] src-554 `typ-554))
31253145++ test-types-union-unresolved-flow
3126− (weld (check ~.types-union-unresolved-flow src-554 `tok-554 `tre-554) (check-types ~.types-union-unresolved-flow ~[%tests %golden ~.types-union-unresolved-flow %source %jibb] src-554 `typ-554))
3146+ (weld (check ~.types-union-unresolved-flow src-555 `tok-555 `tre-555) (check-types ~.types-union-unresolved-flow ~[%tests %golden ~.types-union-unresolved-flow %source %jibb] src-555 `typ-555))
31273147++ test-types-unit-construction
3128− (weld (check ~.types-unit-construction src-555 `tok-555 `tre-555) (check-module-types ~.types-unit-construction ~[%tests %golden ~.types-unit-construction %source %jibb] src-555 `typ-555 ~ ~ ~))
3148+ (weld (check ~.types-unit-construction src-556 `tok-556 `tre-556) (check-module-types ~.types-unit-construction ~[%tests %golden ~.types-unit-construction %source %jibb] src-556 `typ-556 ~ ~ ~))
31293149++ test-types-unit-context
3130− (weld (check ~.types-unit-context src-556 `tok-556 `tre-556) (check-module-types ~.types-unit-context ~[%tests %golden ~.types-unit-context %source %jibb] src-556 `typ-556 ~ ~ ~))
3150+ (weld (check ~.types-unit-context src-557 `tok-557 `tre-557) (check-module-types ~.types-unit-context ~[%tests %golden ~.types-unit-context %source %jibb] src-557 `typ-557 ~ ~ ~))
31313151++ test-types-unit-patterns
3132− (weld (check ~.types-unit-patterns src-557 `tok-557 `tre-557) (check-types ~.types-unit-patterns ~[%tests %golden ~.types-unit-patterns %source %jibb] src-557 `typ-557))
3152+ (weld (check ~.types-unit-patterns src-558 `tok-558 `tre-558) (check-types ~.types-unit-patterns ~[%tests %golden ~.types-unit-patterns %source %jibb] src-558 `typ-558))
3153+++ test-types-value-cycle-shadow
3154+ (weld (check ~.types-value-cycle-shadow src-559 `tok-559 `tre-559) (check-module-types ~.types-value-cycle-shadow ~[%tests %golden ~.types-value-cycle-shadow %source %jibb] src-559 `typ-559 ~ ~ ~))
3155+++ test-types-value-cycle-unsupported
3156+ (weld (check ~.types-value-cycle-unsupported src-560 `tok-560 `tre-560) (check-module-types ~.types-value-cycle-unsupported ~[%tests %golden ~.types-value-cycle-unsupported %source %jibb] src-560 `typ-560 ~ ~ ~))
3157+++ test-types-value-cycles
3158+ (weld (check ~.types-value-cycles src-561 `tok-561 `tre-561) (check-module-types ~.types-value-cycles ~[%tests %golden ~.types-value-cycles %source %jibb] src-561 `typ-561 ~ ~ ~))
31333159::
31343160:: +check: run golden:jibb on a case and compare both outputs
31353161::
tools/importer-test+1−1
@@ -34,4 +34,4 @@ if result.stdout != expected:
3434 result.stdout.decode().splitlines(keepends=True),
3535 fromfile='expected tree.txt', tofile='actual types'))
3636 sys.exit(1)
37−print('importer golden: 179 projections passed')
37+print('importer golden: 182 projections passed')