on master help sign in
Preserve public generic union alias names

Keep an identity-mapped public alias visible through imports while leaving ambiguous private specializations unsupported. Record the chosen result-mapping behavior of like and cover alias origins and argument mappings.

commit81af5fdd49cc92e1aedd5945e3210af080864e85 authoriko <mail@iko.soy> dateSat 31 Oct 2026, 07:47 (11 hours ago) parent1a891e2
21 files changed+944−592
docs/compiler.md+2 docs/development.md+2 docs/open-questions.md+2−2 docs/prelude-inventory.md+2−2 docs/prompts/milestone-2.md+1−1 docs/spec/decisions.md+1 docs/spec/overview.md+2 docs/status.md+8−6 jibb-dev/lib/jibb.hoon+26−8 tests/golden/types-prelude-generic-alias/about.txt+4 tests/golden/types-prelude-generic-alias/module-trees.txt+10 tests/golden/types-prelude-generic-alias/modules.txt+1 tests/golden/types-prelude-generic-alias/modules/ui/alias-helper.jibb+2 tests/golden/types-prelude-generic-alias/source.jibb+13 tests/golden/types-prelude-generic-alias/tokens.txt+146 tests/golden/types-prelude-generic-alias/tree.txt+51 tests/golden/types-prelude-generic-alias/types.txt+13 tests/lib/jibb-generic-alias.hoon+48 tests/lib/jibb.hoon+580−572 tools/testdata/ship-selftest+2−1 tools/type-generic-alias-test+28
docs/compiler.md+2
@@ -111,6 +111,8 @@ And the design notes:
111111| 3. The parser | Why recursive descent (the grammar is LL(2) after the layout pass), the EBNF rule by rule with the node each gives, what the EBNF leaves out and how it's filled in, spacing, and where each error points, with its message |
112112| 4. Printed formats | The token, tree and error formats the golden files hold |
113113
114+Public identity aliases of private generic unions retain their public name when the origin, arity and argument order match exactly, including through imported values. Fixed, reordered, repeated and phantom generic aliases remain unsupported where a safe public name cannot be recovered; a fixed nongeneric alias is not printed as though it accepted type arguments.
115+
114116The partial checker reserves `proj` in module, local, sample, pattern and import bindings, including bindings inside unsupported source; a field, tag or path segment may still have that spelling. With a known expected record type, it checks selected explicit `(proj record)` calls over closed, uniquely faced records, preserving the source expression, its type, the result type and field axes in the checked interface. Imported and private-prelude dependencies retain the source needed to lower those plans. The checker does not yet lower or execute them. It supports selecting one or more fields in their original order; a single selected field keeps its face and uses one source axis. Reordered fields, unknown or open record spines, some nested contexts and recursive groups with projections remain unsupported. A directional fit of a wider faced record fails closed instead of inserting a projection, including within supported list, unit and record positions. To limit repeated work, record-spine proofs are reused along the same closed spine and stop at 1,024 fields; field boundaries and the special handling of positional calls reset the appropriate proof. Prepared interfaces and their source remain trusted host inputs.
115117
116118## The tree
docs/development.md+2
@@ -68,6 +68,7 @@ git clone https://github.com/urbit/tools /root/src/tools
6868| `tools/type-api-paths-test` | Checks partial API path analysis with real todo mark samples against `tests/type-api-paths/expected.txt` under eval |
6969| `tools/type-hole-guards-test` | Runs the shared hole-defaulting and API interface guards under eval; the same checks run on the ship |
7070| `tools/type-list-alias-test` | Runs the shared prelude list-alias and provenance guards under eval and on the ship |
71+| `tools/type-generic-alias-test` | Runs public/private generic union alias and provenance guards under eval and on the ship |
7172| `tools/type-qath-guards-test` | Runs source-provenance, recursive unfolding and face guards under eval and on the ship |
7273| `tools/type-proj-guards-test` | Runs projection evidence, name-scope and dependency guards under eval and on the ship |
7374| `tools/type-arithmetic-guards-test` | Runs restricted atom-variable, unification and projection guards under eval and on the ship |
@@ -95,6 +96,7 @@ tools/type-poke-test # source-backed poke/API bridge report matche
9596tools/type-api-paths-test # partial API path analysis report matches
9697tools/type-hole-guards-test # hole defaulting and API guards pass
9798tools/type-list-alias-test # prelude list-alias guards pass
99+tools/type-generic-alias-test # generic union alias guards pass
98100tools/type-qath-guards-test # qath source and unfolding guards pass
99101tools/type-proj-guards-test # projection evidence and scope guards pass
100102tools/type-arithmetic-guards-test # arithmetic constraint guards pass
docs/open-questions.md+2−2
@@ -18,7 +18,7 @@ On 2026-10-30, @iko adopted gate-free `eq` arguments and map and set keys, treat
1818
1919## Questions milestone 2 raises
2020
21−Found while writing [prompts/milestone-2.md](prompts/milestone-2.md), checking it against the doc's examples, and building the checker. The numbering is retained so existing references stay valid. Questions 3 and 18 remain open; the field-order detail in question 32 is being clarified. The other questions are settled.
21+Found while writing [prompts/milestone-2.md](prompts/milestone-2.md), checking it against the doc's examples, and building the checker. The numbering is retained so existing references stay valid. Question 3 remains open; the field-order detail in question 32 is being clarified. The other questions are settled.
2222
23231. **Settled: how the prelude identifies jetted functions.** On 2026-10-30, @iko said the prelude functions have working Jibb implementations, and the compiler recognizes their shapes and uses the Hoon versions so jets can fire.
24242. **Settled: how the prelude keeps helpers private.** On 2026-10-30, @iko chose a separate internal prelude module imported by the prelude, without exposing the imported helpers.
@@ -37,7 +37,7 @@ Found while writing [prompts/milestone-2.md](prompts/milestone-2.md), checking i
373715. **Settled: unrestricted atoms and shared auras.** On 2026-10-30, @iko said `@` means any atom, independently at each occurrence, so Hoon `dime` and `pint` keep their bare-`@` fields. A specific atom such as `@ud` fits where `@` is expected; an `@` value needs a check to fit `@ud`. Shared atom types use one capital, with the atom constraint inferred from its body, as for `add` taking `[A A]` and returning `A`.
383816. **Settled: loobeans in union disjointness.** On 2026-10-30, @iko said `?` counts as its two atoms, `%.y` and `%.n`: it is disjoint from any cell and overlaps the constants 0 and 1.
393917. **Settled: empty cases in union disjointness.** On 2026-10-30, @iko said `!!` is disjoint from every case. A cell containing an empty position at any depth is itself empty and is also disjoint from every case.
40−18. **The two uses of Hoon `like`.** Hoon `+like` is a wet mold builder, but the gate it returns is callable and applies its supplied gate to the product. In a verified Hoon 135 example, applying `(like f)` to `[[1 2] [7 8 ~]]` produces an edge whose product is `8` when `f` is identity and `42` when `f` returns `42`; the resulting nail is the original input. Jibb molds are types, not callable values. The prelude now declares a generic `(like A)` mold and a `wonk` extractor; both parse, but their full type and backend validation remain outstanding. Should it also expose a value gate under `like`? If so, should the value preserve Hoon's input shape and behavior, or instead map the product of an already constructed edge? @iko is reviewing these alternatives; the exact public signature is not yet decided.
40+18. **Settled: the value gate `like`.** On 2026-10-31, @iko chose a gate `(like convert result)` that maps the product of an existing `(like A)` result with `convert=$-(A B)`, yielding `(like B)` while preserving its position and remaining input. An absent result stays absent. The `(like A)` mold remains available in the separate mold namespace. Hoon's wet `+like` instead builds a gate that constructs a result from an input noun; the chosen Jibb value gate is an adaptation of that behavior.
414119. **Settled: Hoon aura families and `step.hoon`.** On 2026-10-30, @iko chose `step.hoon` for Hoon 1c `step`, avoiding a clash with the Grammar example's `step`, and chose one-way widening across Hoon aura families: for example, `@ud` and `@ux` fit `@u`, and `@tD` fits `@t`. The reverse needs a check. The `step.hoon` group representation is not implemented yet.
424220. **Settled: the type of `clap`.** On 2026-10-30, @iko chose one shared value type for both units and the combining gate. If either unit is absent, `clap` returns the other; if both are present, it applies the gate to their values and wraps the result.
434321. **Settled: duplicate faces in imported Hoon records.** On 2026-10-30, @iko chose to reject an imported Hoon record with duplicate field names where its type is used. Hoon permits `[a=@ud a=@t]` and picks the first `a`; Jibb rejects it.
docs/prelude-inventory.md+2−2
@@ -123,7 +123,7 @@ Hoon 135's `3g` section has exactly 12 exports: ten `+$` molds (`coin`, `dime`,
123123| `dime` | `[p=@ta q=@]` in Hoon. The `q` field accepts any atom, as does Jibb `@` after @iko's decision in question 15. |
124124| `edge` | `[p=hair q=(unit [p=* q=nail])]`: a parsing position and either no result or a result and remaining input. |
125125| `hair` | `[p=@ud q=@ud]`: a parsing position. |
126−| `like` | A wet mold builder parameterized by a gate `a=$-(* *)`; its generated gate takes a noun, builds an `edge`-shaped result, and applies `a` to the product on success. The prelude declares the generic mold `+$ like |$ [A] [p=hair q=(unit [p=A q=nail])]`. A callable Jibb value form remains open in question 18. |
126+| `like` | A wet mold builder parameterized by a gate `a=$-(* *)`; its generated gate takes a noun, builds an `edge`-shaped result, and applies `a` to the product on success. The prelude declares the generic mold `+$ like |$ [A] [p=hair q=(unit [p=A q=nail])]`. @iko chose a separate Jibb value gate that maps the product of an existing result; that gate is not yet implemented. |
127127| `nail` | `[p=hair q=tape]`: parsing input. |
128128| `pint` | `[p=[p=@ q=@] q=[p=@ q=@]]` in Hoon. The four positions accept atoms independently; Jibb `@` now has the same meaning. |
129129| `rule` | A gate mold `$-(nail edge)`; Hoon constructs its sample and product from the `nail` and `edge` molds. |
@@ -152,7 +152,7 @@ The following shapes can be written as Jibb declarations once their referenced p
152152 [%2 p=(list tank)]
153153```
154154
155−The compiler-result `tone.hoon` has the three cases listed above; the qualified name is a prelude group member, not a `+$` identifier containing a dot. Question 15 in [open-questions.md](open-questions.md) records @iko's decision that `@` is an unrestricted atom, resolving the `dime` and `pint` mismatch. The callable value form of `like` remains unresolved. The new `like` mold and `wonk` gate parse, but full type and backend validation remain outstanding.
155+The compiler-result `tone.hoon` has the three cases listed above; the qualified name is a prelude group member, not a `+$` identifier containing a dot. Question 15 in [open-questions.md](open-questions.md) records @iko's decision that `@` is an unrestricted atom, resolving the `dime` and `pint` mismatch. The value form of `like` maps an existing result's product and remains to be implemented. The `like` mold and `wonk` gate parse, but full type and backend validation remain outstanding.
156156
157157## 4a
158158
docs/prompts/milestone-2.md+1−1
@@ -115,7 +115,7 @@ The rules are scattered across the tabs. This is a map of them, not a replacemen
115115
116116**The prelude** (overview: Prelude, Layout and styling, Links and URLs, Effects)
117117- Hoon's standard library regrouped, "written in Jibb and vendored as `/lib/jibb/prelude`", plus `eq`, `not`, `page`, `program`, `store`, `pure`, `island`, the layout elements and molds, `attr`, `theme`, and `cmd` and `sub` as the overview's Effects block writes them.
118−- Signatures change where the Prelude table says: `clap` takes two units of one value type and a combining gate over that type; maps and sets are plain gates over Hoon's trees, as `(get.by m k)`; folds take a start, as `(roll xs init f)`, `rep.by` and `rep.in`; ordered maps go through lull's `on`, as `(get.on lte m k)`.
118+- Signatures change where the Prelude table says: `clap` takes two units of one value type and a combining gate over that type; the value gate `(like convert result)` maps the product of a `(like A)` to a `(like B)`, preserving position and remaining input; maps and sets are plain gates over Hoon's trees, as `(get.by m k)`; folds take a start, as `(roll xs init f)`, `rep.by` and `rep.in`; ordered maps go through lull's `on`, as `(get.on lte m k)`.
119119- Left out: signed and float gates, parser helpers outside 3g other than the explicitly listed `slav` and `slaw`, and the table's "The rest" (1b, 2p, 3d, 3f, 4c, 4n, 4o, 5a–5f); "`jam`, `cue` and `fein` run inside the runtime".
120120- Write the prelude in Jibb, enough to give every name its type. Foundational gates use private low-level primitives from the internal prelude module. Jetted functions have working Jibb implementations; the compiler recognizes their shapes and uses the Hoon versions so jets can fire. They may take gates as arguments; the Nock backend comes in milestone 3.
121121- Element signatures are in the Layout and styling table. Paths and unchecked cords have separate declarations, with `link-unsafe`, `image-unsafe` and `go-unsafe` for the unchecked forms. Both navigation declarations produce `[%go url=@t]`; `go` converts its application path to a cord including the app's base path. "The same attribute twice in a literal list is an error."
docs/spec/decisions.md+1
@@ -82,6 +82,7 @@ The choices behind the Language tab, made on 2026-10-23; a later date marks a re
8282| Links | All text escaped; in-app links are application paths, as `%/blog/(slug)`, with no query or fragment, checked at compile time against routes and static files; paths and unchecked `https`, `mailto` and `tel` URLs and root-relative cords such as `"/apps/groups"` have separate declarations; `link-unsafe`, `image-unsafe` and `go-unsafe` are the unchecked forms; both navigation declarations produce `[%go url=@t]`, with `go` converting the path to a cord including the app's base path; other cords render as text; a CSP on every page | Decided 2026-10-30 |
8383| Data layer | Hoon's nouns: units, treaps, loobeans | Decided |
8484| Prelude | Hoon's standard library regrouped: all names from the listed sections except explicitly excluded groups, including all of 3g, with Hoon's `tone` exposed as `tone.hoon` and Hoon's 1c `step` as `step.hoon`; arithmetic over aura variables, units, lists, maps, sets, queues, ordered maps, function helpers, text, atom printing, a zoned date printer, time and data molds; folds take a start; jetted functions have working Jibb implementations, whose shapes the compiler recognizes to use the Hoon versions, and may take gates; private helpers and low-level primitives live in a separate internal module imported without exposing them, with public foundational gates implemented in Jibb on those primitives; `clap` takes two units of the same type and a combining gate over that type; no signed or float gates, or parser gates outside 3g except `slav` and `slaw`; signed or float auras are errors | Decided 2026-10-30 |
85+| `like` | The `(like A)` mold remains available; the value gate `like` maps the product of an existing `(like A)` with a gate `$-(A B)`, preserving the position and remaining input, and returns `(like B)` | Decided 2026-10-31 |
8586| Wire format | Noun channels; Jibb's own noun codec in the browser | Decided 2026-10-29 |
8687| Hosting | One thin host agent on `%jibb` binds, caches and serves every Jibb desk; each desk vendors jibb-dev, names its base path in docket's `site+`, and builds and renders with its own copy through fixed entry points; install `%jibb` first; app agents stay plain Hoon; pokes only from the ship | Decided 2026-10-29 |
8788| Private pages | Served by the host per request and never cached; non-owners go to the login page | Decided 2026-10-29 |
docs/spec/overview.md+2
@@ -97,6 +97,8 @@ Hoon's standard library regrouped, written in Jibb and vendored as `/lib/jibb/pr
9797| Parsers | [4d](https://docs.urbit.org/hoon/stdlib/4d)–[4i](https://docs.urbit.org/hoon/stdlib/4i), parser helpers in 4j and 4l | Left out, except the explicitly listed `slav` and `slaw` |
9898| The rest | [1b](https://docs.urbit.org/hoon/stdlib/1b), [2p](https://docs.urbit.org/hoon/stdlib/2p), [3d](https://docs.urbit.org/hoon/stdlib/3d), [3f](https://docs.urbit.org/hoon/stdlib/3f), [4c](https://docs.urbit.org/hoon/stdlib/4c), [4n](https://docs.urbit.org/hoon/stdlib/4n), [4o](https://docs.urbit.org/hoon/stdlib/4o), [5a](https://docs.urbit.org/hoon/stdlib/5a)–[5f](https://docs.urbit.org/hoon/stdlib/5f) | Left out; `jam`, `cue` and `fein` run inside the runtime |
9999
100+The prelude's `(like A)` mold describes a result with a product of type `A`. Its value gate `(like convert result)` maps a present product with `convert=$-(A B)` and returns `(like B)`, preserving the position and remaining input; an absent result stays absent.
101+
100102Maps are Hoon's trees on both sides, so equal maps are equal nouns. Requests check incoming maps and sets with `apt`.
101103
102104## The Elm architecture on Urbit
docs/status.md+8−6
@@ -25,7 +25,7 @@ On 2026-10-31, @iko chose explicit, result-directed `(proj record)` to construct
2525
2626The internal prelude also defines `qath` as a transparent recursive knot sequence, re-exported by the public prelude. The partial checker recognizes its source identity, supports selected null/cell construction and matching, and types static application-path literals. Other recursive shapes, broader patterns and dynamic application-path segments remain unsupported. A 256-step limit applies per inference attempt, not to parsing or retries; checking routes and static files remains milestone 4. `ask` is still unfinished.
2727
28−The repository spec records the subsequent type-system and prelude decisions; those changes also need synchronization to the Claude document. An initial inference fragment and a standalone Hoon type reader are being tested. The fragment explicitly reports that it does not check a module; partial bridges pass Hoon `*` in supported nonrecursive molds, selected Hoon atoms, term singletons, the null singleton, the two loobean singletons and their exact fork, nested faced or unfaced cells, supported disjoint unions and opaque standard collections from `/sur` molds and marks into inference. Collections retain their names and supported arguments for printing and unification; nested supported union arguments are retained too. The bridge trusts unchanged results from the source-aware reader; a materialized type graph alone cannot reveal cases Hoon already collapsed. The source-validated standard prelude `list` mold shares this representation with imported lists; other Jibb-written collection molds and most prelude collection operations remain unsupported; malformed names and arities fail closed. Selected self-recursive `/sur` molds, 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 private comparison and arithmetic schemes to the Jibb-written `gth`, `add` and `dec` wrappers; ordinary imports cannot access them. The public `add` and `dec` wrappers use private arithmetic interfaces; supported inference preserves the shared atom constraint that excludes loobeans. Primitive execution, jet recognition and length remain unfinished. 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.
28+The repository spec records the subsequent type-system and prelude decisions, including the newly chosen `like` result-mapping gate, which is not implemented yet; 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 private comparison and arithmetic schemes to the Jibb-written `gth`, `add` and `dec` wrappers; ordinary imports cannot access them. The public `add` and `dec` wrappers use private arithmetic interfaces; supported inference preserves the shared atom constraint that excludes loobeans. Primitive execution, jet recognition and length remain unfinished. 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.
2929
3030The 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`, `bond`, `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.
3131
@@ -45,8 +45,8 @@ What the plan asks for, and where it is:
4545
4646Besides the plan's list:
4747
48−- 633 golden cases: 413 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.
49−- The 633-case corpus passed under `urbit eval` in 85.6 s while other checks were running. The fake ship passed all 648 tests, including the importer, importer/checker and mark/checker bridges, module scope, unification, hole, qath, projection and arithmetic guards, with 52.5 s for sync and 68.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.
48+- 634 golden cases: 414 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.
49+- The 634-case corpus passed under `urbit eval` in 80.1 s while other checks were running. The fake ship passed all 650 tests, including the importer, importer/checker and mark/checker bridges, module scope, unification, hole, qath, projection, arithmetic and generic-alias guards, with 51.9 s for sync and 67.6 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.
5050- `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.
5151- 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.
5252- 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).
@@ -130,14 +130,15 @@ Besides the plan's list:
130130| 0ea700d | 2026-10-31 | Infer a source-defined recursive `qath` subset and record the explicit `proj` decision |
131131| 75f5952 | 2026-10-31 | Check a subset of explicit `proj` calls and retain their lowering evidence |
132132| cf17925 | 2026-10-31 | Infer supported single-field projections |
133−| This change | 2026-10-31 | Infer source-backed addition and decrement without loobean operands; record the watchability decision |
133+| 1a891e2 | 2026-10-31 | Infer source-backed addition and decrement without loobean operands; record the watchability decision |
134+| This change | 2026-10-31 | Preserve public names of identity-generic union aliases and record the `like` decision |
134135
135136## Checking it
136137
137138On a machine set up as [development.md](development.md) says:
138139
139140```
140−tools/golden # 633 cases under urbit eval
141+tools/golden # 634 cases under urbit eval
141142tools/importer-test # the Hoon importer fixture projection
142143tools/type-import-test # the importer/checker bridge fixture
143144tools/type-tlon-test # the real Tlon reader/checker fixture
@@ -146,6 +147,7 @@ tools/type-poke-test # the source-backed poke/API fixture
146147tools/type-api-paths-test # partial API path metadata fixture
147148tools/type-hole-guards-test # hole defaulting and API interface guards
148149tools/type-list-alias-test # prelude list-alias guards
150+tools/type-generic-alias-test # generic union alias guards
149151tools/type-qath-guards-test # qath source and unfolding guards
150152tools/type-proj-guards-test # projection evidence and scope guards
151153tools/type-module-scope-test # module and prelude scope fixture
@@ -154,7 +156,7 @@ tools/testdata/selftest # the tools themselves
154156tools/doc-blocks docs/spec # the doc's examples are golden cases
155157tools/ship start
156158tools/ship gen-tests --check # tests/lib/jibb.hoon is up to date
157−tools/ship test # the same 633 cases as -test arms on the ship
159+tools/ship test # the same 634 cases as -test arms on the ship
158160tools/testdata/ship-selftest
159161tools/testdata/clay-fixtures-selftest # scratch fixture cleanup without a ship
160162tools/ship check-commit # |commit stores .jibb files
jibb-dev/lib/jibb.hoon+26−8
@@ -6162,16 +6162,31 @@
61626162 ?:(=(`origin origin.typ.template) `name.i.molds $(molds t.molds))
61636163 $(molds t.molds)
61646164::
6165−:: A public non-generic alias names exactly its origin and arguments.
6166−:: Reusing only an origin could print a different generic instantiation.
6165+:: A prelude union alias is a display name, not a new union identity. An
6166+:: identity-generic alias can carry the origin's arguments only when the
6167+:: origin, arity and ordered parameters match. Swapped, repeated, fixed
6168+:: or phantom parameters cannot be printed that way and remain unsupported
6169+:: when their only available name is private. A nongeneric alias of a
6170+:: generic instantiation cannot be printed with the origin's arguments.
6171+++ identity-union-parameters
6172+ |= [vars=(list @ud) args=(list itype)]
6173+ ^- ?
6174+ ?~ vars ?=(~ args)
6175+ ?~ args |
6176+ ?. =([%var i.vars] i.args) |
6177+ $(vars t.vars, args t.args)
61676178++ prelude-union-alias
61686179 |= [origin=[at=path name=term] args=(list itype) molds=imold-types]
61696180 ^- (unit term)
6170− ?^ args ~
61716181 ?~ molds ~
61726182 =/ template=ischeme template.i.molds
6173− ?: &(?=(~ vars.template) ?=(%union -.typ.template))
6174− ?:(&(=(`origin origin.typ.template) =(args args.typ.template)) `name.i.molds $(molds t.molds))
6183+ ?. ?=(%union -.typ.template) $(molds t.molds)
6184+ ?. =(`origin origin.typ.template) $(molds t.molds)
6185+ ?~ vars.template
6186+ ?^ args $(molds t.molds)
6187+ ?:(=(args args.typ.template) `name.i.molds $(molds t.molds))
6188+ ?: &((identity-union-parameters vars.template args.typ.template) =((lent vars.template) (lent args)))
6189+ `name.i.molds
61756190 $(molds t.molds)
61766191::
61776192:: Names exported by the directly imported module are visible through its
@@ -10015,11 +10030,14 @@
1001510030 =(var name.i.args.tail)
1001610031::
1001710032++ prelude-label
10018− |= [typ=itype name=term]
10033+ |= [typ=itype name=term vars=(list @ud)]
1001910034 ^- itype
1002010035 ?: ?=(%jrec -.typ) typ(label `name)
1002110036 ?. ?=(%union -.typ) typ
10022− ?^ args.typ typ
10037+ ?. (identity-union-parameters vars args.typ)
10038+ ?~ origin.typ typ
10039+ ?: =(at.u.origin.typ /lib/jibb/internal/jibb) typ(label ~)
10040+ typ
1002310041 typ(label `name)
1002410042::
1002510043++ partial-prelude-molds
@@ -10034,7 +10052,7 @@
1003410052 (infer-mold-template body.m state(active [name.m active.state], in-mold &))
1003510053 ?~ out $(molds t.molds)
1003610054 =. typ.template.u.out (label-direct-union typ.template.u.out body.m name.m state)
10037− =. typ.template.u.out (prelude-label typ.template.u.out name.m)
10055+ =. typ.template.u.out (prelude-label typ.template.u.out name.m vars.template.u.out)
1003810056 [[name.m template.u.out] $(molds t.molds)]
1003910057::
1004010058:: A compiler-owned interface available only to the dedicated
tests/golden/types-prelude-generic-alias/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: docs/spec/grammar.md, Generic molds: "`+$ result |$ [V E]` with cases below"; Modules: "Everything is exported and read through the import's face".
2+tests: Direct, aliased and imported uses of the real public prelude's generic each union retain its public name and arguments; swapped, repeated and fixed user aliases retain their source meaning. The separate shared generic-alias guard covers source-backed private-to-public re-exports.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-prelude-generic-alias/module-trees.txtnew file+10
@@ -0,0 +1,10 @@
1+/ui/alias-helper.jibb
2+(module
3+ (mold 1:1 alias
4+ (generic 1:10 A B
5+ (apply 1:19 each (tvar 1:25 A) (tvar 1:27 B))))
6+ (value 2:1 identity
7+ (gate 2:13
8+ (face 2:16 x
9+ (apply 2:18 alias (tvar 2:25 A) (tvar 2:27 B)))
10+ (wing 2:30 x))))
tests/golden/types-prelude-generic-alias/modules.txtnew file+1
@@ -0,0 +1 @@
1+/ui/alias-helper.jibb
tests/golden/types-prelude-generic-alias/modules/ui/alias-helper.jibbnew file+2
@@ -0,0 +1,2 @@
1++$ alias |$ [A B] (each A B)
2+++ identity |= x=(alias A B) x
tests/golden/types-prelude-generic-alias/source.jibbnew file+13
@@ -0,0 +1,13 @@
1+/= dep /ui/alias-helper
2++$ equivalent |$ [A B] (each A B)
3++$ swapped |$ [A B] (each B A)
4++$ repeated |$ [A] (each A A)
5++$ fixed |$ [A] (each A @p)
6+++ direct |= x=(each A B) x
7+++ alias-id |= x=(equivalent A B) x
8+++ reversed |= x=(swapped A B) x
9+++ reversed-concrete |= x=(swapped @t @p) x
10+++ repeated-id |= x=(repeated A) x
11+++ fixed-id |= x=(fixed A) x
12+++ imported identity.dep
13+++ imported-concrete |= x=(each @t @p) (identity.dep x)
tests/golden/types-prelude-generic-alias/tokens.txtnew file+146
@@ -0,0 +1,146 @@
1+1:1 glyph /=
2+1:4 name dep
3+1:8 glyph /
4+1:9 tight knot ui
5+1:11 tight glyph /
6+1:12 tight knot alias-helper
7+2:1 NEWLINE
8+2:1 glyph +$
9+2:4 name equivalent
10+2:15 glyph |$
11+2:18 glyph [
12+2:19 tight tvar A
13+2:21 tvar B
14+2:22 tight glyph ]
15+2:24 glyph (
16+2:25 tight name each
17+2:30 tvar A
18+2:32 tvar B
19+2:33 tight glyph )
20+3:1 NEWLINE
21+3:1 glyph +$
22+3:4 name swapped
23+3:12 glyph |$
24+3:15 glyph [
25+3:16 tight tvar A
26+3:18 tvar B
27+3:19 tight glyph ]
28+3:21 glyph (
29+3:22 tight name each
30+3:27 tvar B
31+3:29 tvar A
32+3:30 tight glyph )
33+4:1 NEWLINE
34+4:1 glyph +$
35+4:4 name repeated
36+4:13 glyph |$
37+4:16 glyph [
38+4:17 tight tvar A
39+4:18 tight glyph ]
40+4:20 glyph (
41+4:21 tight name each
42+4:26 tvar A
43+4:28 tvar A
44+4:29 tight glyph )
45+5:1 NEWLINE
46+5:1 glyph +$
47+5:4 name fixed
48+5:10 glyph |$
49+5:13 glyph [
50+5:14 tight tvar A
51+5:15 tight glyph ]
52+5:17 glyph (
53+5:18 tight name each
54+5:23 tvar A
55+5:25 aura @p
56+5:27 tight glyph )
57+6:1 NEWLINE
58+6:1 glyph ++
59+6:4 name direct
60+6:11 glyph |=
61+6:14 name x
62+6:15 tight glyph =
63+6:16 tight glyph (
64+6:17 tight name each
65+6:22 tvar A
66+6:24 tvar B
67+6:25 tight glyph )
68+6:27 name x
69+7:1 NEWLINE
70+7:1 glyph ++
71+7:4 name alias-id
72+7:13 glyph |=
73+7:16 name x
74+7:17 tight glyph =
75+7:18 tight glyph (
76+7:19 tight name equivalent
77+7:30 tvar A
78+7:32 tvar B
79+7:33 tight glyph )
80+7:35 name x
81+8:1 NEWLINE
82+8:1 glyph ++
83+8:4 name reversed
84+8:13 glyph |=
85+8:16 name x
86+8:17 tight glyph =
87+8:18 tight glyph (
88+8:19 tight name swapped
89+8:27 tvar A
90+8:29 tvar B
91+8:30 tight glyph )
92+8:32 name x
93+9:1 NEWLINE
94+9:1 glyph ++
95+9:4 name reversed-concrete
96+9:22 glyph |=
97+9:25 name x
98+9:26 tight glyph =
99+9:27 tight glyph (
100+9:28 tight name swapped
101+9:36 aura @t
102+9:39 aura @p
103+9:41 tight glyph )
104+9:43 name x
105+10:1 NEWLINE
106+10:1 glyph ++
107+10:4 name repeated-id
108+10:16 glyph |=
109+10:19 name x
110+10:20 tight glyph =
111+10:21 tight glyph (
112+10:22 tight name repeated
113+10:31 tvar A
114+10:32 tight glyph )
115+10:34 name x
116+11:1 NEWLINE
117+11:1 glyph ++
118+11:4 name fixed-id
119+11:13 glyph |=
120+11:16 name x
121+11:17 tight glyph =
122+11:18 tight glyph (
123+11:19 tight name fixed
124+11:25 tvar A
125+11:26 tight glyph )
126+11:28 name x
127+12:1 NEWLINE
128+12:1 glyph ++
129+12:4 name imported
130+12:13 wing identity.dep
131+13:1 NEWLINE
132+13:1 glyph ++
133+13:4 name imported-concrete
134+13:22 glyph |=
135+13:25 name x
136+13:26 tight glyph =
137+13:27 tight glyph (
138+13:28 tight name each
139+13:33 aura @t
140+13:36 aura @p
141+13:38 tight glyph )
142+13:40 glyph (
143+13:41 tight wing identity.dep
144+13:54 name x
145+13:55 tight glyph )
146+13:56 NEWLINE
tests/golden/types-prelude-generic-alias/tree.txtnew file+51
@@ -0,0 +1,51 @@
1+(module
2+ (jibb 1:1 dep /ui/alias-helper)
3+ (mold 2:1 equivalent
4+ (generic 2:15 A B
5+ (apply 2:24 each (tvar 2:30 A) (tvar 2:32 B))))
6+ (mold 3:1 swapped
7+ (generic 3:12 A B
8+ (apply 3:21 each (tvar 3:27 B) (tvar 3:29 A))))
9+ (mold 4:1 repeated
10+ (generic 4:13 A
11+ (apply 4:20 each (tvar 4:26 A) (tvar 4:28 A))))
12+ (mold 5:1 fixed
13+ (generic 5:10 A
14+ (apply 5:17 each (tvar 5:23 A) (aura 5:25 @p))))
15+ (value 6:1 direct
16+ (gate 6:11
17+ (face 6:14 x
18+ (apply 6:16 each (tvar 6:22 A) (tvar 6:24 B)))
19+ (wing 6:27 x)))
20+ (value 7:1 alias-id
21+ (gate 7:13
22+ (face 7:16 x
23+ (apply 7:18 equivalent (tvar 7:30 A) (tvar 7:32 B)))
24+ (wing 7:35 x)))
25+ (value 8:1 reversed
26+ (gate 8:13
27+ (face 8:16 x
28+ (apply 8:18 swapped (tvar 8:27 A) (tvar 8:29 B)))
29+ (wing 8:32 x)))
30+ (value 9:1 reversed-concrete
31+ (gate 9:22
32+ (face 9:25 x
33+ (apply 9:27 swapped (aura 9:36 @t) (aura 9:39 @p)))
34+ (wing 9:43 x)))
35+ (value 10:1 repeated-id
36+ (gate 10:16
37+ (face 10:19 x
38+ (apply 10:21 repeated (tvar 10:31 A)))
39+ (wing 10:34 x)))
40+ (value 11:1 fixed-id
41+ (gate 11:13
42+ (face 11:16 x
43+ (apply 11:18 fixed (tvar 11:25 A)))
44+ (wing 11:28 x)))
45+ (value 12:1 imported (wing 12:13 identity.dep))
46+ (value 13:1 imported-concrete
47+ (gate 13:22
48+ (face 13:25 x
49+ (apply 13:27 each (aura 13:33 @t) (aura 13:36 @p)))
50+ (group 13:40
51+ (call 13:41 (wing 13:41 identity.dep) (wing 13:54 x))))))
tests/golden/types-prelude-generic-alias/types.txtnew file+13
@@ -0,0 +1,13 @@
1+partial inference; module not checked
2++$ equivalent: not checked
3++$ swapped: not checked
4++$ repeated: not checked
5++$ fixed: not checked
6+++ direct: $-((each A B) (each A B))
7+++ alias-id: $-((each A B) (each A B))
8+++ reversed: $-((each A B) (each A B))
9+++ reversed-concrete: $-((each @p @t) (each @p @t))
10+++ repeated-id: $-((each A A) (each A A))
11+++ fixed-id: $-((each A @p) (each A @p))
12+++ imported: $-((each A B) (each A B))
13+++ imported-concrete: $-((each @t @p) (each @t @p))
tests/lib/jibb-generic-alias.hoonnew file+48
@@ -0,0 +1,48 @@
1+:: Source-backed generic union aliases must print with a valid public name.
2+/+ jibb
3+|%
4+++ generic-alias-errors
5+ ^- (list tape)
6+ =/ internal=@t
7+ '+$ union-source |$ [A B]\0a [%left first=A]\0a [%right second=B]\0a+$ choice\0a [%alpha first=@t]\0a [%beta second=@p]\0a'
8+ =/ public=@t
9+ '/= internal /lib/jibb/internal\0a+$ forward |$ [A B] (union-source.internal A B)\0a+$ reverse |$ [A B] (union-source.internal B A)\0a+$ fixed |$ [A] (union-source.internal A @t)\0a+$ phantom |$ [A B] (union-source.internal A @t)\0a+$ repeated |$ [A] (union-source.internal A A)\0a+$ choice choice.internal\0a'
10+ =/ prepared=(unit iprelude:jibb) (prepare-prelude-with-internal:jibb public internal)
11+ ?~ prepared ~["synthetic prelude did not prepare"]
12+ =/ dependency=@t '++ identity |= x=(forward A B) x\0a++ choice-id |= x=choice x\0a'
13+ =/ source=@t
14+ '/= dep /ui/dep\0a++ direct |= x=(forward A B) x\0a++ concrete |= x=(forward @t @p) x\0a++ imported identity.dep\0a++ choice-imported choice-id.dep\0a++ swapped |= x=(reverse A B) x\0a++ fixed-alias |= x=(fixed A) x\0a++ phantom-alias |= x=(phantom A B) x\0a++ repeat-alias |= x=(repeated A) x\0a'
15+ =/ report=@t
16+ (golden-types-with-prepared-prelude:jibb /ui/client/jibb source ~ ~ ~[[/ui/dep/jibb dependency]] prepared)
17+ =/ want=@t
18+ 'partial inference; module not checked\0a++ direct: $-((forward A B) (forward A B))\0a++ concrete: $-((forward @t @p) (forward @t @p))\0a++ imported: $-((forward A B) (forward A B))\0a++ choice-imported: $-(choice choice)\0a++ swapped: generic union name is not available in this scope\0a++ fixed-alias: generic union name is not available in this scope\0a++ phantom-alias: generic union name is not available in this scope\0a++ repeat-alias: generic union name is not available in this scope'
19+ ?. =(report want) ~["generic alias source or import report changed"]
20+ =/ orig=[at=path name=term] [/lib/jibb/internal/jibb %union-source]
21+ =/ args=(list itype:jibb) ~[[%atom %t] [%atom %p]]
22+ =/ aliases=imold-types:jibb molds.iface.u.prepared
23+ ?. =((prelude-union-alias:jibb orig args aliases) [~ %forward])
24+ ~["identity alias was not selected"]
25+ ?^ (prelude-union-alias:jibb [/other %union-source] args aliases)
26+ ~["a different origin was accepted"]
27+ ?^ (prelude-union-alias:jibb [/lib/jibb/internal/jibb %other] args aliases)
28+ ~["a different mold name was accepted"]
29+ ?^ (prelude-union-alias:jibb orig ~[[%atom %t]] aliases)
30+ ~["a different arity was accepted"]
31+ =/ fixed-public=@t
32+ '/= internal /lib/jibb/internal\0a+$ specialized (union-source.internal @t @p)\0a'
33+ =/ fixed-prepared=(unit iprelude:jibb)
34+ (prepare-prelude-with-internal:jibb fixed-public internal)
35+ ?~ fixed-prepared ~["fixed specialization prelude did not prepare"]
36+ ?^ (prelude-union-alias:jibb orig args molds.iface.u.fixed-prepared)
37+ ~["nongeneric specialization was printed with arguments"]
38+ =/ fixed-dep=@t '++ identity |= x=specialized x\0a'
39+ =/ fixed-source=@t '/= dep /ui/dep\0a++ exposed identity.dep\0a'
40+ =/ fixed-report=@t
41+ (golden-types-with-prepared-prelude:jibb /ui/client/jibb fixed-source ~ ~ ~[[/ui/dep/jibb fixed-dep]] fixed-prepared)
42+ ?. =(fixed-report 'partial inference; module not checked\0a++ exposed: generic union name is not available in this scope')
43+ ~["fixed specialization import no longer fails closed"]
44+ ~
45+++ test-generic-alias
46+ ^- tang
47+ (turn generic-alias-errors |=(reason=tape leaf+reason))
48+--
tests/lib/jibb.hoon+580−572
@@ -1879,472 +1879,478 @@
18791879/* tok-527 %txt /tests/golden/types-prelude-functional/tokens/txt
18801880/* tre-527 %txt /tests/golden/types-prelude-functional/tree/txt
18811881/* typ-527 %txt /tests/golden/types-prelude-functional/types/txt
1882−/* src-528 %jibb /tests/golden/types-prelude-interface/source/jibb
1883−/* tok-528 %txt /tests/golden/types-prelude-interface/tokens/txt
1884−/* tre-528 %txt /tests/golden/types-prelude-interface/tree/txt
1885−/* mod-528-1 %jibb /tests/golden/types-prelude-interface/modules/ui/left/jibb
1886−/* mod-528-2 %jibb /tests/golden/types-prelude-interface/modules/ui/right/jibb
1887−/* typ-528 %txt /tests/golden/types-prelude-interface/types/txt
1888−/* mtre-528 %txt /tests/golden/types-prelude-interface/module-trees/txt
1889−/* src-529 %jibb /tests/golden/types-prelude-list-alias/source/jibb
1890−/* tok-529 %txt /tests/golden/types-prelude-list-alias/tokens/txt
1891−/* tre-529 %txt /tests/golden/types-prelude-list-alias/tree/txt
1892−/* typ-529 %txt /tests/golden/types-prelude-list-alias/types/txt
1893−/* src-530 %jibb /tests/golden/types-prelude-list-functions/source/jibb
1894−/* tok-530 %txt /tests/golden/types-prelude-list-functions/tokens/txt
1895−/* tre-530 %txt /tests/golden/types-prelude-list-functions/tree/txt
1896−/* mod-530-1 %jibb /tests/golden/types-prelude-list-functions/modules/ui/lib/jibb
1897−/* typ-530 %txt /tests/golden/types-prelude-list-functions/types/txt
1898−/* mtre-530 %txt /tests/golden/types-prelude-list-functions/module-trees/txt
1899−/* src-531 %jibb /tests/golden/types-prelude-list-helpers/source/jibb
1900−/* tok-531 %txt /tests/golden/types-prelude-list-helpers/tokens/txt
1901−/* tre-531 %txt /tests/golden/types-prelude-list-helpers/tree/txt
1902−/* typ-531 %txt /tests/golden/types-prelude-list-helpers/types/txt
1903−/* src-532 %jibb /tests/golden/types-prelude-predicates/source/jibb
1904−/* tok-532 %txt /tests/golden/types-prelude-predicates/tokens/txt
1905−/* tre-532 %txt /tests/golden/types-prelude-predicates/tree/txt
1906−/* typ-532 %txt /tests/golden/types-prelude-predicates/types/txt
1907−/* src-533 %jibb /tests/golden/types-prelude-unit-helpers/source/jibb
1908−/* tok-533 %txt /tests/golden/types-prelude-unit-helpers/tokens/txt
1909−/* tre-533 %txt /tests/golden/types-prelude-unit-helpers/tree/txt
1910−/* typ-533 %txt /tests/golden/types-prelude-unit-helpers/types/txt
1911−/* src-534 %jibb /tests/golden/types-proj-explicit-context/source/jibb
1912−/* tok-534 %txt /tests/golden/types-proj-explicit-context/tokens/txt
1913−/* tre-534 %txt /tests/golden/types-proj-explicit-context/tree/txt
1914−/* typ-534 %txt /tests/golden/types-proj-explicit-context/types/txt
1915−/* src-535 %jibb /tests/golden/types-proj-nested-no-implicit/source/jibb
1916−/* tok-535 %txt /tests/golden/types-proj-nested-no-implicit/tokens/txt
1917−/* tre-535 %txt /tests/golden/types-proj-nested-no-implicit/tree/txt
1918−/* typ-535 %txt /tests/golden/types-proj-nested-no-implicit/types/txt
1919−/* src-536 %jibb /tests/golden/types-proj-reserved-imported-definition/source/jibb
1920−/* tok-536 %txt /tests/golden/types-proj-reserved-imported-definition/tokens/txt
1921−/* tre-536 %txt /tests/golden/types-proj-reserved-imported-definition/tree/txt
1922−/* mod-536-1 %jibb /tests/golden/types-proj-reserved-imported-definition/modules/ui/lib/jibb
1923−/* typ-536 %txt /tests/golden/types-proj-reserved-imported-definition/types/txt
1924−/* mtre-536 %txt /tests/golden/types-proj-reserved-imported-definition/module-trees/txt
1925−/* src-537 %jibb /tests/golden/types-proj-reserved-jibb-import/source/jibb
1926−/* tok-537 %txt /tests/golden/types-proj-reserved-jibb-import/tokens/txt
1927−/* tre-537 %txt /tests/golden/types-proj-reserved-jibb-import/tree/txt
1928−/* mod-537-1 %jibb /tests/golden/types-proj-reserved-jibb-import/modules/ui/lib/jibb
1929−/* typ-537 %txt /tests/golden/types-proj-reserved-jibb-import/types/txt
1930−/* mtre-537 %txt /tests/golden/types-proj-reserved-jibb-import/module-trees/txt
1931−/* src-538 %jibb /tests/golden/types-proj-reserved-local/source/jibb
1932−/* tok-538 %txt /tests/golden/types-proj-reserved-local/tokens/txt
1933−/* tre-538 %txt /tests/golden/types-proj-reserved-local/tree/txt
1934−/* typ-538 %txt /tests/golden/types-proj-reserved-local/types/txt
1935−/* src-539 %jibb /tests/golden/types-proj-reserved-local-mold/source/jibb
1936−/* tok-539 %txt /tests/golden/types-proj-reserved-local-mold/tokens/txt
1937−/* tre-539 %txt /tests/golden/types-proj-reserved-local-mold/tree/txt
1938−/* typ-539 %txt /tests/golden/types-proj-reserved-local-mold/types/txt
1939−/* src-540 %jibb /tests/golden/types-proj-reserved-mark-import/source/jibb
1940−/* tok-540 %txt /tests/golden/types-proj-reserved-mark-import/tokens/txt
1941−/* tre-540 %txt /tests/golden/types-proj-reserved-mark-import/tree/txt
1942−/* typ-540 %txt /tests/golden/types-proj-reserved-mark-import/types/txt
1943−/* src-541 %jibb /tests/golden/types-proj-reserved-mold/source/jibb
1944−/* tok-541 %txt /tests/golden/types-proj-reserved-mold/tokens/txt
1945−/* tre-541 %txt /tests/golden/types-proj-reserved-mold/tree/txt
1946−/* typ-541 %txt /tests/golden/types-proj-reserved-mold/types/txt
1947−/* src-542 %jibb /tests/golden/types-proj-reserved-pattern/source/jibb
1948−/* tok-542 %txt /tests/golden/types-proj-reserved-pattern/tokens/txt
1949−/* tre-542 %txt /tests/golden/types-proj-reserved-pattern/tree/txt
1950−/* typ-542 %txt /tests/golden/types-proj-reserved-pattern/types/txt
1951−/* src-543 %jibb /tests/golden/types-proj-reserved-positive/source/jibb
1952−/* tok-543 %txt /tests/golden/types-proj-reserved-positive/tokens/txt
1953−/* tre-543 %txt /tests/golden/types-proj-reserved-positive/tree/txt
1954−/* typ-543 %txt /tests/golden/types-proj-reserved-positive/types/txt
1955−/* src-544 %jibb /tests/golden/types-proj-reserved-sample/source/jibb
1956−/* tok-544 %txt /tests/golden/types-proj-reserved-sample/tokens/txt
1957−/* tre-544 %txt /tests/golden/types-proj-reserved-sample/tree/txt
1958−/* typ-544 %txt /tests/golden/types-proj-reserved-sample/types/txt
1959−/* src-545 %jibb /tests/golden/types-proj-reserved-sur-import/source/jibb
1960−/* tok-545 %txt /tests/golden/types-proj-reserved-sur-import/tokens/txt
1961−/* tre-545 %txt /tests/golden/types-proj-reserved-sur-import/tree/txt
1962−/* typ-545 %txt /tests/golden/types-proj-reserved-sur-import/types/txt
1963−/* src-546 %jibb /tests/golden/types-proj-reserved-unused-pattern/source/jibb
1964−/* tok-546 %txt /tests/golden/types-proj-reserved-unused-pattern/tokens/txt
1965−/* tre-546 %txt /tests/golden/types-proj-reserved-unused-pattern/tree/txt
1966−/* typ-546 %txt /tests/golden/types-proj-reserved-unused-pattern/types/txt
1967−/* src-547 %jibb /tests/golden/types-proj-reserved-unused-sample/source/jibb
1968−/* tok-547 %txt /tests/golden/types-proj-reserved-unused-sample/tokens/txt
1969−/* tre-547 %txt /tests/golden/types-proj-reserved-unused-sample/tree/txt
1970−/* typ-547 %txt /tests/golden/types-proj-reserved-unused-sample/types/txt
1971−/* src-548 %jibb /tests/golden/types-proj-reserved-unused-value/source/jibb
1972−/* tok-548 %txt /tests/golden/types-proj-reserved-unused-value/tokens/txt
1973−/* tre-548 %txt /tests/golden/types-proj-reserved-unused-value/tree/txt
1974−/* typ-548 %txt /tests/golden/types-proj-reserved-unused-value/types/txt
1975−/* src-549 %jibb /tests/golden/types-proj-reserved-value/source/jibb
1976−/* tok-549 %txt /tests/golden/types-proj-reserved-value/tokens/txt
1977−/* tre-549 %txt /tests/golden/types-proj-reserved-value/tree/txt
1978−/* typ-549 %txt /tests/golden/types-proj-reserved-value/types/txt
1979−/* src-550 %jibb /tests/golden/types-proj-single-duplicate/source/jibb
1980−/* tok-550 %txt /tests/golden/types-proj-single-duplicate/tokens/txt
1981−/* tre-550 %txt /tests/golden/types-proj-single-duplicate/tree/txt
1982−/* typ-550 %txt /tests/golden/types-proj-single-duplicate/types/txt
1983−/* src-551 %jibb /tests/golden/types-proj-single-field/source/jibb
1984−/* tok-551 %txt /tests/golden/types-proj-single-field/tokens/txt
1985−/* tre-551 %txt /tests/golden/types-proj-single-field/tree/txt
1986−/* typ-551 %txt /tests/golden/types-proj-single-field/types/txt
1987−/* src-552 %jibb /tests/golden/types-proj-single-sample-face/source/jibb
1988−/* tok-552 %txt /tests/golden/types-proj-single-sample-face/tokens/txt
1989−/* tre-552 %txt /tests/golden/types-proj-single-sample-face/tree/txt
1990−/* typ-552 %txt /tests/golden/types-proj-single-sample-face/types/txt
1991−/* src-553 %jibb /tests/golden/types-proj-single-wrapped/source/jibb
1992−/* tok-553 %txt /tests/golden/types-proj-single-wrapped/tokens/txt
1993−/* tre-553 %txt /tests/golden/types-proj-single-wrapped/tree/txt
1994−/* typ-553 %txt /tests/golden/types-proj-single-wrapped/types/txt
1995−/* src-554 %jibb /tests/golden/types-qath-faces/source/jibb
1996−/* tok-554 %txt /tests/golden/types-qath-faces/tokens/txt
1997−/* tre-554 %txt /tests/golden/types-qath-faces/tree/txt
1998−/* typ-554 %txt /tests/golden/types-qath-faces/types/txt
1999−/* src-555 %jibb /tests/golden/types-qath-holes/source/jibb
2000−/* tok-555 %txt /tests/golden/types-qath-holes/tokens/txt
2001−/* tre-555 %txt /tests/golden/types-qath-holes/tree/txt
2002−/* typ-555 %txt /tests/golden/types-qath-holes/types/txt
2003−/* src-556 %jibb /tests/golden/types-qath-module-identity/source/jibb
2004−/* tok-556 %txt /tests/golden/types-qath-module-identity/tokens/txt
2005−/* tre-556 %txt /tests/golden/types-qath-module-identity/tree/txt
2006−/* mod-556-1 %jibb /tests/golden/types-qath-module-identity/modules/ui/one/jibb
2007−/* mod-556-2 %jibb /tests/golden/types-qath-module-identity/modules/ui/two/jibb
2008−/* mod-556-3 %jibb /tests/golden/types-qath-module-identity/modules/ui/mid/jibb
2009−/* typ-556 %txt /tests/golden/types-qath-module-identity/types/txt
2010−/* mtre-556 %txt /tests/golden/types-qath-module-identity/module-trees/txt
2011−/* src-557 %jibb /tests/golden/types-qath-recursive/source/jibb
2012−/* tok-557 %txt /tests/golden/types-qath-recursive/tokens/txt
2013−/* tre-557 %txt /tests/golden/types-qath-recursive/tree/txt
2014−/* typ-557 %txt /tests/golden/types-qath-recursive/types/txt
2015−/* src-558 %jibb /tests/golden/types-record-bound-variable/source/jibb
2016−/* tok-558 %txt /tests/golden/types-record-bound-variable/tokens/txt
2017−/* tre-558 %txt /tests/golden/types-record-bound-variable/tree/txt
2018−/* typ-558 %txt /tests/golden/types-record-bound-variable/types/txt
2019−/* src-559 %jibb /tests/golden/types-record-cast-context/source/jibb
2020−/* tok-559 %txt /tests/golden/types-record-cast-context/tokens/txt
2021−/* tre-559 %txt /tests/golden/types-record-cast-context/tree/txt
2022−/* typ-559 %txt /tests/golden/types-record-cast-context/types/txt
2023−/* src-560 %jibb /tests/golden/types-record-change/source/jibb
2024−/* tok-560 %txt /tests/golden/types-record-change/tokens/txt
2025−/* tre-560 %txt /tests/golden/types-record-change/tree/txt
2026−/* typ-560 %txt /tests/golden/types-record-change/types/txt
2027−/* src-561 %jibb /tests/golden/types-record-change-generic/source/jibb
2028−/* tok-561 %txt /tests/golden/types-record-change-generic/tokens/txt
2029−/* tre-561 %txt /tests/golden/types-record-change-generic/tree/txt
2030−/* typ-561 %txt /tests/golden/types-record-change-generic/types/txt
2031−/* src-562 %jibb /tests/golden/types-record-faces/source/jibb
2032−/* tok-562 %txt /tests/golden/types-record-faces/tokens/txt
2033−/* tre-562 %txt /tests/golden/types-record-faces/tree/txt
2034−/* typ-562 %txt /tests/golden/types-record-faces/types/txt
2035−/* src-563 %jibb /tests/golden/types-record-field-edit-separate/source/jibb
2036−/* tok-563 %txt /tests/golden/types-record-field-edit-separate/tokens/txt
2037−/* tre-563 %txt /tests/golden/types-record-field-edit-separate/tree/txt
2038−/* typ-563 %txt /tests/golden/types-record-field-edit-separate/types/txt
2039−/* src-564 %jibb /tests/golden/types-record-field-expr-duplicate/source/jibb
2040−/* tok-564 %txt /tests/golden/types-record-field-expr-duplicate/tokens/txt
2041−/* tre-564 %txt /tests/golden/types-record-field-expr-duplicate/tree/txt
2042−/* typ-564 %txt /tests/golden/types-record-field-expr-duplicate/types/txt
2043−/* src-565 %jibb /tests/golden/types-record-field-expr-separate/source/jibb
2044−/* tok-565 %txt /tests/golden/types-record-field-expr-separate/tokens/txt
2045−/* tre-565 %txt /tests/golden/types-record-field-expr-separate/tree/txt
2046−/* typ-565 %txt /tests/golden/types-record-field-expr-separate/types/txt
2047−/* src-566 %jibb /tests/golden/types-record-field-module-reachable/source/jibb
2048−/* tok-566 %txt /tests/golden/types-record-field-module-reachable/tokens/txt
2049−/* tre-566 %txt /tests/golden/types-record-field-module-reachable/tree/txt
2050−/* mod-566-1 %jibb /tests/golden/types-record-field-module-reachable/modules/ui/lib/jibb
2051−/* typ-566 %txt /tests/golden/types-record-field-module-reachable/types/txt
2052−/* mtre-566 %txt /tests/golden/types-record-field-module-reachable/module-trees/txt
2053−/* src-567 %jibb /tests/golden/types-record-field-module-unused/source/jibb
2054−/* tok-567 %txt /tests/golden/types-record-field-module-unused/tokens/txt
2055−/* tre-567 %txt /tests/golden/types-record-field-module-unused/tree/txt
2056−/* mod-567-1 %jibb /tests/golden/types-record-field-module-unused/modules/ui/good/jibb
2057−/* mod-567-2 %jibb /tests/golden/types-record-field-module-unused/modules/ui/unused/jibb
2058−/* typ-567 %txt /tests/golden/types-record-field-module-unused/types/txt
2059−/* mtre-567 %txt /tests/golden/types-record-field-module-unused/module-trees/txt
2060−/* src-568 %jibb /tests/golden/types-record-field-nested-mold/source/jibb
2061−/* tok-568 %txt /tests/golden/types-record-field-nested-mold/tokens/txt
2062−/* tre-568 %txt /tests/golden/types-record-field-nested-mold/tree/txt
2063−/* typ-568 %txt /tests/golden/types-record-field-nested-mold/types/txt
2064−/* src-569 %jibb /tests/golden/types-record-field-outer-inner/source/jibb
2065−/* tok-569 %txt /tests/golden/types-record-field-outer-inner/tokens/txt
2066−/* tre-569 %txt /tests/golden/types-record-field-outer-inner/tree/txt
2067−/* typ-569 %txt /tests/golden/types-record-field-outer-inner/types/txt
2068−/* src-570 %jibb /tests/golden/types-record-field-sample-duplicate/source/jibb
2069−/* tok-570 %txt /tests/golden/types-record-field-sample-duplicate/tokens/txt
2070−/* tre-570 %txt /tests/golden/types-record-field-sample-duplicate/tree/txt
2071−/* typ-570 %txt /tests/golden/types-record-field-sample-duplicate/types/txt
2072−/* src-571 %jibb /tests/golden/types-record-field-separate-molds/source/jibb
2073−/* tok-571 %txt /tests/golden/types-record-field-separate-molds/tokens/txt
2074−/* tre-571 %txt /tests/golden/types-record-field-separate-molds/tree/txt
2075−/* typ-571 %txt /tests/golden/types-record-field-separate-molds/types/txt
2076−/* src-572 %jibb /tests/golden/types-record-field-unused-mold/source/jibb
2077−/* tok-572 %txt /tests/golden/types-record-field-unused-mold/tokens/txt
2078−/* tre-572 %txt /tests/golden/types-record-field-unused-mold/tree/txt
2079−/* typ-572 %txt /tests/golden/types-record-field-unused-mold/types/txt
2080−/* src-573 %jibb /tests/golden/types-record-import/source/jibb
2081−/* tok-573 %txt /tests/golden/types-record-import/tokens/txt
2082−/* tre-573 %txt /tests/golden/types-record-import/tree/txt
2083−/* mod-573-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
2084−/* typ-573 %txt /tests/golden/types-record-import/types/txt
2085−/* mtre-573 %txt /tests/golden/types-record-import/module-trees/txt
2086−/* src-574 %jibb /tests/golden/types-record-local-scheme/source/jibb
2087−/* tok-574 %txt /tests/golden/types-record-local-scheme/tokens/txt
2088−/* tre-574 %txt /tests/golden/types-record-local-scheme/tree/txt
2089−/* typ-574 %txt /tests/golden/types-record-local-scheme/types/txt
2090−/* src-575 %jibb /tests/golden/types-record-nested/source/jibb
2091−/* tok-575 %txt /tests/golden/types-record-nested/tokens/txt
2092−/* tre-575 %txt /tests/golden/types-record-nested/tree/txt
2093−/* typ-575 %txt /tests/golden/types-record-nested/types/txt
2094−/* src-576 %jibb /tests/golden/types-record-to-tuple/source/jibb
2095−/* tok-576 %txt /tests/golden/types-record-to-tuple/tokens/txt
2096−/* tre-576 %txt /tests/golden/types-record-to-tuple/tree/txt
2097−/* typ-576 %txt /tests/golden/types-record-to-tuple/types/txt
2098−/* src-577 %jibb /tests/golden/types-recursion-scc-failures/source/jibb
2099−/* tok-577 %txt /tests/golden/types-recursion-scc-failures/tokens/txt
2100−/* tre-577 %txt /tests/golden/types-recursion-scc-failures/tree/txt
2101−/* typ-577 %txt /tests/golden/types-recursion-scc-failures/types/txt
2102−/* src-578 %jibb /tests/golden/types-recursion-scc-groups/source/jibb
2103−/* tok-578 %txt /tests/golden/types-recursion-scc-groups/tokens/txt
2104−/* tre-578 %txt /tests/golden/types-recursion-scc-groups/tree/txt
2105−/* typ-578 %txt /tests/golden/types-recursion-scc-groups/types/txt
2106−/* src-579 %jibb /tests/golden/types-recursion-scc-import/source/jibb
2107−/* tok-579 %txt /tests/golden/types-recursion-scc-import/tokens/txt
2108−/* tre-579 %txt /tests/golden/types-recursion-scc-import/tree/txt
2109−/* mod-579-1 %jibb /tests/golden/types-recursion-scc-import/modules/ui/lib/jibb
2110−/* typ-579 %txt /tests/golden/types-recursion-scc-import/types/txt
2111−/* mtre-579 %txt /tests/golden/types-recursion-scc-import/module-trees/txt
2112−/* src-580 %jibb /tests/golden/types-recursion-scc-import-bad/source/jibb
2113−/* tok-580 %txt /tests/golden/types-recursion-scc-import-bad/tokens/txt
2114−/* tre-580 %txt /tests/golden/types-recursion-scc-import-bad/tree/txt
2115−/* mod-580-1 %jibb /tests/golden/types-recursion-scc-import-bad/modules/ui/lib/jibb
2116−/* typ-580 %txt /tests/golden/types-recursion-scc-import-bad/types/txt
2117−/* mtre-580 %txt /tests/golden/types-recursion-scc-import-bad/module-trees/txt
2118−/* src-581 %jibb /tests/golden/types-recursion-scc-local/source/jibb
2119−/* tok-581 %txt /tests/golden/types-recursion-scc-local/tokens/txt
2120−/* tre-581 %txt /tests/golden/types-recursion-scc-local/tree/txt
2121−/* typ-581 %txt /tests/golden/types-recursion-scc-local/types/txt
2122−/* src-582 %jibb /tests/golden/types-recursion-scc-order/source/jibb
2123−/* tok-582 %txt /tests/golden/types-recursion-scc-order/tokens/txt
2124−/* tre-582 %txt /tests/golden/types-recursion-scc-order/tree/txt
2125−/* typ-582 %txt /tests/golden/types-recursion-scc-order/types/txt
2126−/* src-583 %jibb /tests/golden/types-recursion-scc-shadow/source/jibb
2127−/* tok-583 %txt /tests/golden/types-recursion-scc-shadow/tokens/txt
2128−/* tre-583 %txt /tests/golden/types-recursion-scc-shadow/tree/txt
2129−/* typ-583 %txt /tests/golden/types-recursion-scc-shadow/types/txt
2130−/* src-584 %jibb /tests/golden/types-recursive-branch/source/jibb
2131−/* tok-584 %txt /tests/golden/types-recursive-branch/tokens/txt
2132−/* tre-584 %txt /tests/golden/types-recursive-branch/tree/txt
2133−/* typ-584 %txt /tests/golden/types-recursive-branch/types/txt
2134−/* src-585 %jibb /tests/golden/types-recursive-gate/source/jibb
2135−/* tok-585 %txt /tests/golden/types-recursive-gate/tokens/txt
2136−/* tre-585 %txt /tests/golden/types-recursive-gate/tree/txt
2137−/* typ-585 %txt /tests/golden/types-recursive-gate/types/txt
2138−/* src-586 %jibb /tests/golden/types-recursive-sample/source/jibb
2139−/* tok-586 %txt /tests/golden/types-recursive-sample/tokens/txt
2140−/* tre-586 %txt /tests/golden/types-recursive-sample/tree/txt
2141−/* typ-586 %txt /tests/golden/types-recursive-sample/types/txt
2142−/* src-587 %jibb /tests/golden/types-scope-library-poke/source/jibb
2143−/* tok-587 %txt /tests/golden/types-scope-library-poke/tokens/txt
2144−/* tre-587 %txt /tests/golden/types-scope-library-poke/tree/txt
2145−/* typ-587 %txt /tests/golden/types-scope-library-poke/types/txt
2146−/* src-588 %jibb /tests/golden/types-scope-root-api/source/jibb
2147−/* tok-588 %txt /tests/golden/types-scope-root-api/tokens/txt
2148−/* tre-588 %txt /tests/golden/types-scope-root-api/tree/txt
2149−/* typ-588 %txt /tests/golden/types-scope-root-api/types/txt
2150−/* src-589 %jibb /tests/golden/types-scope-store-duplicate/source/jibb
2151−/* tok-589 %txt /tests/golden/types-scope-store-duplicate/tokens/txt
2152−/* tre-589 %txt /tests/golden/types-scope-store-duplicate/tree/txt
2153−/* typ-589 %txt /tests/golden/types-scope-store-duplicate/types/txt
2154−/* src-590 %jibb /tests/golden/types-scope-store-shadow/source/jibb
2155−/* tok-590 %txt /tests/golden/types-scope-store-shadow/tokens/txt
2156−/* tre-590 %txt /tests/golden/types-scope-store-shadow/tree/txt
2157−/* typ-590 %txt /tests/golden/types-scope-store-shadow/types/txt
2158−/* src-591 %jibb /tests/golden/types-single-case-pattern/source/jibb
2159−/* tok-591 %txt /tests/golden/types-single-case-pattern/tokens/txt
2160−/* tre-591 %txt /tests/golden/types-single-case-pattern/tree/txt
2161−/* typ-591 %txt /tests/golden/types-single-case-pattern/types/txt
2162−/* src-592 %jibb /tests/golden/types-string-interpolation/source/jibb
2163−/* tok-592 %txt /tests/golden/types-string-interpolation/tokens/txt
2164−/* tre-592 %txt /tests/golden/types-string-interpolation/tree/txt
2165−/* typ-592 %txt /tests/golden/types-string-interpolation/types/txt
2166−/* src-593 %jibb /tests/golden/types-tuple-context/source/jibb
2167−/* tok-593 %txt /tests/golden/types-tuple-context/tokens/txt
2168−/* tre-593 %txt /tests/golden/types-tuple-context/tree/txt
2169−/* typ-593 %txt /tests/golden/types-tuple-context/types/txt
2170−/* src-594 %jibb /tests/golden/types-tuple-context-nested/source/jibb
2171−/* tok-594 %txt /tests/golden/types-tuple-context-nested/tokens/txt
2172−/* tre-594 %txt /tests/golden/types-tuple-context-nested/tree/txt
2173−/* typ-594 %txt /tests/golden/types-tuple-context-nested/types/txt
2174−/* src-595 %jibb /tests/golden/types-union-alias/source/jibb
2175−/* tok-595 %txt /tests/golden/types-union-alias/tokens/txt
2176−/* tre-595 %txt /tests/golden/types-union-alias/tree/txt
2177−/* typ-595 %txt /tests/golden/types-union-alias/types/txt
2178−/* src-596 %jibb /tests/golden/types-union-branch-context/source/jibb
2179−/* tok-596 %txt /tests/golden/types-union-branch-context/tokens/txt
2180−/* tre-596 %txt /tests/golden/types-union-branch-context/tree/txt
2181−/* typ-596 %txt /tests/golden/types-union-branch-context/types/txt
2182−/* src-597 %jibb /tests/golden/types-union-branch-pending/source/jibb
2183−/* tok-597 %txt /tests/golden/types-union-branch-pending/tokens/txt
2184−/* tre-597 %txt /tests/golden/types-union-branch-pending/tree/txt
2185−/* typ-597 %txt /tests/golden/types-union-branch-pending/types/txt
2186−/* src-598 %jibb /tests/golden/types-union-constructor-shape/source/jibb
2187−/* tok-598 %txt /tests/golden/types-union-constructor-shape/tokens/txt
2188−/* tre-598 %txt /tests/golden/types-union-constructor-shape/tree/txt
2189−/* typ-598 %txt /tests/golden/types-union-constructor-shape/types/txt
2190−/* src-599 %jibb /tests/golden/types-union-context-flow/source/jibb
2191−/* tok-599 %txt /tests/golden/types-union-context-flow/tokens/txt
2192−/* tre-599 %txt /tests/golden/types-union-context-flow/tree/txt
2193−/* typ-599 %txt /tests/golden/types-union-context-flow/types/txt
2194−/* src-600 %jibb /tests/golden/types-union-finite/source/jibb
2195−/* tok-600 %txt /tests/golden/types-union-finite/tokens/txt
2196−/* tre-600 %txt /tests/golden/types-union-finite/tree/txt
2197−/* typ-600 %txt /tests/golden/types-union-finite/types/txt
2198−/* src-601 %jibb /tests/golden/types-union-finite-context/source/jibb
2199−/* tok-601 %txt /tests/golden/types-union-finite-context/tokens/txt
2200−/* tre-601 %txt /tests/golden/types-union-finite-context/tree/txt
2201−/* typ-601 %txt /tests/golden/types-union-finite-context/types/txt
2202−/* src-602 %jibb /tests/golden/types-union-finite-generic/source/jibb
2203−/* tok-602 %txt /tests/golden/types-union-finite-generic/tokens/txt
2204−/* tre-602 %txt /tests/golden/types-union-finite-generic/tree/txt
2205−/* typ-602 %txt /tests/golden/types-union-finite-generic/types/txt
2206−/* src-603 %jibb /tests/golden/types-union-finite-limit/source/jibb
2207−/* tok-603 %txt /tests/golden/types-union-finite-limit/tokens/txt
2208−/* tre-603 %txt /tests/golden/types-union-finite-limit/tree/txt
2209−/* typ-603 %txt /tests/golden/types-union-finite-limit/types/txt
2210−/* src-604 %jibb /tests/golden/types-union-import/source/jibb
2211−/* tok-604 %txt /tests/golden/types-union-import/tokens/txt
2212−/* tre-604 %txt /tests/golden/types-union-import/tree/txt
2213−/* mod-604-1 %jibb /tests/golden/types-union-import/modules/ui/lib/jibb
2214−/* typ-604 %txt /tests/golden/types-union-import/types/txt
2215−/* mtre-604 %txt /tests/golden/types-union-import/module-trees/txt
2216−/* src-605 %jibb /tests/golden/types-union-local-pending/source/jibb
2217−/* tok-605 %txt /tests/golden/types-union-local-pending/tokens/txt
2218−/* tre-605 %txt /tests/golden/types-union-local-pending/tree/txt
2219−/* typ-605 %txt /tests/golden/types-union-local-pending/types/txt
2220−/* src-606 %jibb /tests/golden/types-union-nonwing-subject/source/jibb
2221−/* tok-606 %txt /tests/golden/types-union-nonwing-subject/tokens/txt
2222−/* tre-606 %txt /tests/golden/types-union-nonwing-subject/tree/txt
2223−/* typ-606 %txt /tests/golden/types-union-nonwing-subject/types/txt
2224−/* src-607 %jibb /tests/golden/types-union-overlap/source/jibb
2225−/* tok-607 %txt /tests/golden/types-union-overlap/tokens/txt
2226−/* tre-607 %txt /tests/golden/types-union-overlap/tree/txt
2227−/* typ-607 %txt /tests/golden/types-union-overlap/types/txt
2228−/* src-608 %jibb /tests/golden/types-union-overlap-nested/source/jibb
2229−/* tok-608 %txt /tests/golden/types-union-overlap-nested/tokens/txt
2230−/* tre-608 %txt /tests/golden/types-union-overlap-nested/tree/txt
2231−/* typ-608 %txt /tests/golden/types-union-overlap-nested/types/txt
2232−/* src-609 %jibb /tests/golden/types-union-pattern-result-context/source/jibb
2233−/* tok-609 %txt /tests/golden/types-union-pattern-result-context/tokens/txt
2234−/* tre-609 %txt /tests/golden/types-union-pattern-result-context/tree/txt
2235−/* typ-609 %txt /tests/golden/types-union-pattern-result-context/types/txt
2236−/* src-610 %jibb /tests/golden/types-union-pattern-result-controls/source/jibb
2237−/* tok-610 %txt /tests/golden/types-union-pattern-result-controls/tokens/txt
2238−/* tre-610 %txt /tests/golden/types-union-pattern-result-controls/tree/txt
2239−/* typ-610 %txt /tests/golden/types-union-pattern-result-controls/types/txt
2240−/* src-611 %jibb /tests/golden/types-union-patterns/source/jibb
2241−/* tok-611 %txt /tests/golden/types-union-patterns/tokens/txt
2242−/* tre-611 %txt /tests/golden/types-union-patterns/tree/txt
2243−/* typ-611 %txt /tests/golden/types-union-patterns/types/txt
2244−/* src-612 %jibb /tests/golden/types-union-patterns-generic/source/jibb
2245−/* tok-612 %txt /tests/golden/types-union-patterns-generic/tokens/txt
2246−/* tre-612 %txt /tests/golden/types-union-patterns-generic/tree/txt
2247−/* typ-612 %txt /tests/golden/types-union-patterns-generic/types/txt
2248−/* src-613 %jibb /tests/golden/types-union-patterns-import/source/jibb
2249−/* tok-613 %txt /tests/golden/types-union-patterns-import/tokens/txt
2250−/* tre-613 %txt /tests/golden/types-union-patterns-import/tree/txt
2251−/* mod-613-1 %jibb /tests/golden/types-union-patterns-import/modules/ui/lib/jibb
2252−/* typ-613 %txt /tests/golden/types-union-patterns-import/types/txt
2253−/* mtre-613 %txt /tests/golden/types-union-patterns-import/module-trees/txt
2254−/* src-614 %jibb /tests/golden/types-union-phantom-generic/source/jibb
2255−/* tok-614 %txt /tests/golden/types-union-phantom-generic/tokens/txt
2256−/* tre-614 %txt /tests/golden/types-union-phantom-generic/tree/txt
2257−/* typ-614 %txt /tests/golden/types-union-phantom-generic/types/txt
2258−/* src-615 %jibb /tests/golden/types-union-polymorphic-identity/source/jibb
2259−/* tok-615 %txt /tests/golden/types-union-polymorphic-identity/tokens/txt
2260−/* tre-615 %txt /tests/golden/types-union-polymorphic-identity/tree/txt
2261−/* mod-615-1 %jibb /tests/golden/types-union-polymorphic-identity/modules/ui/one/jibb
2262−/* mod-615-2 %jibb /tests/golden/types-union-polymorphic-identity/modules/ui/two/jibb
2263−/* typ-615 %txt /tests/golden/types-union-polymorphic-identity/types/txt
2264−/* mtre-615 %txt /tests/golden/types-union-polymorphic-identity/module-trees/txt
2265−/* src-616 %jibb /tests/golden/types-union-print-cross-namespace/source/jibb
2266−/* tok-616 %txt /tests/golden/types-union-print-cross-namespace/tokens/txt
2267−/* tre-616 %txt /tests/golden/types-union-print-cross-namespace/tree/txt
2268−/* mod-616-1 %jibb /tests/golden/types-union-print-cross-namespace/modules/ui/lib/jibb
2269−/* typ-616 %txt /tests/golden/types-union-print-cross-namespace/types/txt
2270−/* mtre-616 %txt /tests/golden/types-union-print-cross-namespace/module-trees/txt
2271−/* src-617 %jibb /tests/golden/types-union-print-distinct/source/jibb
2272−/* tok-617 %txt /tests/golden/types-union-print-distinct/tokens/txt
2273−/* tre-617 %txt /tests/golden/types-union-print-distinct/tree/txt
2274−/* mod-617-1 %jibb /tests/golden/types-union-print-distinct/modules/ui/left/jibb
2275−/* mod-617-2 %jibb /tests/golden/types-union-print-distinct/modules/ui/right/jibb
2276−/* mod-617-3 %jibb /tests/golden/types-union-print-distinct/modules/ui/twin/jibb
2277−/* typ-617 %txt /tests/golden/types-union-print-distinct/types/txt
2278−/* mtre-617 %txt /tests/golden/types-union-print-distinct/module-trees/txt
2279−/* src-618 %jibb /tests/golden/types-union-print-escape/source/jibb
2280−/* tok-618 %txt /tests/golden/types-union-print-escape/tokens/txt
2281−/* tre-618 %txt /tests/golden/types-union-print-escape/tree/txt
2282−/* typ-618 %txt /tests/golden/types-union-print-escape/types/txt
2283−/* src-619 %jibb /tests/golden/types-union-print-local/source/jibb
2284−/* tok-619 %txt /tests/golden/types-union-print-local/tokens/txt
2285−/* tre-619 %txt /tests/golden/types-union-print-local/tree/txt
2286−/* typ-619 %txt /tests/golden/types-union-print-local/types/txt
2287−/* src-620 %jibb /tests/golden/types-union-print-nested/source/jibb
2288−/* tok-620 %txt /tests/golden/types-union-print-nested/tokens/txt
2289−/* tre-620 %txt /tests/golden/types-union-print-nested/tree/txt
2290−/* typ-620 %txt /tests/golden/types-union-print-nested/types/txt
2291−/* src-621 %jibb /tests/golden/types-union-print-same-origin/source/jibb
2292−/* tok-621 %txt /tests/golden/types-union-print-same-origin/tokens/txt
2293−/* tre-621 %txt /tests/golden/types-union-print-same-origin/tree/txt
2294−/* mod-621-1 %jibb /tests/golden/types-union-print-same-origin/modules/ui/shared/jibb
2295−/* typ-621 %txt /tests/golden/types-union-print-same-origin/types/txt
2296−/* mtre-621 %txt /tests/golden/types-union-print-same-origin/module-trees/txt
2297−/* src-622 %jibb /tests/golden/types-union-print-transitive/source/jibb
2298−/* tok-622 %txt /tests/golden/types-union-print-transitive/tokens/txt
2299−/* tre-622 %txt /tests/golden/types-union-print-transitive/tree/txt
2300−/* mod-622-1 %jibb /tests/golden/types-union-print-transitive/modules/ui/mid/jibb
2301−/* mod-622-2 %jibb /tests/golden/types-union-print-transitive/modules/ui/base/jibb
2302−/* typ-622 %txt /tests/golden/types-union-print-transitive/types/txt
2303−/* mtre-622 %txt /tests/golden/types-union-print-transitive/module-trees/txt
2304−/* src-623 %jibb /tests/golden/types-union-singleton/source/jibb
2305−/* tok-623 %txt /tests/golden/types-union-singleton/tokens/txt
2306−/* tre-623 %txt /tests/golden/types-union-singleton/tree/txt
2307−/* typ-623 %txt /tests/golden/types-union-singleton/types/txt
2308−/* src-624 %jibb /tests/golden/types-union-tag-atoms/source/jibb
2309−/* tok-624 %txt /tests/golden/types-union-tag-atoms/tokens/txt
2310−/* tre-624 %txt /tests/golden/types-union-tag-atoms/tree/txt
2311−/* typ-624 %txt /tests/golden/types-union-tag-atoms/types/txt
2312−/* src-625 %jibb /tests/golden/types-union-tags/source/jibb
2313−/* tok-625 %txt /tests/golden/types-union-tags/tokens/txt
2314−/* tre-625 %txt /tests/golden/types-union-tags/tree/txt
2315−/* typ-625 %txt /tests/golden/types-union-tags/types/txt
2316−/* src-626 %jibb /tests/golden/types-union-unresolved/source/jibb
2317−/* tok-626 %txt /tests/golden/types-union-unresolved/tokens/txt
2318−/* tre-626 %txt /tests/golden/types-union-unresolved/tree/txt
2319−/* typ-626 %txt /tests/golden/types-union-unresolved/types/txt
2320−/* src-627 %jibb /tests/golden/types-union-unresolved-flow/source/jibb
2321−/* tok-627 %txt /tests/golden/types-union-unresolved-flow/tokens/txt
2322−/* tre-627 %txt /tests/golden/types-union-unresolved-flow/tree/txt
2323−/* typ-627 %txt /tests/golden/types-union-unresolved-flow/types/txt
2324−/* src-628 %jibb /tests/golden/types-unit-construction/source/jibb
2325−/* tok-628 %txt /tests/golden/types-unit-construction/tokens/txt
2326−/* tre-628 %txt /tests/golden/types-unit-construction/tree/txt
2327−/* typ-628 %txt /tests/golden/types-unit-construction/types/txt
2328−/* src-629 %jibb /tests/golden/types-unit-context/source/jibb
2329−/* tok-629 %txt /tests/golden/types-unit-context/tokens/txt
2330−/* tre-629 %txt /tests/golden/types-unit-context/tree/txt
2331−/* typ-629 %txt /tests/golden/types-unit-context/types/txt
2332−/* src-630 %jibb /tests/golden/types-unit-patterns/source/jibb
2333−/* tok-630 %txt /tests/golden/types-unit-patterns/tokens/txt
2334−/* tre-630 %txt /tests/golden/types-unit-patterns/tree/txt
2335−/* typ-630 %txt /tests/golden/types-unit-patterns/types/txt
2336−/* src-631 %jibb /tests/golden/types-value-cycle-shadow/source/jibb
2337−/* tok-631 %txt /tests/golden/types-value-cycle-shadow/tokens/txt
2338−/* tre-631 %txt /tests/golden/types-value-cycle-shadow/tree/txt
2339−/* typ-631 %txt /tests/golden/types-value-cycle-shadow/types/txt
2340−/* src-632 %jibb /tests/golden/types-value-cycle-unsupported/source/jibb
2341−/* tok-632 %txt /tests/golden/types-value-cycle-unsupported/tokens/txt
2342−/* tre-632 %txt /tests/golden/types-value-cycle-unsupported/tree/txt
2343−/* typ-632 %txt /tests/golden/types-value-cycle-unsupported/types/txt
2344−/* src-633 %jibb /tests/golden/types-value-cycles/source/jibb
2345−/* tok-633 %txt /tests/golden/types-value-cycles/tokens/txt
2346−/* tre-633 %txt /tests/golden/types-value-cycles/tree/txt
2347−/* typ-633 %txt /tests/golden/types-value-cycles/types/txt
1882+/* src-528 %jibb /tests/golden/types-prelude-generic-alias/source/jibb
1883+/* tok-528 %txt /tests/golden/types-prelude-generic-alias/tokens/txt
1884+/* tre-528 %txt /tests/golden/types-prelude-generic-alias/tree/txt
1885+/* mod-528-1 %jibb /tests/golden/types-prelude-generic-alias/modules/ui/alias-helper/jibb
1886+/* typ-528 %txt /tests/golden/types-prelude-generic-alias/types/txt
1887+/* mtre-528 %txt /tests/golden/types-prelude-generic-alias/module-trees/txt
1888+/* src-529 %jibb /tests/golden/types-prelude-interface/source/jibb
1889+/* tok-529 %txt /tests/golden/types-prelude-interface/tokens/txt
1890+/* tre-529 %txt /tests/golden/types-prelude-interface/tree/txt
1891+/* mod-529-1 %jibb /tests/golden/types-prelude-interface/modules/ui/left/jibb
1892+/* mod-529-2 %jibb /tests/golden/types-prelude-interface/modules/ui/right/jibb
1893+/* typ-529 %txt /tests/golden/types-prelude-interface/types/txt
1894+/* mtre-529 %txt /tests/golden/types-prelude-interface/module-trees/txt
1895+/* src-530 %jibb /tests/golden/types-prelude-list-alias/source/jibb
1896+/* tok-530 %txt /tests/golden/types-prelude-list-alias/tokens/txt
1897+/* tre-530 %txt /tests/golden/types-prelude-list-alias/tree/txt
1898+/* typ-530 %txt /tests/golden/types-prelude-list-alias/types/txt
1899+/* src-531 %jibb /tests/golden/types-prelude-list-functions/source/jibb
1900+/* tok-531 %txt /tests/golden/types-prelude-list-functions/tokens/txt
1901+/* tre-531 %txt /tests/golden/types-prelude-list-functions/tree/txt
1902+/* mod-531-1 %jibb /tests/golden/types-prelude-list-functions/modules/ui/lib/jibb
1903+/* typ-531 %txt /tests/golden/types-prelude-list-functions/types/txt
1904+/* mtre-531 %txt /tests/golden/types-prelude-list-functions/module-trees/txt
1905+/* src-532 %jibb /tests/golden/types-prelude-list-helpers/source/jibb
1906+/* tok-532 %txt /tests/golden/types-prelude-list-helpers/tokens/txt
1907+/* tre-532 %txt /tests/golden/types-prelude-list-helpers/tree/txt
1908+/* typ-532 %txt /tests/golden/types-prelude-list-helpers/types/txt
1909+/* src-533 %jibb /tests/golden/types-prelude-predicates/source/jibb
1910+/* tok-533 %txt /tests/golden/types-prelude-predicates/tokens/txt
1911+/* tre-533 %txt /tests/golden/types-prelude-predicates/tree/txt
1912+/* typ-533 %txt /tests/golden/types-prelude-predicates/types/txt
1913+/* src-534 %jibb /tests/golden/types-prelude-unit-helpers/source/jibb
1914+/* tok-534 %txt /tests/golden/types-prelude-unit-helpers/tokens/txt
1915+/* tre-534 %txt /tests/golden/types-prelude-unit-helpers/tree/txt
1916+/* typ-534 %txt /tests/golden/types-prelude-unit-helpers/types/txt
1917+/* src-535 %jibb /tests/golden/types-proj-explicit-context/source/jibb
1918+/* tok-535 %txt /tests/golden/types-proj-explicit-context/tokens/txt
1919+/* tre-535 %txt /tests/golden/types-proj-explicit-context/tree/txt
1920+/* typ-535 %txt /tests/golden/types-proj-explicit-context/types/txt
1921+/* src-536 %jibb /tests/golden/types-proj-nested-no-implicit/source/jibb
1922+/* tok-536 %txt /tests/golden/types-proj-nested-no-implicit/tokens/txt
1923+/* tre-536 %txt /tests/golden/types-proj-nested-no-implicit/tree/txt
1924+/* typ-536 %txt /tests/golden/types-proj-nested-no-implicit/types/txt
1925+/* src-537 %jibb /tests/golden/types-proj-reserved-imported-definition/source/jibb
1926+/* tok-537 %txt /tests/golden/types-proj-reserved-imported-definition/tokens/txt
1927+/* tre-537 %txt /tests/golden/types-proj-reserved-imported-definition/tree/txt
1928+/* mod-537-1 %jibb /tests/golden/types-proj-reserved-imported-definition/modules/ui/lib/jibb
1929+/* typ-537 %txt /tests/golden/types-proj-reserved-imported-definition/types/txt
1930+/* mtre-537 %txt /tests/golden/types-proj-reserved-imported-definition/module-trees/txt
1931+/* src-538 %jibb /tests/golden/types-proj-reserved-jibb-import/source/jibb
1932+/* tok-538 %txt /tests/golden/types-proj-reserved-jibb-import/tokens/txt
1933+/* tre-538 %txt /tests/golden/types-proj-reserved-jibb-import/tree/txt
1934+/* mod-538-1 %jibb /tests/golden/types-proj-reserved-jibb-import/modules/ui/lib/jibb
1935+/* typ-538 %txt /tests/golden/types-proj-reserved-jibb-import/types/txt
1936+/* mtre-538 %txt /tests/golden/types-proj-reserved-jibb-import/module-trees/txt
1937+/* src-539 %jibb /tests/golden/types-proj-reserved-local/source/jibb
1938+/* tok-539 %txt /tests/golden/types-proj-reserved-local/tokens/txt
1939+/* tre-539 %txt /tests/golden/types-proj-reserved-local/tree/txt
1940+/* typ-539 %txt /tests/golden/types-proj-reserved-local/types/txt
1941+/* src-540 %jibb /tests/golden/types-proj-reserved-local-mold/source/jibb
1942+/* tok-540 %txt /tests/golden/types-proj-reserved-local-mold/tokens/txt
1943+/* tre-540 %txt /tests/golden/types-proj-reserved-local-mold/tree/txt
1944+/* typ-540 %txt /tests/golden/types-proj-reserved-local-mold/types/txt
1945+/* src-541 %jibb /tests/golden/types-proj-reserved-mark-import/source/jibb
1946+/* tok-541 %txt /tests/golden/types-proj-reserved-mark-import/tokens/txt
1947+/* tre-541 %txt /tests/golden/types-proj-reserved-mark-import/tree/txt
1948+/* typ-541 %txt /tests/golden/types-proj-reserved-mark-import/types/txt
1949+/* src-542 %jibb /tests/golden/types-proj-reserved-mold/source/jibb
1950+/* tok-542 %txt /tests/golden/types-proj-reserved-mold/tokens/txt
1951+/* tre-542 %txt /tests/golden/types-proj-reserved-mold/tree/txt
1952+/* typ-542 %txt /tests/golden/types-proj-reserved-mold/types/txt
1953+/* src-543 %jibb /tests/golden/types-proj-reserved-pattern/source/jibb
1954+/* tok-543 %txt /tests/golden/types-proj-reserved-pattern/tokens/txt
1955+/* tre-543 %txt /tests/golden/types-proj-reserved-pattern/tree/txt
1956+/* typ-543 %txt /tests/golden/types-proj-reserved-pattern/types/txt
1957+/* src-544 %jibb /tests/golden/types-proj-reserved-positive/source/jibb
1958+/* tok-544 %txt /tests/golden/types-proj-reserved-positive/tokens/txt
1959+/* tre-544 %txt /tests/golden/types-proj-reserved-positive/tree/txt
1960+/* typ-544 %txt /tests/golden/types-proj-reserved-positive/types/txt
1961+/* src-545 %jibb /tests/golden/types-proj-reserved-sample/source/jibb
1962+/* tok-545 %txt /tests/golden/types-proj-reserved-sample/tokens/txt
1963+/* tre-545 %txt /tests/golden/types-proj-reserved-sample/tree/txt
1964+/* typ-545 %txt /tests/golden/types-proj-reserved-sample/types/txt
1965+/* src-546 %jibb /tests/golden/types-proj-reserved-sur-import/source/jibb
1966+/* tok-546 %txt /tests/golden/types-proj-reserved-sur-import/tokens/txt
1967+/* tre-546 %txt /tests/golden/types-proj-reserved-sur-import/tree/txt
1968+/* typ-546 %txt /tests/golden/types-proj-reserved-sur-import/types/txt
1969+/* src-547 %jibb /tests/golden/types-proj-reserved-unused-pattern/source/jibb
1970+/* tok-547 %txt /tests/golden/types-proj-reserved-unused-pattern/tokens/txt
1971+/* tre-547 %txt /tests/golden/types-proj-reserved-unused-pattern/tree/txt
1972+/* typ-547 %txt /tests/golden/types-proj-reserved-unused-pattern/types/txt
1973+/* src-548 %jibb /tests/golden/types-proj-reserved-unused-sample/source/jibb
1974+/* tok-548 %txt /tests/golden/types-proj-reserved-unused-sample/tokens/txt
1975+/* tre-548 %txt /tests/golden/types-proj-reserved-unused-sample/tree/txt
1976+/* typ-548 %txt /tests/golden/types-proj-reserved-unused-sample/types/txt
1977+/* src-549 %jibb /tests/golden/types-proj-reserved-unused-value/source/jibb
1978+/* tok-549 %txt /tests/golden/types-proj-reserved-unused-value/tokens/txt
1979+/* tre-549 %txt /tests/golden/types-proj-reserved-unused-value/tree/txt
1980+/* typ-549 %txt /tests/golden/types-proj-reserved-unused-value/types/txt
1981+/* src-550 %jibb /tests/golden/types-proj-reserved-value/source/jibb
1982+/* tok-550 %txt /tests/golden/types-proj-reserved-value/tokens/txt
1983+/* tre-550 %txt /tests/golden/types-proj-reserved-value/tree/txt
1984+/* typ-550 %txt /tests/golden/types-proj-reserved-value/types/txt
1985+/* src-551 %jibb /tests/golden/types-proj-single-duplicate/source/jibb
1986+/* tok-551 %txt /tests/golden/types-proj-single-duplicate/tokens/txt
1987+/* tre-551 %txt /tests/golden/types-proj-single-duplicate/tree/txt
1988+/* typ-551 %txt /tests/golden/types-proj-single-duplicate/types/txt
1989+/* src-552 %jibb /tests/golden/types-proj-single-field/source/jibb
1990+/* tok-552 %txt /tests/golden/types-proj-single-field/tokens/txt
1991+/* tre-552 %txt /tests/golden/types-proj-single-field/tree/txt
1992+/* typ-552 %txt /tests/golden/types-proj-single-field/types/txt
1993+/* src-553 %jibb /tests/golden/types-proj-single-sample-face/source/jibb
1994+/* tok-553 %txt /tests/golden/types-proj-single-sample-face/tokens/txt
1995+/* tre-553 %txt /tests/golden/types-proj-single-sample-face/tree/txt
1996+/* typ-553 %txt /tests/golden/types-proj-single-sample-face/types/txt
1997+/* src-554 %jibb /tests/golden/types-proj-single-wrapped/source/jibb
1998+/* tok-554 %txt /tests/golden/types-proj-single-wrapped/tokens/txt
1999+/* tre-554 %txt /tests/golden/types-proj-single-wrapped/tree/txt
2000+/* typ-554 %txt /tests/golden/types-proj-single-wrapped/types/txt
2001+/* src-555 %jibb /tests/golden/types-qath-faces/source/jibb
2002+/* tok-555 %txt /tests/golden/types-qath-faces/tokens/txt
2003+/* tre-555 %txt /tests/golden/types-qath-faces/tree/txt
2004+/* typ-555 %txt /tests/golden/types-qath-faces/types/txt
2005+/* src-556 %jibb /tests/golden/types-qath-holes/source/jibb
2006+/* tok-556 %txt /tests/golden/types-qath-holes/tokens/txt
2007+/* tre-556 %txt /tests/golden/types-qath-holes/tree/txt
2008+/* typ-556 %txt /tests/golden/types-qath-holes/types/txt
2009+/* src-557 %jibb /tests/golden/types-qath-module-identity/source/jibb
2010+/* tok-557 %txt /tests/golden/types-qath-module-identity/tokens/txt
2011+/* tre-557 %txt /tests/golden/types-qath-module-identity/tree/txt
2012+/* mod-557-1 %jibb /tests/golden/types-qath-module-identity/modules/ui/one/jibb
2013+/* mod-557-2 %jibb /tests/golden/types-qath-module-identity/modules/ui/two/jibb
2014+/* mod-557-3 %jibb /tests/golden/types-qath-module-identity/modules/ui/mid/jibb
2015+/* typ-557 %txt /tests/golden/types-qath-module-identity/types/txt
2016+/* mtre-557 %txt /tests/golden/types-qath-module-identity/module-trees/txt
2017+/* src-558 %jibb /tests/golden/types-qath-recursive/source/jibb
2018+/* tok-558 %txt /tests/golden/types-qath-recursive/tokens/txt
2019+/* tre-558 %txt /tests/golden/types-qath-recursive/tree/txt
2020+/* typ-558 %txt /tests/golden/types-qath-recursive/types/txt
2021+/* src-559 %jibb /tests/golden/types-record-bound-variable/source/jibb
2022+/* tok-559 %txt /tests/golden/types-record-bound-variable/tokens/txt
2023+/* tre-559 %txt /tests/golden/types-record-bound-variable/tree/txt
2024+/* typ-559 %txt /tests/golden/types-record-bound-variable/types/txt
2025+/* src-560 %jibb /tests/golden/types-record-cast-context/source/jibb
2026+/* tok-560 %txt /tests/golden/types-record-cast-context/tokens/txt
2027+/* tre-560 %txt /tests/golden/types-record-cast-context/tree/txt
2028+/* typ-560 %txt /tests/golden/types-record-cast-context/types/txt
2029+/* src-561 %jibb /tests/golden/types-record-change/source/jibb
2030+/* tok-561 %txt /tests/golden/types-record-change/tokens/txt
2031+/* tre-561 %txt /tests/golden/types-record-change/tree/txt
2032+/* typ-561 %txt /tests/golden/types-record-change/types/txt
2033+/* src-562 %jibb /tests/golden/types-record-change-generic/source/jibb
2034+/* tok-562 %txt /tests/golden/types-record-change-generic/tokens/txt
2035+/* tre-562 %txt /tests/golden/types-record-change-generic/tree/txt
2036+/* typ-562 %txt /tests/golden/types-record-change-generic/types/txt
2037+/* src-563 %jibb /tests/golden/types-record-faces/source/jibb
2038+/* tok-563 %txt /tests/golden/types-record-faces/tokens/txt
2039+/* tre-563 %txt /tests/golden/types-record-faces/tree/txt
2040+/* typ-563 %txt /tests/golden/types-record-faces/types/txt
2041+/* src-564 %jibb /tests/golden/types-record-field-edit-separate/source/jibb
2042+/* tok-564 %txt /tests/golden/types-record-field-edit-separate/tokens/txt
2043+/* tre-564 %txt /tests/golden/types-record-field-edit-separate/tree/txt
2044+/* typ-564 %txt /tests/golden/types-record-field-edit-separate/types/txt
2045+/* src-565 %jibb /tests/golden/types-record-field-expr-duplicate/source/jibb
2046+/* tok-565 %txt /tests/golden/types-record-field-expr-duplicate/tokens/txt
2047+/* tre-565 %txt /tests/golden/types-record-field-expr-duplicate/tree/txt
2048+/* typ-565 %txt /tests/golden/types-record-field-expr-duplicate/types/txt
2049+/* src-566 %jibb /tests/golden/types-record-field-expr-separate/source/jibb
2050+/* tok-566 %txt /tests/golden/types-record-field-expr-separate/tokens/txt
2051+/* tre-566 %txt /tests/golden/types-record-field-expr-separate/tree/txt
2052+/* typ-566 %txt /tests/golden/types-record-field-expr-separate/types/txt
2053+/* src-567 %jibb /tests/golden/types-record-field-module-reachable/source/jibb
2054+/* tok-567 %txt /tests/golden/types-record-field-module-reachable/tokens/txt
2055+/* tre-567 %txt /tests/golden/types-record-field-module-reachable/tree/txt
2056+/* mod-567-1 %jibb /tests/golden/types-record-field-module-reachable/modules/ui/lib/jibb
2057+/* typ-567 %txt /tests/golden/types-record-field-module-reachable/types/txt
2058+/* mtre-567 %txt /tests/golden/types-record-field-module-reachable/module-trees/txt
2059+/* src-568 %jibb /tests/golden/types-record-field-module-unused/source/jibb
2060+/* tok-568 %txt /tests/golden/types-record-field-module-unused/tokens/txt
2061+/* tre-568 %txt /tests/golden/types-record-field-module-unused/tree/txt
2062+/* mod-568-1 %jibb /tests/golden/types-record-field-module-unused/modules/ui/good/jibb
2063+/* mod-568-2 %jibb /tests/golden/types-record-field-module-unused/modules/ui/unused/jibb
2064+/* typ-568 %txt /tests/golden/types-record-field-module-unused/types/txt
2065+/* mtre-568 %txt /tests/golden/types-record-field-module-unused/module-trees/txt
2066+/* src-569 %jibb /tests/golden/types-record-field-nested-mold/source/jibb
2067+/* tok-569 %txt /tests/golden/types-record-field-nested-mold/tokens/txt
2068+/* tre-569 %txt /tests/golden/types-record-field-nested-mold/tree/txt
2069+/* typ-569 %txt /tests/golden/types-record-field-nested-mold/types/txt
2070+/* src-570 %jibb /tests/golden/types-record-field-outer-inner/source/jibb
2071+/* tok-570 %txt /tests/golden/types-record-field-outer-inner/tokens/txt
2072+/* tre-570 %txt /tests/golden/types-record-field-outer-inner/tree/txt
2073+/* typ-570 %txt /tests/golden/types-record-field-outer-inner/types/txt
2074+/* src-571 %jibb /tests/golden/types-record-field-sample-duplicate/source/jibb
2075+/* tok-571 %txt /tests/golden/types-record-field-sample-duplicate/tokens/txt
2076+/* tre-571 %txt /tests/golden/types-record-field-sample-duplicate/tree/txt
2077+/* typ-571 %txt /tests/golden/types-record-field-sample-duplicate/types/txt
2078+/* src-572 %jibb /tests/golden/types-record-field-separate-molds/source/jibb
2079+/* tok-572 %txt /tests/golden/types-record-field-separate-molds/tokens/txt
2080+/* tre-572 %txt /tests/golden/types-record-field-separate-molds/tree/txt
2081+/* typ-572 %txt /tests/golden/types-record-field-separate-molds/types/txt
2082+/* src-573 %jibb /tests/golden/types-record-field-unused-mold/source/jibb
2083+/* tok-573 %txt /tests/golden/types-record-field-unused-mold/tokens/txt
2084+/* tre-573 %txt /tests/golden/types-record-field-unused-mold/tree/txt
2085+/* typ-573 %txt /tests/golden/types-record-field-unused-mold/types/txt
2086+/* src-574 %jibb /tests/golden/types-record-import/source/jibb
2087+/* tok-574 %txt /tests/golden/types-record-import/tokens/txt
2088+/* tre-574 %txt /tests/golden/types-record-import/tree/txt
2089+/* mod-574-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
2090+/* typ-574 %txt /tests/golden/types-record-import/types/txt
2091+/* mtre-574 %txt /tests/golden/types-record-import/module-trees/txt
2092+/* src-575 %jibb /tests/golden/types-record-local-scheme/source/jibb
2093+/* tok-575 %txt /tests/golden/types-record-local-scheme/tokens/txt
2094+/* tre-575 %txt /tests/golden/types-record-local-scheme/tree/txt
2095+/* typ-575 %txt /tests/golden/types-record-local-scheme/types/txt
2096+/* src-576 %jibb /tests/golden/types-record-nested/source/jibb
2097+/* tok-576 %txt /tests/golden/types-record-nested/tokens/txt
2098+/* tre-576 %txt /tests/golden/types-record-nested/tree/txt
2099+/* typ-576 %txt /tests/golden/types-record-nested/types/txt
2100+/* src-577 %jibb /tests/golden/types-record-to-tuple/source/jibb
2101+/* tok-577 %txt /tests/golden/types-record-to-tuple/tokens/txt
2102+/* tre-577 %txt /tests/golden/types-record-to-tuple/tree/txt
2103+/* typ-577 %txt /tests/golden/types-record-to-tuple/types/txt
2104+/* src-578 %jibb /tests/golden/types-recursion-scc-failures/source/jibb
2105+/* tok-578 %txt /tests/golden/types-recursion-scc-failures/tokens/txt
2106+/* tre-578 %txt /tests/golden/types-recursion-scc-failures/tree/txt
2107+/* typ-578 %txt /tests/golden/types-recursion-scc-failures/types/txt
2108+/* src-579 %jibb /tests/golden/types-recursion-scc-groups/source/jibb
2109+/* tok-579 %txt /tests/golden/types-recursion-scc-groups/tokens/txt
2110+/* tre-579 %txt /tests/golden/types-recursion-scc-groups/tree/txt
2111+/* typ-579 %txt /tests/golden/types-recursion-scc-groups/types/txt
2112+/* src-580 %jibb /tests/golden/types-recursion-scc-import/source/jibb
2113+/* tok-580 %txt /tests/golden/types-recursion-scc-import/tokens/txt
2114+/* tre-580 %txt /tests/golden/types-recursion-scc-import/tree/txt
2115+/* mod-580-1 %jibb /tests/golden/types-recursion-scc-import/modules/ui/lib/jibb
2116+/* typ-580 %txt /tests/golden/types-recursion-scc-import/types/txt
2117+/* mtre-580 %txt /tests/golden/types-recursion-scc-import/module-trees/txt
2118+/* src-581 %jibb /tests/golden/types-recursion-scc-import-bad/source/jibb
2119+/* tok-581 %txt /tests/golden/types-recursion-scc-import-bad/tokens/txt
2120+/* tre-581 %txt /tests/golden/types-recursion-scc-import-bad/tree/txt
2121+/* mod-581-1 %jibb /tests/golden/types-recursion-scc-import-bad/modules/ui/lib/jibb
2122+/* typ-581 %txt /tests/golden/types-recursion-scc-import-bad/types/txt
2123+/* mtre-581 %txt /tests/golden/types-recursion-scc-import-bad/module-trees/txt
2124+/* src-582 %jibb /tests/golden/types-recursion-scc-local/source/jibb
2125+/* tok-582 %txt /tests/golden/types-recursion-scc-local/tokens/txt
2126+/* tre-582 %txt /tests/golden/types-recursion-scc-local/tree/txt
2127+/* typ-582 %txt /tests/golden/types-recursion-scc-local/types/txt
2128+/* src-583 %jibb /tests/golden/types-recursion-scc-order/source/jibb
2129+/* tok-583 %txt /tests/golden/types-recursion-scc-order/tokens/txt
2130+/* tre-583 %txt /tests/golden/types-recursion-scc-order/tree/txt
2131+/* typ-583 %txt /tests/golden/types-recursion-scc-order/types/txt
2132+/* src-584 %jibb /tests/golden/types-recursion-scc-shadow/source/jibb
2133+/* tok-584 %txt /tests/golden/types-recursion-scc-shadow/tokens/txt
2134+/* tre-584 %txt /tests/golden/types-recursion-scc-shadow/tree/txt
2135+/* typ-584 %txt /tests/golden/types-recursion-scc-shadow/types/txt
2136+/* src-585 %jibb /tests/golden/types-recursive-branch/source/jibb
2137+/* tok-585 %txt /tests/golden/types-recursive-branch/tokens/txt
2138+/* tre-585 %txt /tests/golden/types-recursive-branch/tree/txt
2139+/* typ-585 %txt /tests/golden/types-recursive-branch/types/txt
2140+/* src-586 %jibb /tests/golden/types-recursive-gate/source/jibb
2141+/* tok-586 %txt /tests/golden/types-recursive-gate/tokens/txt
2142+/* tre-586 %txt /tests/golden/types-recursive-gate/tree/txt
2143+/* typ-586 %txt /tests/golden/types-recursive-gate/types/txt
2144+/* src-587 %jibb /tests/golden/types-recursive-sample/source/jibb
2145+/* tok-587 %txt /tests/golden/types-recursive-sample/tokens/txt
2146+/* tre-587 %txt /tests/golden/types-recursive-sample/tree/txt
2147+/* typ-587 %txt /tests/golden/types-recursive-sample/types/txt
2148+/* src-588 %jibb /tests/golden/types-scope-library-poke/source/jibb
2149+/* tok-588 %txt /tests/golden/types-scope-library-poke/tokens/txt
2150+/* tre-588 %txt /tests/golden/types-scope-library-poke/tree/txt
2151+/* typ-588 %txt /tests/golden/types-scope-library-poke/types/txt
2152+/* src-589 %jibb /tests/golden/types-scope-root-api/source/jibb
2153+/* tok-589 %txt /tests/golden/types-scope-root-api/tokens/txt
2154+/* tre-589 %txt /tests/golden/types-scope-root-api/tree/txt
2155+/* typ-589 %txt /tests/golden/types-scope-root-api/types/txt
2156+/* src-590 %jibb /tests/golden/types-scope-store-duplicate/source/jibb
2157+/* tok-590 %txt /tests/golden/types-scope-store-duplicate/tokens/txt
2158+/* tre-590 %txt /tests/golden/types-scope-store-duplicate/tree/txt
2159+/* typ-590 %txt /tests/golden/types-scope-store-duplicate/types/txt
2160+/* src-591 %jibb /tests/golden/types-scope-store-shadow/source/jibb
2161+/* tok-591 %txt /tests/golden/types-scope-store-shadow/tokens/txt
2162+/* tre-591 %txt /tests/golden/types-scope-store-shadow/tree/txt
2163+/* typ-591 %txt /tests/golden/types-scope-store-shadow/types/txt
2164+/* src-592 %jibb /tests/golden/types-single-case-pattern/source/jibb
2165+/* tok-592 %txt /tests/golden/types-single-case-pattern/tokens/txt
2166+/* tre-592 %txt /tests/golden/types-single-case-pattern/tree/txt
2167+/* typ-592 %txt /tests/golden/types-single-case-pattern/types/txt
2168+/* src-593 %jibb /tests/golden/types-string-interpolation/source/jibb
2169+/* tok-593 %txt /tests/golden/types-string-interpolation/tokens/txt
2170+/* tre-593 %txt /tests/golden/types-string-interpolation/tree/txt
2171+/* typ-593 %txt /tests/golden/types-string-interpolation/types/txt
2172+/* src-594 %jibb /tests/golden/types-tuple-context/source/jibb
2173+/* tok-594 %txt /tests/golden/types-tuple-context/tokens/txt
2174+/* tre-594 %txt /tests/golden/types-tuple-context/tree/txt
2175+/* typ-594 %txt /tests/golden/types-tuple-context/types/txt
2176+/* src-595 %jibb /tests/golden/types-tuple-context-nested/source/jibb
2177+/* tok-595 %txt /tests/golden/types-tuple-context-nested/tokens/txt
2178+/* tre-595 %txt /tests/golden/types-tuple-context-nested/tree/txt
2179+/* typ-595 %txt /tests/golden/types-tuple-context-nested/types/txt
2180+/* src-596 %jibb /tests/golden/types-union-alias/source/jibb
2181+/* tok-596 %txt /tests/golden/types-union-alias/tokens/txt
2182+/* tre-596 %txt /tests/golden/types-union-alias/tree/txt
2183+/* typ-596 %txt /tests/golden/types-union-alias/types/txt
2184+/* src-597 %jibb /tests/golden/types-union-branch-context/source/jibb
2185+/* tok-597 %txt /tests/golden/types-union-branch-context/tokens/txt
2186+/* tre-597 %txt /tests/golden/types-union-branch-context/tree/txt
2187+/* typ-597 %txt /tests/golden/types-union-branch-context/types/txt
2188+/* src-598 %jibb /tests/golden/types-union-branch-pending/source/jibb
2189+/* tok-598 %txt /tests/golden/types-union-branch-pending/tokens/txt
2190+/* tre-598 %txt /tests/golden/types-union-branch-pending/tree/txt
2191+/* typ-598 %txt /tests/golden/types-union-branch-pending/types/txt
2192+/* src-599 %jibb /tests/golden/types-union-constructor-shape/source/jibb
2193+/* tok-599 %txt /tests/golden/types-union-constructor-shape/tokens/txt
2194+/* tre-599 %txt /tests/golden/types-union-constructor-shape/tree/txt
2195+/* typ-599 %txt /tests/golden/types-union-constructor-shape/types/txt
2196+/* src-600 %jibb /tests/golden/types-union-context-flow/source/jibb
2197+/* tok-600 %txt /tests/golden/types-union-context-flow/tokens/txt
2198+/* tre-600 %txt /tests/golden/types-union-context-flow/tree/txt
2199+/* typ-600 %txt /tests/golden/types-union-context-flow/types/txt
2200+/* src-601 %jibb /tests/golden/types-union-finite/source/jibb
2201+/* tok-601 %txt /tests/golden/types-union-finite/tokens/txt
2202+/* tre-601 %txt /tests/golden/types-union-finite/tree/txt
2203+/* typ-601 %txt /tests/golden/types-union-finite/types/txt
2204+/* src-602 %jibb /tests/golden/types-union-finite-context/source/jibb
2205+/* tok-602 %txt /tests/golden/types-union-finite-context/tokens/txt
2206+/* tre-602 %txt /tests/golden/types-union-finite-context/tree/txt
2207+/* typ-602 %txt /tests/golden/types-union-finite-context/types/txt
2208+/* src-603 %jibb /tests/golden/types-union-finite-generic/source/jibb
2209+/* tok-603 %txt /tests/golden/types-union-finite-generic/tokens/txt
2210+/* tre-603 %txt /tests/golden/types-union-finite-generic/tree/txt
2211+/* typ-603 %txt /tests/golden/types-union-finite-generic/types/txt
2212+/* src-604 %jibb /tests/golden/types-union-finite-limit/source/jibb
2213+/* tok-604 %txt /tests/golden/types-union-finite-limit/tokens/txt
2214+/* tre-604 %txt /tests/golden/types-union-finite-limit/tree/txt
2215+/* typ-604 %txt /tests/golden/types-union-finite-limit/types/txt
2216+/* src-605 %jibb /tests/golden/types-union-import/source/jibb
2217+/* tok-605 %txt /tests/golden/types-union-import/tokens/txt
2218+/* tre-605 %txt /tests/golden/types-union-import/tree/txt
2219+/* mod-605-1 %jibb /tests/golden/types-union-import/modules/ui/lib/jibb
2220+/* typ-605 %txt /tests/golden/types-union-import/types/txt
2221+/* mtre-605 %txt /tests/golden/types-union-import/module-trees/txt
2222+/* src-606 %jibb /tests/golden/types-union-local-pending/source/jibb
2223+/* tok-606 %txt /tests/golden/types-union-local-pending/tokens/txt
2224+/* tre-606 %txt /tests/golden/types-union-local-pending/tree/txt
2225+/* typ-606 %txt /tests/golden/types-union-local-pending/types/txt
2226+/* src-607 %jibb /tests/golden/types-union-nonwing-subject/source/jibb
2227+/* tok-607 %txt /tests/golden/types-union-nonwing-subject/tokens/txt
2228+/* tre-607 %txt /tests/golden/types-union-nonwing-subject/tree/txt
2229+/* typ-607 %txt /tests/golden/types-union-nonwing-subject/types/txt
2230+/* src-608 %jibb /tests/golden/types-union-overlap/source/jibb
2231+/* tok-608 %txt /tests/golden/types-union-overlap/tokens/txt
2232+/* tre-608 %txt /tests/golden/types-union-overlap/tree/txt
2233+/* typ-608 %txt /tests/golden/types-union-overlap/types/txt
2234+/* src-609 %jibb /tests/golden/types-union-overlap-nested/source/jibb
2235+/* tok-609 %txt /tests/golden/types-union-overlap-nested/tokens/txt
2236+/* tre-609 %txt /tests/golden/types-union-overlap-nested/tree/txt
2237+/* typ-609 %txt /tests/golden/types-union-overlap-nested/types/txt
2238+/* src-610 %jibb /tests/golden/types-union-pattern-result-context/source/jibb
2239+/* tok-610 %txt /tests/golden/types-union-pattern-result-context/tokens/txt
2240+/* tre-610 %txt /tests/golden/types-union-pattern-result-context/tree/txt
2241+/* typ-610 %txt /tests/golden/types-union-pattern-result-context/types/txt
2242+/* src-611 %jibb /tests/golden/types-union-pattern-result-controls/source/jibb
2243+/* tok-611 %txt /tests/golden/types-union-pattern-result-controls/tokens/txt
2244+/* tre-611 %txt /tests/golden/types-union-pattern-result-controls/tree/txt
2245+/* typ-611 %txt /tests/golden/types-union-pattern-result-controls/types/txt
2246+/* src-612 %jibb /tests/golden/types-union-patterns/source/jibb
2247+/* tok-612 %txt /tests/golden/types-union-patterns/tokens/txt
2248+/* tre-612 %txt /tests/golden/types-union-patterns/tree/txt
2249+/* typ-612 %txt /tests/golden/types-union-patterns/types/txt
2250+/* src-613 %jibb /tests/golden/types-union-patterns-generic/source/jibb
2251+/* tok-613 %txt /tests/golden/types-union-patterns-generic/tokens/txt
2252+/* tre-613 %txt /tests/golden/types-union-patterns-generic/tree/txt
2253+/* typ-613 %txt /tests/golden/types-union-patterns-generic/types/txt
2254+/* src-614 %jibb /tests/golden/types-union-patterns-import/source/jibb
2255+/* tok-614 %txt /tests/golden/types-union-patterns-import/tokens/txt
2256+/* tre-614 %txt /tests/golden/types-union-patterns-import/tree/txt
2257+/* mod-614-1 %jibb /tests/golden/types-union-patterns-import/modules/ui/lib/jibb
2258+/* typ-614 %txt /tests/golden/types-union-patterns-import/types/txt
2259+/* mtre-614 %txt /tests/golden/types-union-patterns-import/module-trees/txt
2260+/* src-615 %jibb /tests/golden/types-union-phantom-generic/source/jibb
2261+/* tok-615 %txt /tests/golden/types-union-phantom-generic/tokens/txt
2262+/* tre-615 %txt /tests/golden/types-union-phantom-generic/tree/txt
2263+/* typ-615 %txt /tests/golden/types-union-phantom-generic/types/txt
2264+/* src-616 %jibb /tests/golden/types-union-polymorphic-identity/source/jibb
2265+/* tok-616 %txt /tests/golden/types-union-polymorphic-identity/tokens/txt
2266+/* tre-616 %txt /tests/golden/types-union-polymorphic-identity/tree/txt
2267+/* mod-616-1 %jibb /tests/golden/types-union-polymorphic-identity/modules/ui/one/jibb
2268+/* mod-616-2 %jibb /tests/golden/types-union-polymorphic-identity/modules/ui/two/jibb
2269+/* typ-616 %txt /tests/golden/types-union-polymorphic-identity/types/txt
2270+/* mtre-616 %txt /tests/golden/types-union-polymorphic-identity/module-trees/txt
2271+/* src-617 %jibb /tests/golden/types-union-print-cross-namespace/source/jibb
2272+/* tok-617 %txt /tests/golden/types-union-print-cross-namespace/tokens/txt
2273+/* tre-617 %txt /tests/golden/types-union-print-cross-namespace/tree/txt
2274+/* mod-617-1 %jibb /tests/golden/types-union-print-cross-namespace/modules/ui/lib/jibb
2275+/* typ-617 %txt /tests/golden/types-union-print-cross-namespace/types/txt
2276+/* mtre-617 %txt /tests/golden/types-union-print-cross-namespace/module-trees/txt
2277+/* src-618 %jibb /tests/golden/types-union-print-distinct/source/jibb
2278+/* tok-618 %txt /tests/golden/types-union-print-distinct/tokens/txt
2279+/* tre-618 %txt /tests/golden/types-union-print-distinct/tree/txt
2280+/* mod-618-1 %jibb /tests/golden/types-union-print-distinct/modules/ui/left/jibb
2281+/* mod-618-2 %jibb /tests/golden/types-union-print-distinct/modules/ui/right/jibb
2282+/* mod-618-3 %jibb /tests/golden/types-union-print-distinct/modules/ui/twin/jibb
2283+/* typ-618 %txt /tests/golden/types-union-print-distinct/types/txt
2284+/* mtre-618 %txt /tests/golden/types-union-print-distinct/module-trees/txt
2285+/* src-619 %jibb /tests/golden/types-union-print-escape/source/jibb
2286+/* tok-619 %txt /tests/golden/types-union-print-escape/tokens/txt
2287+/* tre-619 %txt /tests/golden/types-union-print-escape/tree/txt
2288+/* typ-619 %txt /tests/golden/types-union-print-escape/types/txt
2289+/* src-620 %jibb /tests/golden/types-union-print-local/source/jibb
2290+/* tok-620 %txt /tests/golden/types-union-print-local/tokens/txt
2291+/* tre-620 %txt /tests/golden/types-union-print-local/tree/txt
2292+/* typ-620 %txt /tests/golden/types-union-print-local/types/txt
2293+/* src-621 %jibb /tests/golden/types-union-print-nested/source/jibb
2294+/* tok-621 %txt /tests/golden/types-union-print-nested/tokens/txt
2295+/* tre-621 %txt /tests/golden/types-union-print-nested/tree/txt
2296+/* typ-621 %txt /tests/golden/types-union-print-nested/types/txt
2297+/* src-622 %jibb /tests/golden/types-union-print-same-origin/source/jibb
2298+/* tok-622 %txt /tests/golden/types-union-print-same-origin/tokens/txt
2299+/* tre-622 %txt /tests/golden/types-union-print-same-origin/tree/txt
2300+/* mod-622-1 %jibb /tests/golden/types-union-print-same-origin/modules/ui/shared/jibb
2301+/* typ-622 %txt /tests/golden/types-union-print-same-origin/types/txt
2302+/* mtre-622 %txt /tests/golden/types-union-print-same-origin/module-trees/txt
2303+/* src-623 %jibb /tests/golden/types-union-print-transitive/source/jibb
2304+/* tok-623 %txt /tests/golden/types-union-print-transitive/tokens/txt
2305+/* tre-623 %txt /tests/golden/types-union-print-transitive/tree/txt
2306+/* mod-623-1 %jibb /tests/golden/types-union-print-transitive/modules/ui/mid/jibb
2307+/* mod-623-2 %jibb /tests/golden/types-union-print-transitive/modules/ui/base/jibb
2308+/* typ-623 %txt /tests/golden/types-union-print-transitive/types/txt
2309+/* mtre-623 %txt /tests/golden/types-union-print-transitive/module-trees/txt
2310+/* src-624 %jibb /tests/golden/types-union-singleton/source/jibb
2311+/* tok-624 %txt /tests/golden/types-union-singleton/tokens/txt
2312+/* tre-624 %txt /tests/golden/types-union-singleton/tree/txt
2313+/* typ-624 %txt /tests/golden/types-union-singleton/types/txt
2314+/* src-625 %jibb /tests/golden/types-union-tag-atoms/source/jibb
2315+/* tok-625 %txt /tests/golden/types-union-tag-atoms/tokens/txt
2316+/* tre-625 %txt /tests/golden/types-union-tag-atoms/tree/txt
2317+/* typ-625 %txt /tests/golden/types-union-tag-atoms/types/txt
2318+/* src-626 %jibb /tests/golden/types-union-tags/source/jibb
2319+/* tok-626 %txt /tests/golden/types-union-tags/tokens/txt
2320+/* tre-626 %txt /tests/golden/types-union-tags/tree/txt
2321+/* typ-626 %txt /tests/golden/types-union-tags/types/txt
2322+/* src-627 %jibb /tests/golden/types-union-unresolved/source/jibb
2323+/* tok-627 %txt /tests/golden/types-union-unresolved/tokens/txt
2324+/* tre-627 %txt /tests/golden/types-union-unresolved/tree/txt
2325+/* typ-627 %txt /tests/golden/types-union-unresolved/types/txt
2326+/* src-628 %jibb /tests/golden/types-union-unresolved-flow/source/jibb
2327+/* tok-628 %txt /tests/golden/types-union-unresolved-flow/tokens/txt
2328+/* tre-628 %txt /tests/golden/types-union-unresolved-flow/tree/txt
2329+/* typ-628 %txt /tests/golden/types-union-unresolved-flow/types/txt
2330+/* src-629 %jibb /tests/golden/types-unit-construction/source/jibb
2331+/* tok-629 %txt /tests/golden/types-unit-construction/tokens/txt
2332+/* tre-629 %txt /tests/golden/types-unit-construction/tree/txt
2333+/* typ-629 %txt /tests/golden/types-unit-construction/types/txt
2334+/* src-630 %jibb /tests/golden/types-unit-context/source/jibb
2335+/* tok-630 %txt /tests/golden/types-unit-context/tokens/txt
2336+/* tre-630 %txt /tests/golden/types-unit-context/tree/txt
2337+/* typ-630 %txt /tests/golden/types-unit-context/types/txt
2338+/* src-631 %jibb /tests/golden/types-unit-patterns/source/jibb
2339+/* tok-631 %txt /tests/golden/types-unit-patterns/tokens/txt
2340+/* tre-631 %txt /tests/golden/types-unit-patterns/tree/txt
2341+/* typ-631 %txt /tests/golden/types-unit-patterns/types/txt
2342+/* src-632 %jibb /tests/golden/types-value-cycle-shadow/source/jibb
2343+/* tok-632 %txt /tests/golden/types-value-cycle-shadow/tokens/txt
2344+/* tre-632 %txt /tests/golden/types-value-cycle-shadow/tree/txt
2345+/* typ-632 %txt /tests/golden/types-value-cycle-shadow/types/txt
2346+/* src-633 %jibb /tests/golden/types-value-cycle-unsupported/source/jibb
2347+/* tok-633 %txt /tests/golden/types-value-cycle-unsupported/tokens/txt
2348+/* tre-633 %txt /tests/golden/types-value-cycle-unsupported/tree/txt
2349+/* typ-633 %txt /tests/golden/types-value-cycle-unsupported/types/txt
2350+/* src-634 %jibb /tests/golden/types-value-cycles/source/jibb
2351+/* tok-634 %txt /tests/golden/types-value-cycles/tokens/txt
2352+/* tre-634 %txt /tests/golden/types-value-cycles/tree/txt
2353+/* typ-634 %txt /tests/golden/types-value-cycles/types/txt
23482354=/ prepared-prelude (prepare-prelude-with-internal:jibb prelude-source internal-source)
23492355|%
23502356:: one arm per case
@@ -3403,218 +3409,220 @@
34033409 (weld (check ~.types-prelude-direct src-526 `tok-526 `tre-526) (check-module-types ~.types-prelude-direct ~[%tests %golden ~.types-prelude-direct %source %jibb] src-526 `typ-526 ~ ~ ~))
34043410++ test-types-prelude-functional
34053411 (weld (check ~.types-prelude-functional src-527 `tok-527 `tre-527) (check-module-types ~.types-prelude-functional ~[%tests %golden ~.types-prelude-functional %source %jibb] src-527 `typ-527 ~ ~ ~))
3412+++ test-types-prelude-generic-alias
3413+ (weld (weld (check ~.types-prelude-generic-alias src-528 `tok-528 `tre-528) (check-module-types ~.types-prelude-generic-alias ~[%tests %golden ~.types-prelude-generic-alias %source %jibb] src-528 `typ-528 ~ ~ ~[['/ui/alias-helper.jibb' ~[~.ui ~.alias-helper ~.jibb] mod-528-1]])) (check-module-trees ~.types-prelude-generic-alias `mtre-528 ~[['/ui/alias-helper.jibb' ~[~.ui ~.alias-helper ~.jibb] mod-528-1]]))
34063414++ test-types-prelude-interface
3407− (weld (weld (check ~.types-prelude-interface src-528 `tok-528 `tre-528) (check-module-types ~.types-prelude-interface ~[%tests %golden ~.types-prelude-interface %source %jibb] src-528 `typ-528 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-528-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-528-2]])) (check-module-trees ~.types-prelude-interface `mtre-528 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-528-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-528-2]]))
3415+ (weld (weld (check ~.types-prelude-interface src-529 `tok-529 `tre-529) (check-module-types ~.types-prelude-interface ~[%tests %golden ~.types-prelude-interface %source %jibb] src-529 `typ-529 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-529-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-529-2]])) (check-module-trees ~.types-prelude-interface `mtre-529 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-529-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-529-2]]))
34083416++ test-types-prelude-list-alias
3409− (weld (check ~.types-prelude-list-alias src-529 `tok-529 `tre-529) (check-module-types ~.types-prelude-list-alias ~[%tests %golden ~.types-prelude-list-alias %source %jibb] src-529 `typ-529 ~ ~ ~))
3417+ (weld (check ~.types-prelude-list-alias src-530 `tok-530 `tre-530) (check-module-types ~.types-prelude-list-alias ~[%tests %golden ~.types-prelude-list-alias %source %jibb] src-530 `typ-530 ~ ~ ~))
34103418++ test-types-prelude-list-functions
3411− (weld (weld (check ~.types-prelude-list-functions src-530 `tok-530 `tre-530) (check-module-types ~.types-prelude-list-functions ~[%tests %golden ~.types-prelude-list-functions %source %jibb] src-530 `typ-530 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-530-1]])) (check-module-trees ~.types-prelude-list-functions `mtre-530 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-530-1]]))
3419+ (weld (weld (check ~.types-prelude-list-functions src-531 `tok-531 `tre-531) (check-module-types ~.types-prelude-list-functions ~[%tests %golden ~.types-prelude-list-functions %source %jibb] src-531 `typ-531 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-531-1]])) (check-module-trees ~.types-prelude-list-functions `mtre-531 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-531-1]]))
34123420++ test-types-prelude-list-helpers
3413− (weld (check ~.types-prelude-list-helpers src-531 `tok-531 `tre-531) (check-module-types ~.types-prelude-list-helpers ~[%tests %golden ~.types-prelude-list-helpers %source %jibb] src-531 `typ-531 ~ ~ ~))
3421+ (weld (check ~.types-prelude-list-helpers src-532 `tok-532 `tre-532) (check-module-types ~.types-prelude-list-helpers ~[%tests %golden ~.types-prelude-list-helpers %source %jibb] src-532 `typ-532 ~ ~ ~))
34143422++ test-types-prelude-predicates
3415− (weld (check ~.types-prelude-predicates src-532 `tok-532 `tre-532) (check-module-types ~.types-prelude-predicates ~[%tests %golden ~.types-prelude-predicates %source %jibb] src-532 `typ-532 ~ ~ ~))
3423+ (weld (check ~.types-prelude-predicates src-533 `tok-533 `tre-533) (check-module-types ~.types-prelude-predicates ~[%tests %golden ~.types-prelude-predicates %source %jibb] src-533 `typ-533 ~ ~ ~))
34163424++ test-types-prelude-unit-helpers
3417− (weld (check ~.types-prelude-unit-helpers src-533 `tok-533 `tre-533) (check-module-types ~.types-prelude-unit-helpers ~[%tests %golden ~.types-prelude-unit-helpers %source %jibb] src-533 `typ-533 ~ ~ ~))
3425+ (weld (check ~.types-prelude-unit-helpers src-534 `tok-534 `tre-534) (check-module-types ~.types-prelude-unit-helpers ~[%tests %golden ~.types-prelude-unit-helpers %source %jibb] src-534 `typ-534 ~ ~ ~))
34183426++ test-types-proj-explicit-context
3419− (weld (check ~.types-proj-explicit-context src-534 `tok-534 `tre-534) (check-module-types ~.types-proj-explicit-context ~[%tests %golden ~.types-proj-explicit-context %source %jibb] src-534 `typ-534 ~ ~ ~))
3427+ (weld (check ~.types-proj-explicit-context src-535 `tok-535 `tre-535) (check-module-types ~.types-proj-explicit-context ~[%tests %golden ~.types-proj-explicit-context %source %jibb] src-535 `typ-535 ~ ~ ~))
34203428++ test-types-proj-nested-no-implicit
3421− (weld (check ~.types-proj-nested-no-implicit src-535 `tok-535 `tre-535) (check-module-types ~.types-proj-nested-no-implicit ~[%tests %golden ~.types-proj-nested-no-implicit %source %jibb] src-535 `typ-535 ~ ~ ~))
3429+ (weld (check ~.types-proj-nested-no-implicit src-536 `tok-536 `tre-536) (check-module-types ~.types-proj-nested-no-implicit ~[%tests %golden ~.types-proj-nested-no-implicit %source %jibb] src-536 `typ-536 ~ ~ ~))
34223430++ test-types-proj-reserved-imported-definition
3423− (weld (weld (check ~.types-proj-reserved-imported-definition src-536 `tok-536 `tre-536) (check-module-types ~.types-proj-reserved-imported-definition ~[%tests %golden ~.types-proj-reserved-imported-definition %source %jibb] src-536 `typ-536 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-536-1]])) (check-module-trees ~.types-proj-reserved-imported-definition `mtre-536 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-536-1]]))
3431+ (weld (weld (check ~.types-proj-reserved-imported-definition src-537 `tok-537 `tre-537) (check-module-types ~.types-proj-reserved-imported-definition ~[%tests %golden ~.types-proj-reserved-imported-definition %source %jibb] src-537 `typ-537 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-537-1]])) (check-module-trees ~.types-proj-reserved-imported-definition `mtre-537 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-537-1]]))
34243432++ test-types-proj-reserved-jibb-import
3425− (weld (weld (check ~.types-proj-reserved-jibb-import src-537 `tok-537 `tre-537) (check-module-types ~.types-proj-reserved-jibb-import ~[%tests %golden ~.types-proj-reserved-jibb-import %source %jibb] src-537 `typ-537 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-537-1]])) (check-module-trees ~.types-proj-reserved-jibb-import `mtre-537 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-537-1]]))
3433+ (weld (weld (check ~.types-proj-reserved-jibb-import src-538 `tok-538 `tre-538) (check-module-types ~.types-proj-reserved-jibb-import ~[%tests %golden ~.types-proj-reserved-jibb-import %source %jibb] src-538 `typ-538 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-538-1]])) (check-module-trees ~.types-proj-reserved-jibb-import `mtre-538 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-538-1]]))
34263434++ test-types-proj-reserved-local
3427− (weld (check ~.types-proj-reserved-local src-538 `tok-538 `tre-538) (check-module-types ~.types-proj-reserved-local ~[%tests %golden ~.types-proj-reserved-local %source %jibb] src-538 `typ-538 ~ ~ ~))
3435+ (weld (check ~.types-proj-reserved-local src-539 `tok-539 `tre-539) (check-module-types ~.types-proj-reserved-local ~[%tests %golden ~.types-proj-reserved-local %source %jibb] src-539 `typ-539 ~ ~ ~))
34283436++ test-types-proj-reserved-local-mold
3429− (weld (check ~.types-proj-reserved-local-mold src-539 `tok-539 `tre-539) (check-module-types ~.types-proj-reserved-local-mold ~[%tests %golden ~.types-proj-reserved-local-mold %source %jibb] src-539 `typ-539 ~ ~ ~))
3437+ (weld (check ~.types-proj-reserved-local-mold src-540 `tok-540 `tre-540) (check-module-types ~.types-proj-reserved-local-mold ~[%tests %golden ~.types-proj-reserved-local-mold %source %jibb] src-540 `typ-540 ~ ~ ~))
34303438++ test-types-proj-reserved-mark-import
3431− (weld (check ~.types-proj-reserved-mark-import src-540 `tok-540 `tre-540) (check-module-types ~.types-proj-reserved-mark-import ~[%tests %golden ~.types-proj-reserved-mark-import %source %jibb] src-540 `typ-540 ~ ~ ~))
3439+ (weld (check ~.types-proj-reserved-mark-import src-541 `tok-541 `tre-541) (check-module-types ~.types-proj-reserved-mark-import ~[%tests %golden ~.types-proj-reserved-mark-import %source %jibb] src-541 `typ-541 ~ ~ ~))
34323440++ test-types-proj-reserved-mold
3433− (weld (check ~.types-proj-reserved-mold src-541 `tok-541 `tre-541) (check-module-types ~.types-proj-reserved-mold ~[%tests %golden ~.types-proj-reserved-mold %source %jibb] src-541 `typ-541 ~ ~ ~))
3441+ (weld (check ~.types-proj-reserved-mold src-542 `tok-542 `tre-542) (check-module-types ~.types-proj-reserved-mold ~[%tests %golden ~.types-proj-reserved-mold %source %jibb] src-542 `typ-542 ~ ~ ~))
34343442++ test-types-proj-reserved-pattern
3435− (weld (check ~.types-proj-reserved-pattern src-542 `tok-542 `tre-542) (check-module-types ~.types-proj-reserved-pattern ~[%tests %golden ~.types-proj-reserved-pattern %source %jibb] src-542 `typ-542 ~ ~ ~))
3443+ (weld (check ~.types-proj-reserved-pattern src-543 `tok-543 `tre-543) (check-module-types ~.types-proj-reserved-pattern ~[%tests %golden ~.types-proj-reserved-pattern %source %jibb] src-543 `typ-543 ~ ~ ~))
34363444++ test-types-proj-reserved-positive
3437− (weld (check ~.types-proj-reserved-positive src-543 `tok-543 `tre-543) (check-module-types ~.types-proj-reserved-positive ~[%tests %golden ~.types-proj-reserved-positive %source %jibb] src-543 `typ-543 ~ ~ ~))
3445+ (weld (check ~.types-proj-reserved-positive src-544 `tok-544 `tre-544) (check-module-types ~.types-proj-reserved-positive ~[%tests %golden ~.types-proj-reserved-positive %source %jibb] src-544 `typ-544 ~ ~ ~))
34383446++ test-types-proj-reserved-sample
3439− (weld (check ~.types-proj-reserved-sample src-544 `tok-544 `tre-544) (check-module-types ~.types-proj-reserved-sample ~[%tests %golden ~.types-proj-reserved-sample %source %jibb] src-544 `typ-544 ~ ~ ~))
3447+ (weld (check ~.types-proj-reserved-sample src-545 `tok-545 `tre-545) (check-module-types ~.types-proj-reserved-sample ~[%tests %golden ~.types-proj-reserved-sample %source %jibb] src-545 `typ-545 ~ ~ ~))
34403448++ test-types-proj-reserved-sur-import
3441− (weld (check ~.types-proj-reserved-sur-import src-545 `tok-545 `tre-545) (check-module-types ~.types-proj-reserved-sur-import ~[%tests %golden ~.types-proj-reserved-sur-import %source %jibb] src-545 `typ-545 ~ ~ ~))
3449+ (weld (check ~.types-proj-reserved-sur-import src-546 `tok-546 `tre-546) (check-module-types ~.types-proj-reserved-sur-import ~[%tests %golden ~.types-proj-reserved-sur-import %source %jibb] src-546 `typ-546 ~ ~ ~))
34423450++ test-types-proj-reserved-unused-pattern
3443− (weld (check ~.types-proj-reserved-unused-pattern src-546 `tok-546 `tre-546) (check-module-types ~.types-proj-reserved-unused-pattern ~[%tests %golden ~.types-proj-reserved-unused-pattern %source %jibb] src-546 `typ-546 ~ ~ ~))
3451+ (weld (check ~.types-proj-reserved-unused-pattern src-547 `tok-547 `tre-547) (check-module-types ~.types-proj-reserved-unused-pattern ~[%tests %golden ~.types-proj-reserved-unused-pattern %source %jibb] src-547 `typ-547 ~ ~ ~))
34443452++ test-types-proj-reserved-unused-sample
3445− (weld (check ~.types-proj-reserved-unused-sample src-547 `tok-547 `tre-547) (check-module-types ~.types-proj-reserved-unused-sample ~[%tests %golden ~.types-proj-reserved-unused-sample %source %jibb] src-547 `typ-547 ~ ~ ~))
3453+ (weld (check ~.types-proj-reserved-unused-sample src-548 `tok-548 `tre-548) (check-module-types ~.types-proj-reserved-unused-sample ~[%tests %golden ~.types-proj-reserved-unused-sample %source %jibb] src-548 `typ-548 ~ ~ ~))
34463454++ test-types-proj-reserved-unused-value
3447− (weld (check ~.types-proj-reserved-unused-value src-548 `tok-548 `tre-548) (check-module-types ~.types-proj-reserved-unused-value ~[%tests %golden ~.types-proj-reserved-unused-value %source %jibb] src-548 `typ-548 ~ ~ ~))
3455+ (weld (check ~.types-proj-reserved-unused-value src-549 `tok-549 `tre-549) (check-module-types ~.types-proj-reserved-unused-value ~[%tests %golden ~.types-proj-reserved-unused-value %source %jibb] src-549 `typ-549 ~ ~ ~))
34483456++ test-types-proj-reserved-value
3449− (weld (check ~.types-proj-reserved-value src-549 `tok-549 `tre-549) (check-module-types ~.types-proj-reserved-value ~[%tests %golden ~.types-proj-reserved-value %source %jibb] src-549 `typ-549 ~ ~ ~))
3457+ (weld (check ~.types-proj-reserved-value src-550 `tok-550 `tre-550) (check-module-types ~.types-proj-reserved-value ~[%tests %golden ~.types-proj-reserved-value %source %jibb] src-550 `typ-550 ~ ~ ~))
34503458++ test-types-proj-single-duplicate
3451− (weld (check ~.types-proj-single-duplicate src-550 `tok-550 `tre-550) (check-module-types ~.types-proj-single-duplicate ~[%tests %golden ~.types-proj-single-duplicate %source %jibb] src-550 `typ-550 ~ ~ ~))
3459+ (weld (check ~.types-proj-single-duplicate src-551 `tok-551 `tre-551) (check-module-types ~.types-proj-single-duplicate ~[%tests %golden ~.types-proj-single-duplicate %source %jibb] src-551 `typ-551 ~ ~ ~))
34523460++ test-types-proj-single-field
3453− (weld (check ~.types-proj-single-field src-551 `tok-551 `tre-551) (check-module-types ~.types-proj-single-field ~[%tests %golden ~.types-proj-single-field %source %jibb] src-551 `typ-551 ~ ~ ~))
3461+ (weld (check ~.types-proj-single-field src-552 `tok-552 `tre-552) (check-module-types ~.types-proj-single-field ~[%tests %golden ~.types-proj-single-field %source %jibb] src-552 `typ-552 ~ ~ ~))
34543462++ test-types-proj-single-sample-face
3455− (weld (check ~.types-proj-single-sample-face src-552 `tok-552 `tre-552) (check-module-types ~.types-proj-single-sample-face ~[%tests %golden ~.types-proj-single-sample-face %source %jibb] src-552 `typ-552 ~ ~ ~))
3463+ (weld (check ~.types-proj-single-sample-face src-553 `tok-553 `tre-553) (check-module-types ~.types-proj-single-sample-face ~[%tests %golden ~.types-proj-single-sample-face %source %jibb] src-553 `typ-553 ~ ~ ~))
34563464++ test-types-proj-single-wrapped
3457− (weld (check ~.types-proj-single-wrapped src-553 `tok-553 `tre-553) (check-module-types ~.types-proj-single-wrapped ~[%tests %golden ~.types-proj-single-wrapped %source %jibb] src-553 `typ-553 ~ ~ ~))
3465+ (weld (check ~.types-proj-single-wrapped src-554 `tok-554 `tre-554) (check-module-types ~.types-proj-single-wrapped ~[%tests %golden ~.types-proj-single-wrapped %source %jibb] src-554 `typ-554 ~ ~ ~))
34583466++ test-types-qath-faces
3459− (weld (check ~.types-qath-faces src-554 `tok-554 `tre-554) (check-module-types ~.types-qath-faces ~[%tests %golden ~.types-qath-faces %source %jibb] src-554 `typ-554 ~ ~ ~))
3467+ (weld (check ~.types-qath-faces src-555 `tok-555 `tre-555) (check-module-types ~.types-qath-faces ~[%tests %golden ~.types-qath-faces %source %jibb] src-555 `typ-555 ~ ~ ~))
34603468++ test-types-qath-holes
3461− (weld (check ~.types-qath-holes src-555 `tok-555 `tre-555) (check-module-types ~.types-qath-holes ~[%tests %golden ~.types-qath-holes %source %jibb] src-555 `typ-555 ~ ~ ~))
3469+ (weld (check ~.types-qath-holes src-556 `tok-556 `tre-556) (check-module-types ~.types-qath-holes ~[%tests %golden ~.types-qath-holes %source %jibb] src-556 `typ-556 ~ ~ ~))
34623470++ test-types-qath-module-identity
3463− (weld (weld (check ~.types-qath-module-identity src-556 `tok-556 `tre-556) (check-module-types ~.types-qath-module-identity ~[%tests %golden ~.types-qath-module-identity %source %jibb] src-556 `typ-556 ~ ~ ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-556-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-556-2] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-556-3]])) (check-module-trees ~.types-qath-module-identity `mtre-556 ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-556-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-556-2] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-556-3]]))
3471+ (weld (weld (check ~.types-qath-module-identity src-557 `tok-557 `tre-557) (check-module-types ~.types-qath-module-identity ~[%tests %golden ~.types-qath-module-identity %source %jibb] src-557 `typ-557 ~ ~ ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-557-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-557-2] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-557-3]])) (check-module-trees ~.types-qath-module-identity `mtre-557 ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-557-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-557-2] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-557-3]]))
34643472++ test-types-qath-recursive
3465− (weld (check ~.types-qath-recursive src-557 `tok-557 `tre-557) (check-module-types ~.types-qath-recursive ~[%tests %golden ~.types-qath-recursive %source %jibb] src-557 `typ-557 ~ ~ ~))
3473+ (weld (check ~.types-qath-recursive src-558 `tok-558 `tre-558) (check-module-types ~.types-qath-recursive ~[%tests %golden ~.types-qath-recursive %source %jibb] src-558 `typ-558 ~ ~ ~))
34663474++ test-types-record-bound-variable
3467− (weld (check ~.types-record-bound-variable src-558 `tok-558 `tre-558) (check-types ~.types-record-bound-variable ~[%tests %golden ~.types-record-bound-variable %source %jibb] src-558 `typ-558))
3475+ (weld (check ~.types-record-bound-variable src-559 `tok-559 `tre-559) (check-types ~.types-record-bound-variable ~[%tests %golden ~.types-record-bound-variable %source %jibb] src-559 `typ-559))
34683476++ test-types-record-cast-context
3469− (weld (check ~.types-record-cast-context src-559 `tok-559 `tre-559) (check-module-types ~.types-record-cast-context ~[%tests %golden ~.types-record-cast-context %source %jibb] src-559 `typ-559 ~ ~ ~))
3477+ (weld (check ~.types-record-cast-context src-560 `tok-560 `tre-560) (check-module-types ~.types-record-cast-context ~[%tests %golden ~.types-record-cast-context %source %jibb] src-560 `typ-560 ~ ~ ~))
34703478++ test-types-record-change
3471− (weld (check ~.types-record-change src-560 `tok-560 `tre-560) (check-module-types ~.types-record-change ~[%tests %golden ~.types-record-change %source %jibb] src-560 `typ-560 ~ ~ ~))
3479+ (weld (check ~.types-record-change src-561 `tok-561 `tre-561) (check-module-types ~.types-record-change ~[%tests %golden ~.types-record-change %source %jibb] src-561 `typ-561 ~ ~ ~))
34723480++ test-types-record-change-generic
3473− (weld (check ~.types-record-change-generic src-561 `tok-561 `tre-561) (check-module-types ~.types-record-change-generic ~[%tests %golden ~.types-record-change-generic %source %jibb] src-561 `typ-561 ~ ~ ~))
3481+ (weld (check ~.types-record-change-generic src-562 `tok-562 `tre-562) (check-module-types ~.types-record-change-generic ~[%tests %golden ~.types-record-change-generic %source %jibb] src-562 `typ-562 ~ ~ ~))
34743482++ test-types-record-faces
3475− (weld (check ~.types-record-faces src-562 `tok-562 `tre-562) (check-types ~.types-record-faces ~[%tests %golden ~.types-record-faces %source %jibb] src-562 `typ-562))
3483+ (weld (check ~.types-record-faces src-563 `tok-563 `tre-563) (check-types ~.types-record-faces ~[%tests %golden ~.types-record-faces %source %jibb] src-563 `typ-563))
34763484++ test-types-record-field-edit-separate
3477− (weld (check ~.types-record-field-edit-separate src-563 `tok-563 `tre-563) (check-types ~.types-record-field-edit-separate ~[%tests %golden ~.types-record-field-edit-separate %source %jibb] src-563 `typ-563))
3485+ (weld (check ~.types-record-field-edit-separate src-564 `tok-564 `tre-564) (check-types ~.types-record-field-edit-separate ~[%tests %golden ~.types-record-field-edit-separate %source %jibb] src-564 `typ-564))
34783486++ test-types-record-field-expr-duplicate
3479− (weld (check ~.types-record-field-expr-duplicate src-564 `tok-564 `tre-564) (check-types ~.types-record-field-expr-duplicate ~[%tests %golden ~.types-record-field-expr-duplicate %source %jibb] src-564 `typ-564))
3487+ (weld (check ~.types-record-field-expr-duplicate src-565 `tok-565 `tre-565) (check-types ~.types-record-field-expr-duplicate ~[%tests %golden ~.types-record-field-expr-duplicate %source %jibb] src-565 `typ-565))
34803488++ test-types-record-field-expr-separate
3481− (weld (check ~.types-record-field-expr-separate src-565 `tok-565 `tre-565) (check-types ~.types-record-field-expr-separate ~[%tests %golden ~.types-record-field-expr-separate %source %jibb] src-565 `typ-565))
3489+ (weld (check ~.types-record-field-expr-separate src-566 `tok-566 `tre-566) (check-types ~.types-record-field-expr-separate ~[%tests %golden ~.types-record-field-expr-separate %source %jibb] src-566 `typ-566))
34823490++ test-types-record-field-module-reachable
3483− (weld (weld (check ~.types-record-field-module-reachable src-566 `tok-566 `tre-566) (check-module-types ~.types-record-field-module-reachable ~[%tests %golden ~.types-record-field-module-reachable %source %jibb] src-566 `typ-566 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-566-1]])) (check-module-trees ~.types-record-field-module-reachable `mtre-566 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-566-1]]))
3491+ (weld (weld (check ~.types-record-field-module-reachable src-567 `tok-567 `tre-567) (check-module-types ~.types-record-field-module-reachable ~[%tests %golden ~.types-record-field-module-reachable %source %jibb] src-567 `typ-567 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-567-1]])) (check-module-trees ~.types-record-field-module-reachable `mtre-567 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-567-1]]))
34843492++ test-types-record-field-module-unused
3485− (weld (weld (check ~.types-record-field-module-unused src-567 `tok-567 `tre-567) (check-module-types ~.types-record-field-module-unused ~[%tests %golden ~.types-record-field-module-unused %source %jibb] src-567 `typ-567 ~ ~ ~[['/ui/good.jibb' ~[~.ui ~.good ~.jibb] mod-567-1] ['/ui/unused.jibb' ~[~.ui ~.unused ~.jibb] mod-567-2]])) (check-module-trees ~.types-record-field-module-unused `mtre-567 ~[['/ui/good.jibb' ~[~.ui ~.good ~.jibb] mod-567-1] ['/ui/unused.jibb' ~[~.ui ~.unused ~.jibb] mod-567-2]]))
3493+ (weld (weld (check ~.types-record-field-module-unused src-568 `tok-568 `tre-568) (check-module-types ~.types-record-field-module-unused ~[%tests %golden ~.types-record-field-module-unused %source %jibb] src-568 `typ-568 ~ ~ ~[['/ui/good.jibb' ~[~.ui ~.good ~.jibb] mod-568-1] ['/ui/unused.jibb' ~[~.ui ~.unused ~.jibb] mod-568-2]])) (check-module-trees ~.types-record-field-module-unused `mtre-568 ~[['/ui/good.jibb' ~[~.ui ~.good ~.jibb] mod-568-1] ['/ui/unused.jibb' ~[~.ui ~.unused ~.jibb] mod-568-2]]))
34863494++ test-types-record-field-nested-mold
3487− (weld (check ~.types-record-field-nested-mold src-568 `tok-568 `tre-568) (check-types ~.types-record-field-nested-mold ~[%tests %golden ~.types-record-field-nested-mold %source %jibb] src-568 `typ-568))
3495+ (weld (check ~.types-record-field-nested-mold src-569 `tok-569 `tre-569) (check-types ~.types-record-field-nested-mold ~[%tests %golden ~.types-record-field-nested-mold %source %jibb] src-569 `typ-569))
34883496++ test-types-record-field-outer-inner
3489− (weld (check ~.types-record-field-outer-inner src-569 `tok-569 `tre-569) (check-types ~.types-record-field-outer-inner ~[%tests %golden ~.types-record-field-outer-inner %source %jibb] src-569 `typ-569))
3497+ (weld (check ~.types-record-field-outer-inner src-570 `tok-570 `tre-570) (check-types ~.types-record-field-outer-inner ~[%tests %golden ~.types-record-field-outer-inner %source %jibb] src-570 `typ-570))
34903498++ test-types-record-field-sample-duplicate
3491− (weld (check ~.types-record-field-sample-duplicate src-570 `tok-570 `tre-570) (check-types ~.types-record-field-sample-duplicate ~[%tests %golden ~.types-record-field-sample-duplicate %source %jibb] src-570 `typ-570))
3499+ (weld (check ~.types-record-field-sample-duplicate src-571 `tok-571 `tre-571) (check-types ~.types-record-field-sample-duplicate ~[%tests %golden ~.types-record-field-sample-duplicate %source %jibb] src-571 `typ-571))
34923500++ test-types-record-field-separate-molds
3493− (weld (check ~.types-record-field-separate-molds src-571 `tok-571 `tre-571) (check-types ~.types-record-field-separate-molds ~[%tests %golden ~.types-record-field-separate-molds %source %jibb] src-571 `typ-571))
3501+ (weld (check ~.types-record-field-separate-molds src-572 `tok-572 `tre-572) (check-types ~.types-record-field-separate-molds ~[%tests %golden ~.types-record-field-separate-molds %source %jibb] src-572 `typ-572))
34943502++ test-types-record-field-unused-mold
3495− (weld (check ~.types-record-field-unused-mold src-572 `tok-572 `tre-572) (check-types ~.types-record-field-unused-mold ~[%tests %golden ~.types-record-field-unused-mold %source %jibb] src-572 `typ-572))
3503+ (weld (check ~.types-record-field-unused-mold src-573 `tok-573 `tre-573) (check-types ~.types-record-field-unused-mold ~[%tests %golden ~.types-record-field-unused-mold %source %jibb] src-573 `typ-573))
34963504++ test-types-record-import
3497− (weld (weld (check ~.types-record-import src-573 `tok-573 `tre-573) (check-module-types ~.types-record-import ~[%tests %golden ~.types-record-import %source %jibb] src-573 `typ-573 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-573-1]])) (check-module-trees ~.types-record-import `mtre-573 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-573-1]]))
3505+ (weld (weld (check ~.types-record-import src-574 `tok-574 `tre-574) (check-module-types ~.types-record-import ~[%tests %golden ~.types-record-import %source %jibb] src-574 `typ-574 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-574-1]])) (check-module-trees ~.types-record-import `mtre-574 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-574-1]]))
34983506++ test-types-record-local-scheme
3499− (weld (check ~.types-record-local-scheme src-574 `tok-574 `tre-574) (check-types ~.types-record-local-scheme ~[%tests %golden ~.types-record-local-scheme %source %jibb] src-574 `typ-574))
3507+ (weld (check ~.types-record-local-scheme src-575 `tok-575 `tre-575) (check-types ~.types-record-local-scheme ~[%tests %golden ~.types-record-local-scheme %source %jibb] src-575 `typ-575))
35003508++ test-types-record-nested
3501− (weld (check ~.types-record-nested src-575 `tok-575 `tre-575) (check-types ~.types-record-nested ~[%tests %golden ~.types-record-nested %source %jibb] src-575 `typ-575))
3509+ (weld (check ~.types-record-nested src-576 `tok-576 `tre-576) (check-types ~.types-record-nested ~[%tests %golden ~.types-record-nested %source %jibb] src-576 `typ-576))
35023510++ test-types-record-to-tuple
3503− (weld (check ~.types-record-to-tuple src-576 `tok-576 `tre-576) (check-types ~.types-record-to-tuple ~[%tests %golden ~.types-record-to-tuple %source %jibb] src-576 `typ-576))
3511+ (weld (check ~.types-record-to-tuple src-577 `tok-577 `tre-577) (check-types ~.types-record-to-tuple ~[%tests %golden ~.types-record-to-tuple %source %jibb] src-577 `typ-577))
35043512++ test-types-recursion-scc-failures
3505− (weld (check ~.types-recursion-scc-failures src-577 `tok-577 `tre-577) (check-module-types ~.types-recursion-scc-failures ~[%tests %golden ~.types-recursion-scc-failures %source %jibb] src-577 `typ-577 ~ ~ ~))
3513+ (weld (check ~.types-recursion-scc-failures src-578 `tok-578 `tre-578) (check-module-types ~.types-recursion-scc-failures ~[%tests %golden ~.types-recursion-scc-failures %source %jibb] src-578 `typ-578 ~ ~ ~))
35063514++ test-types-recursion-scc-groups
3507− (weld (check ~.types-recursion-scc-groups src-578 `tok-578 `tre-578) (check-module-types ~.types-recursion-scc-groups ~[%tests %golden ~.types-recursion-scc-groups %source %jibb] src-578 `typ-578 ~ ~ ~))
3515+ (weld (check ~.types-recursion-scc-groups src-579 `tok-579 `tre-579) (check-module-types ~.types-recursion-scc-groups ~[%tests %golden ~.types-recursion-scc-groups %source %jibb] src-579 `typ-579 ~ ~ ~))
35083516++ test-types-recursion-scc-import
3509− (weld (weld (check ~.types-recursion-scc-import src-579 `tok-579 `tre-579) (check-module-types ~.types-recursion-scc-import ~[%tests %golden ~.types-recursion-scc-import %source %jibb] src-579 `typ-579 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-579-1]])) (check-module-trees ~.types-recursion-scc-import `mtre-579 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-579-1]]))
3517+ (weld (weld (check ~.types-recursion-scc-import src-580 `tok-580 `tre-580) (check-module-types ~.types-recursion-scc-import ~[%tests %golden ~.types-recursion-scc-import %source %jibb] src-580 `typ-580 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-580-1]])) (check-module-trees ~.types-recursion-scc-import `mtre-580 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-580-1]]))
35103518++ test-types-recursion-scc-import-bad
3511− (weld (weld (check ~.types-recursion-scc-import-bad src-580 `tok-580 `tre-580) (check-module-types ~.types-recursion-scc-import-bad ~[%tests %golden ~.types-recursion-scc-import-bad %source %jibb] src-580 `typ-580 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-580-1]])) (check-module-trees ~.types-recursion-scc-import-bad `mtre-580 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-580-1]]))
3519+ (weld (weld (check ~.types-recursion-scc-import-bad src-581 `tok-581 `tre-581) (check-module-types ~.types-recursion-scc-import-bad ~[%tests %golden ~.types-recursion-scc-import-bad %source %jibb] src-581 `typ-581 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-581-1]])) (check-module-trees ~.types-recursion-scc-import-bad `mtre-581 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-581-1]]))
35123520++ test-types-recursion-scc-local
3513− (weld (check ~.types-recursion-scc-local src-581 `tok-581 `tre-581) (check-module-types ~.types-recursion-scc-local ~[%tests %golden ~.types-recursion-scc-local %source %jibb] src-581 `typ-581 ~ ~ ~))
3521+ (weld (check ~.types-recursion-scc-local src-582 `tok-582 `tre-582) (check-module-types ~.types-recursion-scc-local ~[%tests %golden ~.types-recursion-scc-local %source %jibb] src-582 `typ-582 ~ ~ ~))
35143522++ test-types-recursion-scc-order
3515− (weld (check ~.types-recursion-scc-order src-582 `tok-582 `tre-582) (check-module-types ~.types-recursion-scc-order ~[%tests %golden ~.types-recursion-scc-order %source %jibb] src-582 `typ-582 ~ ~ ~))
3523+ (weld (check ~.types-recursion-scc-order src-583 `tok-583 `tre-583) (check-module-types ~.types-recursion-scc-order ~[%tests %golden ~.types-recursion-scc-order %source %jibb] src-583 `typ-583 ~ ~ ~))
35163524++ test-types-recursion-scc-shadow
3517− (weld (check ~.types-recursion-scc-shadow src-583 `tok-583 `tre-583) (check-module-types ~.types-recursion-scc-shadow ~[%tests %golden ~.types-recursion-scc-shadow %source %jibb] src-583 `typ-583 ~ ~ ~))
3525+ (weld (check ~.types-recursion-scc-shadow src-584 `tok-584 `tre-584) (check-module-types ~.types-recursion-scc-shadow ~[%tests %golden ~.types-recursion-scc-shadow %source %jibb] src-584 `typ-584 ~ ~ ~))
35183526++ test-types-recursive-branch
3519− (weld (check ~.types-recursive-branch src-584 `tok-584 `tre-584) (check-module-types ~.types-recursive-branch ~[%tests %golden ~.types-recursive-branch %source %jibb] src-584 `typ-584 ~ ~ ~))
3527+ (weld (check ~.types-recursive-branch src-585 `tok-585 `tre-585) (check-module-types ~.types-recursive-branch ~[%tests %golden ~.types-recursive-branch %source %jibb] src-585 `typ-585 ~ ~ ~))
35203528++ test-types-recursive-gate
3521− (weld (check ~.types-recursive-gate src-585 `tok-585 `tre-585) (check-types ~.types-recursive-gate ~[%tests %golden ~.types-recursive-gate %source %jibb] src-585 `typ-585))
3529+ (weld (check ~.types-recursive-gate src-586 `tok-586 `tre-586) (check-types ~.types-recursive-gate ~[%tests %golden ~.types-recursive-gate %source %jibb] src-586 `typ-586))
35223530++ test-types-recursive-sample
3523− (weld (check ~.types-recursive-sample src-586 `tok-586 `tre-586) (check-types ~.types-recursive-sample ~[%tests %golden ~.types-recursive-sample %source %jibb] src-586 `typ-586))
3531+ (weld (check ~.types-recursive-sample src-587 `tok-587 `tre-587) (check-types ~.types-recursive-sample ~[%tests %golden ~.types-recursive-sample %source %jibb] src-587 `typ-587))
35243532++ test-types-scope-library-poke
3525− (weld (check-at ~.types-scope-library-poke ~[~.ui ~.lib ~.library ~.jibb] src-587 `tok-587 `tre-587) (check-module-types ~.types-scope-library-poke ~[~.ui ~.lib ~.library ~.jibb] src-587 `typ-587 ~ ~ ~))
3533+ (weld (check-at ~.types-scope-library-poke ~[~.ui ~.lib ~.library ~.jibb] src-588 `tok-588 `tre-588) (check-module-types ~.types-scope-library-poke ~[~.ui ~.lib ~.library ~.jibb] src-588 `typ-588 ~ ~ ~))
35263534++ test-types-scope-root-api
3527− (weld (check-at ~.types-scope-root-api ~[~.ui ~.api ~.todo ~.jibb] src-588 `tok-588 `tre-588) (check-module-types ~.types-scope-root-api ~[~.ui ~.api ~.todo ~.jibb] src-588 `typ-588 ~ ~ ~))
3535+ (weld (check-at ~.types-scope-root-api ~[~.ui ~.api ~.todo ~.jibb] src-589 `tok-589 `tre-589) (check-module-types ~.types-scope-root-api ~[~.ui ~.api ~.todo ~.jibb] src-589 `typ-589 ~ ~ ~))
35283536++ test-types-scope-store-duplicate
3529− (weld (check-at ~.types-scope-store-duplicate ~[~.ui ~.stores ~.cart ~.jibb] src-589 `tok-589 `tre-589) (check-module-types ~.types-scope-store-duplicate ~[~.ui ~.stores ~.cart ~.jibb] src-589 `typ-589 ~ ~ ~))
3537+ (weld (check-at ~.types-scope-store-duplicate ~[~.ui ~.stores ~.cart ~.jibb] src-590 `tok-590 `tre-590) (check-module-types ~.types-scope-store-duplicate ~[~.ui ~.stores ~.cart ~.jibb] src-590 `typ-590 ~ ~ ~))
35303538++ test-types-scope-store-shadow
3531− (weld (check-at ~.types-scope-store-shadow ~[~.ui ~.stores ~.cart ~.jibb] src-590 `tok-590 `tre-590) (check-module-types ~.types-scope-store-shadow ~[~.ui ~.stores ~.cart ~.jibb] src-590 `typ-590 ~ ~ ~))
3539+ (weld (check-at ~.types-scope-store-shadow ~[~.ui ~.stores ~.cart ~.jibb] src-591 `tok-591 `tre-591) (check-module-types ~.types-scope-store-shadow ~[~.ui ~.stores ~.cart ~.jibb] src-591 `typ-591 ~ ~ ~))
35323540++ test-types-single-case-pattern
3533− (weld (check ~.types-single-case-pattern src-591 `tok-591 `tre-591) (check-module-types ~.types-single-case-pattern ~[%tests %golden ~.types-single-case-pattern %source %jibb] src-591 `typ-591 ~ ~ ~))
3541+ (weld (check ~.types-single-case-pattern src-592 `tok-592 `tre-592) (check-module-types ~.types-single-case-pattern ~[%tests %golden ~.types-single-case-pattern %source %jibb] src-592 `typ-592 ~ ~ ~))
35343542++ test-types-string-interpolation
3535− (weld (check ~.types-string-interpolation src-592 `tok-592 `tre-592) (check-module-types ~.types-string-interpolation ~[%tests %golden ~.types-string-interpolation %source %jibb] src-592 `typ-592 ~ ~ ~))
3543+ (weld (check ~.types-string-interpolation src-593 `tok-593 `tre-593) (check-module-types ~.types-string-interpolation ~[%tests %golden ~.types-string-interpolation %source %jibb] src-593 `typ-593 ~ ~ ~))
35363544++ test-types-tuple-context
3537− (weld (check ~.types-tuple-context src-593 `tok-593 `tre-593) (check-module-types ~.types-tuple-context ~[%tests %golden ~.types-tuple-context %source %jibb] src-593 `typ-593 ~ ~ ~))
3545+ (weld (check ~.types-tuple-context src-594 `tok-594 `tre-594) (check-module-types ~.types-tuple-context ~[%tests %golden ~.types-tuple-context %source %jibb] src-594 `typ-594 ~ ~ ~))
35383546++ test-types-tuple-context-nested
3539− (weld (check ~.types-tuple-context-nested src-594 `tok-594 `tre-594) (check-module-types ~.types-tuple-context-nested ~[%tests %golden ~.types-tuple-context-nested %source %jibb] src-594 `typ-594 ~ ~ ~))
3547+ (weld (check ~.types-tuple-context-nested src-595 `tok-595 `tre-595) (check-module-types ~.types-tuple-context-nested ~[%tests %golden ~.types-tuple-context-nested %source %jibb] src-595 `typ-595 ~ ~ ~))
35403548++ test-types-union-alias
3541− (weld (check ~.types-union-alias src-595 `tok-595 `tre-595) (check-types ~.types-union-alias ~[%tests %golden ~.types-union-alias %source %jibb] src-595 `typ-595))
3549+ (weld (check ~.types-union-alias src-596 `tok-596 `tre-596) (check-types ~.types-union-alias ~[%tests %golden ~.types-union-alias %source %jibb] src-596 `typ-596))
35423550++ test-types-union-branch-context
3543− (weld (check ~.types-union-branch-context src-596 `tok-596 `tre-596) (check-types ~.types-union-branch-context ~[%tests %golden ~.types-union-branch-context %source %jibb] src-596 `typ-596))
3551+ (weld (check ~.types-union-branch-context src-597 `tok-597 `tre-597) (check-types ~.types-union-branch-context ~[%tests %golden ~.types-union-branch-context %source %jibb] src-597 `typ-597))
35443552++ test-types-union-branch-pending
3545− (weld (check ~.types-union-branch-pending src-597 `tok-597 `tre-597) (check-types ~.types-union-branch-pending ~[%tests %golden ~.types-union-branch-pending %source %jibb] src-597 `typ-597))
3553+ (weld (check ~.types-union-branch-pending src-598 `tok-598 `tre-598) (check-types ~.types-union-branch-pending ~[%tests %golden ~.types-union-branch-pending %source %jibb] src-598 `typ-598))
35463554++ test-types-union-constructor-shape
3547− (weld (check ~.types-union-constructor-shape src-598 `tok-598 `tre-598) (check-types ~.types-union-constructor-shape ~[%tests %golden ~.types-union-constructor-shape %source %jibb] src-598 `typ-598))
3555+ (weld (check ~.types-union-constructor-shape src-599 `tok-599 `tre-599) (check-types ~.types-union-constructor-shape ~[%tests %golden ~.types-union-constructor-shape %source %jibb] src-599 `typ-599))
35483556++ test-types-union-context-flow
3549− (weld (check ~.types-union-context-flow src-599 `tok-599 `tre-599) (check-types ~.types-union-context-flow ~[%tests %golden ~.types-union-context-flow %source %jibb] src-599 `typ-599))
3557+ (weld (check ~.types-union-context-flow src-600 `tok-600 `tre-600) (check-types ~.types-union-context-flow ~[%tests %golden ~.types-union-context-flow %source %jibb] src-600 `typ-600))
35503558++ test-types-union-finite
3551− (weld (check ~.types-union-finite src-600 `tok-600 `tre-600) (check-module-types ~.types-union-finite ~[%tests %golden ~.types-union-finite %source %jibb] src-600 `typ-600 ~ ~ ~))
3559+ (weld (check ~.types-union-finite src-601 `tok-601 `tre-601) (check-module-types ~.types-union-finite ~[%tests %golden ~.types-union-finite %source %jibb] src-601 `typ-601 ~ ~ ~))
35523560++ test-types-union-finite-context
3553− (weld (check ~.types-union-finite-context src-601 `tok-601 `tre-601) (check-module-types ~.types-union-finite-context ~[%tests %golden ~.types-union-finite-context %source %jibb] src-601 `typ-601 ~ ~ ~))
3561+ (weld (check ~.types-union-finite-context src-602 `tok-602 `tre-602) (check-module-types ~.types-union-finite-context ~[%tests %golden ~.types-union-finite-context %source %jibb] src-602 `typ-602 ~ ~ ~))
35543562++ test-types-union-finite-generic
3555− (weld (check ~.types-union-finite-generic src-602 `tok-602 `tre-602) (check-module-types ~.types-union-finite-generic ~[%tests %golden ~.types-union-finite-generic %source %jibb] src-602 `typ-602 ~ ~ ~))
3563+ (weld (check ~.types-union-finite-generic src-603 `tok-603 `tre-603) (check-module-types ~.types-union-finite-generic ~[%tests %golden ~.types-union-finite-generic %source %jibb] src-603 `typ-603 ~ ~ ~))
35563564++ test-types-union-finite-limit
3557− (weld (check ~.types-union-finite-limit src-603 `tok-603 `tre-603) (check-module-types ~.types-union-finite-limit ~[%tests %golden ~.types-union-finite-limit %source %jibb] src-603 `typ-603 ~ ~ ~))
3565+ (weld (check ~.types-union-finite-limit src-604 `tok-604 `tre-604) (check-module-types ~.types-union-finite-limit ~[%tests %golden ~.types-union-finite-limit %source %jibb] src-604 `typ-604 ~ ~ ~))
35583566++ test-types-union-import
3559− (weld (weld (check ~.types-union-import src-604 `tok-604 `tre-604) (check-module-types ~.types-union-import ~[%tests %golden ~.types-union-import %source %jibb] src-604 `typ-604 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-604-1]])) (check-module-trees ~.types-union-import `mtre-604 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-604-1]]))
3567+ (weld (weld (check ~.types-union-import src-605 `tok-605 `tre-605) (check-module-types ~.types-union-import ~[%tests %golden ~.types-union-import %source %jibb] src-605 `typ-605 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-605-1]])) (check-module-trees ~.types-union-import `mtre-605 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-605-1]]))
35603568++ test-types-union-local-pending
3561− (weld (check ~.types-union-local-pending src-605 `tok-605 `tre-605) (check-types ~.types-union-local-pending ~[%tests %golden ~.types-union-local-pending %source %jibb] src-605 `typ-605))
3569+ (weld (check ~.types-union-local-pending src-606 `tok-606 `tre-606) (check-types ~.types-union-local-pending ~[%tests %golden ~.types-union-local-pending %source %jibb] src-606 `typ-606))
35623570++ test-types-union-nonwing-subject
3563− (weld (check ~.types-union-nonwing-subject src-606 `tok-606 `tre-606) (check-module-types ~.types-union-nonwing-subject ~[%tests %golden ~.types-union-nonwing-subject %source %jibb] src-606 `typ-606 ~ ~ ~))
3571+ (weld (check ~.types-union-nonwing-subject src-607 `tok-607 `tre-607) (check-module-types ~.types-union-nonwing-subject ~[%tests %golden ~.types-union-nonwing-subject %source %jibb] src-607 `typ-607 ~ ~ ~))
35643572++ test-types-union-overlap
3565− (weld (check ~.types-union-overlap src-607 `tok-607 `tre-607) (check-types ~.types-union-overlap ~[%tests %golden ~.types-union-overlap %source %jibb] src-607 `typ-607))
3573+ (weld (check ~.types-union-overlap src-608 `tok-608 `tre-608) (check-types ~.types-union-overlap ~[%tests %golden ~.types-union-overlap %source %jibb] src-608 `typ-608))
35663574++ test-types-union-overlap-nested
3567− (weld (check ~.types-union-overlap-nested src-608 `tok-608 `tre-608) (check-types ~.types-union-overlap-nested ~[%tests %golden ~.types-union-overlap-nested %source %jibb] src-608 `typ-608))
3575+ (weld (check ~.types-union-overlap-nested src-609 `tok-609 `tre-609) (check-types ~.types-union-overlap-nested ~[%tests %golden ~.types-union-overlap-nested %source %jibb] src-609 `typ-609))
35683576++ test-types-union-pattern-result-context
3569− (weld (check ~.types-union-pattern-result-context src-609 `tok-609 `tre-609) (check-module-types ~.types-union-pattern-result-context ~[%tests %golden ~.types-union-pattern-result-context %source %jibb] src-609 `typ-609 ~ ~ ~))
3577+ (weld (check ~.types-union-pattern-result-context src-610 `tok-610 `tre-610) (check-module-types ~.types-union-pattern-result-context ~[%tests %golden ~.types-union-pattern-result-context %source %jibb] src-610 `typ-610 ~ ~ ~))
35703578++ test-types-union-pattern-result-controls
3571− (weld (check ~.types-union-pattern-result-controls src-610 `tok-610 `tre-610) (check-module-types ~.types-union-pattern-result-controls ~[%tests %golden ~.types-union-pattern-result-controls %source %jibb] src-610 `typ-610 ~ ~ ~))
3579+ (weld (check ~.types-union-pattern-result-controls src-611 `tok-611 `tre-611) (check-module-types ~.types-union-pattern-result-controls ~[%tests %golden ~.types-union-pattern-result-controls %source %jibb] src-611 `typ-611 ~ ~ ~))
35723580++ test-types-union-patterns
3573− (weld (check ~.types-union-patterns src-611 `tok-611 `tre-611) (check-module-types ~.types-union-patterns ~[%tests %golden ~.types-union-patterns %source %jibb] src-611 `typ-611 ~ ~ ~))
3581+ (weld (check ~.types-union-patterns src-612 `tok-612 `tre-612) (check-module-types ~.types-union-patterns ~[%tests %golden ~.types-union-patterns %source %jibb] src-612 `typ-612 ~ ~ ~))
35743582++ test-types-union-patterns-generic
3575− (weld (check ~.types-union-patterns-generic src-612 `tok-612 `tre-612) (check-module-types ~.types-union-patterns-generic ~[%tests %golden ~.types-union-patterns-generic %source %jibb] src-612 `typ-612 ~ ~ ~))
3583+ (weld (check ~.types-union-patterns-generic src-613 `tok-613 `tre-613) (check-module-types ~.types-union-patterns-generic ~[%tests %golden ~.types-union-patterns-generic %source %jibb] src-613 `typ-613 ~ ~ ~))
35763584++ test-types-union-patterns-import
3577− (weld (weld (check ~.types-union-patterns-import src-613 `tok-613 `tre-613) (check-module-types ~.types-union-patterns-import ~[%tests %golden ~.types-union-patterns-import %source %jibb] src-613 `typ-613 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-613-1]])) (check-module-trees ~.types-union-patterns-import `mtre-613 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-613-1]]))
3585+ (weld (weld (check ~.types-union-patterns-import src-614 `tok-614 `tre-614) (check-module-types ~.types-union-patterns-import ~[%tests %golden ~.types-union-patterns-import %source %jibb] src-614 `typ-614 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-614-1]])) (check-module-trees ~.types-union-patterns-import `mtre-614 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-614-1]]))
35783586++ test-types-union-phantom-generic
3579− (weld (check ~.types-union-phantom-generic src-614 `tok-614 `tre-614) (check-types ~.types-union-phantom-generic ~[%tests %golden ~.types-union-phantom-generic %source %jibb] src-614 `typ-614))
3587+ (weld (check ~.types-union-phantom-generic src-615 `tok-615 `tre-615) (check-types ~.types-union-phantom-generic ~[%tests %golden ~.types-union-phantom-generic %source %jibb] src-615 `typ-615))
35803588++ test-types-union-polymorphic-identity
3581− (weld (weld (check ~.types-union-polymorphic-identity src-615 `tok-615 `tre-615) (check-module-types ~.types-union-polymorphic-identity ~[%tests %golden ~.types-union-polymorphic-identity %source %jibb] src-615 `typ-615 ~ ~ ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-615-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-615-2]])) (check-module-trees ~.types-union-polymorphic-identity `mtre-615 ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-615-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-615-2]]))
3589+ (weld (weld (check ~.types-union-polymorphic-identity src-616 `tok-616 `tre-616) (check-module-types ~.types-union-polymorphic-identity ~[%tests %golden ~.types-union-polymorphic-identity %source %jibb] src-616 `typ-616 ~ ~ ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-616-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-616-2]])) (check-module-trees ~.types-union-polymorphic-identity `mtre-616 ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-616-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-616-2]]))
35823590++ test-types-union-print-cross-namespace
3583− (weld (weld (check ~.types-union-print-cross-namespace src-616 `tok-616 `tre-616) (check-module-types ~.types-union-print-cross-namespace ~[%tests %golden ~.types-union-print-cross-namespace %source %jibb] src-616 `typ-616 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-616-1]])) (check-module-trees ~.types-union-print-cross-namespace `mtre-616 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-616-1]]))
3591+ (weld (weld (check ~.types-union-print-cross-namespace src-617 `tok-617 `tre-617) (check-module-types ~.types-union-print-cross-namespace ~[%tests %golden ~.types-union-print-cross-namespace %source %jibb] src-617 `typ-617 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-617-1]])) (check-module-trees ~.types-union-print-cross-namespace `mtre-617 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-617-1]]))
35843592++ test-types-union-print-distinct
3585− (weld (weld (check ~.types-union-print-distinct src-617 `tok-617 `tre-617) (check-module-types ~.types-union-print-distinct ~[%tests %golden ~.types-union-print-distinct %source %jibb] src-617 `typ-617 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-617-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-617-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-617-3]])) (check-module-trees ~.types-union-print-distinct `mtre-617 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-617-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-617-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-617-3]]))
3593+ (weld (weld (check ~.types-union-print-distinct src-618 `tok-618 `tre-618) (check-module-types ~.types-union-print-distinct ~[%tests %golden ~.types-union-print-distinct %source %jibb] src-618 `typ-618 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-618-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-618-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-618-3]])) (check-module-trees ~.types-union-print-distinct `mtre-618 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-618-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-618-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-618-3]]))
35863594++ test-types-union-print-escape
3587− (weld (check ~.types-union-print-escape src-618 `tok-618 `tre-618) (check-types ~.types-union-print-escape ~[%tests %golden ~.types-union-print-escape %source %jibb] src-618 `typ-618))
3595+ (weld (check ~.types-union-print-escape src-619 `tok-619 `tre-619) (check-types ~.types-union-print-escape ~[%tests %golden ~.types-union-print-escape %source %jibb] src-619 `typ-619))
35883596++ test-types-union-print-local
3589− (weld (check ~.types-union-print-local src-619 `tok-619 `tre-619) (check-types ~.types-union-print-local ~[%tests %golden ~.types-union-print-local %source %jibb] src-619 `typ-619))
3597+ (weld (check ~.types-union-print-local src-620 `tok-620 `tre-620) (check-types ~.types-union-print-local ~[%tests %golden ~.types-union-print-local %source %jibb] src-620 `typ-620))
35903598++ test-types-union-print-nested
3591− (weld (check ~.types-union-print-nested src-620 `tok-620 `tre-620) (check-types ~.types-union-print-nested ~[%tests %golden ~.types-union-print-nested %source %jibb] src-620 `typ-620))
3599+ (weld (check ~.types-union-print-nested src-621 `tok-621 `tre-621) (check-types ~.types-union-print-nested ~[%tests %golden ~.types-union-print-nested %source %jibb] src-621 `typ-621))
35923600++ test-types-union-print-same-origin
3593− (weld (weld (check ~.types-union-print-same-origin src-621 `tok-621 `tre-621) (check-module-types ~.types-union-print-same-origin ~[%tests %golden ~.types-union-print-same-origin %source %jibb] src-621 `typ-621 ~ ~ ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-621-1]])) (check-module-trees ~.types-union-print-same-origin `mtre-621 ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-621-1]]))
3601+ (weld (weld (check ~.types-union-print-same-origin src-622 `tok-622 `tre-622) (check-module-types ~.types-union-print-same-origin ~[%tests %golden ~.types-union-print-same-origin %source %jibb] src-622 `typ-622 ~ ~ ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-622-1]])) (check-module-trees ~.types-union-print-same-origin `mtre-622 ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-622-1]]))
35943602++ test-types-union-print-transitive
3595− (weld (weld (check ~.types-union-print-transitive src-622 `tok-622 `tre-622) (check-module-types ~.types-union-print-transitive ~[%tests %golden ~.types-union-print-transitive %source %jibb] src-622 `typ-622 ~ ~ ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-622-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-622-2]])) (check-module-trees ~.types-union-print-transitive `mtre-622 ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-622-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-622-2]]))
3603+ (weld (weld (check ~.types-union-print-transitive src-623 `tok-623 `tre-623) (check-module-types ~.types-union-print-transitive ~[%tests %golden ~.types-union-print-transitive %source %jibb] src-623 `typ-623 ~ ~ ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-623-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-623-2]])) (check-module-trees ~.types-union-print-transitive `mtre-623 ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-623-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-623-2]]))
35963604++ test-types-union-singleton
3597− (weld (check ~.types-union-singleton src-623 `tok-623 `tre-623) (check-types ~.types-union-singleton ~[%tests %golden ~.types-union-singleton %source %jibb] src-623 `typ-623))
3605+ (weld (check ~.types-union-singleton src-624 `tok-624 `tre-624) (check-types ~.types-union-singleton ~[%tests %golden ~.types-union-singleton %source %jibb] src-624 `typ-624))
35983606++ test-types-union-tag-atoms
3599− (weld (check ~.types-union-tag-atoms src-624 `tok-624 `tre-624) (check-types ~.types-union-tag-atoms ~[%tests %golden ~.types-union-tag-atoms %source %jibb] src-624 `typ-624))
3607+ (weld (check ~.types-union-tag-atoms src-625 `tok-625 `tre-625) (check-types ~.types-union-tag-atoms ~[%tests %golden ~.types-union-tag-atoms %source %jibb] src-625 `typ-625))
36003608++ test-types-union-tags
3601− (weld (check ~.types-union-tags src-625 `tok-625 `tre-625) (check-types ~.types-union-tags ~[%tests %golden ~.types-union-tags %source %jibb] src-625 `typ-625))
3609+ (weld (check ~.types-union-tags src-626 `tok-626 `tre-626) (check-types ~.types-union-tags ~[%tests %golden ~.types-union-tags %source %jibb] src-626 `typ-626))
36023610++ test-types-union-unresolved
3603− (weld (check ~.types-union-unresolved src-626 `tok-626 `tre-626) (check-types ~.types-union-unresolved ~[%tests %golden ~.types-union-unresolved %source %jibb] src-626 `typ-626))
3611+ (weld (check ~.types-union-unresolved src-627 `tok-627 `tre-627) (check-types ~.types-union-unresolved ~[%tests %golden ~.types-union-unresolved %source %jibb] src-627 `typ-627))
36043612++ test-types-union-unresolved-flow
3605− (weld (check ~.types-union-unresolved-flow src-627 `tok-627 `tre-627) (check-types ~.types-union-unresolved-flow ~[%tests %golden ~.types-union-unresolved-flow %source %jibb] src-627 `typ-627))
3613+ (weld (check ~.types-union-unresolved-flow src-628 `tok-628 `tre-628) (check-types ~.types-union-unresolved-flow ~[%tests %golden ~.types-union-unresolved-flow %source %jibb] src-628 `typ-628))
36063614++ test-types-unit-construction
3607− (weld (check ~.types-unit-construction src-628 `tok-628 `tre-628) (check-module-types ~.types-unit-construction ~[%tests %golden ~.types-unit-construction %source %jibb] src-628 `typ-628 ~ ~ ~))
3615+ (weld (check ~.types-unit-construction src-629 `tok-629 `tre-629) (check-module-types ~.types-unit-construction ~[%tests %golden ~.types-unit-construction %source %jibb] src-629 `typ-629 ~ ~ ~))
36083616++ test-types-unit-context
3609− (weld (check ~.types-unit-context src-629 `tok-629 `tre-629) (check-module-types ~.types-unit-context ~[%tests %golden ~.types-unit-context %source %jibb] src-629 `typ-629 ~ ~ ~))
3617+ (weld (check ~.types-unit-context src-630 `tok-630 `tre-630) (check-module-types ~.types-unit-context ~[%tests %golden ~.types-unit-context %source %jibb] src-630 `typ-630 ~ ~ ~))
36103618++ test-types-unit-patterns
3611− (weld (check ~.types-unit-patterns src-630 `tok-630 `tre-630) (check-types ~.types-unit-patterns ~[%tests %golden ~.types-unit-patterns %source %jibb] src-630 `typ-630))
3619+ (weld (check ~.types-unit-patterns src-631 `tok-631 `tre-631) (check-types ~.types-unit-patterns ~[%tests %golden ~.types-unit-patterns %source %jibb] src-631 `typ-631))
36123620++ test-types-value-cycle-shadow
3613− (weld (check ~.types-value-cycle-shadow src-631 `tok-631 `tre-631) (check-module-types ~.types-value-cycle-shadow ~[%tests %golden ~.types-value-cycle-shadow %source %jibb] src-631 `typ-631 ~ ~ ~))
3621+ (weld (check ~.types-value-cycle-shadow src-632 `tok-632 `tre-632) (check-module-types ~.types-value-cycle-shadow ~[%tests %golden ~.types-value-cycle-shadow %source %jibb] src-632 `typ-632 ~ ~ ~))
36143622++ test-types-value-cycle-unsupported
3615− (weld (check ~.types-value-cycle-unsupported src-632 `tok-632 `tre-632) (check-module-types ~.types-value-cycle-unsupported ~[%tests %golden ~.types-value-cycle-unsupported %source %jibb] src-632 `typ-632 ~ ~ ~))
3623+ (weld (check ~.types-value-cycle-unsupported src-633 `tok-633 `tre-633) (check-module-types ~.types-value-cycle-unsupported ~[%tests %golden ~.types-value-cycle-unsupported %source %jibb] src-633 `typ-633 ~ ~ ~))
36163624++ test-types-value-cycles
3617− (weld (check ~.types-value-cycles src-633 `tok-633 `tre-633) (check-module-types ~.types-value-cycles ~[%tests %golden ~.types-value-cycles %source %jibb] src-633 `typ-633 ~ ~ ~))
3625+ (weld (check ~.types-value-cycles src-634 `tok-634 `tre-634) (check-module-types ~.types-value-cycles ~[%tests %golden ~.types-value-cycles %source %jibb] src-634 `typ-634 ~ ~ ~))
36183626::
36193627:: +check: run golden:jibb on a case and compare both outputs
36203628::
tools/testdata/ship-selftest+2−1
@@ -304,7 +304,8 @@ def generator_checks(tmp):
304304 check('default assembly keeps the repository test programs',
305305 {'tests/lib/jibb.hoon', 'tests/lib/jibb-import.hoon',
306306 'tests/lib/jibb-typecheck.hoon', 'tests/lib/jibb-bridge.hoon',
307− 'tests/lib/jibb-arithmetic-guards.hoon'}
307+ 'tests/lib/jibb-arithmetic-guards.hoon',
308+ 'tests/lib/jibb-generic-alias.hoon'}
308309 <= normal_tests, sorted(normal_tests))
309310 for label, kwargs in (('custom library', {'lib': STUB}),
310311 ('custom goldens', {'golden': CASES}),
tools/type-generic-alias-testnew file+28
@@ -0,0 +1,28 @@
1+#!/usr/bin/env python3
2+"""Run the shared source-backed generic alias guards 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-generic-alias.hoon').read_text()
14+tests = tests[tests.index('\n|%\n') + 1:]
15+expression = ('=/ jibb .\n=/ suite\n' + tests +
16+ '\n=/ failures=(list tape) generic-alias-errors:suite\n'
17+ "^- @t\n?~ failures 'generic alias guards passed'\n"
18+ '(of-wain:format (turn failures crip))\n')
19+with tempfile.TemporaryDirectory(prefix='jibb-generic-alias-') as tmp:
20+ program = Path(tmp) / 'guards.hoon'
21+ program.write_text(expression)
22+ result = subprocess.run([str(root / 'tools/hoon'), '--lib', args.lib, '--raw', '-f', str(program)], stdout=subprocess.PIPE)
23+if result.returncode:
24+ sys.exit(result.returncode)
25+if result.stdout != b'generic alias guards passed\n':
26+ sys.stderr.buffer.write(result.stdout)
27+ sys.exit(1)
28+print('generic alias guards passed')