on master help sign in
Add source-backed transparent requests

Define transparent pure, agent and store request cases in the internal prelude and re-export ask with the Jibb-written pure gate. Derive the internal list and unit dependencies from validated public source while preserving independent private molds when templates are unavailable. Exercise supported constructors, matching and provenance under eval and on the ship. Request execution, derived gates, watchability proofs and full checking remain unfinished.

commit3f55af78f4bcde0854bb5ff4e005b34fc79145d0 authoriko <mail@iko.soy> dateSat 31 Oct 2026, 09:01 (7 hours ago) parentf0f6954
23 files changed+2112−627
docs/compiler.md+3−1 docs/development.md+2 docs/prelude-inventory.md+2−2 docs/status.md+13−9 jibb-dev/lib/jibb.hoon+54−5 jibb-dev/lib/jibb/internal.jibb+11 jibb-dev/lib/jibb/prelude.jibb+3 tests/golden/prelude-unit-list-transforms/about.txt+1−1 tests/golden/prelude-unit-list-transforms/source.jibb+3 tests/golden/prelude-unit-list-transforms/tokens.txt+28−1 tests/golden/prelude-unit-list-transforms/tree.txt+10−1 tests/golden/prelude-unit-list-transforms/types.txt+2 tests/golden/types-prelude-ask/about.txt+4 tests/golden/types-prelude-ask/modules.txt+1 tests/golden/types-prelude-ask/source.jibb+55 tests/golden/types-prelude-ask/tokens.txt+804 tests/golden/types-prelude-ask/tree.txt+335 tests/golden/types-prelude-ask/types.txt+41 tests/lib/jibb-ask-guards.hoon+63 tests/lib/jibb-qath-source.hoon+34−2 tests/lib/jibb.hoon+610−604 tools/testdata/ship-selftest+2−1 tools/type-ask-guards-test+31
docs/compiler.md+3−1
@@ -104,7 +104,7 @@ For a unique supported declaration, `+api-request-parts` retains that evidence w
104104
105105`+golden-types-with-prelude` accepts case-local Jibb module sources alongside `/sur` and mark results and the vendored prelude source. It resolves reachable ordinary library modules in dependency order, caching completed interfaces per invocation and exporting supported closed value schemes, direct generic unions, and simple or nonrecursive generic mold aliases whose bodies the fragment supports. It detects missing sources and cycles and rejects a dependency if its interface cannot be inferred by the fragment. Qualified wings can also read nested fields of an imported value, instantiating that value’s scheme independently at each use; missing, ambiguous and non-record fields remain unsupported.
106106
107−The supplied prelude is parsed into a **partial interface**: all names actually declared in the source are reserved, while only the molds and values this fragment can infer are available. These include the validated standard `list` mold, `unit`, the doc-exact generic `cmd` union, `same`, `fall`, `need`, `bond`, `lure`, `weld`, `snoc`, `turn`, `flop`, `rear`, `drop`, `skim`, `skip`, `murn`, `join`, `snip`, `levy`, `lien`, `cork`, `corl`, `cury` and `curr`; unsupported entries remain unavailable. The validated `list` is injected while the prelude’s gates are inferred; `weld` and `turn` use ordinary explicit result casts. An absent or altered `list` is not injected, and an altered declaration cannot leak through a direct or transitive mold alias. The same validated template is available when prelude mold aliases are prepared, so supported direct and transitive aliases can use it. A named prelude union keeps the fixed `/lib/jibb/prelude/jibb` origin in every module, and its name remains unqualified when a library exports a type containing it. The prelude inventory is incomplete, so reserving the names in this source does not establish complete shadowing coverage. The source-backed internal prelude defines `poke`, which the public prelude re-exports as an ordinary transparent type. A dedicated trusted internal-prelude preparation path also supplies private comparison and arithmetic schemes for the Jibb-written `gth`, `add` and `dec` wrappers. Ordinary module resolution rejects that primitive path even if a caller supplies a spoofed root or bundle. The low-level prepared interface is still trusted host input; the host must select the vendored sources and canonicalize paths. Primitive execution and shape-based jet recognition are not implemented. The source-backed `add` and `dec` wrappers use private arithmetic interfaces whose shared atom variable excludes loobeans; the partial checker preserves that constraint through supported inference and prints `where A is an atom other than ?`. Length and primitive execution remain unavailable. The partial checker resolves its supported source shape, preserves its public name, and rejects ordinary imports of the private internal path. An imported API with one mark and a matching direct `+$ poke` declaration can export a derived constructor and retain agent/mark metadata when the source representation has the supported agent case. Other API shapes, complete private module checking, root API and kind checking, stores, `ask`, `pure`, lowering and runtime effects remain unfinished. A possible store or root API declaring `+$ poke` reports that kind or scope needs unsupported inference; definite duplicate declarations and unrelated shadowing still report conflicts. Prepared interfaces and caches are trusted caller inputs; the future host and linker must ensure the private source validated during preparation is the same version used to lower derived constructors. A `*` payload may contain gates, so the fragment treats it conservatively; full gate-free checks are unfinished. The shared module-scope fixture compares the prepared and source-taking paths against the real prelude and a two-module golden under eval and on the ship.
107+The supplied prelude is parsed into a **partial interface**: all names actually declared in the source are reserved, while only the molds and values this fragment can infer are available. These include the validated standard `list` mold, `unit`, the doc-exact generic `cmd` union, `same`, `fall`, `need`, `bond`, `lure`, `weld`, `snoc`, `turn`, `flop`, `rear`, `drop`, `skim`, `skip`, `murn`, `join`, `snip`, `levy`, `lien`, `cork`, `corl`, `cury` and `curr`; unsupported entries remain unavailable. The validated `list` is injected while the prelude’s gates are inferred; `weld` and `turn` use ordinary explicit result casts. An absent or altered `list` is not injected, and an altered declaration cannot leak through a direct or transitive mold alias. The same validated template is available when prelude mold aliases are prepared, so supported direct and transitive aliases can use it. A named prelude union keeps the fixed `/lib/jibb/prelude/jibb` origin in every module, and its name remains unqualified when a library exports a type containing it. The prelude inventory is incomplete, so reserving the names in this source does not establish complete shadowing coverage. The source-backed internal prelude defines `poke`, which the public prelude re-exports as an ordinary transparent type. A dedicated trusted internal-prelude preparation path also supplies private comparison and arithmetic schemes for the Jibb-written `gth`, `add` and `dec` wrappers. Ordinary module resolution rejects that primitive path even if a caller supplies a spoofed root or bundle. The low-level prepared interface is still trusted host input; the host must select the vendored sources and canonicalize paths. Primitive execution and shape-based jet recognition are not implemented. The source-backed `add` and `dec` wrappers use private arithmetic interfaces whose shared atom variable excludes loobeans; the partial checker preserves that constraint through supported inference and prints `where A is an atom other than ?`. Length and primitive execution remain unavailable. The partial checker resolves its supported source shape, preserves its public name, and rejects ordinary imports of the private internal path. An imported API with one mark and a matching direct `+$ poke` declaration can export a derived constructor and retain agent/mark metadata when the source representation has the supported agent case. Other API shapes, complete private module checking, root API and kind checking, stores, complete `ask` and `pure` checking, lowering and runtime effects remain unfinished. A possible store or root API declaring `+$ poke` reports that kind or scope needs unsupported inference; definite duplicate declarations and unrelated shadowing still report conflicts. Prepared interfaces and caches are trusted caller inputs; the future host and linker must ensure the private source validated during preparation is the same version used to lower derived constructors. A `*` payload may contain gates, so the fragment treats it conservatively; full gate-free checks are unfinished. The shared module-scope fixture compares the prepared and source-taking paths against the real prelude and a two-module golden under eval and on the ship.
108108
109109`+prepare-prelude` derives the interface and declared-name inventory from the trusted vendored source. Hosts can reuse its result with `+golden-types-with-prepared-prelude`; they must pass the unchanged result of preparation, not an independently constructed value. Empty, malformed and duplicate-name prelude sources fail closed. The source-taking `+prepare-prelude` and `+golden-types-with-prelude` do not supply the internal module; their `-and-internal` or `-with-internal` variants accept its source for the supported private import. API files, modules with `main`, unsupported definitions and many other features remain outside this subset. The older `+golden-types-with-modules` entry point fails closed for imports because it has no prelude scope. None of these partial reports claims the module has been checked.
110110
@@ -119,6 +119,8 @@ And the design notes:
119119
120120Source-backed `like` maps the product of an existing `(like A)` result while retaining its position and remaining input. The partial checker infers supported positional calls by peeling only known sample-slot faces, retaining faces belonging to values; ambiguous variable-bound spines and nested face loss remain unsupported. Backend execution remains outstanding.
121121
122+The internal prelude defines transparent `(ask M)` cases for pure, agent and store requests; the public prelude re-exports it and defines `pure` in Jibb. Preparation supplies the private module with `list.core` and `unit.core` only from validated canonical public templates. If a template is unavailable, an isolated check validates the private molds, but only molds independently inferred against the actual available templates enter the interface. The partial checker infers supported constructors and exhaustive matches; absent versus present-zero state remains distinguishable. Agent and store receiver fields carry raw nouns and cannot prove schema validity or watchability. Generated decoders, source-bound runtime validation, derived request gates, `sub` and island watch checks remain unfinished. Public prelude preparation is partial: consumers must verify that `ask` was actually exported with its source origin.
123+
122124Public 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.
123125
124126The 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.
docs/development.md+2
@@ -72,6 +72,7 @@ git clone https://github.com/urbit/tools /root/src/tools
7272| `tools/type-generic-alias-test` | Runs public/private generic union alias and provenance guards under eval and on the ship |
7373| `tools/type-positional-face-guards-test` | Runs positional-call and nested-face guards under eval and on the ship |
7474| `tools/type-qath-guards-test` | Runs source-provenance, recursive unfolding and face guards under eval and on the ship |
75+| `tools/type-ask-guards-test` | Runs ask origin and canonical list/unit bootstrap guards under eval and on the ship |
7576| `tools/type-proj-guards-test` | Runs projection evidence, name-scope and dependency guards under eval and on the ship |
7677| `tools/type-arithmetic-guards-test` | Runs restricted atom-variable, unification and projection guards under eval and on the ship |
7778| `tools/type-module-scope-test` | Checks the partial module checker’s prelude boundary and duplicate-source rejection against `tests/type-module-scope/expected.txt` under eval |
@@ -102,6 +103,7 @@ tools/type-list-alias-test # prelude list-alias guards pass
102103tools/type-generic-alias-test # generic union alias guards pass
103104tools/type-positional-face-guards-test # positional sample face guards pass
104105tools/type-qath-guards-test # qath source and unfolding guards pass
106+tools/type-ask-guards-test # ask source and bootstrap guards pass
105107tools/type-proj-guards-test # projection evidence and scope guards pass
106108tools/type-arithmetic-guards-test # arithmetic constraint guards pass
107109tools/type-module-scope-test # module/prelude scope golden report matches
docs/prelude-inventory.md+2−2
@@ -4,9 +4,9 @@ This is a working inventory, not a completed prelude interface. It lists top-lev
44
55The source is the fake ship's `%base` `/sys/hoon.hoon` (Hoon version 135), read through Clay with `tools/ship scry /cx/=base=/sys/hoon/hoon --raw`. SHA-256: `ef538ced0877230f02ff86f9fb7a0abc6833bb1cf0e8675742b4d6ce478fcc92`. It differs in bytes from [upstream Hoon at the inspected commit](https://github.com/urbit/urbit/blob/5a187fededc4582a34fcd6055c67bb63e0917b94/pkg/arvo/sys/hoon.hoon); verify against the actual target ship when updating this inventory.
66
7−The vendored prelude defines `poke` in its private internal module and re-exports it as a transparent type. The partial checker resolves its supported source shape and a narrow imported API constructor; complete checking of the private body, other API shapes, effect lowering and runtime execution remain unfinished. `qath` is defined there as a transparent recursive knot sequence and re-exported by the public prelude; the partial checker supports its named identity, selected construction and matching, and static application-path literals. `ask` is not yet defined there.
7+The vendored prelude defines `poke` in its private internal module and re-exports it as a transparent type. The partial checker resolves its supported source shape and a narrow imported API constructor; complete checking of the private body, other API shapes, effect lowering and runtime execution remain unfinished. `qath` is defined there as a transparent recursive knot sequence and re-exported by the public prelude; the partial checker supports its named identity, selected construction and matching, and static application-path literals. The internal prelude also defines a transparent generic `ask` with pure, agent and store cases; the public prelude re-exports it and defines `pure`. Supported source construction and matching infer, while derived requests, source-schema validation and execution remain unfinished.
88
9−The prelude also declares the generic `cmd` mold exactly as in Overview, Effects. The partial checker infers its five cases and independent message types in the supported examples; complete module checking and backend validation remain outstanding. The related `sub` declaration awaits the source representation and checking of `ask`.
9+The prelude also declares the generic `cmd` mold exactly as in Overview, Effects. The partial checker infers its five cases and independent message types in the supported examples; complete module checking and backend validation remain outstanding. The related `sub` declaration awaits checking and the remaining request support.
1010
1111Hoon `+$` arms are marked **mold** below; `++` arms can be gates, doors or mold generators, and need individual inspection. Jibb's loobean `not` and Hoon's bitwise `not.bit` are distinct. Parser helpers outside 3g are excluded from the intended prelude except the specifically listed `slav` and `slaw`; the raw candidates below still need to be classified.
1212
docs/status.md+13−9
@@ -19,11 +19,13 @@ On 2026-10-30, @iko decided that Jibb drops `$?`, so a `+$` takes a union's case
1919
2020## Milestone 2: in progress
2121
22−The parser accepts `_` in mold positions and typed path segments, retaining each hole’s span. The partial checker tracks ordinary annotation holes through inference and requires each value or local definition to resolve its own holes before generalization. A hole can resolve to a concrete type or an explicitly written in-scope type variable; later uses cannot fix an unresolved definition. Independent decimal holes can default, but captured variables are not defaulted prematurely. Structural named molds with an unresolved hole report its site. Complex mold forms, inferred path segments, mutual recursive groups and other unsupported constraints still fail closed, and the fragment does not claim the module is checked. A syntax-tree pass rejects duplicate field names within each written record and reports both sites. The repository spec now records that `ask` and `qath` are transparent; `ask` remains outstanding.
22+The parser accepts `_` in mold positions and typed path segments, retaining each hole’s span. The partial checker tracks ordinary annotation holes through inference and requires each value or local definition to resolve its own holes before generalization. A hole can resolve to a concrete type or an explicitly written in-scope type variable; later uses cannot fix an unresolved definition. Independent decimal holes can default, but captured variables are not defaulted prematurely. Structural named molds with an unresolved hole report its site. Complex mold forms, inferred path segments, mutual recursive groups and other unsupported constraints still fail closed, and the fragment does not claim the module is checked. A syntax-tree pass rejects duplicate field names within each written record and reports both sites. The repository spec now records that `ask` and `qath` are transparent; complete request checking remains outstanding.
2323
2424On 2026-10-31, @iko chose explicit, result-directed `(proj record)` to construct a record with exactly the expected fields, and reserved `proj` against definitions and imports. The partial checker handles selected explicit calls with known, closed record types, records field-selection evidence for later lowering, and reserves the name across source bindings. Reordered fields, some nested contexts and several open or recursive cases remain unsupported; lowering and execution are not implemented yet. The field-order question remains open.
2525
26−The 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.
26+The 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.
27+
28+The internal prelude defines a transparent generic `ask` with pure, agent and store cases, re-exported alongside the Jibb-written `pure` gate. The partial checker infers supported constructors and exhaustive matches. Agent and store receivers operate on raw nouns; their fields do not prove schema validity or watchability. Derived requests, checked decoding, runtime validation, `sub` and island watch checking remain unimplemented.
2729
2830The API path analyzer can retain its source, complete prepared prelude, reader results and resolved dependencies as evidence, and classify a unique declaration as watchable, not watchable or unknown. It does not yet prove the provenance of request values or check island subscriptions. Prepared artifacts and reader results remain trusted host inputs.
2931
@@ -31,9 +33,9 @@ For a unique supported path declaration, the request-parts analysis derives orde
3133
3234A separate supporting-definition analysis infers supported ordinary API molds and values and resolves all declared marks, retaining their source and dependency evidence. It fails closed on unsupported helpers or marks; unused `/-` cores are not independently validated, and definitions depending on derived gates remain unsupported. This does not check or export the whole API.
3335
34−The repository spec records the subsequent type-system and prelude decisions, including the chosen `like` result-mapping gate; 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.
36+The repository spec records the subsequent type-system and prelude decisions, including the chosen `like` result-mapping gate; 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, complete `ask` and `pure` checking, 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 agreed shared-type `clap`; supported calls infer, while backend validation remains outstanding, and [prelude-inventory.md](prelude-inventory.md) is a source audit, not the complete inventory or signatures. The milestone remains unfinished.
3537
36−The shared prelude interface reserves every name present in the supplied vendored source and makes only supported inferred entries available, including `list`, `unit`, `same`, `fall`, `need`, `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.
38+The shared prelude interface reserves every name present in the supplied vendored source and makes only supported inferred entries available, including `list`, `unit`, `same`, `fall`, `need`, `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. The source-only `+prepare-prelude` rejects empty, malformed, conflicting or import-bearing source; `+prepare-prelude-with-internal` also accepts the supported private internal import. Prepared values are trusted and must come unchanged from the matching preparation arm. When canonical public list or unit templates are missing or altered, independently inferred private molds remain available, while molds that depend on those templates do not. 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.
3739
3840## Milestone 1: parser and mark
3941
@@ -51,8 +53,8 @@ What the plan asks for, and where it is:
5153
5254Besides the plan's list:
5355
54−- 636 golden cases: 416 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.
55−- The 636-case corpus passed under `urbit eval` in 86.0 s while other checks were running. The fake ship passed all 655 tests, including the importer, importer/checker and mark/checker bridges, module scope, unification, hole, qath, projection, arithmetic, generic-alias, positional-face and API-evidence guards, with 57.3 s for sync and 67.8 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.
56+- 637 golden cases: 417 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.
57+- The 637-case corpus passed under `urbit eval` in 86.7 s while other checks were running. The fake ship passed all 657 tests, including the importer, importer/checker and mark/checker bridges, module scope, unification, hole, qath, ask, projection, arithmetic, generic-alias, positional-face and API-evidence guards, with 59.8 s for sync and 71.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.
5658- `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.
5759- 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.
5860- 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).
@@ -141,14 +143,15 @@ Besides the plan's list:
141143| 640a442 | 2026-10-31 | Add the source-backed `like` result mapper and infer supported positional calls |
142144| 445a0a1 | 2026-10-31 | Retain source-backed API path evidence and classify declarations |
143145| f69493d | 2026-10-31 | Derive supported request components from API declarations |
144−| This change | 2026-10-31 | Analyze supported API helper definitions and declared marks |
146+| f0f6954 | 2026-10-31 | Analyze supported API helper definitions and declared marks |
147+| This change | 2026-10-31 | Define source-backed transparent ask and pure |
145148
146149## Checking it
147150
148151On a machine set up as [development.md](development.md) says:
149152
150153```
151−tools/golden # 636 cases under urbit eval
154+tools/golden # 637 cases under urbit eval
152155tools/importer-test # the Hoon importer fixture projection
153156tools/type-import-test # the importer/checker bridge fixture
154157tools/type-tlon-test # the real Tlon reader/checker fixture
@@ -161,6 +164,7 @@ tools/type-list-alias-test # prelude list-alias guards
161164tools/type-generic-alias-test # generic union alias guards
162165tools/type-positional-face-guards-test # positional sample face guards
163166tools/type-qath-guards-test # qath source and unfolding guards
167+tools/type-ask-guards-test # ask source and bootstrap guards
164168tools/type-proj-guards-test # projection evidence and scope guards
165169tools/type-module-scope-test # module and prelude scope fixture
166170tools/hoon check-spans-test # prints <<>> when the span checker works
@@ -168,7 +172,7 @@ tools/testdata/selftest # the tools themselves
168172tools/doc-blocks docs/spec # the doc's examples are golden cases
169173tools/ship start
170174tools/ship gen-tests --check # tests/lib/jibb.hoon is up to date
171−tools/ship test # the same 636 cases as -test arms on the ship
175+tools/ship test # the same 637 cases as -test arms on the ship
172176tools/testdata/ship-selftest
173177tools/testdata/clay-fixtures-selftest # scratch fixture cleanup without a ship
174178tools/ship check-commit # |commit stores .jibb files
jibb-dev/lib/jibb.hoon+54−5
@@ -10089,7 +10089,7 @@
1008910089 [~[[%raw-add plus] [%raw-dec minus] [%raw-gth greater]] ~ /lib/jibb/primitives/jibb ~ ~ ~ ~]
1009010090::
1009110091++ infer-private-internal
10092− |= src=@t
10092+ |= [src=@t public-source=@t]
1009310093 ^- (unit ifile)
1009410094 =/ at=path /lib/jibb/internal/jibb
1009510095 =/ parsed (parse at src)
@@ -10107,16 +10107,65 @@
1010710107 ?: (lien vals |=(n=term =(n %main))) ~
1010810108 =/ molds=imolds (collect-simple-molds defs.mod)
1010910109 =/ globals=(list term) (weld (import-binding-names imports.mod) vals)
10110− =/ js=ijimports ~[[face.i.imports.mod private-primitive-interface]]
10110+ :: The private source can use the public list and unit molds before the
10111+ :: prelude is otherwise prepared. Re-read the trusted public source here
10112+ :: and admit only its validated canonical templates; do not accept schemes
10113+ :: supplied independently by the caller.
10114+ =/ public=(each module error) (parse /lib/jibb/prelude/jibb public-source)
10115+ ?: ?=(%| -.public) ~
10116+ ?^ (duplicate-defs defs.p.public) ~
10117+ ?. (module-scope-valid p.public ~ ~) ~
10118+ =/ source-molds=imolds (collect-simple-molds defs.p.public)
10119+ =/ written-list=(unit shape) (find-simple-mold %list source-molds)
10120+ =/ source-list=(unit ischeme)
10121+ ?~ written-list ~
10122+ ?. (standard-prelude-list u.written-list) ~
10123+ `[[%collection %list ~[[%var 0]]] ~[0]]
10124+ :: Derive the public unit template from its actual source, then compare
10125+ :: the complete nominal template before making it available privately.
10126+ =/ unit-decl=(unit shape) (find-simple-mold %unit source-molds)
10127+ =/ source-unit=(unit ischeme)
10128+ ?~ unit-decl ~
10129+ =/ unit-molds=imolds ~[[%unit u.unit-decl]]
10130+ =/ unit-state=istate [0 ~ ~ ~ unit-molds ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ | /lib/jibb/prelude/jibb ~[%unit] ~ ~ 256 ~]
10131+ =/ unit-types=imold-types (partial-prelude-molds unit-molds unit-state)
10132+ =/ unit-iface=ifile [~ unit-types /lib/jibb/prelude/jibb ~ ~ ~ ~]
10133+ =/ found=(unit ischeme) (find-jibb-mold %unit unit-iface)
10134+ ?~ found ~
10135+ ?. (standard-unit-template u.found /lib/jibb/prelude/jibb) ~
10136+ found
10137+ =/ primitive=ifile private-primitive-interface
10138+ =? primitive ?=(^ source-list)
10139+ primitive(molds [[%list u.source-list] molds.primitive])
10140+ =? primitive ?=(^ source-unit)
10141+ primitive(molds [[%unit u.source-unit] molds.primitive])
10142+ =/ js=ijimports ~[[face.i.imports.mod primitive]]
1011110143 =/ reserved=(list term) ~[face.i.imports.mod]
1011210144 =/ top=(list term) (turn molds |=(m=[name=term body=shape] name.m))
1011310145 =/ state=istate [0 ~ ~ ~ molds globals ~ ~ ~ ~ js reserved ~ ~ ~ | at top ~ ~ 256 ~]
1011410146 =/ mts=(each imold-types @t) (module-mold-types molds state)
10115− ?: ?=(%| -.mts) ~
10147+ =/ usable=(unit imold-types)
10148+ ?: ?=(%& -.mts) `p.mts
10149+ :: Missing public templates may make an unrelated internal mold
10150+ :: unavailable. Validate all molds once with isolated canonical
10151+ :: templates before admitting only those inferred using the actual
10152+ :: source-backed templates. The proof interface is never exported.
10153+ ?. |(?=(~ source-list) ?=(~ source-unit)) ~
10154+ =/ nil=itype [%const [%null %n 0 '~']]
10155+ =/ canonical-unit=ischeme
10156+ [[%union ~[nil [%cell nil [%face %u [%var 0]]]] `[/lib/jibb/prelude/jibb %unit] `%unit ~[[%var 0]]] ~[0]]
10157+ =/ canonical-list=ischeme [[%collection %list ~[[%var 0]]] ~[0]]
10158+ =/ proof-primitive=ifile private-primitive-interface
10159+ =. molds.proof-primitive ~[[%list canonical-list] [%unit canonical-unit]]
10160+ =/ proof-imports=ijimports ~[[face.i.imports.mod proof-primitive]]
10161+ =/ proof=(each imold-types @t) (module-mold-types molds state(jimports proof-imports))
10162+ ?: ?=(%| -.proof) ~
10163+ `(partial-prelude-molds molds state)
10164+ ?~ usable ~
1011610165 =/ resolution=iresolved (resolve-groups defs.mod molds globals ~ ~ ~ ~ js reserved at ~)
1011710166 =/ env=ienv env.resolution
1011810167 ?. (module-values-complete defs.mod env) ~
10119− `[env p.mts at ~ artifacts.resolution ~ `src]
10168+ `[env u.usable at ~ artifacts.resolution ~ `src]
1012010169::
1012110170++ partial-prelude-interface-with-internal
1012210171 |= [src=@t internal-source=(unit @t)]
@@ -10132,7 +10181,7 @@
1013210181 ?. ?=([[%jibb *] ~] imports.p.parsed) ~
1013310182 ?. =(path.i.imports.p.parsed /lib/jibb/internal) ~
1013410183 ?~ internal-source ~
10135− =/ built=(unit ifile) (infer-private-internal u.internal-source)
10184+ =/ built=(unit ifile) (infer-private-internal u.internal-source src)
1013610185 ?~ built ~
1013710186 `~[[face.i.imports.p.parsed u.built]]
1013810187 ?~ private ~
jibb-dev/lib/jibb/internal.jibb+11
@@ -18,3 +18,14 @@
1818:: Private compiler primitive wrappers; execution is a later milestone.
1919++ add-atom |= args=[A A] (raw-add.core args)
2020++ dec-atom |= atom=A (raw-dec.core atom)
21+
22+:: Transparent request data. Identity and path fields are writable and do not
23+:: prove a schema or watchability. A future executor must bind them to checked
24+:: source evidence and validate facts and state; generated receivers must
25+:: decode before calling typed replies or folds. Runtime validation, watch
26+:: provenance and effect execution are not implemented.
27++$ agent-path (list.core @ta)
28++$ ask |$ [M]
29+ [%pure value=M]
30+ [%agent api=@t case=@tas agent=@tas path=agent-path scry=(unit.core agent-path) receive=$-([mark=@tas state=(unit.core *) fact=*] [state=* message=M])]
31+ [%store module=@t name=@tas receive=$-([state=(unit.core *) fact=*] [state=* message=M])]
jibb-dev/lib/jibb/prelude.jibb+3
@@ -334,3 +334,6 @@
334334++ gth |= args=[A A] (gth-atom.internal args)
335335++ add |= args=[A A] (add-atom.internal args)
336336++ dec |= atom=A (dec-atom.internal atom)
337+
338++$ ask |$ [M] (ask.internal M)
339+++ pure |= x=M ^- (ask M) [%pure x]
tests/golden/prelude-unit-list-transforms/about.txt+1−1
@@ -1,4 +1,4 @@
11source: Overview, Prelude: "The exported inventory includes all names from the Hoon library sections listed below, excluding the groups explicitly left out"; Hoon 2a includes `drop`, `bind`, `biff`, `flit`, `both`, `clap` and `clef`, and 2b includes `join`, `murn`, `rear`, `snip`, `skim`, `skip`, `levy`, `lien`, `roll` and `reel`. Folds take an explicit start.
2−tests: The complete current prelude parses, including unit-to-list conversion, unit mapping and flat mapping, a curried unit-producing filter, three ways to combine units, including `clap` with one shared value type, complementary list filters, present-product mapping, joining, last-item operations, all/any predicates, and left and right folds. The filters retain the order of their selected items.
2+tests: The complete current prelude parses, including unit-to-list conversion, unit mapping and flat mapping, a curried unit-producing filter, three ways to combine units, including `clap` with one shared value type, complementary list filters, present-product mapping, joining, last-item operations, all/any predicates, and left and right folds. The filters retain the order of their selected items. It also includes the source-backed `ask` re-export and `pure` gate.
33expect: parses
44expect-types: a partial inference report, not a checked module; unit and list gate typing is not complete
tests/golden/prelude-unit-list-transforms/source.jibb+3
@@ -334,3 +334,6 @@
334334++ gth |= args=[A A] (gth-atom.internal args)
335335++ add |= args=[A A] (add-atom.internal args)
336336++ dec |= atom=A (dec-atom.internal atom)
337+
338++$ ask |$ [M] (ask.internal M)
339+++ pure |= x=M ^- (ask M) [%pure x]
tests/golden/prelude-unit-list-transforms/tokens.txt+28−1
@@ -2204,4 +2204,31 @@
22042204336:19 tight wing dec-atom.internal
22052205336:37 name atom
22062206336:41 tight glyph )
2207−336:42 NEWLINE
2207+338:1 NEWLINE
2208+338:1 glyph +$
2209+338:4 name ask
2210+338:8 glyph |$
2211+338:11 glyph [
2212+338:12 tight tvar M
2213+338:13 tight glyph ]
2214+338:15 glyph (
2215+338:16 tight wing ask.internal
2216+338:29 tvar M
2217+338:30 tight glyph )
2218+339:1 NEWLINE
2219+339:1 glyph ++
2220+339:4 name pure
2221+339:9 glyph |=
2222+339:12 name x
2223+339:13 tight glyph =
2224+339:14 tight tvar M
2225+339:16 glyph ^-
2226+339:19 glyph (
2227+339:20 tight name ask
2228+339:24 tvar M
2229+339:25 tight glyph )
2230+339:27 glyph [
2231+339:28 tight lit %pure
2232+339:34 name x
2233+339:35 tight glyph ]
2234+339:36 NEWLINE
tests/golden/prelude-unit-list-transforms/tree.txt+10−1
@@ -960,4 +960,13 @@
960960 (gate 336:8
961961 (face 336:11 atom (tvar 336:16 A))
962962 (group 336:18
963− (call 336:19 (wing 336:19 dec-atom.internal) (wing 336:37 atom))))))
963+ (call 336:19 (wing 336:19 dec-atom.internal) (wing 336:37 atom)))))
964+ (mold 338:1 ask
965+ (generic 338:8 M
966+ (apply 338:15 ask.internal (tvar 338:29 M))))
967+ (value 339:1 pure
968+ (gate 339:9
969+ (face 339:12 x (tvar 339:14 M))
970+ (cast 339:16
971+ (apply 339:19 ask (tvar 339:24 M))
972+ (tuple 339:27 (lit 339:28 %pure) (wing 339:34 x))))))
tests/golden/prelude-unit-list-transforms/types.txt+2
@@ -68,3 +68,5 @@ partial inference; module not checked
6868++ gth: field access is not supported by partial inference
6969++ add: field access is not supported by partial inference
7070++ dec: field access is not supported by partial inference
71++$ ask: not checked
72+++ pure: cast mold is not supported by partial inference
tests/golden/types-prelude-ask/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: docs/spec/overview.md, Effects: "`poke`, `ask` and `qath` are transparent types defined in the internal prelude and re-exported normally. Derived gates and `pure` also construct requests."
2+tests: Source-backed pure values at independent and generic types, agent and store constructors, missing and exhaustive union branches, prior unit state, path identity, numeric defaulting and pending constraints. Receiver mismatches and unimplemented contexts remain unsupported; no runtime or watch validation is claimed.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-prelude-ask/modules.txtnew file+1
@@ -0,0 +1 @@
1+# Use the source-backed prelude.
tests/golden/types-prelude-ask/source.jibbnew file+55
@@ -0,0 +1,55 @@
1+++ pure-cord (pure "hello")
2+++ pure-ship (pure ~zod)
3+++ pure-generic |= x=A (pure x)
4+++ explicit-pure ^- (ask @t) [%pure "hello"]
5+++ wrong-pure ^- (ask @p) [%pure "hello"]
6+++ no-state ^- (unit *) ~
7+++ zero-state ^- (unit *) `0
8+++ no-ud ^- (unit @ud) ~
9+++ zero-ud ^- (unit @ud) `0
10+++ some-state ^- (unit *) `~zod
11+++ agent |= [p=(list @ta) rec=$-([mark=@tas state=(unit *) fact=*] [state=* message=@t])]
12+ ^- (ask @t) [%agent api="/ui/api/demo" case=%plain agent=%demo path=p scry=~ receive=rec]
13+++ scry-agent |= [p=(list @ta) rec=$-([mark=@tas state=(unit *) fact=*] [state=* message=@t])]
14+ ^- (ask @t) [%agent api="/ui/api/demo" case=%plain agent=%demo path=p scry=`p receive=rec]
15+++ wrong-agent |= [p=(list @ta) rec=$-([mark=@tas state=(unit *) fact=*] [state=* message=@p])]
16+ ^- (ask @t) [%agent api="/ui/api/demo" case=%plain agent=%demo path=p scry=~ receive=rec]
17+++ receiver |= input=[mark=@tas state=(unit *) fact=*]
18+ ?- state.input
19+ ~ [state=fact.input message="first"]
20+ [~ prior] [state=prior message="next"]
21+++ direct-path ^- (ask @t)
22+ [%agent api="/ui/api/demo" case=%plain agent=%demo path=~[%items] scry=~ receive=|=(input=[mark=@tas state=(unit *) fact=*] [state=0 message="ok"])]
23+++ fold-example |= [change=[%delta @ud] previous=@ud] previous
24+++ erased-fact-as-ud |= input=[mark=@tas state=(unit *) fact=*] ^- @ud fact.input
25+++ erased-state-as-ud |= input=[mark=@tas state=(unit *) fact=*]
26+ ?- state.input
27+ ~ 0
28+ [~ previous] ^- @ud previous
29+++ pure-number (pure 1)
30+++ pure-typed-number ^- (ask @ud) (pure 1)
31+++ pure-unresolved |= value=A
32+ ~& %pending
33+ (pure value)
34+++ identity-path |= value=path value
35+++ identity-qath |= value=qath value
36+++ path-as-qath |= value=path ^- qath value
37+++ qath-as-path |= value=qath ^- path value
38+++ path-consumer |= value=path value
39+++ application-path (path-consumer %/items)
40+++ ordinary-path ^- path ~[~.items]
41+++ ask-from-ordinary (agent ordinary-path |=(v=[mark=@tas state=(unit *) fact=*] [state=0 message="ok"]))
42+++ ask-from-qath (agent %/items |=(v=[mark=@tas state=(unit *) fact=*] [state=0 message="ok"]))
43+++ store |= rec=$-([state=(unit *) fact=*] [state=* message=@t])
44+ ^- (ask @t) [%store module="/ui/store/cart" name=%state receive=rec]
45+++ wrong-store |= rec=$-([state=(unit *) fact=*] [state=* message=@p])
46+ ^- (ask @t) [%store module="/ui/store/cart" name=%state receive=rec]
47+++ incomplete |= value=(ask @t)
48+ ?- value
49+ [%pure p] p
50+ [%agent a b c d e f] "agent"
51+++ complete |= value=(ask @t)
52+ ?- value
53+ [%pure p] p
54+ [%agent a b c d e f] "agent"
55+ [%store a b c] "store"
tests/golden/types-prelude-ask/tokens.txtnew file+804
@@ -0,0 +1,804 @@
1+1:1 glyph ++
2+1:4 name pure-cord
3+1:14 glyph (
4+1:15 tight name pure
5+1:20 str "hello"
6+1:27 tight glyph )
7+2:1 NEWLINE
8+2:1 glyph ++
9+2:4 name pure-ship
10+2:14 glyph (
11+2:15 tight name pure
12+2:20 lit ~zod
13+2:24 tight glyph )
14+3:1 NEWLINE
15+3:1 glyph ++
16+3:4 name pure-generic
17+3:17 glyph |=
18+3:20 name x
19+3:21 tight glyph =
20+3:22 tight tvar A
21+3:24 glyph (
22+3:25 tight name pure
23+3:30 name x
24+3:31 tight glyph )
25+4:1 NEWLINE
26+4:1 glyph ++
27+4:4 name explicit-pure
28+4:18 glyph ^-
29+4:21 glyph (
30+4:22 tight name ask
31+4:26 aura @t
32+4:28 tight glyph )
33+4:30 glyph [
34+4:31 tight lit %pure
35+4:37 str "hello"
36+4:44 tight glyph ]
37+5:1 NEWLINE
38+5:1 glyph ++
39+5:4 name wrong-pure
40+5:15 glyph ^-
41+5:18 glyph (
42+5:19 tight name ask
43+5:23 aura @p
44+5:25 tight glyph )
45+5:27 glyph [
46+5:28 tight lit %pure
47+5:34 str "hello"
48+5:41 tight glyph ]
49+6:1 NEWLINE
50+6:1 glyph ++
51+6:4 name no-state
52+6:13 glyph ^-
53+6:16 glyph (
54+6:17 tight name unit
55+6:22 glyph *
56+6:23 tight glyph )
57+6:25 lit ~
58+7:1 NEWLINE
59+7:1 glyph ++
60+7:4 name zero-state
61+7:15 glyph ^-
62+7:18 glyph (
63+7:19 tight name unit
64+7:24 glyph *
65+7:25 tight glyph )
66+7:27 glyph `
67+7:28 tight lit 0
68+8:1 NEWLINE
69+8:1 glyph ++
70+8:4 name no-ud
71+8:10 glyph ^-
72+8:13 glyph (
73+8:14 tight name unit
74+8:19 aura @ud
75+8:22 tight glyph )
76+8:24 lit ~
77+9:1 NEWLINE
78+9:1 glyph ++
79+9:4 name zero-ud
80+9:12 glyph ^-
81+9:15 glyph (
82+9:16 tight name unit
83+9:21 aura @ud
84+9:24 tight glyph )
85+9:26 glyph `
86+9:27 tight lit 0
87+10:1 NEWLINE
88+10:1 glyph ++
89+10:4 name some-state
90+10:15 glyph ^-
91+10:18 glyph (
92+10:19 tight name unit
93+10:24 glyph *
94+10:25 tight glyph )
95+10:27 glyph `
96+10:28 tight lit ~zod
97+11:1 NEWLINE
98+11:1 glyph ++
99+11:4 name agent
100+11:10 glyph |=
101+11:13 glyph [
102+11:14 tight name p
103+11:15 tight glyph =
104+11:16 tight glyph (
105+11:17 tight name list
106+11:22 aura @ta
107+11:25 tight glyph )
108+11:27 name rec
109+11:30 tight glyph =
110+11:31 tight glyph $-(
111+11:34 tight glyph [
112+11:35 tight name mark
113+11:39 tight glyph =
114+11:40 tight aura @tas
115+11:45 name state
116+11:50 tight glyph =
117+11:51 tight glyph (
118+11:52 tight name unit
119+11:57 glyph *
120+11:58 tight glyph )
121+11:60 name fact
122+11:64 tight glyph =
123+11:65 tight glyph *
124+11:66 tight glyph ]
125+11:68 glyph [
126+11:69 tight name state
127+11:74 tight glyph =
128+11:75 tight glyph *
129+11:77 name message
130+11:84 tight glyph =
131+11:85 tight aura @t
132+11:87 tight glyph ]
133+11:88 tight glyph )
134+11:89 tight glyph ]
135+12:3 INDENT
136+12:3 glyph ^-
137+12:6 glyph (
138+12:7 tight name ask
139+12:11 aura @t
140+12:13 tight glyph )
141+12:15 glyph [
142+12:16 tight lit %agent
143+12:23 name api
144+12:26 tight glyph =
145+12:27 tight str "/ui/api/demo"
146+12:42 name case
147+12:46 tight glyph =
148+12:47 tight lit %plain
149+12:54 name agent
150+12:59 tight glyph =
151+12:60 tight lit %demo
152+12:66 name path
153+12:70 tight glyph =
154+12:71 tight name p
155+12:73 name scry
156+12:77 tight glyph =
157+12:78 tight lit ~
158+12:80 name receive
159+12:87 tight glyph =
160+12:88 tight name rec
161+12:91 tight glyph ]
162+13:1 DEDENT
163+13:1 NEWLINE
164+13:1 glyph ++
165+13:4 name scry-agent
166+13:15 glyph |=
167+13:18 glyph [
168+13:19 tight name p
169+13:20 tight glyph =
170+13:21 tight glyph (
171+13:22 tight name list
172+13:27 aura @ta
173+13:30 tight glyph )
174+13:32 name rec
175+13:35 tight glyph =
176+13:36 tight glyph $-(
177+13:39 tight glyph [
178+13:40 tight name mark
179+13:44 tight glyph =
180+13:45 tight aura @tas
181+13:50 name state
182+13:55 tight glyph =
183+13:56 tight glyph (
184+13:57 tight name unit
185+13:62 glyph *
186+13:63 tight glyph )
187+13:65 name fact
188+13:69 tight glyph =
189+13:70 tight glyph *
190+13:71 tight glyph ]
191+13:73 glyph [
192+13:74 tight name state
193+13:79 tight glyph =
194+13:80 tight glyph *
195+13:82 name message
196+13:89 tight glyph =
197+13:90 tight aura @t
198+13:92 tight glyph ]
199+13:93 tight glyph )
200+13:94 tight glyph ]
201+14:3 INDENT
202+14:3 glyph ^-
203+14:6 glyph (
204+14:7 tight name ask
205+14:11 aura @t
206+14:13 tight glyph )
207+14:15 glyph [
208+14:16 tight lit %agent
209+14:23 name api
210+14:26 tight glyph =
211+14:27 tight str "/ui/api/demo"
212+14:42 name case
213+14:46 tight glyph =
214+14:47 tight lit %plain
215+14:54 name agent
216+14:59 tight glyph =
217+14:60 tight lit %demo
218+14:66 name path
219+14:70 tight glyph =
220+14:71 tight name p
221+14:73 name scry
222+14:77 tight glyph =
223+14:78 tight glyph `
224+14:79 tight name p
225+14:81 name receive
226+14:88 tight glyph =
227+14:89 tight name rec
228+14:92 tight glyph ]
229+15:1 DEDENT
230+15:1 NEWLINE
231+15:1 glyph ++
232+15:4 name wrong-agent
233+15:16 glyph |=
234+15:19 glyph [
235+15:20 tight name p
236+15:21 tight glyph =
237+15:22 tight glyph (
238+15:23 tight name list
239+15:28 aura @ta
240+15:31 tight glyph )
241+15:33 name rec
242+15:36 tight glyph =
243+15:37 tight glyph $-(
244+15:40 tight glyph [
245+15:41 tight name mark
246+15:45 tight glyph =
247+15:46 tight aura @tas
248+15:51 name state
249+15:56 tight glyph =
250+15:57 tight glyph (
251+15:58 tight name unit
252+15:63 glyph *
253+15:64 tight glyph )
254+15:66 name fact
255+15:70 tight glyph =
256+15:71 tight glyph *
257+15:72 tight glyph ]
258+15:74 glyph [
259+15:75 tight name state
260+15:80 tight glyph =
261+15:81 tight glyph *
262+15:83 name message
263+15:90 tight glyph =
264+15:91 tight aura @p
265+15:93 tight glyph ]
266+15:94 tight glyph )
267+15:95 tight glyph ]
268+16:3 INDENT
269+16:3 glyph ^-
270+16:6 glyph (
271+16:7 tight name ask
272+16:11 aura @t
273+16:13 tight glyph )
274+16:15 glyph [
275+16:16 tight lit %agent
276+16:23 name api
277+16:26 tight glyph =
278+16:27 tight str "/ui/api/demo"
279+16:42 name case
280+16:46 tight glyph =
281+16:47 tight lit %plain
282+16:54 name agent
283+16:59 tight glyph =
284+16:60 tight lit %demo
285+16:66 name path
286+16:70 tight glyph =
287+16:71 tight name p
288+16:73 name scry
289+16:77 tight glyph =
290+16:78 tight lit ~
291+16:80 name receive
292+16:87 tight glyph =
293+16:88 tight name rec
294+16:91 tight glyph ]
295+17:1 DEDENT
296+17:1 NEWLINE
297+17:1 glyph ++
298+17:4 name receiver
299+17:13 glyph |=
300+17:16 name input
301+17:21 tight glyph =
302+17:22 tight glyph [
303+17:23 tight name mark
304+17:27 tight glyph =
305+17:28 tight aura @tas
306+17:33 name state
307+17:38 tight glyph =
308+17:39 tight glyph (
309+17:40 tight name unit
310+17:45 glyph *
311+17:46 tight glyph )
312+17:48 name fact
313+17:52 tight glyph =
314+17:53 tight glyph *
315+17:54 tight glyph ]
316+18:3 INDENT
317+18:3 glyph ?-
318+18:6 wing state.input
319+19:5 INDENT
320+19:5 lit ~
321+19:7 glyph [
322+19:8 tight name state
323+19:13 tight glyph =
324+19:14 tight wing fact.input
325+19:25 name message
326+19:32 tight glyph =
327+19:33 tight str "first"
328+19:40 tight glyph ]
329+20:5 NEWLINE
330+20:5 glyph [
331+20:6 tight lit ~
332+20:8 name prior
333+20:13 tight glyph ]
334+20:15 glyph [
335+20:16 tight name state
336+20:21 tight glyph =
337+20:22 tight name prior
338+20:28 name message
339+20:35 tight glyph =
340+20:36 tight str "next"
341+20:42 tight glyph ]
342+21:1 DEDENT
343+21:1 DEDENT
344+21:1 NEWLINE
345+21:1 glyph ++
346+21:4 name direct-path
347+21:16 glyph ^-
348+21:19 glyph (
349+21:20 tight name ask
350+21:24 aura @t
351+21:26 tight glyph )
352+22:3 INDENT
353+22:3 glyph [
354+22:4 tight lit %agent
355+22:11 name api
356+22:14 tight glyph =
357+22:15 tight str "/ui/api/demo"
358+22:30 name case
359+22:34 tight glyph =
360+22:35 tight lit %plain
361+22:42 name agent
362+22:47 tight glyph =
363+22:48 tight lit %demo
364+22:54 name path
365+22:58 tight glyph =
366+22:59 tight glyph ~[
367+22:61 tight lit %items
368+22:67 tight glyph ]
369+22:69 name scry
370+22:73 tight glyph =
371+22:74 tight lit ~
372+22:76 name receive
373+22:83 tight glyph =
374+22:84 tight glyph |=(
375+22:87 tight name input
376+22:92 tight glyph =
377+22:93 tight glyph [
378+22:94 tight name mark
379+22:98 tight glyph =
380+22:99 tight aura @tas
381+22:104 name state
382+22:109 tight glyph =
383+22:110 tight glyph (
384+22:111 tight name unit
385+22:116 glyph *
386+22:117 tight glyph )
387+22:119 name fact
388+22:123 tight glyph =
389+22:124 tight glyph *
390+22:125 tight glyph ]
391+22:127 glyph [
392+22:128 tight name state
393+22:133 tight glyph =
394+22:134 tight lit 0
395+22:136 name message
396+22:143 tight glyph =
397+22:144 tight str "ok"
398+22:148 tight glyph ]
399+22:149 tight glyph )
400+22:150 tight glyph ]
401+23:1 DEDENT
402+23:1 NEWLINE
403+23:1 glyph ++
404+23:4 name fold-example
405+23:17 glyph |=
406+23:20 glyph [
407+23:21 tight name change
408+23:27 tight glyph =
409+23:28 tight glyph [
410+23:29 tight lit %delta
411+23:36 aura @ud
412+23:39 tight glyph ]
413+23:41 name previous
414+23:49 tight glyph =
415+23:50 tight aura @ud
416+23:53 tight glyph ]
417+23:55 name previous
418+24:1 NEWLINE
419+24:1 glyph ++
420+24:4 name erased-fact-as-ud
421+24:22 glyph |=
422+24:25 name input
423+24:30 tight glyph =
424+24:31 tight glyph [
425+24:32 tight name mark
426+24:36 tight glyph =
427+24:37 tight aura @tas
428+24:42 name state
429+24:47 tight glyph =
430+24:48 tight glyph (
431+24:49 tight name unit
432+24:54 glyph *
433+24:55 tight glyph )
434+24:57 name fact
435+24:61 tight glyph =
436+24:62 tight glyph *
437+24:63 tight glyph ]
438+24:65 glyph ^-
439+24:68 aura @ud
440+24:72 wing fact.input
441+25:1 NEWLINE
442+25:1 glyph ++
443+25:4 name erased-state-as-ud
444+25:23 glyph |=
445+25:26 name input
446+25:31 tight glyph =
447+25:32 tight glyph [
448+25:33 tight name mark
449+25:37 tight glyph =
450+25:38 tight aura @tas
451+25:43 name state
452+25:48 tight glyph =
453+25:49 tight glyph (
454+25:50 tight name unit
455+25:55 glyph *
456+25:56 tight glyph )
457+25:58 name fact
458+25:62 tight glyph =
459+25:63 tight glyph *
460+25:64 tight glyph ]
461+26:3 INDENT
462+26:3 glyph ?-
463+26:6 wing state.input
464+27:5 INDENT
465+27:5 lit ~
466+27:7 lit 0
467+28:5 NEWLINE
468+28:5 glyph [
469+28:6 tight lit ~
470+28:8 name previous
471+28:16 tight glyph ]
472+28:18 glyph ^-
473+28:21 aura @ud
474+28:25 name previous
475+29:1 DEDENT
476+29:1 DEDENT
477+29:1 NEWLINE
478+29:1 glyph ++
479+29:4 name pure-number
480+29:16 glyph (
481+29:17 tight name pure
482+29:22 lit 1
483+29:23 tight glyph )
484+30:1 NEWLINE
485+30:1 glyph ++
486+30:4 name pure-typed-number
487+30:22 glyph ^-
488+30:25 glyph (
489+30:26 tight name ask
490+30:30 aura @ud
491+30:33 tight glyph )
492+30:35 glyph (
493+30:36 tight name pure
494+30:41 lit 1
495+30:42 tight glyph )
496+31:1 NEWLINE
497+31:1 glyph ++
498+31:4 name pure-unresolved
499+31:20 glyph |=
500+31:23 name value
501+31:28 tight glyph =
502+31:29 tight tvar A
503+32:3 INDENT
504+32:3 glyph ~&
505+32:6 lit %pending
506+33:5 INDENT
507+33:5 glyph (
508+33:6 tight name pure
509+33:11 name value
510+33:16 tight glyph )
511+34:1 DEDENT
512+34:1 DEDENT
513+34:1 NEWLINE
514+34:1 glyph ++
515+34:4 name identity-path
516+34:18 glyph |=
517+34:21 name value
518+34:26 tight glyph =
519+34:27 tight name path
520+34:32 name value
521+35:1 NEWLINE
522+35:1 glyph ++
523+35:4 name identity-qath
524+35:18 glyph |=
525+35:21 name value
526+35:26 tight glyph =
527+35:27 tight name qath
528+35:32 name value
529+36:1 NEWLINE
530+36:1 glyph ++
531+36:4 name path-as-qath
532+36:17 glyph |=
533+36:20 name value
534+36:25 tight glyph =
535+36:26 tight name path
536+36:31 glyph ^-
537+36:34 name qath
538+36:39 name value
539+37:1 NEWLINE
540+37:1 glyph ++
541+37:4 name qath-as-path
542+37:17 glyph |=
543+37:20 name value
544+37:25 tight glyph =
545+37:26 tight name qath
546+37:31 glyph ^-
547+37:34 name path
548+37:39 name value
549+38:1 NEWLINE
550+38:1 glyph ++
551+38:4 name path-consumer
552+38:18 glyph |=
553+38:21 name value
554+38:26 tight glyph =
555+38:27 tight name path
556+38:32 name value
557+39:1 NEWLINE
558+39:1 glyph ++
559+39:4 name application-path
560+39:21 glyph (
561+39:22 tight name path-consumer
562+39:36 glyph %/
563+39:38 tight knot items
564+39:43 tight glyph )
565+40:1 NEWLINE
566+40:1 glyph ++
567+40:4 name ordinary-path
568+40:18 glyph ^-
569+40:21 name path
570+40:26 glyph ~[
571+40:28 tight lit ~.items
572+40:35 tight glyph ]
573+41:1 NEWLINE
574+41:1 glyph ++
575+41:4 name ask-from-ordinary
576+41:22 glyph (
577+41:23 tight name agent
578+41:29 name ordinary-path
579+41:43 glyph |=(
580+41:46 tight name v
581+41:47 tight glyph =
582+41:48 tight glyph [
583+41:49 tight name mark
584+41:53 tight glyph =
585+41:54 tight aura @tas
586+41:59 name state
587+41:64 tight glyph =
588+41:65 tight glyph (
589+41:66 tight name unit
590+41:71 glyph *
591+41:72 tight glyph )
592+41:74 name fact
593+41:78 tight glyph =
594+41:79 tight glyph *
595+41:80 tight glyph ]
596+41:82 glyph [
597+41:83 tight name state
598+41:88 tight glyph =
599+41:89 tight lit 0
600+41:91 name message
601+41:98 tight glyph =
602+41:99 tight str "ok"
603+41:103 tight glyph ]
604+41:104 tight glyph )
605+41:105 tight glyph )
606+42:1 NEWLINE
607+42:1 glyph ++
608+42:4 name ask-from-qath
609+42:18 glyph (
610+42:19 tight name agent
611+42:25 glyph %/
612+42:27 tight knot items
613+42:33 glyph |=(
614+42:36 tight name v
615+42:37 tight glyph =
616+42:38 tight glyph [
617+42:39 tight name mark
618+42:43 tight glyph =
619+42:44 tight aura @tas
620+42:49 name state
621+42:54 tight glyph =
622+42:55 tight glyph (
623+42:56 tight name unit
624+42:61 glyph *
625+42:62 tight glyph )
626+42:64 name fact
627+42:68 tight glyph =
628+42:69 tight glyph *
629+42:70 tight glyph ]
630+42:72 glyph [
631+42:73 tight name state
632+42:78 tight glyph =
633+42:79 tight lit 0
634+42:81 name message
635+42:88 tight glyph =
636+42:89 tight str "ok"
637+42:93 tight glyph ]
638+42:94 tight glyph )
639+42:95 tight glyph )
640+43:1 NEWLINE
641+43:1 glyph ++
642+43:4 name store
643+43:10 glyph |=
644+43:13 name rec
645+43:16 tight glyph =
646+43:17 tight glyph $-(
647+43:20 tight glyph [
648+43:21 tight name state
649+43:26 tight glyph =
650+43:27 tight glyph (
651+43:28 tight name unit
652+43:33 glyph *
653+43:34 tight glyph )
654+43:36 name fact
655+43:40 tight glyph =
656+43:41 tight glyph *
657+43:42 tight glyph ]
658+43:44 glyph [
659+43:45 tight name state
660+43:50 tight glyph =
661+43:51 tight glyph *
662+43:53 name message
663+43:60 tight glyph =
664+43:61 tight aura @t
665+43:63 tight glyph ]
666+43:64 tight glyph )
667+44:3 INDENT
668+44:3 glyph ^-
669+44:6 glyph (
670+44:7 tight name ask
671+44:11 aura @t
672+44:13 tight glyph )
673+44:15 glyph [
674+44:16 tight lit %store
675+44:23 name module
676+44:29 tight glyph =
677+44:30 tight str "/ui/store/cart"
678+44:47 name name
679+44:51 tight glyph =
680+44:52 tight lit %state
681+44:59 name receive
682+44:66 tight glyph =
683+44:67 tight name rec
684+44:70 tight glyph ]
685+45:1 DEDENT
686+45:1 NEWLINE
687+45:1 glyph ++
688+45:4 name wrong-store
689+45:16 glyph |=
690+45:19 name rec
691+45:22 tight glyph =
692+45:23 tight glyph $-(
693+45:26 tight glyph [
694+45:27 tight name state
695+45:32 tight glyph =
696+45:33 tight glyph (
697+45:34 tight name unit
698+45:39 glyph *
699+45:40 tight glyph )
700+45:42 name fact
701+45:46 tight glyph =
702+45:47 tight glyph *
703+45:48 tight glyph ]
704+45:50 glyph [
705+45:51 tight name state
706+45:56 tight glyph =
707+45:57 tight glyph *
708+45:59 name message
709+45:66 tight glyph =
710+45:67 tight aura @p
711+45:69 tight glyph ]
712+45:70 tight glyph )
713+46:3 INDENT
714+46:3 glyph ^-
715+46:6 glyph (
716+46:7 tight name ask
717+46:11 aura @t
718+46:13 tight glyph )
719+46:15 glyph [
720+46:16 tight lit %store
721+46:23 name module
722+46:29 tight glyph =
723+46:30 tight str "/ui/store/cart"
724+46:47 name name
725+46:51 tight glyph =
726+46:52 tight lit %state
727+46:59 name receive
728+46:66 tight glyph =
729+46:67 tight name rec
730+46:70 tight glyph ]
731+47:1 DEDENT
732+47:1 NEWLINE
733+47:1 glyph ++
734+47:4 name incomplete
735+47:15 glyph |=
736+47:18 name value
737+47:23 tight glyph =
738+47:24 tight glyph (
739+47:25 tight name ask
740+47:29 aura @t
741+47:31 tight glyph )
742+48:3 INDENT
743+48:3 glyph ?-
744+48:6 name value
745+49:5 INDENT
746+49:5 glyph [
747+49:6 tight lit %pure
748+49:12 name p
749+49:13 tight glyph ]
750+49:15 name p
751+50:5 NEWLINE
752+50:5 glyph [
753+50:6 tight lit %agent
754+50:13 name a
755+50:15 name b
756+50:17 name c
757+50:19 name d
758+50:21 name e
759+50:23 name f
760+50:24 tight glyph ]
761+50:26 str "agent"
762+51:1 DEDENT
763+51:1 DEDENT
764+51:1 NEWLINE
765+51:1 glyph ++
766+51:4 name complete
767+51:13 glyph |=
768+51:16 name value
769+51:21 tight glyph =
770+51:22 tight glyph (
771+51:23 tight name ask
772+51:27 aura @t
773+51:29 tight glyph )
774+52:3 INDENT
775+52:3 glyph ?-
776+52:6 name value
777+53:5 INDENT
778+53:5 glyph [
779+53:6 tight lit %pure
780+53:12 name p
781+53:13 tight glyph ]
782+53:15 name p
783+54:5 NEWLINE
784+54:5 glyph [
785+54:6 tight lit %agent
786+54:13 name a
787+54:15 name b
788+54:17 name c
789+54:19 name d
790+54:21 name e
791+54:23 name f
792+54:24 tight glyph ]
793+54:26 str "agent"
794+55:5 NEWLINE
795+55:5 glyph [
796+55:6 tight lit %store
797+55:13 name a
798+55:15 name b
799+55:17 name c
800+55:18 tight glyph ]
801+55:20 str "store"
802+55:27 DEDENT
803+55:27 DEDENT
804+55:27 NEWLINE
tests/golden/types-prelude-ask/tree.txtnew file+335
@@ -0,0 +1,335 @@
1+(module
2+ (value 1:1 pure-cord
3+ (group 1:14
4+ (call 1:15 (wing 1:15 pure) (str 1:20 "hello"))))
5+ (value 2:1 pure-ship
6+ (group 2:14
7+ (call 2:15 (wing 2:15 pure) (lit 2:20 ~zod))))
8+ (value 3:1 pure-generic
9+ (gate 3:17
10+ (face 3:20 x (tvar 3:22 A))
11+ (group 3:24
12+ (call 3:25 (wing 3:25 pure) (wing 3:30 x)))))
13+ (value 4:1 explicit-pure
14+ (cast 4:18
15+ (apply 4:21 ask (aura 4:26 @t))
16+ (tuple 4:30 (lit 4:31 %pure) (str 4:37 "hello"))))
17+ (value 5:1 wrong-pure
18+ (cast 5:15
19+ (apply 5:18 ask (aura 5:23 @p))
20+ (tuple 5:27 (lit 5:28 %pure) (str 5:34 "hello"))))
21+ (value 6:1 no-state
22+ (cast 6:13
23+ (apply 6:16 unit (noun 6:22))
24+ (lit 6:25 ~)))
25+ (value 7:1 zero-state
26+ (cast 7:15
27+ (apply 7:18 unit (noun 7:24))
28+ (unit 7:27 (lit 7:28 0))))
29+ (value 8:1 no-ud
30+ (cast 8:10
31+ (apply 8:13 unit (aura 8:19 @ud))
32+ (lit 8:24 ~)))
33+ (value 9:1 zero-ud
34+ (cast 9:12
35+ (apply 9:15 unit (aura 9:21 @ud))
36+ (unit 9:26 (lit 9:27 0))))
37+ (value 10:1 some-state
38+ (cast 10:15
39+ (apply 10:18 unit (noun 10:24))
40+ (unit 10:27 (lit 10:28 ~zod))))
41+ (value 11:1 agent
42+ (gate 11:10
43+ (cell 11:13
44+ (face 11:14 p
45+ (apply 11:16 list (aura 11:22 @ta)))
46+ (face 11:27 rec
47+ (fn 11:31
48+ (cell 11:34
49+ (face 11:35 mark (aura 11:40 @tas))
50+ (face 11:45 state
51+ (apply 11:51 unit (noun 11:57)))
52+ (face 11:60 fact (noun 11:65)))
53+ (cell 11:68
54+ (face 11:69 state (noun 11:75))
55+ (face 11:77 message (aura 11:85 @t))))))
56+ (body 12:3
57+ (cast 12:3
58+ (apply 12:6 ask (aura 12:11 @t))
59+ (tuple 12:15
60+ (lit 12:16 %agent)
61+ (face 12:23 api (str 12:27 "/ui/api/demo"))
62+ (face 12:42 case (lit 12:47 %plain))
63+ (face 12:54 agent (lit 12:60 %demo))
64+ (face 12:66 path (wing 12:71 p))
65+ (face 12:73 scry (lit 12:78 ~))
66+ (face 12:80 receive (wing 12:88 rec)))))))
67+ (value 13:1 scry-agent
68+ (gate 13:15
69+ (cell 13:18
70+ (face 13:19 p
71+ (apply 13:21 list (aura 13:27 @ta)))
72+ (face 13:32 rec
73+ (fn 13:36
74+ (cell 13:39
75+ (face 13:40 mark (aura 13:45 @tas))
76+ (face 13:50 state
77+ (apply 13:56 unit (noun 13:62)))
78+ (face 13:65 fact (noun 13:70)))
79+ (cell 13:73
80+ (face 13:74 state (noun 13:80))
81+ (face 13:82 message (aura 13:90 @t))))))
82+ (body 14:3
83+ (cast 14:3
84+ (apply 14:6 ask (aura 14:11 @t))
85+ (tuple 14:15
86+ (lit 14:16 %agent)
87+ (face 14:23 api (str 14:27 "/ui/api/demo"))
88+ (face 14:42 case (lit 14:47 %plain))
89+ (face 14:54 agent (lit 14:60 %demo))
90+ (face 14:66 path (wing 14:71 p))
91+ (face 14:73 scry
92+ (unit 14:78 (wing 14:79 p)))
93+ (face 14:81 receive (wing 14:89 rec)))))))
94+ (value 15:1 wrong-agent
95+ (gate 15:16
96+ (cell 15:19
97+ (face 15:20 p
98+ (apply 15:22 list (aura 15:28 @ta)))
99+ (face 15:33 rec
100+ (fn 15:37
101+ (cell 15:40
102+ (face 15:41 mark (aura 15:46 @tas))
103+ (face 15:51 state
104+ (apply 15:57 unit (noun 15:63)))
105+ (face 15:66 fact (noun 15:71)))
106+ (cell 15:74
107+ (face 15:75 state (noun 15:81))
108+ (face 15:83 message (aura 15:91 @p))))))
109+ (body 16:3
110+ (cast 16:3
111+ (apply 16:6 ask (aura 16:11 @t))
112+ (tuple 16:15
113+ (lit 16:16 %agent)
114+ (face 16:23 api (str 16:27 "/ui/api/demo"))
115+ (face 16:42 case (lit 16:47 %plain))
116+ (face 16:54 agent (lit 16:60 %demo))
117+ (face 16:66 path (wing 16:71 p))
118+ (face 16:73 scry (lit 16:78 ~))
119+ (face 16:80 receive (wing 16:88 rec)))))))
120+ (value 17:1 receiver
121+ (gate 17:13
122+ (face 17:16 input
123+ (cell 17:22
124+ (face 17:23 mark (aura 17:28 @tas))
125+ (face 17:33 state
126+ (apply 17:39 unit (noun 17:45)))
127+ (face 17:48 fact (noun 17:53))))
128+ (body 18:3
129+ (branch 18:3
130+ (wing 18:6 state.input)
131+ (arm 19:5
132+ (lit 19:5 ~)
133+ (tuple 19:7
134+ (face 19:8 state (wing 19:14 fact.input))
135+ (face 19:25 message (str 19:33 "first"))))
136+ (arm 20:5
137+ (cell 20:5 (lit 20:6 ~) (bind 20:8 prior))
138+ (tuple 20:15
139+ (face 20:16 state (wing 20:22 prior))
140+ (face 20:28 message (str 20:36 "next"))))))))
141+ (value 21:1 direct-path
142+ (cast 21:16
143+ (apply 21:19 ask (aura 21:24 @t))
144+ (body 22:3
145+ (tuple 22:3
146+ (lit 22:4 %agent)
147+ (face 22:11 api (str 22:15 "/ui/api/demo"))
148+ (face 22:30 case (lit 22:35 %plain))
149+ (face 22:42 agent (lit 22:48 %demo))
150+ (face 22:54 path
151+ (list 22:59 (lit 22:61 %items)))
152+ (face 22:69 scry (lit 22:74 ~))
153+ (face 22:76 receive
154+ (gate-wide 22:84
155+ (face 22:87 input
156+ (cell 22:93
157+ (face 22:94 mark (aura 22:99 @tas))
158+ (face 22:104 state
159+ (apply 22:110 unit (noun 22:116)))
160+ (face 22:119 fact (noun 22:124))))
161+ (tuple 22:127
162+ (face 22:128 state (lit 22:134 0))
163+ (face 22:136 message (str 22:144 "ok")))))))))
164+ (value 23:1 fold-example
165+ (gate 23:17
166+ (cell 23:20
167+ (face 23:21 change
168+ (cell 23:28 (const 23:29 %delta) (aura 23:36 @ud)))
169+ (face 23:41 previous (aura 23:50 @ud)))
170+ (wing 23:55 previous)))
171+ (value 24:1 erased-fact-as-ud
172+ (gate 24:22
173+ (face 24:25 input
174+ (cell 24:31
175+ (face 24:32 mark (aura 24:37 @tas))
176+ (face 24:42 state
177+ (apply 24:48 unit (noun 24:54)))
178+ (face 24:57 fact (noun 24:62))))
179+ (cast 24:65 (aura 24:68 @ud) (wing 24:72 fact.input))))
180+ (value 25:1 erased-state-as-ud
181+ (gate 25:23
182+ (face 25:26 input
183+ (cell 25:32
184+ (face 25:33 mark (aura 25:38 @tas))
185+ (face 25:43 state
186+ (apply 25:49 unit (noun 25:55)))
187+ (face 25:58 fact (noun 25:63))))
188+ (body 26:3
189+ (branch 26:3
190+ (wing 26:6 state.input)
191+ (arm 27:5 (lit 27:5 ~) (lit 27:7 0))
192+ (arm 28:5
193+ (cell 28:5 (lit 28:6 ~) (bind 28:8 previous))
194+ (cast 28:18 (aura 28:21 @ud) (wing 28:25 previous)))))))
195+ (value 29:1 pure-number
196+ (group 29:16
197+ (call 29:17 (wing 29:17 pure) (lit 29:22 1))))
198+ (value 30:1 pure-typed-number
199+ (cast 30:22
200+ (apply 30:25 ask (aura 30:30 @ud))
201+ (group 30:35
202+ (call 30:36 (wing 30:36 pure) (lit 30:41 1)))))
203+ (value 31:1 pure-unresolved
204+ (gate 31:20
205+ (face 31:23 value (tvar 31:29 A))
206+ (body 32:3
207+ (trace 32:3
208+ (lit 32:6 %pending)
209+ (body 33:5
210+ (group 33:5
211+ (call 33:6 (wing 33:6 pure) (wing 33:11 value))))))))
212+ (value 34:1 identity-path
213+ (gate 34:18
214+ (face 34:21 value (ref 34:27 path))
215+ (wing 34:32 value)))
216+ (value 35:1 identity-qath
217+ (gate 35:18
218+ (face 35:21 value (ref 35:27 qath))
219+ (wing 35:32 value)))
220+ (value 36:1 path-as-qath
221+ (gate 36:17
222+ (face 36:20 value (ref 36:26 path))
223+ (cast 36:31 (ref 36:34 qath) (wing 36:39 value))))
224+ (value 37:1 qath-as-path
225+ (gate 37:17
226+ (face 37:20 value (ref 37:26 qath))
227+ (cast 37:31 (ref 37:34 path) (wing 37:39 value))))
228+ (value 38:1 path-consumer
229+ (gate 38:18
230+ (face 38:21 value (ref 38:27 path))
231+ (wing 38:32 value)))
232+ (value 39:1 application-path
233+ (group 39:21
234+ (call 39:22 (wing 39:22 path-consumer) (qath 39:36 items))))
235+ (value 40:1 ordinary-path
236+ (cast 40:18
237+ (ref 40:21 path)
238+ (list 40:26 (lit 40:28 ~.items))))
239+ (value 41:1 ask-from-ordinary
240+ (group 41:22
241+ (call 41:23
242+ (wing 41:23 agent)
243+ (wing 41:29 ordinary-path)
244+ (gate-wide 41:43
245+ (face 41:46 v
246+ (cell 41:48
247+ (face 41:49 mark (aura 41:54 @tas))
248+ (face 41:59 state
249+ (apply 41:65 unit (noun 41:71)))
250+ (face 41:74 fact (noun 41:79))))
251+ (tuple 41:82
252+ (face 41:83 state (lit 41:89 0))
253+ (face 41:91 message (str 41:99 "ok")))))))
254+ (value 42:1 ask-from-qath
255+ (group 42:18
256+ (call 42:19
257+ (wing 42:19 agent)
258+ (qath 42:25 items)
259+ (gate-wide 42:33
260+ (face 42:36 v
261+ (cell 42:38
262+ (face 42:39 mark (aura 42:44 @tas))
263+ (face 42:49 state
264+ (apply 42:55 unit (noun 42:61)))
265+ (face 42:64 fact (noun 42:69))))
266+ (tuple 42:72
267+ (face 42:73 state (lit 42:79 0))
268+ (face 42:81 message (str 42:89 "ok")))))))
269+ (value 43:1 store
270+ (gate 43:10
271+ (face 43:13 rec
272+ (fn 43:17
273+ (cell 43:20
274+ (face 43:21 state
275+ (apply 43:27 unit (noun 43:33)))
276+ (face 43:36 fact (noun 43:41)))
277+ (cell 43:44
278+ (face 43:45 state (noun 43:51))
279+ (face 43:53 message (aura 43:61 @t)))))
280+ (body 44:3
281+ (cast 44:3
282+ (apply 44:6 ask (aura 44:11 @t))
283+ (tuple 44:15
284+ (lit 44:16 %store)
285+ (face 44:23 module (str 44:30 "/ui/store/cart"))
286+ (face 44:47 name (lit 44:52 %state))
287+ (face 44:59 receive (wing 44:67 rec)))))))
288+ (value 45:1 wrong-store
289+ (gate 45:16
290+ (face 45:19 rec
291+ (fn 45:23
292+ (cell 45:26
293+ (face 45:27 state
294+ (apply 45:33 unit (noun 45:39)))
295+ (face 45:42 fact (noun 45:47)))
296+ (cell 45:50
297+ (face 45:51 state (noun 45:57))
298+ (face 45:59 message (aura 45:67 @p)))))
299+ (body 46:3
300+ (cast 46:3
301+ (apply 46:6 ask (aura 46:11 @t))
302+ (tuple 46:15
303+ (lit 46:16 %store)
304+ (face 46:23 module (str 46:30 "/ui/store/cart"))
305+ (face 46:47 name (lit 46:52 %state))
306+ (face 46:59 receive (wing 46:67 rec)))))))
307+ (value 47:1 incomplete
308+ (gate 47:15
309+ (face 47:18 value
310+ (apply 47:24 ask (aura 47:29 @t)))
311+ (body 48:3
312+ (branch 48:3
313+ (wing 48:6 value)
314+ (arm 49:5
315+ (cell 49:5 (lit 49:6 %pure) (bind 49:12 p))
316+ (wing 49:15 p))
317+ (arm 50:5
318+ (cell 50:5 (lit 50:6 %agent) (bind 50:13 a) (bind 50:15 b) (bind 50:17 c) (bind 50:19 d) (bind 50:21 e) (bind 50:23 f))
319+ (str 50:26 "agent"))))))
320+ (value 51:1 complete
321+ (gate 51:13
322+ (face 51:16 value
323+ (apply 51:22 ask (aura 51:27 @t)))
324+ (body 52:3
325+ (branch 52:3
326+ (wing 52:6 value)
327+ (arm 53:5
328+ (cell 53:5 (lit 53:6 %pure) (bind 53:12 p))
329+ (wing 53:15 p))
330+ (arm 54:5
331+ (cell 54:5 (lit 54:6 %agent) (bind 54:13 a) (bind 54:15 b) (bind 54:17 c) (bind 54:19 d) (bind 54:21 e) (bind 54:23 f))
332+ (str 54:26 "agent"))
333+ (arm 55:5
334+ (cell 55:5 (lit 55:6 %store) (bind 55:13 a) (bind 55:15 b) (bind 55:17 c))
335+ (str 55:20 "store")))))))
tests/golden/types-prelude-ask/types.txtnew file+41
@@ -0,0 +1,41 @@
1+partial inference; module not checked
2+++ pure-cord: (ask @t)
3+++ pure-ship: (ask @p)
4+++ pure-generic: $-(A (ask A))
5+++ explicit-pure: (ask @t)
6+++ wrong-pure: cast mold and expression type do not unify
7+/tests/golden/types-prelude-ask/source.jibb:5:18: cast mold
8+++ wrong-pure ^- (ask @p) [%pure "hello"]
9+ ^
10+/tests/golden/types-prelude-ask/source.jibb:5:27: expression
11+++ wrong-pure ^- (ask @p) [%pure "hello"]
12+ ^
13+++ no-state: (unit *)
14+++ zero-state: (unit *)
15+++ no-ud: (unit @ud)
16+++ zero-ud: (unit @ud)
17+++ some-state: (unit *)
18+++ agent: $-([p=(list @ta) rec=$-([mark=@tas [state=(unit *) fact=*]] [state=* message=@t])] (ask @t))
19+++ scry-agent: $-([p=(list @ta) rec=$-([mark=@tas [state=(unit *) fact=*]] [state=* message=@t])] (ask @t))
20+++ wrong-agent: cast constraint is not supported by partial inference
21+++ receiver: $-([mark=@tas [state=(unit *) fact=*]] [state=* message=@t])
22+++ direct-path: list item needs context in partial inference
23+++ fold-example: $-([change=[%delta @ud] previous=@ud] @ud)
24+++ erased-fact-as-ud: cast constraint is not supported by partial inference
25+++ erased-state-as-ud: cast constraint is not supported by partial inference
26+++ pure-number: unresolved aura-variable inference
27+++ pure-typed-number: (ask @ud)
28+++ pure-unresolved: tag needs context in partial inference
29+++ identity-path: $-((list @ta) (list @ta))
30+++ identity-qath: $-(qath qath)
31+++ path-as-qath: cast constraint is not supported by partial inference
32+++ qath-as-path: cast constraint is not supported by partial inference
33+++ path-consumer: $-((list @ta) (list @ta))
34+++ application-path: call constraint is not supported by partial inference
35+++ ordinary-path: (list @ta)
36+++ ask-from-ordinary: call constraint is not supported by partial inference
37+++ ask-from-qath: call constraint is not supported by partial inference
38+++ store: $-($-([state=(unit *) fact=*] [state=* message=@t]) (ask @t))
39+++ wrong-store: cast constraint is not supported by partial inference
40+++ incomplete: missing union case [%store [module=@t [name=@tas receive=$-([state=(unit *) fact=*] [state=* message=@t])]]]
41+++ complete: $-((ask @t) @t)
tests/lib/jibb-ask-guards.hoonnew file+63
@@ -0,0 +1,63 @@
1+:: Source-identity and canonical template guards for the partial ask prelude.
2+/+ jibb
3+/* public %jibb /lib/jibb/prelude/jibb
4+/* internal %jibb /lib/jibb/internal/jibb
5+|%
6+++ ask-guard-errors
7+ ^- (list tape)
8+ =/ prep=(unit iprelude:jibb) (prepare-prelude-with-internal:jibb public internal)
9+ ?~ prep ~["source-backed prelude did not prepare"]
10+ ?. =(source.iface.u.prep `public) ~["public prelude source changed"]
11+ =/ ask=(unit ischeme:jibb) (find-jibb-mold:jibb %ask iface.u.prep)
12+ ?~ ask ~["ask mold unavailable"]
13+ ?. ?=(%union -.typ.u.ask) ~["ask did not retain a union identity"]
14+ ?. =(origin.typ.u.ask `[/lib/jibb/internal/jibb %ask]) ~["ask private origin changed"]
15+ ?. =(vars.u.ask ~[0]) ~["ask is not unary generic"]
16+ ?. (identity-union-parameters:jibb vars.u.ask args.typ.u.ask) ~["ask arguments lost their identity"]
17+ ?. =((lent cases.typ.u.ask) 3) ~["ask case count changed"]
18+ =/ pure=(list itype:jibb) (skim cases.typ.u.ask |=(c=itype:jibb ?=([%cell [%const [%term %tas %pure *]] *] c)))
19+ =/ agent=(list itype:jibb) (skim cases.typ.u.ask |=(c=itype:jibb ?=([%cell [%const [%term %tas %agent *]] *] c)))
20+ =/ store=(list itype:jibb) (skim cases.typ.u.ask |=(c=itype:jibb ?=([%cell [%const [%term %tas %store *]] *] c)))
21+ ?. &(?=([* ~] pure) ?=([* ~] agent) ?=([* ~] store)) ~["ask case identities changed"]
22+ =/ private=(list iwidth-dependency:jibb)
23+ (skim dependencies.iface.u.prep |=(d=iwidth-dependency:jibb =(at.d /lib/jibb/internal/jibb)))
24+ ?. ?=([* ~] private) ~["private source dependency missing or ambiguous"]
25+ ?. =(source.i.private `internal) ~["private source dependency changed"]
26+ ?. ?=(~ (prepare-prelude-with-internal:jibb public '')) ~["missing private source was accepted"]
27+ :: A same-named public mold must not acquire the private nominal origin.
28+ =/ fake=@t '/= internal /lib/jibb/internal\0a+$ list |$ [A]\0a ~\0a [i=A t=(list A)]\0a+$ unit |$ [A]\0a ~\0a [~ u=A]\0a+$ ask |$ [M] [%local value=M]\0a'
29+ =/ fake-prep=(unit iprelude:jibb) (prepare-prelude-with-internal:jibb fake internal)
30+ ?~ fake-prep ~["local ask control did not prepare"]
31+ =/ fake-ask=(unit ischeme:jibb) (find-jibb-mold:jibb %ask iface.u.fake-prep)
32+ ?~ fake-ask ~["local ask control did not infer"]
33+ =/ fake-type=itype:jibb typ.u.fake-ask
34+ =/ stolen=?
35+ ?:(?=(%union -.fake-type) =(origin.fake-type `[/lib/jibb/internal/jibb %ask]) |)
36+ ?: stolen ~["local ask acquired private origin"]
37+ =/ deps=(list [label=@t src=@t])
38+ :~ ['missing list' '/= internal /lib/jibb/internal\0a+$ unit |$ [A]\0a ~\0a [~ u=A]\0a+$ ask |$ [M] (ask.internal M)\0a']
39+ ['altered list' '/= internal /lib/jibb/internal\0a+$ list |$ [A] ~\0a+$ unit |$ [A]\0a ~\0a [~ u=A]\0a+$ ask |$ [M] (ask.internal M)\0a']
40+ ['duplicate list' '/= internal /lib/jibb/internal\0a+$ list |$ [A]\0a ~\0a [i=A t=(list A)]\0a+$ list |$ [A]\0a ~\0a [i=A t=(list A)]\0a+$ unit |$ [A]\0a ~\0a [~ u=A]\0a+$ ask |$ [M] (ask.internal M)\0a']
41+ ['missing unit' '/= internal /lib/jibb/internal\0a+$ list |$ [A]\0a ~\0a [i=A t=(list A)]\0a+$ ask |$ [M] (ask.internal M)\0a']
42+ ['altered unit' '/= internal /lib/jibb/internal\0a+$ list |$ [A]\0a ~\0a [i=A t=(list A)]\0a+$ unit |$ [A]\0a %wrong\0a [~ u=A]\0a+$ ask |$ [M] (ask.internal M)\0a']
43+ ['duplicate unit' '/= internal /lib/jibb/internal\0a+$ list |$ [A]\0a ~\0a [i=A t=(list A)]\0a+$ unit |$ [A]\0a ~\0a [~ u=A]\0a+$ unit |$ [A]\0a ~\0a [~ u=A]\0a+$ ask |$ [M] (ask.internal M)\0a']
44+ ['changed unit face' '/= internal /lib/jibb/internal\0a+$ list |$ [A]\0a ~\0a [i=A t=(list A)]\0a+$ unit |$ [A]\0a ~\0a [~ other=A]\0a+$ ask |$ [M] (ask.internal M)\0a']
45+ ==
46+ =/ failures=(list tape)
47+ %+ turn deps
48+ |= item=[label=@t src=@t]
49+ =/ changed=(unit iprelude:jibb) (prepare-prelude-with-internal:jibb src.item internal)
50+ ?~ changed ""
51+ =/ leaked=(unit ischeme:jibb) (find-jibb-mold:jibb %ask iface.u.changed)
52+ ?~ leaked ""
53+ (trip label.item)
54+ =. failures (skim failures |=(t=tape !=(t "")))
55+ ?^ failures failures
56+ =/ absent=(unit @) ~
57+ =/ zero=(unit @) `0
58+ ?. !=(absent zero) ~["absent state was conflated with present zero"]
59+ ~
60+++ test-ask-guards
61+ ^- tang
62+ (turn ask-guard-errors |=(reason=tape leaf+reason))
63+--
tests/lib/jibb-qath-source.hoon+34−2
@@ -26,8 +26,40 @@
2626 ['+$ qath @t\0a' real-internal %decline]
2727 [minimal '+$ qath @t\0a' %decline]
2828 ==
29− ?: (levy sources |=(c=[source=@t internal=@t want=@tas] (check-source-prelude source.c internal.c want.c))) ~
30− ~["qath source provenance guard failed"]
29+ =/ original=(list tape)
30+ ?: (levy sources |=(c=[source=@t internal=@t want=@tas] (check-source-prelude source.c internal.c want.c))) ~
31+ ~["qath source provenance guard failed"]
32+ (weld original qath-fallback-errors)
33+++ qath-fallback-errors
34+ ^- (list tape)
35+ =/ cases=(list [label=@t source=@t private=@t prepared=? qath=? ask=? hidden=?])
36+ :~ ['neither' '/= internal /lib/jibb/internal\0a+$ qath qath.internal\0a+$ ask |$ [M] (ask.internal M)\0a+$ hidden (ask @t)\0a' real-internal & & | |]
37+ ['list only' '/= internal /lib/jibb/internal\0a+$ list |$ [A]\0a ~\0a [i=A t=(list A)]\0a+$ qath qath.internal\0a+$ ask |$ [M] (ask.internal M)\0a+$ hidden (ask @t)\0a' real-internal & & | |]
38+ ['unit only' '/= internal /lib/jibb/internal\0a+$ unit |$ [A]\0a ~\0a [~ u=A]\0a+$ qath qath.internal\0a+$ ask |$ [M] (ask.internal M)\0a+$ hidden (ask @t)\0a' real-internal & & | |]
39+ ['altered list' '/= internal /lib/jibb/internal\0a+$ list |$ [A] ~\0a+$ unit |$ [A]\0a ~\0a [~ u=A]\0a+$ qath qath.internal\0a+$ ask |$ [M] (ask.internal M)\0a+$ hidden (ask @t)\0a' real-internal & & | |]
40+ ['altered unit' '/= internal /lib/jibb/internal\0a+$ list |$ [A]\0a ~\0a [i=A t=(list A)]\0a+$ unit |$ [A]\0a %wrong\0a [~ u=A]\0a+$ qath qath.internal\0a+$ ask |$ [M] (ask.internal M)\0a+$ hidden (ask @t)\0a' real-internal & & | |]
41+ ['canonical' '/= internal /lib/jibb/internal\0a+$ list |$ [A]\0a ~\0a [i=A t=(list A)]\0a+$ unit |$ [A]\0a ~\0a [~ u=A]\0a+$ qath qath.internal\0a+$ ask |$ [M] (ask.internal M)\0a+$ hidden (ask @t)\0a' real-internal & & & &]
42+ ['duplicate list' '/= internal /lib/jibb/internal\0a+$ list |$ [A]\0a ~\0a [i=A t=(list A)]\0a+$ list |$ [A] ~\0a+$ unit |$ [A]\0a ~\0a [~ u=A]\0a+$ qath qath.internal\0a+$ ask |$ [M] (ask.internal M)\0a+$ hidden (ask @t)\0a' real-internal | | | |]
43+ ['duplicate unit' '/= internal /lib/jibb/internal\0a+$ list |$ [A]\0a ~\0a [i=A t=(list A)]\0a+$ unit |$ [A]\0a ~\0a [~ u=A]\0a+$ unit |$ [A] ~\0a+$ qath qath.internal\0a+$ ask |$ [M] (ask.internal M)\0a+$ hidden (ask @t)\0a' real-internal | | | |]
44+ ['unavailable direct alias' '/= internal /lib/jibb/internal\0a+$ qath qath.internal\0a+$ ask |$ [M] (ask.internal M)\0a+$ hidden (ask @t)\0a+$ agent-path agent-path.internal\0a' real-internal | | | |]
45+ ['invalid private mold' '/= internal /lib/jibb/internal\0a+$ qath qath.internal\0a+$ ask |$ [M] (ask.internal M)\0a+$ hidden (ask @t)\0a' (cat 3 real-internal '\0a+$ unrelated missing\0a') | | | |]
46+ ['invalid private value' '/= internal /lib/jibb/internal\0a+$ qath qath.internal\0a+$ ask |$ [M] (ask.internal M)\0a+$ hidden (ask @t)\0a' (cat 3 real-internal '\0a++ unrelated (missing 1)\0a') | | | |]
47+ ['invalid private dependency' '/= internal /lib/jibb/internal\0a+$ qath qath.internal\0a+$ ask |$ [M] (ask.internal M)\0a+$ hidden (ask @t)\0a' (cat 3 real-internal '\0a+$ bad (missing @t)\0a+$ unrelated bad\0a') | | | |]
48+ ==
49+ =/ outcomes=(list tape)
50+ %+ turn cases
51+ |= c=[label=@t source=@t private=@t prepared=? qath=? ask=? hidden=?]
52+ =/ prep=(unit iprelude:jibb) (prepare-prelude-with-internal:jibb source.c private.c)
53+ ?: !=(prepared.c ?=(^ prep)) (weld (trip label.c) ": wrong preparation result")
54+ ?~ prep ""
55+ =/ q=? ?=(^ (find-jibb-mold:jibb %qath iface.u.prep))
56+ =/ a=? ?=(^ (find-jibb-mold:jibb %ask iface.u.prep))
57+ =/ h=? ?=(^ (find-jibb-mold:jibb %hidden iface.u.prep))
58+ ?: !=(q qath.c) (weld (trip label.c) ": wrong qath availability")
59+ ?: !=(a ask.c) (weld (trip label.c) ": wrong ask availability")
60+ ?: !=(h hidden.c) (weld (trip label.c) ": wrong transitive alias availability")
61+ ""
62+ (skim outcomes |=(x=tape !=(x "")))
3163++ test-qath-source
3264 ^- tang
3365 (turn qath-source-errors |=(reason=tape leaf+reason))
tests/lib/jibb.hoon+610−604
@@ -1867,498 +1867,502 @@
18671867/* tok-524 %txt /tests/golden/types-prelude-arithmetic/tokens/txt
18681868/* tre-524 %txt /tests/golden/types-prelude-arithmetic/tree/txt
18691869/* typ-524 %txt /tests/golden/types-prelude-arithmetic/types/txt
1870−/* src-525 %jibb /tests/golden/types-prelude-bond/source/jibb
1871−/* tok-525 %txt /tests/golden/types-prelude-bond/tokens/txt
1872−/* tre-525 %txt /tests/golden/types-prelude-bond/tree/txt
1873−/* typ-525 %txt /tests/golden/types-prelude-bond/types/txt
1874−/* src-526 %jibb /tests/golden/types-prelude-cmd/source/jibb
1875−/* tok-526 %txt /tests/golden/types-prelude-cmd/tokens/txt
1876−/* tre-526 %txt /tests/golden/types-prelude-cmd/tree/txt
1877−/* typ-526 %txt /tests/golden/types-prelude-cmd/types/txt
1878−/* src-527 %jibb /tests/golden/types-prelude-direct/source/jibb
1879−/* tok-527 %txt /tests/golden/types-prelude-direct/tokens/txt
1880−/* tre-527 %txt /tests/golden/types-prelude-direct/tree/txt
1881−/* typ-527 %txt /tests/golden/types-prelude-direct/types/txt
1882−/* src-528 %jibb /tests/golden/types-prelude-functional/source/jibb
1883−/* tok-528 %txt /tests/golden/types-prelude-functional/tokens/txt
1884−/* tre-528 %txt /tests/golden/types-prelude-functional/tree/txt
1885−/* typ-528 %txt /tests/golden/types-prelude-functional/types/txt
1886−/* src-529 %jibb /tests/golden/types-prelude-generic-alias/source/jibb
1887−/* tok-529 %txt /tests/golden/types-prelude-generic-alias/tokens/txt
1888−/* tre-529 %txt /tests/golden/types-prelude-generic-alias/tree/txt
1889−/* mod-529-1 %jibb /tests/golden/types-prelude-generic-alias/modules/ui/alias-helper/jibb
1890−/* typ-529 %txt /tests/golden/types-prelude-generic-alias/types/txt
1891−/* mtre-529 %txt /tests/golden/types-prelude-generic-alias/module-trees/txt
1892−/* src-530 %jibb /tests/golden/types-prelude-interface/source/jibb
1893−/* tok-530 %txt /tests/golden/types-prelude-interface/tokens/txt
1894−/* tre-530 %txt /tests/golden/types-prelude-interface/tree/txt
1895−/* mod-530-1 %jibb /tests/golden/types-prelude-interface/modules/ui/left/jibb
1896−/* mod-530-2 %jibb /tests/golden/types-prelude-interface/modules/ui/right/jibb
1897−/* typ-530 %txt /tests/golden/types-prelude-interface/types/txt
1898−/* mtre-530 %txt /tests/golden/types-prelude-interface/module-trees/txt
1899−/* src-531 %jibb /tests/golden/types-prelude-like/source/jibb
1900−/* tok-531 %txt /tests/golden/types-prelude-like/tokens/txt
1901−/* tre-531 %txt /tests/golden/types-prelude-like/tree/txt
1902−/* typ-531 %txt /tests/golden/types-prelude-like/types/txt
1903−/* src-532 %jibb /tests/golden/types-prelude-list-alias/source/jibb
1904−/* tok-532 %txt /tests/golden/types-prelude-list-alias/tokens/txt
1905−/* tre-532 %txt /tests/golden/types-prelude-list-alias/tree/txt
1906−/* typ-532 %txt /tests/golden/types-prelude-list-alias/types/txt
1907−/* src-533 %jibb /tests/golden/types-prelude-list-functions/source/jibb
1908−/* tok-533 %txt /tests/golden/types-prelude-list-functions/tokens/txt
1909−/* tre-533 %txt /tests/golden/types-prelude-list-functions/tree/txt
1910−/* mod-533-1 %jibb /tests/golden/types-prelude-list-functions/modules/ui/lib/jibb
1911−/* typ-533 %txt /tests/golden/types-prelude-list-functions/types/txt
1912−/* mtre-533 %txt /tests/golden/types-prelude-list-functions/module-trees/txt
1913−/* src-534 %jibb /tests/golden/types-prelude-list-helpers/source/jibb
1914−/* tok-534 %txt /tests/golden/types-prelude-list-helpers/tokens/txt
1915−/* tre-534 %txt /tests/golden/types-prelude-list-helpers/tree/txt
1916−/* typ-534 %txt /tests/golden/types-prelude-list-helpers/types/txt
1917−/* src-535 %jibb /tests/golden/types-prelude-predicates/source/jibb
1918−/* tok-535 %txt /tests/golden/types-prelude-predicates/tokens/txt
1919−/* tre-535 %txt /tests/golden/types-prelude-predicates/tree/txt
1920−/* typ-535 %txt /tests/golden/types-prelude-predicates/types/txt
1921−/* src-536 %jibb /tests/golden/types-prelude-unit-helpers/source/jibb
1922−/* tok-536 %txt /tests/golden/types-prelude-unit-helpers/tokens/txt
1923−/* tre-536 %txt /tests/golden/types-prelude-unit-helpers/tree/txt
1924−/* typ-536 %txt /tests/golden/types-prelude-unit-helpers/types/txt
1925−/* src-537 %jibb /tests/golden/types-proj-explicit-context/source/jibb
1926−/* tok-537 %txt /tests/golden/types-proj-explicit-context/tokens/txt
1927−/* tre-537 %txt /tests/golden/types-proj-explicit-context/tree/txt
1928−/* typ-537 %txt /tests/golden/types-proj-explicit-context/types/txt
1929−/* src-538 %jibb /tests/golden/types-proj-nested-no-implicit/source/jibb
1930−/* tok-538 %txt /tests/golden/types-proj-nested-no-implicit/tokens/txt
1931−/* tre-538 %txt /tests/golden/types-proj-nested-no-implicit/tree/txt
1932−/* typ-538 %txt /tests/golden/types-proj-nested-no-implicit/types/txt
1933−/* src-539 %jibb /tests/golden/types-proj-reserved-imported-definition/source/jibb
1934−/* tok-539 %txt /tests/golden/types-proj-reserved-imported-definition/tokens/txt
1935−/* tre-539 %txt /tests/golden/types-proj-reserved-imported-definition/tree/txt
1936−/* mod-539-1 %jibb /tests/golden/types-proj-reserved-imported-definition/modules/ui/lib/jibb
1937−/* typ-539 %txt /tests/golden/types-proj-reserved-imported-definition/types/txt
1938−/* mtre-539 %txt /tests/golden/types-proj-reserved-imported-definition/module-trees/txt
1939−/* src-540 %jibb /tests/golden/types-proj-reserved-jibb-import/source/jibb
1940−/* tok-540 %txt /tests/golden/types-proj-reserved-jibb-import/tokens/txt
1941−/* tre-540 %txt /tests/golden/types-proj-reserved-jibb-import/tree/txt
1942−/* mod-540-1 %jibb /tests/golden/types-proj-reserved-jibb-import/modules/ui/lib/jibb
1943−/* typ-540 %txt /tests/golden/types-proj-reserved-jibb-import/types/txt
1944−/* mtre-540 %txt /tests/golden/types-proj-reserved-jibb-import/module-trees/txt
1945−/* src-541 %jibb /tests/golden/types-proj-reserved-local/source/jibb
1946−/* tok-541 %txt /tests/golden/types-proj-reserved-local/tokens/txt
1947−/* tre-541 %txt /tests/golden/types-proj-reserved-local/tree/txt
1948−/* typ-541 %txt /tests/golden/types-proj-reserved-local/types/txt
1949−/* src-542 %jibb /tests/golden/types-proj-reserved-local-mold/source/jibb
1950−/* tok-542 %txt /tests/golden/types-proj-reserved-local-mold/tokens/txt
1951−/* tre-542 %txt /tests/golden/types-proj-reserved-local-mold/tree/txt
1952−/* typ-542 %txt /tests/golden/types-proj-reserved-local-mold/types/txt
1953−/* src-543 %jibb /tests/golden/types-proj-reserved-mark-import/source/jibb
1954−/* tok-543 %txt /tests/golden/types-proj-reserved-mark-import/tokens/txt
1955−/* tre-543 %txt /tests/golden/types-proj-reserved-mark-import/tree/txt
1956−/* typ-543 %txt /tests/golden/types-proj-reserved-mark-import/types/txt
1957−/* src-544 %jibb /tests/golden/types-proj-reserved-mold/source/jibb
1958−/* tok-544 %txt /tests/golden/types-proj-reserved-mold/tokens/txt
1959−/* tre-544 %txt /tests/golden/types-proj-reserved-mold/tree/txt
1960−/* typ-544 %txt /tests/golden/types-proj-reserved-mold/types/txt
1961−/* src-545 %jibb /tests/golden/types-proj-reserved-pattern/source/jibb
1962−/* tok-545 %txt /tests/golden/types-proj-reserved-pattern/tokens/txt
1963−/* tre-545 %txt /tests/golden/types-proj-reserved-pattern/tree/txt
1964−/* typ-545 %txt /tests/golden/types-proj-reserved-pattern/types/txt
1965−/* src-546 %jibb /tests/golden/types-proj-reserved-positive/source/jibb
1966−/* tok-546 %txt /tests/golden/types-proj-reserved-positive/tokens/txt
1967−/* tre-546 %txt /tests/golden/types-proj-reserved-positive/tree/txt
1968−/* typ-546 %txt /tests/golden/types-proj-reserved-positive/types/txt
1969−/* src-547 %jibb /tests/golden/types-proj-reserved-sample/source/jibb
1970−/* tok-547 %txt /tests/golden/types-proj-reserved-sample/tokens/txt
1971−/* tre-547 %txt /tests/golden/types-proj-reserved-sample/tree/txt
1972−/* typ-547 %txt /tests/golden/types-proj-reserved-sample/types/txt
1973−/* src-548 %jibb /tests/golden/types-proj-reserved-sur-import/source/jibb
1974−/* tok-548 %txt /tests/golden/types-proj-reserved-sur-import/tokens/txt
1975−/* tre-548 %txt /tests/golden/types-proj-reserved-sur-import/tree/txt
1976−/* typ-548 %txt /tests/golden/types-proj-reserved-sur-import/types/txt
1977−/* src-549 %jibb /tests/golden/types-proj-reserved-unused-pattern/source/jibb
1978−/* tok-549 %txt /tests/golden/types-proj-reserved-unused-pattern/tokens/txt
1979−/* tre-549 %txt /tests/golden/types-proj-reserved-unused-pattern/tree/txt
1980−/* typ-549 %txt /tests/golden/types-proj-reserved-unused-pattern/types/txt
1981−/* src-550 %jibb /tests/golden/types-proj-reserved-unused-sample/source/jibb
1982−/* tok-550 %txt /tests/golden/types-proj-reserved-unused-sample/tokens/txt
1983−/* tre-550 %txt /tests/golden/types-proj-reserved-unused-sample/tree/txt
1984−/* typ-550 %txt /tests/golden/types-proj-reserved-unused-sample/types/txt
1985−/* src-551 %jibb /tests/golden/types-proj-reserved-unused-value/source/jibb
1986−/* tok-551 %txt /tests/golden/types-proj-reserved-unused-value/tokens/txt
1987−/* tre-551 %txt /tests/golden/types-proj-reserved-unused-value/tree/txt
1988−/* typ-551 %txt /tests/golden/types-proj-reserved-unused-value/types/txt
1989−/* src-552 %jibb /tests/golden/types-proj-reserved-value/source/jibb
1990−/* tok-552 %txt /tests/golden/types-proj-reserved-value/tokens/txt
1991−/* tre-552 %txt /tests/golden/types-proj-reserved-value/tree/txt
1992−/* typ-552 %txt /tests/golden/types-proj-reserved-value/types/txt
1993−/* src-553 %jibb /tests/golden/types-proj-single-duplicate/source/jibb
1994−/* tok-553 %txt /tests/golden/types-proj-single-duplicate/tokens/txt
1995−/* tre-553 %txt /tests/golden/types-proj-single-duplicate/tree/txt
1996−/* typ-553 %txt /tests/golden/types-proj-single-duplicate/types/txt
1997−/* src-554 %jibb /tests/golden/types-proj-single-field/source/jibb
1998−/* tok-554 %txt /tests/golden/types-proj-single-field/tokens/txt
1999−/* tre-554 %txt /tests/golden/types-proj-single-field/tree/txt
2000−/* typ-554 %txt /tests/golden/types-proj-single-field/types/txt
2001−/* src-555 %jibb /tests/golden/types-proj-single-sample-face/source/jibb
2002−/* tok-555 %txt /tests/golden/types-proj-single-sample-face/tokens/txt
2003−/* tre-555 %txt /tests/golden/types-proj-single-sample-face/tree/txt
2004−/* typ-555 %txt /tests/golden/types-proj-single-sample-face/types/txt
2005−/* src-556 %jibb /tests/golden/types-proj-single-wrapped/source/jibb
2006−/* tok-556 %txt /tests/golden/types-proj-single-wrapped/tokens/txt
2007−/* tre-556 %txt /tests/golden/types-proj-single-wrapped/tree/txt
2008−/* typ-556 %txt /tests/golden/types-proj-single-wrapped/types/txt
2009−/* src-557 %jibb /tests/golden/types-qath-faces/source/jibb
2010−/* tok-557 %txt /tests/golden/types-qath-faces/tokens/txt
2011−/* tre-557 %txt /tests/golden/types-qath-faces/tree/txt
2012−/* typ-557 %txt /tests/golden/types-qath-faces/types/txt
2013−/* src-558 %jibb /tests/golden/types-qath-holes/source/jibb
2014−/* tok-558 %txt /tests/golden/types-qath-holes/tokens/txt
2015−/* tre-558 %txt /tests/golden/types-qath-holes/tree/txt
2016−/* typ-558 %txt /tests/golden/types-qath-holes/types/txt
2017−/* src-559 %jibb /tests/golden/types-qath-module-identity/source/jibb
2018−/* tok-559 %txt /tests/golden/types-qath-module-identity/tokens/txt
2019−/* tre-559 %txt /tests/golden/types-qath-module-identity/tree/txt
2020−/* mod-559-1 %jibb /tests/golden/types-qath-module-identity/modules/ui/one/jibb
2021−/* mod-559-2 %jibb /tests/golden/types-qath-module-identity/modules/ui/two/jibb
2022−/* mod-559-3 %jibb /tests/golden/types-qath-module-identity/modules/ui/mid/jibb
2023−/* typ-559 %txt /tests/golden/types-qath-module-identity/types/txt
2024−/* mtre-559 %txt /tests/golden/types-qath-module-identity/module-trees/txt
2025−/* src-560 %jibb /tests/golden/types-qath-recursive/source/jibb
2026−/* tok-560 %txt /tests/golden/types-qath-recursive/tokens/txt
2027−/* tre-560 %txt /tests/golden/types-qath-recursive/tree/txt
2028−/* typ-560 %txt /tests/golden/types-qath-recursive/types/txt
2029−/* src-561 %jibb /tests/golden/types-record-bound-variable/source/jibb
2030−/* tok-561 %txt /tests/golden/types-record-bound-variable/tokens/txt
2031−/* tre-561 %txt /tests/golden/types-record-bound-variable/tree/txt
2032−/* typ-561 %txt /tests/golden/types-record-bound-variable/types/txt
2033−/* src-562 %jibb /tests/golden/types-record-cast-context/source/jibb
2034−/* tok-562 %txt /tests/golden/types-record-cast-context/tokens/txt
2035−/* tre-562 %txt /tests/golden/types-record-cast-context/tree/txt
2036−/* typ-562 %txt /tests/golden/types-record-cast-context/types/txt
2037−/* src-563 %jibb /tests/golden/types-record-change/source/jibb
2038−/* tok-563 %txt /tests/golden/types-record-change/tokens/txt
2039−/* tre-563 %txt /tests/golden/types-record-change/tree/txt
2040−/* typ-563 %txt /tests/golden/types-record-change/types/txt
2041−/* src-564 %jibb /tests/golden/types-record-change-generic/source/jibb
2042−/* tok-564 %txt /tests/golden/types-record-change-generic/tokens/txt
2043−/* tre-564 %txt /tests/golden/types-record-change-generic/tree/txt
2044−/* typ-564 %txt /tests/golden/types-record-change-generic/types/txt
2045−/* src-565 %jibb /tests/golden/types-record-faces/source/jibb
2046−/* tok-565 %txt /tests/golden/types-record-faces/tokens/txt
2047−/* tre-565 %txt /tests/golden/types-record-faces/tree/txt
2048−/* typ-565 %txt /tests/golden/types-record-faces/types/txt
2049−/* src-566 %jibb /tests/golden/types-record-field-edit-separate/source/jibb
2050−/* tok-566 %txt /tests/golden/types-record-field-edit-separate/tokens/txt
2051−/* tre-566 %txt /tests/golden/types-record-field-edit-separate/tree/txt
2052−/* typ-566 %txt /tests/golden/types-record-field-edit-separate/types/txt
2053−/* src-567 %jibb /tests/golden/types-record-field-expr-duplicate/source/jibb
2054−/* tok-567 %txt /tests/golden/types-record-field-expr-duplicate/tokens/txt
2055−/* tre-567 %txt /tests/golden/types-record-field-expr-duplicate/tree/txt
2056−/* typ-567 %txt /tests/golden/types-record-field-expr-duplicate/types/txt
2057−/* src-568 %jibb /tests/golden/types-record-field-expr-separate/source/jibb
2058−/* tok-568 %txt /tests/golden/types-record-field-expr-separate/tokens/txt
2059−/* tre-568 %txt /tests/golden/types-record-field-expr-separate/tree/txt
2060−/* typ-568 %txt /tests/golden/types-record-field-expr-separate/types/txt
2061−/* src-569 %jibb /tests/golden/types-record-field-module-reachable/source/jibb
2062−/* tok-569 %txt /tests/golden/types-record-field-module-reachable/tokens/txt
2063−/* tre-569 %txt /tests/golden/types-record-field-module-reachable/tree/txt
2064−/* mod-569-1 %jibb /tests/golden/types-record-field-module-reachable/modules/ui/lib/jibb
2065−/* typ-569 %txt /tests/golden/types-record-field-module-reachable/types/txt
2066−/* mtre-569 %txt /tests/golden/types-record-field-module-reachable/module-trees/txt
2067−/* src-570 %jibb /tests/golden/types-record-field-module-unused/source/jibb
2068−/* tok-570 %txt /tests/golden/types-record-field-module-unused/tokens/txt
2069−/* tre-570 %txt /tests/golden/types-record-field-module-unused/tree/txt
2070−/* mod-570-1 %jibb /tests/golden/types-record-field-module-unused/modules/ui/good/jibb
2071−/* mod-570-2 %jibb /tests/golden/types-record-field-module-unused/modules/ui/unused/jibb
2072−/* typ-570 %txt /tests/golden/types-record-field-module-unused/types/txt
2073−/* mtre-570 %txt /tests/golden/types-record-field-module-unused/module-trees/txt
2074−/* src-571 %jibb /tests/golden/types-record-field-nested-mold/source/jibb
2075−/* tok-571 %txt /tests/golden/types-record-field-nested-mold/tokens/txt
2076−/* tre-571 %txt /tests/golden/types-record-field-nested-mold/tree/txt
2077−/* typ-571 %txt /tests/golden/types-record-field-nested-mold/types/txt
2078−/* src-572 %jibb /tests/golden/types-record-field-outer-inner/source/jibb
2079−/* tok-572 %txt /tests/golden/types-record-field-outer-inner/tokens/txt
2080−/* tre-572 %txt /tests/golden/types-record-field-outer-inner/tree/txt
2081−/* typ-572 %txt /tests/golden/types-record-field-outer-inner/types/txt
2082−/* src-573 %jibb /tests/golden/types-record-field-sample-duplicate/source/jibb
2083−/* tok-573 %txt /tests/golden/types-record-field-sample-duplicate/tokens/txt
2084−/* tre-573 %txt /tests/golden/types-record-field-sample-duplicate/tree/txt
2085−/* typ-573 %txt /tests/golden/types-record-field-sample-duplicate/types/txt
2086−/* src-574 %jibb /tests/golden/types-record-field-separate-molds/source/jibb
2087−/* tok-574 %txt /tests/golden/types-record-field-separate-molds/tokens/txt
2088−/* tre-574 %txt /tests/golden/types-record-field-separate-molds/tree/txt
2089−/* typ-574 %txt /tests/golden/types-record-field-separate-molds/types/txt
2090−/* src-575 %jibb /tests/golden/types-record-field-unused-mold/source/jibb
2091−/* tok-575 %txt /tests/golden/types-record-field-unused-mold/tokens/txt
2092−/* tre-575 %txt /tests/golden/types-record-field-unused-mold/tree/txt
2093−/* typ-575 %txt /tests/golden/types-record-field-unused-mold/types/txt
2094−/* src-576 %jibb /tests/golden/types-record-import/source/jibb
2095−/* tok-576 %txt /tests/golden/types-record-import/tokens/txt
2096−/* tre-576 %txt /tests/golden/types-record-import/tree/txt
2097−/* mod-576-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
2098−/* typ-576 %txt /tests/golden/types-record-import/types/txt
2099−/* mtre-576 %txt /tests/golden/types-record-import/module-trees/txt
2100−/* src-577 %jibb /tests/golden/types-record-local-scheme/source/jibb
2101−/* tok-577 %txt /tests/golden/types-record-local-scheme/tokens/txt
2102−/* tre-577 %txt /tests/golden/types-record-local-scheme/tree/txt
2103−/* typ-577 %txt /tests/golden/types-record-local-scheme/types/txt
2104−/* src-578 %jibb /tests/golden/types-record-nested/source/jibb
2105−/* tok-578 %txt /tests/golden/types-record-nested/tokens/txt
2106−/* tre-578 %txt /tests/golden/types-record-nested/tree/txt
2107−/* typ-578 %txt /tests/golden/types-record-nested/types/txt
2108−/* src-579 %jibb /tests/golden/types-record-to-tuple/source/jibb
2109−/* tok-579 %txt /tests/golden/types-record-to-tuple/tokens/txt
2110−/* tre-579 %txt /tests/golden/types-record-to-tuple/tree/txt
2111−/* typ-579 %txt /tests/golden/types-record-to-tuple/types/txt
2112−/* src-580 %jibb /tests/golden/types-recursion-scc-failures/source/jibb
2113−/* tok-580 %txt /tests/golden/types-recursion-scc-failures/tokens/txt
2114−/* tre-580 %txt /tests/golden/types-recursion-scc-failures/tree/txt
2115−/* typ-580 %txt /tests/golden/types-recursion-scc-failures/types/txt
2116−/* src-581 %jibb /tests/golden/types-recursion-scc-groups/source/jibb
2117−/* tok-581 %txt /tests/golden/types-recursion-scc-groups/tokens/txt
2118−/* tre-581 %txt /tests/golden/types-recursion-scc-groups/tree/txt
2119−/* typ-581 %txt /tests/golden/types-recursion-scc-groups/types/txt
2120−/* src-582 %jibb /tests/golden/types-recursion-scc-import/source/jibb
2121−/* tok-582 %txt /tests/golden/types-recursion-scc-import/tokens/txt
2122−/* tre-582 %txt /tests/golden/types-recursion-scc-import/tree/txt
2123−/* mod-582-1 %jibb /tests/golden/types-recursion-scc-import/modules/ui/lib/jibb
2124−/* typ-582 %txt /tests/golden/types-recursion-scc-import/types/txt
2125−/* mtre-582 %txt /tests/golden/types-recursion-scc-import/module-trees/txt
2126−/* src-583 %jibb /tests/golden/types-recursion-scc-import-bad/source/jibb
2127−/* tok-583 %txt /tests/golden/types-recursion-scc-import-bad/tokens/txt
2128−/* tre-583 %txt /tests/golden/types-recursion-scc-import-bad/tree/txt
2129−/* mod-583-1 %jibb /tests/golden/types-recursion-scc-import-bad/modules/ui/lib/jibb
2130−/* typ-583 %txt /tests/golden/types-recursion-scc-import-bad/types/txt
2131−/* mtre-583 %txt /tests/golden/types-recursion-scc-import-bad/module-trees/txt
2132−/* src-584 %jibb /tests/golden/types-recursion-scc-local/source/jibb
2133−/* tok-584 %txt /tests/golden/types-recursion-scc-local/tokens/txt
2134−/* tre-584 %txt /tests/golden/types-recursion-scc-local/tree/txt
2135−/* typ-584 %txt /tests/golden/types-recursion-scc-local/types/txt
2136−/* src-585 %jibb /tests/golden/types-recursion-scc-order/source/jibb
2137−/* tok-585 %txt /tests/golden/types-recursion-scc-order/tokens/txt
2138−/* tre-585 %txt /tests/golden/types-recursion-scc-order/tree/txt
2139−/* typ-585 %txt /tests/golden/types-recursion-scc-order/types/txt
2140−/* src-586 %jibb /tests/golden/types-recursion-scc-shadow/source/jibb
2141−/* tok-586 %txt /tests/golden/types-recursion-scc-shadow/tokens/txt
2142−/* tre-586 %txt /tests/golden/types-recursion-scc-shadow/tree/txt
2143−/* typ-586 %txt /tests/golden/types-recursion-scc-shadow/types/txt
2144−/* src-587 %jibb /tests/golden/types-recursive-branch/source/jibb
2145−/* tok-587 %txt /tests/golden/types-recursive-branch/tokens/txt
2146−/* tre-587 %txt /tests/golden/types-recursive-branch/tree/txt
2147−/* typ-587 %txt /tests/golden/types-recursive-branch/types/txt
2148−/* src-588 %jibb /tests/golden/types-recursive-gate/source/jibb
2149−/* tok-588 %txt /tests/golden/types-recursive-gate/tokens/txt
2150−/* tre-588 %txt /tests/golden/types-recursive-gate/tree/txt
2151−/* typ-588 %txt /tests/golden/types-recursive-gate/types/txt
2152−/* src-589 %jibb /tests/golden/types-recursive-sample/source/jibb
2153−/* tok-589 %txt /tests/golden/types-recursive-sample/tokens/txt
2154−/* tre-589 %txt /tests/golden/types-recursive-sample/tree/txt
2155−/* typ-589 %txt /tests/golden/types-recursive-sample/types/txt
2156−/* src-590 %jibb /tests/golden/types-scope-library-poke/source/jibb
2157−/* tok-590 %txt /tests/golden/types-scope-library-poke/tokens/txt
2158−/* tre-590 %txt /tests/golden/types-scope-library-poke/tree/txt
2159−/* typ-590 %txt /tests/golden/types-scope-library-poke/types/txt
2160−/* src-591 %jibb /tests/golden/types-scope-root-api/source/jibb
2161−/* tok-591 %txt /tests/golden/types-scope-root-api/tokens/txt
2162−/* tre-591 %txt /tests/golden/types-scope-root-api/tree/txt
2163−/* typ-591 %txt /tests/golden/types-scope-root-api/types/txt
2164−/* src-592 %jibb /tests/golden/types-scope-store-duplicate/source/jibb
2165−/* tok-592 %txt /tests/golden/types-scope-store-duplicate/tokens/txt
2166−/* tre-592 %txt /tests/golden/types-scope-store-duplicate/tree/txt
2167−/* typ-592 %txt /tests/golden/types-scope-store-duplicate/types/txt
2168−/* src-593 %jibb /tests/golden/types-scope-store-shadow/source/jibb
2169−/* tok-593 %txt /tests/golden/types-scope-store-shadow/tokens/txt
2170−/* tre-593 %txt /tests/golden/types-scope-store-shadow/tree/txt
2171−/* typ-593 %txt /tests/golden/types-scope-store-shadow/types/txt
2172−/* src-594 %jibb /tests/golden/types-single-case-pattern/source/jibb
2173−/* tok-594 %txt /tests/golden/types-single-case-pattern/tokens/txt
2174−/* tre-594 %txt /tests/golden/types-single-case-pattern/tree/txt
2175−/* typ-594 %txt /tests/golden/types-single-case-pattern/types/txt
2176−/* src-595 %jibb /tests/golden/types-string-interpolation/source/jibb
2177−/* tok-595 %txt /tests/golden/types-string-interpolation/tokens/txt
2178−/* tre-595 %txt /tests/golden/types-string-interpolation/tree/txt
2179−/* typ-595 %txt /tests/golden/types-string-interpolation/types/txt
2180−/* src-596 %jibb /tests/golden/types-tuple-context/source/jibb
2181−/* tok-596 %txt /tests/golden/types-tuple-context/tokens/txt
2182−/* tre-596 %txt /tests/golden/types-tuple-context/tree/txt
2183−/* typ-596 %txt /tests/golden/types-tuple-context/types/txt
2184−/* src-597 %jibb /tests/golden/types-tuple-context-nested/source/jibb
2185−/* tok-597 %txt /tests/golden/types-tuple-context-nested/tokens/txt
2186−/* tre-597 %txt /tests/golden/types-tuple-context-nested/tree/txt
2187−/* typ-597 %txt /tests/golden/types-tuple-context-nested/types/txt
2188−/* src-598 %jibb /tests/golden/types-union-alias/source/jibb
2189−/* tok-598 %txt /tests/golden/types-union-alias/tokens/txt
2190−/* tre-598 %txt /tests/golden/types-union-alias/tree/txt
2191−/* typ-598 %txt /tests/golden/types-union-alias/types/txt
2192−/* src-599 %jibb /tests/golden/types-union-branch-context/source/jibb
2193−/* tok-599 %txt /tests/golden/types-union-branch-context/tokens/txt
2194−/* tre-599 %txt /tests/golden/types-union-branch-context/tree/txt
2195−/* typ-599 %txt /tests/golden/types-union-branch-context/types/txt
2196−/* src-600 %jibb /tests/golden/types-union-branch-pending/source/jibb
2197−/* tok-600 %txt /tests/golden/types-union-branch-pending/tokens/txt
2198−/* tre-600 %txt /tests/golden/types-union-branch-pending/tree/txt
2199−/* typ-600 %txt /tests/golden/types-union-branch-pending/types/txt
2200−/* src-601 %jibb /tests/golden/types-union-constructor-shape/source/jibb
2201−/* tok-601 %txt /tests/golden/types-union-constructor-shape/tokens/txt
2202−/* tre-601 %txt /tests/golden/types-union-constructor-shape/tree/txt
2203−/* typ-601 %txt /tests/golden/types-union-constructor-shape/types/txt
2204−/* src-602 %jibb /tests/golden/types-union-context-flow/source/jibb
2205−/* tok-602 %txt /tests/golden/types-union-context-flow/tokens/txt
2206−/* tre-602 %txt /tests/golden/types-union-context-flow/tree/txt
2207−/* typ-602 %txt /tests/golden/types-union-context-flow/types/txt
2208−/* src-603 %jibb /tests/golden/types-union-finite/source/jibb
2209−/* tok-603 %txt /tests/golden/types-union-finite/tokens/txt
2210−/* tre-603 %txt /tests/golden/types-union-finite/tree/txt
2211−/* typ-603 %txt /tests/golden/types-union-finite/types/txt
2212−/* src-604 %jibb /tests/golden/types-union-finite-context/source/jibb
2213−/* tok-604 %txt /tests/golden/types-union-finite-context/tokens/txt
2214−/* tre-604 %txt /tests/golden/types-union-finite-context/tree/txt
2215−/* typ-604 %txt /tests/golden/types-union-finite-context/types/txt
2216−/* src-605 %jibb /tests/golden/types-union-finite-generic/source/jibb
2217−/* tok-605 %txt /tests/golden/types-union-finite-generic/tokens/txt
2218−/* tre-605 %txt /tests/golden/types-union-finite-generic/tree/txt
2219−/* typ-605 %txt /tests/golden/types-union-finite-generic/types/txt
2220−/* src-606 %jibb /tests/golden/types-union-finite-limit/source/jibb
2221−/* tok-606 %txt /tests/golden/types-union-finite-limit/tokens/txt
2222−/* tre-606 %txt /tests/golden/types-union-finite-limit/tree/txt
2223−/* typ-606 %txt /tests/golden/types-union-finite-limit/types/txt
2224−/* src-607 %jibb /tests/golden/types-union-import/source/jibb
2225−/* tok-607 %txt /tests/golden/types-union-import/tokens/txt
2226−/* tre-607 %txt /tests/golden/types-union-import/tree/txt
2227−/* mod-607-1 %jibb /tests/golden/types-union-import/modules/ui/lib/jibb
2228−/* typ-607 %txt /tests/golden/types-union-import/types/txt
2229−/* mtre-607 %txt /tests/golden/types-union-import/module-trees/txt
2230−/* src-608 %jibb /tests/golden/types-union-local-pending/source/jibb
2231−/* tok-608 %txt /tests/golden/types-union-local-pending/tokens/txt
2232−/* tre-608 %txt /tests/golden/types-union-local-pending/tree/txt
2233−/* typ-608 %txt /tests/golden/types-union-local-pending/types/txt
2234−/* src-609 %jibb /tests/golden/types-union-nonwing-subject/source/jibb
2235−/* tok-609 %txt /tests/golden/types-union-nonwing-subject/tokens/txt
2236−/* tre-609 %txt /tests/golden/types-union-nonwing-subject/tree/txt
2237−/* typ-609 %txt /tests/golden/types-union-nonwing-subject/types/txt
2238−/* src-610 %jibb /tests/golden/types-union-overlap/source/jibb
2239−/* tok-610 %txt /tests/golden/types-union-overlap/tokens/txt
2240−/* tre-610 %txt /tests/golden/types-union-overlap/tree/txt
2241−/* typ-610 %txt /tests/golden/types-union-overlap/types/txt
2242−/* src-611 %jibb /tests/golden/types-union-overlap-nested/source/jibb
2243−/* tok-611 %txt /tests/golden/types-union-overlap-nested/tokens/txt
2244−/* tre-611 %txt /tests/golden/types-union-overlap-nested/tree/txt
2245−/* typ-611 %txt /tests/golden/types-union-overlap-nested/types/txt
2246−/* src-612 %jibb /tests/golden/types-union-pattern-result-context/source/jibb
2247−/* tok-612 %txt /tests/golden/types-union-pattern-result-context/tokens/txt
2248−/* tre-612 %txt /tests/golden/types-union-pattern-result-context/tree/txt
2249−/* typ-612 %txt /tests/golden/types-union-pattern-result-context/types/txt
2250−/* src-613 %jibb /tests/golden/types-union-pattern-result-controls/source/jibb
2251−/* tok-613 %txt /tests/golden/types-union-pattern-result-controls/tokens/txt
2252−/* tre-613 %txt /tests/golden/types-union-pattern-result-controls/tree/txt
2253−/* typ-613 %txt /tests/golden/types-union-pattern-result-controls/types/txt
2254−/* src-614 %jibb /tests/golden/types-union-patterns/source/jibb
2255−/* tok-614 %txt /tests/golden/types-union-patterns/tokens/txt
2256−/* tre-614 %txt /tests/golden/types-union-patterns/tree/txt
2257−/* typ-614 %txt /tests/golden/types-union-patterns/types/txt
2258−/* src-615 %jibb /tests/golden/types-union-patterns-generic/source/jibb
2259−/* tok-615 %txt /tests/golden/types-union-patterns-generic/tokens/txt
2260−/* tre-615 %txt /tests/golden/types-union-patterns-generic/tree/txt
2261−/* typ-615 %txt /tests/golden/types-union-patterns-generic/types/txt
2262−/* src-616 %jibb /tests/golden/types-union-patterns-import/source/jibb
2263−/* tok-616 %txt /tests/golden/types-union-patterns-import/tokens/txt
2264−/* tre-616 %txt /tests/golden/types-union-patterns-import/tree/txt
2265−/* mod-616-1 %jibb /tests/golden/types-union-patterns-import/modules/ui/lib/jibb
2266−/* typ-616 %txt /tests/golden/types-union-patterns-import/types/txt
2267−/* mtre-616 %txt /tests/golden/types-union-patterns-import/module-trees/txt
2268−/* src-617 %jibb /tests/golden/types-union-phantom-generic/source/jibb
2269−/* tok-617 %txt /tests/golden/types-union-phantom-generic/tokens/txt
2270−/* tre-617 %txt /tests/golden/types-union-phantom-generic/tree/txt
2271−/* typ-617 %txt /tests/golden/types-union-phantom-generic/types/txt
2272−/* src-618 %jibb /tests/golden/types-union-polymorphic-identity/source/jibb
2273−/* tok-618 %txt /tests/golden/types-union-polymorphic-identity/tokens/txt
2274−/* tre-618 %txt /tests/golden/types-union-polymorphic-identity/tree/txt
2275−/* mod-618-1 %jibb /tests/golden/types-union-polymorphic-identity/modules/ui/one/jibb
2276−/* mod-618-2 %jibb /tests/golden/types-union-polymorphic-identity/modules/ui/two/jibb
2277−/* typ-618 %txt /tests/golden/types-union-polymorphic-identity/types/txt
2278−/* mtre-618 %txt /tests/golden/types-union-polymorphic-identity/module-trees/txt
2279−/* src-619 %jibb /tests/golden/types-union-print-cross-namespace/source/jibb
2280−/* tok-619 %txt /tests/golden/types-union-print-cross-namespace/tokens/txt
2281−/* tre-619 %txt /tests/golden/types-union-print-cross-namespace/tree/txt
2282−/* mod-619-1 %jibb /tests/golden/types-union-print-cross-namespace/modules/ui/lib/jibb
2283−/* typ-619 %txt /tests/golden/types-union-print-cross-namespace/types/txt
2284−/* mtre-619 %txt /tests/golden/types-union-print-cross-namespace/module-trees/txt
2285−/* src-620 %jibb /tests/golden/types-union-print-distinct/source/jibb
2286−/* tok-620 %txt /tests/golden/types-union-print-distinct/tokens/txt
2287−/* tre-620 %txt /tests/golden/types-union-print-distinct/tree/txt
2288−/* mod-620-1 %jibb /tests/golden/types-union-print-distinct/modules/ui/left/jibb
2289−/* mod-620-2 %jibb /tests/golden/types-union-print-distinct/modules/ui/right/jibb
2290−/* mod-620-3 %jibb /tests/golden/types-union-print-distinct/modules/ui/twin/jibb
2291−/* typ-620 %txt /tests/golden/types-union-print-distinct/types/txt
2292−/* mtre-620 %txt /tests/golden/types-union-print-distinct/module-trees/txt
2293−/* src-621 %jibb /tests/golden/types-union-print-escape/source/jibb
2294−/* tok-621 %txt /tests/golden/types-union-print-escape/tokens/txt
2295−/* tre-621 %txt /tests/golden/types-union-print-escape/tree/txt
2296−/* typ-621 %txt /tests/golden/types-union-print-escape/types/txt
2297−/* src-622 %jibb /tests/golden/types-union-print-local/source/jibb
2298−/* tok-622 %txt /tests/golden/types-union-print-local/tokens/txt
2299−/* tre-622 %txt /tests/golden/types-union-print-local/tree/txt
2300−/* typ-622 %txt /tests/golden/types-union-print-local/types/txt
2301−/* src-623 %jibb /tests/golden/types-union-print-nested/source/jibb
2302−/* tok-623 %txt /tests/golden/types-union-print-nested/tokens/txt
2303−/* tre-623 %txt /tests/golden/types-union-print-nested/tree/txt
2304−/* typ-623 %txt /tests/golden/types-union-print-nested/types/txt
2305−/* src-624 %jibb /tests/golden/types-union-print-same-origin/source/jibb
2306−/* tok-624 %txt /tests/golden/types-union-print-same-origin/tokens/txt
2307−/* tre-624 %txt /tests/golden/types-union-print-same-origin/tree/txt
2308−/* mod-624-1 %jibb /tests/golden/types-union-print-same-origin/modules/ui/shared/jibb
2309−/* typ-624 %txt /tests/golden/types-union-print-same-origin/types/txt
2310−/* mtre-624 %txt /tests/golden/types-union-print-same-origin/module-trees/txt
2311−/* src-625 %jibb /tests/golden/types-union-print-transitive/source/jibb
2312−/* tok-625 %txt /tests/golden/types-union-print-transitive/tokens/txt
2313−/* tre-625 %txt /tests/golden/types-union-print-transitive/tree/txt
2314−/* mod-625-1 %jibb /tests/golden/types-union-print-transitive/modules/ui/mid/jibb
2315−/* mod-625-2 %jibb /tests/golden/types-union-print-transitive/modules/ui/base/jibb
2316−/* typ-625 %txt /tests/golden/types-union-print-transitive/types/txt
2317−/* mtre-625 %txt /tests/golden/types-union-print-transitive/module-trees/txt
2318−/* src-626 %jibb /tests/golden/types-union-singleton/source/jibb
2319−/* tok-626 %txt /tests/golden/types-union-singleton/tokens/txt
2320−/* tre-626 %txt /tests/golden/types-union-singleton/tree/txt
2321−/* typ-626 %txt /tests/golden/types-union-singleton/types/txt
2322−/* src-627 %jibb /tests/golden/types-union-tag-atoms/source/jibb
2323−/* tok-627 %txt /tests/golden/types-union-tag-atoms/tokens/txt
2324−/* tre-627 %txt /tests/golden/types-union-tag-atoms/tree/txt
2325−/* typ-627 %txt /tests/golden/types-union-tag-atoms/types/txt
2326−/* src-628 %jibb /tests/golden/types-union-tags/source/jibb
2327−/* tok-628 %txt /tests/golden/types-union-tags/tokens/txt
2328−/* tre-628 %txt /tests/golden/types-union-tags/tree/txt
2329−/* typ-628 %txt /tests/golden/types-union-tags/types/txt
2330−/* src-629 %jibb /tests/golden/types-union-unresolved/source/jibb
2331−/* tok-629 %txt /tests/golden/types-union-unresolved/tokens/txt
2332−/* tre-629 %txt /tests/golden/types-union-unresolved/tree/txt
2333−/* typ-629 %txt /tests/golden/types-union-unresolved/types/txt
2334−/* src-630 %jibb /tests/golden/types-union-unresolved-flow/source/jibb
2335−/* tok-630 %txt /tests/golden/types-union-unresolved-flow/tokens/txt
2336−/* tre-630 %txt /tests/golden/types-union-unresolved-flow/tree/txt
2337−/* typ-630 %txt /tests/golden/types-union-unresolved-flow/types/txt
2338−/* src-631 %jibb /tests/golden/types-unit-construction/source/jibb
2339−/* tok-631 %txt /tests/golden/types-unit-construction/tokens/txt
2340−/* tre-631 %txt /tests/golden/types-unit-construction/tree/txt
2341−/* typ-631 %txt /tests/golden/types-unit-construction/types/txt
2342−/* src-632 %jibb /tests/golden/types-unit-context/source/jibb
2343−/* tok-632 %txt /tests/golden/types-unit-context/tokens/txt
2344−/* tre-632 %txt /tests/golden/types-unit-context/tree/txt
2345−/* typ-632 %txt /tests/golden/types-unit-context/types/txt
2346−/* src-633 %jibb /tests/golden/types-unit-patterns/source/jibb
2347−/* tok-633 %txt /tests/golden/types-unit-patterns/tokens/txt
2348−/* tre-633 %txt /tests/golden/types-unit-patterns/tree/txt
2349−/* typ-633 %txt /tests/golden/types-unit-patterns/types/txt
2350−/* src-634 %jibb /tests/golden/types-value-cycle-shadow/source/jibb
2351−/* tok-634 %txt /tests/golden/types-value-cycle-shadow/tokens/txt
2352−/* tre-634 %txt /tests/golden/types-value-cycle-shadow/tree/txt
2353−/* typ-634 %txt /tests/golden/types-value-cycle-shadow/types/txt
2354−/* src-635 %jibb /tests/golden/types-value-cycle-unsupported/source/jibb
2355−/* tok-635 %txt /tests/golden/types-value-cycle-unsupported/tokens/txt
2356−/* tre-635 %txt /tests/golden/types-value-cycle-unsupported/tree/txt
2357−/* typ-635 %txt /tests/golden/types-value-cycle-unsupported/types/txt
2358−/* src-636 %jibb /tests/golden/types-value-cycles/source/jibb
2359−/* tok-636 %txt /tests/golden/types-value-cycles/tokens/txt
2360−/* tre-636 %txt /tests/golden/types-value-cycles/tree/txt
2361−/* typ-636 %txt /tests/golden/types-value-cycles/types/txt
1870+/* src-525 %jibb /tests/golden/types-prelude-ask/source/jibb
1871+/* tok-525 %txt /tests/golden/types-prelude-ask/tokens/txt
1872+/* tre-525 %txt /tests/golden/types-prelude-ask/tree/txt
1873+/* typ-525 %txt /tests/golden/types-prelude-ask/types/txt
1874+/* src-526 %jibb /tests/golden/types-prelude-bond/source/jibb
1875+/* tok-526 %txt /tests/golden/types-prelude-bond/tokens/txt
1876+/* tre-526 %txt /tests/golden/types-prelude-bond/tree/txt
1877+/* typ-526 %txt /tests/golden/types-prelude-bond/types/txt
1878+/* src-527 %jibb /tests/golden/types-prelude-cmd/source/jibb
1879+/* tok-527 %txt /tests/golden/types-prelude-cmd/tokens/txt
1880+/* tre-527 %txt /tests/golden/types-prelude-cmd/tree/txt
1881+/* typ-527 %txt /tests/golden/types-prelude-cmd/types/txt
1882+/* src-528 %jibb /tests/golden/types-prelude-direct/source/jibb
1883+/* tok-528 %txt /tests/golden/types-prelude-direct/tokens/txt
1884+/* tre-528 %txt /tests/golden/types-prelude-direct/tree/txt
1885+/* typ-528 %txt /tests/golden/types-prelude-direct/types/txt
1886+/* src-529 %jibb /tests/golden/types-prelude-functional/source/jibb
1887+/* tok-529 %txt /tests/golden/types-prelude-functional/tokens/txt
1888+/* tre-529 %txt /tests/golden/types-prelude-functional/tree/txt
1889+/* typ-529 %txt /tests/golden/types-prelude-functional/types/txt
1890+/* src-530 %jibb /tests/golden/types-prelude-generic-alias/source/jibb
1891+/* tok-530 %txt /tests/golden/types-prelude-generic-alias/tokens/txt
1892+/* tre-530 %txt /tests/golden/types-prelude-generic-alias/tree/txt
1893+/* mod-530-1 %jibb /tests/golden/types-prelude-generic-alias/modules/ui/alias-helper/jibb
1894+/* typ-530 %txt /tests/golden/types-prelude-generic-alias/types/txt
1895+/* mtre-530 %txt /tests/golden/types-prelude-generic-alias/module-trees/txt
1896+/* src-531 %jibb /tests/golden/types-prelude-interface/source/jibb
1897+/* tok-531 %txt /tests/golden/types-prelude-interface/tokens/txt
1898+/* tre-531 %txt /tests/golden/types-prelude-interface/tree/txt
1899+/* mod-531-1 %jibb /tests/golden/types-prelude-interface/modules/ui/left/jibb
1900+/* mod-531-2 %jibb /tests/golden/types-prelude-interface/modules/ui/right/jibb
1901+/* typ-531 %txt /tests/golden/types-prelude-interface/types/txt
1902+/* mtre-531 %txt /tests/golden/types-prelude-interface/module-trees/txt
1903+/* src-532 %jibb /tests/golden/types-prelude-like/source/jibb
1904+/* tok-532 %txt /tests/golden/types-prelude-like/tokens/txt
1905+/* tre-532 %txt /tests/golden/types-prelude-like/tree/txt
1906+/* typ-532 %txt /tests/golden/types-prelude-like/types/txt
1907+/* src-533 %jibb /tests/golden/types-prelude-list-alias/source/jibb
1908+/* tok-533 %txt /tests/golden/types-prelude-list-alias/tokens/txt
1909+/* tre-533 %txt /tests/golden/types-prelude-list-alias/tree/txt
1910+/* typ-533 %txt /tests/golden/types-prelude-list-alias/types/txt
1911+/* src-534 %jibb /tests/golden/types-prelude-list-functions/source/jibb
1912+/* tok-534 %txt /tests/golden/types-prelude-list-functions/tokens/txt
1913+/* tre-534 %txt /tests/golden/types-prelude-list-functions/tree/txt
1914+/* mod-534-1 %jibb /tests/golden/types-prelude-list-functions/modules/ui/lib/jibb
1915+/* typ-534 %txt /tests/golden/types-prelude-list-functions/types/txt
1916+/* mtre-534 %txt /tests/golden/types-prelude-list-functions/module-trees/txt
1917+/* src-535 %jibb /tests/golden/types-prelude-list-helpers/source/jibb
1918+/* tok-535 %txt /tests/golden/types-prelude-list-helpers/tokens/txt
1919+/* tre-535 %txt /tests/golden/types-prelude-list-helpers/tree/txt
1920+/* typ-535 %txt /tests/golden/types-prelude-list-helpers/types/txt
1921+/* src-536 %jibb /tests/golden/types-prelude-predicates/source/jibb
1922+/* tok-536 %txt /tests/golden/types-prelude-predicates/tokens/txt
1923+/* tre-536 %txt /tests/golden/types-prelude-predicates/tree/txt
1924+/* typ-536 %txt /tests/golden/types-prelude-predicates/types/txt
1925+/* src-537 %jibb /tests/golden/types-prelude-unit-helpers/source/jibb
1926+/* tok-537 %txt /tests/golden/types-prelude-unit-helpers/tokens/txt
1927+/* tre-537 %txt /tests/golden/types-prelude-unit-helpers/tree/txt
1928+/* typ-537 %txt /tests/golden/types-prelude-unit-helpers/types/txt
1929+/* src-538 %jibb /tests/golden/types-proj-explicit-context/source/jibb
1930+/* tok-538 %txt /tests/golden/types-proj-explicit-context/tokens/txt
1931+/* tre-538 %txt /tests/golden/types-proj-explicit-context/tree/txt
1932+/* typ-538 %txt /tests/golden/types-proj-explicit-context/types/txt
1933+/* src-539 %jibb /tests/golden/types-proj-nested-no-implicit/source/jibb
1934+/* tok-539 %txt /tests/golden/types-proj-nested-no-implicit/tokens/txt
1935+/* tre-539 %txt /tests/golden/types-proj-nested-no-implicit/tree/txt
1936+/* typ-539 %txt /tests/golden/types-proj-nested-no-implicit/types/txt
1937+/* src-540 %jibb /tests/golden/types-proj-reserved-imported-definition/source/jibb
1938+/* tok-540 %txt /tests/golden/types-proj-reserved-imported-definition/tokens/txt
1939+/* tre-540 %txt /tests/golden/types-proj-reserved-imported-definition/tree/txt
1940+/* mod-540-1 %jibb /tests/golden/types-proj-reserved-imported-definition/modules/ui/lib/jibb
1941+/* typ-540 %txt /tests/golden/types-proj-reserved-imported-definition/types/txt
1942+/* mtre-540 %txt /tests/golden/types-proj-reserved-imported-definition/module-trees/txt
1943+/* src-541 %jibb /tests/golden/types-proj-reserved-jibb-import/source/jibb
1944+/* tok-541 %txt /tests/golden/types-proj-reserved-jibb-import/tokens/txt
1945+/* tre-541 %txt /tests/golden/types-proj-reserved-jibb-import/tree/txt
1946+/* mod-541-1 %jibb /tests/golden/types-proj-reserved-jibb-import/modules/ui/lib/jibb
1947+/* typ-541 %txt /tests/golden/types-proj-reserved-jibb-import/types/txt
1948+/* mtre-541 %txt /tests/golden/types-proj-reserved-jibb-import/module-trees/txt
1949+/* src-542 %jibb /tests/golden/types-proj-reserved-local/source/jibb
1950+/* tok-542 %txt /tests/golden/types-proj-reserved-local/tokens/txt
1951+/* tre-542 %txt /tests/golden/types-proj-reserved-local/tree/txt
1952+/* typ-542 %txt /tests/golden/types-proj-reserved-local/types/txt
1953+/* src-543 %jibb /tests/golden/types-proj-reserved-local-mold/source/jibb
1954+/* tok-543 %txt /tests/golden/types-proj-reserved-local-mold/tokens/txt
1955+/* tre-543 %txt /tests/golden/types-proj-reserved-local-mold/tree/txt
1956+/* typ-543 %txt /tests/golden/types-proj-reserved-local-mold/types/txt
1957+/* src-544 %jibb /tests/golden/types-proj-reserved-mark-import/source/jibb
1958+/* tok-544 %txt /tests/golden/types-proj-reserved-mark-import/tokens/txt
1959+/* tre-544 %txt /tests/golden/types-proj-reserved-mark-import/tree/txt
1960+/* typ-544 %txt /tests/golden/types-proj-reserved-mark-import/types/txt
1961+/* src-545 %jibb /tests/golden/types-proj-reserved-mold/source/jibb
1962+/* tok-545 %txt /tests/golden/types-proj-reserved-mold/tokens/txt
1963+/* tre-545 %txt /tests/golden/types-proj-reserved-mold/tree/txt
1964+/* typ-545 %txt /tests/golden/types-proj-reserved-mold/types/txt
1965+/* src-546 %jibb /tests/golden/types-proj-reserved-pattern/source/jibb
1966+/* tok-546 %txt /tests/golden/types-proj-reserved-pattern/tokens/txt
1967+/* tre-546 %txt /tests/golden/types-proj-reserved-pattern/tree/txt
1968+/* typ-546 %txt /tests/golden/types-proj-reserved-pattern/types/txt
1969+/* src-547 %jibb /tests/golden/types-proj-reserved-positive/source/jibb
1970+/* tok-547 %txt /tests/golden/types-proj-reserved-positive/tokens/txt
1971+/* tre-547 %txt /tests/golden/types-proj-reserved-positive/tree/txt
1972+/* typ-547 %txt /tests/golden/types-proj-reserved-positive/types/txt
1973+/* src-548 %jibb /tests/golden/types-proj-reserved-sample/source/jibb
1974+/* tok-548 %txt /tests/golden/types-proj-reserved-sample/tokens/txt
1975+/* tre-548 %txt /tests/golden/types-proj-reserved-sample/tree/txt
1976+/* typ-548 %txt /tests/golden/types-proj-reserved-sample/types/txt
1977+/* src-549 %jibb /tests/golden/types-proj-reserved-sur-import/source/jibb
1978+/* tok-549 %txt /tests/golden/types-proj-reserved-sur-import/tokens/txt
1979+/* tre-549 %txt /tests/golden/types-proj-reserved-sur-import/tree/txt
1980+/* typ-549 %txt /tests/golden/types-proj-reserved-sur-import/types/txt
1981+/* src-550 %jibb /tests/golden/types-proj-reserved-unused-pattern/source/jibb
1982+/* tok-550 %txt /tests/golden/types-proj-reserved-unused-pattern/tokens/txt
1983+/* tre-550 %txt /tests/golden/types-proj-reserved-unused-pattern/tree/txt
1984+/* typ-550 %txt /tests/golden/types-proj-reserved-unused-pattern/types/txt
1985+/* src-551 %jibb /tests/golden/types-proj-reserved-unused-sample/source/jibb
1986+/* tok-551 %txt /tests/golden/types-proj-reserved-unused-sample/tokens/txt
1987+/* tre-551 %txt /tests/golden/types-proj-reserved-unused-sample/tree/txt
1988+/* typ-551 %txt /tests/golden/types-proj-reserved-unused-sample/types/txt
1989+/* src-552 %jibb /tests/golden/types-proj-reserved-unused-value/source/jibb
1990+/* tok-552 %txt /tests/golden/types-proj-reserved-unused-value/tokens/txt
1991+/* tre-552 %txt /tests/golden/types-proj-reserved-unused-value/tree/txt
1992+/* typ-552 %txt /tests/golden/types-proj-reserved-unused-value/types/txt
1993+/* src-553 %jibb /tests/golden/types-proj-reserved-value/source/jibb
1994+/* tok-553 %txt /tests/golden/types-proj-reserved-value/tokens/txt
1995+/* tre-553 %txt /tests/golden/types-proj-reserved-value/tree/txt
1996+/* typ-553 %txt /tests/golden/types-proj-reserved-value/types/txt
1997+/* src-554 %jibb /tests/golden/types-proj-single-duplicate/source/jibb
1998+/* tok-554 %txt /tests/golden/types-proj-single-duplicate/tokens/txt
1999+/* tre-554 %txt /tests/golden/types-proj-single-duplicate/tree/txt
2000+/* typ-554 %txt /tests/golden/types-proj-single-duplicate/types/txt
2001+/* src-555 %jibb /tests/golden/types-proj-single-field/source/jibb
2002+/* tok-555 %txt /tests/golden/types-proj-single-field/tokens/txt
2003+/* tre-555 %txt /tests/golden/types-proj-single-field/tree/txt
2004+/* typ-555 %txt /tests/golden/types-proj-single-field/types/txt
2005+/* src-556 %jibb /tests/golden/types-proj-single-sample-face/source/jibb
2006+/* tok-556 %txt /tests/golden/types-proj-single-sample-face/tokens/txt
2007+/* tre-556 %txt /tests/golden/types-proj-single-sample-face/tree/txt
2008+/* typ-556 %txt /tests/golden/types-proj-single-sample-face/types/txt
2009+/* src-557 %jibb /tests/golden/types-proj-single-wrapped/source/jibb
2010+/* tok-557 %txt /tests/golden/types-proj-single-wrapped/tokens/txt
2011+/* tre-557 %txt /tests/golden/types-proj-single-wrapped/tree/txt
2012+/* typ-557 %txt /tests/golden/types-proj-single-wrapped/types/txt
2013+/* src-558 %jibb /tests/golden/types-qath-faces/source/jibb
2014+/* tok-558 %txt /tests/golden/types-qath-faces/tokens/txt
2015+/* tre-558 %txt /tests/golden/types-qath-faces/tree/txt
2016+/* typ-558 %txt /tests/golden/types-qath-faces/types/txt
2017+/* src-559 %jibb /tests/golden/types-qath-holes/source/jibb
2018+/* tok-559 %txt /tests/golden/types-qath-holes/tokens/txt
2019+/* tre-559 %txt /tests/golden/types-qath-holes/tree/txt
2020+/* typ-559 %txt /tests/golden/types-qath-holes/types/txt
2021+/* src-560 %jibb /tests/golden/types-qath-module-identity/source/jibb
2022+/* tok-560 %txt /tests/golden/types-qath-module-identity/tokens/txt
2023+/* tre-560 %txt /tests/golden/types-qath-module-identity/tree/txt
2024+/* mod-560-1 %jibb /tests/golden/types-qath-module-identity/modules/ui/one/jibb
2025+/* mod-560-2 %jibb /tests/golden/types-qath-module-identity/modules/ui/two/jibb
2026+/* mod-560-3 %jibb /tests/golden/types-qath-module-identity/modules/ui/mid/jibb
2027+/* typ-560 %txt /tests/golden/types-qath-module-identity/types/txt
2028+/* mtre-560 %txt /tests/golden/types-qath-module-identity/module-trees/txt
2029+/* src-561 %jibb /tests/golden/types-qath-recursive/source/jibb
2030+/* tok-561 %txt /tests/golden/types-qath-recursive/tokens/txt
2031+/* tre-561 %txt /tests/golden/types-qath-recursive/tree/txt
2032+/* typ-561 %txt /tests/golden/types-qath-recursive/types/txt
2033+/* src-562 %jibb /tests/golden/types-record-bound-variable/source/jibb
2034+/* tok-562 %txt /tests/golden/types-record-bound-variable/tokens/txt
2035+/* tre-562 %txt /tests/golden/types-record-bound-variable/tree/txt
2036+/* typ-562 %txt /tests/golden/types-record-bound-variable/types/txt
2037+/* src-563 %jibb /tests/golden/types-record-cast-context/source/jibb
2038+/* tok-563 %txt /tests/golden/types-record-cast-context/tokens/txt
2039+/* tre-563 %txt /tests/golden/types-record-cast-context/tree/txt
2040+/* typ-563 %txt /tests/golden/types-record-cast-context/types/txt
2041+/* src-564 %jibb /tests/golden/types-record-change/source/jibb
2042+/* tok-564 %txt /tests/golden/types-record-change/tokens/txt
2043+/* tre-564 %txt /tests/golden/types-record-change/tree/txt
2044+/* typ-564 %txt /tests/golden/types-record-change/types/txt
2045+/* src-565 %jibb /tests/golden/types-record-change-generic/source/jibb
2046+/* tok-565 %txt /tests/golden/types-record-change-generic/tokens/txt
2047+/* tre-565 %txt /tests/golden/types-record-change-generic/tree/txt
2048+/* typ-565 %txt /tests/golden/types-record-change-generic/types/txt
2049+/* src-566 %jibb /tests/golden/types-record-faces/source/jibb
2050+/* tok-566 %txt /tests/golden/types-record-faces/tokens/txt
2051+/* tre-566 %txt /tests/golden/types-record-faces/tree/txt
2052+/* typ-566 %txt /tests/golden/types-record-faces/types/txt
2053+/* src-567 %jibb /tests/golden/types-record-field-edit-separate/source/jibb
2054+/* tok-567 %txt /tests/golden/types-record-field-edit-separate/tokens/txt
2055+/* tre-567 %txt /tests/golden/types-record-field-edit-separate/tree/txt
2056+/* typ-567 %txt /tests/golden/types-record-field-edit-separate/types/txt
2057+/* src-568 %jibb /tests/golden/types-record-field-expr-duplicate/source/jibb
2058+/* tok-568 %txt /tests/golden/types-record-field-expr-duplicate/tokens/txt
2059+/* tre-568 %txt /tests/golden/types-record-field-expr-duplicate/tree/txt
2060+/* typ-568 %txt /tests/golden/types-record-field-expr-duplicate/types/txt
2061+/* src-569 %jibb /tests/golden/types-record-field-expr-separate/source/jibb
2062+/* tok-569 %txt /tests/golden/types-record-field-expr-separate/tokens/txt
2063+/* tre-569 %txt /tests/golden/types-record-field-expr-separate/tree/txt
2064+/* typ-569 %txt /tests/golden/types-record-field-expr-separate/types/txt
2065+/* src-570 %jibb /tests/golden/types-record-field-module-reachable/source/jibb
2066+/* tok-570 %txt /tests/golden/types-record-field-module-reachable/tokens/txt
2067+/* tre-570 %txt /tests/golden/types-record-field-module-reachable/tree/txt
2068+/* mod-570-1 %jibb /tests/golden/types-record-field-module-reachable/modules/ui/lib/jibb
2069+/* typ-570 %txt /tests/golden/types-record-field-module-reachable/types/txt
2070+/* mtre-570 %txt /tests/golden/types-record-field-module-reachable/module-trees/txt
2071+/* src-571 %jibb /tests/golden/types-record-field-module-unused/source/jibb
2072+/* tok-571 %txt /tests/golden/types-record-field-module-unused/tokens/txt
2073+/* tre-571 %txt /tests/golden/types-record-field-module-unused/tree/txt
2074+/* mod-571-1 %jibb /tests/golden/types-record-field-module-unused/modules/ui/good/jibb
2075+/* mod-571-2 %jibb /tests/golden/types-record-field-module-unused/modules/ui/unused/jibb
2076+/* typ-571 %txt /tests/golden/types-record-field-module-unused/types/txt
2077+/* mtre-571 %txt /tests/golden/types-record-field-module-unused/module-trees/txt
2078+/* src-572 %jibb /tests/golden/types-record-field-nested-mold/source/jibb
2079+/* tok-572 %txt /tests/golden/types-record-field-nested-mold/tokens/txt
2080+/* tre-572 %txt /tests/golden/types-record-field-nested-mold/tree/txt
2081+/* typ-572 %txt /tests/golden/types-record-field-nested-mold/types/txt
2082+/* src-573 %jibb /tests/golden/types-record-field-outer-inner/source/jibb
2083+/* tok-573 %txt /tests/golden/types-record-field-outer-inner/tokens/txt
2084+/* tre-573 %txt /tests/golden/types-record-field-outer-inner/tree/txt
2085+/* typ-573 %txt /tests/golden/types-record-field-outer-inner/types/txt
2086+/* src-574 %jibb /tests/golden/types-record-field-sample-duplicate/source/jibb
2087+/* tok-574 %txt /tests/golden/types-record-field-sample-duplicate/tokens/txt
2088+/* tre-574 %txt /tests/golden/types-record-field-sample-duplicate/tree/txt
2089+/* typ-574 %txt /tests/golden/types-record-field-sample-duplicate/types/txt
2090+/* src-575 %jibb /tests/golden/types-record-field-separate-molds/source/jibb
2091+/* tok-575 %txt /tests/golden/types-record-field-separate-molds/tokens/txt
2092+/* tre-575 %txt /tests/golden/types-record-field-separate-molds/tree/txt
2093+/* typ-575 %txt /tests/golden/types-record-field-separate-molds/types/txt
2094+/* src-576 %jibb /tests/golden/types-record-field-unused-mold/source/jibb
2095+/* tok-576 %txt /tests/golden/types-record-field-unused-mold/tokens/txt
2096+/* tre-576 %txt /tests/golden/types-record-field-unused-mold/tree/txt
2097+/* typ-576 %txt /tests/golden/types-record-field-unused-mold/types/txt
2098+/* src-577 %jibb /tests/golden/types-record-import/source/jibb
2099+/* tok-577 %txt /tests/golden/types-record-import/tokens/txt
2100+/* tre-577 %txt /tests/golden/types-record-import/tree/txt
2101+/* mod-577-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
2102+/* typ-577 %txt /tests/golden/types-record-import/types/txt
2103+/* mtre-577 %txt /tests/golden/types-record-import/module-trees/txt
2104+/* src-578 %jibb /tests/golden/types-record-local-scheme/source/jibb
2105+/* tok-578 %txt /tests/golden/types-record-local-scheme/tokens/txt
2106+/* tre-578 %txt /tests/golden/types-record-local-scheme/tree/txt
2107+/* typ-578 %txt /tests/golden/types-record-local-scheme/types/txt
2108+/* src-579 %jibb /tests/golden/types-record-nested/source/jibb
2109+/* tok-579 %txt /tests/golden/types-record-nested/tokens/txt
2110+/* tre-579 %txt /tests/golden/types-record-nested/tree/txt
2111+/* typ-579 %txt /tests/golden/types-record-nested/types/txt
2112+/* src-580 %jibb /tests/golden/types-record-to-tuple/source/jibb
2113+/* tok-580 %txt /tests/golden/types-record-to-tuple/tokens/txt
2114+/* tre-580 %txt /tests/golden/types-record-to-tuple/tree/txt
2115+/* typ-580 %txt /tests/golden/types-record-to-tuple/types/txt
2116+/* src-581 %jibb /tests/golden/types-recursion-scc-failures/source/jibb
2117+/* tok-581 %txt /tests/golden/types-recursion-scc-failures/tokens/txt
2118+/* tre-581 %txt /tests/golden/types-recursion-scc-failures/tree/txt
2119+/* typ-581 %txt /tests/golden/types-recursion-scc-failures/types/txt
2120+/* src-582 %jibb /tests/golden/types-recursion-scc-groups/source/jibb
2121+/* tok-582 %txt /tests/golden/types-recursion-scc-groups/tokens/txt
2122+/* tre-582 %txt /tests/golden/types-recursion-scc-groups/tree/txt
2123+/* typ-582 %txt /tests/golden/types-recursion-scc-groups/types/txt
2124+/* src-583 %jibb /tests/golden/types-recursion-scc-import/source/jibb
2125+/* tok-583 %txt /tests/golden/types-recursion-scc-import/tokens/txt
2126+/* tre-583 %txt /tests/golden/types-recursion-scc-import/tree/txt
2127+/* mod-583-1 %jibb /tests/golden/types-recursion-scc-import/modules/ui/lib/jibb
2128+/* typ-583 %txt /tests/golden/types-recursion-scc-import/types/txt
2129+/* mtre-583 %txt /tests/golden/types-recursion-scc-import/module-trees/txt
2130+/* src-584 %jibb /tests/golden/types-recursion-scc-import-bad/source/jibb
2131+/* tok-584 %txt /tests/golden/types-recursion-scc-import-bad/tokens/txt
2132+/* tre-584 %txt /tests/golden/types-recursion-scc-import-bad/tree/txt
2133+/* mod-584-1 %jibb /tests/golden/types-recursion-scc-import-bad/modules/ui/lib/jibb
2134+/* typ-584 %txt /tests/golden/types-recursion-scc-import-bad/types/txt
2135+/* mtre-584 %txt /tests/golden/types-recursion-scc-import-bad/module-trees/txt
2136+/* src-585 %jibb /tests/golden/types-recursion-scc-local/source/jibb
2137+/* tok-585 %txt /tests/golden/types-recursion-scc-local/tokens/txt
2138+/* tre-585 %txt /tests/golden/types-recursion-scc-local/tree/txt
2139+/* typ-585 %txt /tests/golden/types-recursion-scc-local/types/txt
2140+/* src-586 %jibb /tests/golden/types-recursion-scc-order/source/jibb
2141+/* tok-586 %txt /tests/golden/types-recursion-scc-order/tokens/txt
2142+/* tre-586 %txt /tests/golden/types-recursion-scc-order/tree/txt
2143+/* typ-586 %txt /tests/golden/types-recursion-scc-order/types/txt
2144+/* src-587 %jibb /tests/golden/types-recursion-scc-shadow/source/jibb
2145+/* tok-587 %txt /tests/golden/types-recursion-scc-shadow/tokens/txt
2146+/* tre-587 %txt /tests/golden/types-recursion-scc-shadow/tree/txt
2147+/* typ-587 %txt /tests/golden/types-recursion-scc-shadow/types/txt
2148+/* src-588 %jibb /tests/golden/types-recursive-branch/source/jibb
2149+/* tok-588 %txt /tests/golden/types-recursive-branch/tokens/txt
2150+/* tre-588 %txt /tests/golden/types-recursive-branch/tree/txt
2151+/* typ-588 %txt /tests/golden/types-recursive-branch/types/txt
2152+/* src-589 %jibb /tests/golden/types-recursive-gate/source/jibb
2153+/* tok-589 %txt /tests/golden/types-recursive-gate/tokens/txt
2154+/* tre-589 %txt /tests/golden/types-recursive-gate/tree/txt
2155+/* typ-589 %txt /tests/golden/types-recursive-gate/types/txt
2156+/* src-590 %jibb /tests/golden/types-recursive-sample/source/jibb
2157+/* tok-590 %txt /tests/golden/types-recursive-sample/tokens/txt
2158+/* tre-590 %txt /tests/golden/types-recursive-sample/tree/txt
2159+/* typ-590 %txt /tests/golden/types-recursive-sample/types/txt
2160+/* src-591 %jibb /tests/golden/types-scope-library-poke/source/jibb
2161+/* tok-591 %txt /tests/golden/types-scope-library-poke/tokens/txt
2162+/* tre-591 %txt /tests/golden/types-scope-library-poke/tree/txt
2163+/* typ-591 %txt /tests/golden/types-scope-library-poke/types/txt
2164+/* src-592 %jibb /tests/golden/types-scope-root-api/source/jibb
2165+/* tok-592 %txt /tests/golden/types-scope-root-api/tokens/txt
2166+/* tre-592 %txt /tests/golden/types-scope-root-api/tree/txt
2167+/* typ-592 %txt /tests/golden/types-scope-root-api/types/txt
2168+/* src-593 %jibb /tests/golden/types-scope-store-duplicate/source/jibb
2169+/* tok-593 %txt /tests/golden/types-scope-store-duplicate/tokens/txt
2170+/* tre-593 %txt /tests/golden/types-scope-store-duplicate/tree/txt
2171+/* typ-593 %txt /tests/golden/types-scope-store-duplicate/types/txt
2172+/* src-594 %jibb /tests/golden/types-scope-store-shadow/source/jibb
2173+/* tok-594 %txt /tests/golden/types-scope-store-shadow/tokens/txt
2174+/* tre-594 %txt /tests/golden/types-scope-store-shadow/tree/txt
2175+/* typ-594 %txt /tests/golden/types-scope-store-shadow/types/txt
2176+/* src-595 %jibb /tests/golden/types-single-case-pattern/source/jibb
2177+/* tok-595 %txt /tests/golden/types-single-case-pattern/tokens/txt
2178+/* tre-595 %txt /tests/golden/types-single-case-pattern/tree/txt
2179+/* typ-595 %txt /tests/golden/types-single-case-pattern/types/txt
2180+/* src-596 %jibb /tests/golden/types-string-interpolation/source/jibb
2181+/* tok-596 %txt /tests/golden/types-string-interpolation/tokens/txt
2182+/* tre-596 %txt /tests/golden/types-string-interpolation/tree/txt
2183+/* typ-596 %txt /tests/golden/types-string-interpolation/types/txt
2184+/* src-597 %jibb /tests/golden/types-tuple-context/source/jibb
2185+/* tok-597 %txt /tests/golden/types-tuple-context/tokens/txt
2186+/* tre-597 %txt /tests/golden/types-tuple-context/tree/txt
2187+/* typ-597 %txt /tests/golden/types-tuple-context/types/txt
2188+/* src-598 %jibb /tests/golden/types-tuple-context-nested/source/jibb
2189+/* tok-598 %txt /tests/golden/types-tuple-context-nested/tokens/txt
2190+/* tre-598 %txt /tests/golden/types-tuple-context-nested/tree/txt
2191+/* typ-598 %txt /tests/golden/types-tuple-context-nested/types/txt
2192+/* src-599 %jibb /tests/golden/types-union-alias/source/jibb
2193+/* tok-599 %txt /tests/golden/types-union-alias/tokens/txt
2194+/* tre-599 %txt /tests/golden/types-union-alias/tree/txt
2195+/* typ-599 %txt /tests/golden/types-union-alias/types/txt
2196+/* src-600 %jibb /tests/golden/types-union-branch-context/source/jibb
2197+/* tok-600 %txt /tests/golden/types-union-branch-context/tokens/txt
2198+/* tre-600 %txt /tests/golden/types-union-branch-context/tree/txt
2199+/* typ-600 %txt /tests/golden/types-union-branch-context/types/txt
2200+/* src-601 %jibb /tests/golden/types-union-branch-pending/source/jibb
2201+/* tok-601 %txt /tests/golden/types-union-branch-pending/tokens/txt
2202+/* tre-601 %txt /tests/golden/types-union-branch-pending/tree/txt
2203+/* typ-601 %txt /tests/golden/types-union-branch-pending/types/txt
2204+/* src-602 %jibb /tests/golden/types-union-constructor-shape/source/jibb
2205+/* tok-602 %txt /tests/golden/types-union-constructor-shape/tokens/txt
2206+/* tre-602 %txt /tests/golden/types-union-constructor-shape/tree/txt
2207+/* typ-602 %txt /tests/golden/types-union-constructor-shape/types/txt
2208+/* src-603 %jibb /tests/golden/types-union-context-flow/source/jibb
2209+/* tok-603 %txt /tests/golden/types-union-context-flow/tokens/txt
2210+/* tre-603 %txt /tests/golden/types-union-context-flow/tree/txt
2211+/* typ-603 %txt /tests/golden/types-union-context-flow/types/txt
2212+/* src-604 %jibb /tests/golden/types-union-finite/source/jibb
2213+/* tok-604 %txt /tests/golden/types-union-finite/tokens/txt
2214+/* tre-604 %txt /tests/golden/types-union-finite/tree/txt
2215+/* typ-604 %txt /tests/golden/types-union-finite/types/txt
2216+/* src-605 %jibb /tests/golden/types-union-finite-context/source/jibb
2217+/* tok-605 %txt /tests/golden/types-union-finite-context/tokens/txt
2218+/* tre-605 %txt /tests/golden/types-union-finite-context/tree/txt
2219+/* typ-605 %txt /tests/golden/types-union-finite-context/types/txt
2220+/* src-606 %jibb /tests/golden/types-union-finite-generic/source/jibb
2221+/* tok-606 %txt /tests/golden/types-union-finite-generic/tokens/txt
2222+/* tre-606 %txt /tests/golden/types-union-finite-generic/tree/txt
2223+/* typ-606 %txt /tests/golden/types-union-finite-generic/types/txt
2224+/* src-607 %jibb /tests/golden/types-union-finite-limit/source/jibb
2225+/* tok-607 %txt /tests/golden/types-union-finite-limit/tokens/txt
2226+/* tre-607 %txt /tests/golden/types-union-finite-limit/tree/txt
2227+/* typ-607 %txt /tests/golden/types-union-finite-limit/types/txt
2228+/* src-608 %jibb /tests/golden/types-union-import/source/jibb
2229+/* tok-608 %txt /tests/golden/types-union-import/tokens/txt
2230+/* tre-608 %txt /tests/golden/types-union-import/tree/txt
2231+/* mod-608-1 %jibb /tests/golden/types-union-import/modules/ui/lib/jibb
2232+/* typ-608 %txt /tests/golden/types-union-import/types/txt
2233+/* mtre-608 %txt /tests/golden/types-union-import/module-trees/txt
2234+/* src-609 %jibb /tests/golden/types-union-local-pending/source/jibb
2235+/* tok-609 %txt /tests/golden/types-union-local-pending/tokens/txt
2236+/* tre-609 %txt /tests/golden/types-union-local-pending/tree/txt
2237+/* typ-609 %txt /tests/golden/types-union-local-pending/types/txt
2238+/* src-610 %jibb /tests/golden/types-union-nonwing-subject/source/jibb
2239+/* tok-610 %txt /tests/golden/types-union-nonwing-subject/tokens/txt
2240+/* tre-610 %txt /tests/golden/types-union-nonwing-subject/tree/txt
2241+/* typ-610 %txt /tests/golden/types-union-nonwing-subject/types/txt
2242+/* src-611 %jibb /tests/golden/types-union-overlap/source/jibb
2243+/* tok-611 %txt /tests/golden/types-union-overlap/tokens/txt
2244+/* tre-611 %txt /tests/golden/types-union-overlap/tree/txt
2245+/* typ-611 %txt /tests/golden/types-union-overlap/types/txt
2246+/* src-612 %jibb /tests/golden/types-union-overlap-nested/source/jibb
2247+/* tok-612 %txt /tests/golden/types-union-overlap-nested/tokens/txt
2248+/* tre-612 %txt /tests/golden/types-union-overlap-nested/tree/txt
2249+/* typ-612 %txt /tests/golden/types-union-overlap-nested/types/txt
2250+/* src-613 %jibb /tests/golden/types-union-pattern-result-context/source/jibb
2251+/* tok-613 %txt /tests/golden/types-union-pattern-result-context/tokens/txt
2252+/* tre-613 %txt /tests/golden/types-union-pattern-result-context/tree/txt
2253+/* typ-613 %txt /tests/golden/types-union-pattern-result-context/types/txt
2254+/* src-614 %jibb /tests/golden/types-union-pattern-result-controls/source/jibb
2255+/* tok-614 %txt /tests/golden/types-union-pattern-result-controls/tokens/txt
2256+/* tre-614 %txt /tests/golden/types-union-pattern-result-controls/tree/txt
2257+/* typ-614 %txt /tests/golden/types-union-pattern-result-controls/types/txt
2258+/* src-615 %jibb /tests/golden/types-union-patterns/source/jibb
2259+/* tok-615 %txt /tests/golden/types-union-patterns/tokens/txt
2260+/* tre-615 %txt /tests/golden/types-union-patterns/tree/txt
2261+/* typ-615 %txt /tests/golden/types-union-patterns/types/txt
2262+/* src-616 %jibb /tests/golden/types-union-patterns-generic/source/jibb
2263+/* tok-616 %txt /tests/golden/types-union-patterns-generic/tokens/txt
2264+/* tre-616 %txt /tests/golden/types-union-patterns-generic/tree/txt
2265+/* typ-616 %txt /tests/golden/types-union-patterns-generic/types/txt
2266+/* src-617 %jibb /tests/golden/types-union-patterns-import/source/jibb
2267+/* tok-617 %txt /tests/golden/types-union-patterns-import/tokens/txt
2268+/* tre-617 %txt /tests/golden/types-union-patterns-import/tree/txt
2269+/* mod-617-1 %jibb /tests/golden/types-union-patterns-import/modules/ui/lib/jibb
2270+/* typ-617 %txt /tests/golden/types-union-patterns-import/types/txt
2271+/* mtre-617 %txt /tests/golden/types-union-patterns-import/module-trees/txt
2272+/* src-618 %jibb /tests/golden/types-union-phantom-generic/source/jibb
2273+/* tok-618 %txt /tests/golden/types-union-phantom-generic/tokens/txt
2274+/* tre-618 %txt /tests/golden/types-union-phantom-generic/tree/txt
2275+/* typ-618 %txt /tests/golden/types-union-phantom-generic/types/txt
2276+/* src-619 %jibb /tests/golden/types-union-polymorphic-identity/source/jibb
2277+/* tok-619 %txt /tests/golden/types-union-polymorphic-identity/tokens/txt
2278+/* tre-619 %txt /tests/golden/types-union-polymorphic-identity/tree/txt
2279+/* mod-619-1 %jibb /tests/golden/types-union-polymorphic-identity/modules/ui/one/jibb
2280+/* mod-619-2 %jibb /tests/golden/types-union-polymorphic-identity/modules/ui/two/jibb
2281+/* typ-619 %txt /tests/golden/types-union-polymorphic-identity/types/txt
2282+/* mtre-619 %txt /tests/golden/types-union-polymorphic-identity/module-trees/txt
2283+/* src-620 %jibb /tests/golden/types-union-print-cross-namespace/source/jibb
2284+/* tok-620 %txt /tests/golden/types-union-print-cross-namespace/tokens/txt
2285+/* tre-620 %txt /tests/golden/types-union-print-cross-namespace/tree/txt
2286+/* mod-620-1 %jibb /tests/golden/types-union-print-cross-namespace/modules/ui/lib/jibb
2287+/* typ-620 %txt /tests/golden/types-union-print-cross-namespace/types/txt
2288+/* mtre-620 %txt /tests/golden/types-union-print-cross-namespace/module-trees/txt
2289+/* src-621 %jibb /tests/golden/types-union-print-distinct/source/jibb
2290+/* tok-621 %txt /tests/golden/types-union-print-distinct/tokens/txt
2291+/* tre-621 %txt /tests/golden/types-union-print-distinct/tree/txt
2292+/* mod-621-1 %jibb /tests/golden/types-union-print-distinct/modules/ui/left/jibb
2293+/* mod-621-2 %jibb /tests/golden/types-union-print-distinct/modules/ui/right/jibb
2294+/* mod-621-3 %jibb /tests/golden/types-union-print-distinct/modules/ui/twin/jibb
2295+/* typ-621 %txt /tests/golden/types-union-print-distinct/types/txt
2296+/* mtre-621 %txt /tests/golden/types-union-print-distinct/module-trees/txt
2297+/* src-622 %jibb /tests/golden/types-union-print-escape/source/jibb
2298+/* tok-622 %txt /tests/golden/types-union-print-escape/tokens/txt
2299+/* tre-622 %txt /tests/golden/types-union-print-escape/tree/txt
2300+/* typ-622 %txt /tests/golden/types-union-print-escape/types/txt
2301+/* src-623 %jibb /tests/golden/types-union-print-local/source/jibb
2302+/* tok-623 %txt /tests/golden/types-union-print-local/tokens/txt
2303+/* tre-623 %txt /tests/golden/types-union-print-local/tree/txt
2304+/* typ-623 %txt /tests/golden/types-union-print-local/types/txt
2305+/* src-624 %jibb /tests/golden/types-union-print-nested/source/jibb
2306+/* tok-624 %txt /tests/golden/types-union-print-nested/tokens/txt
2307+/* tre-624 %txt /tests/golden/types-union-print-nested/tree/txt
2308+/* typ-624 %txt /tests/golden/types-union-print-nested/types/txt
2309+/* src-625 %jibb /tests/golden/types-union-print-same-origin/source/jibb
2310+/* tok-625 %txt /tests/golden/types-union-print-same-origin/tokens/txt
2311+/* tre-625 %txt /tests/golden/types-union-print-same-origin/tree/txt
2312+/* mod-625-1 %jibb /tests/golden/types-union-print-same-origin/modules/ui/shared/jibb
2313+/* typ-625 %txt /tests/golden/types-union-print-same-origin/types/txt
2314+/* mtre-625 %txt /tests/golden/types-union-print-same-origin/module-trees/txt
2315+/* src-626 %jibb /tests/golden/types-union-print-transitive/source/jibb
2316+/* tok-626 %txt /tests/golden/types-union-print-transitive/tokens/txt
2317+/* tre-626 %txt /tests/golden/types-union-print-transitive/tree/txt
2318+/* mod-626-1 %jibb /tests/golden/types-union-print-transitive/modules/ui/mid/jibb
2319+/* mod-626-2 %jibb /tests/golden/types-union-print-transitive/modules/ui/base/jibb
2320+/* typ-626 %txt /tests/golden/types-union-print-transitive/types/txt
2321+/* mtre-626 %txt /tests/golden/types-union-print-transitive/module-trees/txt
2322+/* src-627 %jibb /tests/golden/types-union-singleton/source/jibb
2323+/* tok-627 %txt /tests/golden/types-union-singleton/tokens/txt
2324+/* tre-627 %txt /tests/golden/types-union-singleton/tree/txt
2325+/* typ-627 %txt /tests/golden/types-union-singleton/types/txt
2326+/* src-628 %jibb /tests/golden/types-union-tag-atoms/source/jibb
2327+/* tok-628 %txt /tests/golden/types-union-tag-atoms/tokens/txt
2328+/* tre-628 %txt /tests/golden/types-union-tag-atoms/tree/txt
2329+/* typ-628 %txt /tests/golden/types-union-tag-atoms/types/txt
2330+/* src-629 %jibb /tests/golden/types-union-tags/source/jibb
2331+/* tok-629 %txt /tests/golden/types-union-tags/tokens/txt
2332+/* tre-629 %txt /tests/golden/types-union-tags/tree/txt
2333+/* typ-629 %txt /tests/golden/types-union-tags/types/txt
2334+/* src-630 %jibb /tests/golden/types-union-unresolved/source/jibb
2335+/* tok-630 %txt /tests/golden/types-union-unresolved/tokens/txt
2336+/* tre-630 %txt /tests/golden/types-union-unresolved/tree/txt
2337+/* typ-630 %txt /tests/golden/types-union-unresolved/types/txt
2338+/* src-631 %jibb /tests/golden/types-union-unresolved-flow/source/jibb
2339+/* tok-631 %txt /tests/golden/types-union-unresolved-flow/tokens/txt
2340+/* tre-631 %txt /tests/golden/types-union-unresolved-flow/tree/txt
2341+/* typ-631 %txt /tests/golden/types-union-unresolved-flow/types/txt
2342+/* src-632 %jibb /tests/golden/types-unit-construction/source/jibb
2343+/* tok-632 %txt /tests/golden/types-unit-construction/tokens/txt
2344+/* tre-632 %txt /tests/golden/types-unit-construction/tree/txt
2345+/* typ-632 %txt /tests/golden/types-unit-construction/types/txt
2346+/* src-633 %jibb /tests/golden/types-unit-context/source/jibb
2347+/* tok-633 %txt /tests/golden/types-unit-context/tokens/txt
2348+/* tre-633 %txt /tests/golden/types-unit-context/tree/txt
2349+/* typ-633 %txt /tests/golden/types-unit-context/types/txt
2350+/* src-634 %jibb /tests/golden/types-unit-patterns/source/jibb
2351+/* tok-634 %txt /tests/golden/types-unit-patterns/tokens/txt
2352+/* tre-634 %txt /tests/golden/types-unit-patterns/tree/txt
2353+/* typ-634 %txt /tests/golden/types-unit-patterns/types/txt
2354+/* src-635 %jibb /tests/golden/types-value-cycle-shadow/source/jibb
2355+/* tok-635 %txt /tests/golden/types-value-cycle-shadow/tokens/txt
2356+/* tre-635 %txt /tests/golden/types-value-cycle-shadow/tree/txt
2357+/* typ-635 %txt /tests/golden/types-value-cycle-shadow/types/txt
2358+/* src-636 %jibb /tests/golden/types-value-cycle-unsupported/source/jibb
2359+/* tok-636 %txt /tests/golden/types-value-cycle-unsupported/tokens/txt
2360+/* tre-636 %txt /tests/golden/types-value-cycle-unsupported/tree/txt
2361+/* typ-636 %txt /tests/golden/types-value-cycle-unsupported/types/txt
2362+/* src-637 %jibb /tests/golden/types-value-cycles/source/jibb
2363+/* tok-637 %txt /tests/golden/types-value-cycles/tokens/txt
2364+/* tre-637 %txt /tests/golden/types-value-cycles/tree/txt
2365+/* typ-637 %txt /tests/golden/types-value-cycles/types/txt
23622366=/ prepared-prelude (prepare-prelude-with-internal:jibb prelude-source internal-source)
23632367|%
23642368:: one arm per case
@@ -3411,230 +3415,232 @@
34113415 (weld (check ~.types-positional-faces src-523 `tok-523 `tre-523) (check-types ~.types-positional-faces ~[%tests %golden ~.types-positional-faces %source %jibb] src-523 `typ-523))
34123416++ test-types-prelude-arithmetic
34133417 (weld (check ~.types-prelude-arithmetic src-524 `tok-524 `tre-524) (check-module-types ~.types-prelude-arithmetic ~[%tests %golden ~.types-prelude-arithmetic %source %jibb] src-524 `typ-524 ~ ~ ~))
3418+++ test-types-prelude-ask
3419+ (weld (check ~.types-prelude-ask src-525 `tok-525 `tre-525) (check-module-types ~.types-prelude-ask ~[%tests %golden ~.types-prelude-ask %source %jibb] src-525 `typ-525 ~ ~ ~))
34143420++ test-types-prelude-bond
3415− (weld (check ~.types-prelude-bond src-525 `tok-525 `tre-525) (check-module-types ~.types-prelude-bond ~[%tests %golden ~.types-prelude-bond %source %jibb] src-525 `typ-525 ~ ~ ~))
3421+ (weld (check ~.types-prelude-bond src-526 `tok-526 `tre-526) (check-module-types ~.types-prelude-bond ~[%tests %golden ~.types-prelude-bond %source %jibb] src-526 `typ-526 ~ ~ ~))
34163422++ test-types-prelude-cmd
3417− (weld (check ~.types-prelude-cmd src-526 `tok-526 `tre-526) (check-module-types ~.types-prelude-cmd ~[%tests %golden ~.types-prelude-cmd %source %jibb] src-526 `typ-526 ~ ~ ~))
3423+ (weld (check ~.types-prelude-cmd src-527 `tok-527 `tre-527) (check-module-types ~.types-prelude-cmd ~[%tests %golden ~.types-prelude-cmd %source %jibb] src-527 `typ-527 ~ ~ ~))
34183424++ test-types-prelude-direct
3419− (weld (check ~.types-prelude-direct src-527 `tok-527 `tre-527) (check-module-types ~.types-prelude-direct ~[%tests %golden ~.types-prelude-direct %source %jibb] src-527 `typ-527 ~ ~ ~))
3425+ (weld (check ~.types-prelude-direct src-528 `tok-528 `tre-528) (check-module-types ~.types-prelude-direct ~[%tests %golden ~.types-prelude-direct %source %jibb] src-528 `typ-528 ~ ~ ~))
34203426++ test-types-prelude-functional
3421− (weld (check ~.types-prelude-functional src-528 `tok-528 `tre-528) (check-module-types ~.types-prelude-functional ~[%tests %golden ~.types-prelude-functional %source %jibb] src-528 `typ-528 ~ ~ ~))
3427+ (weld (check ~.types-prelude-functional src-529 `tok-529 `tre-529) (check-module-types ~.types-prelude-functional ~[%tests %golden ~.types-prelude-functional %source %jibb] src-529 `typ-529 ~ ~ ~))
34223428++ test-types-prelude-generic-alias
3423− (weld (weld (check ~.types-prelude-generic-alias src-529 `tok-529 `tre-529) (check-module-types ~.types-prelude-generic-alias ~[%tests %golden ~.types-prelude-generic-alias %source %jibb] src-529 `typ-529 ~ ~ ~[['/ui/alias-helper.jibb' ~[~.ui ~.alias-helper ~.jibb] mod-529-1]])) (check-module-trees ~.types-prelude-generic-alias `mtre-529 ~[['/ui/alias-helper.jibb' ~[~.ui ~.alias-helper ~.jibb] mod-529-1]]))
3429+ (weld (weld (check ~.types-prelude-generic-alias src-530 `tok-530 `tre-530) (check-module-types ~.types-prelude-generic-alias ~[%tests %golden ~.types-prelude-generic-alias %source %jibb] src-530 `typ-530 ~ ~ ~[['/ui/alias-helper.jibb' ~[~.ui ~.alias-helper ~.jibb] mod-530-1]])) (check-module-trees ~.types-prelude-generic-alias `mtre-530 ~[['/ui/alias-helper.jibb' ~[~.ui ~.alias-helper ~.jibb] mod-530-1]]))
34243430++ test-types-prelude-interface
3425− (weld (weld (check ~.types-prelude-interface src-530 `tok-530 `tre-530) (check-module-types ~.types-prelude-interface ~[%tests %golden ~.types-prelude-interface %source %jibb] src-530 `typ-530 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-530-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-530-2]])) (check-module-trees ~.types-prelude-interface `mtre-530 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-530-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-530-2]]))
3431+ (weld (weld (check ~.types-prelude-interface src-531 `tok-531 `tre-531) (check-module-types ~.types-prelude-interface ~[%tests %golden ~.types-prelude-interface %source %jibb] src-531 `typ-531 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-531-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-531-2]])) (check-module-trees ~.types-prelude-interface `mtre-531 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-531-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-531-2]]))
34263432++ test-types-prelude-like
3427− (weld (check ~.types-prelude-like src-531 `tok-531 `tre-531) (check-module-types ~.types-prelude-like ~[%tests %golden ~.types-prelude-like %source %jibb] src-531 `typ-531 ~ ~ ~))
3433+ (weld (check ~.types-prelude-like src-532 `tok-532 `tre-532) (check-module-types ~.types-prelude-like ~[%tests %golden ~.types-prelude-like %source %jibb] src-532 `typ-532 ~ ~ ~))
34283434++ test-types-prelude-list-alias
3429− (weld (check ~.types-prelude-list-alias src-532 `tok-532 `tre-532) (check-module-types ~.types-prelude-list-alias ~[%tests %golden ~.types-prelude-list-alias %source %jibb] src-532 `typ-532 ~ ~ ~))
3435+ (weld (check ~.types-prelude-list-alias src-533 `tok-533 `tre-533) (check-module-types ~.types-prelude-list-alias ~[%tests %golden ~.types-prelude-list-alias %source %jibb] src-533 `typ-533 ~ ~ ~))
34303436++ test-types-prelude-list-functions
3431− (weld (weld (check ~.types-prelude-list-functions src-533 `tok-533 `tre-533) (check-module-types ~.types-prelude-list-functions ~[%tests %golden ~.types-prelude-list-functions %source %jibb] src-533 `typ-533 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-533-1]])) (check-module-trees ~.types-prelude-list-functions `mtre-533 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-533-1]]))
3437+ (weld (weld (check ~.types-prelude-list-functions src-534 `tok-534 `tre-534) (check-module-types ~.types-prelude-list-functions ~[%tests %golden ~.types-prelude-list-functions %source %jibb] src-534 `typ-534 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-534-1]])) (check-module-trees ~.types-prelude-list-functions `mtre-534 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-534-1]]))
34323438++ test-types-prelude-list-helpers
3433− (weld (check ~.types-prelude-list-helpers src-534 `tok-534 `tre-534) (check-module-types ~.types-prelude-list-helpers ~[%tests %golden ~.types-prelude-list-helpers %source %jibb] src-534 `typ-534 ~ ~ ~))
3439+ (weld (check ~.types-prelude-list-helpers src-535 `tok-535 `tre-535) (check-module-types ~.types-prelude-list-helpers ~[%tests %golden ~.types-prelude-list-helpers %source %jibb] src-535 `typ-535 ~ ~ ~))
34343440++ test-types-prelude-predicates
3435− (weld (check ~.types-prelude-predicates src-535 `tok-535 `tre-535) (check-module-types ~.types-prelude-predicates ~[%tests %golden ~.types-prelude-predicates %source %jibb] src-535 `typ-535 ~ ~ ~))
3441+ (weld (check ~.types-prelude-predicates src-536 `tok-536 `tre-536) (check-module-types ~.types-prelude-predicates ~[%tests %golden ~.types-prelude-predicates %source %jibb] src-536 `typ-536 ~ ~ ~))
34363442++ test-types-prelude-unit-helpers
3437− (weld (check ~.types-prelude-unit-helpers src-536 `tok-536 `tre-536) (check-module-types ~.types-prelude-unit-helpers ~[%tests %golden ~.types-prelude-unit-helpers %source %jibb] src-536 `typ-536 ~ ~ ~))
3443+ (weld (check ~.types-prelude-unit-helpers src-537 `tok-537 `tre-537) (check-module-types ~.types-prelude-unit-helpers ~[%tests %golden ~.types-prelude-unit-helpers %source %jibb] src-537 `typ-537 ~ ~ ~))
34383444++ test-types-proj-explicit-context
3439− (weld (check ~.types-proj-explicit-context src-537 `tok-537 `tre-537) (check-module-types ~.types-proj-explicit-context ~[%tests %golden ~.types-proj-explicit-context %source %jibb] src-537 `typ-537 ~ ~ ~))
3445+ (weld (check ~.types-proj-explicit-context src-538 `tok-538 `tre-538) (check-module-types ~.types-proj-explicit-context ~[%tests %golden ~.types-proj-explicit-context %source %jibb] src-538 `typ-538 ~ ~ ~))
34403446++ test-types-proj-nested-no-implicit
3441− (weld (check ~.types-proj-nested-no-implicit src-538 `tok-538 `tre-538) (check-module-types ~.types-proj-nested-no-implicit ~[%tests %golden ~.types-proj-nested-no-implicit %source %jibb] src-538 `typ-538 ~ ~ ~))
3447+ (weld (check ~.types-proj-nested-no-implicit src-539 `tok-539 `tre-539) (check-module-types ~.types-proj-nested-no-implicit ~[%tests %golden ~.types-proj-nested-no-implicit %source %jibb] src-539 `typ-539 ~ ~ ~))
34423448++ test-types-proj-reserved-imported-definition
3443− (weld (weld (check ~.types-proj-reserved-imported-definition src-539 `tok-539 `tre-539) (check-module-types ~.types-proj-reserved-imported-definition ~[%tests %golden ~.types-proj-reserved-imported-definition %source %jibb] src-539 `typ-539 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-539-1]])) (check-module-trees ~.types-proj-reserved-imported-definition `mtre-539 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-539-1]]))
3449+ (weld (weld (check ~.types-proj-reserved-imported-definition src-540 `tok-540 `tre-540) (check-module-types ~.types-proj-reserved-imported-definition ~[%tests %golden ~.types-proj-reserved-imported-definition %source %jibb] src-540 `typ-540 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-540-1]])) (check-module-trees ~.types-proj-reserved-imported-definition `mtre-540 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-540-1]]))
34443450++ test-types-proj-reserved-jibb-import
3445− (weld (weld (check ~.types-proj-reserved-jibb-import src-540 `tok-540 `tre-540) (check-module-types ~.types-proj-reserved-jibb-import ~[%tests %golden ~.types-proj-reserved-jibb-import %source %jibb] src-540 `typ-540 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-540-1]])) (check-module-trees ~.types-proj-reserved-jibb-import `mtre-540 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-540-1]]))
3451+ (weld (weld (check ~.types-proj-reserved-jibb-import src-541 `tok-541 `tre-541) (check-module-types ~.types-proj-reserved-jibb-import ~[%tests %golden ~.types-proj-reserved-jibb-import %source %jibb] src-541 `typ-541 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-541-1]])) (check-module-trees ~.types-proj-reserved-jibb-import `mtre-541 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-541-1]]))
34463452++ test-types-proj-reserved-local
3447− (weld (check ~.types-proj-reserved-local src-541 `tok-541 `tre-541) (check-module-types ~.types-proj-reserved-local ~[%tests %golden ~.types-proj-reserved-local %source %jibb] src-541 `typ-541 ~ ~ ~))
3453+ (weld (check ~.types-proj-reserved-local src-542 `tok-542 `tre-542) (check-module-types ~.types-proj-reserved-local ~[%tests %golden ~.types-proj-reserved-local %source %jibb] src-542 `typ-542 ~ ~ ~))
34483454++ test-types-proj-reserved-local-mold
3449− (weld (check ~.types-proj-reserved-local-mold src-542 `tok-542 `tre-542) (check-module-types ~.types-proj-reserved-local-mold ~[%tests %golden ~.types-proj-reserved-local-mold %source %jibb] src-542 `typ-542 ~ ~ ~))
3455+ (weld (check ~.types-proj-reserved-local-mold src-543 `tok-543 `tre-543) (check-module-types ~.types-proj-reserved-local-mold ~[%tests %golden ~.types-proj-reserved-local-mold %source %jibb] src-543 `typ-543 ~ ~ ~))
34503456++ test-types-proj-reserved-mark-import
3451− (weld (check ~.types-proj-reserved-mark-import src-543 `tok-543 `tre-543) (check-module-types ~.types-proj-reserved-mark-import ~[%tests %golden ~.types-proj-reserved-mark-import %source %jibb] src-543 `typ-543 ~ ~ ~))
3457+ (weld (check ~.types-proj-reserved-mark-import src-544 `tok-544 `tre-544) (check-module-types ~.types-proj-reserved-mark-import ~[%tests %golden ~.types-proj-reserved-mark-import %source %jibb] src-544 `typ-544 ~ ~ ~))
34523458++ test-types-proj-reserved-mold
3453− (weld (check ~.types-proj-reserved-mold src-544 `tok-544 `tre-544) (check-module-types ~.types-proj-reserved-mold ~[%tests %golden ~.types-proj-reserved-mold %source %jibb] src-544 `typ-544 ~ ~ ~))
3459+ (weld (check ~.types-proj-reserved-mold src-545 `tok-545 `tre-545) (check-module-types ~.types-proj-reserved-mold ~[%tests %golden ~.types-proj-reserved-mold %source %jibb] src-545 `typ-545 ~ ~ ~))
34543460++ test-types-proj-reserved-pattern
3455− (weld (check ~.types-proj-reserved-pattern src-545 `tok-545 `tre-545) (check-module-types ~.types-proj-reserved-pattern ~[%tests %golden ~.types-proj-reserved-pattern %source %jibb] src-545 `typ-545 ~ ~ ~))
3461+ (weld (check ~.types-proj-reserved-pattern src-546 `tok-546 `tre-546) (check-module-types ~.types-proj-reserved-pattern ~[%tests %golden ~.types-proj-reserved-pattern %source %jibb] src-546 `typ-546 ~ ~ ~))
34563462++ test-types-proj-reserved-positive
3457− (weld (check ~.types-proj-reserved-positive src-546 `tok-546 `tre-546) (check-module-types ~.types-proj-reserved-positive ~[%tests %golden ~.types-proj-reserved-positive %source %jibb] src-546 `typ-546 ~ ~ ~))
3463+ (weld (check ~.types-proj-reserved-positive src-547 `tok-547 `tre-547) (check-module-types ~.types-proj-reserved-positive ~[%tests %golden ~.types-proj-reserved-positive %source %jibb] src-547 `typ-547 ~ ~ ~))
34583464++ test-types-proj-reserved-sample
3459− (weld (check ~.types-proj-reserved-sample src-547 `tok-547 `tre-547) (check-module-types ~.types-proj-reserved-sample ~[%tests %golden ~.types-proj-reserved-sample %source %jibb] src-547 `typ-547 ~ ~ ~))
3465+ (weld (check ~.types-proj-reserved-sample src-548 `tok-548 `tre-548) (check-module-types ~.types-proj-reserved-sample ~[%tests %golden ~.types-proj-reserved-sample %source %jibb] src-548 `typ-548 ~ ~ ~))
34603466++ test-types-proj-reserved-sur-import
3461− (weld (check ~.types-proj-reserved-sur-import src-548 `tok-548 `tre-548) (check-module-types ~.types-proj-reserved-sur-import ~[%tests %golden ~.types-proj-reserved-sur-import %source %jibb] src-548 `typ-548 ~ ~ ~))
3467+ (weld (check ~.types-proj-reserved-sur-import src-549 `tok-549 `tre-549) (check-module-types ~.types-proj-reserved-sur-import ~[%tests %golden ~.types-proj-reserved-sur-import %source %jibb] src-549 `typ-549 ~ ~ ~))
34623468++ test-types-proj-reserved-unused-pattern
3463− (weld (check ~.types-proj-reserved-unused-pattern src-549 `tok-549 `tre-549) (check-module-types ~.types-proj-reserved-unused-pattern ~[%tests %golden ~.types-proj-reserved-unused-pattern %source %jibb] src-549 `typ-549 ~ ~ ~))
3469+ (weld (check ~.types-proj-reserved-unused-pattern src-550 `tok-550 `tre-550) (check-module-types ~.types-proj-reserved-unused-pattern ~[%tests %golden ~.types-proj-reserved-unused-pattern %source %jibb] src-550 `typ-550 ~ ~ ~))
34643470++ test-types-proj-reserved-unused-sample
3465− (weld (check ~.types-proj-reserved-unused-sample src-550 `tok-550 `tre-550) (check-module-types ~.types-proj-reserved-unused-sample ~[%tests %golden ~.types-proj-reserved-unused-sample %source %jibb] src-550 `typ-550 ~ ~ ~))
3471+ (weld (check ~.types-proj-reserved-unused-sample src-551 `tok-551 `tre-551) (check-module-types ~.types-proj-reserved-unused-sample ~[%tests %golden ~.types-proj-reserved-unused-sample %source %jibb] src-551 `typ-551 ~ ~ ~))
34663472++ test-types-proj-reserved-unused-value
3467− (weld (check ~.types-proj-reserved-unused-value src-551 `tok-551 `tre-551) (check-module-types ~.types-proj-reserved-unused-value ~[%tests %golden ~.types-proj-reserved-unused-value %source %jibb] src-551 `typ-551 ~ ~ ~))
3473+ (weld (check ~.types-proj-reserved-unused-value src-552 `tok-552 `tre-552) (check-module-types ~.types-proj-reserved-unused-value ~[%tests %golden ~.types-proj-reserved-unused-value %source %jibb] src-552 `typ-552 ~ ~ ~))
34683474++ test-types-proj-reserved-value
3469− (weld (check ~.types-proj-reserved-value src-552 `tok-552 `tre-552) (check-module-types ~.types-proj-reserved-value ~[%tests %golden ~.types-proj-reserved-value %source %jibb] src-552 `typ-552 ~ ~ ~))
3475+ (weld (check ~.types-proj-reserved-value src-553 `tok-553 `tre-553) (check-module-types ~.types-proj-reserved-value ~[%tests %golden ~.types-proj-reserved-value %source %jibb] src-553 `typ-553 ~ ~ ~))
34703476++ test-types-proj-single-duplicate
3471− (weld (check ~.types-proj-single-duplicate src-553 `tok-553 `tre-553) (check-module-types ~.types-proj-single-duplicate ~[%tests %golden ~.types-proj-single-duplicate %source %jibb] src-553 `typ-553 ~ ~ ~))
3477+ (weld (check ~.types-proj-single-duplicate src-554 `tok-554 `tre-554) (check-module-types ~.types-proj-single-duplicate ~[%tests %golden ~.types-proj-single-duplicate %source %jibb] src-554 `typ-554 ~ ~ ~))
34723478++ test-types-proj-single-field
3473− (weld (check ~.types-proj-single-field src-554 `tok-554 `tre-554) (check-module-types ~.types-proj-single-field ~[%tests %golden ~.types-proj-single-field %source %jibb] src-554 `typ-554 ~ ~ ~))
3479+ (weld (check ~.types-proj-single-field src-555 `tok-555 `tre-555) (check-module-types ~.types-proj-single-field ~[%tests %golden ~.types-proj-single-field %source %jibb] src-555 `typ-555 ~ ~ ~))
34743480++ test-types-proj-single-sample-face
3475− (weld (check ~.types-proj-single-sample-face src-555 `tok-555 `tre-555) (check-module-types ~.types-proj-single-sample-face ~[%tests %golden ~.types-proj-single-sample-face %source %jibb] src-555 `typ-555 ~ ~ ~))
3481+ (weld (check ~.types-proj-single-sample-face src-556 `tok-556 `tre-556) (check-module-types ~.types-proj-single-sample-face ~[%tests %golden ~.types-proj-single-sample-face %source %jibb] src-556 `typ-556 ~ ~ ~))
34763482++ test-types-proj-single-wrapped
3477− (weld (check ~.types-proj-single-wrapped src-556 `tok-556 `tre-556) (check-module-types ~.types-proj-single-wrapped ~[%tests %golden ~.types-proj-single-wrapped %source %jibb] src-556 `typ-556 ~ ~ ~))
3483+ (weld (check ~.types-proj-single-wrapped src-557 `tok-557 `tre-557) (check-module-types ~.types-proj-single-wrapped ~[%tests %golden ~.types-proj-single-wrapped %source %jibb] src-557 `typ-557 ~ ~ ~))
34783484++ test-types-qath-faces
3479− (weld (check ~.types-qath-faces src-557 `tok-557 `tre-557) (check-module-types ~.types-qath-faces ~[%tests %golden ~.types-qath-faces %source %jibb] src-557 `typ-557 ~ ~ ~))
3485+ (weld (check ~.types-qath-faces src-558 `tok-558 `tre-558) (check-module-types ~.types-qath-faces ~[%tests %golden ~.types-qath-faces %source %jibb] src-558 `typ-558 ~ ~ ~))
34803486++ test-types-qath-holes
3481− (weld (check ~.types-qath-holes src-558 `tok-558 `tre-558) (check-module-types ~.types-qath-holes ~[%tests %golden ~.types-qath-holes %source %jibb] src-558 `typ-558 ~ ~ ~))
3487+ (weld (check ~.types-qath-holes src-559 `tok-559 `tre-559) (check-module-types ~.types-qath-holes ~[%tests %golden ~.types-qath-holes %source %jibb] src-559 `typ-559 ~ ~ ~))
34823488++ test-types-qath-module-identity
3483− (weld (weld (check ~.types-qath-module-identity src-559 `tok-559 `tre-559) (check-module-types ~.types-qath-module-identity ~[%tests %golden ~.types-qath-module-identity %source %jibb] src-559 `typ-559 ~ ~ ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-559-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-559-2] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-559-3]])) (check-module-trees ~.types-qath-module-identity `mtre-559 ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-559-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-559-2] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-559-3]]))
3489+ (weld (weld (check ~.types-qath-module-identity src-560 `tok-560 `tre-560) (check-module-types ~.types-qath-module-identity ~[%tests %golden ~.types-qath-module-identity %source %jibb] src-560 `typ-560 ~ ~ ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-560-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-560-2] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-560-3]])) (check-module-trees ~.types-qath-module-identity `mtre-560 ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-560-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-560-2] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-560-3]]))
34843490++ test-types-qath-recursive
3485− (weld (check ~.types-qath-recursive src-560 `tok-560 `tre-560) (check-module-types ~.types-qath-recursive ~[%tests %golden ~.types-qath-recursive %source %jibb] src-560 `typ-560 ~ ~ ~))
3491+ (weld (check ~.types-qath-recursive src-561 `tok-561 `tre-561) (check-module-types ~.types-qath-recursive ~[%tests %golden ~.types-qath-recursive %source %jibb] src-561 `typ-561 ~ ~ ~))
34863492++ test-types-record-bound-variable
3487− (weld (check ~.types-record-bound-variable src-561 `tok-561 `tre-561) (check-types ~.types-record-bound-variable ~[%tests %golden ~.types-record-bound-variable %source %jibb] src-561 `typ-561))
3493+ (weld (check ~.types-record-bound-variable src-562 `tok-562 `tre-562) (check-types ~.types-record-bound-variable ~[%tests %golden ~.types-record-bound-variable %source %jibb] src-562 `typ-562))
34883494++ test-types-record-cast-context
3489− (weld (check ~.types-record-cast-context src-562 `tok-562 `tre-562) (check-module-types ~.types-record-cast-context ~[%tests %golden ~.types-record-cast-context %source %jibb] src-562 `typ-562 ~ ~ ~))
3495+ (weld (check ~.types-record-cast-context src-563 `tok-563 `tre-563) (check-module-types ~.types-record-cast-context ~[%tests %golden ~.types-record-cast-context %source %jibb] src-563 `typ-563 ~ ~ ~))
34903496++ test-types-record-change
3491− (weld (check ~.types-record-change src-563 `tok-563 `tre-563) (check-module-types ~.types-record-change ~[%tests %golden ~.types-record-change %source %jibb] src-563 `typ-563 ~ ~ ~))
3497+ (weld (check ~.types-record-change src-564 `tok-564 `tre-564) (check-module-types ~.types-record-change ~[%tests %golden ~.types-record-change %source %jibb] src-564 `typ-564 ~ ~ ~))
34923498++ test-types-record-change-generic
3493− (weld (check ~.types-record-change-generic src-564 `tok-564 `tre-564) (check-module-types ~.types-record-change-generic ~[%tests %golden ~.types-record-change-generic %source %jibb] src-564 `typ-564 ~ ~ ~))
3499+ (weld (check ~.types-record-change-generic src-565 `tok-565 `tre-565) (check-module-types ~.types-record-change-generic ~[%tests %golden ~.types-record-change-generic %source %jibb] src-565 `typ-565 ~ ~ ~))
34943500++ test-types-record-faces
3495− (weld (check ~.types-record-faces src-565 `tok-565 `tre-565) (check-types ~.types-record-faces ~[%tests %golden ~.types-record-faces %source %jibb] src-565 `typ-565))
3501+ (weld (check ~.types-record-faces src-566 `tok-566 `tre-566) (check-types ~.types-record-faces ~[%tests %golden ~.types-record-faces %source %jibb] src-566 `typ-566))
34963502++ test-types-record-field-edit-separate
3497− (weld (check ~.types-record-field-edit-separate src-566 `tok-566 `tre-566) (check-types ~.types-record-field-edit-separate ~[%tests %golden ~.types-record-field-edit-separate %source %jibb] src-566 `typ-566))
3503+ (weld (check ~.types-record-field-edit-separate src-567 `tok-567 `tre-567) (check-types ~.types-record-field-edit-separate ~[%tests %golden ~.types-record-field-edit-separate %source %jibb] src-567 `typ-567))
34983504++ test-types-record-field-expr-duplicate
3499− (weld (check ~.types-record-field-expr-duplicate src-567 `tok-567 `tre-567) (check-types ~.types-record-field-expr-duplicate ~[%tests %golden ~.types-record-field-expr-duplicate %source %jibb] src-567 `typ-567))
3505+ (weld (check ~.types-record-field-expr-duplicate src-568 `tok-568 `tre-568) (check-types ~.types-record-field-expr-duplicate ~[%tests %golden ~.types-record-field-expr-duplicate %source %jibb] src-568 `typ-568))
35003506++ test-types-record-field-expr-separate
3501− (weld (check ~.types-record-field-expr-separate src-568 `tok-568 `tre-568) (check-types ~.types-record-field-expr-separate ~[%tests %golden ~.types-record-field-expr-separate %source %jibb] src-568 `typ-568))
3507+ (weld (check ~.types-record-field-expr-separate src-569 `tok-569 `tre-569) (check-types ~.types-record-field-expr-separate ~[%tests %golden ~.types-record-field-expr-separate %source %jibb] src-569 `typ-569))
35023508++ test-types-record-field-module-reachable
3503− (weld (weld (check ~.types-record-field-module-reachable src-569 `tok-569 `tre-569) (check-module-types ~.types-record-field-module-reachable ~[%tests %golden ~.types-record-field-module-reachable %source %jibb] src-569 `typ-569 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-569-1]])) (check-module-trees ~.types-record-field-module-reachable `mtre-569 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-569-1]]))
3509+ (weld (weld (check ~.types-record-field-module-reachable src-570 `tok-570 `tre-570) (check-module-types ~.types-record-field-module-reachable ~[%tests %golden ~.types-record-field-module-reachable %source %jibb] src-570 `typ-570 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-570-1]])) (check-module-trees ~.types-record-field-module-reachable `mtre-570 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-570-1]]))
35043510++ test-types-record-field-module-unused
3505− (weld (weld (check ~.types-record-field-module-unused src-570 `tok-570 `tre-570) (check-module-types ~.types-record-field-module-unused ~[%tests %golden ~.types-record-field-module-unused %source %jibb] src-570 `typ-570 ~ ~ ~[['/ui/good.jibb' ~[~.ui ~.good ~.jibb] mod-570-1] ['/ui/unused.jibb' ~[~.ui ~.unused ~.jibb] mod-570-2]])) (check-module-trees ~.types-record-field-module-unused `mtre-570 ~[['/ui/good.jibb' ~[~.ui ~.good ~.jibb] mod-570-1] ['/ui/unused.jibb' ~[~.ui ~.unused ~.jibb] mod-570-2]]))
3511+ (weld (weld (check ~.types-record-field-module-unused src-571 `tok-571 `tre-571) (check-module-types ~.types-record-field-module-unused ~[%tests %golden ~.types-record-field-module-unused %source %jibb] src-571 `typ-571 ~ ~ ~[['/ui/good.jibb' ~[~.ui ~.good ~.jibb] mod-571-1] ['/ui/unused.jibb' ~[~.ui ~.unused ~.jibb] mod-571-2]])) (check-module-trees ~.types-record-field-module-unused `mtre-571 ~[['/ui/good.jibb' ~[~.ui ~.good ~.jibb] mod-571-1] ['/ui/unused.jibb' ~[~.ui ~.unused ~.jibb] mod-571-2]]))
35063512++ test-types-record-field-nested-mold
3507− (weld (check ~.types-record-field-nested-mold src-571 `tok-571 `tre-571) (check-types ~.types-record-field-nested-mold ~[%tests %golden ~.types-record-field-nested-mold %source %jibb] src-571 `typ-571))
3513+ (weld (check ~.types-record-field-nested-mold src-572 `tok-572 `tre-572) (check-types ~.types-record-field-nested-mold ~[%tests %golden ~.types-record-field-nested-mold %source %jibb] src-572 `typ-572))
35083514++ test-types-record-field-outer-inner
3509− (weld (check ~.types-record-field-outer-inner src-572 `tok-572 `tre-572) (check-types ~.types-record-field-outer-inner ~[%tests %golden ~.types-record-field-outer-inner %source %jibb] src-572 `typ-572))
3515+ (weld (check ~.types-record-field-outer-inner src-573 `tok-573 `tre-573) (check-types ~.types-record-field-outer-inner ~[%tests %golden ~.types-record-field-outer-inner %source %jibb] src-573 `typ-573))
35103516++ test-types-record-field-sample-duplicate
3511− (weld (check ~.types-record-field-sample-duplicate src-573 `tok-573 `tre-573) (check-types ~.types-record-field-sample-duplicate ~[%tests %golden ~.types-record-field-sample-duplicate %source %jibb] src-573 `typ-573))
3517+ (weld (check ~.types-record-field-sample-duplicate src-574 `tok-574 `tre-574) (check-types ~.types-record-field-sample-duplicate ~[%tests %golden ~.types-record-field-sample-duplicate %source %jibb] src-574 `typ-574))
35123518++ test-types-record-field-separate-molds
3513− (weld (check ~.types-record-field-separate-molds src-574 `tok-574 `tre-574) (check-types ~.types-record-field-separate-molds ~[%tests %golden ~.types-record-field-separate-molds %source %jibb] src-574 `typ-574))
3519+ (weld (check ~.types-record-field-separate-molds src-575 `tok-575 `tre-575) (check-types ~.types-record-field-separate-molds ~[%tests %golden ~.types-record-field-separate-molds %source %jibb] src-575 `typ-575))
35143520++ test-types-record-field-unused-mold
3515− (weld (check ~.types-record-field-unused-mold src-575 `tok-575 `tre-575) (check-types ~.types-record-field-unused-mold ~[%tests %golden ~.types-record-field-unused-mold %source %jibb] src-575 `typ-575))
3521+ (weld (check ~.types-record-field-unused-mold src-576 `tok-576 `tre-576) (check-types ~.types-record-field-unused-mold ~[%tests %golden ~.types-record-field-unused-mold %source %jibb] src-576 `typ-576))
35163522++ test-types-record-import
3517− (weld (weld (check ~.types-record-import src-576 `tok-576 `tre-576) (check-module-types ~.types-record-import ~[%tests %golden ~.types-record-import %source %jibb] src-576 `typ-576 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-576-1]])) (check-module-trees ~.types-record-import `mtre-576 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-576-1]]))
3523+ (weld (weld (check ~.types-record-import src-577 `tok-577 `tre-577) (check-module-types ~.types-record-import ~[%tests %golden ~.types-record-import %source %jibb] src-577 `typ-577 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-577-1]])) (check-module-trees ~.types-record-import `mtre-577 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-577-1]]))
35183524++ test-types-record-local-scheme
3519− (weld (check ~.types-record-local-scheme src-577 `tok-577 `tre-577) (check-types ~.types-record-local-scheme ~[%tests %golden ~.types-record-local-scheme %source %jibb] src-577 `typ-577))
3525+ (weld (check ~.types-record-local-scheme src-578 `tok-578 `tre-578) (check-types ~.types-record-local-scheme ~[%tests %golden ~.types-record-local-scheme %source %jibb] src-578 `typ-578))
35203526++ test-types-record-nested
3521− (weld (check ~.types-record-nested src-578 `tok-578 `tre-578) (check-types ~.types-record-nested ~[%tests %golden ~.types-record-nested %source %jibb] src-578 `typ-578))
3527+ (weld (check ~.types-record-nested src-579 `tok-579 `tre-579) (check-types ~.types-record-nested ~[%tests %golden ~.types-record-nested %source %jibb] src-579 `typ-579))
35223528++ test-types-record-to-tuple
3523− (weld (check ~.types-record-to-tuple src-579 `tok-579 `tre-579) (check-types ~.types-record-to-tuple ~[%tests %golden ~.types-record-to-tuple %source %jibb] src-579 `typ-579))
3529+ (weld (check ~.types-record-to-tuple src-580 `tok-580 `tre-580) (check-types ~.types-record-to-tuple ~[%tests %golden ~.types-record-to-tuple %source %jibb] src-580 `typ-580))
35243530++ test-types-recursion-scc-failures
3525− (weld (check ~.types-recursion-scc-failures src-580 `tok-580 `tre-580) (check-module-types ~.types-recursion-scc-failures ~[%tests %golden ~.types-recursion-scc-failures %source %jibb] src-580 `typ-580 ~ ~ ~))
3531+ (weld (check ~.types-recursion-scc-failures src-581 `tok-581 `tre-581) (check-module-types ~.types-recursion-scc-failures ~[%tests %golden ~.types-recursion-scc-failures %source %jibb] src-581 `typ-581 ~ ~ ~))
35263532++ test-types-recursion-scc-groups
3527− (weld (check ~.types-recursion-scc-groups src-581 `tok-581 `tre-581) (check-module-types ~.types-recursion-scc-groups ~[%tests %golden ~.types-recursion-scc-groups %source %jibb] src-581 `typ-581 ~ ~ ~))
3533+ (weld (check ~.types-recursion-scc-groups src-582 `tok-582 `tre-582) (check-module-types ~.types-recursion-scc-groups ~[%tests %golden ~.types-recursion-scc-groups %source %jibb] src-582 `typ-582 ~ ~ ~))
35283534++ test-types-recursion-scc-import
3529− (weld (weld (check ~.types-recursion-scc-import src-582 `tok-582 `tre-582) (check-module-types ~.types-recursion-scc-import ~[%tests %golden ~.types-recursion-scc-import %source %jibb] src-582 `typ-582 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-582-1]])) (check-module-trees ~.types-recursion-scc-import `mtre-582 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-582-1]]))
3535+ (weld (weld (check ~.types-recursion-scc-import src-583 `tok-583 `tre-583) (check-module-types ~.types-recursion-scc-import ~[%tests %golden ~.types-recursion-scc-import %source %jibb] src-583 `typ-583 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-583-1]])) (check-module-trees ~.types-recursion-scc-import `mtre-583 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-583-1]]))
35303536++ test-types-recursion-scc-import-bad
3531− (weld (weld (check ~.types-recursion-scc-import-bad src-583 `tok-583 `tre-583) (check-module-types ~.types-recursion-scc-import-bad ~[%tests %golden ~.types-recursion-scc-import-bad %source %jibb] src-583 `typ-583 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-583-1]])) (check-module-trees ~.types-recursion-scc-import-bad `mtre-583 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-583-1]]))
3537+ (weld (weld (check ~.types-recursion-scc-import-bad src-584 `tok-584 `tre-584) (check-module-types ~.types-recursion-scc-import-bad ~[%tests %golden ~.types-recursion-scc-import-bad %source %jibb] src-584 `typ-584 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-584-1]])) (check-module-trees ~.types-recursion-scc-import-bad `mtre-584 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-584-1]]))
35323538++ test-types-recursion-scc-local
3533− (weld (check ~.types-recursion-scc-local src-584 `tok-584 `tre-584) (check-module-types ~.types-recursion-scc-local ~[%tests %golden ~.types-recursion-scc-local %source %jibb] src-584 `typ-584 ~ ~ ~))
3539+ (weld (check ~.types-recursion-scc-local src-585 `tok-585 `tre-585) (check-module-types ~.types-recursion-scc-local ~[%tests %golden ~.types-recursion-scc-local %source %jibb] src-585 `typ-585 ~ ~ ~))
35343540++ test-types-recursion-scc-order
3535− (weld (check ~.types-recursion-scc-order src-585 `tok-585 `tre-585) (check-module-types ~.types-recursion-scc-order ~[%tests %golden ~.types-recursion-scc-order %source %jibb] src-585 `typ-585 ~ ~ ~))
3541+ (weld (check ~.types-recursion-scc-order src-586 `tok-586 `tre-586) (check-module-types ~.types-recursion-scc-order ~[%tests %golden ~.types-recursion-scc-order %source %jibb] src-586 `typ-586 ~ ~ ~))
35363542++ test-types-recursion-scc-shadow
3537− (weld (check ~.types-recursion-scc-shadow src-586 `tok-586 `tre-586) (check-module-types ~.types-recursion-scc-shadow ~[%tests %golden ~.types-recursion-scc-shadow %source %jibb] src-586 `typ-586 ~ ~ ~))
3543+ (weld (check ~.types-recursion-scc-shadow src-587 `tok-587 `tre-587) (check-module-types ~.types-recursion-scc-shadow ~[%tests %golden ~.types-recursion-scc-shadow %source %jibb] src-587 `typ-587 ~ ~ ~))
35383544++ test-types-recursive-branch
3539− (weld (check ~.types-recursive-branch src-587 `tok-587 `tre-587) (check-module-types ~.types-recursive-branch ~[%tests %golden ~.types-recursive-branch %source %jibb] src-587 `typ-587 ~ ~ ~))
3545+ (weld (check ~.types-recursive-branch src-588 `tok-588 `tre-588) (check-module-types ~.types-recursive-branch ~[%tests %golden ~.types-recursive-branch %source %jibb] src-588 `typ-588 ~ ~ ~))
35403546++ test-types-recursive-gate
3541− (weld (check ~.types-recursive-gate src-588 `tok-588 `tre-588) (check-types ~.types-recursive-gate ~[%tests %golden ~.types-recursive-gate %source %jibb] src-588 `typ-588))
3547+ (weld (check ~.types-recursive-gate src-589 `tok-589 `tre-589) (check-types ~.types-recursive-gate ~[%tests %golden ~.types-recursive-gate %source %jibb] src-589 `typ-589))
35423548++ test-types-recursive-sample
3543− (weld (check ~.types-recursive-sample src-589 `tok-589 `tre-589) (check-types ~.types-recursive-sample ~[%tests %golden ~.types-recursive-sample %source %jibb] src-589 `typ-589))
3549+ (weld (check ~.types-recursive-sample src-590 `tok-590 `tre-590) (check-types ~.types-recursive-sample ~[%tests %golden ~.types-recursive-sample %source %jibb] src-590 `typ-590))
35443550++ test-types-scope-library-poke
3545− (weld (check-at ~.types-scope-library-poke ~[~.ui ~.lib ~.library ~.jibb] src-590 `tok-590 `tre-590) (check-module-types ~.types-scope-library-poke ~[~.ui ~.lib ~.library ~.jibb] src-590 `typ-590 ~ ~ ~))
3551+ (weld (check-at ~.types-scope-library-poke ~[~.ui ~.lib ~.library ~.jibb] src-591 `tok-591 `tre-591) (check-module-types ~.types-scope-library-poke ~[~.ui ~.lib ~.library ~.jibb] src-591 `typ-591 ~ ~ ~))
35463552++ test-types-scope-root-api
3547− (weld (check-at ~.types-scope-root-api ~[~.ui ~.api ~.todo ~.jibb] src-591 `tok-591 `tre-591) (check-module-types ~.types-scope-root-api ~[~.ui ~.api ~.todo ~.jibb] src-591 `typ-591 ~ ~ ~))
3553+ (weld (check-at ~.types-scope-root-api ~[~.ui ~.api ~.todo ~.jibb] src-592 `tok-592 `tre-592) (check-module-types ~.types-scope-root-api ~[~.ui ~.api ~.todo ~.jibb] src-592 `typ-592 ~ ~ ~))
35483554++ test-types-scope-store-duplicate
3549− (weld (check-at ~.types-scope-store-duplicate ~[~.ui ~.stores ~.cart ~.jibb] src-592 `tok-592 `tre-592) (check-module-types ~.types-scope-store-duplicate ~[~.ui ~.stores ~.cart ~.jibb] src-592 `typ-592 ~ ~ ~))
3555+ (weld (check-at ~.types-scope-store-duplicate ~[~.ui ~.stores ~.cart ~.jibb] src-593 `tok-593 `tre-593) (check-module-types ~.types-scope-store-duplicate ~[~.ui ~.stores ~.cart ~.jibb] src-593 `typ-593 ~ ~ ~))
35503556++ test-types-scope-store-shadow
3551− (weld (check-at ~.types-scope-store-shadow ~[~.ui ~.stores ~.cart ~.jibb] src-593 `tok-593 `tre-593) (check-module-types ~.types-scope-store-shadow ~[~.ui ~.stores ~.cart ~.jibb] src-593 `typ-593 ~ ~ ~))
3557+ (weld (check-at ~.types-scope-store-shadow ~[~.ui ~.stores ~.cart ~.jibb] src-594 `tok-594 `tre-594) (check-module-types ~.types-scope-store-shadow ~[~.ui ~.stores ~.cart ~.jibb] src-594 `typ-594 ~ ~ ~))
35523558++ test-types-single-case-pattern
3553− (weld (check ~.types-single-case-pattern src-594 `tok-594 `tre-594) (check-module-types ~.types-single-case-pattern ~[%tests %golden ~.types-single-case-pattern %source %jibb] src-594 `typ-594 ~ ~ ~))
3559+ (weld (check ~.types-single-case-pattern src-595 `tok-595 `tre-595) (check-module-types ~.types-single-case-pattern ~[%tests %golden ~.types-single-case-pattern %source %jibb] src-595 `typ-595 ~ ~ ~))
35543560++ test-types-string-interpolation
3555− (weld (check ~.types-string-interpolation src-595 `tok-595 `tre-595) (check-module-types ~.types-string-interpolation ~[%tests %golden ~.types-string-interpolation %source %jibb] src-595 `typ-595 ~ ~ ~))
3561+ (weld (check ~.types-string-interpolation src-596 `tok-596 `tre-596) (check-module-types ~.types-string-interpolation ~[%tests %golden ~.types-string-interpolation %source %jibb] src-596 `typ-596 ~ ~ ~))
35563562++ test-types-tuple-context
3557− (weld (check ~.types-tuple-context src-596 `tok-596 `tre-596) (check-module-types ~.types-tuple-context ~[%tests %golden ~.types-tuple-context %source %jibb] src-596 `typ-596 ~ ~ ~))
3563+ (weld (check ~.types-tuple-context src-597 `tok-597 `tre-597) (check-module-types ~.types-tuple-context ~[%tests %golden ~.types-tuple-context %source %jibb] src-597 `typ-597 ~ ~ ~))
35583564++ test-types-tuple-context-nested
3559− (weld (check ~.types-tuple-context-nested src-597 `tok-597 `tre-597) (check-module-types ~.types-tuple-context-nested ~[%tests %golden ~.types-tuple-context-nested %source %jibb] src-597 `typ-597 ~ ~ ~))
3565+ (weld (check ~.types-tuple-context-nested src-598 `tok-598 `tre-598) (check-module-types ~.types-tuple-context-nested ~[%tests %golden ~.types-tuple-context-nested %source %jibb] src-598 `typ-598 ~ ~ ~))
35603566++ test-types-union-alias
3561− (weld (check ~.types-union-alias src-598 `tok-598 `tre-598) (check-types ~.types-union-alias ~[%tests %golden ~.types-union-alias %source %jibb] src-598 `typ-598))
3567+ (weld (check ~.types-union-alias src-599 `tok-599 `tre-599) (check-types ~.types-union-alias ~[%tests %golden ~.types-union-alias %source %jibb] src-599 `typ-599))
35623568++ test-types-union-branch-context
3563− (weld (check ~.types-union-branch-context src-599 `tok-599 `tre-599) (check-types ~.types-union-branch-context ~[%tests %golden ~.types-union-branch-context %source %jibb] src-599 `typ-599))
3569+ (weld (check ~.types-union-branch-context src-600 `tok-600 `tre-600) (check-types ~.types-union-branch-context ~[%tests %golden ~.types-union-branch-context %source %jibb] src-600 `typ-600))
35643570++ test-types-union-branch-pending
3565− (weld (check ~.types-union-branch-pending src-600 `tok-600 `tre-600) (check-types ~.types-union-branch-pending ~[%tests %golden ~.types-union-branch-pending %source %jibb] src-600 `typ-600))
3571+ (weld (check ~.types-union-branch-pending src-601 `tok-601 `tre-601) (check-types ~.types-union-branch-pending ~[%tests %golden ~.types-union-branch-pending %source %jibb] src-601 `typ-601))
35663572++ test-types-union-constructor-shape
3567− (weld (check ~.types-union-constructor-shape src-601 `tok-601 `tre-601) (check-types ~.types-union-constructor-shape ~[%tests %golden ~.types-union-constructor-shape %source %jibb] src-601 `typ-601))
3573+ (weld (check ~.types-union-constructor-shape src-602 `tok-602 `tre-602) (check-types ~.types-union-constructor-shape ~[%tests %golden ~.types-union-constructor-shape %source %jibb] src-602 `typ-602))
35683574++ test-types-union-context-flow
3569− (weld (check ~.types-union-context-flow src-602 `tok-602 `tre-602) (check-types ~.types-union-context-flow ~[%tests %golden ~.types-union-context-flow %source %jibb] src-602 `typ-602))
3575+ (weld (check ~.types-union-context-flow src-603 `tok-603 `tre-603) (check-types ~.types-union-context-flow ~[%tests %golden ~.types-union-context-flow %source %jibb] src-603 `typ-603))
35703576++ test-types-union-finite
3571− (weld (check ~.types-union-finite src-603 `tok-603 `tre-603) (check-module-types ~.types-union-finite ~[%tests %golden ~.types-union-finite %source %jibb] src-603 `typ-603 ~ ~ ~))
3577+ (weld (check ~.types-union-finite src-604 `tok-604 `tre-604) (check-module-types ~.types-union-finite ~[%tests %golden ~.types-union-finite %source %jibb] src-604 `typ-604 ~ ~ ~))
35723578++ test-types-union-finite-context
3573− (weld (check ~.types-union-finite-context src-604 `tok-604 `tre-604) (check-module-types ~.types-union-finite-context ~[%tests %golden ~.types-union-finite-context %source %jibb] src-604 `typ-604 ~ ~ ~))
3579+ (weld (check ~.types-union-finite-context src-605 `tok-605 `tre-605) (check-module-types ~.types-union-finite-context ~[%tests %golden ~.types-union-finite-context %source %jibb] src-605 `typ-605 ~ ~ ~))
35743580++ test-types-union-finite-generic
3575− (weld (check ~.types-union-finite-generic src-605 `tok-605 `tre-605) (check-module-types ~.types-union-finite-generic ~[%tests %golden ~.types-union-finite-generic %source %jibb] src-605 `typ-605 ~ ~ ~))
3581+ (weld (check ~.types-union-finite-generic src-606 `tok-606 `tre-606) (check-module-types ~.types-union-finite-generic ~[%tests %golden ~.types-union-finite-generic %source %jibb] src-606 `typ-606 ~ ~ ~))
35763582++ test-types-union-finite-limit
3577− (weld (check ~.types-union-finite-limit src-606 `tok-606 `tre-606) (check-module-types ~.types-union-finite-limit ~[%tests %golden ~.types-union-finite-limit %source %jibb] src-606 `typ-606 ~ ~ ~))
3583+ (weld (check ~.types-union-finite-limit src-607 `tok-607 `tre-607) (check-module-types ~.types-union-finite-limit ~[%tests %golden ~.types-union-finite-limit %source %jibb] src-607 `typ-607 ~ ~ ~))
35783584++ test-types-union-import
3579− (weld (weld (check ~.types-union-import src-607 `tok-607 `tre-607) (check-module-types ~.types-union-import ~[%tests %golden ~.types-union-import %source %jibb] src-607 `typ-607 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-607-1]])) (check-module-trees ~.types-union-import `mtre-607 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-607-1]]))
3585+ (weld (weld (check ~.types-union-import src-608 `tok-608 `tre-608) (check-module-types ~.types-union-import ~[%tests %golden ~.types-union-import %source %jibb] src-608 `typ-608 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-608-1]])) (check-module-trees ~.types-union-import `mtre-608 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-608-1]]))
35803586++ test-types-union-local-pending
3581− (weld (check ~.types-union-local-pending src-608 `tok-608 `tre-608) (check-types ~.types-union-local-pending ~[%tests %golden ~.types-union-local-pending %source %jibb] src-608 `typ-608))
3587+ (weld (check ~.types-union-local-pending src-609 `tok-609 `tre-609) (check-types ~.types-union-local-pending ~[%tests %golden ~.types-union-local-pending %source %jibb] src-609 `typ-609))
35823588++ test-types-union-nonwing-subject
3583− (weld (check ~.types-union-nonwing-subject src-609 `tok-609 `tre-609) (check-module-types ~.types-union-nonwing-subject ~[%tests %golden ~.types-union-nonwing-subject %source %jibb] src-609 `typ-609 ~ ~ ~))
3589+ (weld (check ~.types-union-nonwing-subject src-610 `tok-610 `tre-610) (check-module-types ~.types-union-nonwing-subject ~[%tests %golden ~.types-union-nonwing-subject %source %jibb] src-610 `typ-610 ~ ~ ~))
35843590++ test-types-union-overlap
3585− (weld (check ~.types-union-overlap src-610 `tok-610 `tre-610) (check-types ~.types-union-overlap ~[%tests %golden ~.types-union-overlap %source %jibb] src-610 `typ-610))
3591+ (weld (check ~.types-union-overlap src-611 `tok-611 `tre-611) (check-types ~.types-union-overlap ~[%tests %golden ~.types-union-overlap %source %jibb] src-611 `typ-611))
35863592++ test-types-union-overlap-nested
3587− (weld (check ~.types-union-overlap-nested src-611 `tok-611 `tre-611) (check-types ~.types-union-overlap-nested ~[%tests %golden ~.types-union-overlap-nested %source %jibb] src-611 `typ-611))
3593+ (weld (check ~.types-union-overlap-nested src-612 `tok-612 `tre-612) (check-types ~.types-union-overlap-nested ~[%tests %golden ~.types-union-overlap-nested %source %jibb] src-612 `typ-612))
35883594++ test-types-union-pattern-result-context
3589− (weld (check ~.types-union-pattern-result-context src-612 `tok-612 `tre-612) (check-module-types ~.types-union-pattern-result-context ~[%tests %golden ~.types-union-pattern-result-context %source %jibb] src-612 `typ-612 ~ ~ ~))
3595+ (weld (check ~.types-union-pattern-result-context src-613 `tok-613 `tre-613) (check-module-types ~.types-union-pattern-result-context ~[%tests %golden ~.types-union-pattern-result-context %source %jibb] src-613 `typ-613 ~ ~ ~))
35903596++ test-types-union-pattern-result-controls
3591− (weld (check ~.types-union-pattern-result-controls src-613 `tok-613 `tre-613) (check-module-types ~.types-union-pattern-result-controls ~[%tests %golden ~.types-union-pattern-result-controls %source %jibb] src-613 `typ-613 ~ ~ ~))
3597+ (weld (check ~.types-union-pattern-result-controls src-614 `tok-614 `tre-614) (check-module-types ~.types-union-pattern-result-controls ~[%tests %golden ~.types-union-pattern-result-controls %source %jibb] src-614 `typ-614 ~ ~ ~))
35923598++ test-types-union-patterns
3593− (weld (check ~.types-union-patterns src-614 `tok-614 `tre-614) (check-module-types ~.types-union-patterns ~[%tests %golden ~.types-union-patterns %source %jibb] src-614 `typ-614 ~ ~ ~))
3599+ (weld (check ~.types-union-patterns src-615 `tok-615 `tre-615) (check-module-types ~.types-union-patterns ~[%tests %golden ~.types-union-patterns %source %jibb] src-615 `typ-615 ~ ~ ~))
35943600++ test-types-union-patterns-generic
3595− (weld (check ~.types-union-patterns-generic src-615 `tok-615 `tre-615) (check-module-types ~.types-union-patterns-generic ~[%tests %golden ~.types-union-patterns-generic %source %jibb] src-615 `typ-615 ~ ~ ~))
3601+ (weld (check ~.types-union-patterns-generic src-616 `tok-616 `tre-616) (check-module-types ~.types-union-patterns-generic ~[%tests %golden ~.types-union-patterns-generic %source %jibb] src-616 `typ-616 ~ ~ ~))
35963602++ test-types-union-patterns-import
3597− (weld (weld (check ~.types-union-patterns-import src-616 `tok-616 `tre-616) (check-module-types ~.types-union-patterns-import ~[%tests %golden ~.types-union-patterns-import %source %jibb] src-616 `typ-616 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-616-1]])) (check-module-trees ~.types-union-patterns-import `mtre-616 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-616-1]]))
3603+ (weld (weld (check ~.types-union-patterns-import src-617 `tok-617 `tre-617) (check-module-types ~.types-union-patterns-import ~[%tests %golden ~.types-union-patterns-import %source %jibb] src-617 `typ-617 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-617-1]])) (check-module-trees ~.types-union-patterns-import `mtre-617 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-617-1]]))
35983604++ test-types-union-phantom-generic
3599− (weld (check ~.types-union-phantom-generic src-617 `tok-617 `tre-617) (check-types ~.types-union-phantom-generic ~[%tests %golden ~.types-union-phantom-generic %source %jibb] src-617 `typ-617))
3605+ (weld (check ~.types-union-phantom-generic src-618 `tok-618 `tre-618) (check-types ~.types-union-phantom-generic ~[%tests %golden ~.types-union-phantom-generic %source %jibb] src-618 `typ-618))
36003606++ test-types-union-polymorphic-identity
3601− (weld (weld (check ~.types-union-polymorphic-identity src-618 `tok-618 `tre-618) (check-module-types ~.types-union-polymorphic-identity ~[%tests %golden ~.types-union-polymorphic-identity %source %jibb] src-618 `typ-618 ~ ~ ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-618-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-618-2]])) (check-module-trees ~.types-union-polymorphic-identity `mtre-618 ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-618-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-618-2]]))
3607+ (weld (weld (check ~.types-union-polymorphic-identity src-619 `tok-619 `tre-619) (check-module-types ~.types-union-polymorphic-identity ~[%tests %golden ~.types-union-polymorphic-identity %source %jibb] src-619 `typ-619 ~ ~ ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-619-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-619-2]])) (check-module-trees ~.types-union-polymorphic-identity `mtre-619 ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-619-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-619-2]]))
36023608++ test-types-union-print-cross-namespace
3603− (weld (weld (check ~.types-union-print-cross-namespace src-619 `tok-619 `tre-619) (check-module-types ~.types-union-print-cross-namespace ~[%tests %golden ~.types-union-print-cross-namespace %source %jibb] src-619 `typ-619 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-619-1]])) (check-module-trees ~.types-union-print-cross-namespace `mtre-619 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-619-1]]))
3609+ (weld (weld (check ~.types-union-print-cross-namespace src-620 `tok-620 `tre-620) (check-module-types ~.types-union-print-cross-namespace ~[%tests %golden ~.types-union-print-cross-namespace %source %jibb] src-620 `typ-620 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-620-1]])) (check-module-trees ~.types-union-print-cross-namespace `mtre-620 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-620-1]]))
36043610++ test-types-union-print-distinct
3605− (weld (weld (check ~.types-union-print-distinct src-620 `tok-620 `tre-620) (check-module-types ~.types-union-print-distinct ~[%tests %golden ~.types-union-print-distinct %source %jibb] src-620 `typ-620 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-620-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-620-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-620-3]])) (check-module-trees ~.types-union-print-distinct `mtre-620 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-620-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-620-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-620-3]]))
3611+ (weld (weld (check ~.types-union-print-distinct src-621 `tok-621 `tre-621) (check-module-types ~.types-union-print-distinct ~[%tests %golden ~.types-union-print-distinct %source %jibb] src-621 `typ-621 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-621-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-621-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-621-3]])) (check-module-trees ~.types-union-print-distinct `mtre-621 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-621-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-621-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-621-3]]))
36063612++ test-types-union-print-escape
3607− (weld (check ~.types-union-print-escape src-621 `tok-621 `tre-621) (check-types ~.types-union-print-escape ~[%tests %golden ~.types-union-print-escape %source %jibb] src-621 `typ-621))
3613+ (weld (check ~.types-union-print-escape src-622 `tok-622 `tre-622) (check-types ~.types-union-print-escape ~[%tests %golden ~.types-union-print-escape %source %jibb] src-622 `typ-622))
36083614++ test-types-union-print-local
3609− (weld (check ~.types-union-print-local src-622 `tok-622 `tre-622) (check-types ~.types-union-print-local ~[%tests %golden ~.types-union-print-local %source %jibb] src-622 `typ-622))
3615+ (weld (check ~.types-union-print-local src-623 `tok-623 `tre-623) (check-types ~.types-union-print-local ~[%tests %golden ~.types-union-print-local %source %jibb] src-623 `typ-623))
36103616++ test-types-union-print-nested
3611− (weld (check ~.types-union-print-nested src-623 `tok-623 `tre-623) (check-types ~.types-union-print-nested ~[%tests %golden ~.types-union-print-nested %source %jibb] src-623 `typ-623))
3617+ (weld (check ~.types-union-print-nested src-624 `tok-624 `tre-624) (check-types ~.types-union-print-nested ~[%tests %golden ~.types-union-print-nested %source %jibb] src-624 `typ-624))
36123618++ test-types-union-print-same-origin
3613− (weld (weld (check ~.types-union-print-same-origin src-624 `tok-624 `tre-624) (check-module-types ~.types-union-print-same-origin ~[%tests %golden ~.types-union-print-same-origin %source %jibb] src-624 `typ-624 ~ ~ ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-624-1]])) (check-module-trees ~.types-union-print-same-origin `mtre-624 ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-624-1]]))
3619+ (weld (weld (check ~.types-union-print-same-origin src-625 `tok-625 `tre-625) (check-module-types ~.types-union-print-same-origin ~[%tests %golden ~.types-union-print-same-origin %source %jibb] src-625 `typ-625 ~ ~ ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-625-1]])) (check-module-trees ~.types-union-print-same-origin `mtre-625 ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-625-1]]))
36143620++ test-types-union-print-transitive
3615− (weld (weld (check ~.types-union-print-transitive src-625 `tok-625 `tre-625) (check-module-types ~.types-union-print-transitive ~[%tests %golden ~.types-union-print-transitive %source %jibb] src-625 `typ-625 ~ ~ ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-625-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-625-2]])) (check-module-trees ~.types-union-print-transitive `mtre-625 ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-625-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-625-2]]))
3621+ (weld (weld (check ~.types-union-print-transitive src-626 `tok-626 `tre-626) (check-module-types ~.types-union-print-transitive ~[%tests %golden ~.types-union-print-transitive %source %jibb] src-626 `typ-626 ~ ~ ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-626-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-626-2]])) (check-module-trees ~.types-union-print-transitive `mtre-626 ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-626-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-626-2]]))
36163622++ test-types-union-singleton
3617− (weld (check ~.types-union-singleton src-626 `tok-626 `tre-626) (check-types ~.types-union-singleton ~[%tests %golden ~.types-union-singleton %source %jibb] src-626 `typ-626))
3623+ (weld (check ~.types-union-singleton src-627 `tok-627 `tre-627) (check-types ~.types-union-singleton ~[%tests %golden ~.types-union-singleton %source %jibb] src-627 `typ-627))
36183624++ test-types-union-tag-atoms
3619− (weld (check ~.types-union-tag-atoms src-627 `tok-627 `tre-627) (check-types ~.types-union-tag-atoms ~[%tests %golden ~.types-union-tag-atoms %source %jibb] src-627 `typ-627))
3625+ (weld (check ~.types-union-tag-atoms src-628 `tok-628 `tre-628) (check-types ~.types-union-tag-atoms ~[%tests %golden ~.types-union-tag-atoms %source %jibb] src-628 `typ-628))
36203626++ test-types-union-tags
3621− (weld (check ~.types-union-tags src-628 `tok-628 `tre-628) (check-types ~.types-union-tags ~[%tests %golden ~.types-union-tags %source %jibb] src-628 `typ-628))
3627+ (weld (check ~.types-union-tags src-629 `tok-629 `tre-629) (check-types ~.types-union-tags ~[%tests %golden ~.types-union-tags %source %jibb] src-629 `typ-629))
36223628++ test-types-union-unresolved
3623− (weld (check ~.types-union-unresolved src-629 `tok-629 `tre-629) (check-types ~.types-union-unresolved ~[%tests %golden ~.types-union-unresolved %source %jibb] src-629 `typ-629))
3629+ (weld (check ~.types-union-unresolved src-630 `tok-630 `tre-630) (check-types ~.types-union-unresolved ~[%tests %golden ~.types-union-unresolved %source %jibb] src-630 `typ-630))
36243630++ test-types-union-unresolved-flow
3625− (weld (check ~.types-union-unresolved-flow src-630 `tok-630 `tre-630) (check-types ~.types-union-unresolved-flow ~[%tests %golden ~.types-union-unresolved-flow %source %jibb] src-630 `typ-630))
3631+ (weld (check ~.types-union-unresolved-flow src-631 `tok-631 `tre-631) (check-types ~.types-union-unresolved-flow ~[%tests %golden ~.types-union-unresolved-flow %source %jibb] src-631 `typ-631))
36263632++ test-types-unit-construction
3627− (weld (check ~.types-unit-construction src-631 `tok-631 `tre-631) (check-module-types ~.types-unit-construction ~[%tests %golden ~.types-unit-construction %source %jibb] src-631 `typ-631 ~ ~ ~))
3633+ (weld (check ~.types-unit-construction src-632 `tok-632 `tre-632) (check-module-types ~.types-unit-construction ~[%tests %golden ~.types-unit-construction %source %jibb] src-632 `typ-632 ~ ~ ~))
36283634++ test-types-unit-context
3629− (weld (check ~.types-unit-context src-632 `tok-632 `tre-632) (check-module-types ~.types-unit-context ~[%tests %golden ~.types-unit-context %source %jibb] src-632 `typ-632 ~ ~ ~))
3635+ (weld (check ~.types-unit-context src-633 `tok-633 `tre-633) (check-module-types ~.types-unit-context ~[%tests %golden ~.types-unit-context %source %jibb] src-633 `typ-633 ~ ~ ~))
36303636++ test-types-unit-patterns
3631− (weld (check ~.types-unit-patterns src-633 `tok-633 `tre-633) (check-types ~.types-unit-patterns ~[%tests %golden ~.types-unit-patterns %source %jibb] src-633 `typ-633))
3637+ (weld (check ~.types-unit-patterns src-634 `tok-634 `tre-634) (check-types ~.types-unit-patterns ~[%tests %golden ~.types-unit-patterns %source %jibb] src-634 `typ-634))
36323638++ test-types-value-cycle-shadow
3633− (weld (check ~.types-value-cycle-shadow src-634 `tok-634 `tre-634) (check-module-types ~.types-value-cycle-shadow ~[%tests %golden ~.types-value-cycle-shadow %source %jibb] src-634 `typ-634 ~ ~ ~))
3639+ (weld (check ~.types-value-cycle-shadow src-635 `tok-635 `tre-635) (check-module-types ~.types-value-cycle-shadow ~[%tests %golden ~.types-value-cycle-shadow %source %jibb] src-635 `typ-635 ~ ~ ~))
36343640++ test-types-value-cycle-unsupported
3635− (weld (check ~.types-value-cycle-unsupported src-635 `tok-635 `tre-635) (check-module-types ~.types-value-cycle-unsupported ~[%tests %golden ~.types-value-cycle-unsupported %source %jibb] src-635 `typ-635 ~ ~ ~))
3641+ (weld (check ~.types-value-cycle-unsupported src-636 `tok-636 `tre-636) (check-module-types ~.types-value-cycle-unsupported ~[%tests %golden ~.types-value-cycle-unsupported %source %jibb] src-636 `typ-636 ~ ~ ~))
36363642++ test-types-value-cycles
3637− (weld (check ~.types-value-cycles src-636 `tok-636 `tre-636) (check-module-types ~.types-value-cycles ~[%tests %golden ~.types-value-cycles %source %jibb] src-636 `typ-636 ~ ~ ~))
3643+ (weld (check ~.types-value-cycles src-637 `tok-637 `tre-637) (check-module-types ~.types-value-cycles ~[%tests %golden ~.types-value-cycles %source %jibb] src-637 `typ-637 ~ ~ ~))
36383644::
36393645:: +check: run golden:jibb on a case and compare both outputs
36403646::
tools/testdata/ship-selftest+2−1
@@ -307,7 +307,8 @@ def generator_checks(tmp):
307307 'tests/lib/jibb-arithmetic-guards.hoon',
308308 'tests/lib/jibb-positional-face-guards.hoon',
309309 'tests/lib/jibb-generic-alias.hoon',
310− 'tests/lib/jibb-api-evidence.hoon'}
310+ 'tests/lib/jibb-api-evidence.hoon',
311+ 'tests/lib/jibb-ask-guards.hoon'}
311312 <= normal_tests, sorted(normal_tests))
312313 for label, kwargs in (('custom library', {'lib': STUB}),
313314 ('custom goldens', {'golden': CASES}),
tools/type-ask-guards-testnew file+31
@@ -0,0 +1,31 @@
1+#!/usr/bin/env python3
2+"""Run the partial ask source-identity and canonical-template 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-ask-guards.hoon').read_text()
14+tests = tests[tests.index('\n|%\n') + 1:]
15+expression = ('=/ jibb .\n=/ suite\n' + tests +
16+ '\n=/ failures=(list tape) ask-guard-errors:suite\n^- @t\n' +
17+ "?~ failures 'ask guards passed'\n" +
18+ '(of-wain:format (turn failures crip))\n')
19+with tempfile.TemporaryDirectory(prefix='jibb-ask-guards-') 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',
23+ '--cord', 'public=' + str(root / 'jibb-dev/lib/jibb/prelude.jibb'),
24+ '--cord', 'internal=' + str(root / 'jibb-dev/lib/jibb/internal.jibb'),
25+ '-f', str(program)], stdout=subprocess.PIPE)
26+if result.returncode:
27+ sys.exit(result.returncode)
28+if result.stdout != b'ask guards passed\n':
29+ sys.stderr.buffer.write(result.stdout)
30+ sys.exit(1)
31+print('ask source and canonical-template guards passed')