on master help sign in
Compare constructor heads by noun value
911ca0ciko
docs/compiler.md+5−3
@@ -56,13 +56,13 @@ The core is split into chapters, `+| %name`, in this order:
56| `%span-check` | `+check-spans`, which `+golden` runs on every tree, and `+check-spans-test` |
56| `%span-check` | `+check-spans`, which `+golden` runs on every tree, and `+check-spans-test` |
57| `%type-inference` | The initial inference fragment and its unification helpers; not yet a module type checker |
57| `%type-inference` | The initial inference fragment and its unification helpers; not yet a module type checker |
58
58
59−The inference fragment supports fixed auras, unrestricted `@`, one-way widening into it and toward aura-family ancestors, generic variables and gates, faced and unfaced cells, cell sample binders, known record field reads, a cell pattern of two or more binders, a complete two-arm loobean branch, a complete two-arm unit-shaped branch, closed local mold aliases and acyclic forward value references. For a supported single syntactic top-level recursive gate, the checker infers the sample first and uses that exact sample, including its field faces, in a monomorphic self placeholder. The completed body must unify with the placeholder before the gate is generalized; incompatible recursive arguments can report the call and argument sites. Uses of generalized top-level definitions instantiate their schemes independently. For a complete loobean branch with one direct self-call arm, the checker can infer the other arm independently and use its closed, fully resolved type to seed the recursive result; it then checks the whole body. Open or pending base types do not seed the result, and other branch shapes still depend on the existing partial inference. A supported single local recursive gate also uses a monomorphic self reference while its body is checked, then generalizes variables free of its enclosing environment; captured variables remain shared. Acyclic local value definitions can refer forward. 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. Some proven non-gate value cycles are diagnosed; other mixed gate/value cycles, polymorphic recursion, unresolved literal constraints and unresolved branch joins remain unsupported. Acyclic simple local mold aliases can also refer forward, and are scoped to the body, not its gate's sample. Nonrecursive generic aliases of supported molds can be applied at exact arity, including locally and through library interfaces; their parameters are lexical. Closed, provably disjoint nonrecursive unions and tagged single-case molds support contextual term values, `~` and `|=%tag` constructors. A null-headed cell can match a union case but does not supply a `|=%$` constructor; unresolved tags and nulls remain pending, with distinct partial-inference diagnostics. Nonrecursive top-level generic union molds with provably disjoint cases also support contextual tags and constructors at exact arity; their arguments are retained through generalization and supported library interfaces. Nonrecursive generic aliases can reorder, repeat or omit parameters while preserving a supported union’s origin, including through local scopes and library interfaces. A generic union declared directly inside a body and recursive molds remain unsupported. A directly known named union can instantiate an unconstrained generic gate sample while retaining its origin, generic arguments and faces. Unnamed, pending-tag, recursive, unknown-atom and variable-bound union origins 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. A differing-variable face constraint remains unsupported. When inference forces two distinct explicitly written capitals equal, it reports both source sites; forcing a capital to a concrete type remains unsupported in this fragment. It can infer and generalize atom constraints arising from explicit capitals or bare sample binders, preserve those constraints through aliases, instantiate them independently, and print multiple constraints. Unresolved decimal variables default to `@ud` for inferred types without gates; defaulting inside gate types and other constraint cases remain incomplete. It does not yet check a module, complete imports, general patterns, general deferred constraints, recursive molds, dependency cycles or most errors with both conflicting excerpts. Definite cast and call mismatches, incompatible branches and overlapping union cases report both sites and excerpts. Concrete branch results can join at an explicitly present parent aura or `@`. Some known tuple and record positions acquire matching faces; other variable-dependent face merges, general branch tag context and ambiguous call-result propagation remain unsupported; function compatibility involving nested `@` and variable-dependent joins remain unsupported except for equal types. For a single recursive gate outside a group, the reporting path repeats inference rather than instantiating its generalized interface inside its own body; a group report uses its stored schemes. This adds work, and the current dependency pass can take quadratic time on long forward chains; the milestone's speed target remains unverified. A separate conservative pass reports unions whose cases are provably disjoint or overlapping and leaves other cases unresolved; it does not claim the mold is checked. Unsupported forms are reported as such, and the partial output says the module has not been checked.
59+The inference fragment supports fixed auras, unrestricted `@`, one-way widening into it and toward aura-family ancestors, generic variables and gates, faced and unfaced cells, cell sample binders, known record field reads, a cell pattern of two or more binders, a complete two-arm loobean branch, a complete two-arm unit-shaped branch, closed local mold aliases and acyclic forward value references. For a supported single syntactic top-level recursive gate, the checker infers the sample first and uses that exact sample, including its field faces, in a monomorphic self placeholder. The completed body must unify with the placeholder before the gate is generalized; incompatible recursive arguments can report the call and argument sites. Uses of generalized top-level definitions instantiate their schemes independently. For a complete loobean branch with one direct self-call arm, the checker can infer the other arm independently and use its closed, fully resolved type to seed the recursive result; it then checks the whole body. Open or pending base types do not seed the result, and other branch shapes still depend on the existing partial inference. A supported single local recursive gate also uses a monomorphic self reference while its body is checked, then generalizes variables free of its enclosing environment; captured variables remain shared. Acyclic local value definitions can refer forward. 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. Some proven non-gate value cycles are diagnosed; other mixed gate/value cycles, polymorphic recursion, unresolved literal constraints and unresolved branch joins remain unsupported. Acyclic simple local mold aliases can also refer forward, and are scoped to the body, not its gate's sample. Nonrecursive generic aliases of supported molds can be applied at exact arity, including locally and through library interfaces; their parameters are lexical. Closed, provably disjoint nonrecursive unions and tagged single-case molds support contextual term values, `~` and `|=%tag` constructors. Literal heads compare by their runtime noun, so `|=%$` can construct an explicit null-, loobean-zero- or term-zero-headed case. Equal heads with distinct payloads can be selected when exactly one payload fit is proven; unknown or ambiguous alternatives remain unsupported. Unresolved tags and nulls remain pending, with distinct partial-inference diagnostics. Nonrecursive top-level generic union molds with provably disjoint cases also support contextual tags and constructors at exact arity; their arguments are retained through generalization and supported library interfaces. Nonrecursive generic aliases can reorder, repeat or omit parameters while preserving a supported union’s origin, including through local scopes and library interfaces. A generic union declared directly inside a body and recursive molds remain unsupported. A directly known named union can instantiate an unconstrained generic gate sample while retaining its origin, generic arguments and faces. Unnamed, pending-tag, recursive, unknown-atom and variable-bound union origins 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. A differing-variable face constraint remains unsupported. When inference forces two distinct explicitly written capitals equal, it reports both source sites; forcing a capital to a concrete type remains unsupported in this fragment. It can infer and generalize atom constraints arising from explicit capitals or bare sample binders, preserve those constraints through aliases, instantiate them independently, and print multiple constraints. Unresolved decimal variables default to `@ud` for inferred types without gates; defaulting inside gate types and other constraint cases remain incomplete. It does not yet check a module, complete imports, general patterns, general deferred constraints, recursive molds, dependency cycles or most errors with both conflicting excerpts. Definite cast and call mismatches, incompatible branches and overlapping union cases report both sites and excerpts. Concrete branch results can join at an explicitly present parent aura or `@`. Some known tuple and record positions acquire matching faces; other variable-dependent face merges, general branch tag context and ambiguous call-result propagation remain unsupported; function compatibility involving nested `@` and variable-dependent joins remain unsupported except for equal types. For a single recursive gate outside a group, the reporting path repeats inference rather than instantiating its generalized interface inside its own body; a group report uses its stored schemes. This adds work, and the current dependency pass can take quadratic time on long forward chains; the milestone's speed target remains unverified. A separate conservative pass reports unions whose cases are provably disjoint or overlapping and leaves other cases unresolved; it does not claim the mold is checked. Unsupported forms are reported as such, and the partial output says the module has not been checked.
60
60
61A single-arm cell pattern can bind two or more positions, with its last binder capturing the remaining tail. Duplicate and shadowed names are rejected. A definite non-cell spine fails; an intermediate union or collection that might contain a cell remains unsupported. For a known non-union cell, a separate one-arm rule also accepts structured patterns, including nested literal and wildcard positions, when the existing coverage proof establishes the whole pattern. It binds payloads with their original types and checks result context; unknown, partially covered, union or recursive spines stay unsupported.
61A single-arm cell pattern can bind two or more positions, with its last binder capturing the remaining tail. Duplicate and shadowed names are rejected. A definite non-cell spine fails; an intermediate union or collection that might contain a cell remains unsupported. For a known non-union cell, a separate one-arm rule also accepts structured patterns, including nested literal and wildcard positions, when the existing coverage proof establishes the whole pattern. It binds payloads with their original types and checks result context; unknown, partially covered, union or recursive spines stay unsupported.
62
62
63String interpolation infers its pieces in order and preserves substitutions and pending constraints. A piece with a known atom aura, unrestricted `@`, or a tape `(list @tD)` is accepted; an isolated decimal literal takes its normal `@ud` default. A known cell reports that it needs a printer, and an explicitly generic atom asks for an aura at its use site. Loobeans, term singletons, non-tape collections, open types and a type fixed only later remain unsupported in this fragment.
63String interpolation infers its pieces in order and preserves substitutions and pending constraints. A piece with a known atom aura, unrestricted `@`, or a tape `(list @tD)` is accepted; an isolated decimal literal takes its normal `@ud` default. A known cell reports that it needs a printer, and an explicitly generic atom asks for an aura at its use site. Loobeans, term singletons, non-tape collections, open types and a type fixed only later remain unsupported in this fragment.
64
64
65−The Hoon bridge translates imported `*` as the any-noun type, directly or within supported nonrecursive cells. The reader may still decline a disjoint tagged union with a noun payload, and recursive imports containing `*` remain unsupported. It accepts an exact fork of the two loobean singletons as `?`, and each singleton separately as `%.y` or `%.n`, including inside supported faced cells. Contextual literals specialize against a loobean singleton. Open `%f`, other values, and other forks containing loobean singletons remain unsupported; recursive Hoon molds containing flags can also fail closed.
65+The Hoon bridge translates imported `*` as the any-noun type, directly or within supported nonrecursive cells. The reader may still decline a disjoint tagged union with a noun payload, and recursive imports containing `*` remain unsupported. It accepts an exact fork of the two loobean singletons as `?`, and each singleton separately as `%.y` or `%.n`, including inside supported faced cells. Contextual loobean literals specialize against a matching singleton by noun, including a proven singleton in a direct union; named loobean singletons do not silently widen to a distinct aura. Open `%f`, other values, and other forks containing loobean singletons remain unsupported; recursive Hoon molds containing flags can also fail closed.
66
66
67A bare tag that provably matches no case of a known union reports the union and tag sites. This covers casts, single-argument calls, contextual unit payloads, list items and supported branch arms, including unnamed imported unions. For syntactic tuples, ordered fit replay can identify a missing tag in a nested position; an earlier mismatch or uncertainty stops the replay instead of guessing. Existing tags whose shape or payload does not fit retain the ordinary mismatch; unresolved tags stay pending.
67A bare tag that provably matches no case of a known union reports the union and tag sites. This covers casts, single-argument calls, contextual unit payloads, list items and supported branch arms, including unnamed imported unions. For syntactic tuples, ordered fit replay can identify a missing tag in a nested position; an earlier mismatch or uncertainty stops the replay instead of guessing. Existing tags whose shape or payload does not fit retain the ordinary mismatch; unresolved tags stay pending.
68
68
@@ -104,6 +104,8 @@ For a unique supported declaration, `+api-request-parts` retains that evidence w
104
104
105The ordinary import resolver can infer derived request-gate types for multiple supported API paths. A case may take one typed path parameter before its reply gate, or one diff fold after the reply; a case with both, multiple parameters or diffs, or a separate scry path remains unsupported. Each reply maps the full mark type to a fresh `M` and the request result is `(ask M)`. Checked ordinary API values and molds, declared mark molds and a supported poke constructor are exported too. Every selected `/sur` core must have a directly used, successfully read mold; unselected core bindings are not independently validated, and Jibb module imports remain unsupported in this API fragment. The unchanged todo API fits this fragment.
105The ordinary import resolver can infer derived request-gate types for multiple supported API paths. A case may take one typed path parameter before its reply gate, or one diff fold after the reply; a case with both, multiple parameters or diffs, or a separate scry path remains unsupported. Each reply maps the full mark type to a fresh `M` and the request result is `(ask M)`. Checked ordinary API values and molds, declared mark molds and a supported poke constructor are exported too. Every selected `/sur` core must have a directly used, successfully read mold; unselected core bindings are not independently validated, and Jibb module imports remain unsupported in this API fragment. The unchanged todo API fits this fragment.
106
106
107+A call whose direct result is a known named generic union can receive a matching same-origin, same-arity result context before its arguments are inferred. This retains the ordered generic arguments and existing capital checks; pending tags, recursive or variable-bound origins and unrestricted atom cases remain conservative. Constructor fitting reports unsupported when an unresolved or opaque case could contain the requested tagged head. It keeps definite missing-case errors for proven nonmatching cases, including an explicitly atom-only faced head. The real todo callback `|=%got` can infer when an `(ask msg)` result context fixes its message union; the uncontextualized call remains unsupported.
108+
107Each case's canonical API identity and source-derived schema travel across imports in a nonrecursive graph certificate containing the exact source bundle, prelude, reserved scope and trusted reader results. Cached interfaces must match those inputs and cannot hide an active ancestor; unknown legacy entries are rebuilt from their unique supplied source. Request-bearing closures are limited to 256 paths and requests. Closed gate samples can also fit when an unnamed input slot corresponds to a named one, provided products are identical and nested value faces and ambiguous cell tails remain intact. This is type inference only: request lowering, runtime schema validation and value watchability proofs are not implemented.
109Each case's canonical API identity and source-derived schema travel across imports in a nonrecursive graph certificate containing the exact source bundle, prelude, reserved scope and trusted reader results. Cached interfaces must match those inputs and cannot hide an active ancestor; unknown legacy entries are rebuilt from their unique supplied source. Request-bearing closures are limited to 256 paths and requests. Closed gate samples can also fit when an unnamed input slot corresponds to a named one, provided products are identical and nested value faces and ambiguous cell tails remain intact. This is type inference only: request lowering, runtime schema validation and value watchability proofs are not implemented.
108
110
109`+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.
111`+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.
@@ -123,7 +125,7 @@ And the design notes:
123
125
124Source-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.
126Source-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.
125
127
126−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, request lowering, other derived request shapes, `sub` and island watch checks remain unfinished. Public prelude preparation is partial: consumers must verify that `ask` was actually exported with its source origin.
128+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. The public prelude also defines the documented `sub` union in Jibb; supported watch payloads retain the public `(ask M)` type. A `sub` value is not itself proof that its request is watchable. Generated decoders, source-bound runtime validation, request lowering, other derived request shapes and island watch checks remain unfinished. Public prelude preparation is partial: consumers must verify that `ask` was actually exported with its source origin.
127
129
128Public 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.
130Public 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.
129
131
docs/development.md+4
@@ -75,6 +75,8 @@ git clone https://github.com/urbit/tools /root/src/tools
75| `tools/type-qath-guards-test` | Runs source-provenance, recursive unfolding and face guards under eval and on the ship |
75| `tools/type-qath-guards-test` | Runs source-provenance, recursive unfolding and face guards under eval and on the ship |
76| `tools/type-todo-api-test` | Exercises the actual todo API through the real Hoon readers and partial checker |
76| `tools/type-todo-api-test` | Exercises the actual todo API through the real Hoon readers and partial checker |
77| `tools/type-closed-gate-guards-test` | Checks closed gate sample labels and face uncertainty under eval and on the ship |
77| `tools/type-closed-gate-guards-test` | Checks closed gate sample labels and face uncertainty under eval and on the ship |
78+| `tools/type-constructor-fit-guards-test` | Checks constructor-case uncertainty and known mismatches under eval and on the ship |
79+| `tools/type-sub-guards-test` | Checks source-backed subscription mold dependencies under eval and on the ship |
78| `tools/type-ask-guards-test` | Runs ask origin and canonical list/unit bootstrap guards under eval and on the ship |
80| `tools/type-ask-guards-test` | Runs ask origin and canonical list/unit bootstrap guards under eval and on the ship |
79| `tools/type-request-guards-test` | Runs request evidence, source consistency and cache provenance guards under eval and on the ship |
81| `tools/type-request-guards-test` | Runs request evidence, source consistency and cache provenance guards under eval and on the ship |
80| `tools/type-proj-guards-test` | Runs projection evidence, name-scope and dependency guards under eval and on the ship |
82| `tools/type-proj-guards-test` | Runs projection evidence, name-scope and dependency guards under eval and on the ship |
@@ -110,6 +112,8 @@ tools/type-positional-face-guards-test # positional sample face guards pass
110tools/type-qath-guards-test # qath source and unfolding guards pass
112tools/type-qath-guards-test # qath source and unfolding guards pass
111tools/type-todo-api-test # real todo API partial inference and reader guards pass
113tools/type-todo-api-test # real todo API partial inference and reader guards pass
112tools/type-closed-gate-guards-test # closed gate fit guards pass
114tools/type-closed-gate-guards-test # closed gate fit guards pass
115+tools/type-constructor-fit-guards-test # constructor fit guards pass
116+tools/type-sub-guards-test # subscription source guards pass
113tools/type-ask-guards-test # ask source and bootstrap guards pass
117tools/type-ask-guards-test # ask source and bootstrap guards pass
114tools/type-request-guards-test # request evidence and cache guards pass
118tools/type-request-guards-test # request evidence and cache guards pass
115tools/type-proj-guards-test # projection evidence and scope guards pass
119tools/type-proj-guards-test # projection evidence and scope guards pass
docs/open-questions.md+2
@@ -64,6 +64,8 @@ Found while writing [prompts/milestone-2.md](prompts/milestone-2.md), checking i
64
64
6533. **Settled: watching a request with unknown provenance.** On 2026-10-31, @iko said an island may watch a request only if the checker proves it watchable at compile time. An unknown request, including one built or passed through a gate without sufficient evidence, is rejected rather than deferred to a runtime check.
6533. **Settled: watching a request with unknown provenance.** On 2026-10-31, @iko said an island may watch a request only if the checker proves it watchable at compile time. An unknown request, including one built or passed through a gate without sufficient evidence, is rejected rather than deferred to a runtime check.
66
66
67+34. **Settled: constructors and equal noun literals.** On 2026-10-31, @iko said expressions with the same runtime representation count as equal, and cases that cannot be distinguished at runtime are rejected at compile time. Thus `|=%$` matches a case headed by `%$`, `%.y` or `~`: each is the noun 0. Cases with equal heads and overlapping payloads cannot coexist in a union.
68+
67## Grammar questions never put to the doc's author
69## Grammar questions never put to the doc's author
68
70
69In milestone 1 the parser met about thirty places where the doc could be read more than one way. Twelve went to @iko on 2026-10-30 and are rows of the Decisions tab. These were not asked. For each, the parser follows the reading below, and some are marked "(doc question)" in the library's notes. None changes what a valid program means, except where a reading makes something an error.
71In milestone 1 the parser met about thirty places where the doc could be read more than one way. Twelve went to @iko on 2026-10-30 and are rows of the Decisions tab. These were not asked. For each, the parser follows the reading below, and some are marked "(doc question)" in the library's notes. None changes what a valid program means, except where a reading makes something an error.
docs/prompts/milestone-2.md+3−3
@@ -49,7 +49,7 @@ And from the plan's Risks:
49
49
50## First steps
50## First steps
51
51
52−1. **Specify the prelude inventory.** The checker needs the prelude's complete exported inventory and signatures; include all names from the listed Hoon library sections except explicitly excluded groups, as `docs/open-questions.md` question 3 records. The prelude imports private helpers and low-level primitives from a separate internal module without exposing them; its public foundational gates are implemented in Jibb on those primitives. The source-backed internal module defines `poke`; the public prelude re-exports it as an ordinary transparent type that modules can construct and inspect, as question 24 records. This decision does not specify the representation of `ask` or `qath`.
52+1. **Specify the prelude inventory.** The checker needs the prelude's complete exported inventory and signatures; include all names from the listed Hoon library sections except explicitly excluded groups, as `docs/open-questions.md` question 3 records. The prelude imports private helpers and low-level primitives from a separate internal module without exposing them; its public foundational gates are implemented in Jibb on those primitives. The source-backed internal module defines `poke`, `ask` and `qath`; the public prelude re-exports them as ordinary transparent types that modules can construct and inspect, as questions 24 and 25 record. Their current representations and partial checker support are described in `docs/compiler.md`.
53
53
54 The plan's three core-language rules were adopted: gate-free `eq` arguments and map and set keys, with gates opaque for union matching; jetted prelude functions taking gates; and rejection of a non-gate value that depends on itself even through a gate.
54 The plan's three core-language rules were adopted: gate-free `eq` arguments and map and set keys, with gates opaque for union matching; jetted prelude functions taking gates; and rejection of a non-gate value that depends on itself even through a gate.
552. **Start the importer early**, as the plan's Risks ask: first on a small `/sur` file, then on Tlon's. "Suggested design" below has a way in.
552. **Start the importer early**, as the plan's Risks ask: first on a small `/sur` file, then on Tlon's. "Suggested design" below has a way in.
@@ -75,7 +75,7 @@ The rules are scattered across the tabs. This is a map of them, not a replacemen
75
75
76**Tags, `~`, numbers and cells wait for their context** (Grammar: Tag resolution, Literals by context)
76**Tags, `~`, numbers and cells wait for their context** (Grammar: Tag resolution, Literals by context)
77- A tag or `~` gets a fresh variable and a pending constraint, checked once unification fixes the variable: against a union's cases, by shape and shared tag positions, or as a constant atom for `@tas`, `@ta`, `@` or `*`. A literal that matches nothing is "an error naming the union, such as "msg has no case %submitt"".
77- A tag or `~` gets a fresh variable and a pending constraint, checked once unification fixes the variable: against a union's cases, by shape and shared tag positions, or as a constant atom for `@tas`, `@ta`, `@` or `*`. A literal that matches nothing is "an error naming the union, such as "msg has no case %submitt"".
78−- `|=%typed` is a case's constructor: "against `$-(@t M)` it is `|=(t [%typed t])`, requiring `M` to have a case `[%typed @t]`. It works for cases tagged at their head; a bare tag is always a value."
78+- `|=%typed` is a case's constructor: "against `$-(@t M)` it is `|=(t [%typed t])`, requiring `M` to have a case `[%typed @t]`. A literal case head matches by noun value, so `|=%$` also matches `%.y` and `~` heads; a bare tag is always a value."
79- A variable constrained by tag resolution, and any it mentions, doesn't generalize; it stays open until something in the module fixes it. An island's `main` fixes its messages. A tag constraint still open when the module is checked is an error asking for a `^-`; the checker never guesses. Gate-free constraints are retained when generalized.
79- A variable constrained by tag resolution, and any it mentions, doesn't generalize; it stays open until something in the module fixes it. An island's `main` fixes its messages. A tag constraint still open when the module is checked is an error asking for a `^-`; the checker never guesses. Gate-free constraints are retained when generalized.
80- "Wing access, changes and `?-` on a type not yet known wait the same way." A change with no items, `m()`, is an error; the parser still accepts it. Patterns don't wait: they're checked against the subject's type.
80- "Wing access, changes and `?-` on a type not yet known wait the same way." A change with no items, `m()`, is an error; the parser still accepts it. Patterns don't wait: they're checked against the subject's type.
81- Number and cell literals each "takes a default when its `++` is checked": a number `@ud`, a cell a tuple. But "A number takes `@ud` only if nothing fixes its aura and its `++` isn't generic over it", so `++ inc |= n=A (add n 1)` stays generic: unlike a tag's, a number's variable doesn't stop its `++` from generalizing. A cell can also become a record or, where a list is expected, a cons.
81- Number and cell literals each "takes a default when its `++` is checked": a number `@ud`, a cell a tuple. But "A number takes `@ud` only if nothing fixes its aura and its `++` isn't generic over it", so `++ inc |= n=A (add n 1)` stays generic: unlike a tag's, a number's variable doesn't stop its `++` from generalizing. A cell can also become a record or, where a list is expected, a cons.
@@ -121,7 +121,7 @@ The rules are scattered across the tabs. This is a map of them, not a replacemen
121- Element signatures are in the Layout and styling table. Paths and unchecked cords have separate declarations, with `link-unsafe`, `image-unsafe` and `go-unsafe` for the unchecked forms. Both navigation declarations produce `[%go url=@t]`; `go` converts its application path to a cord including the app's base path. "The same attribute twice in a literal list is an error."
121- Element signatures are in the Layout and styling table. Paths and unchecked cords have separate declarations, with `link-unsafe`, `image-unsafe` and `go-unsafe` for the unchecked forms. Both navigation declarations produce `[%go url=@t]`; `go` converts its application path to a cord including the app's base path. "The same attribute twice in a literal list is an error."
122
122
123**Errors**
123**Errors**
124−- Each one the Grammar tab describes needs a golden case with its message. A start on the list: an aura mismatch; mismatched faces; "msg has no case %submitt"; an unresolved tag, as the Grammar's `add-button` ("nothing fixes the union of %add"); an open constraint at the end of a module; a `|=%tag` whose union has no such case tagged at its head; a union whose cases overlap; a missing `?-` case, named; an arm that earlier arms cover; a value that refers to itself; a shadowed name, including a prelude or imported one; a cell in `{…}` with no printer; an atom of a generic aura in `{…}` or a path's `(…)`; a capital that a body makes a `@ud` or a list; `~[text "hi"]`, where the checker suggests `~[(text "hi")]`; clashing derived names; an import cycle; from an import, a signed or float aura, a core, gate or vase, or a `$%`, `$?` or `$^` whose cases don't differ as nouns, or a record with duplicate field names, each where used; a `(facts …)` outside an API file's `paths`; a gate in island data or a model, naming the field; a repeated attribute in a literal list. Read the Grammar tab, and the other tabs' mentions of "error" and "the checker", and make the list complete.
124+- Each one the Grammar tab describes needs a golden case with its message. A start on the list: an aura mismatch; mismatched faces; "msg has no case %submitt"; an unresolved tag, as the Grammar's `add-button` ("nothing fixes the union of %add"); an open constraint at the end of a module; a `|=%tag` whose union has no case with an equal literal head; a union whose cases overlap; a missing `?-` case, named; an arm that earlier arms cover; a value that refers to itself; a shadowed name, including a prelude or imported one; a cell in `{…}` with no printer; an atom of a generic aura in `{…}` or a path's `(…)`; a capital that a body makes a `@ud` or a list; `~[text "hi"]`, where the checker suggests `~[(text "hi")]`; clashing derived names; an import cycle; from an import, a signed or float aura, a core, gate or vase, or a `$%`, `$?` or `$^` whose cases don't differ as nouns, or a record with duplicate field names, each where used; a `(facts …)` outside an API file's `paths`; a gate in island data or a model, naming the field; a repeated attribute in a literal list. Read the Grammar tab, and the other tabs' mentions of "error" and "the checker", and make the list complete.
125- For a `+$` whose cases overlap or do not fit, suggest that a record or tuple leaves its `[` open on the `+$` line. `+$ pt` above `@t` and `[@ud @ud]` is a valid union.
125- For a `+$` whose cases overlap or do not fit, suggest that a record or tuple leaves its `[` open on the `+$` line. `+$ pt` above `@t` and `[@ud @ud]` is a valid union.
126- "Each error names both conflicting sites, with excerpts." Today's `error` is `[file line col msg]`, a start only; spans keep each node's end so that a type error can underline both sites.
126- "Each error names both conflicting sites, with excerpts." Today's `error` is `[file line col msg]`, a start only; spans keep each node's end so that a type error can underline both sites.
127- Messages name things in the doc's words and quote the code they're about in backticks, as milestone 1's do. Their wording is fixed by the golden tests once written.
127- Messages name things in the doc's words and quote the code they're about in backticks, as milestone 1's do. Their wording is fixed by the golden tests once written.
docs/spec/decisions.md+1−1
@@ -24,7 +24,7 @@ The choices behind the Language tab, made on 2026-10-23; a later date marks a re
24| Several open brackets | The deeper lines go to the last bracket, or the last rune's body, left open on a line, and the brackets before it close with it: `(column ~ ~[` needs no `)` | Decided 2026-10-30 |
24| Several open brackets | The deeper lines go to the last bracket, or the last rune's body, left open on a line, and the brackets before it close with it: `(column ~ ~[` needs no `)` | Decided 2026-10-30 |
25| Jibb code blocks | Labelled `jibb` in this doc; each is a golden test | Decided 2026-10-30 |
25| Jibb code blocks | Labelled `jibb` in this doc; each is a golden test | Decided 2026-10-30 |
26| Definitions | `++` for values, `+$` for molds; no `=/` | Decided |
26| Definitions | `++` for values, `+$` for molds; no `=/` | Decided |
27−| Unions | No `$?`: a `+$` with its cases on the lines below is a union, so every union written in Jibb has a name; one case is just that mold; a mold that isn't a union counts as a union of one case for tags and `\|=%tag`; a generic's `\|$` comes right after the `+$`'s name; tags anywhere; cases differ as nouns, with `?` treated as the two atoms `%.y` and `%.n`, disjoint from cells and overlapping constants 0 and 1, and `!!` or any cell with an empty position disjoint from every case; a tag literal or `~` waits for its union, and an unresolved one is an error | Decided 2026-10-30 |
27+| Unions | No `$?`: a `+$` with its cases on the lines below is a union, so every union written in Jibb has a name; one case is just that mold; a mold that isn't a union counts as a union of one case for tags and `\|=%tag`; a generic's `\|$` comes right after the `+$`'s name; tags anywhere; constructor heads and case disjointness compare literal noun values regardless of spelling, so `%$`, `%.y` and `~` are equal and overlapping cases are errors; cases differ as nouns, with `?` treated as the two atoms `%.y` and `%.n`, disjoint from cells and overlapping constants 0 and 1, and `!!` or any cell with an empty position disjoint from every case; a tag literal or `~` waits for its union, and an unresolved one is an error | Decided 2026-10-31 |
28| Printed unnamed unions | Print the cases separated by spaces, as `%approve %deny`; this is print-only, not Jibb syntax | Decided 2026-10-30 |
28| Printed unnamed unions | Print the cases separated by spaces, as `%approve %deny`; this is print-only, not Jibb syntax | Decided 2026-10-30 |
29| Printed type constraints | Print an atom constraint as `$-([A A] A) where A is an atom`, an arithmetic atom constraint as `where A is an atom other than ?`, and a gate-free constraint as `$-([A A] ?) where A contains no gates`; separate multiple clauses with commas, as `where A is an atom, B contains no gates` | Decided 2026-10-31 |
29| Printed type constraints | Print an atom constraint as `$-([A A] A) where A is an atom`, an arithmetic atom constraint as `where A is an atom other than ?`, and a gate-free constraint as `$-([A A] ?) where A contains no gates`; separate multiple clauses with commas, as `where A is an atom, B contains no gates` | Decided 2026-10-31 |
30| Branching | `?-` only, loobeans included; exhaustive, with explicit catch-alls; covered arms are errors; failures say `!!` | Decided 2026-10-29 |
30| Branching | `?-` only, loobeans included; exhaustive, with explicit catch-alls; covered arms are errors; failures say `!!` | Decided 2026-10-29 |
docs/spec/grammar.md+1−1
@@ -141,7 +141,7 @@ A mold is only a type: never called on a noun, and with no default. Types are in
141A tag literal or `~` gets a fresh type variable and a pending constraint: the variable must become a union with a matching case, or an atom type the term fits. A mold that isn't a union counts as a union of one case, for tags and for `|=%tag`: `[%go "x"]` fits `+$ go [%go url=@t]`, and `|=%typed` works against `$-(@t M)` when `M` is `[%typed text=@t]`. Once unification fixes the variable, each constraint is checked against the union's cases or, for `@tas`, `@ta`, `@` or `*`, makes the tag that constant atom. A literal that matches nothing is an error naming the union, such as "msg has no case %submitt".
141A tag literal or `~` gets a fresh type variable and a pending constraint: the variable must become a union with a matching case, or an atom type the term fits. A mold that isn't a union counts as a union of one case, for tags and for `|=%tag`: `[%go "x"]` fits `+$ go [%go url=@t]`, and `|=%typed` works against `$-(@t M)` when `M` is `[%typed text=@t]`. Once unification fixes the variable, each constraint is checked against the union's cases or, for `@tas`, `@ta`, `@` or `*`, makes the tag that constant atom. A literal that matches nothing is an error naming the union, such as "msg has no case %submitt".
142
142
143- A constraint records the literal's shape, such as `[@t %draft]`, and matches cases by shape and shared tag positions; a literal in a field position is checked against that field.
143- A constraint records the literal's shape, such as `[@t %draft]`, and matches cases by shape and shared tag positions; a literal in a field position is checked against that field.
144−- `|=%typed` is a case's constructor: against `$-(@t M)` it is `|=(t [%typed t])`, requiring `M` to have a case `[%typed @t]`. It works for cases tagged at their head; a bare tag is always a value.
144+- `|=%typed` is a case's constructor: against `$-(@t M)` it is `|=(t [%typed t])`, requiring `M` to have a case `[%typed @t]`. It works for cases whose head is a literal with the same noun as the tag, regardless of how that literal is written: `|=%$` also constructs a case headed by `%.y` or `~`, since each is the noun 0. A bare tag is always a value.
145- A variable constrained by tag resolution, and any it mentions, doesn't generalize; it stays open until something in the module fixes it. An island's `main` fixes its messages, so islands resolve their own tags. The inferred gate-free constraint is retained when a type variable is generalized.
145- A variable constrained by tag resolution, and any it mentions, doesn't generalize; it stays open until something in the module fixes it. An island's `main` fixes its messages, so islands resolve their own tags. The inferred gate-free constraint is retained when a type variable is generalized.
146- A constraint still open when its module is checked is an error asking for a `^-`; the checker never guesses. Library helpers can cast, as in `^- (list attr)`.
146- A constraint still open when its module is checked is an error asking for a `^-`; the checker never guesses. Library helpers can cast, as in `^- (list attr)`.
147- Wing access, changes and `?-` on a type not yet known wait the same way.
147- Wing access, changes and `?-` on a type not yet known wait the same way.
docs/status.md+10−7
@@ -25,7 +25,9 @@ On 2026-10-31, @iko chose explicit, result-directed `(proj record)` to construct
25
25
26The 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.
26The 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
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. Request lowering, checked decoding, runtime validation, `sub` and island watch checking remain unimplemented.
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. The public prelude now defines the documented source-backed `sub` union; supported `%watch` payloads retain the public `(ask M)` type. Constructing a `sub` does not prove that its request is watchable. Request lowering, checked decoding, runtime validation and island watch checking remain unimplemented.
29+
30+Known same-origin generic-union result context can now constrain a call before its arguments are inferred. An unresolved or opaque constructor target stays unsupported rather than producing a definite mismatch; proven missing tags still report errors. A todo request with explicit `(ask msg)` context can infer `|=%got`, while its uncontextualized form and the nested todo subscription remain unsupported.
29
31
30The 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.
32The 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.
31
33
@@ -37,7 +39,7 @@ Ordinary imports can infer derived request-gate types for multiple supported API
37
39
38The Hoon reader's tagged-union source proof also handles `$~` default wrappers. A shared eval and ship golden exercises the unmodified Tlon `epic.saga` mold as a named payload in a labeled downstream extension, alongside overlap, recursive, shadow and malformed-wrapper controls. The tagged-source helper peels at most four consecutive defaults; defaults inside dependency proofs spend the existing semantic-node budget. Other unverified nested unions and dependencies remain unsupported.
40The Hoon reader's tagged-union source proof also handles `$~` default wrappers. A shared eval and ship golden exercises the unmodified Tlon `epic.saga` mold as a named payload in a labeled downstream extension, alongside overlap, recursive, shadow and malformed-wrapper controls. The tagged-source helper peels at most four consecutive defaults; defaults inside dependency proofs spend the existing semantic-node budget. Other unverified nested unions and dependencies remain unsupported.
39
41
40−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 by itself create requests or check an API module. Ordinary imports additionally infer the supported multi-path request-gate types described above. Complete private module checking, other API shapes, request lowering, root API and kind checking, stores, complete `ask` and `pure` checking 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.
42+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 by itself create requests or check an API module. Ordinary imports additionally infer the supported multi-path request-gate types described above. Complete private module checking, other API shapes, request lowering, root API and kind checking, stores, complete `ask` and `pure` checking 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. Literal singleton heads compare by runtime noun, so `|=%$` also matches explicit null- and loobean-zero-headed cases. When equal heads have disjoint payloads, the constructor selects a uniquely proven compatible payload; unknown and ambiguous candidates remain unsupported. 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.
41
43
42The 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.
44The 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.
43
45
@@ -57,8 +59,8 @@ What the plan asks for, and where it is:
57
59
58Besides the plan's list:
60Besides the plan's list:
59
61
60−- 638 golden cases: 418 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.
62+- 645 golden cases: 425 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.
61−- The 638-case corpus passed under `urbit eval` in 273.8 s while other checks and a separate system build were running. The fake ship passed all 662 tests, including the importer, importer/checker and mark/checker bridges, module scope, unification, hole, qath, ask, default-wrapper importer, projection, arithmetic, generic-alias, positional-face, API-evidence, request, closed-gate and todo API guards, with 227.9 s for sync and 198.3 s for tests under the same load. 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.
63+- The 645-case corpus passed under `urbit eval` in 119.8 s while other checks were running. The fake ship passed all 671 tests, including the importer, importer/checker and mark/checker bridges, module scope, unification, hole, qath, ask, default-wrapper importer, projection, arithmetic, generic-alias, positional-face, API-evidence, request, closed-gate, todo API, constructor and sub guards, with 102.2 s for sync and 97.1 s for tests. The importer golden compares 221 projections; `tools/clay-fixtures` builds the example Hoon fixtures through Clay, checks a recursive Ford import's origin, and passes Clay-built types through the Clay-built importer and partial checker.
62- `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.
64- `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.
63- 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.
65- 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.
64- 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).
66- 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).
@@ -151,14 +153,15 @@ Besides the plan's list:
151| 3f55af7 | 2026-10-31 | Define source-backed transparent ask and pure |
153| 3f55af7 | 2026-10-31 | Define source-backed transparent ask and pure |
152| ae1ec26 | 2026-10-31 | Prove selected default-wrapped Hoon unions from source |
154| ae1ec26 | 2026-10-31 | Prove selected default-wrapped Hoon unions from source |
153| dde791c | 2026-10-31 | Infer a source-backed request-gate type through ordinary imports |
155| dde791c | 2026-10-31 | Infer a source-backed request-gate type through ordinary imports |
154−| This change | 2026-10-31 | Infer supported multi-path requests and named closed folds |
156+| a1c5f35 | 2026-10-31 | Infer supported multi-path requests and named closed folds |
157+| This change | 2026-10-31 | Propagate union context, define subscriptions and match literal nouns |
155
158
156## Checking it
159## Checking it
157
160
158On a machine set up as [development.md](development.md) says:
161On a machine set up as [development.md](development.md) says:
159
162
160```
163```
161−tools/golden # 638 cases under urbit eval
164+tools/golden # 645 cases under urbit eval
162tools/importer-test # the Hoon importer fixture projection
165tools/importer-test # the Hoon importer fixture projection
163tools/type-import-default-test # default-wrapped source proof golden
166tools/type-import-default-test # default-wrapped source proof golden
164tools/type-import-test # the importer/checker bridge fixture
167tools/type-import-test # the importer/checker bridge fixture
@@ -180,7 +183,7 @@ tools/testdata/selftest # the tools themselves
180tools/doc-blocks docs/spec # the doc's examples are golden cases
183tools/doc-blocks docs/spec # the doc's examples are golden cases
181tools/ship start
184tools/ship start
182tools/ship gen-tests --check # tests/lib/jibb.hoon is up to date
185tools/ship gen-tests --check # tests/lib/jibb.hoon is up to date
183−tools/ship test # the same 638 cases as -test arms on the ship
186+tools/ship test # the same 645 cases as -test arms on the ship
184tools/testdata/ship-selftest
187tools/testdata/ship-selftest
185tools/testdata/clay-fixtures-selftest # scratch fixture cleanup without a ship
188tools/testdata/clay-fixtures-selftest # scratch fixture cleanup without a ship
186tools/ship check-commit # |commit stores .jibb files
189tools/ship check-commit # |commit stores .jibb files
jibb-dev/lib/jibb.hoon+85−18
@@ -5203,25 +5203,51 @@
5203 $(cases t.cases, good `trial)
5203 $(cases t.cases, good `trial)
5204 ==
5204 ==
5205::
5205::
5206−:: A constructor needs a case with its tag at the head and a payload
5206+:: A constructor needs a case whose head has the same literal noun as its
5207−:: compatible with the expected gate sample. Other case forms do not
5207+:: tag. An unresolved or opaque case may reveal one later, so it cannot
5208−:: identify a constructor.
5208+:: prove a mismatch or a unique match. A broad atom mold is not a case.
5209::
5209::
5210++ itype-fit-ctor-cases
5210++ itype-fit-ctor-cases
5211 |= [tag=lit sample=itype cases=(list itype) sub=isub next=@ud]
5211 |= [tag=lit sample=itype cases=(list itype) sub=isub next=@ud]
5212 ^- ifit
5212 ^- ifit
5213 =/ found=(unit ifit) ~
5213 =/ found=(unit ifit) ~
5214+ =/ pending=? |
5214 |-
5215 |-
5216+ ?~ cases
5217+ ?: pending [%unknown ~]
5215− ?~ cases ?~(found [%bad ~] u.found)
5218+ ?~ found [%bad ~]
5219+ u.found
5220+ =/ raw=itype i.cases
5221+ ?: ?=(%var -.raw)
5222+ $(cases t.cases, pending &)
5216− =/ c=itype (itype-walk i.cases sub)
5223+ =/ c=itype (itype-walk raw sub)
5224+ ?: ?=(?(%var %tag %recursive %jrec %union %face) -.c)
5225+ $(cases t.cases, pending &)
5217 ?. ?=(%cell -.c) $(cases t.cases)
5226 ?. ?=(%cell -.c) $(cases t.cases)
5218− =/ head=itype (itype-walk hed.c sub)
5227+ =/ raw-head=itype hed.c
5228+ ?: ?=(%var -.raw-head)
5229+ $(cases t.cases, pending &)
5230+ =/ head=itype (itype-walk raw-head sub)
5231+ :: A single faced, explicitly atom-only head cannot be the tag case.
5232+ :: Do not follow variables or peel nested faces for this negative proof.
5233+ ?: ?=(%face -.head)
5234+ ?: ?=(?(%atom %any-atom %flag %avar %rvar %nvar %rnvar) -.body.head)
5235+ $(cases t.cases)
5236+ $(cases t.cases, pending &)
5237+ ?: ?=(?(%var %tag %recursive %jrec %union) -.head)
5238+ $(cases t.cases, pending &)
5219 ?. ?=(%const -.head) $(cases t.cases)
5239 ?. ?=(%const -.head) $(cases t.cases)
5220− ?. =(%term form.literal.head) $(cases t.cases)
5221 ?. =(val.literal.head val.tag) $(cases t.cases)
5240 ?. =(val.literal.head val.tag) $(cases t.cases)
5222− ?^ found [%unknown ~]
5241+ :: Equal heads can have disjoint payloads. Test each from the original
5242+ :: substitution; a unique success is usable only with no unknown rival.
5223 =/ trial=ifit (itype-fit sample tal.c sub next)
5243 =/ trial=ifit (itype-fit sample tal.c sub next)
5244+ ?- -.trial
5245+ %bad $(cases t.cases)
5246+ %unknown $(cases t.cases, pending &)
5247+ %ok
5248+ ?^ found [%unknown ~]
5224− $(cases t.cases, found `trial)
5249+ $(cases t.cases, found `trial)
5250+ ==
5225::
5251::
5226++ itype-fit
5252++ itype-fit
5227 |= [actual=itype expected=itype sub=isub next=@ud]
5253 |= [actual=itype expected=itype sub=isub next=@ud]
@@ -5245,6 +5271,9 @@
5245 =. actual (itype-walk actual sub)
5271 =. actual (itype-walk actual sub)
5246 =. expected (itype-walk expected sub)
5272 =. expected (itype-walk expected sub)
5247 ?: =(actual expected) [%ok sub next]
5273 ?: =(actual expected) [%ok sub next]
5274+ :: The relation of the source loobean mold to explicit @f is not yet
5275+ :: established. Keep it unsupported rather than asserting a mismatch.
5276+ ?: &(?=(%flag -.actual) ?=(%atom -.expected) =(%f aura.expected)) [%unknown ~]
5248 :: Any value can be used where a noun is expected. An unresolved
5277 :: Any value can be used where a noun is expected. An unresolved
5249 :: bare tag is fixed as a constant; a constructor still needs a gate.
5278 :: bare tag is fixed as a constant; a constructor still needs a gate.
5250 ?: ?=(%noun -.expected)
5279 ?: ?=(%noun -.expected)
@@ -5327,6 +5356,10 @@
5327 ?: ?=(%const -.expected)
5356 ?: ?=(%const -.expected)
5328 ?:(=(val.literal.actual val.literal.expected) [%ok sub next] [%bad ~])
5357 ?:(=(val.literal.actual val.literal.expected) [%ok sub next] [%bad ~])
5329 ?: ?=(%atom -.expected)
5358 ?: ?=(%atom -.expected)
5359+ :: A loobean singleton must not silently widen into another aura.
5360+ ?: =(%loobean form.literal.actual)
5361+ ?: =(%f aura.expected) [%unknown ~]
5362+ [%bad ~]
5330 ?: |(=(%tas aura.expected) =(%ta aura.expected)) [%ok sub next]
5363 ?: |(=(%tas aura.expected) =(%ta aura.expected)) [%ok sub next]
5331 [%bad ~]
5364 [%bad ~]
5332 ?: ?=(%flag -.expected)
5365 ?: ?=(%flag -.expected)
@@ -6562,7 +6595,8 @@
6562 %flag `[[%flag ~] state]
6595 %flag `[[%flag ~] state]
6563 %noun `[[%noun ~] state]
6596 %noun `[[%noun ~] state]
6564 %const
6597 %const
6565− ?. |(=(%term form.lit.sh) =(%null form.lit.sh)) ~
6598+ ?. |(=(%term form.lit.sh) =(%null form.lit.sh) =(%loobean form.lit.sh)) ~
6599+ ?: &(=(%loobean form.lit.sh) !|(=(0 val.lit.sh) =(1 val.lit.sh))) ~
6566 `[[%const lit.sh] state]
6600 `[[%const lit.sh] state]
6567 %union
6601 %union
6568 =/ pairs=(list upair) (union-pairs cases.sh molds.state)
6602 =/ pairs=(list upair) (union-pairs cases.sh molds.state)
@@ -8266,9 +8300,10 @@
8266 [%| ["unit payload does not fit its expected type" ~[[context (site-type-note "expected unit payload" payload sub.state.p.value)] [(span-of val.e) (site-type-note "payload" typ.p.value sub.state.p.value)]]]]
8300 [%| ["unit payload does not fit its expected type" ~[[context (site-type-note "expected unit payload" payload sub.state.p.value)] [(span-of val.e) (site-type-note "payload" typ.p.value sub.state.p.value)]]]]
8267 [%& expected state.p.value(sub sub.fit, next next.fit)]
8301 [%& expected state.p.value(sub sub.fit, next next.fit)]
8268::
8302::
8269−:: A known gate whose result is still an inference variable can receive
8270−:: an enclosing target before its argument is inferred. Other products
8303+:: A known gate may receive an enclosing target before its argument is
8304+:: inferred when its result is open or a direct, matching named generic
8305+:: union. Opaque, recursive, tag-constrained and variable-bound union
8271−:: and unresolved calls use the existing directional path unchanged.
8306+:: results keep the existing directional path.
8272++ infer-contextual-call
8307++ infer-contextual-call
8273 |= [e=expr expected=itype env=ienv state=istate]
8308 |= [e=expr expected=itype env=ienv state=istate]
8274 ^- iresult
8309 ^- iresult
@@ -8279,7 +8314,21 @@
8279 =/ ht=itype (itype-walk typ.p.head sub.state.p.head)
8314 =/ ht=itype (itype-walk typ.p.head sub.state.p.head)
8280 ?. ?=(%fn -.ht) (infer-call-with-head e env state head)
8315 ?. ?=(%fn -.ht) (infer-call-with-head e env state head)
8281 =/ result=itype (itype-walk product.ht sub.state.p.head)
8316 =/ result=itype (itype-walk product.ht sub.state.p.head)
8317+ =/ eligible=?
8318+ ?: ?=(%var -.result) &
8319+ :: A direct known generic union may receive the same nominal result
8320+ :: context before its arguments are checked. Variable-bound origins,
8321+ :: pending tags, recursive identities and unknown atoms stay open.
8322+ ?. &(?=(%union -.product.ht) ?=(%union -.result) ?=(%union -.expected)) |
8323+ ?~ origin.result |
8324+ ?. =(origin.result origin.expected) |
8325+ ?~ args.result |
8326+ ?. =((lent args.result) (lent args.expected)) |
8327+ ?: |((itype-has-tag (itype-normalize result sub.state.p.head)) (itype-has-tag (itype-normalize expected sub.state.p.head))) |
8328+ ?: |((itype-has-recursive (itype-normalize result sub.state.p.head)) (itype-has-recursive (itype-normalize expected sub.state.p.head))) |
8329+ ?: |((itype-has-any-atom result sub.state.p.head) (itype-has-any-atom expected sub.state.p.head)) |
8330+ &
8282− ?. ?=(%var -.result) (infer-call-with-head e env state head)
8331+ ?. eligible (infer-call-with-head e env state head)
8283 ?: |(?=(%var -.expected) ?=(%avar -.expected) ?=(%rvar -.expected) |(?=(%nvar -.expected) ?=(%rnvar -.expected)) (itype-has-tag (itype-normalize expected sub.state.p.head)))
8332 ?: |(?=(%var -.expected) ?=(%avar -.expected) ?=(%rvar -.expected) |(?=(%nvar -.expected) ?=(%rnvar -.expected)) (itype-has-tag (itype-normalize expected sub.state.p.head)))
8284 (infer-call-with-head e env state head)
8333 (infer-call-with-head e env state head)
8285 =/ sub=(unit isub) (itype-unify result expected sub.state.p.head)
8334 =/ sub=(unit isub) (itype-unify result expected sub.state.p.head)
@@ -8367,6 +8416,25 @@
8367 =/ st=istate state.p.value(sub sub.u.project, next next.u.project)
8416 =/ st=istate state.p.value(sub sub.u.project, next next.u.project)
8368 [%& expected st(projections [[at.e e typ.p.value expected steps.u.project] projections.st])]
8417 [%& expected st(projections [[at.e e typ.p.value expected steps.u.project] projections.st])]
8369::
8418::
8419+:: A known literal singleton in a direct union can contextualize a
8420+:: loobean literal of the same noun. Only explicit singleton and cell
8421+:: competitors are considered; opaque or variable cases stay unknown.
8422+++ explicit-singleton-in-union
8423+ |= [t=itype noun=@]
8424+ ^- ?
8425+ ?. ?=(%union -.t) |
8426+ =/ cases=(list itype) cases.t
8427+ =/ found=? |
8428+ |-
8429+ ?~ cases found
8430+ =/ c=itype i.cases
8431+ ?: ?=(%cell -.c) $(cases t.cases)
8432+ ?. ?=(%const -.c) |
8433+ ?: =(noun val.literal.c)
8434+ ?: found |
8435+ $(cases t.cases, found &)
8436+ $(cases t.cases)
8437+::
8370++ infer-call-context-arg
8438++ infer-call-context-arg
8371 |= [e=expr expected=itype env=ienv state=istate context=span]
8439 |= [e=expr expected=itype env=ienv state=istate context=span]
8372 ^- iresult
8440 ^- iresult
@@ -8403,13 +8471,12 @@
8403 (infer-single-case-branch e env state `[target context])
8471 (infer-single-case-branch e env state `[target context])
8404 ?: (cell-binder-pattern e)
8472 ?: (cell-binder-pattern e)
8405 (infer-cell-branch e env state `[target context])
8473 (infer-cell-branch e env state `[target context])
8406− :: In a loobean-singleton context retain the written loobean noun;
8474+ :: In an explicit singleton context retain the written loobean noun;
8407− :: the usual final fit decides whether that value is permitted.
8475+ :: the ordinary singleton fit compares its noun, not its spelling.
8408 =/ singleton=(unit itype)
8476 =/ singleton=(unit itype)
8409 ?. ?=(%lit -.e) ~
8477 ?. ?=(%lit -.e) ~
8410 ?. =(%loobean form.lit.e) ~
8478 ?. =(%loobean form.lit.e) ~
8411− ?. ?=(%const -.target) ~
8479+ ?. |(?=(%const -.target) &(?=(%union -.expected) (explicit-singleton-in-union expected val.lit.e))) ~
8412− ?. =(%loobean form.literal.target) ~
8413 `[%const lit.e]
8480 `[%const lit.e]
8414 ?^ singleton [%& u.singleton state]
8481 ?^ singleton [%& u.singleton state]
8415 =/ known=(unit iresult)
8482 =/ known=(unit iresult)
jibb-dev/lib/jibb/prelude.jibb+6
@@ -337,3 +337,9 @@
337
337
338+$ ask |$ [M] (ask.internal M)
338+$ ask |$ [M] (ask.internal M)
339++ pure |= x=M ^- (ask M) [%pure x]
339++ pure |= x=M ^- (ask M) [%pure x]
340+
341+:: This mold describes the value; island watchability needs separate proof.
342++$ sub |$ [M]
343+ [%watch a=(ask M)]
344+ [%every gap=@dr reply=$-(@da M)]
345+ [%url reply=$-(path M)]
tests/golden/types-constructor-context/about.txtnew file+1
@@ -0,0 +1 @@
1+Constructor callback results require a known contextual union. This case checks unknown, matching, missing and wrong payload cases, aliases, written capitals and pending obligations.
tests/golden/types-constructor-context/source.jibbnew file+37
@@ -0,0 +1,37 @@
1++$ msg
2+ [%got value=@t]
3+ %other
4++$ alias msg
5++$ wrong-payload
6+ [%got value=@p]
7+ %other
8++$ missing
9+ [%different value=@t]
10+ %other
11++$ maybe |$ [A]
12+ [%got value=A]
13+ %other
14+++ call |= callback=$-(@t M) (callback "payload")
15+++ call-ship |= callback=$-(@p M) (callback ~zod)
16+++ unknown (call |=%got)
17+++ later-context ^- msg (call |=%got)
18+++ named-alias ^- alias (call |=%got)
19+++ wrong-context ^- wrong-payload (call |=%got)
20+++ missing-case ^- missing (call |=%got)
21+++ generic-context ^- (maybe @t) (call |=%got)
22+++ generic-wrong ^- (maybe @p) (call |=%got)
23+++ generic-right-ship ^- (maybe @p) (call-ship |=%got)
24+++ named-capital |= value=A
25+ ^- (maybe A)
26+ (|=(callback=$-(A M) (callback value)) |=%got)
27+++ discarded-pending
28+ ~& %unrelated
29+ ^- msg (call |=%got)
30+++ discarded-constructor
31+ ~& |=%missing
32+ ^- msg (call |=%got)
33+++ existing-no-context ^- $-(@t msg) |=%got
34+++ wrong-existing ^- $-(@p msg) |=%got
35+++ later-use ^- msg unknown
36+++ noun-context ^- * (call |=%got)
37+++ other-known-origin ^- (ask @t) (call |=%got)
tests/golden/types-constructor-context/tokens.txtnew file+289
@@ -0,0 +1,289 @@
1+1:1 glyph +$
2+1:4 name msg
3+2:3 INDENT
4+2:3 glyph [
5+2:4 tight lit %got
6+2:9 name value
7+2:14 tight glyph =
8+2:15 tight aura @t
9+2:17 tight glyph ]
10+3:3 NEWLINE
11+3:3 lit %other
12+4:1 DEDENT
13+4:1 NEWLINE
14+4:1 glyph +$
15+4:4 name alias
16+4:10 name msg
17+5:1 NEWLINE
18+5:1 glyph +$
19+5:4 name wrong-payload
20+6:3 INDENT
21+6:3 glyph [
22+6:4 tight lit %got
23+6:9 name value
24+6:14 tight glyph =
25+6:15 tight aura @p
26+6:17 tight glyph ]
27+7:3 NEWLINE
28+7:3 lit %other
29+8:1 DEDENT
30+8:1 NEWLINE
31+8:1 glyph +$
32+8:4 name missing
33+9:3 INDENT
34+9:3 glyph [
35+9:4 tight lit %different
36+9:15 name value
37+9:20 tight glyph =
38+9:21 tight aura @t
39+9:23 tight glyph ]
40+10:3 NEWLINE
41+10:3 lit %other
42+11:1 DEDENT
43+11:1 NEWLINE
44+11:1 glyph +$
45+11:4 name maybe
46+11:10 glyph |$
47+11:13 glyph [
48+11:14 tight tvar A
49+11:15 tight glyph ]
50+12:3 INDENT
51+12:3 glyph [
52+12:4 tight lit %got
53+12:9 name value
54+12:14 tight glyph =
55+12:15 tight tvar A
56+12:16 tight glyph ]
57+13:3 NEWLINE
58+13:3 lit %other
59+14:1 DEDENT
60+14:1 NEWLINE
61+14:1 glyph ++
62+14:4 name call
63+14:9 glyph |=
64+14:12 name callback
65+14:20 tight glyph =
66+14:21 tight glyph $-(
67+14:24 tight aura @t
68+14:27 tvar M
69+14:28 tight glyph )
70+14:30 glyph (
71+14:31 tight name callback
72+14:40 str "payload"
73+14:49 tight glyph )
74+15:1 NEWLINE
75+15:1 glyph ++
76+15:4 name call-ship
77+15:14 glyph |=
78+15:17 name callback
79+15:25 tight glyph =
80+15:26 tight glyph $-(
81+15:29 tight aura @p
82+15:32 tvar M
83+15:33 tight glyph )
84+15:35 glyph (
85+15:36 tight name callback
86+15:45 lit ~zod
87+15:49 tight glyph )
88+16:1 NEWLINE
89+16:1 glyph ++
90+16:4 name unknown
91+16:12 glyph (
92+16:13 tight name call
93+16:18 glyph |=
94+16:20 tight lit %got
95+16:24 tight glyph )
96+17:1 NEWLINE
97+17:1 glyph ++
98+17:4 name later-context
99+17:18 glyph ^-
100+17:21 name msg
101+17:25 glyph (
102+17:26 tight name call
103+17:31 glyph |=
104+17:33 tight lit %got
105+17:37 tight glyph )
106+18:1 NEWLINE
107+18:1 glyph ++
108+18:4 name named-alias
109+18:16 glyph ^-
110+18:19 name alias
111+18:25 glyph (
112+18:26 tight name call
113+18:31 glyph |=
114+18:33 tight lit %got
115+18:37 tight glyph )
116+19:1 NEWLINE
117+19:1 glyph ++
118+19:4 name wrong-context
119+19:18 glyph ^-
120+19:21 name wrong-payload
121+19:35 glyph (
122+19:36 tight name call
123+19:41 glyph |=
124+19:43 tight lit %got
125+19:47 tight glyph )
126+20:1 NEWLINE
127+20:1 glyph ++
128+20:4 name missing-case
129+20:17 glyph ^-
130+20:20 name missing
131+20:28 glyph (
132+20:29 tight name call
133+20:34 glyph |=
134+20:36 tight lit %got
135+20:40 tight glyph )
136+21:1 NEWLINE
137+21:1 glyph ++
138+21:4 name generic-context
139+21:20 glyph ^-
140+21:23 glyph (
141+21:24 tight name maybe
142+21:30 aura @t
143+21:32 tight glyph )
144+21:34 glyph (
145+21:35 tight name call
146+21:40 glyph |=
147+21:42 tight lit %got
148+21:46 tight glyph )
149+22:1 NEWLINE
150+22:1 glyph ++
151+22:4 name generic-wrong
152+22:18 glyph ^-
153+22:21 glyph (
154+22:22 tight name maybe
155+22:28 aura @p
156+22:30 tight glyph )
157+22:32 glyph (
158+22:33 tight name call
159+22:38 glyph |=
160+22:40 tight lit %got
161+22:44 tight glyph )
162+23:1 NEWLINE
163+23:1 glyph ++
164+23:4 name generic-right-ship
165+23:23 glyph ^-
166+23:26 glyph (
167+23:27 tight name maybe
168+23:33 aura @p
169+23:35 tight glyph )
170+23:37 glyph (
171+23:38 tight name call-ship
172+23:48 glyph |=
173+23:50 tight lit %got
174+23:54 tight glyph )
175+24:1 NEWLINE
176+24:1 glyph ++
177+24:4 name named-capital
178+24:18 glyph |=
179+24:21 name value
180+24:26 tight glyph =
181+24:27 tight tvar A
182+25:3 INDENT
183+25:3 glyph ^-
184+25:6 glyph (
185+25:7 tight name maybe
186+25:13 tvar A
187+25:14 tight glyph )
188+26:5 INDENT
189+26:5 glyph (
190+26:6 tight glyph |=(
191+26:9 tight name callback
192+26:17 tight glyph =
193+26:18 tight glyph $-(
194+26:21 tight tvar A
195+26:23 tvar M
196+26:24 tight glyph )
197+26:26 glyph (
198+26:27 tight name callback
199+26:36 name value
200+26:41 tight glyph )
201+26:42 tight glyph )
202+26:44 glyph |=
203+26:46 tight lit %got
204+26:50 tight glyph )
205+27:1 DEDENT
206+27:1 DEDENT
207+27:1 NEWLINE
208+27:1 glyph ++
209+27:4 name discarded-pending
210+28:3 INDENT
211+28:3 glyph ~&
212+28:6 lit %unrelated
213+29:5 INDENT
214+29:5 glyph ^-
215+29:8 name msg
216+29:12 glyph (
217+29:13 tight name call
218+29:18 glyph |=
219+29:20 tight lit %got
220+29:24 tight glyph )
221+30:1 DEDENT
222+30:1 DEDENT
223+30:1 NEWLINE
224+30:1 glyph ++
225+30:4 name discarded-constructor
226+31:3 INDENT
227+31:3 glyph ~&
228+31:6 glyph |=
229+31:8 tight lit %missing
230+32:5 INDENT
231+32:5 glyph ^-
232+32:8 name msg
233+32:12 glyph (
234+32:13 tight name call
235+32:18 glyph |=
236+32:20 tight lit %got
237+32:24 tight glyph )
238+33:1 DEDENT
239+33:1 DEDENT
240+33:1 NEWLINE
241+33:1 glyph ++
242+33:4 name existing-no-context
243+33:24 glyph ^-
244+33:27 glyph $-(
245+33:30 tight aura @t
246+33:33 name msg
247+33:36 tight glyph )
248+33:38 glyph |=
249+33:40 tight lit %got
250+34:1 NEWLINE
251+34:1 glyph ++
252+34:4 name wrong-existing
253+34:19 glyph ^-
254+34:22 glyph $-(
255+34:25 tight aura @p
256+34:28 name msg
257+34:31 tight glyph )
258+34:33 glyph |=
259+34:35 tight lit %got
260+35:1 NEWLINE
261+35:1 glyph ++
262+35:4 name later-use
263+35:14 glyph ^-
264+35:17 name msg
265+35:21 name unknown
266+36:1 NEWLINE
267+36:1 glyph ++
268+36:4 name noun-context
269+36:17 glyph ^-
270+36:20 glyph *
271+36:22 glyph (
272+36:23 tight name call
273+36:28 glyph |=
274+36:30 tight lit %got
275+36:34 tight glyph )
276+37:1 NEWLINE
277+37:1 glyph ++
278+37:4 name other-known-origin
279+37:23 glyph ^-
280+37:26 glyph (
281+37:27 tight name ask
282+37:31 aura @t
283+37:33 tight glyph )
284+37:35 glyph (
285+37:36 tight name call
286+37:41 glyph |=
287+37:43 tight lit %got
288+37:47 tight glyph )
289+37:48 NEWLINE
tests/golden/types-constructor-context/tree.txtnew file+130
@@ -0,0 +1,130 @@
1+(module
2+ (mold 1:1 msg
3+ (union 2:3
4+ (cell 2:3
5+ (const 2:4 %got)
6+ (face 2:9 value (aura 2:15 @t)))
7+ (const 3:3 %other)))
8+ (mold 4:1 alias (ref 4:10 msg))
9+ (mold 5:1 wrong-payload
10+ (union 6:3
11+ (cell 6:3
12+ (const 6:4 %got)
13+ (face 6:9 value (aura 6:15 @p)))
14+ (const 7:3 %other)))
15+ (mold 8:1 missing
16+ (union 9:3
17+ (cell 9:3
18+ (const 9:4 %different)
19+ (face 9:15 value (aura 9:21 @t)))
20+ (const 10:3 %other)))
21+ (mold 11:1 maybe
22+ (generic 11:10 A
23+ (union 12:3
24+ (cell 12:3
25+ (const 12:4 %got)
26+ (face 12:9 value (tvar 12:15 A)))
27+ (const 13:3 %other))))
28+ (value 14:1 call
29+ (gate 14:9
30+ (face 14:12 callback
31+ (fn 14:21 (aura 14:24 @t) (tvar 14:27 M)))
32+ (group 14:30
33+ (call 14:31 (wing 14:31 callback) (str 14:40 "payload")))))
34+ (value 15:1 call-ship
35+ (gate 15:14
36+ (face 15:17 callback
37+ (fn 15:26 (aura 15:29 @p) (tvar 15:32 M)))
38+ (group 15:35
39+ (call 15:36 (wing 15:36 callback) (lit 15:45 ~zod)))))
40+ (value 16:1 unknown
41+ (group 16:12
42+ (call 16:13 (wing 16:13 call) (ctor 16:18 %got))))
43+ (value 17:1 later-context
44+ (cast 17:18
45+ (ref 17:21 msg)
46+ (group 17:25
47+ (call 17:26 (wing 17:26 call) (ctor 17:31 %got)))))
48+ (value 18:1 named-alias
49+ (cast 18:16
50+ (ref 18:19 alias)
51+ (group 18:25
52+ (call 18:26 (wing 18:26 call) (ctor 18:31 %got)))))
53+ (value 19:1 wrong-context
54+ (cast 19:18
55+ (ref 19:21 wrong-payload)
56+ (group 19:35
57+ (call 19:36 (wing 19:36 call) (ctor 19:41 %got)))))
58+ (value 20:1 missing-case
59+ (cast 20:17
60+ (ref 20:20 missing)
61+ (group 20:28
62+ (call 20:29 (wing 20:29 call) (ctor 20:34 %got)))))
63+ (value 21:1 generic-context
64+ (cast 21:20
65+ (apply 21:23 maybe (aura 21:30 @t))
66+ (group 21:34
67+ (call 21:35 (wing 21:35 call) (ctor 21:40 %got)))))
68+ (value 22:1 generic-wrong
69+ (cast 22:18
70+ (apply 22:21 maybe (aura 22:28 @p))
71+ (group 22:32
72+ (call 22:33 (wing 22:33 call) (ctor 22:38 %got)))))
73+ (value 23:1 generic-right-ship
74+ (cast 23:23
75+ (apply 23:26 maybe (aura 23:33 @p))
76+ (group 23:37
77+ (call 23:38 (wing 23:38 call-ship) (ctor 23:48 %got)))))
78+ (value 24:1 named-capital
79+ (gate 24:18
80+ (face 24:21 value (tvar 24:27 A))
81+ (body 25:3
82+ (cast 25:3
83+ (apply 25:6 maybe (tvar 25:13 A))
84+ (body 26:5
85+ (group 26:5
86+ (call 26:6
87+ (gate-wide 26:6
88+ (face 26:9 callback
89+ (fn 26:18 (tvar 26:21 A) (tvar 26:23 M)))
90+ (group 26:26
91+ (call 26:27 (wing 26:27 callback) (wing 26:36 value))))
92+ (ctor 26:44 %got))))))))
93+ (value 27:1 discarded-pending
94+ (body 28:3
95+ (trace 28:3
96+ (lit 28:6 %unrelated)
97+ (body 29:5
98+ (cast 29:5
99+ (ref 29:8 msg)
100+ (group 29:12
101+ (call 29:13 (wing 29:13 call) (ctor 29:18 %got))))))))
102+ (value 30:1 discarded-constructor
103+ (body 31:3
104+ (trace 31:3
105+ (ctor 31:6 %missing)
106+ (body 32:5
107+ (cast 32:5
108+ (ref 32:8 msg)
109+ (group 32:12
110+ (call 32:13 (wing 32:13 call) (ctor 32:18 %got))))))))
111+ (value 33:1 existing-no-context
112+ (cast 33:24
113+ (fn 33:27 (aura 33:30 @t) (ref 33:33 msg))
114+ (ctor 33:38 %got)))
115+ (value 34:1 wrong-existing
116+ (cast 34:19
117+ (fn 34:22 (aura 34:25 @p) (ref 34:28 msg))
118+ (ctor 34:33 %got)))
119+ (value 35:1 later-use
120+ (cast 35:14 (ref 35:17 msg) (wing 35:21 unknown)))
121+ (value 36:1 noun-context
122+ (cast 36:17
123+ (noun 36:20)
124+ (group 36:22
125+ (call 36:23 (wing 36:23 call) (ctor 36:28 %got)))))
126+ (value 37:1 other-known-origin
127+ (cast 37:23
128+ (apply 37:26 ask (aura 37:31 @t))
129+ (group 37:35
130+ (call 37:36 (wing 37:36 call) (ctor 37:41 %got))))))
tests/golden/types-constructor-context/types.txtnew file+54
@@ -0,0 +1,54 @@
1+partial inference; module not checked
2++$ msg: cases proven disjoint; mold not checked
3++$ alias: not checked
4++$ wrong-payload: cases proven disjoint; mold not checked
5++$ missing: cases proven disjoint; mold not checked
6++$ maybe: cases proven disjoint; mold not checked
7+++ call: $-($-(@t A) A)
8+++ call-ship: $-($-(@p A) A)
9+++ unknown: call constraint is not supported by partial inference
10+++ later-context: msg
11+++ named-alias: msg
12+++ wrong-context: call's sample and argument types do not unify
13+/tests/golden/types-constructor-context/source.jibb:19:36: called gate
14+++ wrong-context ^- wrong-payload (call |=%got)
15+ ^
16+/tests/golden/types-constructor-context/source.jibb:19:41: argument
17+++ wrong-context ^- wrong-payload (call |=%got)
18+ ^
19+++ missing-case: call's sample and argument types do not unify
20+/tests/golden/types-constructor-context/source.jibb:20:29: called gate
21+++ missing-case ^- missing (call |=%got)
22+ ^
23+/tests/golden/types-constructor-context/source.jibb:20:34: argument
24+++ missing-case ^- missing (call |=%got)
25+ ^
26+++ generic-context: (maybe @t)
27+++ generic-wrong: call's sample and argument types do not unify
28+/tests/golden/types-constructor-context/source.jibb:22:33: called gate
29+++ generic-wrong ^- (maybe @p) (call |=%got)
30+ ^
31+/tests/golden/types-constructor-context/source.jibb:22:38: argument
32+++ generic-wrong ^- (maybe @p) (call |=%got)
33+ ^
34+++ generic-right-ship: (maybe @p)
35+++ named-capital: explicit capital constraints are not supported by partial inference
36+++ discarded-pending: tag needs context in partial inference
37+++ discarded-constructor: tag needs context in partial inference
38+++ existing-no-context: $-(@t msg)
39+++ wrong-existing: cast mold and expression type do not unify
40+/tests/golden/types-constructor-context/source.jibb:34:22: cast mold
41+++ wrong-existing ^- $-(@p msg) |=%got
42+ ^
43+/tests/golden/types-constructor-context/source.jibb:34:33: expression
44+++ wrong-existing ^- $-(@p msg) |=%got
45+ ^
46+++ later-use: name is not available to partial inference
47+++ noun-context: call's sample and argument types do not unify
48+/tests/golden/types-constructor-context/source.jibb:36:23: called gate has type $-($-(@t *) *)
49+++ noun-context ^- * (call |=%got)
50+ ^
51+/tests/golden/types-constructor-context/source.jibb:36:28: argument
52+++ noun-context ^- * (call |=%got)
53+ ^
54+++ other-known-origin: cast mold is not supported by partial inference
tests/golden/types-equal-head-disjoint/about.txtnew file+2
@@ -0,0 +1,2 @@
1+source: equal literal heads may have disjoint payloads and are compared by noun.
2+tests: Singleton payloads %alpha and %beta select distinct same-head cases; @t and @p cases overlap at zero. Incompatible samples and unrelated pending literals fail closed.
tests/golden/types-equal-head-disjoint/source.jibbnew file+25
@@ -0,0 +1,25 @@
1++$ split
2+ [%one value=@t]
3+ [%one value=@p]
4++$ split-zero
5+ [~ value=@t]
6+ [%.y value=@p]
7++$ nullable
8+ ~
9+ [~ value=@t]
10+++ cord ^- $-(@t split) |=%one
11+++ ship ^- $-(@p split) |=%one
12+++ neither ^- $-(@ud split) |=%one
13+++ zero-cord ^- $-(@t split-zero) |=%$
14+++ zero-ship ^- $-(@p split-zero) |=%$
15+++ zero-neither ^- $-(@ud split-zero) |=%$
16+++ contextual ^- $-(@t nullable) |=%$
17+++ pending
18+ ~& %orphan
19+ ^- $-(@t split) |=%one
20++$ exact
21+ [%same %alpha]
22+ [%same %beta]
23+++ first ^- $-(%alpha exact) |=%same
24+++ second ^- $-(%beta exact) |=%same
25+++ no-case ^- $-(%other exact) |=%same
tests/golden/types-equal-head-disjoint/tokens.txtnew file+179
@@ -0,0 +1,179 @@
1+1:1 glyph +$
2+1:4 name split
3+2:3 INDENT
4+2:3 glyph [
5+2:4 tight lit %one
6+2:9 name value
7+2:14 tight glyph =
8+2:15 tight aura @t
9+2:17 tight glyph ]
10+3:3 NEWLINE
11+3:3 glyph [
12+3:4 tight lit %one
13+3:9 name value
14+3:14 tight glyph =
15+3:15 tight aura @p
16+3:17 tight glyph ]
17+4:1 DEDENT
18+4:1 NEWLINE
19+4:1 glyph +$
20+4:4 name split-zero
21+5:3 INDENT
22+5:3 glyph [
23+5:4 tight lit ~
24+5:6 name value
25+5:11 tight glyph =
26+5:12 tight aura @t
27+5:14 tight glyph ]
28+6:3 NEWLINE
29+6:3 glyph [
30+6:4 tight lit %.y
31+6:8 name value
32+6:13 tight glyph =
33+6:14 tight aura @p
34+6:16 tight glyph ]
35+7:1 DEDENT
36+7:1 NEWLINE
37+7:1 glyph +$
38+7:4 name nullable
39+8:3 INDENT
40+8:3 lit ~
41+9:3 NEWLINE
42+9:3 glyph [
43+9:4 tight lit ~
44+9:6 name value
45+9:11 tight glyph =
46+9:12 tight aura @t
47+9:14 tight glyph ]
48+10:1 DEDENT
49+10:1 NEWLINE
50+10:1 glyph ++
51+10:4 name cord
52+10:9 glyph ^-
53+10:12 glyph $-(
54+10:15 tight aura @t
55+10:18 name split
56+10:23 tight glyph )
57+10:25 glyph |=
58+10:27 tight lit %one
59+11:1 NEWLINE
60+11:1 glyph ++
61+11:4 name ship
62+11:9 glyph ^-
63+11:12 glyph $-(
64+11:15 tight aura @p
65+11:18 name split
66+11:23 tight glyph )
67+11:25 glyph |=
68+11:27 tight lit %one
69+12:1 NEWLINE
70+12:1 glyph ++
71+12:4 name neither
72+12:12 glyph ^-
73+12:15 glyph $-(
74+12:18 tight aura @ud
75+12:22 name split
76+12:27 tight glyph )
77+12:29 glyph |=
78+12:31 tight lit %one
79+13:1 NEWLINE
80+13:1 glyph ++
81+13:4 name zero-cord
82+13:14 glyph ^-
83+13:17 glyph $-(
84+13:20 tight aura @t
85+13:23 name split-zero
86+13:33 tight glyph )
87+13:35 glyph |=
88+13:37 tight lit %$
89+14:1 NEWLINE
90+14:1 glyph ++
91+14:4 name zero-ship
92+14:14 glyph ^-
93+14:17 glyph $-(
94+14:20 tight aura @p
95+14:23 name split-zero
96+14:33 tight glyph )
97+14:35 glyph |=
98+14:37 tight lit %$
99+15:1 NEWLINE
100+15:1 glyph ++
101+15:4 name zero-neither
102+15:17 glyph ^-
103+15:20 glyph $-(
104+15:23 tight aura @ud
105+15:27 name split-zero
106+15:37 tight glyph )
107+15:39 glyph |=
108+15:41 tight lit %$
109+16:1 NEWLINE
110+16:1 glyph ++
111+16:4 name contextual
112+16:15 glyph ^-
113+16:18 glyph $-(
114+16:21 tight aura @t
115+16:24 name nullable
116+16:32 tight glyph )
117+16:34 glyph |=
118+16:36 tight lit %$
119+17:1 NEWLINE
120+17:1 glyph ++
121+17:4 name pending
122+18:3 INDENT
123+18:3 glyph ~&
124+18:6 lit %orphan
125+19:5 INDENT
126+19:5 glyph ^-
127+19:8 glyph $-(
128+19:11 tight aura @t
129+19:14 name split
130+19:19 tight glyph )
131+19:21 glyph |=
132+19:23 tight lit %one
133+20:1 DEDENT
134+20:1 DEDENT
135+20:1 NEWLINE
136+20:1 glyph +$
137+20:4 name exact
138+21:3 INDENT
139+21:3 glyph [
140+21:4 tight lit %same
141+21:10 lit %alpha
142+21:16 tight glyph ]
143+22:3 NEWLINE
144+22:3 glyph [
145+22:4 tight lit %same
146+22:10 lit %beta
147+22:15 tight glyph ]
148+23:1 DEDENT
149+23:1 NEWLINE
150+23:1 glyph ++
151+23:4 name first
152+23:10 glyph ^-
153+23:13 glyph $-(
154+23:16 tight lit %alpha
155+23:23 name exact
156+23:28 tight glyph )
157+23:30 glyph |=
158+23:32 tight lit %same
159+24:1 NEWLINE
160+24:1 glyph ++
161+24:4 name second
162+24:11 glyph ^-
163+24:14 glyph $-(
164+24:17 tight lit %beta
165+24:23 name exact
166+24:28 tight glyph )
167+24:30 glyph |=
168+24:32 tight lit %same
169+25:1 NEWLINE
170+25:1 glyph ++
171+25:4 name no-case
172+25:12 glyph ^-
173+25:15 glyph $-(
174+25:18 tight lit %other
175+25:25 name exact
176+25:30 tight glyph )
177+25:32 glyph |=
178+25:34 tight lit %same
179+25:39 NEWLINE
tests/golden/types-equal-head-disjoint/tree.txtnew file+75
@@ -0,0 +1,75 @@
1+(module
2+ (mold 1:1 split
3+ (union 2:3
4+ (cell 2:3
5+ (const 2:4 %one)
6+ (face 2:9 value (aura 2:15 @t)))
7+ (cell 3:3
8+ (const 3:4 %one)
9+ (face 3:9 value (aura 3:15 @p)))))
10+ (mold 4:1 split-zero
11+ (union 5:3
12+ (cell 5:3
13+ (const 5:4 ~)
14+ (face 5:6 value (aura 5:12 @t)))
15+ (cell 6:3
16+ (const 6:4 %.y)
17+ (face 6:8 value (aura 6:14 @p)))))
18+ (mold 7:1 nullable
19+ (union 8:3
20+ (const 8:3 ~)
21+ (cell 9:3
22+ (const 9:4 ~)
23+ (face 9:6 value (aura 9:12 @t)))))
24+ (value 10:1 cord
25+ (cast 10:9
26+ (fn 10:12 (aura 10:15 @t) (ref 10:18 split))
27+ (ctor 10:25 %one)))
28+ (value 11:1 ship
29+ (cast 11:9
30+ (fn 11:12 (aura 11:15 @p) (ref 11:18 split))
31+ (ctor 11:25 %one)))
32+ (value 12:1 neither
33+ (cast 12:12
34+ (fn 12:15 (aura 12:18 @ud) (ref 12:22 split))
35+ (ctor 12:29 %one)))
36+ (value 13:1 zero-cord
37+ (cast 13:14
38+ (fn 13:17 (aura 13:20 @t) (ref 13:23 split-zero))
39+ (ctor 13:35 %$)))
40+ (value 14:1 zero-ship
41+ (cast 14:14
42+ (fn 14:17 (aura 14:20 @p) (ref 14:23 split-zero))
43+ (ctor 14:35 %$)))
44+ (value 15:1 zero-neither
45+ (cast 15:17
46+ (fn 15:20 (aura 15:23 @ud) (ref 15:27 split-zero))
47+ (ctor 15:39 %$)))
48+ (value 16:1 contextual
49+ (cast 16:15
50+ (fn 16:18 (aura 16:21 @t) (ref 16:24 nullable))
51+ (ctor 16:34 %$)))
52+ (value 17:1 pending
53+ (body 18:3
54+ (trace 18:3
55+ (lit 18:6 %orphan)
56+ (body 19:5
57+ (cast 19:5
58+ (fn 19:8 (aura 19:11 @t) (ref 19:14 split))
59+ (ctor 19:21 %one))))))
60+ (mold 20:1 exact
61+ (union 21:3
62+ (cell 21:3 (const 21:4 %same) (const 21:10 %alpha))
63+ (cell 22:3 (const 22:4 %same) (const 22:10 %beta))))
64+ (value 23:1 first
65+ (cast 23:10
66+ (fn 23:13 (const 23:16 %alpha) (ref 23:23 exact))
67+ (ctor 23:30 %same)))
68+ (value 24:1 second
69+ (cast 24:11
70+ (fn 24:14 (const 24:17 %beta) (ref 24:23 exact))
71+ (ctor 24:30 %same)))
72+ (value 25:1 no-case
73+ (cast 25:12
74+ (fn 25:15 (const 25:18 %other) (ref 25:25 exact))
75+ (ctor 25:32 %same))))
tests/golden/types-equal-head-disjoint/types.txtnew file+34
@@ -0,0 +1,34 @@
1+partial inference; module not checked
2++$ split: overlapping cases; mold not checked
3+/tests/golden/types-equal-head-disjoint/source.jibb:2:3: first union case
4+ [%one value=@t]
5+ ^
6+/tests/golden/types-equal-head-disjoint/source.jibb:3:3: overlapping case
7+ [%one value=@p]
8+ ^
9++$ split-zero: overlapping cases; mold not checked
10+/tests/golden/types-equal-head-disjoint/source.jibb:5:3: first union case
11+ [~ value=@t]
12+ ^
13+/tests/golden/types-equal-head-disjoint/source.jibb:6:3: overlapping case
14+ [%.y value=@p]
15+ ^
16++$ nullable: cases proven disjoint; mold not checked
17+++ cord: cast mold is not supported by partial inference
18+++ ship: cast mold is not supported by partial inference
19+++ neither: cast mold is not supported by partial inference
20+++ zero-cord: cast mold is not supported by partial inference
21+++ zero-ship: cast mold is not supported by partial inference
22+++ zero-neither: cast mold is not supported by partial inference
23+++ contextual: $-(@t nullable)
24+++ pending: cast mold is not supported by partial inference
25++$ exact: cases proven disjoint; mold not checked
26+++ first: $-(%alpha exact)
27+++ second: $-(%beta exact)
28+++ no-case: cast mold and expression type do not unify
29+/tests/golden/types-equal-head-disjoint/source.jibb:25:15: cast mold
30+++ no-case ^- $-(%other exact) |=%same
31+ ^
32+/tests/golden/types-equal-head-disjoint/source.jibb:25:32: expression
33+++ no-case ^- $-(%other exact) |=%same
34+ ^
tests/golden/types-generic-result-context/about.txtnew file+1
@@ -0,0 +1 @@
1+Context can reach a directly known generic union result, including reordered and repeated aliases, distinct nominal arguments, independent uses, pending tags and a missing case. These are partial inference reports.
tests/golden/types-generic-result-context/source.jibbnew file+24
@@ -0,0 +1,24 @@
1++$ msg
2+ %idle
3+ %busy
4++$ other
5+ %idle
6+ %busy
7++$ choice |$ [A B]
8+ [%one value=A]
9+ [%two value=B]
10++$ swap |$ [A B] (choice B A)
11++$ repeated |$ [A] (choice A A)
12++$ phantom |$ [A B] (choice A @p)
13+++ wrap |= x=A ^- (choice A @p) [%one x]
14+++ wrap-repeat |= x=A ^- (repeated A) [%one x]
15+++ use-msg ^- (choice msg @p) (wrap %idle)
16+++ use-alias ^- (swap @p msg) (wrap %idle)
17+++ use-repeated ^- (repeated msg) (wrap-repeat %idle)
18+++ use-distinct ^- (choice other @p) (wrap %idle)
19+++ independent |= [m=msg n=other]
20+ [(^- (choice msg @p) (wrap m)) (^- (choice other @p) (wrap n))]
21+++ pending
22+ ~& %orphan
23+ ^- (choice msg @p) (wrap %idle)
24+++ wrong-case ^- (choice msg @p) (wrap %absent)
tests/golden/types-generic-result-context/tokens.txtnew file+233
@@ -0,0 +1,233 @@
1+1:1 glyph +$
2+1:4 name msg
3+2:3 INDENT
4+2:3 lit %idle
5+3:3 NEWLINE
6+3:3 lit %busy
7+4:1 DEDENT
8+4:1 NEWLINE
9+4:1 glyph +$
10+4:4 name other
11+5:3 INDENT
12+5:3 lit %idle
13+6:3 NEWLINE
14+6:3 lit %busy
15+7:1 DEDENT
16+7:1 NEWLINE
17+7:1 glyph +$
18+7:4 name choice
19+7:11 glyph |$
20+7:14 glyph [
21+7:15 tight tvar A
22+7:17 tvar B
23+7:18 tight glyph ]
24+8:3 INDENT
25+8:3 glyph [
26+8:4 tight lit %one
27+8:9 name value
28+8:14 tight glyph =
29+8:15 tight tvar A
30+8:16 tight glyph ]
31+9:3 NEWLINE
32+9:3 glyph [
33+9:4 tight lit %two
34+9:9 name value
35+9:14 tight glyph =
36+9:15 tight tvar B
37+9:16 tight glyph ]
38+10:1 DEDENT
39+10:1 NEWLINE
40+10:1 glyph +$
41+10:4 name swap
42+10:9 glyph |$
43+10:12 glyph [
44+10:13 tight tvar A
45+10:15 tvar B
46+10:16 tight glyph ]
47+10:18 glyph (
48+10:19 tight name choice
49+10:26 tvar B
50+10:28 tvar A
51+10:29 tight glyph )
52+11:1 NEWLINE
53+11:1 glyph +$
54+11:4 name repeated
55+11:13 glyph |$
56+11:16 glyph [
57+11:17 tight tvar A
58+11:18 tight glyph ]
59+11:20 glyph (
60+11:21 tight name choice
61+11:28 tvar A
62+11:30 tvar A
63+11:31 tight glyph )
64+12:1 NEWLINE
65+12:1 glyph +$
66+12:4 name phantom
67+12:12 glyph |$
68+12:15 glyph [
69+12:16 tight tvar A
70+12:18 tvar B
71+12:19 tight glyph ]
72+12:21 glyph (
73+12:22 tight name choice
74+12:29 tvar A
75+12:31 aura @p
76+12:33 tight glyph )
77+13:1 NEWLINE
78+13:1 glyph ++
79+13:4 name wrap
80+13:9 glyph |=
81+13:12 name x
82+13:13 tight glyph =
83+13:14 tight tvar A
84+13:16 glyph ^-
85+13:19 glyph (
86+13:20 tight name choice
87+13:27 tvar A
88+13:29 aura @p
89+13:31 tight glyph )
90+13:33 glyph [
91+13:34 tight lit %one
92+13:39 name x
93+13:40 tight glyph ]
94+14:1 NEWLINE
95+14:1 glyph ++
96+14:4 name wrap-repeat
97+14:16 glyph |=
98+14:19 name x
99+14:20 tight glyph =
100+14:21 tight tvar A
101+14:23 glyph ^-
102+14:26 glyph (
103+14:27 tight name repeated
104+14:36 tvar A
105+14:37 tight glyph )
106+14:39 glyph [
107+14:40 tight lit %one
108+14:45 name x
109+14:46 tight glyph ]
110+15:1 NEWLINE
111+15:1 glyph ++
112+15:4 name use-msg
113+15:12 glyph ^-
114+15:15 glyph (
115+15:16 tight name choice
116+15:23 name msg
117+15:27 aura @p
118+15:29 tight glyph )
119+15:31 glyph (
120+15:32 tight name wrap
121+15:37 lit %idle
122+15:42 tight glyph )
123+16:1 NEWLINE
124+16:1 glyph ++
125+16:4 name use-alias
126+16:14 glyph ^-
127+16:17 glyph (
128+16:18 tight name swap
129+16:23 aura @p
130+16:26 name msg
131+16:29 tight glyph )
132+16:31 glyph (
133+16:32 tight name wrap
134+16:37 lit %idle
135+16:42 tight glyph )
136+17:1 NEWLINE
137+17:1 glyph ++
138+17:4 name use-repeated
139+17:17 glyph ^-
140+17:20 glyph (
141+17:21 tight name repeated
142+17:30 name msg
143+17:33 tight glyph )
144+17:35 glyph (
145+17:36 tight name wrap-repeat
146+17:48 lit %idle
147+17:53 tight glyph )
148+18:1 NEWLINE
149+18:1 glyph ++
150+18:4 name use-distinct
151+18:17 glyph ^-
152+18:20 glyph (
153+18:21 tight name choice
154+18:28 name other
155+18:34 aura @p
156+18:36 tight glyph )
157+18:38 glyph (
158+18:39 tight name wrap
159+18:44 lit %idle
160+18:49 tight glyph )
161+19:1 NEWLINE
162+19:1 glyph ++
163+19:4 name independent
164+19:16 glyph |=
165+19:19 glyph [
166+19:20 tight name m
167+19:21 tight glyph =
168+19:22 tight name msg
169+19:26 name n
170+19:27 tight glyph =
171+19:28 tight name other
172+19:33 tight glyph ]
173+20:3 INDENT
174+20:3 glyph [
175+20:4 tight glyph (
176+20:5 tight glyph ^-
177+20:8 glyph (
178+20:9 tight name choice
179+20:16 name msg
180+20:20 aura @p
181+20:22 tight glyph )
182+20:24 glyph (
183+20:25 tight name wrap
184+20:30 name m
185+20:31 tight glyph )
186+20:32 tight glyph )
187+20:34 glyph (
188+20:35 tight glyph ^-
189+20:38 glyph (
190+20:39 tight name choice
191+20:46 name other
192+20:52 aura @p
193+20:54 tight glyph )
194+20:56 glyph (
195+20:57 tight name wrap
196+20:62 name n
197+20:63 tight glyph )
198+20:64 tight glyph )
199+20:65 tight glyph ]
200+21:1 DEDENT
201+21:1 NEWLINE
202+21:1 glyph ++
203+21:4 name pending
204+22:3 INDENT
205+22:3 glyph ~&
206+22:6 lit %orphan
207+23:5 INDENT
208+23:5 glyph ^-
209+23:8 glyph (
210+23:9 tight name choice
211+23:16 name msg
212+23:20 aura @p
213+23:22 tight glyph )
214+23:24 glyph (
215+23:25 tight name wrap
216+23:30 lit %idle
217+23:35 tight glyph )
218+24:1 DEDENT
219+24:1 DEDENT
220+24:1 NEWLINE
221+24:1 glyph ++
222+24:4 name wrong-case
223+24:15 glyph ^-
224+24:18 glyph (
225+24:19 tight name choice
226+24:26 name msg
227+24:30 aura @p
228+24:32 tight glyph )
229+24:34 glyph (
230+24:35 tight name wrap
231+24:40 lit %absent
232+24:47 tight glyph )
233+24:48 NEWLINE
tests/golden/types-generic-result-context/tree.txtnew file+86
@@ -0,0 +1,86 @@
1+(module
2+ (mold 1:1 msg
3+ (union 2:3 (const 2:3 %idle) (const 3:3 %busy)))
4+ (mold 4:1 other
5+ (union 5:3 (const 5:3 %idle) (const 6:3 %busy)))
6+ (mold 7:1 choice
7+ (generic 7:11 A B
8+ (union 8:3
9+ (cell 8:3
10+ (const 8:4 %one)
11+ (face 8:9 value (tvar 8:15 A)))
12+ (cell 9:3
13+ (const 9:4 %two)
14+ (face 9:9 value (tvar 9:15 B))))))
15+ (mold 10:1 swap
16+ (generic 10:9 A B
17+ (apply 10:18 choice (tvar 10:26 B) (tvar 10:28 A))))
18+ (mold 11:1 repeated
19+ (generic 11:13 A
20+ (apply 11:20 choice (tvar 11:28 A) (tvar 11:30 A))))
21+ (mold 12:1 phantom
22+ (generic 12:12 A B
23+ (apply 12:21 choice (tvar 12:29 A) (aura 12:31 @p))))
24+ (value 13:1 wrap
25+ (gate 13:9
26+ (face 13:12 x (tvar 13:14 A))
27+ (cast 13:16
28+ (apply 13:19 choice (tvar 13:27 A) (aura 13:29 @p))
29+ (tuple 13:33 (lit 13:34 %one) (wing 13:39 x)))))
30+ (value 14:1 wrap-repeat
31+ (gate 14:16
32+ (face 14:19 x (tvar 14:21 A))
33+ (cast 14:23
34+ (apply 14:26 repeated (tvar 14:36 A))
35+ (tuple 14:39 (lit 14:40 %one) (wing 14:45 x)))))
36+ (value 15:1 use-msg
37+ (cast 15:12
38+ (apply 15:15 choice (ref 15:23 msg) (aura 15:27 @p))
39+ (group 15:31
40+ (call 15:32 (wing 15:32 wrap) (lit 15:37 %idle)))))
41+ (value 16:1 use-alias
42+ (cast 16:14
43+ (apply 16:17 swap (aura 16:23 @p) (ref 16:26 msg))
44+ (group 16:31
45+ (call 16:32 (wing 16:32 wrap) (lit 16:37 %idle)))))
46+ (value 17:1 use-repeated
47+ (cast 17:17
48+ (apply 17:20 repeated (ref 17:30 msg))
49+ (group 17:35
50+ (call 17:36 (wing 17:36 wrap-repeat) (lit 17:48 %idle)))))
51+ (value 18:1 use-distinct
52+ (cast 18:17
53+ (apply 18:20 choice (ref 18:28 other) (aura 18:34 @p))
54+ (group 18:38
55+ (call 18:39 (wing 18:39 wrap) (lit 18:44 %idle)))))
56+ (value 19:1 independent
57+ (gate 19:16
58+ (cell 19:19
59+ (face 19:20 m (ref 19:22 msg))
60+ (face 19:26 n (ref 19:28 other)))
61+ (body 20:3
62+ (tuple 20:3
63+ (group 20:4
64+ (cast 20:5
65+ (apply 20:8 choice (ref 20:16 msg) (aura 20:20 @p))
66+ (group 20:24
67+ (call 20:25 (wing 20:25 wrap) (wing 20:30 m)))))
68+ (group 20:34
69+ (cast 20:35
70+ (apply 20:38 choice (ref 20:46 other) (aura 20:52 @p))
71+ (group 20:56
72+ (call 20:57 (wing 20:57 wrap) (wing 20:62 n)))))))))
73+ (value 21:1 pending
74+ (body 22:3
75+ (trace 22:3
76+ (lit 22:6 %orphan)
77+ (body 23:5
78+ (cast 23:5
79+ (apply 23:8 choice (ref 23:16 msg) (aura 23:20 @p))
80+ (group 23:24
81+ (call 23:25 (wing 23:25 wrap) (lit 23:30 %idle))))))))
82+ (value 24:1 wrong-case
83+ (cast 24:15
84+ (apply 24:18 choice (ref 24:26 msg) (aura 24:30 @p))
85+ (group 24:34
86+ (call 24:35 (wing 24:35 wrap) (lit 24:40 %absent))))))
tests/golden/types-generic-result-context/types.txtnew file+22
@@ -0,0 +1,22 @@
1+partial inference; module not checked
2++$ msg: cases proven disjoint; mold not checked
3++$ other: cases proven disjoint; mold not checked
4++$ choice: cases proven disjoint; mold not checked
5++$ swap: not checked
6++$ repeated: not checked
7++$ phantom: not checked
8+++ wrap: $-(A (choice A @p))
9+++ wrap-repeat: $-(A (choice A A))
10+++ use-msg: (choice msg @p)
11+++ use-alias: (choice msg @p)
12+++ use-repeated: (choice msg msg)
13+++ use-distinct: (choice other @p)
14+++ independent: $-([m=msg n=other] [(choice msg @p) (choice other @p)])
15+++ pending: tag needs context in partial inference
16+++ wrong-case: msg has no case `%absent`
17+/tests/golden/types-generic-result-context/source.jibb:24:35: expected union
18+++ wrong-case ^- (choice msg @p) (wrap %absent)
19+ ^
20+/tests/golden/types-generic-result-context/source.jibb:24:40: tag
21+++ wrong-case ^- (choice msg @p) (wrap %absent)
22+ ^
tests/golden/types-literal-constructor-nouns/about.txtnew file+2
@@ -0,0 +1,2 @@
1+source: equality of literal molds is based on their runtime nouns.
2+tests: The `%$` constructor matches null-, loobean-zero- and term-zero-headed cells. Overlapping same-noun cases are rejected. Wrong payload, absent tags and unrelated pending constraints remain checked. This is a partial inference report.
tests/golden/types-literal-constructor-nouns/source.jibbnew file+25
@@ -0,0 +1,25 @@
1++$ null-head [~ value=@t]
2++$ flag-head [%.y value=@t]
3++$ dollar-head [%$ value=@t]
4++$ pair-null
5+ ~
6+ [~ value=@t]
7++$ overlap-null
8+ [~ value=@t]
9+ [%$ value=@t]
10++$ overlap-flag
11+ [%.y value=@t]
12+ [%$ value=@t]
13++$ overlap-three
14+ [~ value=@t]
15+ [%.y value=@t]
16+ [%$ value=@t]
17+++ null-ctor ^- $-(@t null-head) |=%$
18+++ flag-ctor ^- $-(@t flag-head) |=%$
19+++ dollar-ctor ^- $-(@t dollar-head) |=%$
20+++ unit-like-ctor ^- $-(@t pair-null) |=%$
21+++ wrong-payload ^- $-(@p null-head) |=%$
22+++ missing-tag ^- $-(@t null-head) |=%missing
23+++ pending
24+ ~& %unrelated
25+ ^- $-(@t null-head) |=%$
tests/golden/types-literal-constructor-nouns/tokens.txtnew file+177
@@ -0,0 +1,177 @@
1+1:1 glyph +$
2+1:4 name null-head
3+1:14 glyph [
4+1:15 tight lit ~
5+1:17 name value
6+1:22 tight glyph =
7+1:23 tight aura @t
8+1:25 tight glyph ]
9+2:1 NEWLINE
10+2:1 glyph +$
11+2:4 name flag-head
12+2:14 glyph [
13+2:15 tight lit %.y
14+2:19 name value
15+2:24 tight glyph =
16+2:25 tight aura @t
17+2:27 tight glyph ]
18+3:1 NEWLINE
19+3:1 glyph +$
20+3:4 name dollar-head
21+3:16 glyph [
22+3:17 tight lit %$
23+3:20 name value
24+3:25 tight glyph =
25+3:26 tight aura @t
26+3:28 tight glyph ]
27+4:1 NEWLINE
28+4:1 glyph +$
29+4:4 name pair-null
30+5:3 INDENT
31+5:3 lit ~
32+6:3 NEWLINE
33+6:3 glyph [
34+6:4 tight lit ~
35+6:6 name value
36+6:11 tight glyph =
37+6:12 tight aura @t
38+6:14 tight glyph ]
39+7:1 DEDENT
40+7:1 NEWLINE
41+7:1 glyph +$
42+7:4 name overlap-null
43+8:3 INDENT
44+8:3 glyph [
45+8:4 tight lit ~
46+8:6 name value
47+8:11 tight glyph =
48+8:12 tight aura @t
49+8:14 tight glyph ]
50+9:3 NEWLINE
51+9:3 glyph [
52+9:4 tight lit %$
53+9:7 name value
54+9:12 tight glyph =
55+9:13 tight aura @t
56+9:15 tight glyph ]
57+10:1 DEDENT
58+10:1 NEWLINE
59+10:1 glyph +$
60+10:4 name overlap-flag
61+11:3 INDENT
62+11:3 glyph [
63+11:4 tight lit %.y
64+11:8 name value
65+11:13 tight glyph =
66+11:14 tight aura @t
67+11:16 tight glyph ]
68+12:3 NEWLINE
69+12:3 glyph [
70+12:4 tight lit %$
71+12:7 name value
72+12:12 tight glyph =
73+12:13 tight aura @t
74+12:15 tight glyph ]
75+13:1 DEDENT
76+13:1 NEWLINE
77+13:1 glyph +$
78+13:4 name overlap-three
79+14:3 INDENT
80+14:3 glyph [
81+14:4 tight lit ~
82+14:6 name value
83+14:11 tight glyph =
84+14:12 tight aura @t
85+14:14 tight glyph ]
86+15:3 NEWLINE
87+15:3 glyph [
88+15:4 tight lit %.y
89+15:8 name value
90+15:13 tight glyph =
91+15:14 tight aura @t
92+15:16 tight glyph ]
93+16:3 NEWLINE
94+16:3 glyph [
95+16:4 tight lit %$
96+16:7 name value
97+16:12 tight glyph =
98+16:13 tight aura @t
99+16:15 tight glyph ]
100+17:1 DEDENT
101+17:1 NEWLINE
102+17:1 glyph ++
103+17:4 name null-ctor
104+17:14 glyph ^-
105+17:17 glyph $-(
106+17:20 tight aura @t
107+17:23 name null-head
108+17:32 tight glyph )
109+17:34 glyph |=
110+17:36 tight lit %$
111+18:1 NEWLINE
112+18:1 glyph ++
113+18:4 name flag-ctor
114+18:14 glyph ^-
115+18:17 glyph $-(
116+18:20 tight aura @t
117+18:23 name flag-head
118+18:32 tight glyph )
119+18:34 glyph |=
120+18:36 tight lit %$
121+19:1 NEWLINE
122+19:1 glyph ++
123+19:4 name dollar-ctor
124+19:16 glyph ^-
125+19:19 glyph $-(
126+19:22 tight aura @t
127+19:25 name dollar-head
128+19:36 tight glyph )
129+19:38 glyph |=
130+19:40 tight lit %$
131+20:1 NEWLINE
132+20:1 glyph ++
133+20:4 name unit-like-ctor
134+20:19 glyph ^-
135+20:22 glyph $-(
136+20:25 tight aura @t
137+20:28 name pair-null
138+20:37 tight glyph )
139+20:39 glyph |=
140+20:41 tight lit %$
141+21:1 NEWLINE
142+21:1 glyph ++
143+21:4 name wrong-payload
144+21:18 glyph ^-
145+21:21 glyph $-(
146+21:24 tight aura @p
147+21:27 name null-head
148+21:36 tight glyph )
149+21:38 glyph |=
150+21:40 tight lit %$
151+22:1 NEWLINE
152+22:1 glyph ++
153+22:4 name missing-tag
154+22:16 glyph ^-
155+22:19 glyph $-(
156+22:22 tight aura @t
157+22:25 name null-head
158+22:34 tight glyph )
159+22:36 glyph |=
160+22:38 tight lit %missing
161+23:1 NEWLINE
162+23:1 glyph ++
163+23:4 name pending
164+24:3 INDENT
165+24:3 glyph ~&
166+24:6 lit %unrelated
167+25:5 INDENT
168+25:5 glyph ^-
169+25:8 glyph $-(
170+25:11 tight aura @t
171+25:14 name null-head
172+25:23 tight glyph )
173+25:25 glyph |=
174+25:27 tight lit %$
175+25:29 DEDENT
176+25:29 DEDENT
177+25:29 NEWLINE
tests/golden/types-literal-constructor-nouns/tree.txtnew file+78
@@ -0,0 +1,78 @@
1+(module
2+ (mold 1:1 null-head
3+ (cell 1:14
4+ (const 1:15 ~)
5+ (face 1:17 value (aura 1:23 @t))))
6+ (mold 2:1 flag-head
7+ (cell 2:14
8+ (const 2:15 %.y)
9+ (face 2:19 value (aura 2:25 @t))))
10+ (mold 3:1 dollar-head
11+ (cell 3:16
12+ (const 3:17 %$)
13+ (face 3:20 value (aura 3:26 @t))))
14+ (mold 4:1 pair-null
15+ (union 5:3
16+ (const 5:3 ~)
17+ (cell 6:3
18+ (const 6:4 ~)
19+ (face 6:6 value (aura 6:12 @t)))))
20+ (mold 7:1 overlap-null
21+ (union 8:3
22+ (cell 8:3
23+ (const 8:4 ~)
24+ (face 8:6 value (aura 8:12 @t)))
25+ (cell 9:3
26+ (const 9:4 %$)
27+ (face 9:7 value (aura 9:13 @t)))))
28+ (mold 10:1 overlap-flag
29+ (union 11:3
30+ (cell 11:3
31+ (const 11:4 %.y)
32+ (face 11:8 value (aura 11:14 @t)))
33+ (cell 12:3
34+ (const 12:4 %$)
35+ (face 12:7 value (aura 12:13 @t)))))
36+ (mold 13:1 overlap-three
37+ (union 14:3
38+ (cell 14:3
39+ (const 14:4 ~)
40+ (face 14:6 value (aura 14:12 @t)))
41+ (cell 15:3
42+ (const 15:4 %.y)
43+ (face 15:8 value (aura 15:14 @t)))
44+ (cell 16:3
45+ (const 16:4 %$)
46+ (face 16:7 value (aura 16:13 @t)))))
47+ (value 17:1 null-ctor
48+ (cast 17:14
49+ (fn 17:17 (aura 17:20 @t) (ref 17:23 null-head))
50+ (ctor 17:34 %$)))
51+ (value 18:1 flag-ctor
52+ (cast 18:14
53+ (fn 18:17 (aura 18:20 @t) (ref 18:23 flag-head))
54+ (ctor 18:34 %$)))
55+ (value 19:1 dollar-ctor
56+ (cast 19:16
57+ (fn 19:19 (aura 19:22 @t) (ref 19:25 dollar-head))
58+ (ctor 19:38 %$)))
59+ (value 20:1 unit-like-ctor
60+ (cast 20:19
61+ (fn 20:22 (aura 20:25 @t) (ref 20:28 pair-null))
62+ (ctor 20:39 %$)))
63+ (value 21:1 wrong-payload
64+ (cast 21:18
65+ (fn 21:21 (aura 21:24 @p) (ref 21:27 null-head))
66+ (ctor 21:38 %$)))
67+ (value 22:1 missing-tag
68+ (cast 22:16
69+ (fn 22:19 (aura 22:22 @t) (ref 22:25 null-head))
70+ (ctor 22:36 %missing)))
71+ (value 23:1 pending
72+ (body 24:3
73+ (trace 24:3
74+ (lit 24:6 %unrelated)
75+ (body 25:5
76+ (cast 25:5
77+ (fn 25:8 (aura 25:11 @t) (ref 25:14 null-head))
78+ (ctor 25:25 %$)))))))
tests/golden/types-literal-constructor-nouns/types.txtnew file+45
@@ -0,0 +1,45 @@
1+partial inference; module not checked
2++$ null-head: not checked
3++$ flag-head: not checked
4++$ dollar-head: not checked
5++$ pair-null: cases proven disjoint; mold not checked
6++$ overlap-null: overlapping cases; mold not checked
7+/tests/golden/types-literal-constructor-nouns/source.jibb:8:3: first union case
8+ [~ value=@t]
9+ ^
10+/tests/golden/types-literal-constructor-nouns/source.jibb:9:3: overlapping case
11+ [%$ value=@t]
12+ ^
13++$ overlap-flag: overlapping cases; mold not checked
14+/tests/golden/types-literal-constructor-nouns/source.jibb:11:3: first union case
15+ [%.y value=@t]
16+ ^
17+/tests/golden/types-literal-constructor-nouns/source.jibb:12:3: overlapping case
18+ [%$ value=@t]
19+ ^
20++$ overlap-three: overlapping cases; mold not checked
21+/tests/golden/types-literal-constructor-nouns/source.jibb:14:3: first union case
22+ [~ value=@t]
23+ ^
24+/tests/golden/types-literal-constructor-nouns/source.jibb:15:3: overlapping case
25+ [%.y value=@t]
26+ ^
27+++ null-ctor: $-(@t [~ value=@t])
28+++ flag-ctor: $-(@t [%.y value=@t])
29+++ dollar-ctor: $-(@t [%$ value=@t])
30+++ unit-like-ctor: $-(@t pair-null)
31+++ wrong-payload: cast mold and expression type do not unify
32+/tests/golden/types-literal-constructor-nouns/source.jibb:21:21: cast mold has type $-(@p [~ value=@t])
33+++ wrong-payload ^- $-(@p null-head) |=%$
34+ ^
35+/tests/golden/types-literal-constructor-nouns/source.jibb:21:38: expression
36+++ wrong-payload ^- $-(@p null-head) |=%$
37+ ^
38+++ missing-tag: cast mold and expression type do not unify
39+/tests/golden/types-literal-constructor-nouns/source.jibb:22:19: cast mold has type $-(@t [~ value=@t])
40+++ missing-tag ^- $-(@t null-head) |=%missing
41+ ^
42+/tests/golden/types-literal-constructor-nouns/source.jibb:22:36: expression
43+++ missing-tag ^- $-(@t null-head) |=%missing
44+ ^
45+++ pending: tag needs context in partial inference
tests/golden/types-loobean-singleton-source/about.txtnew file+2
@@ -0,0 +1,2 @@
1+source: literal equality uses runtime nouns while typed aura constraints remain directional.
2+tests: Loobean singleton molds and equal-noun terms, wrong singleton, ordinary loobean widening to ? and @, invalid widening to typed auras, and constructor matching a loobean-headed case. This is a partial inference report.
tests/golden/types-loobean-singleton-source/source.jibbnew file+22
@@ -0,0 +1,22 @@
1++$ yes %.y
2++$ no %.n
3++$ flag-headed [%.y value=@t]
4+++ yes-flag ^- yes %.y
5+++ yes-term ^- yes %$
6+++ wrong-flag ^- yes %.n
7+++ normal-flag ^- ? %.y
8+++ normal-any ^- @ %.y
9+++ wrong-tas ^- @tas %.y
10+++ wrong-ta ^- @ta %.y
11+++ wrong-ud ^- @ud %.y
12+++ named-value ^- yes %.y
13+++ named-as-flag ^- ? named-value
14+++ named-as-any ^- @ named-value
15+++ named-as-tas ^- @tas named-value
16+++ named-as-ta ^- @ta named-value
17+++ named-as-ud ^- @ud named-value
18+++ loobean-constructor ^- $-(@t flag-headed) |=%$
19+++ literal-f ^- @f %.y
20+++ flag-f |= b=? ^- @f b
21+++ named-f ^- @f named-value
22+++ explicit-tag ^- @tas (^- %$ %.y)
tests/golden/types-loobean-singleton-source/tokens.txtnew file+143
@@ -0,0 +1,143 @@
1+1:1 glyph +$
2+1:4 name yes
3+1:8 lit %.y
4+2:1 NEWLINE
5+2:1 glyph +$
6+2:4 name no
7+2:7 lit %.n
8+3:1 NEWLINE
9+3:1 glyph +$
10+3:4 name flag-headed
11+3:16 glyph [
12+3:17 tight lit %.y
13+3:21 name value
14+3:26 tight glyph =
15+3:27 tight aura @t
16+3:29 tight glyph ]
17+4:1 NEWLINE
18+4:1 glyph ++
19+4:4 name yes-flag
20+4:13 glyph ^-
21+4:16 name yes
22+4:20 lit %.y
23+5:1 NEWLINE
24+5:1 glyph ++
25+5:4 name yes-term
26+5:13 glyph ^-
27+5:16 name yes
28+5:20 lit %$
29+6:1 NEWLINE
30+6:1 glyph ++
31+6:4 name wrong-flag
32+6:15 glyph ^-
33+6:18 name yes
34+6:22 lit %.n
35+7:1 NEWLINE
36+7:1 glyph ++
37+7:4 name normal-flag
38+7:16 glyph ^-
39+7:19 glyph ?
40+7:21 lit %.y
41+8:1 NEWLINE
42+8:1 glyph ++
43+8:4 name normal-any
44+8:15 glyph ^-
45+8:18 aura @
46+8:20 lit %.y
47+9:1 NEWLINE
48+9:1 glyph ++
49+9:4 name wrong-tas
50+9:14 glyph ^-
51+9:17 aura @tas
52+9:22 lit %.y
53+10:1 NEWLINE
54+10:1 glyph ++
55+10:4 name wrong-ta
56+10:13 glyph ^-
57+10:16 aura @ta
58+10:20 lit %.y
59+11:1 NEWLINE
60+11:1 glyph ++
61+11:4 name wrong-ud
62+11:13 glyph ^-
63+11:16 aura @ud
64+11:20 lit %.y
65+12:1 NEWLINE
66+12:1 glyph ++
67+12:4 name named-value
68+12:16 glyph ^-
69+12:19 name yes
70+12:23 lit %.y
71+13:1 NEWLINE
72+13:1 glyph ++
73+13:4 name named-as-flag
74+13:18 glyph ^-
75+13:21 glyph ?
76+13:23 name named-value
77+14:1 NEWLINE
78+14:1 glyph ++
79+14:4 name named-as-any
80+14:17 glyph ^-
81+14:20 aura @
82+14:22 name named-value
83+15:1 NEWLINE
84+15:1 glyph ++
85+15:4 name named-as-tas
86+15:17 glyph ^-
87+15:20 aura @tas
88+15:25 name named-value
89+16:1 NEWLINE
90+16:1 glyph ++
91+16:4 name named-as-ta
92+16:16 glyph ^-
93+16:19 aura @ta
94+16:23 name named-value
95+17:1 NEWLINE
96+17:1 glyph ++
97+17:4 name named-as-ud
98+17:16 glyph ^-
99+17:19 aura @ud
100+17:23 name named-value
101+18:1 NEWLINE
102+18:1 glyph ++
103+18:4 name loobean-constructor
104+18:24 glyph ^-
105+18:27 glyph $-(
106+18:30 tight aura @t
107+18:33 name flag-headed
108+18:44 tight glyph )
109+18:46 glyph |=
110+18:48 tight lit %$
111+19:1 NEWLINE
112+19:1 glyph ++
113+19:4 name literal-f
114+19:14 glyph ^-
115+19:17 aura @f
116+19:20 lit %.y
117+20:1 NEWLINE
118+20:1 glyph ++
119+20:4 name flag-f
120+20:11 glyph |=
121+20:14 name b
122+20:15 tight glyph =
123+20:16 tight glyph ?
124+20:18 glyph ^-
125+20:21 aura @f
126+20:24 name b
127+21:1 NEWLINE
128+21:1 glyph ++
129+21:4 name named-f
130+21:12 glyph ^-
131+21:15 aura @f
132+21:18 name named-value
133+22:1 NEWLINE
134+22:1 glyph ++
135+22:4 name explicit-tag
136+22:17 glyph ^-
137+22:20 aura @tas
138+22:25 glyph (
139+22:26 tight glyph ^-
140+22:29 lit %$
141+22:32 lit %.y
142+22:35 tight glyph )
143+22:36 NEWLINE
tests/golden/types-loobean-singleton-source/tree.txtnew file+52
@@ -0,0 +1,52 @@
1+(module
2+ (mold 1:1 yes (const 1:8 %.y))
3+ (mold 2:1 no (const 2:7 %.n))
4+ (mold 3:1 flag-headed
5+ (cell 3:16
6+ (const 3:17 %.y)
7+ (face 3:21 value (aura 3:27 @t))))
8+ (value 4:1 yes-flag
9+ (cast 4:13 (ref 4:16 yes) (lit 4:20 %.y)))
10+ (value 5:1 yes-term
11+ (cast 5:13 (ref 5:16 yes) (lit 5:20 %$)))
12+ (value 6:1 wrong-flag
13+ (cast 6:15 (ref 6:18 yes) (lit 6:22 %.n)))
14+ (value 7:1 normal-flag
15+ (cast 7:16 (flag 7:19) (lit 7:21 %.y)))
16+ (value 8:1 normal-any
17+ (cast 8:15 (aura 8:18 @) (lit 8:20 %.y)))
18+ (value 9:1 wrong-tas
19+ (cast 9:14 (aura 9:17 @tas) (lit 9:22 %.y)))
20+ (value 10:1 wrong-ta
21+ (cast 10:13 (aura 10:16 @ta) (lit 10:20 %.y)))
22+ (value 11:1 wrong-ud
23+ (cast 11:13 (aura 11:16 @ud) (lit 11:20 %.y)))
24+ (value 12:1 named-value
25+ (cast 12:16 (ref 12:19 yes) (lit 12:23 %.y)))
26+ (value 13:1 named-as-flag
27+ (cast 13:18 (flag 13:21) (wing 13:23 named-value)))
28+ (value 14:1 named-as-any
29+ (cast 14:17 (aura 14:20 @) (wing 14:22 named-value)))
30+ (value 15:1 named-as-tas
31+ (cast 15:17 (aura 15:20 @tas) (wing 15:25 named-value)))
32+ (value 16:1 named-as-ta
33+ (cast 16:16 (aura 16:19 @ta) (wing 16:23 named-value)))
34+ (value 17:1 named-as-ud
35+ (cast 17:16 (aura 17:19 @ud) (wing 17:23 named-value)))
36+ (value 18:1 loobean-constructor
37+ (cast 18:24
38+ (fn 18:27 (aura 18:30 @t) (ref 18:33 flag-headed))
39+ (ctor 18:46 %$)))
40+ (value 19:1 literal-f
41+ (cast 19:14 (aura 19:17 @f) (lit 19:20 %.y)))
42+ (value 20:1 flag-f
43+ (gate 20:11
44+ (face 20:14 b (flag 20:16))
45+ (cast 20:18 (aura 20:21 @f) (wing 20:24 b))))
46+ (value 21:1 named-f
47+ (cast 21:12 (aura 21:15 @f) (wing 21:18 named-value)))
48+ (value 22:1 explicit-tag
49+ (cast 22:17
50+ (aura 22:20 @tas)
51+ (group 22:25
52+ (cast 22:26 (const 22:29 %$) (lit 22:32 %.y))))))
tests/golden/types-loobean-singleton-source/types.txtnew file+65
@@ -0,0 +1,65 @@
1+partial inference; module not checked
2++$ yes: not checked
3++$ no: not checked
4++$ flag-headed: not checked
5+++ yes-flag: %.y
6+++ yes-term: %.y
7+++ wrong-flag: cast mold and expression type do not unify
8+/tests/golden/types-loobean-singleton-source/source.jibb:6:18: cast mold has type %.y
9+++ wrong-flag ^- yes %.n
10+ ^
11+/tests/golden/types-loobean-singleton-source/source.jibb:6:22: expression has type %.n
12+++ wrong-flag ^- yes %.n
13+ ^
14+++ normal-flag: ?
15+++ normal-any: @
16+++ wrong-tas: cast mold and expression type do not unify
17+/tests/golden/types-loobean-singleton-source/source.jibb:9:17: cast mold has type @tas
18+++ wrong-tas ^- @tas %.y
19+ ^
20+/tests/golden/types-loobean-singleton-source/source.jibb:9:22: expression has type ?
21+++ wrong-tas ^- @tas %.y
22+ ^
23+++ wrong-ta: cast mold and expression type do not unify
24+/tests/golden/types-loobean-singleton-source/source.jibb:10:16: cast mold has type @ta
25+++ wrong-ta ^- @ta %.y
26+ ^
27+/tests/golden/types-loobean-singleton-source/source.jibb:10:20: expression has type ?
28+++ wrong-ta ^- @ta %.y
29+ ^
30+++ wrong-ud: cast mold and expression type do not unify
31+/tests/golden/types-loobean-singleton-source/source.jibb:11:16: cast mold has type @ud
32+++ wrong-ud ^- @ud %.y
33+ ^
34+/tests/golden/types-loobean-singleton-source/source.jibb:11:20: expression has type ?
35+++ wrong-ud ^- @ud %.y
36+ ^
37+++ named-value: %.y
38+++ named-as-flag: ?
39+++ named-as-any: @
40+++ named-as-tas: cast mold and expression type do not unify
41+/tests/golden/types-loobean-singleton-source/source.jibb:15:20: cast mold has type @tas
42+++ named-as-tas ^- @tas named-value
43+ ^
44+/tests/golden/types-loobean-singleton-source/source.jibb:15:25: expression has type %.y
45+++ named-as-tas ^- @tas named-value
46+ ^
47+++ named-as-ta: cast mold and expression type do not unify
48+/tests/golden/types-loobean-singleton-source/source.jibb:16:19: cast mold has type @ta
49+++ named-as-ta ^- @ta named-value
50+ ^
51+/tests/golden/types-loobean-singleton-source/source.jibb:16:23: expression has type %.y
52+++ named-as-ta ^- @ta named-value
53+ ^
54+++ named-as-ud: cast mold and expression type do not unify
55+/tests/golden/types-loobean-singleton-source/source.jibb:17:19: cast mold has type @ud
56+++ named-as-ud ^- @ud named-value
57+ ^
58+/tests/golden/types-loobean-singleton-source/source.jibb:17:23: expression has type %.y
59+++ named-as-ud ^- @ud named-value
60+ ^
61+++ loobean-constructor: $-(@t [%.y value=@t])
62+++ literal-f: cast constraint is not supported by partial inference
63+++ flag-f: cast constraint is not supported by partial inference
64+++ named-f: cast constraint is not supported by partial inference
65+++ explicit-tag: @tas
tests/golden/types-loobean-union-context/about.txtnew file+2
@@ -0,0 +1,2 @@
1+source: literal singleton cases compare by runtime noun.
2+tests: Null, term-zero and loobean singleton contexts across direct unions; unequal values, overlapping singleton cases, unknown targets and pending constraints.
tests/golden/types-loobean-union-context/source.jibbnew file+28
@@ -0,0 +1,28 @@
1++$ maybe
2+ ~
3+ [~ value=@t]
4++$ term-zero
5+ %$
6+ [%some value=@t]
7++$ flag-zero
8+ %.y
9+ [%some value=@t]
10++$ repeated
11+ ~
12+ %.y
13++$ number-one
14+ %.n
15+ [%some value=@t]
16+++ as-null ^- maybe %.y
17+++ bad-null ^- maybe %.n
18+++ null-as-term ^- term-zero ~
19+++ flag-as-term ^- term-zero %.y
20+++ term-as-flag ^- flag-zero %$
21+++ null-as-flag ^- flag-zero ~
22+++ yes-as-flag ^- flag-zero %.y
23+++ no-as-one ^- number-one %.n
24+++ no-as-zero ^- flag-zero %.n
25+++ pending
26+ ~& %unrelated
27+ ^- maybe %.y
28+++ unknown |= x=A ^- A %.y
tests/golden/types-loobean-union-context/tokens.txtnew file+136
@@ -0,0 +1,136 @@
1+1:1 glyph +$
2+1:4 name maybe
3+2:3 INDENT
4+2:3 lit ~
5+3:3 NEWLINE
6+3:3 glyph [
7+3:4 tight lit ~
8+3:6 name value
9+3:11 tight glyph =
10+3:12 tight aura @t
11+3:14 tight glyph ]
12+4:1 DEDENT
13+4:1 NEWLINE
14+4:1 glyph +$
15+4:4 name term-zero
16+5:3 INDENT
17+5:3 lit %$
18+6:3 NEWLINE
19+6:3 glyph [
20+6:4 tight lit %some
21+6:10 name value
22+6:15 tight glyph =
23+6:16 tight aura @t
24+6:18 tight glyph ]
25+7:1 DEDENT
26+7:1 NEWLINE
27+7:1 glyph +$
28+7:4 name flag-zero
29+8:3 INDENT
30+8:3 lit %.y
31+9:3 NEWLINE
32+9:3 glyph [
33+9:4 tight lit %some
34+9:10 name value
35+9:15 tight glyph =
36+9:16 tight aura @t
37+9:18 tight glyph ]
38+10:1 DEDENT
39+10:1 NEWLINE
40+10:1 glyph +$
41+10:4 name repeated
42+11:3 INDENT
43+11:3 lit ~
44+12:3 NEWLINE
45+12:3 lit %.y
46+13:1 DEDENT
47+13:1 NEWLINE
48+13:1 glyph +$
49+13:4 name number-one
50+14:3 INDENT
51+14:3 lit %.n
52+15:3 NEWLINE
53+15:3 glyph [
54+15:4 tight lit %some
55+15:10 name value
56+15:15 tight glyph =
57+15:16 tight aura @t
58+15:18 tight glyph ]
59+16:1 DEDENT
60+16:1 NEWLINE
61+16:1 glyph ++
62+16:4 name as-null
63+16:12 glyph ^-
64+16:15 name maybe
65+16:21 lit %.y
66+17:1 NEWLINE
67+17:1 glyph ++
68+17:4 name bad-null
69+17:13 glyph ^-
70+17:16 name maybe
71+17:22 lit %.n
72+18:1 NEWLINE
73+18:1 glyph ++
74+18:4 name null-as-term
75+18:17 glyph ^-
76+18:20 name term-zero
77+18:30 lit ~
78+19:1 NEWLINE
79+19:1 glyph ++
80+19:4 name flag-as-term
81+19:17 glyph ^-
82+19:20 name term-zero
83+19:30 lit %.y
84+20:1 NEWLINE
85+20:1 glyph ++
86+20:4 name term-as-flag
87+20:17 glyph ^-
88+20:20 name flag-zero
89+20:30 lit %$
90+21:1 NEWLINE
91+21:1 glyph ++
92+21:4 name null-as-flag
93+21:17 glyph ^-
94+21:20 name flag-zero
95+21:30 lit ~
96+22:1 NEWLINE
97+22:1 glyph ++
98+22:4 name yes-as-flag
99+22:16 glyph ^-
100+22:19 name flag-zero
101+22:29 lit %.y
102+23:1 NEWLINE
103+23:1 glyph ++
104+23:4 name no-as-one
105+23:14 glyph ^-
106+23:17 name number-one
107+23:28 lit %.n
108+24:1 NEWLINE
109+24:1 glyph ++
110+24:4 name no-as-zero
111+24:15 glyph ^-
112+24:18 name flag-zero
113+24:28 lit %.n
114+25:1 NEWLINE
115+25:1 glyph ++
116+25:4 name pending
117+26:3 INDENT
118+26:3 glyph ~&
119+26:6 lit %unrelated
120+27:5 INDENT
121+27:5 glyph ^-
122+27:8 name maybe
123+27:14 lit %.y
124+28:1 DEDENT
125+28:1 DEDENT
126+28:1 NEWLINE
127+28:1 glyph ++
128+28:4 name unknown
129+28:12 glyph |=
130+28:15 name x
131+28:16 tight glyph =
132+28:17 tight tvar A
133+28:19 glyph ^-
134+28:22 tvar A
135+28:24 lit %.y
136+28:27 NEWLINE
tests/golden/types-loobean-union-context/tree.txtnew file+55
@@ -0,0 +1,55 @@
1+(module
2+ (mold 1:1 maybe
3+ (union 2:3
4+ (const 2:3 ~)
5+ (cell 3:3
6+ (const 3:4 ~)
7+ (face 3:6 value (aura 3:12 @t)))))
8+ (mold 4:1 term-zero
9+ (union 5:3
10+ (const 5:3 %$)
11+ (cell 6:3
12+ (const 6:4 %some)
13+ (face 6:10 value (aura 6:16 @t)))))
14+ (mold 7:1 flag-zero
15+ (union 8:3
16+ (const 8:3 %.y)
17+ (cell 9:3
18+ (const 9:4 %some)
19+ (face 9:10 value (aura 9:16 @t)))))
20+ (mold 10:1 repeated
21+ (union 11:3 (const 11:3 ~) (const 12:3 %.y)))
22+ (mold 13:1 number-one
23+ (union 14:3
24+ (const 14:3 %.n)
25+ (cell 15:3
26+ (const 15:4 %some)
27+ (face 15:10 value (aura 15:16 @t)))))
28+ (value 16:1 as-null
29+ (cast 16:12 (ref 16:15 maybe) (lit 16:21 %.y)))
30+ (value 17:1 bad-null
31+ (cast 17:13 (ref 17:16 maybe) (lit 17:22 %.n)))
32+ (value 18:1 null-as-term
33+ (cast 18:17 (ref 18:20 term-zero) (lit 18:30 ~)))
34+ (value 19:1 flag-as-term
35+ (cast 19:17 (ref 19:20 term-zero) (lit 19:30 %.y)))
36+ (value 20:1 term-as-flag
37+ (cast 20:17 (ref 20:20 flag-zero) (lit 20:30 %$)))
38+ (value 21:1 null-as-flag
39+ (cast 21:17 (ref 21:20 flag-zero) (lit 21:30 ~)))
40+ (value 22:1 yes-as-flag
41+ (cast 22:16 (ref 22:19 flag-zero) (lit 22:29 %.y)))
42+ (value 23:1 no-as-one
43+ (cast 23:14 (ref 23:17 number-one) (lit 23:28 %.n)))
44+ (value 24:1 no-as-zero
45+ (cast 24:15 (ref 24:18 flag-zero) (lit 24:28 %.n)))
46+ (value 25:1 pending
47+ (body 26:3
48+ (trace 26:3
49+ (lit 26:6 %unrelated)
50+ (body 27:5
51+ (cast 27:5 (ref 27:8 maybe) (lit 27:14 %.y))))))
52+ (value 28:1 unknown
53+ (gate 28:12
54+ (face 28:15 x (tvar 28:17 A))
55+ (cast 28:19 (tvar 28:22 A) (lit 28:24 %.y)))))
tests/golden/types-loobean-union-context/types.txtnew file+35
@@ -0,0 +1,35 @@
1+partial inference; module not checked
2++$ maybe: cases proven disjoint; mold not checked
3++$ term-zero: cases proven disjoint; mold not checked
4++$ flag-zero: cases proven disjoint; mold not checked
5++$ repeated: overlapping cases; mold not checked
6+/tests/golden/types-loobean-union-context/source.jibb:11:3: first union case
7+ ~
8+ ^
9+/tests/golden/types-loobean-union-context/source.jibb:12:3: overlapping case
10+ %.y
11+ ^
12++$ number-one: cases proven disjoint; mold not checked
13+++ as-null: maybe
14+++ bad-null: cast mold and expression type do not unify
15+/tests/golden/types-loobean-union-context/source.jibb:17:16: cast mold
16+++ bad-null ^- maybe %.n
17+ ^
18+/tests/golden/types-loobean-union-context/source.jibb:17:22: expression has type ?
19+++ bad-null ^- maybe %.n
20+ ^
21+++ null-as-term: term-zero
22+++ flag-as-term: term-zero
23+++ term-as-flag: flag-zero
24+++ null-as-flag: flag-zero
25+++ yes-as-flag: flag-zero
26+++ no-as-one: number-one
27+++ no-as-zero: cast mold and expression type do not unify
28+/tests/golden/types-loobean-union-context/source.jibb:24:18: cast mold
29+++ no-as-zero ^- flag-zero %.n
30+ ^
31+/tests/golden/types-loobean-union-context/source.jibb:24:28: expression has type ?
32+++ no-as-zero ^- flag-zero %.n
33+ ^
34+++ pending: tag needs context in partial inference
35+++ unknown: explicit capital constraints are not supported by partial inference
tests/golden/types-null-context/about.txt+1−1
@@ -1,4 +1,4 @@
1source: Grammar, Tag resolution: "A tag literal or `~` gets a fresh type variable and a pending constraint"; `|=%typed` "works for cases tagged at their head".
1source: Grammar, Tag resolution: "A tag literal or `~` gets a fresh type variable and a pending constraint"; `|=%typed` "works for cases tagged at their head".
2−tests: Contextual null and a null-headed cell fit their respective cases. A null-headed case is not a `%$` constructor; a term-headed `%$` case is.
2+tests: Contextual null and a null-headed cell fit their respective cases. Null- and term-headed zero cases both accept a `%$` constructor because their literal heads are equal nouns.
3expect: parses
3expect: parses
4expect-types: a partial inference report
4expect-types: a partial inference report
tests/golden/types-null-context/source.jibb+1−1
@@ -4,5 +4,5 @@
4+$ dollar [%$ value=@t]
4+$ dollar [%$ value=@t]
5++ empty ^- maybe ~
5++ empty ^- maybe ~
6++ present ^- maybe [~ "hi"]
6++ present ^- maybe [~ "hi"]
7−++ bad-constructor ^- $-(@t maybe) |=%$
7+++ null-constructor ^- $-(@t maybe) |=%$
8++ dollar-constructor ^- $-(@t dollar) |=%$
8++ dollar-constructor ^- $-(@t dollar) |=%$
tests/golden/types-null-context/tokens.txt+8−8
@@ -36,14 +36,14 @@
366:28 tight glyph ]
366:28 tight glyph ]
377:1 NEWLINE
377:1 NEWLINE
387:1 glyph ++
387:1 glyph ++
39−7:4 name bad-constructor
39+7:4 name null-constructor
40−7:20 glyph ^-
40+7:21 glyph ^-
41−7:23 glyph $-(
41+7:24 glyph $-(
42−7:26 tight aura @t
42+7:27 tight aura @t
43−7:29 name maybe
43+7:30 name maybe
44−7:34 tight glyph )
44+7:35 tight glyph )
45−7:36 glyph |=
45+7:37 glyph |=
46−7:38 tight lit %$
46+7:39 tight lit %$
478:1 NEWLINE
478:1 NEWLINE
488:1 glyph ++
488:1 glyph ++
498:4 name dollar-constructor
498:4 name dollar-constructor
tests/golden/types-null-context/tree.txt+4−4
@@ -15,10 +15,10 @@
15 (cast 6:12
15 (cast 6:12
16 (ref 6:15 maybe)
16 (ref 6:15 maybe)
17 (tuple 6:21 (lit 6:22 ~) (str 6:24 "hi"))))
17 (tuple 6:21 (lit 6:22 ~) (str 6:24 "hi"))))
18− (value 7:1 bad-constructor
18+ (value 7:1 null-constructor
19− (cast 7:20
19+ (cast 7:21
20− (fn 7:23 (aura 7:26 @t) (ref 7:29 maybe))
20+ (fn 7:24 (aura 7:27 @t) (ref 7:30 maybe))
21− (ctor 7:36 %$)))
21+ (ctor 7:37 %$)))
22 (value 8:1 dollar-constructor
22 (value 8:1 dollar-constructor
23 (cast 8:23
23 (cast 8:23
24 (fn 8:26 (aura 8:29 @t) (ref 8:32 dollar))
24 (fn 8:26 (aura 8:29 @t) (ref 8:32 dollar))
tests/golden/types-null-context/types.txt+1−7
@@ -3,11 +3,5 @@ partial inference; module not checked
3+$ dollar: not checked
3+$ dollar: not checked
4++ empty: maybe
4++ empty: maybe
5++ present: maybe
5++ present: maybe
6−++ bad-constructor: cast mold and expression type do not unify
7−/tests/golden/types-null-context/source.jibb:7:23: cast mold
8−++ bad-constructor ^- $-(@t maybe) |=%$
6+++ null-constructor: $-(@t maybe)
9− ^
10−/tests/golden/types-null-context/source.jibb:7:36: expression
11−++ bad-constructor ^- $-(@t maybe) |=%$
12− ^
13++ dollar-constructor: $-(@t [%$ value=@t])
7++ dollar-constructor: $-(@t [%$ value=@t])
tests/golden/types-prelude-cmd/about.txt+1−1
@@ -1,4 +1,4 @@
1source: Overview, Effects: `cmd` is a generic union with `%poke`, `%go`, `%wait`, `%now` and `%who` cases; a poke carries a reply over `(unit @t)`.
1source: Overview, Effects: `cmd` is a generic union with `%poke`, `%go`, `%wait`, `%now` and `%who` cases; a poke carries a reply over `(unit @t)`.
2−tests: The doc-exact source-backed prelude mold and its five cases infer, retain independently instantiated message types, and work in list context. Incorrect URL, message, callback result and list item types report mismatches; an unsupported callback sample or cross-instantiation fails closed. The full module remains unchecked.
2+tests: The doc-exact source-backed prelude mold and its five cases infer, retain independently instantiated message types, and work in list context. Incorrect URL, message, callback result, list item and cross-instantiation types report mismatches; an unsupported callback sample fails closed. The full module remains unchecked.
3expect: parses
3expect: parses
4expect-types: a partial inference report
4expect-types: a partial inference report
tests/golden/types-prelude-cmd/types.txt+7−1
@@ -47,4 +47,10 @@ partial inference; module not checked
47++ wrong-case ^- (cmd @t) %oops
47++ wrong-case ^- (cmd @t) %oops
48 ^
48 ^
49++ use-text: $-((cmd @t) (cmd @t))
49++ use-text: $-((cmd @t) (cmd @t))
50−++ cross: call constraint is not supported by partial inference
50+++ cross: call's sample and argument types do not unify
51+/tests/golden/types-prelude-cmd/source.jibb:21:21: called gate
52+++ cross (use-text (wrap ~zod))
53+ ^
54+/tests/golden/types-prelude-cmd/source.jibb:21:26: argument has type @p
55+++ cross (use-text (wrap ~zod))
56+ ^
tests/golden/types-prelude-sub/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: docs/spec/overview.md, Effects, the exact source-backed generic sub declaration.
2+tests: Watch, timer and URL construction and matching; public ask identity on a watch binder; independent message types, incorrect callbacks and pending constraints. This partial inference report is not island watchability proof or a runtime claim.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-prelude-sub/modules.txtnew file+1
@@ -0,0 +1 @@
1+# Use the source-backed prelude.
tests/golden/types-prelude-sub/source.jibbnew file+37
@@ -0,0 +1,37 @@
1++$ msg
2+ [%got value=@t]
3+ %done
4+++ watch-value |= a=(ask msg) ^- (sub msg) [%watch a]
5+++ watch-cord |= a=(ask @t) ^- (sub @t) [%watch a]
6+++ wrong-watch |= a=(ask @p) ^- (sub @t) [%watch a]
7+++ periodic ^- (sub @t) [%every gap=~s1 reply=|=(date=@da "tick")]
8+++ route ^- (sub @t) [%url reply=|=(p=path "path")]
9+++ wrong-reply ^- (sub @t) [%every gap=~s1 reply=|=(date=@p "bad")]
10+++ incomplete |= s=(sub msg)
11+ ?- s
12+ [%watch ask] %done
13+ [%every gap reply] %done
14+++ complete |= s=(sub msg)
15+ ?- s
16+ [%watch ask] %done
17+ [%every gap reply] %done
18+ [%url reply] %done
19+
20++$ my-msg
21+ [%got value=@t]
22+ %idle
23+++ take-watch |= s=(sub my-msg)
24+ ^- (ask my-msg)
25+ ?- s
26+ [%watch a] a
27+ [%every gap reply] !!
28+ [%url reply] !!
29+++ watch-pure ^- (sub my-msg) [%watch (pure %idle)]
30+++ watch-generic |= a=(ask A) ^- (sub A) [%watch a]
31+++ independent-text |= a=(ask @t) ^- (sub @t) [%watch a]
32+++ independent-ship |= a=(ask @p) ^- (sub @p) [%watch a]
33+++ wrong-watch-generic |= a=(ask @p) ^- (sub @t) [%watch a]
34+
35+++ pure-direct ^- (ask my-msg) (pure %idle)
36+++ pure-typed ^- (ask my-msg) (pure (^- my-msg %idle))
37+++ pure-wrong ^- (ask my-msg) (pure %absent)
tests/golden/types-prelude-sub/tokens.txtnew file+380
@@ -0,0 +1,380 @@
1+1:1 glyph +$
2+1:4 name msg
3+2:3 INDENT
4+2:3 glyph [
5+2:4 tight lit %got
6+2:9 name value
7+2:14 tight glyph =
8+2:15 tight aura @t
9+2:17 tight glyph ]
10+3:3 NEWLINE
11+3:3 lit %done
12+4:1 DEDENT
13+4:1 NEWLINE
14+4:1 glyph ++
15+4:4 name watch-value
16+4:16 glyph |=
17+4:19 name a
18+4:20 tight glyph =
19+4:21 tight glyph (
20+4:22 tight name ask
21+4:26 name msg
22+4:29 tight glyph )
23+4:31 glyph ^-
24+4:34 glyph (
25+4:35 tight name sub
26+4:39 name msg
27+4:42 tight glyph )
28+4:44 glyph [
29+4:45 tight lit %watch
30+4:52 name a
31+4:53 tight glyph ]
32+5:1 NEWLINE
33+5:1 glyph ++
34+5:4 name watch-cord
35+5:15 glyph |=
36+5:18 name a
37+5:19 tight glyph =
38+5:20 tight glyph (
39+5:21 tight name ask
40+5:25 aura @t
41+5:27 tight glyph )
42+5:29 glyph ^-
43+5:32 glyph (
44+5:33 tight name sub
45+5:37 aura @t
46+5:39 tight glyph )
47+5:41 glyph [
48+5:42 tight lit %watch
49+5:49 name a
50+5:50 tight glyph ]
51+6:1 NEWLINE
52+6:1 glyph ++
53+6:4 name wrong-watch
54+6:16 glyph |=
55+6:19 name a
56+6:20 tight glyph =
57+6:21 tight glyph (
58+6:22 tight name ask
59+6:26 aura @p
60+6:28 tight glyph )
61+6:30 glyph ^-
62+6:33 glyph (
63+6:34 tight name sub
64+6:38 aura @t
65+6:40 tight glyph )
66+6:42 glyph [
67+6:43 tight lit %watch
68+6:50 name a
69+6:51 tight glyph ]
70+7:1 NEWLINE
71+7:1 glyph ++
72+7:4 name periodic
73+7:13 glyph ^-
74+7:16 glyph (
75+7:17 tight name sub
76+7:21 aura @t
77+7:23 tight glyph )
78+7:25 glyph [
79+7:26 tight lit %every
80+7:33 name gap
81+7:36 tight glyph =
82+7:37 tight lit ~s1
83+7:41 name reply
84+7:46 tight glyph =
85+7:47 tight glyph |=(
86+7:50 tight name date
87+7:54 tight glyph =
88+7:55 tight aura @da
89+7:59 str "tick"
90+7:65 tight glyph )
91+7:66 tight glyph ]
92+8:1 NEWLINE
93+8:1 glyph ++
94+8:4 name route
95+8:10 glyph ^-
96+8:13 glyph (
97+8:14 tight name sub
98+8:18 aura @t
99+8:20 tight glyph )
100+8:22 glyph [
101+8:23 tight lit %url
102+8:28 name reply
103+8:33 tight glyph =
104+8:34 tight glyph |=(
105+8:37 tight name p
106+8:38 tight glyph =
107+8:39 tight name path
108+8:44 str "path"
109+8:50 tight glyph )
110+8:51 tight glyph ]
111+9:1 NEWLINE
112+9:1 glyph ++
113+9:4 name wrong-reply
114+9:16 glyph ^-
115+9:19 glyph (
116+9:20 tight name sub
117+9:24 aura @t
118+9:26 tight glyph )
119+9:28 glyph [
120+9:29 tight lit %every
121+9:36 name gap
122+9:39 tight glyph =
123+9:40 tight lit ~s1
124+9:44 name reply
125+9:49 tight glyph =
126+9:50 tight glyph |=(
127+9:53 tight name date
128+9:57 tight glyph =
129+9:58 tight aura @p
130+9:61 str "bad"
131+9:66 tight glyph )
132+9:67 tight glyph ]
133+10:1 NEWLINE
134+10:1 glyph ++
135+10:4 name incomplete
136+10:15 glyph |=
137+10:18 name s
138+10:19 tight glyph =
139+10:20 tight glyph (
140+10:21 tight name sub
141+10:25 name msg
142+10:28 tight glyph )
143+11:3 INDENT
144+11:3 glyph ?-
145+11:6 name s
146+12:5 INDENT
147+12:5 glyph [
148+12:6 tight lit %watch
149+12:13 name ask
150+12:16 tight glyph ]
151+12:18 lit %done
152+13:5 NEWLINE
153+13:5 glyph [
154+13:6 tight lit %every
155+13:13 name gap
156+13:17 name reply
157+13:22 tight glyph ]
158+13:24 lit %done
159+14:1 DEDENT
160+14:1 DEDENT
161+14:1 NEWLINE
162+14:1 glyph ++
163+14:4 name complete
164+14:13 glyph |=
165+14:16 name s
166+14:17 tight glyph =
167+14:18 tight glyph (
168+14:19 tight name sub
169+14:23 name msg
170+14:26 tight glyph )
171+15:3 INDENT
172+15:3 glyph ?-
173+15:6 name s
174+16:5 INDENT
175+16:5 glyph [
176+16:6 tight lit %watch
177+16:13 name ask
178+16:16 tight glyph ]
179+16:18 lit %done
180+17:5 NEWLINE
181+17:5 glyph [
182+17:6 tight lit %every
183+17:13 name gap
184+17:17 name reply
185+17:22 tight glyph ]
186+17:24 lit %done
187+18:5 NEWLINE
188+18:5 glyph [
189+18:6 tight lit %url
190+18:11 name reply
191+18:16 tight glyph ]
192+18:18 lit %done
193+20:1 DEDENT
194+20:1 DEDENT
195+20:1 NEWLINE
196+20:1 glyph +$
197+20:4 name my-msg
198+21:3 INDENT
199+21:3 glyph [
200+21:4 tight lit %got
201+21:9 name value
202+21:14 tight glyph =
203+21:15 tight aura @t
204+21:17 tight glyph ]
205+22:3 NEWLINE
206+22:3 lit %idle
207+23:1 DEDENT
208+23:1 NEWLINE
209+23:1 glyph ++
210+23:4 name take-watch
211+23:15 glyph |=
212+23:18 name s
213+23:19 tight glyph =
214+23:20 tight glyph (
215+23:21 tight name sub
216+23:25 name my-msg
217+23:31 tight glyph )
218+24:3 INDENT
219+24:3 glyph ^-
220+24:6 glyph (
221+24:7 tight name ask
222+24:11 name my-msg
223+24:17 tight glyph )
224+25:5 INDENT
225+25:5 glyph ?-
226+25:8 name s
227+26:7 INDENT
228+26:7 glyph [
229+26:8 tight lit %watch
230+26:15 name a
231+26:16 tight glyph ]
232+26:18 name a
233+27:7 NEWLINE
234+27:7 glyph [
235+27:8 tight lit %every
236+27:15 name gap
237+27:19 name reply
238+27:24 tight glyph ]
239+27:26 glyph !!
240+28:7 NEWLINE
241+28:7 glyph [
242+28:8 tight lit %url
243+28:13 name reply
244+28:18 tight glyph ]
245+28:20 glyph !!
246+29:1 DEDENT
247+29:1 DEDENT
248+29:1 DEDENT
249+29:1 NEWLINE
250+29:1 glyph ++
251+29:4 name watch-pure
252+29:15 glyph ^-
253+29:18 glyph (
254+29:19 tight name sub
255+29:23 name my-msg
256+29:29 tight glyph )
257+29:31 glyph [
258+29:32 tight lit %watch
259+29:39 glyph (
260+29:40 tight name pure
261+29:45 lit %idle
262+29:50 tight glyph )
263+29:51 tight glyph ]
264+30:1 NEWLINE
265+30:1 glyph ++
266+30:4 name watch-generic
267+30:18 glyph |=
268+30:21 name a
269+30:22 tight glyph =
270+30:23 tight glyph (
271+30:24 tight name ask
272+30:28 tvar A
273+30:29 tight glyph )
274+30:31 glyph ^-
275+30:34 glyph (
276+30:35 tight name sub
277+30:39 tvar A
278+30:40 tight glyph )
279+30:42 glyph [
280+30:43 tight lit %watch
281+30:50 name a
282+30:51 tight glyph ]
283+31:1 NEWLINE
284+31:1 glyph ++
285+31:4 name independent-text
286+31:21 glyph |=
287+31:24 name a
288+31:25 tight glyph =
289+31:26 tight glyph (
290+31:27 tight name ask
291+31:31 aura @t
292+31:33 tight glyph )
293+31:35 glyph ^-
294+31:38 glyph (
295+31:39 tight name sub
296+31:43 aura @t
297+31:45 tight glyph )
298+31:47 glyph [
299+31:48 tight lit %watch
300+31:55 name a
301+31:56 tight glyph ]
302+32:1 NEWLINE
303+32:1 glyph ++
304+32:4 name independent-ship
305+32:21 glyph |=
306+32:24 name a
307+32:25 tight glyph =
308+32:26 tight glyph (
309+32:27 tight name ask
310+32:31 aura @p
311+32:33 tight glyph )
312+32:35 glyph ^-
313+32:38 glyph (
314+32:39 tight name sub
315+32:43 aura @p
316+32:45 tight glyph )
317+32:47 glyph [
318+32:48 tight lit %watch
319+32:55 name a
320+32:56 tight glyph ]
321+33:1 NEWLINE
322+33:1 glyph ++
323+33:4 name wrong-watch-generic
324+33:24 glyph |=
325+33:27 name a
326+33:28 tight glyph =
327+33:29 tight glyph (
328+33:30 tight name ask
329+33:34 aura @p
330+33:36 tight glyph )
331+33:38 glyph ^-
332+33:41 glyph (
333+33:42 tight name sub
334+33:46 aura @t
335+33:48 tight glyph )
336+33:50 glyph [
337+33:51 tight lit %watch
338+33:58 name a
339+33:59 tight glyph ]
340+35:1 NEWLINE
341+35:1 glyph ++
342+35:4 name pure-direct
343+35:16 glyph ^-
344+35:19 glyph (
345+35:20 tight name ask
346+35:24 name my-msg
347+35:30 tight glyph )
348+35:32 glyph (
349+35:33 tight name pure
350+35:38 lit %idle
351+35:43 tight glyph )
352+36:1 NEWLINE
353+36:1 glyph ++
354+36:4 name pure-typed
355+36:15 glyph ^-
356+36:18 glyph (
357+36:19 tight name ask
358+36:23 name my-msg
359+36:29 tight glyph )
360+36:31 glyph (
361+36:32 tight name pure
362+36:37 glyph (
363+36:38 tight glyph ^-
364+36:41 name my-msg
365+36:48 lit %idle
366+36:53 tight glyph )
367+36:54 tight glyph )
368+37:1 NEWLINE
369+37:1 glyph ++
370+37:4 name pure-wrong
371+37:15 glyph ^-
372+37:18 glyph (
373+37:19 tight name ask
374+37:23 name my-msg
375+37:29 tight glyph )
376+37:31 glyph (
377+37:32 tight name pure
378+37:37 lit %absent
379+37:44 tight glyph )
380+37:45 NEWLINE
tests/golden/types-prelude-sub/tree.txtnew file+164
@@ -0,0 +1,164 @@
1+(module
2+ (mold 1:1 msg
3+ (union 2:3
4+ (cell 2:3
5+ (const 2:4 %got)
6+ (face 2:9 value (aura 2:15 @t)))
7+ (const 3:3 %done)))
8+ (value 4:1 watch-value
9+ (gate 4:16
10+ (face 4:19 a
11+ (apply 4:21 ask (ref 4:26 msg)))
12+ (cast 4:31
13+ (apply 4:34 sub (ref 4:39 msg))
14+ (tuple 4:44 (lit 4:45 %watch) (wing 4:52 a)))))
15+ (value 5:1 watch-cord
16+ (gate 5:15
17+ (face 5:18 a
18+ (apply 5:20 ask (aura 5:25 @t)))
19+ (cast 5:29
20+ (apply 5:32 sub (aura 5:37 @t))
21+ (tuple 5:41 (lit 5:42 %watch) (wing 5:49 a)))))
22+ (value 6:1 wrong-watch
23+ (gate 6:16
24+ (face 6:19 a
25+ (apply 6:21 ask (aura 6:26 @p)))
26+ (cast 6:30
27+ (apply 6:33 sub (aura 6:38 @t))
28+ (tuple 6:42 (lit 6:43 %watch) (wing 6:50 a)))))
29+ (value 7:1 periodic
30+ (cast 7:13
31+ (apply 7:16 sub (aura 7:21 @t))
32+ (tuple 7:25
33+ (lit 7:26 %every)
34+ (face 7:33 gap (lit 7:37 ~s1))
35+ (face 7:41 reply
36+ (gate-wide 7:47
37+ (face 7:50 date (aura 7:55 @da))
38+ (str 7:59 "tick"))))))
39+ (value 8:1 route
40+ (cast 8:10
41+ (apply 8:13 sub (aura 8:18 @t))
42+ (tuple 8:22
43+ (lit 8:23 %url)
44+ (face 8:28 reply
45+ (gate-wide 8:34
46+ (face 8:37 p (ref 8:39 path))
47+ (str 8:44 "path"))))))
48+ (value 9:1 wrong-reply
49+ (cast 9:16
50+ (apply 9:19 sub (aura 9:24 @t))
51+ (tuple 9:28
52+ (lit 9:29 %every)
53+ (face 9:36 gap (lit 9:40 ~s1))
54+ (face 9:44 reply
55+ (gate-wide 9:50
56+ (face 9:53 date (aura 9:58 @p))
57+ (str 9:61 "bad"))))))
58+ (value 10:1 incomplete
59+ (gate 10:15
60+ (face 10:18 s
61+ (apply 10:20 sub (ref 10:25 msg)))
62+ (body 11:3
63+ (branch 11:3
64+ (wing 11:6 s)
65+ (arm 12:5
66+ (cell 12:5 (lit 12:6 %watch) (bind 12:13 ask))
67+ (lit 12:18 %done))
68+ (arm 13:5
69+ (cell 13:5 (lit 13:6 %every) (bind 13:13 gap) (bind 13:17 reply))
70+ (lit 13:24 %done))))))
71+ (value 14:1 complete
72+ (gate 14:13
73+ (face 14:16 s
74+ (apply 14:18 sub (ref 14:23 msg)))
75+ (body 15:3
76+ (branch 15:3
77+ (wing 15:6 s)
78+ (arm 16:5
79+ (cell 16:5 (lit 16:6 %watch) (bind 16:13 ask))
80+ (lit 16:18 %done))
81+ (arm 17:5
82+ (cell 17:5 (lit 17:6 %every) (bind 17:13 gap) (bind 17:17 reply))
83+ (lit 17:24 %done))
84+ (arm 18:5
85+ (cell 18:5 (lit 18:6 %url) (bind 18:11 reply))
86+ (lit 18:18 %done))))))
87+ (mold 20:1 my-msg
88+ (union 21:3
89+ (cell 21:3
90+ (const 21:4 %got)
91+ (face 21:9 value (aura 21:15 @t)))
92+ (const 22:3 %idle)))
93+ (value 23:1 take-watch
94+ (gate 23:15
95+ (face 23:18 s
96+ (apply 23:20 sub (ref 23:25 my-msg)))
97+ (body 24:3
98+ (cast 24:3
99+ (apply 24:6 ask (ref 24:11 my-msg))
100+ (body 25:5
101+ (branch 25:5
102+ (wing 25:8 s)
103+ (arm 26:7
104+ (cell 26:7 (lit 26:8 %watch) (bind 26:15 a))
105+ (wing 26:18 a))
106+ (arm 27:7
107+ (cell 27:7 (lit 27:8 %every) (bind 27:15 gap) (bind 27:19 reply))
108+ (crash 27:26))
109+ (arm 28:7
110+ (cell 28:7 (lit 28:8 %url) (bind 28:13 reply))
111+ (crash 28:20))))))))
112+ (value 29:1 watch-pure
113+ (cast 29:15
114+ (apply 29:18 sub (ref 29:23 my-msg))
115+ (tuple 29:31
116+ (lit 29:32 %watch)
117+ (group 29:39
118+ (call 29:40 (wing 29:40 pure) (lit 29:45 %idle))))))
119+ (value 30:1 watch-generic
120+ (gate 30:18
121+ (face 30:21 a
122+ (apply 30:23 ask (tvar 30:28 A)))
123+ (cast 30:31
124+ (apply 30:34 sub (tvar 30:39 A))
125+ (tuple 30:42 (lit 30:43 %watch) (wing 30:50 a)))))
126+ (value 31:1 independent-text
127+ (gate 31:21
128+ (face 31:24 a
129+ (apply 31:26 ask (aura 31:31 @t)))
130+ (cast 31:35
131+ (apply 31:38 sub (aura 31:43 @t))
132+ (tuple 31:47 (lit 31:48 %watch) (wing 31:55 a)))))
133+ (value 32:1 independent-ship
134+ (gate 32:21
135+ (face 32:24 a
136+ (apply 32:26 ask (aura 32:31 @p)))
137+ (cast 32:35
138+ (apply 32:38 sub (aura 32:43 @p))
139+ (tuple 32:47 (lit 32:48 %watch) (wing 32:55 a)))))
140+ (value 33:1 wrong-watch-generic
141+ (gate 33:24
142+ (face 33:27 a
143+ (apply 33:29 ask (aura 33:34 @p)))
144+ (cast 33:38
145+ (apply 33:41 sub (aura 33:46 @t))
146+ (tuple 33:50 (lit 33:51 %watch) (wing 33:58 a)))))
147+ (value 35:1 pure-direct
148+ (cast 35:16
149+ (apply 35:19 ask (ref 35:24 my-msg))
150+ (group 35:32
151+ (call 35:33 (wing 35:33 pure) (lit 35:38 %idle)))))
152+ (value 36:1 pure-typed
153+ (cast 36:15
154+ (apply 36:18 ask (ref 36:23 my-msg))
155+ (group 36:31
156+ (call 36:32
157+ (wing 36:32 pure)
158+ (group 36:37
159+ (cast 36:38 (ref 36:41 my-msg) (lit 36:48 %idle)))))))
160+ (value 37:1 pure-wrong
161+ (cast 37:15
162+ (apply 37:18 ask (ref 37:23 my-msg))
163+ (group 37:31
164+ (call 37:32 (wing 37:32 pure) (lit 37:37 %absent))))))
tests/golden/types-prelude-sub/types.txtnew file+32
@@ -0,0 +1,32 @@
1+partial inference; module not checked
2++$ msg: cases proven disjoint; mold not checked
3+++ watch-value: $-((ask msg) (sub msg))
4+++ watch-cord: $-((ask @t) (sub @t))
5+++ wrong-watch: cast constraint is not supported by partial inference
6+++ periodic: (sub @t)
7+++ route: (sub @t)
8+++ wrong-reply: cast mold and expression type do not unify
9+/tests/golden/types-prelude-sub/source.jibb:9:19: cast mold
10+++ wrong-reply ^- (sub @t) [%every gap=~s1 reply=|=(date=@p "bad")]
11+ ^
12+/tests/golden/types-prelude-sub/source.jibb:9:28: expression
13+++ wrong-reply ^- (sub @t) [%every gap=~s1 reply=|=(date=@p "bad")]
14+ ^
15+++ incomplete: union branch result matching needs unsupported inference
16+++ complete: union branch result matching needs unsupported inference
17++$ my-msg: cases proven disjoint; mold not checked
18+++ take-watch: $-((sub my-msg) (ask my-msg))
19+++ watch-pure: cast constraint is not supported by partial inference
20+++ watch-generic: $-((ask A) (sub A))
21+++ independent-text: $-((ask @t) (sub @t))
22+++ independent-ship: $-((ask @p) (sub @p))
23+++ wrong-watch-generic: cast constraint is not supported by partial inference
24+++ pure-direct: (ask my-msg)
25+++ pure-typed: (ask my-msg)
26+++ pure-wrong: my-msg has no case `%absent`
27+/tests/golden/types-prelude-sub/source.jibb:37:32: expected union
28+++ pure-wrong ^- (ask my-msg) (pure %absent)
29+ ^
30+/tests/golden/types-prelude-sub/source.jibb:37:37: tag
31+++ pure-wrong ^- (ask my-msg) (pure %absent)
32+ ^
tests/lib/jibb-constructor-fit-guards.hoonnew file+128
@@ -0,0 +1,128 @@
1+:: Constructor cases distinguish proven absence from unknown cases.
2+/+ jibb
3+|%
4+++ constructor-base-errors
5+ ^- (list tape)
6+ =/ tag=lit:jibb [%term %tas %got '%got']
7+ =/ t=itype:jibb [%atom %t]
8+ =/ p=itype:jibb [%atom %p]
9+ =/ good=itype:jibb [%cell [%const tag] t]
10+ =/ bad-payload=itype:jibb [%cell [%const tag] p]
11+ =/ wrong=itype:jibb [%cell [%const [%term %tas %other '%other']] t]
12+ =/ tests=(list [name=@t cases=(list itype:jibb) sub=isub:jibb expected=?(%ok %bad %unknown)])
13+ :~ ['known matching' ~[good] ~ %ok]
14+ ['known missing' ~[wrong] ~ %bad]
15+ ['mismatched payload' ~[bad-payload] ~ %bad]
16+ ['explicit noun' ~[[%noun ~]] ~ %bad]
17+ ['unbound case' ~[[%var 0]] ~ %unknown]
18+ ['bound case remains uncertain' ~[[%var 0]] ~[[0 good]] %unknown]
19+ ['unknown case alongside match' ~[good [%var 0]] ~ %unknown]
20+ ['unbound head' ~[[%cell [%var 0] t]] ~ %unknown]
21+ ['bound head remains uncertain' ~[[%cell [%var 0] t]] ~[[0 [%const tag]]] %unknown]
22+ ['faced unknown case' ~[[%face %part good]] ~ %unknown]
23+ ['known atom face at head' ~[[%cell [%face %text t] [%const tag]]] ~ %bad]
24+ ['nested face at head' ~[[%cell [%face %outer [%face %inner t]] [%const tag]]] ~ %unknown]
25+ ==
26+ =/ failures=(list @t)
27+ %+ turn tests
28+ |= test=[name=@t cases=(list itype:jibb) sub=isub:jibb expected=?(%ok %bad %unknown)]
29+ =/ got=ifit:jibb (itype-fit-ctor-cases:jibb tag t cases.test sub.test 1)
30+ ?: =(expected.test -.got) ''
31+ (cat 3 name.test ': unexpected status')
32+ :: Null and other zero-valued literals have different source forms.
33+ =/ zero-tag=lit:jibb [%term %tas 0 '%$']
34+ =/ null-head=itype:jibb [%cell [%const [%null %n 0 '~']] t]
35+ =/ flag-head=itype:jibb [%cell [%const [%loobean %f 0 '%.y']] t]
36+ =/ term-head=itype:jibb [%cell [%const zero-tag] t]
37+ =/ variable-head=itype:jibb [%cell [%var 0] t]
38+ =/ zero-tests=(list [name=@t cases=(list itype:jibb) sub=isub:jibb expected=?(%ok %bad %unknown)])
39+ :~ ['null head' ~[null-head] ~ %ok]
40+ ['loobean zero head' ~[flag-head] ~ %ok]
41+ ['matching term zero head' ~[term-head] ~ %ok]
42+ ['unknown zero head' ~[variable-head] ~ %unknown]
43+ ['bound unknown zero head' ~[variable-head] ~[[0 [%const zero-tag]]] %unknown]
44+ ['unknown competitor' ~[null-head variable-head] ~ %unknown]
45+ ['loobean competitor' ~[term-head flag-head] ~ %unknown]
46+ ==
47+ =/ zero-failures=(list @t)
48+ %+ turn zero-tests
49+ |= test=[name=@t cases=(list itype:jibb) sub=isub:jibb expected=?(%ok %bad %unknown)]
50+ =/ got=ifit:jibb (itype-fit-ctor-cases:jibb zero-tag t cases.test sub.test 1)
51+ ?: =(expected.test -.got) ''
52+ (cat 3 name.test ': unexpected status')
53+ =/ failures (skim (weld failures zero-failures) |=(x=@t !=(x '')))
54+ (turn failures trip)
55+++ payload-candidates-errors
56+ ^- (list tape)
57+ =/ tag=lit:jibb [%term %tas %one '%one']
58+ =/ c=itype:jibb [%atom %t]
59+ =/ p=itype:jibb [%atom %p]
60+ =/ ud=itype:jibb [%atom %ud]
61+ =/ good=itype:jibb [%cell [%const tag] c]
62+ =/ other=itype:jibb [%cell [%const tag] p]
63+ =/ unknown=itype:jibb [%cell [%const tag] [%var 0]]
64+ =/ tests=(list [label=@t sample=itype:jibb cases=(list itype:jibb) want=?(%ok %bad %unknown)])
65+ :~ ['one fit' c ~[other good] %ok]
66+ ['one fit reversed' c ~[good other] %ok]
67+ ['second fit' p ~[good other] %ok]
68+ ['none fit' ud ~[good other] %bad]
69+ ['two fit' c ~[good good] %unknown]
70+ ['unknown rival' c ~[good unknown] %unknown]
71+ ['unknown rival first' c ~[unknown good] %unknown]
72+ ==
73+ =/ errors=(list @t)
74+ %+ turn tests
75+ |= test=[label=@t sample=itype:jibb cases=(list itype:jibb) want=?(%ok %bad %unknown)]
76+ =/ got=ifit:jibb (itype-fit-ctor-cases:jibb tag sample.test cases.test ~ 1)
77+ ?: =(want.test -.got) ''
78+ (cat 3 label.test ': unexpected status')
79+ =/ errors (skim errors |=(x=@t !=(x '')))
80+ (turn errors trip)
81+++ flag-fit-errors
82+ ^- (list tape)
83+ =/ flag=itype:jibb [%flag ~]
84+ =/ f=itype:jibb [%atom %f]
85+ =/ yes=itype:jibb [%const [%loobean %f 0 '%.y']]
86+ =/ tests=(list [label=@t actual=itype:jibb expected=itype:jibb sub=isub:jibb want=?(%ok %bad %unknown)])
87+ :~ ['flag to f' flag f ~ %unknown]
88+ ['bound flag to f' [%var 0] f ~[[0 flag]] %unknown]
89+ ['flag to bound f' flag [%var 0] ~[[0 f]] %unknown]
90+ ['singleton to f' yes f ~ %unknown]
91+ ['singleton to any' yes [%any-atom ~] ~ %ok]
92+ ['singleton to flag' yes flag ~ %ok]
93+ ['singleton to tas' yes [%atom %tas] ~ %bad]
94+ ==
95+ =/ errors=(list @t)
96+ %+ turn tests
97+ |= test=[label=@t actual=itype:jibb expected=itype:jibb sub=isub:jibb want=?(%ok %bad %unknown)]
98+ =/ got=ifit:jibb (itype-fit:jibb actual.test expected.test sub.test 1)
99+ ?: =(want.test -.got) ''
100+ (cat 3 label.test ': unexpected status')
101+ =/ errors (skim errors |=(x=@t !=(x '')))
102+ (turn errors trip)
103+++ singleton-union-errors
104+ ^- (list tape)
105+ =/ nil=itype:jibb [%const [%null %n 0 '~']]
106+ =/ yes=itype:jibb [%const [%loobean %f 0 '%.y']]
107+ =/ cell=itype:jibb [%cell nil [%atom %t]]
108+ =/ tests=(list [name=@t typ=itype:jibb expect=?])
109+ :~ ['literal and cell' [%union ~[nil cell] ~ ~ ~] &]
110+ ['duplicate same-noun literals' [%union ~[nil yes] ~ ~ ~] |]
111+ ['variable competitor' [%union ~[nil [%var 0]] ~ ~ ~] |]
112+ ['faced competitor' [%union ~[nil [%face %other cell]] ~ ~ ~] |]
113+ ['collection competitor' [%union ~[nil [%collection %list ~[[%atom %t]]]] ~ ~ ~] |]
114+ ['variable root' [%var 0] |]
115+ ==
116+ =/ errs=(list @t)
117+ %+ turn tests
118+ |= test=[name=@t typ=itype:jibb expect=?]
119+ ?: =(expect.test (explicit-singleton-in-union:jibb typ.test 0)) ''
120+ (cat 3 name.test ': incorrect singleton proof')
121+ (turn (skim errs |=(x=@t !=(x ''))) trip)
122+++ constructor-fit-guard-errors
123+ ^- (list tape)
124+ (weld constructor-base-errors (weld payload-candidates-errors (weld flag-fit-errors singleton-union-errors)))
125+++ test-constructor-fit-guards
126+ ^- tang
127+ (turn constructor-fit-guard-errors |=(reason=tape leaf+reason))
128+--
tests/lib/jibb-sub-guards.hoonnew file+37
@@ -0,0 +1,37 @@
1+:: Source-backed sub retains the public ask and depends on its actual source.
2+/+ jibb
3+/* public %jibb /lib/jibb/prelude/jibb
4+/* internal %jibb /lib/jibb/internal/jibb
5+|%
6+++ sub-guard-errors
7+ ^- (list tape)
8+ =/ prep=(unit iprelude:jibb) (prepare-prelude-with-internal:jibb public internal)
9+ ?~ prep ~["real prelude did not prepare"]
10+ ?~ (find-jibb-mold:jibb %sub iface.u.prep) ~["sub is unavailable in real prelude"]
11+ =/ intro=@t '/= internal /lib/jibb/internal\0a'
12+ =/ list-src=@t '+$ list |$ [A]\0a ~\0a [i=A t=(list A)]\0a'
13+ =/ unit-src=@t '+$ unit |$ [A]\0a ~\0a [~ u=A]\0a'
14+ =/ ask-src=@t '+$ ask |$ [M] (ask.internal M)\0a'
15+ =/ path-src=@t '+$ knot @ta\0a+$ path (list knot)\0a'
16+ =/ sub-src=@t '+$ sub |$ [M]\0a [%watch a=(ask M)]\0a [%every gap=@dr reply=$-(@da M)]\0a [%url reply=$-(path M)]\0a'
17+ =/ cases=(list [label=@t src=@t want=?])
18+ :~ ['minimal' (rap 3 ~[intro list-src unit-src ask-src path-src sub-src]) &]
19+ ['missing ask' (rap 3 ~[intro list-src unit-src path-src sub-src]) |]
20+ ['missing list' (rap 3 ~[intro unit-src ask-src path-src sub-src]) |]
21+ ['missing unit' (rap 3 ~[intro list-src ask-src path-src sub-src]) |]
22+ ['missing path' (rap 3 ~[intro list-src unit-src ask-src sub-src]) |]
23+ ['altered list' (rap 3 ~[intro '+$ list |$ [A] ~\0a' unit-src ask-src path-src sub-src]) |]
24+ ['valid alternate path' (rap 3 ~[intro list-src unit-src ask-src '+$ path @t\0a' sub-src]) &]
25+ ==
26+ =/ failures=(list @t)
27+ %+ turn cases
28+ |= c=[label=@t src=@t want=?]
29+ =/ p=(unit iprelude:jibb) (prepare-prelude-with-internal:jibb src.c internal)
30+ =/ present=? ?~(p | ?=(^ (find-jibb-mold:jibb %sub iface.u.p)))
31+ ?: =(want.c present) ''
32+ (cat 3 label.c ': unexpected availability')
33+ (turn (skim failures |=(x=@t !=(x ''))) trip)
34+++ test-sub-guards
35+ ^- tang
36+ (turn sub-guard-errors |=(reason=tape leaf+reason))
37+--
tests/lib/jibb.hoon+1258−1216
@@ -1374,1002 +1374,1030 @@
1374/* tok-418 %txt /tests/golden/types-cell-pattern-tail/tokens/txt
1374/* tok-418 %txt /tests/golden/types-cell-pattern-tail/tokens/txt
1375/* tre-418 %txt /tests/golden/types-cell-pattern-tail/tree/txt
1375/* tre-418 %txt /tests/golden/types-cell-pattern-tail/tree/txt
1376/* typ-418 %txt /tests/golden/types-cell-pattern-tail/types/txt
1376/* typ-418 %txt /tests/golden/types-cell-pattern-tail/types/txt
1377−/* src-419 %jibb /tests/golden/types-deferred-call-context/source/jibb
1377+/* src-419 %jibb /tests/golden/types-constructor-context/source/jibb
1378−/* tok-419 %txt /tests/golden/types-deferred-call-context/tokens/txt
1378+/* tok-419 %txt /tests/golden/types-constructor-context/tokens/txt
1379−/* tre-419 %txt /tests/golden/types-deferred-call-context/tree/txt
1379+/* tre-419 %txt /tests/golden/types-constructor-context/tree/txt
1380−/* typ-419 %txt /tests/golden/types-deferred-call-context/types/txt
1380+/* typ-419 %txt /tests/golden/types-constructor-context/types/txt
1381−/* src-420 %jibb /tests/golden/types-flag-branch-context/source/jibb
1381+/* src-420 %jibb /tests/golden/types-deferred-call-context/source/jibb
1382−/* tok-420 %txt /tests/golden/types-flag-branch-context/tokens/txt
1382+/* tok-420 %txt /tests/golden/types-deferred-call-context/tokens/txt
1383−/* tre-420 %txt /tests/golden/types-flag-branch-context/tree/txt
1383+/* tre-420 %txt /tests/golden/types-deferred-call-context/tree/txt
1384−/* typ-420 %txt /tests/golden/types-flag-branch-context/types/txt
1384+/* typ-420 %txt /tests/golden/types-deferred-call-context/types/txt
1385−/* src-421 %jibb /tests/golden/types-generic-arity/source/jibb
1385+/* src-421 %jibb /tests/golden/types-equal-head-disjoint/source/jibb
1386−/* tok-421 %txt /tests/golden/types-generic-arity/tokens/txt
1386+/* tok-421 %txt /tests/golden/types-equal-head-disjoint/tokens/txt
1387−/* tre-421 %txt /tests/golden/types-generic-arity/tree/txt
1387+/* tre-421 %txt /tests/golden/types-equal-head-disjoint/tree/txt
1388−/* typ-421 %txt /tests/golden/types-generic-arity/types/txt
1388+/* typ-421 %txt /tests/golden/types-equal-head-disjoint/types/txt
1389−/* src-422 %jibb /tests/golden/types-generic-face-inference/source/jibb
1389+/* src-422 %jibb /tests/golden/types-flag-branch-context/source/jibb
1390−/* tok-422 %txt /tests/golden/types-generic-face-inference/tokens/txt
1390+/* tok-422 %txt /tests/golden/types-flag-branch-context/tokens/txt
1391−/* tre-422 %txt /tests/golden/types-generic-face-inference/tree/txt
1391+/* tre-422 %txt /tests/golden/types-flag-branch-context/tree/txt
1392−/* typ-422 %txt /tests/golden/types-generic-face-inference/types/txt
1392+/* typ-422 %txt /tests/golden/types-flag-branch-context/types/txt
1393−/* src-423 %jibb /tests/golden/types-generic-gates/source/jibb
1393+/* src-423 %jibb /tests/golden/types-generic-arity/source/jibb
1394−/* tok-423 %txt /tests/golden/types-generic-gates/tokens/txt
1394+/* tok-423 %txt /tests/golden/types-generic-arity/tokens/txt
1395−/* tre-423 %txt /tests/golden/types-generic-gates/tree/txt
1395+/* tre-423 %txt /tests/golden/types-generic-arity/tree/txt
1396−/* typ-423 %txt /tests/golden/types-generic-gates/types/txt
1396+/* typ-423 %txt /tests/golden/types-generic-arity/types/txt
1397−/* src-424 %jibb /tests/golden/types-generic-import-reverse/source/jibb
1397+/* src-424 %jibb /tests/golden/types-generic-face-inference/source/jibb
1398−/* tok-424 %txt /tests/golden/types-generic-import-reverse/tokens/txt
1398+/* tok-424 %txt /tests/golden/types-generic-face-inference/tokens/txt
1399−/* tre-424 %txt /tests/golden/types-generic-import-reverse/tree/txt
1399+/* tre-424 %txt /tests/golden/types-generic-face-inference/tree/txt
1400−/* mod-424-1 %jibb /tests/golden/types-generic-import-reverse/modules/ui/lib/jibb
1400+/* typ-424 %txt /tests/golden/types-generic-face-inference/types/txt
1401−/* typ-424 %txt /tests/golden/types-generic-import-reverse/types/txt
1401+/* src-425 %jibb /tests/golden/types-generic-gates/source/jibb
1402−/* mtre-424 %txt /tests/golden/types-generic-import-reverse/module-trees/txt
1402+/* tok-425 %txt /tests/golden/types-generic-gates/tokens/txt
1403−/* src-425 %jibb /tests/golden/types-generic-lexical-alias/source/jibb
1403+/* tre-425 %txt /tests/golden/types-generic-gates/tree/txt
1404−/* tok-425 %txt /tests/golden/types-generic-lexical-alias/tokens/txt
1404+/* typ-425 %txt /tests/golden/types-generic-gates/types/txt
1405−/* tre-425 %txt /tests/golden/types-generic-lexical-alias/tree/txt
1405+/* src-426 %jibb /tests/golden/types-generic-import-reverse/source/jibb
1406−/* typ-425 %txt /tests/golden/types-generic-lexical-alias/types/txt
1406+/* tok-426 %txt /tests/golden/types-generic-import-reverse/tokens/txt
1407−/* src-426 %jibb /tests/golden/types-generic-local-parameter/source/jibb
1407+/* tre-426 %txt /tests/golden/types-generic-import-reverse/tree/txt
1408−/* tok-426 %txt /tests/golden/types-generic-local-parameter/tokens/txt
1408+/* mod-426-1 %jibb /tests/golden/types-generic-import-reverse/modules/ui/lib/jibb
1409−/* tre-426 %txt /tests/golden/types-generic-local-parameter/tree/txt
1409+/* typ-426 %txt /tests/golden/types-generic-import-reverse/types/txt
1410−/* typ-426 %txt /tests/golden/types-generic-local-parameter/types/txt
1410+/* mtre-426 %txt /tests/golden/types-generic-import-reverse/module-trees/txt
1411−/* src-427 %jibb /tests/golden/types-generic-local-scope/source/jibb
1411+/* src-427 %jibb /tests/golden/types-generic-lexical-alias/source/jibb
1412−/* tok-427 %txt /tests/golden/types-generic-local-scope/tokens/txt
1412+/* tok-427 %txt /tests/golden/types-generic-lexical-alias/tokens/txt
1413−/* tre-427 %txt /tests/golden/types-generic-local-scope/tree/txt
1413+/* tre-427 %txt /tests/golden/types-generic-lexical-alias/tree/txt
1414−/* typ-427 %txt /tests/golden/types-generic-local-scope/types/txt
1414+/* typ-427 %txt /tests/golden/types-generic-lexical-alias/types/txt
1415−/* src-428 %jibb /tests/golden/types-generic-module/source/jibb
1415+/* src-428 %jibb /tests/golden/types-generic-local-parameter/source/jibb
1416−/* tok-428 %txt /tests/golden/types-generic-module/tokens/txt
1416+/* tok-428 %txt /tests/golden/types-generic-local-parameter/tokens/txt
1417−/* tre-428 %txt /tests/golden/types-generic-module/tree/txt
1417+/* tre-428 %txt /tests/golden/types-generic-local-parameter/tree/txt
1418−/* mod-428-1 %jibb /tests/golden/types-generic-module/modules/ui/lib/jibb
1418+/* typ-428 %txt /tests/golden/types-generic-local-parameter/types/txt
1419−/* typ-428 %txt /tests/golden/types-generic-module/types/txt
1419+/* src-429 %jibb /tests/golden/types-generic-local-scope/source/jibb
1420−/* mtre-428 %txt /tests/golden/types-generic-module/module-trees/txt
1420+/* tok-429 %txt /tests/golden/types-generic-local-scope/tokens/txt
1421−/* src-429 %jibb /tests/golden/types-generic-nested-scope/source/jibb
1421+/* tre-429 %txt /tests/golden/types-generic-local-scope/tree/txt
1422−/* tok-429 %txt /tests/golden/types-generic-nested-scope/tokens/txt
1422+/* typ-429 %txt /tests/golden/types-generic-local-scope/types/txt
1423−/* tre-429 %txt /tests/golden/types-generic-nested-scope/tree/txt
1423+/* src-430 %jibb /tests/golden/types-generic-module/source/jibb
1424−/* typ-429 %txt /tests/golden/types-generic-nested-scope/types/txt
1424+/* tok-430 %txt /tests/golden/types-generic-module/tokens/txt
1425−/* src-430 %jibb /tests/golden/types-generic-parameters/source/jibb
1425+/* tre-430 %txt /tests/golden/types-generic-module/tree/txt
1426−/* tok-430 %txt /tests/golden/types-generic-parameters/tokens/txt
1426+/* mod-430-1 %jibb /tests/golden/types-generic-module/modules/ui/lib/jibb
1427−/* tre-430 %txt /tests/golden/types-generic-parameters/tree/txt
1427+/* typ-430 %txt /tests/golden/types-generic-module/types/txt
1428−/* typ-430 %txt /tests/golden/types-generic-parameters/types/txt
1428+/* mtre-430 %txt /tests/golden/types-generic-module/module-trees/txt
1429−/* src-431 %jibb /tests/golden/types-generic-record/source/jibb
1429+/* src-431 %jibb /tests/golden/types-generic-nested-scope/source/jibb
1430−/* tok-431 %txt /tests/golden/types-generic-record/tokens/txt
1430+/* tok-431 %txt /tests/golden/types-generic-nested-scope/tokens/txt
1431−/* tre-431 %txt /tests/golden/types-generic-record/tree/txt
1431+/* tre-431 %txt /tests/golden/types-generic-nested-scope/tree/txt
1432−/* typ-431 %txt /tests/golden/types-generic-record/types/txt
1432+/* typ-431 %txt /tests/golden/types-generic-nested-scope/types/txt
1433−/* src-432 %jibb /tests/golden/types-generic-recursive-union/source/jibb
1433+/* src-432 %jibb /tests/golden/types-generic-parameters/source/jibb
1434−/* tok-432 %txt /tests/golden/types-generic-recursive-union/tokens/txt
1434+/* tok-432 %txt /tests/golden/types-generic-parameters/tokens/txt
1435−/* tre-432 %txt /tests/golden/types-generic-recursive-union/tree/txt
1435+/* tre-432 %txt /tests/golden/types-generic-parameters/tree/txt
1436−/* typ-432 %txt /tests/golden/types-generic-recursive-union/types/txt
1436+/* typ-432 %txt /tests/golden/types-generic-parameters/types/txt
1437−/* src-433 %jibb /tests/golden/types-generic-repeated/source/jibb
1437+/* src-433 %jibb /tests/golden/types-generic-record/source/jibb
1438−/* tok-433 %txt /tests/golden/types-generic-repeated/tokens/txt
1438+/* tok-433 %txt /tests/golden/types-generic-record/tokens/txt
1439−/* tre-433 %txt /tests/golden/types-generic-repeated/tree/txt
1439+/* tre-433 %txt /tests/golden/types-generic-record/tree/txt
1440−/* typ-433 %txt /tests/golden/types-generic-repeated/types/txt
1440+/* typ-433 %txt /tests/golden/types-generic-record/types/txt
1441−/* src-434 %jibb /tests/golden/types-generic-union-alias/source/jibb
1441+/* src-434 %jibb /tests/golden/types-generic-recursive-union/source/jibb
1442−/* tok-434 %txt /tests/golden/types-generic-union-alias/tokens/txt
1442+/* tok-434 %txt /tests/golden/types-generic-recursive-union/tokens/txt
1443−/* tre-434 %txt /tests/golden/types-generic-union-alias/tree/txt
1443+/* tre-434 %txt /tests/golden/types-generic-recursive-union/tree/txt
1444−/* typ-434 %txt /tests/golden/types-generic-union-alias/types/txt
1444+/* typ-434 %txt /tests/golden/types-generic-recursive-union/types/txt
1445−/* src-435 %jibb /tests/golden/types-generic-union-alias-face/source/jibb
1445+/* src-435 %jibb /tests/golden/types-generic-repeated/source/jibb
1446−/* tok-435 %txt /tests/golden/types-generic-union-alias-face/tokens/txt
1446+/* tok-435 %txt /tests/golden/types-generic-repeated/tokens/txt
1447−/* tre-435 %txt /tests/golden/types-generic-union-alias-face/tree/txt
1447+/* tre-435 %txt /tests/golden/types-generic-repeated/tree/txt
1448−/* mod-435-1 %jibb /tests/golden/types-generic-union-alias-face/modules/ui/base/jibb
1448+/* typ-435 %txt /tests/golden/types-generic-repeated/types/txt
1449−/* typ-435 %txt /tests/golden/types-generic-union-alias-face/types/txt
1449+/* src-436 %jibb /tests/golden/types-generic-result-context/source/jibb
1450−/* mtre-435 %txt /tests/golden/types-generic-union-alias-face/module-trees/txt
1450+/* tok-436 %txt /tests/golden/types-generic-result-context/tokens/txt
1451−/* src-436 %jibb /tests/golden/types-generic-union-capitals/source/jibb
1451+/* tre-436 %txt /tests/golden/types-generic-result-context/tree/txt
1452−/* tok-436 %txt /tests/golden/types-generic-union-capitals/tokens/txt
1452+/* typ-436 %txt /tests/golden/types-generic-result-context/types/txt
1453−/* tre-436 %txt /tests/golden/types-generic-union-capitals/tree/txt
1453+/* src-437 %jibb /tests/golden/types-generic-union-alias/source/jibb
1454−/* typ-436 %txt /tests/golden/types-generic-union-capitals/types/txt
1454+/* tok-437 %txt /tests/golden/types-generic-union-alias/tokens/txt
1455−/* src-437 %jibb /tests/golden/types-generic-union-errors/source/jibb
1455+/* tre-437 %txt /tests/golden/types-generic-union-alias/tree/txt
1456−/* tok-437 %txt /tests/golden/types-generic-union-errors/tokens/txt
1456+/* typ-437 %txt /tests/golden/types-generic-union-alias/types/txt
1457−/* tre-437 %txt /tests/golden/types-generic-union-errors/tree/txt
1457+/* src-438 %jibb /tests/golden/types-generic-union-alias-face/source/jibb
1458−/* typ-437 %txt /tests/golden/types-generic-union-errors/types/txt
1458+/* tok-438 %txt /tests/golden/types-generic-union-alias-face/tokens/txt
1459−/* src-438 %jibb /tests/golden/types-generic-union-escaping/source/jibb
1459+/* tre-438 %txt /tests/golden/types-generic-union-alias-face/tree/txt
1460−/* tok-438 %txt /tests/golden/types-generic-union-escaping/tokens/txt
1460+/* mod-438-1 %jibb /tests/golden/types-generic-union-alias-face/modules/ui/base/jibb
1461−/* tre-438 %txt /tests/golden/types-generic-union-escaping/tree/txt
1461+/* typ-438 %txt /tests/golden/types-generic-union-alias-face/types/txt
1462−/* mod-438-1 %jibb /tests/golden/types-generic-union-escaping/modules/ui/base/jibb
1462+/* mtre-438 %txt /tests/golden/types-generic-union-alias-face/module-trees/txt
1463−/* mod-438-2 %jibb /tests/golden/types-generic-union-escaping/modules/ui/mid/jibb
1463+/* src-439 %jibb /tests/golden/types-generic-union-capitals/source/jibb
1464−/* typ-438 %txt /tests/golden/types-generic-union-escaping/types/txt
1464+/* tok-439 %txt /tests/golden/types-generic-union-capitals/tokens/txt
1465−/* mtre-438 %txt /tests/golden/types-generic-union-escaping/module-trees/txt
1465+/* tre-439 %txt /tests/golden/types-generic-union-capitals/tree/txt
1466−/* src-439 %jibb /tests/golden/types-generic-union-import/source/jibb
1466+/* typ-439 %txt /tests/golden/types-generic-union-capitals/types/txt
1467−/* tok-439 %txt /tests/golden/types-generic-union-import/tokens/txt
1467+/* src-440 %jibb /tests/golden/types-generic-union-errors/source/jibb
1468−/* tre-439 %txt /tests/golden/types-generic-union-import/tree/txt
1468+/* tok-440 %txt /tests/golden/types-generic-union-errors/tokens/txt
1469−/* mod-439-1 %jibb /tests/golden/types-generic-union-import/modules/ui/shared/jibb
1469+/* tre-440 %txt /tests/golden/types-generic-union-errors/tree/txt
1470−/* mod-439-2 %jibb /tests/golden/types-generic-union-import/modules/ui/twin/jibb
1470+/* typ-440 %txt /tests/golden/types-generic-union-errors/types/txt
1471−/* typ-439 %txt /tests/golden/types-generic-union-import/types/txt
1471+/* src-441 %jibb /tests/golden/types-generic-union-escaping/source/jibb
1472−/* mtre-439 %txt /tests/golden/types-generic-union-import/module-trees/txt
1472+/* tok-441 %txt /tests/golden/types-generic-union-escaping/tokens/txt
1473−/* src-440 %jibb /tests/golden/types-generic-union-local/source/jibb
1473+/* tre-441 %txt /tests/golden/types-generic-union-escaping/tree/txt
1474−/* tok-440 %txt /tests/golden/types-generic-union-local/tokens/txt
1474+/* mod-441-1 %jibb /tests/golden/types-generic-union-escaping/modules/ui/base/jibb
1475−/* tre-440 %txt /tests/golden/types-generic-union-local/tree/txt
1475+/* mod-441-2 %jibb /tests/golden/types-generic-union-escaping/modules/ui/mid/jibb
1476−/* typ-440 %txt /tests/golden/types-generic-union-local/types/txt
1476+/* typ-441 %txt /tests/golden/types-generic-union-escaping/types/txt
1477−/* src-441 %jibb /tests/golden/types-generic-union-transitive/source/jibb
1477+/* mtre-441 %txt /tests/golden/types-generic-union-escaping/module-trees/txt
1478−/* tok-441 %txt /tests/golden/types-generic-union-transitive/tokens/txt
1478+/* src-442 %jibb /tests/golden/types-generic-union-import/source/jibb
1479−/* tre-441 %txt /tests/golden/types-generic-union-transitive/tree/txt
1479+/* tok-442 %txt /tests/golden/types-generic-union-import/tokens/txt
1480−/* mod-441-1 %jibb /tests/golden/types-generic-union-transitive/modules/ui/base/jibb
1480+/* tre-442 %txt /tests/golden/types-generic-union-import/tree/txt
1481−/* mod-441-2 %jibb /tests/golden/types-generic-union-transitive/modules/ui/mid/jibb
1481+/* mod-442-1 %jibb /tests/golden/types-generic-union-import/modules/ui/shared/jibb
1482−/* typ-441 %txt /tests/golden/types-generic-union-transitive/types/txt
1482+/* mod-442-2 %jibb /tests/golden/types-generic-union-import/modules/ui/twin/jibb
1483−/* mtre-441 %txt /tests/golden/types-generic-union-transitive/module-trees/txt
1483+/* typ-442 %txt /tests/golden/types-generic-union-import/types/txt
1484−/* src-442 %jibb /tests/golden/types-hole-concrete/source/jibb
1484+/* mtre-442 %txt /tests/golden/types-generic-union-import/module-trees/txt
1485−/* tok-442 %txt /tests/golden/types-hole-concrete/tokens/txt
1485+/* src-443 %jibb /tests/golden/types-generic-union-local/source/jibb
1486−/* tre-442 %txt /tests/golden/types-hole-concrete/tree/txt
1486+/* tok-443 %txt /tests/golden/types-generic-union-local/tokens/txt
1487−/* typ-442 %txt /tests/golden/types-hole-concrete/types/txt
1487+/* tre-443 %txt /tests/golden/types-generic-union-local/tree/txt
1488−/* src-443 %jibb /tests/golden/types-hole-generic-mold/source/jibb
1488+/* typ-443 %txt /tests/golden/types-generic-union-local/types/txt
1489−/* tok-443 %txt /tests/golden/types-hole-generic-mold/tokens/txt
1489+/* src-444 %jibb /tests/golden/types-generic-union-transitive/source/jibb
1490−/* tre-443 %txt /tests/golden/types-hole-generic-mold/tree/txt
1490+/* tok-444 %txt /tests/golden/types-generic-union-transitive/tokens/txt
1491−/* typ-443 %txt /tests/golden/types-hole-generic-mold/types/txt
1491+/* tre-444 %txt /tests/golden/types-generic-union-transitive/tree/txt
1492−/* src-444 %jibb /tests/golden/types-hole-local-boundary/source/jibb
1492+/* mod-444-1 %jibb /tests/golden/types-generic-union-transitive/modules/ui/base/jibb
1493−/* tok-444 %txt /tests/golden/types-hole-local-boundary/tokens/txt
1493+/* mod-444-2 %jibb /tests/golden/types-generic-union-transitive/modules/ui/mid/jibb
1494−/* tre-444 %txt /tests/golden/types-hole-local-boundary/tree/txt
1494+/* typ-444 %txt /tests/golden/types-generic-union-transitive/types/txt
1495−/* typ-444 %txt /tests/golden/types-hole-local-boundary/types/txt
1495+/* mtre-444 %txt /tests/golden/types-generic-union-transitive/module-trees/txt
1496−/* src-445 %jibb /tests/golden/types-hole-module-boundary/source/jibb
1496+/* src-445 %jibb /tests/golden/types-hole-concrete/source/jibb
1497−/* tok-445 %txt /tests/golden/types-hole-module-boundary/tokens/txt
1497+/* tok-445 %txt /tests/golden/types-hole-concrete/tokens/txt
1498−/* tre-445 %txt /tests/golden/types-hole-module-boundary/tree/txt
1498+/* tre-445 %txt /tests/golden/types-hole-concrete/tree/txt
1499−/* mod-445-1 %jibb /tests/golden/types-hole-module-boundary/modules/ui/lib/jibb
1499+/* typ-445 %txt /tests/golden/types-hole-concrete/types/txt
1500−/* typ-445 %txt /tests/golden/types-hole-module-boundary/types/txt
1500+/* src-446 %jibb /tests/golden/types-hole-generic-mold/source/jibb
1501−/* mtre-445 %txt /tests/golden/types-hole-module-boundary/module-trees/txt
1501+/* tok-446 %txt /tests/golden/types-hole-generic-mold/tokens/txt
1502−/* src-446 %jibb /tests/golden/types-hole-named-complex/source/jibb
1502+/* tre-446 %txt /tests/golden/types-hole-generic-mold/tree/txt
1503−/* tok-446 %txt /tests/golden/types-hole-named-complex/tokens/txt
1503+/* typ-446 %txt /tests/golden/types-hole-generic-mold/types/txt
1504−/* tre-446 %txt /tests/golden/types-hole-named-complex/tree/txt
1504+/* src-447 %jibb /tests/golden/types-hole-local-boundary/source/jibb
1505−/* typ-446 %txt /tests/golden/types-hole-named-complex/types/txt
1505+/* tok-447 %txt /tests/golden/types-hole-local-boundary/tokens/txt
1506−/* src-447 %jibb /tests/golden/types-hole-numeric-capture/source/jibb
1506+/* tre-447 %txt /tests/golden/types-hole-local-boundary/tree/txt
1507−/* tok-447 %txt /tests/golden/types-hole-numeric-capture/tokens/txt
1507+/* typ-447 %txt /tests/golden/types-hole-local-boundary/types/txt
1508−/* tre-447 %txt /tests/golden/types-hole-numeric-capture/tree/txt
1508+/* src-448 %jibb /tests/golden/types-hole-module-boundary/source/jibb
1509−/* typ-447 %txt /tests/golden/types-hole-numeric-capture/types/txt
1509+/* tok-448 %txt /tests/golden/types-hole-module-boundary/tokens/txt
1510−/* src-448 %jibb /tests/golden/types-hole-unbound-mold/source/jibb
1510+/* tre-448 %txt /tests/golden/types-hole-module-boundary/tree/txt
1511−/* tok-448 %txt /tests/golden/types-hole-unbound-mold/tokens/txt
1511+/* mod-448-1 %jibb /tests/golden/types-hole-module-boundary/modules/ui/lib/jibb
1512−/* tre-448 %txt /tests/golden/types-hole-unbound-mold/tree/txt
1512+/* typ-448 %txt /tests/golden/types-hole-module-boundary/types/txt
1513−/* typ-448 %txt /tests/golden/types-hole-unbound-mold/types/txt
1513+/* mtre-448 %txt /tests/golden/types-hole-module-boundary/module-trees/txt
1514−/* src-449 %jibb /tests/golden/types-hole-unsupported/source/jibb
1514+/* src-449 %jibb /tests/golden/types-hole-named-complex/source/jibb
1515−/* tok-449 %txt /tests/golden/types-hole-unsupported/tokens/txt
1515+/* tok-449 %txt /tests/golden/types-hole-named-complex/tokens/txt
1516−/* tre-449 %txt /tests/golden/types-hole-unsupported/tree/txt
1516+/* tre-449 %txt /tests/golden/types-hole-named-complex/tree/txt
1517−/* typ-449 %txt /tests/golden/types-hole-unsupported/types/txt
1517+/* typ-449 %txt /tests/golden/types-hole-named-complex/types/txt
1518−/* src-450 %jibb /tests/golden/types-hole-user-generic/source/jibb
1518+/* src-450 %jibb /tests/golden/types-hole-numeric-capture/source/jibb
1519−/* tok-450 %txt /tests/golden/types-hole-user-generic/tokens/txt
1519+/* tok-450 %txt /tests/golden/types-hole-numeric-capture/tokens/txt
1520−/* tre-450 %txt /tests/golden/types-hole-user-generic/tree/txt
1520+/* tre-450 %txt /tests/golden/types-hole-numeric-capture/tree/txt
1521−/* typ-450 %txt /tests/golden/types-hole-user-generic/types/txt
1521+/* typ-450 %txt /tests/golden/types-hole-numeric-capture/types/txt
1522−/* src-451 %jibb /tests/golden/types-hole-user-named/source/jibb
1522+/* src-451 %jibb /tests/golden/types-hole-unbound-mold/source/jibb
1523−/* tok-451 %txt /tests/golden/types-hole-user-named/tokens/txt
1523+/* tok-451 %txt /tests/golden/types-hole-unbound-mold/tokens/txt
1524−/* tre-451 %txt /tests/golden/types-hole-user-named/tree/txt
1524+/* tre-451 %txt /tests/golden/types-hole-unbound-mold/tree/txt
1525−/* typ-451 %txt /tests/golden/types-hole-user-named/types/txt
1525+/* typ-451 %txt /tests/golden/types-hole-unbound-mold/types/txt
1526−/* src-452 %jibb /tests/golden/types-hole-user-value/source/jibb
1526+/* src-452 %jibb /tests/golden/types-hole-unsupported/source/jibb
1527−/* tok-452 %txt /tests/golden/types-hole-user-value/tokens/txt
1527+/* tok-452 %txt /tests/golden/types-hole-unsupported/tokens/txt
1528−/* tre-452 %txt /tests/golden/types-hole-user-value/tree/txt
1528+/* tre-452 %txt /tests/golden/types-hole-unsupported/tree/txt
1529−/* typ-452 %txt /tests/golden/types-hole-user-value/types/txt
1529+/* typ-452 %txt /tests/golden/types-hole-unsupported/types/txt
1530−/* src-453 %jibb /tests/golden/types-import-duplicate-mark/source/jibb
1530+/* src-453 %jibb /tests/golden/types-hole-user-generic/source/jibb
1531−/* tok-453 %txt /tests/golden/types-import-duplicate-mark/tokens/txt
1531+/* tok-453 %txt /tests/golden/types-hole-user-generic/tokens/txt
1532−/* tre-453 %txt /tests/golden/types-import-duplicate-mark/tree/txt
1532+/* tre-453 %txt /tests/golden/types-hole-user-generic/tree/txt
1533−/* typ-453 %txt /tests/golden/types-import-duplicate-mark/types/txt
1533+/* typ-453 %txt /tests/golden/types-hole-user-generic/types/txt
1534−/* mark-453-1 %txt /tests/golden/types-import-duplicate-mark/mar/duplicate/txt
1534+/* src-454 %jibb /tests/golden/types-hole-user-named/source/jibb
1535−/* src-454 %jibb /tests/golden/types-import-duplicate-sur/source/jibb
1535+/* tok-454 %txt /tests/golden/types-hole-user-named/tokens/txt
1536−/* tok-454 %txt /tests/golden/types-import-duplicate-sur/tokens/txt
1536+/* tre-454 %txt /tests/golden/types-hole-user-named/tree/txt
1537−/* tre-454 %txt /tests/golden/types-import-duplicate-sur/tree/txt
1537+/* typ-454 %txt /tests/golden/types-hole-user-named/types/txt
1538−/* typ-454 %txt /tests/golden/types-import-duplicate-sur/types/txt
1538+/* src-455 %jibb /tests/golden/types-hole-user-value/source/jibb
1539−/* imp-454-1 %txt /tests/golden/types-import-duplicate-sur/sur/fixture/txt
1539+/* tok-455 %txt /tests/golden/types-hole-user-value/tokens/txt
1540−/* imp-454-2 %txt /tests/golden/types-import-duplicate-sur/sur/fixture/txt
1540+/* tre-455 %txt /tests/golden/types-hole-user-value/tree/txt
1541−/* imp-454-3 %txt /tests/golden/types-import-duplicate-sur/sur/fixture/txt
1541+/* typ-455 %txt /tests/golden/types-hole-user-value/types/txt
1542−/* src-455 %jibb /tests/golden/types-import-hoon-flags/source/jibb
1542+/* src-456 %jibb /tests/golden/types-import-duplicate-mark/source/jibb
1543−/* tok-455 %txt /tests/golden/types-import-hoon-flags/tokens/txt
1543+/* tok-456 %txt /tests/golden/types-import-duplicate-mark/tokens/txt
1544−/* tre-455 %txt /tests/golden/types-import-hoon-flags/tree/txt
1544+/* tre-456 %txt /tests/golden/types-import-duplicate-mark/tree/txt
1545−/* typ-455 %txt /tests/golden/types-import-hoon-flags/types/txt
1545+/* typ-456 %txt /tests/golden/types-import-duplicate-mark/types/txt
1546−/* imp-455-1 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1546+/* mark-456-1 %txt /tests/golden/types-import-duplicate-mark/mar/duplicate/txt
1547−/* imp-455-2 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1547+/* src-457 %jibb /tests/golden/types-import-duplicate-sur/source/jibb
1548−/* imp-455-3 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1548+/* tok-457 %txt /tests/golden/types-import-duplicate-sur/tokens/txt
1549−/* imp-455-4 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1549+/* tre-457 %txt /tests/golden/types-import-duplicate-sur/tree/txt
1550−/* src-456 %jibb /tests/golden/types-import-hoon-noun/source/jibb
1550+/* typ-457 %txt /tests/golden/types-import-duplicate-sur/types/txt
1551−/* tok-456 %txt /tests/golden/types-import-hoon-noun/tokens/txt
1551+/* imp-457-1 %txt /tests/golden/types-import-duplicate-sur/sur/fixture/txt
1552−/* tre-456 %txt /tests/golden/types-import-hoon-noun/tree/txt
1552+/* imp-457-2 %txt /tests/golden/types-import-duplicate-sur/sur/fixture/txt
1553−/* typ-456 %txt /tests/golden/types-import-hoon-noun/types/txt
1553+/* imp-457-3 %txt /tests/golden/types-import-duplicate-sur/sur/fixture/txt
1554−/* imp-456-1 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1554+/* src-458 %jibb /tests/golden/types-import-hoon-flags/source/jibb
1555−/* imp-456-2 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1555+/* tok-458 %txt /tests/golden/types-import-hoon-flags/tokens/txt
1556−/* imp-456-3 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1556+/* tre-458 %txt /tests/golden/types-import-hoon-flags/tree/txt
1557−/* imp-456-4 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1557+/* typ-458 %txt /tests/golden/types-import-hoon-flags/types/txt
1558−/* src-457 %jibb /tests/golden/types-import-mark/source/jibb
1558+/* imp-458-1 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1559−/* tok-457 %txt /tests/golden/types-import-mark/tokens/txt
1559+/* imp-458-2 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1560−/* tre-457 %txt /tests/golden/types-import-mark/tree/txt
1560+/* imp-458-3 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1561−/* typ-457 %txt /tests/golden/types-import-mark/types/txt
1561+/* imp-458-4 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1562−/* imp-457-1 %txt /tests/golden/types-import-mark/sur/fixture/txt
1562+/* src-459 %jibb /tests/golden/types-import-hoon-noun/source/jibb
1563−/* mark-457-1 %txt /tests/golden/types-import-mark/mar/label/txt
1563+/* tok-459 %txt /tests/golden/types-import-hoon-noun/tokens/txt
1564−/* src-458 %jibb /tests/golden/types-import-mark-record/source/jibb
1564+/* tre-459 %txt /tests/golden/types-import-hoon-noun/tree/txt
1565−/* tok-458 %txt /tests/golden/types-import-mark-record/tokens/txt
1565+/* typ-459 %txt /tests/golden/types-import-hoon-noun/types/txt
1566−/* tre-458 %txt /tests/golden/types-import-mark-record/tree/txt
1566+/* imp-459-1 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1567−/* typ-458 %txt /tests/golden/types-import-mark-record/types/txt
1567+/* imp-459-2 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1568−/* mark-458-1 %txt /tests/golden/types-import-mark-record/mar/note/txt
1568+/* imp-459-3 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1569−/* mark-458-2 %txt /tests/golden/types-import-mark-record/mar/choice/txt
1569+/* imp-459-4 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1570−/* src-459 %jibb /tests/golden/types-import-missing-mold/source/jibb
1570+/* src-460 %jibb /tests/golden/types-import-mark/source/jibb
1571−/* tok-459 %txt /tests/golden/types-import-missing-mold/tokens/txt
1571+/* tok-460 %txt /tests/golden/types-import-mark/tokens/txt
1572−/* tre-459 %txt /tests/golden/types-import-missing-mold/tree/txt
1572+/* tre-460 %txt /tests/golden/types-import-mark/tree/txt
1573−/* typ-459 %txt /tests/golden/types-import-missing-mold/types/txt
1573+/* typ-460 %txt /tests/golden/types-import-mark/types/txt
1574−/* imp-459-1 %txt /tests/golden/types-import-missing-mold/sur/fixture/txt
1574+/* imp-460-1 %txt /tests/golden/types-import-mark/sur/fixture/txt
1575−/* src-460 %jibb /tests/golden/types-import-sur/source/jibb
1575+/* mark-460-1 %txt /tests/golden/types-import-mark/mar/label/txt
1576−/* tok-460 %txt /tests/golden/types-import-sur/tokens/txt
1576+/* src-461 %jibb /tests/golden/types-import-mark-record/source/jibb
1577−/* tre-460 %txt /tests/golden/types-import-sur/tree/txt
1577+/* tok-461 %txt /tests/golden/types-import-mark-record/tokens/txt
1578−/* typ-460 %txt /tests/golden/types-import-sur/types/txt
1578+/* tre-461 %txt /tests/golden/types-import-mark-record/tree/txt
1579−/* imp-460-1 %txt /tests/golden/types-import-sur/sur/fixture/txt
1579+/* typ-461 %txt /tests/golden/types-import-mark-record/types/txt
1580−/* imp-460-2 %txt /tests/golden/types-import-sur/sur/fixture/txt
1580+/* mark-461-1 %txt /tests/golden/types-import-mark-record/mar/note/txt
1581−/* src-461 %jibb /tests/golden/types-import-sur-record-graph/source/jibb
1581+/* mark-461-2 %txt /tests/golden/types-import-mark-record/mar/choice/txt
1582−/* tok-461 %txt /tests/golden/types-import-sur-record-graph/tokens/txt
1582+/* src-462 %jibb /tests/golden/types-import-missing-mold/source/jibb
1583−/* tre-461 %txt /tests/golden/types-import-sur-record-graph/tree/txt
1583+/* tok-462 %txt /tests/golden/types-import-missing-mold/tokens/txt
1584−/* mod-461-1 %jibb /tests/golden/types-import-sur-record-graph/modules/ui/lib/jibb
1584+/* tre-462 %txt /tests/golden/types-import-missing-mold/tree/txt
1585−/* typ-461 %txt /tests/golden/types-import-sur-record-graph/types/txt
1585+/* typ-462 %txt /tests/golden/types-import-missing-mold/types/txt
1586−/* imp-461-1 %txt /tests/golden/types-import-sur-record-graph/sur/fixture/txt
1586+/* imp-462-1 %txt /tests/golden/types-import-missing-mold/sur/fixture/txt
1587−/* mtre-461 %txt /tests/golden/types-import-sur-record-graph/module-trees/txt
1587+/* src-463 %jibb /tests/golden/types-import-sur/source/jibb
1588−/* src-462 %jibb /tests/golden/types-import-tlon-notes/source/jibb
1588+/* tok-463 %txt /tests/golden/types-import-sur/tokens/txt
1589−/* tok-462 %txt /tests/golden/types-import-tlon-notes/tokens/txt
1589+/* tre-463 %txt /tests/golden/types-import-sur/tree/txt
1590−/* tre-462 %txt /tests/golden/types-import-tlon-notes/tree/txt
1590+/* typ-463 %txt /tests/golden/types-import-sur/types/txt
1591−/* typ-462 %txt /tests/golden/types-import-tlon-notes/types/txt
1591+/* imp-463-1 %txt /tests/golden/types-import-sur/sur/fixture/txt
1592−/* imp-462-1 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1592+/* imp-463-2 %txt /tests/golden/types-import-sur/sur/fixture/txt
1593−/* imp-462-2 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1593+/* src-464 %jibb /tests/golden/types-import-sur-record-graph/source/jibb
1594−/* imp-462-3 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1594+/* tok-464 %txt /tests/golden/types-import-sur-record-graph/tokens/txt
1595−/* imp-462-4 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1595+/* tre-464 %txt /tests/golden/types-import-sur-record-graph/tree/txt
1596−/* imp-462-5 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1596+/* mod-464-1 %jibb /tests/golden/types-import-sur-record-graph/modules/ui/lib/jibb
1597−/* imp-462-6 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1597+/* typ-464 %txt /tests/golden/types-import-sur-record-graph/types/txt
1598−/* imp-462-7 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1598+/* imp-464-1 %txt /tests/golden/types-import-sur-record-graph/sur/fixture/txt
1599−/* src-463 %jibb /tests/golden/types-list-branch/source/jibb
1599+/* mtre-464 %txt /tests/golden/types-import-sur-record-graph/module-trees/txt
1600−/* tok-463 %txt /tests/golden/types-list-branch/tokens/txt
1600+/* src-465 %jibb /tests/golden/types-import-tlon-notes/source/jibb
1601−/* tre-463 %txt /tests/golden/types-list-branch/tree/txt
1601+/* tok-465 %txt /tests/golden/types-import-tlon-notes/tokens/txt
1602−/* typ-463 %txt /tests/golden/types-list-branch/types/txt
1602+/* tre-465 %txt /tests/golden/types-import-tlon-notes/tree/txt
1603−/* src-464 %jibb /tests/golden/types-list-cons/source/jibb
1603+/* typ-465 %txt /tests/golden/types-import-tlon-notes/types/txt
1604−/* tok-464 %txt /tests/golden/types-list-cons/tokens/txt
1604+/* imp-465-1 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1605−/* tre-464 %txt /tests/golden/types-list-cons/tree/txt
1605+/* imp-465-2 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1606−/* typ-464 %txt /tests/golden/types-list-cons/types/txt
1606+/* imp-465-3 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1607−/* src-465 %jibb /tests/golden/types-list-context/source/jibb
1607+/* imp-465-4 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1608−/* tok-465 %txt /tests/golden/types-list-context/tokens/txt
1608+/* imp-465-5 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1609−/* tre-465 %txt /tests/golden/types-list-context/tree/txt
1609+/* imp-465-6 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1610−/* typ-465 %txt /tests/golden/types-list-context/types/txt
1610+/* imp-465-7 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1611−/* src-466 %jibb /tests/golden/types-list-imported/source/jibb
1611+/* src-466 %jibb /tests/golden/types-list-branch/source/jibb
1612−/* tok-466 %txt /tests/golden/types-list-imported/tokens/txt
1612+/* tok-466 %txt /tests/golden/types-list-branch/tokens/txt
1613−/* tre-466 %txt /tests/golden/types-list-imported/tree/txt
1613+/* tre-466 %txt /tests/golden/types-list-branch/tree/txt
1614−/* typ-466 %txt /tests/golden/types-list-imported/types/txt
1614+/* typ-466 %txt /tests/golden/types-list-branch/types/txt
1615−/* imp-466-1 %txt /tests/golden/types-list-imported/sur/fixture/txt
1615+/* src-467 %jibb /tests/golden/types-list-cons/source/jibb
1616−/* imp-466-2 %txt /tests/golden/types-list-imported/sur/fixture/txt
1616+/* tok-467 %txt /tests/golden/types-list-cons/tokens/txt
1617−/* src-467 %jibb /tests/golden/types-list-open/source/jibb
1617+/* tre-467 %txt /tests/golden/types-list-cons/tree/txt
1618−/* tok-467 %txt /tests/golden/types-list-open/tokens/txt
1618+/* typ-467 %txt /tests/golden/types-list-cons/types/txt
1619−/* tre-467 %txt /tests/golden/types-list-open/tree/txt
1619+/* src-468 %jibb /tests/golden/types-list-context/source/jibb
1620−/* typ-467 %txt /tests/golden/types-list-open/types/txt
1620+/* tok-468 %txt /tests/golden/types-list-context/tokens/txt
1621−/* src-468 %jibb /tests/golden/types-list-open-constraints/source/jibb
1621+/* tre-468 %txt /tests/golden/types-list-context/tree/txt
1622−/* tok-468 %txt /tests/golden/types-list-open-constraints/tokens/txt
1622+/* typ-468 %txt /tests/golden/types-list-context/types/txt
1623−/* tre-468 %txt /tests/golden/types-list-open-constraints/tree/txt
1623+/* src-469 %jibb /tests/golden/types-list-imported/source/jibb
1624−/* typ-468 %txt /tests/golden/types-list-open-constraints/types/txt
1624+/* tok-469 %txt /tests/golden/types-list-imported/tokens/txt
1625−/* src-469 %jibb /tests/golden/types-list-pattern-imported/source/jibb
1625+/* tre-469 %txt /tests/golden/types-list-imported/tree/txt
1626−/* tok-469 %txt /tests/golden/types-list-pattern-imported/tokens/txt
1626+/* typ-469 %txt /tests/golden/types-list-imported/types/txt
1627−/* tre-469 %txt /tests/golden/types-list-pattern-imported/tree/txt
1627+/* imp-469-1 %txt /tests/golden/types-list-imported/sur/fixture/txt
1628−/* typ-469 %txt /tests/golden/types-list-pattern-imported/types/txt
1628+/* imp-469-2 %txt /tests/golden/types-list-imported/sur/fixture/txt
1629−/* imp-469-1 %txt /tests/golden/types-list-pattern-imported/sur/fixture/txt
1629+/* src-470 %jibb /tests/golden/types-list-open/source/jibb
1630−/* imp-469-2 %txt /tests/golden/types-list-pattern-imported/sur/fixture/txt
1630+/* tok-470 %txt /tests/golden/types-list-open/tokens/txt
1631−/* src-470 %jibb /tests/golden/types-list-patterns/source/jibb
1631+/* tre-470 %txt /tests/golden/types-list-open/tree/txt
1632−/* tok-470 %txt /tests/golden/types-list-patterns/tokens/txt
1632+/* typ-470 %txt /tests/golden/types-list-open/types/txt
1633−/* tre-470 %txt /tests/golden/types-list-patterns/tree/txt
1633+/* src-471 %jibb /tests/golden/types-list-open-constraints/source/jibb
1634−/* typ-470 %txt /tests/golden/types-list-patterns/types/txt
1634+/* tok-471 %txt /tests/golden/types-list-open-constraints/tokens/txt
1635−/* src-471 %jibb /tests/golden/types-list-zero-fit/source/jibb
1635+/* tre-471 %txt /tests/golden/types-list-open-constraints/tree/txt
1636−/* tok-471 %txt /tests/golden/types-list-zero-fit/tokens/txt
1636+/* typ-471 %txt /tests/golden/types-list-open-constraints/types/txt
1637−/* tre-471 %txt /tests/golden/types-list-zero-fit/tree/txt
1637+/* src-472 %jibb /tests/golden/types-list-pattern-imported/source/jibb
1638−/* typ-471 %txt /tests/golden/types-list-zero-fit/types/txt
1638+/* tok-472 %txt /tests/golden/types-list-pattern-imported/tokens/txt
1639−/* src-472 %jibb /tests/golden/types-local-capitals/source/jibb
1639+/* tre-472 %txt /tests/golden/types-list-pattern-imported/tree/txt
1640−/* tok-472 %txt /tests/golden/types-local-capitals/tokens/txt
1640+/* typ-472 %txt /tests/golden/types-list-pattern-imported/types/txt
1641−/* tre-472 %txt /tests/golden/types-local-capitals/tree/txt
1641+/* imp-472-1 %txt /tests/golden/types-list-pattern-imported/sur/fixture/txt
1642−/* typ-472 %txt /tests/golden/types-local-capitals/types/txt
1642+/* imp-472-2 %txt /tests/golden/types-list-pattern-imported/sur/fixture/txt
1643−/* src-473 %jibb /tests/golden/types-local-recursive/source/jibb
1643+/* src-473 %jibb /tests/golden/types-list-patterns/source/jibb
1644−/* tok-473 %txt /tests/golden/types-local-recursive/tokens/txt
1644+/* tok-473 %txt /tests/golden/types-list-patterns/tokens/txt
1645−/* tre-473 %txt /tests/golden/types-local-recursive/tree/txt
1645+/* tre-473 %txt /tests/golden/types-list-patterns/tree/txt
1646−/* typ-473 %txt /tests/golden/types-local-recursive/types/txt
1646+/* typ-473 %txt /tests/golden/types-list-patterns/types/txt
1647−/* src-474 %jibb /tests/golden/types-local-scc/source/jibb
1647+/* src-474 %jibb /tests/golden/types-list-zero-fit/source/jibb
1648−/* tok-474 %txt /tests/golden/types-local-scc/tokens/txt
1648+/* tok-474 %txt /tests/golden/types-list-zero-fit/tokens/txt
1649−/* tre-474 %txt /tests/golden/types-local-scc/tree/txt
1649+/* tre-474 %txt /tests/golden/types-list-zero-fit/tree/txt
1650−/* typ-474 %txt /tests/golden/types-local-scc/types/txt
1650+/* typ-474 %txt /tests/golden/types-list-zero-fit/types/txt
1651−/* src-475 %jibb /tests/golden/types-local-scc-adversarial/source/jibb
1651+/* src-475 %jibb /tests/golden/types-literal-constructor-nouns/source/jibb
1652−/* tok-475 %txt /tests/golden/types-local-scc-adversarial/tokens/txt
1652+/* tok-475 %txt /tests/golden/types-literal-constructor-nouns/tokens/txt
1653−/* tre-475 %txt /tests/golden/types-local-scc-adversarial/tree/txt
1653+/* tre-475 %txt /tests/golden/types-literal-constructor-nouns/tree/txt
1654−/* typ-475 %txt /tests/golden/types-local-scc-adversarial/types/txt
1654+/* typ-475 %txt /tests/golden/types-literal-constructor-nouns/types/txt
1655−/* src-476 %jibb /tests/golden/types-missing-tag-context/source/jibb
1655+/* src-476 %jibb /tests/golden/types-local-capitals/source/jibb
1656−/* tok-476 %txt /tests/golden/types-missing-tag-context/tokens/txt
1656+/* tok-476 %txt /tests/golden/types-local-capitals/tokens/txt
1657−/* tre-476 %txt /tests/golden/types-missing-tag-context/tree/txt
1657+/* tre-476 %txt /tests/golden/types-local-capitals/tree/txt
1658−/* typ-476 %txt /tests/golden/types-missing-tag-context/types/txt
1658+/* typ-476 %txt /tests/golden/types-local-capitals/types/txt
1659−/* src-477 %jibb /tests/golden/types-missing-tag-imported/source/jibb
1659+/* src-477 %jibb /tests/golden/types-local-recursive/source/jibb
1660−/* tok-477 %txt /tests/golden/types-missing-tag-imported/tokens/txt
1660+/* tok-477 %txt /tests/golden/types-local-recursive/tokens/txt
1661−/* tre-477 %txt /tests/golden/types-missing-tag-imported/tree/txt
1661+/* tre-477 %txt /tests/golden/types-local-recursive/tree/txt
1662−/* typ-477 %txt /tests/golden/types-missing-tag-imported/types/txt
1662+/* typ-477 %txt /tests/golden/types-local-recursive/types/txt
1663−/* imp-477-1 %txt /tests/golden/types-missing-tag-imported/sur/fixture/txt
1663+/* src-478 %jibb /tests/golden/types-local-scc/source/jibb
1664−/* imp-477-2 %txt /tests/golden/types-missing-tag-imported/sur/fixture/txt
1664+/* tok-478 %txt /tests/golden/types-local-scc/tokens/txt
1665−/* src-478 %jibb /tests/golden/types-missing-tag-named/source/jibb
1665+/* tre-478 %txt /tests/golden/types-local-scc/tree/txt
1666−/* tok-478 %txt /tests/golden/types-missing-tag-named/tokens/txt
1666+/* typ-478 %txt /tests/golden/types-local-scc/types/txt
1667−/* tre-478 %txt /tests/golden/types-missing-tag-named/tree/txt
1667+/* src-479 %jibb /tests/golden/types-local-scc-adversarial/source/jibb
1668−/* typ-478 %txt /tests/golden/types-missing-tag-named/types/txt
1668+/* tok-479 %txt /tests/golden/types-local-scc-adversarial/tokens/txt
1669−/* src-479 %jibb /tests/golden/types-module-field-duplicate/source/jibb
1669+/* tre-479 %txt /tests/golden/types-local-scc-adversarial/tree/txt
1670−/* tok-479 %txt /tests/golden/types-module-field-duplicate/tokens/txt
1670+/* typ-479 %txt /tests/golden/types-local-scc-adversarial/types/txt
1671−/* tre-479 %txt /tests/golden/types-module-field-duplicate/tree/txt
1671+/* src-480 %jibb /tests/golden/types-loobean-singleton-source/source/jibb
1672−/* mod-479-1 %jibb /tests/golden/types-module-field-duplicate/modules/ui/lib/jibb
1672+/* tok-480 %txt /tests/golden/types-loobean-singleton-source/tokens/txt
1673−/* typ-479 %txt /tests/golden/types-module-field-duplicate/types/txt
1673+/* tre-480 %txt /tests/golden/types-loobean-singleton-source/tree/txt
1674−/* mtre-479 %txt /tests/golden/types-module-field-duplicate/module-trees/txt
1674+/* typ-480 %txt /tests/golden/types-loobean-singleton-source/types/txt
1675−/* src-480 %jibb /tests/golden/types-module-field-nonrecord/source/jibb
1675+/* src-481 %jibb /tests/golden/types-loobean-union-context/source/jibb
1676−/* tok-480 %txt /tests/golden/types-module-field-nonrecord/tokens/txt
1676+/* tok-481 %txt /tests/golden/types-loobean-union-context/tokens/txt
1677−/* tre-480 %txt /tests/golden/types-module-field-nonrecord/tree/txt
1677+/* tre-481 %txt /tests/golden/types-loobean-union-context/tree/txt
1678−/* mod-480-1 %jibb /tests/golden/types-module-field-nonrecord/modules/ui/lib/jibb
1678+/* typ-481 %txt /tests/golden/types-loobean-union-context/types/txt
1679−/* typ-480 %txt /tests/golden/types-module-field-nonrecord/types/txt
1679+/* src-482 %jibb /tests/golden/types-missing-tag-context/source/jibb
1680−/* mtre-480 %txt /tests/golden/types-module-field-nonrecord/module-trees/txt
1680+/* tok-482 %txt /tests/golden/types-missing-tag-context/tokens/txt
1681−/* src-481 %jibb /tests/golden/types-module-field-path/source/jibb
1681+/* tre-482 %txt /tests/golden/types-missing-tag-context/tree/txt
1682−/* tok-481 %txt /tests/golden/types-module-field-path/tokens/txt
1682+/* typ-482 %txt /tests/golden/types-missing-tag-context/types/txt
1683−/* tre-481 %txt /tests/golden/types-module-field-path/tree/txt
1683+/* src-483 %jibb /tests/golden/types-missing-tag-imported/source/jibb
1684−/* mod-481-1 %jibb /tests/golden/types-module-field-path/modules/ui/lib/jibb
1684+/* tok-483 %txt /tests/golden/types-missing-tag-imported/tokens/txt
1685−/* typ-481 %txt /tests/golden/types-module-field-path/types/txt
1685+/* tre-483 %txt /tests/golden/types-missing-tag-imported/tree/txt
1686−/* mtre-481 %txt /tests/golden/types-module-field-path/module-trees/txt
1686+/* typ-483 %txt /tests/golden/types-missing-tag-imported/types/txt
1687−/* src-482 %jibb /tests/golden/types-module-field-shadow/source/jibb
1687+/* imp-483-1 %txt /tests/golden/types-missing-tag-imported/sur/fixture/txt
1688−/* tok-482 %txt /tests/golden/types-module-field-shadow/tokens/txt
1688+/* imp-483-2 %txt /tests/golden/types-missing-tag-imported/sur/fixture/txt
1689−/* tre-482 %txt /tests/golden/types-module-field-shadow/tree/txt
1689+/* src-484 %jibb /tests/golden/types-missing-tag-named/source/jibb
1690−/* mod-482-1 %jibb /tests/golden/types-module-field-shadow/modules/ui/lib/jibb
1690+/* tok-484 %txt /tests/golden/types-missing-tag-named/tokens/txt
1691−/* typ-482 %txt /tests/golden/types-module-field-shadow/types/txt
1691+/* tre-484 %txt /tests/golden/types-missing-tag-named/tree/txt
1692−/* mtre-482 %txt /tests/golden/types-module-field-shadow/module-trees/txt
1692+/* typ-484 %txt /tests/golden/types-missing-tag-named/types/txt
1693−/* src-483 %jibb /tests/golden/types-module-fixtures/source/jibb
1693+/* src-485 %jibb /tests/golden/types-module-field-duplicate/source/jibb
1694−/* tok-483 %txt /tests/golden/types-module-fixtures/tokens/txt
1694+/* tok-485 %txt /tests/golden/types-module-field-duplicate/tokens/txt
1695−/* tre-483 %txt /tests/golden/types-module-fixtures/tree/txt
1695+/* tre-485 %txt /tests/golden/types-module-field-duplicate/tree/txt
1696−/* mod-483-1 %jibb /tests/golden/types-module-fixtures/modules/ui/api/blog/jibb
1696+/* mod-485-1 %jibb /tests/golden/types-module-field-duplicate/modules/ui/lib/jibb
1697−/* mod-483-2 %jibb /tests/golden/types-module-fixtures/modules/ui/components/card/jibb
1697+/* typ-485 %txt /tests/golden/types-module-field-duplicate/types/txt
1698−/* typ-483 %txt /tests/golden/types-module-fixtures/types/txt
1698+/* mtre-485 %txt /tests/golden/types-module-field-duplicate/module-trees/txt
1699−/* mtre-483 %txt /tests/golden/types-module-fixtures/module-trees/txt
1699+/* src-486 %jibb /tests/golden/types-module-field-nonrecord/source/jibb
1700−/* src-484 %jibb /tests/golden/types-module-mixed/source/jibb
1700+/* tok-486 %txt /tests/golden/types-module-field-nonrecord/tokens/txt
1701−/* tok-484 %txt /tests/golden/types-module-mixed/tokens/txt
1701+/* tre-486 %txt /tests/golden/types-module-field-nonrecord/tree/txt
1702−/* tre-484 %txt /tests/golden/types-module-mixed/tree/txt
1702+/* mod-486-1 %jibb /tests/golden/types-module-field-nonrecord/modules/ui/lib/jibb
1703−/* mod-484-1 %jibb /tests/golden/types-module-mixed/modules/ui/helper/jibb
1703+/* typ-486 %txt /tests/golden/types-module-field-nonrecord/types/txt
1704−/* typ-484 %txt /tests/golden/types-module-mixed/types/txt
1704+/* mtre-486 %txt /tests/golden/types-module-field-nonrecord/module-trees/txt
1705−/* imp-484-1 %txt /tests/golden/types-module-mixed/sur/fixture/txt
1705+/* src-487 %jibb /tests/golden/types-module-field-path/source/jibb
1706−/* mark-484-1 %txt /tests/golden/types-module-mixed/mar/label/txt
1706+/* tok-487 %txt /tests/golden/types-module-field-path/tokens/txt
1707−/* mtre-484 %txt /tests/golden/types-module-mixed/module-trees/txt
1707+/* tre-487 %txt /tests/golden/types-module-field-path/tree/txt
1708−/* src-485 %jibb /tests/golden/types-multi-call/source/jibb
1708+/* mod-487-1 %jibb /tests/golden/types-module-field-path/modules/ui/lib/jibb
1709−/* tok-485 %txt /tests/golden/types-multi-call/tokens/txt
1709+/* typ-487 %txt /tests/golden/types-module-field-path/types/txt
1710−/* tre-485 %txt /tests/golden/types-multi-call/tree/txt
1710+/* mtre-487 %txt /tests/golden/types-module-field-path/module-trees/txt
1711−/* typ-485 %txt /tests/golden/types-multi-call/types/txt
1711+/* src-488 %jibb /tests/golden/types-module-field-shadow/source/jibb
1712−/* src-486 %jibb /tests/golden/types-multi-import/source/jibb
1712+/* tok-488 %txt /tests/golden/types-module-field-shadow/tokens/txt
1713−/* tok-486 %txt /tests/golden/types-multi-import/tokens/txt
1713+/* tre-488 %txt /tests/golden/types-module-field-shadow/tree/txt
1714−/* tre-486 %txt /tests/golden/types-multi-import/tree/txt
1714+/* mod-488-1 %jibb /tests/golden/types-module-field-shadow/modules/ui/lib/jibb
1715−/* mod-486-1 %jibb /tests/golden/types-multi-import/modules/ui/lib/jibb
1715+/* typ-488 %txt /tests/golden/types-module-field-shadow/types/txt
1716−/* typ-486 %txt /tests/golden/types-multi-import/types/txt
1716+/* mtre-488 %txt /tests/golden/types-module-field-shadow/module-trees/txt
1717−/* mtre-486 %txt /tests/golden/types-multi-import/module-trees/txt
1717+/* src-489 %jibb /tests/golden/types-module-fixtures/source/jibb
1718−/* src-487 %jibb /tests/golden/types-nested-missing-tag/source/jibb
1718+/* tok-489 %txt /tests/golden/types-module-fixtures/tokens/txt
1719−/* tok-487 %txt /tests/golden/types-nested-missing-tag/tokens/txt
1719+/* tre-489 %txt /tests/golden/types-module-fixtures/tree/txt
1720−/* tre-487 %txt /tests/golden/types-nested-missing-tag/tree/txt
1720+/* mod-489-1 %jibb /tests/golden/types-module-fixtures/modules/ui/api/blog/jibb
1721−/* typ-487 %txt /tests/golden/types-nested-missing-tag/types/txt
1721+/* mod-489-2 %jibb /tests/golden/types-module-fixtures/modules/ui/components/card/jibb
1722−/* src-488 %jibb /tests/golden/types-null-context/source/jibb
1722+/* typ-489 %txt /tests/golden/types-module-fixtures/types/txt
1723−/* tok-488 %txt /tests/golden/types-null-context/tokens/txt
1723+/* mtre-489 %txt /tests/golden/types-module-fixtures/module-trees/txt
1724−/* tre-488 %txt /tests/golden/types-null-context/tree/txt
1724+/* src-490 %jibb /tests/golden/types-module-mixed/source/jibb
1725−/* typ-488 %txt /tests/golden/types-null-context/types/txt
1725+/* tok-490 %txt /tests/golden/types-module-mixed/tokens/txt
1726−/* src-489 %jibb /tests/golden/types-null-overlap/source/jibb
1726+/* tre-490 %txt /tests/golden/types-module-mixed/tree/txt
1727−/* tok-489 %txt /tests/golden/types-null-overlap/tokens/txt
1727+/* mod-490-1 %jibb /tests/golden/types-module-mixed/modules/ui/helper/jibb
1728−/* tre-489 %txt /tests/golden/types-null-overlap/tree/txt
1728+/* typ-490 %txt /tests/golden/types-module-mixed/types/txt
1729−/* typ-489 %txt /tests/golden/types-null-overlap/types/txt
1729+/* imp-490-1 %txt /tests/golden/types-module-mixed/sur/fixture/txt
1730−/* src-490 %jibb /tests/golden/types-null-unresolved/source/jibb
1730+/* mark-490-1 %txt /tests/golden/types-module-mixed/mar/label/txt
1731−/* tok-490 %txt /tests/golden/types-null-unresolved/tokens/txt
1731+/* mtre-490 %txt /tests/golden/types-module-mixed/module-trees/txt
1732−/* tre-490 %txt /tests/golden/types-null-unresolved/tree/txt
1732+/* src-491 %jibb /tests/golden/types-multi-call/source/jibb
1733−/* typ-490 %txt /tests/golden/types-null-unresolved/types/txt
1733+/* tok-491 %txt /tests/golden/types-multi-call/tokens/txt
1734−/* src-491 %jibb /tests/golden/types-pair-context/source/jibb
1734+/* tre-491 %txt /tests/golden/types-multi-call/tree/txt
1735−/* tok-491 %txt /tests/golden/types-pair-context/tokens/txt
1735+/* typ-491 %txt /tests/golden/types-multi-call/types/txt
1736−/* tre-491 %txt /tests/golden/types-pair-context/tree/txt
1736+/* src-492 %jibb /tests/golden/types-multi-import/source/jibb
1737−/* typ-491 %txt /tests/golden/types-pair-context/types/txt
1737+/* tok-492 %txt /tests/golden/types-multi-import/tokens/txt
1738−/* src-492 %jibb /tests/golden/types-partial-apply/source/jibb
1738+/* tre-492 %txt /tests/golden/types-multi-import/tree/txt
1739−/* tok-492 %txt /tests/golden/types-partial-apply/tokens/txt
1739+/* mod-492-1 %jibb /tests/golden/types-multi-import/modules/ui/lib/jibb
1740−/* tre-492 %txt /tests/golden/types-partial-apply/tree/txt
1740+/* typ-492 %txt /tests/golden/types-multi-import/types/txt
1741−/* typ-492 %txt /tests/golden/types-partial-apply/types/txt
1741+/* mtre-492 %txt /tests/golden/types-multi-import/module-trees/txt
1742−/* src-493 %jibb /tests/golden/types-partial-atom-alias/source/jibb
1742+/* src-493 %jibb /tests/golden/types-nested-missing-tag/source/jibb
1743−/* tok-493 %txt /tests/golden/types-partial-atom-alias/tokens/txt
1743+/* tok-493 %txt /tests/golden/types-nested-missing-tag/tokens/txt
1744−/* tre-493 %txt /tests/golden/types-partial-atom-alias/tree/txt
1744+/* tre-493 %txt /tests/golden/types-nested-missing-tag/tree/txt
1745−/* typ-493 %txt /tests/golden/types-partial-atom-alias/types/txt
1745+/* typ-493 %txt /tests/golden/types-nested-missing-tag/types/txt
1746−/* src-494 %jibb /tests/golden/types-partial-atom-constraint/source/jibb
1746+/* src-494 %jibb /tests/golden/types-null-context/source/jibb
1747−/* tok-494 %txt /tests/golden/types-partial-atom-constraint/tokens/txt
1747+/* tok-494 %txt /tests/golden/types-null-context/tokens/txt
1748−/* tre-494 %txt /tests/golden/types-partial-atom-constraint/tree/txt
1748+/* tre-494 %txt /tests/golden/types-null-context/tree/txt
1749−/* typ-494 %txt /tests/golden/types-partial-atom-constraint/types/txt
1749+/* typ-494 %txt /tests/golden/types-null-context/types/txt
1750−/* src-495 %jibb /tests/golden/types-partial-atom-widening/source/jibb
1750+/* src-495 %jibb /tests/golden/types-null-overlap/source/jibb
1751−/* tok-495 %txt /tests/golden/types-partial-atom-widening/tokens/txt
1751+/* tok-495 %txt /tests/golden/types-null-overlap/tokens/txt
1752−/* tre-495 %txt /tests/golden/types-partial-atom-widening/tree/txt
1752+/* tre-495 %txt /tests/golden/types-null-overlap/tree/txt
1753−/* typ-495 %txt /tests/golden/types-partial-atom-widening/types/txt
1753+/* typ-495 %txt /tests/golden/types-null-overlap/types/txt
1754−/* src-496 %jibb /tests/golden/types-partial-aura/source/jibb
1754+/* src-496 %jibb /tests/golden/types-null-unresolved/source/jibb
1755−/* tok-496 %txt /tests/golden/types-partial-aura/tokens/txt
1755+/* tok-496 %txt /tests/golden/types-null-unresolved/tokens/txt
1756−/* tre-496 %txt /tests/golden/types-partial-aura/tree/txt
1756+/* tre-496 %txt /tests/golden/types-null-unresolved/tree/txt
1757−/* typ-496 %txt /tests/golden/types-partial-aura/types/txt
1757+/* typ-496 %txt /tests/golden/types-null-unresolved/types/txt
1758−/* src-497 %jibb /tests/golden/types-partial-aura-family/source/jibb
1758+/* src-497 %jibb /tests/golden/types-pair-context/source/jibb
1759−/* tok-497 %txt /tests/golden/types-partial-aura-family/tokens/txt
1759+/* tok-497 %txt /tests/golden/types-pair-context/tokens/txt
1760−/* tre-497 %txt /tests/golden/types-partial-aura-family/tree/txt
1760+/* tre-497 %txt /tests/golden/types-pair-context/tree/txt
1761−/* typ-497 %txt /tests/golden/types-partial-aura-family/types/txt
1761+/* typ-497 %txt /tests/golden/types-pair-context/types/txt
1762−/* src-498 %jibb /tests/golden/types-partial-aura-generalization/source/jibb
1762+/* src-498 %jibb /tests/golden/types-partial-apply/source/jibb
1763−/* tok-498 %txt /tests/golden/types-partial-aura-generalization/tokens/txt
1763+/* tok-498 %txt /tests/golden/types-partial-apply/tokens/txt
1764−/* tre-498 %txt /tests/golden/types-partial-aura-generalization/tree/txt
1764+/* tre-498 %txt /tests/golden/types-partial-apply/tree/txt
1765−/* typ-498 %txt /tests/golden/types-partial-aura-generalization/types/txt
1765+/* typ-498 %txt /tests/golden/types-partial-apply/types/txt
1766−/* src-499 %jibb /tests/golden/types-partial-bare-atom/source/jibb
1766+/* src-499 %jibb /tests/golden/types-partial-atom-alias/source/jibb
1767−/* tok-499 %txt /tests/golden/types-partial-bare-atom/tokens/txt
1767+/* tok-499 %txt /tests/golden/types-partial-atom-alias/tokens/txt
1768−/* tre-499 %txt /tests/golden/types-partial-bare-atom/tree/txt
1768+/* tre-499 %txt /tests/golden/types-partial-atom-alias/tree/txt
1769−/* typ-499 %txt /tests/golden/types-partial-bare-atom/types/txt
1769+/* typ-499 %txt /tests/golden/types-partial-atom-alias/types/txt
1770−/* src-500 %jibb /tests/golden/types-partial-branch-widening/source/jibb
1770+/* src-500 %jibb /tests/golden/types-partial-atom-constraint/source/jibb
1771−/* tok-500 %txt /tests/golden/types-partial-branch-widening/tokens/txt
1771+/* tok-500 %txt /tests/golden/types-partial-atom-constraint/tokens/txt
1772−/* tre-500 %txt /tests/golden/types-partial-branch-widening/tree/txt
1772+/* tre-500 %txt /tests/golden/types-partial-atom-constraint/tree/txt
1773−/* typ-500 %txt /tests/golden/types-partial-branch-widening/types/txt
1773+/* typ-500 %txt /tests/golden/types-partial-atom-constraint/types/txt
1774−/* src-501 %jibb /tests/golden/types-partial-conflicting-sites/source/jibb
1774+/* src-501 %jibb /tests/golden/types-partial-atom-widening/source/jibb
1775−/* tok-501 %txt /tests/golden/types-partial-conflicting-sites/tokens/txt
1775+/* tok-501 %txt /tests/golden/types-partial-atom-widening/tokens/txt
1776−/* tre-501 %txt /tests/golden/types-partial-conflicting-sites/tree/txt
1776+/* tre-501 %txt /tests/golden/types-partial-atom-widening/tree/txt
1777−/* typ-501 %txt /tests/golden/types-partial-conflicting-sites/types/txt
1777+/* typ-501 %txt /tests/golden/types-partial-atom-widening/types/txt
1778−/* src-502 %jibb /tests/golden/types-partial-decimal-default/source/jibb
1778+/* src-502 %jibb /tests/golden/types-partial-aura/source/jibb
1779−/* tok-502 %txt /tests/golden/types-partial-decimal-default/tokens/txt
1779+/* tok-502 %txt /tests/golden/types-partial-aura/tokens/txt
1780−/* tre-502 %txt /tests/golden/types-partial-decimal-default/tree/txt
1780+/* tre-502 %txt /tests/golden/types-partial-aura/tree/txt
1781−/* typ-502 %txt /tests/golden/types-partial-decimal-default/types/txt
1781+/* typ-502 %txt /tests/golden/types-partial-aura/types/txt
1782−/* src-503 %jibb /tests/golden/types-partial-dependency-chain/source/jibb
1782+/* src-503 %jibb /tests/golden/types-partial-aura-family/source/jibb
1783−/* tok-503 %txt /tests/golden/types-partial-dependency-chain/tokens/txt
1783+/* tok-503 %txt /tests/golden/types-partial-aura-family/tokens/txt
1784−/* tre-503 %txt /tests/golden/types-partial-dependency-chain/tree/txt
1784+/* tre-503 %txt /tests/golden/types-partial-aura-family/tree/txt
1785−/* typ-503 %txt /tests/golden/types-partial-dependency-chain/types/txt
1785+/* typ-503 %txt /tests/golden/types-partial-aura-family/types/txt
1786−/* src-504 %jibb /tests/golden/types-partial-explicit-capital/source/jibb
1786+/* src-504 %jibb /tests/golden/types-partial-aura-generalization/source/jibb
1787−/* tok-504 %txt /tests/golden/types-partial-explicit-capital/tokens/txt
1787+/* tok-504 %txt /tests/golden/types-partial-aura-generalization/tokens/txt
1788−/* tre-504 %txt /tests/golden/types-partial-explicit-capital/tree/txt
1788+/* tre-504 %txt /tests/golden/types-partial-aura-generalization/tree/txt
1789−/* typ-504 %txt /tests/golden/types-partial-explicit-capital/types/txt
1789+/* typ-504 %txt /tests/golden/types-partial-aura-generalization/types/txt
1790−/* src-505 %jibb /tests/golden/types-partial-forward/source/jibb
1790+/* src-505 %jibb /tests/golden/types-partial-bare-atom/source/jibb
1791−/* tok-505 %txt /tests/golden/types-partial-forward/tokens/txt
1791+/* tok-505 %txt /tests/golden/types-partial-bare-atom/tokens/txt
1792−/* tre-505 %txt /tests/golden/types-partial-forward/tree/txt
1792+/* tre-505 %txt /tests/golden/types-partial-bare-atom/tree/txt
1793−/* typ-505 %txt /tests/golden/types-partial-forward/types/txt
1793+/* typ-505 %txt /tests/golden/types-partial-bare-atom/types/txt
1794−/* src-506 %jibb /tests/golden/types-partial-generalization/source/jibb
1794+/* src-506 %jibb /tests/golden/types-partial-branch-widening/source/jibb
1795−/* tok-506 %txt /tests/golden/types-partial-generalization/tokens/txt
1795+/* tok-506 %txt /tests/golden/types-partial-branch-widening/tokens/txt
1796−/* tre-506 %txt /tests/golden/types-partial-generalization/tree/txt
1796+/* tre-506 %txt /tests/golden/types-partial-branch-widening/tree/txt
1797−/* typ-506 %txt /tests/golden/types-partial-generalization/types/txt
1797+/* typ-506 %txt /tests/golden/types-partial-branch-widening/types/txt
1798−/* src-507 %jibb /tests/golden/types-partial-identity/source/jibb
1798+/* src-507 %jibb /tests/golden/types-partial-conflicting-sites/source/jibb
1799−/* tok-507 %txt /tests/golden/types-partial-identity/tokens/txt
1799+/* tok-507 %txt /tests/golden/types-partial-conflicting-sites/tokens/txt
1800−/* tre-507 %txt /tests/golden/types-partial-identity/tree/txt
1800+/* tre-507 %txt /tests/golden/types-partial-conflicting-sites/tree/txt
1801−/* typ-507 %txt /tests/golden/types-partial-identity/types/txt
1801+/* typ-507 %txt /tests/golden/types-partial-conflicting-sites/types/txt
1802−/* src-508 %jibb /tests/golden/types-partial-independent-atoms/source/jibb
1802+/* src-508 %jibb /tests/golden/types-partial-decimal-default/source/jibb
1803−/* tok-508 %txt /tests/golden/types-partial-independent-atoms/tokens/txt
1803+/* tok-508 %txt /tests/golden/types-partial-decimal-default/tokens/txt
1804−/* tre-508 %txt /tests/golden/types-partial-independent-atoms/tree/txt
1804+/* tre-508 %txt /tests/golden/types-partial-decimal-default/tree/txt
1805−/* typ-508 %txt /tests/golden/types-partial-independent-atoms/types/txt
1805+/* typ-508 %txt /tests/golden/types-partial-decimal-default/types/txt
1806−/* src-509 %jibb /tests/golden/types-partial-local-molds/source/jibb
1806+/* src-509 %jibb /tests/golden/types-partial-dependency-chain/source/jibb
1807−/* tok-509 %txt /tests/golden/types-partial-local-molds/tokens/txt
1807+/* tok-509 %txt /tests/golden/types-partial-dependency-chain/tokens/txt
1808−/* tre-509 %txt /tests/golden/types-partial-local-molds/tree/txt
1808+/* tre-509 %txt /tests/golden/types-partial-dependency-chain/tree/txt
1809−/* typ-509 %txt /tests/golden/types-partial-local-molds/types/txt
1809+/* typ-509 %txt /tests/golden/types-partial-dependency-chain/types/txt
1810−/* src-510 %jibb /tests/golden/types-partial-locals/source/jibb
1810+/* src-510 %jibb /tests/golden/types-partial-explicit-capital/source/jibb
1811−/* tok-510 %txt /tests/golden/types-partial-locals/tokens/txt
1811+/* tok-510 %txt /tests/golden/types-partial-explicit-capital/tokens/txt
1812−/* tre-510 %txt /tests/golden/types-partial-locals/tree/txt
1812+/* tre-510 %txt /tests/golden/types-partial-explicit-capital/tree/txt
1813−/* typ-510 %txt /tests/golden/types-partial-locals/types/txt
1813+/* typ-510 %txt /tests/golden/types-partial-explicit-capital/types/txt
1814−/* src-511 %jibb /tests/golden/types-partial-many-atom-constraints/source/jibb
1814+/* src-511 %jibb /tests/golden/types-partial-forward/source/jibb
1815−/* tok-511 %txt /tests/golden/types-partial-many-atom-constraints/tokens/txt
1815+/* tok-511 %txt /tests/golden/types-partial-forward/tokens/txt
1816−/* tre-511 %txt /tests/golden/types-partial-many-atom-constraints/tree/txt
1816+/* tre-511 %txt /tests/golden/types-partial-forward/tree/txt
1817−/* typ-511 %txt /tests/golden/types-partial-many-atom-constraints/types/txt
1817+/* typ-511 %txt /tests/golden/types-partial-forward/types/txt
1818−/* src-512 %jibb /tests/golden/types-partial-mold-bare-aura/source/jibb
1818+/* src-512 %jibb /tests/golden/types-partial-generalization/source/jibb
1819−/* tok-512 %txt /tests/golden/types-partial-mold-bare-aura/tokens/txt
1819+/* tok-512 %txt /tests/golden/types-partial-generalization/tokens/txt
1820−/* tre-512 %txt /tests/golden/types-partial-mold-bare-aura/tree/txt
1820+/* tre-512 %txt /tests/golden/types-partial-generalization/tree/txt
1821−/* typ-512 %txt /tests/golden/types-partial-mold-bare-aura/types/txt
1821+/* typ-512 %txt /tests/golden/types-partial-generalization/types/txt
1822−/* src-513 %jibb /tests/golden/types-partial-mold-composite/source/jibb
1822+/* src-513 %jibb /tests/golden/types-partial-identity/source/jibb
1823−/* tok-513 %txt /tests/golden/types-partial-mold-composite/tokens/txt
1823+/* tok-513 %txt /tests/golden/types-partial-identity/tokens/txt
1824−/* tre-513 %txt /tests/golden/types-partial-mold-composite/tree/txt
1824+/* tre-513 %txt /tests/golden/types-partial-identity/tree/txt
1825−/* typ-513 %txt /tests/golden/types-partial-mold-composite/types/txt
1825+/* typ-513 %txt /tests/golden/types-partial-identity/types/txt
1826−/* src-514 %jibb /tests/golden/types-partial-mold-forward/source/jibb
1826+/* src-514 %jibb /tests/golden/types-partial-independent-atoms/source/jibb
1827−/* tok-514 %txt /tests/golden/types-partial-mold-forward/tokens/txt
1827+/* tok-514 %txt /tests/golden/types-partial-independent-atoms/tokens/txt
1828−/* tre-514 %txt /tests/golden/types-partial-mold-forward/tree/txt
1828+/* tre-514 %txt /tests/golden/types-partial-independent-atoms/tree/txt
1829−/* typ-514 %txt /tests/golden/types-partial-mold-forward/types/txt
1829+/* typ-514 %txt /tests/golden/types-partial-independent-atoms/types/txt
1830−/* src-515 %jibb /tests/golden/types-partial-mold-recursive/source/jibb
1830+/* src-515 %jibb /tests/golden/types-partial-local-molds/source/jibb
1831−/* tok-515 %txt /tests/golden/types-partial-mold-recursive/tokens/txt
1831+/* tok-515 %txt /tests/golden/types-partial-local-molds/tokens/txt
1832−/* tre-515 %txt /tests/golden/types-partial-mold-recursive/tree/txt
1832+/* tre-515 %txt /tests/golden/types-partial-local-molds/tree/txt
1833−/* typ-515 %txt /tests/golden/types-partial-mold-recursive/types/txt
1833+/* typ-515 %txt /tests/golden/types-partial-local-molds/types/txt
1834−/* src-516 %jibb /tests/golden/types-partial-occurs/source/jibb
1834+/* src-516 %jibb /tests/golden/types-partial-locals/source/jibb
1835−/* tok-516 %txt /tests/golden/types-partial-occurs/tokens/txt
1835+/* tok-516 %txt /tests/golden/types-partial-locals/tokens/txt
1836−/* tre-516 %txt /tests/golden/types-partial-occurs/tree/txt
1836+/* tre-516 %txt /tests/golden/types-partial-locals/tree/txt
1837−/* typ-516 %txt /tests/golden/types-partial-occurs/types/txt
1837+/* typ-516 %txt /tests/golden/types-partial-locals/types/txt
1838−/* src-517 %jibb /tests/golden/types-partial-projection/source/jibb
1838+/* src-517 %jibb /tests/golden/types-partial-many-atom-constraints/source/jibb
1839−/* tok-517 %txt /tests/golden/types-partial-projection/tokens/txt
1839+/* tok-517 %txt /tests/golden/types-partial-many-atom-constraints/tokens/txt
1840−/* tre-517 %txt /tests/golden/types-partial-projection/tree/txt
1840+/* tre-517 %txt /tests/golden/types-partial-many-atom-constraints/tree/txt
1841−/* typ-517 %txt /tests/golden/types-partial-projection/types/txt
1841+/* typ-517 %txt /tests/golden/types-partial-many-atom-constraints/types/txt
1842−/* src-518 %jibb /tests/golden/types-partial-shadow-global/source/jibb
1842+/* src-518 %jibb /tests/golden/types-partial-mold-bare-aura/source/jibb
1843−/* tok-518 %txt /tests/golden/types-partial-shadow-global/tokens/txt
1843+/* tok-518 %txt /tests/golden/types-partial-mold-bare-aura/tokens/txt
1844−/* tre-518 %txt /tests/golden/types-partial-shadow-global/tree/txt
1844+/* tre-518 %txt /tests/golden/types-partial-mold-bare-aura/tree/txt
1845−/* typ-518 %txt /tests/golden/types-partial-shadow-global/types/txt
1845+/* typ-518 %txt /tests/golden/types-partial-mold-bare-aura/types/txt
1846−/* src-519 %jibb /tests/golden/types-partial-shared-tvar/source/jibb
1846+/* src-519 %jibb /tests/golden/types-partial-mold-composite/source/jibb
1847−/* tok-519 %txt /tests/golden/types-partial-shared-tvar/tokens/txt
1847+/* tok-519 %txt /tests/golden/types-partial-mold-composite/tokens/txt
1848−/* tre-519 %txt /tests/golden/types-partial-shared-tvar/tree/txt
1848+/* tre-519 %txt /tests/golden/types-partial-mold-composite/tree/txt
1849−/* typ-519 %txt /tests/golden/types-partial-shared-tvar/types/txt
1849+/* typ-519 %txt /tests/golden/types-partial-mold-composite/types/txt
1850−/* src-520 %jibb /tests/golden/types-partial-union-cases/source/jibb
1850+/* src-520 %jibb /tests/golden/types-partial-mold-forward/source/jibb
1851−/* tok-520 %txt /tests/golden/types-partial-union-cases/tokens/txt
1851+/* tok-520 %txt /tests/golden/types-partial-mold-forward/tokens/txt
1852−/* tre-520 %txt /tests/golden/types-partial-union-cases/tree/txt
1852+/* tre-520 %txt /tests/golden/types-partial-mold-forward/tree/txt
1853−/* typ-520 %txt /tests/golden/types-partial-union-cases/types/txt
1853+/* typ-520 %txt /tests/golden/types-partial-mold-forward/types/txt
1854−/* src-521 %jibb /tests/golden/types-partial-union-edges/source/jibb
1854+/* src-521 %jibb /tests/golden/types-partial-mold-recursive/source/jibb
1855−/* tok-521 %txt /tests/golden/types-partial-union-edges/tokens/txt
1855+/* tok-521 %txt /tests/golden/types-partial-mold-recursive/tokens/txt
1856−/* tre-521 %txt /tests/golden/types-partial-union-edges/tree/txt
1856+/* tre-521 %txt /tests/golden/types-partial-mold-recursive/tree/txt
1857−/* typ-521 %txt /tests/golden/types-partial-union-edges/types/txt
1857+/* typ-521 %txt /tests/golden/types-partial-mold-recursive/types/txt
1858−/* src-522 %jibb /tests/golden/types-partial-unresolved-tag/source/jibb
1858+/* src-522 %jibb /tests/golden/types-partial-occurs/source/jibb
1859−/* tok-522 %txt /tests/golden/types-partial-unresolved-tag/tokens/txt
1859+/* tok-522 %txt /tests/golden/types-partial-occurs/tokens/txt
1860−/* tre-522 %txt /tests/golden/types-partial-unresolved-tag/tree/txt
1860+/* tre-522 %txt /tests/golden/types-partial-occurs/tree/txt
1861−/* typ-522 %txt /tests/golden/types-partial-unresolved-tag/types/txt
1861+/* typ-522 %txt /tests/golden/types-partial-occurs/types/txt
1862−/* src-523 %jibb /tests/golden/types-positional-faces/source/jibb
1862+/* src-523 %jibb /tests/golden/types-partial-projection/source/jibb
1863−/* tok-523 %txt /tests/golden/types-positional-faces/tokens/txt
1863+/* tok-523 %txt /tests/golden/types-partial-projection/tokens/txt
1864−/* tre-523 %txt /tests/golden/types-positional-faces/tree/txt
1864+/* tre-523 %txt /tests/golden/types-partial-projection/tree/txt
1865−/* typ-523 %txt /tests/golden/types-positional-faces/types/txt
1865+/* typ-523 %txt /tests/golden/types-partial-projection/types/txt
1866−/* src-524 %jibb /tests/golden/types-prelude-arithmetic/source/jibb
1866+/* src-524 %jibb /tests/golden/types-partial-shadow-global/source/jibb
1867−/* tok-524 %txt /tests/golden/types-prelude-arithmetic/tokens/txt
1867+/* tok-524 %txt /tests/golden/types-partial-shadow-global/tokens/txt
1868−/* tre-524 %txt /tests/golden/types-prelude-arithmetic/tree/txt
1868+/* tre-524 %txt /tests/golden/types-partial-shadow-global/tree/txt
1869−/* typ-524 %txt /tests/golden/types-prelude-arithmetic/types/txt
1869+/* typ-524 %txt /tests/golden/types-partial-shadow-global/types/txt
1870−/* src-525 %jibb /tests/golden/types-prelude-ask/source/jibb
1870+/* src-525 %jibb /tests/golden/types-partial-shared-tvar/source/jibb
1871−/* tok-525 %txt /tests/golden/types-prelude-ask/tokens/txt
1871+/* tok-525 %txt /tests/golden/types-partial-shared-tvar/tokens/txt
1872−/* tre-525 %txt /tests/golden/types-prelude-ask/tree/txt
1872+/* tre-525 %txt /tests/golden/types-partial-shared-tvar/tree/txt
1873−/* typ-525 %txt /tests/golden/types-prelude-ask/types/txt
1873+/* typ-525 %txt /tests/golden/types-partial-shared-tvar/types/txt
1874−/* src-526 %jibb /tests/golden/types-prelude-bond/source/jibb
1874+/* src-526 %jibb /tests/golden/types-partial-union-cases/source/jibb
1875−/* tok-526 %txt /tests/golden/types-prelude-bond/tokens/txt
1875+/* tok-526 %txt /tests/golden/types-partial-union-cases/tokens/txt
1876−/* tre-526 %txt /tests/golden/types-prelude-bond/tree/txt
1876+/* tre-526 %txt /tests/golden/types-partial-union-cases/tree/txt
1877−/* typ-526 %txt /tests/golden/types-prelude-bond/types/txt
1877+/* typ-526 %txt /tests/golden/types-partial-union-cases/types/txt
1878−/* src-527 %jibb /tests/golden/types-prelude-cmd/source/jibb
1878+/* src-527 %jibb /tests/golden/types-partial-union-edges/source/jibb
1879−/* tok-527 %txt /tests/golden/types-prelude-cmd/tokens/txt
1879+/* tok-527 %txt /tests/golden/types-partial-union-edges/tokens/txt
1880−/* tre-527 %txt /tests/golden/types-prelude-cmd/tree/txt
1880+/* tre-527 %txt /tests/golden/types-partial-union-edges/tree/txt
1881−/* typ-527 %txt /tests/golden/types-prelude-cmd/types/txt
1881+/* typ-527 %txt /tests/golden/types-partial-union-edges/types/txt
1882−/* src-528 %jibb /tests/golden/types-prelude-direct/source/jibb
1882+/* src-528 %jibb /tests/golden/types-partial-unresolved-tag/source/jibb
1883−/* tok-528 %txt /tests/golden/types-prelude-direct/tokens/txt
1883+/* tok-528 %txt /tests/golden/types-partial-unresolved-tag/tokens/txt
1884−/* tre-528 %txt /tests/golden/types-prelude-direct/tree/txt
1884+/* tre-528 %txt /tests/golden/types-partial-unresolved-tag/tree/txt
1885−/* typ-528 %txt /tests/golden/types-prelude-direct/types/txt
1885+/* typ-528 %txt /tests/golden/types-partial-unresolved-tag/types/txt
1886−/* src-529 %jibb /tests/golden/types-prelude-functional/source/jibb
1886+/* src-529 %jibb /tests/golden/types-positional-faces/source/jibb
1887−/* tok-529 %txt /tests/golden/types-prelude-functional/tokens/txt
1887+/* tok-529 %txt /tests/golden/types-positional-faces/tokens/txt
1888−/* tre-529 %txt /tests/golden/types-prelude-functional/tree/txt
1888+/* tre-529 %txt /tests/golden/types-positional-faces/tree/txt
1889−/* typ-529 %txt /tests/golden/types-prelude-functional/types/txt
1889+/* typ-529 %txt /tests/golden/types-positional-faces/types/txt
1890−/* src-530 %jibb /tests/golden/types-prelude-generic-alias/source/jibb
1890+/* src-530 %jibb /tests/golden/types-prelude-arithmetic/source/jibb
1891−/* tok-530 %txt /tests/golden/types-prelude-generic-alias/tokens/txt
1891+/* tok-530 %txt /tests/golden/types-prelude-arithmetic/tokens/txt
1892−/* tre-530 %txt /tests/golden/types-prelude-generic-alias/tree/txt
1892+/* tre-530 %txt /tests/golden/types-prelude-arithmetic/tree/txt
1893−/* mod-530-1 %jibb /tests/golden/types-prelude-generic-alias/modules/ui/alias-helper/jibb
1893+/* typ-530 %txt /tests/golden/types-prelude-arithmetic/types/txt
1894−/* typ-530 %txt /tests/golden/types-prelude-generic-alias/types/txt
1894+/* src-531 %jibb /tests/golden/types-prelude-ask/source/jibb
1895−/* mtre-530 %txt /tests/golden/types-prelude-generic-alias/module-trees/txt
1895+/* tok-531 %txt /tests/golden/types-prelude-ask/tokens/txt
1896−/* src-531 %jibb /tests/golden/types-prelude-interface/source/jibb
1896+/* tre-531 %txt /tests/golden/types-prelude-ask/tree/txt
1897−/* tok-531 %txt /tests/golden/types-prelude-interface/tokens/txt
1897+/* typ-531 %txt /tests/golden/types-prelude-ask/types/txt
1898−/* tre-531 %txt /tests/golden/types-prelude-interface/tree/txt
1898+/* src-532 %jibb /tests/golden/types-prelude-bond/source/jibb
1899−/* mod-531-1 %jibb /tests/golden/types-prelude-interface/modules/ui/left/jibb
1899+/* tok-532 %txt /tests/golden/types-prelude-bond/tokens/txt
1900−/* mod-531-2 %jibb /tests/golden/types-prelude-interface/modules/ui/right/jibb
1900+/* tre-532 %txt /tests/golden/types-prelude-bond/tree/txt
1901−/* typ-531 %txt /tests/golden/types-prelude-interface/types/txt
1901+/* typ-532 %txt /tests/golden/types-prelude-bond/types/txt
1902−/* mtre-531 %txt /tests/golden/types-prelude-interface/module-trees/txt
1902+/* src-533 %jibb /tests/golden/types-prelude-cmd/source/jibb
1903−/* src-532 %jibb /tests/golden/types-prelude-like/source/jibb
1903+/* tok-533 %txt /tests/golden/types-prelude-cmd/tokens/txt
1904−/* tok-532 %txt /tests/golden/types-prelude-like/tokens/txt
1904+/* tre-533 %txt /tests/golden/types-prelude-cmd/tree/txt
1905−/* tre-532 %txt /tests/golden/types-prelude-like/tree/txt
1905+/* typ-533 %txt /tests/golden/types-prelude-cmd/types/txt
1906−/* typ-532 %txt /tests/golden/types-prelude-like/types/txt
1906+/* src-534 %jibb /tests/golden/types-prelude-direct/source/jibb
1907−/* src-533 %jibb /tests/golden/types-prelude-list-alias/source/jibb
1907+/* tok-534 %txt /tests/golden/types-prelude-direct/tokens/txt
1908−/* tok-533 %txt /tests/golden/types-prelude-list-alias/tokens/txt
1908+/* tre-534 %txt /tests/golden/types-prelude-direct/tree/txt
1909−/* tre-533 %txt /tests/golden/types-prelude-list-alias/tree/txt
1909+/* typ-534 %txt /tests/golden/types-prelude-direct/types/txt
1910−/* typ-533 %txt /tests/golden/types-prelude-list-alias/types/txt
1910+/* src-535 %jibb /tests/golden/types-prelude-functional/source/jibb
1911−/* src-534 %jibb /tests/golden/types-prelude-list-functions/source/jibb
1911+/* tok-535 %txt /tests/golden/types-prelude-functional/tokens/txt
1912−/* tok-534 %txt /tests/golden/types-prelude-list-functions/tokens/txt
1912+/* tre-535 %txt /tests/golden/types-prelude-functional/tree/txt
1913−/* tre-534 %txt /tests/golden/types-prelude-list-functions/tree/txt
1913+/* typ-535 %txt /tests/golden/types-prelude-functional/types/txt
1914−/* mod-534-1 %jibb /tests/golden/types-prelude-list-functions/modules/ui/lib/jibb
1914+/* src-536 %jibb /tests/golden/types-prelude-generic-alias/source/jibb
1915−/* typ-534 %txt /tests/golden/types-prelude-list-functions/types/txt
1915+/* tok-536 %txt /tests/golden/types-prelude-generic-alias/tokens/txt
1916−/* mtre-534 %txt /tests/golden/types-prelude-list-functions/module-trees/txt
1916+/* tre-536 %txt /tests/golden/types-prelude-generic-alias/tree/txt
1917−/* src-535 %jibb /tests/golden/types-prelude-list-helpers/source/jibb
1917+/* mod-536-1 %jibb /tests/golden/types-prelude-generic-alias/modules/ui/alias-helper/jibb
1918−/* tok-535 %txt /tests/golden/types-prelude-list-helpers/tokens/txt
1918+/* typ-536 %txt /tests/golden/types-prelude-generic-alias/types/txt
1919−/* tre-535 %txt /tests/golden/types-prelude-list-helpers/tree/txt
1919+/* mtre-536 %txt /tests/golden/types-prelude-generic-alias/module-trees/txt
1920−/* typ-535 %txt /tests/golden/types-prelude-list-helpers/types/txt
1920+/* src-537 %jibb /tests/golden/types-prelude-interface/source/jibb
1921−/* src-536 %jibb /tests/golden/types-prelude-predicates/source/jibb
1921+/* tok-537 %txt /tests/golden/types-prelude-interface/tokens/txt
1922−/* tok-536 %txt /tests/golden/types-prelude-predicates/tokens/txt
1922+/* tre-537 %txt /tests/golden/types-prelude-interface/tree/txt
1923−/* tre-536 %txt /tests/golden/types-prelude-predicates/tree/txt
1923+/* mod-537-1 %jibb /tests/golden/types-prelude-interface/modules/ui/left/jibb
1924−/* typ-536 %txt /tests/golden/types-prelude-predicates/types/txt
1924+/* mod-537-2 %jibb /tests/golden/types-prelude-interface/modules/ui/right/jibb
1925−/* src-537 %jibb /tests/golden/types-prelude-unit-helpers/source/jibb
1925+/* typ-537 %txt /tests/golden/types-prelude-interface/types/txt
1926−/* tok-537 %txt /tests/golden/types-prelude-unit-helpers/tokens/txt
1926+/* mtre-537 %txt /tests/golden/types-prelude-interface/module-trees/txt
1927−/* tre-537 %txt /tests/golden/types-prelude-unit-helpers/tree/txt
1927+/* src-538 %jibb /tests/golden/types-prelude-like/source/jibb
1928−/* typ-537 %txt /tests/golden/types-prelude-unit-helpers/types/txt
1928+/* tok-538 %txt /tests/golden/types-prelude-like/tokens/txt
1929−/* src-538 %jibb /tests/golden/types-proj-explicit-context/source/jibb
1929+/* tre-538 %txt /tests/golden/types-prelude-like/tree/txt
1930−/* tok-538 %txt /tests/golden/types-proj-explicit-context/tokens/txt
1930+/* typ-538 %txt /tests/golden/types-prelude-like/types/txt
1931−/* tre-538 %txt /tests/golden/types-proj-explicit-context/tree/txt
1931+/* src-539 %jibb /tests/golden/types-prelude-list-alias/source/jibb
1932−/* typ-538 %txt /tests/golden/types-proj-explicit-context/types/txt
1932+/* tok-539 %txt /tests/golden/types-prelude-list-alias/tokens/txt
1933−/* src-539 %jibb /tests/golden/types-proj-nested-no-implicit/source/jibb
1933+/* tre-539 %txt /tests/golden/types-prelude-list-alias/tree/txt
1934−/* tok-539 %txt /tests/golden/types-proj-nested-no-implicit/tokens/txt
1934+/* typ-539 %txt /tests/golden/types-prelude-list-alias/types/txt
1935−/* tre-539 %txt /tests/golden/types-proj-nested-no-implicit/tree/txt
1935+/* src-540 %jibb /tests/golden/types-prelude-list-functions/source/jibb
1936−/* typ-539 %txt /tests/golden/types-proj-nested-no-implicit/types/txt
1936+/* tok-540 %txt /tests/golden/types-prelude-list-functions/tokens/txt
1937−/* src-540 %jibb /tests/golden/types-proj-reserved-imported-definition/source/jibb
1937+/* tre-540 %txt /tests/golden/types-prelude-list-functions/tree/txt
1938−/* tok-540 %txt /tests/golden/types-proj-reserved-imported-definition/tokens/txt
1938+/* mod-540-1 %jibb /tests/golden/types-prelude-list-functions/modules/ui/lib/jibb
1939−/* tre-540 %txt /tests/golden/types-proj-reserved-imported-definition/tree/txt
1939+/* typ-540 %txt /tests/golden/types-prelude-list-functions/types/txt
1940−/* mod-540-1 %jibb /tests/golden/types-proj-reserved-imported-definition/modules/ui/lib/jibb
1940+/* mtre-540 %txt /tests/golden/types-prelude-list-functions/module-trees/txt
1941−/* typ-540 %txt /tests/golden/types-proj-reserved-imported-definition/types/txt
1941+/* src-541 %jibb /tests/golden/types-prelude-list-helpers/source/jibb
1942−/* mtre-540 %txt /tests/golden/types-proj-reserved-imported-definition/module-trees/txt
1942+/* tok-541 %txt /tests/golden/types-prelude-list-helpers/tokens/txt
1943−/* src-541 %jibb /tests/golden/types-proj-reserved-jibb-import/source/jibb
1943+/* tre-541 %txt /tests/golden/types-prelude-list-helpers/tree/txt
1944−/* tok-541 %txt /tests/golden/types-proj-reserved-jibb-import/tokens/txt
1944+/* typ-541 %txt /tests/golden/types-prelude-list-helpers/types/txt
1945−/* tre-541 %txt /tests/golden/types-proj-reserved-jibb-import/tree/txt
1945+/* src-542 %jibb /tests/golden/types-prelude-predicates/source/jibb
1946−/* mod-541-1 %jibb /tests/golden/types-proj-reserved-jibb-import/modules/ui/lib/jibb
1946+/* tok-542 %txt /tests/golden/types-prelude-predicates/tokens/txt
1947−/* typ-541 %txt /tests/golden/types-proj-reserved-jibb-import/types/txt
1947+/* tre-542 %txt /tests/golden/types-prelude-predicates/tree/txt
1948−/* mtre-541 %txt /tests/golden/types-proj-reserved-jibb-import/module-trees/txt
1948+/* typ-542 %txt /tests/golden/types-prelude-predicates/types/txt
1949−/* src-542 %jibb /tests/golden/types-proj-reserved-local/source/jibb
1949+/* src-543 %jibb /tests/golden/types-prelude-sub/source/jibb
1950−/* tok-542 %txt /tests/golden/types-proj-reserved-local/tokens/txt
1950+/* tok-543 %txt /tests/golden/types-prelude-sub/tokens/txt
1951−/* tre-542 %txt /tests/golden/types-proj-reserved-local/tree/txt
1951+/* tre-543 %txt /tests/golden/types-prelude-sub/tree/txt
1952−/* typ-542 %txt /tests/golden/types-proj-reserved-local/types/txt
1952+/* typ-543 %txt /tests/golden/types-prelude-sub/types/txt
1953−/* src-543 %jibb /tests/golden/types-proj-reserved-local-mold/source/jibb
1953+/* src-544 %jibb /tests/golden/types-prelude-unit-helpers/source/jibb
1954−/* tok-543 %txt /tests/golden/types-proj-reserved-local-mold/tokens/txt
1954+/* tok-544 %txt /tests/golden/types-prelude-unit-helpers/tokens/txt
1955−/* tre-543 %txt /tests/golden/types-proj-reserved-local-mold/tree/txt
1955+/* tre-544 %txt /tests/golden/types-prelude-unit-helpers/tree/txt
1956−/* typ-543 %txt /tests/golden/types-proj-reserved-local-mold/types/txt
1956+/* typ-544 %txt /tests/golden/types-prelude-unit-helpers/types/txt
1957−/* src-544 %jibb /tests/golden/types-proj-reserved-mark-import/source/jibb
1957+/* src-545 %jibb /tests/golden/types-proj-explicit-context/source/jibb
1958−/* tok-544 %txt /tests/golden/types-proj-reserved-mark-import/tokens/txt
1958+/* tok-545 %txt /tests/golden/types-proj-explicit-context/tokens/txt
1959−/* tre-544 %txt /tests/golden/types-proj-reserved-mark-import/tree/txt
1959+/* tre-545 %txt /tests/golden/types-proj-explicit-context/tree/txt
1960−/* typ-544 %txt /tests/golden/types-proj-reserved-mark-import/types/txt
1960+/* typ-545 %txt /tests/golden/types-proj-explicit-context/types/txt
1961−/* src-545 %jibb /tests/golden/types-proj-reserved-mold/source/jibb
1961+/* src-546 %jibb /tests/golden/types-proj-nested-no-implicit/source/jibb
1962−/* tok-545 %txt /tests/golden/types-proj-reserved-mold/tokens/txt
1962+/* tok-546 %txt /tests/golden/types-proj-nested-no-implicit/tokens/txt
1963−/* tre-545 %txt /tests/golden/types-proj-reserved-mold/tree/txt
1963+/* tre-546 %txt /tests/golden/types-proj-nested-no-implicit/tree/txt
1964−/* typ-545 %txt /tests/golden/types-proj-reserved-mold/types/txt
1964+/* typ-546 %txt /tests/golden/types-proj-nested-no-implicit/types/txt
1965−/* src-546 %jibb /tests/golden/types-proj-reserved-pattern/source/jibb
1965+/* src-547 %jibb /tests/golden/types-proj-reserved-imported-definition/source/jibb
1966−/* tok-546 %txt /tests/golden/types-proj-reserved-pattern/tokens/txt
1966+/* tok-547 %txt /tests/golden/types-proj-reserved-imported-definition/tokens/txt
1967−/* tre-546 %txt /tests/golden/types-proj-reserved-pattern/tree/txt
1967+/* tre-547 %txt /tests/golden/types-proj-reserved-imported-definition/tree/txt
1968−/* typ-546 %txt /tests/golden/types-proj-reserved-pattern/types/txt
1968+/* mod-547-1 %jibb /tests/golden/types-proj-reserved-imported-definition/modules/ui/lib/jibb
1969−/* src-547 %jibb /tests/golden/types-proj-reserved-positive/source/jibb
1969+/* typ-547 %txt /tests/golden/types-proj-reserved-imported-definition/types/txt
1970−/* tok-547 %txt /tests/golden/types-proj-reserved-positive/tokens/txt
1970+/* mtre-547 %txt /tests/golden/types-proj-reserved-imported-definition/module-trees/txt
1971−/* tre-547 %txt /tests/golden/types-proj-reserved-positive/tree/txt
1971+/* src-548 %jibb /tests/golden/types-proj-reserved-jibb-import/source/jibb
1972−/* typ-547 %txt /tests/golden/types-proj-reserved-positive/types/txt
1972+/* tok-548 %txt /tests/golden/types-proj-reserved-jibb-import/tokens/txt
1973−/* src-548 %jibb /tests/golden/types-proj-reserved-sample/source/jibb
1973+/* tre-548 %txt /tests/golden/types-proj-reserved-jibb-import/tree/txt
1974−/* tok-548 %txt /tests/golden/types-proj-reserved-sample/tokens/txt
1974+/* mod-548-1 %jibb /tests/golden/types-proj-reserved-jibb-import/modules/ui/lib/jibb
1975−/* tre-548 %txt /tests/golden/types-proj-reserved-sample/tree/txt
1975+/* typ-548 %txt /tests/golden/types-proj-reserved-jibb-import/types/txt
1976−/* typ-548 %txt /tests/golden/types-proj-reserved-sample/types/txt
1976+/* mtre-548 %txt /tests/golden/types-proj-reserved-jibb-import/module-trees/txt
1977−/* src-549 %jibb /tests/golden/types-proj-reserved-sur-import/source/jibb
1977+/* src-549 %jibb /tests/golden/types-proj-reserved-local/source/jibb
1978−/* tok-549 %txt /tests/golden/types-proj-reserved-sur-import/tokens/txt
1978+/* tok-549 %txt /tests/golden/types-proj-reserved-local/tokens/txt
1979−/* tre-549 %txt /tests/golden/types-proj-reserved-sur-import/tree/txt
1979+/* tre-549 %txt /tests/golden/types-proj-reserved-local/tree/txt
1980−/* typ-549 %txt /tests/golden/types-proj-reserved-sur-import/types/txt
1980+/* typ-549 %txt /tests/golden/types-proj-reserved-local/types/txt
1981−/* src-550 %jibb /tests/golden/types-proj-reserved-unused-pattern/source/jibb
1981+/* src-550 %jibb /tests/golden/types-proj-reserved-local-mold/source/jibb
1982−/* tok-550 %txt /tests/golden/types-proj-reserved-unused-pattern/tokens/txt
1982+/* tok-550 %txt /tests/golden/types-proj-reserved-local-mold/tokens/txt
1983−/* tre-550 %txt /tests/golden/types-proj-reserved-unused-pattern/tree/txt
1983+/* tre-550 %txt /tests/golden/types-proj-reserved-local-mold/tree/txt
1984−/* typ-550 %txt /tests/golden/types-proj-reserved-unused-pattern/types/txt
1984+/* typ-550 %txt /tests/golden/types-proj-reserved-local-mold/types/txt
1985−/* src-551 %jibb /tests/golden/types-proj-reserved-unused-sample/source/jibb
1985+/* src-551 %jibb /tests/golden/types-proj-reserved-mark-import/source/jibb
1986−/* tok-551 %txt /tests/golden/types-proj-reserved-unused-sample/tokens/txt
1986+/* tok-551 %txt /tests/golden/types-proj-reserved-mark-import/tokens/txt
1987−/* tre-551 %txt /tests/golden/types-proj-reserved-unused-sample/tree/txt
1987+/* tre-551 %txt /tests/golden/types-proj-reserved-mark-import/tree/txt
1988−/* typ-551 %txt /tests/golden/types-proj-reserved-unused-sample/types/txt
1988+/* typ-551 %txt /tests/golden/types-proj-reserved-mark-import/types/txt
1989−/* src-552 %jibb /tests/golden/types-proj-reserved-unused-value/source/jibb
1989+/* src-552 %jibb /tests/golden/types-proj-reserved-mold/source/jibb
1990−/* tok-552 %txt /tests/golden/types-proj-reserved-unused-value/tokens/txt
1990+/* tok-552 %txt /tests/golden/types-proj-reserved-mold/tokens/txt
1991−/* tre-552 %txt /tests/golden/types-proj-reserved-unused-value/tree/txt
1991+/* tre-552 %txt /tests/golden/types-proj-reserved-mold/tree/txt
1992−/* typ-552 %txt /tests/golden/types-proj-reserved-unused-value/types/txt
1992+/* typ-552 %txt /tests/golden/types-proj-reserved-mold/types/txt
1993−/* src-553 %jibb /tests/golden/types-proj-reserved-value/source/jibb
1993+/* src-553 %jibb /tests/golden/types-proj-reserved-pattern/source/jibb
1994−/* tok-553 %txt /tests/golden/types-proj-reserved-value/tokens/txt
1994+/* tok-553 %txt /tests/golden/types-proj-reserved-pattern/tokens/txt
1995−/* tre-553 %txt /tests/golden/types-proj-reserved-value/tree/txt
1995+/* tre-553 %txt /tests/golden/types-proj-reserved-pattern/tree/txt
1996−/* typ-553 %txt /tests/golden/types-proj-reserved-value/types/txt
1996+/* typ-553 %txt /tests/golden/types-proj-reserved-pattern/types/txt
1997−/* src-554 %jibb /tests/golden/types-proj-single-duplicate/source/jibb
1997+/* src-554 %jibb /tests/golden/types-proj-reserved-positive/source/jibb
1998−/* tok-554 %txt /tests/golden/types-proj-single-duplicate/tokens/txt
1998+/* tok-554 %txt /tests/golden/types-proj-reserved-positive/tokens/txt
1999−/* tre-554 %txt /tests/golden/types-proj-single-duplicate/tree/txt
1999+/* tre-554 %txt /tests/golden/types-proj-reserved-positive/tree/txt
2000−/* typ-554 %txt /tests/golden/types-proj-single-duplicate/types/txt
2000+/* typ-554 %txt /tests/golden/types-proj-reserved-positive/types/txt
2001−/* src-555 %jibb /tests/golden/types-proj-single-field/source/jibb
2001+/* src-555 %jibb /tests/golden/types-proj-reserved-sample/source/jibb
2002−/* tok-555 %txt /tests/golden/types-proj-single-field/tokens/txt
2002+/* tok-555 %txt /tests/golden/types-proj-reserved-sample/tokens/txt
2003−/* tre-555 %txt /tests/golden/types-proj-single-field/tree/txt
2003+/* tre-555 %txt /tests/golden/types-proj-reserved-sample/tree/txt
2004−/* typ-555 %txt /tests/golden/types-proj-single-field/types/txt
2004+/* typ-555 %txt /tests/golden/types-proj-reserved-sample/types/txt
2005−/* src-556 %jibb /tests/golden/types-proj-single-sample-face/source/jibb
2005+/* src-556 %jibb /tests/golden/types-proj-reserved-sur-import/source/jibb
2006−/* tok-556 %txt /tests/golden/types-proj-single-sample-face/tokens/txt
2006+/* tok-556 %txt /tests/golden/types-proj-reserved-sur-import/tokens/txt
2007−/* tre-556 %txt /tests/golden/types-proj-single-sample-face/tree/txt
2007+/* tre-556 %txt /tests/golden/types-proj-reserved-sur-import/tree/txt
2008−/* typ-556 %txt /tests/golden/types-proj-single-sample-face/types/txt
2008+/* typ-556 %txt /tests/golden/types-proj-reserved-sur-import/types/txt
2009−/* src-557 %jibb /tests/golden/types-proj-single-wrapped/source/jibb
2009+/* src-557 %jibb /tests/golden/types-proj-reserved-unused-pattern/source/jibb
2010−/* tok-557 %txt /tests/golden/types-proj-single-wrapped/tokens/txt
2010+/* tok-557 %txt /tests/golden/types-proj-reserved-unused-pattern/tokens/txt
2011−/* tre-557 %txt /tests/golden/types-proj-single-wrapped/tree/txt
2011+/* tre-557 %txt /tests/golden/types-proj-reserved-unused-pattern/tree/txt
2012−/* typ-557 %txt /tests/golden/types-proj-single-wrapped/types/txt
2012+/* typ-557 %txt /tests/golden/types-proj-reserved-unused-pattern/types/txt
2013−/* src-558 %jibb /tests/golden/types-qath-faces/source/jibb
2013+/* src-558 %jibb /tests/golden/types-proj-reserved-unused-sample/source/jibb
2014−/* tok-558 %txt /tests/golden/types-qath-faces/tokens/txt
2014+/* tok-558 %txt /tests/golden/types-proj-reserved-unused-sample/tokens/txt
2015−/* tre-558 %txt /tests/golden/types-qath-faces/tree/txt
2015+/* tre-558 %txt /tests/golden/types-proj-reserved-unused-sample/tree/txt
2016−/* typ-558 %txt /tests/golden/types-qath-faces/types/txt
2016+/* typ-558 %txt /tests/golden/types-proj-reserved-unused-sample/types/txt
2017−/* src-559 %jibb /tests/golden/types-qath-holes/source/jibb
2017+/* src-559 %jibb /tests/golden/types-proj-reserved-unused-value/source/jibb
2018−/* tok-559 %txt /tests/golden/types-qath-holes/tokens/txt
2018+/* tok-559 %txt /tests/golden/types-proj-reserved-unused-value/tokens/txt
2019−/* tre-559 %txt /tests/golden/types-qath-holes/tree/txt
2019+/* tre-559 %txt /tests/golden/types-proj-reserved-unused-value/tree/txt
2020−/* typ-559 %txt /tests/golden/types-qath-holes/types/txt
2020+/* typ-559 %txt /tests/golden/types-proj-reserved-unused-value/types/txt
2021−/* src-560 %jibb /tests/golden/types-qath-module-identity/source/jibb
2021+/* src-560 %jibb /tests/golden/types-proj-reserved-value/source/jibb
2022−/* tok-560 %txt /tests/golden/types-qath-module-identity/tokens/txt
2022+/* tok-560 %txt /tests/golden/types-proj-reserved-value/tokens/txt
2023−/* tre-560 %txt /tests/golden/types-qath-module-identity/tree/txt
2023+/* tre-560 %txt /tests/golden/types-proj-reserved-value/tree/txt
2024−/* mod-560-1 %jibb /tests/golden/types-qath-module-identity/modules/ui/one/jibb
2024+/* typ-560 %txt /tests/golden/types-proj-reserved-value/types/txt
2025−/* mod-560-2 %jibb /tests/golden/types-qath-module-identity/modules/ui/two/jibb
2025+/* src-561 %jibb /tests/golden/types-proj-single-duplicate/source/jibb
2026−/* mod-560-3 %jibb /tests/golden/types-qath-module-identity/modules/ui/mid/jibb
2026+/* tok-561 %txt /tests/golden/types-proj-single-duplicate/tokens/txt
2027−/* typ-560 %txt /tests/golden/types-qath-module-identity/types/txt
2027+/* tre-561 %txt /tests/golden/types-proj-single-duplicate/tree/txt
2028−/* mtre-560 %txt /tests/golden/types-qath-module-identity/module-trees/txt
2028+/* typ-561 %txt /tests/golden/types-proj-single-duplicate/types/txt
2029−/* src-561 %jibb /tests/golden/types-qath-recursive/source/jibb
2029+/* src-562 %jibb /tests/golden/types-proj-single-field/source/jibb
2030−/* tok-561 %txt /tests/golden/types-qath-recursive/tokens/txt
2030+/* tok-562 %txt /tests/golden/types-proj-single-field/tokens/txt
2031−/* tre-561 %txt /tests/golden/types-qath-recursive/tree/txt
2031+/* tre-562 %txt /tests/golden/types-proj-single-field/tree/txt
2032−/* typ-561 %txt /tests/golden/types-qath-recursive/types/txt
2032+/* typ-562 %txt /tests/golden/types-proj-single-field/types/txt
2033−/* src-562 %jibb /tests/golden/types-record-bound-variable/source/jibb
2033+/* src-563 %jibb /tests/golden/types-proj-single-sample-face/source/jibb
2034−/* tok-562 %txt /tests/golden/types-record-bound-variable/tokens/txt
2034+/* tok-563 %txt /tests/golden/types-proj-single-sample-face/tokens/txt
2035−/* tre-562 %txt /tests/golden/types-record-bound-variable/tree/txt
2035+/* tre-563 %txt /tests/golden/types-proj-single-sample-face/tree/txt
2036−/* typ-562 %txt /tests/golden/types-record-bound-variable/types/txt
2036+/* typ-563 %txt /tests/golden/types-proj-single-sample-face/types/txt
2037−/* src-563 %jibb /tests/golden/types-record-cast-context/source/jibb
2037+/* src-564 %jibb /tests/golden/types-proj-single-wrapped/source/jibb
2038−/* tok-563 %txt /tests/golden/types-record-cast-context/tokens/txt
2038+/* tok-564 %txt /tests/golden/types-proj-single-wrapped/tokens/txt
2039−/* tre-563 %txt /tests/golden/types-record-cast-context/tree/txt
2039+/* tre-564 %txt /tests/golden/types-proj-single-wrapped/tree/txt
2040−/* typ-563 %txt /tests/golden/types-record-cast-context/types/txt
2040+/* typ-564 %txt /tests/golden/types-proj-single-wrapped/types/txt
2041−/* src-564 %jibb /tests/golden/types-record-change/source/jibb
2041+/* src-565 %jibb /tests/golden/types-qath-faces/source/jibb
2042−/* tok-564 %txt /tests/golden/types-record-change/tokens/txt
2042+/* tok-565 %txt /tests/golden/types-qath-faces/tokens/txt
2043−/* tre-564 %txt /tests/golden/types-record-change/tree/txt
2043+/* tre-565 %txt /tests/golden/types-qath-faces/tree/txt
2044−/* typ-564 %txt /tests/golden/types-record-change/types/txt
2044+/* typ-565 %txt /tests/golden/types-qath-faces/types/txt
2045−/* src-565 %jibb /tests/golden/types-record-change-generic/source/jibb
2045+/* src-566 %jibb /tests/golden/types-qath-holes/source/jibb
2046−/* tok-565 %txt /tests/golden/types-record-change-generic/tokens/txt
2046+/* tok-566 %txt /tests/golden/types-qath-holes/tokens/txt
2047−/* tre-565 %txt /tests/golden/types-record-change-generic/tree/txt
2047+/* tre-566 %txt /tests/golden/types-qath-holes/tree/txt
2048−/* typ-565 %txt /tests/golden/types-record-change-generic/types/txt
2048+/* typ-566 %txt /tests/golden/types-qath-holes/types/txt
2049−/* src-566 %jibb /tests/golden/types-record-faces/source/jibb
2049+/* src-567 %jibb /tests/golden/types-qath-module-identity/source/jibb
2050−/* tok-566 %txt /tests/golden/types-record-faces/tokens/txt
2050+/* tok-567 %txt /tests/golden/types-qath-module-identity/tokens/txt
2051−/* tre-566 %txt /tests/golden/types-record-faces/tree/txt
2051+/* tre-567 %txt /tests/golden/types-qath-module-identity/tree/txt
2052−/* typ-566 %txt /tests/golden/types-record-faces/types/txt
2052+/* mod-567-1 %jibb /tests/golden/types-qath-module-identity/modules/ui/one/jibb
2053−/* src-567 %jibb /tests/golden/types-record-field-edit-separate/source/jibb
2053+/* mod-567-2 %jibb /tests/golden/types-qath-module-identity/modules/ui/two/jibb
2054−/* tok-567 %txt /tests/golden/types-record-field-edit-separate/tokens/txt
2054+/* mod-567-3 %jibb /tests/golden/types-qath-module-identity/modules/ui/mid/jibb
2055−/* tre-567 %txt /tests/golden/types-record-field-edit-separate/tree/txt
2055+/* typ-567 %txt /tests/golden/types-qath-module-identity/types/txt
2056−/* typ-567 %txt /tests/golden/types-record-field-edit-separate/types/txt
2056+/* mtre-567 %txt /tests/golden/types-qath-module-identity/module-trees/txt
2057−/* src-568 %jibb /tests/golden/types-record-field-expr-duplicate/source/jibb
2057+/* src-568 %jibb /tests/golden/types-qath-recursive/source/jibb
2058−/* tok-568 %txt /tests/golden/types-record-field-expr-duplicate/tokens/txt
2058+/* tok-568 %txt /tests/golden/types-qath-recursive/tokens/txt
2059−/* tre-568 %txt /tests/golden/types-record-field-expr-duplicate/tree/txt
2059+/* tre-568 %txt /tests/golden/types-qath-recursive/tree/txt
2060−/* typ-568 %txt /tests/golden/types-record-field-expr-duplicate/types/txt
2060+/* typ-568 %txt /tests/golden/types-qath-recursive/types/txt
2061−/* src-569 %jibb /tests/golden/types-record-field-expr-separate/source/jibb
2061+/* src-569 %jibb /tests/golden/types-record-bound-variable/source/jibb
2062−/* tok-569 %txt /tests/golden/types-record-field-expr-separate/tokens/txt
2062+/* tok-569 %txt /tests/golden/types-record-bound-variable/tokens/txt
2063−/* tre-569 %txt /tests/golden/types-record-field-expr-separate/tree/txt
2063+/* tre-569 %txt /tests/golden/types-record-bound-variable/tree/txt
2064−/* typ-569 %txt /tests/golden/types-record-field-expr-separate/types/txt
2064+/* typ-569 %txt /tests/golden/types-record-bound-variable/types/txt
2065−/* src-570 %jibb /tests/golden/types-record-field-module-reachable/source/jibb
2065+/* src-570 %jibb /tests/golden/types-record-cast-context/source/jibb
2066−/* tok-570 %txt /tests/golden/types-record-field-module-reachable/tokens/txt
2066+/* tok-570 %txt /tests/golden/types-record-cast-context/tokens/txt
2067−/* tre-570 %txt /tests/golden/types-record-field-module-reachable/tree/txt
2067+/* tre-570 %txt /tests/golden/types-record-cast-context/tree/txt
2068−/* mod-570-1 %jibb /tests/golden/types-record-field-module-reachable/modules/ui/lib/jibb
2068+/* typ-570 %txt /tests/golden/types-record-cast-context/types/txt
2069−/* typ-570 %txt /tests/golden/types-record-field-module-reachable/types/txt
2069+/* src-571 %jibb /tests/golden/types-record-change/source/jibb
2070−/* mtre-570 %txt /tests/golden/types-record-field-module-reachable/module-trees/txt
2070+/* tok-571 %txt /tests/golden/types-record-change/tokens/txt
2071−/* src-571 %jibb /tests/golden/types-record-field-module-unused/source/jibb
2071+/* tre-571 %txt /tests/golden/types-record-change/tree/txt
2072−/* tok-571 %txt /tests/golden/types-record-field-module-unused/tokens/txt
2072+/* typ-571 %txt /tests/golden/types-record-change/types/txt
2073−/* tre-571 %txt /tests/golden/types-record-field-module-unused/tree/txt
2073+/* src-572 %jibb /tests/golden/types-record-change-generic/source/jibb
2074−/* mod-571-1 %jibb /tests/golden/types-record-field-module-unused/modules/ui/good/jibb
2074+/* tok-572 %txt /tests/golden/types-record-change-generic/tokens/txt
2075−/* mod-571-2 %jibb /tests/golden/types-record-field-module-unused/modules/ui/unused/jibb
2075+/* tre-572 %txt /tests/golden/types-record-change-generic/tree/txt
2076−/* typ-571 %txt /tests/golden/types-record-field-module-unused/types/txt
2076+/* typ-572 %txt /tests/golden/types-record-change-generic/types/txt
2077−/* mtre-571 %txt /tests/golden/types-record-field-module-unused/module-trees/txt
2077+/* src-573 %jibb /tests/golden/types-record-faces/source/jibb
2078−/* src-572 %jibb /tests/golden/types-record-field-nested-mold/source/jibb
2078+/* tok-573 %txt /tests/golden/types-record-faces/tokens/txt
2079−/* tok-572 %txt /tests/golden/types-record-field-nested-mold/tokens/txt
2079+/* tre-573 %txt /tests/golden/types-record-faces/tree/txt
2080−/* tre-572 %txt /tests/golden/types-record-field-nested-mold/tree/txt
2080+/* typ-573 %txt /tests/golden/types-record-faces/types/txt
2081−/* typ-572 %txt /tests/golden/types-record-field-nested-mold/types/txt
2081+/* src-574 %jibb /tests/golden/types-record-field-edit-separate/source/jibb
2082−/* src-573 %jibb /tests/golden/types-record-field-outer-inner/source/jibb
2082+/* tok-574 %txt /tests/golden/types-record-field-edit-separate/tokens/txt
2083−/* tok-573 %txt /tests/golden/types-record-field-outer-inner/tokens/txt
2083+/* tre-574 %txt /tests/golden/types-record-field-edit-separate/tree/txt
2084−/* tre-573 %txt /tests/golden/types-record-field-outer-inner/tree/txt
2084+/* typ-574 %txt /tests/golden/types-record-field-edit-separate/types/txt
2085−/* typ-573 %txt /tests/golden/types-record-field-outer-inner/types/txt
2085+/* src-575 %jibb /tests/golden/types-record-field-expr-duplicate/source/jibb
2086−/* src-574 %jibb /tests/golden/types-record-field-sample-duplicate/source/jibb
2086+/* tok-575 %txt /tests/golden/types-record-field-expr-duplicate/tokens/txt
2087−/* tok-574 %txt /tests/golden/types-record-field-sample-duplicate/tokens/txt
2087+/* tre-575 %txt /tests/golden/types-record-field-expr-duplicate/tree/txt
2088−/* tre-574 %txt /tests/golden/types-record-field-sample-duplicate/tree/txt
2088+/* typ-575 %txt /tests/golden/types-record-field-expr-duplicate/types/txt
2089−/* typ-574 %txt /tests/golden/types-record-field-sample-duplicate/types/txt
2089+/* src-576 %jibb /tests/golden/types-record-field-expr-separate/source/jibb
2090−/* src-575 %jibb /tests/golden/types-record-field-separate-molds/source/jibb
2090+/* tok-576 %txt /tests/golden/types-record-field-expr-separate/tokens/txt
2091−/* tok-575 %txt /tests/golden/types-record-field-separate-molds/tokens/txt
2091+/* tre-576 %txt /tests/golden/types-record-field-expr-separate/tree/txt
2092−/* tre-575 %txt /tests/golden/types-record-field-separate-molds/tree/txt
2092+/* typ-576 %txt /tests/golden/types-record-field-expr-separate/types/txt
2093−/* typ-575 %txt /tests/golden/types-record-field-separate-molds/types/txt
2093+/* src-577 %jibb /tests/golden/types-record-field-module-reachable/source/jibb
2094−/* src-576 %jibb /tests/golden/types-record-field-unused-mold/source/jibb
2094+/* tok-577 %txt /tests/golden/types-record-field-module-reachable/tokens/txt
2095−/* tok-576 %txt /tests/golden/types-record-field-unused-mold/tokens/txt
2095+/* tre-577 %txt /tests/golden/types-record-field-module-reachable/tree/txt
2096−/* tre-576 %txt /tests/golden/types-record-field-unused-mold/tree/txt
2096+/* mod-577-1 %jibb /tests/golden/types-record-field-module-reachable/modules/ui/lib/jibb
2097−/* typ-576 %txt /tests/golden/types-record-field-unused-mold/types/txt
2097+/* typ-577 %txt /tests/golden/types-record-field-module-reachable/types/txt
2098−/* src-577 %jibb /tests/golden/types-record-import/source/jibb
2098+/* mtre-577 %txt /tests/golden/types-record-field-module-reachable/module-trees/txt
2099−/* tok-577 %txt /tests/golden/types-record-import/tokens/txt
2099+/* src-578 %jibb /tests/golden/types-record-field-module-unused/source/jibb
2100−/* tre-577 %txt /tests/golden/types-record-import/tree/txt
2100+/* tok-578 %txt /tests/golden/types-record-field-module-unused/tokens/txt
2101−/* mod-577-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
2101+/* tre-578 %txt /tests/golden/types-record-field-module-unused/tree/txt
2102−/* typ-577 %txt /tests/golden/types-record-import/types/txt
2102+/* mod-578-1 %jibb /tests/golden/types-record-field-module-unused/modules/ui/good/jibb
2103−/* mtre-577 %txt /tests/golden/types-record-import/module-trees/txt
2103+/* mod-578-2 %jibb /tests/golden/types-record-field-module-unused/modules/ui/unused/jibb
2104−/* src-578 %jibb /tests/golden/types-record-local-scheme/source/jibb
2104+/* typ-578 %txt /tests/golden/types-record-field-module-unused/types/txt
2105−/* tok-578 %txt /tests/golden/types-record-local-scheme/tokens/txt
2105+/* mtre-578 %txt /tests/golden/types-record-field-module-unused/module-trees/txt
2106−/* tre-578 %txt /tests/golden/types-record-local-scheme/tree/txt
2106+/* src-579 %jibb /tests/golden/types-record-field-nested-mold/source/jibb
2107−/* typ-578 %txt /tests/golden/types-record-local-scheme/types/txt
2107+/* tok-579 %txt /tests/golden/types-record-field-nested-mold/tokens/txt
2108−/* src-579 %jibb /tests/golden/types-record-nested/source/jibb
2108+/* tre-579 %txt /tests/golden/types-record-field-nested-mold/tree/txt
2109−/* tok-579 %txt /tests/golden/types-record-nested/tokens/txt
2109+/* typ-579 %txt /tests/golden/types-record-field-nested-mold/types/txt
2110−/* tre-579 %txt /tests/golden/types-record-nested/tree/txt
2110+/* src-580 %jibb /tests/golden/types-record-field-outer-inner/source/jibb
2111−/* typ-579 %txt /tests/golden/types-record-nested/types/txt
2111+/* tok-580 %txt /tests/golden/types-record-field-outer-inner/tokens/txt
2112−/* src-580 %jibb /tests/golden/types-record-to-tuple/source/jibb
2112+/* tre-580 %txt /tests/golden/types-record-field-outer-inner/tree/txt
2113−/* tok-580 %txt /tests/golden/types-record-to-tuple/tokens/txt
2113+/* typ-580 %txt /tests/golden/types-record-field-outer-inner/types/txt
2114−/* tre-580 %txt /tests/golden/types-record-to-tuple/tree/txt
2114+/* src-581 %jibb /tests/golden/types-record-field-sample-duplicate/source/jibb
2115−/* typ-580 %txt /tests/golden/types-record-to-tuple/types/txt
2115+/* tok-581 %txt /tests/golden/types-record-field-sample-duplicate/tokens/txt
2116−/* src-581 %jibb /tests/golden/types-recursion-scc-failures/source/jibb
2116+/* tre-581 %txt /tests/golden/types-record-field-sample-duplicate/tree/txt
2117−/* tok-581 %txt /tests/golden/types-recursion-scc-failures/tokens/txt
2117+/* typ-581 %txt /tests/golden/types-record-field-sample-duplicate/types/txt
2118−/* tre-581 %txt /tests/golden/types-recursion-scc-failures/tree/txt
2118+/* src-582 %jibb /tests/golden/types-record-field-separate-molds/source/jibb
2119−/* typ-581 %txt /tests/golden/types-recursion-scc-failures/types/txt
2119+/* tok-582 %txt /tests/golden/types-record-field-separate-molds/tokens/txt
2120−/* src-582 %jibb /tests/golden/types-recursion-scc-groups/source/jibb
2120+/* tre-582 %txt /tests/golden/types-record-field-separate-molds/tree/txt
2121−/* tok-582 %txt /tests/golden/types-recursion-scc-groups/tokens/txt
2121+/* typ-582 %txt /tests/golden/types-record-field-separate-molds/types/txt
2122−/* tre-582 %txt /tests/golden/types-recursion-scc-groups/tree/txt
2122+/* src-583 %jibb /tests/golden/types-record-field-unused-mold/source/jibb
2123−/* typ-582 %txt /tests/golden/types-recursion-scc-groups/types/txt
2123+/* tok-583 %txt /tests/golden/types-record-field-unused-mold/tokens/txt
2124−/* src-583 %jibb /tests/golden/types-recursion-scc-import/source/jibb
2124+/* tre-583 %txt /tests/golden/types-record-field-unused-mold/tree/txt
2125−/* tok-583 %txt /tests/golden/types-recursion-scc-import/tokens/txt
2125+/* typ-583 %txt /tests/golden/types-record-field-unused-mold/types/txt
2126−/* tre-583 %txt /tests/golden/types-recursion-scc-import/tree/txt
2126+/* src-584 %jibb /tests/golden/types-record-import/source/jibb
2127−/* mod-583-1 %jibb /tests/golden/types-recursion-scc-import/modules/ui/lib/jibb
2127+/* tok-584 %txt /tests/golden/types-record-import/tokens/txt
2128−/* typ-583 %txt /tests/golden/types-recursion-scc-import/types/txt
2128+/* tre-584 %txt /tests/golden/types-record-import/tree/txt
2129−/* mtre-583 %txt /tests/golden/types-recursion-scc-import/module-trees/txt
2129+/* mod-584-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
2130−/* src-584 %jibb /tests/golden/types-recursion-scc-import-bad/source/jibb
2130+/* typ-584 %txt /tests/golden/types-record-import/types/txt
2131−/* tok-584 %txt /tests/golden/types-recursion-scc-import-bad/tokens/txt
2131+/* mtre-584 %txt /tests/golden/types-record-import/module-trees/txt
2132−/* tre-584 %txt /tests/golden/types-recursion-scc-import-bad/tree/txt
2132+/* src-585 %jibb /tests/golden/types-record-local-scheme/source/jibb
2133−/* mod-584-1 %jibb /tests/golden/types-recursion-scc-import-bad/modules/ui/lib/jibb
2133+/* tok-585 %txt /tests/golden/types-record-local-scheme/tokens/txt
2134−/* typ-584 %txt /tests/golden/types-recursion-scc-import-bad/types/txt
2134+/* tre-585 %txt /tests/golden/types-record-local-scheme/tree/txt
2135−/* mtre-584 %txt /tests/golden/types-recursion-scc-import-bad/module-trees/txt
2135+/* typ-585 %txt /tests/golden/types-record-local-scheme/types/txt
2136−/* src-585 %jibb /tests/golden/types-recursion-scc-local/source/jibb
2136+/* src-586 %jibb /tests/golden/types-record-nested/source/jibb
2137−/* tok-585 %txt /tests/golden/types-recursion-scc-local/tokens/txt
2137+/* tok-586 %txt /tests/golden/types-record-nested/tokens/txt
2138−/* tre-585 %txt /tests/golden/types-recursion-scc-local/tree/txt
2138+/* tre-586 %txt /tests/golden/types-record-nested/tree/txt
2139−/* typ-585 %txt /tests/golden/types-recursion-scc-local/types/txt
2139+/* typ-586 %txt /tests/golden/types-record-nested/types/txt
2140−/* src-586 %jibb /tests/golden/types-recursion-scc-order/source/jibb
2140+/* src-587 %jibb /tests/golden/types-record-to-tuple/source/jibb
2141−/* tok-586 %txt /tests/golden/types-recursion-scc-order/tokens/txt
2141+/* tok-587 %txt /tests/golden/types-record-to-tuple/tokens/txt
2142−/* tre-586 %txt /tests/golden/types-recursion-scc-order/tree/txt
2142+/* tre-587 %txt /tests/golden/types-record-to-tuple/tree/txt
2143−/* typ-586 %txt /tests/golden/types-recursion-scc-order/types/txt
2143+/* typ-587 %txt /tests/golden/types-record-to-tuple/types/txt
2144−/* src-587 %jibb /tests/golden/types-recursion-scc-shadow/source/jibb
2144+/* src-588 %jibb /tests/golden/types-recursion-scc-failures/source/jibb
2145−/* tok-587 %txt /tests/golden/types-recursion-scc-shadow/tokens/txt
2145+/* tok-588 %txt /tests/golden/types-recursion-scc-failures/tokens/txt
2146−/* tre-587 %txt /tests/golden/types-recursion-scc-shadow/tree/txt
2146+/* tre-588 %txt /tests/golden/types-recursion-scc-failures/tree/txt
2147−/* typ-587 %txt /tests/golden/types-recursion-scc-shadow/types/txt
2147+/* typ-588 %txt /tests/golden/types-recursion-scc-failures/types/txt
2148−/* src-588 %jibb /tests/golden/types-recursive-branch/source/jibb
2148+/* src-589 %jibb /tests/golden/types-recursion-scc-groups/source/jibb
2149−/* tok-588 %txt /tests/golden/types-recursive-branch/tokens/txt
2149+/* tok-589 %txt /tests/golden/types-recursion-scc-groups/tokens/txt
2150−/* tre-588 %txt /tests/golden/types-recursive-branch/tree/txt
2150+/* tre-589 %txt /tests/golden/types-recursion-scc-groups/tree/txt
2151−/* typ-588 %txt /tests/golden/types-recursive-branch/types/txt
2151+/* typ-589 %txt /tests/golden/types-recursion-scc-groups/types/txt
2152−/* src-589 %jibb /tests/golden/types-recursive-gate/source/jibb
2152+/* src-590 %jibb /tests/golden/types-recursion-scc-import/source/jibb
2153−/* tok-589 %txt /tests/golden/types-recursive-gate/tokens/txt
2153+/* tok-590 %txt /tests/golden/types-recursion-scc-import/tokens/txt
2154−/* tre-589 %txt /tests/golden/types-recursive-gate/tree/txt
2154+/* tre-590 %txt /tests/golden/types-recursion-scc-import/tree/txt
2155−/* typ-589 %txt /tests/golden/types-recursive-gate/types/txt
2155+/* mod-590-1 %jibb /tests/golden/types-recursion-scc-import/modules/ui/lib/jibb
2156−/* src-590 %jibb /tests/golden/types-recursive-sample/source/jibb
2156+/* typ-590 %txt /tests/golden/types-recursion-scc-import/types/txt
2157−/* tok-590 %txt /tests/golden/types-recursive-sample/tokens/txt
2157+/* mtre-590 %txt /tests/golden/types-recursion-scc-import/module-trees/txt
2158−/* tre-590 %txt /tests/golden/types-recursive-sample/tree/txt
2158+/* src-591 %jibb /tests/golden/types-recursion-scc-import-bad/source/jibb
2159−/* typ-590 %txt /tests/golden/types-recursive-sample/types/txt
2159+/* tok-591 %txt /tests/golden/types-recursion-scc-import-bad/tokens/txt
2160−/* src-591 %jibb /tests/golden/types-request-normal/source/jibb
2160+/* tre-591 %txt /tests/golden/types-recursion-scc-import-bad/tree/txt
2161−/* tok-591 %txt /tests/golden/types-request-normal/tokens/txt
2161+/* mod-591-1 %jibb /tests/golden/types-recursion-scc-import-bad/modules/ui/lib/jibb
2162−/* tre-591 %txt /tests/golden/types-request-normal/tree/txt
2162+/* typ-591 %txt /tests/golden/types-recursion-scc-import-bad/types/txt
2163−/* mod-591-1 %jibb /tests/golden/types-request-normal/modules/ui/api/demo/jibb
2163+/* mtre-591 %txt /tests/golden/types-recursion-scc-import-bad/module-trees/txt
2164−/* typ-591 %txt /tests/golden/types-request-normal/types/txt
2164+/* src-592 %jibb /tests/golden/types-recursion-scc-local/source/jibb
2165−/* mark-591-1 %txt /tests/golden/types-request-normal/mar/full/txt
2165+/* tok-592 %txt /tests/golden/types-recursion-scc-local/tokens/txt
2166−/* mtre-591 %txt /tests/golden/types-request-normal/module-trees/txt
2166+/* tre-592 %txt /tests/golden/types-recursion-scc-local/tree/txt
2167−/* src-592 %jibb /tests/golden/types-scope-library-poke/source/jibb
2167+/* typ-592 %txt /tests/golden/types-recursion-scc-local/types/txt
2168−/* tok-592 %txt /tests/golden/types-scope-library-poke/tokens/txt
2168+/* src-593 %jibb /tests/golden/types-recursion-scc-order/source/jibb
2169−/* tre-592 %txt /tests/golden/types-scope-library-poke/tree/txt
2169+/* tok-593 %txt /tests/golden/types-recursion-scc-order/tokens/txt
2170−/* typ-592 %txt /tests/golden/types-scope-library-poke/types/txt
2170+/* tre-593 %txt /tests/golden/types-recursion-scc-order/tree/txt
2171−/* src-593 %jibb /tests/golden/types-scope-root-api/source/jibb
2171+/* typ-593 %txt /tests/golden/types-recursion-scc-order/types/txt
2172−/* tok-593 %txt /tests/golden/types-scope-root-api/tokens/txt
2172+/* src-594 %jibb /tests/golden/types-recursion-scc-shadow/source/jibb
2173−/* tre-593 %txt /tests/golden/types-scope-root-api/tree/txt
2173+/* tok-594 %txt /tests/golden/types-recursion-scc-shadow/tokens/txt
2174−/* typ-593 %txt /tests/golden/types-scope-root-api/types/txt
2174+/* tre-594 %txt /tests/golden/types-recursion-scc-shadow/tree/txt
2175−/* src-594 %jibb /tests/golden/types-scope-store-duplicate/source/jibb
2175+/* typ-594 %txt /tests/golden/types-recursion-scc-shadow/types/txt
2176−/* tok-594 %txt /tests/golden/types-scope-store-duplicate/tokens/txt
2176+/* src-595 %jibb /tests/golden/types-recursive-branch/source/jibb
2177−/* tre-594 %txt /tests/golden/types-scope-store-duplicate/tree/txt
2177+/* tok-595 %txt /tests/golden/types-recursive-branch/tokens/txt
2178−/* typ-594 %txt /tests/golden/types-scope-store-duplicate/types/txt
2178+/* tre-595 %txt /tests/golden/types-recursive-branch/tree/txt
2179−/* src-595 %jibb /tests/golden/types-scope-store-shadow/source/jibb
2179+/* typ-595 %txt /tests/golden/types-recursive-branch/types/txt
2180−/* tok-595 %txt /tests/golden/types-scope-store-shadow/tokens/txt
2180+/* src-596 %jibb /tests/golden/types-recursive-gate/source/jibb
2181−/* tre-595 %txt /tests/golden/types-scope-store-shadow/tree/txt
2181+/* tok-596 %txt /tests/golden/types-recursive-gate/tokens/txt
2182−/* typ-595 %txt /tests/golden/types-scope-store-shadow/types/txt
2182+/* tre-596 %txt /tests/golden/types-recursive-gate/tree/txt
2183−/* src-596 %jibb /tests/golden/types-single-case-pattern/source/jibb
2183+/* typ-596 %txt /tests/golden/types-recursive-gate/types/txt
2184−/* tok-596 %txt /tests/golden/types-single-case-pattern/tokens/txt
2184+/* src-597 %jibb /tests/golden/types-recursive-sample/source/jibb
2185−/* tre-596 %txt /tests/golden/types-single-case-pattern/tree/txt
2185+/* tok-597 %txt /tests/golden/types-recursive-sample/tokens/txt
2186−/* typ-596 %txt /tests/golden/types-single-case-pattern/types/txt
2186+/* tre-597 %txt /tests/golden/types-recursive-sample/tree/txt
2187−/* src-597 %jibb /tests/golden/types-string-interpolation/source/jibb
2187+/* typ-597 %txt /tests/golden/types-recursive-sample/types/txt
2188−/* tok-597 %txt /tests/golden/types-string-interpolation/tokens/txt
2188+/* src-598 %jibb /tests/golden/types-request-normal/source/jibb
2189−/* tre-597 %txt /tests/golden/types-string-interpolation/tree/txt
2189+/* tok-598 %txt /tests/golden/types-request-normal/tokens/txt
2190−/* typ-597 %txt /tests/golden/types-string-interpolation/types/txt
2190+/* tre-598 %txt /tests/golden/types-request-normal/tree/txt
2191−/* src-598 %jibb /tests/golden/types-tuple-context/source/jibb
2191+/* mod-598-1 %jibb /tests/golden/types-request-normal/modules/ui/api/demo/jibb
2192−/* tok-598 %txt /tests/golden/types-tuple-context/tokens/txt
2192+/* typ-598 %txt /tests/golden/types-request-normal/types/txt
2193−/* tre-598 %txt /tests/golden/types-tuple-context/tree/txt
2193+/* mark-598-1 %txt /tests/golden/types-request-normal/mar/full/txt
2194−/* typ-598 %txt /tests/golden/types-tuple-context/types/txt
2194+/* mtre-598 %txt /tests/golden/types-request-normal/module-trees/txt
2195−/* src-599 %jibb /tests/golden/types-tuple-context-nested/source/jibb
2195+/* src-599 %jibb /tests/golden/types-scope-library-poke/source/jibb
2196−/* tok-599 %txt /tests/golden/types-tuple-context-nested/tokens/txt
2196+/* tok-599 %txt /tests/golden/types-scope-library-poke/tokens/txt
2197−/* tre-599 %txt /tests/golden/types-tuple-context-nested/tree/txt
2197+/* tre-599 %txt /tests/golden/types-scope-library-poke/tree/txt
2198−/* typ-599 %txt /tests/golden/types-tuple-context-nested/types/txt
2198+/* typ-599 %txt /tests/golden/types-scope-library-poke/types/txt
2199−/* src-600 %jibb /tests/golden/types-union-alias/source/jibb
2199+/* src-600 %jibb /tests/golden/types-scope-root-api/source/jibb
2200−/* tok-600 %txt /tests/golden/types-union-alias/tokens/txt
2200+/* tok-600 %txt /tests/golden/types-scope-root-api/tokens/txt
2201−/* tre-600 %txt /tests/golden/types-union-alias/tree/txt
2201+/* tre-600 %txt /tests/golden/types-scope-root-api/tree/txt
2202−/* typ-600 %txt /tests/golden/types-union-alias/types/txt
2202+/* typ-600 %txt /tests/golden/types-scope-root-api/types/txt
2203−/* src-601 %jibb /tests/golden/types-union-branch-context/source/jibb
2203+/* src-601 %jibb /tests/golden/types-scope-store-duplicate/source/jibb
2204−/* tok-601 %txt /tests/golden/types-union-branch-context/tokens/txt
2204+/* tok-601 %txt /tests/golden/types-scope-store-duplicate/tokens/txt
2205−/* tre-601 %txt /tests/golden/types-union-branch-context/tree/txt
2205+/* tre-601 %txt /tests/golden/types-scope-store-duplicate/tree/txt
2206−/* typ-601 %txt /tests/golden/types-union-branch-context/types/txt
2206+/* typ-601 %txt /tests/golden/types-scope-store-duplicate/types/txt
2207−/* src-602 %jibb /tests/golden/types-union-branch-pending/source/jibb
2207+/* src-602 %jibb /tests/golden/types-scope-store-shadow/source/jibb
2208−/* tok-602 %txt /tests/golden/types-union-branch-pending/tokens/txt
2208+/* tok-602 %txt /tests/golden/types-scope-store-shadow/tokens/txt
2209−/* tre-602 %txt /tests/golden/types-union-branch-pending/tree/txt
2209+/* tre-602 %txt /tests/golden/types-scope-store-shadow/tree/txt
2210−/* typ-602 %txt /tests/golden/types-union-branch-pending/types/txt
2210+/* typ-602 %txt /tests/golden/types-scope-store-shadow/types/txt
2211−/* src-603 %jibb /tests/golden/types-union-constructor-shape/source/jibb
2211+/* src-603 %jibb /tests/golden/types-single-case-pattern/source/jibb
2212−/* tok-603 %txt /tests/golden/types-union-constructor-shape/tokens/txt
2212+/* tok-603 %txt /tests/golden/types-single-case-pattern/tokens/txt
2213−/* tre-603 %txt /tests/golden/types-union-constructor-shape/tree/txt
2213+/* tre-603 %txt /tests/golden/types-single-case-pattern/tree/txt
2214−/* typ-603 %txt /tests/golden/types-union-constructor-shape/types/txt
2214+/* typ-603 %txt /tests/golden/types-single-case-pattern/types/txt
2215−/* src-604 %jibb /tests/golden/types-union-context-flow/source/jibb
2215+/* src-604 %jibb /tests/golden/types-string-interpolation/source/jibb
2216−/* tok-604 %txt /tests/golden/types-union-context-flow/tokens/txt
2216+/* tok-604 %txt /tests/golden/types-string-interpolation/tokens/txt
2217−/* tre-604 %txt /tests/golden/types-union-context-flow/tree/txt
2217+/* tre-604 %txt /tests/golden/types-string-interpolation/tree/txt
2218−/* typ-604 %txt /tests/golden/types-union-context-flow/types/txt
2218+/* typ-604 %txt /tests/golden/types-string-interpolation/types/txt
2219−/* src-605 %jibb /tests/golden/types-union-finite/source/jibb
2219+/* src-605 %jibb /tests/golden/types-tuple-context/source/jibb
2220−/* tok-605 %txt /tests/golden/types-union-finite/tokens/txt
2220+/* tok-605 %txt /tests/golden/types-tuple-context/tokens/txt
2221−/* tre-605 %txt /tests/golden/types-union-finite/tree/txt
2221+/* tre-605 %txt /tests/golden/types-tuple-context/tree/txt
2222−/* typ-605 %txt /tests/golden/types-union-finite/types/txt
2222+/* typ-605 %txt /tests/golden/types-tuple-context/types/txt
2223−/* src-606 %jibb /tests/golden/types-union-finite-context/source/jibb
2223+/* src-606 %jibb /tests/golden/types-tuple-context-nested/source/jibb
2224−/* tok-606 %txt /tests/golden/types-union-finite-context/tokens/txt
2224+/* tok-606 %txt /tests/golden/types-tuple-context-nested/tokens/txt
2225−/* tre-606 %txt /tests/golden/types-union-finite-context/tree/txt
2225+/* tre-606 %txt /tests/golden/types-tuple-context-nested/tree/txt
2226−/* typ-606 %txt /tests/golden/types-union-finite-context/types/txt
2226+/* typ-606 %txt /tests/golden/types-tuple-context-nested/types/txt
2227−/* src-607 %jibb /tests/golden/types-union-finite-generic/source/jibb
2227+/* src-607 %jibb /tests/golden/types-union-alias/source/jibb
2228−/* tok-607 %txt /tests/golden/types-union-finite-generic/tokens/txt
2228+/* tok-607 %txt /tests/golden/types-union-alias/tokens/txt
2229−/* tre-607 %txt /tests/golden/types-union-finite-generic/tree/txt
2229+/* tre-607 %txt /tests/golden/types-union-alias/tree/txt
2230−/* typ-607 %txt /tests/golden/types-union-finite-generic/types/txt
2230+/* typ-607 %txt /tests/golden/types-union-alias/types/txt
2231−/* src-608 %jibb /tests/golden/types-union-finite-limit/source/jibb
2231+/* src-608 %jibb /tests/golden/types-union-branch-context/source/jibb
2232−/* tok-608 %txt /tests/golden/types-union-finite-limit/tokens/txt
2232+/* tok-608 %txt /tests/golden/types-union-branch-context/tokens/txt
2233−/* tre-608 %txt /tests/golden/types-union-finite-limit/tree/txt
2233+/* tre-608 %txt /tests/golden/types-union-branch-context/tree/txt
2234−/* typ-608 %txt /tests/golden/types-union-finite-limit/types/txt
2234+/* typ-608 %txt /tests/golden/types-union-branch-context/types/txt
2235−/* src-609 %jibb /tests/golden/types-union-import/source/jibb
2235+/* src-609 %jibb /tests/golden/types-union-branch-pending/source/jibb
2236−/* tok-609 %txt /tests/golden/types-union-import/tokens/txt
2236+/* tok-609 %txt /tests/golden/types-union-branch-pending/tokens/txt
2237−/* tre-609 %txt /tests/golden/types-union-import/tree/txt
2237+/* tre-609 %txt /tests/golden/types-union-branch-pending/tree/txt
2238−/* mod-609-1 %jibb /tests/golden/types-union-import/modules/ui/lib/jibb
2238+/* typ-609 %txt /tests/golden/types-union-branch-pending/types/txt
2239−/* typ-609 %txt /tests/golden/types-union-import/types/txt
2239+/* src-610 %jibb /tests/golden/types-union-constructor-shape/source/jibb
2240−/* mtre-609 %txt /tests/golden/types-union-import/module-trees/txt
2240+/* tok-610 %txt /tests/golden/types-union-constructor-shape/tokens/txt
2241−/* src-610 %jibb /tests/golden/types-union-local-pending/source/jibb
2241+/* tre-610 %txt /tests/golden/types-union-constructor-shape/tree/txt
2242−/* tok-610 %txt /tests/golden/types-union-local-pending/tokens/txt
2242+/* typ-610 %txt /tests/golden/types-union-constructor-shape/types/txt
2243−/* tre-610 %txt /tests/golden/types-union-local-pending/tree/txt
2243+/* src-611 %jibb /tests/golden/types-union-context-flow/source/jibb
2244−/* typ-610 %txt /tests/golden/types-union-local-pending/types/txt
2244+/* tok-611 %txt /tests/golden/types-union-context-flow/tokens/txt
2245−/* src-611 %jibb /tests/golden/types-union-nonwing-subject/source/jibb
2245+/* tre-611 %txt /tests/golden/types-union-context-flow/tree/txt
2246−/* tok-611 %txt /tests/golden/types-union-nonwing-subject/tokens/txt
2246+/* typ-611 %txt /tests/golden/types-union-context-flow/types/txt
2247−/* tre-611 %txt /tests/golden/types-union-nonwing-subject/tree/txt
2247+/* src-612 %jibb /tests/golden/types-union-finite/source/jibb
2248−/* typ-611 %txt /tests/golden/types-union-nonwing-subject/types/txt
2248+/* tok-612 %txt /tests/golden/types-union-finite/tokens/txt
2249−/* src-612 %jibb /tests/golden/types-union-overlap/source/jibb
2249+/* tre-612 %txt /tests/golden/types-union-finite/tree/txt
2250−/* tok-612 %txt /tests/golden/types-union-overlap/tokens/txt
2250+/* typ-612 %txt /tests/golden/types-union-finite/types/txt
2251−/* tre-612 %txt /tests/golden/types-union-overlap/tree/txt
2251+/* src-613 %jibb /tests/golden/types-union-finite-context/source/jibb
2252−/* typ-612 %txt /tests/golden/types-union-overlap/types/txt
2252+/* tok-613 %txt /tests/golden/types-union-finite-context/tokens/txt
2253−/* src-613 %jibb /tests/golden/types-union-overlap-nested/source/jibb
2253+/* tre-613 %txt /tests/golden/types-union-finite-context/tree/txt
2254−/* tok-613 %txt /tests/golden/types-union-overlap-nested/tokens/txt
2254+/* typ-613 %txt /tests/golden/types-union-finite-context/types/txt
2255−/* tre-613 %txt /tests/golden/types-union-overlap-nested/tree/txt
2255+/* src-614 %jibb /tests/golden/types-union-finite-generic/source/jibb
2256−/* typ-613 %txt /tests/golden/types-union-overlap-nested/types/txt
2256+/* tok-614 %txt /tests/golden/types-union-finite-generic/tokens/txt
2257−/* src-614 %jibb /tests/golden/types-union-pattern-result-context/source/jibb
2257+/* tre-614 %txt /tests/golden/types-union-finite-generic/tree/txt
2258−/* tok-614 %txt /tests/golden/types-union-pattern-result-context/tokens/txt
2258+/* typ-614 %txt /tests/golden/types-union-finite-generic/types/txt
2259−/* tre-614 %txt /tests/golden/types-union-pattern-result-context/tree/txt
2259+/* src-615 %jibb /tests/golden/types-union-finite-limit/source/jibb
2260−/* typ-614 %txt /tests/golden/types-union-pattern-result-context/types/txt
2260+/* tok-615 %txt /tests/golden/types-union-finite-limit/tokens/txt
2261−/* src-615 %jibb /tests/golden/types-union-pattern-result-controls/source/jibb
2261+/* tre-615 %txt /tests/golden/types-union-finite-limit/tree/txt
2262−/* tok-615 %txt /tests/golden/types-union-pattern-result-controls/tokens/txt
2262+/* typ-615 %txt /tests/golden/types-union-finite-limit/types/txt
2263−/* tre-615 %txt /tests/golden/types-union-pattern-result-controls/tree/txt
2263+/* src-616 %jibb /tests/golden/types-union-import/source/jibb
2264−/* typ-615 %txt /tests/golden/types-union-pattern-result-controls/types/txt
2264+/* tok-616 %txt /tests/golden/types-union-import/tokens/txt
2265−/* src-616 %jibb /tests/golden/types-union-patterns/source/jibb
2265+/* tre-616 %txt /tests/golden/types-union-import/tree/txt
2266−/* tok-616 %txt /tests/golden/types-union-patterns/tokens/txt
2266+/* mod-616-1 %jibb /tests/golden/types-union-import/modules/ui/lib/jibb
2267−/* tre-616 %txt /tests/golden/types-union-patterns/tree/txt
2267+/* typ-616 %txt /tests/golden/types-union-import/types/txt
2268−/* typ-616 %txt /tests/golden/types-union-patterns/types/txt
2268+/* mtre-616 %txt /tests/golden/types-union-import/module-trees/txt
2269−/* src-617 %jibb /tests/golden/types-union-patterns-generic/source/jibb
2269+/* src-617 %jibb /tests/golden/types-union-local-pending/source/jibb
2270−/* tok-617 %txt /tests/golden/types-union-patterns-generic/tokens/txt
2270+/* tok-617 %txt /tests/golden/types-union-local-pending/tokens/txt
2271−/* tre-617 %txt /tests/golden/types-union-patterns-generic/tree/txt
2271+/* tre-617 %txt /tests/golden/types-union-local-pending/tree/txt
2272−/* typ-617 %txt /tests/golden/types-union-patterns-generic/types/txt
2272+/* typ-617 %txt /tests/golden/types-union-local-pending/types/txt
2273−/* src-618 %jibb /tests/golden/types-union-patterns-import/source/jibb
2273+/* src-618 %jibb /tests/golden/types-union-nonwing-subject/source/jibb
2274−/* tok-618 %txt /tests/golden/types-union-patterns-import/tokens/txt
2274+/* tok-618 %txt /tests/golden/types-union-nonwing-subject/tokens/txt
2275−/* tre-618 %txt /tests/golden/types-union-patterns-import/tree/txt
2275+/* tre-618 %txt /tests/golden/types-union-nonwing-subject/tree/txt
2276−/* mod-618-1 %jibb /tests/golden/types-union-patterns-import/modules/ui/lib/jibb
2276+/* typ-618 %txt /tests/golden/types-union-nonwing-subject/types/txt
2277−/* typ-618 %txt /tests/golden/types-union-patterns-import/types/txt
2277+/* src-619 %jibb /tests/golden/types-union-overlap/source/jibb
2278−/* mtre-618 %txt /tests/golden/types-union-patterns-import/module-trees/txt
2278+/* tok-619 %txt /tests/golden/types-union-overlap/tokens/txt
2279−/* src-619 %jibb /tests/golden/types-union-phantom-generic/source/jibb
2279+/* tre-619 %txt /tests/golden/types-union-overlap/tree/txt
2280−/* tok-619 %txt /tests/golden/types-union-phantom-generic/tokens/txt
2280+/* typ-619 %txt /tests/golden/types-union-overlap/types/txt
2281−/* tre-619 %txt /tests/golden/types-union-phantom-generic/tree/txt
2281+/* src-620 %jibb /tests/golden/types-union-overlap-nested/source/jibb
2282−/* typ-619 %txt /tests/golden/types-union-phantom-generic/types/txt
2282+/* tok-620 %txt /tests/golden/types-union-overlap-nested/tokens/txt
2283−/* src-620 %jibb /tests/golden/types-union-polymorphic-identity/source/jibb
2283+/* tre-620 %txt /tests/golden/types-union-overlap-nested/tree/txt
2284−/* tok-620 %txt /tests/golden/types-union-polymorphic-identity/tokens/txt
2284+/* typ-620 %txt /tests/golden/types-union-overlap-nested/types/txt
2285−/* tre-620 %txt /tests/golden/types-union-polymorphic-identity/tree/txt
2285+/* src-621 %jibb /tests/golden/types-union-pattern-result-context/source/jibb
2286−/* mod-620-1 %jibb /tests/golden/types-union-polymorphic-identity/modules/ui/one/jibb
2286+/* tok-621 %txt /tests/golden/types-union-pattern-result-context/tokens/txt
2287−/* mod-620-2 %jibb /tests/golden/types-union-polymorphic-identity/modules/ui/two/jibb
2287+/* tre-621 %txt /tests/golden/types-union-pattern-result-context/tree/txt
2288−/* typ-620 %txt /tests/golden/types-union-polymorphic-identity/types/txt
2288+/* typ-621 %txt /tests/golden/types-union-pattern-result-context/types/txt
2289−/* mtre-620 %txt /tests/golden/types-union-polymorphic-identity/module-trees/txt
2289+/* src-622 %jibb /tests/golden/types-union-pattern-result-controls/source/jibb
2290−/* src-621 %jibb /tests/golden/types-union-print-cross-namespace/source/jibb
2290+/* tok-622 %txt /tests/golden/types-union-pattern-result-controls/tokens/txt
2291−/* tok-621 %txt /tests/golden/types-union-print-cross-namespace/tokens/txt
2291+/* tre-622 %txt /tests/golden/types-union-pattern-result-controls/tree/txt
2292−/* tre-621 %txt /tests/golden/types-union-print-cross-namespace/tree/txt
2292+/* typ-622 %txt /tests/golden/types-union-pattern-result-controls/types/txt
2293−/* mod-621-1 %jibb /tests/golden/types-union-print-cross-namespace/modules/ui/lib/jibb
2293+/* src-623 %jibb /tests/golden/types-union-patterns/source/jibb
2294−/* typ-621 %txt /tests/golden/types-union-print-cross-namespace/types/txt
2294+/* tok-623 %txt /tests/golden/types-union-patterns/tokens/txt
2295−/* mtre-621 %txt /tests/golden/types-union-print-cross-namespace/module-trees/txt
2295+/* tre-623 %txt /tests/golden/types-union-patterns/tree/txt
2296−/* src-622 %jibb /tests/golden/types-union-print-distinct/source/jibb
2296+/* typ-623 %txt /tests/golden/types-union-patterns/types/txt
2297−/* tok-622 %txt /tests/golden/types-union-print-distinct/tokens/txt
2297+/* src-624 %jibb /tests/golden/types-union-patterns-generic/source/jibb
2298−/* tre-622 %txt /tests/golden/types-union-print-distinct/tree/txt
2298+/* tok-624 %txt /tests/golden/types-union-patterns-generic/tokens/txt
2299−/* mod-622-1 %jibb /tests/golden/types-union-print-distinct/modules/ui/left/jibb
2299+/* tre-624 %txt /tests/golden/types-union-patterns-generic/tree/txt
2300−/* mod-622-2 %jibb /tests/golden/types-union-print-distinct/modules/ui/right/jibb
2300+/* typ-624 %txt /tests/golden/types-union-patterns-generic/types/txt
2301−/* mod-622-3 %jibb /tests/golden/types-union-print-distinct/modules/ui/twin/jibb
2301+/* src-625 %jibb /tests/golden/types-union-patterns-import/source/jibb
2302−/* typ-622 %txt /tests/golden/types-union-print-distinct/types/txt
2302+/* tok-625 %txt /tests/golden/types-union-patterns-import/tokens/txt
2303−/* mtre-622 %txt /tests/golden/types-union-print-distinct/module-trees/txt
2303+/* tre-625 %txt /tests/golden/types-union-patterns-import/tree/txt
2304−/* src-623 %jibb /tests/golden/types-union-print-escape/source/jibb
2304+/* mod-625-1 %jibb /tests/golden/types-union-patterns-import/modules/ui/lib/jibb
2305−/* tok-623 %txt /tests/golden/types-union-print-escape/tokens/txt
2305+/* typ-625 %txt /tests/golden/types-union-patterns-import/types/txt
2306−/* tre-623 %txt /tests/golden/types-union-print-escape/tree/txt
2306+/* mtre-625 %txt /tests/golden/types-union-patterns-import/module-trees/txt
2307−/* typ-623 %txt /tests/golden/types-union-print-escape/types/txt
2307+/* src-626 %jibb /tests/golden/types-union-phantom-generic/source/jibb
2308−/* src-624 %jibb /tests/golden/types-union-print-local/source/jibb
2308+/* tok-626 %txt /tests/golden/types-union-phantom-generic/tokens/txt
2309−/* tok-624 %txt /tests/golden/types-union-print-local/tokens/txt
2309+/* tre-626 %txt /tests/golden/types-union-phantom-generic/tree/txt
2310−/* tre-624 %txt /tests/golden/types-union-print-local/tree/txt
2310+/* typ-626 %txt /tests/golden/types-union-phantom-generic/types/txt
2311−/* typ-624 %txt /tests/golden/types-union-print-local/types/txt
2311+/* src-627 %jibb /tests/golden/types-union-polymorphic-identity/source/jibb
2312−/* src-625 %jibb /tests/golden/types-union-print-nested/source/jibb
2312+/* tok-627 %txt /tests/golden/types-union-polymorphic-identity/tokens/txt
2313−/* tok-625 %txt /tests/golden/types-union-print-nested/tokens/txt
2313+/* tre-627 %txt /tests/golden/types-union-polymorphic-identity/tree/txt
2314−/* tre-625 %txt /tests/golden/types-union-print-nested/tree/txt
2314+/* mod-627-1 %jibb /tests/golden/types-union-polymorphic-identity/modules/ui/one/jibb
2315−/* typ-625 %txt /tests/golden/types-union-print-nested/types/txt
2315+/* mod-627-2 %jibb /tests/golden/types-union-polymorphic-identity/modules/ui/two/jibb
2316−/* src-626 %jibb /tests/golden/types-union-print-same-origin/source/jibb
2316+/* typ-627 %txt /tests/golden/types-union-polymorphic-identity/types/txt
2317−/* tok-626 %txt /tests/golden/types-union-print-same-origin/tokens/txt
2317+/* mtre-627 %txt /tests/golden/types-union-polymorphic-identity/module-trees/txt
2318−/* tre-626 %txt /tests/golden/types-union-print-same-origin/tree/txt
2318+/* src-628 %jibb /tests/golden/types-union-print-cross-namespace/source/jibb
2319−/* mod-626-1 %jibb /tests/golden/types-union-print-same-origin/modules/ui/shared/jibb
2319+/* tok-628 %txt /tests/golden/types-union-print-cross-namespace/tokens/txt
2320−/* typ-626 %txt /tests/golden/types-union-print-same-origin/types/txt
2320+/* tre-628 %txt /tests/golden/types-union-print-cross-namespace/tree/txt
2321−/* mtre-626 %txt /tests/golden/types-union-print-same-origin/module-trees/txt
2321+/* mod-628-1 %jibb /tests/golden/types-union-print-cross-namespace/modules/ui/lib/jibb
2322−/* src-627 %jibb /tests/golden/types-union-print-transitive/source/jibb
2322+/* typ-628 %txt /tests/golden/types-union-print-cross-namespace/types/txt
2323−/* tok-627 %txt /tests/golden/types-union-print-transitive/tokens/txt
2323+/* mtre-628 %txt /tests/golden/types-union-print-cross-namespace/module-trees/txt
2324−/* tre-627 %txt /tests/golden/types-union-print-transitive/tree/txt
2324+/* src-629 %jibb /tests/golden/types-union-print-distinct/source/jibb
2325−/* mod-627-1 %jibb /tests/golden/types-union-print-transitive/modules/ui/mid/jibb
2325+/* tok-629 %txt /tests/golden/types-union-print-distinct/tokens/txt
2326−/* mod-627-2 %jibb /tests/golden/types-union-print-transitive/modules/ui/base/jibb
2326+/* tre-629 %txt /tests/golden/types-union-print-distinct/tree/txt
2327−/* typ-627 %txt /tests/golden/types-union-print-transitive/types/txt
2327+/* mod-629-1 %jibb /tests/golden/types-union-print-distinct/modules/ui/left/jibb
2328−/* mtre-627 %txt /tests/golden/types-union-print-transitive/module-trees/txt
2328+/* mod-629-2 %jibb /tests/golden/types-union-print-distinct/modules/ui/right/jibb
2329−/* src-628 %jibb /tests/golden/types-union-singleton/source/jibb
2329+/* mod-629-3 %jibb /tests/golden/types-union-print-distinct/modules/ui/twin/jibb
2330−/* tok-628 %txt /tests/golden/types-union-singleton/tokens/txt
2330+/* typ-629 %txt /tests/golden/types-union-print-distinct/types/txt
2331−/* tre-628 %txt /tests/golden/types-union-singleton/tree/txt
2331+/* mtre-629 %txt /tests/golden/types-union-print-distinct/module-trees/txt
2332−/* typ-628 %txt /tests/golden/types-union-singleton/types/txt
2332+/* src-630 %jibb /tests/golden/types-union-print-escape/source/jibb
2333−/* src-629 %jibb /tests/golden/types-union-tag-atoms/source/jibb
2333+/* tok-630 %txt /tests/golden/types-union-print-escape/tokens/txt
2334−/* tok-629 %txt /tests/golden/types-union-tag-atoms/tokens/txt
2334+/* tre-630 %txt /tests/golden/types-union-print-escape/tree/txt
2335−/* tre-629 %txt /tests/golden/types-union-tag-atoms/tree/txt
2335+/* typ-630 %txt /tests/golden/types-union-print-escape/types/txt
2336−/* typ-629 %txt /tests/golden/types-union-tag-atoms/types/txt
2336+/* src-631 %jibb /tests/golden/types-union-print-local/source/jibb
2337−/* src-630 %jibb /tests/golden/types-union-tags/source/jibb
2337+/* tok-631 %txt /tests/golden/types-union-print-local/tokens/txt
2338−/* tok-630 %txt /tests/golden/types-union-tags/tokens/txt
2338+/* tre-631 %txt /tests/golden/types-union-print-local/tree/txt
2339−/* tre-630 %txt /tests/golden/types-union-tags/tree/txt
2339+/* typ-631 %txt /tests/golden/types-union-print-local/types/txt
2340−/* typ-630 %txt /tests/golden/types-union-tags/types/txt
2340+/* src-632 %jibb /tests/golden/types-union-print-nested/source/jibb
2341−/* src-631 %jibb /tests/golden/types-union-unresolved/source/jibb
2341+/* tok-632 %txt /tests/golden/types-union-print-nested/tokens/txt
2342−/* tok-631 %txt /tests/golden/types-union-unresolved/tokens/txt
2342+/* tre-632 %txt /tests/golden/types-union-print-nested/tree/txt
2343−/* tre-631 %txt /tests/golden/types-union-unresolved/tree/txt
2343+/* typ-632 %txt /tests/golden/types-union-print-nested/types/txt
2344−/* typ-631 %txt /tests/golden/types-union-unresolved/types/txt
2344+/* src-633 %jibb /tests/golden/types-union-print-same-origin/source/jibb
2345−/* src-632 %jibb /tests/golden/types-union-unresolved-flow/source/jibb
2345+/* tok-633 %txt /tests/golden/types-union-print-same-origin/tokens/txt
2346−/* tok-632 %txt /tests/golden/types-union-unresolved-flow/tokens/txt
2346+/* tre-633 %txt /tests/golden/types-union-print-same-origin/tree/txt
2347−/* tre-632 %txt /tests/golden/types-union-unresolved-flow/tree/txt
2347+/* mod-633-1 %jibb /tests/golden/types-union-print-same-origin/modules/ui/shared/jibb
2348−/* typ-632 %txt /tests/golden/types-union-unresolved-flow/types/txt
2348+/* typ-633 %txt /tests/golden/types-union-print-same-origin/types/txt
2349−/* src-633 %jibb /tests/golden/types-unit-construction/source/jibb
2349+/* mtre-633 %txt /tests/golden/types-union-print-same-origin/module-trees/txt
2350−/* tok-633 %txt /tests/golden/types-unit-construction/tokens/txt
2350+/* src-634 %jibb /tests/golden/types-union-print-transitive/source/jibb
2351−/* tre-633 %txt /tests/golden/types-unit-construction/tree/txt
2351+/* tok-634 %txt /tests/golden/types-union-print-transitive/tokens/txt
2352−/* typ-633 %txt /tests/golden/types-unit-construction/types/txt
2352+/* tre-634 %txt /tests/golden/types-union-print-transitive/tree/txt
2353−/* src-634 %jibb /tests/golden/types-unit-context/source/jibb
2353+/* mod-634-1 %jibb /tests/golden/types-union-print-transitive/modules/ui/mid/jibb
2354−/* tok-634 %txt /tests/golden/types-unit-context/tokens/txt
2354+/* mod-634-2 %jibb /tests/golden/types-union-print-transitive/modules/ui/base/jibb
2355−/* tre-634 %txt /tests/golden/types-unit-context/tree/txt
2355+/* typ-634 %txt /tests/golden/types-union-print-transitive/types/txt
2356−/* typ-634 %txt /tests/golden/types-unit-context/types/txt
2356+/* mtre-634 %txt /tests/golden/types-union-print-transitive/module-trees/txt
2357−/* src-635 %jibb /tests/golden/types-unit-patterns/source/jibb
2357+/* src-635 %jibb /tests/golden/types-union-singleton/source/jibb
2358−/* tok-635 %txt /tests/golden/types-unit-patterns/tokens/txt
2358+/* tok-635 %txt /tests/golden/types-union-singleton/tokens/txt
2359−/* tre-635 %txt /tests/golden/types-unit-patterns/tree/txt
2359+/* tre-635 %txt /tests/golden/types-union-singleton/tree/txt
2360−/* typ-635 %txt /tests/golden/types-unit-patterns/types/txt
2360+/* typ-635 %txt /tests/golden/types-union-singleton/types/txt
2361−/* src-636 %jibb /tests/golden/types-value-cycle-shadow/source/jibb
2361+/* src-636 %jibb /tests/golden/types-union-tag-atoms/source/jibb
2362−/* tok-636 %txt /tests/golden/types-value-cycle-shadow/tokens/txt
2362+/* tok-636 %txt /tests/golden/types-union-tag-atoms/tokens/txt
2363−/* tre-636 %txt /tests/golden/types-value-cycle-shadow/tree/txt
2363+/* tre-636 %txt /tests/golden/types-union-tag-atoms/tree/txt
2364−/* typ-636 %txt /tests/golden/types-value-cycle-shadow/types/txt
2364+/* typ-636 %txt /tests/golden/types-union-tag-atoms/types/txt
2365−/* src-637 %jibb /tests/golden/types-value-cycle-unsupported/source/jibb
2365+/* src-637 %jibb /tests/golden/types-union-tags/source/jibb
2366−/* tok-637 %txt /tests/golden/types-value-cycle-unsupported/tokens/txt
2366+/* tok-637 %txt /tests/golden/types-union-tags/tokens/txt
2367−/* tre-637 %txt /tests/golden/types-value-cycle-unsupported/tree/txt
2367+/* tre-637 %txt /tests/golden/types-union-tags/tree/txt
2368−/* typ-637 %txt /tests/golden/types-value-cycle-unsupported/types/txt
2368+/* typ-637 %txt /tests/golden/types-union-tags/types/txt
2369−/* src-638 %jibb /tests/golden/types-value-cycles/source/jibb
2369+/* src-638 %jibb /tests/golden/types-union-unresolved/source/jibb
2370−/* tok-638 %txt /tests/golden/types-value-cycles/tokens/txt
2370+/* tok-638 %txt /tests/golden/types-union-unresolved/tokens/txt
2371−/* tre-638 %txt /tests/golden/types-value-cycles/tree/txt
2371+/* tre-638 %txt /tests/golden/types-union-unresolved/tree/txt
2372−/* typ-638 %txt /tests/golden/types-value-cycles/types/txt
2372+/* typ-638 %txt /tests/golden/types-union-unresolved/types/txt
2373+/* src-639 %jibb /tests/golden/types-union-unresolved-flow/source/jibb
2374+/* tok-639 %txt /tests/golden/types-union-unresolved-flow/tokens/txt
2375+/* tre-639 %txt /tests/golden/types-union-unresolved-flow/tree/txt
2376+/* typ-639 %txt /tests/golden/types-union-unresolved-flow/types/txt
2377+/* src-640 %jibb /tests/golden/types-unit-construction/source/jibb
2378+/* tok-640 %txt /tests/golden/types-unit-construction/tokens/txt
2379+/* tre-640 %txt /tests/golden/types-unit-construction/tree/txt
2380+/* typ-640 %txt /tests/golden/types-unit-construction/types/txt
2381+/* src-641 %jibb /tests/golden/types-unit-context/source/jibb
2382+/* tok-641 %txt /tests/golden/types-unit-context/tokens/txt
2383+/* tre-641 %txt /tests/golden/types-unit-context/tree/txt
2384+/* typ-641 %txt /tests/golden/types-unit-context/types/txt
2385+/* src-642 %jibb /tests/golden/types-unit-patterns/source/jibb
2386+/* tok-642 %txt /tests/golden/types-unit-patterns/tokens/txt
2387+/* tre-642 %txt /tests/golden/types-unit-patterns/tree/txt
2388+/* typ-642 %txt /tests/golden/types-unit-patterns/types/txt
2389+/* src-643 %jibb /tests/golden/types-value-cycle-shadow/source/jibb
2390+/* tok-643 %txt /tests/golden/types-value-cycle-shadow/tokens/txt
2391+/* tre-643 %txt /tests/golden/types-value-cycle-shadow/tree/txt
2392+/* typ-643 %txt /tests/golden/types-value-cycle-shadow/types/txt
2393+/* src-644 %jibb /tests/golden/types-value-cycle-unsupported/source/jibb
2394+/* tok-644 %txt /tests/golden/types-value-cycle-unsupported/tokens/txt
2395+/* tre-644 %txt /tests/golden/types-value-cycle-unsupported/tree/txt
2396+/* typ-644 %txt /tests/golden/types-value-cycle-unsupported/types/txt
2397+/* src-645 %jibb /tests/golden/types-value-cycles/source/jibb
2398+/* tok-645 %txt /tests/golden/types-value-cycles/tokens/txt
2399+/* tre-645 %txt /tests/golden/types-value-cycles/tree/txt
2400+/* typ-645 %txt /tests/golden/types-value-cycles/types/txt
2373=/ prepared-prelude (prepare-prelude-with-internal:jibb prelude-source internal-source)
2401=/ prepared-prelude (prepare-prelude-with-internal:jibb prelude-source internal-source)
2374|%
2402|%
2375:: one arm per case
2403:: one arm per case
@@ -3210,446 +3238,460 @@
3210 (weld (check ~.types-cell-pattern-schemes src-417 `tok-417 `tre-417) (check-module-types ~.types-cell-pattern-schemes ~[%tests %golden ~.types-cell-pattern-schemes %source %jibb] src-417 `typ-417 ~ ~ ~))
3238 (weld (check ~.types-cell-pattern-schemes src-417 `tok-417 `tre-417) (check-module-types ~.types-cell-pattern-schemes ~[%tests %golden ~.types-cell-pattern-schemes %source %jibb] src-417 `typ-417 ~ ~ ~))
3211++ test-types-cell-pattern-tail
3239++ test-types-cell-pattern-tail
3212 (weld (check ~.types-cell-pattern-tail src-418 `tok-418 `tre-418) (check-module-types ~.types-cell-pattern-tail ~[%tests %golden ~.types-cell-pattern-tail %source %jibb] src-418 `typ-418 ~ ~ ~))
3240 (weld (check ~.types-cell-pattern-tail src-418 `tok-418 `tre-418) (check-module-types ~.types-cell-pattern-tail ~[%tests %golden ~.types-cell-pattern-tail %source %jibb] src-418 `typ-418 ~ ~ ~))
3241+++ test-types-constructor-context
3242+ (weld (check ~.types-constructor-context src-419 `tok-419 `tre-419) (check-types ~.types-constructor-context ~[%tests %golden ~.types-constructor-context %source %jibb] src-419 `typ-419))
3213++ test-types-deferred-call-context
3243++ test-types-deferred-call-context
3214− (weld (check ~.types-deferred-call-context src-419 `tok-419 `tre-419) (check-module-types ~.types-deferred-call-context ~[%tests %golden ~.types-deferred-call-context %source %jibb] src-419 `typ-419 ~ ~ ~))
3244+ (weld (check ~.types-deferred-call-context src-420 `tok-420 `tre-420) (check-module-types ~.types-deferred-call-context ~[%tests %golden ~.types-deferred-call-context %source %jibb] src-420 `typ-420 ~ ~ ~))
3245+++ test-types-equal-head-disjoint
3246+ (weld (check ~.types-equal-head-disjoint src-421 `tok-421 `tre-421) (check-types ~.types-equal-head-disjoint ~[%tests %golden ~.types-equal-head-disjoint %source %jibb] src-421 `typ-421))
3215++ test-types-flag-branch-context
3247++ test-types-flag-branch-context
3216− (weld (check ~.types-flag-branch-context src-420 `tok-420 `tre-420) (check-module-types ~.types-flag-branch-context ~[%tests %golden ~.types-flag-branch-context %source %jibb] src-420 `typ-420 ~ ~ ~))
3248+ (weld (check ~.types-flag-branch-context src-422 `tok-422 `tre-422) (check-module-types ~.types-flag-branch-context ~[%tests %golden ~.types-flag-branch-context %source %jibb] src-422 `typ-422 ~ ~ ~))
3217++ test-types-generic-arity
3249++ test-types-generic-arity
3218− (weld (check ~.types-generic-arity src-421 `tok-421 `tre-421) (check-types ~.types-generic-arity ~[%tests %golden ~.types-generic-arity %source %jibb] src-421 `typ-421))
3250+ (weld (check ~.types-generic-arity src-423 `tok-423 `tre-423) (check-types ~.types-generic-arity ~[%tests %golden ~.types-generic-arity %source %jibb] src-423 `typ-423))
3219++ test-types-generic-face-inference
3251++ test-types-generic-face-inference
3220− (weld (check ~.types-generic-face-inference src-422 `tok-422 `tre-422) (check-types ~.types-generic-face-inference ~[%tests %golden ~.types-generic-face-inference %source %jibb] src-422 `typ-422))
3252+ (weld (check ~.types-generic-face-inference src-424 `tok-424 `tre-424) (check-types ~.types-generic-face-inference ~[%tests %golden ~.types-generic-face-inference %source %jibb] src-424 `typ-424))
3221++ test-types-generic-gates
3253++ test-types-generic-gates
3222− (weld (check ~.types-generic-gates src-423 `tok-423 `tre-423) (check-types ~.types-generic-gates ~[%tests %golden ~.types-generic-gates %source %jibb] src-423 `typ-423))
3254+ (weld (check ~.types-generic-gates src-425 `tok-425 `tre-425) (check-types ~.types-generic-gates ~[%tests %golden ~.types-generic-gates %source %jibb] src-425 `typ-425))
3223++ test-types-generic-import-reverse
3255++ test-types-generic-import-reverse
3224− (weld (weld (check ~.types-generic-import-reverse src-424 `tok-424 `tre-424) (check-module-types ~.types-generic-import-reverse ~[%tests %golden ~.types-generic-import-reverse %source %jibb] src-424 `typ-424 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-424-1]])) (check-module-trees ~.types-generic-import-reverse `mtre-424 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-424-1]]))
3256+ (weld (weld (check ~.types-generic-import-reverse src-426 `tok-426 `tre-426) (check-module-types ~.types-generic-import-reverse ~[%tests %golden ~.types-generic-import-reverse %source %jibb] src-426 `typ-426 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-426-1]])) (check-module-trees ~.types-generic-import-reverse `mtre-426 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-426-1]]))
3225++ test-types-generic-lexical-alias
3257++ test-types-generic-lexical-alias
3226− (weld (check ~.types-generic-lexical-alias src-425 `tok-425 `tre-425) (check-types ~.types-generic-lexical-alias ~[%tests %golden ~.types-generic-lexical-alias %source %jibb] src-425 `typ-425))
3258+ (weld (check ~.types-generic-lexical-alias src-427 `tok-427 `tre-427) (check-types ~.types-generic-lexical-alias ~[%tests %golden ~.types-generic-lexical-alias %source %jibb] src-427 `typ-427))
3227++ test-types-generic-local-parameter
3259++ test-types-generic-local-parameter
3228− (weld (check ~.types-generic-local-parameter src-426 `tok-426 `tre-426) (check-types ~.types-generic-local-parameter ~[%tests %golden ~.types-generic-local-parameter %source %jibb] src-426 `typ-426))
3260+ (weld (check ~.types-generic-local-parameter src-428 `tok-428 `tre-428) (check-types ~.types-generic-local-parameter ~[%tests %golden ~.types-generic-local-parameter %source %jibb] src-428 `typ-428))
3229++ test-types-generic-local-scope
3261++ test-types-generic-local-scope
3230− (weld (check ~.types-generic-local-scope src-427 `tok-427 `tre-427) (check-types ~.types-generic-local-scope ~[%tests %golden ~.types-generic-local-scope %source %jibb] src-427 `typ-427))
3262+ (weld (check ~.types-generic-local-scope src-429 `tok-429 `tre-429) (check-types ~.types-generic-local-scope ~[%tests %golden ~.types-generic-local-scope %source %jibb] src-429 `typ-429))
3231++ test-types-generic-module
3263++ test-types-generic-module
3232− (weld (weld (check ~.types-generic-module src-428 `tok-428 `tre-428) (check-module-types ~.types-generic-module ~[%tests %golden ~.types-generic-module %source %jibb] src-428 `typ-428 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-428-1]])) (check-module-trees ~.types-generic-module `mtre-428 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-428-1]]))
3264+ (weld (weld (check ~.types-generic-module src-430 `tok-430 `tre-430) (check-module-types ~.types-generic-module ~[%tests %golden ~.types-generic-module %source %jibb] src-430 `typ-430 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-430-1]])) (check-module-trees ~.types-generic-module `mtre-430 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-430-1]]))
3233++ test-types-generic-nested-scope
3265++ test-types-generic-nested-scope
3234− (weld (check ~.types-generic-nested-scope src-429 `tok-429 `tre-429) (check-types ~.types-generic-nested-scope ~[%tests %golden ~.types-generic-nested-scope %source %jibb] src-429 `typ-429))
3266+ (weld (check ~.types-generic-nested-scope src-431 `tok-431 `tre-431) (check-types ~.types-generic-nested-scope ~[%tests %golden ~.types-generic-nested-scope %source %jibb] src-431 `typ-431))
3235++ test-types-generic-parameters
3267++ test-types-generic-parameters
3236− (weld (check ~.types-generic-parameters src-430 `tok-430 `tre-430) (check-types ~.types-generic-parameters ~[%tests %golden ~.types-generic-parameters %source %jibb] src-430 `typ-430))
3268+ (weld (check ~.types-generic-parameters src-432 `tok-432 `tre-432) (check-types ~.types-generic-parameters ~[%tests %golden ~.types-generic-parameters %source %jibb] src-432 `typ-432))
3237++ test-types-generic-record
3269++ test-types-generic-record
3238− (weld (check ~.types-generic-record src-431 `tok-431 `tre-431) (check-types ~.types-generic-record ~[%tests %golden ~.types-generic-record %source %jibb] src-431 `typ-431))
3270+ (weld (check ~.types-generic-record src-433 `tok-433 `tre-433) (check-types ~.types-generic-record ~[%tests %golden ~.types-generic-record %source %jibb] src-433 `typ-433))
3239++ test-types-generic-recursive-union
3271++ test-types-generic-recursive-union
3240− (weld (check ~.types-generic-recursive-union src-432 `tok-432 `tre-432) (check-types ~.types-generic-recursive-union ~[%tests %golden ~.types-generic-recursive-union %source %jibb] src-432 `typ-432))
3272+ (weld (check ~.types-generic-recursive-union src-434 `tok-434 `tre-434) (check-types ~.types-generic-recursive-union ~[%tests %golden ~.types-generic-recursive-union %source %jibb] src-434 `typ-434))
3241++ test-types-generic-repeated
3273++ test-types-generic-repeated
3242− (weld (check ~.types-generic-repeated src-433 `tok-433 `tre-433) (check-types ~.types-generic-repeated ~[%tests %golden ~.types-generic-repeated %source %jibb] src-433 `typ-433))
3274+ (weld (check ~.types-generic-repeated src-435 `tok-435 `tre-435) (check-types ~.types-generic-repeated ~[%tests %golden ~.types-generic-repeated %source %jibb] src-435 `typ-435))
3275+++ test-types-generic-result-context
3276+ (weld (check ~.types-generic-result-context src-436 `tok-436 `tre-436) (check-types ~.types-generic-result-context ~[%tests %golden ~.types-generic-result-context %source %jibb] src-436 `typ-436))
3243++ test-types-generic-union-alias
3277++ test-types-generic-union-alias
3244− (weld (check ~.types-generic-union-alias src-434 `tok-434 `tre-434) (check-types ~.types-generic-union-alias ~[%tests %golden ~.types-generic-union-alias %source %jibb] src-434 `typ-434))
3278+ (weld (check ~.types-generic-union-alias src-437 `tok-437 `tre-437) (check-types ~.types-generic-union-alias ~[%tests %golden ~.types-generic-union-alias %source %jibb] src-437 `typ-437))
3245++ test-types-generic-union-alias-face
3279++ test-types-generic-union-alias-face
3246− (weld (weld (check ~.types-generic-union-alias-face src-435 `tok-435 `tre-435) (check-module-types ~.types-generic-union-alias-face ~[%tests %golden ~.types-generic-union-alias-face %source %jibb] src-435 `typ-435 ~ ~ ~[['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-435-1]])) (check-module-trees ~.types-generic-union-alias-face `mtre-435 ~[['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-435-1]]))
3280+ (weld (weld (check ~.types-generic-union-alias-face src-438 `tok-438 `tre-438) (check-module-types ~.types-generic-union-alias-face ~[%tests %golden ~.types-generic-union-alias-face %source %jibb] src-438 `typ-438 ~ ~ ~[['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-438-1]])) (check-module-trees ~.types-generic-union-alias-face `mtre-438 ~[['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-438-1]]))
3247++ test-types-generic-union-capitals
3281++ test-types-generic-union-capitals
3248− (weld (check ~.types-generic-union-capitals src-436 `tok-436 `tre-436) (check-types ~.types-generic-union-capitals ~[%tests %golden ~.types-generic-union-capitals %source %jibb] src-436 `typ-436))
3282+ (weld (check ~.types-generic-union-capitals src-439 `tok-439 `tre-439) (check-types ~.types-generic-union-capitals ~[%tests %golden ~.types-generic-union-capitals %source %jibb] src-439 `typ-439))
3249++ test-types-generic-union-errors
3283++ test-types-generic-union-errors
3250− (weld (check ~.types-generic-union-errors src-437 `tok-437 `tre-437) (check-types ~.types-generic-union-errors ~[%tests %golden ~.types-generic-union-errors %source %jibb] src-437 `typ-437))
3284+ (weld (check ~.types-generic-union-errors src-440 `tok-440 `tre-440) (check-types ~.types-generic-union-errors ~[%tests %golden ~.types-generic-union-errors %source %jibb] src-440 `typ-440))
3251++ test-types-generic-union-escaping
3285++ test-types-generic-union-escaping
3252− (weld (weld (check ~.types-generic-union-escaping src-438 `tok-438 `tre-438) (check-module-types ~.types-generic-union-escaping ~[%tests %golden ~.types-generic-union-escaping %source %jibb] src-438 `typ-438 ~ ~ ~[['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-438-1] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-438-2]])) (check-module-trees ~.types-generic-union-escaping `mtre-438 ~[['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-438-1] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-438-2]]))
3286+ (weld (weld (check ~.types-generic-union-escaping src-441 `tok-441 `tre-441) (check-module-types ~.types-generic-union-escaping ~[%tests %golden ~.types-generic-union-escaping %source %jibb] src-441 `typ-441 ~ ~ ~[['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-441-1] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-441-2]])) (check-module-trees ~.types-generic-union-escaping `mtre-441 ~[['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-441-1] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-441-2]]))
3253++ test-types-generic-union-import
3287++ test-types-generic-union-import
3254− (weld (weld (check ~.types-generic-union-import src-439 `tok-439 `tre-439) (check-module-types ~.types-generic-union-import ~[%tests %golden ~.types-generic-union-import %source %jibb] src-439 `typ-439 ~ ~ ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-439-1] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-439-2]])) (check-module-trees ~.types-generic-union-import `mtre-439 ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-439-1] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-439-2]]))
3288+ (weld (weld (check ~.types-generic-union-import src-442 `tok-442 `tre-442) (check-module-types ~.types-generic-union-import ~[%tests %golden ~.types-generic-union-import %source %jibb] src-442 `typ-442 ~ ~ ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-442-1] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-442-2]])) (check-module-trees ~.types-generic-union-import `mtre-442 ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-442-1] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-442-2]]))
3255++ test-types-generic-union-local
3289++ test-types-generic-union-local
3256− (weld (check ~.types-generic-union-local src-440 `tok-440 `tre-440) (check-types ~.types-generic-union-local ~[%tests %golden ~.types-generic-union-local %source %jibb] src-440 `typ-440))
3290+ (weld (check ~.types-generic-union-local src-443 `tok-443 `tre-443) (check-types ~.types-generic-union-local ~[%tests %golden ~.types-generic-union-local %source %jibb] src-443 `typ-443))
3257++ test-types-generic-union-transitive
3291++ test-types-generic-union-transitive
3258− (weld (weld (check ~.types-generic-union-transitive src-441 `tok-441 `tre-441) (check-module-types ~.types-generic-union-transitive ~[%tests %golden ~.types-generic-union-transitive %source %jibb] src-441 `typ-441 ~ ~ ~[['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-441-1] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-441-2]])) (check-module-trees ~.types-generic-union-transitive `mtre-441 ~[['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-441-1] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-441-2]]))
3292+ (weld (weld (check ~.types-generic-union-transitive src-444 `tok-444 `tre-444) (check-module-types ~.types-generic-union-transitive ~[%tests %golden ~.types-generic-union-transitive %source %jibb] src-444 `typ-444 ~ ~ ~[['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-444-1] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-444-2]])) (check-module-trees ~.types-generic-union-transitive `mtre-444 ~[['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-444-1] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-444-2]]))
3259++ test-types-hole-concrete
3293++ test-types-hole-concrete
3260− (weld (check ~.types-hole-concrete src-442 `tok-442 `tre-442) (check-types ~.types-hole-concrete ~[%tests %golden ~.types-hole-concrete %source %jibb] src-442 `typ-442))
3294+ (weld (check ~.types-hole-concrete src-445 `tok-445 `tre-445) (check-types ~.types-hole-concrete ~[%tests %golden ~.types-hole-concrete %source %jibb] src-445 `typ-445))
3261++ test-types-hole-generic-mold
3295++ test-types-hole-generic-mold
3262− (weld (check ~.types-hole-generic-mold src-443 `tok-443 `tre-443) (check-types ~.types-hole-generic-mold ~[%tests %golden ~.types-hole-generic-mold %source %jibb] src-443 `typ-443))
3296+ (weld (check ~.types-hole-generic-mold src-446 `tok-446 `tre-446) (check-types ~.types-hole-generic-mold ~[%tests %golden ~.types-hole-generic-mold %source %jibb] src-446 `typ-446))
3263++ test-types-hole-local-boundary
3297++ test-types-hole-local-boundary
3264− (weld (check ~.types-hole-local-boundary src-444 `tok-444 `tre-444) (check-types ~.types-hole-local-boundary ~[%tests %golden ~.types-hole-local-boundary %source %jibb] src-444 `typ-444))
3298+ (weld (check ~.types-hole-local-boundary src-447 `tok-447 `tre-447) (check-types ~.types-hole-local-boundary ~[%tests %golden ~.types-hole-local-boundary %source %jibb] src-447 `typ-447))
3265++ test-types-hole-module-boundary
3299++ test-types-hole-module-boundary
3266− (weld (weld (check ~.types-hole-module-boundary src-445 `tok-445 `tre-445) (check-module-types ~.types-hole-module-boundary ~[%tests %golden ~.types-hole-module-boundary %source %jibb] src-445 `typ-445 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-445-1]])) (check-module-trees ~.types-hole-module-boundary `mtre-445 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-445-1]]))
3300+ (weld (weld (check ~.types-hole-module-boundary src-448 `tok-448 `tre-448) (check-module-types ~.types-hole-module-boundary ~[%tests %golden ~.types-hole-module-boundary %source %jibb] src-448 `typ-448 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-448-1]])) (check-module-trees ~.types-hole-module-boundary `mtre-448 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-448-1]]))
3267++ test-types-hole-named-complex
3301++ test-types-hole-named-complex
3268− (weld (check ~.types-hole-named-complex src-446 `tok-446 `tre-446) (check-types ~.types-hole-named-complex ~[%tests %golden ~.types-hole-named-complex %source %jibb] src-446 `typ-446))
3302+ (weld (check ~.types-hole-named-complex src-449 `tok-449 `tre-449) (check-types ~.types-hole-named-complex ~[%tests %golden ~.types-hole-named-complex %source %jibb] src-449 `typ-449))
3269++ test-types-hole-numeric-capture
3303++ test-types-hole-numeric-capture
3270− (weld (check ~.types-hole-numeric-capture src-447 `tok-447 `tre-447) (check-types ~.types-hole-numeric-capture ~[%tests %golden ~.types-hole-numeric-capture %source %jibb] src-447 `typ-447))
3304+ (weld (check ~.types-hole-numeric-capture src-450 `tok-450 `tre-450) (check-types ~.types-hole-numeric-capture ~[%tests %golden ~.types-hole-numeric-capture %source %jibb] src-450 `typ-450))
3271++ test-types-hole-unbound-mold
3305++ test-types-hole-unbound-mold
3272− (weld (check ~.types-hole-unbound-mold src-448 `tok-448 `tre-448) (check-types ~.types-hole-unbound-mold ~[%tests %golden ~.types-hole-unbound-mold %source %jibb] src-448 `typ-448))
3306+ (weld (check ~.types-hole-unbound-mold src-451 `tok-451 `tre-451) (check-types ~.types-hole-unbound-mold ~[%tests %golden ~.types-hole-unbound-mold %source %jibb] src-451 `typ-451))
3273++ test-types-hole-unsupported
3307++ test-types-hole-unsupported
3274− (weld (check ~.types-hole-unsupported src-449 `tok-449 `tre-449) (check-types ~.types-hole-unsupported ~[%tests %golden ~.types-hole-unsupported %source %jibb] src-449 `typ-449))
3308+ (weld (check ~.types-hole-unsupported src-452 `tok-452 `tre-452) (check-types ~.types-hole-unsupported ~[%tests %golden ~.types-hole-unsupported %source %jibb] src-452 `typ-452))
3275++ test-types-hole-user-generic
3309++ test-types-hole-user-generic
3276− (weld (check ~.types-hole-user-generic src-450 `tok-450 `tre-450) (check-types ~.types-hole-user-generic ~[%tests %golden ~.types-hole-user-generic %source %jibb] src-450 `typ-450))
3310+ (weld (check ~.types-hole-user-generic src-453 `tok-453 `tre-453) (check-types ~.types-hole-user-generic ~[%tests %golden ~.types-hole-user-generic %source %jibb] src-453 `typ-453))
3277++ test-types-hole-user-named
3311++ test-types-hole-user-named
3278− (weld (check ~.types-hole-user-named src-451 `tok-451 `tre-451) (check-types ~.types-hole-user-named ~[%tests %golden ~.types-hole-user-named %source %jibb] src-451 `typ-451))
3312+ (weld (check ~.types-hole-user-named src-454 `tok-454 `tre-454) (check-types ~.types-hole-user-named ~[%tests %golden ~.types-hole-user-named %source %jibb] src-454 `typ-454))
3279++ test-types-hole-user-value
3313++ test-types-hole-user-value
3280− (weld (check ~.types-hole-user-value src-452 `tok-452 `tre-452) (check-types ~.types-hole-user-value ~[%tests %golden ~.types-hole-user-value %source %jibb] src-452 `typ-452))
3314+ (weld (check ~.types-hole-user-value src-455 `tok-455 `tre-455) (check-types ~.types-hole-user-value ~[%tests %golden ~.types-hole-user-value %source %jibb] src-455 `typ-455))
3281++ test-types-import-duplicate-mark
3315++ test-types-import-duplicate-mark
3282− (weld (check ~.types-import-duplicate-mark src-453 `tok-453 `tre-453) (check-mark-types ~.types-import-duplicate-mark ~[%tests %golden ~.types-import-duplicate-mark %source %jibb] src-453 `typ-453 ~ ~[[%duplicate mark-453-1]]))
3316+ (weld (check ~.types-import-duplicate-mark src-456 `tok-456 `tre-456) (check-mark-types ~.types-import-duplicate-mark ~[%tests %golden ~.types-import-duplicate-mark %source %jibb] src-456 `typ-456 ~ ~[[%duplicate mark-456-1]]))
3283++ test-types-import-duplicate-sur
3317++ test-types-import-duplicate-sur
3284− (weld (check ~.types-import-duplicate-sur src-454 `tok-454 `tre-454) (check-import-types ~.types-import-duplicate-sur ~[%tests %golden ~.types-import-duplicate-sur %source %jibb] src-454 `typ-454 ~[[%fixture %direct imp-454-1] [%fixture %nested imp-454-2] [%fixture %valid imp-454-3]]))
3318+ (weld (check ~.types-import-duplicate-sur src-457 `tok-457 `tre-457) (check-import-types ~.types-import-duplicate-sur ~[%tests %golden ~.types-import-duplicate-sur %source %jibb] src-457 `typ-457 ~[[%fixture %direct imp-457-1] [%fixture %nested imp-457-2] [%fixture %valid imp-457-3]]))
3285++ test-types-import-hoon-flags
3319++ test-types-import-hoon-flags
3286− (weld (check ~.types-import-hoon-flags src-455 `tok-455 `tre-455) (check-import-types ~.types-import-hoon-flags ~[%tests %golden ~.types-import-hoon-flags %source %jibb] src-455 `typ-455 ~[[%flags %flag imp-455-1] [%flags %yes imp-455-2] [%flags %no imp-455-3] [%flags %record imp-455-4]]))
3320+ (weld (check ~.types-import-hoon-flags src-458 `tok-458 `tre-458) (check-import-types ~.types-import-hoon-flags ~[%tests %golden ~.types-import-hoon-flags %source %jibb] src-458 `typ-458 ~[[%flags %flag imp-458-1] [%flags %yes imp-458-2] [%flags %no imp-458-3] [%flags %record imp-458-4]]))
3287++ test-types-import-hoon-noun
3321++ test-types-import-hoon-noun
3288− (weld (check ~.types-import-hoon-noun src-456 `tok-456 `tre-456) (check-import-types ~.types-import-hoon-noun ~[%tests %golden ~.types-import-hoon-noun %source %jibb] src-456 `typ-456 ~[[%fixture %any imp-456-1] [%fixture %payload imp-456-2] [%fixture %option imp-456-3] [%fixture %overlap imp-456-4]]))
3322+ (weld (check ~.types-import-hoon-noun src-459 `tok-459 `tre-459) (check-import-types ~.types-import-hoon-noun ~[%tests %golden ~.types-import-hoon-noun %source %jibb] src-459 `typ-459 ~[[%fixture %any imp-459-1] [%fixture %payload imp-459-2] [%fixture %option imp-459-3] [%fixture %overlap imp-459-4]]))
3289++ test-types-import-mark
3323++ test-types-import-mark
3290− (weld (check ~.types-import-mark src-457 `tok-457 `tre-457) (check-mark-types ~.types-import-mark ~[%tests %golden ~.types-import-mark %source %jibb] src-457 `typ-457 ~[[%fixture %title imp-457-1]] ~[[%label mark-457-1]]))
3324+ (weld (check ~.types-import-mark src-460 `tok-460 `tre-460) (check-mark-types ~.types-import-mark ~[%tests %golden ~.types-import-mark %source %jibb] src-460 `typ-460 ~[[%fixture %title imp-460-1]] ~[[%label mark-460-1]]))
3291++ test-types-import-mark-record
3325++ test-types-import-mark-record
3292− (weld (check ~.types-import-mark-record src-458 `tok-458 `tre-458) (check-mark-types ~.types-import-mark-record ~[%tests %golden ~.types-import-mark-record %source %jibb] src-458 `typ-458 ~ ~[[%note mark-458-1] [%choice mark-458-2]]))
3326+ (weld (check ~.types-import-mark-record src-461 `tok-461 `tre-461) (check-mark-types ~.types-import-mark-record ~[%tests %golden ~.types-import-mark-record %source %jibb] src-461 `typ-461 ~ ~[[%note mark-461-1] [%choice mark-461-2]]))
3293++ test-types-import-missing-mold
3327++ test-types-import-missing-mold
3294− (weld (check ~.types-import-missing-mold src-459 `tok-459 `tre-459) (check-import-types ~.types-import-missing-mold ~[%tests %golden ~.types-import-missing-mold %source %jibb] src-459 `typ-459 ~[[%fixture %missing imp-459-1]]))
3328+ (weld (check ~.types-import-missing-mold src-462 `tok-462 `tre-462) (check-import-types ~.types-import-missing-mold ~[%tests %golden ~.types-import-missing-mold %source %jibb] src-462 `typ-462 ~[[%fixture %missing imp-462-1]]))
3295++ test-types-import-sur
3329++ test-types-import-sur
3296− (weld (check ~.types-import-sur src-460 `tok-460 `tre-460) (check-import-types ~.types-import-sur ~[%tests %golden ~.types-import-sur %source %jibb] src-460 `typ-460 ~[[%fixture %title imp-460-1] [%fixture %pair imp-460-2]]))
3330+ (weld (check ~.types-import-sur src-463 `tok-463 `tre-463) (check-import-types ~.types-import-sur ~[%tests %golden ~.types-import-sur %source %jibb] src-463 `typ-463 ~[[%fixture %title imp-463-1] [%fixture %pair imp-463-2]]))
3297++ test-types-import-sur-record-graph
3331++ test-types-import-sur-record-graph
3298− (weld (weld (check ~.types-import-sur-record-graph src-461 `tok-461 `tre-461) (check-module-types ~.types-import-sur-record-graph ~[%tests %golden ~.types-import-sur-record-graph %source %jibb] src-461 `typ-461 ~[[%fixture %entry imp-461-1]] ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-461-1]])) (check-module-trees ~.types-import-sur-record-graph `mtre-461 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-461-1]]))
3332+ (weld (weld (check ~.types-import-sur-record-graph src-464 `tok-464 `tre-464) (check-module-types ~.types-import-sur-record-graph ~[%tests %golden ~.types-import-sur-record-graph %source %jibb] src-464 `typ-464 ~[[%fixture %entry imp-464-1]] ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-464-1]])) (check-module-trees ~.types-import-sur-record-graph `mtre-464 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-464-1]]))
3299++ test-types-import-tlon-notes
3333++ test-types-import-tlon-notes
3300− (weld (check ~.types-import-tlon-notes src-462 `tok-462 `tre-462) (check-import-types ~.types-import-tlon-notes ~[%tests %golden ~.types-import-tlon-notes %source %jibb] src-462 `typ-462 ~[[%notes %u-note imp-462-1] [%notes %a-note imp-462-2] [%notes %u-notebook imp-462-3] [%notes %u-notes imp-462-4] [%notes %log imp-462-5] [%notes %import-node imp-462-6] [%notes %a-notebook imp-462-7]]))
3334+ (weld (check ~.types-import-tlon-notes src-465 `tok-465 `tre-465) (check-import-types ~.types-import-tlon-notes ~[%tests %golden ~.types-import-tlon-notes %source %jibb] src-465 `typ-465 ~[[%notes %u-note imp-465-1] [%notes %a-note imp-465-2] [%notes %u-notebook imp-465-3] [%notes %u-notes imp-465-4] [%notes %log imp-465-5] [%notes %import-node imp-465-6] [%notes %a-notebook imp-465-7]]))
3301++ test-types-list-branch
3335++ test-types-list-branch
3302− (weld (check ~.types-list-branch src-463 `tok-463 `tre-463) (check-module-types ~.types-list-branch ~[%tests %golden ~.types-list-branch %source %jibb] src-463 `typ-463 ~ ~ ~))
3336+ (weld (check ~.types-list-branch src-466 `tok-466 `tre-466) (check-module-types ~.types-list-branch ~[%tests %golden ~.types-list-branch %source %jibb] src-466 `typ-466 ~ ~ ~))
3303++ test-types-list-cons
3337++ test-types-list-cons
3304− (weld (check ~.types-list-cons src-464 `tok-464 `tre-464) (check-module-types ~.types-list-cons ~[%tests %golden ~.types-list-cons %source %jibb] src-464 `typ-464 ~ ~ ~))
3338+ (weld (check ~.types-list-cons src-467 `tok-467 `tre-467) (check-module-types ~.types-list-cons ~[%tests %golden ~.types-list-cons %source %jibb] src-467 `typ-467 ~ ~ ~))
3305++ test-types-list-context
3339++ test-types-list-context
3306− (weld (check ~.types-list-context src-465 `tok-465 `tre-465) (check-module-types ~.types-list-context ~[%tests %golden ~.types-list-context %source %jibb] src-465 `typ-465 ~ ~ ~))
3340+ (weld (check ~.types-list-context src-468 `tok-468 `tre-468) (check-module-types ~.types-list-context ~[%tests %golden ~.types-list-context %source %jibb] src-468 `typ-468 ~ ~ ~))
3307++ test-types-list-imported
3341++ test-types-list-imported
3308− (weld (check ~.types-list-imported src-466 `tok-466 `tre-466) (check-module-types ~.types-list-imported ~[%tests %golden ~.types-list-imported %source %jibb] src-466 `typ-466 ~[[%fixture %texts imp-466-1] [%fixture %ships imp-466-2]] ~ ~))
3342+ (weld (check ~.types-list-imported src-469 `tok-469 `tre-469) (check-module-types ~.types-list-imported ~[%tests %golden ~.types-list-imported %source %jibb] src-469 `typ-469 ~[[%fixture %texts imp-469-1] [%fixture %ships imp-469-2]] ~ ~))
3309++ test-types-list-open
3343++ test-types-list-open
3310− (weld (check ~.types-list-open src-467 `tok-467 `tre-467) (check-module-types ~.types-list-open ~[%tests %golden ~.types-list-open %source %jibb] src-467 `typ-467 ~ ~ ~))
3344+ (weld (check ~.types-list-open src-470 `tok-470 `tre-470) (check-module-types ~.types-list-open ~[%tests %golden ~.types-list-open %source %jibb] src-470 `typ-470 ~ ~ ~))
3311++ test-types-list-open-constraints
3345++ test-types-list-open-constraints
3312− (weld (check ~.types-list-open-constraints src-468 `tok-468 `tre-468) (check-module-types ~.types-list-open-constraints ~[%tests %golden ~.types-list-open-constraints %source %jibb] src-468 `typ-468 ~ ~ ~))
3346+ (weld (check ~.types-list-open-constraints src-471 `tok-471 `tre-471) (check-module-types ~.types-list-open-constraints ~[%tests %golden ~.types-list-open-constraints %source %jibb] src-471 `typ-471 ~ ~ ~))
3313++ test-types-list-pattern-imported
3347++ test-types-list-pattern-imported
3314− (weld (check ~.types-list-pattern-imported src-469 `tok-469 `tre-469) (check-module-types ~.types-list-pattern-imported ~[%tests %golden ~.types-list-pattern-imported %source %jibb] src-469 `typ-469 ~[[%fixture %texts imp-469-1] [%fixture %text-set imp-469-2]] ~ ~))
3348+ (weld (check ~.types-list-pattern-imported src-472 `tok-472 `tre-472) (check-module-types ~.types-list-pattern-imported ~[%tests %golden ~.types-list-pattern-imported %source %jibb] src-472 `typ-472 ~[[%fixture %texts imp-472-1] [%fixture %text-set imp-472-2]] ~ ~))
3315++ test-types-list-patterns
3349++ test-types-list-patterns
3316− (weld (check ~.types-list-patterns src-470 `tok-470 `tre-470) (check-module-types ~.types-list-patterns ~[%tests %golden ~.types-list-patterns %source %jibb] src-470 `typ-470 ~ ~ ~))
3350+ (weld (check ~.types-list-patterns src-473 `tok-473 `tre-473) (check-module-types ~.types-list-patterns ~[%tests %golden ~.types-list-patterns %source %jibb] src-473 `typ-473 ~ ~ ~))
3317++ test-types-list-zero-fit
3351++ test-types-list-zero-fit
3318− (weld (check ~.types-list-zero-fit src-471 `tok-471 `tre-471) (check-module-types ~.types-list-zero-fit ~[%tests %golden ~.types-list-zero-fit %source %jibb] src-471 `typ-471 ~ ~ ~))
3352+ (weld (check ~.types-list-zero-fit src-474 `tok-474 `tre-474) (check-module-types ~.types-list-zero-fit ~[%tests %golden ~.types-list-zero-fit %source %jibb] src-474 `typ-474 ~ ~ ~))
3353+++ test-types-literal-constructor-nouns
3354+ (weld (check ~.types-literal-constructor-nouns src-475 `tok-475 `tre-475) (check-types ~.types-literal-constructor-nouns ~[%tests %golden ~.types-literal-constructor-nouns %source %jibb] src-475 `typ-475))
3319++ test-types-local-capitals
3355++ test-types-local-capitals
3320− (weld (check ~.types-local-capitals src-472 `tok-472 `tre-472) (check-module-types ~.types-local-capitals ~[%tests %golden ~.types-local-capitals %source %jibb] src-472 `typ-472 ~ ~ ~))
3356+ (weld (check ~.types-local-capitals src-476 `tok-476 `tre-476) (check-module-types ~.types-local-capitals ~[%tests %golden ~.types-local-capitals %source %jibb] src-476 `typ-476 ~ ~ ~))
3321++ test-types-local-recursive
3357++ test-types-local-recursive
3322− (weld (check ~.types-local-recursive src-473 `tok-473 `tre-473) (check-module-types ~.types-local-recursive ~[%tests %golden ~.types-local-recursive %source %jibb] src-473 `typ-473 ~ ~ ~))
3358+ (weld (check ~.types-local-recursive src-477 `tok-477 `tre-477) (check-module-types ~.types-local-recursive ~[%tests %golden ~.types-local-recursive %source %jibb] src-477 `typ-477 ~ ~ ~))
3323++ test-types-local-scc
3359++ test-types-local-scc
3324− (weld (check ~.types-local-scc src-474 `tok-474 `tre-474) (check-module-types ~.types-local-scc ~[%tests %golden ~.types-local-scc %source %jibb] src-474 `typ-474 ~ ~ ~))
3360+ (weld (check ~.types-local-scc src-478 `tok-478 `tre-478) (check-module-types ~.types-local-scc ~[%tests %golden ~.types-local-scc %source %jibb] src-478 `typ-478 ~ ~ ~))
3325++ test-types-local-scc-adversarial
3361++ test-types-local-scc-adversarial
3326− (weld (check ~.types-local-scc-adversarial src-475 `tok-475 `tre-475) (check-module-types ~.types-local-scc-adversarial ~[%tests %golden ~.types-local-scc-adversarial %source %jibb] src-475 `typ-475 ~ ~ ~))
3362+ (weld (check ~.types-local-scc-adversarial src-479 `tok-479 `tre-479) (check-module-types ~.types-local-scc-adversarial ~[%tests %golden ~.types-local-scc-adversarial %source %jibb] src-479 `typ-479 ~ ~ ~))
3363+++ test-types-loobean-singleton-source
3364+ (weld (check ~.types-loobean-singleton-source src-480 `tok-480 `tre-480) (check-types ~.types-loobean-singleton-source ~[%tests %golden ~.types-loobean-singleton-source %source %jibb] src-480 `typ-480))
3365+++ test-types-loobean-union-context
3366+ (weld (check ~.types-loobean-union-context src-481 `tok-481 `tre-481) (check-types ~.types-loobean-union-context ~[%tests %golden ~.types-loobean-union-context %source %jibb] src-481 `typ-481))
3327++ test-types-missing-tag-context
3367++ test-types-missing-tag-context
3328− (weld (check ~.types-missing-tag-context src-476 `tok-476 `tre-476) (check-module-types ~.types-missing-tag-context ~[%tests %golden ~.types-missing-tag-context %source %jibb] src-476 `typ-476 ~ ~ ~))
3368+ (weld (check ~.types-missing-tag-context src-482 `tok-482 `tre-482) (check-module-types ~.types-missing-tag-context ~[%tests %golden ~.types-missing-tag-context %source %jibb] src-482 `typ-482 ~ ~ ~))
3329++ test-types-missing-tag-imported
3369++ test-types-missing-tag-imported
3330− (weld (check ~.types-missing-tag-imported src-477 `tok-477 `tre-477) (check-import-types ~.types-missing-tag-imported ~[%tests %golden ~.types-missing-tag-imported %source %jibb] src-477 `typ-477 ~[[%fixture %choice imp-477-1] [%fixture %nested-choice imp-477-2]]))
3370+ (weld (check ~.types-missing-tag-imported src-483 `tok-483 `tre-483) (check-import-types ~.types-missing-tag-imported ~[%tests %golden ~.types-missing-tag-imported %source %jibb] src-483 `typ-483 ~[[%fixture %choice imp-483-1] [%fixture %nested-choice imp-483-2]]))
3331++ test-types-missing-tag-named
3371++ test-types-missing-tag-named
3332− (weld (check ~.types-missing-tag-named src-478 `tok-478 `tre-478) (check-module-types ~.types-missing-tag-named ~[%tests %golden ~.types-missing-tag-named %source %jibb] src-478 `typ-478 ~ ~ ~))
3372+ (weld (check ~.types-missing-tag-named src-484 `tok-484 `tre-484) (check-module-types ~.types-missing-tag-named ~[%tests %golden ~.types-missing-tag-named %source %jibb] src-484 `typ-484 ~ ~ ~))
3333++ test-types-module-field-duplicate
3373++ test-types-module-field-duplicate
3334− (weld (weld (check ~.types-module-field-duplicate src-479 `tok-479 `tre-479) (check-module-types ~.types-module-field-duplicate ~[%tests %golden ~.types-module-field-duplicate %source %jibb] src-479 `typ-479 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-479-1]])) (check-module-trees ~.types-module-field-duplicate `mtre-479 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-479-1]]))
3374+ (weld (weld (check ~.types-module-field-duplicate src-485 `tok-485 `tre-485) (check-module-types ~.types-module-field-duplicate ~[%tests %golden ~.types-module-field-duplicate %source %jibb] src-485 `typ-485 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-485-1]])) (check-module-trees ~.types-module-field-duplicate `mtre-485 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-485-1]]))
3335++ test-types-module-field-nonrecord
3375++ test-types-module-field-nonrecord
3336− (weld (weld (check ~.types-module-field-nonrecord src-480 `tok-480 `tre-480) (check-module-types ~.types-module-field-nonrecord ~[%tests %golden ~.types-module-field-nonrecord %source %jibb] src-480 `typ-480 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-480-1]])) (check-module-trees ~.types-module-field-nonrecord `mtre-480 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-480-1]]))
3376+ (weld (weld (check ~.types-module-field-nonrecord src-486 `tok-486 `tre-486) (check-module-types ~.types-module-field-nonrecord ~[%tests %golden ~.types-module-field-nonrecord %source %jibb] src-486 `typ-486 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-486-1]])) (check-module-trees ~.types-module-field-nonrecord `mtre-486 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-486-1]]))
3337++ test-types-module-field-path
3377++ test-types-module-field-path
3338− (weld (weld (check ~.types-module-field-path src-481 `tok-481 `tre-481) (check-module-types ~.types-module-field-path ~[%tests %golden ~.types-module-field-path %source %jibb] src-481 `typ-481 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-481-1]])) (check-module-trees ~.types-module-field-path `mtre-481 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-481-1]]))
3378+ (weld (weld (check ~.types-module-field-path src-487 `tok-487 `tre-487) (check-module-types ~.types-module-field-path ~[%tests %golden ~.types-module-field-path %source %jibb] src-487 `typ-487 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-487-1]])) (check-module-trees ~.types-module-field-path `mtre-487 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-487-1]]))
3339++ test-types-module-field-shadow
3379++ test-types-module-field-shadow
3340− (weld (weld (check ~.types-module-field-shadow src-482 `tok-482 `tre-482) (check-module-types ~.types-module-field-shadow ~[%tests %golden ~.types-module-field-shadow %source %jibb] src-482 `typ-482 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-482-1]])) (check-module-trees ~.types-module-field-shadow `mtre-482 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-482-1]]))
3380+ (weld (weld (check ~.types-module-field-shadow src-488 `tok-488 `tre-488) (check-module-types ~.types-module-field-shadow ~[%tests %golden ~.types-module-field-shadow %source %jibb] src-488 `typ-488 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-488-1]])) (check-module-trees ~.types-module-field-shadow `mtre-488 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-488-1]]))
3341++ test-types-module-fixtures
3381++ test-types-module-fixtures
3342− (weld (weld (check-at ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-483 `tok-483 `tre-483) (check-module-types ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-483 `typ-483 ~ ~ ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-483-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-483-2]])) (check-module-trees ~.types-module-fixtures `mtre-483 ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-483-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-483-2]]))
3382+ (weld (weld (check-at ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-489 `tok-489 `tre-489) (check-module-types ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-489 `typ-489 ~ ~ ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-489-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-489-2]])) (check-module-trees ~.types-module-fixtures `mtre-489 ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-489-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-489-2]]))
3343++ test-types-module-mixed
3383++ test-types-module-mixed
3344− (weld (weld (check ~.types-module-mixed src-484 `tok-484 `tre-484) (check-module-types ~.types-module-mixed ~[%tests %golden ~.types-module-mixed %source %jibb] src-484 `typ-484 ~[[%fixture %title imp-484-1]] ~[[%label mark-484-1]] ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-484-1]])) (check-module-trees ~.types-module-mixed `mtre-484 ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-484-1]]))
3384+ (weld (weld (check ~.types-module-mixed src-490 `tok-490 `tre-490) (check-module-types ~.types-module-mixed ~[%tests %golden ~.types-module-mixed %source %jibb] src-490 `typ-490 ~[[%fixture %title imp-490-1]] ~[[%label mark-490-1]] ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-490-1]])) (check-module-trees ~.types-module-mixed `mtre-490 ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-490-1]]))
3345++ test-types-multi-call
3385++ test-types-multi-call
3346− (weld (check ~.types-multi-call src-485 `tok-485 `tre-485) (check-module-types ~.types-multi-call ~[%tests %golden ~.types-multi-call %source %jibb] src-485 `typ-485 ~ ~ ~))
3386+ (weld (check ~.types-multi-call src-491 `tok-491 `tre-491) (check-module-types ~.types-multi-call ~[%tests %golden ~.types-multi-call %source %jibb] src-491 `typ-491 ~ ~ ~))
3347++ test-types-multi-import
3387++ test-types-multi-import
3348− (weld (weld (check ~.types-multi-import src-486 `tok-486 `tre-486) (check-module-types ~.types-multi-import ~[%tests %golden ~.types-multi-import %source %jibb] src-486 `typ-486 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-486-1]])) (check-module-trees ~.types-multi-import `mtre-486 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-486-1]]))
3388+ (weld (weld (check ~.types-multi-import src-492 `tok-492 `tre-492) (check-module-types ~.types-multi-import ~[%tests %golden ~.types-multi-import %source %jibb] src-492 `typ-492 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-492-1]])) (check-module-trees ~.types-multi-import `mtre-492 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-492-1]]))
3349++ test-types-nested-missing-tag
3389++ test-types-nested-missing-tag
3350− (weld (check ~.types-nested-missing-tag src-487 `tok-487 `tre-487) (check-module-types ~.types-nested-missing-tag ~[%tests %golden ~.types-nested-missing-tag %source %jibb] src-487 `typ-487 ~ ~ ~))
3390+ (weld (check ~.types-nested-missing-tag src-493 `tok-493 `tre-493) (check-module-types ~.types-nested-missing-tag ~[%tests %golden ~.types-nested-missing-tag %source %jibb] src-493 `typ-493 ~ ~ ~))
3351++ test-types-null-context
3391++ test-types-null-context
3352− (weld (check ~.types-null-context src-488 `tok-488 `tre-488) (check-types ~.types-null-context ~[%tests %golden ~.types-null-context %source %jibb] src-488 `typ-488))
3392+ (weld (check ~.types-null-context src-494 `tok-494 `tre-494) (check-types ~.types-null-context ~[%tests %golden ~.types-null-context %source %jibb] src-494 `typ-494))
3353++ test-types-null-overlap
3393++ test-types-null-overlap
3354− (weld (check ~.types-null-overlap src-489 `tok-489 `tre-489) (check-types ~.types-null-overlap ~[%tests %golden ~.types-null-overlap %source %jibb] src-489 `typ-489))
3394+ (weld (check ~.types-null-overlap src-495 `tok-495 `tre-495) (check-types ~.types-null-overlap ~[%tests %golden ~.types-null-overlap %source %jibb] src-495 `typ-495))
3355++ test-types-null-unresolved
3395++ test-types-null-unresolved
3356− (weld (check ~.types-null-unresolved src-490 `tok-490 `tre-490) (check-types ~.types-null-unresolved ~[%tests %golden ~.types-null-unresolved %source %jibb] src-490 `typ-490))
3396+ (weld (check ~.types-null-unresolved src-496 `tok-496 `tre-496) (check-types ~.types-null-unresolved ~[%tests %golden ~.types-null-unresolved %source %jibb] src-496 `typ-496))
3357++ test-types-pair-context
3397++ test-types-pair-context
3358− (weld (check ~.types-pair-context src-491 `tok-491 `tre-491) (check-module-types ~.types-pair-context ~[%tests %golden ~.types-pair-context %source %jibb] src-491 `typ-491 ~ ~ ~))
3398+ (weld (check ~.types-pair-context src-497 `tok-497 `tre-497) (check-module-types ~.types-pair-context ~[%tests %golden ~.types-pair-context %source %jibb] src-497 `typ-497 ~ ~ ~))
3359++ test-types-partial-apply
3399++ test-types-partial-apply
3360− (weld (check ~.types-partial-apply src-492 `tok-492 `tre-492) (check-types ~.types-partial-apply ~[%tests %golden ~.types-partial-apply %source %jibb] src-492 `typ-492))
3400+ (weld (check ~.types-partial-apply src-498 `tok-498 `tre-498) (check-types ~.types-partial-apply ~[%tests %golden ~.types-partial-apply %source %jibb] src-498 `typ-498))
3361++ test-types-partial-atom-alias
3401++ test-types-partial-atom-alias
3362− (weld (check ~.types-partial-atom-alias src-493 `tok-493 `tre-493) (check-types ~.types-partial-atom-alias ~[%tests %golden ~.types-partial-atom-alias %source %jibb] src-493 `typ-493))
3402+ (weld (check ~.types-partial-atom-alias src-499 `tok-499 `tre-499) (check-types ~.types-partial-atom-alias ~[%tests %golden ~.types-partial-atom-alias %source %jibb] src-499 `typ-499))
3363++ test-types-partial-atom-constraint
3403++ test-types-partial-atom-constraint
3364− (weld (check ~.types-partial-atom-constraint src-494 `tok-494 `tre-494) (check-types ~.types-partial-atom-constraint ~[%tests %golden ~.types-partial-atom-constraint %source %jibb] src-494 `typ-494))
3404+ (weld (check ~.types-partial-atom-constraint src-500 `tok-500 `tre-500) (check-types ~.types-partial-atom-constraint ~[%tests %golden ~.types-partial-atom-constraint %source %jibb] src-500 `typ-500))
3365++ test-types-partial-atom-widening
3405++ test-types-partial-atom-widening
3366− (weld (check ~.types-partial-atom-widening src-495 `tok-495 `tre-495) (check-types ~.types-partial-atom-widening ~[%tests %golden ~.types-partial-atom-widening %source %jibb] src-495 `typ-495))
3406+ (weld (check ~.types-partial-atom-widening src-501 `tok-501 `tre-501) (check-types ~.types-partial-atom-widening ~[%tests %golden ~.types-partial-atom-widening %source %jibb] src-501 `typ-501))
3367++ test-types-partial-aura
3407++ test-types-partial-aura
3368− (weld (check ~.types-partial-aura src-496 `tok-496 `tre-496) (check-types ~.types-partial-aura ~[%tests %golden ~.types-partial-aura %source %jibb] src-496 `typ-496))
3408+ (weld (check ~.types-partial-aura src-502 `tok-502 `tre-502) (check-types ~.types-partial-aura ~[%tests %golden ~.types-partial-aura %source %jibb] src-502 `typ-502))
3369++ test-types-partial-aura-family
3409++ test-types-partial-aura-family
3370− (weld (check ~.types-partial-aura-family src-497 `tok-497 `tre-497) (check-types ~.types-partial-aura-family ~[%tests %golden ~.types-partial-aura-family %source %jibb] src-497 `typ-497))
3410+ (weld (check ~.types-partial-aura-family src-503 `tok-503 `tre-503) (check-types ~.types-partial-aura-family ~[%tests %golden ~.types-partial-aura-family %source %jibb] src-503 `typ-503))
3371++ test-types-partial-aura-generalization
3411++ test-types-partial-aura-generalization
3372− (weld (check ~.types-partial-aura-generalization src-498 `tok-498 `tre-498) (check-types ~.types-partial-aura-generalization ~[%tests %golden ~.types-partial-aura-generalization %source %jibb] src-498 `typ-498))
3412+ (weld (check ~.types-partial-aura-generalization src-504 `tok-504 `tre-504) (check-types ~.types-partial-aura-generalization ~[%tests %golden ~.types-partial-aura-generalization %source %jibb] src-504 `typ-504))
3373++ test-types-partial-bare-atom
3413++ test-types-partial-bare-atom
3374− (weld (check ~.types-partial-bare-atom src-499 `tok-499 `tre-499) (check-types ~.types-partial-bare-atom ~[%tests %golden ~.types-partial-bare-atom %source %jibb] src-499 `typ-499))
3414+ (weld (check ~.types-partial-bare-atom src-505 `tok-505 `tre-505) (check-types ~.types-partial-bare-atom ~[%tests %golden ~.types-partial-bare-atom %source %jibb] src-505 `typ-505))
3375++ test-types-partial-branch-widening
3415++ test-types-partial-branch-widening
3376− (weld (check ~.types-partial-branch-widening src-500 `tok-500 `tre-500) (check-types ~.types-partial-branch-widening ~[%tests %golden ~.types-partial-branch-widening %source %jibb] src-500 `typ-500))
3416+ (weld (check ~.types-partial-branch-widening src-506 `tok-506 `tre-506) (check-types ~.types-partial-branch-widening ~[%tests %golden ~.types-partial-branch-widening %source %jibb] src-506 `typ-506))
3377++ test-types-partial-conflicting-sites
3417++ test-types-partial-conflicting-sites
3378− (weld (check ~.types-partial-conflicting-sites src-501 `tok-501 `tre-501) (check-types ~.types-partial-conflicting-sites ~[%tests %golden ~.types-partial-conflicting-sites %source %jibb] src-501 `typ-501))
3418+ (weld (check ~.types-partial-conflicting-sites src-507 `tok-507 `tre-507) (check-types ~.types-partial-conflicting-sites ~[%tests %golden ~.types-partial-conflicting-sites %source %jibb] src-507 `typ-507))
3379++ test-types-partial-decimal-default
3419++ test-types-partial-decimal-default
3380− (weld (check ~.types-partial-decimal-default src-502 `tok-502 `tre-502) (check-types ~.types-partial-decimal-default ~[%tests %golden ~.types-partial-decimal-default %source %jibb] src-502 `typ-502))
3420+ (weld (check ~.types-partial-decimal-default src-508 `tok-508 `tre-508) (check-types ~.types-partial-decimal-default ~[%tests %golden ~.types-partial-decimal-default %source %jibb] src-508 `typ-508))
3381++ test-types-partial-dependency-chain
3421++ test-types-partial-dependency-chain
3382− (weld (check ~.types-partial-dependency-chain src-503 `tok-503 `tre-503) (check-types ~.types-partial-dependency-chain ~[%tests %golden ~.types-partial-dependency-chain %source %jibb] src-503 `typ-503))
3422+ (weld (check ~.types-partial-dependency-chain src-509 `tok-509 `tre-509) (check-types ~.types-partial-dependency-chain ~[%tests %golden ~.types-partial-dependency-chain %source %jibb] src-509 `typ-509))
3383++ test-types-partial-explicit-capital
3423++ test-types-partial-explicit-capital
3384− (weld (check ~.types-partial-explicit-capital src-504 `tok-504 `tre-504) (check-types ~.types-partial-explicit-capital ~[%tests %golden ~.types-partial-explicit-capital %source %jibb] src-504 `typ-504))
3424+ (weld (check ~.types-partial-explicit-capital src-510 `tok-510 `tre-510) (check-types ~.types-partial-explicit-capital ~[%tests %golden ~.types-partial-explicit-capital %source %jibb] src-510 `typ-510))
3385++ test-types-partial-forward
3425++ test-types-partial-forward
3386− (weld (check ~.types-partial-forward src-505 `tok-505 `tre-505) (check-types ~.types-partial-forward ~[%tests %golden ~.types-partial-forward %source %jibb] src-505 `typ-505))
3426+ (weld (check ~.types-partial-forward src-511 `tok-511 `tre-511) (check-types ~.types-partial-forward ~[%tests %golden ~.types-partial-forward %source %jibb] src-511 `typ-511))
3387++ test-types-partial-generalization
3427++ test-types-partial-generalization
3388− (weld (check ~.types-partial-generalization src-506 `tok-506 `tre-506) (check-types ~.types-partial-generalization ~[%tests %golden ~.types-partial-generalization %source %jibb] src-506 `typ-506))
3428+ (weld (check ~.types-partial-generalization src-512 `tok-512 `tre-512) (check-types ~.types-partial-generalization ~[%tests %golden ~.types-partial-generalization %source %jibb] src-512 `typ-512))
3389++ test-types-partial-identity
3429++ test-types-partial-identity
3390− (weld (check ~.types-partial-identity src-507 `tok-507 `tre-507) (check-types ~.types-partial-identity ~[%tests %golden ~.types-partial-identity %source %jibb] src-507 `typ-507))
3430+ (weld (check ~.types-partial-identity src-513 `tok-513 `tre-513) (check-types ~.types-partial-identity ~[%tests %golden ~.types-partial-identity %source %jibb] src-513 `typ-513))
3391++ test-types-partial-independent-atoms
3431++ test-types-partial-independent-atoms
3392− (weld (check ~.types-partial-independent-atoms src-508 `tok-508 `tre-508) (check-types ~.types-partial-independent-atoms ~[%tests %golden ~.types-partial-independent-atoms %source %jibb] src-508 `typ-508))
3432+ (weld (check ~.types-partial-independent-atoms src-514 `tok-514 `tre-514) (check-types ~.types-partial-independent-atoms ~[%tests %golden ~.types-partial-independent-atoms %source %jibb] src-514 `typ-514))
3393++ test-types-partial-local-molds
3433++ test-types-partial-local-molds
3394− (weld (check ~.types-partial-local-molds src-509 `tok-509 `tre-509) (check-types ~.types-partial-local-molds ~[%tests %golden ~.types-partial-local-molds %source %jibb] src-509 `typ-509))
3434+ (weld (check ~.types-partial-local-molds src-515 `tok-515 `tre-515) (check-types ~.types-partial-local-molds ~[%tests %golden ~.types-partial-local-molds %source %jibb] src-515 `typ-515))
3395++ test-types-partial-locals
3435++ test-types-partial-locals
3396− (weld (check ~.types-partial-locals src-510 `tok-510 `tre-510) (check-types ~.types-partial-locals ~[%tests %golden ~.types-partial-locals %source %jibb] src-510 `typ-510))
3436+ (weld (check ~.types-partial-locals src-516 `tok-516 `tre-516) (check-types ~.types-partial-locals ~[%tests %golden ~.types-partial-locals %source %jibb] src-516 `typ-516))
3397++ test-types-partial-many-atom-constraints
3437++ test-types-partial-many-atom-constraints
3398− (weld (check ~.types-partial-many-atom-constraints src-511 `tok-511 `tre-511) (check-types ~.types-partial-many-atom-constraints ~[%tests %golden ~.types-partial-many-atom-constraints %source %jibb] src-511 `typ-511))
3438+ (weld (check ~.types-partial-many-atom-constraints src-517 `tok-517 `tre-517) (check-types ~.types-partial-many-atom-constraints ~[%tests %golden ~.types-partial-many-atom-constraints %source %jibb] src-517 `typ-517))
3399++ test-types-partial-mold-bare-aura
3439++ test-types-partial-mold-bare-aura
3400− (weld (check ~.types-partial-mold-bare-aura src-512 `tok-512 `tre-512) (check-types ~.types-partial-mold-bare-aura ~[%tests %golden ~.types-partial-mold-bare-aura %source %jibb] src-512 `typ-512))
3440+ (weld (check ~.types-partial-mold-bare-aura src-518 `tok-518 `tre-518) (check-types ~.types-partial-mold-bare-aura ~[%tests %golden ~.types-partial-mold-bare-aura %source %jibb] src-518 `typ-518))
3401++ test-types-partial-mold-composite
3441++ test-types-partial-mold-composite
3402− (weld (check ~.types-partial-mold-composite src-513 `tok-513 `tre-513) (check-types ~.types-partial-mold-composite ~[%tests %golden ~.types-partial-mold-composite %source %jibb] src-513 `typ-513))
3442+ (weld (check ~.types-partial-mold-composite src-519 `tok-519 `tre-519) (check-types ~.types-partial-mold-composite ~[%tests %golden ~.types-partial-mold-composite %source %jibb] src-519 `typ-519))
3403++ test-types-partial-mold-forward
3443++ test-types-partial-mold-forward
3404− (weld (check ~.types-partial-mold-forward src-514 `tok-514 `tre-514) (check-types ~.types-partial-mold-forward ~[%tests %golden ~.types-partial-mold-forward %source %jibb] src-514 `typ-514))
3444+ (weld (check ~.types-partial-mold-forward src-520 `tok-520 `tre-520) (check-types ~.types-partial-mold-forward ~[%tests %golden ~.types-partial-mold-forward %source %jibb] src-520 `typ-520))
3405++ test-types-partial-mold-recursive
3445++ test-types-partial-mold-recursive
3406− (weld (check ~.types-partial-mold-recursive src-515 `tok-515 `tre-515) (check-types ~.types-partial-mold-recursive ~[%tests %golden ~.types-partial-mold-recursive %source %jibb] src-515 `typ-515))
3446+ (weld (check ~.types-partial-mold-recursive src-521 `tok-521 `tre-521) (check-types ~.types-partial-mold-recursive ~[%tests %golden ~.types-partial-mold-recursive %source %jibb] src-521 `typ-521))
3407++ test-types-partial-occurs
3447++ test-types-partial-occurs
3408− (weld (check ~.types-partial-occurs src-516 `tok-516 `tre-516) (check-types ~.types-partial-occurs ~[%tests %golden ~.types-partial-occurs %source %jibb] src-516 `typ-516))
3448+ (weld (check ~.types-partial-occurs src-522 `tok-522 `tre-522) (check-types ~.types-partial-occurs ~[%tests %golden ~.types-partial-occurs %source %jibb] src-522 `typ-522))
3409++ test-types-partial-projection
3449++ test-types-partial-projection
3410− (weld (check ~.types-partial-projection src-517 `tok-517 `tre-517) (check-types ~.types-partial-projection ~[%tests %golden ~.types-partial-projection %source %jibb] src-517 `typ-517))
3450+ (weld (check ~.types-partial-projection src-523 `tok-523 `tre-523) (check-types ~.types-partial-projection ~[%tests %golden ~.types-partial-projection %source %jibb] src-523 `typ-523))
3411++ test-types-partial-shadow-global
3451++ test-types-partial-shadow-global
3412− (weld (check ~.types-partial-shadow-global src-518 `tok-518 `tre-518) (check-types ~.types-partial-shadow-global ~[%tests %golden ~.types-partial-shadow-global %source %jibb] src-518 `typ-518))
3452+ (weld (check ~.types-partial-shadow-global src-524 `tok-524 `tre-524) (check-types ~.types-partial-shadow-global ~[%tests %golden ~.types-partial-shadow-global %source %jibb] src-524 `typ-524))
3413++ test-types-partial-shared-tvar
3453++ test-types-partial-shared-tvar
3414− (weld (check ~.types-partial-shared-tvar src-519 `tok-519 `tre-519) (check-types ~.types-partial-shared-tvar ~[%tests %golden ~.types-partial-shared-tvar %source %jibb] src-519 `typ-519))
3454+ (weld (check ~.types-partial-shared-tvar src-525 `tok-525 `tre-525) (check-types ~.types-partial-shared-tvar ~[%tests %golden ~.types-partial-shared-tvar %source %jibb] src-525 `typ-525))
3415++ test-types-partial-union-cases
3455++ test-types-partial-union-cases
3416− (weld (check ~.types-partial-union-cases src-520 `tok-520 `tre-520) (check-types ~.types-partial-union-cases ~[%tests %golden ~.types-partial-union-cases %source %jibb] src-520 `typ-520))
3456+ (weld (check ~.types-partial-union-cases src-526 `tok-526 `tre-526) (check-types ~.types-partial-union-cases ~[%tests %golden ~.types-partial-union-cases %source %jibb] src-526 `typ-526))
3417++ test-types-partial-union-edges
3457++ test-types-partial-union-edges
3418− (weld (check ~.types-partial-union-edges src-521 `tok-521 `tre-521) (check-types ~.types-partial-union-edges ~[%tests %golden ~.types-partial-union-edges %source %jibb] src-521 `typ-521))
3458+ (weld (check ~.types-partial-union-edges src-527 `tok-527 `tre-527) (check-types ~.types-partial-union-edges ~[%tests %golden ~.types-partial-union-edges %source %jibb] src-527 `typ-527))
3419++ test-types-partial-unresolved-tag
3459++ test-types-partial-unresolved-tag
3420− (weld (check ~.types-partial-unresolved-tag src-522 `tok-522 `tre-522) (check-types ~.types-partial-unresolved-tag ~[%tests %golden ~.types-partial-unresolved-tag %source %jibb] src-522 `typ-522))
3460+ (weld (check ~.types-partial-unresolved-tag src-528 `tok-528 `tre-528) (check-types ~.types-partial-unresolved-tag ~[%tests %golden ~.types-partial-unresolved-tag %source %jibb] src-528 `typ-528))
3421++ test-types-positional-faces
3461++ test-types-positional-faces
3422− (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))
3462+ (weld (check ~.types-positional-faces src-529 `tok-529 `tre-529) (check-types ~.types-positional-faces ~[%tests %golden ~.types-positional-faces %source %jibb] src-529 `typ-529))
3423++ test-types-prelude-arithmetic
3463++ test-types-prelude-arithmetic
3424− (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 ~ ~ ~))
3464+ (weld (check ~.types-prelude-arithmetic src-530 `tok-530 `tre-530) (check-module-types ~.types-prelude-arithmetic ~[%tests %golden ~.types-prelude-arithmetic %source %jibb] src-530 `typ-530 ~ ~ ~))
3425++ test-types-prelude-ask
3465++ test-types-prelude-ask
3426− (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 ~ ~ ~))
3466+ (weld (check ~.types-prelude-ask src-531 `tok-531 `tre-531) (check-module-types ~.types-prelude-ask ~[%tests %golden ~.types-prelude-ask %source %jibb] src-531 `typ-531 ~ ~ ~))
3427++ test-types-prelude-bond
3467++ test-types-prelude-bond
3428− (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 ~ ~ ~))
3468+ (weld (check ~.types-prelude-bond src-532 `tok-532 `tre-532) (check-module-types ~.types-prelude-bond ~[%tests %golden ~.types-prelude-bond %source %jibb] src-532 `typ-532 ~ ~ ~))
3429++ test-types-prelude-cmd
3469++ test-types-prelude-cmd
3430− (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 ~ ~ ~))
3470+ (weld (check ~.types-prelude-cmd src-533 `tok-533 `tre-533) (check-module-types ~.types-prelude-cmd ~[%tests %golden ~.types-prelude-cmd %source %jibb] src-533 `typ-533 ~ ~ ~))
3431++ test-types-prelude-direct
3471++ test-types-prelude-direct
3432− (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 ~ ~ ~))
3472+ (weld (check ~.types-prelude-direct src-534 `tok-534 `tre-534) (check-module-types ~.types-prelude-direct ~[%tests %golden ~.types-prelude-direct %source %jibb] src-534 `typ-534 ~ ~ ~))
3433++ test-types-prelude-functional
3473++ test-types-prelude-functional
3434− (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 ~ ~ ~))
3474+ (weld (check ~.types-prelude-functional src-535 `tok-535 `tre-535) (check-module-types ~.types-prelude-functional ~[%tests %golden ~.types-prelude-functional %source %jibb] src-535 `typ-535 ~ ~ ~))
3435++ test-types-prelude-generic-alias
3475++ test-types-prelude-generic-alias
3436− (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]]))
3476+ (weld (weld (check ~.types-prelude-generic-alias src-536 `tok-536 `tre-536) (check-module-types ~.types-prelude-generic-alias ~[%tests %golden ~.types-prelude-generic-alias %source %jibb] src-536 `typ-536 ~ ~ ~[['/ui/alias-helper.jibb' ~[~.ui ~.alias-helper ~.jibb] mod-536-1]])) (check-module-trees ~.types-prelude-generic-alias `mtre-536 ~[['/ui/alias-helper.jibb' ~[~.ui ~.alias-helper ~.jibb] mod-536-1]]))
3437++ test-types-prelude-interface
3477++ test-types-prelude-interface
3438− (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]]))
3478+ (weld (weld (check ~.types-prelude-interface src-537 `tok-537 `tre-537) (check-module-types ~.types-prelude-interface ~[%tests %golden ~.types-prelude-interface %source %jibb] src-537 `typ-537 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-537-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-537-2]])) (check-module-trees ~.types-prelude-interface `mtre-537 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-537-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-537-2]]))
3439++ test-types-prelude-like
3479++ test-types-prelude-like
3440− (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 ~ ~ ~))
3480+ (weld (check ~.types-prelude-like src-538 `tok-538 `tre-538) (check-module-types ~.types-prelude-like ~[%tests %golden ~.types-prelude-like %source %jibb] src-538 `typ-538 ~ ~ ~))
3441++ test-types-prelude-list-alias
3481++ test-types-prelude-list-alias
3442− (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 ~ ~ ~))
3482+ (weld (check ~.types-prelude-list-alias src-539 `tok-539 `tre-539) (check-module-types ~.types-prelude-list-alias ~[%tests %golden ~.types-prelude-list-alias %source %jibb] src-539 `typ-539 ~ ~ ~))
3443++ test-types-prelude-list-functions
3483++ test-types-prelude-list-functions
3444− (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]]))
3484+ (weld (weld (check ~.types-prelude-list-functions src-540 `tok-540 `tre-540) (check-module-types ~.types-prelude-list-functions ~[%tests %golden ~.types-prelude-list-functions %source %jibb] src-540 `typ-540 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-540-1]])) (check-module-trees ~.types-prelude-list-functions `mtre-540 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-540-1]]))
3445++ test-types-prelude-list-helpers
3485++ test-types-prelude-list-helpers
3446− (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 ~ ~ ~))
3486+ (weld (check ~.types-prelude-list-helpers src-541 `tok-541 `tre-541) (check-module-types ~.types-prelude-list-helpers ~[%tests %golden ~.types-prelude-list-helpers %source %jibb] src-541 `typ-541 ~ ~ ~))
3447++ test-types-prelude-predicates
3487++ test-types-prelude-predicates
3448− (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 ~ ~ ~))
3488+ (weld (check ~.types-prelude-predicates src-542 `tok-542 `tre-542) (check-module-types ~.types-prelude-predicates ~[%tests %golden ~.types-prelude-predicates %source %jibb] src-542 `typ-542 ~ ~ ~))
3489+++ test-types-prelude-sub
3490+ (weld (check ~.types-prelude-sub src-543 `tok-543 `tre-543) (check-module-types ~.types-prelude-sub ~[%tests %golden ~.types-prelude-sub %source %jibb] src-543 `typ-543 ~ ~ ~))
3449++ test-types-prelude-unit-helpers
3491++ test-types-prelude-unit-helpers
3450− (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 ~ ~ ~))
3492+ (weld (check ~.types-prelude-unit-helpers src-544 `tok-544 `tre-544) (check-module-types ~.types-prelude-unit-helpers ~[%tests %golden ~.types-prelude-unit-helpers %source %jibb] src-544 `typ-544 ~ ~ ~))
3451++ test-types-proj-explicit-context
3493++ test-types-proj-explicit-context
3452− (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 ~ ~ ~))
3494+ (weld (check ~.types-proj-explicit-context src-545 `tok-545 `tre-545) (check-module-types ~.types-proj-explicit-context ~[%tests %golden ~.types-proj-explicit-context %source %jibb] src-545 `typ-545 ~ ~ ~))
3453++ test-types-proj-nested-no-implicit
3495++ test-types-proj-nested-no-implicit
3454− (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 ~ ~ ~))
3496+ (weld (check ~.types-proj-nested-no-implicit src-546 `tok-546 `tre-546) (check-module-types ~.types-proj-nested-no-implicit ~[%tests %golden ~.types-proj-nested-no-implicit %source %jibb] src-546 `typ-546 ~ ~ ~))
3455++ test-types-proj-reserved-imported-definition
3497++ test-types-proj-reserved-imported-definition
3456− (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]]))
3498+ (weld (weld (check ~.types-proj-reserved-imported-definition src-547 `tok-547 `tre-547) (check-module-types ~.types-proj-reserved-imported-definition ~[%tests %golden ~.types-proj-reserved-imported-definition %source %jibb] src-547 `typ-547 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-547-1]])) (check-module-trees ~.types-proj-reserved-imported-definition `mtre-547 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-547-1]]))
3457++ test-types-proj-reserved-jibb-import
3499++ test-types-proj-reserved-jibb-import
3458− (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]]))
3500+ (weld (weld (check ~.types-proj-reserved-jibb-import src-548 `tok-548 `tre-548) (check-module-types ~.types-proj-reserved-jibb-import ~[%tests %golden ~.types-proj-reserved-jibb-import %source %jibb] src-548 `typ-548 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-548-1]])) (check-module-trees ~.types-proj-reserved-jibb-import `mtre-548 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-548-1]]))
3459++ test-types-proj-reserved-local
3501++ test-types-proj-reserved-local
3460− (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 ~ ~ ~))
3502+ (weld (check ~.types-proj-reserved-local src-549 `tok-549 `tre-549) (check-module-types ~.types-proj-reserved-local ~[%tests %golden ~.types-proj-reserved-local %source %jibb] src-549 `typ-549 ~ ~ ~))
3461++ test-types-proj-reserved-local-mold
3503++ test-types-proj-reserved-local-mold
3462− (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 ~ ~ ~))
3504+ (weld (check ~.types-proj-reserved-local-mold src-550 `tok-550 `tre-550) (check-module-types ~.types-proj-reserved-local-mold ~[%tests %golden ~.types-proj-reserved-local-mold %source %jibb] src-550 `typ-550 ~ ~ ~))
3463++ test-types-proj-reserved-mark-import
3505++ test-types-proj-reserved-mark-import
3464− (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 ~ ~ ~))
3506+ (weld (check ~.types-proj-reserved-mark-import src-551 `tok-551 `tre-551) (check-module-types ~.types-proj-reserved-mark-import ~[%tests %golden ~.types-proj-reserved-mark-import %source %jibb] src-551 `typ-551 ~ ~ ~))
3465++ test-types-proj-reserved-mold
3507++ test-types-proj-reserved-mold
3466− (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 ~ ~ ~))
3508+ (weld (check ~.types-proj-reserved-mold src-552 `tok-552 `tre-552) (check-module-types ~.types-proj-reserved-mold ~[%tests %golden ~.types-proj-reserved-mold %source %jibb] src-552 `typ-552 ~ ~ ~))
3467++ test-types-proj-reserved-pattern
3509++ test-types-proj-reserved-pattern
3468− (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 ~ ~ ~))
3510+ (weld (check ~.types-proj-reserved-pattern src-553 `tok-553 `tre-553) (check-module-types ~.types-proj-reserved-pattern ~[%tests %golden ~.types-proj-reserved-pattern %source %jibb] src-553 `typ-553 ~ ~ ~))
3469++ test-types-proj-reserved-positive
3511++ test-types-proj-reserved-positive
3470− (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 ~ ~ ~))
3512+ (weld (check ~.types-proj-reserved-positive src-554 `tok-554 `tre-554) (check-module-types ~.types-proj-reserved-positive ~[%tests %golden ~.types-proj-reserved-positive %source %jibb] src-554 `typ-554 ~ ~ ~))
3471++ test-types-proj-reserved-sample
3513++ test-types-proj-reserved-sample
3472− (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 ~ ~ ~))
3514+ (weld (check ~.types-proj-reserved-sample src-555 `tok-555 `tre-555) (check-module-types ~.types-proj-reserved-sample ~[%tests %golden ~.types-proj-reserved-sample %source %jibb] src-555 `typ-555 ~ ~ ~))
3473++ test-types-proj-reserved-sur-import
3515++ test-types-proj-reserved-sur-import
3474− (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 ~ ~ ~))
3516+ (weld (check ~.types-proj-reserved-sur-import src-556 `tok-556 `tre-556) (check-module-types ~.types-proj-reserved-sur-import ~[%tests %golden ~.types-proj-reserved-sur-import %source %jibb] src-556 `typ-556 ~ ~ ~))
3475++ test-types-proj-reserved-unused-pattern
3517++ test-types-proj-reserved-unused-pattern
3476− (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 ~ ~ ~))
3518+ (weld (check ~.types-proj-reserved-unused-pattern src-557 `tok-557 `tre-557) (check-module-types ~.types-proj-reserved-unused-pattern ~[%tests %golden ~.types-proj-reserved-unused-pattern %source %jibb] src-557 `typ-557 ~ ~ ~))
3477++ test-types-proj-reserved-unused-sample
3519++ test-types-proj-reserved-unused-sample
3478− (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 ~ ~ ~))
3520+ (weld (check ~.types-proj-reserved-unused-sample src-558 `tok-558 `tre-558) (check-module-types ~.types-proj-reserved-unused-sample ~[%tests %golden ~.types-proj-reserved-unused-sample %source %jibb] src-558 `typ-558 ~ ~ ~))
3479++ test-types-proj-reserved-unused-value
3521++ test-types-proj-reserved-unused-value
3480− (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 ~ ~ ~))
3522+ (weld (check ~.types-proj-reserved-unused-value src-559 `tok-559 `tre-559) (check-module-types ~.types-proj-reserved-unused-value ~[%tests %golden ~.types-proj-reserved-unused-value %source %jibb] src-559 `typ-559 ~ ~ ~))
3481++ test-types-proj-reserved-value
3523++ test-types-proj-reserved-value
3482− (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 ~ ~ ~))
3524+ (weld (check ~.types-proj-reserved-value src-560 `tok-560 `tre-560) (check-module-types ~.types-proj-reserved-value ~[%tests %golden ~.types-proj-reserved-value %source %jibb] src-560 `typ-560 ~ ~ ~))
3483++ test-types-proj-single-duplicate
3525++ test-types-proj-single-duplicate
3484− (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 ~ ~ ~))
3526+ (weld (check ~.types-proj-single-duplicate src-561 `tok-561 `tre-561) (check-module-types ~.types-proj-single-duplicate ~[%tests %golden ~.types-proj-single-duplicate %source %jibb] src-561 `typ-561 ~ ~ ~))
3485++ test-types-proj-single-field
3527++ test-types-proj-single-field
3486− (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 ~ ~ ~))
3528+ (weld (check ~.types-proj-single-field src-562 `tok-562 `tre-562) (check-module-types ~.types-proj-single-field ~[%tests %golden ~.types-proj-single-field %source %jibb] src-562 `typ-562 ~ ~ ~))
3487++ test-types-proj-single-sample-face
3529++ test-types-proj-single-sample-face
3488− (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 ~ ~ ~))
3530+ (weld (check ~.types-proj-single-sample-face src-563 `tok-563 `tre-563) (check-module-types ~.types-proj-single-sample-face ~[%tests %golden ~.types-proj-single-sample-face %source %jibb] src-563 `typ-563 ~ ~ ~))
3489++ test-types-proj-single-wrapped
3531++ test-types-proj-single-wrapped
3490− (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 ~ ~ ~))
3532+ (weld (check ~.types-proj-single-wrapped src-564 `tok-564 `tre-564) (check-module-types ~.types-proj-single-wrapped ~[%tests %golden ~.types-proj-single-wrapped %source %jibb] src-564 `typ-564 ~ ~ ~))
3491++ test-types-qath-faces
3533++ test-types-qath-faces
3492− (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 ~ ~ ~))
3534+ (weld (check ~.types-qath-faces src-565 `tok-565 `tre-565) (check-module-types ~.types-qath-faces ~[%tests %golden ~.types-qath-faces %source %jibb] src-565 `typ-565 ~ ~ ~))
3493++ test-types-qath-holes
3535++ test-types-qath-holes
3494− (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 ~ ~ ~))
3536+ (weld (check ~.types-qath-holes src-566 `tok-566 `tre-566) (check-module-types ~.types-qath-holes ~[%tests %golden ~.types-qath-holes %source %jibb] src-566 `typ-566 ~ ~ ~))
3495++ test-types-qath-module-identity
3537++ test-types-qath-module-identity
3496− (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]]))
3538+ (weld (weld (check ~.types-qath-module-identity src-567 `tok-567 `tre-567) (check-module-types ~.types-qath-module-identity ~[%tests %golden ~.types-qath-module-identity %source %jibb] src-567 `typ-567 ~ ~ ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-567-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-567-2] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-567-3]])) (check-module-trees ~.types-qath-module-identity `mtre-567 ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-567-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-567-2] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-567-3]]))
3497++ test-types-qath-recursive
3539++ test-types-qath-recursive
3498− (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 ~ ~ ~))
3540+ (weld (check ~.types-qath-recursive src-568 `tok-568 `tre-568) (check-module-types ~.types-qath-recursive ~[%tests %golden ~.types-qath-recursive %source %jibb] src-568 `typ-568 ~ ~ ~))
3499++ test-types-record-bound-variable
3541++ test-types-record-bound-variable
3500− (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))
3542+ (weld (check ~.types-record-bound-variable src-569 `tok-569 `tre-569) (check-types ~.types-record-bound-variable ~[%tests %golden ~.types-record-bound-variable %source %jibb] src-569 `typ-569))
3501++ test-types-record-cast-context
3543++ test-types-record-cast-context
3502− (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 ~ ~ ~))
3544+ (weld (check ~.types-record-cast-context src-570 `tok-570 `tre-570) (check-module-types ~.types-record-cast-context ~[%tests %golden ~.types-record-cast-context %source %jibb] src-570 `typ-570 ~ ~ ~))
3503++ test-types-record-change
3545++ test-types-record-change
3504− (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 ~ ~ ~))
3546+ (weld (check ~.types-record-change src-571 `tok-571 `tre-571) (check-module-types ~.types-record-change ~[%tests %golden ~.types-record-change %source %jibb] src-571 `typ-571 ~ ~ ~))
3505++ test-types-record-change-generic
3547++ test-types-record-change-generic
3506− (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 ~ ~ ~))
3548+ (weld (check ~.types-record-change-generic src-572 `tok-572 `tre-572) (check-module-types ~.types-record-change-generic ~[%tests %golden ~.types-record-change-generic %source %jibb] src-572 `typ-572 ~ ~ ~))
3507++ test-types-record-faces
3549++ test-types-record-faces
3508− (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))
3550+ (weld (check ~.types-record-faces src-573 `tok-573 `tre-573) (check-types ~.types-record-faces ~[%tests %golden ~.types-record-faces %source %jibb] src-573 `typ-573))
3509++ test-types-record-field-edit-separate
3551++ test-types-record-field-edit-separate
3510− (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))
3552+ (weld (check ~.types-record-field-edit-separate src-574 `tok-574 `tre-574) (check-types ~.types-record-field-edit-separate ~[%tests %golden ~.types-record-field-edit-separate %source %jibb] src-574 `typ-574))
3511++ test-types-record-field-expr-duplicate
3553++ test-types-record-field-expr-duplicate
3512− (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))
3554+ (weld (check ~.types-record-field-expr-duplicate src-575 `tok-575 `tre-575) (check-types ~.types-record-field-expr-duplicate ~[%tests %golden ~.types-record-field-expr-duplicate %source %jibb] src-575 `typ-575))
3513++ test-types-record-field-expr-separate
3555++ test-types-record-field-expr-separate
3514− (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))
3556+ (weld (check ~.types-record-field-expr-separate src-576 `tok-576 `tre-576) (check-types ~.types-record-field-expr-separate ~[%tests %golden ~.types-record-field-expr-separate %source %jibb] src-576 `typ-576))
3515++ test-types-record-field-module-reachable
3557++ test-types-record-field-module-reachable
3516− (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]]))
3558+ (weld (weld (check ~.types-record-field-module-reachable src-577 `tok-577 `tre-577) (check-module-types ~.types-record-field-module-reachable ~[%tests %golden ~.types-record-field-module-reachable %source %jibb] src-577 `typ-577 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-577-1]])) (check-module-trees ~.types-record-field-module-reachable `mtre-577 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-577-1]]))
3517++ test-types-record-field-module-unused
3559++ test-types-record-field-module-unused
3518− (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]]))
3560+ (weld (weld (check ~.types-record-field-module-unused src-578 `tok-578 `tre-578) (check-module-types ~.types-record-field-module-unused ~[%tests %golden ~.types-record-field-module-unused %source %jibb] src-578 `typ-578 ~ ~ ~[['/ui/good.jibb' ~[~.ui ~.good ~.jibb] mod-578-1] ['/ui/unused.jibb' ~[~.ui ~.unused ~.jibb] mod-578-2]])) (check-module-trees ~.types-record-field-module-unused `mtre-578 ~[['/ui/good.jibb' ~[~.ui ~.good ~.jibb] mod-578-1] ['/ui/unused.jibb' ~[~.ui ~.unused ~.jibb] mod-578-2]]))
3519++ test-types-record-field-nested-mold
3561++ test-types-record-field-nested-mold
3520− (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))
3562+ (weld (check ~.types-record-field-nested-mold src-579 `tok-579 `tre-579) (check-types ~.types-record-field-nested-mold ~[%tests %golden ~.types-record-field-nested-mold %source %jibb] src-579 `typ-579))
3521++ test-types-record-field-outer-inner
3563++ test-types-record-field-outer-inner
3522− (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))
3564+ (weld (check ~.types-record-field-outer-inner src-580 `tok-580 `tre-580) (check-types ~.types-record-field-outer-inner ~[%tests %golden ~.types-record-field-outer-inner %source %jibb] src-580 `typ-580))
3523++ test-types-record-field-sample-duplicate
3565++ test-types-record-field-sample-duplicate
3524− (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))
3566+ (weld (check ~.types-record-field-sample-duplicate src-581 `tok-581 `tre-581) (check-types ~.types-record-field-sample-duplicate ~[%tests %golden ~.types-record-field-sample-duplicate %source %jibb] src-581 `typ-581))
3525++ test-types-record-field-separate-molds
3567++ test-types-record-field-separate-molds
3526− (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))
3568+ (weld (check ~.types-record-field-separate-molds src-582 `tok-582 `tre-582) (check-types ~.types-record-field-separate-molds ~[%tests %golden ~.types-record-field-separate-molds %source %jibb] src-582 `typ-582))
3527++ test-types-record-field-unused-mold
3569++ test-types-record-field-unused-mold
3528− (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))
3570+ (weld (check ~.types-record-field-unused-mold src-583 `tok-583 `tre-583) (check-types ~.types-record-field-unused-mold ~[%tests %golden ~.types-record-field-unused-mold %source %jibb] src-583 `typ-583))
3529++ test-types-record-import
3571++ test-types-record-import
3530− (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]]))
3572+ (weld (weld (check ~.types-record-import src-584 `tok-584 `tre-584) (check-module-types ~.types-record-import ~[%tests %golden ~.types-record-import %source %jibb] src-584 `typ-584 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-584-1]])) (check-module-trees ~.types-record-import `mtre-584 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-584-1]]))
3531++ test-types-record-local-scheme
3573++ test-types-record-local-scheme
3532− (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))
3574+ (weld (check ~.types-record-local-scheme src-585 `tok-585 `tre-585) (check-types ~.types-record-local-scheme ~[%tests %golden ~.types-record-local-scheme %source %jibb] src-585 `typ-585))
3533++ test-types-record-nested
3575++ test-types-record-nested
3534− (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))
3576+ (weld (check ~.types-record-nested src-586 `tok-586 `tre-586) (check-types ~.types-record-nested ~[%tests %golden ~.types-record-nested %source %jibb] src-586 `typ-586))
3535++ test-types-record-to-tuple
3577++ test-types-record-to-tuple
3536− (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))
3578+ (weld (check ~.types-record-to-tuple src-587 `tok-587 `tre-587) (check-types ~.types-record-to-tuple ~[%tests %golden ~.types-record-to-tuple %source %jibb] src-587 `typ-587))
3537++ test-types-recursion-scc-failures
3579++ test-types-recursion-scc-failures
3538− (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 ~ ~ ~))
3580+ (weld (check ~.types-recursion-scc-failures src-588 `tok-588 `tre-588) (check-module-types ~.types-recursion-scc-failures ~[%tests %golden ~.types-recursion-scc-failures %source %jibb] src-588 `typ-588 ~ ~ ~))
3539++ test-types-recursion-scc-groups
3581++ test-types-recursion-scc-groups
3540− (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 ~ ~ ~))
3582+ (weld (check ~.types-recursion-scc-groups src-589 `tok-589 `tre-589) (check-module-types ~.types-recursion-scc-groups ~[%tests %golden ~.types-recursion-scc-groups %source %jibb] src-589 `typ-589 ~ ~ ~))
3541++ test-types-recursion-scc-import
3583++ test-types-recursion-scc-import
3542− (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]]))
3584+ (weld (weld (check ~.types-recursion-scc-import src-590 `tok-590 `tre-590) (check-module-types ~.types-recursion-scc-import ~[%tests %golden ~.types-recursion-scc-import %source %jibb] src-590 `typ-590 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-590-1]])) (check-module-trees ~.types-recursion-scc-import `mtre-590 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-590-1]]))
3543++ test-types-recursion-scc-import-bad
3585++ test-types-recursion-scc-import-bad
3544− (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]]))
3586+ (weld (weld (check ~.types-recursion-scc-import-bad src-591 `tok-591 `tre-591) (check-module-types ~.types-recursion-scc-import-bad ~[%tests %golden ~.types-recursion-scc-import-bad %source %jibb] src-591 `typ-591 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-591-1]])) (check-module-trees ~.types-recursion-scc-import-bad `mtre-591 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-591-1]]))
3545++ test-types-recursion-scc-local
3587++ test-types-recursion-scc-local
3546− (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 ~ ~ ~))
3588+ (weld (check ~.types-recursion-scc-local src-592 `tok-592 `tre-592) (check-module-types ~.types-recursion-scc-local ~[%tests %golden ~.types-recursion-scc-local %source %jibb] src-592 `typ-592 ~ ~ ~))
3547++ test-types-recursion-scc-order
3589++ test-types-recursion-scc-order
3548− (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 ~ ~ ~))
3590+ (weld (check ~.types-recursion-scc-order src-593 `tok-593 `tre-593) (check-module-types ~.types-recursion-scc-order ~[%tests %golden ~.types-recursion-scc-order %source %jibb] src-593 `typ-593 ~ ~ ~))
3549++ test-types-recursion-scc-shadow
3591++ test-types-recursion-scc-shadow
3550− (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 ~ ~ ~))
3592+ (weld (check ~.types-recursion-scc-shadow src-594 `tok-594 `tre-594) (check-module-types ~.types-recursion-scc-shadow ~[%tests %golden ~.types-recursion-scc-shadow %source %jibb] src-594 `typ-594 ~ ~ ~))
3551++ test-types-recursive-branch
3593++ test-types-recursive-branch
3552− (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 ~ ~ ~))
3594+ (weld (check ~.types-recursive-branch src-595 `tok-595 `tre-595) (check-module-types ~.types-recursive-branch ~[%tests %golden ~.types-recursive-branch %source %jibb] src-595 `typ-595 ~ ~ ~))
3553++ test-types-recursive-gate
3595++ test-types-recursive-gate
3554− (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))
3596+ (weld (check ~.types-recursive-gate src-596 `tok-596 `tre-596) (check-types ~.types-recursive-gate ~[%tests %golden ~.types-recursive-gate %source %jibb] src-596 `typ-596))
3555++ test-types-recursive-sample
3597++ test-types-recursive-sample
3556− (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))
3598+ (weld (check ~.types-recursive-sample src-597 `tok-597 `tre-597) (check-types ~.types-recursive-sample ~[%tests %golden ~.types-recursive-sample %source %jibb] src-597 `typ-597))
3557++ test-types-request-normal
3599++ test-types-request-normal
3558− (weld (weld (check ~.types-request-normal src-591 `tok-591 `tre-591) (check-module-types ~.types-request-normal ~[%tests %golden ~.types-request-normal %source %jibb] src-591 `typ-591 ~ ~[[%full mark-591-1]] ~[['/ui/api/demo.jibb' ~[~.ui ~.api ~.demo ~.jibb] mod-591-1]])) (check-module-trees ~.types-request-normal `mtre-591 ~[['/ui/api/demo.jibb' ~[~.ui ~.api ~.demo ~.jibb] mod-591-1]]))
3600+ (weld (weld (check ~.types-request-normal src-598 `tok-598 `tre-598) (check-module-types ~.types-request-normal ~[%tests %golden ~.types-request-normal %source %jibb] src-598 `typ-598 ~ ~[[%full mark-598-1]] ~[['/ui/api/demo.jibb' ~[~.ui ~.api ~.demo ~.jibb] mod-598-1]])) (check-module-trees ~.types-request-normal `mtre-598 ~[['/ui/api/demo.jibb' ~[~.ui ~.api ~.demo ~.jibb] mod-598-1]]))
3559++ test-types-scope-library-poke
3601++ test-types-scope-library-poke
3560− (weld (check-at ~.types-scope-library-poke ~[~.ui ~.lib ~.library ~.jibb] src-592 `tok-592 `tre-592) (check-module-types ~.types-scope-library-poke ~[~.ui ~.lib ~.library ~.jibb] src-592 `typ-592 ~ ~ ~))
3602+ (weld (check-at ~.types-scope-library-poke ~[~.ui ~.lib ~.library ~.jibb] src-599 `tok-599 `tre-599) (check-module-types ~.types-scope-library-poke ~[~.ui ~.lib ~.library ~.jibb] src-599 `typ-599 ~ ~ ~))
3561++ test-types-scope-root-api
3603++ test-types-scope-root-api
3562− (weld (check-at ~.types-scope-root-api ~[~.ui ~.api ~.todo ~.jibb] src-593 `tok-593 `tre-593) (check-module-types ~.types-scope-root-api ~[~.ui ~.api ~.todo ~.jibb] src-593 `typ-593 ~ ~ ~))
3604+ (weld (check-at ~.types-scope-root-api ~[~.ui ~.api ~.todo ~.jibb] src-600 `tok-600 `tre-600) (check-module-types ~.types-scope-root-api ~[~.ui ~.api ~.todo ~.jibb] src-600 `typ-600 ~ ~ ~))
3563++ test-types-scope-store-duplicate
3605++ test-types-scope-store-duplicate
3564− (weld (check-at ~.types-scope-store-duplicate ~[~.ui ~.stores ~.cart ~.jibb] src-594 `tok-594 `tre-594) (check-module-types ~.types-scope-store-duplicate ~[~.ui ~.stores ~.cart ~.jibb] src-594 `typ-594 ~ ~ ~))
3606+ (weld (check-at ~.types-scope-store-duplicate ~[~.ui ~.stores ~.cart ~.jibb] src-601 `tok-601 `tre-601) (check-module-types ~.types-scope-store-duplicate ~[~.ui ~.stores ~.cart ~.jibb] src-601 `typ-601 ~ ~ ~))
3565++ test-types-scope-store-shadow
3607++ test-types-scope-store-shadow
3566− (weld (check-at ~.types-scope-store-shadow ~[~.ui ~.stores ~.cart ~.jibb] src-595 `tok-595 `tre-595) (check-module-types ~.types-scope-store-shadow ~[~.ui ~.stores ~.cart ~.jibb] src-595 `typ-595 ~ ~ ~))
3608+ (weld (check-at ~.types-scope-store-shadow ~[~.ui ~.stores ~.cart ~.jibb] src-602 `tok-602 `tre-602) (check-module-types ~.types-scope-store-shadow ~[~.ui ~.stores ~.cart ~.jibb] src-602 `typ-602 ~ ~ ~))
3567++ test-types-single-case-pattern
3609++ test-types-single-case-pattern
3568− (weld (check ~.types-single-case-pattern src-596 `tok-596 `tre-596) (check-module-types ~.types-single-case-pattern ~[%tests %golden ~.types-single-case-pattern %source %jibb] src-596 `typ-596 ~ ~ ~))
3610+ (weld (check ~.types-single-case-pattern src-603 `tok-603 `tre-603) (check-module-types ~.types-single-case-pattern ~[%tests %golden ~.types-single-case-pattern %source %jibb] src-603 `typ-603 ~ ~ ~))
3569++ test-types-string-interpolation
3611++ test-types-string-interpolation
3570− (weld (check ~.types-string-interpolation src-597 `tok-597 `tre-597) (check-module-types ~.types-string-interpolation ~[%tests %golden ~.types-string-interpolation %source %jibb] src-597 `typ-597 ~ ~ ~))
3612+ (weld (check ~.types-string-interpolation src-604 `tok-604 `tre-604) (check-module-types ~.types-string-interpolation ~[%tests %golden ~.types-string-interpolation %source %jibb] src-604 `typ-604 ~ ~ ~))
3571++ test-types-tuple-context
3613++ test-types-tuple-context
3572− (weld (check ~.types-tuple-context src-598 `tok-598 `tre-598) (check-module-types ~.types-tuple-context ~[%tests %golden ~.types-tuple-context %source %jibb] src-598 `typ-598 ~ ~ ~))
3614+ (weld (check ~.types-tuple-context src-605 `tok-605 `tre-605) (check-module-types ~.types-tuple-context ~[%tests %golden ~.types-tuple-context %source %jibb] src-605 `typ-605 ~ ~ ~))
3573++ test-types-tuple-context-nested
3615++ test-types-tuple-context-nested
3574− (weld (check ~.types-tuple-context-nested src-599 `tok-599 `tre-599) (check-module-types ~.types-tuple-context-nested ~[%tests %golden ~.types-tuple-context-nested %source %jibb] src-599 `typ-599 ~ ~ ~))
3616+ (weld (check ~.types-tuple-context-nested src-606 `tok-606 `tre-606) (check-module-types ~.types-tuple-context-nested ~[%tests %golden ~.types-tuple-context-nested %source %jibb] src-606 `typ-606 ~ ~ ~))
3575++ test-types-union-alias
3617++ test-types-union-alias
3576− (weld (check ~.types-union-alias src-600 `tok-600 `tre-600) (check-types ~.types-union-alias ~[%tests %golden ~.types-union-alias %source %jibb] src-600 `typ-600))
3618+ (weld (check ~.types-union-alias src-607 `tok-607 `tre-607) (check-types ~.types-union-alias ~[%tests %golden ~.types-union-alias %source %jibb] src-607 `typ-607))
3577++ test-types-union-branch-context
3619++ test-types-union-branch-context
3578− (weld (check ~.types-union-branch-context src-601 `tok-601 `tre-601) (check-types ~.types-union-branch-context ~[%tests %golden ~.types-union-branch-context %source %jibb] src-601 `typ-601))
3620+ (weld (check ~.types-union-branch-context src-608 `tok-608 `tre-608) (check-types ~.types-union-branch-context ~[%tests %golden ~.types-union-branch-context %source %jibb] src-608 `typ-608))
3579++ test-types-union-branch-pending
3621++ test-types-union-branch-pending
3580− (weld (check ~.types-union-branch-pending src-602 `tok-602 `tre-602) (check-types ~.types-union-branch-pending ~[%tests %golden ~.types-union-branch-pending %source %jibb] src-602 `typ-602))
3622+ (weld (check ~.types-union-branch-pending src-609 `tok-609 `tre-609) (check-types ~.types-union-branch-pending ~[%tests %golden ~.types-union-branch-pending %source %jibb] src-609 `typ-609))
3581++ test-types-union-constructor-shape
3623++ test-types-union-constructor-shape
3582− (weld (check ~.types-union-constructor-shape src-603 `tok-603 `tre-603) (check-types ~.types-union-constructor-shape ~[%tests %golden ~.types-union-constructor-shape %source %jibb] src-603 `typ-603))
3624+ (weld (check ~.types-union-constructor-shape src-610 `tok-610 `tre-610) (check-types ~.types-union-constructor-shape ~[%tests %golden ~.types-union-constructor-shape %source %jibb] src-610 `typ-610))
3583++ test-types-union-context-flow
3625++ test-types-union-context-flow
3584− (weld (check ~.types-union-context-flow src-604 `tok-604 `tre-604) (check-types ~.types-union-context-flow ~[%tests %golden ~.types-union-context-flow %source %jibb] src-604 `typ-604))
3626+ (weld (check ~.types-union-context-flow src-611 `tok-611 `tre-611) (check-types ~.types-union-context-flow ~[%tests %golden ~.types-union-context-flow %source %jibb] src-611 `typ-611))
3585++ test-types-union-finite
3627++ test-types-union-finite
3586− (weld (check ~.types-union-finite src-605 `tok-605 `tre-605) (check-module-types ~.types-union-finite ~[%tests %golden ~.types-union-finite %source %jibb] src-605 `typ-605 ~ ~ ~))
3628+ (weld (check ~.types-union-finite src-612 `tok-612 `tre-612) (check-module-types ~.types-union-finite ~[%tests %golden ~.types-union-finite %source %jibb] src-612 `typ-612 ~ ~ ~))
3587++ test-types-union-finite-context
3629++ test-types-union-finite-context
3588− (weld (check ~.types-union-finite-context src-606 `tok-606 `tre-606) (check-module-types ~.types-union-finite-context ~[%tests %golden ~.types-union-finite-context %source %jibb] src-606 `typ-606 ~ ~ ~))
3630+ (weld (check ~.types-union-finite-context src-613 `tok-613 `tre-613) (check-module-types ~.types-union-finite-context ~[%tests %golden ~.types-union-finite-context %source %jibb] src-613 `typ-613 ~ ~ ~))
3589++ test-types-union-finite-generic
3631++ test-types-union-finite-generic
3590− (weld (check ~.types-union-finite-generic src-607 `tok-607 `tre-607) (check-module-types ~.types-union-finite-generic ~[%tests %golden ~.types-union-finite-generic %source %jibb] src-607 `typ-607 ~ ~ ~))
3632+ (weld (check ~.types-union-finite-generic src-614 `tok-614 `tre-614) (check-module-types ~.types-union-finite-generic ~[%tests %golden ~.types-union-finite-generic %source %jibb] src-614 `typ-614 ~ ~ ~))
3591++ test-types-union-finite-limit
3633++ test-types-union-finite-limit
3592− (weld (check ~.types-union-finite-limit src-608 `tok-608 `tre-608) (check-module-types ~.types-union-finite-limit ~[%tests %golden ~.types-union-finite-limit %source %jibb] src-608 `typ-608 ~ ~ ~))
3634+ (weld (check ~.types-union-finite-limit src-615 `tok-615 `tre-615) (check-module-types ~.types-union-finite-limit ~[%tests %golden ~.types-union-finite-limit %source %jibb] src-615 `typ-615 ~ ~ ~))
3593++ test-types-union-import
3635++ test-types-union-import
3594− (weld (weld (check ~.types-union-import src-609 `tok-609 `tre-609) (check-module-types ~.types-union-import ~[%tests %golden ~.types-union-import %source %jibb] src-609 `typ-609 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-609-1]])) (check-module-trees ~.types-union-import `mtre-609 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-609-1]]))
3636+ (weld (weld (check ~.types-union-import src-616 `tok-616 `tre-616) (check-module-types ~.types-union-import ~[%tests %golden ~.types-union-import %source %jibb] src-616 `typ-616 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-616-1]])) (check-module-trees ~.types-union-import `mtre-616 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-616-1]]))
3595++ test-types-union-local-pending
3637++ test-types-union-local-pending
3596− (weld (check ~.types-union-local-pending src-610 `tok-610 `tre-610) (check-types ~.types-union-local-pending ~[%tests %golden ~.types-union-local-pending %source %jibb] src-610 `typ-610))
3638+ (weld (check ~.types-union-local-pending src-617 `tok-617 `tre-617) (check-types ~.types-union-local-pending ~[%tests %golden ~.types-union-local-pending %source %jibb] src-617 `typ-617))
3597++ test-types-union-nonwing-subject
3639++ test-types-union-nonwing-subject
3598− (weld (check ~.types-union-nonwing-subject src-611 `tok-611 `tre-611) (check-module-types ~.types-union-nonwing-subject ~[%tests %golden ~.types-union-nonwing-subject %source %jibb] src-611 `typ-611 ~ ~ ~))
3640+ (weld (check ~.types-union-nonwing-subject src-618 `tok-618 `tre-618) (check-module-types ~.types-union-nonwing-subject ~[%tests %golden ~.types-union-nonwing-subject %source %jibb] src-618 `typ-618 ~ ~ ~))
3599++ test-types-union-overlap
3641++ test-types-union-overlap
3600− (weld (check ~.types-union-overlap src-612 `tok-612 `tre-612) (check-types ~.types-union-overlap ~[%tests %golden ~.types-union-overlap %source %jibb] src-612 `typ-612))
3642+ (weld (check ~.types-union-overlap src-619 `tok-619 `tre-619) (check-types ~.types-union-overlap ~[%tests %golden ~.types-union-overlap %source %jibb] src-619 `typ-619))
3601++ test-types-union-overlap-nested
3643++ test-types-union-overlap-nested
3602− (weld (check ~.types-union-overlap-nested src-613 `tok-613 `tre-613) (check-types ~.types-union-overlap-nested ~[%tests %golden ~.types-union-overlap-nested %source %jibb] src-613 `typ-613))
3644+ (weld (check ~.types-union-overlap-nested src-620 `tok-620 `tre-620) (check-types ~.types-union-overlap-nested ~[%tests %golden ~.types-union-overlap-nested %source %jibb] src-620 `typ-620))
3603++ test-types-union-pattern-result-context
3645++ test-types-union-pattern-result-context
3604− (weld (check ~.types-union-pattern-result-context src-614 `tok-614 `tre-614) (check-module-types ~.types-union-pattern-result-context ~[%tests %golden ~.types-union-pattern-result-context %source %jibb] src-614 `typ-614 ~ ~ ~))
3646+ (weld (check ~.types-union-pattern-result-context src-621 `tok-621 `tre-621) (check-module-types ~.types-union-pattern-result-context ~[%tests %golden ~.types-union-pattern-result-context %source %jibb] src-621 `typ-621 ~ ~ ~))
3605++ test-types-union-pattern-result-controls
3647++ test-types-union-pattern-result-controls
3606− (weld (check ~.types-union-pattern-result-controls src-615 `tok-615 `tre-615) (check-module-types ~.types-union-pattern-result-controls ~[%tests %golden ~.types-union-pattern-result-controls %source %jibb] src-615 `typ-615 ~ ~ ~))
3648+ (weld (check ~.types-union-pattern-result-controls src-622 `tok-622 `tre-622) (check-module-types ~.types-union-pattern-result-controls ~[%tests %golden ~.types-union-pattern-result-controls %source %jibb] src-622 `typ-622 ~ ~ ~))
3607++ test-types-union-patterns
3649++ test-types-union-patterns
3608− (weld (check ~.types-union-patterns src-616 `tok-616 `tre-616) (check-module-types ~.types-union-patterns ~[%tests %golden ~.types-union-patterns %source %jibb] src-616 `typ-616 ~ ~ ~))
3650+ (weld (check ~.types-union-patterns src-623 `tok-623 `tre-623) (check-module-types ~.types-union-patterns ~[%tests %golden ~.types-union-patterns %source %jibb] src-623 `typ-623 ~ ~ ~))
3609++ test-types-union-patterns-generic
3651++ test-types-union-patterns-generic
3610− (weld (check ~.types-union-patterns-generic src-617 `tok-617 `tre-617) (check-module-types ~.types-union-patterns-generic ~[%tests %golden ~.types-union-patterns-generic %source %jibb] src-617 `typ-617 ~ ~ ~))
3652+ (weld (check ~.types-union-patterns-generic src-624 `tok-624 `tre-624) (check-module-types ~.types-union-patterns-generic ~[%tests %golden ~.types-union-patterns-generic %source %jibb] src-624 `typ-624 ~ ~ ~))
3611++ test-types-union-patterns-import
3653++ test-types-union-patterns-import
3612− (weld (weld (check ~.types-union-patterns-import src-618 `tok-618 `tre-618) (check-module-types ~.types-union-patterns-import ~[%tests %golden ~.types-union-patterns-import %source %jibb] src-618 `typ-618 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-618-1]])) (check-module-trees ~.types-union-patterns-import `mtre-618 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-618-1]]))
3654+ (weld (weld (check ~.types-union-patterns-import src-625 `tok-625 `tre-625) (check-module-types ~.types-union-patterns-import ~[%tests %golden ~.types-union-patterns-import %source %jibb] src-625 `typ-625 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-625-1]])) (check-module-trees ~.types-union-patterns-import `mtre-625 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-625-1]]))
3613++ test-types-union-phantom-generic
3655++ test-types-union-phantom-generic
3614− (weld (check ~.types-union-phantom-generic src-619 `tok-619 `tre-619) (check-types ~.types-union-phantom-generic ~[%tests %golden ~.types-union-phantom-generic %source %jibb] src-619 `typ-619))
3656+ (weld (check ~.types-union-phantom-generic src-626 `tok-626 `tre-626) (check-types ~.types-union-phantom-generic ~[%tests %golden ~.types-union-phantom-generic %source %jibb] src-626 `typ-626))
3615++ test-types-union-polymorphic-identity
3657++ test-types-union-polymorphic-identity
3616− (weld (weld (check ~.types-union-polymorphic-identity src-620 `tok-620 `tre-620) (check-module-types ~.types-union-polymorphic-identity ~[%tests %golden ~.types-union-polymorphic-identity %source %jibb] src-620 `typ-620 ~ ~ ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-620-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-620-2]])) (check-module-trees ~.types-union-polymorphic-identity `mtre-620 ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-620-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-620-2]]))
3658+ (weld (weld (check ~.types-union-polymorphic-identity src-627 `tok-627 `tre-627) (check-module-types ~.types-union-polymorphic-identity ~[%tests %golden ~.types-union-polymorphic-identity %source %jibb] src-627 `typ-627 ~ ~ ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-627-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-627-2]])) (check-module-trees ~.types-union-polymorphic-identity `mtre-627 ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-627-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-627-2]]))
3617++ test-types-union-print-cross-namespace
3659++ test-types-union-print-cross-namespace
3618− (weld (weld (check ~.types-union-print-cross-namespace src-621 `tok-621 `tre-621) (check-module-types ~.types-union-print-cross-namespace ~[%tests %golden ~.types-union-print-cross-namespace %source %jibb] src-621 `typ-621 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-621-1]])) (check-module-trees ~.types-union-print-cross-namespace `mtre-621 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-621-1]]))
3660+ (weld (weld (check ~.types-union-print-cross-namespace src-628 `tok-628 `tre-628) (check-module-types ~.types-union-print-cross-namespace ~[%tests %golden ~.types-union-print-cross-namespace %source %jibb] src-628 `typ-628 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-628-1]])) (check-module-trees ~.types-union-print-cross-namespace `mtre-628 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-628-1]]))
3619++ test-types-union-print-distinct
3661++ test-types-union-print-distinct
3620− (weld (weld (check ~.types-union-print-distinct src-622 `tok-622 `tre-622) (check-module-types ~.types-union-print-distinct ~[%tests %golden ~.types-union-print-distinct %source %jibb] src-622 `typ-622 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-622-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-622-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-622-3]])) (check-module-trees ~.types-union-print-distinct `mtre-622 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-622-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-622-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-622-3]]))
3662+ (weld (weld (check ~.types-union-print-distinct src-629 `tok-629 `tre-629) (check-module-types ~.types-union-print-distinct ~[%tests %golden ~.types-union-print-distinct %source %jibb] src-629 `typ-629 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-629-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-629-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-629-3]])) (check-module-trees ~.types-union-print-distinct `mtre-629 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-629-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-629-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-629-3]]))
3621++ test-types-union-print-escape
3663++ test-types-union-print-escape
3622− (weld (check ~.types-union-print-escape src-623 `tok-623 `tre-623) (check-types ~.types-union-print-escape ~[%tests %golden ~.types-union-print-escape %source %jibb] src-623 `typ-623))
3664+ (weld (check ~.types-union-print-escape src-630 `tok-630 `tre-630) (check-types ~.types-union-print-escape ~[%tests %golden ~.types-union-print-escape %source %jibb] src-630 `typ-630))
3623++ test-types-union-print-local
3665++ test-types-union-print-local
3624− (weld (check ~.types-union-print-local src-624 `tok-624 `tre-624) (check-types ~.types-union-print-local ~[%tests %golden ~.types-union-print-local %source %jibb] src-624 `typ-624))
3666+ (weld (check ~.types-union-print-local src-631 `tok-631 `tre-631) (check-types ~.types-union-print-local ~[%tests %golden ~.types-union-print-local %source %jibb] src-631 `typ-631))
3625++ test-types-union-print-nested
3667++ test-types-union-print-nested
3626− (weld (check ~.types-union-print-nested src-625 `tok-625 `tre-625) (check-types ~.types-union-print-nested ~[%tests %golden ~.types-union-print-nested %source %jibb] src-625 `typ-625))
3668+ (weld (check ~.types-union-print-nested src-632 `tok-632 `tre-632) (check-types ~.types-union-print-nested ~[%tests %golden ~.types-union-print-nested %source %jibb] src-632 `typ-632))
3627++ test-types-union-print-same-origin
3669++ test-types-union-print-same-origin
3628− (weld (weld (check ~.types-union-print-same-origin src-626 `tok-626 `tre-626) (check-module-types ~.types-union-print-same-origin ~[%tests %golden ~.types-union-print-same-origin %source %jibb] src-626 `typ-626 ~ ~ ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-626-1]])) (check-module-trees ~.types-union-print-same-origin `mtre-626 ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-626-1]]))
3670+ (weld (weld (check ~.types-union-print-same-origin src-633 `tok-633 `tre-633) (check-module-types ~.types-union-print-same-origin ~[%tests %golden ~.types-union-print-same-origin %source %jibb] src-633 `typ-633 ~ ~ ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-633-1]])) (check-module-trees ~.types-union-print-same-origin `mtre-633 ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-633-1]]))
3629++ test-types-union-print-transitive
3671++ test-types-union-print-transitive
3630− (weld (weld (check ~.types-union-print-transitive src-627 `tok-627 `tre-627) (check-module-types ~.types-union-print-transitive ~[%tests %golden ~.types-union-print-transitive %source %jibb] src-627 `typ-627 ~ ~ ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-627-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-627-2]])) (check-module-trees ~.types-union-print-transitive `mtre-627 ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-627-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-627-2]]))
3672+ (weld (weld (check ~.types-union-print-transitive src-634 `tok-634 `tre-634) (check-module-types ~.types-union-print-transitive ~[%tests %golden ~.types-union-print-transitive %source %jibb] src-634 `typ-634 ~ ~ ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-634-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-634-2]])) (check-module-trees ~.types-union-print-transitive `mtre-634 ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-634-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-634-2]]))
3631++ test-types-union-singleton
3673++ test-types-union-singleton
3632− (weld (check ~.types-union-singleton src-628 `tok-628 `tre-628) (check-types ~.types-union-singleton ~[%tests %golden ~.types-union-singleton %source %jibb] src-628 `typ-628))
3674+ (weld (check ~.types-union-singleton src-635 `tok-635 `tre-635) (check-types ~.types-union-singleton ~[%tests %golden ~.types-union-singleton %source %jibb] src-635 `typ-635))
3633++ test-types-union-tag-atoms
3675++ test-types-union-tag-atoms
3634− (weld (check ~.types-union-tag-atoms src-629 `tok-629 `tre-629) (check-types ~.types-union-tag-atoms ~[%tests %golden ~.types-union-tag-atoms %source %jibb] src-629 `typ-629))
3676+ (weld (check ~.types-union-tag-atoms src-636 `tok-636 `tre-636) (check-types ~.types-union-tag-atoms ~[%tests %golden ~.types-union-tag-atoms %source %jibb] src-636 `typ-636))
3635++ test-types-union-tags
3677++ test-types-union-tags
3636− (weld (check ~.types-union-tags src-630 `tok-630 `tre-630) (check-types ~.types-union-tags ~[%tests %golden ~.types-union-tags %source %jibb] src-630 `typ-630))
3678+ (weld (check ~.types-union-tags src-637 `tok-637 `tre-637) (check-types ~.types-union-tags ~[%tests %golden ~.types-union-tags %source %jibb] src-637 `typ-637))
3637++ test-types-union-unresolved
3679++ test-types-union-unresolved
3638− (weld (check ~.types-union-unresolved src-631 `tok-631 `tre-631) (check-types ~.types-union-unresolved ~[%tests %golden ~.types-union-unresolved %source %jibb] src-631 `typ-631))
3680+ (weld (check ~.types-union-unresolved src-638 `tok-638 `tre-638) (check-types ~.types-union-unresolved ~[%tests %golden ~.types-union-unresolved %source %jibb] src-638 `typ-638))
3639++ test-types-union-unresolved-flow
3681++ test-types-union-unresolved-flow
3640− (weld (check ~.types-union-unresolved-flow src-632 `tok-632 `tre-632) (check-types ~.types-union-unresolved-flow ~[%tests %golden ~.types-union-unresolved-flow %source %jibb] src-632 `typ-632))
3682+ (weld (check ~.types-union-unresolved-flow src-639 `tok-639 `tre-639) (check-types ~.types-union-unresolved-flow ~[%tests %golden ~.types-union-unresolved-flow %source %jibb] src-639 `typ-639))
3641++ test-types-unit-construction
3683++ test-types-unit-construction
3642− (weld (check ~.types-unit-construction src-633 `tok-633 `tre-633) (check-module-types ~.types-unit-construction ~[%tests %golden ~.types-unit-construction %source %jibb] src-633 `typ-633 ~ ~ ~))
3684+ (weld (check ~.types-unit-construction src-640 `tok-640 `tre-640) (check-module-types ~.types-unit-construction ~[%tests %golden ~.types-unit-construction %source %jibb] src-640 `typ-640 ~ ~ ~))
3643++ test-types-unit-context
3685++ test-types-unit-context
3644− (weld (check ~.types-unit-context src-634 `tok-634 `tre-634) (check-module-types ~.types-unit-context ~[%tests %golden ~.types-unit-context %source %jibb] src-634 `typ-634 ~ ~ ~))
3686+ (weld (check ~.types-unit-context src-641 `tok-641 `tre-641) (check-module-types ~.types-unit-context ~[%tests %golden ~.types-unit-context %source %jibb] src-641 `typ-641 ~ ~ ~))
3645++ test-types-unit-patterns
3687++ test-types-unit-patterns
3646− (weld (check ~.types-unit-patterns src-635 `tok-635 `tre-635) (check-types ~.types-unit-patterns ~[%tests %golden ~.types-unit-patterns %source %jibb] src-635 `typ-635))
3688+ (weld (check ~.types-unit-patterns src-642 `tok-642 `tre-642) (check-types ~.types-unit-patterns ~[%tests %golden ~.types-unit-patterns %source %jibb] src-642 `typ-642))
3647++ test-types-value-cycle-shadow
3689++ test-types-value-cycle-shadow
3648− (weld (check ~.types-value-cycle-shadow src-636 `tok-636 `tre-636) (check-module-types ~.types-value-cycle-shadow ~[%tests %golden ~.types-value-cycle-shadow %source %jibb] src-636 `typ-636 ~ ~ ~))
3690+ (weld (check ~.types-value-cycle-shadow src-643 `tok-643 `tre-643) (check-module-types ~.types-value-cycle-shadow ~[%tests %golden ~.types-value-cycle-shadow %source %jibb] src-643 `typ-643 ~ ~ ~))
3649++ test-types-value-cycle-unsupported
3691++ test-types-value-cycle-unsupported
3650− (weld (check ~.types-value-cycle-unsupported src-637 `tok-637 `tre-637) (check-module-types ~.types-value-cycle-unsupported ~[%tests %golden ~.types-value-cycle-unsupported %source %jibb] src-637 `typ-637 ~ ~ ~))
3692+ (weld (check ~.types-value-cycle-unsupported src-644 `tok-644 `tre-644) (check-module-types ~.types-value-cycle-unsupported ~[%tests %golden ~.types-value-cycle-unsupported %source %jibb] src-644 `typ-644 ~ ~ ~))
3651++ test-types-value-cycles
3693++ test-types-value-cycles
3652− (weld (check ~.types-value-cycles src-638 `tok-638 `tre-638) (check-module-types ~.types-value-cycles ~[%tests %golden ~.types-value-cycles %source %jibb] src-638 `typ-638 ~ ~ ~))
3694+ (weld (check ~.types-value-cycles src-645 `tok-645 `tre-645) (check-module-types ~.types-value-cycles ~[%tests %golden ~.types-value-cycles %source %jibb] src-645 `typ-645 ~ ~ ~))
3653::
3695::
3654:: +check: run golden:jibb on a case and compare both outputs
3696:: +check: run golden:jibb on a case and compare both outputs
3655::
3697::
tools/testdata/ship-selftest+3−1
@@ -312,7 +312,9 @@ def generator_checks(tmp):
312 'tests/lib/jibb-ask-guards.hoon',
312 'tests/lib/jibb-ask-guards.hoon',
313 'tests/lib/jibb-request-guards.hoon',
313 'tests/lib/jibb-request-guards.hoon',
314 'tests/lib/jibb-closed-gate-guards.hoon',
314 'tests/lib/jibb-closed-gate-guards.hoon',
315− 'tests/lib/jibb-todo-api.hoon'}
315+ 'tests/lib/jibb-todo-api.hoon',
316+ 'tests/lib/jibb-constructor-fit-guards.hoon',
317+ 'tests/lib/jibb-sub-guards.hoon'}
316 <= normal_tests, sorted(normal_tests))
318 <= normal_tests, sorted(normal_tests))
317 for label, kwargs in (('custom library', {'lib': STUB}),
319 for label, kwargs in (('custom library', {'lib': STUB}),
318 ('custom goldens', {'golden': CASES}),
320 ('custom goldens', {'golden': CASES}),
tools/type-constructor-fit-guards-testnew file+29
@@ -0,0 +1,29 @@
1+#!/usr/bin/env python3
2+"""Run the shared constructor-fit source/typing 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-constructor-fit-guards.hoon').read_text()
14+tests = tests[tests.index('\n|%\n') + 1:]
15+expression = ('=/ jibb .\n=/ suite\n' + tests +
16+ '\n=/ failures=(list tape) constructor-fit-guard-errors:suite\n^- @t\n' +
17+ "?~ failures 'constructor-fit guards passed'\n" +
18+ '(of-wain:format (turn failures crip))\n')
19+with tempfile.TemporaryDirectory(prefix='jibb-positional-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,
23+ '--raw', '-f', str(program)], stdout=subprocess.PIPE)
24+if result.returncode:
25+ sys.exit(result.returncode)
26+if result.stdout != b'constructor-fit guards passed\n':
27+ sys.stderr.buffer.write(result.stdout)
28+ sys.exit(1)
29+print('constructor-fit source/typing guards passed')
tools/type-sub-guards-testnew file+31
@@ -0,0 +1,31 @@
1+#!/usr/bin/env python3
2+"""Run the shared sub source/typing 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-sub-guards.hoon').read_text()
14+tests = tests[tests.index('\n|%\n') + 1:]
15+expression = ('=/ jibb .\n=/ suite\n' + tests +
16+ '\n=/ failures=(list tape) sub-guard-errors:suite\n^- @t\n' +
17+ "?~ failures 'sub guards passed'\n" +
18+ '(of-wain:format (turn failures crip))\n')
19+with tempfile.TemporaryDirectory(prefix='jibb-positional-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,
23+ '--raw', '--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'sub guards passed\n':
29+ sys.stderr.buffer.write(result.stdout)
30+ sys.exit(1)
31+print('sub source/typing guards passed')