on master help sign in
Infer supported annotation holes and prelude list aliases
80e221aiko
docs/compiler.md+2−2
@@ -96,7 +96,7 @@ The source-backed `+api-path-analysis-source` is a separate partial analysis, no
96
96
97`+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. Qualified wings can also read nested fields of an imported value, instantiating that value’s scheme independently at each use; missing, ambiguous and non-record fields remain unsupported.
97`+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. Qualified wings can also read nested fields of an imported value, instantiating that value’s scheme independently at each use; missing, ambiguous and non-record fields remain unsupported.
98
98
99−The supplied prelude is parsed into a **partial interface**: all names actually declared in the source are reserved, while only the molds and values this fragment can infer are available. These include the validated standard `list` mold, `unit`, the doc-exact generic `cmd` union, `same`, `fall`, `need`, `lure`, `weld`, `snoc`, `turn`, `flop`, `rear`, `drop`, `skim`, `skip`, `murn`, `join`, `snip`, `levy`, `lien`, `cork`, `corl`, `cury` and `curr`; unsupported entries remain unavailable. The validated `list` is injected while the prelude’s gates are inferred; `weld` and `turn` use ordinary explicit result casts. An absent or altered `list` is not injected, and an altered declaration cannot leak through a direct or transitive mold alias. List-dependent prelude mold aliases remain unsupported because their templates are prepared before this injection. A named prelude union keeps the fixed `/lib/jibb/prelude/jibb` origin in every module, and its name remains unqualified when a library exports a type containing it. The prelude inventory is incomplete, so reserving the names in this source does not establish complete shadowing coverage. The source-backed internal prelude defines `poke`, which the public prelude re-exports as an ordinary transparent type. A dedicated trusted internal-prelude preparation path also supplies an atom-constrained private comparison scheme for a Jibb-written `gth` wrapper. Ordinary module resolution rejects that primitive path even if a caller supplies a spoofed root or bundle. The low-level prepared interface is still trusted host input; the host must select the vendored sources and canonicalize paths. Primitive execution and shape-based jet recognition are not implemented. Addition, decrement and length remain unavailable until arithmetic constraints distinguish their results from loobeans. The partial checker resolves its supported source shape, preserves its public name, and rejects ordinary imports of the private internal path. An imported API with one mark and a matching direct `+$ poke` declaration can export a derived constructor and retain agent/mark metadata when the source representation has the supported agent case. Other API shapes, complete private module checking, root API and kind checking, stores, `ask`, `pure`, lowering and runtime effects remain unfinished. A possible store or root API declaring `+$ poke` reports that kind or scope needs unsupported inference; definite duplicate declarations and unrelated shadowing still report conflicts. Prepared interfaces and caches are trusted caller inputs; the future host and linker must ensure the private source validated during preparation is the same version used to lower derived constructors. A `*` payload may contain gates, so the fragment treats it conservatively; full gate-free checks are unfinished. The shared 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.
99+The supplied prelude is parsed into a **partial interface**: all names actually declared in the source are reserved, while only the molds and values this fragment can infer are available. These include the validated standard `list` mold, `unit`, the doc-exact generic `cmd` union, `same`, `fall`, `need`, `lure`, `weld`, `snoc`, `turn`, `flop`, `rear`, `drop`, `skim`, `skip`, `murn`, `join`, `snip`, `levy`, `lien`, `cork`, `corl`, `cury` and `curr`; unsupported entries remain unavailable. The validated `list` is injected while the prelude’s gates are inferred; `weld` and `turn` use ordinary explicit result casts. An absent or altered `list` is not injected, and an altered declaration cannot leak through a direct or transitive mold alias. The same validated template is available when prelude mold aliases are prepared, so supported direct and transitive aliases can use it. A named prelude union keeps the fixed `/lib/jibb/prelude/jibb` origin in every module, and its name remains unqualified when a library exports a type containing it. The prelude inventory is incomplete, so reserving the names in this source does not establish complete shadowing coverage. The source-backed internal prelude defines `poke`, which the public prelude re-exports as an ordinary transparent type. A dedicated trusted internal-prelude preparation path also supplies an atom-constrained private comparison scheme for a Jibb-written `gth` wrapper. Ordinary module resolution rejects that primitive path even if a caller supplies a spoofed root or bundle. The low-level prepared interface is still trusted host input; the host must select the vendored sources and canonicalize paths. Primitive execution and shape-based jet recognition are not implemented. Addition, decrement and length remain unavailable until arithmetic constraints distinguish their results from loobeans. The partial checker resolves its supported source shape, preserves its public name, and rejects ordinary imports of the private internal path. An imported API with one mark and a matching direct `+$ poke` declaration can export a derived constructor and retain agent/mark metadata when the source representation has the supported agent case. Other API shapes, complete private module checking, root API and kind checking, stores, `ask`, `pure`, lowering and runtime effects remain unfinished. A possible store or root API declaring `+$ poke` reports that kind or scope needs unsupported inference; definite duplicate declarations and unrelated shadowing still report conflicts. Prepared interfaces and caches are trusted caller inputs; the future host and linker must ensure the private source validated during preparation is the same version used to lower derived constructors. A `*` payload may contain gates, so the fragment treats it conservatively; full gate-free checks are unfinished. The shared 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.
100
100
101`+prepare-prelude` derives the interface and declared-name inventory from the trusted vendored source. Hosts can reuse its result with `+golden-types-with-prepared-prelude`; they must pass the unchanged result of preparation, not an independently constructed value. Empty, malformed and duplicate-name prelude sources fail closed. The source-taking `+prepare-prelude` and `+golden-types-with-prelude` do not supply the internal module; their `-and-internal` or `-with-internal` variants accept its source for the supported private import. API files, modules with `main`, unsupported definitions and many other features remain outside this subset. The older `+golden-types-with-modules` entry point fails closed for imports because it has no prelude scope. None of these partial reports claims the module has been checked.
101`+prepare-prelude` derives the interface and declared-name inventory from the trusted vendored source. Hosts can reuse its result with `+golden-types-with-prepared-prelude`; they must pass the unchanged result of preparation, not an independently constructed value. Empty, malformed and duplicate-name prelude sources fail closed. The source-taking `+prepare-prelude` and `+golden-types-with-prelude` do not supply the internal module; their `-and-internal` or `-with-internal` variants accept its source for the supported private import. API files, modules with `main`, unsupported definitions and many other features remain outside this subset. The older `+golden-types-with-modules` entry point fails closed for imports because it has no prelude scope. None of these partial reports claims the module has been checked.
102
102
@@ -119,7 +119,7 @@ Every node is `[%tag at=span …]`, so `+span-of` finds its span in one place; t
119- **Samples, fields and patterns**: a sample is `%bind`, `%face`, `%pun`, `%cell` or `%bare`, since a bare name binds anywhere in a sample; a pattern is `%lit`, `%str`, `%any`, `%bind` or `%cell`.
119- **Samples, fields and patterns**: a sample is `%bind`, `%face`, `%pun`, `%cell` or `%bare`, since a bare name binds anywhere in a sample; a pattern is `%lit`, `%str`, `%any`, `%bind` or `%cell`.
120- **Literals** (`lit`) keep the form they matched, their aura and value, and their text as written, which the printers show.
120- **Literals** (`lit`) keep the form they matched, their aura and value, and their text as written, which the printers show.
121
121
122−The parser accepts type holes, but the partial checker does not yet infer them or enforce their definition-local resolution. A separate syntax-tree pass reports duplicate names within a written record at both field sites, including in unused definitions; nested and separate records have independent scopes.
122+The parser accepts type holes. The partial checker records each ordinary hole with its span and validates the obligations created in a value or local definition before generalization. A solved concrete type or an explicitly written in-scope capital resolves a hole; a later use cannot repair it. Independent decimal holes may default to `@ud` when the surrounding inferred type is gate-free; variables reachable from the environment or written capitals are protected from premature defaulting. Structural named-mold holes are diagnosed at their source, while complex named molds, inferred path segments, recursive groups with holes and unresolved constraints remain unsupported. Partial prelude and API interfaces cannot silently export unchecked holes. A separate syntax-tree pass reports duplicate names within a written record at both field sites, including in unused definitions; nested and separate records have independent scopes.
123
123
124The tree keeps everything the checker needs to report an error at the code as written: open and closed brackets give the same node, but every node keeps its span.
124The tree keeps everything the checker needs to report an error at the code as written: open and closed brackets give the same node, but every node keeps its span.
125
125
docs/development.md+5−2
@@ -66,7 +66,8 @@ git clone https://github.com/urbit/tools /root/src/tools
66| `tools/type-mark-test` | Checks the partial checker’s mark import boundary against `tests/type-mark/expected.txt` under eval |
66| `tools/type-mark-test` | Checks the partial checker’s mark import boundary against `tests/type-mark/expected.txt` under eval |
67| `tools/type-poke-test` | Checks source-backed prelude and poke-only API reports against `tests/type-poke/expected.txt` under eval |
67| `tools/type-poke-test` | Checks source-backed prelude and poke-only API reports against `tests/type-poke/expected.txt` under eval |
68| `tools/type-api-paths-test` | Checks partial API path analysis with real todo mark samples against `tests/type-api-paths/expected.txt` under eval |
68| `tools/type-api-paths-test` | Checks partial API path analysis with real todo mark samples against `tests/type-api-paths/expected.txt` under eval |
69−| `tools/type-api-paths-test` | Compares partial API path analysis, including real todo marks, with its golden report under eval |
69+| `tools/type-hole-guards-test` | Runs the shared hole-defaulting and API interface guards under eval; the same checks run on the ship |
70+| `tools/type-list-alias-test` | Runs the shared prelude list-alias and provenance guards under eval and on the ship |
70| `tools/type-module-scope-test` | Checks the partial module checker’s prelude boundary and duplicate-source rejection against `tests/type-module-scope/expected.txt` under eval |
71| `tools/type-module-scope-test` | Checks the partial module checker’s prelude boundary and duplicate-source rejection against `tests/type-module-scope/expected.txt` under eval |
71| `tools/clay-fixtures` | Syncs `my-app`, builds its example `/sur` files and marks through Clay, checks selected mold and mark projections and the partial checker, and records Ford and mark subject shapes on the fake ship |
72| `tools/clay-fixtures` | Syncs `my-app`, builds its example `/sur` files and marks through Clay, checks selected mold and mark projections and the partial checker, and records Ford and mark subject shapes on the fake ship |
72| `tools/hoon` | Evaluates Hoon with the library in scope, as `tools/hoon '(golden /a/b/jibb (crip "++ main view"))'`; `--cord name=file` binds a file's text, `-f` reads the expression from a file |
73| `tools/hoon` | Evaluates Hoon with the library in scope, as `tools/hoon '(golden /a/b/jibb (crip "++ main view"))'`; `--cord name=file` binds a file's text, `-f` reads the expression from a file |
@@ -89,9 +90,11 @@ tools/type-import-diagnostic-test # direct structured reader diagnostics match
89tools/type-mark-test # mark/checker bridge golden report matches
90tools/type-mark-test # mark/checker bridge golden report matches
90tools/type-poke-test # source-backed poke/API bridge report matches
91tools/type-poke-test # source-backed poke/API bridge report matches
91tools/type-api-paths-test # partial API path analysis report matches
92tools/type-api-paths-test # partial API path analysis report matches
92−tools/type-api-paths-test # partial API path analysis report matches
93+tools/type-hole-guards-test # hole defaulting and API guards pass
94+tools/type-list-alias-test # prelude list-alias guards pass
93tools/type-module-scope-test # module/prelude scope golden report matches
95tools/type-module-scope-test # module/prelude scope golden report matches
94tools/hoon check-spans-test # prints <<>>
96tools/hoon check-spans-test # prints <<>>
97+tools/hoon itype-unify-test # type-unification controls pass
95tools/testdata/selftest # 22 checks, 0 failed
98tools/testdata/selftest # 22 checks, 0 failed
96tools/doc-blocks docs/spec # every jibb block has its case
99tools/doc-blocks docs/spec # every jibb block has its case
97tools/ship gen-tests --check # tests/lib/jibb.hoon is up to date
100tools/ship gen-tests --check # tests/lib/jibb.hoon is up to date
docs/status.md+10−7
@@ -19,11 +19,11 @@ On 2026-10-30, @iko decided that Jibb drops `$?`, so a `+$` takes a union's case
19
19
20## Milestone 2: in progress
20## Milestone 2: in progress
21
21
22−The parser accepts `_` in mold positions and typed path segments, retaining each hole’s span. Hole inference and its definition-local resolution checks are not implemented yet; the partial checker does not claim these annotations are checked. A syntax-tree pass rejects duplicate field names within each written record and reports both sites. The repository spec now records that `ask` and `qath` are transparent; their prelude implementations are still outstanding.
22+The parser accepts `_` in mold positions and typed path segments, retaining each hole’s span. The partial checker tracks ordinary annotation holes through inference and requires each value or local definition to resolve its own holes before generalization. A hole can resolve to a concrete type or an explicitly written in-scope type variable; later uses cannot fix an unresolved definition. Independent decimal holes can default, but captured variables are not defaulted prematurely. Structural named molds with an unresolved hole report its site. Complex mold forms, inferred path segments, mutual recursive groups and other unsupported constraints still fail closed, and the fragment does not claim the module is checked. A syntax-tree pass rejects duplicate field names within each written record and reports both sites. The repository spec now records that `ask` and `qath` are transparent; their prelude implementations are still outstanding.
23
23
24The 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, including Tlon `notes.import-node` with list-wrapped self references, 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, including source-validated named operands such as Tlon `notes.log`, 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, bare `~` fields and one level of local named tagged unions, as in real Tlon `notes`, with 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, detects missing sources and cycles, and resolves nested fields of imported values with independent scheme instantiation. The source-backed internal prelude defines `poke` and the public prelude re-exports it as a transparent type. A dedicated trusted preparation path supplies a private comparison scheme to the Jibb-written `gth` wrapper; ordinary imports cannot access them. Primitive execution and jet recognition are unfinished, and addition, decrement and length remain unavailable until arithmetic constraints distinguish their results from loobeans. 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 includes the doc-exact generic `cmd` union; 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. Known loobean result context also propagates through supported complete branches and binder-only cell arms; binder-only arms over union subjects remain unsupported. A directly known named union can instantiate an unconstrained generic gate sample with its origin, generic arguments and faces preserved; unnamed, pending, recursive and variable-bound cases remain unsupported. A known gate with an unresolved result variable can receive a known enclosing result type before its arguments are inferred; unknown calls and unresolved targets remain conservative. 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. A structured single-arm pattern also works for a known non-union cell when coverage is proven, including nested literal and wildcard positions. 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, a grouped wing or a supported shallow call, including nested cell and list positions; other partial-pattern contexts and subject forms 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.
24The 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, including Tlon `notes.import-node` with list-wrapped self references, 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, including source-validated named operands such as Tlon `notes.log`, 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, bare `~` fields and one level of local named tagged unions, as in real Tlon `notes`, with 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, detects missing sources and cycles, and resolves nested fields of imported values with independent scheme instantiation. The source-backed internal prelude defines `poke` and the public prelude re-exports it as a transparent type. A dedicated trusted preparation path supplies a private comparison scheme to the Jibb-written `gth` wrapper; ordinary imports cannot access them. Primitive execution and jet recognition are unfinished, and addition, decrement and length remain unavailable until arithmetic constraints distinguish their results from loobeans. 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 includes the doc-exact generic `cmd` union; 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. Known loobean result context also propagates through supported complete branches and binder-only cell arms; binder-only arms over union subjects remain unsupported. A directly known named union can instantiate an unconstrained generic gate sample with its origin, generic arguments and faces preserved; unnamed, pending, recursive and variable-bound cases remain unsupported. A known gate with an unresolved result variable can receive a known enclosing result type before its arguments are inferred; unknown calls and unresolved targets remain conservative. 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. A structured single-arm pattern also works for a known non-union cell when coverage is proven, including nested literal and wildcard positions. 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, a grouped wing or a supported shallow call, including nested cell and list positions; other partial-pattern contexts and subject forms 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.
25
25
26−The 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.
26+The 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. The same validated template is available when prelude mold aliases are prepared, so supported direct and transitive aliases can use it. 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.
27
27
28## Milestone 1: parser and mark
28## Milestone 1: parser and mark
29
29
@@ -41,8 +41,8 @@ What the plan asks for, and where it is:
41
41
42Besides the plan's list:
42Besides the plan's list:
43
43
44−- 592 golden cases: 372 that parse and 220 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.
44+- 603 golden cases: 383 that parse and 220 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.
45−- The 592-case corpus passed under `urbit eval` in 147.1 s while other checks were running. The fake ship passed all 601 tests, including the importer, importer/checker and mark/checker bridges, module scope and unification checks, with 59.1 s for sync and 36.3 s for tests. The importer golden compares 221 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.
45+- The 603-case corpus passed under `urbit eval` in 119.7 s while other checks were running. The fake ship passed all 614 tests, including the importer, importer/checker and mark/checker bridges, module scope, unification and hole guards, with 56.8 s for sync and 60.1 s for tests. The importer golden compares 221 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.
46- `tools/testdata/selftest` (22 checks), `tools/testdata/ship-selftest` and `tools/testdata/clay-fixtures-selftest` test the tools themselves; the last checks temporary Clay fixture cleanup and signal handling without a ship.
46- `tools/testdata/selftest` (22 checks), `tools/testdata/ship-selftest` and `tools/testdata/clay-fixtures-selftest` test the tools themselves; the last checks temporary Clay fixture cleanup and signal handling without a ship.
47- 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.
47- 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.
48- 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).
48- 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).
@@ -120,27 +120,30 @@ Besides the plan's list:
120| c690076 | 2026-10-31 | Propagate loobean context, infer predicate helpers, and import named ordered-map operands |
120| c690076 | 2026-10-31 | Propagate loobean context, infer predicate helpers, and import named ordered-map operands |
121| 0bf6178 | 2026-10-31 | Bridge recursive Tlon lists and prepare a private comparison interface |
121| 0bf6178 | 2026-10-31 | Bridge recursive Tlon lists and prepare a private comparison interface |
122| 4e472b5 | 2026-10-31 | Pass known named unions through polymorphic gates |
122| 4e472b5 | 2026-10-31 | Pass known named unions through polymorphic gates |
123−| This change | 2026-10-31 | Parse type holes, reject duplicate written record fields, and extend partial union inference and imports |
123+| e3e184f | 2026-10-31 | Parse type holes, reject duplicate written record fields, and extend partial union inference and imports |
124+| This change | 2026-10-31 | Infer supported annotation holes and prelude list aliases |
124
125
125## Checking it
126## Checking it
126
127
127On a machine set up as [development.md](development.md) says:
128On a machine set up as [development.md](development.md) says:
128
129
129```
130```
130−tools/golden # 592 cases under urbit eval
131+tools/golden # 603 cases under urbit eval
131tools/importer-test # the Hoon importer fixture projection
132tools/importer-test # the Hoon importer fixture projection
132tools/type-import-test # the importer/checker bridge fixture
133tools/type-import-test # the importer/checker bridge fixture
133tools/type-tlon-test # the real Tlon reader/checker fixture
134tools/type-tlon-test # the real Tlon reader/checker fixture
134tools/type-mark-test # the mark/checker bridge fixture
135tools/type-mark-test # the mark/checker bridge fixture
135tools/type-poke-test # the source-backed poke/API fixture
136tools/type-poke-test # the source-backed poke/API fixture
136tools/type-api-paths-test # partial API path metadata fixture
137tools/type-api-paths-test # partial API path metadata fixture
138+tools/type-hole-guards-test # hole defaulting and API interface guards
139+tools/type-list-alias-test # prelude list-alias guards
137tools/type-module-scope-test # module and prelude scope fixture
140tools/type-module-scope-test # module and prelude scope fixture
138tools/hoon check-spans-test # prints <<>> when the span checker works
141tools/hoon check-spans-test # prints <<>> when the span checker works
139tools/testdata/selftest # the tools themselves
142tools/testdata/selftest # the tools themselves
140tools/doc-blocks docs/spec # the doc's examples are golden cases
143tools/doc-blocks docs/spec # the doc's examples are golden cases
141tools/ship start
144tools/ship start
142tools/ship gen-tests --check # tests/lib/jibb.hoon is up to date
145tools/ship gen-tests --check # tests/lib/jibb.hoon is up to date
143−tools/ship test # the same 592 cases as -test arms on the ship
146+tools/ship test # the same 603 cases as -test arms on the ship
144tools/testdata/ship-selftest
147tools/testdata/ship-selftest
145tools/testdata/clay-fixtures-selftest # scratch fixture cleanup without a ship
148tools/testdata/clay-fixtures-selftest # scratch fixture cleanup without a ship
146tools/ship check-commit # |commit stores .jibb files
149tools/ship check-commit # |commit stores .jibb files
jibb-dev/lib/jibb.hoon+262−13
@@ -5292,7 +5292,10 @@
5292:: This core has no Ford dependencies; unrecognized payloads fail closed.
5292:: This core has no Ford dependencies; unrecognized payloads fail closed.
5293+$ iexternals (list [module=term name=term result=*])
5293+$ iexternals (list [module=term name=term result=*])
5294+$ imark-externals (list [mark=term result=*])
5294+$ imark-externals (list [mark=term result=*])
5295+:: Hole obligations survive discarded expressions until their owning
5296+:: definition has inferred; their source spans support unresolved reports.
5297++$ ihole [id=@ud at=span]
5295−+$ istate [next=@ud sub=isub caps=icaps binders=(list @ud) molds=imolds globals=(list term) externals=iexternals surs=(list term) mark-externals=imark-externals marks=(list term) jimports=ijimports reserved-molds=(list term) params=iparams active=(list term) tags=(list ipending) in-mold=? at=path top-molds=(list term) prelude=(unit ifile)]
5298++$ istate [next=@ud sub=isub caps=icaps binders=(list @ud) molds=imolds globals=(list term) externals=iexternals surs=(list term) mark-externals=imark-externals marks=(list term) jimports=ijimports reserved-molds=(list term) params=iparams active=(list term) tags=(list ipending) in-mold=? at=path top-molds=(list term) prelude=(unit ifile) holes=(list ihole)]
5296+$ idiag [msg=tape sites=(list [at=span note=tape])]
5299+$ idiag [msg=tape sites=(list [at=span note=tape])]
5297+$ iresult (each [typ=itype state=istate] idiag)
5300+$ iresult (each [typ=itype state=istate] idiag)
5298+$ isample-result (each [typ=itype env=ienv state=istate] tape)
5301+$ isample-result (each [typ=itype env=ienv state=istate] tape)
@@ -5363,6 +5366,90 @@
5363 * t
5366 * t
5364 ==
5367 ==
5365::
5368::
5369+:: A hole is solved only by a fully determined type or a written
5370+:: in-scope type variable. Ordinary fresh variables are not evidence.
5371+:: Compare representatives after substitution, since unification can
5372+:: orient a written capital toward the hole rather than the reverse.
5373+++ hole-variable-id
5374+ |= t=itype
5375+ ^- (unit @ud)
5376+ ?- -.t
5377+ %var `id.t
5378+ %avar `id.t
5379+ %nvar `id.t
5380+ %tag `id.t
5381+ * ~
5382+ ==
5383+++ hole-same-variable
5384+ |= [a=itype b=itype]
5385+ ^- ?
5386+ =/ x=(unit @ud) (hole-variable-id a)
5387+ ?~ x |
5388+ =/ y=(unit @ud) (hole-variable-id b)
5389+ ?~ y |
5390+ =(u.x u.y)
5391+++ hole-known
5392+ |= [t=itype state=istate]
5393+ ^- ?
5394+ =. t (itype-walk t sub.state)
5395+ ?- -.t
5396+ ?(%var %avar %nvar)
5397+ ?: (lien caps.state |=(c=icap (hole-same-variable t (itype-walk [%var id.c] sub.state)))) &
5398+ (lien params.state |=(p=[name=@t typ=itype] (hole-same-variable t (itype-walk typ.p sub.state))))
5399+ %tag |
5400+ %any-atom &
5401+ %union &((levy cases.t |=(c=itype (hole-known c state))) (levy args.t |=(c=itype (hole-known c state))))
5402+ %collection (levy args.t |=(c=itype (hole-known c state)))
5403+ %face $(t body.t)
5404+ %fn &($(t sample.t) $(t product.t))
5405+ %cell &($(t hed.t) $(t tal.t))
5406+ * &
5407+ ==
5408+++ default-hole-numbers
5409+ |= [all=(list ihole) prior=(list ihole) state=istate env=ienv permit=?]
5410+ ^- istate
5411+ :: Do not default a named capital or a variable captured from env.
5412+ ?. permit state
5413+ ?: =(all prior) state
5414+ ?~ all state
5415+ =/ t=itype (itype-walk [%var id.i.all] sub.state)
5416+ =/ free=(list @ud) (free-env-vars env sub.state)
5417+ =? state &(?=(%nvar -.t) !(hole-known t state) !(lien free |=(id=@ud =(id id.t))))
5418+ state(sub [[id.t [%atom %ud]] sub.state])
5419+ $(all t.all)
5420+::
5421+:: Only obligations created inside this definition belong to it.
5422+++ holes-created
5423+ |= [all=(list ihole) prior=(list ihole)]
5424+ ^- (list ihole)
5425+ ?: =(all prior) ~
5426+ ?~ all ~
5427+ [i.all $(all t.all)]
5428+++ hole-uncertain
5429+ |= [t=itype state=istate]
5430+ ^- ?
5431+ =. t (itype-walk t sub.state)
5432+ ?- -.t
5433+ ?(%tag %nvar %avar) !(hole-known t state)
5434+ %union |((lien cases.t |=(c=itype (hole-uncertain c state))) (lien args.t |=(c=itype (hole-uncertain c state))))
5435+ %collection (lien args.t |=(c=itype (hole-uncertain c state)))
5436+ %face $(t body.t)
5437+ %fn |($(t sample.t) $(t product.t))
5438+ %cell |($(t hed.t) $(t tal.t))
5439+ * |
5440+ ==
5441+::
5442+++ unresolved-hole
5443+ |= [all=(list ihole) prior=(list ihole) state=istate]
5444+ ^- (unit idiag)
5445+ =/ work=(list ihole) (flop (holes-created all prior))
5446+ |-
5447+ ?~ work ~
5448+ ?: (hole-known [%var id.i.work] state) $(work t.work)
5449+ ?: (hole-uncertain [%var id.i.work] state)
5450+ `["type hole needs unsupported inference" ~[[at.i.work "type hole"]]]
5451+ `["type hole needs a determined type" ~[[at.i.work "unresolved type hole"]]]
5452+::
5366++ itype-vars
5453++ itype-vars
5367 |= t=itype
5454 |= t=itype
5368 ^- (list @ud)
5455 ^- (list @ud)
@@ -5950,17 +6037,19 @@
5950 =/ out=(unit [typ=itype state=istate])
6037 =/ out=(unit [typ=itype state=istate])
5951 (infer-simple-shape body.sh state(next next.fresh, params params.fresh, in-mold &))
6038 (infer-simple-shape body.sh state(next next.fresh, params params.fresh, in-mold &))
5952 ?~ out ~
6039 ?~ out ~
6040+ ?^ (unresolved-hole holes.state.u.out holes.state state.u.out) ~
5953 ?: &(?=(%union -.typ.u.out) !?=(%union -.body.sh) ?=(~ origin.typ.u.out)) ~
6041 ?: &(?=(%union -.typ.u.out) !?=(%union -.body.sh) ?=(~ origin.typ.u.out)) ~
5954 =? typ.u.out &(?=(%union -.typ.u.out) ?=(%union -.body.sh))
6042 =? typ.u.out &(?=(%union -.typ.u.out) ?=(%union -.body.sh))
5955 typ.u.out(args (turn vars.fresh |=(n=@ud `itype`[%var n])))
6043 typ.u.out(args (turn vars.fresh |=(n=@ud `itype`[%var n])))
5956 =/ used=(list @ud) (itype-vars typ.u.out)
6044 =/ used=(list @ud) (itype-vars typ.u.out)
5957 ?. (levy used |=(n=@ud (lien vars.fresh |=(p=@ud =(p n))))) ~
6045 ?. (levy used |=(n=@ud (lien vars.fresh |=(p=@ud =(p n))))) ~
5958− `[[typ.u.out vars.fresh] state.u.out(params params.state, in-mold in-mold.state)]
6046+ `[[typ.u.out vars.fresh] state.u.out(params params.state, in-mold in-mold.state, holes holes.state)]
5959 =/ out=(unit [typ=itype state=istate])
6047 =/ out=(unit [typ=itype state=istate])
5960 (infer-simple-shape sh state(params ~, in-mold &))
6048 (infer-simple-shape sh state(params ~, in-mold &))
5961 ?~ out ~
6049 ?~ out ~
6050+ ?^ (unresolved-hole holes.state.u.out holes.state state.u.out) ~
5962 ?: ?=(^ (itype-vars typ.u.out)) ~
6051 ?: ?=(^ (itype-vars typ.u.out)) ~
5963− `[[typ.u.out ~] state.u.out(params params.state, in-mold in-mold.state)]
6052+ `[[typ.u.out ~] state.u.out(params params.state, in-mold in-mold.state, holes holes.state)]
5964::
6053::
5965:: A direct imported reference may carry definite reader evidence. Only
6054:: A direct imported reference may carry definite reader evidence. Only
5966:: uniquely supplied, declared inputs are used; unsupported data stay generic.
6055:: uniquely supplied, declared inputs are used; unsupported data stay generic.
@@ -6063,6 +6152,7 @@
6063 |= [sh=shape state=istate]
6152 |= [sh=shape state=istate]
6064 ^- (unit [typ=itype state=istate])
6153 ^- (unit [typ=itype state=istate])
6065 ?- -.sh
6154 ?- -.sh
6155+ %hole `[[%var next.state] state(next +(next.state), holes [[next.state at.sh] holes.state])]
6066 %aura
6156 %aura
6067 ?: =(0 aura.sh) `[[%any-atom ~] state]
6157 ?: =(0 aura.sh) `[[%any-atom ~] state]
6068 `[[%atom aura.sh] state]
6158 `[[%atom aura.sh] state]
@@ -6116,7 +6206,8 @@
6116 =/ out=(unit [typ=itype state=istate])
6206 =/ out=(unit [typ=itype state=istate])
6117 $(sh u.found, state state(active [n active.state], in-mold &, params ~))
6207 $(sh u.found, state state(active [n active.state], in-mold &, params ~))
6118 ?~ out ~
6208 ?~ out ~
6209+ ?^ (unresolved-hole holes.state.u.out holes.state state.u.out) ~
6119− `[(label-direct-union typ.u.out u.found n state) state.u.out(active active.state, in-mold in-mold.state, params params.state)]
6210+ `[(label-direct-union typ.u.out u.found n state) state.u.out(active active.state, in-mold in-mold.state, params params.state, holes holes.state)]
6120 %apply
6211 %apply
6121 ?~ ref.sh ~
6212 ?~ ref.sh ~
6122 =/ args=(unit [types=(list itype) state=istate]) (infer-shape-args args.sh state)
6213 =/ args=(unit [types=(list itype) state=istate]) (infer-shape-args args.sh state)
@@ -6150,11 +6241,12 @@
6150 =/ out=(unit [typ=itype state=istate])
6241 =/ out=(unit [typ=itype state=istate])
6151 $(sh body.u.found, state state.u.args(active [n active.state.u.args], in-mold &, params u.params))
6242 $(sh body.u.found, state state.u.args(active [n active.state.u.args], in-mold &, params u.params))
6152 ?~ out ~
6243 ?~ out ~
6244+ ?^ (unresolved-hole holes.state.u.out holes.state.u.args state.u.out) ~
6153 ?: &(?=(%union -.typ.u.out) !?=(%union -.body.u.found) ?=(~ origin.typ.u.out)) ~
6245 ?: &(?=(%union -.typ.u.out) !?=(%union -.body.u.found) ?=(~ origin.typ.u.out)) ~
6154 ?: &(?=(%union -.typ.u.out) ?=(%union -.body.u.found) !(lien top-molds.state.u.args |=(x=term =(x n)))) ~
6246 ?: &(?=(%union -.typ.u.out) ?=(%union -.body.u.found) !(lien top-molds.state.u.args |=(x=term =(x n)))) ~
6155 =? typ.u.out &(?=(%union -.typ.u.out) ?=(%union -.body.u.found))
6247 =? typ.u.out &(?=(%union -.typ.u.out) ?=(%union -.body.u.found))
6156 (label-direct-union typ.u.out(args types.u.args) u.found n state.u.args)
6248 (label-direct-union typ.u.out(args types.u.args) u.found n state.u.args)
6157− `[typ.u.out state.u.out(active active.state.u.args, in-mold in-mold.state.u.args, params params.state.u.args)]
6249+ `[typ.u.out state.u.out(active active.state.u.args, in-mold in-mold.state.u.args, params params.state.u.args, holes holes.state.u.args)]
6158 %tvar
6250 %tvar
6159 =/ param=(unit itype) (iparam-lookup name.sh params.state)
6251 =/ param=(unit itype) (iparam-lookup name.sh params.state)
6160 ?^ param `[u.param state]
6252 ?^ param `[u.param state]
@@ -6469,6 +6561,9 @@
6469 =/ retried=? ?=(%| -.inferred)
6561 =/ retried=? ?=(%| -.inferred)
6470 =? inferred retried (infer-recursive-gate d env local-state)
6562 =? inferred retried (infer-recursive-gate d env local-state)
6471 ?: ?=(%| -.inferred) $(ds t.ds, remaining [d remaining])
6563 ?: ?=(%| -.inferred) $(ds t.ds, remaining [d remaining])
6564+ =. state.p.inferred (default-hole-numbers holes.state.p.inferred holes.state state.p.inferred env !(itype-has-gate (itype-normalize typ.p.inferred sub.state.p.inferred)))
6565+ =/ hole=(unit idiag) (unresolved-hole holes.state.p.inferred holes.state state.p.inferred)
6566+ ?^ hole [%| u.hole]
6472 =/ merged=(unit [first=icap second=icap])
6567 =/ merged=(unit [first=icap second=icap])
6473 (merged-capitals caps.state.p.inferred sub.state.p.inferred)
6568 (merged-capitals caps.state.p.inferred sub.state.p.inferred)
6474 ?^ merged
6569 ?^ merged
@@ -6484,7 +6579,7 @@
6484 (weld (free-env-vars env sub.state.p.inferred) (free-cap-vars caps.state sub.state.p.inferred))
6579 (weld (free-env-vars env sub.state.p.inferred) (free-cap-vars caps.state sub.state.p.inferred))
6485 =/ vars=(list @ud) (unique-type-vars (itype-vars typ))
6580 =/ vars=(list @ud) (unique-type-vars (itype-vars typ))
6486 =. vars (skim vars |=(n=@ud !(lien free |=(f=@ud =(f n)))))
6581 =. vars (skim vars |=(n=@ud !(lien free |=(f=@ud =(f n)))))
6487− $(ds t.ds, env [[name.d [typ vars]] env], state state.p.inferred(caps caps.state), progressed &)
6582+ $(ds t.ds, env [[name.d [typ vars]] env], state state.p.inferred(caps caps.state, holes holes.state), progressed &)
6488::
6583::
6489:: Try complete cyclic local groups after individual definitions stall.
6584:: Try complete cyclic local groups after individual definitions stall.
6490:: Components with non-gates or unresolved constraints stay unavailable.
6585:: Components with non-gates or unresolved constraints stay unavailable.
@@ -7467,6 +7562,9 @@
7467 [%| ["local molds shadow a name" ~]]
7562 [%| ["local molds shadow a name" ~]]
7468 =/ local-state=istate
7563 =/ local-state=istate
7469 state(globals (weld local-names globals.state), molds (weld local-molds molds.state))
7564 state(globals (weld local-names globals.state), molds (weld local-molds molds.state))
7565+ =/ mold-hole=(unit span) (simple-local-mold-hole defs.e)
7566+ ?^ mold-hole
7567+ [%| ["type hole needs a determined type" ~[[u.mold-hole "unresolved type hole"]]]]
7470 ?. (local-molds-supported local-molds local-state)
7568 ?. (local-molds-supported local-molds local-state)
7471 [%| ["local molds need unsupported inference" ~]]
7569 [%| ["local molds need unsupported inference" ~]]
7472 =/ values=(list def) (local-value-defs defs.e)
7570 =/ values=(list def) (local-value-defs defs.e)
@@ -8429,6 +8527,9 @@
8429 =/ seeds=ienv (group-seed-env entries.p.seeded ~)
8527 =/ seeds=ienv (group-seed-env entries.p.seeded ~)
8430 =/ body=igate-seeds (infer-gate-group-bodies entries.p.seeded seeds state.p.seeded)
8528 =/ body=igate-seeds (infer-gate-group-bodies entries.p.seeded seeds state.p.seeded)
8431 ?: ?=(%| -.body) body
8529 ?: ?=(%| -.body) body
8530+ :: Per-member ownership through mutual recursion is not implemented.
8531+ ?: !=(holes.state.p.body holes.state)
8532+ [%| ["holes in recursive groups need unsupported inference" ~]]
8432 ?: (pending-tags tags.state.p.body sub.state.p.body)
8533 ?: (pending-tags tags.state.p.body sub.state.p.body)
8433 [%| ["recursive group has unresolved literal constraints" ~]]
8534 [%| ["recursive group has unresolved literal constraints" ~]]
8434 =/ schemes=(each ienv idiag) (group-schemes entries.p.body env state state.p.body)
8535 =/ schemes=(each ienv idiag) (group-schemes entries.p.body env state state.p.body)
@@ -8444,11 +8545,13 @@
8444 ?. (unique-value-name name.d globals) $(ds t.ds)
8545 ?. (unique-value-name name.d globals) $(ds t.ds)
8445 ?^ (ienv-lookup name.d env) $(ds t.ds)
8546 ?^ (ienv-lookup name.d env) $(ds t.ds)
8446 =/ top=(list term) (turn molds |=(m=[name=term body=shape] name.m))
8547 =/ top=(list term) (turn molds |=(m=[name=term body=shape] name.m))
8447− =/ initial=istate [0 ~ ~ ~ molds globals externals surs mark-externals marks jimports reserved-molds ~ ~ ~ | at top prelude]
8548+ =/ initial=istate [0 ~ ~ ~ molds globals externals surs mark-externals marks jimports reserved-molds ~ ~ ~ | at top prelude ~]
8448 =. initial (reserve-def-caps val.d initial)
8549 =. initial (reserve-def-caps val.d initial)
8449 =/ result=iresult (infer-fragment val.d env initial)
8550 =/ result=iresult (infer-fragment val.d env initial)
8450 =? result ?=(%| -.result) (infer-recursive-gate d env initial)
8551 =? result ?=(%| -.result) (infer-recursive-gate d env initial)
8451 ?: ?=(%| -.result) $(ds t.ds)
8552 ?: ?=(%| -.result) $(ds t.ds)
8553+ =. state.p.result (default-hole-numbers holes.state.p.result holes.initial state.p.result env !(itype-has-gate (itype-normalize typ.p.result sub.state.p.result)))
8554+ ?^ (unresolved-hole holes.state.p.result holes.initial state.p.result) $(ds t.ds)
8452 ?: (constrained-capitals caps.state.p.result sub.state.p.result) $(ds t.ds)
8555 ?: (constrained-capitals caps.state.p.result sub.state.p.result) $(ds t.ds)
8453 =/ typ=itype (default-decimals (itype-normalize typ.p.result sub.state.p.result))
8556 =/ typ=itype (default-decimals (itype-normalize typ.p.result sub.state.p.result))
8454 ?: |((pending-tags tags.state.p.result sub.state.p.result) (itype-has-tag typ)) $(ds t.ds)
8557 ?: |((pending-tags tags.state.p.result sub.state.p.result) (itype-has-tag typ)) $(ds t.ds)
@@ -8579,7 +8682,7 @@
8579 =/ top=(list term) (turn molds |=(m=[name=term body=shape] name.m))
8682 =/ top=(list term) (turn molds |=(m=[name=term body=shape] name.m))
8580 |-
8683 |-
8581 =/ next=ienv (add-supported-defs ds env molds globals externals surs mark-externals marks jimports reserved-molds at prelude)
8684 =/ next=ienv (add-supported-defs ds env molds globals externals surs mark-externals marks jimports reserved-molds at prelude)
8582− =/ initial=istate [0 ~ ~ ~ molds globals externals surs mark-externals marks jimports reserved-molds ~ ~ ~ | at top prelude]
8685+ =/ initial=istate [0 ~ ~ ~ molds globals externals surs mark-externals marks jimports reserved-molds ~ ~ ~ | at top prelude ~]
8583 =/ out=iresolved (add-groups ds components graph next grouped initial)
8686 =/ out=iresolved (add-groups ds components graph next grouped initial)
8584 ?: =(env env.out) out
8687 ?: =(env env.out) out
8585 $(env env.out, grouped grouped.out)
8688 $(env env.out, grouped grouped.out)
@@ -8841,11 +8944,142 @@
8841 [at.first at.second (union-relate a (project-union-mold second molds ~))]
8944 [at.first at.second (union-relate a (project-union-mold second molds ~))]
8842 (weld pairs $(cases t.cases))
8945 (weld pairs $(cases t.cases))
8843::
8946::
8947+:: A closed structural mold supplies no equation to determine a hole.
8948+:: Applications, references, unbound capitals and unions are unproved.
8949+++ simple-mold-hole
8950+ |= sh=shape
8951+ ^- (unit (unit span))
8952+ ?: ?=(%generic -.sh)
8953+ ?~ vars.sh ~
8954+ ?. (distinct-params vars.sh) ~
8955+ (simple-mold-hole-in body.sh vars.sh)
8956+ (simple-mold-hole-in sh ~)
8957+++ simple-mold-hole-in
8958+ |= [sh=shape vars=(list @t)]
8959+ ^- (unit (unit span))
8960+ ?- -.sh
8961+ %hole ``at.sh
8962+ ?(%aura %noun %void %flag %const) `~
8963+ %tvar ?:((lien vars |=(v=@t =(v name.sh))) `~ ~)
8964+ %cell (simple-mold-field-holes fields.sh vars)
8965+ %fn
8966+ =/ a=(unit (unit span)) $(sh sample.sh)
8967+ ?~ a ~
8968+ =/ b=(unit (unit span)) $(sh product.sh)
8969+ ?~ b ~
8970+ `?~(u.a u.b u.a)
8971+ %generic ~
8972+ * ~
8973+ ==
8974+++ simple-mold-field-holes
8975+ |= [fields=(list field) vars=(list @t)]
8976+ ^- (unit (unit span))
8977+ ?~ fields `~
8978+ =/ f=field i.fields
8979+ =/ first=(unit (unit span))
8980+ ?- -.f
8981+ %face (simple-mold-hole-in shape.f vars)
8982+ %bare (simple-mold-hole-in shape.f vars)
8983+ %pun ~
8984+ ==
8985+ ?~ first ~
8986+ =/ rest=(unit (unit span)) $(fields t.fields)
8987+ ?~ rest ~
8988+ `?~(u.first u.rest u.first)
8989+++ simple-local-mold-hole
8990+ |= defs=(list def)
8991+ ^- (unit span)
8992+ ?~ defs ~
8993+ ?. ?=(%mold -.i.defs) $(defs t.defs)
8994+ =/ found=(unit (unit span)) (simple-mold-hole shape.i.defs)
8995+ ?~ found $(defs t.defs)
8996+ ?^ u.found u.found
8997+ $(defs t.defs)
8998+::
8999+:: A partial prelude may omit unsupported declarations, but may not
9000+:: publish an interface while a named mold's hole remains unchecked.
9001+++ shape-has-hole
9002+ |= sh=shape
9003+ ^- ?
9004+ ?- -.sh
9005+ %hole &
9006+ %path (lien segs.sh |=(s=pseg ?=(%inferred -.s)))
9007+ %apply (lien args.sh shape-has-hole)
9008+ %union (lien cases.sh shape-has-hole)
9009+ %cell (lien fields.sh field-has-hole)
9010+ %fn |($(sh sample.sh) $(sh product.sh))
9011+ %generic $(sh body.sh)
9012+ * |
9013+ ==
9014+++ field-has-hole
9015+ |= f=field
9016+ ^- ?
9017+ ?- -.f
9018+ %face (shape-has-hole shape.f)
9019+ %bare (shape-has-hole shape.f)
9020+ %pun |
9021+ ==
9022+++ named-mold-has-hole
9023+ |= ds=(list def)
9024+ ^- ?
9025+ ?~ ds |
9026+ ?: &(?=(%mold -.i.ds) (shape-has-hole shape.i.ds)) &
9027+ $(ds t.ds)
9028+::
9029+++ sample-has-hole
9030+ |= sam=sample
9031+ ^- ?
9032+ ?- -.sam
9033+ %face (shape-has-hole shape.sam)
9034+ %bare (shape-has-hole shape.sam)
9035+ %cell (lien items.sam sample-has-hole)
9036+ * |
9037+ ==
9038+++ def-has-hole
9039+ |= d=def
9040+ ^- ?
9041+ ?- -.d
9042+ %mold (shape-has-hole shape.d)
9043+ %value (expr-has-hole val.d)
9044+ ==
9045+++ expr-has-hole
9046+ |= e=expr
9047+ ^- ?
9048+ ?- -.e
9049+ %str (lien pieces.e |=(p=piece ?:(?=(%expr -.p) (expr-has-hole p.p) |)))
9050+ %qath (lien segs.e |=(p=qseg ?:(?=(%expr -.p) (expr-has-hole p.p) |)))
9051+ %change (lien edits.e |=(p=edit (expr-has-hole val.p)))
9052+ %pair $(e val.e)
9053+ %unit $(e val.e)
9054+ %group $(e inner.e)
9055+ %list (lien items.e expr-has-hole)
9056+ %tuple (lien items.e |=(i=item (expr-has-hole val.i)))
9057+ ?(%gate %gate-wide) |((sample-has-hole sample.e) $(e body.e))
9058+ %cast |((shape-has-hole shape.e) $(e val.e))
9059+ %call |($(e head.e) (lien args.e expr-has-hole))
9060+ %trace |($(e val.e) $(e then.e))
9061+ %branch |($(e subject.e) (lien arms.e |=(a=arm (expr-has-hole val.a))))
9062+ %body |((lien defs.e def-has-hole) $(e final.e))
9063+ * |
9064+ ==
9065+++ hole-values-present
9066+ |= [ds=(list def) env=ienv]
9067+ ^- ?
9068+ ?~ ds &
9069+ ?. ?=(%value -.i.ds) $(ds t.ds)
9070+ ?: (expr-has-hole val.i.ds)
9071+ ?. ?=(^ (ienv-lookup name.i.ds env)) |
9072+ $(ds t.ds)
9073+ $(ds t.ds)
8844++ show-partial-mold
9074++ show-partial-mold
8845 |= [file=path src=@t d=def molds=imolds]
9075 |= [file=path src=@t d=def molds=imolds]
8846 ^- @t
9076 ^- @t
8847 ?> ?=(%mold -.d)
9077 ?> ?=(%mold -.d)
8848 =/ sh=shape shape.d
9078 =/ sh=shape shape.d
9079+ =/ hole=(unit (unit span)) (simple-mold-hole sh)
9080+ ?: &(?=(^ hole) ?=(^ u.hole))
9081+ =/ text=@t (show-error src [file line.beg.u.u.hole col.beg.u.u.hole "unresolved type hole"])
9082+ (of-wain:format ~[(crip "+$ {(trip name.d)}: type hole needs a determined type") text])
8849 =? sh ?=(%generic -.sh) body.sh
9083 =? sh ?=(%generic -.sh) body.sh
8850 ?. ?=(%union -.sh) (crip "+$ {(trip name.d)}: not checked")
9084 ?. ?=(%union -.sh) (crip "+$ {(trip name.d)}: not checked")
8851 =/ pairs=(list upair) (union-pairs cases.sh molds)
9085 =/ pairs=(list upair) (union-pairs cases.sh molds)
@@ -9242,7 +9476,7 @@
9242 =/ js=ijimports ~[[face.i.imports.mod private-primitive-interface]]
9476 =/ js=ijimports ~[[face.i.imports.mod private-primitive-interface]]
9243 =/ reserved=(list term) ~[face.i.imports.mod]
9477 =/ reserved=(list term) ~[face.i.imports.mod]
9244 =/ top=(list term) (turn molds |=(m=[name=term body=shape] name.m))
9478 =/ top=(list term) (turn molds |=(m=[name=term body=shape] name.m))
9245− =/ state=istate [0 ~ ~ ~ molds globals ~ ~ ~ ~ js reserved ~ ~ ~ | at top ~]
9479+ =/ state=istate [0 ~ ~ ~ molds globals ~ ~ ~ ~ js reserved ~ ~ ~ | at top ~ ~]
9246 =/ mts=(each imold-types @t) (module-mold-types molds state)
9480 =/ mts=(each imold-types @t) (module-mold-types molds state)
9247 ?: ?=(%| -.mts) ~
9481 ?: ?=(%| -.mts) ~
9248 =/ env=ienv (resolve-supported-defs defs.mod molds globals ~ ~ ~ ~ js reserved at ~)
9482 =/ env=ienv (resolve-supported-defs defs.mod molds globals ~ ~ ~ ~ js reserved at ~)
@@ -9256,6 +9490,7 @@
9256 =/ at=path /lib/jibb/prelude/jibb
9490 =/ at=path /lib/jibb/prelude/jibb
9257 =/ parsed (parse at src)
9491 =/ parsed (parse at src)
9258 ?: ?=(%| -.parsed) ~
9492 ?: ?=(%| -.parsed) ~
9493+ ?: (named-mold-has-hole defs.p.parsed) ~
9259 ?^ (duplicate-defs defs.p.parsed) ~
9494 ?^ (duplicate-defs defs.p.parsed) ~
9260 =/ private=(unit ijimports)
9495 =/ private=(unit ijimports)
9261 ?~ imports.p.parsed `~
9496 ?~ imports.p.parsed `~
@@ -9279,8 +9514,15 @@
9279 =? env-molds declared
9514 =? env-molds declared
9280 (skim molds |=(m=[name=term body=shape] !=(%list name.m)))
9515 (skim molds |=(m=[name=term body=shape] !=(%list name.m)))
9281 =/ reserved=(list term) ?:(declared ~[%list] ~)
9516 =/ reserved=(list term) ?:(declared ~[%list] ~)
9282− =/ state=istate [0 ~ ~ ~ env-molds globals ~ ~ ~ ~ u.private reserved ~ ~ ~ | at names ~]
9517+ =/ state=istate [0 ~ ~ ~ env-molds globals ~ ~ ~ ~ u.private reserved ~ ~ ~ | at names ~ ~]
9518+ :: Other prelude molds may use list only after its source has passed
9519+ :: the standard-list check. The raw declaration remains removed.
9520+ =/ declared-list=(unit shape) (find-simple-mold %list molds)
9521+ =/ mold-prelude=(unit ifile)
9522+ ?~ declared-list ~
9523+ ?. (standard-prelude-list u.declared-list) ~
9524+ `[~ ~[[%list [[%collection %list ~[[%var 0]]] ~[0]]]] at ~]
9283− =/ mt=imold-types (partial-prelude-molds molds state)
9525+ =/ mt=imold-types (partial-prelude-molds molds state(prelude mold-prelude))
9284 =/ partial=ifile [~ mt at ~]
9526 =/ partial=ifile [~ mt at ~]
9285 :: An explicitly qualified re-export must resolve. Other unsupported
9527 :: An explicitly qualified re-export must resolve. Other unsupported
9286 :: prelude declarations remain reserved but absent from the interface.
9528 :: prelude declarations remain reserved but absent from the interface.
@@ -9293,6 +9535,7 @@
9293 ?=(^ t.names.sh)
9535 ?=(^ t.names.sh)
9294 ?. (levy required |=(m=[name=term body=shape] ?=(^ (find-jibb-mold name.m partial)))) ~
9536 ?. (levy required |=(m=[name=term body=shape] ?=(^ (find-jibb-mold name.m partial)))) ~
9295 =/ env=ienv (resolve-supported-defs ds env-molds globals ~ ~ ~ ~ u.private reserved at `partial)
9537 =/ env=ienv (resolve-supported-defs ds env-molds globals ~ ~ ~ ~ u.private reserved at `partial)
9538+ ?. (hole-values-present ds env) ~
9296 `[env mt at ~]
9539 `[env mt at ~]
9297::
9540::
9298++ partial-prelude-interface
9541++ partial-prelude-interface
@@ -9543,6 +9786,7 @@
9543++ api-path-analysis
9786++ api-path-analysis
9544 |= [mod=module externals=imark-externals prelude-values=(list term) prelude-molds=(list term)]
9787 |= [mod=module externals=imark-externals prelude-values=(list term) prelude-molds=(list term)]
9545 ^- (unit (list iapi-path-typed))
9788 ^- (unit (list iapi-path-typed))
9789+ ?: (lien defs.mod def-has-hole) ~
9546 ?^ (duplicate-defs defs.mod) ~
9790 ?^ (duplicate-defs defs.mod) ~
9547 =/ ds=(list def) defs.mod
9791 =/ ds=(list def) defs.mod
9548 =/ declarations=(list def)
9792 =/ declarations=(list def)
@@ -9598,6 +9842,7 @@
9598++ api-poke-interface
9842++ api-poke-interface
9599 |= [at=path mod=module mark-externals=imark-externals prelude-values=(list term) prelude-molds=(list term) prelude=(unit ifile)]
9843 |= [at=path mod=module mark-externals=imark-externals prelude-values=(list term) prelude-molds=(list term) prelude=(unit ifile)]
9600 ^- (unit ifile)
9844 ^- (unit ifile)
9845+ ?: (lien defs.mod def-has-hole) ~
9601 ?. ?=([%ui %api @ %jibb ~] at) ~
9846 ?. ?=([%ui %api @ %jibb ~] at) ~
9602 ?^ (duplicate-defs defs.mod) ~
9847 ?^ (duplicate-defs defs.mod) ~
9603 ?~ prelude ~
9848 ?~ prelude ~
@@ -9656,7 +9901,7 @@
9656 =/ marks=(list term) (collect-mark-imports imports.mod)
9901 =/ marks=(list term) (collect-mark-imports imports.mod)
9657 =/ reserved=(list term) (weld prelude-molds (turn resolved.p.js |=(j=[face=term interface=ifile] face.j)))
9902 =/ reserved=(list term) (weld prelude-molds (turn resolved.p.js |=(j=[face=term interface=ifile] face.j)))
9658 =/ top=(list term) (turn molds |=(m=[name=term body=shape] name.m))
9903 =/ top=(list term) (turn molds |=(m=[name=term body=shape] name.m))
9659− =/ state=istate [0 ~ ~ ~ molds globals externals surs mark-externals marks resolved.p.js reserved ~ ~ ~ | at top prelude]
9904+ =/ state=istate [0 ~ ~ ~ molds globals externals surs mark-externals marks resolved.p.js reserved ~ ~ ~ | at top prelude ~]
9660 =/ mts=(each imold-types @t) (module-mold-types molds state)
9905 =/ mts=(each imold-types @t) (module-mold-types molds state)
9661 ?: ?=(%| -.mts) [%| (crip "{(trip p.mts)}: {(spud at)}")]
9906 ?: ?=(%| -.mts) [%| (crip "{(trip p.mts)}: {(spud at)}")]
9662 =/ env=ienv (resolve-supported-defs defs.mod molds globals externals surs mark-externals marks resolved.p.js reserved at prelude)
9907 =/ env=ienv (resolve-supported-defs defs.mod molds globals externals surs mark-externals marks resolved.p.js reserved at prelude)
@@ -9787,7 +10032,7 @@
9787 =/ line=@t (crip "++ {(trip name.d)}: {(show-itype typ ~)}{(show-atom-constraint typ)}")
10032 =/ line=@t (crip "++ {(trip name.d)}: {(show-itype typ ~)}{(show-atom-constraint typ)}")
9788 $(ds t.ds, lines [line lines])
10033 $(ds t.ds, lines [line lines])
9789 =/ top=(list term) (turn molds |=(m=[name=term body=shape] name.m))
10034 =/ top=(list term) (turn molds |=(m=[name=term body=shape] name.m))
9790− =/ initial=istate [0 ~ ~ ~ molds globals externals surs mark-externals marks jimports reserved-molds ~ ~ ~ | file top prelude]
10035+ =/ initial=istate [0 ~ ~ ~ molds globals externals surs mark-externals marks jimports reserved-molds ~ ~ ~ | file top prelude ~]
9791 =. initial (reserve-def-caps val.d initial)
10036 =. initial (reserve-def-caps val.d initial)
9792 =/ result=iresult
10037 =/ result=iresult
9793 ?: |(?=(%gate -.val.d) ?=(%gate-wide -.val.d))
10038 ?: |(?=(%gate -.val.d) ?=(%gate-wide -.val.d))
@@ -9795,6 +10040,10 @@
9795 (infer-fragment val.d env initial)
10040 (infer-fragment val.d env initial)
9796 ?: ?=(%| -.result)
10041 ?: ?=(%| -.result)
9797 $(ds t.ds, lines [(show-inference-diagnostic file src name.d p.result) lines])
10042 $(ds t.ds, lines [(show-inference-diagnostic file src name.d p.result) lines])
10043+ =. state.p.result (default-hole-numbers holes.state.p.result holes.initial state.p.result env !(itype-has-gate (itype-normalize typ.p.result sub.state.p.result)))
10044+ =/ hole=(unit idiag) (unresolved-hole holes.state.p.result holes.initial state.p.result)
10045+ ?^ hole
10046+ $(ds t.ds, lines [(show-inference-diagnostic file src name.d u.hole) lines])
9798 =/ merged=(unit [first=icap second=icap])
10047 =/ merged=(unit [first=icap second=icap])
9799 (merged-capitals caps.state.p.result sub.state.p.result)
10048 (merged-capitals caps.state.p.result sub.state.p.result)
9800 ?^ merged
10049 ?^ merged
tests/golden/types-hole-concrete/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Types and molds: a definition must determine its own type holes.
2+tests: Independent holes fixed to concrete results and samples, decimal defaulting, atom widening and a pending tag.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-hole-concrete/source.jibbnew file+6
@@ -0,0 +1,6 @@
1+++ cast ^- _ "hello"
2+++ sample |= x=_ ^- @t x
3+++ separate |= x=[_ _] ^- [@t @p] x
4+++ decimal ^- _ 1
5+++ atom |= x=@ ^- _ x
6+++ unresolved-tag ^- _ %foo
tests/golden/types-hole-concrete/tokens.txtnew file+54
@@ -0,0 +1,54 @@
1+1:1 glyph ++
2+1:4 name cast
3+1:9 glyph ^-
4+1:12 glyph _
5+1:14 str "hello"
6+2:1 NEWLINE
7+2:1 glyph ++
8+2:4 name sample
9+2:11 glyph |=
10+2:14 name x
11+2:15 tight glyph =
12+2:16 tight glyph _
13+2:18 glyph ^-
14+2:21 aura @t
15+2:24 name x
16+3:1 NEWLINE
17+3:1 glyph ++
18+3:4 name separate
19+3:13 glyph |=
20+3:16 name x
21+3:17 tight glyph =
22+3:18 tight glyph [
23+3:19 tight glyph _
24+3:21 glyph _
25+3:22 tight glyph ]
26+3:24 glyph ^-
27+3:27 glyph [
28+3:28 tight aura @t
29+3:31 aura @p
30+3:33 tight glyph ]
31+3:35 name x
32+4:1 NEWLINE
33+4:1 glyph ++
34+4:4 name decimal
35+4:12 glyph ^-
36+4:15 glyph _
37+4:17 lit 1
38+5:1 NEWLINE
39+5:1 glyph ++
40+5:4 name atom
41+5:9 glyph |=
42+5:12 name x
43+5:13 tight glyph =
44+5:14 tight aura @
45+5:16 glyph ^-
46+5:19 glyph _
47+5:21 name x
48+6:1 NEWLINE
49+6:1 glyph ++
50+6:4 name unresolved-tag
51+6:19 glyph ^-
52+6:22 glyph _
53+6:24 lit %foo
54+6:28 NEWLINE
tests/golden/types-hole-concrete/tree.txtnew file+22
@@ -0,0 +1,22 @@
1+(module
2+ (value 1:1 cast
3+ (cast 1:9 (hole 1:12) (str 1:14 "hello")))
4+ (value 2:1 sample
5+ (gate 2:11
6+ (face 2:14 x (hole 2:16))
7+ (cast 2:18 (aura 2:21 @t) (wing 2:24 x))))
8+ (value 3:1 separate
9+ (gate 3:13
10+ (face 3:16 x
11+ (cell 3:18 (hole 3:19) (hole 3:21)))
12+ (cast 3:24
13+ (cell 3:27 (aura 3:28 @t) (aura 3:31 @p))
14+ (wing 3:35 x))))
15+ (value 4:1 decimal
16+ (cast 4:12 (hole 4:15) (lit 4:17 1)))
17+ (value 5:1 atom
18+ (gate 5:9
19+ (face 5:12 x (aura 5:14 @))
20+ (cast 5:16 (hole 5:19) (wing 5:21 x))))
21+ (value 6:1 unresolved-tag
22+ (cast 6:19 (hole 6:22) (lit 6:24 %foo))))
tests/golden/types-hole-concrete/types.txtnew file+10
@@ -0,0 +1,10 @@
1+partial inference; module not checked
2+++ cast: @t
3+++ sample: $-(@t @t)
4+++ separate: $-([@t @p] [@t @p])
5+++ decimal: @ud
6+++ atom: $-(@ @)
7+++ unresolved-tag: type hole needs unsupported inference
8+/tests/golden/types-hole-concrete/source.jibb:6:22: type hole
9+++ unresolved-tag ^- _ %foo
10+ ^
tests/golden/types-hole-generic-mold/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Types and molds: named molds must determine their own holes.
2+tests: A declared generic parameter does not determine a separate hole in the same record, and later application cannot repair it.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-hole-generic-mold/source.jibbnew file+2
@@ -0,0 +1,2 @@
1++$ generic |$ [A] [left=A right=_]
2+++ later |= x=(generic @t) x
tests/golden/types-hole-generic-mold/tokens.txtnew file+26
@@ -0,0 +1,26 @@
1+1:1 glyph +$
2+1:4 name generic
3+1:12 glyph |$
4+1:15 glyph [
5+1:16 tight tvar A
6+1:17 tight glyph ]
7+1:19 glyph [
8+1:20 tight name left
9+1:24 tight glyph =
10+1:25 tight tvar A
11+1:27 name right
12+1:32 tight glyph =
13+1:33 tight glyph _
14+1:34 tight glyph ]
15+2:1 NEWLINE
16+2:1 glyph ++
17+2:4 name later
18+2:10 glyph |=
19+2:13 name x
20+2:14 tight glyph =
21+2:15 tight glyph (
22+2:16 tight name generic
23+2:24 aura @t
24+2:26 tight glyph )
25+2:28 name x
26+2:29 NEWLINE
tests/golden/types-hole-generic-mold/tree.txtnew file+11
@@ -0,0 +1,11 @@
1+(module
2+ (mold 1:1 generic
3+ (generic 1:12 A
4+ (cell 1:19
5+ (face 1:20 left (tvar 1:25 A))
6+ (face 1:27 right (hole 1:33)))))
7+ (value 2:1 later
8+ (gate 2:10
9+ (face 2:13 x
10+ (apply 2:15 generic (aura 2:24 @t)))
11+ (wing 2:28 x))))
tests/golden/types-hole-generic-mold/types.txtnew file+6
@@ -0,0 +1,6 @@
1+partial inference; module not checked
2++$ generic: type hole needs a determined type
3+/tests/golden/types-hole-generic-mold/source.jibb:1:33: unresolved type hole
4++$ generic |$ [A] [left=A right=_]
5+ ^
6+++ later: sample mold is not supported by partial inference
tests/golden/types-hole-local-boundary/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Types and molds: a definition must determine its own type holes.
2+tests: Local definition boundaries, unused locals, a locally solved hole, and recursive groups.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-hole-local-boundary/source.jibbnew file+16
@@ -0,0 +1,16 @@
1+++ later
2+ ++ id |= x=_ x
3+ (id "hello")
4+++ ignored |= x=@t
5+ ++ id |= y=_ y
6+ x
7+++ resolved
8+ ++ id |= x=_ ^- @t x
9+ (id "hello")
10+++ self |= x=_ (self x)
11+++ mutual
12+ ++ left |= x=_ (right x)
13+ ++ right |= x=_ (left x)
14+ (left "hello")
15+++ grouped-a |= x=_ (grouped-b x)
16+++ grouped-b |= x=@t (grouped-a x)
tests/golden/types-hole-local-boundary/tokens.txtnew file+118
@@ -0,0 +1,118 @@
1+1:1 glyph ++
2+1:4 name later
3+2:3 INDENT
4+2:3 glyph ++
5+2:6 name id
6+2:9 glyph |=
7+2:12 name x
8+2:13 tight glyph =
9+2:14 tight glyph _
10+2:16 name x
11+3:3 NEWLINE
12+3:3 glyph (
13+3:4 tight name id
14+3:7 str "hello"
15+3:14 tight glyph )
16+4:1 DEDENT
17+4:1 NEWLINE
18+4:1 glyph ++
19+4:4 name ignored
20+4:12 glyph |=
21+4:15 name x
22+4:16 tight glyph =
23+4:17 tight aura @t
24+5:3 INDENT
25+5:3 glyph ++
26+5:6 name id
27+5:9 glyph |=
28+5:12 name y
29+5:13 tight glyph =
30+5:14 tight glyph _
31+5:16 name y
32+6:3 NEWLINE
33+6:3 name x
34+7:1 DEDENT
35+7:1 NEWLINE
36+7:1 glyph ++
37+7:4 name resolved
38+8:3 INDENT
39+8:3 glyph ++
40+8:6 name id
41+8:9 glyph |=
42+8:12 name x
43+8:13 tight glyph =
44+8:14 tight glyph _
45+8:16 glyph ^-
46+8:19 aura @t
47+8:22 name x
48+9:3 NEWLINE
49+9:3 glyph (
50+9:4 tight name id
51+9:7 str "hello"
52+9:14 tight glyph )
53+10:1 DEDENT
54+10:1 NEWLINE
55+10:1 glyph ++
56+10:4 name self
57+10:9 glyph |=
58+10:12 name x
59+10:13 tight glyph =
60+10:14 tight glyph _
61+10:16 glyph (
62+10:17 tight name self
63+10:22 name x
64+10:23 tight glyph )
65+11:1 NEWLINE
66+11:1 glyph ++
67+11:4 name mutual
68+12:3 INDENT
69+12:3 glyph ++
70+12:6 name left
71+12:11 glyph |=
72+12:14 name x
73+12:15 tight glyph =
74+12:16 tight glyph _
75+12:18 glyph (
76+12:19 tight name right
77+12:25 name x
78+12:26 tight glyph )
79+13:3 NEWLINE
80+13:3 glyph ++
81+13:6 name right
82+13:12 glyph |=
83+13:15 name x
84+13:16 tight glyph =
85+13:17 tight glyph _
86+13:19 glyph (
87+13:20 tight name left
88+13:25 name x
89+13:26 tight glyph )
90+14:3 NEWLINE
91+14:3 glyph (
92+14:4 tight name left
93+14:9 str "hello"
94+14:16 tight glyph )
95+15:1 DEDENT
96+15:1 NEWLINE
97+15:1 glyph ++
98+15:4 name grouped-a
99+15:14 glyph |=
100+15:17 name x
101+15:18 tight glyph =
102+15:19 tight glyph _
103+15:21 glyph (
104+15:22 tight name grouped-b
105+15:32 name x
106+15:33 tight glyph )
107+16:1 NEWLINE
108+16:1 glyph ++
109+16:4 name grouped-b
110+16:14 glyph |=
111+16:17 name x
112+16:18 tight glyph =
113+16:19 tight aura @t
114+16:22 glyph (
115+16:23 tight name grouped-a
116+16:33 name x
117+16:34 tight glyph )
118+16:35 NEWLINE
tests/golden/types-hole-local-boundary/tree.txtnew file+55
@@ -0,0 +1,55 @@
1+(module
2+ (value 1:1 later
3+ (body 2:3
4+ (value 2:3 id
5+ (gate 2:9
6+ (face 2:12 x (hole 2:14))
7+ (wing 2:16 x)))
8+ (group 3:3
9+ (call 3:4 (wing 3:4 id) (str 3:7 "hello")))))
10+ (value 4:1 ignored
11+ (gate 4:12
12+ (face 4:15 x (aura 4:17 @t))
13+ (body 5:3
14+ (value 5:3 id
15+ (gate 5:9
16+ (face 5:12 y (hole 5:14))
17+ (wing 5:16 y)))
18+ (wing 6:3 x))))
19+ (value 7:1 resolved
20+ (body 8:3
21+ (value 8:3 id
22+ (gate 8:9
23+ (face 8:12 x (hole 8:14))
24+ (cast 8:16 (aura 8:19 @t) (wing 8:22 x))))
25+ (group 9:3
26+ (call 9:4 (wing 9:4 id) (str 9:7 "hello")))))
27+ (value 10:1 self
28+ (gate 10:9
29+ (face 10:12 x (hole 10:14))
30+ (group 10:16
31+ (call 10:17 (wing 10:17 self) (wing 10:22 x)))))
32+ (value 11:1 mutual
33+ (body 12:3
34+ (value 12:3 left
35+ (gate 12:11
36+ (face 12:14 x (hole 12:16))
37+ (group 12:18
38+ (call 12:19 (wing 12:19 right) (wing 12:25 x)))))
39+ (value 13:3 right
40+ (gate 13:12
41+ (face 13:15 x (hole 13:17))
42+ (group 13:19
43+ (call 13:20 (wing 13:20 left) (wing 13:25 x)))))
44+ (group 14:3
45+ (call 14:4 (wing 14:4 left) (str 14:9 "hello")))))
46+ (value 15:1 grouped-a
47+ (gate 15:14
48+ (face 15:17 x (hole 15:19))
49+ (group 15:21
50+ (call 15:22 (wing 15:22 grouped-b) (wing 15:32 x)))))
51+ (value 16:1 grouped-b
52+ (gate 16:14
53+ (face 16:17 x (aura 16:19 @t))
54+ (group 16:22
55+ (call 16:23 (wing 16:23 grouped-a) (wing 16:33 x))))))
tests/golden/types-hole-local-boundary/types.txtnew file+17
@@ -0,0 +1,17 @@
1+partial inference; module not checked
2+++ later: type hole needs a determined type
3+/tests/golden/types-hole-local-boundary/source.jibb:2:14: unresolved type hole
4+ ++ id |= x=_ x
5+ ^
6+++ ignored: type hole needs a determined type
7+/tests/golden/types-hole-local-boundary/source.jibb:5:14: unresolved type hole
8+ ++ id |= y=_ y
9+ ^
10+++ resolved: @t
11+++ self: type hole needs a determined type
12+/tests/golden/types-hole-local-boundary/source.jibb:10:14: unresolved type hole
13+++ self |= x=_ (self x)
14+ ^
15+++ mutual: local definitions need unsupported inference
16+++ grouped-a: name is not available to partial inference
17+++ grouped-b: name is not available to partial inference
tests/golden/types-hole-module-boundary/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Types and molds: a definition must determine its own type holes.
2+tests: A module export cannot generalize an unresolved hole that the importing call later fixes.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-hole-module-boundary/module-trees.txtnew file+6
@@ -0,0 +1,6 @@
1+/ui/lib.jibb
2+(module
3+ (value 1:1 id
4+ (gate 1:7
5+ (face 1:10 x (hole 1:12))
6+ (wing 1:14 x))))
tests/golden/types-hole-module-boundary/modules.txtnew file+1
@@ -0,0 +1 @@
1+/ui/lib.jibb
tests/golden/types-hole-module-boundary/modules/ui/lib.jibbnew file+1
@@ -0,0 +1 @@
1+++ id |= x=_ x
tests/golden/types-hole-module-boundary/source.jibbnew file+2
@@ -0,0 +1,2 @@
1+/= lib /ui/lib
2+++ use (id.lib "hello")
tests/golden/types-hole-module-boundary/tokens.txtnew file+14
@@ -0,0 +1,14 @@
1+1:1 glyph /=
2+1:4 name lib
3+1:8 glyph /
4+1:9 tight knot ui
5+1:11 tight glyph /
6+1:12 tight knot lib
7+2:1 NEWLINE
8+2:1 glyph ++
9+2:4 name use
10+2:8 glyph (
11+2:9 tight wing id.lib
12+2:16 str "hello"
13+2:23 tight glyph )
14+2:24 NEWLINE
tests/golden/types-hole-module-boundary/tree.txtnew file+5
@@ -0,0 +1,5 @@
1+(module
2+ (jibb 1:1 lib /ui/lib)
3+ (value 2:1 use
4+ (group 2:8
5+ (call 2:9 (wing 2:9 id.lib) (str 2:16 "hello")))))
tests/golden/types-hole-module-boundary/types.txtnew file+2
@@ -0,0 +1,2 @@
1+partial inference; module not checked
2+module definitions need unsupported inference: /ui/lib/jibb
tests/golden/types-hole-named-complex/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Types and molds: a definition must determine its own type holes.
2+tests: An applied named mold containing a hole must not be repaired by its use; partial analysis may fail closed.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-hole-named-complex/source.jibbnew file+2
@@ -0,0 +1,2 @@
1++$ applied (list _)
2+++ later |= x=applied ^- (list @t) x
tests/golden/types-hole-named-complex/tokens.txtnew file+20
@@ -0,0 +1,20 @@
1+1:1 glyph +$
2+1:4 name applied
3+1:12 glyph (
4+1:13 tight name list
5+1:18 glyph _
6+1:19 tight glyph )
7+2:1 NEWLINE
8+2:1 glyph ++
9+2:4 name later
10+2:10 glyph |=
11+2:13 name x
12+2:14 tight glyph =
13+2:15 tight name applied
14+2:23 glyph ^-
15+2:26 glyph (
16+2:27 tight name list
17+2:32 aura @t
18+2:34 tight glyph )
19+2:36 name x
20+2:37 NEWLINE
tests/golden/types-hole-named-complex/tree.txtnew file+9
@@ -0,0 +1,9 @@
1+(module
2+ (mold 1:1 applied
3+ (apply 1:12 list (hole 1:18)))
4+ (value 2:1 later
5+ (gate 2:10
6+ (face 2:13 x (ref 2:15 applied))
7+ (cast 2:23
8+ (apply 2:26 list (aura 2:32 @t))
9+ (wing 2:36 x)))))
tests/golden/types-hole-named-complex/types.txtnew file+3
@@ -0,0 +1,3 @@
1+partial inference; module not checked
2++$ applied: not checked
3+++ later: sample mold is not supported by partial inference
tests/golden/types-hole-numeric-capture/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Types and molds: a definition must determine its own type holes.
2+tests: Decimal defaults and ordering when a hole shares a written or captured variable, plus discarded pending expressions.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-hole-numeric-capture/source.jibbnew file+19
@@ -0,0 +1,19 @@
1+++ same |= [a=A b=A] a
2+++ independent ^- _ 1
3+++ first |= x=A ^- _ (same x 1)
4+++ second |= x=A ^- _ (same 1 x)
5+++ capture |= x
6+ ++ local ^- _ (same x 1)
7+ ^- @ux x
8+++ local-independent |= x=@t
9+ ++ local ^- _ 1
10+ x
11+++ unresolved-tag
12+ ~& %orphan
13+ ^- _ 1
14+++ discarded-number
15+ ~& 1
16+ ^- _ "hello"
17+++ captured-second |= x
18+ ++ local ^- _ (same 1 x)
19+ ^- @ux x
tests/golden/types-hole-numeric-capture/tokens.txtnew file+127
@@ -0,0 +1,127 @@
1+1:1 glyph ++
2+1:4 name same
3+1:9 glyph |=
4+1:12 glyph [
5+1:13 tight name a
6+1:14 tight glyph =
7+1:15 tight tvar A
8+1:17 name b
9+1:18 tight glyph =
10+1:19 tight tvar A
11+1:20 tight glyph ]
12+1:22 name a
13+2:1 NEWLINE
14+2:1 glyph ++
15+2:4 name independent
16+2:16 glyph ^-
17+2:19 glyph _
18+2:21 lit 1
19+3:1 NEWLINE
20+3:1 glyph ++
21+3:4 name first
22+3:10 glyph |=
23+3:13 name x
24+3:14 tight glyph =
25+3:15 tight tvar A
26+3:17 glyph ^-
27+3:20 glyph _
28+3:22 glyph (
29+3:23 tight name same
30+3:28 name x
31+3:30 lit 1
32+3:31 tight glyph )
33+4:1 NEWLINE
34+4:1 glyph ++
35+4:4 name second
36+4:11 glyph |=
37+4:14 name x
38+4:15 tight glyph =
39+4:16 tight tvar A
40+4:18 glyph ^-
41+4:21 glyph _
42+4:23 glyph (
43+4:24 tight name same
44+4:29 lit 1
45+4:31 name x
46+4:32 tight glyph )
47+5:1 NEWLINE
48+5:1 glyph ++
49+5:4 name capture
50+5:12 glyph |=
51+5:15 name x
52+6:3 INDENT
53+6:3 glyph ++
54+6:6 name local
55+6:12 glyph ^-
56+6:15 glyph _
57+6:17 glyph (
58+6:18 tight name same
59+6:23 name x
60+6:25 lit 1
61+6:26 tight glyph )
62+7:3 NEWLINE
63+7:3 glyph ^-
64+7:6 aura @ux
65+7:10 name x
66+8:1 DEDENT
67+8:1 NEWLINE
68+8:1 glyph ++
69+8:4 name local-independent
70+8:22 glyph |=
71+8:25 name x
72+8:26 tight glyph =
73+8:27 tight aura @t
74+9:3 INDENT
75+9:3 glyph ++
76+9:6 name local
77+9:12 glyph ^-
78+9:15 glyph _
79+9:17 lit 1
80+10:3 NEWLINE
81+10:3 name x
82+11:1 DEDENT
83+11:1 NEWLINE
84+11:1 glyph ++
85+11:4 name unresolved-tag
86+12:3 INDENT
87+12:3 glyph ~&
88+12:6 lit %orphan
89+13:5 INDENT
90+13:5 glyph ^-
91+13:8 glyph _
92+13:10 lit 1
93+14:1 DEDENT
94+14:1 DEDENT
95+14:1 NEWLINE
96+14:1 glyph ++
97+14:4 name discarded-number
98+15:3 INDENT
99+15:3 glyph ~&
100+15:6 lit 1
101+16:5 INDENT
102+16:5 glyph ^-
103+16:8 glyph _
104+16:10 str "hello"
105+17:1 DEDENT
106+17:1 DEDENT
107+17:1 NEWLINE
108+17:1 glyph ++
109+17:4 name captured-second
110+17:20 glyph |=
111+17:23 name x
112+18:3 INDENT
113+18:3 glyph ++
114+18:6 name local
115+18:12 glyph ^-
116+18:15 glyph _
117+18:17 glyph (
118+18:18 tight name same
119+18:23 lit 1
120+18:25 name x
121+18:26 tight glyph )
122+19:3 NEWLINE
123+19:3 glyph ^-
124+19:6 aura @ux
125+19:10 name x
126+19:11 DEDENT
127+19:11 NEWLINE
tests/golden/types-hole-numeric-capture/tree.txtnew file+62
@@ -0,0 +1,62 @@
1+(module
2+ (value 1:1 same
3+ (gate 1:9
4+ (cell 1:12
5+ (face 1:13 a (tvar 1:15 A))
6+ (face 1:17 b (tvar 1:19 A)))
7+ (wing 1:22 a)))
8+ (value 2:1 independent
9+ (cast 2:16 (hole 2:19) (lit 2:21 1)))
10+ (value 3:1 first
11+ (gate 3:10
12+ (face 3:13 x (tvar 3:15 A))
13+ (cast 3:17
14+ (hole 3:20)
15+ (group 3:22
16+ (call 3:23 (wing 3:23 same) (wing 3:28 x) (lit 3:30 1))))))
17+ (value 4:1 second
18+ (gate 4:11
19+ (face 4:14 x (tvar 4:16 A))
20+ (cast 4:18
21+ (hole 4:21)
22+ (group 4:23
23+ (call 4:24 (wing 4:24 same) (lit 4:29 1) (wing 4:31 x))))))
24+ (value 5:1 capture
25+ (gate 5:12
26+ (bind 5:15 x)
27+ (body 6:3
28+ (value 6:3 local
29+ (cast 6:12
30+ (hole 6:15)
31+ (group 6:17
32+ (call 6:18 (wing 6:18 same) (wing 6:23 x) (lit 6:25 1)))))
33+ (cast 7:3 (aura 7:6 @ux) (wing 7:10 x)))))
34+ (value 8:1 local-independent
35+ (gate 8:22
36+ (face 8:25 x (aura 8:27 @t))
37+ (body 9:3
38+ (value 9:3 local
39+ (cast 9:12 (hole 9:15) (lit 9:17 1)))
40+ (wing 10:3 x))))
41+ (value 11:1 unresolved-tag
42+ (body 12:3
43+ (trace 12:3
44+ (lit 12:6 %orphan)
45+ (body 13:5
46+ (cast 13:5 (hole 13:8) (lit 13:10 1))))))
47+ (value 14:1 discarded-number
48+ (body 15:3
49+ (trace 15:3
50+ (lit 15:6 1)
51+ (body 16:5
52+ (cast 16:5 (hole 16:8) (str 16:10 "hello"))))))
53+ (value 17:1 captured-second
54+ (gate 17:20
55+ (bind 17:23 x)
56+ (body 18:3
57+ (value 18:3 local
58+ (cast 18:12
59+ (hole 18:15)
60+ (group 18:17
61+ (call 18:18 (wing 18:18 same) (lit 18:23 1) (wing 18:25 x)))))
62+ (cast 19:3 (aura 19:6 @ux) (wing 19:10 x))))))
tests/golden/types-hole-numeric-capture/types.txtnew file+10
@@ -0,0 +1,10 @@
1+partial inference; module not checked
2+++ same: $-([a=A b=A] A)
3+++ independent: @ud
4+++ first: call constraint is not supported by partial inference
5+++ second: call constraint is not supported by partial inference
6+++ capture: local definitions need unsupported inference
7+++ local-independent: $-(@t @t)
8+++ unresolved-tag: tag needs context in partial inference
9+++ discarded-number: @t
10+++ captured-second: local definitions need unsupported inference
tests/golden/types-hole-unbound-mold/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Types and molds: named molds must determine their own holes.
2+tests: An unbound capital prevents a definite structural-hole error until the invalid mold is otherwise understood.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-hole-unbound-mold/source.jibbnew file+2
@@ -0,0 +1,2 @@
1++$ invalid [left=A right=_]
2+++ later |= x=invalid x
tests/golden/types-hole-unbound-mold/tokens.txtnew file+19
@@ -0,0 +1,19 @@
1+1:1 glyph +$
2+1:4 name invalid
3+1:12 glyph [
4+1:13 tight name left
5+1:17 tight glyph =
6+1:18 tight tvar A
7+1:20 name right
8+1:25 tight glyph =
9+1:26 tight glyph _
10+1:27 tight glyph ]
11+2:1 NEWLINE
12+2:1 glyph ++
13+2:4 name later
14+2:10 glyph |=
15+2:13 name x
16+2:14 tight glyph =
17+2:15 tight name invalid
18+2:23 name x
19+2:24 NEWLINE
tests/golden/types-hole-unbound-mold/tree.txtnew file+9
@@ -0,0 +1,9 @@
1+(module
2+ (mold 1:1 invalid
3+ (cell 1:12
4+ (face 1:13 left (tvar 1:18 A))
5+ (face 1:20 right (hole 1:26))))
6+ (value 2:1 later
7+ (gate 2:10
8+ (face 2:13 x (ref 2:15 invalid))
9+ (wing 2:23 x))))
tests/golden/types-hole-unbound-mold/types.txtnew file+3
@@ -0,0 +1,3 @@
1+partial inference; module not checked
2++$ invalid: not checked
3+++ later: sample mold is not supported by partial inference
tests/golden/types-hole-unsupported/about.txt+2−2
@@ -1,4 +1,4 @@
1−source: Grammar, Types and molds: `_` is an inferred type hole.
1+source: Grammar, Types and molds: a value definition must determine its own type holes.
2−tests: Parsing accepts holes in samples and casts; the current partial inference explicitly reports those shapes unsupported.
2+tests: An unconstrained sample hole reports its source site, while a cast hole can resolve to @t from its expression.
3expect: parses
3expect: parses
4expect-types: a partial inference report
4expect-types: a partial inference report
tests/golden/types-hole-unsupported/types.txt+5−2
@@ -1,3 +1,6 @@
1partial inference; module not checked
1partial inference; module not checked
2−++ identity: sample mold is not supported by partial inference
2+++ identity: type hole needs a determined type
3−++ cast: cast mold is not supported by partial inference
3+/tests/golden/types-hole-unsupported/source.jibb:1:18: unresolved type hole
4+++ identity |= x=_ x
5+ ^
6+++ cast: @t
tests/golden/types-hole-user-generic/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Types and molds: a definition must determine its own type holes.
2+tests: The user’s `A` example and independent instantiations; one independent unresolved sample must not disappear.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-hole-user-generic/source.jibbnew file+6
@@ -0,0 +1,6 @@
1+++ id |= x=A ^- _ x
2+++ use-text (id "hello")
3+++ use-ship (id ~zod)
4+++ record |= x=A ^- [value=_] [value=x]
5+++ same |= [a=A b=_] ^- A b
6+++ distinct |= x=A |= y=_ ^- _ x
tests/golden/types-hole-user-generic/tokens.txtnew file+71
@@ -0,0 +1,71 @@
1+1:1 glyph ++
2+1:4 name id
3+1:7 glyph |=
4+1:10 name x
5+1:11 tight glyph =
6+1:12 tight tvar A
7+1:14 glyph ^-
8+1:17 glyph _
9+1:19 name x
10+2:1 NEWLINE
11+2:1 glyph ++
12+2:4 name use-text
13+2:13 glyph (
14+2:14 tight name id
15+2:17 str "hello"
16+2:24 tight glyph )
17+3:1 NEWLINE
18+3:1 glyph ++
19+3:4 name use-ship
20+3:13 glyph (
21+3:14 tight name id
22+3:17 lit ~zod
23+3:21 tight glyph )
24+4:1 NEWLINE
25+4:1 glyph ++
26+4:4 name record
27+4:11 glyph |=
28+4:14 name x
29+4:15 tight glyph =
30+4:16 tight tvar A
31+4:18 glyph ^-
32+4:21 glyph [
33+4:22 tight name value
34+4:27 tight glyph =
35+4:28 tight glyph _
36+4:29 tight glyph ]
37+4:31 glyph [
38+4:32 tight name value
39+4:37 tight glyph =
40+4:38 tight name x
41+4:39 tight glyph ]
42+5:1 NEWLINE
43+5:1 glyph ++
44+5:4 name same
45+5:9 glyph |=
46+5:12 glyph [
47+5:13 tight name a
48+5:14 tight glyph =
49+5:15 tight tvar A
50+5:17 name b
51+5:18 tight glyph =
52+5:19 tight glyph _
53+5:20 tight glyph ]
54+5:22 glyph ^-
55+5:25 tvar A
56+5:27 name b
57+6:1 NEWLINE
58+6:1 glyph ++
59+6:4 name distinct
60+6:13 glyph |=
61+6:16 name x
62+6:17 tight glyph =
63+6:18 tight tvar A
64+6:20 glyph |=
65+6:23 name y
66+6:24 tight glyph =
67+6:25 tight glyph _
68+6:27 glyph ^-
69+6:30 glyph _
70+6:32 name x
71+6:33 NEWLINE
tests/golden/types-hole-user-generic/tree.txtnew file+31
@@ -0,0 +1,31 @@
1+(module
2+ (value 1:1 id
3+ (gate 1:7
4+ (face 1:10 x (tvar 1:12 A))
5+ (cast 1:14 (hole 1:17) (wing 1:19 x))))
6+ (value 2:1 use-text
7+ (group 2:13
8+ (call 2:14 (wing 2:14 id) (str 2:17 "hello"))))
9+ (value 3:1 use-ship
10+ (group 3:13
11+ (call 3:14 (wing 3:14 id) (lit 3:17 ~zod))))
12+ (value 4:1 record
13+ (gate 4:11
14+ (face 4:14 x (tvar 4:16 A))
15+ (cast 4:18
16+ (cell 4:21
17+ (face 4:22 value (hole 4:28)))
18+ (tuple 4:31
19+ (face 4:32 value (wing 4:38 x))))))
20+ (value 5:1 same
21+ (gate 5:9
22+ (cell 5:12
23+ (face 5:13 a (tvar 5:15 A))
24+ (face 5:17 b (hole 5:19)))
25+ (cast 5:22 (tvar 5:25 A) (wing 5:27 b))))
26+ (value 6:1 distinct
27+ (gate 6:13
28+ (face 6:16 x (tvar 6:18 A))
29+ (gate 6:20
30+ (face 6:23 y (hole 6:25))
31+ (cast 6:27 (hole 6:30) (wing 6:32 x))))))
tests/golden/types-hole-user-generic/types.txtnew file+10
@@ -0,0 +1,10 @@
1+partial inference; module not checked
2+++ id: $-(A A)
3+++ use-text: @t
4+++ use-ship: @p
5+++ record: $-(A [value=A])
6+++ same: $-([a=A b=A] A)
7+++ distinct: type hole needs a determined type
8+/tests/golden/types-hole-user-generic/source.jibb:6:25: unresolved type hole
9+++ distinct |= x=A |= y=_ ^- _ x
10+ ^
tests/golden/types-hole-user-named/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Types and molds: a definition must determine its own type holes.
2+tests: The user’s `[item=_]` named mold remains unresolved even if a later use supplies @t.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-hole-user-named/source.jibbnew file+2
@@ -0,0 +1,2 @@
1++$ box [item=_]
2+++ later |= x=box ^- [item=@t] x
tests/golden/types-hole-user-named/tokens.txtnew file+22
@@ -0,0 +1,22 @@
1+1:1 glyph +$
2+1:4 name box
3+1:8 glyph [
4+1:9 tight name item
5+1:13 tight glyph =
6+1:14 tight glyph _
7+1:15 tight glyph ]
8+2:1 NEWLINE
9+2:1 glyph ++
10+2:4 name later
11+2:10 glyph |=
12+2:13 name x
13+2:14 tight glyph =
14+2:15 tight name box
15+2:19 glyph ^-
16+2:22 glyph [
17+2:23 tight name item
18+2:27 tight glyph =
19+2:28 tight aura @t
20+2:30 tight glyph ]
21+2:32 name x
22+2:33 NEWLINE
tests/golden/types-hole-user-named/tree.txtnew file+11
@@ -0,0 +1,11 @@
1+(module
2+ (mold 1:1 box
3+ (cell 1:8
4+ (face 1:9 item (hole 1:14))))
5+ (value 2:1 later
6+ (gate 2:10
7+ (face 2:13 x (ref 2:15 box))
8+ (cast 2:19
9+ (cell 2:22
10+ (face 2:23 item (aura 2:28 @t)))
11+ (wing 2:32 x)))))
tests/golden/types-hole-user-named/types.txtnew file+6
@@ -0,0 +1,6 @@
1+partial inference; module not checked
2++$ box: type hole needs a determined type
3+/tests/golden/types-hole-user-named/source.jibb:1:14: unresolved type hole
4++$ box [item=_]
5+ ^
6+++ later: sample mold is not supported by partial inference
tests/golden/types-hole-user-value/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Types and molds: a definition must determine its own type holes.
2+tests: An identity with an unconstrained hole stays invalid even when a later definition calls it with a cord.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-hole-user-value/source.jibbnew file+3
@@ -0,0 +1,3 @@
1+++ id |= x=_ x
2+++ later (id "hello")
3+++ independent ^- _ "resolved"
tests/golden/types-hole-user-value/tokens.txtnew file+21
@@ -0,0 +1,21 @@
1+1:1 glyph ++
2+1:4 name id
3+1:7 glyph |=
4+1:10 name x
5+1:11 tight glyph =
6+1:12 tight glyph _
7+1:14 name x
8+2:1 NEWLINE
9+2:1 glyph ++
10+2:4 name later
11+2:10 glyph (
12+2:11 tight name id
13+2:14 str "hello"
14+2:21 tight glyph )
15+3:1 NEWLINE
16+3:1 glyph ++
17+3:4 name independent
18+3:16 glyph ^-
19+3:19 glyph _
20+3:21 str "resolved"
21+3:31 NEWLINE
tests/golden/types-hole-user-value/tree.txtnew file+10
@@ -0,0 +1,10 @@
1+(module
2+ (value 1:1 id
3+ (gate 1:7
4+ (face 1:10 x (hole 1:12))
5+ (wing 1:14 x)))
6+ (value 2:1 later
7+ (group 2:10
8+ (call 2:11 (wing 2:11 id) (str 2:14 "hello"))))
9+ (value 3:1 independent
10+ (cast 3:16 (hole 3:19) (str 3:21 "resolved"))))
tests/golden/types-hole-user-value/types.txtnew file+7
@@ -0,0 +1,7 @@
1+partial inference; module not checked
2+++ id: type hole needs a determined type
3+/tests/golden/types-hole-user-value/source.jibb:1:12: unresolved type hole
4+++ id |= x=_ x
5+ ^
6+++ later: name is not available to partial inference
7+++ independent: @t
tests/golden/types-prelude-list-alias/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Types and molds: named generic molds and the source-backed prelude.
2+tests: The verified prelude list is available to path, tape and their dependent aliases; a generic list alias has independent @t and @p uses and rejects an incompatible item.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-prelude-list-alias/modules.txtnew file+1
@@ -0,0 +1 @@
1+# Use the source-backed prelude for this case.
tests/golden/types-prelude-list-alias/source.jibbnew file+7
@@ -0,0 +1,7 @@
1++$ bag |$ [A] (list A)
2+++ path-id |= x=path x
3+++ tape-id |= x=tape x
4+++ spot-id |= x=spot x
5+++ text |= x=(bag @t) x
6+++ ship |= x=(bag @p) x
7+++ wrong ^- (bag @t) ~[~zod]
tests/golden/types-prelude-list-alias/tokens.txtnew file+68
@@ -0,0 +1,68 @@
1+1:1 glyph +$
2+1:4 name bag
3+1:8 glyph |$
4+1:11 glyph [
5+1:12 tight tvar A
6+1:13 tight glyph ]
7+1:15 glyph (
8+1:16 tight name list
9+1:21 tvar A
10+1:22 tight glyph )
11+2:1 NEWLINE
12+2:1 glyph ++
13+2:4 name path-id
14+2:12 glyph |=
15+2:15 name x
16+2:16 tight glyph =
17+2:17 tight name path
18+2:22 name x
19+3:1 NEWLINE
20+3:1 glyph ++
21+3:4 name tape-id
22+3:12 glyph |=
23+3:15 name x
24+3:16 tight glyph =
25+3:17 tight name tape
26+3:22 name x
27+4:1 NEWLINE
28+4:1 glyph ++
29+4:4 name spot-id
30+4:12 glyph |=
31+4:15 name x
32+4:16 tight glyph =
33+4:17 tight name spot
34+4:22 name x
35+5:1 NEWLINE
36+5:1 glyph ++
37+5:4 name text
38+5:9 glyph |=
39+5:12 name x
40+5:13 tight glyph =
41+5:14 tight glyph (
42+5:15 tight name bag
43+5:19 aura @t
44+5:21 tight glyph )
45+5:23 name x
46+6:1 NEWLINE
47+6:1 glyph ++
48+6:4 name ship
49+6:9 glyph |=
50+6:12 name x
51+6:13 tight glyph =
52+6:14 tight glyph (
53+6:15 tight name bag
54+6:19 aura @p
55+6:21 tight glyph )
56+6:23 name x
57+7:1 NEWLINE
58+7:1 glyph ++
59+7:4 name wrong
60+7:10 glyph ^-
61+7:13 glyph (
62+7:14 tight name bag
63+7:18 aura @t
64+7:20 tight glyph )
65+7:22 glyph ~[
66+7:24 tight lit ~zod
67+7:28 tight glyph ]
68+7:29 NEWLINE
tests/golden/types-prelude-list-alias/tree.txtnew file+30
@@ -0,0 +1,30 @@
1+(module
2+ (mold 1:1 bag
3+ (generic 1:8 A
4+ (apply 1:15 list (tvar 1:21 A))))
5+ (value 2:1 path-id
6+ (gate 2:12
7+ (face 2:15 x (ref 2:17 path))
8+ (wing 2:22 x)))
9+ (value 3:1 tape-id
10+ (gate 3:12
11+ (face 3:15 x (ref 3:17 tape))
12+ (wing 3:22 x)))
13+ (value 4:1 spot-id
14+ (gate 4:12
15+ (face 4:15 x (ref 4:17 spot))
16+ (wing 4:22 x)))
17+ (value 5:1 text
18+ (gate 5:9
19+ (face 5:12 x
20+ (apply 5:14 bag (aura 5:19 @t)))
21+ (wing 5:23 x)))
22+ (value 6:1 ship
23+ (gate 6:9
24+ (face 6:12 x
25+ (apply 6:14 bag (aura 6:19 @p)))
26+ (wing 6:23 x)))
27+ (value 7:1 wrong
28+ (cast 7:10
29+ (apply 7:13 bag (aura 7:18 @t))
30+ (list 7:22 (lit 7:24 ~zod)))))
tests/golden/types-prelude-list-alias/types.txtnew file+14
@@ -0,0 +1,14 @@
1+partial inference; module not checked
2++$ bag: not checked
3+++ path-id: $-((list @ta) (list @ta))
4+++ tape-id: $-((list @tD) (list @tD))
5+++ spot-id: $-([p=(list @ta) q=[p=[p=@ q=@] q=[p=@ q=@]]] [p=(list @ta) q=[p=[p=@ q=@] q=[p=@ q=@]]])
6+++ text: $-((list @t) (list @t))
7+++ ship: $-((list @p) (list @p))
8+++ wrong: list item does not fit its expected type
9+/tests/golden/types-prelude-list-alias/source.jibb:7:13: expected item has type @t
10+++ wrong ^- (bag @t) ~[~zod]
11+ ^
12+/tests/golden/types-prelude-list-alias/source.jibb:7:24: list item has type @p
13+++ wrong ^- (bag @t) ~[~zod]
14+ ^
tests/lib/jibb-hole-guards.hoonnew file+77
@@ -0,0 +1,77 @@
1+:: Verify hole defaulting and API fail-closed boundaries under eval and ship.
2+/+ jibb
3+/* real-prelude %jibb /lib/jibb/prelude/jibb
4+/* real-internal %jibb /lib/jibb/internal/jibb
5+|%
6+++ hole-guard-errors
7+ ^- (list tape)
8+ =/ base=istate:jibb *istate:jibb
9+ =. base base(sub ~[[0 [%nvar 1]]], holes ~[[0 *span:jibb]], next 2)
10+ =/ env=ienv:jibb ~[[%outer [[%var 1] ~]]]
11+ =/ guarded=istate:jibb (default-hole-numbers:jibb holes.base ~ base env &)
12+ =/ independent=istate:jibb (default-hole-numbers:jibb holes.base ~ base ~ &)
13+ =/ explicit=istate:jibb base(caps ~[['A' 1 *span:jibb]])
14+ =/ named=istate:jibb (default-hole-numbers:jibb holes.explicit ~ explicit ~ &)
15+ =/ failures=(list tape) ~
16+ =? failures !?=(~ (itype-lookup:jibb 1 sub.guarded))
17+ ["a captured numeric variable was defaulted" failures]
18+ =? failures !?=([~ [%atom %ud]] (itype-lookup:jibb 1 sub.independent))
19+ ["an independent numeric variable did not default to @ud" failures]
20+ =? failures !?=(~ (itype-lookup:jibb 1 sub.named))
21+ ["a written-capital numeric variable was defaulted" failures]
22+ :: A named-mold hole is definite only in a valid generic scope.
23+ =/ hole=shape:jibb [%hole *span:jibb ~]
24+ =/ outer=shape:jibb [%generic *span:jibb ~['A'] [%fn *span:jibb [%tvar *span:jibb 'A'] hole]]
25+ =/ empty=shape:jibb [%generic *span:jibb ~ hole]
26+ =/ dup=shape:jibb [%generic *span:jibb ~['A' 'A'] hole]
27+ =/ shadow=shape:jibb [%generic *span:jibb ~['A'] [%generic *span:jibb ~['A'] hole]]
28+ =/ fresh=shape:jibb [%generic *span:jibb ~['A'] [%generic *span:jibb ~['B'] [%fn *span:jibb [%tvar *span:jibb 'A'] hole]]]
29+ =/ unbound=shape:jibb [%generic *span:jibb ~['A'] [%fn *span:jibb [%tvar *span:jibb 'B'] hole]]
30+ =? failures !?=([~ [~ *]] (simple-mold-hole:jibb outer))
31+ ["a valid generic structural hole was not detected" failures]
32+ =? failures ?=(^ (simple-mold-hole:jibb empty))
33+ ["an empty generic parameter scope reported a definite hole" failures]
34+ =? failures ?=(^ (simple-mold-hole:jibb dup))
35+ ["duplicate generic parameters reported a definite hole" failures]
36+ =? failures ?=(^ (simple-mold-hole:jibb shadow))
37+ ["a shadowed generic parameter reported a definite hole" failures]
38+ =? failures ?=(^ (simple-mold-hole:jibb fresh))
39+ ["a nested generic scope reported a definite hole" failures]
40+ =? failures ?=(^ (simple-mold-hole:jibb unbound))
41+ ["an unbound capital reported a definite hole" failures]
42+ =/ path-good=@t (crip "/% %todo\0a+$ paths [%one /one todo]\0a")
43+ =/ path-bad=@t (cat 3 path-good '+$ unused [a=_]\0a')
44+ =/ path-value=@t (cat 3 path-good '++ unused |= x=_ x\0a')
45+ =/ g=(each module:jibb error:jibb) (parse:jibb /ui/api/demo/jibb path-good)
46+ =/ b=(each module:jibb error:jibb) (parse:jibb /ui/api/demo/jibb path-bad)
47+ =/ v=(each module:jibb error:jibb) (parse:jibb /ui/api/demo/jibb path-value)
48+ ?. &(?=(%& -.g) ?=(%& -.b) ?=(%& -.v))
49+ ["API path control sources did not parse" failures]
50+ =/ ext=imark-externals:jibb ~[[%todo [%& [%atom %t ~]]]]
51+ =? failures ?=(~ (api-path-analysis:jibb p.g ext ~ ~))
52+ ["a valid API path was rejected" failures]
53+ =? failures ?=(^ (api-path-analysis:jibb p.b ext ~ ~))
54+ ["an API path ignored an unused mold hole" failures]
55+ =? failures ?=(^ (api-path-analysis:jibb p.v ext ~ ~))
56+ ["an API path ignored an unused value hole" failures]
57+ =/ prepared=(unit iprelude:jibb) (prepare-prelude-with-internal:jibb real-prelude real-internal)
58+ ?~ prepared ["actual prelude was not prepared" failures]
59+ =/ poke-good=@t (crip "/% %todo\0a+$ poke todo\0a")
60+ =/ poke-bad=@t (cat 3 poke-good '+$ unused [a=_]\0a')
61+ =/ poke-value=@t (cat 3 poke-good '++ unused |= x=_ x\0a')
62+ =/ pg=(each module:jibb error:jibb) (parse:jibb /ui/api/demo/jibb poke-good)
63+ =/ pb=(each module:jibb error:jibb) (parse:jibb /ui/api/demo/jibb poke-bad)
64+ =/ pv=(each module:jibb error:jibb) (parse:jibb /ui/api/demo/jibb poke-value)
65+ ?. &(?=(%& -.pg) ?=(%& -.pb) ?=(%& -.pv))
66+ ["API poke control sources did not parse" failures]
67+ =? failures ?=(~ (api-poke-interface:jibb /ui/api/demo/jibb p.pg ext values.u.prepared molds.u.prepared `iface.u.prepared))
68+ ["a valid API poke interface was rejected" failures]
69+ =? failures ?=(^ (api-poke-interface:jibb /ui/api/demo/jibb p.pb ext values.u.prepared molds.u.prepared `iface.u.prepared))
70+ ["an API poke interface ignored an unused mold hole" failures]
71+ =? failures ?=(^ (api-poke-interface:jibb /ui/api/demo/jibb p.pv ext values.u.prepared molds.u.prepared `iface.u.prepared))
72+ ["an API poke interface ignored an unused value hole" failures]
73+ (flop failures)
74+++ test-hole-guards
75+ ^- tang
76+ (turn hole-guard-errors |=(reason=tape leaf+reason))
77+--
tests/lib/jibb-list-alias-guards.hoonnew file+27
@@ -0,0 +1,27 @@
1+:: Compare source-backed list alias preparation under eval and ship.
2+/+ jibb
3+/* expected %txt /tests/type-list-alias/expected/txt
4+|%
5+++ list-alias-output
6+ ^- @t
7+ =/ src=@t (crip "++ text |= x=(alias @t) x\0a++ ship |= x=(alias @p) x\0a++ wrong ^- (alias @t) ~[~zod]\0a++ shadow |= x=(list @t)\0a +$ list @t\0a x\0a")
8+ =/ canonical=@t (crip "+$ list |$ [A]\0a ~\0a [i=A t=(list A)]\0a+$ bag |$ [A] (list A)\0a+$ alias |$ [A] (bag A)\0a")
9+ =/ altered=@t (crip "+$ list |$ [A] [A A]\0a+$ bag |$ [A] (list A)\0a+$ alias |$ [A] (bag A)\0a")
10+ =/ omitted=@t (crip "+$ bag |$ [A] (list A)\0a+$ alias |$ [A] (bag A)\0a")
11+ =/ duplicate=@t (crip "+$ list |$ [A]\0a ~\0a [i=A t=(list A)]\0a+$ list |$ [A] [A A]\0a+$ bag |$ [A] (list A)\0a+$ alias |$ [A] (bag A)\0a")
12+ =/ malformed=@t (crip "+$ list |$ [A]\0a ~\0a [i=A t=(list A)\0a")
13+ =/ cyclic=@t (crip "+$ list |$ [A]\0a ~\0a [i=A t=(list A)]\0a+$ bag |$ [A] (alias A)\0a+$ alias |$ [A] (bag A)\0a")
14+ =/ good (golden-types-with-prelude:jibb /ui/test/jibb src ~ ~ ~ canonical)
15+ =/ bad (golden-types-with-prelude:jibb /ui/test/jibb src ~ ~ ~ altered)
16+ =/ missing (golden-types-with-prelude:jibb /ui/test/jibb src ~ ~ ~ omitted)
17+ =/ repeated (golden-types-with-prelude:jibb /ui/test/jibb src ~ ~ ~ duplicate)
18+ =/ broken (golden-types-with-prelude:jibb /ui/test/jibb src ~ ~ ~ malformed)
19+ =/ cycle (golden-types-with-prelude:jibb /ui/test/jibb src ~ ~ ~ cyclic)
20+ (of-wain:format ~['canonical' good 'altered' bad 'omitted' missing 'duplicate' repeated 'malformed' broken 'cyclic' cycle])
21+++ test-list-alias-guards
22+ ^- tang
23+ ?~ expected ~[leaf+"list alias expected output is missing"]
24+ ?. =((to-wain:format (cat 3 list-alias-output '\0a')) expected)
25+ ~[leaf+"list alias preparation differs from its golden"]
26+ ~
27+--
tests/lib/jibb.hoon+934−866
@@ -1459,716 +1459,762 @@
1459/* mod-436-2 %jibb /tests/golden/types-generic-union-transitive/modules/ui/mid/jibb
1459/* mod-436-2 %jibb /tests/golden/types-generic-union-transitive/modules/ui/mid/jibb
1460/* typ-436 %txt /tests/golden/types-generic-union-transitive/types/txt
1460/* typ-436 %txt /tests/golden/types-generic-union-transitive/types/txt
1461/* mtre-436 %txt /tests/golden/types-generic-union-transitive/module-trees/txt
1461/* mtre-436 %txt /tests/golden/types-generic-union-transitive/module-trees/txt
1462−/* src-437 %jibb /tests/golden/types-hole-unsupported/source/jibb
1462+/* src-437 %jibb /tests/golden/types-hole-concrete/source/jibb
1463−/* tok-437 %txt /tests/golden/types-hole-unsupported/tokens/txt
1463+/* tok-437 %txt /tests/golden/types-hole-concrete/tokens/txt
1464−/* tre-437 %txt /tests/golden/types-hole-unsupported/tree/txt
1464+/* tre-437 %txt /tests/golden/types-hole-concrete/tree/txt
1465−/* typ-437 %txt /tests/golden/types-hole-unsupported/types/txt
1465+/* typ-437 %txt /tests/golden/types-hole-concrete/types/txt
1466−/* src-438 %jibb /tests/golden/types-import-duplicate-mark/source/jibb
1466+/* src-438 %jibb /tests/golden/types-hole-generic-mold/source/jibb
1467−/* tok-438 %txt /tests/golden/types-import-duplicate-mark/tokens/txt
1467+/* tok-438 %txt /tests/golden/types-hole-generic-mold/tokens/txt
1468−/* tre-438 %txt /tests/golden/types-import-duplicate-mark/tree/txt
1468+/* tre-438 %txt /tests/golden/types-hole-generic-mold/tree/txt
1469−/* typ-438 %txt /tests/golden/types-import-duplicate-mark/types/txt
1469+/* typ-438 %txt /tests/golden/types-hole-generic-mold/types/txt
1470−/* mark-438-1 %txt /tests/golden/types-import-duplicate-mark/mar/duplicate/txt
1470+/* src-439 %jibb /tests/golden/types-hole-local-boundary/source/jibb
1471−/* src-439 %jibb /tests/golden/types-import-duplicate-sur/source/jibb
1471+/* tok-439 %txt /tests/golden/types-hole-local-boundary/tokens/txt
1472−/* tok-439 %txt /tests/golden/types-import-duplicate-sur/tokens/txt
1472+/* tre-439 %txt /tests/golden/types-hole-local-boundary/tree/txt
1473−/* tre-439 %txt /tests/golden/types-import-duplicate-sur/tree/txt
1473+/* typ-439 %txt /tests/golden/types-hole-local-boundary/types/txt
1474−/* typ-439 %txt /tests/golden/types-import-duplicate-sur/types/txt
1474+/* src-440 %jibb /tests/golden/types-hole-module-boundary/source/jibb
1475−/* imp-439-1 %txt /tests/golden/types-import-duplicate-sur/sur/fixture/txt
1475+/* tok-440 %txt /tests/golden/types-hole-module-boundary/tokens/txt
1476−/* imp-439-2 %txt /tests/golden/types-import-duplicate-sur/sur/fixture/txt
1476+/* tre-440 %txt /tests/golden/types-hole-module-boundary/tree/txt
1477−/* imp-439-3 %txt /tests/golden/types-import-duplicate-sur/sur/fixture/txt
1477+/* mod-440-1 %jibb /tests/golden/types-hole-module-boundary/modules/ui/lib/jibb
1478−/* src-440 %jibb /tests/golden/types-import-hoon-flags/source/jibb
1478+/* typ-440 %txt /tests/golden/types-hole-module-boundary/types/txt
1479−/* tok-440 %txt /tests/golden/types-import-hoon-flags/tokens/txt
1479+/* mtre-440 %txt /tests/golden/types-hole-module-boundary/module-trees/txt
1480−/* tre-440 %txt /tests/golden/types-import-hoon-flags/tree/txt
1480+/* src-441 %jibb /tests/golden/types-hole-named-complex/source/jibb
1481−/* typ-440 %txt /tests/golden/types-import-hoon-flags/types/txt
1481+/* tok-441 %txt /tests/golden/types-hole-named-complex/tokens/txt
1482−/* imp-440-1 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1482+/* tre-441 %txt /tests/golden/types-hole-named-complex/tree/txt
1483−/* imp-440-2 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1483+/* typ-441 %txt /tests/golden/types-hole-named-complex/types/txt
1484−/* imp-440-3 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1484+/* src-442 %jibb /tests/golden/types-hole-numeric-capture/source/jibb
1485−/* imp-440-4 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1485+/* tok-442 %txt /tests/golden/types-hole-numeric-capture/tokens/txt
1486−/* src-441 %jibb /tests/golden/types-import-hoon-noun/source/jibb
1486+/* tre-442 %txt /tests/golden/types-hole-numeric-capture/tree/txt
1487−/* tok-441 %txt /tests/golden/types-import-hoon-noun/tokens/txt
1487+/* typ-442 %txt /tests/golden/types-hole-numeric-capture/types/txt
1488−/* tre-441 %txt /tests/golden/types-import-hoon-noun/tree/txt
1488+/* src-443 %jibb /tests/golden/types-hole-unbound-mold/source/jibb
1489−/* typ-441 %txt /tests/golden/types-import-hoon-noun/types/txt
1489+/* tok-443 %txt /tests/golden/types-hole-unbound-mold/tokens/txt
1490−/* imp-441-1 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1490+/* tre-443 %txt /tests/golden/types-hole-unbound-mold/tree/txt
1491−/* imp-441-2 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1491+/* typ-443 %txt /tests/golden/types-hole-unbound-mold/types/txt
1492−/* imp-441-3 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1492+/* src-444 %jibb /tests/golden/types-hole-unsupported/source/jibb
1493−/* imp-441-4 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1493+/* tok-444 %txt /tests/golden/types-hole-unsupported/tokens/txt
1494−/* src-442 %jibb /tests/golden/types-import-mark/source/jibb
1494+/* tre-444 %txt /tests/golden/types-hole-unsupported/tree/txt
1495−/* tok-442 %txt /tests/golden/types-import-mark/tokens/txt
1495+/* typ-444 %txt /tests/golden/types-hole-unsupported/types/txt
1496−/* tre-442 %txt /tests/golden/types-import-mark/tree/txt
1496+/* src-445 %jibb /tests/golden/types-hole-user-generic/source/jibb
1497−/* typ-442 %txt /tests/golden/types-import-mark/types/txt
1497+/* tok-445 %txt /tests/golden/types-hole-user-generic/tokens/txt
1498−/* imp-442-1 %txt /tests/golden/types-import-mark/sur/fixture/txt
1498+/* tre-445 %txt /tests/golden/types-hole-user-generic/tree/txt
1499−/* mark-442-1 %txt /tests/golden/types-import-mark/mar/label/txt
1499+/* typ-445 %txt /tests/golden/types-hole-user-generic/types/txt
1500−/* src-443 %jibb /tests/golden/types-import-mark-record/source/jibb
1500+/* src-446 %jibb /tests/golden/types-hole-user-named/source/jibb
1501−/* tok-443 %txt /tests/golden/types-import-mark-record/tokens/txt
1501+/* tok-446 %txt /tests/golden/types-hole-user-named/tokens/txt
1502−/* tre-443 %txt /tests/golden/types-import-mark-record/tree/txt
1502+/* tre-446 %txt /tests/golden/types-hole-user-named/tree/txt
1503−/* typ-443 %txt /tests/golden/types-import-mark-record/types/txt
1503+/* typ-446 %txt /tests/golden/types-hole-user-named/types/txt
1504−/* mark-443-1 %txt /tests/golden/types-import-mark-record/mar/note/txt
1504+/* src-447 %jibb /tests/golden/types-hole-user-value/source/jibb
1505−/* mark-443-2 %txt /tests/golden/types-import-mark-record/mar/choice/txt
1505+/* tok-447 %txt /tests/golden/types-hole-user-value/tokens/txt
1506−/* src-444 %jibb /tests/golden/types-import-missing-mold/source/jibb
1506+/* tre-447 %txt /tests/golden/types-hole-user-value/tree/txt
1507−/* tok-444 %txt /tests/golden/types-import-missing-mold/tokens/txt
1507+/* typ-447 %txt /tests/golden/types-hole-user-value/types/txt
1508−/* tre-444 %txt /tests/golden/types-import-missing-mold/tree/txt
1508+/* src-448 %jibb /tests/golden/types-import-duplicate-mark/source/jibb
1509−/* typ-444 %txt /tests/golden/types-import-missing-mold/types/txt
1509+/* tok-448 %txt /tests/golden/types-import-duplicate-mark/tokens/txt
1510−/* imp-444-1 %txt /tests/golden/types-import-missing-mold/sur/fixture/txt
1510+/* tre-448 %txt /tests/golden/types-import-duplicate-mark/tree/txt
1511−/* src-445 %jibb /tests/golden/types-import-sur/source/jibb
1511+/* typ-448 %txt /tests/golden/types-import-duplicate-mark/types/txt
1512−/* tok-445 %txt /tests/golden/types-import-sur/tokens/txt
1512+/* mark-448-1 %txt /tests/golden/types-import-duplicate-mark/mar/duplicate/txt
1513−/* tre-445 %txt /tests/golden/types-import-sur/tree/txt
1513+/* src-449 %jibb /tests/golden/types-import-duplicate-sur/source/jibb
1514−/* typ-445 %txt /tests/golden/types-import-sur/types/txt
1514+/* tok-449 %txt /tests/golden/types-import-duplicate-sur/tokens/txt
1515−/* imp-445-1 %txt /tests/golden/types-import-sur/sur/fixture/txt
1515+/* tre-449 %txt /tests/golden/types-import-duplicate-sur/tree/txt
1516−/* imp-445-2 %txt /tests/golden/types-import-sur/sur/fixture/txt
1516+/* typ-449 %txt /tests/golden/types-import-duplicate-sur/types/txt
1517−/* src-446 %jibb /tests/golden/types-import-sur-record-graph/source/jibb
1517+/* imp-449-1 %txt /tests/golden/types-import-duplicate-sur/sur/fixture/txt
1518−/* tok-446 %txt /tests/golden/types-import-sur-record-graph/tokens/txt
1518+/* imp-449-2 %txt /tests/golden/types-import-duplicate-sur/sur/fixture/txt
1519−/* tre-446 %txt /tests/golden/types-import-sur-record-graph/tree/txt
1519+/* imp-449-3 %txt /tests/golden/types-import-duplicate-sur/sur/fixture/txt
1520−/* mod-446-1 %jibb /tests/golden/types-import-sur-record-graph/modules/ui/lib/jibb
1520+/* src-450 %jibb /tests/golden/types-import-hoon-flags/source/jibb
1521−/* typ-446 %txt /tests/golden/types-import-sur-record-graph/types/txt
1521+/* tok-450 %txt /tests/golden/types-import-hoon-flags/tokens/txt
1522−/* imp-446-1 %txt /tests/golden/types-import-sur-record-graph/sur/fixture/txt
1522+/* tre-450 %txt /tests/golden/types-import-hoon-flags/tree/txt
1523−/* mtre-446 %txt /tests/golden/types-import-sur-record-graph/module-trees/txt
1523+/* typ-450 %txt /tests/golden/types-import-hoon-flags/types/txt
1524−/* src-447 %jibb /tests/golden/types-import-tlon-notes/source/jibb
1524+/* imp-450-1 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1525−/* tok-447 %txt /tests/golden/types-import-tlon-notes/tokens/txt
1525+/* imp-450-2 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1526−/* tre-447 %txt /tests/golden/types-import-tlon-notes/tree/txt
1526+/* imp-450-3 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1527−/* typ-447 %txt /tests/golden/types-import-tlon-notes/types/txt
1527+/* imp-450-4 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1528−/* imp-447-1 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1528+/* src-451 %jibb /tests/golden/types-import-hoon-noun/source/jibb
1529−/* imp-447-2 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1529+/* tok-451 %txt /tests/golden/types-import-hoon-noun/tokens/txt
1530−/* imp-447-3 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1530+/* tre-451 %txt /tests/golden/types-import-hoon-noun/tree/txt
1531−/* imp-447-4 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1531+/* typ-451 %txt /tests/golden/types-import-hoon-noun/types/txt
1532−/* imp-447-5 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1532+/* imp-451-1 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1533−/* imp-447-6 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1533+/* imp-451-2 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1534−/* imp-447-7 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1534+/* imp-451-3 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1535−/* src-448 %jibb /tests/golden/types-list-branch/source/jibb
1535+/* imp-451-4 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1536−/* tok-448 %txt /tests/golden/types-list-branch/tokens/txt
1536+/* src-452 %jibb /tests/golden/types-import-mark/source/jibb
1537−/* tre-448 %txt /tests/golden/types-list-branch/tree/txt
1537+/* tok-452 %txt /tests/golden/types-import-mark/tokens/txt
1538−/* typ-448 %txt /tests/golden/types-list-branch/types/txt
1538+/* tre-452 %txt /tests/golden/types-import-mark/tree/txt
1539−/* src-449 %jibb /tests/golden/types-list-cons/source/jibb
1539+/* typ-452 %txt /tests/golden/types-import-mark/types/txt
1540−/* tok-449 %txt /tests/golden/types-list-cons/tokens/txt
1540+/* imp-452-1 %txt /tests/golden/types-import-mark/sur/fixture/txt
1541−/* tre-449 %txt /tests/golden/types-list-cons/tree/txt
1541+/* mark-452-1 %txt /tests/golden/types-import-mark/mar/label/txt
1542−/* typ-449 %txt /tests/golden/types-list-cons/types/txt
1542+/* src-453 %jibb /tests/golden/types-import-mark-record/source/jibb
1543−/* src-450 %jibb /tests/golden/types-list-context/source/jibb
1543+/* tok-453 %txt /tests/golden/types-import-mark-record/tokens/txt
1544−/* tok-450 %txt /tests/golden/types-list-context/tokens/txt
1544+/* tre-453 %txt /tests/golden/types-import-mark-record/tree/txt
1545−/* tre-450 %txt /tests/golden/types-list-context/tree/txt
1545+/* typ-453 %txt /tests/golden/types-import-mark-record/types/txt
1546−/* typ-450 %txt /tests/golden/types-list-context/types/txt
1546+/* mark-453-1 %txt /tests/golden/types-import-mark-record/mar/note/txt
1547−/* src-451 %jibb /tests/golden/types-list-imported/source/jibb
1547+/* mark-453-2 %txt /tests/golden/types-import-mark-record/mar/choice/txt
1548−/* tok-451 %txt /tests/golden/types-list-imported/tokens/txt
1548+/* src-454 %jibb /tests/golden/types-import-missing-mold/source/jibb
1549−/* tre-451 %txt /tests/golden/types-list-imported/tree/txt
1549+/* tok-454 %txt /tests/golden/types-import-missing-mold/tokens/txt
1550−/* typ-451 %txt /tests/golden/types-list-imported/types/txt
1550+/* tre-454 %txt /tests/golden/types-import-missing-mold/tree/txt
1551−/* imp-451-1 %txt /tests/golden/types-list-imported/sur/fixture/txt
1551+/* typ-454 %txt /tests/golden/types-import-missing-mold/types/txt
1552−/* imp-451-2 %txt /tests/golden/types-list-imported/sur/fixture/txt
1552+/* imp-454-1 %txt /tests/golden/types-import-missing-mold/sur/fixture/txt
1553−/* src-452 %jibb /tests/golden/types-list-open/source/jibb
1553+/* src-455 %jibb /tests/golden/types-import-sur/source/jibb
1554−/* tok-452 %txt /tests/golden/types-list-open/tokens/txt
1554+/* tok-455 %txt /tests/golden/types-import-sur/tokens/txt
1555−/* tre-452 %txt /tests/golden/types-list-open/tree/txt
1555+/* tre-455 %txt /tests/golden/types-import-sur/tree/txt
1556−/* typ-452 %txt /tests/golden/types-list-open/types/txt
1556+/* typ-455 %txt /tests/golden/types-import-sur/types/txt
1557−/* src-453 %jibb /tests/golden/types-list-open-constraints/source/jibb
1557+/* imp-455-1 %txt /tests/golden/types-import-sur/sur/fixture/txt
1558−/* tok-453 %txt /tests/golden/types-list-open-constraints/tokens/txt
1558+/* imp-455-2 %txt /tests/golden/types-import-sur/sur/fixture/txt
1559−/* tre-453 %txt /tests/golden/types-list-open-constraints/tree/txt
1559+/* src-456 %jibb /tests/golden/types-import-sur-record-graph/source/jibb
1560−/* typ-453 %txt /tests/golden/types-list-open-constraints/types/txt
1560+/* tok-456 %txt /tests/golden/types-import-sur-record-graph/tokens/txt
1561−/* src-454 %jibb /tests/golden/types-list-pattern-imported/source/jibb
1561+/* tre-456 %txt /tests/golden/types-import-sur-record-graph/tree/txt
1562−/* tok-454 %txt /tests/golden/types-list-pattern-imported/tokens/txt
1562+/* mod-456-1 %jibb /tests/golden/types-import-sur-record-graph/modules/ui/lib/jibb
1563−/* tre-454 %txt /tests/golden/types-list-pattern-imported/tree/txt
1563+/* typ-456 %txt /tests/golden/types-import-sur-record-graph/types/txt
1564−/* typ-454 %txt /tests/golden/types-list-pattern-imported/types/txt
1564+/* imp-456-1 %txt /tests/golden/types-import-sur-record-graph/sur/fixture/txt
1565−/* imp-454-1 %txt /tests/golden/types-list-pattern-imported/sur/fixture/txt
1565+/* mtre-456 %txt /tests/golden/types-import-sur-record-graph/module-trees/txt
1566−/* imp-454-2 %txt /tests/golden/types-list-pattern-imported/sur/fixture/txt
1566+/* src-457 %jibb /tests/golden/types-import-tlon-notes/source/jibb
1567−/* src-455 %jibb /tests/golden/types-list-patterns/source/jibb
1567+/* tok-457 %txt /tests/golden/types-import-tlon-notes/tokens/txt
1568−/* tok-455 %txt /tests/golden/types-list-patterns/tokens/txt
1568+/* tre-457 %txt /tests/golden/types-import-tlon-notes/tree/txt
1569−/* tre-455 %txt /tests/golden/types-list-patterns/tree/txt
1569+/* typ-457 %txt /tests/golden/types-import-tlon-notes/types/txt
1570−/* typ-455 %txt /tests/golden/types-list-patterns/types/txt
1570+/* imp-457-1 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1571−/* src-456 %jibb /tests/golden/types-list-zero-fit/source/jibb
1571+/* imp-457-2 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1572−/* tok-456 %txt /tests/golden/types-list-zero-fit/tokens/txt
1572+/* imp-457-3 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1573−/* tre-456 %txt /tests/golden/types-list-zero-fit/tree/txt
1573+/* imp-457-4 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1574−/* typ-456 %txt /tests/golden/types-list-zero-fit/types/txt
1574+/* imp-457-5 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1575−/* src-457 %jibb /tests/golden/types-local-capitals/source/jibb
1575+/* imp-457-6 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1576−/* tok-457 %txt /tests/golden/types-local-capitals/tokens/txt
1576+/* imp-457-7 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1577−/* tre-457 %txt /tests/golden/types-local-capitals/tree/txt
1577+/* src-458 %jibb /tests/golden/types-list-branch/source/jibb
1578−/* typ-457 %txt /tests/golden/types-local-capitals/types/txt
1578+/* tok-458 %txt /tests/golden/types-list-branch/tokens/txt
1579−/* src-458 %jibb /tests/golden/types-local-recursive/source/jibb
1579+/* tre-458 %txt /tests/golden/types-list-branch/tree/txt
1580−/* tok-458 %txt /tests/golden/types-local-recursive/tokens/txt
1580+/* typ-458 %txt /tests/golden/types-list-branch/types/txt
1581−/* tre-458 %txt /tests/golden/types-local-recursive/tree/txt
1581+/* src-459 %jibb /tests/golden/types-list-cons/source/jibb
1582−/* typ-458 %txt /tests/golden/types-local-recursive/types/txt
1582+/* tok-459 %txt /tests/golden/types-list-cons/tokens/txt
1583−/* src-459 %jibb /tests/golden/types-local-scc/source/jibb
1583+/* tre-459 %txt /tests/golden/types-list-cons/tree/txt
1584−/* tok-459 %txt /tests/golden/types-local-scc/tokens/txt
1584+/* typ-459 %txt /tests/golden/types-list-cons/types/txt
1585−/* tre-459 %txt /tests/golden/types-local-scc/tree/txt
1585+/* src-460 %jibb /tests/golden/types-list-context/source/jibb
1586−/* typ-459 %txt /tests/golden/types-local-scc/types/txt
1586+/* tok-460 %txt /tests/golden/types-list-context/tokens/txt
1587−/* src-460 %jibb /tests/golden/types-local-scc-adversarial/source/jibb
1587+/* tre-460 %txt /tests/golden/types-list-context/tree/txt
1588−/* tok-460 %txt /tests/golden/types-local-scc-adversarial/tokens/txt
1588+/* typ-460 %txt /tests/golden/types-list-context/types/txt
1589−/* tre-460 %txt /tests/golden/types-local-scc-adversarial/tree/txt
1589+/* src-461 %jibb /tests/golden/types-list-imported/source/jibb
1590−/* typ-460 %txt /tests/golden/types-local-scc-adversarial/types/txt
1590+/* tok-461 %txt /tests/golden/types-list-imported/tokens/txt
1591−/* src-461 %jibb /tests/golden/types-missing-tag-context/source/jibb
1591+/* tre-461 %txt /tests/golden/types-list-imported/tree/txt
1592−/* tok-461 %txt /tests/golden/types-missing-tag-context/tokens/txt
1592+/* typ-461 %txt /tests/golden/types-list-imported/types/txt
1593−/* tre-461 %txt /tests/golden/types-missing-tag-context/tree/txt
1593+/* imp-461-1 %txt /tests/golden/types-list-imported/sur/fixture/txt
1594−/* typ-461 %txt /tests/golden/types-missing-tag-context/types/txt
1594+/* imp-461-2 %txt /tests/golden/types-list-imported/sur/fixture/txt
1595−/* src-462 %jibb /tests/golden/types-missing-tag-imported/source/jibb
1595+/* src-462 %jibb /tests/golden/types-list-open/source/jibb
1596−/* tok-462 %txt /tests/golden/types-missing-tag-imported/tokens/txt
1596+/* tok-462 %txt /tests/golden/types-list-open/tokens/txt
1597−/* tre-462 %txt /tests/golden/types-missing-tag-imported/tree/txt
1597+/* tre-462 %txt /tests/golden/types-list-open/tree/txt
1598−/* typ-462 %txt /tests/golden/types-missing-tag-imported/types/txt
1598+/* typ-462 %txt /tests/golden/types-list-open/types/txt
1599−/* imp-462-1 %txt /tests/golden/types-missing-tag-imported/sur/fixture/txt
1599+/* src-463 %jibb /tests/golden/types-list-open-constraints/source/jibb
1600−/* imp-462-2 %txt /tests/golden/types-missing-tag-imported/sur/fixture/txt
1600+/* tok-463 %txt /tests/golden/types-list-open-constraints/tokens/txt
1601−/* src-463 %jibb /tests/golden/types-missing-tag-named/source/jibb
1601+/* tre-463 %txt /tests/golden/types-list-open-constraints/tree/txt
1602−/* tok-463 %txt /tests/golden/types-missing-tag-named/tokens/txt
1602+/* typ-463 %txt /tests/golden/types-list-open-constraints/types/txt
1603−/* tre-463 %txt /tests/golden/types-missing-tag-named/tree/txt
1603+/* src-464 %jibb /tests/golden/types-list-pattern-imported/source/jibb
1604−/* typ-463 %txt /tests/golden/types-missing-tag-named/types/txt
1604+/* tok-464 %txt /tests/golden/types-list-pattern-imported/tokens/txt
1605−/* src-464 %jibb /tests/golden/types-module-field-duplicate/source/jibb
1605+/* tre-464 %txt /tests/golden/types-list-pattern-imported/tree/txt
1606−/* tok-464 %txt /tests/golden/types-module-field-duplicate/tokens/txt
1606+/* typ-464 %txt /tests/golden/types-list-pattern-imported/types/txt
1607−/* tre-464 %txt /tests/golden/types-module-field-duplicate/tree/txt
1607+/* imp-464-1 %txt /tests/golden/types-list-pattern-imported/sur/fixture/txt
1608−/* mod-464-1 %jibb /tests/golden/types-module-field-duplicate/modules/ui/lib/jibb
1608+/* imp-464-2 %txt /tests/golden/types-list-pattern-imported/sur/fixture/txt
1609−/* typ-464 %txt /tests/golden/types-module-field-duplicate/types/txt
1609+/* src-465 %jibb /tests/golden/types-list-patterns/source/jibb
1610−/* mtre-464 %txt /tests/golden/types-module-field-duplicate/module-trees/txt
1610+/* tok-465 %txt /tests/golden/types-list-patterns/tokens/txt
1611−/* src-465 %jibb /tests/golden/types-module-field-nonrecord/source/jibb
1611+/* tre-465 %txt /tests/golden/types-list-patterns/tree/txt
1612−/* tok-465 %txt /tests/golden/types-module-field-nonrecord/tokens/txt
1612+/* typ-465 %txt /tests/golden/types-list-patterns/types/txt
1613−/* tre-465 %txt /tests/golden/types-module-field-nonrecord/tree/txt
1613+/* src-466 %jibb /tests/golden/types-list-zero-fit/source/jibb
1614−/* mod-465-1 %jibb /tests/golden/types-module-field-nonrecord/modules/ui/lib/jibb
1614+/* tok-466 %txt /tests/golden/types-list-zero-fit/tokens/txt
1615−/* typ-465 %txt /tests/golden/types-module-field-nonrecord/types/txt
1615+/* tre-466 %txt /tests/golden/types-list-zero-fit/tree/txt
1616−/* mtre-465 %txt /tests/golden/types-module-field-nonrecord/module-trees/txt
1616+/* typ-466 %txt /tests/golden/types-list-zero-fit/types/txt
1617−/* src-466 %jibb /tests/golden/types-module-field-path/source/jibb
1617+/* src-467 %jibb /tests/golden/types-local-capitals/source/jibb
1618−/* tok-466 %txt /tests/golden/types-module-field-path/tokens/txt
1618+/* tok-467 %txt /tests/golden/types-local-capitals/tokens/txt
1619−/* tre-466 %txt /tests/golden/types-module-field-path/tree/txt
1619+/* tre-467 %txt /tests/golden/types-local-capitals/tree/txt
1620−/* mod-466-1 %jibb /tests/golden/types-module-field-path/modules/ui/lib/jibb
1620+/* typ-467 %txt /tests/golden/types-local-capitals/types/txt
1621−/* typ-466 %txt /tests/golden/types-module-field-path/types/txt
1621+/* src-468 %jibb /tests/golden/types-local-recursive/source/jibb
1622−/* mtre-466 %txt /tests/golden/types-module-field-path/module-trees/txt
1622+/* tok-468 %txt /tests/golden/types-local-recursive/tokens/txt
1623−/* src-467 %jibb /tests/golden/types-module-field-shadow/source/jibb
1623+/* tre-468 %txt /tests/golden/types-local-recursive/tree/txt
1624−/* tok-467 %txt /tests/golden/types-module-field-shadow/tokens/txt
1624+/* typ-468 %txt /tests/golden/types-local-recursive/types/txt
1625−/* tre-467 %txt /tests/golden/types-module-field-shadow/tree/txt
1625+/* src-469 %jibb /tests/golden/types-local-scc/source/jibb
1626−/* mod-467-1 %jibb /tests/golden/types-module-field-shadow/modules/ui/lib/jibb
1626+/* tok-469 %txt /tests/golden/types-local-scc/tokens/txt
1627−/* typ-467 %txt /tests/golden/types-module-field-shadow/types/txt
1627+/* tre-469 %txt /tests/golden/types-local-scc/tree/txt
1628−/* mtre-467 %txt /tests/golden/types-module-field-shadow/module-trees/txt
1628+/* typ-469 %txt /tests/golden/types-local-scc/types/txt
1629−/* src-468 %jibb /tests/golden/types-module-fixtures/source/jibb
1629+/* src-470 %jibb /tests/golden/types-local-scc-adversarial/source/jibb
1630−/* tok-468 %txt /tests/golden/types-module-fixtures/tokens/txt
1630+/* tok-470 %txt /tests/golden/types-local-scc-adversarial/tokens/txt
1631−/* tre-468 %txt /tests/golden/types-module-fixtures/tree/txt
1631+/* tre-470 %txt /tests/golden/types-local-scc-adversarial/tree/txt
1632−/* mod-468-1 %jibb /tests/golden/types-module-fixtures/modules/ui/api/blog/jibb
1632+/* typ-470 %txt /tests/golden/types-local-scc-adversarial/types/txt
1633−/* mod-468-2 %jibb /tests/golden/types-module-fixtures/modules/ui/components/card/jibb
1633+/* src-471 %jibb /tests/golden/types-missing-tag-context/source/jibb
1634−/* typ-468 %txt /tests/golden/types-module-fixtures/types/txt
1634+/* tok-471 %txt /tests/golden/types-missing-tag-context/tokens/txt
1635−/* mtre-468 %txt /tests/golden/types-module-fixtures/module-trees/txt
1635+/* tre-471 %txt /tests/golden/types-missing-tag-context/tree/txt
1636−/* src-469 %jibb /tests/golden/types-module-mixed/source/jibb
1636+/* typ-471 %txt /tests/golden/types-missing-tag-context/types/txt
1637−/* tok-469 %txt /tests/golden/types-module-mixed/tokens/txt
1637+/* src-472 %jibb /tests/golden/types-missing-tag-imported/source/jibb
1638−/* tre-469 %txt /tests/golden/types-module-mixed/tree/txt
1638+/* tok-472 %txt /tests/golden/types-missing-tag-imported/tokens/txt
1639−/* mod-469-1 %jibb /tests/golden/types-module-mixed/modules/ui/helper/jibb
1639+/* tre-472 %txt /tests/golden/types-missing-tag-imported/tree/txt
1640−/* typ-469 %txt /tests/golden/types-module-mixed/types/txt
1640+/* typ-472 %txt /tests/golden/types-missing-tag-imported/types/txt
1641−/* imp-469-1 %txt /tests/golden/types-module-mixed/sur/fixture/txt
1641+/* imp-472-1 %txt /tests/golden/types-missing-tag-imported/sur/fixture/txt
1642−/* mark-469-1 %txt /tests/golden/types-module-mixed/mar/label/txt
1642+/* imp-472-2 %txt /tests/golden/types-missing-tag-imported/sur/fixture/txt
1643−/* mtre-469 %txt /tests/golden/types-module-mixed/module-trees/txt
1643+/* src-473 %jibb /tests/golden/types-missing-tag-named/source/jibb
1644−/* src-470 %jibb /tests/golden/types-multi-call/source/jibb
1644+/* tok-473 %txt /tests/golden/types-missing-tag-named/tokens/txt
1645−/* tok-470 %txt /tests/golden/types-multi-call/tokens/txt
1645+/* tre-473 %txt /tests/golden/types-missing-tag-named/tree/txt
1646−/* tre-470 %txt /tests/golden/types-multi-call/tree/txt
1646+/* typ-473 %txt /tests/golden/types-missing-tag-named/types/txt
1647−/* typ-470 %txt /tests/golden/types-multi-call/types/txt
1647+/* src-474 %jibb /tests/golden/types-module-field-duplicate/source/jibb
1648−/* src-471 %jibb /tests/golden/types-multi-import/source/jibb
1648+/* tok-474 %txt /tests/golden/types-module-field-duplicate/tokens/txt
1649−/* tok-471 %txt /tests/golden/types-multi-import/tokens/txt
1649+/* tre-474 %txt /tests/golden/types-module-field-duplicate/tree/txt
1650−/* tre-471 %txt /tests/golden/types-multi-import/tree/txt
1650+/* mod-474-1 %jibb /tests/golden/types-module-field-duplicate/modules/ui/lib/jibb
1651−/* mod-471-1 %jibb /tests/golden/types-multi-import/modules/ui/lib/jibb
1651+/* typ-474 %txt /tests/golden/types-module-field-duplicate/types/txt
1652−/* typ-471 %txt /tests/golden/types-multi-import/types/txt
1652+/* mtre-474 %txt /tests/golden/types-module-field-duplicate/module-trees/txt
1653−/* mtre-471 %txt /tests/golden/types-multi-import/module-trees/txt
1653+/* src-475 %jibb /tests/golden/types-module-field-nonrecord/source/jibb
1654−/* src-472 %jibb /tests/golden/types-nested-missing-tag/source/jibb
1654+/* tok-475 %txt /tests/golden/types-module-field-nonrecord/tokens/txt
1655−/* tok-472 %txt /tests/golden/types-nested-missing-tag/tokens/txt
1655+/* tre-475 %txt /tests/golden/types-module-field-nonrecord/tree/txt
1656−/* tre-472 %txt /tests/golden/types-nested-missing-tag/tree/txt
1656+/* mod-475-1 %jibb /tests/golden/types-module-field-nonrecord/modules/ui/lib/jibb
1657−/* typ-472 %txt /tests/golden/types-nested-missing-tag/types/txt
1657+/* typ-475 %txt /tests/golden/types-module-field-nonrecord/types/txt
1658−/* src-473 %jibb /tests/golden/types-null-context/source/jibb
1658+/* mtre-475 %txt /tests/golden/types-module-field-nonrecord/module-trees/txt
1659−/* tok-473 %txt /tests/golden/types-null-context/tokens/txt
1659+/* src-476 %jibb /tests/golden/types-module-field-path/source/jibb
1660−/* tre-473 %txt /tests/golden/types-null-context/tree/txt
1660+/* tok-476 %txt /tests/golden/types-module-field-path/tokens/txt
1661−/* typ-473 %txt /tests/golden/types-null-context/types/txt
1661+/* tre-476 %txt /tests/golden/types-module-field-path/tree/txt
1662−/* src-474 %jibb /tests/golden/types-null-overlap/source/jibb
1662+/* mod-476-1 %jibb /tests/golden/types-module-field-path/modules/ui/lib/jibb
1663−/* tok-474 %txt /tests/golden/types-null-overlap/tokens/txt
1663+/* typ-476 %txt /tests/golden/types-module-field-path/types/txt
1664−/* tre-474 %txt /tests/golden/types-null-overlap/tree/txt
1664+/* mtre-476 %txt /tests/golden/types-module-field-path/module-trees/txt
1665−/* typ-474 %txt /tests/golden/types-null-overlap/types/txt
1665+/* src-477 %jibb /tests/golden/types-module-field-shadow/source/jibb
1666−/* src-475 %jibb /tests/golden/types-null-unresolved/source/jibb
1666+/* tok-477 %txt /tests/golden/types-module-field-shadow/tokens/txt
1667−/* tok-475 %txt /tests/golden/types-null-unresolved/tokens/txt
1667+/* tre-477 %txt /tests/golden/types-module-field-shadow/tree/txt
1668−/* tre-475 %txt /tests/golden/types-null-unresolved/tree/txt
1668+/* mod-477-1 %jibb /tests/golden/types-module-field-shadow/modules/ui/lib/jibb
1669−/* typ-475 %txt /tests/golden/types-null-unresolved/types/txt
1669+/* typ-477 %txt /tests/golden/types-module-field-shadow/types/txt
1670−/* src-476 %jibb /tests/golden/types-pair-context/source/jibb
1670+/* mtre-477 %txt /tests/golden/types-module-field-shadow/module-trees/txt
1671−/* tok-476 %txt /tests/golden/types-pair-context/tokens/txt
1671+/* src-478 %jibb /tests/golden/types-module-fixtures/source/jibb
1672−/* tre-476 %txt /tests/golden/types-pair-context/tree/txt
1672+/* tok-478 %txt /tests/golden/types-module-fixtures/tokens/txt
1673−/* typ-476 %txt /tests/golden/types-pair-context/types/txt
1673+/* tre-478 %txt /tests/golden/types-module-fixtures/tree/txt
1674−/* src-477 %jibb /tests/golden/types-partial-apply/source/jibb
1674+/* mod-478-1 %jibb /tests/golden/types-module-fixtures/modules/ui/api/blog/jibb
1675−/* tok-477 %txt /tests/golden/types-partial-apply/tokens/txt
1675+/* mod-478-2 %jibb /tests/golden/types-module-fixtures/modules/ui/components/card/jibb
1676−/* tre-477 %txt /tests/golden/types-partial-apply/tree/txt
1676+/* typ-478 %txt /tests/golden/types-module-fixtures/types/txt
1677−/* typ-477 %txt /tests/golden/types-partial-apply/types/txt
1677+/* mtre-478 %txt /tests/golden/types-module-fixtures/module-trees/txt
1678−/* src-478 %jibb /tests/golden/types-partial-atom-alias/source/jibb
1678+/* src-479 %jibb /tests/golden/types-module-mixed/source/jibb
1679−/* tok-478 %txt /tests/golden/types-partial-atom-alias/tokens/txt
1679+/* tok-479 %txt /tests/golden/types-module-mixed/tokens/txt
1680−/* tre-478 %txt /tests/golden/types-partial-atom-alias/tree/txt
1680+/* tre-479 %txt /tests/golden/types-module-mixed/tree/txt
1681−/* typ-478 %txt /tests/golden/types-partial-atom-alias/types/txt
1681+/* mod-479-1 %jibb /tests/golden/types-module-mixed/modules/ui/helper/jibb
1682−/* src-479 %jibb /tests/golden/types-partial-atom-constraint/source/jibb
1682+/* typ-479 %txt /tests/golden/types-module-mixed/types/txt
1683−/* tok-479 %txt /tests/golden/types-partial-atom-constraint/tokens/txt
1683+/* imp-479-1 %txt /tests/golden/types-module-mixed/sur/fixture/txt
1684−/* tre-479 %txt /tests/golden/types-partial-atom-constraint/tree/txt
1684+/* mark-479-1 %txt /tests/golden/types-module-mixed/mar/label/txt
1685−/* typ-479 %txt /tests/golden/types-partial-atom-constraint/types/txt
1685+/* mtre-479 %txt /tests/golden/types-module-mixed/module-trees/txt
1686−/* src-480 %jibb /tests/golden/types-partial-atom-widening/source/jibb
1686+/* src-480 %jibb /tests/golden/types-multi-call/source/jibb
1687−/* tok-480 %txt /tests/golden/types-partial-atom-widening/tokens/txt
1687+/* tok-480 %txt /tests/golden/types-multi-call/tokens/txt
1688−/* tre-480 %txt /tests/golden/types-partial-atom-widening/tree/txt
1688+/* tre-480 %txt /tests/golden/types-multi-call/tree/txt
1689−/* typ-480 %txt /tests/golden/types-partial-atom-widening/types/txt
1689+/* typ-480 %txt /tests/golden/types-multi-call/types/txt
1690−/* src-481 %jibb /tests/golden/types-partial-aura/source/jibb
1690+/* src-481 %jibb /tests/golden/types-multi-import/source/jibb
1691−/* tok-481 %txt /tests/golden/types-partial-aura/tokens/txt
1691+/* tok-481 %txt /tests/golden/types-multi-import/tokens/txt
1692−/* tre-481 %txt /tests/golden/types-partial-aura/tree/txt
1692+/* tre-481 %txt /tests/golden/types-multi-import/tree/txt
1693−/* typ-481 %txt /tests/golden/types-partial-aura/types/txt
1693+/* mod-481-1 %jibb /tests/golden/types-multi-import/modules/ui/lib/jibb
1694−/* src-482 %jibb /tests/golden/types-partial-aura-family/source/jibb
1694+/* typ-481 %txt /tests/golden/types-multi-import/types/txt
1695−/* tok-482 %txt /tests/golden/types-partial-aura-family/tokens/txt
1695+/* mtre-481 %txt /tests/golden/types-multi-import/module-trees/txt
1696−/* tre-482 %txt /tests/golden/types-partial-aura-family/tree/txt
1696+/* src-482 %jibb /tests/golden/types-nested-missing-tag/source/jibb
1697−/* typ-482 %txt /tests/golden/types-partial-aura-family/types/txt
1697+/* tok-482 %txt /tests/golden/types-nested-missing-tag/tokens/txt
1698−/* src-483 %jibb /tests/golden/types-partial-aura-generalization/source/jibb
1698+/* tre-482 %txt /tests/golden/types-nested-missing-tag/tree/txt
1699−/* tok-483 %txt /tests/golden/types-partial-aura-generalization/tokens/txt
1699+/* typ-482 %txt /tests/golden/types-nested-missing-tag/types/txt
1700−/* tre-483 %txt /tests/golden/types-partial-aura-generalization/tree/txt
1700+/* src-483 %jibb /tests/golden/types-null-context/source/jibb
1701−/* typ-483 %txt /tests/golden/types-partial-aura-generalization/types/txt
1701+/* tok-483 %txt /tests/golden/types-null-context/tokens/txt
1702−/* src-484 %jibb /tests/golden/types-partial-bare-atom/source/jibb
1702+/* tre-483 %txt /tests/golden/types-null-context/tree/txt
1703−/* tok-484 %txt /tests/golden/types-partial-bare-atom/tokens/txt
1703+/* typ-483 %txt /tests/golden/types-null-context/types/txt
1704−/* tre-484 %txt /tests/golden/types-partial-bare-atom/tree/txt
1704+/* src-484 %jibb /tests/golden/types-null-overlap/source/jibb
1705−/* typ-484 %txt /tests/golden/types-partial-bare-atom/types/txt
1705+/* tok-484 %txt /tests/golden/types-null-overlap/tokens/txt
1706−/* src-485 %jibb /tests/golden/types-partial-branch-widening/source/jibb
1706+/* tre-484 %txt /tests/golden/types-null-overlap/tree/txt
1707−/* tok-485 %txt /tests/golden/types-partial-branch-widening/tokens/txt
1707+/* typ-484 %txt /tests/golden/types-null-overlap/types/txt
1708−/* tre-485 %txt /tests/golden/types-partial-branch-widening/tree/txt
1708+/* src-485 %jibb /tests/golden/types-null-unresolved/source/jibb
1709−/* typ-485 %txt /tests/golden/types-partial-branch-widening/types/txt
1709+/* tok-485 %txt /tests/golden/types-null-unresolved/tokens/txt
1710−/* src-486 %jibb /tests/golden/types-partial-conflicting-sites/source/jibb
1710+/* tre-485 %txt /tests/golden/types-null-unresolved/tree/txt
1711−/* tok-486 %txt /tests/golden/types-partial-conflicting-sites/tokens/txt
1711+/* typ-485 %txt /tests/golden/types-null-unresolved/types/txt
1712−/* tre-486 %txt /tests/golden/types-partial-conflicting-sites/tree/txt
1712+/* src-486 %jibb /tests/golden/types-pair-context/source/jibb
1713−/* typ-486 %txt /tests/golden/types-partial-conflicting-sites/types/txt
1713+/* tok-486 %txt /tests/golden/types-pair-context/tokens/txt
1714−/* src-487 %jibb /tests/golden/types-partial-decimal-default/source/jibb
1714+/* tre-486 %txt /tests/golden/types-pair-context/tree/txt
1715−/* tok-487 %txt /tests/golden/types-partial-decimal-default/tokens/txt
1715+/* typ-486 %txt /tests/golden/types-pair-context/types/txt
1716−/* tre-487 %txt /tests/golden/types-partial-decimal-default/tree/txt
1716+/* src-487 %jibb /tests/golden/types-partial-apply/source/jibb
1717−/* typ-487 %txt /tests/golden/types-partial-decimal-default/types/txt
1717+/* tok-487 %txt /tests/golden/types-partial-apply/tokens/txt
1718−/* src-488 %jibb /tests/golden/types-partial-dependency-chain/source/jibb
1718+/* tre-487 %txt /tests/golden/types-partial-apply/tree/txt
1719−/* tok-488 %txt /tests/golden/types-partial-dependency-chain/tokens/txt
1719+/* typ-487 %txt /tests/golden/types-partial-apply/types/txt
1720−/* tre-488 %txt /tests/golden/types-partial-dependency-chain/tree/txt
1720+/* src-488 %jibb /tests/golden/types-partial-atom-alias/source/jibb
1721−/* typ-488 %txt /tests/golden/types-partial-dependency-chain/types/txt
1721+/* tok-488 %txt /tests/golden/types-partial-atom-alias/tokens/txt
1722−/* src-489 %jibb /tests/golden/types-partial-explicit-capital/source/jibb
1722+/* tre-488 %txt /tests/golden/types-partial-atom-alias/tree/txt
1723−/* tok-489 %txt /tests/golden/types-partial-explicit-capital/tokens/txt
1723+/* typ-488 %txt /tests/golden/types-partial-atom-alias/types/txt
1724−/* tre-489 %txt /tests/golden/types-partial-explicit-capital/tree/txt
1724+/* src-489 %jibb /tests/golden/types-partial-atom-constraint/source/jibb
1725−/* typ-489 %txt /tests/golden/types-partial-explicit-capital/types/txt
1725+/* tok-489 %txt /tests/golden/types-partial-atom-constraint/tokens/txt
1726−/* src-490 %jibb /tests/golden/types-partial-forward/source/jibb
1726+/* tre-489 %txt /tests/golden/types-partial-atom-constraint/tree/txt
1727−/* tok-490 %txt /tests/golden/types-partial-forward/tokens/txt
1727+/* typ-489 %txt /tests/golden/types-partial-atom-constraint/types/txt
1728−/* tre-490 %txt /tests/golden/types-partial-forward/tree/txt
1728+/* src-490 %jibb /tests/golden/types-partial-atom-widening/source/jibb
1729−/* typ-490 %txt /tests/golden/types-partial-forward/types/txt
1729+/* tok-490 %txt /tests/golden/types-partial-atom-widening/tokens/txt
1730−/* src-491 %jibb /tests/golden/types-partial-generalization/source/jibb
1730+/* tre-490 %txt /tests/golden/types-partial-atom-widening/tree/txt
1731−/* tok-491 %txt /tests/golden/types-partial-generalization/tokens/txt
1731+/* typ-490 %txt /tests/golden/types-partial-atom-widening/types/txt
1732−/* tre-491 %txt /tests/golden/types-partial-generalization/tree/txt
1732+/* src-491 %jibb /tests/golden/types-partial-aura/source/jibb
1733−/* typ-491 %txt /tests/golden/types-partial-generalization/types/txt
1733+/* tok-491 %txt /tests/golden/types-partial-aura/tokens/txt
1734−/* src-492 %jibb /tests/golden/types-partial-identity/source/jibb
1734+/* tre-491 %txt /tests/golden/types-partial-aura/tree/txt
1735−/* tok-492 %txt /tests/golden/types-partial-identity/tokens/txt
1735+/* typ-491 %txt /tests/golden/types-partial-aura/types/txt
1736−/* tre-492 %txt /tests/golden/types-partial-identity/tree/txt
1736+/* src-492 %jibb /tests/golden/types-partial-aura-family/source/jibb
1737−/* typ-492 %txt /tests/golden/types-partial-identity/types/txt
1737+/* tok-492 %txt /tests/golden/types-partial-aura-family/tokens/txt
1738−/* src-493 %jibb /tests/golden/types-partial-independent-atoms/source/jibb
1738+/* tre-492 %txt /tests/golden/types-partial-aura-family/tree/txt
1739−/* tok-493 %txt /tests/golden/types-partial-independent-atoms/tokens/txt
1739+/* typ-492 %txt /tests/golden/types-partial-aura-family/types/txt
1740−/* tre-493 %txt /tests/golden/types-partial-independent-atoms/tree/txt
1740+/* src-493 %jibb /tests/golden/types-partial-aura-generalization/source/jibb
1741−/* typ-493 %txt /tests/golden/types-partial-independent-atoms/types/txt
1741+/* tok-493 %txt /tests/golden/types-partial-aura-generalization/tokens/txt
1742−/* src-494 %jibb /tests/golden/types-partial-local-molds/source/jibb
1742+/* tre-493 %txt /tests/golden/types-partial-aura-generalization/tree/txt
1743−/* tok-494 %txt /tests/golden/types-partial-local-molds/tokens/txt
1743+/* typ-493 %txt /tests/golden/types-partial-aura-generalization/types/txt
1744−/* tre-494 %txt /tests/golden/types-partial-local-molds/tree/txt
1744+/* src-494 %jibb /tests/golden/types-partial-bare-atom/source/jibb
1745−/* typ-494 %txt /tests/golden/types-partial-local-molds/types/txt
1745+/* tok-494 %txt /tests/golden/types-partial-bare-atom/tokens/txt
1746−/* src-495 %jibb /tests/golden/types-partial-locals/source/jibb
1746+/* tre-494 %txt /tests/golden/types-partial-bare-atom/tree/txt
1747−/* tok-495 %txt /tests/golden/types-partial-locals/tokens/txt
1747+/* typ-494 %txt /tests/golden/types-partial-bare-atom/types/txt
1748−/* tre-495 %txt /tests/golden/types-partial-locals/tree/txt
1748+/* src-495 %jibb /tests/golden/types-partial-branch-widening/source/jibb
1749−/* typ-495 %txt /tests/golden/types-partial-locals/types/txt
1749+/* tok-495 %txt /tests/golden/types-partial-branch-widening/tokens/txt
1750−/* src-496 %jibb /tests/golden/types-partial-many-atom-constraints/source/jibb
1750+/* tre-495 %txt /tests/golden/types-partial-branch-widening/tree/txt
1751−/* tok-496 %txt /tests/golden/types-partial-many-atom-constraints/tokens/txt
1751+/* typ-495 %txt /tests/golden/types-partial-branch-widening/types/txt
1752−/* tre-496 %txt /tests/golden/types-partial-many-atom-constraints/tree/txt
1752+/* src-496 %jibb /tests/golden/types-partial-conflicting-sites/source/jibb
1753−/* typ-496 %txt /tests/golden/types-partial-many-atom-constraints/types/txt
1753+/* tok-496 %txt /tests/golden/types-partial-conflicting-sites/tokens/txt
1754−/* src-497 %jibb /tests/golden/types-partial-mold-bare-aura/source/jibb
1754+/* tre-496 %txt /tests/golden/types-partial-conflicting-sites/tree/txt
1755−/* tok-497 %txt /tests/golden/types-partial-mold-bare-aura/tokens/txt
1755+/* typ-496 %txt /tests/golden/types-partial-conflicting-sites/types/txt
1756−/* tre-497 %txt /tests/golden/types-partial-mold-bare-aura/tree/txt
1756+/* src-497 %jibb /tests/golden/types-partial-decimal-default/source/jibb
1757−/* typ-497 %txt /tests/golden/types-partial-mold-bare-aura/types/txt
1757+/* tok-497 %txt /tests/golden/types-partial-decimal-default/tokens/txt
1758−/* src-498 %jibb /tests/golden/types-partial-mold-composite/source/jibb
1758+/* tre-497 %txt /tests/golden/types-partial-decimal-default/tree/txt
1759−/* tok-498 %txt /tests/golden/types-partial-mold-composite/tokens/txt
1759+/* typ-497 %txt /tests/golden/types-partial-decimal-default/types/txt
1760−/* tre-498 %txt /tests/golden/types-partial-mold-composite/tree/txt
1760+/* src-498 %jibb /tests/golden/types-partial-dependency-chain/source/jibb
1761−/* typ-498 %txt /tests/golden/types-partial-mold-composite/types/txt
1761+/* tok-498 %txt /tests/golden/types-partial-dependency-chain/tokens/txt
1762−/* src-499 %jibb /tests/golden/types-partial-mold-forward/source/jibb
1762+/* tre-498 %txt /tests/golden/types-partial-dependency-chain/tree/txt
1763−/* tok-499 %txt /tests/golden/types-partial-mold-forward/tokens/txt
1763+/* typ-498 %txt /tests/golden/types-partial-dependency-chain/types/txt
1764−/* tre-499 %txt /tests/golden/types-partial-mold-forward/tree/txt
1764+/* src-499 %jibb /tests/golden/types-partial-explicit-capital/source/jibb
1765−/* typ-499 %txt /tests/golden/types-partial-mold-forward/types/txt
1765+/* tok-499 %txt /tests/golden/types-partial-explicit-capital/tokens/txt
1766−/* src-500 %jibb /tests/golden/types-partial-mold-recursive/source/jibb
1766+/* tre-499 %txt /tests/golden/types-partial-explicit-capital/tree/txt
1767−/* tok-500 %txt /tests/golden/types-partial-mold-recursive/tokens/txt
1767+/* typ-499 %txt /tests/golden/types-partial-explicit-capital/types/txt
1768−/* tre-500 %txt /tests/golden/types-partial-mold-recursive/tree/txt
1768+/* src-500 %jibb /tests/golden/types-partial-forward/source/jibb
1769−/* typ-500 %txt /tests/golden/types-partial-mold-recursive/types/txt
1769+/* tok-500 %txt /tests/golden/types-partial-forward/tokens/txt
1770−/* src-501 %jibb /tests/golden/types-partial-occurs/source/jibb
1770+/* tre-500 %txt /tests/golden/types-partial-forward/tree/txt
1771−/* tok-501 %txt /tests/golden/types-partial-occurs/tokens/txt
1771+/* typ-500 %txt /tests/golden/types-partial-forward/types/txt
1772−/* tre-501 %txt /tests/golden/types-partial-occurs/tree/txt
1772+/* src-501 %jibb /tests/golden/types-partial-generalization/source/jibb
1773−/* typ-501 %txt /tests/golden/types-partial-occurs/types/txt
1773+/* tok-501 %txt /tests/golden/types-partial-generalization/tokens/txt
1774−/* src-502 %jibb /tests/golden/types-partial-projection/source/jibb
1774+/* tre-501 %txt /tests/golden/types-partial-generalization/tree/txt
1775−/* tok-502 %txt /tests/golden/types-partial-projection/tokens/txt
1775+/* typ-501 %txt /tests/golden/types-partial-generalization/types/txt
1776−/* tre-502 %txt /tests/golden/types-partial-projection/tree/txt
1776+/* src-502 %jibb /tests/golden/types-partial-identity/source/jibb
1777−/* typ-502 %txt /tests/golden/types-partial-projection/types/txt
1777+/* tok-502 %txt /tests/golden/types-partial-identity/tokens/txt
1778−/* src-503 %jibb /tests/golden/types-partial-shadow-global/source/jibb
1778+/* tre-502 %txt /tests/golden/types-partial-identity/tree/txt
1779−/* tok-503 %txt /tests/golden/types-partial-shadow-global/tokens/txt
1779+/* typ-502 %txt /tests/golden/types-partial-identity/types/txt
1780−/* tre-503 %txt /tests/golden/types-partial-shadow-global/tree/txt
1780+/* src-503 %jibb /tests/golden/types-partial-independent-atoms/source/jibb
1781−/* typ-503 %txt /tests/golden/types-partial-shadow-global/types/txt
1781+/* tok-503 %txt /tests/golden/types-partial-independent-atoms/tokens/txt
1782−/* src-504 %jibb /tests/golden/types-partial-shared-tvar/source/jibb
1782+/* tre-503 %txt /tests/golden/types-partial-independent-atoms/tree/txt
1783−/* tok-504 %txt /tests/golden/types-partial-shared-tvar/tokens/txt
1783+/* typ-503 %txt /tests/golden/types-partial-independent-atoms/types/txt
1784−/* tre-504 %txt /tests/golden/types-partial-shared-tvar/tree/txt
1784+/* src-504 %jibb /tests/golden/types-partial-local-molds/source/jibb
1785−/* typ-504 %txt /tests/golden/types-partial-shared-tvar/types/txt
1785+/* tok-504 %txt /tests/golden/types-partial-local-molds/tokens/txt
1786−/* src-505 %jibb /tests/golden/types-partial-union-cases/source/jibb
1786+/* tre-504 %txt /tests/golden/types-partial-local-molds/tree/txt
1787−/* tok-505 %txt /tests/golden/types-partial-union-cases/tokens/txt
1787+/* typ-504 %txt /tests/golden/types-partial-local-molds/types/txt
1788−/* tre-505 %txt /tests/golden/types-partial-union-cases/tree/txt
1788+/* src-505 %jibb /tests/golden/types-partial-locals/source/jibb
1789−/* typ-505 %txt /tests/golden/types-partial-union-cases/types/txt
1789+/* tok-505 %txt /tests/golden/types-partial-locals/tokens/txt
1790−/* src-506 %jibb /tests/golden/types-partial-union-edges/source/jibb
1790+/* tre-505 %txt /tests/golden/types-partial-locals/tree/txt
1791−/* tok-506 %txt /tests/golden/types-partial-union-edges/tokens/txt
1791+/* typ-505 %txt /tests/golden/types-partial-locals/types/txt
1792−/* tre-506 %txt /tests/golden/types-partial-union-edges/tree/txt
1792+/* src-506 %jibb /tests/golden/types-partial-many-atom-constraints/source/jibb
1793−/* typ-506 %txt /tests/golden/types-partial-union-edges/types/txt
1793+/* tok-506 %txt /tests/golden/types-partial-many-atom-constraints/tokens/txt
1794−/* src-507 %jibb /tests/golden/types-partial-unresolved-tag/source/jibb
1794+/* tre-506 %txt /tests/golden/types-partial-many-atom-constraints/tree/txt
1795−/* tok-507 %txt /tests/golden/types-partial-unresolved-tag/tokens/txt
1795+/* typ-506 %txt /tests/golden/types-partial-many-atom-constraints/types/txt
1796−/* tre-507 %txt /tests/golden/types-partial-unresolved-tag/tree/txt
1796+/* src-507 %jibb /tests/golden/types-partial-mold-bare-aura/source/jibb
1797−/* typ-507 %txt /tests/golden/types-partial-unresolved-tag/types/txt
1797+/* tok-507 %txt /tests/golden/types-partial-mold-bare-aura/tokens/txt
1798−/* src-508 %jibb /tests/golden/types-prelude-arithmetic/source/jibb
1798+/* tre-507 %txt /tests/golden/types-partial-mold-bare-aura/tree/txt
1799−/* tok-508 %txt /tests/golden/types-prelude-arithmetic/tokens/txt
1799+/* typ-507 %txt /tests/golden/types-partial-mold-bare-aura/types/txt
1800−/* tre-508 %txt /tests/golden/types-prelude-arithmetic/tree/txt
1800+/* src-508 %jibb /tests/golden/types-partial-mold-composite/source/jibb
1801−/* typ-508 %txt /tests/golden/types-prelude-arithmetic/types/txt
1801+/* tok-508 %txt /tests/golden/types-partial-mold-composite/tokens/txt
1802−/* src-509 %jibb /tests/golden/types-prelude-cmd/source/jibb
1802+/* tre-508 %txt /tests/golden/types-partial-mold-composite/tree/txt
1803−/* tok-509 %txt /tests/golden/types-prelude-cmd/tokens/txt
1803+/* typ-508 %txt /tests/golden/types-partial-mold-composite/types/txt
1804−/* tre-509 %txt /tests/golden/types-prelude-cmd/tree/txt
1804+/* src-509 %jibb /tests/golden/types-partial-mold-forward/source/jibb
1805−/* typ-509 %txt /tests/golden/types-prelude-cmd/types/txt
1805+/* tok-509 %txt /tests/golden/types-partial-mold-forward/tokens/txt
1806−/* src-510 %jibb /tests/golden/types-prelude-direct/source/jibb
1806+/* tre-509 %txt /tests/golden/types-partial-mold-forward/tree/txt
1807−/* tok-510 %txt /tests/golden/types-prelude-direct/tokens/txt
1807+/* typ-509 %txt /tests/golden/types-partial-mold-forward/types/txt
1808−/* tre-510 %txt /tests/golden/types-prelude-direct/tree/txt
1808+/* src-510 %jibb /tests/golden/types-partial-mold-recursive/source/jibb
1809−/* typ-510 %txt /tests/golden/types-prelude-direct/types/txt
1809+/* tok-510 %txt /tests/golden/types-partial-mold-recursive/tokens/txt
1810−/* src-511 %jibb /tests/golden/types-prelude-functional/source/jibb
1810+/* tre-510 %txt /tests/golden/types-partial-mold-recursive/tree/txt
1811−/* tok-511 %txt /tests/golden/types-prelude-functional/tokens/txt
1811+/* typ-510 %txt /tests/golden/types-partial-mold-recursive/types/txt
1812−/* tre-511 %txt /tests/golden/types-prelude-functional/tree/txt
1812+/* src-511 %jibb /tests/golden/types-partial-occurs/source/jibb
1813−/* typ-511 %txt /tests/golden/types-prelude-functional/types/txt
1813+/* tok-511 %txt /tests/golden/types-partial-occurs/tokens/txt
1814−/* src-512 %jibb /tests/golden/types-prelude-interface/source/jibb
1814+/* tre-511 %txt /tests/golden/types-partial-occurs/tree/txt
1815−/* tok-512 %txt /tests/golden/types-prelude-interface/tokens/txt
1815+/* typ-511 %txt /tests/golden/types-partial-occurs/types/txt
1816−/* tre-512 %txt /tests/golden/types-prelude-interface/tree/txt
1816+/* src-512 %jibb /tests/golden/types-partial-projection/source/jibb
1817−/* mod-512-1 %jibb /tests/golden/types-prelude-interface/modules/ui/left/jibb
1817+/* tok-512 %txt /tests/golden/types-partial-projection/tokens/txt
1818−/* mod-512-2 %jibb /tests/golden/types-prelude-interface/modules/ui/right/jibb
1818+/* tre-512 %txt /tests/golden/types-partial-projection/tree/txt
1819−/* typ-512 %txt /tests/golden/types-prelude-interface/types/txt
1819+/* typ-512 %txt /tests/golden/types-partial-projection/types/txt
1820−/* mtre-512 %txt /tests/golden/types-prelude-interface/module-trees/txt
1820+/* src-513 %jibb /tests/golden/types-partial-shadow-global/source/jibb
1821−/* src-513 %jibb /tests/golden/types-prelude-list-functions/source/jibb
1821+/* tok-513 %txt /tests/golden/types-partial-shadow-global/tokens/txt
1822−/* tok-513 %txt /tests/golden/types-prelude-list-functions/tokens/txt
1822+/* tre-513 %txt /tests/golden/types-partial-shadow-global/tree/txt
1823−/* tre-513 %txt /tests/golden/types-prelude-list-functions/tree/txt
1823+/* typ-513 %txt /tests/golden/types-partial-shadow-global/types/txt
1824−/* mod-513-1 %jibb /tests/golden/types-prelude-list-functions/modules/ui/lib/jibb
1824+/* src-514 %jibb /tests/golden/types-partial-shared-tvar/source/jibb
1825−/* typ-513 %txt /tests/golden/types-prelude-list-functions/types/txt
1825+/* tok-514 %txt /tests/golden/types-partial-shared-tvar/tokens/txt
1826−/* mtre-513 %txt /tests/golden/types-prelude-list-functions/module-trees/txt
1826+/* tre-514 %txt /tests/golden/types-partial-shared-tvar/tree/txt
1827−/* src-514 %jibb /tests/golden/types-prelude-list-helpers/source/jibb
1827+/* typ-514 %txt /tests/golden/types-partial-shared-tvar/types/txt
1828−/* tok-514 %txt /tests/golden/types-prelude-list-helpers/tokens/txt
1828+/* src-515 %jibb /tests/golden/types-partial-union-cases/source/jibb
1829−/* tre-514 %txt /tests/golden/types-prelude-list-helpers/tree/txt
1829+/* tok-515 %txt /tests/golden/types-partial-union-cases/tokens/txt
1830−/* typ-514 %txt /tests/golden/types-prelude-list-helpers/types/txt
1830+/* tre-515 %txt /tests/golden/types-partial-union-cases/tree/txt
1831−/* src-515 %jibb /tests/golden/types-prelude-predicates/source/jibb
1831+/* typ-515 %txt /tests/golden/types-partial-union-cases/types/txt
1832−/* tok-515 %txt /tests/golden/types-prelude-predicates/tokens/txt
1832+/* src-516 %jibb /tests/golden/types-partial-union-edges/source/jibb
1833−/* tre-515 %txt /tests/golden/types-prelude-predicates/tree/txt
1833+/* tok-516 %txt /tests/golden/types-partial-union-edges/tokens/txt
1834−/* typ-515 %txt /tests/golden/types-prelude-predicates/types/txt
1834+/* tre-516 %txt /tests/golden/types-partial-union-edges/tree/txt
1835−/* src-516 %jibb /tests/golden/types-prelude-unit-helpers/source/jibb
1835+/* typ-516 %txt /tests/golden/types-partial-union-edges/types/txt
1836−/* tok-516 %txt /tests/golden/types-prelude-unit-helpers/tokens/txt
1836+/* src-517 %jibb /tests/golden/types-partial-unresolved-tag/source/jibb
1837−/* tre-516 %txt /tests/golden/types-prelude-unit-helpers/tree/txt
1837+/* tok-517 %txt /tests/golden/types-partial-unresolved-tag/tokens/txt
1838−/* typ-516 %txt /tests/golden/types-prelude-unit-helpers/types/txt
1838+/* tre-517 %txt /tests/golden/types-partial-unresolved-tag/tree/txt
1839−/* src-517 %jibb /tests/golden/types-record-bound-variable/source/jibb
1839+/* typ-517 %txt /tests/golden/types-partial-unresolved-tag/types/txt
1840−/* tok-517 %txt /tests/golden/types-record-bound-variable/tokens/txt
1840+/* src-518 %jibb /tests/golden/types-prelude-arithmetic/source/jibb
1841−/* tre-517 %txt /tests/golden/types-record-bound-variable/tree/txt
1841+/* tok-518 %txt /tests/golden/types-prelude-arithmetic/tokens/txt
1842−/* typ-517 %txt /tests/golden/types-record-bound-variable/types/txt
1842+/* tre-518 %txt /tests/golden/types-prelude-arithmetic/tree/txt
1843−/* src-518 %jibb /tests/golden/types-record-cast-context/source/jibb
1843+/* typ-518 %txt /tests/golden/types-prelude-arithmetic/types/txt
1844−/* tok-518 %txt /tests/golden/types-record-cast-context/tokens/txt
1844+/* src-519 %jibb /tests/golden/types-prelude-cmd/source/jibb
1845−/* tre-518 %txt /tests/golden/types-record-cast-context/tree/txt
1845+/* tok-519 %txt /tests/golden/types-prelude-cmd/tokens/txt
1846−/* typ-518 %txt /tests/golden/types-record-cast-context/types/txt
1846+/* tre-519 %txt /tests/golden/types-prelude-cmd/tree/txt
1847−/* src-519 %jibb /tests/golden/types-record-change/source/jibb
1847+/* typ-519 %txt /tests/golden/types-prelude-cmd/types/txt
1848−/* tok-519 %txt /tests/golden/types-record-change/tokens/txt
1848+/* src-520 %jibb /tests/golden/types-prelude-direct/source/jibb
1849−/* tre-519 %txt /tests/golden/types-record-change/tree/txt
1849+/* tok-520 %txt /tests/golden/types-prelude-direct/tokens/txt
1850−/* typ-519 %txt /tests/golden/types-record-change/types/txt
1850+/* tre-520 %txt /tests/golden/types-prelude-direct/tree/txt
1851−/* src-520 %jibb /tests/golden/types-record-change-generic/source/jibb
1851+/* typ-520 %txt /tests/golden/types-prelude-direct/types/txt
1852−/* tok-520 %txt /tests/golden/types-record-change-generic/tokens/txt
1852+/* src-521 %jibb /tests/golden/types-prelude-functional/source/jibb
1853−/* tre-520 %txt /tests/golden/types-record-change-generic/tree/txt
1853+/* tok-521 %txt /tests/golden/types-prelude-functional/tokens/txt
1854−/* typ-520 %txt /tests/golden/types-record-change-generic/types/txt
1854+/* tre-521 %txt /tests/golden/types-prelude-functional/tree/txt
1855−/* src-521 %jibb /tests/golden/types-record-faces/source/jibb
1855+/* typ-521 %txt /tests/golden/types-prelude-functional/types/txt
1856−/* tok-521 %txt /tests/golden/types-record-faces/tokens/txt
1856+/* src-522 %jibb /tests/golden/types-prelude-interface/source/jibb
1857−/* tre-521 %txt /tests/golden/types-record-faces/tree/txt
1857+/* tok-522 %txt /tests/golden/types-prelude-interface/tokens/txt
1858−/* typ-521 %txt /tests/golden/types-record-faces/types/txt
1858+/* tre-522 %txt /tests/golden/types-prelude-interface/tree/txt
1859−/* src-522 %jibb /tests/golden/types-record-field-edit-separate/source/jibb
1859+/* mod-522-1 %jibb /tests/golden/types-prelude-interface/modules/ui/left/jibb
1860−/* tok-522 %txt /tests/golden/types-record-field-edit-separate/tokens/txt
1860+/* mod-522-2 %jibb /tests/golden/types-prelude-interface/modules/ui/right/jibb
1861−/* tre-522 %txt /tests/golden/types-record-field-edit-separate/tree/txt
1861+/* typ-522 %txt /tests/golden/types-prelude-interface/types/txt
1862−/* typ-522 %txt /tests/golden/types-record-field-edit-separate/types/txt
1862+/* mtre-522 %txt /tests/golden/types-prelude-interface/module-trees/txt
1863−/* src-523 %jibb /tests/golden/types-record-field-expr-duplicate/source/jibb
1863+/* src-523 %jibb /tests/golden/types-prelude-list-alias/source/jibb
1864−/* tok-523 %txt /tests/golden/types-record-field-expr-duplicate/tokens/txt
1864+/* tok-523 %txt /tests/golden/types-prelude-list-alias/tokens/txt
1865−/* tre-523 %txt /tests/golden/types-record-field-expr-duplicate/tree/txt
1865+/* tre-523 %txt /tests/golden/types-prelude-list-alias/tree/txt
1866−/* typ-523 %txt /tests/golden/types-record-field-expr-duplicate/types/txt
1866+/* typ-523 %txt /tests/golden/types-prelude-list-alias/types/txt
1867−/* src-524 %jibb /tests/golden/types-record-field-expr-separate/source/jibb
1867+/* src-524 %jibb /tests/golden/types-prelude-list-functions/source/jibb
1868−/* tok-524 %txt /tests/golden/types-record-field-expr-separate/tokens/txt
1868+/* tok-524 %txt /tests/golden/types-prelude-list-functions/tokens/txt
1869−/* tre-524 %txt /tests/golden/types-record-field-expr-separate/tree/txt
1869+/* tre-524 %txt /tests/golden/types-prelude-list-functions/tree/txt
1870−/* typ-524 %txt /tests/golden/types-record-field-expr-separate/types/txt
1870+/* mod-524-1 %jibb /tests/golden/types-prelude-list-functions/modules/ui/lib/jibb
1871−/* src-525 %jibb /tests/golden/types-record-field-module-reachable/source/jibb
1871+/* typ-524 %txt /tests/golden/types-prelude-list-functions/types/txt
1872−/* tok-525 %txt /tests/golden/types-record-field-module-reachable/tokens/txt
1872+/* mtre-524 %txt /tests/golden/types-prelude-list-functions/module-trees/txt
1873−/* tre-525 %txt /tests/golden/types-record-field-module-reachable/tree/txt
1873+/* src-525 %jibb /tests/golden/types-prelude-list-helpers/source/jibb
1874−/* mod-525-1 %jibb /tests/golden/types-record-field-module-reachable/modules/ui/lib/jibb
1874+/* tok-525 %txt /tests/golden/types-prelude-list-helpers/tokens/txt
1875−/* typ-525 %txt /tests/golden/types-record-field-module-reachable/types/txt
1875+/* tre-525 %txt /tests/golden/types-prelude-list-helpers/tree/txt
1876−/* mtre-525 %txt /tests/golden/types-record-field-module-reachable/module-trees/txt
1876+/* typ-525 %txt /tests/golden/types-prelude-list-helpers/types/txt
1877−/* src-526 %jibb /tests/golden/types-record-field-module-unused/source/jibb
1877+/* src-526 %jibb /tests/golden/types-prelude-predicates/source/jibb
1878−/* tok-526 %txt /tests/golden/types-record-field-module-unused/tokens/txt
1878+/* tok-526 %txt /tests/golden/types-prelude-predicates/tokens/txt
1879−/* tre-526 %txt /tests/golden/types-record-field-module-unused/tree/txt
1879+/* tre-526 %txt /tests/golden/types-prelude-predicates/tree/txt
1880−/* mod-526-1 %jibb /tests/golden/types-record-field-module-unused/modules/ui/good/jibb
1880+/* typ-526 %txt /tests/golden/types-prelude-predicates/types/txt
1881−/* mod-526-2 %jibb /tests/golden/types-record-field-module-unused/modules/ui/unused/jibb
1881+/* src-527 %jibb /tests/golden/types-prelude-unit-helpers/source/jibb
1882−/* typ-526 %txt /tests/golden/types-record-field-module-unused/types/txt
1882+/* tok-527 %txt /tests/golden/types-prelude-unit-helpers/tokens/txt
1883−/* mtre-526 %txt /tests/golden/types-record-field-module-unused/module-trees/txt
1883+/* tre-527 %txt /tests/golden/types-prelude-unit-helpers/tree/txt
1884−/* src-527 %jibb /tests/golden/types-record-field-nested-mold/source/jibb
1884+/* typ-527 %txt /tests/golden/types-prelude-unit-helpers/types/txt
1885−/* tok-527 %txt /tests/golden/types-record-field-nested-mold/tokens/txt
1885+/* src-528 %jibb /tests/golden/types-record-bound-variable/source/jibb
1886−/* tre-527 %txt /tests/golden/types-record-field-nested-mold/tree/txt
1886+/* tok-528 %txt /tests/golden/types-record-bound-variable/tokens/txt
1887−/* typ-527 %txt /tests/golden/types-record-field-nested-mold/types/txt
1887+/* tre-528 %txt /tests/golden/types-record-bound-variable/tree/txt
1888−/* src-528 %jibb /tests/golden/types-record-field-outer-inner/source/jibb
1888+/* typ-528 %txt /tests/golden/types-record-bound-variable/types/txt
1889−/* tok-528 %txt /tests/golden/types-record-field-outer-inner/tokens/txt
1889+/* src-529 %jibb /tests/golden/types-record-cast-context/source/jibb
1890−/* tre-528 %txt /tests/golden/types-record-field-outer-inner/tree/txt
1890+/* tok-529 %txt /tests/golden/types-record-cast-context/tokens/txt
1891−/* typ-528 %txt /tests/golden/types-record-field-outer-inner/types/txt
1891+/* tre-529 %txt /tests/golden/types-record-cast-context/tree/txt
1892−/* src-529 %jibb /tests/golden/types-record-field-sample-duplicate/source/jibb
1892+/* typ-529 %txt /tests/golden/types-record-cast-context/types/txt
1893−/* tok-529 %txt /tests/golden/types-record-field-sample-duplicate/tokens/txt
1893+/* src-530 %jibb /tests/golden/types-record-change/source/jibb
1894−/* tre-529 %txt /tests/golden/types-record-field-sample-duplicate/tree/txt
1894+/* tok-530 %txt /tests/golden/types-record-change/tokens/txt
1895−/* typ-529 %txt /tests/golden/types-record-field-sample-duplicate/types/txt
1895+/* tre-530 %txt /tests/golden/types-record-change/tree/txt
1896−/* src-530 %jibb /tests/golden/types-record-field-separate-molds/source/jibb
1896+/* typ-530 %txt /tests/golden/types-record-change/types/txt
1897−/* tok-530 %txt /tests/golden/types-record-field-separate-molds/tokens/txt
1897+/* src-531 %jibb /tests/golden/types-record-change-generic/source/jibb
1898−/* tre-530 %txt /tests/golden/types-record-field-separate-molds/tree/txt
1898+/* tok-531 %txt /tests/golden/types-record-change-generic/tokens/txt
1899−/* typ-530 %txt /tests/golden/types-record-field-separate-molds/types/txt
1899+/* tre-531 %txt /tests/golden/types-record-change-generic/tree/txt
1900−/* src-531 %jibb /tests/golden/types-record-field-unused-mold/source/jibb
1900+/* typ-531 %txt /tests/golden/types-record-change-generic/types/txt
1901−/* tok-531 %txt /tests/golden/types-record-field-unused-mold/tokens/txt
1901+/* src-532 %jibb /tests/golden/types-record-faces/source/jibb
1902−/* tre-531 %txt /tests/golden/types-record-field-unused-mold/tree/txt
1902+/* tok-532 %txt /tests/golden/types-record-faces/tokens/txt
1903−/* typ-531 %txt /tests/golden/types-record-field-unused-mold/types/txt
1903+/* tre-532 %txt /tests/golden/types-record-faces/tree/txt
1904−/* src-532 %jibb /tests/golden/types-record-import/source/jibb
1904+/* typ-532 %txt /tests/golden/types-record-faces/types/txt
1905−/* tok-532 %txt /tests/golden/types-record-import/tokens/txt
1905+/* src-533 %jibb /tests/golden/types-record-field-edit-separate/source/jibb
1906−/* tre-532 %txt /tests/golden/types-record-import/tree/txt
1906+/* tok-533 %txt /tests/golden/types-record-field-edit-separate/tokens/txt
1907−/* mod-532-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
1907+/* tre-533 %txt /tests/golden/types-record-field-edit-separate/tree/txt
1908−/* typ-532 %txt /tests/golden/types-record-import/types/txt
1908+/* typ-533 %txt /tests/golden/types-record-field-edit-separate/types/txt
1909−/* mtre-532 %txt /tests/golden/types-record-import/module-trees/txt
1909+/* src-534 %jibb /tests/golden/types-record-field-expr-duplicate/source/jibb
1910−/* src-533 %jibb /tests/golden/types-record-local-scheme/source/jibb
1910+/* tok-534 %txt /tests/golden/types-record-field-expr-duplicate/tokens/txt
1911−/* tok-533 %txt /tests/golden/types-record-local-scheme/tokens/txt
1911+/* tre-534 %txt /tests/golden/types-record-field-expr-duplicate/tree/txt
1912−/* tre-533 %txt /tests/golden/types-record-local-scheme/tree/txt
1912+/* typ-534 %txt /tests/golden/types-record-field-expr-duplicate/types/txt
1913−/* typ-533 %txt /tests/golden/types-record-local-scheme/types/txt
1913+/* src-535 %jibb /tests/golden/types-record-field-expr-separate/source/jibb
1914−/* src-534 %jibb /tests/golden/types-record-nested/source/jibb
1914+/* tok-535 %txt /tests/golden/types-record-field-expr-separate/tokens/txt
1915−/* tok-534 %txt /tests/golden/types-record-nested/tokens/txt
1915+/* tre-535 %txt /tests/golden/types-record-field-expr-separate/tree/txt
1916−/* tre-534 %txt /tests/golden/types-record-nested/tree/txt
1916+/* typ-535 %txt /tests/golden/types-record-field-expr-separate/types/txt
1917−/* typ-534 %txt /tests/golden/types-record-nested/types/txt
1917+/* src-536 %jibb /tests/golden/types-record-field-module-reachable/source/jibb
1918−/* src-535 %jibb /tests/golden/types-record-to-tuple/source/jibb
1918+/* tok-536 %txt /tests/golden/types-record-field-module-reachable/tokens/txt
1919−/* tok-535 %txt /tests/golden/types-record-to-tuple/tokens/txt
1919+/* tre-536 %txt /tests/golden/types-record-field-module-reachable/tree/txt
1920−/* tre-535 %txt /tests/golden/types-record-to-tuple/tree/txt
1920+/* mod-536-1 %jibb /tests/golden/types-record-field-module-reachable/modules/ui/lib/jibb
1921−/* typ-535 %txt /tests/golden/types-record-to-tuple/types/txt
1921+/* typ-536 %txt /tests/golden/types-record-field-module-reachable/types/txt
1922−/* src-536 %jibb /tests/golden/types-recursion-scc-failures/source/jibb
1922+/* mtre-536 %txt /tests/golden/types-record-field-module-reachable/module-trees/txt
1923−/* tok-536 %txt /tests/golden/types-recursion-scc-failures/tokens/txt
1923+/* src-537 %jibb /tests/golden/types-record-field-module-unused/source/jibb
1924−/* tre-536 %txt /tests/golden/types-recursion-scc-failures/tree/txt
1924+/* tok-537 %txt /tests/golden/types-record-field-module-unused/tokens/txt
1925−/* typ-536 %txt /tests/golden/types-recursion-scc-failures/types/txt
1925+/* tre-537 %txt /tests/golden/types-record-field-module-unused/tree/txt
1926−/* src-537 %jibb /tests/golden/types-recursion-scc-groups/source/jibb
1926+/* mod-537-1 %jibb /tests/golden/types-record-field-module-unused/modules/ui/good/jibb
1927−/* tok-537 %txt /tests/golden/types-recursion-scc-groups/tokens/txt
1927+/* mod-537-2 %jibb /tests/golden/types-record-field-module-unused/modules/ui/unused/jibb
1928−/* tre-537 %txt /tests/golden/types-recursion-scc-groups/tree/txt
1928+/* typ-537 %txt /tests/golden/types-record-field-module-unused/types/txt
1929−/* typ-537 %txt /tests/golden/types-recursion-scc-groups/types/txt
1929+/* mtre-537 %txt /tests/golden/types-record-field-module-unused/module-trees/txt
1930−/* src-538 %jibb /tests/golden/types-recursion-scc-import/source/jibb
1930+/* src-538 %jibb /tests/golden/types-record-field-nested-mold/source/jibb
1931−/* tok-538 %txt /tests/golden/types-recursion-scc-import/tokens/txt
1931+/* tok-538 %txt /tests/golden/types-record-field-nested-mold/tokens/txt
1932−/* tre-538 %txt /tests/golden/types-recursion-scc-import/tree/txt
1932+/* tre-538 %txt /tests/golden/types-record-field-nested-mold/tree/txt
1933−/* mod-538-1 %jibb /tests/golden/types-recursion-scc-import/modules/ui/lib/jibb
1933+/* typ-538 %txt /tests/golden/types-record-field-nested-mold/types/txt
1934−/* typ-538 %txt /tests/golden/types-recursion-scc-import/types/txt
1934+/* src-539 %jibb /tests/golden/types-record-field-outer-inner/source/jibb
1935−/* mtre-538 %txt /tests/golden/types-recursion-scc-import/module-trees/txt
1935+/* tok-539 %txt /tests/golden/types-record-field-outer-inner/tokens/txt
1936−/* src-539 %jibb /tests/golden/types-recursion-scc-import-bad/source/jibb
1936+/* tre-539 %txt /tests/golden/types-record-field-outer-inner/tree/txt
1937−/* tok-539 %txt /tests/golden/types-recursion-scc-import-bad/tokens/txt
1937+/* typ-539 %txt /tests/golden/types-record-field-outer-inner/types/txt
1938−/* tre-539 %txt /tests/golden/types-recursion-scc-import-bad/tree/txt
1938+/* src-540 %jibb /tests/golden/types-record-field-sample-duplicate/source/jibb
1939−/* mod-539-1 %jibb /tests/golden/types-recursion-scc-import-bad/modules/ui/lib/jibb
1939+/* tok-540 %txt /tests/golden/types-record-field-sample-duplicate/tokens/txt
1940−/* typ-539 %txt /tests/golden/types-recursion-scc-import-bad/types/txt
1940+/* tre-540 %txt /tests/golden/types-record-field-sample-duplicate/tree/txt
1941−/* mtre-539 %txt /tests/golden/types-recursion-scc-import-bad/module-trees/txt
1941+/* typ-540 %txt /tests/golden/types-record-field-sample-duplicate/types/txt
1942−/* src-540 %jibb /tests/golden/types-recursion-scc-local/source/jibb
1942+/* src-541 %jibb /tests/golden/types-record-field-separate-molds/source/jibb
1943−/* tok-540 %txt /tests/golden/types-recursion-scc-local/tokens/txt
1943+/* tok-541 %txt /tests/golden/types-record-field-separate-molds/tokens/txt
1944−/* tre-540 %txt /tests/golden/types-recursion-scc-local/tree/txt
1944+/* tre-541 %txt /tests/golden/types-record-field-separate-molds/tree/txt
1945−/* typ-540 %txt /tests/golden/types-recursion-scc-local/types/txt
1945+/* typ-541 %txt /tests/golden/types-record-field-separate-molds/types/txt
1946−/* src-541 %jibb /tests/golden/types-recursion-scc-order/source/jibb
1946+/* src-542 %jibb /tests/golden/types-record-field-unused-mold/source/jibb
1947−/* tok-541 %txt /tests/golden/types-recursion-scc-order/tokens/txt
1947+/* tok-542 %txt /tests/golden/types-record-field-unused-mold/tokens/txt
1948−/* tre-541 %txt /tests/golden/types-recursion-scc-order/tree/txt
1948+/* tre-542 %txt /tests/golden/types-record-field-unused-mold/tree/txt
1949−/* typ-541 %txt /tests/golden/types-recursion-scc-order/types/txt
1949+/* typ-542 %txt /tests/golden/types-record-field-unused-mold/types/txt
1950−/* src-542 %jibb /tests/golden/types-recursion-scc-shadow/source/jibb
1950+/* src-543 %jibb /tests/golden/types-record-import/source/jibb
1951−/* tok-542 %txt /tests/golden/types-recursion-scc-shadow/tokens/txt
1951+/* tok-543 %txt /tests/golden/types-record-import/tokens/txt
1952−/* tre-542 %txt /tests/golden/types-recursion-scc-shadow/tree/txt
1952+/* tre-543 %txt /tests/golden/types-record-import/tree/txt
1953−/* typ-542 %txt /tests/golden/types-recursion-scc-shadow/types/txt
1953+/* mod-543-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
1954−/* src-543 %jibb /tests/golden/types-recursive-branch/source/jibb
1954+/* typ-543 %txt /tests/golden/types-record-import/types/txt
1955−/* tok-543 %txt /tests/golden/types-recursive-branch/tokens/txt
1955+/* mtre-543 %txt /tests/golden/types-record-import/module-trees/txt
1956−/* tre-543 %txt /tests/golden/types-recursive-branch/tree/txt
1956+/* src-544 %jibb /tests/golden/types-record-local-scheme/source/jibb
1957−/* typ-543 %txt /tests/golden/types-recursive-branch/types/txt
1957+/* tok-544 %txt /tests/golden/types-record-local-scheme/tokens/txt
1958−/* src-544 %jibb /tests/golden/types-recursive-gate/source/jibb
1958+/* tre-544 %txt /tests/golden/types-record-local-scheme/tree/txt
1959−/* tok-544 %txt /tests/golden/types-recursive-gate/tokens/txt
1959+/* typ-544 %txt /tests/golden/types-record-local-scheme/types/txt
1960−/* tre-544 %txt /tests/golden/types-recursive-gate/tree/txt
1960+/* src-545 %jibb /tests/golden/types-record-nested/source/jibb
1961−/* typ-544 %txt /tests/golden/types-recursive-gate/types/txt
1961+/* tok-545 %txt /tests/golden/types-record-nested/tokens/txt
1962−/* src-545 %jibb /tests/golden/types-recursive-sample/source/jibb
1962+/* tre-545 %txt /tests/golden/types-record-nested/tree/txt
1963−/* tok-545 %txt /tests/golden/types-recursive-sample/tokens/txt
1963+/* typ-545 %txt /tests/golden/types-record-nested/types/txt
1964−/* tre-545 %txt /tests/golden/types-recursive-sample/tree/txt
1964+/* src-546 %jibb /tests/golden/types-record-to-tuple/source/jibb
1965−/* typ-545 %txt /tests/golden/types-recursive-sample/types/txt
1965+/* tok-546 %txt /tests/golden/types-record-to-tuple/tokens/txt
1966−/* src-546 %jibb /tests/golden/types-scope-library-poke/source/jibb
1966+/* tre-546 %txt /tests/golden/types-record-to-tuple/tree/txt
1967−/* tok-546 %txt /tests/golden/types-scope-library-poke/tokens/txt
1967+/* typ-546 %txt /tests/golden/types-record-to-tuple/types/txt
1968−/* tre-546 %txt /tests/golden/types-scope-library-poke/tree/txt
1968+/* src-547 %jibb /tests/golden/types-recursion-scc-failures/source/jibb
1969−/* typ-546 %txt /tests/golden/types-scope-library-poke/types/txt
1969+/* tok-547 %txt /tests/golden/types-recursion-scc-failures/tokens/txt
1970−/* src-547 %jibb /tests/golden/types-scope-root-api/source/jibb
1970+/* tre-547 %txt /tests/golden/types-recursion-scc-failures/tree/txt
1971−/* tok-547 %txt /tests/golden/types-scope-root-api/tokens/txt
1971+/* typ-547 %txt /tests/golden/types-recursion-scc-failures/types/txt
1972−/* tre-547 %txt /tests/golden/types-scope-root-api/tree/txt
1972+/* src-548 %jibb /tests/golden/types-recursion-scc-groups/source/jibb
1973−/* typ-547 %txt /tests/golden/types-scope-root-api/types/txt
1973+/* tok-548 %txt /tests/golden/types-recursion-scc-groups/tokens/txt
1974−/* src-548 %jibb /tests/golden/types-scope-store-duplicate/source/jibb
1974+/* tre-548 %txt /tests/golden/types-recursion-scc-groups/tree/txt
1975−/* tok-548 %txt /tests/golden/types-scope-store-duplicate/tokens/txt
1975+/* typ-548 %txt /tests/golden/types-recursion-scc-groups/types/txt
1976−/* tre-548 %txt /tests/golden/types-scope-store-duplicate/tree/txt
1976+/* src-549 %jibb /tests/golden/types-recursion-scc-import/source/jibb
1977−/* typ-548 %txt /tests/golden/types-scope-store-duplicate/types/txt
1977+/* tok-549 %txt /tests/golden/types-recursion-scc-import/tokens/txt
1978−/* src-549 %jibb /tests/golden/types-scope-store-shadow/source/jibb
1978+/* tre-549 %txt /tests/golden/types-recursion-scc-import/tree/txt
1979−/* tok-549 %txt /tests/golden/types-scope-store-shadow/tokens/txt
1979+/* mod-549-1 %jibb /tests/golden/types-recursion-scc-import/modules/ui/lib/jibb
1980−/* tre-549 %txt /tests/golden/types-scope-store-shadow/tree/txt
1980+/* typ-549 %txt /tests/golden/types-recursion-scc-import/types/txt
1981−/* typ-549 %txt /tests/golden/types-scope-store-shadow/types/txt
1981+/* mtre-549 %txt /tests/golden/types-recursion-scc-import/module-trees/txt
1982−/* src-550 %jibb /tests/golden/types-single-case-pattern/source/jibb
1982+/* src-550 %jibb /tests/golden/types-recursion-scc-import-bad/source/jibb
1983−/* tok-550 %txt /tests/golden/types-single-case-pattern/tokens/txt
1983+/* tok-550 %txt /tests/golden/types-recursion-scc-import-bad/tokens/txt
1984−/* tre-550 %txt /tests/golden/types-single-case-pattern/tree/txt
1984+/* tre-550 %txt /tests/golden/types-recursion-scc-import-bad/tree/txt
1985−/* typ-550 %txt /tests/golden/types-single-case-pattern/types/txt
1985+/* mod-550-1 %jibb /tests/golden/types-recursion-scc-import-bad/modules/ui/lib/jibb
1986−/* src-551 %jibb /tests/golden/types-string-interpolation/source/jibb
1986+/* typ-550 %txt /tests/golden/types-recursion-scc-import-bad/types/txt
1987−/* tok-551 %txt /tests/golden/types-string-interpolation/tokens/txt
1987+/* mtre-550 %txt /tests/golden/types-recursion-scc-import-bad/module-trees/txt
1988−/* tre-551 %txt /tests/golden/types-string-interpolation/tree/txt
1988+/* src-551 %jibb /tests/golden/types-recursion-scc-local/source/jibb
1989−/* typ-551 %txt /tests/golden/types-string-interpolation/types/txt
1989+/* tok-551 %txt /tests/golden/types-recursion-scc-local/tokens/txt
1990−/* src-552 %jibb /tests/golden/types-tuple-context/source/jibb
1990+/* tre-551 %txt /tests/golden/types-recursion-scc-local/tree/txt
1991−/* tok-552 %txt /tests/golden/types-tuple-context/tokens/txt
1991+/* typ-551 %txt /tests/golden/types-recursion-scc-local/types/txt
1992−/* tre-552 %txt /tests/golden/types-tuple-context/tree/txt
1992+/* src-552 %jibb /tests/golden/types-recursion-scc-order/source/jibb
1993−/* typ-552 %txt /tests/golden/types-tuple-context/types/txt
1993+/* tok-552 %txt /tests/golden/types-recursion-scc-order/tokens/txt
1994−/* src-553 %jibb /tests/golden/types-tuple-context-nested/source/jibb
1994+/* tre-552 %txt /tests/golden/types-recursion-scc-order/tree/txt
1995−/* tok-553 %txt /tests/golden/types-tuple-context-nested/tokens/txt
1995+/* typ-552 %txt /tests/golden/types-recursion-scc-order/types/txt
1996−/* tre-553 %txt /tests/golden/types-tuple-context-nested/tree/txt
1996+/* src-553 %jibb /tests/golden/types-recursion-scc-shadow/source/jibb
1997−/* typ-553 %txt /tests/golden/types-tuple-context-nested/types/txt
1997+/* tok-553 %txt /tests/golden/types-recursion-scc-shadow/tokens/txt
1998−/* src-554 %jibb /tests/golden/types-union-alias/source/jibb
1998+/* tre-553 %txt /tests/golden/types-recursion-scc-shadow/tree/txt
1999−/* tok-554 %txt /tests/golden/types-union-alias/tokens/txt
1999+/* typ-553 %txt /tests/golden/types-recursion-scc-shadow/types/txt
2000−/* tre-554 %txt /tests/golden/types-union-alias/tree/txt
2000+/* src-554 %jibb /tests/golden/types-recursive-branch/source/jibb
2001−/* typ-554 %txt /tests/golden/types-union-alias/types/txt
2001+/* tok-554 %txt /tests/golden/types-recursive-branch/tokens/txt
2002−/* src-555 %jibb /tests/golden/types-union-branch-context/source/jibb
2002+/* tre-554 %txt /tests/golden/types-recursive-branch/tree/txt
2003−/* tok-555 %txt /tests/golden/types-union-branch-context/tokens/txt
2003+/* typ-554 %txt /tests/golden/types-recursive-branch/types/txt
2004−/* tre-555 %txt /tests/golden/types-union-branch-context/tree/txt
2004+/* src-555 %jibb /tests/golden/types-recursive-gate/source/jibb
2005−/* typ-555 %txt /tests/golden/types-union-branch-context/types/txt
2005+/* tok-555 %txt /tests/golden/types-recursive-gate/tokens/txt
2006−/* src-556 %jibb /tests/golden/types-union-branch-pending/source/jibb
2006+/* tre-555 %txt /tests/golden/types-recursive-gate/tree/txt
2007−/* tok-556 %txt /tests/golden/types-union-branch-pending/tokens/txt
2007+/* typ-555 %txt /tests/golden/types-recursive-gate/types/txt
2008−/* tre-556 %txt /tests/golden/types-union-branch-pending/tree/txt
2008+/* src-556 %jibb /tests/golden/types-recursive-sample/source/jibb
2009−/* typ-556 %txt /tests/golden/types-union-branch-pending/types/txt
2009+/* tok-556 %txt /tests/golden/types-recursive-sample/tokens/txt
2010−/* src-557 %jibb /tests/golden/types-union-constructor-shape/source/jibb
2010+/* tre-556 %txt /tests/golden/types-recursive-sample/tree/txt
2011−/* tok-557 %txt /tests/golden/types-union-constructor-shape/tokens/txt
2011+/* typ-556 %txt /tests/golden/types-recursive-sample/types/txt
2012−/* tre-557 %txt /tests/golden/types-union-constructor-shape/tree/txt
2012+/* src-557 %jibb /tests/golden/types-scope-library-poke/source/jibb
2013−/* typ-557 %txt /tests/golden/types-union-constructor-shape/types/txt
2013+/* tok-557 %txt /tests/golden/types-scope-library-poke/tokens/txt
2014−/* src-558 %jibb /tests/golden/types-union-context-flow/source/jibb
2014+/* tre-557 %txt /tests/golden/types-scope-library-poke/tree/txt
2015−/* tok-558 %txt /tests/golden/types-union-context-flow/tokens/txt
2015+/* typ-557 %txt /tests/golden/types-scope-library-poke/types/txt
2016−/* tre-558 %txt /tests/golden/types-union-context-flow/tree/txt
2016+/* src-558 %jibb /tests/golden/types-scope-root-api/source/jibb
2017−/* typ-558 %txt /tests/golden/types-union-context-flow/types/txt
2017+/* tok-558 %txt /tests/golden/types-scope-root-api/tokens/txt
2018−/* src-559 %jibb /tests/golden/types-union-finite/source/jibb
2018+/* tre-558 %txt /tests/golden/types-scope-root-api/tree/txt
2019−/* tok-559 %txt /tests/golden/types-union-finite/tokens/txt
2019+/* typ-558 %txt /tests/golden/types-scope-root-api/types/txt
2020−/* tre-559 %txt /tests/golden/types-union-finite/tree/txt
2020+/* src-559 %jibb /tests/golden/types-scope-store-duplicate/source/jibb
2021−/* typ-559 %txt /tests/golden/types-union-finite/types/txt
2021+/* tok-559 %txt /tests/golden/types-scope-store-duplicate/tokens/txt
2022−/* src-560 %jibb /tests/golden/types-union-finite-context/source/jibb
2022+/* tre-559 %txt /tests/golden/types-scope-store-duplicate/tree/txt
2023−/* tok-560 %txt /tests/golden/types-union-finite-context/tokens/txt
2023+/* typ-559 %txt /tests/golden/types-scope-store-duplicate/types/txt
2024−/* tre-560 %txt /tests/golden/types-union-finite-context/tree/txt
2024+/* src-560 %jibb /tests/golden/types-scope-store-shadow/source/jibb
2025−/* typ-560 %txt /tests/golden/types-union-finite-context/types/txt
2025+/* tok-560 %txt /tests/golden/types-scope-store-shadow/tokens/txt
2026−/* src-561 %jibb /tests/golden/types-union-finite-generic/source/jibb
2026+/* tre-560 %txt /tests/golden/types-scope-store-shadow/tree/txt
2027−/* tok-561 %txt /tests/golden/types-union-finite-generic/tokens/txt
2027+/* typ-560 %txt /tests/golden/types-scope-store-shadow/types/txt
2028−/* tre-561 %txt /tests/golden/types-union-finite-generic/tree/txt
2028+/* src-561 %jibb /tests/golden/types-single-case-pattern/source/jibb
2029−/* typ-561 %txt /tests/golden/types-union-finite-generic/types/txt
2029+/* tok-561 %txt /tests/golden/types-single-case-pattern/tokens/txt
2030−/* src-562 %jibb /tests/golden/types-union-finite-limit/source/jibb
2030+/* tre-561 %txt /tests/golden/types-single-case-pattern/tree/txt
2031−/* tok-562 %txt /tests/golden/types-union-finite-limit/tokens/txt
2031+/* typ-561 %txt /tests/golden/types-single-case-pattern/types/txt
2032−/* tre-562 %txt /tests/golden/types-union-finite-limit/tree/txt
2032+/* src-562 %jibb /tests/golden/types-string-interpolation/source/jibb
2033−/* typ-562 %txt /tests/golden/types-union-finite-limit/types/txt
2033+/* tok-562 %txt /tests/golden/types-string-interpolation/tokens/txt
2034−/* src-563 %jibb /tests/golden/types-union-import/source/jibb
2034+/* tre-562 %txt /tests/golden/types-string-interpolation/tree/txt
2035−/* tok-563 %txt /tests/golden/types-union-import/tokens/txt
2035+/* typ-562 %txt /tests/golden/types-string-interpolation/types/txt
2036−/* tre-563 %txt /tests/golden/types-union-import/tree/txt
2036+/* src-563 %jibb /tests/golden/types-tuple-context/source/jibb
2037−/* mod-563-1 %jibb /tests/golden/types-union-import/modules/ui/lib/jibb
2037+/* tok-563 %txt /tests/golden/types-tuple-context/tokens/txt
2038−/* typ-563 %txt /tests/golden/types-union-import/types/txt
2038+/* tre-563 %txt /tests/golden/types-tuple-context/tree/txt
2039−/* mtre-563 %txt /tests/golden/types-union-import/module-trees/txt
2039+/* typ-563 %txt /tests/golden/types-tuple-context/types/txt
2040−/* src-564 %jibb /tests/golden/types-union-local-pending/source/jibb
2040+/* src-564 %jibb /tests/golden/types-tuple-context-nested/source/jibb
2041−/* tok-564 %txt /tests/golden/types-union-local-pending/tokens/txt
2041+/* tok-564 %txt /tests/golden/types-tuple-context-nested/tokens/txt
2042−/* tre-564 %txt /tests/golden/types-union-local-pending/tree/txt
2042+/* tre-564 %txt /tests/golden/types-tuple-context-nested/tree/txt
2043−/* typ-564 %txt /tests/golden/types-union-local-pending/types/txt
2043+/* typ-564 %txt /tests/golden/types-tuple-context-nested/types/txt
2044−/* src-565 %jibb /tests/golden/types-union-nonwing-subject/source/jibb
2044+/* src-565 %jibb /tests/golden/types-union-alias/source/jibb
2045−/* tok-565 %txt /tests/golden/types-union-nonwing-subject/tokens/txt
2045+/* tok-565 %txt /tests/golden/types-union-alias/tokens/txt
2046−/* tre-565 %txt /tests/golden/types-union-nonwing-subject/tree/txt
2046+/* tre-565 %txt /tests/golden/types-union-alias/tree/txt
2047−/* typ-565 %txt /tests/golden/types-union-nonwing-subject/types/txt
2047+/* typ-565 %txt /tests/golden/types-union-alias/types/txt
2048−/* src-566 %jibb /tests/golden/types-union-overlap/source/jibb
2048+/* src-566 %jibb /tests/golden/types-union-branch-context/source/jibb
2049−/* tok-566 %txt /tests/golden/types-union-overlap/tokens/txt
2049+/* tok-566 %txt /tests/golden/types-union-branch-context/tokens/txt
2050−/* tre-566 %txt /tests/golden/types-union-overlap/tree/txt
2050+/* tre-566 %txt /tests/golden/types-union-branch-context/tree/txt
2051−/* typ-566 %txt /tests/golden/types-union-overlap/types/txt
2051+/* typ-566 %txt /tests/golden/types-union-branch-context/types/txt
2052−/* src-567 %jibb /tests/golden/types-union-overlap-nested/source/jibb
2052+/* src-567 %jibb /tests/golden/types-union-branch-pending/source/jibb
2053−/* tok-567 %txt /tests/golden/types-union-overlap-nested/tokens/txt
2053+/* tok-567 %txt /tests/golden/types-union-branch-pending/tokens/txt
2054−/* tre-567 %txt /tests/golden/types-union-overlap-nested/tree/txt
2054+/* tre-567 %txt /tests/golden/types-union-branch-pending/tree/txt
2055−/* typ-567 %txt /tests/golden/types-union-overlap-nested/types/txt
2055+/* typ-567 %txt /tests/golden/types-union-branch-pending/types/txt
2056−/* src-568 %jibb /tests/golden/types-union-pattern-result-context/source/jibb
2056+/* src-568 %jibb /tests/golden/types-union-constructor-shape/source/jibb
2057−/* tok-568 %txt /tests/golden/types-union-pattern-result-context/tokens/txt
2057+/* tok-568 %txt /tests/golden/types-union-constructor-shape/tokens/txt
2058−/* tre-568 %txt /tests/golden/types-union-pattern-result-context/tree/txt
2058+/* tre-568 %txt /tests/golden/types-union-constructor-shape/tree/txt
2059−/* typ-568 %txt /tests/golden/types-union-pattern-result-context/types/txt
2059+/* typ-568 %txt /tests/golden/types-union-constructor-shape/types/txt
2060−/* src-569 %jibb /tests/golden/types-union-pattern-result-controls/source/jibb
2060+/* src-569 %jibb /tests/golden/types-union-context-flow/source/jibb
2061−/* tok-569 %txt /tests/golden/types-union-pattern-result-controls/tokens/txt
2061+/* tok-569 %txt /tests/golden/types-union-context-flow/tokens/txt
2062−/* tre-569 %txt /tests/golden/types-union-pattern-result-controls/tree/txt
2062+/* tre-569 %txt /tests/golden/types-union-context-flow/tree/txt
2063−/* typ-569 %txt /tests/golden/types-union-pattern-result-controls/types/txt
2063+/* typ-569 %txt /tests/golden/types-union-context-flow/types/txt
2064−/* src-570 %jibb /tests/golden/types-union-patterns/source/jibb
2064+/* src-570 %jibb /tests/golden/types-union-finite/source/jibb
2065−/* tok-570 %txt /tests/golden/types-union-patterns/tokens/txt
2065+/* tok-570 %txt /tests/golden/types-union-finite/tokens/txt
2066−/* tre-570 %txt /tests/golden/types-union-patterns/tree/txt
2066+/* tre-570 %txt /tests/golden/types-union-finite/tree/txt
2067−/* typ-570 %txt /tests/golden/types-union-patterns/types/txt
2067+/* typ-570 %txt /tests/golden/types-union-finite/types/txt
2068−/* src-571 %jibb /tests/golden/types-union-patterns-generic/source/jibb
2068+/* src-571 %jibb /tests/golden/types-union-finite-context/source/jibb
2069−/* tok-571 %txt /tests/golden/types-union-patterns-generic/tokens/txt
2069+/* tok-571 %txt /tests/golden/types-union-finite-context/tokens/txt
2070−/* tre-571 %txt /tests/golden/types-union-patterns-generic/tree/txt
2070+/* tre-571 %txt /tests/golden/types-union-finite-context/tree/txt
2071−/* typ-571 %txt /tests/golden/types-union-patterns-generic/types/txt
2071+/* typ-571 %txt /tests/golden/types-union-finite-context/types/txt
2072−/* src-572 %jibb /tests/golden/types-union-patterns-import/source/jibb
2072+/* src-572 %jibb /tests/golden/types-union-finite-generic/source/jibb
2073−/* tok-572 %txt /tests/golden/types-union-patterns-import/tokens/txt
2073+/* tok-572 %txt /tests/golden/types-union-finite-generic/tokens/txt
2074−/* tre-572 %txt /tests/golden/types-union-patterns-import/tree/txt
2074+/* tre-572 %txt /tests/golden/types-union-finite-generic/tree/txt
2075−/* mod-572-1 %jibb /tests/golden/types-union-patterns-import/modules/ui/lib/jibb
2075+/* typ-572 %txt /tests/golden/types-union-finite-generic/types/txt
2076−/* typ-572 %txt /tests/golden/types-union-patterns-import/types/txt
2076+/* src-573 %jibb /tests/golden/types-union-finite-limit/source/jibb
2077−/* mtre-572 %txt /tests/golden/types-union-patterns-import/module-trees/txt
2077+/* tok-573 %txt /tests/golden/types-union-finite-limit/tokens/txt
2078−/* src-573 %jibb /tests/golden/types-union-phantom-generic/source/jibb
2078+/* tre-573 %txt /tests/golden/types-union-finite-limit/tree/txt
2079−/* tok-573 %txt /tests/golden/types-union-phantom-generic/tokens/txt
2079+/* typ-573 %txt /tests/golden/types-union-finite-limit/types/txt
2080−/* tre-573 %txt /tests/golden/types-union-phantom-generic/tree/txt
2080+/* src-574 %jibb /tests/golden/types-union-import/source/jibb
2081−/* typ-573 %txt /tests/golden/types-union-phantom-generic/types/txt
2081+/* tok-574 %txt /tests/golden/types-union-import/tokens/txt
2082−/* src-574 %jibb /tests/golden/types-union-polymorphic-identity/source/jibb
2082+/* tre-574 %txt /tests/golden/types-union-import/tree/txt
2083−/* tok-574 %txt /tests/golden/types-union-polymorphic-identity/tokens/txt
2083+/* mod-574-1 %jibb /tests/golden/types-union-import/modules/ui/lib/jibb
2084−/* tre-574 %txt /tests/golden/types-union-polymorphic-identity/tree/txt
2084+/* typ-574 %txt /tests/golden/types-union-import/types/txt
2085−/* mod-574-1 %jibb /tests/golden/types-union-polymorphic-identity/modules/ui/one/jibb
2085+/* mtre-574 %txt /tests/golden/types-union-import/module-trees/txt
2086−/* mod-574-2 %jibb /tests/golden/types-union-polymorphic-identity/modules/ui/two/jibb
2086+/* src-575 %jibb /tests/golden/types-union-local-pending/source/jibb
2087−/* typ-574 %txt /tests/golden/types-union-polymorphic-identity/types/txt
2087+/* tok-575 %txt /tests/golden/types-union-local-pending/tokens/txt
2088−/* mtre-574 %txt /tests/golden/types-union-polymorphic-identity/module-trees/txt
2088+/* tre-575 %txt /tests/golden/types-union-local-pending/tree/txt
2089−/* src-575 %jibb /tests/golden/types-union-print-cross-namespace/source/jibb
2089+/* typ-575 %txt /tests/golden/types-union-local-pending/types/txt
2090−/* tok-575 %txt /tests/golden/types-union-print-cross-namespace/tokens/txt
2090+/* src-576 %jibb /tests/golden/types-union-nonwing-subject/source/jibb
2091−/* tre-575 %txt /tests/golden/types-union-print-cross-namespace/tree/txt
2091+/* tok-576 %txt /tests/golden/types-union-nonwing-subject/tokens/txt
2092−/* mod-575-1 %jibb /tests/golden/types-union-print-cross-namespace/modules/ui/lib/jibb
2092+/* tre-576 %txt /tests/golden/types-union-nonwing-subject/tree/txt
2093−/* typ-575 %txt /tests/golden/types-union-print-cross-namespace/types/txt
2093+/* typ-576 %txt /tests/golden/types-union-nonwing-subject/types/txt
2094−/* mtre-575 %txt /tests/golden/types-union-print-cross-namespace/module-trees/txt
2094+/* src-577 %jibb /tests/golden/types-union-overlap/source/jibb
2095−/* src-576 %jibb /tests/golden/types-union-print-distinct/source/jibb
2095+/* tok-577 %txt /tests/golden/types-union-overlap/tokens/txt
2096−/* tok-576 %txt /tests/golden/types-union-print-distinct/tokens/txt
2096+/* tre-577 %txt /tests/golden/types-union-overlap/tree/txt
2097−/* tre-576 %txt /tests/golden/types-union-print-distinct/tree/txt
2097+/* typ-577 %txt /tests/golden/types-union-overlap/types/txt
2098−/* mod-576-1 %jibb /tests/golden/types-union-print-distinct/modules/ui/left/jibb
2098+/* src-578 %jibb /tests/golden/types-union-overlap-nested/source/jibb
2099−/* mod-576-2 %jibb /tests/golden/types-union-print-distinct/modules/ui/right/jibb
2099+/* tok-578 %txt /tests/golden/types-union-overlap-nested/tokens/txt
2100−/* mod-576-3 %jibb /tests/golden/types-union-print-distinct/modules/ui/twin/jibb
2100+/* tre-578 %txt /tests/golden/types-union-overlap-nested/tree/txt
2101−/* typ-576 %txt /tests/golden/types-union-print-distinct/types/txt
2101+/* typ-578 %txt /tests/golden/types-union-overlap-nested/types/txt
2102−/* mtre-576 %txt /tests/golden/types-union-print-distinct/module-trees/txt
2102+/* src-579 %jibb /tests/golden/types-union-pattern-result-context/source/jibb
2103−/* src-577 %jibb /tests/golden/types-union-print-escape/source/jibb
2103+/* tok-579 %txt /tests/golden/types-union-pattern-result-context/tokens/txt
2104−/* tok-577 %txt /tests/golden/types-union-print-escape/tokens/txt
2104+/* tre-579 %txt /tests/golden/types-union-pattern-result-context/tree/txt
2105−/* tre-577 %txt /tests/golden/types-union-print-escape/tree/txt
2105+/* typ-579 %txt /tests/golden/types-union-pattern-result-context/types/txt
2106−/* typ-577 %txt /tests/golden/types-union-print-escape/types/txt
2106+/* src-580 %jibb /tests/golden/types-union-pattern-result-controls/source/jibb
2107−/* src-578 %jibb /tests/golden/types-union-print-local/source/jibb
2107+/* tok-580 %txt /tests/golden/types-union-pattern-result-controls/tokens/txt
2108−/* tok-578 %txt /tests/golden/types-union-print-local/tokens/txt
2108+/* tre-580 %txt /tests/golden/types-union-pattern-result-controls/tree/txt
2109−/* tre-578 %txt /tests/golden/types-union-print-local/tree/txt
2109+/* typ-580 %txt /tests/golden/types-union-pattern-result-controls/types/txt
2110−/* typ-578 %txt /tests/golden/types-union-print-local/types/txt
2110+/* src-581 %jibb /tests/golden/types-union-patterns/source/jibb
2111−/* src-579 %jibb /tests/golden/types-union-print-nested/source/jibb
2111+/* tok-581 %txt /tests/golden/types-union-patterns/tokens/txt
2112−/* tok-579 %txt /tests/golden/types-union-print-nested/tokens/txt
2112+/* tre-581 %txt /tests/golden/types-union-patterns/tree/txt
2113−/* tre-579 %txt /tests/golden/types-union-print-nested/tree/txt
2113+/* typ-581 %txt /tests/golden/types-union-patterns/types/txt
2114−/* typ-579 %txt /tests/golden/types-union-print-nested/types/txt
2114+/* src-582 %jibb /tests/golden/types-union-patterns-generic/source/jibb
2115−/* src-580 %jibb /tests/golden/types-union-print-same-origin/source/jibb
2115+/* tok-582 %txt /tests/golden/types-union-patterns-generic/tokens/txt
2116−/* tok-580 %txt /tests/golden/types-union-print-same-origin/tokens/txt
2116+/* tre-582 %txt /tests/golden/types-union-patterns-generic/tree/txt
2117−/* tre-580 %txt /tests/golden/types-union-print-same-origin/tree/txt
2117+/* typ-582 %txt /tests/golden/types-union-patterns-generic/types/txt
2118−/* mod-580-1 %jibb /tests/golden/types-union-print-same-origin/modules/ui/shared/jibb
2118+/* src-583 %jibb /tests/golden/types-union-patterns-import/source/jibb
2119−/* typ-580 %txt /tests/golden/types-union-print-same-origin/types/txt
2119+/* tok-583 %txt /tests/golden/types-union-patterns-import/tokens/txt
2120−/* mtre-580 %txt /tests/golden/types-union-print-same-origin/module-trees/txt
2120+/* tre-583 %txt /tests/golden/types-union-patterns-import/tree/txt
2121−/* src-581 %jibb /tests/golden/types-union-print-transitive/source/jibb
2121+/* mod-583-1 %jibb /tests/golden/types-union-patterns-import/modules/ui/lib/jibb
2122−/* tok-581 %txt /tests/golden/types-union-print-transitive/tokens/txt
2122+/* typ-583 %txt /tests/golden/types-union-patterns-import/types/txt
2123−/* tre-581 %txt /tests/golden/types-union-print-transitive/tree/txt
2123+/* mtre-583 %txt /tests/golden/types-union-patterns-import/module-trees/txt
2124−/* mod-581-1 %jibb /tests/golden/types-union-print-transitive/modules/ui/mid/jibb
2124+/* src-584 %jibb /tests/golden/types-union-phantom-generic/source/jibb
2125−/* mod-581-2 %jibb /tests/golden/types-union-print-transitive/modules/ui/base/jibb
2125+/* tok-584 %txt /tests/golden/types-union-phantom-generic/tokens/txt
2126−/* typ-581 %txt /tests/golden/types-union-print-transitive/types/txt
2126+/* tre-584 %txt /tests/golden/types-union-phantom-generic/tree/txt
2127−/* mtre-581 %txt /tests/golden/types-union-print-transitive/module-trees/txt
2127+/* typ-584 %txt /tests/golden/types-union-phantom-generic/types/txt
2128−/* src-582 %jibb /tests/golden/types-union-singleton/source/jibb
2128+/* src-585 %jibb /tests/golden/types-union-polymorphic-identity/source/jibb
2129−/* tok-582 %txt /tests/golden/types-union-singleton/tokens/txt
2129+/* tok-585 %txt /tests/golden/types-union-polymorphic-identity/tokens/txt
2130−/* tre-582 %txt /tests/golden/types-union-singleton/tree/txt
2130+/* tre-585 %txt /tests/golden/types-union-polymorphic-identity/tree/txt
2131−/* typ-582 %txt /tests/golden/types-union-singleton/types/txt
2131+/* mod-585-1 %jibb /tests/golden/types-union-polymorphic-identity/modules/ui/one/jibb
2132−/* src-583 %jibb /tests/golden/types-union-tag-atoms/source/jibb
2132+/* mod-585-2 %jibb /tests/golden/types-union-polymorphic-identity/modules/ui/two/jibb
2133−/* tok-583 %txt /tests/golden/types-union-tag-atoms/tokens/txt
2133+/* typ-585 %txt /tests/golden/types-union-polymorphic-identity/types/txt
2134−/* tre-583 %txt /tests/golden/types-union-tag-atoms/tree/txt
2134+/* mtre-585 %txt /tests/golden/types-union-polymorphic-identity/module-trees/txt
2135−/* typ-583 %txt /tests/golden/types-union-tag-atoms/types/txt
2135+/* src-586 %jibb /tests/golden/types-union-print-cross-namespace/source/jibb
2136−/* src-584 %jibb /tests/golden/types-union-tags/source/jibb
2136+/* tok-586 %txt /tests/golden/types-union-print-cross-namespace/tokens/txt
2137−/* tok-584 %txt /tests/golden/types-union-tags/tokens/txt
2137+/* tre-586 %txt /tests/golden/types-union-print-cross-namespace/tree/txt
2138−/* tre-584 %txt /tests/golden/types-union-tags/tree/txt
2138+/* mod-586-1 %jibb /tests/golden/types-union-print-cross-namespace/modules/ui/lib/jibb
2139−/* typ-584 %txt /tests/golden/types-union-tags/types/txt
2139+/* typ-586 %txt /tests/golden/types-union-print-cross-namespace/types/txt
2140−/* src-585 %jibb /tests/golden/types-union-unresolved/source/jibb
2140+/* mtre-586 %txt /tests/golden/types-union-print-cross-namespace/module-trees/txt
2141−/* tok-585 %txt /tests/golden/types-union-unresolved/tokens/txt
2141+/* src-587 %jibb /tests/golden/types-union-print-distinct/source/jibb
2142−/* tre-585 %txt /tests/golden/types-union-unresolved/tree/txt
2142+/* tok-587 %txt /tests/golden/types-union-print-distinct/tokens/txt
2143−/* typ-585 %txt /tests/golden/types-union-unresolved/types/txt
2143+/* tre-587 %txt /tests/golden/types-union-print-distinct/tree/txt
2144−/* src-586 %jibb /tests/golden/types-union-unresolved-flow/source/jibb
2144+/* mod-587-1 %jibb /tests/golden/types-union-print-distinct/modules/ui/left/jibb
2145−/* tok-586 %txt /tests/golden/types-union-unresolved-flow/tokens/txt
2145+/* mod-587-2 %jibb /tests/golden/types-union-print-distinct/modules/ui/right/jibb
2146−/* tre-586 %txt /tests/golden/types-union-unresolved-flow/tree/txt
2146+/* mod-587-3 %jibb /tests/golden/types-union-print-distinct/modules/ui/twin/jibb
2147−/* typ-586 %txt /tests/golden/types-union-unresolved-flow/types/txt
2147+/* typ-587 %txt /tests/golden/types-union-print-distinct/types/txt
2148−/* src-587 %jibb /tests/golden/types-unit-construction/source/jibb
2148+/* mtre-587 %txt /tests/golden/types-union-print-distinct/module-trees/txt
2149−/* tok-587 %txt /tests/golden/types-unit-construction/tokens/txt
2149+/* src-588 %jibb /tests/golden/types-union-print-escape/source/jibb
2150−/* tre-587 %txt /tests/golden/types-unit-construction/tree/txt
2150+/* tok-588 %txt /tests/golden/types-union-print-escape/tokens/txt
2151−/* typ-587 %txt /tests/golden/types-unit-construction/types/txt
2151+/* tre-588 %txt /tests/golden/types-union-print-escape/tree/txt
2152−/* src-588 %jibb /tests/golden/types-unit-context/source/jibb
2152+/* typ-588 %txt /tests/golden/types-union-print-escape/types/txt
2153−/* tok-588 %txt /tests/golden/types-unit-context/tokens/txt
2153+/* src-589 %jibb /tests/golden/types-union-print-local/source/jibb
2154−/* tre-588 %txt /tests/golden/types-unit-context/tree/txt
2154+/* tok-589 %txt /tests/golden/types-union-print-local/tokens/txt
2155−/* typ-588 %txt /tests/golden/types-unit-context/types/txt
2155+/* tre-589 %txt /tests/golden/types-union-print-local/tree/txt
2156−/* src-589 %jibb /tests/golden/types-unit-patterns/source/jibb
2156+/* typ-589 %txt /tests/golden/types-union-print-local/types/txt
2157−/* tok-589 %txt /tests/golden/types-unit-patterns/tokens/txt
2157+/* src-590 %jibb /tests/golden/types-union-print-nested/source/jibb
2158−/* tre-589 %txt /tests/golden/types-unit-patterns/tree/txt
2158+/* tok-590 %txt /tests/golden/types-union-print-nested/tokens/txt
2159−/* typ-589 %txt /tests/golden/types-unit-patterns/types/txt
2159+/* tre-590 %txt /tests/golden/types-union-print-nested/tree/txt
2160−/* src-590 %jibb /tests/golden/types-value-cycle-shadow/source/jibb
2160+/* typ-590 %txt /tests/golden/types-union-print-nested/types/txt
2161−/* tok-590 %txt /tests/golden/types-value-cycle-shadow/tokens/txt
2161+/* src-591 %jibb /tests/golden/types-union-print-same-origin/source/jibb
2162−/* tre-590 %txt /tests/golden/types-value-cycle-shadow/tree/txt
2162+/* tok-591 %txt /tests/golden/types-union-print-same-origin/tokens/txt
2163−/* typ-590 %txt /tests/golden/types-value-cycle-shadow/types/txt
2163+/* tre-591 %txt /tests/golden/types-union-print-same-origin/tree/txt
2164−/* src-591 %jibb /tests/golden/types-value-cycle-unsupported/source/jibb
2164+/* mod-591-1 %jibb /tests/golden/types-union-print-same-origin/modules/ui/shared/jibb
2165−/* tok-591 %txt /tests/golden/types-value-cycle-unsupported/tokens/txt
2165+/* typ-591 %txt /tests/golden/types-union-print-same-origin/types/txt
2166−/* tre-591 %txt /tests/golden/types-value-cycle-unsupported/tree/txt
2166+/* mtre-591 %txt /tests/golden/types-union-print-same-origin/module-trees/txt
2167−/* typ-591 %txt /tests/golden/types-value-cycle-unsupported/types/txt
2167+/* src-592 %jibb /tests/golden/types-union-print-transitive/source/jibb
2168−/* src-592 %jibb /tests/golden/types-value-cycles/source/jibb
2168+/* tok-592 %txt /tests/golden/types-union-print-transitive/tokens/txt
2169−/* tok-592 %txt /tests/golden/types-value-cycles/tokens/txt
2169+/* tre-592 %txt /tests/golden/types-union-print-transitive/tree/txt
2170−/* tre-592 %txt /tests/golden/types-value-cycles/tree/txt
2170+/* mod-592-1 %jibb /tests/golden/types-union-print-transitive/modules/ui/mid/jibb
2171−/* typ-592 %txt /tests/golden/types-value-cycles/types/txt
2171+/* mod-592-2 %jibb /tests/golden/types-union-print-transitive/modules/ui/base/jibb
2172+/* typ-592 %txt /tests/golden/types-union-print-transitive/types/txt
2173+/* mtre-592 %txt /tests/golden/types-union-print-transitive/module-trees/txt
2174+/* src-593 %jibb /tests/golden/types-union-singleton/source/jibb
2175+/* tok-593 %txt /tests/golden/types-union-singleton/tokens/txt
2176+/* tre-593 %txt /tests/golden/types-union-singleton/tree/txt
2177+/* typ-593 %txt /tests/golden/types-union-singleton/types/txt
2178+/* src-594 %jibb /tests/golden/types-union-tag-atoms/source/jibb
2179+/* tok-594 %txt /tests/golden/types-union-tag-atoms/tokens/txt
2180+/* tre-594 %txt /tests/golden/types-union-tag-atoms/tree/txt
2181+/* typ-594 %txt /tests/golden/types-union-tag-atoms/types/txt
2182+/* src-595 %jibb /tests/golden/types-union-tags/source/jibb
2183+/* tok-595 %txt /tests/golden/types-union-tags/tokens/txt
2184+/* tre-595 %txt /tests/golden/types-union-tags/tree/txt
2185+/* typ-595 %txt /tests/golden/types-union-tags/types/txt
2186+/* src-596 %jibb /tests/golden/types-union-unresolved/source/jibb
2187+/* tok-596 %txt /tests/golden/types-union-unresolved/tokens/txt
2188+/* tre-596 %txt /tests/golden/types-union-unresolved/tree/txt
2189+/* typ-596 %txt /tests/golden/types-union-unresolved/types/txt
2190+/* src-597 %jibb /tests/golden/types-union-unresolved-flow/source/jibb
2191+/* tok-597 %txt /tests/golden/types-union-unresolved-flow/tokens/txt
2192+/* tre-597 %txt /tests/golden/types-union-unresolved-flow/tree/txt
2193+/* typ-597 %txt /tests/golden/types-union-unresolved-flow/types/txt
2194+/* src-598 %jibb /tests/golden/types-unit-construction/source/jibb
2195+/* tok-598 %txt /tests/golden/types-unit-construction/tokens/txt
2196+/* tre-598 %txt /tests/golden/types-unit-construction/tree/txt
2197+/* typ-598 %txt /tests/golden/types-unit-construction/types/txt
2198+/* src-599 %jibb /tests/golden/types-unit-context/source/jibb
2199+/* tok-599 %txt /tests/golden/types-unit-context/tokens/txt
2200+/* tre-599 %txt /tests/golden/types-unit-context/tree/txt
2201+/* typ-599 %txt /tests/golden/types-unit-context/types/txt
2202+/* src-600 %jibb /tests/golden/types-unit-patterns/source/jibb
2203+/* tok-600 %txt /tests/golden/types-unit-patterns/tokens/txt
2204+/* tre-600 %txt /tests/golden/types-unit-patterns/tree/txt
2205+/* typ-600 %txt /tests/golden/types-unit-patterns/types/txt
2206+/* src-601 %jibb /tests/golden/types-value-cycle-shadow/source/jibb
2207+/* tok-601 %txt /tests/golden/types-value-cycle-shadow/tokens/txt
2208+/* tre-601 %txt /tests/golden/types-value-cycle-shadow/tree/txt
2209+/* typ-601 %txt /tests/golden/types-value-cycle-shadow/types/txt
2210+/* src-602 %jibb /tests/golden/types-value-cycle-unsupported/source/jibb
2211+/* tok-602 %txt /tests/golden/types-value-cycle-unsupported/tokens/txt
2212+/* tre-602 %txt /tests/golden/types-value-cycle-unsupported/tree/txt
2213+/* typ-602 %txt /tests/golden/types-value-cycle-unsupported/types/txt
2214+/* src-603 %jibb /tests/golden/types-value-cycles/source/jibb
2215+/* tok-603 %txt /tests/golden/types-value-cycles/tokens/txt
2216+/* tre-603 %txt /tests/golden/types-value-cycles/tree/txt
2217+/* typ-603 %txt /tests/golden/types-value-cycles/types/txt
2172=/ prepared-prelude (prepare-prelude-with-internal:jibb prelude-source internal-source)
2218=/ prepared-prelude (prepare-prelude-with-internal:jibb prelude-source internal-source)
2173|%
2219|%
2174:: one arm per case
2220:: one arm per case
@@ -3045,318 +3091,340 @@
3045 (weld (check ~.types-generic-union-local src-435 `tok-435 `tre-435) (check-types ~.types-generic-union-local ~[%tests %golden ~.types-generic-union-local %source %jibb] src-435 `typ-435))
3091 (weld (check ~.types-generic-union-local src-435 `tok-435 `tre-435) (check-types ~.types-generic-union-local ~[%tests %golden ~.types-generic-union-local %source %jibb] src-435 `typ-435))
3046++ test-types-generic-union-transitive
3092++ test-types-generic-union-transitive
3047 (weld (weld (check ~.types-generic-union-transitive src-436 `tok-436 `tre-436) (check-module-types ~.types-generic-union-transitive ~[%tests %golden ~.types-generic-union-transitive %source %jibb] src-436 `typ-436 ~ ~ ~[['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-436-1] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-436-2]])) (check-module-trees ~.types-generic-union-transitive `mtre-436 ~[['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-436-1] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-436-2]]))
3093 (weld (weld (check ~.types-generic-union-transitive src-436 `tok-436 `tre-436) (check-module-types ~.types-generic-union-transitive ~[%tests %golden ~.types-generic-union-transitive %source %jibb] src-436 `typ-436 ~ ~ ~[['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-436-1] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-436-2]])) (check-module-trees ~.types-generic-union-transitive `mtre-436 ~[['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-436-1] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-436-2]]))
3094+++ test-types-hole-concrete
3095+ (weld (check ~.types-hole-concrete src-437 `tok-437 `tre-437) (check-types ~.types-hole-concrete ~[%tests %golden ~.types-hole-concrete %source %jibb] src-437 `typ-437))
3096+++ test-types-hole-generic-mold
3097+ (weld (check ~.types-hole-generic-mold src-438 `tok-438 `tre-438) (check-types ~.types-hole-generic-mold ~[%tests %golden ~.types-hole-generic-mold %source %jibb] src-438 `typ-438))
3098+++ test-types-hole-local-boundary
3099+ (weld (check ~.types-hole-local-boundary src-439 `tok-439 `tre-439) (check-types ~.types-hole-local-boundary ~[%tests %golden ~.types-hole-local-boundary %source %jibb] src-439 `typ-439))
3100+++ test-types-hole-module-boundary
3101+ (weld (weld (check ~.types-hole-module-boundary src-440 `tok-440 `tre-440) (check-module-types ~.types-hole-module-boundary ~[%tests %golden ~.types-hole-module-boundary %source %jibb] src-440 `typ-440 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-440-1]])) (check-module-trees ~.types-hole-module-boundary `mtre-440 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-440-1]]))
3102+++ test-types-hole-named-complex
3103+ (weld (check ~.types-hole-named-complex src-441 `tok-441 `tre-441) (check-types ~.types-hole-named-complex ~[%tests %golden ~.types-hole-named-complex %source %jibb] src-441 `typ-441))
3104+++ test-types-hole-numeric-capture
3105+ (weld (check ~.types-hole-numeric-capture src-442 `tok-442 `tre-442) (check-types ~.types-hole-numeric-capture ~[%tests %golden ~.types-hole-numeric-capture %source %jibb] src-442 `typ-442))
3106+++ test-types-hole-unbound-mold
3107+ (weld (check ~.types-hole-unbound-mold src-443 `tok-443 `tre-443) (check-types ~.types-hole-unbound-mold ~[%tests %golden ~.types-hole-unbound-mold %source %jibb] src-443 `typ-443))
3048++ test-types-hole-unsupported
3108++ test-types-hole-unsupported
3049− (weld (check ~.types-hole-unsupported src-437 `tok-437 `tre-437) (check-types ~.types-hole-unsupported ~[%tests %golden ~.types-hole-unsupported %source %jibb] src-437 `typ-437))
3109+ (weld (check ~.types-hole-unsupported src-444 `tok-444 `tre-444) (check-types ~.types-hole-unsupported ~[%tests %golden ~.types-hole-unsupported %source %jibb] src-444 `typ-444))
3110+++ test-types-hole-user-generic
3111+ (weld (check ~.types-hole-user-generic src-445 `tok-445 `tre-445) (check-types ~.types-hole-user-generic ~[%tests %golden ~.types-hole-user-generic %source %jibb] src-445 `typ-445))
3112+++ test-types-hole-user-named
3113+ (weld (check ~.types-hole-user-named src-446 `tok-446 `tre-446) (check-types ~.types-hole-user-named ~[%tests %golden ~.types-hole-user-named %source %jibb] src-446 `typ-446))
3114+++ test-types-hole-user-value
3115+ (weld (check ~.types-hole-user-value src-447 `tok-447 `tre-447) (check-types ~.types-hole-user-value ~[%tests %golden ~.types-hole-user-value %source %jibb] src-447 `typ-447))
3050++ test-types-import-duplicate-mark
3116++ test-types-import-duplicate-mark
3051− (weld (check ~.types-import-duplicate-mark src-438 `tok-438 `tre-438) (check-mark-types ~.types-import-duplicate-mark ~[%tests %golden ~.types-import-duplicate-mark %source %jibb] src-438 `typ-438 ~ ~[[%duplicate mark-438-1]]))
3117+ (weld (check ~.types-import-duplicate-mark src-448 `tok-448 `tre-448) (check-mark-types ~.types-import-duplicate-mark ~[%tests %golden ~.types-import-duplicate-mark %source %jibb] src-448 `typ-448 ~ ~[[%duplicate mark-448-1]]))
3052++ test-types-import-duplicate-sur
3118++ test-types-import-duplicate-sur
3053− (weld (check ~.types-import-duplicate-sur src-439 `tok-439 `tre-439) (check-import-types ~.types-import-duplicate-sur ~[%tests %golden ~.types-import-duplicate-sur %source %jibb] src-439 `typ-439 ~[[%fixture %direct imp-439-1] [%fixture %nested imp-439-2] [%fixture %valid imp-439-3]]))
3119+ (weld (check ~.types-import-duplicate-sur src-449 `tok-449 `tre-449) (check-import-types ~.types-import-duplicate-sur ~[%tests %golden ~.types-import-duplicate-sur %source %jibb] src-449 `typ-449 ~[[%fixture %direct imp-449-1] [%fixture %nested imp-449-2] [%fixture %valid imp-449-3]]))
3054++ test-types-import-hoon-flags
3120++ test-types-import-hoon-flags
3055− (weld (check ~.types-import-hoon-flags src-440 `tok-440 `tre-440) (check-import-types ~.types-import-hoon-flags ~[%tests %golden ~.types-import-hoon-flags %source %jibb] src-440 `typ-440 ~[[%flags %flag imp-440-1] [%flags %yes imp-440-2] [%flags %no imp-440-3] [%flags %record imp-440-4]]))
3121+ (weld (check ~.types-import-hoon-flags src-450 `tok-450 `tre-450) (check-import-types ~.types-import-hoon-flags ~[%tests %golden ~.types-import-hoon-flags %source %jibb] src-450 `typ-450 ~[[%flags %flag imp-450-1] [%flags %yes imp-450-2] [%flags %no imp-450-3] [%flags %record imp-450-4]]))
3056++ test-types-import-hoon-noun
3122++ test-types-import-hoon-noun
3057− (weld (check ~.types-import-hoon-noun src-441 `tok-441 `tre-441) (check-import-types ~.types-import-hoon-noun ~[%tests %golden ~.types-import-hoon-noun %source %jibb] src-441 `typ-441 ~[[%fixture %any imp-441-1] [%fixture %payload imp-441-2] [%fixture %option imp-441-3] [%fixture %overlap imp-441-4]]))
3123+ (weld (check ~.types-import-hoon-noun src-451 `tok-451 `tre-451) (check-import-types ~.types-import-hoon-noun ~[%tests %golden ~.types-import-hoon-noun %source %jibb] src-451 `typ-451 ~[[%fixture %any imp-451-1] [%fixture %payload imp-451-2] [%fixture %option imp-451-3] [%fixture %overlap imp-451-4]]))
3058++ test-types-import-mark
3124++ test-types-import-mark
3059− (weld (check ~.types-import-mark src-442 `tok-442 `tre-442) (check-mark-types ~.types-import-mark ~[%tests %golden ~.types-import-mark %source %jibb] src-442 `typ-442 ~[[%fixture %title imp-442-1]] ~[[%label mark-442-1]]))
3125+ (weld (check ~.types-import-mark src-452 `tok-452 `tre-452) (check-mark-types ~.types-import-mark ~[%tests %golden ~.types-import-mark %source %jibb] src-452 `typ-452 ~[[%fixture %title imp-452-1]] ~[[%label mark-452-1]]))
3060++ test-types-import-mark-record
3126++ test-types-import-mark-record
3061− (weld (check ~.types-import-mark-record src-443 `tok-443 `tre-443) (check-mark-types ~.types-import-mark-record ~[%tests %golden ~.types-import-mark-record %source %jibb] src-443 `typ-443 ~ ~[[%note mark-443-1] [%choice mark-443-2]]))
3127+ (weld (check ~.types-import-mark-record src-453 `tok-453 `tre-453) (check-mark-types ~.types-import-mark-record ~[%tests %golden ~.types-import-mark-record %source %jibb] src-453 `typ-453 ~ ~[[%note mark-453-1] [%choice mark-453-2]]))
3062++ test-types-import-missing-mold
3128++ test-types-import-missing-mold
3063− (weld (check ~.types-import-missing-mold src-444 `tok-444 `tre-444) (check-import-types ~.types-import-missing-mold ~[%tests %golden ~.types-import-missing-mold %source %jibb] src-444 `typ-444 ~[[%fixture %missing imp-444-1]]))
3129+ (weld (check ~.types-import-missing-mold src-454 `tok-454 `tre-454) (check-import-types ~.types-import-missing-mold ~[%tests %golden ~.types-import-missing-mold %source %jibb] src-454 `typ-454 ~[[%fixture %missing imp-454-1]]))
3064++ test-types-import-sur
3130++ test-types-import-sur
3065− (weld (check ~.types-import-sur src-445 `tok-445 `tre-445) (check-import-types ~.types-import-sur ~[%tests %golden ~.types-import-sur %source %jibb] src-445 `typ-445 ~[[%fixture %title imp-445-1] [%fixture %pair imp-445-2]]))
3131+ (weld (check ~.types-import-sur src-455 `tok-455 `tre-455) (check-import-types ~.types-import-sur ~[%tests %golden ~.types-import-sur %source %jibb] src-455 `typ-455 ~[[%fixture %title imp-455-1] [%fixture %pair imp-455-2]]))
3066++ test-types-import-sur-record-graph
3132++ test-types-import-sur-record-graph
3067− (weld (weld (check ~.types-import-sur-record-graph src-446 `tok-446 `tre-446) (check-module-types ~.types-import-sur-record-graph ~[%tests %golden ~.types-import-sur-record-graph %source %jibb] src-446 `typ-446 ~[[%fixture %entry imp-446-1]] ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-446-1]])) (check-module-trees ~.types-import-sur-record-graph `mtre-446 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-446-1]]))
3133+ (weld (weld (check ~.types-import-sur-record-graph src-456 `tok-456 `tre-456) (check-module-types ~.types-import-sur-record-graph ~[%tests %golden ~.types-import-sur-record-graph %source %jibb] src-456 `typ-456 ~[[%fixture %entry imp-456-1]] ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-456-1]])) (check-module-trees ~.types-import-sur-record-graph `mtre-456 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-456-1]]))
3068++ test-types-import-tlon-notes
3134++ test-types-import-tlon-notes
3069− (weld (check ~.types-import-tlon-notes src-447 `tok-447 `tre-447) (check-import-types ~.types-import-tlon-notes ~[%tests %golden ~.types-import-tlon-notes %source %jibb] src-447 `typ-447 ~[[%notes %u-note imp-447-1] [%notes %a-note imp-447-2] [%notes %u-notebook imp-447-3] [%notes %u-notes imp-447-4] [%notes %log imp-447-5] [%notes %import-node imp-447-6] [%notes %a-notebook imp-447-7]]))
3135+ (weld (check ~.types-import-tlon-notes src-457 `tok-457 `tre-457) (check-import-types ~.types-import-tlon-notes ~[%tests %golden ~.types-import-tlon-notes %source %jibb] src-457 `typ-457 ~[[%notes %u-note imp-457-1] [%notes %a-note imp-457-2] [%notes %u-notebook imp-457-3] [%notes %u-notes imp-457-4] [%notes %log imp-457-5] [%notes %import-node imp-457-6] [%notes %a-notebook imp-457-7]]))
3070++ test-types-list-branch
3136++ test-types-list-branch
3071− (weld (check ~.types-list-branch src-448 `tok-448 `tre-448) (check-module-types ~.types-list-branch ~[%tests %golden ~.types-list-branch %source %jibb] src-448 `typ-448 ~ ~ ~))
3137+ (weld (check ~.types-list-branch src-458 `tok-458 `tre-458) (check-module-types ~.types-list-branch ~[%tests %golden ~.types-list-branch %source %jibb] src-458 `typ-458 ~ ~ ~))
3072++ test-types-list-cons
3138++ test-types-list-cons
3073− (weld (check ~.types-list-cons src-449 `tok-449 `tre-449) (check-module-types ~.types-list-cons ~[%tests %golden ~.types-list-cons %source %jibb] src-449 `typ-449 ~ ~ ~))
3139+ (weld (check ~.types-list-cons src-459 `tok-459 `tre-459) (check-module-types ~.types-list-cons ~[%tests %golden ~.types-list-cons %source %jibb] src-459 `typ-459 ~ ~ ~))
3074++ test-types-list-context
3140++ test-types-list-context
3075− (weld (check ~.types-list-context src-450 `tok-450 `tre-450) (check-module-types ~.types-list-context ~[%tests %golden ~.types-list-context %source %jibb] src-450 `typ-450 ~ ~ ~))
3141+ (weld (check ~.types-list-context src-460 `tok-460 `tre-460) (check-module-types ~.types-list-context ~[%tests %golden ~.types-list-context %source %jibb] src-460 `typ-460 ~ ~ ~))
3076++ test-types-list-imported
3142++ test-types-list-imported
3077− (weld (check ~.types-list-imported src-451 `tok-451 `tre-451) (check-module-types ~.types-list-imported ~[%tests %golden ~.types-list-imported %source %jibb] src-451 `typ-451 ~[[%fixture %texts imp-451-1] [%fixture %ships imp-451-2]] ~ ~))
3143+ (weld (check ~.types-list-imported src-461 `tok-461 `tre-461) (check-module-types ~.types-list-imported ~[%tests %golden ~.types-list-imported %source %jibb] src-461 `typ-461 ~[[%fixture %texts imp-461-1] [%fixture %ships imp-461-2]] ~ ~))
3078++ test-types-list-open
3144++ test-types-list-open
3079− (weld (check ~.types-list-open src-452 `tok-452 `tre-452) (check-module-types ~.types-list-open ~[%tests %golden ~.types-list-open %source %jibb] src-452 `typ-452 ~ ~ ~))
3145+ (weld (check ~.types-list-open src-462 `tok-462 `tre-462) (check-module-types ~.types-list-open ~[%tests %golden ~.types-list-open %source %jibb] src-462 `typ-462 ~ ~ ~))
3080++ test-types-list-open-constraints
3146++ test-types-list-open-constraints
3081− (weld (check ~.types-list-open-constraints src-453 `tok-453 `tre-453) (check-module-types ~.types-list-open-constraints ~[%tests %golden ~.types-list-open-constraints %source %jibb] src-453 `typ-453 ~ ~ ~))
3147+ (weld (check ~.types-list-open-constraints src-463 `tok-463 `tre-463) (check-module-types ~.types-list-open-constraints ~[%tests %golden ~.types-list-open-constraints %source %jibb] src-463 `typ-463 ~ ~ ~))
3082++ test-types-list-pattern-imported
3148++ test-types-list-pattern-imported
3083− (weld (check ~.types-list-pattern-imported src-454 `tok-454 `tre-454) (check-module-types ~.types-list-pattern-imported ~[%tests %golden ~.types-list-pattern-imported %source %jibb] src-454 `typ-454 ~[[%fixture %texts imp-454-1] [%fixture %text-set imp-454-2]] ~ ~))
3149+ (weld (check ~.types-list-pattern-imported src-464 `tok-464 `tre-464) (check-module-types ~.types-list-pattern-imported ~[%tests %golden ~.types-list-pattern-imported %source %jibb] src-464 `typ-464 ~[[%fixture %texts imp-464-1] [%fixture %text-set imp-464-2]] ~ ~))
3084++ test-types-list-patterns
3150++ test-types-list-patterns
3085− (weld (check ~.types-list-patterns src-455 `tok-455 `tre-455) (check-module-types ~.types-list-patterns ~[%tests %golden ~.types-list-patterns %source %jibb] src-455 `typ-455 ~ ~ ~))
3151+ (weld (check ~.types-list-patterns src-465 `tok-465 `tre-465) (check-module-types ~.types-list-patterns ~[%tests %golden ~.types-list-patterns %source %jibb] src-465 `typ-465 ~ ~ ~))
3086++ test-types-list-zero-fit
3152++ test-types-list-zero-fit
3087− (weld (check ~.types-list-zero-fit src-456 `tok-456 `tre-456) (check-module-types ~.types-list-zero-fit ~[%tests %golden ~.types-list-zero-fit %source %jibb] src-456 `typ-456 ~ ~ ~))
3153+ (weld (check ~.types-list-zero-fit src-466 `tok-466 `tre-466) (check-module-types ~.types-list-zero-fit ~[%tests %golden ~.types-list-zero-fit %source %jibb] src-466 `typ-466 ~ ~ ~))
3088++ test-types-local-capitals
3154++ test-types-local-capitals
3089− (weld (check ~.types-local-capitals src-457 `tok-457 `tre-457) (check-module-types ~.types-local-capitals ~[%tests %golden ~.types-local-capitals %source %jibb] src-457 `typ-457 ~ ~ ~))
3155+ (weld (check ~.types-local-capitals src-467 `tok-467 `tre-467) (check-module-types ~.types-local-capitals ~[%tests %golden ~.types-local-capitals %source %jibb] src-467 `typ-467 ~ ~ ~))
3090++ test-types-local-recursive
3156++ test-types-local-recursive
3091− (weld (check ~.types-local-recursive src-458 `tok-458 `tre-458) (check-module-types ~.types-local-recursive ~[%tests %golden ~.types-local-recursive %source %jibb] src-458 `typ-458 ~ ~ ~))
3157+ (weld (check ~.types-local-recursive src-468 `tok-468 `tre-468) (check-module-types ~.types-local-recursive ~[%tests %golden ~.types-local-recursive %source %jibb] src-468 `typ-468 ~ ~ ~))
3092++ test-types-local-scc
3158++ test-types-local-scc
3093− (weld (check ~.types-local-scc src-459 `tok-459 `tre-459) (check-module-types ~.types-local-scc ~[%tests %golden ~.types-local-scc %source %jibb] src-459 `typ-459 ~ ~ ~))
3159+ (weld (check ~.types-local-scc src-469 `tok-469 `tre-469) (check-module-types ~.types-local-scc ~[%tests %golden ~.types-local-scc %source %jibb] src-469 `typ-469 ~ ~ ~))
3094++ test-types-local-scc-adversarial
3160++ test-types-local-scc-adversarial
3095− (weld (check ~.types-local-scc-adversarial src-460 `tok-460 `tre-460) (check-module-types ~.types-local-scc-adversarial ~[%tests %golden ~.types-local-scc-adversarial %source %jibb] src-460 `typ-460 ~ ~ ~))
3161+ (weld (check ~.types-local-scc-adversarial src-470 `tok-470 `tre-470) (check-module-types ~.types-local-scc-adversarial ~[%tests %golden ~.types-local-scc-adversarial %source %jibb] src-470 `typ-470 ~ ~ ~))
3096++ test-types-missing-tag-context
3162++ test-types-missing-tag-context
3097− (weld (check ~.types-missing-tag-context src-461 `tok-461 `tre-461) (check-module-types ~.types-missing-tag-context ~[%tests %golden ~.types-missing-tag-context %source %jibb] src-461 `typ-461 ~ ~ ~))
3163+ (weld (check ~.types-missing-tag-context src-471 `tok-471 `tre-471) (check-module-types ~.types-missing-tag-context ~[%tests %golden ~.types-missing-tag-context %source %jibb] src-471 `typ-471 ~ ~ ~))
3098++ test-types-missing-tag-imported
3164++ test-types-missing-tag-imported
3099− (weld (check ~.types-missing-tag-imported src-462 `tok-462 `tre-462) (check-import-types ~.types-missing-tag-imported ~[%tests %golden ~.types-missing-tag-imported %source %jibb] src-462 `typ-462 ~[[%fixture %choice imp-462-1] [%fixture %nested-choice imp-462-2]]))
3165+ (weld (check ~.types-missing-tag-imported src-472 `tok-472 `tre-472) (check-import-types ~.types-missing-tag-imported ~[%tests %golden ~.types-missing-tag-imported %source %jibb] src-472 `typ-472 ~[[%fixture %choice imp-472-1] [%fixture %nested-choice imp-472-2]]))
3100++ test-types-missing-tag-named
3166++ test-types-missing-tag-named
3101− (weld (check ~.types-missing-tag-named src-463 `tok-463 `tre-463) (check-module-types ~.types-missing-tag-named ~[%tests %golden ~.types-missing-tag-named %source %jibb] src-463 `typ-463 ~ ~ ~))
3167+ (weld (check ~.types-missing-tag-named src-473 `tok-473 `tre-473) (check-module-types ~.types-missing-tag-named ~[%tests %golden ~.types-missing-tag-named %source %jibb] src-473 `typ-473 ~ ~ ~))
3102++ test-types-module-field-duplicate
3168++ test-types-module-field-duplicate
3103− (weld (weld (check ~.types-module-field-duplicate src-464 `tok-464 `tre-464) (check-module-types ~.types-module-field-duplicate ~[%tests %golden ~.types-module-field-duplicate %source %jibb] src-464 `typ-464 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-464-1]])) (check-module-trees ~.types-module-field-duplicate `mtre-464 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-464-1]]))
3169+ (weld (weld (check ~.types-module-field-duplicate src-474 `tok-474 `tre-474) (check-module-types ~.types-module-field-duplicate ~[%tests %golden ~.types-module-field-duplicate %source %jibb] src-474 `typ-474 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-474-1]])) (check-module-trees ~.types-module-field-duplicate `mtre-474 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-474-1]]))
3104++ test-types-module-field-nonrecord
3170++ test-types-module-field-nonrecord
3105− (weld (weld (check ~.types-module-field-nonrecord src-465 `tok-465 `tre-465) (check-module-types ~.types-module-field-nonrecord ~[%tests %golden ~.types-module-field-nonrecord %source %jibb] src-465 `typ-465 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-465-1]])) (check-module-trees ~.types-module-field-nonrecord `mtre-465 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-465-1]]))
3171+ (weld (weld (check ~.types-module-field-nonrecord src-475 `tok-475 `tre-475) (check-module-types ~.types-module-field-nonrecord ~[%tests %golden ~.types-module-field-nonrecord %source %jibb] src-475 `typ-475 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-475-1]])) (check-module-trees ~.types-module-field-nonrecord `mtre-475 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-475-1]]))
3106++ test-types-module-field-path
3172++ test-types-module-field-path
3107− (weld (weld (check ~.types-module-field-path src-466 `tok-466 `tre-466) (check-module-types ~.types-module-field-path ~[%tests %golden ~.types-module-field-path %source %jibb] src-466 `typ-466 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-466-1]])) (check-module-trees ~.types-module-field-path `mtre-466 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-466-1]]))
3173+ (weld (weld (check ~.types-module-field-path src-476 `tok-476 `tre-476) (check-module-types ~.types-module-field-path ~[%tests %golden ~.types-module-field-path %source %jibb] src-476 `typ-476 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-476-1]])) (check-module-trees ~.types-module-field-path `mtre-476 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-476-1]]))
3108++ test-types-module-field-shadow
3174++ test-types-module-field-shadow
3109− (weld (weld (check ~.types-module-field-shadow src-467 `tok-467 `tre-467) (check-module-types ~.types-module-field-shadow ~[%tests %golden ~.types-module-field-shadow %source %jibb] src-467 `typ-467 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-467-1]])) (check-module-trees ~.types-module-field-shadow `mtre-467 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-467-1]]))
3175+ (weld (weld (check ~.types-module-field-shadow src-477 `tok-477 `tre-477) (check-module-types ~.types-module-field-shadow ~[%tests %golden ~.types-module-field-shadow %source %jibb] src-477 `typ-477 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-477-1]])) (check-module-trees ~.types-module-field-shadow `mtre-477 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-477-1]]))
3110++ test-types-module-fixtures
3176++ test-types-module-fixtures
3111− (weld (weld (check-at ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-468 `tok-468 `tre-468) (check-module-types ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-468 `typ-468 ~ ~ ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-468-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-468-2]])) (check-module-trees ~.types-module-fixtures `mtre-468 ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-468-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-468-2]]))
3177+ (weld (weld (check-at ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-478 `tok-478 `tre-478) (check-module-types ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-478 `typ-478 ~ ~ ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-478-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-478-2]])) (check-module-trees ~.types-module-fixtures `mtre-478 ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-478-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-478-2]]))
3112++ test-types-module-mixed
3178++ test-types-module-mixed
3113− (weld (weld (check ~.types-module-mixed src-469 `tok-469 `tre-469) (check-module-types ~.types-module-mixed ~[%tests %golden ~.types-module-mixed %source %jibb] src-469 `typ-469 ~[[%fixture %title imp-469-1]] ~[[%label mark-469-1]] ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-469-1]])) (check-module-trees ~.types-module-mixed `mtre-469 ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-469-1]]))
3179+ (weld (weld (check ~.types-module-mixed src-479 `tok-479 `tre-479) (check-module-types ~.types-module-mixed ~[%tests %golden ~.types-module-mixed %source %jibb] src-479 `typ-479 ~[[%fixture %title imp-479-1]] ~[[%label mark-479-1]] ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-479-1]])) (check-module-trees ~.types-module-mixed `mtre-479 ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-479-1]]))
3114++ test-types-multi-call
3180++ test-types-multi-call
3115− (weld (check ~.types-multi-call src-470 `tok-470 `tre-470) (check-module-types ~.types-multi-call ~[%tests %golden ~.types-multi-call %source %jibb] src-470 `typ-470 ~ ~ ~))
3181+ (weld (check ~.types-multi-call src-480 `tok-480 `tre-480) (check-module-types ~.types-multi-call ~[%tests %golden ~.types-multi-call %source %jibb] src-480 `typ-480 ~ ~ ~))
3116++ test-types-multi-import
3182++ test-types-multi-import
3117− (weld (weld (check ~.types-multi-import src-471 `tok-471 `tre-471) (check-module-types ~.types-multi-import ~[%tests %golden ~.types-multi-import %source %jibb] src-471 `typ-471 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-471-1]])) (check-module-trees ~.types-multi-import `mtre-471 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-471-1]]))
3183+ (weld (weld (check ~.types-multi-import src-481 `tok-481 `tre-481) (check-module-types ~.types-multi-import ~[%tests %golden ~.types-multi-import %source %jibb] src-481 `typ-481 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-481-1]])) (check-module-trees ~.types-multi-import `mtre-481 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-481-1]]))
3118++ test-types-nested-missing-tag
3184++ test-types-nested-missing-tag
3119− (weld (check ~.types-nested-missing-tag src-472 `tok-472 `tre-472) (check-module-types ~.types-nested-missing-tag ~[%tests %golden ~.types-nested-missing-tag %source %jibb] src-472 `typ-472 ~ ~ ~))
3185+ (weld (check ~.types-nested-missing-tag src-482 `tok-482 `tre-482) (check-module-types ~.types-nested-missing-tag ~[%tests %golden ~.types-nested-missing-tag %source %jibb] src-482 `typ-482 ~ ~ ~))
3120++ test-types-null-context
3186++ test-types-null-context
3121− (weld (check ~.types-null-context src-473 `tok-473 `tre-473) (check-types ~.types-null-context ~[%tests %golden ~.types-null-context %source %jibb] src-473 `typ-473))
3187+ (weld (check ~.types-null-context src-483 `tok-483 `tre-483) (check-types ~.types-null-context ~[%tests %golden ~.types-null-context %source %jibb] src-483 `typ-483))
3122++ test-types-null-overlap
3188++ test-types-null-overlap
3123− (weld (check ~.types-null-overlap src-474 `tok-474 `tre-474) (check-types ~.types-null-overlap ~[%tests %golden ~.types-null-overlap %source %jibb] src-474 `typ-474))
3189+ (weld (check ~.types-null-overlap src-484 `tok-484 `tre-484) (check-types ~.types-null-overlap ~[%tests %golden ~.types-null-overlap %source %jibb] src-484 `typ-484))
3124++ test-types-null-unresolved
3190++ test-types-null-unresolved
3125− (weld (check ~.types-null-unresolved src-475 `tok-475 `tre-475) (check-types ~.types-null-unresolved ~[%tests %golden ~.types-null-unresolved %source %jibb] src-475 `typ-475))
3191+ (weld (check ~.types-null-unresolved src-485 `tok-485 `tre-485) (check-types ~.types-null-unresolved ~[%tests %golden ~.types-null-unresolved %source %jibb] src-485 `typ-485))
3126++ test-types-pair-context
3192++ test-types-pair-context
3127− (weld (check ~.types-pair-context src-476 `tok-476 `tre-476) (check-module-types ~.types-pair-context ~[%tests %golden ~.types-pair-context %source %jibb] src-476 `typ-476 ~ ~ ~))
3193+ (weld (check ~.types-pair-context src-486 `tok-486 `tre-486) (check-module-types ~.types-pair-context ~[%tests %golden ~.types-pair-context %source %jibb] src-486 `typ-486 ~ ~ ~))
3128++ test-types-partial-apply
3194++ test-types-partial-apply
3129− (weld (check ~.types-partial-apply src-477 `tok-477 `tre-477) (check-types ~.types-partial-apply ~[%tests %golden ~.types-partial-apply %source %jibb] src-477 `typ-477))
3195+ (weld (check ~.types-partial-apply src-487 `tok-487 `tre-487) (check-types ~.types-partial-apply ~[%tests %golden ~.types-partial-apply %source %jibb] src-487 `typ-487))
3130++ test-types-partial-atom-alias
3196++ test-types-partial-atom-alias
3131− (weld (check ~.types-partial-atom-alias src-478 `tok-478 `tre-478) (check-types ~.types-partial-atom-alias ~[%tests %golden ~.types-partial-atom-alias %source %jibb] src-478 `typ-478))
3197+ (weld (check ~.types-partial-atom-alias src-488 `tok-488 `tre-488) (check-types ~.types-partial-atom-alias ~[%tests %golden ~.types-partial-atom-alias %source %jibb] src-488 `typ-488))
3132++ test-types-partial-atom-constraint
3198++ test-types-partial-atom-constraint
3133− (weld (check ~.types-partial-atom-constraint src-479 `tok-479 `tre-479) (check-types ~.types-partial-atom-constraint ~[%tests %golden ~.types-partial-atom-constraint %source %jibb] src-479 `typ-479))
3199+ (weld (check ~.types-partial-atom-constraint src-489 `tok-489 `tre-489) (check-types ~.types-partial-atom-constraint ~[%tests %golden ~.types-partial-atom-constraint %source %jibb] src-489 `typ-489))
3134++ test-types-partial-atom-widening
3200++ test-types-partial-atom-widening
3135− (weld (check ~.types-partial-atom-widening src-480 `tok-480 `tre-480) (check-types ~.types-partial-atom-widening ~[%tests %golden ~.types-partial-atom-widening %source %jibb] src-480 `typ-480))
3201+ (weld (check ~.types-partial-atom-widening src-490 `tok-490 `tre-490) (check-types ~.types-partial-atom-widening ~[%tests %golden ~.types-partial-atom-widening %source %jibb] src-490 `typ-490))
3136++ test-types-partial-aura
3202++ test-types-partial-aura
3137− (weld (check ~.types-partial-aura src-481 `tok-481 `tre-481) (check-types ~.types-partial-aura ~[%tests %golden ~.types-partial-aura %source %jibb] src-481 `typ-481))
3203+ (weld (check ~.types-partial-aura src-491 `tok-491 `tre-491) (check-types ~.types-partial-aura ~[%tests %golden ~.types-partial-aura %source %jibb] src-491 `typ-491))
3138++ test-types-partial-aura-family
3204++ test-types-partial-aura-family
3139− (weld (check ~.types-partial-aura-family src-482 `tok-482 `tre-482) (check-types ~.types-partial-aura-family ~[%tests %golden ~.types-partial-aura-family %source %jibb] src-482 `typ-482))
3205+ (weld (check ~.types-partial-aura-family src-492 `tok-492 `tre-492) (check-types ~.types-partial-aura-family ~[%tests %golden ~.types-partial-aura-family %source %jibb] src-492 `typ-492))
3140++ test-types-partial-aura-generalization
3206++ test-types-partial-aura-generalization
3141− (weld (check ~.types-partial-aura-generalization src-483 `tok-483 `tre-483) (check-types ~.types-partial-aura-generalization ~[%tests %golden ~.types-partial-aura-generalization %source %jibb] src-483 `typ-483))
3207+ (weld (check ~.types-partial-aura-generalization src-493 `tok-493 `tre-493) (check-types ~.types-partial-aura-generalization ~[%tests %golden ~.types-partial-aura-generalization %source %jibb] src-493 `typ-493))
3142++ test-types-partial-bare-atom
3208++ test-types-partial-bare-atom
3143− (weld (check ~.types-partial-bare-atom src-484 `tok-484 `tre-484) (check-types ~.types-partial-bare-atom ~[%tests %golden ~.types-partial-bare-atom %source %jibb] src-484 `typ-484))
3209+ (weld (check ~.types-partial-bare-atom src-494 `tok-494 `tre-494) (check-types ~.types-partial-bare-atom ~[%tests %golden ~.types-partial-bare-atom %source %jibb] src-494 `typ-494))
3144++ test-types-partial-branch-widening
3210++ test-types-partial-branch-widening
3145− (weld (check ~.types-partial-branch-widening src-485 `tok-485 `tre-485) (check-types ~.types-partial-branch-widening ~[%tests %golden ~.types-partial-branch-widening %source %jibb] src-485 `typ-485))
3211+ (weld (check ~.types-partial-branch-widening src-495 `tok-495 `tre-495) (check-types ~.types-partial-branch-widening ~[%tests %golden ~.types-partial-branch-widening %source %jibb] src-495 `typ-495))
3146++ test-types-partial-conflicting-sites
3212++ test-types-partial-conflicting-sites
3147− (weld (check ~.types-partial-conflicting-sites src-486 `tok-486 `tre-486) (check-types ~.types-partial-conflicting-sites ~[%tests %golden ~.types-partial-conflicting-sites %source %jibb] src-486 `typ-486))
3213+ (weld (check ~.types-partial-conflicting-sites src-496 `tok-496 `tre-496) (check-types ~.types-partial-conflicting-sites ~[%tests %golden ~.types-partial-conflicting-sites %source %jibb] src-496 `typ-496))
3148++ test-types-partial-decimal-default
3214++ test-types-partial-decimal-default
3149− (weld (check ~.types-partial-decimal-default src-487 `tok-487 `tre-487) (check-types ~.types-partial-decimal-default ~[%tests %golden ~.types-partial-decimal-default %source %jibb] src-487 `typ-487))
3215+ (weld (check ~.types-partial-decimal-default src-497 `tok-497 `tre-497) (check-types ~.types-partial-decimal-default ~[%tests %golden ~.types-partial-decimal-default %source %jibb] src-497 `typ-497))
3150++ test-types-partial-dependency-chain
3216++ test-types-partial-dependency-chain
3151− (weld (check ~.types-partial-dependency-chain src-488 `tok-488 `tre-488) (check-types ~.types-partial-dependency-chain ~[%tests %golden ~.types-partial-dependency-chain %source %jibb] src-488 `typ-488))
3217+ (weld (check ~.types-partial-dependency-chain src-498 `tok-498 `tre-498) (check-types ~.types-partial-dependency-chain ~[%tests %golden ~.types-partial-dependency-chain %source %jibb] src-498 `typ-498))
3152++ test-types-partial-explicit-capital
3218++ test-types-partial-explicit-capital
3153− (weld (check ~.types-partial-explicit-capital src-489 `tok-489 `tre-489) (check-types ~.types-partial-explicit-capital ~[%tests %golden ~.types-partial-explicit-capital %source %jibb] src-489 `typ-489))
3219+ (weld (check ~.types-partial-explicit-capital src-499 `tok-499 `tre-499) (check-types ~.types-partial-explicit-capital ~[%tests %golden ~.types-partial-explicit-capital %source %jibb] src-499 `typ-499))
3154++ test-types-partial-forward
3220++ test-types-partial-forward
3155− (weld (check ~.types-partial-forward src-490 `tok-490 `tre-490) (check-types ~.types-partial-forward ~[%tests %golden ~.types-partial-forward %source %jibb] src-490 `typ-490))
3221+ (weld (check ~.types-partial-forward src-500 `tok-500 `tre-500) (check-types ~.types-partial-forward ~[%tests %golden ~.types-partial-forward %source %jibb] src-500 `typ-500))
3156++ test-types-partial-generalization
3222++ test-types-partial-generalization
3157− (weld (check ~.types-partial-generalization src-491 `tok-491 `tre-491) (check-types ~.types-partial-generalization ~[%tests %golden ~.types-partial-generalization %source %jibb] src-491 `typ-491))
3223+ (weld (check ~.types-partial-generalization src-501 `tok-501 `tre-501) (check-types ~.types-partial-generalization ~[%tests %golden ~.types-partial-generalization %source %jibb] src-501 `typ-501))
3158++ test-types-partial-identity
3224++ test-types-partial-identity
3159− (weld (check ~.types-partial-identity src-492 `tok-492 `tre-492) (check-types ~.types-partial-identity ~[%tests %golden ~.types-partial-identity %source %jibb] src-492 `typ-492))
3225+ (weld (check ~.types-partial-identity src-502 `tok-502 `tre-502) (check-types ~.types-partial-identity ~[%tests %golden ~.types-partial-identity %source %jibb] src-502 `typ-502))
3160++ test-types-partial-independent-atoms
3226++ test-types-partial-independent-atoms
3161− (weld (check ~.types-partial-independent-atoms src-493 `tok-493 `tre-493) (check-types ~.types-partial-independent-atoms ~[%tests %golden ~.types-partial-independent-atoms %source %jibb] src-493 `typ-493))
3227+ (weld (check ~.types-partial-independent-atoms src-503 `tok-503 `tre-503) (check-types ~.types-partial-independent-atoms ~[%tests %golden ~.types-partial-independent-atoms %source %jibb] src-503 `typ-503))
3162++ test-types-partial-local-molds
3228++ test-types-partial-local-molds
3163− (weld (check ~.types-partial-local-molds src-494 `tok-494 `tre-494) (check-types ~.types-partial-local-molds ~[%tests %golden ~.types-partial-local-molds %source %jibb] src-494 `typ-494))
3229+ (weld (check ~.types-partial-local-molds src-504 `tok-504 `tre-504) (check-types ~.types-partial-local-molds ~[%tests %golden ~.types-partial-local-molds %source %jibb] src-504 `typ-504))
3164++ test-types-partial-locals
3230++ test-types-partial-locals
3165− (weld (check ~.types-partial-locals src-495 `tok-495 `tre-495) (check-types ~.types-partial-locals ~[%tests %golden ~.types-partial-locals %source %jibb] src-495 `typ-495))
3231+ (weld (check ~.types-partial-locals src-505 `tok-505 `tre-505) (check-types ~.types-partial-locals ~[%tests %golden ~.types-partial-locals %source %jibb] src-505 `typ-505))
3166++ test-types-partial-many-atom-constraints
3232++ test-types-partial-many-atom-constraints
3167− (weld (check ~.types-partial-many-atom-constraints src-496 `tok-496 `tre-496) (check-types ~.types-partial-many-atom-constraints ~[%tests %golden ~.types-partial-many-atom-constraints %source %jibb] src-496 `typ-496))
3233+ (weld (check ~.types-partial-many-atom-constraints src-506 `tok-506 `tre-506) (check-types ~.types-partial-many-atom-constraints ~[%tests %golden ~.types-partial-many-atom-constraints %source %jibb] src-506 `typ-506))
3168++ test-types-partial-mold-bare-aura
3234++ test-types-partial-mold-bare-aura
3169− (weld (check ~.types-partial-mold-bare-aura src-497 `tok-497 `tre-497) (check-types ~.types-partial-mold-bare-aura ~[%tests %golden ~.types-partial-mold-bare-aura %source %jibb] src-497 `typ-497))
3235+ (weld (check ~.types-partial-mold-bare-aura src-507 `tok-507 `tre-507) (check-types ~.types-partial-mold-bare-aura ~[%tests %golden ~.types-partial-mold-bare-aura %source %jibb] src-507 `typ-507))
3170++ test-types-partial-mold-composite
3236++ test-types-partial-mold-composite
3171− (weld (check ~.types-partial-mold-composite src-498 `tok-498 `tre-498) (check-types ~.types-partial-mold-composite ~[%tests %golden ~.types-partial-mold-composite %source %jibb] src-498 `typ-498))
3237+ (weld (check ~.types-partial-mold-composite src-508 `tok-508 `tre-508) (check-types ~.types-partial-mold-composite ~[%tests %golden ~.types-partial-mold-composite %source %jibb] src-508 `typ-508))
3172++ test-types-partial-mold-forward
3238++ test-types-partial-mold-forward
3173− (weld (check ~.types-partial-mold-forward src-499 `tok-499 `tre-499) (check-types ~.types-partial-mold-forward ~[%tests %golden ~.types-partial-mold-forward %source %jibb] src-499 `typ-499))
3239+ (weld (check ~.types-partial-mold-forward src-509 `tok-509 `tre-509) (check-types ~.types-partial-mold-forward ~[%tests %golden ~.types-partial-mold-forward %source %jibb] src-509 `typ-509))
3174++ test-types-partial-mold-recursive
3240++ test-types-partial-mold-recursive
3175− (weld (check ~.types-partial-mold-recursive src-500 `tok-500 `tre-500) (check-types ~.types-partial-mold-recursive ~[%tests %golden ~.types-partial-mold-recursive %source %jibb] src-500 `typ-500))
3241+ (weld (check ~.types-partial-mold-recursive src-510 `tok-510 `tre-510) (check-types ~.types-partial-mold-recursive ~[%tests %golden ~.types-partial-mold-recursive %source %jibb] src-510 `typ-510))
3176++ test-types-partial-occurs
3242++ test-types-partial-occurs
3177− (weld (check ~.types-partial-occurs src-501 `tok-501 `tre-501) (check-types ~.types-partial-occurs ~[%tests %golden ~.types-partial-occurs %source %jibb] src-501 `typ-501))
3243+ (weld (check ~.types-partial-occurs src-511 `tok-511 `tre-511) (check-types ~.types-partial-occurs ~[%tests %golden ~.types-partial-occurs %source %jibb] src-511 `typ-511))
3178++ test-types-partial-projection
3244++ test-types-partial-projection
3179− (weld (check ~.types-partial-projection src-502 `tok-502 `tre-502) (check-types ~.types-partial-projection ~[%tests %golden ~.types-partial-projection %source %jibb] src-502 `typ-502))
3245+ (weld (check ~.types-partial-projection src-512 `tok-512 `tre-512) (check-types ~.types-partial-projection ~[%tests %golden ~.types-partial-projection %source %jibb] src-512 `typ-512))
3180++ test-types-partial-shadow-global
3246++ test-types-partial-shadow-global
3181− (weld (check ~.types-partial-shadow-global src-503 `tok-503 `tre-503) (check-types ~.types-partial-shadow-global ~[%tests %golden ~.types-partial-shadow-global %source %jibb] src-503 `typ-503))
3247+ (weld (check ~.types-partial-shadow-global src-513 `tok-513 `tre-513) (check-types ~.types-partial-shadow-global ~[%tests %golden ~.types-partial-shadow-global %source %jibb] src-513 `typ-513))
3182++ test-types-partial-shared-tvar
3248++ test-types-partial-shared-tvar
3183− (weld (check ~.types-partial-shared-tvar src-504 `tok-504 `tre-504) (check-types ~.types-partial-shared-tvar ~[%tests %golden ~.types-partial-shared-tvar %source %jibb] src-504 `typ-504))
3249+ (weld (check ~.types-partial-shared-tvar src-514 `tok-514 `tre-514) (check-types ~.types-partial-shared-tvar ~[%tests %golden ~.types-partial-shared-tvar %source %jibb] src-514 `typ-514))
3184++ test-types-partial-union-cases
3250++ test-types-partial-union-cases
3185− (weld (check ~.types-partial-union-cases src-505 `tok-505 `tre-505) (check-types ~.types-partial-union-cases ~[%tests %golden ~.types-partial-union-cases %source %jibb] src-505 `typ-505))
3251+ (weld (check ~.types-partial-union-cases src-515 `tok-515 `tre-515) (check-types ~.types-partial-union-cases ~[%tests %golden ~.types-partial-union-cases %source %jibb] src-515 `typ-515))
3186++ test-types-partial-union-edges
3252++ test-types-partial-union-edges
3187− (weld (check ~.types-partial-union-edges src-506 `tok-506 `tre-506) (check-types ~.types-partial-union-edges ~[%tests %golden ~.types-partial-union-edges %source %jibb] src-506 `typ-506))
3253+ (weld (check ~.types-partial-union-edges src-516 `tok-516 `tre-516) (check-types ~.types-partial-union-edges ~[%tests %golden ~.types-partial-union-edges %source %jibb] src-516 `typ-516))
3188++ test-types-partial-unresolved-tag
3254++ test-types-partial-unresolved-tag
3189− (weld (check ~.types-partial-unresolved-tag src-507 `tok-507 `tre-507) (check-types ~.types-partial-unresolved-tag ~[%tests %golden ~.types-partial-unresolved-tag %source %jibb] src-507 `typ-507))
3255+ (weld (check ~.types-partial-unresolved-tag src-517 `tok-517 `tre-517) (check-types ~.types-partial-unresolved-tag ~[%tests %golden ~.types-partial-unresolved-tag %source %jibb] src-517 `typ-517))
3190++ test-types-prelude-arithmetic
3256++ test-types-prelude-arithmetic
3191− (weld (check ~.types-prelude-arithmetic src-508 `tok-508 `tre-508) (check-module-types ~.types-prelude-arithmetic ~[%tests %golden ~.types-prelude-arithmetic %source %jibb] src-508 `typ-508 ~ ~ ~))
3257+ (weld (check ~.types-prelude-arithmetic src-518 `tok-518 `tre-518) (check-module-types ~.types-prelude-arithmetic ~[%tests %golden ~.types-prelude-arithmetic %source %jibb] src-518 `typ-518 ~ ~ ~))
3192++ test-types-prelude-cmd
3258++ test-types-prelude-cmd
3193− (weld (check ~.types-prelude-cmd src-509 `tok-509 `tre-509) (check-module-types ~.types-prelude-cmd ~[%tests %golden ~.types-prelude-cmd %source %jibb] src-509 `typ-509 ~ ~ ~))
3259+ (weld (check ~.types-prelude-cmd src-519 `tok-519 `tre-519) (check-module-types ~.types-prelude-cmd ~[%tests %golden ~.types-prelude-cmd %source %jibb] src-519 `typ-519 ~ ~ ~))
3194++ test-types-prelude-direct
3260++ test-types-prelude-direct
3195− (weld (check ~.types-prelude-direct src-510 `tok-510 `tre-510) (check-module-types ~.types-prelude-direct ~[%tests %golden ~.types-prelude-direct %source %jibb] src-510 `typ-510 ~ ~ ~))
3261+ (weld (check ~.types-prelude-direct src-520 `tok-520 `tre-520) (check-module-types ~.types-prelude-direct ~[%tests %golden ~.types-prelude-direct %source %jibb] src-520 `typ-520 ~ ~ ~))
3196++ test-types-prelude-functional
3262++ test-types-prelude-functional
3197− (weld (check ~.types-prelude-functional src-511 `tok-511 `tre-511) (check-module-types ~.types-prelude-functional ~[%tests %golden ~.types-prelude-functional %source %jibb] src-511 `typ-511 ~ ~ ~))
3263+ (weld (check ~.types-prelude-functional src-521 `tok-521 `tre-521) (check-module-types ~.types-prelude-functional ~[%tests %golden ~.types-prelude-functional %source %jibb] src-521 `typ-521 ~ ~ ~))
3198++ test-types-prelude-interface
3264++ test-types-prelude-interface
3199− (weld (weld (check ~.types-prelude-interface src-512 `tok-512 `tre-512) (check-module-types ~.types-prelude-interface ~[%tests %golden ~.types-prelude-interface %source %jibb] src-512 `typ-512 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-512-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-512-2]])) (check-module-trees ~.types-prelude-interface `mtre-512 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-512-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-512-2]]))
3265+ (weld (weld (check ~.types-prelude-interface src-522 `tok-522 `tre-522) (check-module-types ~.types-prelude-interface ~[%tests %golden ~.types-prelude-interface %source %jibb] src-522 `typ-522 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-522-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-522-2]])) (check-module-trees ~.types-prelude-interface `mtre-522 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-522-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-522-2]]))
3266+++ test-types-prelude-list-alias
3267+ (weld (check ~.types-prelude-list-alias src-523 `tok-523 `tre-523) (check-module-types ~.types-prelude-list-alias ~[%tests %golden ~.types-prelude-list-alias %source %jibb] src-523 `typ-523 ~ ~ ~))
3200++ test-types-prelude-list-functions
3268++ test-types-prelude-list-functions
3201− (weld (weld (check ~.types-prelude-list-functions src-513 `tok-513 `tre-513) (check-module-types ~.types-prelude-list-functions ~[%tests %golden ~.types-prelude-list-functions %source %jibb] src-513 `typ-513 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-513-1]])) (check-module-trees ~.types-prelude-list-functions `mtre-513 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-513-1]]))
3269+ (weld (weld (check ~.types-prelude-list-functions src-524 `tok-524 `tre-524) (check-module-types ~.types-prelude-list-functions ~[%tests %golden ~.types-prelude-list-functions %source %jibb] src-524 `typ-524 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-524-1]])) (check-module-trees ~.types-prelude-list-functions `mtre-524 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-524-1]]))
3202++ test-types-prelude-list-helpers
3270++ test-types-prelude-list-helpers
3203− (weld (check ~.types-prelude-list-helpers src-514 `tok-514 `tre-514) (check-module-types ~.types-prelude-list-helpers ~[%tests %golden ~.types-prelude-list-helpers %source %jibb] src-514 `typ-514 ~ ~ ~))
3271+ (weld (check ~.types-prelude-list-helpers src-525 `tok-525 `tre-525) (check-module-types ~.types-prelude-list-helpers ~[%tests %golden ~.types-prelude-list-helpers %source %jibb] src-525 `typ-525 ~ ~ ~))
3204++ test-types-prelude-predicates
3272++ test-types-prelude-predicates
3205− (weld (check ~.types-prelude-predicates src-515 `tok-515 `tre-515) (check-module-types ~.types-prelude-predicates ~[%tests %golden ~.types-prelude-predicates %source %jibb] src-515 `typ-515 ~ ~ ~))
3273+ (weld (check ~.types-prelude-predicates src-526 `tok-526 `tre-526) (check-module-types ~.types-prelude-predicates ~[%tests %golden ~.types-prelude-predicates %source %jibb] src-526 `typ-526 ~ ~ ~))
3206++ test-types-prelude-unit-helpers
3274++ test-types-prelude-unit-helpers
3207− (weld (check ~.types-prelude-unit-helpers src-516 `tok-516 `tre-516) (check-module-types ~.types-prelude-unit-helpers ~[%tests %golden ~.types-prelude-unit-helpers %source %jibb] src-516 `typ-516 ~ ~ ~))
3275+ (weld (check ~.types-prelude-unit-helpers src-527 `tok-527 `tre-527) (check-module-types ~.types-prelude-unit-helpers ~[%tests %golden ~.types-prelude-unit-helpers %source %jibb] src-527 `typ-527 ~ ~ ~))
3208++ test-types-record-bound-variable
3276++ test-types-record-bound-variable
3209− (weld (check ~.types-record-bound-variable src-517 `tok-517 `tre-517) (check-types ~.types-record-bound-variable ~[%tests %golden ~.types-record-bound-variable %source %jibb] src-517 `typ-517))
3277+ (weld (check ~.types-record-bound-variable src-528 `tok-528 `tre-528) (check-types ~.types-record-bound-variable ~[%tests %golden ~.types-record-bound-variable %source %jibb] src-528 `typ-528))
3210++ test-types-record-cast-context
3278++ test-types-record-cast-context
3211− (weld (check ~.types-record-cast-context src-518 `tok-518 `tre-518) (check-module-types ~.types-record-cast-context ~[%tests %golden ~.types-record-cast-context %source %jibb] src-518 `typ-518 ~ ~ ~))
3279+ (weld (check ~.types-record-cast-context src-529 `tok-529 `tre-529) (check-module-types ~.types-record-cast-context ~[%tests %golden ~.types-record-cast-context %source %jibb] src-529 `typ-529 ~ ~ ~))
3212++ test-types-record-change
3280++ test-types-record-change
3213− (weld (check ~.types-record-change src-519 `tok-519 `tre-519) (check-module-types ~.types-record-change ~[%tests %golden ~.types-record-change %source %jibb] src-519 `typ-519 ~ ~ ~))
3281+ (weld (check ~.types-record-change src-530 `tok-530 `tre-530) (check-module-types ~.types-record-change ~[%tests %golden ~.types-record-change %source %jibb] src-530 `typ-530 ~ ~ ~))
3214++ test-types-record-change-generic
3282++ test-types-record-change-generic
3215− (weld (check ~.types-record-change-generic src-520 `tok-520 `tre-520) (check-module-types ~.types-record-change-generic ~[%tests %golden ~.types-record-change-generic %source %jibb] src-520 `typ-520 ~ ~ ~))
3283+ (weld (check ~.types-record-change-generic src-531 `tok-531 `tre-531) (check-module-types ~.types-record-change-generic ~[%tests %golden ~.types-record-change-generic %source %jibb] src-531 `typ-531 ~ ~ ~))
3216++ test-types-record-faces
3284++ test-types-record-faces
3217− (weld (check ~.types-record-faces src-521 `tok-521 `tre-521) (check-types ~.types-record-faces ~[%tests %golden ~.types-record-faces %source %jibb] src-521 `typ-521))
3285+ (weld (check ~.types-record-faces src-532 `tok-532 `tre-532) (check-types ~.types-record-faces ~[%tests %golden ~.types-record-faces %source %jibb] src-532 `typ-532))
3218++ test-types-record-field-edit-separate
3286++ test-types-record-field-edit-separate
3219− (weld (check ~.types-record-field-edit-separate src-522 `tok-522 `tre-522) (check-types ~.types-record-field-edit-separate ~[%tests %golden ~.types-record-field-edit-separate %source %jibb] src-522 `typ-522))
3287+ (weld (check ~.types-record-field-edit-separate src-533 `tok-533 `tre-533) (check-types ~.types-record-field-edit-separate ~[%tests %golden ~.types-record-field-edit-separate %source %jibb] src-533 `typ-533))
3220++ test-types-record-field-expr-duplicate
3288++ test-types-record-field-expr-duplicate
3221− (weld (check ~.types-record-field-expr-duplicate src-523 `tok-523 `tre-523) (check-types ~.types-record-field-expr-duplicate ~[%tests %golden ~.types-record-field-expr-duplicate %source %jibb] src-523 `typ-523))
3289+ (weld (check ~.types-record-field-expr-duplicate src-534 `tok-534 `tre-534) (check-types ~.types-record-field-expr-duplicate ~[%tests %golden ~.types-record-field-expr-duplicate %source %jibb] src-534 `typ-534))
3222++ test-types-record-field-expr-separate
3290++ test-types-record-field-expr-separate
3223− (weld (check ~.types-record-field-expr-separate src-524 `tok-524 `tre-524) (check-types ~.types-record-field-expr-separate ~[%tests %golden ~.types-record-field-expr-separate %source %jibb] src-524 `typ-524))
3291+ (weld (check ~.types-record-field-expr-separate src-535 `tok-535 `tre-535) (check-types ~.types-record-field-expr-separate ~[%tests %golden ~.types-record-field-expr-separate %source %jibb] src-535 `typ-535))
3224++ test-types-record-field-module-reachable
3292++ test-types-record-field-module-reachable
3225− (weld (weld (check ~.types-record-field-module-reachable src-525 `tok-525 `tre-525) (check-module-types ~.types-record-field-module-reachable ~[%tests %golden ~.types-record-field-module-reachable %source %jibb] src-525 `typ-525 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-525-1]])) (check-module-trees ~.types-record-field-module-reachable `mtre-525 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-525-1]]))
3293+ (weld (weld (check ~.types-record-field-module-reachable src-536 `tok-536 `tre-536) (check-module-types ~.types-record-field-module-reachable ~[%tests %golden ~.types-record-field-module-reachable %source %jibb] src-536 `typ-536 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-536-1]])) (check-module-trees ~.types-record-field-module-reachable `mtre-536 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-536-1]]))
3226++ test-types-record-field-module-unused
3294++ test-types-record-field-module-unused
3227− (weld (weld (check ~.types-record-field-module-unused src-526 `tok-526 `tre-526) (check-module-types ~.types-record-field-module-unused ~[%tests %golden ~.types-record-field-module-unused %source %jibb] src-526 `typ-526 ~ ~ ~[['/ui/good.jibb' ~[~.ui ~.good ~.jibb] mod-526-1] ['/ui/unused.jibb' ~[~.ui ~.unused ~.jibb] mod-526-2]])) (check-module-trees ~.types-record-field-module-unused `mtre-526 ~[['/ui/good.jibb' ~[~.ui ~.good ~.jibb] mod-526-1] ['/ui/unused.jibb' ~[~.ui ~.unused ~.jibb] mod-526-2]]))
3295+ (weld (weld (check ~.types-record-field-module-unused src-537 `tok-537 `tre-537) (check-module-types ~.types-record-field-module-unused ~[%tests %golden ~.types-record-field-module-unused %source %jibb] src-537 `typ-537 ~ ~ ~[['/ui/good.jibb' ~[~.ui ~.good ~.jibb] mod-537-1] ['/ui/unused.jibb' ~[~.ui ~.unused ~.jibb] mod-537-2]])) (check-module-trees ~.types-record-field-module-unused `mtre-537 ~[['/ui/good.jibb' ~[~.ui ~.good ~.jibb] mod-537-1] ['/ui/unused.jibb' ~[~.ui ~.unused ~.jibb] mod-537-2]]))
3228++ test-types-record-field-nested-mold
3296++ test-types-record-field-nested-mold
3229− (weld (check ~.types-record-field-nested-mold src-527 `tok-527 `tre-527) (check-types ~.types-record-field-nested-mold ~[%tests %golden ~.types-record-field-nested-mold %source %jibb] src-527 `typ-527))
3297+ (weld (check ~.types-record-field-nested-mold src-538 `tok-538 `tre-538) (check-types ~.types-record-field-nested-mold ~[%tests %golden ~.types-record-field-nested-mold %source %jibb] src-538 `typ-538))
3230++ test-types-record-field-outer-inner
3298++ test-types-record-field-outer-inner
3231− (weld (check ~.types-record-field-outer-inner src-528 `tok-528 `tre-528) (check-types ~.types-record-field-outer-inner ~[%tests %golden ~.types-record-field-outer-inner %source %jibb] src-528 `typ-528))
3299+ (weld (check ~.types-record-field-outer-inner src-539 `tok-539 `tre-539) (check-types ~.types-record-field-outer-inner ~[%tests %golden ~.types-record-field-outer-inner %source %jibb] src-539 `typ-539))
3232++ test-types-record-field-sample-duplicate
3300++ test-types-record-field-sample-duplicate
3233− (weld (check ~.types-record-field-sample-duplicate src-529 `tok-529 `tre-529) (check-types ~.types-record-field-sample-duplicate ~[%tests %golden ~.types-record-field-sample-duplicate %source %jibb] src-529 `typ-529))
3301+ (weld (check ~.types-record-field-sample-duplicate src-540 `tok-540 `tre-540) (check-types ~.types-record-field-sample-duplicate ~[%tests %golden ~.types-record-field-sample-duplicate %source %jibb] src-540 `typ-540))
3234++ test-types-record-field-separate-molds
3302++ test-types-record-field-separate-molds
3235− (weld (check ~.types-record-field-separate-molds src-530 `tok-530 `tre-530) (check-types ~.types-record-field-separate-molds ~[%tests %golden ~.types-record-field-separate-molds %source %jibb] src-530 `typ-530))
3303+ (weld (check ~.types-record-field-separate-molds src-541 `tok-541 `tre-541) (check-types ~.types-record-field-separate-molds ~[%tests %golden ~.types-record-field-separate-molds %source %jibb] src-541 `typ-541))
3236++ test-types-record-field-unused-mold
3304++ test-types-record-field-unused-mold
3237− (weld (check ~.types-record-field-unused-mold src-531 `tok-531 `tre-531) (check-types ~.types-record-field-unused-mold ~[%tests %golden ~.types-record-field-unused-mold %source %jibb] src-531 `typ-531))
3305+ (weld (check ~.types-record-field-unused-mold src-542 `tok-542 `tre-542) (check-types ~.types-record-field-unused-mold ~[%tests %golden ~.types-record-field-unused-mold %source %jibb] src-542 `typ-542))
3238++ test-types-record-import
3306++ test-types-record-import
3239− (weld (weld (check ~.types-record-import src-532 `tok-532 `tre-532) (check-module-types ~.types-record-import ~[%tests %golden ~.types-record-import %source %jibb] src-532 `typ-532 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-532-1]])) (check-module-trees ~.types-record-import `mtre-532 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-532-1]]))
3307+ (weld (weld (check ~.types-record-import src-543 `tok-543 `tre-543) (check-module-types ~.types-record-import ~[%tests %golden ~.types-record-import %source %jibb] src-543 `typ-543 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-543-1]])) (check-module-trees ~.types-record-import `mtre-543 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-543-1]]))
3240++ test-types-record-local-scheme
3308++ test-types-record-local-scheme
3241− (weld (check ~.types-record-local-scheme src-533 `tok-533 `tre-533) (check-types ~.types-record-local-scheme ~[%tests %golden ~.types-record-local-scheme %source %jibb] src-533 `typ-533))
3309+ (weld (check ~.types-record-local-scheme src-544 `tok-544 `tre-544) (check-types ~.types-record-local-scheme ~[%tests %golden ~.types-record-local-scheme %source %jibb] src-544 `typ-544))
3242++ test-types-record-nested
3310++ test-types-record-nested
3243− (weld (check ~.types-record-nested src-534 `tok-534 `tre-534) (check-types ~.types-record-nested ~[%tests %golden ~.types-record-nested %source %jibb] src-534 `typ-534))
3311+ (weld (check ~.types-record-nested src-545 `tok-545 `tre-545) (check-types ~.types-record-nested ~[%tests %golden ~.types-record-nested %source %jibb] src-545 `typ-545))
3244++ test-types-record-to-tuple
3312++ test-types-record-to-tuple
3245− (weld (check ~.types-record-to-tuple src-535 `tok-535 `tre-535) (check-types ~.types-record-to-tuple ~[%tests %golden ~.types-record-to-tuple %source %jibb] src-535 `typ-535))
3313+ (weld (check ~.types-record-to-tuple src-546 `tok-546 `tre-546) (check-types ~.types-record-to-tuple ~[%tests %golden ~.types-record-to-tuple %source %jibb] src-546 `typ-546))
3246++ test-types-recursion-scc-failures
3314++ test-types-recursion-scc-failures
3247− (weld (check ~.types-recursion-scc-failures src-536 `tok-536 `tre-536) (check-module-types ~.types-recursion-scc-failures ~[%tests %golden ~.types-recursion-scc-failures %source %jibb] src-536 `typ-536 ~ ~ ~))
3315+ (weld (check ~.types-recursion-scc-failures src-547 `tok-547 `tre-547) (check-module-types ~.types-recursion-scc-failures ~[%tests %golden ~.types-recursion-scc-failures %source %jibb] src-547 `typ-547 ~ ~ ~))
3248++ test-types-recursion-scc-groups
3316++ test-types-recursion-scc-groups
3249− (weld (check ~.types-recursion-scc-groups src-537 `tok-537 `tre-537) (check-module-types ~.types-recursion-scc-groups ~[%tests %golden ~.types-recursion-scc-groups %source %jibb] src-537 `typ-537 ~ ~ ~))
3317+ (weld (check ~.types-recursion-scc-groups src-548 `tok-548 `tre-548) (check-module-types ~.types-recursion-scc-groups ~[%tests %golden ~.types-recursion-scc-groups %source %jibb] src-548 `typ-548 ~ ~ ~))
3250++ test-types-recursion-scc-import
3318++ test-types-recursion-scc-import
3251− (weld (weld (check ~.types-recursion-scc-import src-538 `tok-538 `tre-538) (check-module-types ~.types-recursion-scc-import ~[%tests %golden ~.types-recursion-scc-import %source %jibb] src-538 `typ-538 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-538-1]])) (check-module-trees ~.types-recursion-scc-import `mtre-538 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-538-1]]))
3319+ (weld (weld (check ~.types-recursion-scc-import src-549 `tok-549 `tre-549) (check-module-types ~.types-recursion-scc-import ~[%tests %golden ~.types-recursion-scc-import %source %jibb] src-549 `typ-549 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-549-1]])) (check-module-trees ~.types-recursion-scc-import `mtre-549 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-549-1]]))
3252++ test-types-recursion-scc-import-bad
3320++ test-types-recursion-scc-import-bad
3253− (weld (weld (check ~.types-recursion-scc-import-bad src-539 `tok-539 `tre-539) (check-module-types ~.types-recursion-scc-import-bad ~[%tests %golden ~.types-recursion-scc-import-bad %source %jibb] src-539 `typ-539 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-539-1]])) (check-module-trees ~.types-recursion-scc-import-bad `mtre-539 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-539-1]]))
3321+ (weld (weld (check ~.types-recursion-scc-import-bad src-550 `tok-550 `tre-550) (check-module-types ~.types-recursion-scc-import-bad ~[%tests %golden ~.types-recursion-scc-import-bad %source %jibb] src-550 `typ-550 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-550-1]])) (check-module-trees ~.types-recursion-scc-import-bad `mtre-550 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-550-1]]))
3254++ test-types-recursion-scc-local
3322++ test-types-recursion-scc-local
3255− (weld (check ~.types-recursion-scc-local src-540 `tok-540 `tre-540) (check-module-types ~.types-recursion-scc-local ~[%tests %golden ~.types-recursion-scc-local %source %jibb] src-540 `typ-540 ~ ~ ~))
3323+ (weld (check ~.types-recursion-scc-local src-551 `tok-551 `tre-551) (check-module-types ~.types-recursion-scc-local ~[%tests %golden ~.types-recursion-scc-local %source %jibb] src-551 `typ-551 ~ ~ ~))
3256++ test-types-recursion-scc-order
3324++ test-types-recursion-scc-order
3257− (weld (check ~.types-recursion-scc-order src-541 `tok-541 `tre-541) (check-module-types ~.types-recursion-scc-order ~[%tests %golden ~.types-recursion-scc-order %source %jibb] src-541 `typ-541 ~ ~ ~))
3325+ (weld (check ~.types-recursion-scc-order src-552 `tok-552 `tre-552) (check-module-types ~.types-recursion-scc-order ~[%tests %golden ~.types-recursion-scc-order %source %jibb] src-552 `typ-552 ~ ~ ~))
3258++ test-types-recursion-scc-shadow
3326++ test-types-recursion-scc-shadow
3259− (weld (check ~.types-recursion-scc-shadow src-542 `tok-542 `tre-542) (check-module-types ~.types-recursion-scc-shadow ~[%tests %golden ~.types-recursion-scc-shadow %source %jibb] src-542 `typ-542 ~ ~ ~))
3327+ (weld (check ~.types-recursion-scc-shadow src-553 `tok-553 `tre-553) (check-module-types ~.types-recursion-scc-shadow ~[%tests %golden ~.types-recursion-scc-shadow %source %jibb] src-553 `typ-553 ~ ~ ~))
3260++ test-types-recursive-branch
3328++ test-types-recursive-branch
3261− (weld (check ~.types-recursive-branch src-543 `tok-543 `tre-543) (check-module-types ~.types-recursive-branch ~[%tests %golden ~.types-recursive-branch %source %jibb] src-543 `typ-543 ~ ~ ~))
3329+ (weld (check ~.types-recursive-branch src-554 `tok-554 `tre-554) (check-module-types ~.types-recursive-branch ~[%tests %golden ~.types-recursive-branch %source %jibb] src-554 `typ-554 ~ ~ ~))
3262++ test-types-recursive-gate
3330++ test-types-recursive-gate
3263− (weld (check ~.types-recursive-gate src-544 `tok-544 `tre-544) (check-types ~.types-recursive-gate ~[%tests %golden ~.types-recursive-gate %source %jibb] src-544 `typ-544))
3331+ (weld (check ~.types-recursive-gate src-555 `tok-555 `tre-555) (check-types ~.types-recursive-gate ~[%tests %golden ~.types-recursive-gate %source %jibb] src-555 `typ-555))
3264++ test-types-recursive-sample
3332++ test-types-recursive-sample
3265− (weld (check ~.types-recursive-sample src-545 `tok-545 `tre-545) (check-types ~.types-recursive-sample ~[%tests %golden ~.types-recursive-sample %source %jibb] src-545 `typ-545))
3333+ (weld (check ~.types-recursive-sample src-556 `tok-556 `tre-556) (check-types ~.types-recursive-sample ~[%tests %golden ~.types-recursive-sample %source %jibb] src-556 `typ-556))
3266++ test-types-scope-library-poke
3334++ test-types-scope-library-poke
3267− (weld (check-at ~.types-scope-library-poke ~[~.ui ~.lib ~.library ~.jibb] src-546 `tok-546 `tre-546) (check-module-types ~.types-scope-library-poke ~[~.ui ~.lib ~.library ~.jibb] src-546 `typ-546 ~ ~ ~))
3335+ (weld (check-at ~.types-scope-library-poke ~[~.ui ~.lib ~.library ~.jibb] src-557 `tok-557 `tre-557) (check-module-types ~.types-scope-library-poke ~[~.ui ~.lib ~.library ~.jibb] src-557 `typ-557 ~ ~ ~))
3268++ test-types-scope-root-api
3336++ test-types-scope-root-api
3269− (weld (check-at ~.types-scope-root-api ~[~.ui ~.api ~.todo ~.jibb] src-547 `tok-547 `tre-547) (check-module-types ~.types-scope-root-api ~[~.ui ~.api ~.todo ~.jibb] src-547 `typ-547 ~ ~ ~))
3337+ (weld (check-at ~.types-scope-root-api ~[~.ui ~.api ~.todo ~.jibb] src-558 `tok-558 `tre-558) (check-module-types ~.types-scope-root-api ~[~.ui ~.api ~.todo ~.jibb] src-558 `typ-558 ~ ~ ~))
3270++ test-types-scope-store-duplicate
3338++ test-types-scope-store-duplicate
3271− (weld (check-at ~.types-scope-store-duplicate ~[~.ui ~.stores ~.cart ~.jibb] src-548 `tok-548 `tre-548) (check-module-types ~.types-scope-store-duplicate ~[~.ui ~.stores ~.cart ~.jibb] src-548 `typ-548 ~ ~ ~))
3339+ (weld (check-at ~.types-scope-store-duplicate ~[~.ui ~.stores ~.cart ~.jibb] src-559 `tok-559 `tre-559) (check-module-types ~.types-scope-store-duplicate ~[~.ui ~.stores ~.cart ~.jibb] src-559 `typ-559 ~ ~ ~))
3272++ test-types-scope-store-shadow
3340++ test-types-scope-store-shadow
3273− (weld (check-at ~.types-scope-store-shadow ~[~.ui ~.stores ~.cart ~.jibb] src-549 `tok-549 `tre-549) (check-module-types ~.types-scope-store-shadow ~[~.ui ~.stores ~.cart ~.jibb] src-549 `typ-549 ~ ~ ~))
3341+ (weld (check-at ~.types-scope-store-shadow ~[~.ui ~.stores ~.cart ~.jibb] src-560 `tok-560 `tre-560) (check-module-types ~.types-scope-store-shadow ~[~.ui ~.stores ~.cart ~.jibb] src-560 `typ-560 ~ ~ ~))
3274++ test-types-single-case-pattern
3342++ test-types-single-case-pattern
3275− (weld (check ~.types-single-case-pattern src-550 `tok-550 `tre-550) (check-module-types ~.types-single-case-pattern ~[%tests %golden ~.types-single-case-pattern %source %jibb] src-550 `typ-550 ~ ~ ~))
3343+ (weld (check ~.types-single-case-pattern src-561 `tok-561 `tre-561) (check-module-types ~.types-single-case-pattern ~[%tests %golden ~.types-single-case-pattern %source %jibb] src-561 `typ-561 ~ ~ ~))
3276++ test-types-string-interpolation
3344++ test-types-string-interpolation
3277− (weld (check ~.types-string-interpolation src-551 `tok-551 `tre-551) (check-module-types ~.types-string-interpolation ~[%tests %golden ~.types-string-interpolation %source %jibb] src-551 `typ-551 ~ ~ ~))
3345+ (weld (check ~.types-string-interpolation src-562 `tok-562 `tre-562) (check-module-types ~.types-string-interpolation ~[%tests %golden ~.types-string-interpolation %source %jibb] src-562 `typ-562 ~ ~ ~))
3278++ test-types-tuple-context
3346++ test-types-tuple-context
3279− (weld (check ~.types-tuple-context src-552 `tok-552 `tre-552) (check-module-types ~.types-tuple-context ~[%tests %golden ~.types-tuple-context %source %jibb] src-552 `typ-552 ~ ~ ~))
3347+ (weld (check ~.types-tuple-context src-563 `tok-563 `tre-563) (check-module-types ~.types-tuple-context ~[%tests %golden ~.types-tuple-context %source %jibb] src-563 `typ-563 ~ ~ ~))
3280++ test-types-tuple-context-nested
3348++ test-types-tuple-context-nested
3281− (weld (check ~.types-tuple-context-nested src-553 `tok-553 `tre-553) (check-module-types ~.types-tuple-context-nested ~[%tests %golden ~.types-tuple-context-nested %source %jibb] src-553 `typ-553 ~ ~ ~))
3349+ (weld (check ~.types-tuple-context-nested src-564 `tok-564 `tre-564) (check-module-types ~.types-tuple-context-nested ~[%tests %golden ~.types-tuple-context-nested %source %jibb] src-564 `typ-564 ~ ~ ~))
3282++ test-types-union-alias
3350++ test-types-union-alias
3283− (weld (check ~.types-union-alias src-554 `tok-554 `tre-554) (check-types ~.types-union-alias ~[%tests %golden ~.types-union-alias %source %jibb] src-554 `typ-554))
3351+ (weld (check ~.types-union-alias src-565 `tok-565 `tre-565) (check-types ~.types-union-alias ~[%tests %golden ~.types-union-alias %source %jibb] src-565 `typ-565))
3284++ test-types-union-branch-context
3352++ test-types-union-branch-context
3285− (weld (check ~.types-union-branch-context src-555 `tok-555 `tre-555) (check-types ~.types-union-branch-context ~[%tests %golden ~.types-union-branch-context %source %jibb] src-555 `typ-555))
3353+ (weld (check ~.types-union-branch-context src-566 `tok-566 `tre-566) (check-types ~.types-union-branch-context ~[%tests %golden ~.types-union-branch-context %source %jibb] src-566 `typ-566))
3286++ test-types-union-branch-pending
3354++ test-types-union-branch-pending
3287− (weld (check ~.types-union-branch-pending src-556 `tok-556 `tre-556) (check-types ~.types-union-branch-pending ~[%tests %golden ~.types-union-branch-pending %source %jibb] src-556 `typ-556))
3355+ (weld (check ~.types-union-branch-pending src-567 `tok-567 `tre-567) (check-types ~.types-union-branch-pending ~[%tests %golden ~.types-union-branch-pending %source %jibb] src-567 `typ-567))
3288++ test-types-union-constructor-shape
3356++ test-types-union-constructor-shape
3289− (weld (check ~.types-union-constructor-shape src-557 `tok-557 `tre-557) (check-types ~.types-union-constructor-shape ~[%tests %golden ~.types-union-constructor-shape %source %jibb] src-557 `typ-557))
3357+ (weld (check ~.types-union-constructor-shape src-568 `tok-568 `tre-568) (check-types ~.types-union-constructor-shape ~[%tests %golden ~.types-union-constructor-shape %source %jibb] src-568 `typ-568))
3290++ test-types-union-context-flow
3358++ test-types-union-context-flow
3291− (weld (check ~.types-union-context-flow src-558 `tok-558 `tre-558) (check-types ~.types-union-context-flow ~[%tests %golden ~.types-union-context-flow %source %jibb] src-558 `typ-558))
3359+ (weld (check ~.types-union-context-flow src-569 `tok-569 `tre-569) (check-types ~.types-union-context-flow ~[%tests %golden ~.types-union-context-flow %source %jibb] src-569 `typ-569))
3292++ test-types-union-finite
3360++ test-types-union-finite
3293− (weld (check ~.types-union-finite src-559 `tok-559 `tre-559) (check-module-types ~.types-union-finite ~[%tests %golden ~.types-union-finite %source %jibb] src-559 `typ-559 ~ ~ ~))
3361+ (weld (check ~.types-union-finite src-570 `tok-570 `tre-570) (check-module-types ~.types-union-finite ~[%tests %golden ~.types-union-finite %source %jibb] src-570 `typ-570 ~ ~ ~))
3294++ test-types-union-finite-context
3362++ test-types-union-finite-context
3295− (weld (check ~.types-union-finite-context src-560 `tok-560 `tre-560) (check-module-types ~.types-union-finite-context ~[%tests %golden ~.types-union-finite-context %source %jibb] src-560 `typ-560 ~ ~ ~))
3363+ (weld (check ~.types-union-finite-context src-571 `tok-571 `tre-571) (check-module-types ~.types-union-finite-context ~[%tests %golden ~.types-union-finite-context %source %jibb] src-571 `typ-571 ~ ~ ~))
3296++ test-types-union-finite-generic
3364++ test-types-union-finite-generic
3297− (weld (check ~.types-union-finite-generic src-561 `tok-561 `tre-561) (check-module-types ~.types-union-finite-generic ~[%tests %golden ~.types-union-finite-generic %source %jibb] src-561 `typ-561 ~ ~ ~))
3365+ (weld (check ~.types-union-finite-generic src-572 `tok-572 `tre-572) (check-module-types ~.types-union-finite-generic ~[%tests %golden ~.types-union-finite-generic %source %jibb] src-572 `typ-572 ~ ~ ~))
3298++ test-types-union-finite-limit
3366++ test-types-union-finite-limit
3299− (weld (check ~.types-union-finite-limit src-562 `tok-562 `tre-562) (check-module-types ~.types-union-finite-limit ~[%tests %golden ~.types-union-finite-limit %source %jibb] src-562 `typ-562 ~ ~ ~))
3367+ (weld (check ~.types-union-finite-limit src-573 `tok-573 `tre-573) (check-module-types ~.types-union-finite-limit ~[%tests %golden ~.types-union-finite-limit %source %jibb] src-573 `typ-573 ~ ~ ~))
3300++ test-types-union-import
3368++ test-types-union-import
3301− (weld (weld (check ~.types-union-import src-563 `tok-563 `tre-563) (check-module-types ~.types-union-import ~[%tests %golden ~.types-union-import %source %jibb] src-563 `typ-563 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-563-1]])) (check-module-trees ~.types-union-import `mtre-563 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-563-1]]))
3369+ (weld (weld (check ~.types-union-import src-574 `tok-574 `tre-574) (check-module-types ~.types-union-import ~[%tests %golden ~.types-union-import %source %jibb] src-574 `typ-574 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-574-1]])) (check-module-trees ~.types-union-import `mtre-574 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-574-1]]))
3302++ test-types-union-local-pending
3370++ test-types-union-local-pending
3303− (weld (check ~.types-union-local-pending src-564 `tok-564 `tre-564) (check-types ~.types-union-local-pending ~[%tests %golden ~.types-union-local-pending %source %jibb] src-564 `typ-564))
3371+ (weld (check ~.types-union-local-pending src-575 `tok-575 `tre-575) (check-types ~.types-union-local-pending ~[%tests %golden ~.types-union-local-pending %source %jibb] src-575 `typ-575))
3304++ test-types-union-nonwing-subject
3372++ test-types-union-nonwing-subject
3305− (weld (check ~.types-union-nonwing-subject src-565 `tok-565 `tre-565) (check-module-types ~.types-union-nonwing-subject ~[%tests %golden ~.types-union-nonwing-subject %source %jibb] src-565 `typ-565 ~ ~ ~))
3373+ (weld (check ~.types-union-nonwing-subject src-576 `tok-576 `tre-576) (check-module-types ~.types-union-nonwing-subject ~[%tests %golden ~.types-union-nonwing-subject %source %jibb] src-576 `typ-576 ~ ~ ~))
3306++ test-types-union-overlap
3374++ test-types-union-overlap
3307− (weld (check ~.types-union-overlap src-566 `tok-566 `tre-566) (check-types ~.types-union-overlap ~[%tests %golden ~.types-union-overlap %source %jibb] src-566 `typ-566))
3375+ (weld (check ~.types-union-overlap src-577 `tok-577 `tre-577) (check-types ~.types-union-overlap ~[%tests %golden ~.types-union-overlap %source %jibb] src-577 `typ-577))
3308++ test-types-union-overlap-nested
3376++ test-types-union-overlap-nested
3309− (weld (check ~.types-union-overlap-nested src-567 `tok-567 `tre-567) (check-types ~.types-union-overlap-nested ~[%tests %golden ~.types-union-overlap-nested %source %jibb] src-567 `typ-567))
3377+ (weld (check ~.types-union-overlap-nested src-578 `tok-578 `tre-578) (check-types ~.types-union-overlap-nested ~[%tests %golden ~.types-union-overlap-nested %source %jibb] src-578 `typ-578))
3310++ test-types-union-pattern-result-context
3378++ test-types-union-pattern-result-context
3311− (weld (check ~.types-union-pattern-result-context src-568 `tok-568 `tre-568) (check-module-types ~.types-union-pattern-result-context ~[%tests %golden ~.types-union-pattern-result-context %source %jibb] src-568 `typ-568 ~ ~ ~))
3379+ (weld (check ~.types-union-pattern-result-context src-579 `tok-579 `tre-579) (check-module-types ~.types-union-pattern-result-context ~[%tests %golden ~.types-union-pattern-result-context %source %jibb] src-579 `typ-579 ~ ~ ~))
3312++ test-types-union-pattern-result-controls
3380++ test-types-union-pattern-result-controls
3313− (weld (check ~.types-union-pattern-result-controls src-569 `tok-569 `tre-569) (check-module-types ~.types-union-pattern-result-controls ~[%tests %golden ~.types-union-pattern-result-controls %source %jibb] src-569 `typ-569 ~ ~ ~))
3381+ (weld (check ~.types-union-pattern-result-controls src-580 `tok-580 `tre-580) (check-module-types ~.types-union-pattern-result-controls ~[%tests %golden ~.types-union-pattern-result-controls %source %jibb] src-580 `typ-580 ~ ~ ~))
3314++ test-types-union-patterns
3382++ test-types-union-patterns
3315− (weld (check ~.types-union-patterns src-570 `tok-570 `tre-570) (check-module-types ~.types-union-patterns ~[%tests %golden ~.types-union-patterns %source %jibb] src-570 `typ-570 ~ ~ ~))
3383+ (weld (check ~.types-union-patterns src-581 `tok-581 `tre-581) (check-module-types ~.types-union-patterns ~[%tests %golden ~.types-union-patterns %source %jibb] src-581 `typ-581 ~ ~ ~))
3316++ test-types-union-patterns-generic
3384++ test-types-union-patterns-generic
3317− (weld (check ~.types-union-patterns-generic src-571 `tok-571 `tre-571) (check-module-types ~.types-union-patterns-generic ~[%tests %golden ~.types-union-patterns-generic %source %jibb] src-571 `typ-571 ~ ~ ~))
3385+ (weld (check ~.types-union-patterns-generic src-582 `tok-582 `tre-582) (check-module-types ~.types-union-patterns-generic ~[%tests %golden ~.types-union-patterns-generic %source %jibb] src-582 `typ-582 ~ ~ ~))
3318++ test-types-union-patterns-import
3386++ test-types-union-patterns-import
3319− (weld (weld (check ~.types-union-patterns-import src-572 `tok-572 `tre-572) (check-module-types ~.types-union-patterns-import ~[%tests %golden ~.types-union-patterns-import %source %jibb] src-572 `typ-572 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-572-1]])) (check-module-trees ~.types-union-patterns-import `mtre-572 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-572-1]]))
3387+ (weld (weld (check ~.types-union-patterns-import src-583 `tok-583 `tre-583) (check-module-types ~.types-union-patterns-import ~[%tests %golden ~.types-union-patterns-import %source %jibb] src-583 `typ-583 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-583-1]])) (check-module-trees ~.types-union-patterns-import `mtre-583 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-583-1]]))
3320++ test-types-union-phantom-generic
3388++ test-types-union-phantom-generic
3321− (weld (check ~.types-union-phantom-generic src-573 `tok-573 `tre-573) (check-types ~.types-union-phantom-generic ~[%tests %golden ~.types-union-phantom-generic %source %jibb] src-573 `typ-573))
3389+ (weld (check ~.types-union-phantom-generic src-584 `tok-584 `tre-584) (check-types ~.types-union-phantom-generic ~[%tests %golden ~.types-union-phantom-generic %source %jibb] src-584 `typ-584))
3322++ test-types-union-polymorphic-identity
3390++ test-types-union-polymorphic-identity
3323− (weld (weld (check ~.types-union-polymorphic-identity src-574 `tok-574 `tre-574) (check-module-types ~.types-union-polymorphic-identity ~[%tests %golden ~.types-union-polymorphic-identity %source %jibb] src-574 `typ-574 ~ ~ ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-574-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-574-2]])) (check-module-trees ~.types-union-polymorphic-identity `mtre-574 ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-574-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-574-2]]))
3391+ (weld (weld (check ~.types-union-polymorphic-identity src-585 `tok-585 `tre-585) (check-module-types ~.types-union-polymorphic-identity ~[%tests %golden ~.types-union-polymorphic-identity %source %jibb] src-585 `typ-585 ~ ~ ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-585-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-585-2]])) (check-module-trees ~.types-union-polymorphic-identity `mtre-585 ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-585-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-585-2]]))
3324++ test-types-union-print-cross-namespace
3392++ test-types-union-print-cross-namespace
3325− (weld (weld (check ~.types-union-print-cross-namespace src-575 `tok-575 `tre-575) (check-module-types ~.types-union-print-cross-namespace ~[%tests %golden ~.types-union-print-cross-namespace %source %jibb] src-575 `typ-575 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-575-1]])) (check-module-trees ~.types-union-print-cross-namespace `mtre-575 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-575-1]]))
3393+ (weld (weld (check ~.types-union-print-cross-namespace src-586 `tok-586 `tre-586) (check-module-types ~.types-union-print-cross-namespace ~[%tests %golden ~.types-union-print-cross-namespace %source %jibb] src-586 `typ-586 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-586-1]])) (check-module-trees ~.types-union-print-cross-namespace `mtre-586 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-586-1]]))
3326++ test-types-union-print-distinct
3394++ test-types-union-print-distinct
3327− (weld (weld (check ~.types-union-print-distinct src-576 `tok-576 `tre-576) (check-module-types ~.types-union-print-distinct ~[%tests %golden ~.types-union-print-distinct %source %jibb] src-576 `typ-576 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-576-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-576-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-576-3]])) (check-module-trees ~.types-union-print-distinct `mtre-576 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-576-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-576-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-576-3]]))
3395+ (weld (weld (check ~.types-union-print-distinct src-587 `tok-587 `tre-587) (check-module-types ~.types-union-print-distinct ~[%tests %golden ~.types-union-print-distinct %source %jibb] src-587 `typ-587 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-587-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-587-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-587-3]])) (check-module-trees ~.types-union-print-distinct `mtre-587 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-587-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-587-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-587-3]]))
3328++ test-types-union-print-escape
3396++ test-types-union-print-escape
3329− (weld (check ~.types-union-print-escape src-577 `tok-577 `tre-577) (check-types ~.types-union-print-escape ~[%tests %golden ~.types-union-print-escape %source %jibb] src-577 `typ-577))
3397+ (weld (check ~.types-union-print-escape src-588 `tok-588 `tre-588) (check-types ~.types-union-print-escape ~[%tests %golden ~.types-union-print-escape %source %jibb] src-588 `typ-588))
3330++ test-types-union-print-local
3398++ test-types-union-print-local
3331− (weld (check ~.types-union-print-local src-578 `tok-578 `tre-578) (check-types ~.types-union-print-local ~[%tests %golden ~.types-union-print-local %source %jibb] src-578 `typ-578))
3399+ (weld (check ~.types-union-print-local src-589 `tok-589 `tre-589) (check-types ~.types-union-print-local ~[%tests %golden ~.types-union-print-local %source %jibb] src-589 `typ-589))
3332++ test-types-union-print-nested
3400++ test-types-union-print-nested
3333− (weld (check ~.types-union-print-nested src-579 `tok-579 `tre-579) (check-types ~.types-union-print-nested ~[%tests %golden ~.types-union-print-nested %source %jibb] src-579 `typ-579))
3401+ (weld (check ~.types-union-print-nested src-590 `tok-590 `tre-590) (check-types ~.types-union-print-nested ~[%tests %golden ~.types-union-print-nested %source %jibb] src-590 `typ-590))
3334++ test-types-union-print-same-origin
3402++ test-types-union-print-same-origin
3335− (weld (weld (check ~.types-union-print-same-origin src-580 `tok-580 `tre-580) (check-module-types ~.types-union-print-same-origin ~[%tests %golden ~.types-union-print-same-origin %source %jibb] src-580 `typ-580 ~ ~ ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-580-1]])) (check-module-trees ~.types-union-print-same-origin `mtre-580 ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-580-1]]))
3403+ (weld (weld (check ~.types-union-print-same-origin src-591 `tok-591 `tre-591) (check-module-types ~.types-union-print-same-origin ~[%tests %golden ~.types-union-print-same-origin %source %jibb] src-591 `typ-591 ~ ~ ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-591-1]])) (check-module-trees ~.types-union-print-same-origin `mtre-591 ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-591-1]]))
3336++ test-types-union-print-transitive
3404++ test-types-union-print-transitive
3337− (weld (weld (check ~.types-union-print-transitive src-581 `tok-581 `tre-581) (check-module-types ~.types-union-print-transitive ~[%tests %golden ~.types-union-print-transitive %source %jibb] src-581 `typ-581 ~ ~ ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-581-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-581-2]])) (check-module-trees ~.types-union-print-transitive `mtre-581 ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-581-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-581-2]]))
3405+ (weld (weld (check ~.types-union-print-transitive src-592 `tok-592 `tre-592) (check-module-types ~.types-union-print-transitive ~[%tests %golden ~.types-union-print-transitive %source %jibb] src-592 `typ-592 ~ ~ ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-592-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-592-2]])) (check-module-trees ~.types-union-print-transitive `mtre-592 ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-592-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-592-2]]))
3338++ test-types-union-singleton
3406++ test-types-union-singleton
3339− (weld (check ~.types-union-singleton src-582 `tok-582 `tre-582) (check-types ~.types-union-singleton ~[%tests %golden ~.types-union-singleton %source %jibb] src-582 `typ-582))
3407+ (weld (check ~.types-union-singleton src-593 `tok-593 `tre-593) (check-types ~.types-union-singleton ~[%tests %golden ~.types-union-singleton %source %jibb] src-593 `typ-593))
3340++ test-types-union-tag-atoms
3408++ test-types-union-tag-atoms
3341− (weld (check ~.types-union-tag-atoms src-583 `tok-583 `tre-583) (check-types ~.types-union-tag-atoms ~[%tests %golden ~.types-union-tag-atoms %source %jibb] src-583 `typ-583))
3409+ (weld (check ~.types-union-tag-atoms src-594 `tok-594 `tre-594) (check-types ~.types-union-tag-atoms ~[%tests %golden ~.types-union-tag-atoms %source %jibb] src-594 `typ-594))
3342++ test-types-union-tags
3410++ test-types-union-tags
3343− (weld (check ~.types-union-tags src-584 `tok-584 `tre-584) (check-types ~.types-union-tags ~[%tests %golden ~.types-union-tags %source %jibb] src-584 `typ-584))
3411+ (weld (check ~.types-union-tags src-595 `tok-595 `tre-595) (check-types ~.types-union-tags ~[%tests %golden ~.types-union-tags %source %jibb] src-595 `typ-595))
3344++ test-types-union-unresolved
3412++ test-types-union-unresolved
3345− (weld (check ~.types-union-unresolved src-585 `tok-585 `tre-585) (check-types ~.types-union-unresolved ~[%tests %golden ~.types-union-unresolved %source %jibb] src-585 `typ-585))
3413+ (weld (check ~.types-union-unresolved src-596 `tok-596 `tre-596) (check-types ~.types-union-unresolved ~[%tests %golden ~.types-union-unresolved %source %jibb] src-596 `typ-596))
3346++ test-types-union-unresolved-flow
3414++ test-types-union-unresolved-flow
3347− (weld (check ~.types-union-unresolved-flow src-586 `tok-586 `tre-586) (check-types ~.types-union-unresolved-flow ~[%tests %golden ~.types-union-unresolved-flow %source %jibb] src-586 `typ-586))
3415+ (weld (check ~.types-union-unresolved-flow src-597 `tok-597 `tre-597) (check-types ~.types-union-unresolved-flow ~[%tests %golden ~.types-union-unresolved-flow %source %jibb] src-597 `typ-597))
3348++ test-types-unit-construction
3416++ test-types-unit-construction
3349− (weld (check ~.types-unit-construction src-587 `tok-587 `tre-587) (check-module-types ~.types-unit-construction ~[%tests %golden ~.types-unit-construction %source %jibb] src-587 `typ-587 ~ ~ ~))
3417+ (weld (check ~.types-unit-construction src-598 `tok-598 `tre-598) (check-module-types ~.types-unit-construction ~[%tests %golden ~.types-unit-construction %source %jibb] src-598 `typ-598 ~ ~ ~))
3350++ test-types-unit-context
3418++ test-types-unit-context
3351− (weld (check ~.types-unit-context src-588 `tok-588 `tre-588) (check-module-types ~.types-unit-context ~[%tests %golden ~.types-unit-context %source %jibb] src-588 `typ-588 ~ ~ ~))
3419+ (weld (check ~.types-unit-context src-599 `tok-599 `tre-599) (check-module-types ~.types-unit-context ~[%tests %golden ~.types-unit-context %source %jibb] src-599 `typ-599 ~ ~ ~))
3352++ test-types-unit-patterns
3420++ test-types-unit-patterns
3353− (weld (check ~.types-unit-patterns src-589 `tok-589 `tre-589) (check-types ~.types-unit-patterns ~[%tests %golden ~.types-unit-patterns %source %jibb] src-589 `typ-589))
3421+ (weld (check ~.types-unit-patterns src-600 `tok-600 `tre-600) (check-types ~.types-unit-patterns ~[%tests %golden ~.types-unit-patterns %source %jibb] src-600 `typ-600))
3354++ test-types-value-cycle-shadow
3422++ test-types-value-cycle-shadow
3355− (weld (check ~.types-value-cycle-shadow src-590 `tok-590 `tre-590) (check-module-types ~.types-value-cycle-shadow ~[%tests %golden ~.types-value-cycle-shadow %source %jibb] src-590 `typ-590 ~ ~ ~))
3423+ (weld (check ~.types-value-cycle-shadow src-601 `tok-601 `tre-601) (check-module-types ~.types-value-cycle-shadow ~[%tests %golden ~.types-value-cycle-shadow %source %jibb] src-601 `typ-601 ~ ~ ~))
3356++ test-types-value-cycle-unsupported
3424++ test-types-value-cycle-unsupported
3357− (weld (check ~.types-value-cycle-unsupported src-591 `tok-591 `tre-591) (check-module-types ~.types-value-cycle-unsupported ~[%tests %golden ~.types-value-cycle-unsupported %source %jibb] src-591 `typ-591 ~ ~ ~))
3425+ (weld (check ~.types-value-cycle-unsupported src-602 `tok-602 `tre-602) (check-module-types ~.types-value-cycle-unsupported ~[%tests %golden ~.types-value-cycle-unsupported %source %jibb] src-602 `typ-602 ~ ~ ~))
3358++ test-types-value-cycles
3426++ test-types-value-cycles
3359− (weld (check ~.types-value-cycles src-592 `tok-592 `tre-592) (check-module-types ~.types-value-cycles ~[%tests %golden ~.types-value-cycles %source %jibb] src-592 `typ-592 ~ ~ ~))
3427+ (weld (check ~.types-value-cycles src-603 `tok-603 `tre-603) (check-module-types ~.types-value-cycles ~[%tests %golden ~.types-value-cycles %source %jibb] src-603 `typ-603 ~ ~ ~))
3360::
3428::
3361:: +check: run golden:jibb on a case and compare both outputs
3429:: +check: run golden:jibb on a case and compare both outputs
3362::
3430::
tests/type-list-alias/expected.txtnew file+36
@@ -0,0 +1,36 @@
1+canonical
2+partial inference; module not checked
3+++ text: $-((list @t) (list @t))
4+++ ship: $-((list @p) (list @p))
5+++ wrong: list item does not fit its expected type
6+/ui/test.jibb:3:13: expected item has type @t
7+++ wrong ^- (alias @t) ~[~zod]
8+ ^
9+/ui/test.jibb:3:26: list item has type @p
10+++ wrong ^- (alias @t) ~[~zod]
11+ ^
12+++ shadow: local molds shadow a name
13+altered
14+partial inference; module not checked
15+++ text: sample mold is not supported by partial inference
16+++ ship: sample mold is not supported by partial inference
17+++ wrong: cast mold is not supported by partial inference
18+++ shadow: sample mold is not supported by partial inference
19+omitted
20+partial inference; module not checked
21+++ text: sample mold is not supported by partial inference
22+++ ship: sample mold is not supported by partial inference
23+++ wrong: cast mold is not supported by partial inference
24+++ shadow: sample mold is not supported by partial inference
25+duplicate
26+partial inference; module not checked
27+prelude interface is not supported
28+malformed
29+partial inference; module not checked
30+prelude source does not parse; module import inference unsupported
31+cyclic
32+partial inference; module not checked
33+++ text: sample mold is not supported by partial inference
34+++ ship: sample mold is not supported by partial inference
35+++ wrong: cast mold is not supported by partial inference
36+++ shadow: local molds shadow a name
tools/type-hole-guards-testnew file+32
@@ -0,0 +1,32 @@
1+#!/usr/bin/env python3
2+"""Run the shared hole-defaulting and API guard checks under eval."""
3+from pathlib import Path
4+import argparse
5+import subprocess
6+import sys
7+import tempfile
8+
9+root = Path(__file__).resolve().parent.parent
10+parser = argparse.ArgumentParser(description=__doc__)
11+parser.add_argument('--lib', default=str(root / 'jibb-dev/lib/jibb.hoon'))
12+args = parser.parse_args()
13+tests = (root / 'tests/lib/jibb-hole-guards.hoon').read_text()
14+tests = tests[tests.index('\n|%\n') + 1:]
15+expression = ('=/ jibb .\n=/ real-prelude=@t prelude\n'
16+ '=/ real-internal=@t internal\n=/ suite\n' + tests +
17+ '\n=/ failures=(list tape) hole-guard-errors:suite\n^- @t\n'
18+ "?~ failures 'hole guards passed'\n"
19+ '(of-wain:format (turn failures crip))\n')
20+with tempfile.TemporaryDirectory(prefix='jibb-hole-guards-') as tmp:
21+ program = Path(tmp) / 'guards.hoon'
22+ program.write_text(expression)
23+ command = [str(root / 'tools/hoon'), '--lib', args.lib, '--raw', '-f', str(program),
24+ '--cord', 'prelude=' + str(root / 'jibb-dev/lib/jibb/prelude.jibb'),
25+ '--cord', 'internal=' + str(root / 'jibb-dev/lib/jibb/internal.jibb')]
26+ result = subprocess.run(command, stdout=subprocess.PIPE)
27+if result.returncode:
28+ sys.exit(result.returncode)
29+if result.stdout != b'hole guards passed\n':
30+ sys.stderr.buffer.write(result.stdout)
31+ sys.exit(1)
32+print('hole defaulting and API guards passed')
tools/type-list-alias-testnew file+33
@@ -0,0 +1,33 @@
1+#!/usr/bin/env python3
2+"""Compare source-backed list alias preparation under eval."""
3+from pathlib import Path
4+import argparse
5+import difflib
6+import subprocess
7+import sys
8+import tempfile
9+
10+root = Path(__file__).resolve().parent.parent
11+parser = argparse.ArgumentParser(description=__doc__)
12+parser.add_argument('--lib', default=str(root / 'jibb-dev/lib/jibb.hoon'))
13+parser.add_argument('--update', action='store_true')
14+args = parser.parse_args()
15+tests = (root / 'tests/lib/jibb-list-alias-guards.hoon').read_text()
16+tests = tests[tests.index('\n|%\n') + 1:]
17+expression = '=/ jibb .\n=/ expected=wain ~\n=/ suite\n' + tests + '\nlist-alias-output:suite\n'
18+with tempfile.TemporaryDirectory(prefix='jibb-list-alias-') as tmp:
19+ program = Path(tmp) / 'guards.hoon'
20+ program.write_text(expression)
21+ result = subprocess.run([str(root / 'tools/hoon'), '--lib', args.lib, '--raw', '-f', str(program)], stdout=subprocess.PIPE)
22+if result.returncode:
23+ sys.exit(result.returncode)
24+expected_path = root / 'tests/type-list-alias/expected.txt'
25+if args.update:
26+ expected_path.write_bytes(result.stdout)
27+ print('updated list alias guards golden')
28+ sys.exit(0)
29+expected = expected_path.read_bytes()
30+if result.stdout != expected:
31+ sys.stderr.writelines(difflib.unified_diff(expected.decode().splitlines(keepends=True), result.stdout.decode().splitlines(keepends=True), fromfile='expected.txt', tofile='actual'))
32+ sys.exit(1)
33+print('list alias guards golden passed')