on master help sign in
Add source-backed like result mapping
640a442iko
docs/compiler.md+2
@@ -111,6 +111,8 @@ And the design notes:
111| 3. The parser | Why recursive descent (the grammar is LL(2) after the layout pass), the EBNF rule by rule with the node each gives, what the EBNF leaves out and how it's filled in, spacing, and where each error points, with its message |
111| 3. The parser | Why recursive descent (the grammar is LL(2) after the layout pass), the EBNF rule by rule with the node each gives, what the EBNF leaves out and how it's filled in, spacing, and where each error points, with its message |
112| 4. Printed formats | The token, tree and error formats the golden files hold |
112| 4. Printed formats | The token, tree and error formats the golden files hold |
113
113
114+Source-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.
115+
114Public 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.
116Public identity aliases of private generic unions retain their public name when the origin, arity and argument order match exactly, including through imported values. Fixed, reordered, repeated and phantom generic aliases remain unsupported where a safe public name cannot be recovered; a fixed nongeneric alias is not printed as though it accepted type arguments.
115
117
116The partial checker reserves `proj` in module, local, sample, pattern and import bindings, including bindings inside unsupported source; a field, tag or path segment may still have that spelling. With a known expected record type, it checks selected explicit `(proj record)` calls over closed, uniquely faced records, preserving the source expression, its type, the result type and field axes in the checked interface. Imported and private-prelude dependencies retain the source needed to lower those plans. The checker does not yet lower or execute them. It supports selecting one or more fields in their original order; a single selected field keeps its face and uses one source axis. Reordered fields, unknown or open record spines, some nested contexts and recursive groups with projections remain unsupported. A directional fit of a wider faced record fails closed instead of inserting a projection, including within supported list, unit and record positions. To limit repeated work, record-spine proofs are reused along the same closed spine and stop at 1,024 fields; field boundaries and the special handling of positional calls reset the appropriate proof. Prepared interfaces and their source remain trusted host inputs.
118The partial checker reserves `proj` in module, local, sample, pattern and import bindings, including bindings inside unsupported source; a field, tag or path segment may still have that spelling. With a known expected record type, it checks selected explicit `(proj record)` calls over closed, uniquely faced records, preserving the source expression, its type, the result type and field axes in the checked interface. Imported and private-prelude dependencies retain the source needed to lower those plans. The checker does not yet lower or execute them. It supports selecting one or more fields in their original order; a single selected field keeps its face and uses one source axis. Reordered fields, unknown or open record spines, some nested contexts and recursive groups with projections remain unsupported. A directional fit of a wider faced record fails closed instead of inserting a projection, including within supported list, unit and record positions. To limit repeated work, record-spine proofs are reused along the same closed spine and stop at 1,024 fields; field boundaries and the special handling of positional calls reset the appropriate proof. Prepared interfaces and their source remain trusted host inputs.
docs/development.md+2
@@ -69,6 +69,7 @@ git clone https://github.com/urbit/tools /root/src/tools
69| `tools/type-hole-guards-test` | Runs the shared hole-defaulting and API interface guards under eval; the same checks run on the ship |
69| `tools/type-hole-guards-test` | Runs the shared hole-defaulting and API interface guards under eval; the same checks run on the ship |
70| `tools/type-list-alias-test` | Runs the shared prelude list-alias and provenance guards under eval and on the ship |
70| `tools/type-list-alias-test` | Runs the shared prelude list-alias and provenance guards under eval and on the ship |
71| `tools/type-generic-alias-test` | Runs public/private generic union alias and provenance guards under eval and on the ship |
71| `tools/type-generic-alias-test` | Runs public/private generic union alias and provenance guards under eval and on the ship |
72+| `tools/type-positional-face-guards-test` | Runs positional-call and nested-face guards under eval and on the ship |
72| `tools/type-qath-guards-test` | Runs source-provenance, recursive unfolding and face guards under eval and on the ship |
73| `tools/type-qath-guards-test` | Runs source-provenance, recursive unfolding and face guards under eval and on the ship |
73| `tools/type-proj-guards-test` | Runs projection evidence, name-scope and dependency guards under eval and on the ship |
74| `tools/type-proj-guards-test` | Runs projection evidence, name-scope and dependency guards under eval and on the ship |
74| `tools/type-arithmetic-guards-test` | Runs restricted atom-variable, unification and projection guards under eval and on the ship |
75| `tools/type-arithmetic-guards-test` | Runs restricted atom-variable, unification and projection guards under eval and on the ship |
@@ -97,6 +98,7 @@ tools/type-api-paths-test # partial API path analysis report matches
97tools/type-hole-guards-test # hole defaulting and API guards pass
98tools/type-hole-guards-test # hole defaulting and API guards pass
98tools/type-list-alias-test # prelude list-alias guards pass
99tools/type-list-alias-test # prelude list-alias guards pass
99tools/type-generic-alias-test # generic union alias guards pass
100tools/type-generic-alias-test # generic union alias guards pass
101+tools/type-positional-face-guards-test # positional sample face guards pass
100tools/type-qath-guards-test # qath source and unfolding guards pass
102tools/type-qath-guards-test # qath source and unfolding guards pass
101tools/type-proj-guards-test # projection evidence and scope guards pass
103tools/type-proj-guards-test # projection evidence and scope guards pass
102tools/type-arithmetic-guards-test # arithmetic constraint guards pass
104tools/type-arithmetic-guards-test # arithmetic constraint guards pass
docs/prelude-inventory.md+2−2
@@ -123,7 +123,7 @@ Hoon 135's `3g` section has exactly 12 exports: ten `+$` molds (`coin`, `dime`,
123| `dime` | `[p=@ta q=@]` in Hoon. The `q` field accepts any atom, as does Jibb `@` after @iko's decision in question 15. |
123| `dime` | `[p=@ta q=@]` in Hoon. The `q` field accepts any atom, as does Jibb `@` after @iko's decision in question 15. |
124| `edge` | `[p=hair q=(unit [p=* q=nail])]`: a parsing position and either no result or a result and remaining input. |
124| `edge` | `[p=hair q=(unit [p=* q=nail])]`: a parsing position and either no result or a result and remaining input. |
125| `hair` | `[p=@ud q=@ud]`: a parsing position. |
125| `hair` | `[p=@ud q=@ud]`: a parsing position. |
126−| `like` | A wet mold builder parameterized by a gate `a=$-(* *)`; its generated gate takes a noun, builds an `edge`-shaped result, and applies `a` to the product on success. The prelude declares the generic mold `+$ like |$ [A] [p=hair q=(unit [p=A q=nail])]`. @iko chose a separate Jibb value gate that maps the product of an existing result; that gate is not yet implemented. |
126+| `like` | A wet mold builder parameterized by a gate `a=$-(* *)`; its generated gate takes a noun, builds an `edge`-shaped result, and applies `a` to the product on success. The prelude declares the generic mold `+$ like |$ [A] [p=hair q=(unit [p=A q=nail])]`. The Jibb value gate maps the product of an existing result and preserves its position and remaining input; the partial checker infers supported calls, while backend validation remains outstanding. |
127| `nail` | `[p=hair q=tape]`: parsing input. |
127| `nail` | `[p=hair q=tape]`: parsing input. |
128| `pint` | `[p=[p=@ q=@] q=[p=@ q=@]]` in Hoon. The four positions accept atoms independently; Jibb `@` now has the same meaning. |
128| `pint` | `[p=[p=@ q=@] q=[p=@ q=@]]` in Hoon. The four positions accept atoms independently; Jibb `@` now has the same meaning. |
129| `rule` | A gate mold `$-(nail edge)`; Hoon constructs its sample and product from the `nail` and `edge` molds. |
129| `rule` | A gate mold `$-(nail edge)`; Hoon constructs its sample and product from the `nail` and `edge` molds. |
@@ -152,7 +152,7 @@ The following shapes can be written as Jibb declarations once their referenced p
152 [%2 p=(list tank)]
152 [%2 p=(list tank)]
153```
153```
154
154
155−The compiler-result `tone.hoon` has the three cases listed above; the qualified name is a prelude group member, not a `+$` identifier containing a dot. Question 15 in [open-questions.md](open-questions.md) records @iko's decision that `@` is an unrestricted atom, resolving the `dime` and `pint` mismatch. The value form of `like` maps an existing result's product and remains to be implemented. The `like` mold and `wonk` gate parse, but full type and backend validation remain outstanding.
155+The compiler-result `tone.hoon` has the three cases listed above; the qualified name is a prelude group member, not a `+$` identifier containing a dot. Question 15 in [open-questions.md](open-questions.md) records @iko's decision that `@` is an unrestricted atom, resolving the `dime` and `pint` mismatch. The source-backed value form of `like` maps an existing result's product. Supported calls infer in the partial checker; complete checking and backend validation for `like` and `wonk` remain outstanding.
156
156
157## 4a
157## 4a
158
158
docs/status.md+8−6
@@ -25,7 +25,7 @@ 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. `ask` is still unfinished.
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. `ask` is still unfinished.
27
27
28−The repository spec records the subsequent type-system and prelude decisions, including the newly chosen `like` result-mapping gate, which is not implemented yet; those changes also need synchronization to the Claude document. An initial inference fragment and a standalone Hoon type reader are being tested. The fragment explicitly reports that it does not check a module; partial bridges pass Hoon `*` in supported nonrecursive molds, selected Hoon atoms, term singletons, the null singleton, the two loobean singletons and their exact fork, nested faced or unfaced cells, supported disjoint unions and opaque standard collections from `/sur` molds and marks into inference. Collections retain their names and supported arguments for printing and unification; nested supported union arguments are retained too. The bridge trusts unchanged results from the source-aware reader; a materialized type graph alone cannot reveal cases Hoon already collapsed. The source-validated standard prelude `list` mold shares this representation with imported lists; other Jibb-written collection molds and most prelude collection operations remain unsupported; malformed names and arities fail closed. Selected self-recursive `/sur` molds, including Tlon `notes.import-node` with list-wrapped self references, cross as opaque module-and-name identities; aliases, foreign references, recursive marks, unfolding and construction remain unsupported. The reader handles mark samples, including a source-proved nonrecursive union from a single Ford-imported `/sur` core, recursive molds whose origins can be verified through Ford imports, nested collections, direct ordered maps, including source-validated named operands such as Tlon `notes.log`, certain ordered-map fields, direct `$^` unions whose cases can be proved disjoint, and one verified explicit union argument in a list, set, map or unit. Tagged `$%` cases can additionally use restricted local named payload molds, bare `~` fields and one level of local named tagged unions, as in real Tlon `notes`, with bounded source proof; unsupported or ambiguous dependencies fail closed. Ambiguous recursive origins fail closed; recognizable explicit unions are checked from source before Hoon can collapse their cases, as @iko confirmed for imported `$%`, `$?` and `$^`, while other nested unions, nested ordered maps, general union disjointness and complete import integration remain unfinished. Opt-in structured reader APIs preserve successful graphs and distinguish definite unsupported-aura and core evidence from failures the reader cannot prove; unverified union disjointness and name-only vase recognition remain unsupported. They revalidate and re-walk failed types. An opt-in partial checker entry point consumes unchanged reader results and reports definite aura or core errors at imported mold use sites when their inputs are unique. Ordered replay covers nested cell samples, record and function casts, and non-generic same-module aliases; unsupported prefixes, cycles and shadowing stop it. Union molds, generic applications, transitive modules and unsupported reader outcomes remain generic. Replay repeats inference and may add work. The partial checker resolves a subset of ordinary library imports in dependency order using supplied Jibb sources and a source-derived partial prelude interface, caches completed interfaces per run, detects missing sources and cycles, and resolves nested fields of imported values with independent scheme instantiation. The source-backed internal prelude defines `poke` and the public prelude re-exports it as a transparent type. A dedicated trusted preparation path supplies private comparison and arithmetic schemes to the Jibb-written `gth`, `add` and `dec` wrappers; ordinary imports cannot access them. The public `add` and `dec` wrappers use private arithmetic interfaces; supported inference preserves the shared atom constraint that excludes loobeans. Primitive execution, jet recognition and length remain unfinished. The partial checker resolves its supported source shape and rejects ordinary imports of the private path. An imported API with one mark and a matching direct `+$ poke` declaration can export a constructor and retain agent/mark metadata when the representation has the supported agent case. A separate partial analysis resolves supported API path declarations and their full and diff mark types, including the todo paths; it does not create requests or check an API module. Complete private module checking, other API shapes, request gates, root API and kind checking, stores, `ask`, `pure`, lowering and runtime effects remain unfinished. A possible store or root API with `+$ poke` reports unsupported kind or scope, while definite duplicates and unrelated shadowing still report conflicts. The prelude includes the doc-exact generic `cmd` union; the prelude inventory is incomplete. The inference fragment supports unrestricted `@`, selected one-way widenings including aura-family ancestors, generalized atom constraints arising from explicit capitals or bare sample binders, acyclic local value definitions with captures, selected single self-recursive top-level and local gates, simple and nonrecursive generic mold aliases, selected faced record casts and field reads, and contextual tags, `~` and constructors for closed disjoint unions, including direct nonrecursive generic unions and propagation through complete loobean and unit-shaped branches in casts and known union-sample calls, including nested branches. Known loobean result context also propagates through supported complete branches and binder-only cell arms; binder-only arms over union subjects remain unsupported. A directly known named union can instantiate an unconstrained generic gate sample with its origin, generic arguments and faces preserved; unnamed, pending, recursive and variable-bound cases remain unsupported. A known gate with an unresolved result variable can receive a known enclosing result type before its arguments are inferred; unknown calls and unresolved targets remain conservative. Multi-argument calls form a right-nested sample, retain known faces and shared type variables, and can use known sample positions to contextualize list and union arguments. A definite mismatch points to the failing argument when the fragment can establish it, otherwise to the combined sample; unsupported contextual forms still fail closed. For a supported recursive gate, the checker infers the sample first and uses its exact type, including field faces, for one monomorphic self reference. It generalizes after the body is checked; subsequent uses instantiate it independently. Incompatible recursive arguments can report the gate and argument sites. For a complete loobean branch with one direct self-call arm, a separately inferred closed base type can seed the recursive result before the whole body is checked. Open or pending base types do not seed it; other branch shapes remain subject to the fragment’s existing limits. A supported single local recursive gate also uses a monomorphic self reference and generalizes variables free of the enclosing environment after checking its body; captured variables remain shared. The checker collects written capitals per `++` before inference, excluding nested definitions: a capital used in an enclosing definition is shared with its locals even when written later, while a capital introduced only in a local definition is generalized there. Sibling locals can introduce independent capitals with the same spelling; generic mold parameters keep their own scope. Top-level groups of syntactic gates are inferred together with monomorphic placeholders and shared substitutions, then generalized only after the whole group checks; downstream uses and library interfaces instantiate those schemes independently. A dependency graph identifies groups with two iterative depth-first passes; its conservative local-reference edges can reject otherwise valid programs. Supported local mutually recursive gate groups also use shared monomorphic placeholders and generalize only after the group checks, preserving captured outer variables. A bounded dependency proof reports certain non-gate cycles through values and gates when an explicit atom or loobean result cast and simple unshadowed expressions establish the cycle. Other mixed gate/value cycles, polymorphic recursion, unresolved literal constraints and unresolved branch joins remain unsupported. Reporting repeats inference for a single recursive gate outside a group; grouped reports use the stored schemes. Its performance cost remains unmeasured. A single-arm cell pattern accepts two or more binders, the last capturing the remaining tail; duplicate and shadowed binders are rejected. A structured single-arm pattern also works for a known non-union cell when coverage is proven, including nested literal and wildcard positions. Intermediate union or collection tails, nested patterns, wildcards and faced records remain unsupported. String interpolation accepts known atom auras, unrestricted `@`, tapes and isolated decimal literals; a known cell asks for a printer, and an explicitly generic atom asks for an aura. Loobeans, term singletons, non-tape collections, open types and a type fixed only later remain unsupported. A known closed union with two or more arms supports patterns that provably cover or exclude each remaining case, including payload binders, imported and generic cases, and binder-free catch-alls. Partial boolean patterns can split known `?` positions into their two noun values, up to 64 alternatives across the union; binders retain their original case type. Missing alternatives and covered arms are reported. Other partial patterns, expansions above the limit, binders spanning distinct cases, differing arm result types and some complex two-arm subjects remain unsupported. A cast or known call sample can supply result context through whole-case arms and supported finite loobean refinements for a known union accessed by a wing, a grouped wing or a supported shallow call, including nested cell and list positions; other partial-pattern contexts and subject forms remain unsupported. The Grammar’s `step` block infers in this fragment, but its module is not yet checked. A bare tag proved absent from a known union reports the union and tag sites in casts, single-argument calls, unit payloads, list items and supported branch arms; imported unnamed unions print their cases. Ordered fit replay can identify a missing tag nested in a syntactic tuple, stopping at an earlier mismatch or uncertainty. Known faced records support uniquely named field changes, including nested wings, with field context passed to replacements and the original record type retained. Missing fields, empty changes and definite mismatches report sites; the expected-type site is the edit because the original field declaration location is not retained. Unknown or partly unfaced spines, ambiguous fields and repeated edits remain unsupported. A known record cast supplies field context to its tuple or record initializer, including nested list and union fields; mismatch diagnostics use the cast mold because the original field declaration location is not retained. Isolated cart-style `init` and `update` expressions infer, while the complete cart-store fails closed because its kind and declaration scope remain unchecked. Uncontextualized list literals infer a fresh element type, including empty and nested lists, with independently generalized uses. Unresolved item tags and uncertain widening remain unsupported. Backtick unit construction uses the validated standard prelude unit template, infers its payload without losing pending constraints, and makes the prelude’s `some` available. Ordinary result annotations also let its `bind`, `biff`, `both`, `clap`, `clef` and `flit` infer. A known unit in a cast, call, list item or record field supplies context to its payload, including nested units and lists; mismatches identify the payload and context. Unrelated union identities, some variable-dependent fits, and missing or altered prelude unit templates remain unsupported. Contextual null-headed cells fit their cases, but do not supply a `|=%$` constructor; unresolved nulls remain pending and are reported separately from tags. A known union of `~` and a null-headed cell supports a complete `~` / `[~ value]` branch in either order, including shadow checks; unknown subjects, missing or duplicate arms, and unresolved branch results remain unsupported. This fragment infers the prelude’s `fall` and `need` signatures. With the validated prelude list and a known cast or gate sample, empty, nonempty and nested list literals infer their element types, including contextual union tags; a mismatched element names both sites. In that context `~` and zero-valued terms fit an empty list, and two-item unfaced cells form cons lists, including nested cons and imported-list contexts; invalid heads or tails name both sites. A known gate sample also supplies context to matching positions in a single tuple or record argument, including nested cells; zero literals can fit list positions. A bound zero constant remains unsupported rather than a definite mismatch, and an unknown callee does not supply context. Faced or longer cells and a missing or altered prelude list fail closed. A known list result also supplies context through complete loobean, unit-shaped and list-shaped branches, including recursive and nested branches. For a known standard list with a supported element type, a complete `~` / `[item rest]` branch infers the element and tail types in either arm order and checks binders for shadowing. Unknown subjects, unsupported element types and other or incomplete list patterns remain unsupported. A value with type variable `A` can fit a field whose type is that same `A`, including in generic union payloads and nested or repeated record fields. Other variable-dependent face merges remain unsupported. Forced equality of distinct written capitals now reports both source sites, following @iko’s decision; forcing one to a concrete type remains unsupported. Imported record spines with repeated faces fail closed where used, but only with a generic unsupported diagnostic. Hoon may erase unfaced nested-cell boundaries, so the check can conservatively reject valid names in distinct erased scopes. Supported closed unions print using an in-scope name or imported alias; an unnamed nongeneric union prints its cases, parenthesized when nested. The latter is print-only. Generic union types retain all arguments in their printed name; if that name is unavailable, the partial printer reports the limitation. Different import faces for the same origin remain compatible; compatibility across distinct union origins and some generic-argument comparisons remain unsupported. Nonrecursive generic aliases can reorder, repeat or omit parameters while retaining a union’s origin, including through local scopes and library interfaces. A generic union declared directly inside a body remains unsupported, as do differing-variable face constraints in a union payload. A transitive generic union whose name is unavailable is reported as unsupported instead of hiding its arguments. Unfixed decimal literals default to `@ud` in gate-free inferred types; recursive molds, general branch tag context, other constraint cases and defaulting inside gate types still need work. Collection recognition checks the originating core and fails closed on shadows or unsupported Ford subject shapes; a wrapper regression also rejects forged subjects, samples and tails. Its golden fixtures include three real Tlon files. A Clay test passes a Ford-built nested union through the reader into partial inference. The partial prelude includes `murn`, `join`, `snip`, `rear` and the newly agreed shared-type `clap`, parsed but still awaiting checker and backend validation, and [prelude-inventory.md](prelude-inventory.md) is a source audit, not the complete inventory or signatures. The milestone remains unfinished.
28+The repository spec records the subsequent type-system and prelude decisions, including the chosen `like` result-mapping gate; those changes also need synchronization to the Claude document. An initial inference fragment and a standalone Hoon type reader are being tested. The fragment explicitly reports that it does not check a module; partial bridges pass Hoon `*` in supported nonrecursive molds, selected Hoon atoms, term singletons, the null singleton, the two loobean singletons and their exact fork, nested faced or unfaced cells, supported disjoint unions and opaque standard collections from `/sur` molds and marks into inference. Collections retain their names and supported arguments for printing and unification; nested supported union arguments are retained too. The bridge trusts unchanged results from the source-aware reader; a materialized type graph alone cannot reveal cases Hoon already collapsed. The source-validated standard prelude `list` mold shares this representation with imported lists; other Jibb-written collection molds and most prelude collection operations remain unsupported; malformed names and arities fail closed. Selected self-recursive `/sur` molds, including Tlon `notes.import-node` with list-wrapped self references, cross as opaque module-and-name identities; aliases, foreign references, recursive marks, unfolding and construction remain unsupported. The reader handles mark samples, including a source-proved nonrecursive union from a single Ford-imported `/sur` core, recursive molds whose origins can be verified through Ford imports, nested collections, direct ordered maps, including source-validated named operands such as Tlon `notes.log`, certain ordered-map fields, direct `$^` unions whose cases can be proved disjoint, and one verified explicit union argument in a list, set, map or unit. Tagged `$%` cases can additionally use restricted local named payload molds, bare `~` fields and one level of local named tagged unions, as in real Tlon `notes`, with bounded source proof; unsupported or ambiguous dependencies fail closed. Ambiguous recursive origins fail closed; recognizable explicit unions are checked from source before Hoon can collapse their cases, as @iko confirmed for imported `$%`, `$?` and `$^`, while other nested unions, nested ordered maps, general union disjointness and complete import integration remain unfinished. Opt-in structured reader APIs preserve successful graphs and distinguish definite unsupported-aura and core evidence from failures the reader cannot prove; unverified union disjointness and name-only vase recognition remain unsupported. They revalidate and re-walk failed types. An opt-in partial checker entry point consumes unchanged reader results and reports definite aura or core errors at imported mold use sites when their inputs are unique. Ordered replay covers nested cell samples, record and function casts, and non-generic same-module aliases; unsupported prefixes, cycles and shadowing stop it. Union molds, generic applications, transitive modules and unsupported reader outcomes remain generic. Replay repeats inference and may add work. The partial checker resolves a subset of ordinary library imports in dependency order using supplied Jibb sources and a source-derived partial prelude interface, caches completed interfaces per run, detects missing sources and cycles, and resolves nested fields of imported values with independent scheme instantiation. The source-backed internal prelude defines `poke` and the public prelude re-exports it as a transparent type. A dedicated trusted preparation path supplies private comparison and arithmetic schemes to the Jibb-written `gth`, `add` and `dec` wrappers; ordinary imports cannot access them. The public `add` and `dec` wrappers use private arithmetic interfaces; supported inference preserves the shared atom constraint that excludes loobeans. Primitive execution, jet recognition and length remain unfinished. The partial checker resolves its supported source shape and rejects ordinary imports of the private path. An imported API with one mark and a matching direct `+$ poke` declaration can export a constructor and retain agent/mark metadata when the representation has the supported agent case. A separate partial analysis resolves supported API path declarations and their full and diff mark types, including the todo paths; it does not create requests or check an API module. Complete private module checking, other API shapes, request gates, root API and kind checking, stores, `ask`, `pure`, lowering and runtime effects remain unfinished. A possible store or root API with `+$ poke` reports unsupported kind or scope, while definite duplicates and unrelated shadowing still report conflicts. The prelude includes the doc-exact generic `cmd` union; the prelude inventory is incomplete. The inference fragment supports unrestricted `@`, selected one-way widenings including aura-family ancestors, generalized atom constraints arising from explicit capitals or bare sample binders, acyclic local value definitions with captures, selected single self-recursive top-level and local gates, simple and nonrecursive generic mold aliases, selected faced record casts and field reads, and contextual tags, `~` and constructors for closed disjoint unions, including direct nonrecursive generic unions and propagation through complete loobean and unit-shaped branches in casts and known union-sample calls, including nested branches. Known loobean result context also propagates through supported complete branches and binder-only cell arms; binder-only arms over union subjects remain unsupported. A directly known named union can instantiate an unconstrained generic gate sample with its origin, generic arguments and faces preserved; unnamed, pending, recursive and variable-bound cases remain unsupported. A known gate with an unresolved result variable can receive a known enclosing result type before its arguments are inferred; unknown calls and unresolved targets remain conservative. Multi-argument calls form a right-nested sample, retain known faces and shared type variables, and can use known sample positions to contextualize list and union arguments. A definite mismatch points to the failing argument when the fragment can establish it, otherwise to the combined sample; unsupported contextual forms still fail closed. For a supported recursive gate, the checker infers the sample first and uses its exact type, including field faces, for one monomorphic self reference. It generalizes after the body is checked; subsequent uses instantiate it independently. Incompatible recursive arguments can report the gate and argument sites. For a complete loobean branch with one direct self-call arm, a separately inferred closed base type can seed the recursive result before the whole body is checked. Open or pending base types do not seed it; other branch shapes remain subject to the fragment’s existing limits. A supported single local recursive gate also uses a monomorphic self reference and generalizes variables free of the enclosing environment after checking its body; captured variables remain shared. The checker collects written capitals per `++` before inference, excluding nested definitions: a capital used in an enclosing definition is shared with its locals even when written later, while a capital introduced only in a local definition is generalized there. Sibling locals can introduce independent capitals with the same spelling; generic mold parameters keep their own scope. Top-level groups of syntactic gates are inferred together with monomorphic placeholders and shared substitutions, then generalized only after the whole group checks; downstream uses and library interfaces instantiate those schemes independently. A dependency graph identifies groups with two iterative depth-first passes; its conservative local-reference edges can reject otherwise valid programs. Supported local mutually recursive gate groups also use shared monomorphic placeholders and generalize only after the group checks, preserving captured outer variables. A bounded dependency proof reports certain non-gate cycles through values and gates when an explicit atom or loobean result cast and simple unshadowed expressions establish the cycle. Other mixed gate/value cycles, polymorphic recursion, unresolved literal constraints and unresolved branch joins remain unsupported. Reporting repeats inference for a single recursive gate outside a group; grouped reports use the stored schemes. Its performance cost remains unmeasured. A single-arm cell pattern accepts two or more binders, the last capturing the remaining tail; duplicate and shadowed binders are rejected. A structured single-arm pattern also works for a known non-union cell when coverage is proven, including nested literal and wildcard positions. Intermediate union or collection tails, nested patterns, wildcards and faced records remain unsupported. String interpolation accepts known atom auras, unrestricted `@`, tapes and isolated decimal literals; a known cell asks for a printer, and an explicitly generic atom asks for an aura. Loobeans, term singletons, non-tape collections, open types and a type fixed only later remain unsupported. A known closed union with two or more arms supports patterns that provably cover or exclude each remaining case, including payload binders, imported and generic cases, and binder-free catch-alls. Partial boolean patterns can split known `?` positions into their two noun values, up to 64 alternatives across the union; binders retain their original case type. Missing alternatives and covered arms are reported. Other partial patterns, expansions above the limit, binders spanning distinct cases, differing arm result types and some complex two-arm subjects remain unsupported. A cast or known call sample can supply result context through whole-case arms and supported finite loobean refinements for a known union accessed by a wing, a grouped wing or a supported shallow call, including nested cell and list positions; other partial-pattern contexts and subject forms remain unsupported. The Grammar’s `step` block infers in this fragment, but its module is not yet checked. A bare tag proved absent from a known union reports the union and tag sites in casts, single-argument calls, unit payloads, list items and supported branch arms; imported unnamed unions print their cases. Ordered fit replay can identify a missing tag nested in a syntactic tuple, stopping at an earlier mismatch or uncertainty. Known faced records support uniquely named field changes, including nested wings, with field context passed to replacements and the original record type retained. Missing fields, empty changes and definite mismatches report sites; the expected-type site is the edit because the original field declaration location is not retained. Unknown or partly unfaced spines, ambiguous fields and repeated edits remain unsupported. A known record cast supplies field context to its tuple or record initializer, including nested list and union fields; mismatch diagnostics use the cast mold because the original field declaration location is not retained. Isolated cart-style `init` and `update` expressions infer, while the complete cart-store fails closed because its kind and declaration scope remain unchecked. Uncontextualized list literals infer a fresh element type, including empty and nested lists, with independently generalized uses. Unresolved item tags and uncertain widening remain unsupported. Backtick unit construction uses the validated standard prelude unit template, infers its payload without losing pending constraints, and makes the prelude’s `some` available. Ordinary result annotations also let its `bind`, `biff`, `both`, `clap`, `clef` and `flit` infer. A known unit in a cast, call, list item or record field supplies context to its payload, including nested units and lists; mismatches identify the payload and context. Unrelated union identities, some variable-dependent fits, and missing or altered prelude unit templates remain unsupported. Contextual null-headed cells fit their cases, but do not supply a `|=%$` constructor; unresolved nulls remain pending and are reported separately from tags. A known union of `~` and a null-headed cell supports a complete `~` / `[~ value]` branch in either order, including shadow checks; unknown subjects, missing or duplicate arms, and unresolved branch results remain unsupported. This fragment infers the prelude’s `fall` and `need` signatures. With the validated prelude list and a known cast or gate sample, empty, nonempty and nested list literals infer their element types, including contextual union tags; a mismatched element names both sites. In that context `~` and zero-valued terms fit an empty list, and two-item unfaced cells form cons lists, including nested cons and imported-list contexts; invalid heads or tails name both sites. A known gate sample also supplies context to matching positions in a single tuple or record argument, including nested cells; zero literals can fit list positions. A bound zero constant remains unsupported rather than a definite mismatch, and an unknown callee does not supply context. Faced or longer cells and a missing or altered prelude list fail closed. A known list result also supplies context through complete loobean, unit-shaped and list-shaped branches, including recursive and nested branches. For a known standard list with a supported element type, a complete `~` / `[item rest]` branch infers the element and tail types in either arm order and checks binders for shadowing. Unknown subjects, unsupported element types and other or incomplete list patterns remain unsupported. A value with type variable `A` can fit a field whose type is that same `A`, including in generic union payloads and nested or repeated record fields. Other variable-dependent face merges remain unsupported. Forced equality of distinct written capitals now reports both source sites, following @iko’s decision; forcing one to a concrete type remains unsupported. Imported record spines with repeated faces fail closed where used, but only with a generic unsupported diagnostic. Hoon may erase unfaced nested-cell boundaries, so the check can conservatively reject valid names in distinct erased scopes. Supported closed unions print using an in-scope name or imported alias; an unnamed nongeneric union prints its cases, parenthesized when nested. The latter is print-only. Generic union types retain all arguments in their printed name; if that name is unavailable, the partial printer reports the limitation. Different import faces for the same origin remain compatible; compatibility across distinct union origins and some generic-argument comparisons remain unsupported. Nonrecursive generic aliases can reorder, repeat or omit parameters while retaining a union’s origin, including through local scopes and library interfaces. A generic union declared directly inside a body remains unsupported, as do differing-variable face constraints in a union payload. A transitive generic union whose name is unavailable is reported as unsupported instead of hiding its arguments. Unfixed decimal literals default to `@ud` in gate-free inferred types; recursive molds, general branch tag context, other constraint cases and defaulting inside gate types still need work. Collection recognition checks the originating core and fails closed on shadows or unsupported Ford subject shapes; a wrapper regression also rejects forged subjects, samples and tails. Its golden fixtures include three real Tlon files. A Clay test passes a Ford-built nested union through the reader into partial inference. The partial prelude includes `murn`, `join`, `snip`, `rear` and the newly agreed shared-type `clap`, parsed but still awaiting checker and backend validation, and [prelude-inventory.md](prelude-inventory.md) is a source audit, not the complete inventory or signatures. The milestone remains unfinished.
29
29
30The shared prelude interface reserves every name present in the supplied vendored source and makes only supported inferred entries available, including `list`, `unit`, `same`, `fall`, `need`, `bond`, `lure`, `weld`, `snoc` and `turn`. The validated standard `list` mold is injected when the prelude’s own gates are inferred; `weld` and `turn` have ordinary explicit result casts. An absent or altered `list` is not injected, and an altered declaration cannot leak through direct or transitive mold aliases. The same validated template is available when prelude mold aliases are prepared, so supported direct and transitive aliases can use it. Unsupported entries such as most list helpers remain reserved but unavailable; backend validation of the helpers remains outstanding. All callers use the same prelude origin, so a library can export a type containing unqualified `(unit A)` to another module. Preparation rejects empty, malformed, conflicting or import-bearing source; the prepared value is trusted and must come unchanged from `+prepare-prelude`. The module-scope fixture compares the prepared and source-taking paths against the real prelude and a two-module golden under eval and on the ship. The source and checker remain incomplete, so this does not establish complete shadowing coverage or a checked module.
30The shared prelude interface reserves every name present in the supplied vendored source and makes only supported inferred entries available, including `list`, `unit`, `same`, `fall`, `need`, `bond`, `lure`, `weld`, `snoc` and `turn`. The validated standard `list` mold is injected when the prelude’s own gates are inferred; `weld` and `turn` have ordinary explicit result casts. An absent or altered `list` is not injected, and an altered declaration cannot leak through direct or transitive mold aliases. The same validated template is available when prelude mold aliases are prepared, so supported direct and transitive aliases can use it. Unsupported entries such as most list helpers remain reserved but unavailable; backend validation of the helpers remains outstanding. All callers use the same prelude origin, so a library can export a type containing unqualified `(unit A)` to another module. Preparation rejects empty, malformed, conflicting or import-bearing source; the prepared value is trusted and must come unchanged from `+prepare-prelude`. The module-scope fixture compares the prepared and source-taking paths against the real prelude and a two-module golden under eval and on the ship. The source and checker remain incomplete, so this does not establish complete shadowing coverage or a checked module.
31
31
@@ -45,8 +45,8 @@ What the plan asks for, and where it is:
45
45
46Besides the plan's list:
46Besides the plan's list:
47
47
48−- 634 golden cases: 414 that parse and 220 that fail, each failure at a stated line and column. One failing case has an unclear expectation (corpus question 3). The newer type-output cases exercise only the partial inference fragment. Each case's `about.txt` quotes the doc's words it tests.
48+- 636 golden cases: 416 that parse and 220 that fail, each failure at a stated line and column. One failing case has an unclear expectation (corpus question 3). The newer type-output cases exercise only the partial inference fragment. Each case's `about.txt` quotes the doc's words it tests.
49−- The 634-case corpus passed under `urbit eval` in 80.1 s while other checks were running. The fake ship passed all 650 tests, including the importer, importer/checker and mark/checker bridges, module scope, unification, hole, qath, projection, arithmetic and generic-alias guards, with 51.9 s for sync and 67.6 s for tests. The importer golden compares 221 projections; `tools/clay-fixtures` builds the example Hoon fixtures through Clay, checks a recursive Ford import's origin, and passes Clay-built types through the Clay-built importer and partial checker.
49+- The 636-case corpus passed under `urbit eval` in 85.6 s while other checks were running. The fake ship passed all 653 tests, including the importer, importer/checker and mark/checker bridges, module scope, unification, hole, qath, projection, arithmetic, generic-alias and positional-face guards, with 55.4 s for sync and 67.3 s for tests. The importer golden compares 221 projections; `tools/clay-fixtures` builds the example Hoon fixtures through Clay, checks a recursive Ford import's origin, and passes Clay-built types through the Clay-built importer and partial checker.
50- `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.
50- `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.
51- 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.
51- 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.
52- 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).
52- 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).
@@ -131,14 +131,15 @@ Besides the plan's list:
131| 75f5952 | 2026-10-31 | Check a subset of explicit `proj` calls and retain their lowering evidence |
131| 75f5952 | 2026-10-31 | Check a subset of explicit `proj` calls and retain their lowering evidence |
132| cf17925 | 2026-10-31 | Infer supported single-field projections |
132| cf17925 | 2026-10-31 | Infer supported single-field projections |
133| 1a891e2 | 2026-10-31 | Infer source-backed addition and decrement without loobean operands; record the watchability decision |
133| 1a891e2 | 2026-10-31 | Infer source-backed addition and decrement without loobean operands; record the watchability decision |
134−| This change | 2026-10-31 | Preserve public names of identity-generic union aliases and record the `like` decision |
134+| 81af5fd | 2026-10-31 | Preserve public names of identity-generic union aliases and record the `like` decision |
135+| This change | 2026-10-31 | Add the source-backed `like` result mapper and infer supported positional calls |
135
136
136## Checking it
137## Checking it
137
138
138On a machine set up as [development.md](development.md) says:
139On a machine set up as [development.md](development.md) says:
139
140
140```
141```
141−tools/golden # 634 cases under urbit eval
142+tools/golden # 636 cases under urbit eval
142tools/importer-test # the Hoon importer fixture projection
143tools/importer-test # the Hoon importer fixture projection
143tools/type-import-test # the importer/checker bridge fixture
144tools/type-import-test # the importer/checker bridge fixture
144tools/type-tlon-test # the real Tlon reader/checker fixture
145tools/type-tlon-test # the real Tlon reader/checker fixture
@@ -148,6 +149,7 @@ tools/type-api-paths-test # partial API path metadata fixture
148tools/type-hole-guards-test # hole defaulting and API interface guards
149tools/type-hole-guards-test # hole defaulting and API interface guards
149tools/type-list-alias-test # prelude list-alias guards
150tools/type-list-alias-test # prelude list-alias guards
150tools/type-generic-alias-test # generic union alias guards
151tools/type-generic-alias-test # generic union alias guards
152+tools/type-positional-face-guards-test # positional sample face guards
151tools/type-qath-guards-test # qath source and unfolding guards
153tools/type-qath-guards-test # qath source and unfolding guards
152tools/type-proj-guards-test # projection evidence and scope guards
154tools/type-proj-guards-test # projection evidence and scope guards
153tools/type-module-scope-test # module and prelude scope fixture
155tools/type-module-scope-test # module and prelude scope fixture
@@ -156,7 +158,7 @@ tools/testdata/selftest # the tools themselves
156tools/doc-blocks docs/spec # the doc's examples are golden cases
158tools/doc-blocks docs/spec # the doc's examples are golden cases
157tools/ship start
159tools/ship start
158tools/ship gen-tests --check # tests/lib/jibb.hoon is up to date
160tools/ship gen-tests --check # tests/lib/jibb.hoon is up to date
159−tools/ship test # the same 634 cases as -test arms on the ship
161+tools/ship test # the same 636 cases as -test arms on the ship
160tools/testdata/ship-selftest
162tools/testdata/ship-selftest
161tools/testdata/clay-fixtures-selftest # scratch fixture cleanup without a ship
163tools/testdata/clay-fixtures-selftest # scratch fixture cleanup without a ship
162tools/ship check-commit # |commit stores .jibb files
164tools/ship check-commit # |commit stores .jibb files
jibb-dev/lib/jibb.hoon+22−1
@@ -4993,6 +4993,24 @@
4993 [%cell $(actual hed.actual, expected hed.expected) $(actual tal.actual, expected tal.expected)]
4993 [%cell $(actual hed.actual, expected hed.expected) $(actual tal.actual, expected tal.expected)]
4994 expected
4994 expected
4995::
4995::
4996+:: Positional call arguments do not write the sample's enclosing field
4997+:: labels. Ignore one raw sample-slot face per written argument while
4998+:: checking value faces as usual. An unknown or variable-bound cell spine
4999+:: cannot justify this distinction, so keep the existing conservative guard.
5000+++ itype-positional-face-asym
5001+ |= [args=(list expr) actual=itype expected=itype sub=isub]
5002+ ^- ?
5003+ ?~ args &
5004+ ?~ t.args
5005+ =/ slot=itype expected
5006+ =? slot ?=(%face -.slot) body.slot
5007+ (itype-face-asym actual slot sub)
5008+ ?. &(?=(%cell -.actual) ?=(%cell -.expected)) &
5009+ =/ slot=itype hed.expected
5010+ =? slot ?=(%face -.slot) body.slot
5011+ ?: (itype-face-asym hed.actual slot sub) &
5012+ $(args t.args, actual tal.actual, expected tal.expected)
5013+::
4996++ itype-output-may-be-cell
5014++ itype-output-may-be-cell
4997 |= [t=itype sub=isub]
5015 |= [t=itype sub=isub]
4998 ^- ?
5016 ^- ?
@@ -8104,7 +8122,10 @@
8104 =/ arg-at=span ?~(bad whole-args at.u.bad)
8122 =/ arg-at=span ?~(bad whole-args at.u.bad)
8105 =/ arg-type=itype ?~(bad typ.p.arg typ.u.bad)
8123 =/ arg-type=itype ?~(bad typ.p.arg typ.u.bad)
8106 [%| ["call's sample and argument types do not unify" ~[[(span-of head.e) (site-type-note "called gate" ht sub.st)] [arg-at (site-type-note "argument" arg-type sub.st)]]]]
8124 [%| ["call's sample and argument types do not unify" ~[[(span-of head.e) (site-type-note "called gate" ht sub.st)] [arg-at (site-type-note "argument" arg-type sub.st)]]]]
8125+ =/ face-asym=?
8126+ ?^ t.args.e (itype-positional-face-asym args.e typ.p.arg sample.ht sub.fit)
8127+ (itype-face-asym typ.p.arg sample.ht sub.fit)
8107− ?: &((itype-has-face typ.p.arg sub.fit) (itype-face-asym typ.p.arg sample.ht sub.fit) (itype-output-may-be-cell product.ht sub.fit))
8128+ ?: &((itype-has-face typ.p.arg sub.fit) face-asym (itype-output-may-be-cell product.ht sub.fit))
8108 [%| ["call result face propagation is not supported by partial inference" ~]]
8129 [%| ["call result face propagation is not supported by partial inference" ~]]
8109 [%& product.ht st(sub sub.fit, next next.fit)]
8130 [%& product.ht st(sub sub.fit, next next.fit)]
8110 =/ result=itype [%var next.st]
8131 =/ result=itype [%var next.st]
jibb-dev/lib/jibb/prelude.jibb+8
@@ -101,6 +101,14 @@
101
101
102+$ like |$ [A] [p=hair q=(unit [p=A q=nail])]
102+$ like |$ [A] [p=hair q=(unit [p=A q=nail])]
103
103
104+++ like |= [f=$-(A B) result=(like A)]
105+ ++ mapped
106+ ^- (unit [p=B q=nail])
107+ ?- q.result
108+ ~ ~
109+ [~ value] `[p=(f p.value) q=q.value]
110+ ^- (like B) [p=p.result q=mapped]
111+
104++ wonk |= veq=(like A)
112++ wonk |= veq=(like A)
105 ?- q.veq
113 ?- q.veq
106 ~ !!
114 ~ !!
tests/golden/prelude-1c-structural/source.jibb+8
@@ -96,6 +96,14 @@
96
96
97+$ like |$ [A] [p=hair q=(unit [p=A q=nail])]
97+$ like |$ [A] [p=hair q=(unit [p=A q=nail])]
98
98
99+++ like |= [f=$-(A B) result=(like A)]
100+ ++ mapped
101+ ^- (unit [p=B q=nail])
102+ ?- q.result
103+ ~ ~
104+ [~ value] `[p=(f p.value) q=q.value]
105+ ^- (like B) [p=p.result q=mapped]
106+
99++ wonk |= veq=(like A)
107++ wonk |= veq=(like A)
100 ?- q.veq
108 ?- q.veq
101 ~ !!
109 ~ !!
tests/golden/prelude-1c-structural/tokens.txt+199−124
@@ -588,144 +588,219 @@
58897:45 tight glyph ]
58897:45 tight glyph ]
58999:1 NEWLINE
58999:1 NEWLINE
59099:1 glyph ++
59099:1 glyph ++
591−99:4 name wonk
591+99:4 name like
59299:9 glyph |=
59299:9 glyph |=
593−99:12 name veq
593+99:12 glyph [
594+99:13 tight name f
595+99:14 tight glyph =
594−99:15 tight glyph =
596+99:15 tight glyph $-(
595−99:16 tight glyph (
597+99:18 tight tvar A
596−99:17 tight name like
598+99:20 tvar B
597−99:22 tvar A
599+99:21 tight glyph )
598−99:23 tight glyph )
600+99:23 name result
601+99:29 tight glyph =
602+99:30 tight glyph (
603+99:31 tight name like
604+99:36 tvar A
605+99:37 tight glyph )
606+99:38 tight glyph ]
599100:3 INDENT
607100:3 INDENT
600−100:3 glyph ?-
608+100:3 glyph ++
601−100:6 wing q.veq
609+100:6 name mapped
602101:5 INDENT
610101:5 INDENT
603−101:5 lit ~
611+101:5 glyph ^-
604−101:7 glyph !!
612+101:8 glyph (
605−102:5 NEWLINE
613+101:9 tight name unit
606−102:5 glyph [
614+101:14 glyph [
607−102:6 tight lit ~
615+101:15 tight name p
608−102:8 name product
609−102:15 tight glyph ]
616+101:16 tight glyph =
610−102:17 wing p.product
617+101:17 tight tvar B
611−104:1 DEDENT
618+101:19 name q
612−104:1 DEDENT
613−104:1 NEWLINE
614−104:1 glyph +$
615−104:4 name lone
616−104:9 glyph |$
617−104:12 glyph [
619+101:20 tight glyph =
618−104:13 tight tvar A
620+101:21 tight name nail
619−104:14 tight glyph ]
621+101:25 tight glyph ]
620−104:16 glyph [
622+101:26 tight glyph )
621−104:17 tight name p
623+102:7 INDENT
622−104:18 tight glyph =
624+102:7 glyph ?-
623−104:19 tight tvar A
625+102:10 wing q.result
624−104:20 tight glyph ]
626+103:9 INDENT
625−106:1 NEWLINE
627+103:9 lit ~
626−106:1 glyph +$
628+103:11 lit ~
627−106:4 name lest
629+104:9 NEWLINE
628−106:9 glyph |$
629−106:12 glyph [
630+104:9 glyph [
630−106:13 tight tvar A
631+104:10 tight lit ~
631−106:14 tight glyph ]
632+104:12 name value
632−106:16 glyph [
633−106:17 tight name i
633+104:17 tight glyph ]
634−106:18 tight glyph =
634+104:19 glyph `
635−106:19 tight tvar A
635+104:20 tight glyph [
636−106:21 name t
636+104:21 tight name p
637−106:22 tight glyph =
637+104:22 tight glyph =
638−106:23 tight glyph (
638+104:23 tight glyph (
639−106:24 tight name list
639+104:24 tight name f
640−106:29 tvar A
640+104:26 wing p.value
641+104:33 tight glyph )
642+104:35 name q
643+104:36 tight glyph =
644+104:37 tight wing q.value
645+104:44 tight glyph ]
646+105:3 DEDENT
647+105:3 DEDENT
648+105:3 DEDENT
649+105:3 NEWLINE
650+105:3 glyph ^-
651+105:6 glyph (
652+105:7 tight name like
653+105:12 tvar B
654+105:13 tight glyph )
655+105:15 glyph [
656+105:16 tight name p
657+105:17 tight glyph =
658+105:18 tight wing p.result
659+105:27 name q
660+105:28 tight glyph =
661+105:29 tight name mapped
641−106:30 tight glyph )
662+105:35 tight glyph ]
642−106:31 tight glyph ]
663+107:1 DEDENT
643−108:1 NEWLINE
664+107:1 NEWLINE
644−108:1 glyph +$
665+107:1 glyph ++
645−108:4 name pole
666+107:4 name wonk
646−108:9 glyph |$
667+107:9 glyph |=
668+107:12 name veq
669+107:15 tight glyph =
647−108:12 glyph [
670+107:16 tight glyph (
671+107:17 tight name like
648−108:13 tight tvar A
672+107:22 tvar A
649−108:14 tight glyph ]
673+107:23 tight glyph )
650−109:3 INDENT
674+108:3 INDENT
651−109:3 lit ~
675+108:3 glyph ?-
652−110:3 NEWLINE
676+108:6 wing q.veq
677+109:5 INDENT
678+109:5 lit ~
653−110:3 glyph [
679+109:7 glyph !!
654−110:4 tight tvar A
680+110:5 NEWLINE
655−110:6 glyph (
681+110:5 glyph [
656−110:7 tight name pole
682+110:6 tight lit ~
657−110:12 tvar A
683+110:8 name product
658−110:13 tight glyph )
684+110:15 tight glyph ]
659−110:14 tight glyph ]
685+110:17 wing p.product
686+112:1 DEDENT
660112:1 DEDENT
687112:1 DEDENT
661112:1 NEWLINE
688112:1 NEWLINE
662112:1 glyph +$
689112:1 glyph +$
663−112:4 name quip
690+112:4 name lone
664112:9 glyph |$
691112:9 glyph |$
665112:12 glyph [
692112:12 glyph [
666112:13 tight tvar A
693112:13 tight tvar A
667−112:15 tvar B
694+112:14 tight glyph ]
668−112:16 tight glyph ]
669−112:18 glyph [
695+112:16 glyph [
670−112:19 tight glyph (
671−112:20 tight name list
696+112:17 tight name p
697+112:18 tight glyph =
672−112:25 tvar A
698+112:19 tight tvar A
673−112:26 tight glyph )
674−112:28 tvar B
675−112:29 tight glyph ]
699+112:20 tight glyph ]
676114:1 NEWLINE
700114:1 NEWLINE
677114:1 glyph +$
701114:1 glyph +$
678−114:4 name tree
702+114:4 name lest
679114:9 glyph |$
703114:9 glyph |$
680114:12 glyph [
704114:12 glyph [
681114:13 tight tvar A
705114:13 tight tvar A
682114:14 tight glyph ]
706114:14 tight glyph ]
683−115:3 INDENT
684−115:3 lit ~
685−116:3 NEWLINE
686−116:3 glyph [
707+114:16 glyph [
687−116:4 tight name n
688−116:5 tight glyph =
689−116:6 tight tvar A
690−116:8 name l
691−116:9 tight glyph =
692−116:10 tight glyph (
693−116:11 tight name tree
694−116:16 tvar A
695−116:17 tight glyph )
708+114:17 tight name i
696−116:19 name r
709+114:18 tight glyph =
697−116:20 tight glyph =
710+114:19 tight tvar A
698−116:21 tight glyph (
711+114:21 name t
699−116:22 tight name tree
712+114:22 tight glyph =
713+114:23 tight glyph (
714+114:24 tight name list
715+114:29 tvar A
716+114:30 tight glyph )
717+114:31 tight glyph ]
718+116:1 NEWLINE
719+116:1 glyph +$
720+116:4 name pole
721+116:9 glyph |$
722+116:12 glyph [
700−116:27 tvar A
723+116:13 tight tvar A
724+116:14 tight glyph ]
725+117:3 INDENT
726+117:3 lit ~
727+118:3 NEWLINE
728+118:3 glyph [
729+118:4 tight tvar A
730+118:6 glyph (
731+118:7 tight name pole
732+118:12 tvar A
701−116:28 tight glyph )
733+118:13 tight glyph )
702−116:29 tight glyph ]
734+118:14 tight glyph ]
703−118:1 DEDENT
735+120:1 DEDENT
704−118:1 NEWLINE
736+120:1 NEWLINE
705−118:1 glyph +$
737+120:1 glyph +$
706−118:4 name each
738+120:4 name quip
707−118:9 glyph |$
739+120:9 glyph |$
708−118:12 glyph [
740+120:12 glyph [
709−118:13 tight tvar A
741+120:13 tight tvar A
710−118:15 tvar B
742+120:15 tvar B
711−118:16 tight glyph ]
743+120:16 tight glyph ]
712−119:3 INDENT
713−119:3 glyph [
744+120:18 glyph [
714−119:4 tight lit %|
715−119:7 name p
716−119:8 tight glyph =
745+120:19 tight glyph (
717−119:9 tight tvar B
746+120:20 tight name list
718−119:10 tight glyph ]
747+120:25 tvar A
719−120:3 NEWLINE
720−120:3 glyph [
721−120:4 tight lit %&
722−120:7 name p
723−120:8 tight glyph =
748+120:26 tight glyph )
724−120:9 tight tvar A
749+120:28 tvar B
725−120:10 tight glyph ]
750+120:29 tight glyph ]
726−122:1 DEDENT
727122:1 NEWLINE
751122:1 NEWLINE
728122:1 glyph +$
752122:1 glyph +$
729−122:4 name bloq
753+122:4 name tree
754+122:9 glyph |$
755+122:12 glyph [
756+122:13 tight tvar A
757+122:14 tight glyph ]
758+123:3 INDENT
759+123:3 lit ~
760+124:3 NEWLINE
761+124:3 glyph [
762+124:4 tight name n
763+124:5 tight glyph =
764+124:6 tight tvar A
765+124:8 name l
766+124:9 tight glyph =
767+124:10 tight glyph (
768+124:11 tight name tree
769+124:16 tvar A
770+124:17 tight glyph )
771+124:19 name r
772+124:20 tight glyph =
773+124:21 tight glyph (
774+124:22 tight name tree
775+124:27 tvar A
776+124:28 tight glyph )
777+124:29 tight glyph ]
778+126:1 DEDENT
779+126:1 NEWLINE
780+126:1 glyph +$
781+126:4 name each
782+126:9 glyph |$
783+126:12 glyph [
784+126:13 tight tvar A
785+126:15 tvar B
786+126:16 tight glyph ]
787+127:3 INDENT
788+127:3 glyph [
789+127:4 tight lit %|
790+127:7 name p
791+127:8 tight glyph =
792+127:9 tight tvar B
793+127:10 tight glyph ]
794+128:3 NEWLINE
795+128:3 glyph [
796+128:4 tight lit %&
797+128:7 name p
798+128:8 tight glyph =
799+128:9 tight tvar A
800+128:10 tight glyph ]
801+130:1 DEDENT
802+130:1 NEWLINE
803+130:1 glyph +$
804+130:4 name bloq
730−122:9 aura @
805+130:9 aura @
731−122:10 NEWLINE
806+130:10 NEWLINE
tests/golden/prelude-1c-structural/tree.txt+82−50
@@ -235,56 +235,88 @@
235 (cell 97:32
235 (cell 97:32
236 (face 97:33 p (tvar 97:35 A))
236 (face 97:33 p (tvar 97:35 A))
237 (face 97:37 q (ref 97:39 nail))))))))
237 (face 97:37 q (ref 97:39 nail))))))))
238− (value 99:1 wonk
238+ (value 99:1 like
239 (gate 99:9
239 (gate 99:9
240− (face 99:12 veq
240+ (cell 99:12
241+ (face 99:13 f
242+ (fn 99:15 (tvar 99:18 A) (tvar 99:20 B)))
243+ (face 99:23 result
241− (apply 99:16 like (tvar 99:22 A)))
244+ (apply 99:30 like (tvar 99:36 A))))
242 (body 100:3
245 (body 100:3
243− (branch 100:3
246+ (value 100:3 mapped
244− (wing 100:6 q.veq)
247+ (body 101:5
245− (arm 101:5 (lit 101:5 ~) (crash 101:7))
248+ (cast 101:5
246− (arm 102:5
249+ (apply 101:8 unit
247− (cell 102:5 (lit 102:6 ~) (bind 102:8 product))
250+ (cell 101:14
248− (wing 102:17 p.product))))))
251+ (face 101:15 p (tvar 101:17 B))
249− (mold 104:1 lone
252+ (face 101:19 q (ref 101:21 nail))))
250− (generic 104:9 A
253+ (body 102:7
251− (cell 104:16
254+ (branch 102:7
252− (face 104:17 p (tvar 104:19 A)))))
255+ (wing 102:10 q.result)
253− (mold 106:1 lest
256+ (arm 103:9 (lit 103:9 ~) (lit 103:11 ~))
254− (generic 106:9 A
257+ (arm 104:9
255− (cell 106:16
258+ (cell 104:9 (lit 104:10 ~) (bind 104:12 value))
256− (face 106:17 i (tvar 106:19 A))
259+ (unit 104:19
260+ (tuple 104:20
257− (face 106:21 t
261+ (face 104:21 p
258− (apply 106:23 list (tvar 106:29 A))))))
262+ (group 104:23
259− (mold 108:1 pole
263+ (call 104:24 (wing 104:24 f) (wing 104:26 p.value))))
260− (generic 108:9 A
264+ (face 104:35 q (wing 104:37 q.value))))))))))
261− (union 109:3
265+ (cast 105:3
262− (const 109:3 ~)
263− (cell 110:3
264− (tvar 110:4 A)
265− (apply 110:6 pole (tvar 110:12 A))))))
266+ (apply 105:6 like (tvar 105:12 B))
266− (mold 112:1 quip
267+ (tuple 105:15
267− (generic 112:9 A B
268+ (face 105:16 p (wing 105:18 p.result))
268− (cell 112:18
269+ (face 105:27 q (wing 105:29 mapped)))))))
270+ (value 107:1 wonk
271+ (gate 107:9
272+ (face 107:12 veq
269− (apply 112:19 list (tvar 112:25 A))
273+ (apply 107:16 like (tvar 107:22 A)))
274+ (body 108:3
275+ (branch 108:3
276+ (wing 108:6 q.veq)
277+ (arm 109:5 (lit 109:5 ~) (crash 109:7))
278+ (arm 110:5
279+ (cell 110:5 (lit 110:6 ~) (bind 110:8 product))
280+ (wing 110:17 p.product))))))
281+ (mold 112:1 lone
282+ (generic 112:9 A
283+ (cell 112:16
270− (tvar 112:28 B))))
284+ (face 112:17 p (tvar 112:19 A)))))
271− (mold 114:1 tree
285+ (mold 114:1 lest
272 (generic 114:9 A
286 (generic 114:9 A
287+ (cell 114:16
288+ (face 114:17 i (tvar 114:19 A))
289+ (face 114:21 t
290+ (apply 114:23 list (tvar 114:29 A))))))
291+ (mold 116:1 pole
292+ (generic 116:9 A
293+ (union 117:3
294+ (const 117:3 ~)
295+ (cell 118:3
296+ (tvar 118:4 A)
297+ (apply 118:6 pole (tvar 118:12 A))))))
298+ (mold 120:1 quip
299+ (generic 120:9 A B
300+ (cell 120:18
301+ (apply 120:19 list (tvar 120:25 A))
302+ (tvar 120:28 B))))
303+ (mold 122:1 tree
304+ (generic 122:9 A
273− (union 115:3
305+ (union 123:3
274− (const 115:3 ~)
306+ (const 123:3 ~)
275− (cell 116:3
307+ (cell 124:3
276− (face 116:4 n (tvar 116:6 A))
308+ (face 124:4 n (tvar 124:6 A))
277− (face 116:8 l
309+ (face 124:8 l
278− (apply 116:10 tree (tvar 116:16 A)))
310+ (apply 124:10 tree (tvar 124:16 A)))
279− (face 116:19 r
311+ (face 124:19 r
280− (apply 116:21 tree (tvar 116:27 A)))))))
312+ (apply 124:21 tree (tvar 124:27 A)))))))
281− (mold 118:1 each
313+ (mold 126:1 each
282− (generic 118:9 A B
314+ (generic 126:9 A B
283− (union 119:3
315+ (union 127:3
284− (cell 119:3
316+ (cell 127:3
285− (const 119:4 %|)
317+ (const 127:4 %|)
286− (face 119:7 p (tvar 119:9 B)))
318+ (face 127:7 p (tvar 127:9 B)))
287− (cell 120:3
319+ (cell 128:3
288− (const 120:4 %&)
320+ (const 128:4 %&)
289− (face 120:7 p (tvar 120:9 A))))))
321+ (face 128:7 p (tvar 128:9 A))))))
290− (mold 122:1 bloq (aura 122:9 @)))
322+ (mold 130:1 bloq (aura 130:9 @)))
tests/golden/prelude-1c-structural/types.txt+1
@@ -27,6 +27,7 @@ partial inference; module not checked
27+$ spot: not checked
27+$ spot: not checked
28+$ toon: cases proven disjoint; mold not checked
28+$ toon: cases proven disjoint; mold not checked
29+$ like: not checked
29+$ like: not checked
30+++ like: sample mold is not supported by partial inference
30++ wonk: sample mold is not supported by partial inference
31++ wonk: sample mold is not supported by partial inference
31+$ lone: not checked
32+$ lone: not checked
32+$ lest: not checked
33+$ lest: not checked
tests/golden/prelude-3g-like/about.txt+3−3
@@ -1,4 +1,4 @@
1−source: Overview, Prelude: "The exported inventory includes all names from the Hoon library sections listed below, excluding the groups explicitly left out"; Hoon 3g includes `like` and `wonk`.
1+source: Overview, Prelude: Hoon 3g includes `like` and `wonk`; the value `like` maps an existing result.
2−tests: The prelude's `like` generic edge mold and `wonk` extractor; the callable value form of `like` is a separate, unresolved question. The source contains the prelude definitions through `like` and `wonk`.
2+tests: The source includes the generic `like` mold, its mapping gate and `wonk`.
3expect: parses
3expect: parses
4−expect-types: a partial inference report, not a checked module; generic molds and the `wonk` body are not fully checked yet
4+expect-types: a partial inference report, not a checked module
tests/golden/prelude-3g-like/source.jibb+8
@@ -96,6 +96,14 @@
96
96
97+$ like |$ [A] [p=hair q=(unit [p=A q=nail])]
97+$ like |$ [A] [p=hair q=(unit [p=A q=nail])]
98
98
99+++ like |= [f=$-(A B) result=(like A)]
100+ ++ mapped
101+ ^- (unit [p=B q=nail])
102+ ?- q.result
103+ ~ ~
104+ [~ value] `[p=(f p.value) q=q.value]
105+ ^- (like B) [p=p.result q=mapped]
106+
99++ wonk |= veq=(like A)
107++ wonk |= veq=(like A)
100 ?- q.veq
108 ?- q.veq
101 ~ !!
109 ~ !!
tests/golden/prelude-3g-like/tokens.txt+95−20
@@ -588,26 +588,101 @@
58897:45 tight glyph ]
58897:45 tight glyph ]
58999:1 NEWLINE
58999:1 NEWLINE
59099:1 glyph ++
59099:1 glyph ++
591−99:4 name wonk
591+99:4 name like
59299:9 glyph |=
59299:9 glyph |=
593−99:12 name veq
593+99:12 glyph [
594+99:13 tight name f
595+99:14 tight glyph =
594−99:15 tight glyph =
596+99:15 tight glyph $-(
595−99:16 tight glyph (
597+99:18 tight tvar A
596−99:17 tight name like
598+99:20 tvar B
597−99:22 tvar A
599+99:21 tight glyph )
598−99:23 tight glyph )
600+99:23 name result
601+99:29 tight glyph =
602+99:30 tight glyph (
603+99:31 tight name like
604+99:36 tvar A
605+99:37 tight glyph )
606+99:38 tight glyph ]
599100:3 INDENT
607100:3 INDENT
600−100:3 glyph ?-
608+100:3 glyph ++
601−100:6 wing q.veq
609+100:6 name mapped
602101:5 INDENT
610101:5 INDENT
603−101:5 lit ~
611+101:5 glyph ^-
612+101:8 glyph (
613+101:9 tight name unit
614+101:14 glyph [
615+101:15 tight name p
616+101:16 tight glyph =
617+101:17 tight tvar B
618+101:19 name q
619+101:20 tight glyph =
620+101:21 tight name nail
621+101:25 tight glyph ]
622+101:26 tight glyph )
623+102:7 INDENT
624+102:7 glyph ?-
625+102:10 wing q.result
626+103:9 INDENT
627+103:9 lit ~
628+103:11 lit ~
629+104:9 NEWLINE
630+104:9 glyph [
631+104:10 tight lit ~
632+104:12 name value
633+104:17 tight glyph ]
634+104:19 glyph `
635+104:20 tight glyph [
636+104:21 tight name p
637+104:22 tight glyph =
638+104:23 tight glyph (
639+104:24 tight name f
640+104:26 wing p.value
641+104:33 tight glyph )
642+104:35 name q
643+104:36 tight glyph =
644+104:37 tight wing q.value
645+104:44 tight glyph ]
646+105:3 DEDENT
647+105:3 DEDENT
648+105:3 DEDENT
649+105:3 NEWLINE
650+105:3 glyph ^-
651+105:6 glyph (
652+105:7 tight name like
653+105:12 tvar B
654+105:13 tight glyph )
655+105:15 glyph [
656+105:16 tight name p
657+105:17 tight glyph =
658+105:18 tight wing p.result
659+105:27 name q
660+105:28 tight glyph =
661+105:29 tight name mapped
662+105:35 tight glyph ]
663+107:1 DEDENT
664+107:1 NEWLINE
665+107:1 glyph ++
666+107:4 name wonk
667+107:9 glyph |=
668+107:12 name veq
669+107:15 tight glyph =
670+107:16 tight glyph (
671+107:17 tight name like
672+107:22 tvar A
673+107:23 tight glyph )
674+108:3 INDENT
675+108:3 glyph ?-
676+108:6 wing q.veq
677+109:5 INDENT
678+109:5 lit ~
604−101:7 glyph !!
679+109:7 glyph !!
605−102:5 NEWLINE
680+110:5 NEWLINE
606−102:5 glyph [
681+110:5 glyph [
607−102:6 tight lit ~
682+110:6 tight lit ~
608−102:8 name product
683+110:8 name product
609−102:15 tight glyph ]
684+110:15 tight glyph ]
610−102:17 wing p.product
685+110:17 wing p.product
611−102:26 DEDENT
686+110:26 DEDENT
612−102:26 DEDENT
687+110:26 DEDENT
613−102:26 NEWLINE
688+110:26 NEWLINE
tests/golden/prelude-3g-like/tree.txt+41−9
@@ -235,14 +235,46 @@
235 (cell 97:32
235 (cell 97:32
236 (face 97:33 p (tvar 97:35 A))
236 (face 97:33 p (tvar 97:35 A))
237 (face 97:37 q (ref 97:39 nail))))))))
237 (face 97:37 q (ref 97:39 nail))))))))
238− (value 99:1 wonk
238+ (value 99:1 like
239 (gate 99:9
239 (gate 99:9
240− (face 99:12 veq
240+ (cell 99:12
241+ (face 99:13 f
242+ (fn 99:15 (tvar 99:18 A) (tvar 99:20 B)))
243+ (face 99:23 result
241− (apply 99:16 like (tvar 99:22 A)))
244+ (apply 99:30 like (tvar 99:36 A))))
242 (body 100:3
245 (body 100:3
243− (branch 100:3
246+ (value 100:3 mapped
247+ (body 101:5
248+ (cast 101:5
249+ (apply 101:8 unit
250+ (cell 101:14
251+ (face 101:15 p (tvar 101:17 B))
252+ (face 101:19 q (ref 101:21 nail))))
253+ (body 102:7
254+ (branch 102:7
255+ (wing 102:10 q.result)
256+ (arm 103:9 (lit 103:9 ~) (lit 103:11 ~))
257+ (arm 104:9
258+ (cell 104:9 (lit 104:10 ~) (bind 104:12 value))
259+ (unit 104:19
260+ (tuple 104:20
261+ (face 104:21 p
262+ (group 104:23
263+ (call 104:24 (wing 104:24 f) (wing 104:26 p.value))))
264+ (face 104:35 q (wing 104:37 q.value))))))))))
265+ (cast 105:3
266+ (apply 105:6 like (tvar 105:12 B))
267+ (tuple 105:15
268+ (face 105:16 p (wing 105:18 p.result))
269+ (face 105:27 q (wing 105:29 mapped)))))))
270+ (value 107:1 wonk
271+ (gate 107:9
272+ (face 107:12 veq
273+ (apply 107:16 like (tvar 107:22 A)))
274+ (body 108:3
275+ (branch 108:3
244− (wing 100:6 q.veq)
276+ (wing 108:6 q.veq)
245− (arm 101:5 (lit 101:5 ~) (crash 101:7))
277+ (arm 109:5 (lit 109:5 ~) (crash 109:7))
246− (arm 102:5
278+ (arm 110:5
247− (cell 102:5 (lit 102:6 ~) (bind 102:8 product))
279+ (cell 110:5 (lit 110:6 ~) (bind 110:8 product))
248− (wing 102:17 p.product)))))))
280+ (wing 110:17 p.product)))))))
tests/golden/prelude-3g-like/types.txt+1
@@ -27,4 +27,5 @@ partial inference; module not checked
27+$ spot: not checked
27+$ spot: not checked
28+$ toon: cases proven disjoint; mold not checked
28+$ toon: cases proven disjoint; mold not checked
29+$ like: not checked
29+$ like: not checked
30+++ like: sample mold is not supported by partial inference
30++ wonk: sample mold is not supported by partial inference
31++ wonk: sample mold is not supported by partial inference
tests/golden/prelude-list-helpers/source.jibb+8
@@ -96,6 +96,14 @@
96
96
97+$ like |$ [A] [p=hair q=(unit [p=A q=nail])]
97+$ like |$ [A] [p=hair q=(unit [p=A q=nail])]
98
98
99+++ like |= [f=$-(A B) result=(like A)]
100+ ++ mapped
101+ ^- (unit [p=B q=nail])
102+ ?- q.result
103+ ~ ~
104+ [~ value] `[p=(f p.value) q=q.value]
105+ ^- (like B) [p=p.result q=mapped]
106+
99++ wonk |= veq=(like A)
107++ wonk |= veq=(like A)
100 ?- q.veq
108 ?- q.veq
101 ~ !!
109 ~ !!
tests/golden/prelude-list-helpers/tokens.txt+319−244
@@ -588,266 +588,341 @@
58897:45 tight glyph ]
58897:45 tight glyph ]
58999:1 NEWLINE
58999:1 NEWLINE
59099:1 glyph ++
59099:1 glyph ++
591−99:4 name wonk
591+99:4 name like
59299:9 glyph |=
59299:9 glyph |=
593−99:12 name veq
593+99:12 glyph [
594+99:13 tight name f
595+99:14 tight glyph =
594−99:15 tight glyph =
596+99:15 tight glyph $-(
595−99:16 tight glyph (
597+99:18 tight tvar A
596−99:17 tight name like
598+99:20 tvar B
597−99:22 tvar A
599+99:21 tight glyph )
598−99:23 tight glyph )
600+99:23 name result
601+99:29 tight glyph =
602+99:30 tight glyph (
603+99:31 tight name like
604+99:36 tvar A
605+99:37 tight glyph )
606+99:38 tight glyph ]
599100:3 INDENT
607100:3 INDENT
600−100:3 glyph ?-
608+100:3 glyph ++
601−100:6 wing q.veq
609+100:6 name mapped
602101:5 INDENT
610101:5 INDENT
603−101:5 lit ~
611+101:5 glyph ^-
604−101:7 glyph !!
612+101:8 glyph (
605−102:5 NEWLINE
613+101:9 tight name unit
606−102:5 glyph [
614+101:14 glyph [
607−102:6 tight lit ~
615+101:15 tight name p
608−102:8 name product
609−102:15 tight glyph ]
616+101:16 tight glyph =
610−102:17 wing p.product
617+101:17 tight tvar B
611−104:1 DEDENT
618+101:19 name q
612−104:1 DEDENT
613−104:1 NEWLINE
614−104:1 glyph +$
615−104:4 name lone
616−104:9 glyph |$
617−104:12 glyph [
619+101:20 tight glyph =
618−104:13 tight tvar A
620+101:21 tight name nail
619−104:14 tight glyph ]
621+101:25 tight glyph ]
620−104:16 glyph [
622+101:26 tight glyph )
621−104:17 tight name p
623+102:7 INDENT
622−104:18 tight glyph =
624+102:7 glyph ?-
623−104:19 tight tvar A
625+102:10 wing q.result
624−104:20 tight glyph ]
626+103:9 INDENT
625−106:1 NEWLINE
627+103:9 lit ~
626−106:1 glyph +$
628+103:11 lit ~
627−106:4 name lest
629+104:9 NEWLINE
628−106:9 glyph |$
629−106:12 glyph [
630+104:9 glyph [
630−106:13 tight tvar A
631+104:10 tight lit ~
631−106:14 tight glyph ]
632+104:12 name value
632−106:16 glyph [
633−106:17 tight name i
633+104:17 tight glyph ]
634−106:18 tight glyph =
634+104:19 glyph `
635−106:19 tight tvar A
635+104:20 tight glyph [
636−106:21 name t
636+104:21 tight name p
637−106:22 tight glyph =
637+104:22 tight glyph =
638−106:23 tight glyph (
638+104:23 tight glyph (
639−106:24 tight name list
639+104:24 tight name f
640−106:29 tvar A
640+104:26 wing p.value
641+104:33 tight glyph )
642+104:35 name q
643+104:36 tight glyph =
644+104:37 tight wing q.value
645+104:44 tight glyph ]
646+105:3 DEDENT
647+105:3 DEDENT
648+105:3 DEDENT
649+105:3 NEWLINE
650+105:3 glyph ^-
651+105:6 glyph (
652+105:7 tight name like
653+105:12 tvar B
654+105:13 tight glyph )
655+105:15 glyph [
656+105:16 tight name p
657+105:17 tight glyph =
658+105:18 tight wing p.result
659+105:27 name q
660+105:28 tight glyph =
661+105:29 tight name mapped
641−106:30 tight glyph )
662+105:35 tight glyph ]
642−106:31 tight glyph ]
663+107:1 DEDENT
643−108:1 NEWLINE
664+107:1 NEWLINE
644−108:1 glyph +$
665+107:1 glyph ++
645−108:4 name pole
666+107:4 name wonk
646−108:9 glyph |$
667+107:9 glyph |=
668+107:12 name veq
669+107:15 tight glyph =
647−108:12 glyph [
670+107:16 tight glyph (
671+107:17 tight name like
648−108:13 tight tvar A
672+107:22 tvar A
649−108:14 tight glyph ]
673+107:23 tight glyph )
650−109:3 INDENT
674+108:3 INDENT
651−109:3 lit ~
675+108:3 glyph ?-
652−110:3 NEWLINE
676+108:6 wing q.veq
677+109:5 INDENT
678+109:5 lit ~
653−110:3 glyph [
679+109:7 glyph !!
654−110:4 tight tvar A
680+110:5 NEWLINE
655−110:6 glyph (
681+110:5 glyph [
656−110:7 tight name pole
682+110:6 tight lit ~
657−110:12 tvar A
683+110:8 name product
658−110:13 tight glyph )
684+110:15 tight glyph ]
659−110:14 tight glyph ]
685+110:17 wing p.product
686+112:1 DEDENT
660112:1 DEDENT
687112:1 DEDENT
661112:1 NEWLINE
688112:1 NEWLINE
662112:1 glyph +$
689112:1 glyph +$
663−112:4 name quip
690+112:4 name lone
664112:9 glyph |$
691112:9 glyph |$
665112:12 glyph [
692112:12 glyph [
666112:13 tight tvar A
693112:13 tight tvar A
667−112:15 tvar B
694+112:14 tight glyph ]
668−112:16 tight glyph ]
669−112:18 glyph [
695+112:16 glyph [
670−112:19 tight glyph (
671−112:20 tight name list
696+112:17 tight name p
697+112:18 tight glyph =
672−112:25 tvar A
698+112:19 tight tvar A
673−112:26 tight glyph )
674−112:28 tvar B
675−112:29 tight glyph ]
699+112:20 tight glyph ]
676114:1 NEWLINE
700114:1 NEWLINE
677114:1 glyph +$
701114:1 glyph +$
678−114:4 name tree
702+114:4 name lest
679114:9 glyph |$
703114:9 glyph |$
680114:12 glyph [
704114:12 glyph [
681114:13 tight tvar A
705114:13 tight tvar A
682114:14 tight glyph ]
706114:14 tight glyph ]
683−115:3 INDENT
684−115:3 lit ~
685−116:3 NEWLINE
686−116:3 glyph [
707+114:16 glyph [
687−116:4 tight name n
688−116:5 tight glyph =
689−116:6 tight tvar A
690−116:8 name l
691−116:9 tight glyph =
692−116:10 tight glyph (
693−116:11 tight name tree
694−116:16 tvar A
695−116:17 tight glyph )
708+114:17 tight name i
696−116:19 name r
709+114:18 tight glyph =
697−116:20 tight glyph =
710+114:19 tight tvar A
698−116:21 tight glyph (
711+114:21 name t
699−116:22 tight name tree
712+114:22 tight glyph =
713+114:23 tight glyph (
714+114:24 tight name list
715+114:29 tvar A
716+114:30 tight glyph )
717+114:31 tight glyph ]
718+116:1 NEWLINE
719+116:1 glyph +$
720+116:4 name pole
721+116:9 glyph |$
722+116:12 glyph [
700−116:27 tvar A
723+116:13 tight tvar A
724+116:14 tight glyph ]
725+117:3 INDENT
726+117:3 lit ~
727+118:3 NEWLINE
728+118:3 glyph [
729+118:4 tight tvar A
730+118:6 glyph (
731+118:7 tight name pole
732+118:12 tvar A
701−116:28 tight glyph )
733+118:13 tight glyph )
702−116:29 tight glyph ]
734+118:14 tight glyph ]
703−118:1 DEDENT
735+120:1 DEDENT
704−118:1 NEWLINE
736+120:1 NEWLINE
705−118:1 glyph +$
737+120:1 glyph +$
706−118:4 name each
738+120:4 name quip
707−118:9 glyph |$
739+120:9 glyph |$
708−118:12 glyph [
740+120:12 glyph [
709−118:13 tight tvar A
741+120:13 tight tvar A
710−118:15 tvar B
742+120:15 tvar B
711−118:16 tight glyph ]
743+120:16 tight glyph ]
712−119:3 INDENT
713−119:3 glyph [
744+120:18 glyph [
714−119:4 tight lit %|
715−119:7 name p
716−119:8 tight glyph =
745+120:19 tight glyph (
717−119:9 tight tvar B
746+120:20 tight name list
718−119:10 tight glyph ]
747+120:25 tvar A
719−120:3 NEWLINE
720−120:3 glyph [
721−120:4 tight lit %&
722−120:7 name p
723−120:8 tight glyph =
748+120:26 tight glyph )
724−120:9 tight tvar A
749+120:28 tvar B
725−120:10 tight glyph ]
750+120:29 tight glyph ]
726−122:1 DEDENT
727122:1 NEWLINE
751122:1 NEWLINE
728122:1 glyph +$
752122:1 glyph +$
729−122:4 name bloq
753+122:4 name tree
730−122:9 aura @
754+122:9 glyph |$
755+122:12 glyph [
756+122:13 tight tvar A
757+122:14 tight glyph ]
758+123:3 INDENT
759+123:3 lit ~
731−124:1 NEWLINE
760+124:3 NEWLINE
732−124:1 glyph ++
761+124:3 glyph [
733−124:4 name some
762+124:4 tight name n
763+124:5 tight glyph =
764+124:6 tight tvar A
765+124:8 name l
766+124:9 tight glyph =
734−124:9 glyph |=
767+124:10 tight glyph (
735−124:12 name item
768+124:11 tight name tree
736−124:16 tight glyph =
769+124:16 tvar A
737−124:17 tight tvar A
770+124:17 tight glyph )
738−124:19 glyph `
771+124:19 name r
739−124:20 tight name item
772+124:20 tight glyph =
773+124:21 tight glyph (
774+124:22 tight name tree
775+124:27 tvar A
776+124:28 tight glyph )
777+124:29 tight glyph ]
778+126:1 DEDENT
740126:1 NEWLINE
779126:1 NEWLINE
741−126:1 glyph ++
780+126:1 glyph +$
742−126:4 name lure
781+126:4 name each
743−126:9 glyph |=
782+126:9 glyph |$
744−126:12 name item
783+126:12 glyph [
745−126:16 tight glyph =
746−126:17 tight tvar A
784+126:13 tight tvar A
785+126:15 tvar B
786+126:16 tight glyph ]
747127:3 INDENT
787127:3 INDENT
748−127:3 glyph ^-
788+127:3 glyph [
789+127:4 tight lit %|
790+127:7 name p
791+127:8 tight glyph =
792+127:9 tight tvar B
793+127:10 tight glyph ]
794+128:3 NEWLINE
795+128:3 glyph [
796+128:4 tight lit %&
797+128:7 name p
798+128:8 tight glyph =
799+128:9 tight tvar A
800+128:10 tight glyph ]
801+130:1 DEDENT
802+130:1 NEWLINE
803+130:1 glyph +$
804+130:4 name bloq
805+130:9 aura @
806+132:1 NEWLINE
807+132:1 glyph ++
808+132:4 name some
809+132:9 glyph |=
810+132:12 name item
811+132:16 tight glyph =
812+132:17 tight tvar A
813+132:19 glyph `
814+132:20 tight name item
815+134:1 NEWLINE
816+134:1 glyph ++
817+134:4 name lure
818+134:9 glyph |=
819+134:12 name item
820+134:16 tight glyph =
821+134:17 tight tvar A
822+135:3 INDENT
823+135:3 glyph ^-
749−127:6 glyph (
824+135:6 glyph (
750−127:7 tight name list
825+135:7 tight name list
751−127:12 tvar A
826+135:12 tvar A
752−127:13 tight glyph )
827+135:13 tight glyph )
753−127:15 glyph [
828+135:15 glyph [
754−127:16 tight name item
829+135:16 tight name item
755−127:21 lit ~
830+135:21 lit ~
756−127:22 tight glyph ]
831+135:22 tight glyph ]
757−129:1 DEDENT
832+137:1 DEDENT
758−129:1 NEWLINE
833+137:1 NEWLINE
759−129:1 glyph ++
834+137:1 glyph ++
760−129:4 name snoc
835+137:4 name snoc
761−129:9 glyph |=
836+137:9 glyph |=
762−129:12 name args
837+137:12 name args
763−129:16 tight glyph =
838+137:16 tight glyph =
764−129:17 tight glyph [
839+137:17 tight glyph [
765−129:18 tight glyph (
840+137:18 tight glyph (
766−129:19 tight name list
841+137:19 tight name list
767−129:24 tvar A
842+137:24 tvar A
768−129:25 tight glyph )
843+137:25 tight glyph )
769−129:27 tvar A
844+137:27 tvar A
770−129:28 tight glyph ]
845+137:28 tight glyph ]
771−130:3 INDENT
846+138:3 INDENT
772−130:3 glyph ?-
847+138:3 glyph ?-
773−130:6 name args
848+138:6 name args
774−131:5 INDENT
849+139:5 INDENT
775−131:5 glyph [
850+139:5 glyph [
776−131:6 tight name xs
851+139:6 tight name xs
777−131:9 name item
852+139:9 name item
778−131:13 tight glyph ]
853+139:13 tight glyph ]
779−131:15 glyph (
854+139:15 glyph (
780−131:16 tight name weld
855+139:16 tight name weld
781−131:21 name xs
856+139:21 name xs
782−131:24 glyph [
857+139:24 glyph [
783−131:25 tight name item
858+139:25 tight name item
784−131:30 lit ~
859+139:30 lit ~
785−131:31 tight glyph ]
860+139:31 tight glyph ]
786−131:32 tight glyph )
861+139:32 tight glyph )
787−133:1 DEDENT
862+141:1 DEDENT
788−133:1 DEDENT
863+141:1 DEDENT
789−133:1 NEWLINE
864+141:1 NEWLINE
790−133:1 glyph ++
865+141:1 glyph ++
791−133:4 name flop
866+141:4 name flop
792−133:9 glyph |=
867+141:9 glyph |=
793−133:12 name xs
868+141:12 name xs
794−133:14 tight glyph =
869+141:14 tight glyph =
795−133:15 tight glyph (
870+141:15 tight glyph (
796−133:16 tight name list
871+141:16 tight name list
797−133:21 tvar A
872+141:21 tvar A
798−133:22 tight glyph )
873+141:22 tight glyph )
799−134:3 INDENT
874+142:3 INDENT
800−134:3 glyph ++
875+142:3 glyph ++
801−134:6 name reverse-into
876+142:6 name reverse-into
802−134:19 glyph |=
877+142:19 glyph |=
803−134:22 name args
878+142:22 name args
804−134:26 tight glyph =
879+142:26 tight glyph =
805−134:27 tight glyph [
880+142:27 tight glyph [
806−134:28 tight glyph (
881+142:28 tight glyph (
807−134:29 tight name list
882+142:29 tight name list
808−134:34 tvar A
883+142:34 tvar A
809−134:35 tight glyph )
884+142:35 tight glyph )
810−134:37 glyph (
885+142:37 glyph (
811−134:38 tight name list
886+142:38 tight name list
812−134:43 tvar A
887+142:43 tvar A
813−134:44 tight glyph )
888+142:44 tight glyph )
814−134:45 tight glyph ]
889+142:45 tight glyph ]
815−135:5 INDENT
890+143:5 INDENT
816−135:5 glyph ?-
891+143:5 glyph ?-
817−135:8 name args
892+143:8 name args
818−136:7 INDENT
893+144:7 INDENT
819−136:7 glyph [
894+144:7 glyph [
820−136:8 tight name rest
895+144:8 tight name rest
821−136:13 name acc
896+144:13 name acc
822−136:16 tight glyph ]
897+144:16 tight glyph ]
823−137:9 INDENT
898+145:9 INDENT
824−137:9 glyph ?-
899+145:9 glyph ?-
825−137:12 name rest
900+145:12 name rest
826−138:11 INDENT
901+146:11 INDENT
827−138:11 lit ~
902+146:11 lit ~
828−138:13 name acc
903+146:13 name acc
829−139:11 NEWLINE
904+147:11 NEWLINE
830−139:11 glyph [
905+147:11 glyph [
831−139:12 tight name item
906+147:12 tight name item
832−139:17 name more
907+147:17 name more
833−139:21 tight glyph ]
908+147:21 tight glyph ]
834−139:23 glyph (
909+147:23 glyph (
835−139:24 tight name reverse-into
910+147:24 tight name reverse-into
836−139:37 name more
911+147:37 name more
837−139:42 glyph [
912+147:42 glyph [
838−139:43 tight name item
913+147:43 tight name item
839−139:48 name acc
914+147:48 name acc
840−139:51 tight glyph ]
915+147:51 tight glyph ]
841−139:52 tight glyph )
916+147:52 tight glyph )
842−140:3 DEDENT
917+148:3 DEDENT
843−140:3 DEDENT
918+148:3 DEDENT
844−140:3 DEDENT
919+148:3 DEDENT
845−140:3 DEDENT
920+148:3 DEDENT
846−140:3 NEWLINE
921+148:3 NEWLINE
847−140:3 glyph (
922+148:3 glyph (
848−140:4 tight name reverse-into
923+148:4 tight name reverse-into
849−140:17 name xs
924+148:17 name xs
850−140:20 lit ~
925+148:20 lit ~
851−140:21 tight glyph )
926+148:21 tight glyph )
852−140:22 DEDENT
927+148:22 DEDENT
853−140:22 NEWLINE
928+148:22 NEWLINE
tests/golden/prelude-list-helpers/tree.txt+138−106
@@ -235,112 +235,144 @@
235 (cell 97:32
235 (cell 97:32
236 (face 97:33 p (tvar 97:35 A))
236 (face 97:33 p (tvar 97:35 A))
237 (face 97:37 q (ref 97:39 nail))))))))
237 (face 97:37 q (ref 97:39 nail))))))))
238− (value 99:1 wonk
238+ (value 99:1 like
239 (gate 99:9
239 (gate 99:9
240− (face 99:12 veq
240+ (cell 99:12
241+ (face 99:13 f
242+ (fn 99:15 (tvar 99:18 A) (tvar 99:20 B)))
243+ (face 99:23 result
241− (apply 99:16 like (tvar 99:22 A)))
244+ (apply 99:30 like (tvar 99:36 A))))
242 (body 100:3
245 (body 100:3
243− (branch 100:3
246+ (value 100:3 mapped
244− (wing 100:6 q.veq)
247+ (body 101:5
245− (arm 101:5 (lit 101:5 ~) (crash 101:7))
248+ (cast 101:5
246− (arm 102:5
249+ (apply 101:8 unit
247− (cell 102:5 (lit 102:6 ~) (bind 102:8 product))
250+ (cell 101:14
248− (wing 102:17 p.product))))))
251+ (face 101:15 p (tvar 101:17 B))
249− (mold 104:1 lone
252+ (face 101:19 q (ref 101:21 nail))))
250− (generic 104:9 A
253+ (body 102:7
251− (cell 104:16
254+ (branch 102:7
252− (face 104:17 p (tvar 104:19 A)))))
255+ (wing 102:10 q.result)
253− (mold 106:1 lest
256+ (arm 103:9 (lit 103:9 ~) (lit 103:11 ~))
254− (generic 106:9 A
257+ (arm 104:9
255− (cell 106:16
258+ (cell 104:9 (lit 104:10 ~) (bind 104:12 value))
256− (face 106:17 i (tvar 106:19 A))
259+ (unit 104:19
260+ (tuple 104:20
257− (face 106:21 t
261+ (face 104:21 p
258− (apply 106:23 list (tvar 106:29 A))))))
262+ (group 104:23
259− (mold 108:1 pole
263+ (call 104:24 (wing 104:24 f) (wing 104:26 p.value))))
260− (generic 108:9 A
264+ (face 104:35 q (wing 104:37 q.value))))))))))
261− (union 109:3
265+ (cast 105:3
262− (const 109:3 ~)
263− (cell 110:3
264− (tvar 110:4 A)
265− (apply 110:6 pole (tvar 110:12 A))))))
266+ (apply 105:6 like (tvar 105:12 B))
266− (mold 112:1 quip
267+ (tuple 105:15
267− (generic 112:9 A B
268+ (face 105:16 p (wing 105:18 p.result))
268− (cell 112:18
269+ (face 105:27 q (wing 105:29 mapped)))))))
270+ (value 107:1 wonk
271+ (gate 107:9
272+ (face 107:12 veq
269− (apply 112:19 list (tvar 112:25 A))
273+ (apply 107:16 like (tvar 107:22 A)))
274+ (body 108:3
275+ (branch 108:3
276+ (wing 108:6 q.veq)
277+ (arm 109:5 (lit 109:5 ~) (crash 109:7))
278+ (arm 110:5
279+ (cell 110:5 (lit 110:6 ~) (bind 110:8 product))
280+ (wing 110:17 p.product))))))
281+ (mold 112:1 lone
282+ (generic 112:9 A
283+ (cell 112:16
270− (tvar 112:28 B))))
284+ (face 112:17 p (tvar 112:19 A)))))
271− (mold 114:1 tree
285+ (mold 114:1 lest
272 (generic 114:9 A
286 (generic 114:9 A
287+ (cell 114:16
288+ (face 114:17 i (tvar 114:19 A))
289+ (face 114:21 t
290+ (apply 114:23 list (tvar 114:29 A))))))
291+ (mold 116:1 pole
292+ (generic 116:9 A
293+ (union 117:3
294+ (const 117:3 ~)
295+ (cell 118:3
296+ (tvar 118:4 A)
297+ (apply 118:6 pole (tvar 118:12 A))))))
298+ (mold 120:1 quip
299+ (generic 120:9 A B
300+ (cell 120:18
301+ (apply 120:19 list (tvar 120:25 A))
302+ (tvar 120:28 B))))
303+ (mold 122:1 tree
304+ (generic 122:9 A
273− (union 115:3
305+ (union 123:3
274− (const 115:3 ~)
306+ (const 123:3 ~)
275− (cell 116:3
307+ (cell 124:3
276− (face 116:4 n (tvar 116:6 A))
308+ (face 124:4 n (tvar 124:6 A))
277− (face 116:8 l
309+ (face 124:8 l
278− (apply 116:10 tree (tvar 116:16 A)))
310+ (apply 124:10 tree (tvar 124:16 A)))
279− (face 116:19 r
311+ (face 124:19 r
280− (apply 116:21 tree (tvar 116:27 A)))))))
312+ (apply 124:21 tree (tvar 124:27 A)))))))
281− (mold 118:1 each
313+ (mold 126:1 each
282− (generic 118:9 A B
314+ (generic 126:9 A B
283− (union 119:3
315+ (union 127:3
284− (cell 119:3
316+ (cell 127:3
285− (const 119:4 %|)
317+ (const 127:4 %|)
286− (face 119:7 p (tvar 119:9 B)))
318+ (face 127:7 p (tvar 127:9 B)))
287− (cell 120:3
319+ (cell 128:3
288− (const 120:4 %&)
320+ (const 128:4 %&)
289− (face 120:7 p (tvar 120:9 A))))))
321+ (face 128:7 p (tvar 128:9 A))))))
290− (mold 122:1 bloq (aura 122:9 @))
322+ (mold 130:1 bloq (aura 130:9 @))
291− (value 124:1 some
323+ (value 132:1 some
292− (gate 124:9
324+ (gate 132:9
293− (face 124:12 item (tvar 124:17 A))
325+ (face 132:12 item (tvar 132:17 A))
294− (unit 124:19 (wing 124:20 item))))
326+ (unit 132:19 (wing 132:20 item))))
295− (value 126:1 lure
327+ (value 134:1 lure
296− (gate 126:9
328+ (gate 134:9
297− (face 126:12 item (tvar 126:17 A))
329+ (face 134:12 item (tvar 134:17 A))
298− (body 127:3
330+ (body 135:3
299− (cast 127:3
331+ (cast 135:3
300− (apply 127:6 list (tvar 127:12 A))
332+ (apply 135:6 list (tvar 135:12 A))
301− (tuple 127:15 (wing 127:16 item) (lit 127:21 ~))))))
333+ (tuple 135:15 (wing 135:16 item) (lit 135:21 ~))))))
302− (value 129:1 snoc
334+ (value 137:1 snoc
303− (gate 129:9
335+ (gate 137:9
304− (face 129:12 args
336+ (face 137:12 args
305− (cell 129:17
337+ (cell 137:17
306− (apply 129:18 list (tvar 129:24 A))
338+ (apply 137:18 list (tvar 137:24 A))
307− (tvar 129:27 A)))
339+ (tvar 137:27 A)))
308− (body 130:3
340+ (body 138:3
309− (branch 130:3
341+ (branch 138:3
310− (wing 130:6 args)
342+ (wing 138:6 args)
311− (arm 131:5
343+ (arm 139:5
312− (cell 131:5 (bind 131:6 xs) (bind 131:9 item))
344+ (cell 139:5 (bind 139:6 xs) (bind 139:9 item))
313− (group 131:15
345+ (group 139:15
314− (call 131:16
346+ (call 139:16
315− (wing 131:16 weld)
347+ (wing 139:16 weld)
316− (wing 131:21 xs)
348+ (wing 139:21 xs)
317− (tuple 131:24 (wing 131:25 item) (lit 131:30 ~)))))))))
349+ (tuple 139:24 (wing 139:25 item) (lit 139:30 ~)))))))))
318− (value 133:1 flop
350+ (value 141:1 flop
319− (gate 133:9
351+ (gate 141:9
320− (face 133:12 xs
352+ (face 141:12 xs
321− (apply 133:15 list (tvar 133:21 A)))
353+ (apply 141:15 list (tvar 141:21 A)))
322− (body 134:3
354+ (body 142:3
323− (value 134:3 reverse-into
355+ (value 142:3 reverse-into
324− (gate 134:19
356+ (gate 142:19
325− (face 134:22 args
357+ (face 142:22 args
326− (cell 134:27
358+ (cell 142:27
327− (apply 134:28 list (tvar 134:34 A))
359+ (apply 142:28 list (tvar 142:34 A))
328− (apply 134:37 list (tvar 134:43 A))))
360+ (apply 142:37 list (tvar 142:43 A))))
329− (body 135:5
361+ (body 143:5
330− (branch 135:5
362+ (branch 143:5
331− (wing 135:8 args)
363+ (wing 143:8 args)
332− (arm 136:7
364+ (arm 144:7
333− (cell 136:7 (bind 136:8 rest) (bind 136:13 acc))
365+ (cell 144:7 (bind 144:8 rest) (bind 144:13 acc))
334− (body 137:9
366+ (body 145:9
335− (branch 137:9
367+ (branch 145:9
336− (wing 137:12 rest)
368+ (wing 145:12 rest)
337− (arm 138:11 (lit 138:11 ~) (wing 138:13 acc))
369+ (arm 146:11 (lit 146:11 ~) (wing 146:13 acc))
338− (arm 139:11
370+ (arm 147:11
339− (cell 139:11 (bind 139:12 item) (bind 139:17 more))
371+ (cell 147:11 (bind 147:12 item) (bind 147:17 more))
340− (group 139:23
372+ (group 147:23
341− (call 139:24
373+ (call 147:24
342− (wing 139:24 reverse-into)
374+ (wing 147:24 reverse-into)
343− (wing 139:37 more)
375+ (wing 147:37 more)
344− (tuple 139:42 (wing 139:43 item) (wing 139:48 acc))))))))))))
376+ (tuple 147:42 (wing 147:43 item) (wing 147:48 acc))))))))))))
345− (group 140:3
377+ (group 148:3
346− (call 140:4 (wing 140:4 reverse-into) (wing 140:17 xs) (lit 140:20 ~)))))))
378+ (call 148:4 (wing 148:4 reverse-into) (wing 148:17 xs) (lit 148:20 ~)))))))
tests/golden/prelude-list-helpers/types.txt+1
@@ -27,6 +27,7 @@ partial inference; module not checked
27+$ spot: not checked
27+$ spot: not checked
28+$ toon: cases proven disjoint; mold not checked
28+$ toon: cases proven disjoint; mold not checked
29+$ like: not checked
29+$ like: not checked
30+++ like: sample mold is not supported by partial inference
30++ wonk: sample mold is not supported by partial inference
31++ wonk: sample mold is not supported by partial inference
31+$ lone: not checked
32+$ lone: not checked
32+$ lest: not checked
33+$ lest: not checked
tests/golden/prelude-unit-list-transforms/source.jibb+8
@@ -101,6 +101,14 @@
101
101
102+$ like |$ [A] [p=hair q=(unit [p=A q=nail])]
102+$ like |$ [A] [p=hair q=(unit [p=A q=nail])]
103
103
104+++ like |= [f=$-(A B) result=(like A)]
105+ ++ mapped
106+ ^- (unit [p=B q=nail])
107+ ?- q.result
108+ ~ ~
109+ [~ value] `[p=(f p.value) q=q.value]
110+ ^- (like B) [p=p.result q=mapped]
111+
104++ wonk |= veq=(like A)
112++ wonk |= veq=(like A)
105 ?- q.veq
113 ?- q.veq
106 ~ !!
114 ~ !!
tests/golden/prelude-unit-list-transforms/tokens.txt+1529−1454
@@ -605,1528 +605,1603 @@
605102:45 tight glyph ]
605102:45 tight glyph ]
606104:1 NEWLINE
606104:1 NEWLINE
607104:1 glyph ++
607104:1 glyph ++
608−104:4 name wonk
608+104:4 name like
609104:9 glyph |=
609104:9 glyph |=
610−104:12 name veq
610+104:12 glyph [
611+104:13 tight name f
612+104:14 tight glyph =
611−104:15 tight glyph =
613+104:15 tight glyph $-(
612−104:16 tight glyph (
614+104:18 tight tvar A
613−104:17 tight name like
615+104:20 tvar B
614−104:22 tvar A
616+104:21 tight glyph )
615−104:23 tight glyph )
617+104:23 name result
618+104:29 tight glyph =
619+104:30 tight glyph (
620+104:31 tight name like
621+104:36 tvar A
622+104:37 tight glyph )
623+104:38 tight glyph ]
616105:3 INDENT
624105:3 INDENT
617−105:3 glyph ?-
625+105:3 glyph ++
618−105:6 wing q.veq
626+105:6 name mapped
619106:5 INDENT
627106:5 INDENT
620−106:5 lit ~
628+106:5 glyph ^-
621−106:7 glyph !!
629+106:8 glyph (
622−107:5 NEWLINE
630+106:9 tight name unit
623−107:5 glyph [
631+106:14 glyph [
624−107:6 tight lit ~
632+106:15 tight name p
625−107:8 name product
626−107:15 tight glyph ]
633+106:16 tight glyph =
627−107:17 wing p.product
634+106:17 tight tvar B
628−109:1 DEDENT
635+106:19 name q
629−109:1 DEDENT
630−109:1 NEWLINE
631−109:1 glyph +$
632−109:4 name lone
633−109:9 glyph |$
634−109:12 glyph [
636+106:20 tight glyph =
635−109:13 tight tvar A
637+106:21 tight name nail
636−109:14 tight glyph ]
638+106:25 tight glyph ]
637−109:16 glyph [
639+106:26 tight glyph )
638−109:17 tight name p
640+107:7 INDENT
639−109:18 tight glyph =
641+107:7 glyph ?-
640−109:19 tight tvar A
642+107:10 wing q.result
641−109:20 tight glyph ]
643+108:9 INDENT
642−111:1 NEWLINE
644+108:9 lit ~
643−111:1 glyph +$
645+108:11 lit ~
644−111:4 name lest
646+109:9 NEWLINE
645−111:9 glyph |$
646−111:12 glyph [
647+109:9 glyph [
647−111:13 tight tvar A
648+109:10 tight lit ~
648−111:14 tight glyph ]
649+109:12 name value
649−111:16 glyph [
650−111:17 tight name i
650+109:17 tight glyph ]
651−111:18 tight glyph =
651+109:19 glyph `
652−111:19 tight tvar A
652+109:20 tight glyph [
653−111:21 name t
653+109:21 tight name p
654−111:22 tight glyph =
654+109:22 tight glyph =
655−111:23 tight glyph (
655+109:23 tight glyph (
656−111:24 tight name list
656+109:24 tight name f
657−111:29 tvar A
657+109:26 wing p.value
658+109:33 tight glyph )
659+109:35 name q
660+109:36 tight glyph =
661+109:37 tight wing q.value
662+109:44 tight glyph ]
663+110:3 DEDENT
664+110:3 DEDENT
665+110:3 DEDENT
666+110:3 NEWLINE
667+110:3 glyph ^-
668+110:6 glyph (
669+110:7 tight name like
670+110:12 tvar B
671+110:13 tight glyph )
672+110:15 glyph [
673+110:16 tight name p
674+110:17 tight glyph =
675+110:18 tight wing p.result
676+110:27 name q
677+110:28 tight glyph =
678+110:29 tight name mapped
658−111:30 tight glyph )
679+110:35 tight glyph ]
659−111:31 tight glyph ]
680+112:1 DEDENT
660−113:1 NEWLINE
681+112:1 NEWLINE
661−113:1 glyph +$
682+112:1 glyph ++
662−113:4 name pole
683+112:4 name wonk
663−113:9 glyph |$
684+112:9 glyph |=
685+112:12 name veq
686+112:15 tight glyph =
664−113:12 glyph [
687+112:16 tight glyph (
688+112:17 tight name like
665−113:13 tight tvar A
689+112:22 tvar A
666−113:14 tight glyph ]
690+112:23 tight glyph )
667−114:3 INDENT
691+113:3 INDENT
668−114:3 lit ~
692+113:3 glyph ?-
669−115:3 NEWLINE
693+113:6 wing q.veq
694+114:5 INDENT
695+114:5 lit ~
670−115:3 glyph [
696+114:7 glyph !!
671−115:4 tight tvar A
697+115:5 NEWLINE
672−115:6 glyph (
698+115:5 glyph [
673−115:7 tight name pole
699+115:6 tight lit ~
674−115:12 tvar A
700+115:8 name product
675−115:13 tight glyph )
701+115:15 tight glyph ]
676−115:14 tight glyph ]
702+115:17 wing p.product
703+117:1 DEDENT
677117:1 DEDENT
704117:1 DEDENT
678117:1 NEWLINE
705117:1 NEWLINE
679117:1 glyph +$
706117:1 glyph +$
680−117:4 name quip
707+117:4 name lone
681117:9 glyph |$
708117:9 glyph |$
682117:12 glyph [
709117:12 glyph [
683117:13 tight tvar A
710117:13 tight tvar A
684−117:15 tvar B
711+117:14 tight glyph ]
685−117:16 tight glyph ]
686−117:18 glyph [
712+117:16 glyph [
687−117:19 tight glyph (
688−117:20 tight name list
713+117:17 tight name p
714+117:18 tight glyph =
689−117:25 tvar A
715+117:19 tight tvar A
690−117:26 tight glyph )
691−117:28 tvar B
692−117:29 tight glyph ]
716+117:20 tight glyph ]
693119:1 NEWLINE
717119:1 NEWLINE
694119:1 glyph +$
718119:1 glyph +$
695−119:4 name tree
719+119:4 name lest
696119:9 glyph |$
720119:9 glyph |$
697119:12 glyph [
721119:12 glyph [
698119:13 tight tvar A
722119:13 tight tvar A
699119:14 tight glyph ]
723119:14 tight glyph ]
700−120:3 INDENT
701−120:3 lit ~
702−121:3 NEWLINE
703−121:3 glyph [
724+119:16 glyph [
704−121:4 tight name n
705−121:5 tight glyph =
706−121:6 tight tvar A
707−121:8 name l
708−121:9 tight glyph =
709−121:10 tight glyph (
710−121:11 tight name tree
711−121:16 tvar A
712−121:17 tight glyph )
725+119:17 tight name i
713−121:19 name r
726+119:18 tight glyph =
714−121:20 tight glyph =
727+119:19 tight tvar A
715−121:21 tight glyph (
728+119:21 name t
716−121:22 tight name tree
729+119:22 tight glyph =
730+119:23 tight glyph (
731+119:24 tight name list
732+119:29 tvar A
733+119:30 tight glyph )
734+119:31 tight glyph ]
735+121:1 NEWLINE
736+121:1 glyph +$
737+121:4 name pole
738+121:9 glyph |$
739+121:12 glyph [
717−121:27 tvar A
740+121:13 tight tvar A
741+121:14 tight glyph ]
742+122:3 INDENT
743+122:3 lit ~
744+123:3 NEWLINE
745+123:3 glyph [
746+123:4 tight tvar A
747+123:6 glyph (
748+123:7 tight name pole
749+123:12 tvar A
718−121:28 tight glyph )
750+123:13 tight glyph )
719−121:29 tight glyph ]
751+123:14 tight glyph ]
720−123:1 DEDENT
752+125:1 DEDENT
721−123:1 NEWLINE
753+125:1 NEWLINE
722−123:1 glyph +$
754+125:1 glyph +$
723−123:4 name each
755+125:4 name quip
724−123:9 glyph |$
756+125:9 glyph |$
725−123:12 glyph [
757+125:12 glyph [
726−123:13 tight tvar A
758+125:13 tight tvar A
727−123:15 tvar B
759+125:15 tvar B
728−123:16 tight glyph ]
760+125:16 tight glyph ]
729−124:3 INDENT
730−124:3 glyph [
761+125:18 glyph [
731−124:4 tight lit %|
732−124:7 name p
733−124:8 tight glyph =
762+125:19 tight glyph (
734−124:9 tight tvar B
763+125:20 tight name list
735−124:10 tight glyph ]
764+125:25 tvar A
736−125:3 NEWLINE
737−125:3 glyph [
738−125:4 tight lit %&
739−125:7 name p
740−125:8 tight glyph =
765+125:26 tight glyph )
741−125:9 tight tvar A
766+125:28 tvar B
742−125:10 tight glyph ]
767+125:29 tight glyph ]
743−127:1 DEDENT
744127:1 NEWLINE
768127:1 NEWLINE
745127:1 glyph +$
769127:1 glyph +$
746−127:4 name bloq
770+127:4 name tree
747−127:9 aura @
771+127:9 glyph |$
772+127:12 glyph [
773+127:13 tight tvar A
774+127:14 tight glyph ]
775+128:3 INDENT
776+128:3 lit ~
748−129:1 NEWLINE
777+129:3 NEWLINE
749−129:1 glyph ++
778+129:3 glyph [
750−129:4 name some
779+129:4 tight name n
780+129:5 tight glyph =
781+129:6 tight tvar A
782+129:8 name l
783+129:9 tight glyph =
751−129:9 glyph |=
784+129:10 tight glyph (
752−129:12 name item
785+129:11 tight name tree
753−129:16 tight glyph =
786+129:16 tvar A
754−129:17 tight tvar A
787+129:17 tight glyph )
755−129:19 glyph `
788+129:19 name r
756−129:20 tight name item
789+129:20 tight glyph =
790+129:21 tight glyph (
791+129:22 tight name tree
792+129:27 tvar A
793+129:28 tight glyph )
794+129:29 tight glyph ]
795+131:1 DEDENT
757131:1 NEWLINE
796131:1 NEWLINE
758−131:1 glyph ++
797+131:1 glyph +$
759−131:4 name lure
798+131:4 name each
760−131:9 glyph |=
799+131:9 glyph |$
761−131:12 name item
800+131:12 glyph [
762−131:16 tight glyph =
763−131:17 tight tvar A
801+131:13 tight tvar A
802+131:15 tvar B
803+131:16 tight glyph ]
764132:3 INDENT
804132:3 INDENT
765−132:3 glyph ^-
805+132:3 glyph [
766−132:6 glyph (
806+132:4 tight lit %|
767−132:7 tight name list
807+132:7 name p
768−132:12 tvar A
808+132:8 tight glyph =
769−132:13 tight glyph )
809+132:9 tight tvar B
770−132:15 glyph [
810+132:10 tight glyph ]
771−132:16 tight name item
811+133:3 NEWLINE
772−132:21 lit ~
812+133:3 glyph [
773−132:22 tight glyph ]
813+133:4 tight lit %&
774−134:1 DEDENT
814+133:7 name p
775−134:1 NEWLINE
815+133:8 tight glyph =
776−134:1 glyph ++
816+133:9 tight tvar A
777−134:4 name snoc
817+133:10 tight glyph ]
778−134:9 glyph |=
818+135:1 DEDENT
779−134:12 name args
819+135:1 NEWLINE
780−134:16 tight glyph =
820+135:1 glyph +$
781−134:17 tight glyph [
821+135:4 name bloq
782−134:18 tight glyph (
822+135:9 aura @
783−134:19 tight name list
823+137:1 NEWLINE
784−134:24 tvar A
824+137:1 glyph ++
785−134:25 tight glyph )
825+137:4 name some
786−134:27 tvar A
826+137:9 glyph |=
787−134:28 tight glyph ]
827+137:12 name item
788−135:3 INDENT
828+137:16 tight glyph =
789−135:3 glyph ?-
829+137:17 tight tvar A
790−135:6 name args
830+137:19 glyph `
791−136:5 INDENT
831+137:20 tight name item
792−136:5 glyph [
832+139:1 NEWLINE
793−136:6 tight name xs
833+139:1 glyph ++
794−136:9 name item
834+139:4 name lure
795−136:13 tight glyph ]
835+139:9 glyph |=
796−136:15 glyph (
836+139:12 name item
797−136:16 tight name weld
837+139:16 tight glyph =
798−136:21 name xs
838+139:17 tight tvar A
799−136:24 glyph [
839+140:3 INDENT
800−136:25 tight name item
840+140:3 glyph ^-
801−136:30 lit ~
841+140:6 glyph (
802−136:31 tight glyph ]
842+140:7 tight name list
803−136:32 tight glyph )
843+140:12 tvar A
804−138:1 DEDENT
844+140:13 tight glyph )
805−138:1 DEDENT
845+140:15 glyph [
806−138:1 NEWLINE
846+140:16 tight name item
807−138:1 glyph ++
847+140:21 lit ~
808−138:4 name flop
848+140:22 tight glyph ]
809−138:9 glyph |=
849+142:1 DEDENT
810−138:12 name xs
850+142:1 NEWLINE
811−138:14 tight glyph =
851+142:1 glyph ++
812−138:15 tight glyph (
852+142:4 name snoc
813−138:16 tight name list
853+142:9 glyph |=
814−138:21 tvar A
854+142:12 name args
815−138:22 tight glyph )
855+142:16 tight glyph =
816−139:3 INDENT
856+142:17 tight glyph [
817−139:3 glyph ++
857+142:18 tight glyph (
818−139:6 name reverse-into
858+142:19 tight name list
819−139:19 glyph |=
859+142:24 tvar A
820−139:22 name args
860+142:25 tight glyph )
821−139:26 tight glyph =
861+142:27 tvar A
822−139:27 tight glyph [
862+142:28 tight glyph ]
823−139:28 tight glyph (
863+143:3 INDENT
824−139:29 tight name list
864+143:3 glyph ?-
825−139:34 tvar A
865+143:6 name args
826−139:35 tight glyph )
866+144:5 INDENT
827−139:37 glyph (
867+144:5 glyph [
828−139:38 tight name list
868+144:6 tight name xs
829−139:43 tvar A
869+144:9 name item
830−139:44 tight glyph )
870+144:13 tight glyph ]
831−139:45 tight glyph ]
871+144:15 glyph (
832−140:5 INDENT
872+144:16 tight name weld
833−140:5 glyph ?-
873+144:21 name xs
834−140:8 name args
874+144:24 glyph [
835−141:7 INDENT
875+144:25 tight name item
836−141:7 glyph [
876+144:30 lit ~
837−141:8 tight name rest
877+144:31 tight glyph ]
838−141:13 name acc
878+144:32 tight glyph )
839−141:16 tight glyph ]
879+146:1 DEDENT
840−142:9 INDENT
880+146:1 DEDENT
841−142:9 glyph ?-
881+146:1 NEWLINE
842−142:12 name rest
882+146:1 glyph ++
843−143:11 INDENT
883+146:4 name flop
844−143:11 lit ~
884+146:9 glyph |=
845−143:13 name acc
885+146:12 name xs
846−144:11 NEWLINE
886+146:14 tight glyph =
847−144:11 glyph [
887+146:15 tight glyph (
848−144:12 tight name item
888+146:16 tight name list
849−144:17 name more
889+146:21 tvar A
850−144:21 tight glyph ]
890+146:22 tight glyph )
851−144:23 glyph (
891+147:3 INDENT
852−144:24 tight name reverse-into
892+147:3 glyph ++
853−144:37 name more
893+147:6 name reverse-into
854−144:42 glyph [
894+147:19 glyph |=
855−144:43 tight name item
895+147:22 name args
856−144:48 name acc
896+147:26 tight glyph =
857−144:51 tight glyph ]
897+147:27 tight glyph [
858−144:52 tight glyph )
898+147:28 tight glyph (
859−145:3 DEDENT
899+147:29 tight name list
860−145:3 DEDENT
900+147:34 tvar A
861−145:3 DEDENT
901+147:35 tight glyph )
862−145:3 DEDENT
902+147:37 glyph (
863−145:3 NEWLINE
903+147:38 tight name list
864−145:3 glyph (
904+147:43 tvar A
865−145:4 tight name reverse-into
905+147:44 tight glyph )
866−145:17 name xs
906+147:45 tight glyph ]
867−145:20 lit ~
907+148:5 INDENT
868−145:21 tight glyph )
908+148:5 glyph ?-
869−147:1 DEDENT
909+148:8 name args
870−147:1 NEWLINE
910+149:7 INDENT
871−147:1 glyph ++
911+149:7 glyph [
872−147:4 name drop
912+149:8 tight name rest
873−147:9 glyph |=
913+149:13 name acc
874−147:12 name maybe
914+149:16 tight glyph ]
875−147:17 tight glyph =
915+150:9 INDENT
876−147:18 tight glyph (
916+150:9 glyph ?-
877−147:19 tight name unit
917+150:12 name rest
878−147:24 tvar A
918+151:11 INDENT
879−147:25 tight glyph )
919+151:11 lit ~
880−148:3 INDENT
920+151:13 name acc
881−148:3 glyph ^-
921+152:11 NEWLINE
882−148:6 glyph (
922+152:11 glyph [
883−148:7 tight name list
923+152:12 tight name item
884−148:12 tvar A
924+152:17 name more
885−148:13 tight glyph )
925+152:21 tight glyph ]
886−149:5 INDENT
926+152:23 glyph (
887−149:5 glyph ?-
927+152:24 tight name reverse-into
888−149:8 name maybe
928+152:37 name more
889−150:7 INDENT
929+152:42 glyph [
890−150:7 lit ~
930+152:43 tight name item
891−150:9 lit ~
931+152:48 name acc
892−151:7 NEWLINE
932+152:51 tight glyph ]
893−151:7 glyph [
933+152:52 tight glyph )
894−151:8 tight lit ~
934+153:3 DEDENT
895−151:10 name value
935+153:3 DEDENT
896−151:15 tight glyph ]
936+153:3 DEDENT
897−151:17 glyph [
937+153:3 DEDENT
898−151:18 tight name value
938+153:3 NEWLINE
899−151:24 lit ~
939+153:3 glyph (
900−151:25 tight glyph ]
940+153:4 tight name reverse-into
901−153:1 DEDENT
941+153:17 name xs
902−153:1 DEDENT
942+153:20 lit ~
903−153:1 DEDENT
943+153:21 tight glyph )
904−153:1 NEWLINE
944+155:1 DEDENT
905−153:1 glyph ++
945+155:1 NEWLINE
906−153:4 name bond
946+155:1 glyph ++
907−153:9 glyph |=
947+155:4 name drop
908−153:12 name fallback
948+155:9 glyph |=
909−153:20 tight glyph =
949+155:12 name maybe
910−153:21 tight glyph $-(
950+155:17 tight glyph =
911−153:24 tight lit ~
951+155:18 tight glyph (
912−153:26 tvar A
952+155:19 tight name unit
913−153:27 tight glyph )
953+155:24 tvar A
914−154:3 INDENT
954+155:25 tight glyph )
915−154:3 glyph |=
955+156:3 INDENT
916−154:6 name maybe
956+156:3 glyph ^-
917−154:11 tight glyph =
957+156:6 glyph (
918−154:12 tight glyph (
958+156:7 tight name list
919−154:13 tight name unit
959+156:12 tvar A
920−154:18 tvar A
960+156:13 tight glyph )
921−154:19 tight glyph )
961+157:5 INDENT
922−155:5 INDENT
962+157:5 glyph ?-
923−155:5 glyph ?-
963+157:8 name maybe
924−155:8 name maybe
964+158:7 INDENT
925−156:7 INDENT
965+158:7 lit ~
926−156:7 lit ~
966+158:9 lit ~
927−156:9 glyph (
967+159:7 NEWLINE
928−156:10 tight name fallback
968+159:7 glyph [
929−156:19 lit ~
969+159:8 tight lit ~
930−156:20 tight glyph )
970+159:10 name value
931−157:7 NEWLINE
971+159:15 tight glyph ]
932−157:7 glyph [
972+159:17 glyph [
933−157:8 tight lit ~
973+159:18 tight name value
934−157:10 name value
974+159:24 lit ~
935−157:15 tight glyph ]
975+159:25 tight glyph ]
936−157:17 name value
976+161:1 DEDENT
937−159:1 DEDENT
977+161:1 DEDENT
938−159:1 DEDENT
978+161:1 DEDENT
939−159:1 DEDENT
979+161:1 NEWLINE
940−159:1 NEWLINE
980+161:1 glyph ++
941−159:1 glyph ++
981+161:4 name bond
942−159:4 name bind
982+161:9 glyph |=
943−159:9 glyph |=
983+161:12 name fallback
944−159:12 name args
984+161:20 tight glyph =
945−159:16 tight glyph =
985+161:21 tight glyph $-(
946−159:17 tight glyph [
986+161:24 tight lit ~
947−159:18 tight glyph (
987+161:26 tvar A
948−159:19 tight name unit
988+161:27 tight glyph )
949−159:24 tvar A
989+162:3 INDENT
950−159:25 tight glyph )
990+162:3 glyph |=
951−159:27 glyph $-(
991+162:6 name maybe
952−159:30 tight tvar A
992+162:11 tight glyph =
953−159:32 tvar B
993+162:12 tight glyph (
954−159:33 tight glyph )
994+162:13 tight name unit
955−159:34 tight glyph ]
995+162:18 tvar A
956−160:3 INDENT
996+162:19 tight glyph )
957−160:3 glyph ?-
997+163:5 INDENT
958−160:6 name args
998+163:5 glyph ?-
959−161:5 INDENT
999+163:8 name maybe
960−161:5 glyph [
1000+164:7 INDENT
961−161:6 tight name maybe
1001+164:7 lit ~
962−161:12 name f
1002+164:9 glyph (
963−161:13 tight glyph ]
1003+164:10 tight name fallback
964−161:15 glyph ^-
1004+164:19 lit ~
965−161:18 glyph (
1005+164:20 tight glyph )
966−161:19 tight name unit
1006+165:7 NEWLINE
967−161:24 tvar B
1007+165:7 glyph [
968−161:25 tight glyph )
1008+165:8 tight lit ~
969−162:7 INDENT
1009+165:10 name value
970−162:7 glyph ?-
1010+165:15 tight glyph ]
971−162:10 name maybe
1011+165:17 name value
972−163:9 INDENT
1012+167:1 DEDENT
973−163:9 lit ~
1013+167:1 DEDENT
974−163:11 lit ~
1014+167:1 DEDENT
975−164:9 NEWLINE
1015+167:1 NEWLINE
976−164:9 glyph [
1016+167:1 glyph ++
977−164:10 tight lit ~
1017+167:4 name bind
978−164:12 name value
1018+167:9 glyph |=
979−164:17 tight glyph ]
1019+167:12 name args
980−164:19 glyph `
1020+167:16 tight glyph =
981−164:20 tight glyph (
1021+167:17 tight glyph [
982−164:21 tight name f
1022+167:18 tight glyph (
983−164:23 name value
1023+167:19 tight name unit
984−164:28 tight glyph )
1024+167:24 tvar A
985−166:1 DEDENT
1025+167:25 tight glyph )
986−166:1 DEDENT
1026+167:27 glyph $-(
987−166:1 DEDENT
1027+167:30 tight tvar A
988−166:1 DEDENT
1028+167:32 tvar B
989−166:1 NEWLINE
1029+167:33 tight glyph )
990−166:1 glyph ++
1030+167:34 tight glyph ]
991−166:4 name biff
1031+168:3 INDENT
992−166:9 glyph |=
1032+168:3 glyph ?-
993−166:12 name args
1033+168:6 name args
994−166:16 tight glyph =
1034+169:5 INDENT
995−166:17 tight glyph [
1035+169:5 glyph [
996−166:18 tight glyph (
1036+169:6 tight name maybe
997−166:19 tight name unit
1037+169:12 name f
998−166:24 tvar A
1038+169:13 tight glyph ]
999−166:25 tight glyph )
1039+169:15 glyph ^-
1000−166:27 glyph $-(
1040+169:18 glyph (
1001−166:30 tight tvar A
1041+169:19 tight name unit
1002−166:32 glyph (
1042+169:24 tvar B
1003−166:33 tight name unit
1043+169:25 tight glyph )
1004−166:38 tvar B
1044+170:7 INDENT
1005−166:39 tight glyph )
1045+170:7 glyph ?-
1006−166:40 tight glyph )
1046+170:10 name maybe
1007−166:41 tight glyph ]
1047+171:9 INDENT
1008−167:3 INDENT
1048+171:9 lit ~
1009−167:3 glyph ?-
1049+171:11 lit ~
1010−167:6 name args
1050+172:9 NEWLINE
1011−168:5 INDENT
1051+172:9 glyph [
1012−168:5 glyph [
1052+172:10 tight lit ~
1013−168:6 tight name maybe
1053+172:12 name value
1014−168:12 name f
1054+172:17 tight glyph ]
1015−168:13 tight glyph ]
1055+172:19 glyph `
1016−168:15 glyph ^-
1056+172:20 tight glyph (
1017−168:18 glyph (
1057+172:21 tight name f
1018−168:19 tight name unit
1058+172:23 name value
1019−168:24 tvar B
1059+172:28 tight glyph )
1020−168:25 tight glyph )
1060+174:1 DEDENT
1021−169:7 INDENT
1061+174:1 DEDENT
1022−169:7 glyph ?-
1062+174:1 DEDENT
1023−169:10 name maybe
1063+174:1 DEDENT
1024−170:9 INDENT
1064+174:1 NEWLINE
1025−170:9 lit ~
1065+174:1 glyph ++
1026−170:11 lit ~
1066+174:4 name biff
1027−171:9 NEWLINE
1067+174:9 glyph |=
1028−171:9 glyph [
1068+174:12 name args
1029−171:10 tight lit ~
1069+174:16 tight glyph =
1030−171:12 name value
1070+174:17 tight glyph [
1031−171:17 tight glyph ]
1071+174:18 tight glyph (
1032−171:19 glyph (
1072+174:19 tight name unit
1033−171:20 tight name f
1073+174:24 tvar A
1034−171:22 name value
1074+174:25 tight glyph )
1035−171:27 tight glyph )
1075+174:27 glyph $-(
1036−173:1 DEDENT
1076+174:30 tight tvar A
1037−173:1 DEDENT
1077+174:32 glyph (
1038−173:1 DEDENT
1078+174:33 tight name unit
1039−173:1 DEDENT
1079+174:38 tvar B
1040−173:1 NEWLINE
1080+174:39 tight glyph )
1041−173:1 glyph ++
1081+174:40 tight glyph )
1042−173:4 name both
1082+174:41 tight glyph ]
1043−173:9 glyph |=
1083+175:3 INDENT
1044−173:12 name args
1084+175:3 glyph ?-
1045−173:16 tight glyph =
1085+175:6 name args
1046−173:17 tight glyph [
1086+176:5 INDENT
1047−173:18 tight glyph (
1087+176:5 glyph [
1048−173:19 tight name unit
1088+176:6 tight name maybe
1049−173:24 tvar A
1089+176:12 name f
1050−173:25 tight glyph )
1090+176:13 tight glyph ]
1051−173:27 glyph (
1091+176:15 glyph ^-
1052−173:28 tight name unit
1092+176:18 glyph (
1053−173:33 tvar B
1093+176:19 tight name unit
1054−173:34 tight glyph )
1094+176:24 tvar B
1055−173:35 tight glyph ]
1095+176:25 tight glyph )
1056−174:3 INDENT
1096+177:7 INDENT
1057−174:3 glyph ?-
1097+177:7 glyph ?-
1058−174:6 name args
1098+177:10 name maybe
1059−175:5 INDENT
1099+178:9 INDENT
1060−175:5 glyph [
1100+178:9 lit ~
1061−175:6 tight name first
1101+178:11 lit ~
1062−175:12 name second
1102+179:9 NEWLINE
1063−175:18 tight glyph ]
1103+179:9 glyph [
1064−175:20 glyph ^-
1104+179:10 tight lit ~
1065−175:23 glyph (
1105+179:12 name value
1066−175:24 tight name unit
1106+179:17 tight glyph ]
1067−175:29 glyph [
1107+179:19 glyph (
1068−175:30 tight tvar A
1108+179:20 tight name f
1069−175:32 tvar B
1109+179:22 name value
1070−175:33 tight glyph ]
1110+179:27 tight glyph )
1071−175:34 tight glyph )
1111+181:1 DEDENT
1072−176:7 INDENT
1112+181:1 DEDENT
1073−176:7 glyph ?-
1113+181:1 DEDENT
1074−176:10 name first
1114+181:1 DEDENT
1075−177:9 INDENT
1115+181:1 NEWLINE
1076−177:9 lit ~
1116+181:1 glyph ++
1077−177:11 lit ~
1117+181:4 name both
1078−178:9 NEWLINE
1118+181:9 glyph |=
1079−178:9 glyph [
1119+181:12 name args
1080−178:10 tight lit ~
1120+181:16 tight glyph =
1081−178:12 name a
1121+181:17 tight glyph [
1082−178:13 tight glyph ]
1122+181:18 tight glyph (
1083−179:11 INDENT
1123+181:19 tight name unit
1084−179:11 glyph ?-
1124+181:24 tvar A
1085−179:14 name second
1125+181:25 tight glyph )
1086−180:13 INDENT
1126+181:27 glyph (
1087−180:13 lit ~
1127+181:28 tight name unit
1088−180:15 lit ~
1128+181:33 tvar B
1089−181:13 NEWLINE
1129+181:34 tight glyph )
1090−181:13 glyph [
1130+181:35 tight glyph ]
1091−181:14 tight lit ~
1131+182:3 INDENT
1092−181:16 name b
1132+182:3 glyph ?-
1093−181:17 tight glyph ]
1133+182:6 name args
1094−181:19 glyph `
1134+183:5 INDENT
1095−181:20 tight glyph [
1135+183:5 glyph [
1096−181:21 tight name a
1136+183:6 tight name first
1097−181:23 name b
1137+183:12 name second
1098−181:24 tight glyph ]
1138+183:18 tight glyph ]
1099−183:1 DEDENT
1139+183:20 glyph ^-
1100−183:1 DEDENT
1140+183:23 glyph (
1101−183:1 DEDENT
1141+183:24 tight name unit
1102−183:1 DEDENT
1142+183:29 glyph [
1103−183:1 DEDENT
1143+183:30 tight tvar A
1104−183:1 DEDENT
1144+183:32 tvar B
1105−183:1 NEWLINE
1145+183:33 tight glyph ]
1106−183:1 glyph ++
1107−183:4 name clap
1108−183:9 glyph |=
1109−183:12 name args
1110−183:16 tight glyph =
1111−183:17 tight glyph [
1112−183:18 tight glyph (
1113−183:19 tight name unit
1114−183:24 tvar A
1115−183:25 tight glyph )
1116−183:27 glyph (
1117−183:28 tight name unit
1118−183:33 tvar A
1119183:34 tight glyph )
1146183:34 tight glyph )
1120−183:36 glyph $-(
1147+184:7 INDENT
1121−183:39 tight glyph [
1148+184:7 glyph ?-
1122−183:40 tight tvar A
1149+184:10 name first
1123−183:42 tvar A
1150+185:9 INDENT
1124−183:43 tight glyph ]
1151+185:9 lit ~
1125−183:45 tvar A
1152+185:11 lit ~
1126−183:46 tight glyph )
1153+186:9 NEWLINE
1127−183:47 tight glyph ]
1154+186:9 glyph [
1128−184:3 INDENT
1155+186:10 tight lit ~
1129−184:3 glyph ?-
1156+186:12 name a
1130−184:6 name args
1157+186:13 tight glyph ]
1131−185:5 INDENT
1158+187:11 INDENT
1132−185:5 glyph [
1159+187:11 glyph ?-
1133−185:6 tight name first
1160+187:14 name second
1134−185:12 name second
1161+188:13 INDENT
1135−185:19 name combine
1162+188:13 lit ~
1136−185:26 tight glyph ]
1163+188:15 lit ~
1137−185:28 glyph ^-
1164+189:13 NEWLINE
1138−185:31 glyph (
1165+189:13 glyph [
1139−185:32 tight name unit
1166+189:14 tight lit ~
1140−185:37 tvar A
1167+189:16 name b
1141−185:38 tight glyph )
1168+189:17 tight glyph ]
1142−186:7 INDENT
1169+189:19 glyph `
1143−186:7 glyph ?-
1170+189:20 tight glyph [
1144−186:10 name first
1171+189:21 tight name a
1145−187:9 INDENT
1172+189:23 name b
1146−187:9 lit ~
1173+189:24 tight glyph ]
1147−187:11 name second
1174+191:1 DEDENT
1148−188:9 NEWLINE
1175+191:1 DEDENT
1149−188:9 glyph [
1176+191:1 DEDENT
1150−188:10 tight lit ~
1177+191:1 DEDENT
1151−188:12 name a
1178+191:1 DEDENT
1152−188:13 tight glyph ]
1179+191:1 DEDENT
1153−189:11 INDENT
1180+191:1 NEWLINE
1154−189:11 glyph ?-
1181+191:1 glyph ++
1155−189:14 name second
1182+191:4 name clap
1156−190:13 INDENT
1183+191:9 glyph |=
1157−190:13 lit ~
1184+191:12 name args
1158−190:15 name first
1185+191:16 tight glyph =
1159−191:13 NEWLINE
1186+191:17 tight glyph [
1160−191:13 glyph [
1187+191:18 tight glyph (
1161−191:14 tight lit ~
1188+191:19 tight name unit
1162−191:16 name b
1189+191:24 tvar A
1163−191:17 tight glyph ]
1190+191:25 tight glyph )
1164−191:19 glyph `
1191+191:27 glyph (
1165−191:20 tight glyph (
1192+191:28 tight name unit
1166−191:21 tight name combine
1193+191:33 tvar A
1167−191:29 name a
1194+191:34 tight glyph )
1168−191:31 name b
1195+191:36 glyph $-(
1169−191:32 tight glyph )
1196+191:39 tight glyph [
1170−193:1 DEDENT
1197+191:40 tight tvar A
1171−193:1 DEDENT
1198+191:42 tvar A
1172−193:1 DEDENT
1199+191:43 tight glyph ]
1173−193:1 DEDENT
1200+191:45 tvar A
1174−193:1 DEDENT
1201+191:46 tight glyph )
1175−193:1 DEDENT
1202+191:47 tight glyph ]
1176−193:1 NEWLINE
1203+192:3 INDENT
1177−193:1 glyph ++
1204+192:3 glyph ?-
1178−193:4 name clef
1205+192:6 name args
1179−193:9 glyph |=
1206+193:5 INDENT
1180−193:12 name args
1207+193:5 glyph [
1181−193:16 tight glyph =
1208+193:6 tight name first
1182−193:17 tight glyph [
1209+193:12 name second
1183−193:18 tight glyph (
1210+193:19 name combine
1184−193:19 tight name unit
1211+193:26 tight glyph ]
1185−193:24 tvar A
1212+193:28 glyph ^-
1186−193:25 tight glyph )
1213+193:31 glyph (
1187−193:27 glyph (
1214+193:32 tight name unit
1188−193:28 tight name unit
1215+193:37 tvar A
1189−193:33 tvar B
1216+193:38 tight glyph )
1190−193:34 tight glyph )
1217+194:7 INDENT
1191−193:36 glyph $-(
1218+194:7 glyph ?-
1192−193:39 tight glyph [
1219+194:10 name first
1193−193:40 tight tvar A
1220+195:9 INDENT
1194−193:42 tvar B
1221+195:9 lit ~
1195−193:43 tight glyph ]
1222+195:11 name second
1196−193:45 glyph (
1223+196:9 NEWLINE
1197−193:46 tight name unit
1224+196:9 glyph [
1198−193:51 tvar C
1225+196:10 tight lit ~
1199−193:52 tight glyph )
1226+196:12 name a
1200−193:53 tight glyph )
1227+196:13 tight glyph ]
1201−193:54 tight glyph ]
1228+197:11 INDENT
1202−194:3 INDENT
1229+197:11 glyph ?-
1203−194:3 glyph ?-
1230+197:14 name second
1204−194:6 name args
1231+198:13 INDENT
1205−195:5 INDENT
1232+198:13 lit ~
1206−195:5 glyph [
1233+198:15 name first
1207−195:6 tight name first
1234+199:13 NEWLINE
1208−195:12 name second
1235+199:13 glyph [
1209−195:19 name combine
1236+199:14 tight lit ~
1210−195:26 tight glyph ]
1237+199:16 name b
1211−195:28 glyph ^-
1238+199:17 tight glyph ]
1212−195:31 glyph (
1239+199:19 glyph `
1213−195:32 tight name unit
1240+199:20 tight glyph (
1214−195:37 tvar C
1241+199:21 tight name combine
1215−195:38 tight glyph )
1242+199:29 name a
1216−196:7 INDENT
1243+199:31 name b
1217−196:7 glyph ?-
1244+199:32 tight glyph )
1218−196:10 name first
1245+201:1 DEDENT
1219−197:9 INDENT
1246+201:1 DEDENT
1220−197:9 lit ~
1247+201:1 DEDENT
1221−197:11 lit ~
1248+201:1 DEDENT
1222−198:9 NEWLINE
1249+201:1 DEDENT
1223−198:9 glyph [
1250+201:1 DEDENT
1224−198:10 tight lit ~
1251+201:1 NEWLINE
1225−198:12 name a
1252+201:1 glyph ++
1226−198:13 tight glyph ]
1253+201:4 name clef
1227−199:11 INDENT
1254+201:9 glyph |=
1228−199:11 glyph ?-
1255+201:12 name args
1229−199:14 name second
1256+201:16 tight glyph =
1230−200:13 INDENT
1257+201:17 tight glyph [
1231−200:13 lit ~
1258+201:18 tight glyph (
1232−200:15 lit ~
1259+201:19 tight name unit
1233−201:13 NEWLINE
1260+201:24 tvar A
1234−201:13 glyph [
1261+201:25 tight glyph )
1235−201:14 tight lit ~
1262+201:27 glyph (
1236−201:16 name b
1263+201:28 tight name unit
1237−201:17 tight glyph ]
1264+201:33 tvar B
1238−201:19 glyph (
1265+201:34 tight glyph )
1239−201:20 tight name combine
1266+201:36 glyph $-(
1240−201:28 name a
1267+201:39 tight glyph [
1241−201:30 name b
1268+201:40 tight tvar A
1242−201:31 tight glyph )
1269+201:42 tvar B
1243−203:1 DEDENT
1270+201:43 tight glyph ]
1244−203:1 DEDENT
1271+201:45 glyph (
1245−203:1 DEDENT
1272+201:46 tight name unit
1246−203:1 DEDENT
1273+201:51 tvar C
1247−203:1 DEDENT
1274+201:52 tight glyph )
1248−203:1 DEDENT
1275+201:53 tight glyph )
1249−203:1 NEWLINE
1276+201:54 tight glyph ]
1250−203:1 glyph ++
1277+202:3 INDENT
1251−203:4 name skim
1278+202:3 glyph ?-
1252−203:9 glyph |=
1279+202:6 name args
1253−203:12 name args
1280+203:5 INDENT
1254−203:16 tight glyph =
1281+203:5 glyph [
1255−203:17 tight glyph [
1282+203:6 tight name first
1256−203:18 tight glyph (
1283+203:12 name second
1257−203:19 tight name list
1284+203:19 name combine
1258−203:24 tvar A
1285+203:26 tight glyph ]
1259−203:25 tight glyph )
1286+203:28 glyph ^-
1260−203:27 glyph $-(
1287+203:31 glyph (
1261−203:30 tight tvar A
1288+203:32 tight name unit
1262−203:32 glyph ?
1289+203:37 tvar C
1263−203:33 tight glyph )
1290+203:38 tight glyph )
1264−203:34 tight glyph ]
1291+204:7 INDENT
1265−204:3 INDENT
1292+204:7 glyph ?-
1266−204:3 glyph ?-
1293+204:10 name first
1267−204:6 name args
1294+205:9 INDENT
1268−205:5 INDENT
1295+205:9 lit ~
1269−205:5 glyph [
1296+205:11 lit ~
1270−205:6 tight name xs
1297+206:9 NEWLINE
1271−205:9 name predicate
1298+206:9 glyph [
1272−205:18 tight glyph ]
1299+206:10 tight lit ~
1273−205:20 glyph ^-
1300+206:12 name a
1274−205:23 glyph (
1301+206:13 tight glyph ]
1275−205:24 tight name list
1276−205:29 tvar A
1277−205:30 tight glyph )
1278−206:9 INDENT
1279−206:9 glyph ?-
1280−206:12 name xs
1281207:11 INDENT
1302207:11 INDENT
1282−207:11 lit ~
1303+207:11 glyph ?-
1283−207:13 lit ~
1304+207:14 name second
1284−208:11 NEWLINE
1305+208:13 INDENT
1285−208:11 glyph [
1306+208:13 lit ~
1286−208:12 tight name item
1307+208:15 lit ~
1287−208:17 name rest
1308+209:13 NEWLINE
1288−208:21 tight glyph ]
1309+209:13 glyph [
1289−209:13 INDENT
1310+209:14 tight lit ~
1290−209:13 glyph ?-
1311+209:16 name b
1291−209:16 glyph (
1312+209:17 tight glyph ]
1292−209:17 tight name predicate
1313+209:19 glyph (
1293−209:27 name item
1314+209:20 tight name combine
1315+209:28 name a
1316+209:30 name b
1294209:31 tight glyph )
1317209:31 tight glyph )
1295−210:15 INDENT
1318+211:1 DEDENT
1296−210:15 lit %.y
1319+211:1 DEDENT
1297−210:19 glyph [
1320+211:1 DEDENT
1298−210:20 tight name item
1321+211:1 DEDENT
1299−210:25 glyph (
1322+211:1 DEDENT
1300−210:26 tight name skim
1323+211:1 DEDENT
1301−210:31 name rest
1324+211:1 NEWLINE
1302−210:36 name predicate
1325+211:1 glyph ++
1303−210:45 tight glyph )
1326+211:4 name skim
1304−210:46 tight glyph ]
1327+211:9 glyph |=
1305−211:15 NEWLINE
1328+211:12 name args
1306−211:15 lit %.n
1329+211:16 tight glyph =
1307−211:19 glyph (
1330+211:17 tight glyph [
1308−211:20 tight name skim
1331+211:18 tight glyph (
1309−211:25 name rest
1332+211:19 tight name list
1310−211:30 name predicate
1333+211:24 tvar A
1311−211:39 tight glyph )
1334+211:25 tight glyph )
1312−213:1 DEDENT
1335+211:27 glyph $-(
1313−213:1 DEDENT
1336+211:30 tight tvar A
1314−213:1 DEDENT
1337+211:32 glyph ?
1315−213:1 DEDENT
1338+211:33 tight glyph )
1316−213:1 DEDENT
1339+211:34 tight glyph ]
1317−213:1 DEDENT
1340+212:3 INDENT
1318−213:1 NEWLINE
1341+212:3 glyph ?-
1319−213:1 glyph ++
1342+212:6 name args
1320−213:4 name skip
1343+213:5 INDENT
1321−213:9 glyph |=
1344+213:5 glyph [
1322−213:12 name args
1345+213:6 tight name xs
1323−213:16 tight glyph =
1346+213:9 name predicate
1324−213:17 tight glyph [
1347+213:18 tight glyph ]
1325−213:18 tight glyph (
1348+213:20 glyph ^-
1326−213:19 tight name list
1349+213:23 glyph (
1327−213:24 tvar A
1350+213:24 tight name list
1328−213:25 tight glyph )
1351+213:29 tvar A
1329−213:27 glyph $-(
1352+213:30 tight glyph )
1330−213:30 tight tvar A
1353+214:9 INDENT
1331−213:32 glyph ?
1354+214:9 glyph ?-
1332−213:33 tight glyph )
1355+214:12 name xs
1333−213:34 tight glyph ]
1356+215:11 INDENT
1334−214:3 INDENT
1357+215:11 lit ~
1335−214:3 glyph ?-
1358+215:13 lit ~
1336−214:6 name args
1359+216:11 NEWLINE
1337−215:5 INDENT
1360+216:11 glyph [
1338−215:5 glyph [
1361+216:12 tight name item
1339−215:6 tight name xs
1362+216:17 name rest
1340−215:9 name predicate
1363+216:21 tight glyph ]
1341−215:18 tight glyph ]
1364+217:13 INDENT
1342−215:20 glyph ^-
1365+217:13 glyph ?-
1343−215:23 glyph (
1366+217:16 glyph (
1344−215:24 tight name list
1367+217:17 tight name predicate
1345−215:29 tvar A
1368+217:27 name item
1346−215:30 tight glyph )
1369+217:31 tight glyph )
1347−216:9 INDENT
1370+218:15 INDENT
1348−216:9 glyph ?-
1371+218:15 lit %.y
1349−216:12 name xs
1372+218:19 glyph [
1350−217:11 INDENT
1373+218:20 tight name item
1351−217:11 lit ~
1374+218:25 glyph (
1352−217:13 lit ~
1375+218:26 tight name skim
1353−218:11 NEWLINE
1376+218:31 name rest
1354−218:11 glyph [
1377+218:36 name predicate
1355−218:12 tight name item
1378+218:45 tight glyph )
1356−218:17 name rest
1379+218:46 tight glyph ]
1357−218:21 tight glyph ]
1380+219:15 NEWLINE
1358−219:13 INDENT
1381+219:15 lit %.n
1359−219:13 glyph ?-
1382+219:19 glyph (
1360−219:16 glyph (
1383+219:20 tight name skim
1361−219:17 tight name predicate
1384+219:25 name rest
1362−219:27 name item
1385+219:30 name predicate
1363−219:31 tight glyph )
1386+219:39 tight glyph )
1364−220:15 INDENT
1387+221:1 DEDENT
1365−220:15 lit %.y
1388+221:1 DEDENT
1366−220:19 glyph (
1389+221:1 DEDENT
1367−220:20 tight name skip
1390+221:1 DEDENT
1368−220:25 name rest
1391+221:1 DEDENT
1369−220:30 name predicate
1392+221:1 DEDENT
1370−220:39 tight glyph )
1393+221:1 NEWLINE
1371−221:15 NEWLINE
1394+221:1 glyph ++
1372−221:15 lit %.n
1395+221:4 name skip
1373−221:19 glyph [
1396+221:9 glyph |=
1374−221:20 tight name item
1397+221:12 name args
1375−221:25 glyph (
1398+221:16 tight glyph =
1376−221:26 tight name skip
1399+221:17 tight glyph [
1377−221:31 name rest
1400+221:18 tight glyph (
1378−221:36 name predicate
1401+221:19 tight name list
1379−221:45 tight glyph )
1402+221:24 tvar A
1380−221:46 tight glyph ]
1403+221:25 tight glyph )
1381−223:1 DEDENT
1404+221:27 glyph $-(
1382−223:1 DEDENT
1405+221:30 tight tvar A
1383−223:1 DEDENT
1406+221:32 glyph ?
1384−223:1 DEDENT
1407+221:33 tight glyph )
1385−223:1 DEDENT
1408+221:34 tight glyph ]
1386−223:1 DEDENT
1409+222:3 INDENT
1387−223:1 NEWLINE
1410+222:3 glyph ?-
1388−223:1 glyph ++
1411+222:6 name args
1389−223:4 name levy
1412+223:5 INDENT
1390−223:9 glyph |=
1413+223:5 glyph [
1391−223:12 name args
1414+223:6 tight name xs
1392−223:16 tight glyph =
1415+223:9 name predicate
1393−223:17 tight glyph [
1416+223:18 tight glyph ]
1394−223:18 tight glyph (
1417+223:20 glyph ^-
1395−223:19 tight name list
1418+223:23 glyph (
1396−223:24 tvar A
1419+223:24 tight name list
1397−223:25 tight glyph )
1420+223:29 tvar A
1398−223:27 glyph $-(
1421+223:30 tight glyph )
1399−223:30 tight tvar A
1422+224:9 INDENT
1400−223:32 glyph ?
1423+224:9 glyph ?-
1401−223:33 tight glyph )
1424+224:12 name xs
1402−223:34 tight glyph ]
1425+225:11 INDENT
1403−224:3 INDENT
1426+225:11 lit ~
1404−224:3 glyph ^-
1427+225:13 lit ~
1405−224:6 glyph ?
1428+226:11 NEWLINE
1406−225:5 INDENT
1429+226:11 glyph [
1407−225:5 glyph ?-
1430+226:12 tight name item
1408−225:8 name args
1431+226:17 name rest
1409−226:7 INDENT
1432+226:21 tight glyph ]
1410−226:7 glyph [
1433+227:13 INDENT
1411−226:8 tight name xs
1434+227:13 glyph ?-
1412−226:11 name predicate
1435+227:16 glyph (
1413−226:20 tight glyph ]
1436+227:17 tight name predicate
1414−227:9 INDENT
1437+227:27 name item
1415−227:9 glyph ?-
1438+227:31 tight glyph )
1416−227:12 name xs
1439+228:15 INDENT
1417−228:11 INDENT
1440+228:15 lit %.y
1418−228:11 lit ~
1441+228:19 glyph (
1419−228:13 lit %.y
1442+228:20 tight name skip
1420−229:11 NEWLINE
1443+228:25 name rest
1421−229:11 glyph [
1444+228:30 name predicate
1422−229:12 tight name item
1445+228:39 tight glyph )
1423−229:17 name rest
1446+229:15 NEWLINE
1424−229:21 tight glyph ]
1447+229:15 lit %.n
1425−230:13 INDENT
1448+229:19 glyph [
1426−230:13 glyph ?-
1449+229:20 tight name item
1427−230:16 glyph (
1450+229:25 glyph (
1428−230:17 tight name predicate
1451+229:26 tight name skip
1429−230:27 name item
1452+229:31 name rest
1430−230:31 tight glyph )
1453+229:36 name predicate
1431−231:15 INDENT
1454+229:45 tight glyph )
1432−231:15 lit %.y
1455+229:46 tight glyph ]
1433−231:19 glyph (
1456+231:1 DEDENT
1434−231:20 tight name levy
1457+231:1 DEDENT
1435−231:25 name rest
1458+231:1 DEDENT
1436−231:30 name predicate
1459+231:1 DEDENT
1437−231:39 tight glyph )
1460+231:1 DEDENT
1438−232:15 NEWLINE
1461+231:1 DEDENT
1439−232:15 lit %.n
1462+231:1 NEWLINE
1440−232:19 lit %.n
1463+231:1 glyph ++
1441−234:1 DEDENT
1464+231:4 name levy
1442−234:1 DEDENT
1465+231:9 glyph |=
1443−234:1 DEDENT
1466+231:12 name args
1444−234:1 DEDENT
1467+231:16 tight glyph =
1445−234:1 DEDENT
1468+231:17 tight glyph [
1446−234:1 DEDENT
1469+231:18 tight glyph (
1447−234:1 DEDENT
1470+231:19 tight name list
1448−234:1 NEWLINE
1471+231:24 tvar A
1449−234:1 glyph ++
1472+231:25 tight glyph )
1450−234:4 name lien
1473+231:27 glyph $-(
1451−234:9 glyph |=
1474+231:30 tight tvar A
1452−234:12 name args
1475+231:32 glyph ?
1453−234:16 tight glyph =
1476+231:33 tight glyph )
1454−234:17 tight glyph [
1477+231:34 tight glyph ]
1455−234:18 tight glyph (
1478+232:3 INDENT
1456−234:19 tight name list
1479+232:3 glyph ^-
1457−234:24 tvar A
1480+232:6 glyph ?
1458−234:25 tight glyph )
1481+233:5 INDENT
1459−234:27 glyph $-(
1482+233:5 glyph ?-
1460−234:30 tight tvar A
1483+233:8 name args
1461−234:32 glyph ?
1484+234:7 INDENT
1462−234:33 tight glyph )
1485+234:7 glyph [
1463−234:34 tight glyph ]
1486+234:8 tight name xs
1464−235:3 INDENT
1487+234:11 name predicate
1465−235:3 glyph ^-
1488+234:20 tight glyph ]
1466−235:6 glyph ?
1489+235:9 INDENT
1467−236:5 INDENT
1490+235:9 glyph ?-
1468−236:5 glyph ?-
1491+235:12 name xs
1469−236:8 name args
1492+236:11 INDENT
1470−237:7 INDENT
1493+236:11 lit ~
1471−237:7 glyph [
1494+236:13 lit %.y
1472−237:8 tight name xs
1495+237:11 NEWLINE
1473−237:11 name predicate
1496+237:11 glyph [
1474−237:20 tight glyph ]
1497+237:12 tight name item
1475−238:9 INDENT
1498+237:17 name rest
1476−238:9 glyph ?-
1499+237:21 tight glyph ]
1477−238:12 name xs
1500+238:13 INDENT
1478−239:11 INDENT
1501+238:13 glyph ?-
1479−239:11 lit ~
1502+238:16 glyph (
1480−239:13 lit %.n
1503+238:17 tight name predicate
1481−240:11 NEWLINE
1504+238:27 name item
1482−240:11 glyph [
1505+238:31 tight glyph )
1483−240:12 tight name item
1506+239:15 INDENT
1484−240:17 name rest
1507+239:15 lit %.y
1485−240:21 tight glyph ]
1508+239:19 glyph (
1486−241:13 INDENT
1509+239:20 tight name levy
1487−241:13 glyph ?-
1510+239:25 name rest
1488−241:16 glyph (
1511+239:30 name predicate
1489−241:17 tight name predicate
1512+239:39 tight glyph )
1490−241:27 name item
1513+240:15 NEWLINE
1491−241:31 tight glyph )
1514+240:15 lit %.n
1492−242:15 INDENT
1515+240:19 lit %.n
1493−242:15 lit %.y
1516+242:1 DEDENT
1494−242:19 lit %.y
1517+242:1 DEDENT
1495−243:15 NEWLINE
1518+242:1 DEDENT
1496−243:15 lit %.n
1519+242:1 DEDENT
1497−243:19 glyph (
1520+242:1 DEDENT
1498−243:20 tight name lien
1521+242:1 DEDENT
1499−243:25 name rest
1522+242:1 DEDENT
1500−243:30 name predicate
1523+242:1 NEWLINE
1501−243:39 tight glyph )
1524+242:1 glyph ++
1502−245:1 DEDENT
1525+242:4 name lien
1503−245:1 DEDENT
1526+242:9 glyph |=
1504−245:1 DEDENT
1527+242:12 name args
1505−245:1 DEDENT
1528+242:16 tight glyph =
1506−245:1 DEDENT
1529+242:17 tight glyph [
1507−245:1 DEDENT
1530+242:18 tight glyph (
1508−245:1 DEDENT
1531+242:19 tight name list
1509−245:1 NEWLINE
1532+242:24 tvar A
1510−245:1 glyph ++
1533+242:25 tight glyph )
1511−245:4 name roll
1534+242:27 glyph $-(
1512−245:9 glyph |=
1535+242:30 tight tvar A
1513−245:12 name args
1536+242:32 glyph ?
1514−245:16 tight glyph =
1537+242:33 tight glyph )
1515−245:17 tight glyph [
1538+242:34 tight glyph ]
1516−245:18 tight glyph (
1539+243:3 INDENT
1517−245:19 tight name list
1540+243:3 glyph ^-
1518−245:24 tvar A
1541+243:6 glyph ?
1519−245:25 tight glyph )
1542+244:5 INDENT
1520−245:27 tvar B
1543+244:5 glyph ?-
1521−245:29 glyph $-(
1544+244:8 name args
1522−245:32 tight glyph [
1545+245:7 INDENT
1523−245:33 tight tvar A
1546+245:7 glyph [
1524−245:35 tvar B
1547+245:8 tight name xs
1525−245:36 tight glyph ]
1548+245:11 name predicate
1526−245:38 tvar B
1549+245:20 tight glyph ]
1527−245:39 tight glyph )
1550+246:9 INDENT
1528−245:40 tight glyph ]
1551+246:9 glyph ?-
1529−246:3 INDENT
1552+246:12 name xs
1530−246:3 glyph ?-
1553+247:11 INDENT
1531−246:6 name args
1554+247:11 lit ~
1532−247:5 INDENT
1555+247:13 lit %.n
1533−247:5 glyph [
1556+248:11 NEWLINE
1534−247:6 tight name xs
1557+248:11 glyph [
1535−247:9 name start
1558+248:12 tight name item
1536−247:15 name combine
1559+248:17 name rest
1537−247:22 tight glyph ]
1560+248:21 tight glyph ]
1538−248:7 INDENT
1561+249:13 INDENT
1539−248:7 glyph ?-
1562+249:13 glyph ?-
1540−248:10 name xs
1563+249:16 glyph (
1541−249:9 INDENT
1564+249:17 tight name predicate
1542−249:9 lit ~
1565+249:27 name item
1543−249:11 name start
1566+249:31 tight glyph )
1544−250:9 NEWLINE
1567+250:15 INDENT
1545−250:9 glyph [
1568+250:15 lit %.y
1546−250:10 tight name item
1569+250:19 lit %.y
1547−250:15 name rest
1570+251:15 NEWLINE
1548−250:19 tight glyph ]
1571+251:15 lit %.n
1549−250:21 glyph (
1572+251:19 glyph (
1550−250:22 tight name roll
1573+251:20 tight name lien
1551−250:27 name rest
1574+251:25 name rest
1552−250:32 glyph (
1575+251:30 name predicate
1553−250:33 tight name combine
1576+251:39 tight glyph )
1554−250:41 name item
1577+253:1 DEDENT
1555−250:46 name start
1578+253:1 DEDENT
1556−250:51 tight glyph )
1579+253:1 DEDENT
1557−250:53 name combine
1580+253:1 DEDENT
1558−250:60 tight glyph )
1581+253:1 DEDENT
1559−252:1 DEDENT
1582+253:1 DEDENT
1560−252:1 DEDENT
1583+253:1 DEDENT
1561−252:1 DEDENT
1584+253:1 NEWLINE
1562−252:1 DEDENT
1585+253:1 glyph ++
1563−252:1 NEWLINE
1586+253:4 name roll
1564−252:1 glyph ++
1587+253:9 glyph |=
1565−252:4 name reel
1588+253:12 name args
1566−252:9 glyph |=
1589+253:16 tight glyph =
1567−252:12 name args
1590+253:17 tight glyph [
1568−252:16 tight glyph =
1591+253:18 tight glyph (
1569−252:17 tight glyph [
1592+253:19 tight name list
1570−252:18 tight glyph (
1593+253:24 tvar A
1571−252:19 tight name list
1594+253:25 tight glyph )
1572−252:24 tvar A
1595+253:27 tvar B
1573−252:25 tight glyph )
1596+253:29 glyph $-(
1574−252:27 tvar B
1597+253:32 tight glyph [
1575−252:29 glyph $-(
1598+253:33 tight tvar A
1576−252:32 tight glyph [
1599+253:35 tvar B
1577−252:33 tight tvar A
1600+253:36 tight glyph ]
1578−252:35 tvar B
1601+253:38 tvar B
1579−252:36 tight glyph ]
1602+253:39 tight glyph )
1580−252:38 tvar B
1603+253:40 tight glyph ]
1581−252:39 tight glyph )
1604+254:3 INDENT
1582−252:40 tight glyph ]
1605+254:3 glyph ?-
1583−253:3 INDENT
1606+254:6 name args
1584−253:3 glyph ?-
1607+255:5 INDENT
1585−253:6 name args
1608+255:5 glyph [
1586−254:5 INDENT
1609+255:6 tight name xs
1587−254:5 glyph [
1610+255:9 name start
1588−254:6 tight name xs
1611+255:15 name combine
1589−254:9 name start
1612+255:22 tight glyph ]
1590−254:15 name combine
1613+256:7 INDENT
1591−254:22 tight glyph ]
1614+256:7 glyph ?-
1592−255:7 INDENT
1615+256:10 name xs
1593−255:7 glyph ?-
1616+257:9 INDENT
1594−255:10 name xs
1617+257:9 lit ~
1595−256:9 INDENT
1618+257:11 name start
1596−256:9 lit ~
1619+258:9 NEWLINE
1597−256:11 name start
1620+258:9 glyph [
1598−257:9 NEWLINE
1621+258:10 tight name item
1599−257:9 glyph [
1622+258:15 name rest
1600−257:10 tight name item
1623+258:19 tight glyph ]
1601−257:15 name rest
1624+258:21 glyph (
1602−257:19 tight glyph ]
1625+258:22 tight name roll
1603−257:21 glyph (
1626+258:27 name rest
1604−257:22 tight name combine
1627+258:32 glyph (
1605−257:30 name item
1628+258:33 tight name combine
1606−257:35 glyph (
1629+258:41 name item
1607−257:36 tight name reel
1630+258:46 name start
1608−257:41 name rest
1631+258:51 tight glyph )
1609−257:46 name start
1632+258:53 name combine
1610−257:52 name combine
1633+258:60 tight glyph )
1611−257:59 tight glyph )
1634+260:1 DEDENT
1612−257:60 tight glyph )
1635+260:1 DEDENT
1613−259:1 DEDENT
1636+260:1 DEDENT
1614−259:1 DEDENT
1637+260:1 DEDENT
1615−259:1 DEDENT
1638+260:1 NEWLINE
1616−259:1 DEDENT
1639+260:1 glyph ++
1617−259:1 NEWLINE
1640+260:4 name reel
1618−259:1 glyph ++
1641+260:9 glyph |=
1619−259:4 name flit
1642+260:12 name args
1620−259:9 glyph |=
1643+260:16 tight glyph =
1621−259:12 name predicate
1644+260:17 tight glyph [
1622−259:21 tight glyph =
1645+260:18 tight glyph (
1623−259:22 tight glyph $-(
1646+260:19 tight name list
1624−259:25 tight tvar A
1647+260:24 tvar A
1625−259:27 glyph ?
1648+260:25 tight glyph )
1626−259:28 tight glyph )
1649+260:27 tvar B
1627−260:3 INDENT
1650+260:29 glyph $-(
1628−260:3 glyph |=
1651+260:32 tight glyph [
1629−260:6 name value
1652+260:33 tight tvar A
1630−260:11 tight glyph =
1653+260:35 tvar B
1631−260:12 tight tvar A
1654+260:36 tight glyph ]
1632−261:5 INDENT
1655+260:38 tvar B
1633−261:5 glyph ^-
1656+260:39 tight glyph )
1634−261:8 glyph (
1657+260:40 tight glyph ]
1635−261:9 tight name unit
1658+261:3 INDENT
1636−261:14 tvar A
1659+261:3 glyph ?-
1637−261:15 tight glyph )
1660+261:6 name args
1638−262:7 INDENT
1661+262:5 INDENT
1639−262:7 glyph ?-
1662+262:5 glyph [
1640−262:10 glyph (
1663+262:6 tight name xs
1641−262:11 tight name predicate
1664+262:9 name start
1642−262:21 name value
1665+262:15 name combine
1643−262:26 tight glyph )
1666+262:22 tight glyph ]
1644−263:9 INDENT
1667+263:7 INDENT
1645−263:9 lit %.y
1668+263:7 glyph ?-
1646−263:13 glyph `
1669+263:10 name xs
1647−263:14 tight name value
1670+264:9 INDENT
1648−264:9 NEWLINE
1671+264:9 lit ~
1649−264:9 lit %.n
1672+264:11 name start
1650−264:13 lit ~
1673+265:9 NEWLINE
1651−266:1 DEDENT
1674+265:9 glyph [
1652−266:1 DEDENT
1675+265:10 tight name item
1653−266:1 DEDENT
1676+265:15 name rest
1654−266:1 DEDENT
1677+265:19 tight glyph ]
1655−266:1 NEWLINE
1678+265:21 glyph (
1656−266:1 glyph ++
1679+265:22 tight name combine
1657−266:4 name murn
1680+265:30 name item
1658−266:9 glyph |=
1681+265:35 glyph (
1659−266:12 name args
1682+265:36 tight name reel
1660−266:16 tight glyph =
1683+265:41 name rest
1661−266:17 tight glyph [
1684+265:46 name start
1662−266:18 tight glyph (
1685+265:52 name combine
1663−266:19 tight name list
1686+265:59 tight glyph )
1664−266:24 tvar A
1687+265:60 tight glyph )
1665−266:25 tight glyph )
1688+267:1 DEDENT
1666−266:27 glyph $-(
1689+267:1 DEDENT
1667−266:30 tight tvar A
1690+267:1 DEDENT
1668−266:32 glyph (
1691+267:1 DEDENT
1669−266:33 tight name unit
1692+267:1 NEWLINE
1670−266:38 tvar B
1693+267:1 glyph ++
1671−266:39 tight glyph )
1694+267:4 name flit
1672−266:40 tight glyph )
1695+267:9 glyph |=
1673−266:41 tight glyph ]
1696+267:12 name predicate
1674−267:3 INDENT
1697+267:21 tight glyph =
1675−267:3 glyph ?-
1698+267:22 tight glyph $-(
1676−267:6 name args
1699+267:25 tight tvar A
1677−268:5 INDENT
1700+267:27 glyph ?
1678−268:5 glyph [
1701+267:28 tight glyph )
1679−268:6 tight name xs
1702+268:3 INDENT
1680−268:9 name f
1703+268:3 glyph |=
1681−268:10 tight glyph ]
1704+268:6 name value
1682−268:12 glyph ^-
1705+268:11 tight glyph =
1683−268:15 glyph (
1706+268:12 tight tvar A
1684−268:16 tight name list
1707+269:5 INDENT
1685−268:21 tvar B
1708+269:5 glyph ^-
1686−268:22 tight glyph )
1709+269:8 glyph (
1687−269:9 INDENT
1710+269:9 tight name unit
1688−269:9 glyph ?-
1711+269:14 tvar A
1689−269:12 name xs
1712+269:15 tight glyph )
1690−270:11 INDENT
1713+270:7 INDENT
1691−270:11 lit ~
1714+270:7 glyph ?-
1692−270:13 lit ~
1715+270:10 glyph (
1693−271:11 NEWLINE
1716+270:11 tight name predicate
1694−271:11 glyph [
1717+270:21 name value
1695−271:12 tight name item
1718+270:26 tight glyph )
1696−271:17 name rest
1719+271:9 INDENT
1697−271:21 tight glyph ]
1720+271:9 lit %.y
1698−272:13 INDENT
1721+271:13 glyph `
1699−272:13 glyph ?-
1722+271:14 tight name value
1700−272:16 glyph (
1723+272:9 NEWLINE
1701−272:17 tight name f
1724+272:9 lit %.n
1702−272:19 name item
1725+272:13 lit ~
1703−272:23 tight glyph )
1726+274:1 DEDENT
1704−273:15 INDENT
1727+274:1 DEDENT
1705−273:15 lit ~
1728+274:1 DEDENT
1706−273:17 glyph (
1729+274:1 DEDENT
1707−273:18 tight name murn
1730+274:1 NEWLINE
1708−273:23 name rest
1731+274:1 glyph ++
1709−273:28 name f
1732+274:4 name murn
1710−273:29 tight glyph )
1733+274:9 glyph |=
1711−274:15 NEWLINE
1734+274:12 name args
1712−274:15 glyph [
1735+274:16 tight glyph =
1713−274:16 tight lit ~
1736+274:17 tight glyph [
1714−274:18 name value
1737+274:18 tight glyph (
1715−274:23 tight glyph ]
1738+274:19 tight name list
1716−274:25 glyph [
1739+274:24 tvar A
1717−274:26 tight name value
1740+274:25 tight glyph )
1741+274:27 glyph $-(
1742+274:30 tight tvar A
1718274:32 glyph (
1743274:32 glyph (
1719−274:33 tight name murn
1744+274:33 tight name unit
1720−274:38 name rest
1745+274:38 tvar B
1721−274:43 name f
1746+274:39 tight glyph )
1722−274:44 tight glyph )
1747+274:40 tight glyph )
1723−274:45 tight glyph ]
1748+274:41 tight glyph ]
1724−276:1 DEDENT
1749+275:3 INDENT
1725−276:1 DEDENT
1750+275:3 glyph ?-
1726−276:1 DEDENT
1751+275:6 name args
1727−276:1 DEDENT
1752+276:5 INDENT
1728−276:1 DEDENT
1753+276:5 glyph [
1729−276:1 DEDENT
1754+276:6 tight name xs
1730−276:1 NEWLINE
1755+276:9 name f
1731−276:1 glyph ++
1756+276:10 tight glyph ]
1732−276:4 name join
1757+276:12 glyph ^-
1733−276:9 glyph |=
1758+276:15 glyph (
1734−276:12 name args
1759+276:16 tight name list
1735−276:16 tight glyph =
1760+276:21 tvar B
1736−276:17 tight glyph [
1761+276:22 tight glyph )
1737−276:18 tight tvar A
1762+277:9 INDENT
1738−276:20 glyph (
1763+277:9 glyph ?-
1739−276:21 tight name list
1764+277:12 name xs
1740−276:26 tvar A
1765+278:11 INDENT
1741−276:27 tight glyph )
1766+278:11 lit ~
1742−276:28 tight glyph ]
1767+278:13 lit ~
1743−277:3 INDENT
1768+279:11 NEWLINE
1744−277:3 glyph ?-
1769+279:11 glyph [
1745−277:6 name args
1770+279:12 tight name item
1746−278:5 INDENT
1771+279:17 name rest
1747−278:5 glyph [
1772+279:21 tight glyph ]
1748−278:6 tight name separator
1773+280:13 INDENT
1749−278:16 name xs
1774+280:13 glyph ?-
1750−278:18 tight glyph ]
1775+280:16 glyph (
1751−278:20 glyph ^-
1776+280:17 tight name f
1752−278:23 glyph (
1777+280:19 name item
1753−278:24 tight name list
1778+280:23 tight glyph )
1754−278:29 tvar A
1779+281:15 INDENT
1755−278:30 tight glyph )
1780+281:15 lit ~
1756−279:9 INDENT
1781+281:17 glyph (
1757−279:9 glyph ?-
1782+281:18 tight name murn
1758−279:12 name xs
1783+281:23 name rest
1759−280:11 INDENT
1784+281:28 name f
1760−280:11 lit ~
1785+281:29 tight glyph )
1761−280:13 lit ~
1786+282:15 NEWLINE
1762−281:11 NEWLINE
1787+282:15 glyph [
1763−281:11 glyph [
1788+282:16 tight lit ~
1764−281:12 tight name item
1789+282:18 name value
1765−281:17 name rest
1790+282:23 tight glyph ]
1766−281:21 tight glyph ]
1791+282:25 glyph [
1767−282:13 INDENT
1792+282:26 tight name value
1768−282:13 glyph ?-
1793+282:32 glyph (
1769−282:16 name rest
1794+282:33 tight name murn
1770−283:15 INDENT
1795+282:38 name rest
1771−283:15 lit ~
1796+282:43 name f
1772−283:17 glyph [
1797+282:44 tight glyph )
1773−283:18 tight name item
1798+282:45 tight glyph ]
1774−283:23 lit ~
1799+284:1 DEDENT
1775−283:24 tight glyph ]
1800+284:1 DEDENT
1776−284:15 NEWLINE
1801+284:1 DEDENT
1777−284:15 glyph [
1802+284:1 DEDENT
1778−284:16 tight name next
1803+284:1 DEDENT
1779−284:21 name more
1804+284:1 DEDENT
1780−284:25 tight glyph ]
1805+284:1 NEWLINE
1781−284:27 glyph [
1806+284:1 glyph ++
1782−284:28 tight name item
1807+284:4 name join
1783−284:33 glyph [
1808+284:9 glyph |=
1784−284:34 tight name separator
1809+284:12 name args
1785−284:44 glyph (
1810+284:16 tight glyph =
1786−284:45 tight name join
1811+284:17 tight glyph [
1787−284:50 name separator
1812+284:18 tight tvar A
1788−284:60 name rest
1813+284:20 glyph (
1789−284:64 tight glyph )
1814+284:21 tight name list
1790−284:65 tight glyph ]
1815+284:26 tvar A
1791−284:66 tight glyph ]
1816+284:27 tight glyph )
1792−286:1 DEDENT
1817+284:28 tight glyph ]
1793−286:1 DEDENT
1818+285:3 INDENT
1794−286:1 DEDENT
1819+285:3 glyph ?-
1795−286:1 DEDENT
1820+285:6 name args
1796−286:1 DEDENT
1821+286:5 INDENT
1797−286:1 DEDENT
1822+286:5 glyph [
1798−286:1 NEWLINE
1823+286:6 tight name separator
1799−286:1 glyph ++
1824+286:16 name xs
1800−286:4 name snip
1825+286:18 tight glyph ]
1801−286:9 glyph |=
1826+286:20 glyph ^-
1802−286:12 name xs
1827+286:23 glyph (
1803−286:14 tight glyph =
1828+286:24 tight name list
1804−286:15 tight glyph (
1829+286:29 tvar A
1805−286:16 tight name list
1830+286:30 tight glyph )
1806−286:21 tvar A
1831+287:9 INDENT
1807−286:22 tight glyph )
1832+287:9 glyph ?-
1808−287:3 INDENT
1833+287:12 name xs
1809−287:3 glyph ^-
1834+288:11 INDENT
1810−287:6 glyph (
1835+288:11 lit ~
1811−287:7 tight name list
1836+288:13 lit ~
1812−287:12 tvar A
1837+289:11 NEWLINE
1813−287:13 tight glyph )
1838+289:11 glyph [
1814−288:5 INDENT
1839+289:12 tight name item
1815−288:5 glyph ?-
1840+289:17 name rest
1816−288:8 name xs
1841+289:21 tight glyph ]
1817−289:7 INDENT
1842+290:13 INDENT
1818−289:7 lit ~
1843+290:13 glyph ?-
1819−289:9 lit ~
1844+290:16 name rest
1820−290:7 NEWLINE
1845+291:15 INDENT
1821−290:7 glyph [
1846+291:15 lit ~
1822−290:8 tight name item
1847+291:17 glyph [
1823−290:13 name rest
1848+291:18 tight name item
1824−290:17 tight glyph ]
1849+291:23 lit ~
1825−291:9 INDENT
1850+291:24 tight glyph ]
1826−291:9 glyph ?-
1851+292:15 NEWLINE
1827−291:12 name rest
1852+292:15 glyph [
1828−292:11 INDENT
1853+292:16 tight name next
1829−292:11 lit ~
1854+292:21 name more
1830−292:13 lit ~
1855+292:25 tight glyph ]
1831−293:11 NEWLINE
1856+292:27 glyph [
1832−293:11 glyph [
1857+292:28 tight name item
1833−293:12 tight name next
1858+292:33 glyph [
1834−293:17 name more
1859+292:34 tight name separator
1835−293:21 tight glyph ]
1860+292:44 glyph (
1836−293:23 glyph [
1861+292:45 tight name join
1837−293:24 tight name item
1862+292:50 name separator
1838−293:29 glyph (
1863+292:60 name rest
1839−293:30 tight name snip
1864+292:64 tight glyph )
1840−293:35 name rest
1865+292:65 tight glyph ]
1841−293:39 tight glyph )
1866+292:66 tight glyph ]
1842−293:40 tight glyph ]
1867+294:1 DEDENT
1843−295:1 DEDENT
1868+294:1 DEDENT
1844−295:1 DEDENT
1869+294:1 DEDENT
1845−295:1 DEDENT
1870+294:1 DEDENT
1846−295:1 DEDENT
1871+294:1 DEDENT
1847−295:1 DEDENT
1872+294:1 DEDENT
1848−295:1 NEWLINE
1873+294:1 NEWLINE
1849−295:1 glyph ++
1874+294:1 glyph ++
1850−295:4 name rear
1875+294:4 name snip
1851−295:9 glyph |=
1876+294:9 glyph |=
1852−295:12 name xs
1877+294:12 name xs
1853−295:14 tight glyph =
1878+294:14 tight glyph =
1854−295:15 tight glyph (
1879+294:15 tight glyph (
1855−295:16 tight name list
1880+294:16 tight name list
1856−295:21 tvar A
1881+294:21 tvar A
1857−295:22 tight glyph )
1882+294:22 tight glyph )
1858−296:3 INDENT
1883+295:3 INDENT
1859−296:3 glyph ?-
1884+295:3 glyph ^-
1860−296:6 name xs
1885+295:6 glyph (
1861−297:5 INDENT
1886+295:7 tight name list
1862−297:5 lit ~
1887+295:12 tvar A
1863−297:7 glyph !!
1888+295:13 tight glyph )
1864−298:5 NEWLINE
1889+296:5 INDENT
1865−298:5 glyph [
1890+296:5 glyph ?-
1866−298:6 tight name item
1891+296:8 name xs
1867−298:11 name rest
1892+297:7 INDENT
1868−298:15 tight glyph ]
1893+297:7 lit ~
1869−299:7 INDENT
1894+297:9 lit ~
1870−299:7 glyph ?-
1895+298:7 NEWLINE
1871−299:10 name rest
1896+298:7 glyph [
1872−300:9 INDENT
1897+298:8 tight name item
1873−300:9 lit ~
1898+298:13 name rest
1874−300:11 name item
1899+298:17 tight glyph ]
1875−301:9 NEWLINE
1900+299:9 INDENT
1876−301:9 glyph [
1901+299:9 glyph ?-
1877−301:10 tight name next
1902+299:12 name rest
1878−301:15 name more
1903+300:11 INDENT
1879−301:19 tight glyph ]
1904+300:11 lit ~
1880−301:21 glyph (
1905+300:13 lit ~
1881−301:22 tight name rear
1906+301:11 NEWLINE
1882−301:27 name rest
1907+301:11 glyph [
1883−301:31 tight glyph )
1908+301:12 tight name next
1909+301:17 name more
1910+301:21 tight glyph ]
1911+301:23 glyph [
1912+301:24 tight name item
1913+301:29 glyph (
1914+301:30 tight name snip
1915+301:35 name rest
1916+301:39 tight glyph )
1917+301:40 tight glyph ]
1918+303:1 DEDENT
1884303:1 DEDENT
1919303:1 DEDENT
1885303:1 DEDENT
1920303:1 DEDENT
1886303:1 DEDENT
1921303:1 DEDENT
1887303:1 DEDENT
1922303:1 DEDENT
1888303:1 NEWLINE
1923303:1 NEWLINE
1889303:1 glyph ++
1924303:1 glyph ++
1890−303:4 name cork
1925+303:4 name rear
1891303:9 glyph |=
1926303:9 glyph |=
1892−303:12 name gates
1927+303:12 name xs
1893−303:17 tight glyph =
1928+303:14 tight glyph =
1894−303:18 tight glyph [
1929+303:15 tight glyph (
1895−303:19 tight glyph $-(
1930+303:16 tight name list
1896−303:22 tight tvar A
1931+303:21 tvar A
1897−303:24 tvar B
1932+303:22 tight glyph )
1898−303:25 tight glyph )
1899−303:27 glyph $-(
1900−303:30 tight tvar B
1901−303:32 tvar C
1902−303:33 tight glyph )
1903−303:34 tight glyph ]
1904304:3 INDENT
1933304:3 INDENT
1905304:3 glyph ?-
1934304:3 glyph ?-
1906−304:6 name gates
1935+304:6 name xs
1907305:5 INDENT
1936305:5 INDENT
1908−305:5 glyph [
1937+305:5 lit ~
1909−305:6 tight name f
1938+305:7 glyph !!
1910−305:8 name g
1939+306:5 NEWLINE
1911−305:9 tight glyph ]
1940+306:5 glyph [
1912−305:11 glyph |=
1941+306:6 tight name item
1913−305:14 name x
1942+306:11 name rest
1914−305:15 tight glyph =
1943+306:15 tight glyph ]
1915−305:16 tight tvar A
1944+307:7 INDENT
1916−305:18 glyph (
1945+307:7 glyph ?-
1917−305:19 tight name g
1946+307:10 name rest
1918−305:21 glyph (
1947+308:9 INDENT
1919−305:22 tight name f
1948+308:9 lit ~
1920−305:24 name x
1949+308:11 name item
1921−305:25 tight glyph )
1950+309:9 NEWLINE
1922−305:26 tight glyph )
1951+309:9 glyph [
1923−307:1 DEDENT
1952+309:10 tight name next
1924−307:1 DEDENT
1953+309:15 name more
1925−307:1 NEWLINE
1954+309:19 tight glyph ]
1926−307:1 glyph ++
1927−307:4 name corl
1928−307:9 glyph |=
1929−307:12 name gates
1930−307:17 tight glyph =
1931−307:18 tight glyph [
1932−307:19 tight glyph $-(
1933−307:22 tight tvar B
1934−307:24 tvar C
1935−307:25 tight glyph )
1936−307:27 glyph $-(
1937−307:30 tight tvar A
1938−307:32 tvar B
1939−307:33 tight glyph )
1940−307:34 tight glyph ]
1941−308:3 INDENT
1942−308:3 glyph ?-
1943−308:6 name gates
1944−309:5 INDENT
1945−309:5 glyph [
1946−309:6 tight name f
1947−309:8 name g
1948−309:9 tight glyph ]
1949−309:11 glyph |=
1950−309:14 name x
1951−309:15 tight glyph =
1952−309:16 tight tvar A
1953−309:18 glyph (
1954−309:19 tight name f
1955309:21 glyph (
1955309:21 glyph (
1956−309:22 tight name g
1956+309:22 tight name rear
1957−309:24 name x
1957+309:27 name rest
1958−309:25 tight glyph )
1958+309:31 tight glyph )
1959−309:26 tight glyph )
1959+311:1 DEDENT
1960+311:1 DEDENT
1960311:1 DEDENT
1961311:1 DEDENT
1961311:1 DEDENT
1962311:1 DEDENT
1962311:1 NEWLINE
1963311:1 NEWLINE
1963311:1 glyph ++
1964311:1 glyph ++
1964−311:4 name cury
1965+311:4 name cork
1965311:9 glyph |=
1966311:9 glyph |=
1966−311:12 name args
1967+311:12 name gates
1967−311:16 tight glyph =
1968+311:17 tight glyph =
1968−311:17 tight glyph [
1969+311:18 tight glyph [
1969−311:18 tight glyph $-(
1970+311:19 tight glyph $-(
1970−311:21 tight glyph [
1971311:22 tight tvar A
1971311:22 tight tvar A
1972311:24 tvar B
1972311:24 tvar B
1973−311:25 tight glyph ]
1973+311:25 tight glyph )
1974−311:27 tvar C
1974+311:27 glyph $-(
1975−311:28 tight glyph )
1975+311:30 tight tvar B
1976−311:30 tvar A
1976+311:32 tvar C
1977−311:31 tight glyph ]
1977+311:33 tight glyph )
1978+311:34 tight glyph ]
1978312:3 INDENT
1979312:3 INDENT
1979312:3 glyph ?-
1980312:3 glyph ?-
1980−312:6 name args
1981+312:6 name gates
1981313:5 INDENT
1982313:5 INDENT
1982313:5 glyph [
1983313:5 glyph [
1983313:6 tight name f
1984313:6 tight name f
1984−313:8 name a
1985+313:8 name g
1985313:9 tight glyph ]
1986313:9 tight glyph ]
1986313:11 glyph |=
1987313:11 glyph |=
1987−313:14 name b
1988+313:14 name x
1988313:15 tight glyph =
1989313:15 tight glyph =
1989−313:16 tight tvar B
1990+313:16 tight tvar A
1990313:18 glyph (
1991313:18 glyph (
1991−313:19 tight name f
1992+313:19 tight name g
1992−313:21 name a
1993+313:21 glyph (
1993−313:23 name b
1994+313:22 tight name f
1994−313:24 tight glyph )
1995+313:24 name x
1996+313:25 tight glyph )
1997+313:26 tight glyph )
1995315:1 DEDENT
1998315:1 DEDENT
1996315:1 DEDENT
1999315:1 DEDENT
1997315:1 NEWLINE
2000315:1 NEWLINE
1998315:1 glyph ++
2001315:1 glyph ++
1999−315:4 name curr
2002+315:4 name corl
2000315:9 glyph |=
2003315:9 glyph |=
2001−315:12 name args
2004+315:12 name gates
2002−315:16 tight glyph =
2005+315:17 tight glyph =
2003−315:17 tight glyph [
2006+315:18 tight glyph [
2004−315:18 tight glyph $-(
2007+315:19 tight glyph $-(
2005−315:21 tight glyph [
2008+315:22 tight tvar B
2006−315:22 tight tvar A
2009+315:24 tvar C
2007−315:24 tvar B
2010+315:25 tight glyph )
2008−315:25 tight glyph ]
2011+315:27 glyph $-(
2009−315:27 tvar C
2012+315:30 tight tvar A
2010−315:28 tight glyph )
2013+315:32 tvar B
2011−315:30 tvar B
2014+315:33 tight glyph )
2012−315:31 tight glyph ]
2015+315:34 tight glyph ]
2013316:3 INDENT
2016316:3 INDENT
2014316:3 glyph ?-
2017316:3 glyph ?-
2015−316:6 name args
2018+316:6 name gates
2016317:5 INDENT
2019317:5 INDENT
2017317:5 glyph [
2020317:5 glyph [
2018317:6 tight name f
2021317:6 tight name f
2019−317:8 name b
2022+317:8 name g
2020317:9 tight glyph ]
2023317:9 tight glyph ]
2021317:11 glyph |=
2024317:11 glyph |=
2022−317:14 name a
2025+317:14 name x
2023317:15 tight glyph =
2026317:15 tight glyph =
2024317:16 tight tvar A
2027317:16 tight tvar A
2025317:18 glyph (
2028317:18 glyph (
2026317:19 tight name f
2029317:19 tight name f
2027−317:21 name a
2030+317:21 glyph (
2028−317:23 name b
2031+317:22 tight name g
2029−317:24 tight glyph )
2032+317:24 name x
2033+317:25 tight glyph )
2034+317:26 tight glyph )
2030319:1 DEDENT
2035319:1 DEDENT
2031319:1 DEDENT
2036319:1 DEDENT
2032319:1 NEWLINE
2037319:1 NEWLINE
2033−319:1 glyph +$
2038+319:1 glyph ++
2034−319:4 name cmd
2039+319:4 name cury
2035−319:8 glyph |$
2040+319:9 glyph |=
2036−319:11 glyph [
2041+319:12 name args
2037−319:12 tight tvar M
2042+319:16 tight glyph =
2038−319:13 tight glyph ]
2043+319:17 tight glyph [
2044+319:18 tight glyph $-(
2045+319:21 tight glyph [
2046+319:22 tight tvar A
2047+319:24 tvar B
2048+319:25 tight glyph ]
2049+319:27 tvar C
2050+319:28 tight glyph )
2051+319:30 tvar A
2052+319:31 tight glyph ]
2039320:3 INDENT
2053320:3 INDENT
2040−320:3 glyph [
2054+320:3 glyph ?-
2041−320:4 tight lit %poke
2055+320:6 name args
2042−320:10 name p
2056+321:5 INDENT
2043−320:11 tight glyph =
2057+321:5 glyph [
2044−320:12 tight name poke
2058+321:6 tight name f
2045−320:17 name reply
2059+321:8 name a
2046−320:22 tight glyph =
2060+321:9 tight glyph ]
2047−320:23 tight glyph $-(
2061+321:11 glyph |=
2048−320:26 tight glyph (
2062+321:14 name b
2049−320:27 tight name unit
2063+321:15 tight glyph =
2050−320:32 aura @t
2064+321:16 tight tvar B
2051−320:34 tight glyph )
2065+321:18 glyph (
2052−320:36 tvar M
2066+321:19 tight name f
2053−320:37 tight glyph )
2067+321:21 name a
2054−320:38 tight glyph ]
2068+321:23 name b
2055−321:3 NEWLINE
2069+321:24 tight glyph )
2056−321:3 glyph [
2070+323:1 DEDENT
2057−321:4 tight lit %go
2071+323:1 DEDENT
2058−321:8 name url
2072+323:1 NEWLINE
2059−321:11 tight glyph =
2073+323:1 glyph ++
2060−321:12 tight aura @t
2074+323:4 name curr
2061−321:14 tight glyph ]
2075+323:9 glyph |=
2062−322:3 NEWLINE
2076+323:12 name args
2063−322:3 glyph [
2077+323:16 tight glyph =
2064−322:4 tight lit %wait
2078+323:17 tight glyph [
2065−322:10 name gap
2079+323:18 tight glyph $-(
2066−322:13 tight glyph =
2080+323:21 tight glyph [
2067−322:14 tight aura @dr
2081+323:22 tight tvar A
2068−322:18 name msg
2082+323:24 tvar B
2069−322:21 tight glyph =
2083+323:25 tight glyph ]
2070−322:22 tight tvar M
2084+323:27 tvar C
2071−322:23 tight glyph ]
2085+323:28 tight glyph )
2072−323:3 NEWLINE
2086+323:30 tvar B
2073−323:3 glyph [
2087+323:31 tight glyph ]
2074−323:4 tight lit %now
2088+324:3 INDENT
2075−323:9 name reply
2089+324:3 glyph ?-
2076−323:14 tight glyph =
2090+324:6 name args
2077−323:15 tight glyph $-(
2091+325:5 INDENT
2078−323:18 tight aura @da
2092+325:5 glyph [
2079−323:22 tvar M
2093+325:6 tight name f
2080−323:23 tight glyph )
2094+325:8 name b
2081−323:24 tight glyph ]
2095+325:9 tight glyph ]
2082−324:3 NEWLINE
2096+325:11 glyph |=
2083−324:3 glyph [
2097+325:14 name a
2084−324:4 tight lit %who
2098+325:15 tight glyph =
2085−324:9 name reply
2099+325:16 tight tvar A
2086−324:14 tight glyph =
2100+325:18 glyph (
2087−324:15 tight glyph $-(
2101+325:19 tight name f
2088−324:18 tight aura @p
2102+325:21 name a
2089−324:21 tvar M
2103+325:23 name b
2090−324:22 tight glyph )
2104+325:24 tight glyph )
2091−324:23 tight glyph ]
2105+327:1 DEDENT
2092−326:1 DEDENT
2106+327:1 DEDENT
2093−326:1 NEWLINE
2094−326:1 glyph ++
2095−326:4 name gth
2096−326:8 glyph |=
2097−326:11 name args
2098−326:15 tight glyph =
2099−326:16 tight glyph [
2100−326:17 tight tvar A
2101−326:19 tvar A
2102−326:20 tight glyph ]
2103−326:22 glyph (
2104−326:23 tight wing gth-atom.internal
2105−326:41 name args
2106−326:45 tight glyph )
2107327:1 NEWLINE
2107327:1 NEWLINE
2108−327:1 glyph ++
2108+327:1 glyph +$
2109−327:4 name add
2109+327:4 name cmd
2110−327:8 glyph |=
2110+327:8 glyph |$
2111−327:11 name args
2111+327:11 glyph [
2112−327:15 tight glyph =
2112+327:12 tight tvar M
2113−327:16 tight glyph [
2113+327:13 tight glyph ]
2114−327:17 tight tvar A
2114+328:3 INDENT
2115−327:19 tvar A
2115+328:3 glyph [
2116−327:20 tight glyph ]
2116+328:4 tight lit %poke
2117−327:22 glyph (
2117+328:10 name p
2118−327:23 tight wing add-atom.internal
2118+328:11 tight glyph =
2119−327:41 name args
2119+328:12 tight name poke
2120−327:45 tight glyph )
2120+328:17 name reply
2121−328:1 NEWLINE
2121+328:22 tight glyph =
2122−328:1 glyph ++
2122+328:23 tight glyph $-(
2123−328:4 name dec
2123+328:26 tight glyph (
2124−328:8 glyph |=
2124+328:27 tight name unit
2125−328:11 name atom
2125+328:32 aura @t
2126−328:15 tight glyph =
2126+328:34 tight glyph )
2127−328:16 tight tvar A
2127+328:36 tvar M
2128−328:18 glyph (
2128+328:37 tight glyph )
2129−328:19 tight wing dec-atom.internal
2129+328:38 tight glyph ]
2130−328:37 name atom
2130+329:3 NEWLINE
2131−328:41 tight glyph )
2131+329:3 glyph [
2132−328:42 NEWLINE
2132+329:4 tight lit %go
2133+329:8 name url
2134+329:11 tight glyph =
2135+329:12 tight aura @t
2136+329:14 tight glyph ]
2137+330:3 NEWLINE
2138+330:3 glyph [
2139+330:4 tight lit %wait
2140+330:10 name gap
2141+330:13 tight glyph =
2142+330:14 tight aura @dr
2143+330:18 name msg
2144+330:21 tight glyph =
2145+330:22 tight tvar M
2146+330:23 tight glyph ]
2147+331:3 NEWLINE
2148+331:3 glyph [
2149+331:4 tight lit %now
2150+331:9 name reply
2151+331:14 tight glyph =
2152+331:15 tight glyph $-(
2153+331:18 tight aura @da
2154+331:22 tvar M
2155+331:23 tight glyph )
2156+331:24 tight glyph ]
2157+332:3 NEWLINE
2158+332:3 glyph [
2159+332:4 tight lit %who
2160+332:9 name reply
2161+332:14 tight glyph =
2162+332:15 tight glyph $-(
2163+332:18 tight aura @p
2164+332:21 tvar M
2165+332:22 tight glyph )
2166+332:23 tight glyph ]
2167+334:1 DEDENT
2168+334:1 NEWLINE
2169+334:1 glyph ++
2170+334:4 name gth
2171+334:8 glyph |=
2172+334:11 name args
2173+334:15 tight glyph =
2174+334:16 tight glyph [
2175+334:17 tight tvar A
2176+334:19 tvar A
2177+334:20 tight glyph ]
2178+334:22 glyph (
2179+334:23 tight wing gth-atom.internal
2180+334:41 name args
2181+334:45 tight glyph )
2182+335:1 NEWLINE
2183+335:1 glyph ++
2184+335:4 name add
2185+335:8 glyph |=
2186+335:11 name args
2187+335:15 tight glyph =
2188+335:16 tight glyph [
2189+335:17 tight tvar A
2190+335:19 tvar A
2191+335:20 tight glyph ]
2192+335:22 glyph (
2193+335:23 tight wing add-atom.internal
2194+335:41 name args
2195+335:45 tight glyph )
2196+336:1 NEWLINE
2197+336:1 glyph ++
2198+336:4 name dec
2199+336:8 glyph |=
2200+336:11 name atom
2201+336:15 tight glyph =
2202+336:16 tight tvar A
2203+336:18 glyph (
2204+336:19 tight wing dec-atom.internal
2205+336:37 name atom
2206+336:41 tight glyph )
2207+336:42 NEWLINE
tests/golden/prelude-unit-list-transforms/tree.txt+704−672
@@ -238,694 +238,726 @@
238 (cell 102:32
238 (cell 102:32
239 (face 102:33 p (tvar 102:35 A))
239 (face 102:33 p (tvar 102:35 A))
240 (face 102:37 q (ref 102:39 nail))))))))
240 (face 102:37 q (ref 102:39 nail))))))))
241− (value 104:1 wonk
241+ (value 104:1 like
242 (gate 104:9
242 (gate 104:9
243− (face 104:12 veq
243+ (cell 104:12
244− (apply 104:16 like (tvar 104:22 A)))
244+ (face 104:13 f
245+ (fn 104:15 (tvar 104:18 A) (tvar 104:20 B)))
246+ (face 104:23 result
247+ (apply 104:30 like (tvar 104:36 A))))
245 (body 105:3
248 (body 105:3
246− (branch 105:3
249+ (value 105:3 mapped
247− (wing 105:6 q.veq)
250+ (body 106:5
248− (arm 106:5 (lit 106:5 ~) (crash 106:7))
251+ (cast 106:5
249− (arm 107:5
252+ (apply 106:8 unit
250− (cell 107:5 (lit 107:6 ~) (bind 107:8 product))
253+ (cell 106:14
251− (wing 107:17 p.product))))))
254+ (face 106:15 p (tvar 106:17 B))
252− (mold 109:1 lone
255+ (face 106:19 q (ref 106:21 nail))))
253− (generic 109:9 A
256+ (body 107:7
254− (cell 109:16
257+ (branch 107:7
255− (face 109:17 p (tvar 109:19 A)))))
258+ (wing 107:10 q.result)
256− (mold 111:1 lest
259+ (arm 108:9 (lit 108:9 ~) (lit 108:11 ~))
257− (generic 111:9 A
260+ (arm 109:9
258− (cell 111:16
261+ (cell 109:9 (lit 109:10 ~) (bind 109:12 value))
259− (face 111:17 i (tvar 111:19 A))
262+ (unit 109:19
260− (face 111:21 t
263+ (tuple 109:20
261− (apply 111:23 list (tvar 111:29 A))))))
264+ (face 109:21 p
262− (mold 113:1 pole
265+ (group 109:23
263− (generic 113:9 A
266+ (call 109:24 (wing 109:24 f) (wing 109:26 p.value))))
264− (union 114:3
267+ (face 109:35 q (wing 109:37 q.value))))))))))
265− (const 114:3 ~)
268+ (cast 110:3
266− (cell 115:3
269+ (apply 110:6 like (tvar 110:12 B))
267− (tvar 115:4 A)
270+ (tuple 110:15
268− (apply 115:6 pole (tvar 115:12 A))))))
271+ (face 110:16 p (wing 110:18 p.result))
269− (mold 117:1 quip
272+ (face 110:27 q (wing 110:29 mapped)))))))
270− (generic 117:9 A B
273+ (value 112:1 wonk
271− (cell 117:18
274+ (gate 112:9
272− (apply 117:19 list (tvar 117:25 A))
275+ (face 112:12 veq
273− (tvar 117:28 B))))
276+ (apply 112:16 like (tvar 112:22 A)))
274− (mold 119:1 tree
277+ (body 113:3
278+ (branch 113:3
279+ (wing 113:6 q.veq)
280+ (arm 114:5 (lit 114:5 ~) (crash 114:7))
281+ (arm 115:5
282+ (cell 115:5 (lit 115:6 ~) (bind 115:8 product))
283+ (wing 115:17 p.product))))))
284+ (mold 117:1 lone
285+ (generic 117:9 A
286+ (cell 117:16
287+ (face 117:17 p (tvar 117:19 A)))))
288+ (mold 119:1 lest
275 (generic 119:9 A
289 (generic 119:9 A
276− (union 120:3
290+ (cell 119:16
277− (const 120:3 ~)
291+ (face 119:17 i (tvar 119:19 A))
278− (cell 121:3
292+ (face 119:21 t
279− (face 121:4 n (tvar 121:6 A))
293+ (apply 119:23 list (tvar 119:29 A))))))
280− (face 121:8 l
294+ (mold 121:1 pole
281− (apply 121:10 tree (tvar 121:16 A)))
295+ (generic 121:9 A
282− (face 121:19 r
296+ (union 122:3
283− (apply 121:21 tree (tvar 121:27 A)))))))
297+ (const 122:3 ~)
284− (mold 123:1 each
298+ (cell 123:3
285− (generic 123:9 A B
299+ (tvar 123:4 A)
286− (union 124:3
300+ (apply 123:6 pole (tvar 123:12 A))))))
287− (cell 124:3
301+ (mold 125:1 quip
288− (const 124:4 %|)
302+ (generic 125:9 A B
289− (face 124:7 p (tvar 124:9 B)))
303+ (cell 125:18
290− (cell 125:3
304+ (apply 125:19 list (tvar 125:25 A))
291− (const 125:4 %&)
305+ (tvar 125:28 B))))
292− (face 125:7 p (tvar 125:9 A))))))
306+ (mold 127:1 tree
293− (mold 127:1 bloq (aura 127:9 @))
307+ (generic 127:9 A
294− (value 129:1 some
308+ (union 128:3
295− (gate 129:9
309+ (const 128:3 ~)
296− (face 129:12 item (tvar 129:17 A))
310+ (cell 129:3
297− (unit 129:19 (wing 129:20 item))))
311+ (face 129:4 n (tvar 129:6 A))
298− (value 131:1 lure
312+ (face 129:8 l
299− (gate 131:9
313+ (apply 129:10 tree (tvar 129:16 A)))
300− (face 131:12 item (tvar 131:17 A))
314+ (face 129:19 r
301− (body 132:3
315+ (apply 129:21 tree (tvar 129:27 A)))))))
302− (cast 132:3
316+ (mold 131:1 each
303− (apply 132:6 list (tvar 132:12 A))
317+ (generic 131:9 A B
304− (tuple 132:15 (wing 132:16 item) (lit 132:21 ~))))))
318+ (union 132:3
305− (value 134:1 snoc
319+ (cell 132:3
306− (gate 134:9
320+ (const 132:4 %|)
307− (face 134:12 args
321+ (face 132:7 p (tvar 132:9 B)))
308− (cell 134:17
322+ (cell 133:3
309− (apply 134:18 list (tvar 134:24 A))
323+ (const 133:4 %&)
310− (tvar 134:27 A)))
324+ (face 133:7 p (tvar 133:9 A))))))
311− (body 135:3
325+ (mold 135:1 bloq (aura 135:9 @))
312− (branch 135:3
326+ (value 137:1 some
313− (wing 135:6 args)
327+ (gate 137:9
314− (arm 136:5
328+ (face 137:12 item (tvar 137:17 A))
315− (cell 136:5 (bind 136:6 xs) (bind 136:9 item))
329+ (unit 137:19 (wing 137:20 item))))
316− (group 136:15
330+ (value 139:1 lure
317− (call 136:16
331+ (gate 139:9
318− (wing 136:16 weld)
332+ (face 139:12 item (tvar 139:17 A))
319− (wing 136:21 xs)
333+ (body 140:3
320− (tuple 136:24 (wing 136:25 item) (lit 136:30 ~)))))))))
334+ (cast 140:3
321− (value 138:1 flop
335+ (apply 140:6 list (tvar 140:12 A))
322− (gate 138:9
336+ (tuple 140:15 (wing 140:16 item) (lit 140:21 ~))))))
323− (face 138:12 xs
337+ (value 142:1 snoc
324− (apply 138:15 list (tvar 138:21 A)))
338+ (gate 142:9
325− (body 139:3
339+ (face 142:12 args
326− (value 139:3 reverse-into
340+ (cell 142:17
327− (gate 139:19
341+ (apply 142:18 list (tvar 142:24 A))
328− (face 139:22 args
342+ (tvar 142:27 A)))
329− (cell 139:27
343+ (body 143:3
330− (apply 139:28 list (tvar 139:34 A))
344+ (branch 143:3
331− (apply 139:37 list (tvar 139:43 A))))
345+ (wing 143:6 args)
332− (body 140:5
346+ (arm 144:5
333− (branch 140:5
347+ (cell 144:5 (bind 144:6 xs) (bind 144:9 item))
334− (wing 140:8 args)
348+ (group 144:15
335− (arm 141:7
349+ (call 144:16
336− (cell 141:7 (bind 141:8 rest) (bind 141:13 acc))
350+ (wing 144:16 weld)
337− (body 142:9
351+ (wing 144:21 xs)
338− (branch 142:9
352+ (tuple 144:24 (wing 144:25 item) (lit 144:30 ~)))))))))
339− (wing 142:12 rest)
353+ (value 146:1 flop
340− (arm 143:11 (lit 143:11 ~) (wing 143:13 acc))
354+ (gate 146:9
341− (arm 144:11
355+ (face 146:12 xs
342− (cell 144:11 (bind 144:12 item) (bind 144:17 more))
356+ (apply 146:15 list (tvar 146:21 A)))
343− (group 144:23
357+ (body 147:3
344− (call 144:24
358+ (value 147:3 reverse-into
345− (wing 144:24 reverse-into)
359+ (gate 147:19
346− (wing 144:37 more)
360+ (face 147:22 args
347− (tuple 144:42 (wing 144:43 item) (wing 144:48 acc))))))))))))
361+ (cell 147:27
348− (group 145:3
362+ (apply 147:28 list (tvar 147:34 A))
349− (call 145:4 (wing 145:4 reverse-into) (wing 145:17 xs) (lit 145:20 ~))))))
363+ (apply 147:37 list (tvar 147:43 A))))
350− (value 147:1 drop
364+ (body 148:5
351− (gate 147:9
365+ (branch 148:5
352− (face 147:12 maybe
366+ (wing 148:8 args)
353− (apply 147:18 unit (tvar 147:24 A)))
367+ (arm 149:7
354− (body 148:3
368+ (cell 149:7 (bind 149:8 rest) (bind 149:13 acc))
355− (cast 148:3
369+ (body 150:9
356− (apply 148:6 list (tvar 148:12 A))
370+ (branch 150:9
357− (body 149:5
371+ (wing 150:12 rest)
358− (branch 149:5
372+ (arm 151:11 (lit 151:11 ~) (wing 151:13 acc))
359− (wing 149:8 maybe)
373+ (arm 152:11
360− (arm 150:7 (lit 150:7 ~) (lit 150:9 ~))
374+ (cell 152:11 (bind 152:12 item) (bind 152:17 more))
361− (arm 151:7
375+ (group 152:23
362− (cell 151:7 (lit 151:8 ~) (bind 151:10 value))
376+ (call 152:24
363− (tuple 151:17 (wing 151:18 value) (lit 151:24 ~)))))))))
377+ (wing 152:24 reverse-into)
364− (value 153:1 bond
378+ (wing 152:37 more)
365− (gate 153:9
379+ (tuple 152:42 (wing 152:43 item) (wing 152:48 acc))))))))))))
366− (face 153:12 fallback
380+ (group 153:3
367− (fn 153:21 (const 153:24 ~) (tvar 153:26 A)))
381+ (call 153:4 (wing 153:4 reverse-into) (wing 153:17 xs) (lit 153:20 ~))))))
368− (body 154:3
382+ (value 155:1 drop
369− (gate 154:3
383+ (gate 155:9
370− (face 154:6 maybe
384+ (face 155:12 maybe
371− (apply 154:12 unit (tvar 154:18 A)))
385+ (apply 155:18 unit (tvar 155:24 A)))
372− (body 155:5
386+ (body 156:3
373− (branch 155:5
387+ (cast 156:3
374− (wing 155:8 maybe)
388+ (apply 156:6 list (tvar 156:12 A))
375− (arm 156:7
389+ (body 157:5
376− (lit 156:7 ~)
390+ (branch 157:5
377− (group 156:9
391+ (wing 157:8 maybe)
378− (call 156:10 (wing 156:10 fallback) (lit 156:19 ~))))
392+ (arm 158:7 (lit 158:7 ~) (lit 158:9 ~))
379− (arm 157:7
393+ (arm 159:7
380− (cell 157:7 (lit 157:8 ~) (bind 157:10 value))
394+ (cell 159:7 (lit 159:8 ~) (bind 159:10 value))
381− (wing 157:17 value))))))))
395+ (tuple 159:17 (wing 159:18 value) (lit 159:24 ~)))))))))
382− (value 159:1 bind
396+ (value 161:1 bond
383− (gate 159:9
397+ (gate 161:9
384− (face 159:12 args
398+ (face 161:12 fallback
385− (cell 159:17
399+ (fn 161:21 (const 161:24 ~) (tvar 161:26 A)))
386− (apply 159:18 unit (tvar 159:24 A))
400+ (body 162:3
387− (fn 159:27 (tvar 159:30 A) (tvar 159:32 B))))
401+ (gate 162:3
388− (body 160:3
402+ (face 162:6 maybe
389− (branch 160:3
403+ (apply 162:12 unit (tvar 162:18 A)))
390− (wing 160:6 args)
404+ (body 163:5
391− (arm 161:5
405+ (branch 163:5
392− (cell 161:5 (bind 161:6 maybe) (bind 161:12 f))
406+ (wing 163:8 maybe)
393− (cast 161:15
407+ (arm 164:7
394− (apply 161:18 unit (tvar 161:24 B))
408+ (lit 164:7 ~)
395− (body 162:7
409+ (group 164:9
396− (branch 162:7
410+ (call 164:10 (wing 164:10 fallback) (lit 164:19 ~))))
397− (wing 162:10 maybe)
411+ (arm 165:7
398− (arm 163:9 (lit 163:9 ~) (lit 163:11 ~))
412+ (cell 165:7 (lit 165:8 ~) (bind 165:10 value))
399− (arm 164:9
413+ (wing 165:17 value))))))))
400− (cell 164:9 (lit 164:10 ~) (bind 164:12 value))
414+ (value 167:1 bind
401− (unit 164:19
415+ (gate 167:9
402− (group 164:20
416+ (face 167:12 args
403− (call 164:21 (wing 164:21 f) (wing 164:23 value)))))))))))))
417+ (cell 167:17
404− (value 166:1 biff
418+ (apply 167:18 unit (tvar 167:24 A))
405− (gate 166:9
419+ (fn 167:27 (tvar 167:30 A) (tvar 167:32 B))))
406− (face 166:12 args
420+ (body 168:3
407− (cell 166:17
421+ (branch 168:3
408− (apply 166:18 unit (tvar 166:24 A))
422+ (wing 168:6 args)
409− (fn 166:27
423+ (arm 169:5
410− (tvar 166:30 A)
424+ (cell 169:5 (bind 169:6 maybe) (bind 169:12 f))
411− (apply 166:32 unit (tvar 166:38 B)))))
425+ (cast 169:15
412− (body 167:3
426+ (apply 169:18 unit (tvar 169:24 B))
413− (branch 167:3
427+ (body 170:7
414− (wing 167:6 args)
428+ (branch 170:7
415− (arm 168:5
429+ (wing 170:10 maybe)
416− (cell 168:5 (bind 168:6 maybe) (bind 168:12 f))
430+ (arm 171:9 (lit 171:9 ~) (lit 171:11 ~))
417− (cast 168:15
431+ (arm 172:9
418− (apply 168:18 unit (tvar 168:24 B))
432+ (cell 172:9 (lit 172:10 ~) (bind 172:12 value))
419− (body 169:7
433+ (unit 172:19
420− (branch 169:7
434+ (group 172:20
421− (wing 169:10 maybe)
435+ (call 172:21 (wing 172:21 f) (wing 172:23 value)))))))))))))
422− (arm 170:9 (lit 170:9 ~) (lit 170:11 ~))
436+ (value 174:1 biff
423− (arm 171:9
437+ (gate 174:9
424− (cell 171:9 (lit 171:10 ~) (bind 171:12 value))
438+ (face 174:12 args
425− (group 171:19
439+ (cell 174:17
426− (call 171:20 (wing 171:20 f) (wing 171:22 value))))))))))))
440+ (apply 174:18 unit (tvar 174:24 A))
427− (value 173:1 both
441+ (fn 174:27
428− (gate 173:9
442+ (tvar 174:30 A)
429− (face 173:12 args
443+ (apply 174:32 unit (tvar 174:38 B)))))
430− (cell 173:17
444+ (body 175:3
431− (apply 173:18 unit (tvar 173:24 A))
445+ (branch 175:3
432− (apply 173:27 unit (tvar 173:33 B))))
446+ (wing 175:6 args)
433− (body 174:3
447+ (arm 176:5
434− (branch 174:3
448+ (cell 176:5 (bind 176:6 maybe) (bind 176:12 f))
435− (wing 174:6 args)
449+ (cast 176:15
436− (arm 175:5
450+ (apply 176:18 unit (tvar 176:24 B))
437− (cell 175:5 (bind 175:6 first) (bind 175:12 second))
451+ (body 177:7
438− (cast 175:20
452+ (branch 177:7
439− (apply 175:23 unit
453+ (wing 177:10 maybe)
440− (cell 175:29 (tvar 175:30 A) (tvar 175:32 B)))
454+ (arm 178:9 (lit 178:9 ~) (lit 178:11 ~))
441− (body 176:7
455+ (arm 179:9
442− (branch 176:7
456+ (cell 179:9 (lit 179:10 ~) (bind 179:12 value))
443− (wing 176:10 first)
457+ (group 179:19
444− (arm 177:9 (lit 177:9 ~) (lit 177:11 ~))
458+ (call 179:20 (wing 179:20 f) (wing 179:22 value))))))))))))
445− (arm 178:9
459+ (value 181:1 both
446− (cell 178:9 (lit 178:10 ~) (bind 178:12 a))
460+ (gate 181:9
447− (body 179:11
461+ (face 181:12 args
448− (branch 179:11
462+ (cell 181:17
449− (wing 179:14 second)
463+ (apply 181:18 unit (tvar 181:24 A))
450− (arm 180:13 (lit 180:13 ~) (lit 180:15 ~))
464+ (apply 181:27 unit (tvar 181:33 B))))
451− (arm 181:13
465+ (body 182:3
452− (cell 181:13 (lit 181:14 ~) (bind 181:16 b))
466+ (branch 182:3
453− (unit 181:19
467+ (wing 182:6 args)
454− (tuple 181:20 (wing 181:21 a) (wing 181:23 b)))))))))))))))
468+ (arm 183:5
455− (value 183:1 clap
469+ (cell 183:5 (bind 183:6 first) (bind 183:12 second))
456− (gate 183:9
470+ (cast 183:20
457− (face 183:12 args
471+ (apply 183:23 unit
458− (cell 183:17
472+ (cell 183:29 (tvar 183:30 A) (tvar 183:32 B)))
459− (apply 183:18 unit (tvar 183:24 A))
473+ (body 184:7
460− (apply 183:27 unit (tvar 183:33 A))
474+ (branch 184:7
461− (fn 183:36
475+ (wing 184:10 first)
462− (cell 183:39 (tvar 183:40 A) (tvar 183:42 A))
476+ (arm 185:9 (lit 185:9 ~) (lit 185:11 ~))
463− (tvar 183:45 A))))
477+ (arm 186:9
464− (body 184:3
478+ (cell 186:9 (lit 186:10 ~) (bind 186:12 a))
465− (branch 184:3
479+ (body 187:11
466− (wing 184:6 args)
480+ (branch 187:11
467− (arm 185:5
481+ (wing 187:14 second)
468− (cell 185:5 (bind 185:6 first) (bind 185:12 second) (bind 185:19 combine))
482+ (arm 188:13 (lit 188:13 ~) (lit 188:15 ~))
469− (cast 185:28
483+ (arm 189:13
470− (apply 185:31 unit (tvar 185:37 A))
484+ (cell 189:13 (lit 189:14 ~) (bind 189:16 b))
471− (body 186:7
485+ (unit 189:19
472− (branch 186:7
486+ (tuple 189:20 (wing 189:21 a) (wing 189:23 b)))))))))))))))
473− (wing 186:10 first)
487+ (value 191:1 clap
474− (arm 187:9 (lit 187:9 ~) (wing 187:11 second))
488+ (gate 191:9
475− (arm 188:9
489+ (face 191:12 args
476− (cell 188:9 (lit 188:10 ~) (bind 188:12 a))
490+ (cell 191:17
477− (body 189:11
491+ (apply 191:18 unit (tvar 191:24 A))
478− (branch 189:11
492+ (apply 191:27 unit (tvar 191:33 A))
479− (wing 189:14 second)
493+ (fn 191:36
480− (arm 190:13 (lit 190:13 ~) (wing 190:15 first))
494+ (cell 191:39 (tvar 191:40 A) (tvar 191:42 A))
481− (arm 191:13
495+ (tvar 191:45 A))))
482− (cell 191:13 (lit 191:14 ~) (bind 191:16 b))
496+ (body 192:3
483− (unit 191:19
497+ (branch 192:3
484− (group 191:20
498+ (wing 192:6 args)
485− (call 191:21 (wing 191:21 combine) (wing 191:29 a) (wing 191:31 b))))))))))))))))
499+ (arm 193:5
486− (value 193:1 clef
500+ (cell 193:5 (bind 193:6 first) (bind 193:12 second) (bind 193:19 combine))
487− (gate 193:9
501+ (cast 193:28
488− (face 193:12 args
502+ (apply 193:31 unit (tvar 193:37 A))
489− (cell 193:17
503+ (body 194:7
490− (apply 193:18 unit (tvar 193:24 A))
504+ (branch 194:7
491− (apply 193:27 unit (tvar 193:33 B))
505+ (wing 194:10 first)
492− (fn 193:36
506+ (arm 195:9 (lit 195:9 ~) (wing 195:11 second))
493− (cell 193:39 (tvar 193:40 A) (tvar 193:42 B))
507+ (arm 196:9
494− (apply 193:45 unit (tvar 193:51 C)))))
508+ (cell 196:9 (lit 196:10 ~) (bind 196:12 a))
495− (body 194:3
509+ (body 197:11
496− (branch 194:3
510+ (branch 197:11
497− (wing 194:6 args)
511+ (wing 197:14 second)
498− (arm 195:5
512+ (arm 198:13 (lit 198:13 ~) (wing 198:15 first))
499− (cell 195:5 (bind 195:6 first) (bind 195:12 second) (bind 195:19 combine))
513+ (arm 199:13
500− (cast 195:28
514+ (cell 199:13 (lit 199:14 ~) (bind 199:16 b))
501− (apply 195:31 unit (tvar 195:37 C))
515+ (unit 199:19
502− (body 196:7
516+ (group 199:20
503− (branch 196:7
517+ (call 199:21 (wing 199:21 combine) (wing 199:29 a) (wing 199:31 b))))))))))))))))
504− (wing 196:10 first)
518+ (value 201:1 clef
505− (arm 197:9 (lit 197:9 ~) (lit 197:11 ~))
519+ (gate 201:9
506− (arm 198:9
520+ (face 201:12 args
507− (cell 198:9 (lit 198:10 ~) (bind 198:12 a))
521+ (cell 201:17
508− (body 199:11
522+ (apply 201:18 unit (tvar 201:24 A))
509− (branch 199:11
523+ (apply 201:27 unit (tvar 201:33 B))
510− (wing 199:14 second)
524+ (fn 201:36
511− (arm 200:13 (lit 200:13 ~) (lit 200:15 ~))
525+ (cell 201:39 (tvar 201:40 A) (tvar 201:42 B))
512− (arm 201:13
526+ (apply 201:45 unit (tvar 201:51 C)))))
513− (cell 201:13 (lit 201:14 ~) (bind 201:16 b))
527+ (body 202:3
514− (group 201:19
528+ (branch 202:3
515− (call 201:20 (wing 201:20 combine) (wing 201:28 a) (wing 201:30 b)))))))))))))))
529+ (wing 202:6 args)
516− (value 203:1 skim
530+ (arm 203:5
517− (gate 203:9
531+ (cell 203:5 (bind 203:6 first) (bind 203:12 second) (bind 203:19 combine))
518− (face 203:12 args
532+ (cast 203:28
519− (cell 203:17
533+ (apply 203:31 unit (tvar 203:37 C))
520− (apply 203:18 list (tvar 203:24 A))
534+ (body 204:7
521− (fn 203:27 (tvar 203:30 A) (flag 203:32))))
535+ (branch 204:7
522− (body 204:3
536+ (wing 204:10 first)
523− (branch 204:3
537+ (arm 205:9 (lit 205:9 ~) (lit 205:11 ~))
524− (wing 204:6 args)
538+ (arm 206:9
525− (arm 205:5
539+ (cell 206:9 (lit 206:10 ~) (bind 206:12 a))
526− (cell 205:5 (bind 205:6 xs) (bind 205:9 predicate))
540+ (body 207:11
527− (cast 205:20
541+ (branch 207:11
528− (apply 205:23 list (tvar 205:29 A))
542+ (wing 207:14 second)
529− (body 206:9
543+ (arm 208:13 (lit 208:13 ~) (lit 208:15 ~))
530− (branch 206:9
544+ (arm 209:13
531− (wing 206:12 xs)
545+ (cell 209:13 (lit 209:14 ~) (bind 209:16 b))
532− (arm 207:11 (lit 207:11 ~) (lit 207:13 ~))
546+ (group 209:19
533− (arm 208:11
547+ (call 209:20 (wing 209:20 combine) (wing 209:28 a) (wing 209:30 b)))))))))))))))
534− (cell 208:11 (bind 208:12 item) (bind 208:17 rest))
548+ (value 211:1 skim
535− (body 209:13
549+ (gate 211:9
536− (branch 209:13
550+ (face 211:12 args
537− (group 209:16
551+ (cell 211:17
538− (call 209:17 (wing 209:17 predicate) (wing 209:27 item)))
552+ (apply 211:18 list (tvar 211:24 A))
539− (arm 210:15
553+ (fn 211:27 (tvar 211:30 A) (flag 211:32))))
540− (lit 210:15 %.y)
554+ (body 212:3
541− (tuple 210:19
555+ (branch 212:3
542− (wing 210:20 item)
556+ (wing 212:6 args)
543− (group 210:25
557+ (arm 213:5
544− (call 210:26 (wing 210:26 skim) (wing 210:31 rest) (wing 210:36 predicate)))))
558+ (cell 213:5 (bind 213:6 xs) (bind 213:9 predicate))
545− (arm 211:15
559+ (cast 213:20
546− (lit 211:15 %.n)
560+ (apply 213:23 list (tvar 213:29 A))
547− (group 211:19
561+ (body 214:9
548− (call 211:20 (wing 211:20 skim) (wing 211:25 rest) (wing 211:30 predicate)))))))))))))))
562+ (branch 214:9
549− (value 213:1 skip
563+ (wing 214:12 xs)
550− (gate 213:9
564+ (arm 215:11 (lit 215:11 ~) (lit 215:13 ~))
551− (face 213:12 args
565+ (arm 216:11
552− (cell 213:17
566+ (cell 216:11 (bind 216:12 item) (bind 216:17 rest))
553− (apply 213:18 list (tvar 213:24 A))
567+ (body 217:13
554− (fn 213:27 (tvar 213:30 A) (flag 213:32))))
568+ (branch 217:13
555− (body 214:3
569+ (group 217:16
556− (branch 214:3
570+ (call 217:17 (wing 217:17 predicate) (wing 217:27 item)))
557− (wing 214:6 args)
571+ (arm 218:15
558− (arm 215:5
572+ (lit 218:15 %.y)
559− (cell 215:5 (bind 215:6 xs) (bind 215:9 predicate))
573+ (tuple 218:19
560− (cast 215:20
574+ (wing 218:20 item)
561− (apply 215:23 list (tvar 215:29 A))
575+ (group 218:25
562− (body 216:9
576+ (call 218:26 (wing 218:26 skim) (wing 218:31 rest) (wing 218:36 predicate)))))
563− (branch 216:9
577+ (arm 219:15
564− (wing 216:12 xs)
578+ (lit 219:15 %.n)
565− (arm 217:11 (lit 217:11 ~) (lit 217:13 ~))
579+ (group 219:19
566− (arm 218:11
580+ (call 219:20 (wing 219:20 skim) (wing 219:25 rest) (wing 219:30 predicate)))))))))))))))
567− (cell 218:11 (bind 218:12 item) (bind 218:17 rest))
581+ (value 221:1 skip
568− (body 219:13
582+ (gate 221:9
569− (branch 219:13
583+ (face 221:12 args
570− (group 219:16
584+ (cell 221:17
571− (call 219:17 (wing 219:17 predicate) (wing 219:27 item)))
585+ (apply 221:18 list (tvar 221:24 A))
572− (arm 220:15
586+ (fn 221:27 (tvar 221:30 A) (flag 221:32))))
573− (lit 220:15 %.y)
587+ (body 222:3
574− (group 220:19
588+ (branch 222:3
575− (call 220:20 (wing 220:20 skip) (wing 220:25 rest) (wing 220:30 predicate))))
589+ (wing 222:6 args)
576− (arm 221:15
590+ (arm 223:5
577− (lit 221:15 %.n)
591+ (cell 223:5 (bind 223:6 xs) (bind 223:9 predicate))
578− (tuple 221:19
592+ (cast 223:20
579− (wing 221:20 item)
593+ (apply 223:23 list (tvar 223:29 A))
580− (group 221:25
594+ (body 224:9
581− (call 221:26 (wing 221:26 skip) (wing 221:31 rest) (wing 221:36 predicate))))))))))))))))
595+ (branch 224:9
582− (value 223:1 levy
596+ (wing 224:12 xs)
583− (gate 223:9
597+ (arm 225:11 (lit 225:11 ~) (lit 225:13 ~))
584− (face 223:12 args
598+ (arm 226:11
585− (cell 223:17
599+ (cell 226:11 (bind 226:12 item) (bind 226:17 rest))
586− (apply 223:18 list (tvar 223:24 A))
600+ (body 227:13
587− (fn 223:27 (tvar 223:30 A) (flag 223:32))))
601+ (branch 227:13
588− (body 224:3
602+ (group 227:16
589− (cast 224:3
603+ (call 227:17 (wing 227:17 predicate) (wing 227:27 item)))
590− (flag 224:6)
604+ (arm 228:15
591− (body 225:5
605+ (lit 228:15 %.y)
592− (branch 225:5
606+ (group 228:19
593− (wing 225:8 args)
607+ (call 228:20 (wing 228:20 skip) (wing 228:25 rest) (wing 228:30 predicate))))
594− (arm 226:7
608+ (arm 229:15
595− (cell 226:7 (bind 226:8 xs) (bind 226:11 predicate))
609+ (lit 229:15 %.n)
596− (body 227:9
610+ (tuple 229:19
597− (branch 227:9
611+ (wing 229:20 item)
598− (wing 227:12 xs)
612+ (group 229:25
599− (arm 228:11 (lit 228:11 ~) (lit 228:13 %.y))
613+ (call 229:26 (wing 229:26 skip) (wing 229:31 rest) (wing 229:36 predicate))))))))))))))))
600− (arm 229:11
614+ (value 231:1 levy
601− (cell 229:11 (bind 229:12 item) (bind 229:17 rest))
615+ (gate 231:9
602− (body 230:13
616+ (face 231:12 args
603− (branch 230:13
617+ (cell 231:17
604− (group 230:16
618+ (apply 231:18 list (tvar 231:24 A))
605− (call 230:17 (wing 230:17 predicate) (wing 230:27 item)))
619+ (fn 231:27 (tvar 231:30 A) (flag 231:32))))
606− (arm 231:15
620+ (body 232:3
607− (lit 231:15 %.y)
621+ (cast 232:3
608− (group 231:19
622+ (flag 232:6)
609− (call 231:20 (wing 231:20 levy) (wing 231:25 rest) (wing 231:30 predicate))))
623+ (body 233:5
610− (arm 232:15 (lit 232:15 %.n) (lit 232:19 %.n))))))))))))))
624+ (branch 233:5
611− (value 234:1 lien
625+ (wing 233:8 args)
612− (gate 234:9
626+ (arm 234:7
613− (face 234:12 args
627+ (cell 234:7 (bind 234:8 xs) (bind 234:11 predicate))
614− (cell 234:17
628+ (body 235:9
615− (apply 234:18 list (tvar 234:24 A))
629+ (branch 235:9
616− (fn 234:27 (tvar 234:30 A) (flag 234:32))))
630+ (wing 235:12 xs)
617− (body 235:3
631+ (arm 236:11 (lit 236:11 ~) (lit 236:13 %.y))
618− (cast 235:3
632+ (arm 237:11
619− (flag 235:6)
633+ (cell 237:11 (bind 237:12 item) (bind 237:17 rest))
620− (body 236:5
634+ (body 238:13
621− (branch 236:5
635+ (branch 238:13
622− (wing 236:8 args)
636+ (group 238:16
623− (arm 237:7
637+ (call 238:17 (wing 238:17 predicate) (wing 238:27 item)))
624− (cell 237:7 (bind 237:8 xs) (bind 237:11 predicate))
638+ (arm 239:15
625− (body 238:9
639+ (lit 239:15 %.y)
626− (branch 238:9
640+ (group 239:19
627− (wing 238:12 xs)
641+ (call 239:20 (wing 239:20 levy) (wing 239:25 rest) (wing 239:30 predicate))))
628− (arm 239:11 (lit 239:11 ~) (lit 239:13 %.n))
642+ (arm 240:15 (lit 240:15 %.n) (lit 240:19 %.n))))))))))))))
629− (arm 240:11
643+ (value 242:1 lien
630− (cell 240:11 (bind 240:12 item) (bind 240:17 rest))
644+ (gate 242:9
631− (body 241:13
645+ (face 242:12 args
632− (branch 241:13
646+ (cell 242:17
633− (group 241:16
647+ (apply 242:18 list (tvar 242:24 A))
634− (call 241:17 (wing 241:17 predicate) (wing 241:27 item)))
648+ (fn 242:27 (tvar 242:30 A) (flag 242:32))))
635− (arm 242:15 (lit 242:15 %.y) (lit 242:19 %.y))
649+ (body 243:3
636− (arm 243:15
650+ (cast 243:3
637− (lit 243:15 %.n)
651+ (flag 243:6)
638− (group 243:19
652+ (body 244:5
639− (call 243:20 (wing 243:20 lien) (wing 243:25 rest) (wing 243:30 predicate))))))))))))))))
653+ (branch 244:5
640− (value 245:1 roll
654+ (wing 244:8 args)
641− (gate 245:9
655+ (arm 245:7
642− (face 245:12 args
656+ (cell 245:7 (bind 245:8 xs) (bind 245:11 predicate))
643− (cell 245:17
657+ (body 246:9
644− (apply 245:18 list (tvar 245:24 A))
658+ (branch 246:9
645− (tvar 245:27 B)
659+ (wing 246:12 xs)
646− (fn 245:29
660+ (arm 247:11 (lit 247:11 ~) (lit 247:13 %.n))
647− (cell 245:32 (tvar 245:33 A) (tvar 245:35 B))
661+ (arm 248:11
648− (tvar 245:38 B))))
662+ (cell 248:11 (bind 248:12 item) (bind 248:17 rest))
649− (body 246:3
663+ (body 249:13
650− (branch 246:3
664+ (branch 249:13
651− (wing 246:6 args)
665+ (group 249:16
652− (arm 247:5
666+ (call 249:17 (wing 249:17 predicate) (wing 249:27 item)))
653− (cell 247:5 (bind 247:6 xs) (bind 247:9 start) (bind 247:15 combine))
667+ (arm 250:15 (lit 250:15 %.y) (lit 250:19 %.y))
654− (body 248:7
668+ (arm 251:15
655− (branch 248:7
669+ (lit 251:15 %.n)
656− (wing 248:10 xs)
670+ (group 251:19
657− (arm 249:9 (lit 249:9 ~) (wing 249:11 start))
671+ (call 251:20 (wing 251:20 lien) (wing 251:25 rest) (wing 251:30 predicate))))))))))))))))
658− (arm 250:9
672+ (value 253:1 roll
659− (cell 250:9 (bind 250:10 item) (bind 250:15 rest))
673+ (gate 253:9
660− (group 250:21
674+ (face 253:12 args
661− (call 250:22
675+ (cell 253:17
662− (wing 250:22 roll)
676+ (apply 253:18 list (tvar 253:24 A))
663− (wing 250:27 rest)
677+ (tvar 253:27 B)
664− (group 250:32
678+ (fn 253:29
665− (call 250:33 (wing 250:33 combine) (wing 250:41 item) (wing 250:46 start)))
679+ (cell 253:32 (tvar 253:33 A) (tvar 253:35 B))
666− (wing 250:53 combine)))))))))))
680+ (tvar 253:38 B))))
667− (value 252:1 reel
681+ (body 254:3
668− (gate 252:9
682+ (branch 254:3
669− (face 252:12 args
683+ (wing 254:6 args)
670− (cell 252:17
684+ (arm 255:5
671− (apply 252:18 list (tvar 252:24 A))
685+ (cell 255:5 (bind 255:6 xs) (bind 255:9 start) (bind 255:15 combine))
672− (tvar 252:27 B)
686+ (body 256:7
673− (fn 252:29
687+ (branch 256:7
674− (cell 252:32 (tvar 252:33 A) (tvar 252:35 B))
688+ (wing 256:10 xs)
675− (tvar 252:38 B))))
689+ (arm 257:9 (lit 257:9 ~) (wing 257:11 start))
676− (body 253:3
690+ (arm 258:9
677− (branch 253:3
691+ (cell 258:9 (bind 258:10 item) (bind 258:15 rest))
678− (wing 253:6 args)
692+ (group 258:21
679− (arm 254:5
693+ (call 258:22
680− (cell 254:5 (bind 254:6 xs) (bind 254:9 start) (bind 254:15 combine))
694+ (wing 258:22 roll)
681− (body 255:7
695+ (wing 258:27 rest)
682− (branch 255:7
696+ (group 258:32
683− (wing 255:10 xs)
697+ (call 258:33 (wing 258:33 combine) (wing 258:41 item) (wing 258:46 start)))
684− (arm 256:9 (lit 256:9 ~) (wing 256:11 start))
698+ (wing 258:53 combine)))))))))))
685− (arm 257:9
699+ (value 260:1 reel
686− (cell 257:9 (bind 257:10 item) (bind 257:15 rest))
700+ (gate 260:9
687− (group 257:21
701+ (face 260:12 args
688− (call 257:22
702+ (cell 260:17
689− (wing 257:22 combine)
703+ (apply 260:18 list (tvar 260:24 A))
690− (wing 257:30 item)
704+ (tvar 260:27 B)
691− (group 257:35
705+ (fn 260:29
692− (call 257:36 (wing 257:36 reel) (wing 257:41 rest) (wing 257:46 start) (wing 257:52 combine)))))))))))))
706+ (cell 260:32 (tvar 260:33 A) (tvar 260:35 B))
693− (value 259:1 flit
707+ (tvar 260:38 B))))
694− (gate 259:9
708+ (body 261:3
695− (face 259:12 predicate
709+ (branch 261:3
696− (fn 259:22 (tvar 259:25 A) (flag 259:27)))
710+ (wing 261:6 args)
697− (body 260:3
711+ (arm 262:5
698− (gate 260:3
712+ (cell 262:5 (bind 262:6 xs) (bind 262:9 start) (bind 262:15 combine))
699− (face 260:6 value (tvar 260:12 A))
713+ (body 263:7
700− (body 261:5
714+ (branch 263:7
701− (cast 261:5
715+ (wing 263:10 xs)
702− (apply 261:8 unit (tvar 261:14 A))
716+ (arm 264:9 (lit 264:9 ~) (wing 264:11 start))
703− (body 262:7
717+ (arm 265:9
704− (branch 262:7
718+ (cell 265:9 (bind 265:10 item) (bind 265:15 rest))
705− (group 262:10
719+ (group 265:21
706− (call 262:11 (wing 262:11 predicate) (wing 262:21 value)))
720+ (call 265:22
707− (arm 263:9
721+ (wing 265:22 combine)
708− (lit 263:9 %.y)
722+ (wing 265:30 item)
709− (unit 263:13 (wing 263:14 value)))
723+ (group 265:35
710− (arm 264:9 (lit 264:9 %.n) (lit 264:13 ~))))))))))
724+ (call 265:36 (wing 265:36 reel) (wing 265:41 rest) (wing 265:46 start) (wing 265:52 combine)))))))))))))
711− (value 266:1 murn
725+ (value 267:1 flit
712− (gate 266:9
726+ (gate 267:9
713− (face 266:12 args
727+ (face 267:12 predicate
714− (cell 266:17
728+ (fn 267:22 (tvar 267:25 A) (flag 267:27)))
715− (apply 266:18 list (tvar 266:24 A))
729+ (body 268:3
716− (fn 266:27
730+ (gate 268:3
717− (tvar 266:30 A)
731+ (face 268:6 value (tvar 268:12 A))
718− (apply 266:32 unit (tvar 266:38 B)))))
732+ (body 269:5
719− (body 267:3
733+ (cast 269:5
720− (branch 267:3
734+ (apply 269:8 unit (tvar 269:14 A))
721− (wing 267:6 args)
735+ (body 270:7
722− (arm 268:5
736+ (branch 270:7
723− (cell 268:5 (bind 268:6 xs) (bind 268:9 f))
737+ (group 270:10
724− (cast 268:12
738+ (call 270:11 (wing 270:11 predicate) (wing 270:21 value)))
725− (apply 268:15 list (tvar 268:21 B))
739+ (arm 271:9
726− (body 269:9
740+ (lit 271:9 %.y)
727− (branch 269:9
741+ (unit 271:13 (wing 271:14 value)))
728− (wing 269:12 xs)
742+ (arm 272:9 (lit 272:9 %.n) (lit 272:13 ~))))))))))
729− (arm 270:11 (lit 270:11 ~) (lit 270:13 ~))
743+ (value 274:1 murn
730− (arm 271:11
744+ (gate 274:9
731− (cell 271:11 (bind 271:12 item) (bind 271:17 rest))
745+ (face 274:12 args
732− (body 272:13
746+ (cell 274:17
733− (branch 272:13
747+ (apply 274:18 list (tvar 274:24 A))
734− (group 272:16
748+ (fn 274:27
735− (call 272:17 (wing 272:17 f) (wing 272:19 item)))
749+ (tvar 274:30 A)
736− (arm 273:15
750+ (apply 274:32 unit (tvar 274:38 B)))))
737− (lit 273:15 ~)
751+ (body 275:3
738− (group 273:17
752+ (branch 275:3
739− (call 273:18 (wing 273:18 murn) (wing 273:23 rest) (wing 273:28 f))))
753+ (wing 275:6 args)
740− (arm 274:15
754+ (arm 276:5
741− (cell 274:15 (lit 274:16 ~) (bind 274:18 value))
755+ (cell 276:5 (bind 276:6 xs) (bind 276:9 f))
742− (tuple 274:25
756+ (cast 276:12
743− (wing 274:26 value)
757+ (apply 276:15 list (tvar 276:21 B))
744− (group 274:32
758+ (body 277:9
745− (call 274:33 (wing 274:33 murn) (wing 274:38 rest) (wing 274:43 f))))))))))))))))
759+ (branch 277:9
746− (value 276:1 join
760+ (wing 277:12 xs)
747− (gate 276:9
761+ (arm 278:11 (lit 278:11 ~) (lit 278:13 ~))
748− (face 276:12 args
762+ (arm 279:11
749− (cell 276:17
763+ (cell 279:11 (bind 279:12 item) (bind 279:17 rest))
750− (tvar 276:18 A)
764+ (body 280:13
751− (apply 276:20 list (tvar 276:26 A))))
765+ (branch 280:13
752− (body 277:3
766+ (group 280:16
753− (branch 277:3
767+ (call 280:17 (wing 280:17 f) (wing 280:19 item)))
754− (wing 277:6 args)
768+ (arm 281:15
755− (arm 278:5
769+ (lit 281:15 ~)
756− (cell 278:5 (bind 278:6 separator) (bind 278:16 xs))
770+ (group 281:17
757− (cast 278:20
771+ (call 281:18 (wing 281:18 murn) (wing 281:23 rest) (wing 281:28 f))))
758− (apply 278:23 list (tvar 278:29 A))
772+ (arm 282:15
759− (body 279:9
773+ (cell 282:15 (lit 282:16 ~) (bind 282:18 value))
760− (branch 279:9
774+ (tuple 282:25
761− (wing 279:12 xs)
775+ (wing 282:26 value)
762− (arm 280:11 (lit 280:11 ~) (lit 280:13 ~))
776+ (group 282:32
763− (arm 281:11
777+ (call 282:33 (wing 282:33 murn) (wing 282:38 rest) (wing 282:43 f))))))))))))))))
764− (cell 281:11 (bind 281:12 item) (bind 281:17 rest))
778+ (value 284:1 join
765− (body 282:13
779+ (gate 284:9
766− (branch 282:13
780+ (face 284:12 args
767− (wing 282:16 rest)
781+ (cell 284:17
768− (arm 283:15
782+ (tvar 284:18 A)
769− (lit 283:15 ~)
783+ (apply 284:20 list (tvar 284:26 A))))
770− (tuple 283:17 (wing 283:18 item) (lit 283:23 ~)))
784+ (body 285:3
771− (arm 284:15
785+ (branch 285:3
772− (cell 284:15 (bind 284:16 next) (bind 284:21 more))
786+ (wing 285:6 args)
773− (tuple 284:27
787+ (arm 286:5
774− (wing 284:28 item)
788+ (cell 286:5 (bind 286:6 separator) (bind 286:16 xs))
775− (tuple 284:33
789+ (cast 286:20
776− (wing 284:34 separator)
790+ (apply 286:23 list (tvar 286:29 A))
777− (group 284:44
791+ (body 287:9
778− (call 284:45 (wing 284:45 join) (wing 284:50 separator) (wing 284:60 rest)))))))))))))))))
792+ (branch 287:9
779− (value 286:1 snip
793+ (wing 287:12 xs)
780− (gate 286:9
794+ (arm 288:11 (lit 288:11 ~) (lit 288:13 ~))
781− (face 286:12 xs
795+ (arm 289:11
782− (apply 286:15 list (tvar 286:21 A)))
796+ (cell 289:11 (bind 289:12 item) (bind 289:17 rest))
783− (body 287:3
797+ (body 290:13
784− (cast 287:3
798+ (branch 290:13
785− (apply 287:6 list (tvar 287:12 A))
799+ (wing 290:16 rest)
786− (body 288:5
800+ (arm 291:15
787− (branch 288:5
801+ (lit 291:15 ~)
788− (wing 288:8 xs)
802+ (tuple 291:17 (wing 291:18 item) (lit 291:23 ~)))
789− (arm 289:7 (lit 289:7 ~) (lit 289:9 ~))
803+ (arm 292:15
790− (arm 290:7
804+ (cell 292:15 (bind 292:16 next) (bind 292:21 more))
791− (cell 290:7 (bind 290:8 item) (bind 290:13 rest))
805+ (tuple 292:27
792− (body 291:9
806+ (wing 292:28 item)
793− (branch 291:9
807+ (tuple 292:33
794− (wing 291:12 rest)
808+ (wing 292:34 separator)
795− (arm 292:11 (lit 292:11 ~) (lit 292:13 ~))
809+ (group 292:44
796− (arm 293:11
810+ (call 292:45 (wing 292:45 join) (wing 292:50 separator) (wing 292:60 rest)))))))))))))))))
797− (cell 293:11 (bind 293:12 next) (bind 293:17 more))
811+ (value 294:1 snip
798− (tuple 293:23
812+ (gate 294:9
799− (wing 293:24 item)
813+ (face 294:12 xs
800− (group 293:29
814+ (apply 294:15 list (tvar 294:21 A)))
801− (call 293:30 (wing 293:30 snip) (wing 293:35 rest))))))))))))))
815+ (body 295:3
802− (value 295:1 rear
816+ (cast 295:3
803− (gate 295:9
817+ (apply 295:6 list (tvar 295:12 A))
804− (face 295:12 xs
818+ (body 296:5
805− (apply 295:15 list (tvar 295:21 A)))
819+ (branch 296:5
806− (body 296:3
820+ (wing 296:8 xs)
807− (branch 296:3
821+ (arm 297:7 (lit 297:7 ~) (lit 297:9 ~))
808− (wing 296:6 xs)
822+ (arm 298:7
809− (arm 297:5 (lit 297:5 ~) (crash 297:7))
823+ (cell 298:7 (bind 298:8 item) (bind 298:13 rest))
810− (arm 298:5
824+ (body 299:9
811− (cell 298:5 (bind 298:6 item) (bind 298:11 rest))
825+ (branch 299:9
812− (body 299:7
826+ (wing 299:12 rest)
813− (branch 299:7
827+ (arm 300:11 (lit 300:11 ~) (lit 300:13 ~))
814− (wing 299:10 rest)
828+ (arm 301:11
815− (arm 300:9 (lit 300:9 ~) (wing 300:11 item))
829+ (cell 301:11 (bind 301:12 next) (bind 301:17 more))
816− (arm 301:9
830+ (tuple 301:23
817− (cell 301:9 (bind 301:10 next) (bind 301:15 more))
831+ (wing 301:24 item)
818− (group 301:21
832+ (group 301:29
819− (call 301:22 (wing 301:22 rear) (wing 301:27 rest)))))))))))
833+ (call 301:30 (wing 301:30 snip) (wing 301:35 rest))))))))))))))
820− (value 303:1 cork
834+ (value 303:1 rear
821 (gate 303:9
835 (gate 303:9
822− (face 303:12 gates
836+ (face 303:12 xs
823− (cell 303:18
837+ (apply 303:15 list (tvar 303:21 A)))
824− (fn 303:19 (tvar 303:22 A) (tvar 303:24 B))
825− (fn 303:27 (tvar 303:30 B) (tvar 303:32 C))))
826 (body 304:3
838 (body 304:3
827 (branch 304:3
839 (branch 304:3
828− (wing 304:6 gates)
840+ (wing 304:6 xs)
829− (arm 305:5
841+ (arm 305:5 (lit 305:5 ~) (crash 305:7))
830− (cell 305:5 (bind 305:6 f) (bind 305:8 g))
842+ (arm 306:5
831− (gate 305:11
843+ (cell 306:5 (bind 306:6 item) (bind 306:11 rest))
832− (face 305:14 x (tvar 305:16 A))
844+ (body 307:7
833− (group 305:18
845+ (branch 307:7
834− (call 305:19
846+ (wing 307:10 rest)
835− (wing 305:19 g)
847+ (arm 308:9 (lit 308:9 ~) (wing 308:11 item))
836− (group 305:21
848+ (arm 309:9
837− (call 305:22 (wing 305:22 f) (wing 305:24 x)))))))))))
849+ (cell 309:9 (bind 309:10 next) (bind 309:15 more))
838− (value 307:1 corl
839− (gate 307:9
840− (face 307:12 gates
841− (cell 307:18
842− (fn 307:19 (tvar 307:22 B) (tvar 307:24 C))
843− (fn 307:27 (tvar 307:30 A) (tvar 307:32 B))))
844− (body 308:3
845− (branch 308:3
846− (wing 308:6 gates)
847− (arm 309:5
848− (cell 309:5 (bind 309:6 f) (bind 309:8 g))
849− (gate 309:11
850− (face 309:14 x (tvar 309:16 A))
851− (group 309:18
852− (call 309:19
853− (wing 309:19 f)
854 (group 309:21
850 (group 309:21
855− (call 309:22 (wing 309:22 g) (wing 309:24 x)))))))))))
851+ (call 309:22 (wing 309:22 rear) (wing 309:27 rest)))))))))))
856− (value 311:1 cury
852+ (value 311:1 cork
857 (gate 311:9
853 (gate 311:9
858− (face 311:12 args
854+ (face 311:12 gates
859− (cell 311:17
855+ (cell 311:18
860− (fn 311:18
856+ (fn 311:19 (tvar 311:22 A) (tvar 311:24 B))
861− (cell 311:21 (tvar 311:22 A) (tvar 311:24 B))
857+ (fn 311:27 (tvar 311:30 B) (tvar 311:32 C))))
862− (tvar 311:27 C))
863− (tvar 311:30 A)))
864 (body 312:3
858 (body 312:3
865 (branch 312:3
859 (branch 312:3
866− (wing 312:6 args)
860+ (wing 312:6 gates)
867 (arm 313:5
861 (arm 313:5
868− (cell 313:5 (bind 313:6 f) (bind 313:8 a))
862+ (cell 313:5 (bind 313:6 f) (bind 313:8 g))
869 (gate 313:11
863 (gate 313:11
870− (face 313:14 b (tvar 313:16 B))
864+ (face 313:14 x (tvar 313:16 A))
871 (group 313:18
865 (group 313:18
872− (call 313:19 (wing 313:19 f) (wing 313:21 a) (wing 313:23 b)))))))))
866+ (call 313:19
873− (value 315:1 curr
867+ (wing 313:19 g)
868+ (group 313:21
869+ (call 313:22 (wing 313:22 f) (wing 313:24 x)))))))))))
870+ (value 315:1 corl
874 (gate 315:9
871 (gate 315:9
875− (face 315:12 args
872+ (face 315:12 gates
876− (cell 315:17
873+ (cell 315:18
877− (fn 315:18
874+ (fn 315:19 (tvar 315:22 B) (tvar 315:24 C))
878− (cell 315:21 (tvar 315:22 A) (tvar 315:24 B))
875+ (fn 315:27 (tvar 315:30 A) (tvar 315:32 B))))
879− (tvar 315:27 C))
880− (tvar 315:30 B)))
881 (body 316:3
876 (body 316:3
882 (branch 316:3
877 (branch 316:3
883− (wing 316:6 args)
878+ (wing 316:6 gates)
884 (arm 317:5
879 (arm 317:5
885− (cell 317:5 (bind 317:6 f) (bind 317:8 b))
880+ (cell 317:5 (bind 317:6 f) (bind 317:8 g))
886 (gate 317:11
881 (gate 317:11
887− (face 317:14 a (tvar 317:16 A))
882+ (face 317:14 x (tvar 317:16 A))
888 (group 317:18
883 (group 317:18
889− (call 317:19 (wing 317:19 f) (wing 317:21 a) (wing 317:23 b)))))))))
884+ (call 317:19
890− (mold 319:1 cmd
885+ (wing 317:19 f)
891− (generic 319:8 M
886+ (group 317:21
892− (union 320:3
887+ (call 317:22 (wing 317:22 g) (wing 317:24 x)))))))))))
893− (cell 320:3
888+ (value 319:1 cury
894− (const 320:4 %poke)
889+ (gate 319:9
895− (face 320:10 p (ref 320:12 poke))
890+ (face 319:12 args
896− (face 320:17 reply
891+ (cell 319:17
897− (fn 320:23
892+ (fn 319:18
898− (apply 320:26 unit (aura 320:32 @t))
893+ (cell 319:21 (tvar 319:22 A) (tvar 319:24 B))
899− (tvar 320:36 M))))
894+ (tvar 319:27 C))
900− (cell 321:3
895+ (tvar 319:30 A)))
901− (const 321:4 %go)
896+ (body 320:3
902− (face 321:8 url (aura 321:12 @t)))
897+ (branch 320:3
903− (cell 322:3
898+ (wing 320:6 args)
904− (const 322:4 %wait)
899+ (arm 321:5
905− (face 322:10 gap (aura 322:14 @dr))
900+ (cell 321:5 (bind 321:6 f) (bind 321:8 a))
906− (face 322:18 msg (tvar 322:22 M)))
901+ (gate 321:11
907− (cell 323:3
902+ (face 321:14 b (tvar 321:16 B))
908− (const 323:4 %now)
903+ (group 321:18
909− (face 323:9 reply
904+ (call 321:19 (wing 321:19 f) (wing 321:21 a) (wing 321:23 b)))))))))
910− (fn 323:15 (aura 323:18 @da) (tvar 323:22 M))))
905+ (value 323:1 curr
911− (cell 324:3
906+ (gate 323:9
912− (const 324:4 %who)
907+ (face 323:12 args
913− (face 324:9 reply
908+ (cell 323:17
914− (fn 324:15 (aura 324:18 @p) (tvar 324:21 M)))))))
909+ (fn 323:18
915− (value 326:1 gth
910+ (cell 323:21 (tvar 323:22 A) (tvar 323:24 B))
916− (gate 326:8
911+ (tvar 323:27 C))
917− (face 326:11 args
912+ (tvar 323:30 B)))
918− (cell 326:16 (tvar 326:17 A) (tvar 326:19 A)))
913+ (body 324:3
919− (group 326:22
914+ (branch 324:3
920− (call 326:23 (wing 326:23 gth-atom.internal) (wing 326:41 args)))))
915+ (wing 324:6 args)
921− (value 327:1 add
916+ (arm 325:5
922− (gate 327:8
917+ (cell 325:5 (bind 325:6 f) (bind 325:8 b))
923− (face 327:11 args
918+ (gate 325:11
924− (cell 327:16 (tvar 327:17 A) (tvar 327:19 A)))
919+ (face 325:14 a (tvar 325:16 A))
925− (group 327:22
920+ (group 325:18
926− (call 327:23 (wing 327:23 add-atom.internal) (wing 327:41 args)))))
921+ (call 325:19 (wing 325:19 f) (wing 325:21 a) (wing 325:23 b)))))))))
927− (value 328:1 dec
922+ (mold 327:1 cmd
928− (gate 328:8
923+ (generic 327:8 M
929− (face 328:11 atom (tvar 328:16 A))
924+ (union 328:3
930− (group 328:18
925+ (cell 328:3
931− (call 328:19 (wing 328:19 dec-atom.internal) (wing 328:37 atom))))))
926+ (const 328:4 %poke)
927+ (face 328:10 p (ref 328:12 poke))
928+ (face 328:17 reply
929+ (fn 328:23
930+ (apply 328:26 unit (aura 328:32 @t))
931+ (tvar 328:36 M))))
932+ (cell 329:3
933+ (const 329:4 %go)
934+ (face 329:8 url (aura 329:12 @t)))
935+ (cell 330:3
936+ (const 330:4 %wait)
937+ (face 330:10 gap (aura 330:14 @dr))
938+ (face 330:18 msg (tvar 330:22 M)))
939+ (cell 331:3
940+ (const 331:4 %now)
941+ (face 331:9 reply
942+ (fn 331:15 (aura 331:18 @da) (tvar 331:22 M))))
943+ (cell 332:3
944+ (const 332:4 %who)
945+ (face 332:9 reply
946+ (fn 332:15 (aura 332:18 @p) (tvar 332:21 M)))))))
947+ (value 334:1 gth
948+ (gate 334:8
949+ (face 334:11 args
950+ (cell 334:16 (tvar 334:17 A) (tvar 334:19 A)))
951+ (group 334:22
952+ (call 334:23 (wing 334:23 gth-atom.internal) (wing 334:41 args)))))
953+ (value 335:1 add
954+ (gate 335:8
955+ (face 335:11 args
956+ (cell 335:16 (tvar 335:17 A) (tvar 335:19 A)))
957+ (group 335:22
958+ (call 335:23 (wing 335:23 add-atom.internal) (wing 335:41 args)))))
959+ (value 336:1 dec
960+ (gate 336:8
961+ (face 336:11 atom (tvar 336:16 A))
962+ (group 336:18
963+ (call 336:19 (wing 336:19 dec-atom.internal) (wing 336:37 atom))))))
tests/golden/prelude-unit-list-transforms/types.txt+1
@@ -29,6 +29,7 @@ partial inference; module not checked
29+$ spot: not checked
29+$ spot: not checked
30+$ toon: cases proven disjoint; mold not checked
30+$ toon: cases proven disjoint; mold not checked
31+$ like: not checked
31+$ like: not checked
32+++ like: sample mold is not supported by partial inference
32++ wonk: sample mold is not supported by partial inference
33++ wonk: sample mold is not supported by partial inference
33+$ lone: not checked
34+$ lone: not checked
34+$ lest: not checked
35+$ lest: not checked
tests/golden/types-positional-faces/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Molds: faces are part of a type; Expressions: multi-argument calls form a right-nested sample.
2+tests: Positional sample labels do not obscure record arguments; returned faces are preserved, nested value-face asymmetry stays unsupported, and mismatches, generic and unknown gates, and pending literals are retained.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-positional-faces/source.jibbnew file+25
@@ -0,0 +1,25 @@
1+++ convert-record |= [f=$-(A B) input=[a=A b=@t]] [value=(f a.input) label=b.input]
2+++ data [a=1 b="before"]
3+++ positional (convert-record |=(x=@ud "done") data)
4+++ named (convert-record [f=|=(x=@ud "done") input=data])
5+++ record-identity |= [n=@ud item=[x=@t y=@p]] item
6+++ typed-record (record-identity 1 [x="hi" y=~zod])
7+++ unfaced-identity |= [n=@ud item=[@t @p]] item
8+++ preserve-inner-faces (unfaced-identity 1 [x="hi" y=~zod])
9+++ nested-identity |= [n=@ud item=[inner=[@t @p] label=@t]] item
10+++ preserve-nested-faces (nested-identity 1 [inner=[x="hi" y=~zod] label="ok"])
11+++ generic-identity |= [n=@ud item=A] item
12+++ preserve-generic (generic-identity 1 [x="hi" y=~zod])
13+++ wrong-order (record-identity [x="hi" y=~zod] 1)
14+++ pending (record-identity 1 [x="hi" y=%unresolved])
15+++ generic-apply |= [f=$-(A B) input=A] (f input)
16+++ accepts-tuple |= x=[@t @p] x
17+++ generic-faces (generic-apply accepts-tuple [x="hi" y=~zod])
18+++ unknown-callee |= f (f [x="hi" y=~zod] 1)
19+++ first-pending (record-identity %unresolved [x="hi" y=~zod])
20+++ discarded-tag |= value=@t
21+ ~& %pending
22+ (record-identity 1 [x=value y=~zod])
23+++ pick-first |= [first=A other=@t] first
24+++ first-record (pick-first [foo="x" bar=~zod] "z")
25+++ matching-face-collision (pick-first [first=[foo="x" bar=~zod]] "z")
tests/golden/types-positional-faces/tokens.txtnew file+394
@@ -0,0 +1,394 @@
1+1:1 glyph ++
2+1:4 name convert-record
3+1:19 glyph |=
4+1:22 glyph [
5+1:23 tight name f
6+1:24 tight glyph =
7+1:25 tight glyph $-(
8+1:28 tight tvar A
9+1:30 tvar B
10+1:31 tight glyph )
11+1:33 name input
12+1:38 tight glyph =
13+1:39 tight glyph [
14+1:40 tight name a
15+1:41 tight glyph =
16+1:42 tight tvar A
17+1:44 name b
18+1:45 tight glyph =
19+1:46 tight aura @t
20+1:48 tight glyph ]
21+1:49 tight glyph ]
22+1:51 glyph [
23+1:52 tight name value
24+1:57 tight glyph =
25+1:58 tight glyph (
26+1:59 tight name f
27+1:61 wing a.input
28+1:68 tight glyph )
29+1:70 name label
30+1:75 tight glyph =
31+1:76 tight wing b.input
32+1:83 tight glyph ]
33+2:1 NEWLINE
34+2:1 glyph ++
35+2:4 name data
36+2:9 glyph [
37+2:10 tight name a
38+2:11 tight glyph =
39+2:12 tight lit 1
40+2:14 name b
41+2:15 tight glyph =
42+2:16 tight str "before"
43+2:24 tight glyph ]
44+3:1 NEWLINE
45+3:1 glyph ++
46+3:4 name positional
47+3:15 glyph (
48+3:16 tight name convert-record
49+3:31 glyph |=(
50+3:34 tight name x
51+3:35 tight glyph =
52+3:36 tight aura @ud
53+3:40 str "done"
54+3:46 tight glyph )
55+3:48 name data
56+3:52 tight glyph )
57+4:1 NEWLINE
58+4:1 glyph ++
59+4:4 name named
60+4:10 glyph (
61+4:11 tight name convert-record
62+4:26 glyph [
63+4:27 tight name f
64+4:28 tight glyph =
65+4:29 tight glyph |=(
66+4:32 tight name x
67+4:33 tight glyph =
68+4:34 tight aura @ud
69+4:38 str "done"
70+4:44 tight glyph )
71+4:46 name input
72+4:51 tight glyph =
73+4:52 tight name data
74+4:56 tight glyph ]
75+4:57 tight glyph )
76+5:1 NEWLINE
77+5:1 glyph ++
78+5:4 name record-identity
79+5:20 glyph |=
80+5:23 glyph [
81+5:24 tight name n
82+5:25 tight glyph =
83+5:26 tight aura @ud
84+5:30 name item
85+5:34 tight glyph =
86+5:35 tight glyph [
87+5:36 tight name x
88+5:37 tight glyph =
89+5:38 tight aura @t
90+5:41 name y
91+5:42 tight glyph =
92+5:43 tight aura @p
93+5:45 tight glyph ]
94+5:46 tight glyph ]
95+5:48 name item
96+6:1 NEWLINE
97+6:1 glyph ++
98+6:4 name typed-record
99+6:17 glyph (
100+6:18 tight name record-identity
101+6:34 lit 1
102+6:36 glyph [
103+6:37 tight name x
104+6:38 tight glyph =
105+6:39 tight str "hi"
106+6:44 name y
107+6:45 tight glyph =
108+6:46 tight lit ~zod
109+6:50 tight glyph ]
110+6:51 tight glyph )
111+7:1 NEWLINE
112+7:1 glyph ++
113+7:4 name unfaced-identity
114+7:21 glyph |=
115+7:24 glyph [
116+7:25 tight name n
117+7:26 tight glyph =
118+7:27 tight aura @ud
119+7:31 name item
120+7:35 tight glyph =
121+7:36 tight glyph [
122+7:37 tight aura @t
123+7:40 aura @p
124+7:42 tight glyph ]
125+7:43 tight glyph ]
126+7:45 name item
127+8:1 NEWLINE
128+8:1 glyph ++
129+8:4 name preserve-inner-faces
130+8:25 glyph (
131+8:26 tight name unfaced-identity
132+8:43 lit 1
133+8:45 glyph [
134+8:46 tight name x
135+8:47 tight glyph =
136+8:48 tight str "hi"
137+8:53 name y
138+8:54 tight glyph =
139+8:55 tight lit ~zod
140+8:59 tight glyph ]
141+8:60 tight glyph )
142+9:1 NEWLINE
143+9:1 glyph ++
144+9:4 name nested-identity
145+9:20 glyph |=
146+9:23 glyph [
147+9:24 tight name n
148+9:25 tight glyph =
149+9:26 tight aura @ud
150+9:30 name item
151+9:34 tight glyph =
152+9:35 tight glyph [
153+9:36 tight name inner
154+9:41 tight glyph =
155+9:42 tight glyph [
156+9:43 tight aura @t
157+9:46 aura @p
158+9:48 tight glyph ]
159+9:50 name label
160+9:55 tight glyph =
161+9:56 tight aura @t
162+9:58 tight glyph ]
163+9:59 tight glyph ]
164+9:61 name item
165+10:1 NEWLINE
166+10:1 glyph ++
167+10:4 name preserve-nested-faces
168+10:26 glyph (
169+10:27 tight name nested-identity
170+10:43 lit 1
171+10:45 glyph [
172+10:46 tight name inner
173+10:51 tight glyph =
174+10:52 tight glyph [
175+10:53 tight name x
176+10:54 tight glyph =
177+10:55 tight str "hi"
178+10:60 name y
179+10:61 tight glyph =
180+10:62 tight lit ~zod
181+10:66 tight glyph ]
182+10:68 name label
183+10:73 tight glyph =
184+10:74 tight str "ok"
185+10:78 tight glyph ]
186+10:79 tight glyph )
187+11:1 NEWLINE
188+11:1 glyph ++
189+11:4 name generic-identity
190+11:21 glyph |=
191+11:24 glyph [
192+11:25 tight name n
193+11:26 tight glyph =
194+11:27 tight aura @ud
195+11:31 name item
196+11:35 tight glyph =
197+11:36 tight tvar A
198+11:37 tight glyph ]
199+11:39 name item
200+12:1 NEWLINE
201+12:1 glyph ++
202+12:4 name preserve-generic
203+12:21 glyph (
204+12:22 tight name generic-identity
205+12:39 lit 1
206+12:41 glyph [
207+12:42 tight name x
208+12:43 tight glyph =
209+12:44 tight str "hi"
210+12:49 name y
211+12:50 tight glyph =
212+12:51 tight lit ~zod
213+12:55 tight glyph ]
214+12:56 tight glyph )
215+13:1 NEWLINE
216+13:1 glyph ++
217+13:4 name wrong-order
218+13:16 glyph (
219+13:17 tight name record-identity
220+13:33 glyph [
221+13:34 tight name x
222+13:35 tight glyph =
223+13:36 tight str "hi"
224+13:41 name y
225+13:42 tight glyph =
226+13:43 tight lit ~zod
227+13:47 tight glyph ]
228+13:49 lit 1
229+13:50 tight glyph )
230+14:1 NEWLINE
231+14:1 glyph ++
232+14:4 name pending
233+14:12 glyph (
234+14:13 tight name record-identity
235+14:29 lit 1
236+14:31 glyph [
237+14:32 tight name x
238+14:33 tight glyph =
239+14:34 tight str "hi"
240+14:39 name y
241+14:40 tight glyph =
242+14:41 tight lit %unresolved
243+14:52 tight glyph ]
244+14:53 tight glyph )
245+15:1 NEWLINE
246+15:1 glyph ++
247+15:4 name generic-apply
248+15:18 glyph |=
249+15:21 glyph [
250+15:22 tight name f
251+15:23 tight glyph =
252+15:24 tight glyph $-(
253+15:27 tight tvar A
254+15:29 tvar B
255+15:30 tight glyph )
256+15:32 name input
257+15:37 tight glyph =
258+15:38 tight tvar A
259+15:39 tight glyph ]
260+15:41 glyph (
261+15:42 tight name f
262+15:44 name input
263+15:49 tight glyph )
264+16:1 NEWLINE
265+16:1 glyph ++
266+16:4 name accepts-tuple
267+16:18 glyph |=
268+16:21 name x
269+16:22 tight glyph =
270+16:23 tight glyph [
271+16:24 tight aura @t
272+16:27 aura @p
273+16:29 tight glyph ]
274+16:31 name x
275+17:1 NEWLINE
276+17:1 glyph ++
277+17:4 name generic-faces
278+17:18 glyph (
279+17:19 tight name generic-apply
280+17:33 name accepts-tuple
281+17:47 glyph [
282+17:48 tight name x
283+17:49 tight glyph =
284+17:50 tight str "hi"
285+17:55 name y
286+17:56 tight glyph =
287+17:57 tight lit ~zod
288+17:61 tight glyph ]
289+17:62 tight glyph )
290+18:1 NEWLINE
291+18:1 glyph ++
292+18:4 name unknown-callee
293+18:19 glyph |=
294+18:22 name f
295+18:24 glyph (
296+18:25 tight name f
297+18:27 glyph [
298+18:28 tight name x
299+18:29 tight glyph =
300+18:30 tight str "hi"
301+18:35 name y
302+18:36 tight glyph =
303+18:37 tight lit ~zod
304+18:41 tight glyph ]
305+18:43 lit 1
306+18:44 tight glyph )
307+19:1 NEWLINE
308+19:1 glyph ++
309+19:4 name first-pending
310+19:18 glyph (
311+19:19 tight name record-identity
312+19:35 lit %unresolved
313+19:47 glyph [
314+19:48 tight name x
315+19:49 tight glyph =
316+19:50 tight str "hi"
317+19:55 name y
318+19:56 tight glyph =
319+19:57 tight lit ~zod
320+19:61 tight glyph ]
321+19:62 tight glyph )
322+20:1 NEWLINE
323+20:1 glyph ++
324+20:4 name discarded-tag
325+20:18 glyph |=
326+20:21 name value
327+20:26 tight glyph =
328+20:27 tight aura @t
329+21:3 INDENT
330+21:3 glyph ~&
331+21:6 lit %pending
332+22:5 INDENT
333+22:5 glyph (
334+22:6 tight name record-identity
335+22:22 lit 1
336+22:24 glyph [
337+22:25 tight name x
338+22:26 tight glyph =
339+22:27 tight name value
340+22:33 name y
341+22:34 tight glyph =
342+22:35 tight lit ~zod
343+22:39 tight glyph ]
344+22:40 tight glyph )
345+23:1 DEDENT
346+23:1 DEDENT
347+23:1 NEWLINE
348+23:1 glyph ++
349+23:4 name pick-first
350+23:15 glyph |=
351+23:18 glyph [
352+23:19 tight name first
353+23:24 tight glyph =
354+23:25 tight tvar A
355+23:27 name other
356+23:32 tight glyph =
357+23:33 tight aura @t
358+23:35 tight glyph ]
359+23:37 name first
360+24:1 NEWLINE
361+24:1 glyph ++
362+24:4 name first-record
363+24:17 glyph (
364+24:18 tight name pick-first
365+24:29 glyph [
366+24:30 tight name foo
367+24:33 tight glyph =
368+24:34 tight str "x"
369+24:38 name bar
370+24:41 tight glyph =
371+24:42 tight lit ~zod
372+24:46 tight glyph ]
373+24:48 str "z"
374+24:51 tight glyph )
375+25:1 NEWLINE
376+25:1 glyph ++
377+25:4 name matching-face-collision
378+25:28 glyph (
379+25:29 tight name pick-first
380+25:40 glyph [
381+25:41 tight name first
382+25:46 tight glyph =
383+25:47 tight glyph [
384+25:48 tight name foo
385+25:51 tight glyph =
386+25:52 tight str "x"
387+25:56 name bar
388+25:59 tight glyph =
389+25:60 tight lit ~zod
390+25:64 tight glyph ]
391+25:65 tight glyph ]
392+25:67 str "z"
393+25:70 tight glyph )
394+25:71 NEWLINE
tests/golden/types-positional-faces/tree.txtnew file+197
@@ -0,0 +1,197 @@
1+(module
2+ (value 1:1 convert-record
3+ (gate 1:19
4+ (cell 1:22
5+ (face 1:23 f
6+ (fn 1:25 (tvar 1:28 A) (tvar 1:30 B)))
7+ (face 1:33 input
8+ (cell 1:39
9+ (face 1:40 a (tvar 1:42 A))
10+ (face 1:44 b (aura 1:46 @t)))))
11+ (tuple 1:51
12+ (face 1:52 value
13+ (group 1:58
14+ (call 1:59 (wing 1:59 f) (wing 1:61 a.input))))
15+ (face 1:70 label (wing 1:76 b.input)))))
16+ (value 2:1 data
17+ (tuple 2:9
18+ (face 2:10 a (lit 2:12 1))
19+ (face 2:14 b (str 2:16 "before"))))
20+ (value 3:1 positional
21+ (group 3:15
22+ (call 3:16
23+ (wing 3:16 convert-record)
24+ (gate-wide 3:31
25+ (face 3:34 x (aura 3:36 @ud))
26+ (str 3:40 "done"))
27+ (wing 3:48 data))))
28+ (value 4:1 named
29+ (group 4:10
30+ (call 4:11
31+ (wing 4:11 convert-record)
32+ (tuple 4:26
33+ (face 4:27 f
34+ (gate-wide 4:29
35+ (face 4:32 x (aura 4:34 @ud))
36+ (str 4:38 "done")))
37+ (face 4:46 input (wing 4:52 data))))))
38+ (value 5:1 record-identity
39+ (gate 5:20
40+ (cell 5:23
41+ (face 5:24 n (aura 5:26 @ud))
42+ (face 5:30 item
43+ (cell 5:35
44+ (face 5:36 x (aura 5:38 @t))
45+ (face 5:41 y (aura 5:43 @p)))))
46+ (wing 5:48 item)))
47+ (value 6:1 typed-record
48+ (group 6:17
49+ (call 6:18
50+ (wing 6:18 record-identity)
51+ (lit 6:34 1)
52+ (tuple 6:36
53+ (face 6:37 x (str 6:39 "hi"))
54+ (face 6:44 y (lit 6:46 ~zod))))))
55+ (value 7:1 unfaced-identity
56+ (gate 7:21
57+ (cell 7:24
58+ (face 7:25 n (aura 7:27 @ud))
59+ (face 7:31 item
60+ (cell 7:36 (aura 7:37 @t) (aura 7:40 @p))))
61+ (wing 7:45 item)))
62+ (value 8:1 preserve-inner-faces
63+ (group 8:25
64+ (call 8:26
65+ (wing 8:26 unfaced-identity)
66+ (lit 8:43 1)
67+ (tuple 8:45
68+ (face 8:46 x (str 8:48 "hi"))
69+ (face 8:53 y (lit 8:55 ~zod))))))
70+ (value 9:1 nested-identity
71+ (gate 9:20
72+ (cell 9:23
73+ (face 9:24 n (aura 9:26 @ud))
74+ (face 9:30 item
75+ (cell 9:35
76+ (face 9:36 inner
77+ (cell 9:42 (aura 9:43 @t) (aura 9:46 @p)))
78+ (face 9:50 label (aura 9:56 @t)))))
79+ (wing 9:61 item)))
80+ (value 10:1 preserve-nested-faces
81+ (group 10:26
82+ (call 10:27
83+ (wing 10:27 nested-identity)
84+ (lit 10:43 1)
85+ (tuple 10:45
86+ (face 10:46 inner
87+ (tuple 10:52
88+ (face 10:53 x (str 10:55 "hi"))
89+ (face 10:60 y (lit 10:62 ~zod))))
90+ (face 10:68 label (str 10:74 "ok"))))))
91+ (value 11:1 generic-identity
92+ (gate 11:21
93+ (cell 11:24
94+ (face 11:25 n (aura 11:27 @ud))
95+ (face 11:31 item (tvar 11:36 A)))
96+ (wing 11:39 item)))
97+ (value 12:1 preserve-generic
98+ (group 12:21
99+ (call 12:22
100+ (wing 12:22 generic-identity)
101+ (lit 12:39 1)
102+ (tuple 12:41
103+ (face 12:42 x (str 12:44 "hi"))
104+ (face 12:49 y (lit 12:51 ~zod))))))
105+ (value 13:1 wrong-order
106+ (group 13:16
107+ (call 13:17
108+ (wing 13:17 record-identity)
109+ (tuple 13:33
110+ (face 13:34 x (str 13:36 "hi"))
111+ (face 13:41 y (lit 13:43 ~zod)))
112+ (lit 13:49 1))))
113+ (value 14:1 pending
114+ (group 14:12
115+ (call 14:13
116+ (wing 14:13 record-identity)
117+ (lit 14:29 1)
118+ (tuple 14:31
119+ (face 14:32 x (str 14:34 "hi"))
120+ (face 14:39 y (lit 14:41 %unresolved))))))
121+ (value 15:1 generic-apply
122+ (gate 15:18
123+ (cell 15:21
124+ (face 15:22 f
125+ (fn 15:24 (tvar 15:27 A) (tvar 15:29 B)))
126+ (face 15:32 input (tvar 15:38 A)))
127+ (group 15:41
128+ (call 15:42 (wing 15:42 f) (wing 15:44 input)))))
129+ (value 16:1 accepts-tuple
130+ (gate 16:18
131+ (face 16:21 x
132+ (cell 16:23 (aura 16:24 @t) (aura 16:27 @p)))
133+ (wing 16:31 x)))
134+ (value 17:1 generic-faces
135+ (group 17:18
136+ (call 17:19
137+ (wing 17:19 generic-apply)
138+ (wing 17:33 accepts-tuple)
139+ (tuple 17:47
140+ (face 17:48 x (str 17:50 "hi"))
141+ (face 17:55 y (lit 17:57 ~zod))))))
142+ (value 18:1 unknown-callee
143+ (gate 18:19
144+ (bind 18:22 f)
145+ (group 18:24
146+ (call 18:25
147+ (wing 18:25 f)
148+ (tuple 18:27
149+ (face 18:28 x (str 18:30 "hi"))
150+ (face 18:35 y (lit 18:37 ~zod)))
151+ (lit 18:43 1)))))
152+ (value 19:1 first-pending
153+ (group 19:18
154+ (call 19:19
155+ (wing 19:19 record-identity)
156+ (lit 19:35 %unresolved)
157+ (tuple 19:47
158+ (face 19:48 x (str 19:50 "hi"))
159+ (face 19:55 y (lit 19:57 ~zod))))))
160+ (value 20:1 discarded-tag
161+ (gate 20:18
162+ (face 20:21 value (aura 20:27 @t))
163+ (body 21:3
164+ (trace 21:3
165+ (lit 21:6 %pending)
166+ (body 22:5
167+ (group 22:5
168+ (call 22:6
169+ (wing 22:6 record-identity)
170+ (lit 22:22 1)
171+ (tuple 22:24
172+ (face 22:25 x (wing 22:27 value))
173+ (face 22:33 y (lit 22:35 ~zod))))))))))
174+ (value 23:1 pick-first
175+ (gate 23:15
176+ (cell 23:18
177+ (face 23:19 first (tvar 23:25 A))
178+ (face 23:27 other (aura 23:33 @t)))
179+ (wing 23:37 first)))
180+ (value 24:1 first-record
181+ (group 24:17
182+ (call 24:18
183+ (wing 24:18 pick-first)
184+ (tuple 24:29
185+ (face 24:30 foo (str 24:34 "x"))
186+ (face 24:38 bar (lit 24:42 ~zod)))
187+ (str 24:48 "z"))))
188+ (value 25:1 matching-face-collision
189+ (group 25:28
190+ (call 25:29
191+ (wing 25:29 pick-first)
192+ (tuple 25:40
193+ (face 25:41 first
194+ (tuple 25:47
195+ (face 25:48 foo (str 25:52 "x"))
196+ (face 25:56 bar (lit 25:60 ~zod)))))
197+ (str 25:67 "z")))))
tests/golden/types-positional-faces/types.txtnew file+42
@@ -0,0 +1,42 @@
1+partial inference; module not checked
2+++ convert-record: $-([f=$-(A B) input=[a=A b=@t]] [value=B label=@t])
3+++ data: [a=@ud b=@t]
4+++ positional: [value=@t label=@t]
5+++ named: [value=@t label=@t]
6+++ record-identity: $-([n=@ud item=[x=@t y=@p]] [x=@t y=@p])
7+++ typed-record: [x=@t y=@p]
8+++ unfaced-identity: $-([n=@ud item=[@t @p]] [@t @p])
9+++ preserve-inner-faces: call result face propagation is not supported by partial inference
10+++ nested-identity: $-([n=@ud item=[inner=[@t @p] label=@t]] [inner=[@t @p] label=@t])
11+++ preserve-nested-faces: call result face propagation is not supported by partial inference
12+++ generic-identity: $-([n=@ud item=A] A)
13+++ preserve-generic: [x=@t y=@p]
14+++ wrong-order: call's sample and argument types do not unify
15+/tests/golden/types-positional-faces/source.jibb:13:17: called gate has type $-([n=@ud item=[x=@t y=@p]] [x=@t y=@p])
16+++ wrong-order (record-identity [x="hi" y=~zod] 1)
17+ ^
18+/tests/golden/types-positional-faces/source.jibb:13:33: argument has type [x=@t y=@p]
19+++ wrong-order (record-identity [x="hi" y=~zod] 1)
20+ ^
21+++ pending: call's sample and argument types do not unify
22+/tests/golden/types-positional-faces/source.jibb:14:13: called gate has type $-([n=@ud item=[x=@t y=@p]] [x=@t y=@p])
23+++ pending (record-identity 1 [x="hi" y=%unresolved])
24+ ^
25+/tests/golden/types-positional-faces/source.jibb:14:31: argument
26+++ pending (record-identity 1 [x="hi" y=%unresolved])
27+ ^
28+++ generic-apply: $-([f=$-(A B) input=A] B)
29+++ accepts-tuple: $-([@t @p] [@t @p])
30+++ generic-faces: call constraint is not supported by partial inference
31+++ unknown-callee: unresolved aura-variable inference
32+++ first-pending: call's sample and argument types do not unify
33+/tests/golden/types-positional-faces/source.jibb:19:19: called gate has type $-([n=@ud item=[x=@t y=@p]] [x=@t y=@p])
34+++ first-pending (record-identity %unresolved [x="hi" y=~zod])
35+ ^
36+/tests/golden/types-positional-faces/source.jibb:19:35: argument
37+++ first-pending (record-identity %unresolved [x="hi" y=~zod])
38+ ^
39+++ discarded-tag: tag needs context in partial inference
40+++ pick-first: $-([first=A other=@t] A)
41+++ first-record: [foo=@t bar=@p]
42+++ matching-face-collision: call result face propagation is not supported by partial inference
tests/golden/types-prelude-like/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Overview, Prelude: the `like` value maps an existing `(like A)` result with a gate.
2+tests: Present and absent results, position and nail types, independent cord and ship conversions, generic and named calls, and an incompatible converter; the same name is also a mold.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-prelude-like/modules.txtnew file+1
@@ -0,0 +1 @@
1+# Use the source-backed prelude.
tests/golden/types-prelude-like/source.jibbnew file+22
@@ -0,0 +1,22 @@
1+++ absent ^- (like @ud) [p=[p=1 q=2] q=~]
2+++ present ^- (like @ud) [p=[p=1 q=2] q=`[p=8 q=[p=[p=3 q=4] q=~[97 98]]]]
3+++ render (like |=(n=@ud "found") present)
4+++ absent-render (like |=(n=@ud "found") absent)
5+++ to-ship (like |=(n=@ud ~zod) present)
6+++ polymorphic |= result=(like A) (like |=(x=A x) result)
7+++ wrong (like |=(x=@p "no") present)
8+++ identity-type |= result=(like A) result
9+++ return-pos p.render
10+++ return-nail |= x=(like A)
11+ ?- q.x
12+ ~ ~
13+ [~ value] `q.value
14+++ named-render (like [f=|=(n=@ud "found") result=present])
15+++ named-absent (like [f=|=(n=@ud "found") result=absent])
16+++ named-ship (like [f=|=(n=@ud ~zod) result=present])
17+++ named-identity |= [f=$-(A B) result=(like A)] (like [f=f result=result])
18+++ named-wrong (like [f=|=(n=@p "wrong") result=present])
19+++ wrong-absent (like |=(n=@p "wrong") absent)
20+++ discarded-tag
21+ ~& %pending
22+ (like |=(n=@ud "found") present)
tests/golden/types-prelude-like/tokens.txtnew file+320
@@ -0,0 +1,320 @@
1+1:1 glyph ++
2+1:4 name absent
3+1:11 glyph ^-
4+1:14 glyph (
5+1:15 tight name like
6+1:20 aura @ud
7+1:23 tight glyph )
8+1:25 glyph [
9+1:26 tight name p
10+1:27 tight glyph =
11+1:28 tight glyph [
12+1:29 tight name p
13+1:30 tight glyph =
14+1:31 tight lit 1
15+1:33 name q
16+1:34 tight glyph =
17+1:35 tight lit 2
18+1:36 tight glyph ]
19+1:38 name q
20+1:39 tight glyph =
21+1:40 tight lit ~
22+1:41 tight glyph ]
23+2:1 NEWLINE
24+2:1 glyph ++
25+2:4 name present
26+2:12 glyph ^-
27+2:15 glyph (
28+2:16 tight name like
29+2:21 aura @ud
30+2:24 tight glyph )
31+2:26 glyph [
32+2:27 tight name p
33+2:28 tight glyph =
34+2:29 tight glyph [
35+2:30 tight name p
36+2:31 tight glyph =
37+2:32 tight lit 1
38+2:34 name q
39+2:35 tight glyph =
40+2:36 tight lit 2
41+2:37 tight glyph ]
42+2:39 name q
43+2:40 tight glyph =
44+2:41 tight glyph `
45+2:42 tight glyph [
46+2:43 tight name p
47+2:44 tight glyph =
48+2:45 tight lit 8
49+2:47 name q
50+2:48 tight glyph =
51+2:49 tight glyph [
52+2:50 tight name p
53+2:51 tight glyph =
54+2:52 tight glyph [
55+2:53 tight name p
56+2:54 tight glyph =
57+2:55 tight lit 3
58+2:57 name q
59+2:58 tight glyph =
60+2:59 tight lit 4
61+2:60 tight glyph ]
62+2:62 name q
63+2:63 tight glyph =
64+2:64 tight glyph ~[
65+2:66 tight lit 97
66+2:69 lit 98
67+2:71 tight glyph ]
68+2:72 tight glyph ]
69+2:73 tight glyph ]
70+2:74 tight glyph ]
71+3:1 NEWLINE
72+3:1 glyph ++
73+3:4 name render
74+3:11 glyph (
75+3:12 tight name like
76+3:17 glyph |=(
77+3:20 tight name n
78+3:21 tight glyph =
79+3:22 tight aura @ud
80+3:26 str "found"
81+3:33 tight glyph )
82+3:35 name present
83+3:42 tight glyph )
84+4:1 NEWLINE
85+4:1 glyph ++
86+4:4 name absent-render
87+4:18 glyph (
88+4:19 tight name like
89+4:24 glyph |=(
90+4:27 tight name n
91+4:28 tight glyph =
92+4:29 tight aura @ud
93+4:33 str "found"
94+4:40 tight glyph )
95+4:42 name absent
96+4:48 tight glyph )
97+5:1 NEWLINE
98+5:1 glyph ++
99+5:4 name to-ship
100+5:12 glyph (
101+5:13 tight name like
102+5:18 glyph |=(
103+5:21 tight name n
104+5:22 tight glyph =
105+5:23 tight aura @ud
106+5:27 lit ~zod
107+5:31 tight glyph )
108+5:33 name present
109+5:40 tight glyph )
110+6:1 NEWLINE
111+6:1 glyph ++
112+6:4 name polymorphic
113+6:16 glyph |=
114+6:19 name result
115+6:25 tight glyph =
116+6:26 tight glyph (
117+6:27 tight name like
118+6:32 tvar A
119+6:33 tight glyph )
120+6:35 glyph (
121+6:36 tight name like
122+6:41 glyph |=(
123+6:44 tight name x
124+6:45 tight glyph =
125+6:46 tight tvar A
126+6:48 name x
127+6:49 tight glyph )
128+6:51 name result
129+6:57 tight glyph )
130+7:1 NEWLINE
131+7:1 glyph ++
132+7:4 name wrong
133+7:10 glyph (
134+7:11 tight name like
135+7:16 glyph |=(
136+7:19 tight name x
137+7:20 tight glyph =
138+7:21 tight aura @p
139+7:24 str "no"
140+7:28 tight glyph )
141+7:30 name present
142+7:37 tight glyph )
143+8:1 NEWLINE
144+8:1 glyph ++
145+8:4 name identity-type
146+8:18 glyph |=
147+8:21 name result
148+8:27 tight glyph =
149+8:28 tight glyph (
150+8:29 tight name like
151+8:34 tvar A
152+8:35 tight glyph )
153+8:37 name result
154+9:1 NEWLINE
155+9:1 glyph ++
156+9:4 name return-pos
157+9:15 wing p.render
158+10:1 NEWLINE
159+10:1 glyph ++
160+10:4 name return-nail
161+10:16 glyph |=
162+10:19 name x
163+10:20 tight glyph =
164+10:21 tight glyph (
165+10:22 tight name like
166+10:27 tvar A
167+10:28 tight glyph )
168+11:3 INDENT
169+11:3 glyph ?-
170+11:6 wing q.x
171+12:5 INDENT
172+12:5 lit ~
173+12:7 lit ~
174+13:5 NEWLINE
175+13:5 glyph [
176+13:6 tight lit ~
177+13:8 name value
178+13:13 tight glyph ]
179+13:15 glyph `
180+13:16 tight wing q.value
181+14:1 DEDENT
182+14:1 DEDENT
183+14:1 NEWLINE
184+14:1 glyph ++
185+14:4 name named-render
186+14:17 glyph (
187+14:18 tight name like
188+14:23 glyph [
189+14:24 tight name f
190+14:25 tight glyph =
191+14:26 tight glyph |=(
192+14:29 tight name n
193+14:30 tight glyph =
194+14:31 tight aura @ud
195+14:35 str "found"
196+14:42 tight glyph )
197+14:44 name result
198+14:50 tight glyph =
199+14:51 tight name present
200+14:58 tight glyph ]
201+14:59 tight glyph )
202+15:1 NEWLINE
203+15:1 glyph ++
204+15:4 name named-absent
205+15:17 glyph (
206+15:18 tight name like
207+15:23 glyph [
208+15:24 tight name f
209+15:25 tight glyph =
210+15:26 tight glyph |=(
211+15:29 tight name n
212+15:30 tight glyph =
213+15:31 tight aura @ud
214+15:35 str "found"
215+15:42 tight glyph )
216+15:44 name result
217+15:50 tight glyph =
218+15:51 tight name absent
219+15:57 tight glyph ]
220+15:58 tight glyph )
221+16:1 NEWLINE
222+16:1 glyph ++
223+16:4 name named-ship
224+16:15 glyph (
225+16:16 tight name like
226+16:21 glyph [
227+16:22 tight name f
228+16:23 tight glyph =
229+16:24 tight glyph |=(
230+16:27 tight name n
231+16:28 tight glyph =
232+16:29 tight aura @ud
233+16:33 lit ~zod
234+16:37 tight glyph )
235+16:39 name result
236+16:45 tight glyph =
237+16:46 tight name present
238+16:53 tight glyph ]
239+16:54 tight glyph )
240+17:1 NEWLINE
241+17:1 glyph ++
242+17:4 name named-identity
243+17:19 glyph |=
244+17:22 glyph [
245+17:23 tight name f
246+17:24 tight glyph =
247+17:25 tight glyph $-(
248+17:28 tight tvar A
249+17:30 tvar B
250+17:31 tight glyph )
251+17:33 name result
252+17:39 tight glyph =
253+17:40 tight glyph (
254+17:41 tight name like
255+17:46 tvar A
256+17:47 tight glyph )
257+17:48 tight glyph ]
258+17:50 glyph (
259+17:51 tight name like
260+17:56 glyph [
261+17:57 tight name f
262+17:58 tight glyph =
263+17:59 tight name f
264+17:61 name result
265+17:67 tight glyph =
266+17:68 tight name result
267+17:74 tight glyph ]
268+17:75 tight glyph )
269+18:1 NEWLINE
270+18:1 glyph ++
271+18:4 name named-wrong
272+18:16 glyph (
273+18:17 tight name like
274+18:22 glyph [
275+18:23 tight name f
276+18:24 tight glyph =
277+18:25 tight glyph |=(
278+18:28 tight name n
279+18:29 tight glyph =
280+18:30 tight aura @p
281+18:33 str "wrong"
282+18:40 tight glyph )
283+18:42 name result
284+18:48 tight glyph =
285+18:49 tight name present
286+18:56 tight glyph ]
287+18:57 tight glyph )
288+19:1 NEWLINE
289+19:1 glyph ++
290+19:4 name wrong-absent
291+19:17 glyph (
292+19:18 tight name like
293+19:23 glyph |=(
294+19:26 tight name n
295+19:27 tight glyph =
296+19:28 tight aura @p
297+19:31 str "wrong"
298+19:38 tight glyph )
299+19:40 name absent
300+19:46 tight glyph )
301+20:1 NEWLINE
302+20:1 glyph ++
303+20:4 name discarded-tag
304+21:3 INDENT
305+21:3 glyph ~&
306+21:6 lit %pending
307+22:5 INDENT
308+22:5 glyph (
309+22:6 tight name like
310+22:11 glyph |=(
311+22:14 tight name n
312+22:15 tight glyph =
313+22:16 tight aura @ud
314+22:20 str "found"
315+22:27 tight glyph )
316+22:29 name present
317+22:36 tight glyph )
318+22:37 DEDENT
319+22:37 DEDENT
320+22:37 NEWLINE
tests/golden/types-prelude-like/tree.txtnew file+163
@@ -0,0 +1,163 @@
1+(module
2+ (value 1:1 absent
3+ (cast 1:11
4+ (apply 1:14 like (aura 1:20 @ud))
5+ (tuple 1:25
6+ (face 1:26 p
7+ (tuple 1:28
8+ (face 1:29 p (lit 1:31 1))
9+ (face 1:33 q (lit 1:35 2))))
10+ (face 1:38 q (lit 1:40 ~)))))
11+ (value 2:1 present
12+ (cast 2:12
13+ (apply 2:15 like (aura 2:21 @ud))
14+ (tuple 2:26
15+ (face 2:27 p
16+ (tuple 2:29
17+ (face 2:30 p (lit 2:32 1))
18+ (face 2:34 q (lit 2:36 2))))
19+ (face 2:39 q
20+ (unit 2:41
21+ (tuple 2:42
22+ (face 2:43 p (lit 2:45 8))
23+ (face 2:47 q
24+ (tuple 2:49
25+ (face 2:50 p
26+ (tuple 2:52
27+ (face 2:53 p (lit 2:55 3))
28+ (face 2:57 q (lit 2:59 4))))
29+ (face 2:62 q
30+ (list 2:64 (lit 2:66 97) (lit 2:69 98)))))))))))
31+ (value 3:1 render
32+ (group 3:11
33+ (call 3:12
34+ (wing 3:12 like)
35+ (gate-wide 3:17
36+ (face 3:20 n (aura 3:22 @ud))
37+ (str 3:26 "found"))
38+ (wing 3:35 present))))
39+ (value 4:1 absent-render
40+ (group 4:18
41+ (call 4:19
42+ (wing 4:19 like)
43+ (gate-wide 4:24
44+ (face 4:27 n (aura 4:29 @ud))
45+ (str 4:33 "found"))
46+ (wing 4:42 absent))))
47+ (value 5:1 to-ship
48+ (group 5:12
49+ (call 5:13
50+ (wing 5:13 like)
51+ (gate-wide 5:18
52+ (face 5:21 n (aura 5:23 @ud))
53+ (lit 5:27 ~zod))
54+ (wing 5:33 present))))
55+ (value 6:1 polymorphic
56+ (gate 6:16
57+ (face 6:19 result
58+ (apply 6:26 like (tvar 6:32 A)))
59+ (group 6:35
60+ (call 6:36
61+ (wing 6:36 like)
62+ (gate-wide 6:41
63+ (face 6:44 x (tvar 6:46 A))
64+ (wing 6:48 x))
65+ (wing 6:51 result)))))
66+ (value 7:1 wrong
67+ (group 7:10
68+ (call 7:11
69+ (wing 7:11 like)
70+ (gate-wide 7:16
71+ (face 7:19 x (aura 7:21 @p))
72+ (str 7:24 "no"))
73+ (wing 7:30 present))))
74+ (value 8:1 identity-type
75+ (gate 8:18
76+ (face 8:21 result
77+ (apply 8:28 like (tvar 8:34 A)))
78+ (wing 8:37 result)))
79+ (value 9:1 return-pos (wing 9:15 p.render))
80+ (value 10:1 return-nail
81+ (gate 10:16
82+ (face 10:19 x
83+ (apply 10:21 like (tvar 10:27 A)))
84+ (body 11:3
85+ (branch 11:3
86+ (wing 11:6 q.x)
87+ (arm 12:5 (lit 12:5 ~) (lit 12:7 ~))
88+ (arm 13:5
89+ (cell 13:5 (lit 13:6 ~) (bind 13:8 value))
90+ (unit 13:15 (wing 13:16 q.value)))))))
91+ (value 14:1 named-render
92+ (group 14:17
93+ (call 14:18
94+ (wing 14:18 like)
95+ (tuple 14:23
96+ (face 14:24 f
97+ (gate-wide 14:26
98+ (face 14:29 n (aura 14:31 @ud))
99+ (str 14:35 "found")))
100+ (face 14:44 result (wing 14:51 present))))))
101+ (value 15:1 named-absent
102+ (group 15:17
103+ (call 15:18
104+ (wing 15:18 like)
105+ (tuple 15:23
106+ (face 15:24 f
107+ (gate-wide 15:26
108+ (face 15:29 n (aura 15:31 @ud))
109+ (str 15:35 "found")))
110+ (face 15:44 result (wing 15:51 absent))))))
111+ (value 16:1 named-ship
112+ (group 16:15
113+ (call 16:16
114+ (wing 16:16 like)
115+ (tuple 16:21
116+ (face 16:22 f
117+ (gate-wide 16:24
118+ (face 16:27 n (aura 16:29 @ud))
119+ (lit 16:33 ~zod)))
120+ (face 16:39 result (wing 16:46 present))))))
121+ (value 17:1 named-identity
122+ (gate 17:19
123+ (cell 17:22
124+ (face 17:23 f
125+ (fn 17:25 (tvar 17:28 A) (tvar 17:30 B)))
126+ (face 17:33 result
127+ (apply 17:40 like (tvar 17:46 A))))
128+ (group 17:50
129+ (call 17:51
130+ (wing 17:51 like)
131+ (tuple 17:56
132+ (face 17:57 f (wing 17:59 f))
133+ (face 17:61 result (wing 17:68 result)))))))
134+ (value 18:1 named-wrong
135+ (group 18:16
136+ (call 18:17
137+ (wing 18:17 like)
138+ (tuple 18:22
139+ (face 18:23 f
140+ (gate-wide 18:25
141+ (face 18:28 n (aura 18:30 @p))
142+ (str 18:33 "wrong")))
143+ (face 18:42 result (wing 18:49 present))))))
144+ (value 19:1 wrong-absent
145+ (group 19:17
146+ (call 19:18
147+ (wing 19:18 like)
148+ (gate-wide 19:23
149+ (face 19:26 n (aura 19:28 @p))
150+ (str 19:31 "wrong"))
151+ (wing 19:40 absent))))
152+ (value 20:1 discarded-tag
153+ (body 21:3
154+ (trace 21:3
155+ (lit 21:6 %pending)
156+ (body 22:5
157+ (group 22:5
158+ (call 22:6
159+ (wing 22:6 like)
160+ (gate-wide 22:11
161+ (face 22:14 n (aura 22:16 @ud))
162+ (str 22:20 "found"))
163+ (wing 22:29 present))))))))
tests/golden/types-prelude-like/types.txtnew file+18
@@ -0,0 +1,18 @@
1+partial inference; module not checked
2+++ absent: [p=[p=@ud q=@ud] q=(unit [p=@ud q=[p=[p=@ud q=@ud] q=(list @tD)]])]
3+++ present: [p=[p=@ud q=@ud] q=(unit [p=@ud q=[p=[p=@ud q=@ud] q=(list @tD)]])]
4+++ render: [p=[p=@ud q=@ud] q=(unit [p=@t q=[p=[p=@ud q=@ud] q=(list @tD)]])]
5+++ absent-render: [p=[p=@ud q=@ud] q=(unit [p=@t q=[p=[p=@ud q=@ud] q=(list @tD)]])]
6+++ to-ship: [p=[p=@ud q=@ud] q=(unit [p=@p q=[p=[p=@ud q=@ud] q=(list @tD)]])]
7+++ polymorphic: $-([p=[p=@ud q=@ud] q=(unit [p=A q=[p=[p=@ud q=@ud] q=(list @tD)]])] [p=[p=@ud q=@ud] q=(unit [p=A q=[p=[p=@ud q=@ud] q=(list @tD)]])])
8+++ wrong: call constraint is not supported by partial inference
9+++ identity-type: $-([p=[p=@ud q=@ud] q=(unit [p=A q=[p=[p=@ud q=@ud] q=(list @tD)]])] [p=[p=@ud q=@ud] q=(unit [p=A q=[p=[p=@ud q=@ud] q=(list @tD)]])])
10+++ return-pos: [p=@ud q=@ud]
11+++ return-nail: unit branch results need unsupported inference
12+++ named-render: [p=[p=@ud q=@ud] q=(unit [p=@t q=[p=[p=@ud q=@ud] q=(list @tD)]])]
13+++ named-absent: [p=[p=@ud q=@ud] q=(unit [p=@t q=[p=[p=@ud q=@ud] q=(list @tD)]])]
14+++ named-ship: [p=[p=@ud q=@ud] q=(unit [p=@p q=[p=[p=@ud q=@ud] q=(list @tD)]])]
15+++ named-identity: $-([f=$-(A B) result=[p=[p=@ud q=@ud] q=(unit [p=A q=[p=[p=@ud q=@ud] q=(list @tD)]])]] [p=[p=@ud q=@ud] q=(unit [p=B q=[p=[p=@ud q=@ud] q=(list @tD)]])])
16+++ named-wrong: call constraint is not supported by partial inference
17+++ wrong-absent: call constraint is not supported by partial inference
18+++ discarded-tag: tag needs context in partial inference
tests/lib/jibb-positional-face-guards.hoonnew file+38
@@ -0,0 +1,38 @@
1+:: Sample labels may be peeled only at known positional call slots.
2+/+ jibb
3+|%
4+++ positional-face-guard-errors
5+ ^- (list tape)
6+ =/ text-type=itype:jibb [%atom %t]
7+ =/ ship-type=itype:jibb [%atom %p]
8+ =/ faced=itype:jibb [%cell [%face %x text-type] [%face %y ship-type]]
9+ =/ bare=itype:jibb [%cell text-type ship-type]
10+ =/ actual=itype:jibb [%cell text-type faced]
11+ =/ expected=itype:jibb [%cell [%face %a text-type] [%face %b faced]]
12+ =/ nested=itype:jibb [%cell [%face %a text-type] [%face %b bare]]
13+ =/ args=(list expr:jibb) ~[*expr:jibb *expr:jibb]
14+ =/ failures=(list tape) ~
15+ =? failures (itype-positional-face-asym:jibb args actual expected ~)
16+ ["expected sample labels were not peeled" failures]
17+ =? failures !(itype-positional-face-asym:jibb args actual nested ~)
18+ ["nested value faces were ignored" failures]
19+ :: A value face matching the slot name is still part of the value.
20+ =/ same-actual=itype:jibb [%cell text-type [%face %b text-type]]
21+ =/ same-expected=itype:jibb [%cell [%face %a text-type] [%face %b text-type]]
22+ =? failures !(itype-positional-face-asym:jibb args same-actual same-expected ~)
23+ ["a same-named value face was mistaken for a sample label" failures]
24+ =/ deep-actual=itype:jibb [%cell text-type [%cell [%face %b text-type] text-type]]
25+ =/ deep-expected=itype:jibb [%cell [%face %a text-type] [%face %b [%cell text-type text-type]]]
26+ =? failures !(itype-positional-face-asym:jibb args deep-actual deep-expected ~)
27+ ["a same-named nested value face was ignored" failures]
28+ =/ sub=isub:jibb ~[[0 expected]]
29+ =? failures !(itype-positional-face-asym:jibb args actual [%var 0] sub)
30+ ["a variable-bound expected spine was treated as structurally known" failures]
31+ =/ sub2=isub:jibb ~[[0 actual]]
32+ =? failures !(itype-positional-face-asym:jibb args [%var 0] expected sub2)
33+ ["a variable-bound actual spine was treated as structurally known" failures]
34+ (flop failures)
35+++ test-positional-face-guards
36+ ^- tang
37+ (turn positional-face-guard-errors |=(reason=tape leaf+reason))
38+--
tests/lib/jibb.hoon+616−604
@@ -1859,498 +1859,506 @@
1859/* tok-522 %txt /tests/golden/types-partial-unresolved-tag/tokens/txt
1859/* tok-522 %txt /tests/golden/types-partial-unresolved-tag/tokens/txt
1860/* tre-522 %txt /tests/golden/types-partial-unresolved-tag/tree/txt
1860/* tre-522 %txt /tests/golden/types-partial-unresolved-tag/tree/txt
1861/* typ-522 %txt /tests/golden/types-partial-unresolved-tag/types/txt
1861/* typ-522 %txt /tests/golden/types-partial-unresolved-tag/types/txt
1862−/* src-523 %jibb /tests/golden/types-prelude-arithmetic/source/jibb
1862+/* src-523 %jibb /tests/golden/types-positional-faces/source/jibb
1863−/* tok-523 %txt /tests/golden/types-prelude-arithmetic/tokens/txt
1863+/* tok-523 %txt /tests/golden/types-positional-faces/tokens/txt
1864−/* tre-523 %txt /tests/golden/types-prelude-arithmetic/tree/txt
1864+/* tre-523 %txt /tests/golden/types-positional-faces/tree/txt
1865−/* typ-523 %txt /tests/golden/types-prelude-arithmetic/types/txt
1865+/* typ-523 %txt /tests/golden/types-positional-faces/types/txt
1866−/* src-524 %jibb /tests/golden/types-prelude-bond/source/jibb
1866+/* src-524 %jibb /tests/golden/types-prelude-arithmetic/source/jibb
1867−/* tok-524 %txt /tests/golden/types-prelude-bond/tokens/txt
1867+/* tok-524 %txt /tests/golden/types-prelude-arithmetic/tokens/txt
1868−/* tre-524 %txt /tests/golden/types-prelude-bond/tree/txt
1868+/* tre-524 %txt /tests/golden/types-prelude-arithmetic/tree/txt
1869−/* typ-524 %txt /tests/golden/types-prelude-bond/types/txt
1869+/* typ-524 %txt /tests/golden/types-prelude-arithmetic/types/txt
1870−/* src-525 %jibb /tests/golden/types-prelude-cmd/source/jibb
1870+/* src-525 %jibb /tests/golden/types-prelude-bond/source/jibb
1871−/* tok-525 %txt /tests/golden/types-prelude-cmd/tokens/txt
1871+/* tok-525 %txt /tests/golden/types-prelude-bond/tokens/txt
1872−/* tre-525 %txt /tests/golden/types-prelude-cmd/tree/txt
1872+/* tre-525 %txt /tests/golden/types-prelude-bond/tree/txt
1873−/* typ-525 %txt /tests/golden/types-prelude-cmd/types/txt
1873+/* typ-525 %txt /tests/golden/types-prelude-bond/types/txt
1874−/* src-526 %jibb /tests/golden/types-prelude-direct/source/jibb
1874+/* src-526 %jibb /tests/golden/types-prelude-cmd/source/jibb
1875−/* tok-526 %txt /tests/golden/types-prelude-direct/tokens/txt
1875+/* tok-526 %txt /tests/golden/types-prelude-cmd/tokens/txt
1876−/* tre-526 %txt /tests/golden/types-prelude-direct/tree/txt
1876+/* tre-526 %txt /tests/golden/types-prelude-cmd/tree/txt
1877−/* typ-526 %txt /tests/golden/types-prelude-direct/types/txt
1877+/* typ-526 %txt /tests/golden/types-prelude-cmd/types/txt
1878−/* src-527 %jibb /tests/golden/types-prelude-functional/source/jibb
1878+/* src-527 %jibb /tests/golden/types-prelude-direct/source/jibb
1879−/* tok-527 %txt /tests/golden/types-prelude-functional/tokens/txt
1879+/* tok-527 %txt /tests/golden/types-prelude-direct/tokens/txt
1880−/* tre-527 %txt /tests/golden/types-prelude-functional/tree/txt
1880+/* tre-527 %txt /tests/golden/types-prelude-direct/tree/txt
1881−/* typ-527 %txt /tests/golden/types-prelude-functional/types/txt
1881+/* typ-527 %txt /tests/golden/types-prelude-direct/types/txt
1882−/* src-528 %jibb /tests/golden/types-prelude-generic-alias/source/jibb
1882+/* src-528 %jibb /tests/golden/types-prelude-functional/source/jibb
1883−/* tok-528 %txt /tests/golden/types-prelude-generic-alias/tokens/txt
1883+/* tok-528 %txt /tests/golden/types-prelude-functional/tokens/txt
1884−/* tre-528 %txt /tests/golden/types-prelude-generic-alias/tree/txt
1884+/* tre-528 %txt /tests/golden/types-prelude-functional/tree/txt
1885−/* mod-528-1 %jibb /tests/golden/types-prelude-generic-alias/modules/ui/alias-helper/jibb
1885+/* typ-528 %txt /tests/golden/types-prelude-functional/types/txt
1886−/* typ-528 %txt /tests/golden/types-prelude-generic-alias/types/txt
1886+/* src-529 %jibb /tests/golden/types-prelude-generic-alias/source/jibb
1887−/* mtre-528 %txt /tests/golden/types-prelude-generic-alias/module-trees/txt
1887+/* tok-529 %txt /tests/golden/types-prelude-generic-alias/tokens/txt
1888−/* src-529 %jibb /tests/golden/types-prelude-interface/source/jibb
1888+/* tre-529 %txt /tests/golden/types-prelude-generic-alias/tree/txt
1889−/* tok-529 %txt /tests/golden/types-prelude-interface/tokens/txt
1889+/* mod-529-1 %jibb /tests/golden/types-prelude-generic-alias/modules/ui/alias-helper/jibb
1890−/* tre-529 %txt /tests/golden/types-prelude-interface/tree/txt
1890+/* typ-529 %txt /tests/golden/types-prelude-generic-alias/types/txt
1891−/* mod-529-1 %jibb /tests/golden/types-prelude-interface/modules/ui/left/jibb
1891+/* mtre-529 %txt /tests/golden/types-prelude-generic-alias/module-trees/txt
1892−/* mod-529-2 %jibb /tests/golden/types-prelude-interface/modules/ui/right/jibb
1892+/* src-530 %jibb /tests/golden/types-prelude-interface/source/jibb
1893−/* typ-529 %txt /tests/golden/types-prelude-interface/types/txt
1893+/* tok-530 %txt /tests/golden/types-prelude-interface/tokens/txt
1894−/* mtre-529 %txt /tests/golden/types-prelude-interface/module-trees/txt
1894+/* tre-530 %txt /tests/golden/types-prelude-interface/tree/txt
1895−/* src-530 %jibb /tests/golden/types-prelude-list-alias/source/jibb
1895+/* mod-530-1 %jibb /tests/golden/types-prelude-interface/modules/ui/left/jibb
1896−/* tok-530 %txt /tests/golden/types-prelude-list-alias/tokens/txt
1896+/* mod-530-2 %jibb /tests/golden/types-prelude-interface/modules/ui/right/jibb
1897−/* tre-530 %txt /tests/golden/types-prelude-list-alias/tree/txt
1897+/* typ-530 %txt /tests/golden/types-prelude-interface/types/txt
1898−/* typ-530 %txt /tests/golden/types-prelude-list-alias/types/txt
1898+/* mtre-530 %txt /tests/golden/types-prelude-interface/module-trees/txt
1899−/* src-531 %jibb /tests/golden/types-prelude-list-functions/source/jibb
1899+/* src-531 %jibb /tests/golden/types-prelude-like/source/jibb
1900−/* tok-531 %txt /tests/golden/types-prelude-list-functions/tokens/txt
1900+/* tok-531 %txt /tests/golden/types-prelude-like/tokens/txt
1901−/* tre-531 %txt /tests/golden/types-prelude-list-functions/tree/txt
1901+/* tre-531 %txt /tests/golden/types-prelude-like/tree/txt
1902−/* mod-531-1 %jibb /tests/golden/types-prelude-list-functions/modules/ui/lib/jibb
1902+/* typ-531 %txt /tests/golden/types-prelude-like/types/txt
1903−/* typ-531 %txt /tests/golden/types-prelude-list-functions/types/txt
1903+/* src-532 %jibb /tests/golden/types-prelude-list-alias/source/jibb
1904−/* mtre-531 %txt /tests/golden/types-prelude-list-functions/module-trees/txt
1904+/* tok-532 %txt /tests/golden/types-prelude-list-alias/tokens/txt
1905−/* src-532 %jibb /tests/golden/types-prelude-list-helpers/source/jibb
1905+/* tre-532 %txt /tests/golden/types-prelude-list-alias/tree/txt
1906−/* tok-532 %txt /tests/golden/types-prelude-list-helpers/tokens/txt
1906+/* typ-532 %txt /tests/golden/types-prelude-list-alias/types/txt
1907−/* tre-532 %txt /tests/golden/types-prelude-list-helpers/tree/txt
1907+/* src-533 %jibb /tests/golden/types-prelude-list-functions/source/jibb
1908−/* typ-532 %txt /tests/golden/types-prelude-list-helpers/types/txt
1908+/* tok-533 %txt /tests/golden/types-prelude-list-functions/tokens/txt
1909−/* src-533 %jibb /tests/golden/types-prelude-predicates/source/jibb
1909+/* tre-533 %txt /tests/golden/types-prelude-list-functions/tree/txt
1910−/* tok-533 %txt /tests/golden/types-prelude-predicates/tokens/txt
1910+/* mod-533-1 %jibb /tests/golden/types-prelude-list-functions/modules/ui/lib/jibb
1911−/* tre-533 %txt /tests/golden/types-prelude-predicates/tree/txt
1911+/* typ-533 %txt /tests/golden/types-prelude-list-functions/types/txt
1912−/* typ-533 %txt /tests/golden/types-prelude-predicates/types/txt
1912+/* mtre-533 %txt /tests/golden/types-prelude-list-functions/module-trees/txt
1913−/* src-534 %jibb /tests/golden/types-prelude-unit-helpers/source/jibb
1913+/* src-534 %jibb /tests/golden/types-prelude-list-helpers/source/jibb
1914−/* tok-534 %txt /tests/golden/types-prelude-unit-helpers/tokens/txt
1914+/* tok-534 %txt /tests/golden/types-prelude-list-helpers/tokens/txt
1915−/* tre-534 %txt /tests/golden/types-prelude-unit-helpers/tree/txt
1915+/* tre-534 %txt /tests/golden/types-prelude-list-helpers/tree/txt
1916−/* typ-534 %txt /tests/golden/types-prelude-unit-helpers/types/txt
1916+/* typ-534 %txt /tests/golden/types-prelude-list-helpers/types/txt
1917−/* src-535 %jibb /tests/golden/types-proj-explicit-context/source/jibb
1917+/* src-535 %jibb /tests/golden/types-prelude-predicates/source/jibb
1918−/* tok-535 %txt /tests/golden/types-proj-explicit-context/tokens/txt
1918+/* tok-535 %txt /tests/golden/types-prelude-predicates/tokens/txt
1919−/* tre-535 %txt /tests/golden/types-proj-explicit-context/tree/txt
1919+/* tre-535 %txt /tests/golden/types-prelude-predicates/tree/txt
1920−/* typ-535 %txt /tests/golden/types-proj-explicit-context/types/txt
1920+/* typ-535 %txt /tests/golden/types-prelude-predicates/types/txt
1921−/* src-536 %jibb /tests/golden/types-proj-nested-no-implicit/source/jibb
1921+/* src-536 %jibb /tests/golden/types-prelude-unit-helpers/source/jibb
1922−/* tok-536 %txt /tests/golden/types-proj-nested-no-implicit/tokens/txt
1922+/* tok-536 %txt /tests/golden/types-prelude-unit-helpers/tokens/txt
1923−/* tre-536 %txt /tests/golden/types-proj-nested-no-implicit/tree/txt
1923+/* tre-536 %txt /tests/golden/types-prelude-unit-helpers/tree/txt
1924−/* typ-536 %txt /tests/golden/types-proj-nested-no-implicit/types/txt
1924+/* typ-536 %txt /tests/golden/types-prelude-unit-helpers/types/txt
1925−/* src-537 %jibb /tests/golden/types-proj-reserved-imported-definition/source/jibb
1925+/* src-537 %jibb /tests/golden/types-proj-explicit-context/source/jibb
1926−/* tok-537 %txt /tests/golden/types-proj-reserved-imported-definition/tokens/txt
1926+/* tok-537 %txt /tests/golden/types-proj-explicit-context/tokens/txt
1927−/* tre-537 %txt /tests/golden/types-proj-reserved-imported-definition/tree/txt
1927+/* tre-537 %txt /tests/golden/types-proj-explicit-context/tree/txt
1928−/* mod-537-1 %jibb /tests/golden/types-proj-reserved-imported-definition/modules/ui/lib/jibb
1928+/* typ-537 %txt /tests/golden/types-proj-explicit-context/types/txt
1929−/* typ-537 %txt /tests/golden/types-proj-reserved-imported-definition/types/txt
1929+/* src-538 %jibb /tests/golden/types-proj-nested-no-implicit/source/jibb
1930−/* mtre-537 %txt /tests/golden/types-proj-reserved-imported-definition/module-trees/txt
1930+/* tok-538 %txt /tests/golden/types-proj-nested-no-implicit/tokens/txt
1931−/* src-538 %jibb /tests/golden/types-proj-reserved-jibb-import/source/jibb
1931+/* tre-538 %txt /tests/golden/types-proj-nested-no-implicit/tree/txt
1932−/* tok-538 %txt /tests/golden/types-proj-reserved-jibb-import/tokens/txt
1932+/* typ-538 %txt /tests/golden/types-proj-nested-no-implicit/types/txt
1933−/* tre-538 %txt /tests/golden/types-proj-reserved-jibb-import/tree/txt
1933+/* src-539 %jibb /tests/golden/types-proj-reserved-imported-definition/source/jibb
1934−/* mod-538-1 %jibb /tests/golden/types-proj-reserved-jibb-import/modules/ui/lib/jibb
1934+/* tok-539 %txt /tests/golden/types-proj-reserved-imported-definition/tokens/txt
1935−/* typ-538 %txt /tests/golden/types-proj-reserved-jibb-import/types/txt
1935+/* tre-539 %txt /tests/golden/types-proj-reserved-imported-definition/tree/txt
1936−/* mtre-538 %txt /tests/golden/types-proj-reserved-jibb-import/module-trees/txt
1936+/* mod-539-1 %jibb /tests/golden/types-proj-reserved-imported-definition/modules/ui/lib/jibb
1937−/* src-539 %jibb /tests/golden/types-proj-reserved-local/source/jibb
1937+/* typ-539 %txt /tests/golden/types-proj-reserved-imported-definition/types/txt
1938−/* tok-539 %txt /tests/golden/types-proj-reserved-local/tokens/txt
1938+/* mtre-539 %txt /tests/golden/types-proj-reserved-imported-definition/module-trees/txt
1939−/* tre-539 %txt /tests/golden/types-proj-reserved-local/tree/txt
1939+/* src-540 %jibb /tests/golden/types-proj-reserved-jibb-import/source/jibb
1940−/* typ-539 %txt /tests/golden/types-proj-reserved-local/types/txt
1940+/* tok-540 %txt /tests/golden/types-proj-reserved-jibb-import/tokens/txt
1941−/* src-540 %jibb /tests/golden/types-proj-reserved-local-mold/source/jibb
1941+/* tre-540 %txt /tests/golden/types-proj-reserved-jibb-import/tree/txt
1942−/* tok-540 %txt /tests/golden/types-proj-reserved-local-mold/tokens/txt
1942+/* mod-540-1 %jibb /tests/golden/types-proj-reserved-jibb-import/modules/ui/lib/jibb
1943−/* tre-540 %txt /tests/golden/types-proj-reserved-local-mold/tree/txt
1943+/* typ-540 %txt /tests/golden/types-proj-reserved-jibb-import/types/txt
1944−/* typ-540 %txt /tests/golden/types-proj-reserved-local-mold/types/txt
1944+/* mtre-540 %txt /tests/golden/types-proj-reserved-jibb-import/module-trees/txt
1945−/* src-541 %jibb /tests/golden/types-proj-reserved-mark-import/source/jibb
1945+/* src-541 %jibb /tests/golden/types-proj-reserved-local/source/jibb
1946−/* tok-541 %txt /tests/golden/types-proj-reserved-mark-import/tokens/txt
1946+/* tok-541 %txt /tests/golden/types-proj-reserved-local/tokens/txt
1947−/* tre-541 %txt /tests/golden/types-proj-reserved-mark-import/tree/txt
1947+/* tre-541 %txt /tests/golden/types-proj-reserved-local/tree/txt
1948−/* typ-541 %txt /tests/golden/types-proj-reserved-mark-import/types/txt
1948+/* typ-541 %txt /tests/golden/types-proj-reserved-local/types/txt
1949−/* src-542 %jibb /tests/golden/types-proj-reserved-mold/source/jibb
1949+/* src-542 %jibb /tests/golden/types-proj-reserved-local-mold/source/jibb
1950−/* tok-542 %txt /tests/golden/types-proj-reserved-mold/tokens/txt
1950+/* tok-542 %txt /tests/golden/types-proj-reserved-local-mold/tokens/txt
1951−/* tre-542 %txt /tests/golden/types-proj-reserved-mold/tree/txt
1951+/* tre-542 %txt /tests/golden/types-proj-reserved-local-mold/tree/txt
1952−/* typ-542 %txt /tests/golden/types-proj-reserved-mold/types/txt
1952+/* typ-542 %txt /tests/golden/types-proj-reserved-local-mold/types/txt
1953−/* src-543 %jibb /tests/golden/types-proj-reserved-pattern/source/jibb
1953+/* src-543 %jibb /tests/golden/types-proj-reserved-mark-import/source/jibb
1954−/* tok-543 %txt /tests/golden/types-proj-reserved-pattern/tokens/txt
1954+/* tok-543 %txt /tests/golden/types-proj-reserved-mark-import/tokens/txt
1955−/* tre-543 %txt /tests/golden/types-proj-reserved-pattern/tree/txt
1955+/* tre-543 %txt /tests/golden/types-proj-reserved-mark-import/tree/txt
1956−/* typ-543 %txt /tests/golden/types-proj-reserved-pattern/types/txt
1956+/* typ-543 %txt /tests/golden/types-proj-reserved-mark-import/types/txt
1957−/* src-544 %jibb /tests/golden/types-proj-reserved-positive/source/jibb
1957+/* src-544 %jibb /tests/golden/types-proj-reserved-mold/source/jibb
1958−/* tok-544 %txt /tests/golden/types-proj-reserved-positive/tokens/txt
1958+/* tok-544 %txt /tests/golden/types-proj-reserved-mold/tokens/txt
1959−/* tre-544 %txt /tests/golden/types-proj-reserved-positive/tree/txt
1959+/* tre-544 %txt /tests/golden/types-proj-reserved-mold/tree/txt
1960−/* typ-544 %txt /tests/golden/types-proj-reserved-positive/types/txt
1960+/* typ-544 %txt /tests/golden/types-proj-reserved-mold/types/txt
1961−/* src-545 %jibb /tests/golden/types-proj-reserved-sample/source/jibb
1961+/* src-545 %jibb /tests/golden/types-proj-reserved-pattern/source/jibb
1962−/* tok-545 %txt /tests/golden/types-proj-reserved-sample/tokens/txt
1962+/* tok-545 %txt /tests/golden/types-proj-reserved-pattern/tokens/txt
1963−/* tre-545 %txt /tests/golden/types-proj-reserved-sample/tree/txt
1963+/* tre-545 %txt /tests/golden/types-proj-reserved-pattern/tree/txt
1964−/* typ-545 %txt /tests/golden/types-proj-reserved-sample/types/txt
1964+/* typ-545 %txt /tests/golden/types-proj-reserved-pattern/types/txt
1965−/* src-546 %jibb /tests/golden/types-proj-reserved-sur-import/source/jibb
1965+/* src-546 %jibb /tests/golden/types-proj-reserved-positive/source/jibb
1966−/* tok-546 %txt /tests/golden/types-proj-reserved-sur-import/tokens/txt
1966+/* tok-546 %txt /tests/golden/types-proj-reserved-positive/tokens/txt
1967−/* tre-546 %txt /tests/golden/types-proj-reserved-sur-import/tree/txt
1967+/* tre-546 %txt /tests/golden/types-proj-reserved-positive/tree/txt
1968−/* typ-546 %txt /tests/golden/types-proj-reserved-sur-import/types/txt
1968+/* typ-546 %txt /tests/golden/types-proj-reserved-positive/types/txt
1969−/* src-547 %jibb /tests/golden/types-proj-reserved-unused-pattern/source/jibb
1969+/* src-547 %jibb /tests/golden/types-proj-reserved-sample/source/jibb
1970−/* tok-547 %txt /tests/golden/types-proj-reserved-unused-pattern/tokens/txt
1970+/* tok-547 %txt /tests/golden/types-proj-reserved-sample/tokens/txt
1971−/* tre-547 %txt /tests/golden/types-proj-reserved-unused-pattern/tree/txt
1971+/* tre-547 %txt /tests/golden/types-proj-reserved-sample/tree/txt
1972−/* typ-547 %txt /tests/golden/types-proj-reserved-unused-pattern/types/txt
1972+/* typ-547 %txt /tests/golden/types-proj-reserved-sample/types/txt
1973−/* src-548 %jibb /tests/golden/types-proj-reserved-unused-sample/source/jibb
1973+/* src-548 %jibb /tests/golden/types-proj-reserved-sur-import/source/jibb
1974−/* tok-548 %txt /tests/golden/types-proj-reserved-unused-sample/tokens/txt
1974+/* tok-548 %txt /tests/golden/types-proj-reserved-sur-import/tokens/txt
1975−/* tre-548 %txt /tests/golden/types-proj-reserved-unused-sample/tree/txt
1975+/* tre-548 %txt /tests/golden/types-proj-reserved-sur-import/tree/txt
1976−/* typ-548 %txt /tests/golden/types-proj-reserved-unused-sample/types/txt
1976+/* typ-548 %txt /tests/golden/types-proj-reserved-sur-import/types/txt
1977−/* src-549 %jibb /tests/golden/types-proj-reserved-unused-value/source/jibb
1977+/* src-549 %jibb /tests/golden/types-proj-reserved-unused-pattern/source/jibb
1978−/* tok-549 %txt /tests/golden/types-proj-reserved-unused-value/tokens/txt
1978+/* tok-549 %txt /tests/golden/types-proj-reserved-unused-pattern/tokens/txt
1979−/* tre-549 %txt /tests/golden/types-proj-reserved-unused-value/tree/txt
1979+/* tre-549 %txt /tests/golden/types-proj-reserved-unused-pattern/tree/txt
1980−/* typ-549 %txt /tests/golden/types-proj-reserved-unused-value/types/txt
1980+/* typ-549 %txt /tests/golden/types-proj-reserved-unused-pattern/types/txt
1981−/* src-550 %jibb /tests/golden/types-proj-reserved-value/source/jibb
1981+/* src-550 %jibb /tests/golden/types-proj-reserved-unused-sample/source/jibb
1982−/* tok-550 %txt /tests/golden/types-proj-reserved-value/tokens/txt
1982+/* tok-550 %txt /tests/golden/types-proj-reserved-unused-sample/tokens/txt
1983−/* tre-550 %txt /tests/golden/types-proj-reserved-value/tree/txt
1983+/* tre-550 %txt /tests/golden/types-proj-reserved-unused-sample/tree/txt
1984−/* typ-550 %txt /tests/golden/types-proj-reserved-value/types/txt
1984+/* typ-550 %txt /tests/golden/types-proj-reserved-unused-sample/types/txt
1985−/* src-551 %jibb /tests/golden/types-proj-single-duplicate/source/jibb
1985+/* src-551 %jibb /tests/golden/types-proj-reserved-unused-value/source/jibb
1986−/* tok-551 %txt /tests/golden/types-proj-single-duplicate/tokens/txt
1986+/* tok-551 %txt /tests/golden/types-proj-reserved-unused-value/tokens/txt
1987−/* tre-551 %txt /tests/golden/types-proj-single-duplicate/tree/txt
1987+/* tre-551 %txt /tests/golden/types-proj-reserved-unused-value/tree/txt
1988−/* typ-551 %txt /tests/golden/types-proj-single-duplicate/types/txt
1988+/* typ-551 %txt /tests/golden/types-proj-reserved-unused-value/types/txt
1989−/* src-552 %jibb /tests/golden/types-proj-single-field/source/jibb
1989+/* src-552 %jibb /tests/golden/types-proj-reserved-value/source/jibb
1990−/* tok-552 %txt /tests/golden/types-proj-single-field/tokens/txt
1990+/* tok-552 %txt /tests/golden/types-proj-reserved-value/tokens/txt
1991−/* tre-552 %txt /tests/golden/types-proj-single-field/tree/txt
1991+/* tre-552 %txt /tests/golden/types-proj-reserved-value/tree/txt
1992−/* typ-552 %txt /tests/golden/types-proj-single-field/types/txt
1992+/* typ-552 %txt /tests/golden/types-proj-reserved-value/types/txt
1993−/* src-553 %jibb /tests/golden/types-proj-single-sample-face/source/jibb
1993+/* src-553 %jibb /tests/golden/types-proj-single-duplicate/source/jibb
1994−/* tok-553 %txt /tests/golden/types-proj-single-sample-face/tokens/txt
1994+/* tok-553 %txt /tests/golden/types-proj-single-duplicate/tokens/txt
1995−/* tre-553 %txt /tests/golden/types-proj-single-sample-face/tree/txt
1995+/* tre-553 %txt /tests/golden/types-proj-single-duplicate/tree/txt
1996−/* typ-553 %txt /tests/golden/types-proj-single-sample-face/types/txt
1996+/* typ-553 %txt /tests/golden/types-proj-single-duplicate/types/txt
1997−/* src-554 %jibb /tests/golden/types-proj-single-wrapped/source/jibb
1997+/* src-554 %jibb /tests/golden/types-proj-single-field/source/jibb
1998−/* tok-554 %txt /tests/golden/types-proj-single-wrapped/tokens/txt
1998+/* tok-554 %txt /tests/golden/types-proj-single-field/tokens/txt
1999−/* tre-554 %txt /tests/golden/types-proj-single-wrapped/tree/txt
1999+/* tre-554 %txt /tests/golden/types-proj-single-field/tree/txt
2000−/* typ-554 %txt /tests/golden/types-proj-single-wrapped/types/txt
2000+/* typ-554 %txt /tests/golden/types-proj-single-field/types/txt
2001−/* src-555 %jibb /tests/golden/types-qath-faces/source/jibb
2001+/* src-555 %jibb /tests/golden/types-proj-single-sample-face/source/jibb
2002−/* tok-555 %txt /tests/golden/types-qath-faces/tokens/txt
2002+/* tok-555 %txt /tests/golden/types-proj-single-sample-face/tokens/txt
2003−/* tre-555 %txt /tests/golden/types-qath-faces/tree/txt
2003+/* tre-555 %txt /tests/golden/types-proj-single-sample-face/tree/txt
2004−/* typ-555 %txt /tests/golden/types-qath-faces/types/txt
2004+/* typ-555 %txt /tests/golden/types-proj-single-sample-face/types/txt
2005−/* src-556 %jibb /tests/golden/types-qath-holes/source/jibb
2005+/* src-556 %jibb /tests/golden/types-proj-single-wrapped/source/jibb
2006−/* tok-556 %txt /tests/golden/types-qath-holes/tokens/txt
2006+/* tok-556 %txt /tests/golden/types-proj-single-wrapped/tokens/txt
2007−/* tre-556 %txt /tests/golden/types-qath-holes/tree/txt
2007+/* tre-556 %txt /tests/golden/types-proj-single-wrapped/tree/txt
2008−/* typ-556 %txt /tests/golden/types-qath-holes/types/txt
2008+/* typ-556 %txt /tests/golden/types-proj-single-wrapped/types/txt
2009−/* src-557 %jibb /tests/golden/types-qath-module-identity/source/jibb
2009+/* src-557 %jibb /tests/golden/types-qath-faces/source/jibb
2010−/* tok-557 %txt /tests/golden/types-qath-module-identity/tokens/txt
2010+/* tok-557 %txt /tests/golden/types-qath-faces/tokens/txt
2011−/* tre-557 %txt /tests/golden/types-qath-module-identity/tree/txt
2011+/* tre-557 %txt /tests/golden/types-qath-faces/tree/txt
2012−/* mod-557-1 %jibb /tests/golden/types-qath-module-identity/modules/ui/one/jibb
2012+/* typ-557 %txt /tests/golden/types-qath-faces/types/txt
2013−/* mod-557-2 %jibb /tests/golden/types-qath-module-identity/modules/ui/two/jibb
2013+/* src-558 %jibb /tests/golden/types-qath-holes/source/jibb
2014−/* mod-557-3 %jibb /tests/golden/types-qath-module-identity/modules/ui/mid/jibb
2014+/* tok-558 %txt /tests/golden/types-qath-holes/tokens/txt
2015−/* typ-557 %txt /tests/golden/types-qath-module-identity/types/txt
2015+/* tre-558 %txt /tests/golden/types-qath-holes/tree/txt
2016−/* mtre-557 %txt /tests/golden/types-qath-module-identity/module-trees/txt
2016+/* typ-558 %txt /tests/golden/types-qath-holes/types/txt
2017−/* src-558 %jibb /tests/golden/types-qath-recursive/source/jibb
2017+/* src-559 %jibb /tests/golden/types-qath-module-identity/source/jibb
2018−/* tok-558 %txt /tests/golden/types-qath-recursive/tokens/txt
2018+/* tok-559 %txt /tests/golden/types-qath-module-identity/tokens/txt
2019−/* tre-558 %txt /tests/golden/types-qath-recursive/tree/txt
2019+/* tre-559 %txt /tests/golden/types-qath-module-identity/tree/txt
2020−/* typ-558 %txt /tests/golden/types-qath-recursive/types/txt
2020+/* mod-559-1 %jibb /tests/golden/types-qath-module-identity/modules/ui/one/jibb
2021−/* src-559 %jibb /tests/golden/types-record-bound-variable/source/jibb
2021+/* mod-559-2 %jibb /tests/golden/types-qath-module-identity/modules/ui/two/jibb
2022−/* tok-559 %txt /tests/golden/types-record-bound-variable/tokens/txt
2022+/* mod-559-3 %jibb /tests/golden/types-qath-module-identity/modules/ui/mid/jibb
2023−/* tre-559 %txt /tests/golden/types-record-bound-variable/tree/txt
2023+/* typ-559 %txt /tests/golden/types-qath-module-identity/types/txt
2024−/* typ-559 %txt /tests/golden/types-record-bound-variable/types/txt
2024+/* mtre-559 %txt /tests/golden/types-qath-module-identity/module-trees/txt
2025−/* src-560 %jibb /tests/golden/types-record-cast-context/source/jibb
2025+/* src-560 %jibb /tests/golden/types-qath-recursive/source/jibb
2026−/* tok-560 %txt /tests/golden/types-record-cast-context/tokens/txt
2026+/* tok-560 %txt /tests/golden/types-qath-recursive/tokens/txt
2027−/* tre-560 %txt /tests/golden/types-record-cast-context/tree/txt
2027+/* tre-560 %txt /tests/golden/types-qath-recursive/tree/txt
2028−/* typ-560 %txt /tests/golden/types-record-cast-context/types/txt
2028+/* typ-560 %txt /tests/golden/types-qath-recursive/types/txt
2029−/* src-561 %jibb /tests/golden/types-record-change/source/jibb
2029+/* src-561 %jibb /tests/golden/types-record-bound-variable/source/jibb
2030−/* tok-561 %txt /tests/golden/types-record-change/tokens/txt
2030+/* tok-561 %txt /tests/golden/types-record-bound-variable/tokens/txt
2031−/* tre-561 %txt /tests/golden/types-record-change/tree/txt
2031+/* tre-561 %txt /tests/golden/types-record-bound-variable/tree/txt
2032−/* typ-561 %txt /tests/golden/types-record-change/types/txt
2032+/* typ-561 %txt /tests/golden/types-record-bound-variable/types/txt
2033−/* src-562 %jibb /tests/golden/types-record-change-generic/source/jibb
2033+/* src-562 %jibb /tests/golden/types-record-cast-context/source/jibb
2034−/* tok-562 %txt /tests/golden/types-record-change-generic/tokens/txt
2034+/* tok-562 %txt /tests/golden/types-record-cast-context/tokens/txt
2035−/* tre-562 %txt /tests/golden/types-record-change-generic/tree/txt
2035+/* tre-562 %txt /tests/golden/types-record-cast-context/tree/txt
2036−/* typ-562 %txt /tests/golden/types-record-change-generic/types/txt
2036+/* typ-562 %txt /tests/golden/types-record-cast-context/types/txt
2037−/* src-563 %jibb /tests/golden/types-record-faces/source/jibb
2037+/* src-563 %jibb /tests/golden/types-record-change/source/jibb
2038−/* tok-563 %txt /tests/golden/types-record-faces/tokens/txt
2038+/* tok-563 %txt /tests/golden/types-record-change/tokens/txt
2039−/* tre-563 %txt /tests/golden/types-record-faces/tree/txt
2039+/* tre-563 %txt /tests/golden/types-record-change/tree/txt
2040−/* typ-563 %txt /tests/golden/types-record-faces/types/txt
2040+/* typ-563 %txt /tests/golden/types-record-change/types/txt
2041−/* src-564 %jibb /tests/golden/types-record-field-edit-separate/source/jibb
2041+/* src-564 %jibb /tests/golden/types-record-change-generic/source/jibb
2042−/* tok-564 %txt /tests/golden/types-record-field-edit-separate/tokens/txt
2042+/* tok-564 %txt /tests/golden/types-record-change-generic/tokens/txt
2043−/* tre-564 %txt /tests/golden/types-record-field-edit-separate/tree/txt
2043+/* tre-564 %txt /tests/golden/types-record-change-generic/tree/txt
2044−/* typ-564 %txt /tests/golden/types-record-field-edit-separate/types/txt
2044+/* typ-564 %txt /tests/golden/types-record-change-generic/types/txt
2045−/* src-565 %jibb /tests/golden/types-record-field-expr-duplicate/source/jibb
2045+/* src-565 %jibb /tests/golden/types-record-faces/source/jibb
2046−/* tok-565 %txt /tests/golden/types-record-field-expr-duplicate/tokens/txt
2046+/* tok-565 %txt /tests/golden/types-record-faces/tokens/txt
2047−/* tre-565 %txt /tests/golden/types-record-field-expr-duplicate/tree/txt
2047+/* tre-565 %txt /tests/golden/types-record-faces/tree/txt
2048−/* typ-565 %txt /tests/golden/types-record-field-expr-duplicate/types/txt
2048+/* typ-565 %txt /tests/golden/types-record-faces/types/txt
2049−/* src-566 %jibb /tests/golden/types-record-field-expr-separate/source/jibb
2049+/* src-566 %jibb /tests/golden/types-record-field-edit-separate/source/jibb
2050−/* tok-566 %txt /tests/golden/types-record-field-expr-separate/tokens/txt
2050+/* tok-566 %txt /tests/golden/types-record-field-edit-separate/tokens/txt
2051−/* tre-566 %txt /tests/golden/types-record-field-expr-separate/tree/txt
2051+/* tre-566 %txt /tests/golden/types-record-field-edit-separate/tree/txt
2052−/* typ-566 %txt /tests/golden/types-record-field-expr-separate/types/txt
2052+/* typ-566 %txt /tests/golden/types-record-field-edit-separate/types/txt
2053−/* src-567 %jibb /tests/golden/types-record-field-module-reachable/source/jibb
2053+/* src-567 %jibb /tests/golden/types-record-field-expr-duplicate/source/jibb
2054−/* tok-567 %txt /tests/golden/types-record-field-module-reachable/tokens/txt
2054+/* tok-567 %txt /tests/golden/types-record-field-expr-duplicate/tokens/txt
2055−/* tre-567 %txt /tests/golden/types-record-field-module-reachable/tree/txt
2055+/* tre-567 %txt /tests/golden/types-record-field-expr-duplicate/tree/txt
2056−/* mod-567-1 %jibb /tests/golden/types-record-field-module-reachable/modules/ui/lib/jibb
2056+/* typ-567 %txt /tests/golden/types-record-field-expr-duplicate/types/txt
2057−/* typ-567 %txt /tests/golden/types-record-field-module-reachable/types/txt
2057+/* src-568 %jibb /tests/golden/types-record-field-expr-separate/source/jibb
2058−/* mtre-567 %txt /tests/golden/types-record-field-module-reachable/module-trees/txt
2058+/* tok-568 %txt /tests/golden/types-record-field-expr-separate/tokens/txt
2059−/* src-568 %jibb /tests/golden/types-record-field-module-unused/source/jibb
2059+/* tre-568 %txt /tests/golden/types-record-field-expr-separate/tree/txt
2060−/* tok-568 %txt /tests/golden/types-record-field-module-unused/tokens/txt
2060+/* typ-568 %txt /tests/golden/types-record-field-expr-separate/types/txt
2061−/* tre-568 %txt /tests/golden/types-record-field-module-unused/tree/txt
2061+/* src-569 %jibb /tests/golden/types-record-field-module-reachable/source/jibb
2062−/* mod-568-1 %jibb /tests/golden/types-record-field-module-unused/modules/ui/good/jibb
2062+/* tok-569 %txt /tests/golden/types-record-field-module-reachable/tokens/txt
2063−/* mod-568-2 %jibb /tests/golden/types-record-field-module-unused/modules/ui/unused/jibb
2063+/* tre-569 %txt /tests/golden/types-record-field-module-reachable/tree/txt
2064−/* typ-568 %txt /tests/golden/types-record-field-module-unused/types/txt
2064+/* mod-569-1 %jibb /tests/golden/types-record-field-module-reachable/modules/ui/lib/jibb
2065−/* mtre-568 %txt /tests/golden/types-record-field-module-unused/module-trees/txt
2065+/* typ-569 %txt /tests/golden/types-record-field-module-reachable/types/txt
2066−/* src-569 %jibb /tests/golden/types-record-field-nested-mold/source/jibb
2066+/* mtre-569 %txt /tests/golden/types-record-field-module-reachable/module-trees/txt
2067−/* tok-569 %txt /tests/golden/types-record-field-nested-mold/tokens/txt
2067+/* src-570 %jibb /tests/golden/types-record-field-module-unused/source/jibb
2068−/* tre-569 %txt /tests/golden/types-record-field-nested-mold/tree/txt
2068+/* tok-570 %txt /tests/golden/types-record-field-module-unused/tokens/txt
2069−/* typ-569 %txt /tests/golden/types-record-field-nested-mold/types/txt
2069+/* tre-570 %txt /tests/golden/types-record-field-module-unused/tree/txt
2070−/* src-570 %jibb /tests/golden/types-record-field-outer-inner/source/jibb
2070+/* mod-570-1 %jibb /tests/golden/types-record-field-module-unused/modules/ui/good/jibb
2071−/* tok-570 %txt /tests/golden/types-record-field-outer-inner/tokens/txt
2071+/* mod-570-2 %jibb /tests/golden/types-record-field-module-unused/modules/ui/unused/jibb
2072−/* tre-570 %txt /tests/golden/types-record-field-outer-inner/tree/txt
2072+/* typ-570 %txt /tests/golden/types-record-field-module-unused/types/txt
2073−/* typ-570 %txt /tests/golden/types-record-field-outer-inner/types/txt
2073+/* mtre-570 %txt /tests/golden/types-record-field-module-unused/module-trees/txt
2074−/* src-571 %jibb /tests/golden/types-record-field-sample-duplicate/source/jibb
2074+/* src-571 %jibb /tests/golden/types-record-field-nested-mold/source/jibb
2075−/* tok-571 %txt /tests/golden/types-record-field-sample-duplicate/tokens/txt
2075+/* tok-571 %txt /tests/golden/types-record-field-nested-mold/tokens/txt
2076−/* tre-571 %txt /tests/golden/types-record-field-sample-duplicate/tree/txt
2076+/* tre-571 %txt /tests/golden/types-record-field-nested-mold/tree/txt
2077−/* typ-571 %txt /tests/golden/types-record-field-sample-duplicate/types/txt
2077+/* typ-571 %txt /tests/golden/types-record-field-nested-mold/types/txt
2078−/* src-572 %jibb /tests/golden/types-record-field-separate-molds/source/jibb
2078+/* src-572 %jibb /tests/golden/types-record-field-outer-inner/source/jibb
2079−/* tok-572 %txt /tests/golden/types-record-field-separate-molds/tokens/txt
2079+/* tok-572 %txt /tests/golden/types-record-field-outer-inner/tokens/txt
2080−/* tre-572 %txt /tests/golden/types-record-field-separate-molds/tree/txt
2080+/* tre-572 %txt /tests/golden/types-record-field-outer-inner/tree/txt
2081−/* typ-572 %txt /tests/golden/types-record-field-separate-molds/types/txt
2081+/* typ-572 %txt /tests/golden/types-record-field-outer-inner/types/txt
2082−/* src-573 %jibb /tests/golden/types-record-field-unused-mold/source/jibb
2082+/* src-573 %jibb /tests/golden/types-record-field-sample-duplicate/source/jibb
2083−/* tok-573 %txt /tests/golden/types-record-field-unused-mold/tokens/txt
2083+/* tok-573 %txt /tests/golden/types-record-field-sample-duplicate/tokens/txt
2084−/* tre-573 %txt /tests/golden/types-record-field-unused-mold/tree/txt
2084+/* tre-573 %txt /tests/golden/types-record-field-sample-duplicate/tree/txt
2085−/* typ-573 %txt /tests/golden/types-record-field-unused-mold/types/txt
2085+/* typ-573 %txt /tests/golden/types-record-field-sample-duplicate/types/txt
2086−/* src-574 %jibb /tests/golden/types-record-import/source/jibb
2086+/* src-574 %jibb /tests/golden/types-record-field-separate-molds/source/jibb
2087−/* tok-574 %txt /tests/golden/types-record-import/tokens/txt
2087+/* tok-574 %txt /tests/golden/types-record-field-separate-molds/tokens/txt
2088−/* tre-574 %txt /tests/golden/types-record-import/tree/txt
2088+/* tre-574 %txt /tests/golden/types-record-field-separate-molds/tree/txt
2089−/* mod-574-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
2089+/* typ-574 %txt /tests/golden/types-record-field-separate-molds/types/txt
2090−/* typ-574 %txt /tests/golden/types-record-import/types/txt
2090+/* src-575 %jibb /tests/golden/types-record-field-unused-mold/source/jibb
2091−/* mtre-574 %txt /tests/golden/types-record-import/module-trees/txt
2091+/* tok-575 %txt /tests/golden/types-record-field-unused-mold/tokens/txt
2092−/* src-575 %jibb /tests/golden/types-record-local-scheme/source/jibb
2092+/* tre-575 %txt /tests/golden/types-record-field-unused-mold/tree/txt
2093−/* tok-575 %txt /tests/golden/types-record-local-scheme/tokens/txt
2093+/* typ-575 %txt /tests/golden/types-record-field-unused-mold/types/txt
2094−/* tre-575 %txt /tests/golden/types-record-local-scheme/tree/txt
2094+/* src-576 %jibb /tests/golden/types-record-import/source/jibb
2095−/* typ-575 %txt /tests/golden/types-record-local-scheme/types/txt
2095+/* tok-576 %txt /tests/golden/types-record-import/tokens/txt
2096−/* src-576 %jibb /tests/golden/types-record-nested/source/jibb
2096+/* tre-576 %txt /tests/golden/types-record-import/tree/txt
2097−/* tok-576 %txt /tests/golden/types-record-nested/tokens/txt
2097+/* mod-576-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
2098−/* tre-576 %txt /tests/golden/types-record-nested/tree/txt
2098+/* typ-576 %txt /tests/golden/types-record-import/types/txt
2099−/* typ-576 %txt /tests/golden/types-record-nested/types/txt
2099+/* mtre-576 %txt /tests/golden/types-record-import/module-trees/txt
2100−/* src-577 %jibb /tests/golden/types-record-to-tuple/source/jibb
2100+/* src-577 %jibb /tests/golden/types-record-local-scheme/source/jibb
2101−/* tok-577 %txt /tests/golden/types-record-to-tuple/tokens/txt
2101+/* tok-577 %txt /tests/golden/types-record-local-scheme/tokens/txt
2102−/* tre-577 %txt /tests/golden/types-record-to-tuple/tree/txt
2102+/* tre-577 %txt /tests/golden/types-record-local-scheme/tree/txt
2103−/* typ-577 %txt /tests/golden/types-record-to-tuple/types/txt
2103+/* typ-577 %txt /tests/golden/types-record-local-scheme/types/txt
2104−/* src-578 %jibb /tests/golden/types-recursion-scc-failures/source/jibb
2104+/* src-578 %jibb /tests/golden/types-record-nested/source/jibb
2105−/* tok-578 %txt /tests/golden/types-recursion-scc-failures/tokens/txt
2105+/* tok-578 %txt /tests/golden/types-record-nested/tokens/txt
2106−/* tre-578 %txt /tests/golden/types-recursion-scc-failures/tree/txt
2106+/* tre-578 %txt /tests/golden/types-record-nested/tree/txt
2107−/* typ-578 %txt /tests/golden/types-recursion-scc-failures/types/txt
2107+/* typ-578 %txt /tests/golden/types-record-nested/types/txt
2108−/* src-579 %jibb /tests/golden/types-recursion-scc-groups/source/jibb
2108+/* src-579 %jibb /tests/golden/types-record-to-tuple/source/jibb
2109−/* tok-579 %txt /tests/golden/types-recursion-scc-groups/tokens/txt
2109+/* tok-579 %txt /tests/golden/types-record-to-tuple/tokens/txt
2110−/* tre-579 %txt /tests/golden/types-recursion-scc-groups/tree/txt
2110+/* tre-579 %txt /tests/golden/types-record-to-tuple/tree/txt
2111−/* typ-579 %txt /tests/golden/types-recursion-scc-groups/types/txt
2111+/* typ-579 %txt /tests/golden/types-record-to-tuple/types/txt
2112−/* src-580 %jibb /tests/golden/types-recursion-scc-import/source/jibb
2112+/* src-580 %jibb /tests/golden/types-recursion-scc-failures/source/jibb
2113−/* tok-580 %txt /tests/golden/types-recursion-scc-import/tokens/txt
2113+/* tok-580 %txt /tests/golden/types-recursion-scc-failures/tokens/txt
2114−/* tre-580 %txt /tests/golden/types-recursion-scc-import/tree/txt
2114+/* tre-580 %txt /tests/golden/types-recursion-scc-failures/tree/txt
2115−/* mod-580-1 %jibb /tests/golden/types-recursion-scc-import/modules/ui/lib/jibb
2115+/* typ-580 %txt /tests/golden/types-recursion-scc-failures/types/txt
2116−/* typ-580 %txt /tests/golden/types-recursion-scc-import/types/txt
2116+/* src-581 %jibb /tests/golden/types-recursion-scc-groups/source/jibb
2117−/* mtre-580 %txt /tests/golden/types-recursion-scc-import/module-trees/txt
2117+/* tok-581 %txt /tests/golden/types-recursion-scc-groups/tokens/txt
2118−/* src-581 %jibb /tests/golden/types-recursion-scc-import-bad/source/jibb
2118+/* tre-581 %txt /tests/golden/types-recursion-scc-groups/tree/txt
2119−/* tok-581 %txt /tests/golden/types-recursion-scc-import-bad/tokens/txt
2119+/* typ-581 %txt /tests/golden/types-recursion-scc-groups/types/txt
2120−/* tre-581 %txt /tests/golden/types-recursion-scc-import-bad/tree/txt
2120+/* src-582 %jibb /tests/golden/types-recursion-scc-import/source/jibb
2121−/* mod-581-1 %jibb /tests/golden/types-recursion-scc-import-bad/modules/ui/lib/jibb
2121+/* tok-582 %txt /tests/golden/types-recursion-scc-import/tokens/txt
2122−/* typ-581 %txt /tests/golden/types-recursion-scc-import-bad/types/txt
2122+/* tre-582 %txt /tests/golden/types-recursion-scc-import/tree/txt
2123−/* mtre-581 %txt /tests/golden/types-recursion-scc-import-bad/module-trees/txt
2123+/* mod-582-1 %jibb /tests/golden/types-recursion-scc-import/modules/ui/lib/jibb
2124−/* src-582 %jibb /tests/golden/types-recursion-scc-local/source/jibb
2124+/* typ-582 %txt /tests/golden/types-recursion-scc-import/types/txt
2125−/* tok-582 %txt /tests/golden/types-recursion-scc-local/tokens/txt
2125+/* mtre-582 %txt /tests/golden/types-recursion-scc-import/module-trees/txt
2126−/* tre-582 %txt /tests/golden/types-recursion-scc-local/tree/txt
2126+/* src-583 %jibb /tests/golden/types-recursion-scc-import-bad/source/jibb
2127−/* typ-582 %txt /tests/golden/types-recursion-scc-local/types/txt
2127+/* tok-583 %txt /tests/golden/types-recursion-scc-import-bad/tokens/txt
2128−/* src-583 %jibb /tests/golden/types-recursion-scc-order/source/jibb
2128+/* tre-583 %txt /tests/golden/types-recursion-scc-import-bad/tree/txt
2129−/* tok-583 %txt /tests/golden/types-recursion-scc-order/tokens/txt
2129+/* mod-583-1 %jibb /tests/golden/types-recursion-scc-import-bad/modules/ui/lib/jibb
2130−/* tre-583 %txt /tests/golden/types-recursion-scc-order/tree/txt
2130+/* typ-583 %txt /tests/golden/types-recursion-scc-import-bad/types/txt
2131−/* typ-583 %txt /tests/golden/types-recursion-scc-order/types/txt
2131+/* mtre-583 %txt /tests/golden/types-recursion-scc-import-bad/module-trees/txt
2132−/* src-584 %jibb /tests/golden/types-recursion-scc-shadow/source/jibb
2132+/* src-584 %jibb /tests/golden/types-recursion-scc-local/source/jibb
2133−/* tok-584 %txt /tests/golden/types-recursion-scc-shadow/tokens/txt
2133+/* tok-584 %txt /tests/golden/types-recursion-scc-local/tokens/txt
2134−/* tre-584 %txt /tests/golden/types-recursion-scc-shadow/tree/txt
2134+/* tre-584 %txt /tests/golden/types-recursion-scc-local/tree/txt
2135−/* typ-584 %txt /tests/golden/types-recursion-scc-shadow/types/txt
2135+/* typ-584 %txt /tests/golden/types-recursion-scc-local/types/txt
2136−/* src-585 %jibb /tests/golden/types-recursive-branch/source/jibb
2136+/* src-585 %jibb /tests/golden/types-recursion-scc-order/source/jibb
2137−/* tok-585 %txt /tests/golden/types-recursive-branch/tokens/txt
2137+/* tok-585 %txt /tests/golden/types-recursion-scc-order/tokens/txt
2138−/* tre-585 %txt /tests/golden/types-recursive-branch/tree/txt
2138+/* tre-585 %txt /tests/golden/types-recursion-scc-order/tree/txt
2139−/* typ-585 %txt /tests/golden/types-recursive-branch/types/txt
2139+/* typ-585 %txt /tests/golden/types-recursion-scc-order/types/txt
2140−/* src-586 %jibb /tests/golden/types-recursive-gate/source/jibb
2140+/* src-586 %jibb /tests/golden/types-recursion-scc-shadow/source/jibb
2141−/* tok-586 %txt /tests/golden/types-recursive-gate/tokens/txt
2141+/* tok-586 %txt /tests/golden/types-recursion-scc-shadow/tokens/txt
2142−/* tre-586 %txt /tests/golden/types-recursive-gate/tree/txt
2142+/* tre-586 %txt /tests/golden/types-recursion-scc-shadow/tree/txt
2143−/* typ-586 %txt /tests/golden/types-recursive-gate/types/txt
2143+/* typ-586 %txt /tests/golden/types-recursion-scc-shadow/types/txt
2144−/* src-587 %jibb /tests/golden/types-recursive-sample/source/jibb
2144+/* src-587 %jibb /tests/golden/types-recursive-branch/source/jibb
2145−/* tok-587 %txt /tests/golden/types-recursive-sample/tokens/txt
2145+/* tok-587 %txt /tests/golden/types-recursive-branch/tokens/txt
2146−/* tre-587 %txt /tests/golden/types-recursive-sample/tree/txt
2146+/* tre-587 %txt /tests/golden/types-recursive-branch/tree/txt
2147−/* typ-587 %txt /tests/golden/types-recursive-sample/types/txt
2147+/* typ-587 %txt /tests/golden/types-recursive-branch/types/txt
2148−/* src-588 %jibb /tests/golden/types-scope-library-poke/source/jibb
2148+/* src-588 %jibb /tests/golden/types-recursive-gate/source/jibb
2149−/* tok-588 %txt /tests/golden/types-scope-library-poke/tokens/txt
2149+/* tok-588 %txt /tests/golden/types-recursive-gate/tokens/txt
2150−/* tre-588 %txt /tests/golden/types-scope-library-poke/tree/txt
2150+/* tre-588 %txt /tests/golden/types-recursive-gate/tree/txt
2151−/* typ-588 %txt /tests/golden/types-scope-library-poke/types/txt
2151+/* typ-588 %txt /tests/golden/types-recursive-gate/types/txt
2152−/* src-589 %jibb /tests/golden/types-scope-root-api/source/jibb
2152+/* src-589 %jibb /tests/golden/types-recursive-sample/source/jibb
2153−/* tok-589 %txt /tests/golden/types-scope-root-api/tokens/txt
2153+/* tok-589 %txt /tests/golden/types-recursive-sample/tokens/txt
2154−/* tre-589 %txt /tests/golden/types-scope-root-api/tree/txt
2154+/* tre-589 %txt /tests/golden/types-recursive-sample/tree/txt
2155−/* typ-589 %txt /tests/golden/types-scope-root-api/types/txt
2155+/* typ-589 %txt /tests/golden/types-recursive-sample/types/txt
2156−/* src-590 %jibb /tests/golden/types-scope-store-duplicate/source/jibb
2156+/* src-590 %jibb /tests/golden/types-scope-library-poke/source/jibb
2157−/* tok-590 %txt /tests/golden/types-scope-store-duplicate/tokens/txt
2157+/* tok-590 %txt /tests/golden/types-scope-library-poke/tokens/txt
2158−/* tre-590 %txt /tests/golden/types-scope-store-duplicate/tree/txt
2158+/* tre-590 %txt /tests/golden/types-scope-library-poke/tree/txt
2159−/* typ-590 %txt /tests/golden/types-scope-store-duplicate/types/txt
2159+/* typ-590 %txt /tests/golden/types-scope-library-poke/types/txt
2160−/* src-591 %jibb /tests/golden/types-scope-store-shadow/source/jibb
2160+/* src-591 %jibb /tests/golden/types-scope-root-api/source/jibb
2161−/* tok-591 %txt /tests/golden/types-scope-store-shadow/tokens/txt
2161+/* tok-591 %txt /tests/golden/types-scope-root-api/tokens/txt
2162−/* tre-591 %txt /tests/golden/types-scope-store-shadow/tree/txt
2162+/* tre-591 %txt /tests/golden/types-scope-root-api/tree/txt
2163−/* typ-591 %txt /tests/golden/types-scope-store-shadow/types/txt
2163+/* typ-591 %txt /tests/golden/types-scope-root-api/types/txt
2164−/* src-592 %jibb /tests/golden/types-single-case-pattern/source/jibb
2164+/* src-592 %jibb /tests/golden/types-scope-store-duplicate/source/jibb
2165−/* tok-592 %txt /tests/golden/types-single-case-pattern/tokens/txt
2165+/* tok-592 %txt /tests/golden/types-scope-store-duplicate/tokens/txt
2166−/* tre-592 %txt /tests/golden/types-single-case-pattern/tree/txt
2166+/* tre-592 %txt /tests/golden/types-scope-store-duplicate/tree/txt
2167−/* typ-592 %txt /tests/golden/types-single-case-pattern/types/txt
2167+/* typ-592 %txt /tests/golden/types-scope-store-duplicate/types/txt
2168−/* src-593 %jibb /tests/golden/types-string-interpolation/source/jibb
2168+/* src-593 %jibb /tests/golden/types-scope-store-shadow/source/jibb
2169−/* tok-593 %txt /tests/golden/types-string-interpolation/tokens/txt
2169+/* tok-593 %txt /tests/golden/types-scope-store-shadow/tokens/txt
2170−/* tre-593 %txt /tests/golden/types-string-interpolation/tree/txt
2170+/* tre-593 %txt /tests/golden/types-scope-store-shadow/tree/txt
2171−/* typ-593 %txt /tests/golden/types-string-interpolation/types/txt
2171+/* typ-593 %txt /tests/golden/types-scope-store-shadow/types/txt
2172−/* src-594 %jibb /tests/golden/types-tuple-context/source/jibb
2172+/* src-594 %jibb /tests/golden/types-single-case-pattern/source/jibb
2173−/* tok-594 %txt /tests/golden/types-tuple-context/tokens/txt
2173+/* tok-594 %txt /tests/golden/types-single-case-pattern/tokens/txt
2174−/* tre-594 %txt /tests/golden/types-tuple-context/tree/txt
2174+/* tre-594 %txt /tests/golden/types-single-case-pattern/tree/txt
2175−/* typ-594 %txt /tests/golden/types-tuple-context/types/txt
2175+/* typ-594 %txt /tests/golden/types-single-case-pattern/types/txt
2176−/* src-595 %jibb /tests/golden/types-tuple-context-nested/source/jibb
2176+/* src-595 %jibb /tests/golden/types-string-interpolation/source/jibb
2177−/* tok-595 %txt /tests/golden/types-tuple-context-nested/tokens/txt
2177+/* tok-595 %txt /tests/golden/types-string-interpolation/tokens/txt
2178−/* tre-595 %txt /tests/golden/types-tuple-context-nested/tree/txt
2178+/* tre-595 %txt /tests/golden/types-string-interpolation/tree/txt
2179−/* typ-595 %txt /tests/golden/types-tuple-context-nested/types/txt
2179+/* typ-595 %txt /tests/golden/types-string-interpolation/types/txt
2180−/* src-596 %jibb /tests/golden/types-union-alias/source/jibb
2180+/* src-596 %jibb /tests/golden/types-tuple-context/source/jibb
2181−/* tok-596 %txt /tests/golden/types-union-alias/tokens/txt
2181+/* tok-596 %txt /tests/golden/types-tuple-context/tokens/txt
2182−/* tre-596 %txt /tests/golden/types-union-alias/tree/txt
2182+/* tre-596 %txt /tests/golden/types-tuple-context/tree/txt
2183−/* typ-596 %txt /tests/golden/types-union-alias/types/txt
2183+/* typ-596 %txt /tests/golden/types-tuple-context/types/txt
2184−/* src-597 %jibb /tests/golden/types-union-branch-context/source/jibb
2184+/* src-597 %jibb /tests/golden/types-tuple-context-nested/source/jibb
2185−/* tok-597 %txt /tests/golden/types-union-branch-context/tokens/txt
2185+/* tok-597 %txt /tests/golden/types-tuple-context-nested/tokens/txt
2186−/* tre-597 %txt /tests/golden/types-union-branch-context/tree/txt
2186+/* tre-597 %txt /tests/golden/types-tuple-context-nested/tree/txt
2187−/* typ-597 %txt /tests/golden/types-union-branch-context/types/txt
2187+/* typ-597 %txt /tests/golden/types-tuple-context-nested/types/txt
2188−/* src-598 %jibb /tests/golden/types-union-branch-pending/source/jibb
2188+/* src-598 %jibb /tests/golden/types-union-alias/source/jibb
2189−/* tok-598 %txt /tests/golden/types-union-branch-pending/tokens/txt
2189+/* tok-598 %txt /tests/golden/types-union-alias/tokens/txt
2190−/* tre-598 %txt /tests/golden/types-union-branch-pending/tree/txt
2190+/* tre-598 %txt /tests/golden/types-union-alias/tree/txt
2191−/* typ-598 %txt /tests/golden/types-union-branch-pending/types/txt
2191+/* typ-598 %txt /tests/golden/types-union-alias/types/txt
2192−/* src-599 %jibb /tests/golden/types-union-constructor-shape/source/jibb
2192+/* src-599 %jibb /tests/golden/types-union-branch-context/source/jibb
2193−/* tok-599 %txt /tests/golden/types-union-constructor-shape/tokens/txt
2193+/* tok-599 %txt /tests/golden/types-union-branch-context/tokens/txt
2194−/* tre-599 %txt /tests/golden/types-union-constructor-shape/tree/txt
2194+/* tre-599 %txt /tests/golden/types-union-branch-context/tree/txt
2195−/* typ-599 %txt /tests/golden/types-union-constructor-shape/types/txt
2195+/* typ-599 %txt /tests/golden/types-union-branch-context/types/txt
2196−/* src-600 %jibb /tests/golden/types-union-context-flow/source/jibb
2196+/* src-600 %jibb /tests/golden/types-union-branch-pending/source/jibb
2197−/* tok-600 %txt /tests/golden/types-union-context-flow/tokens/txt
2197+/* tok-600 %txt /tests/golden/types-union-branch-pending/tokens/txt
2198−/* tre-600 %txt /tests/golden/types-union-context-flow/tree/txt
2198+/* tre-600 %txt /tests/golden/types-union-branch-pending/tree/txt
2199−/* typ-600 %txt /tests/golden/types-union-context-flow/types/txt
2199+/* typ-600 %txt /tests/golden/types-union-branch-pending/types/txt
2200−/* src-601 %jibb /tests/golden/types-union-finite/source/jibb
2200+/* src-601 %jibb /tests/golden/types-union-constructor-shape/source/jibb
2201−/* tok-601 %txt /tests/golden/types-union-finite/tokens/txt
2201+/* tok-601 %txt /tests/golden/types-union-constructor-shape/tokens/txt
2202−/* tre-601 %txt /tests/golden/types-union-finite/tree/txt
2202+/* tre-601 %txt /tests/golden/types-union-constructor-shape/tree/txt
2203−/* typ-601 %txt /tests/golden/types-union-finite/types/txt
2203+/* typ-601 %txt /tests/golden/types-union-constructor-shape/types/txt
2204−/* src-602 %jibb /tests/golden/types-union-finite-context/source/jibb
2204+/* src-602 %jibb /tests/golden/types-union-context-flow/source/jibb
2205−/* tok-602 %txt /tests/golden/types-union-finite-context/tokens/txt
2205+/* tok-602 %txt /tests/golden/types-union-context-flow/tokens/txt
2206−/* tre-602 %txt /tests/golden/types-union-finite-context/tree/txt
2206+/* tre-602 %txt /tests/golden/types-union-context-flow/tree/txt
2207−/* typ-602 %txt /tests/golden/types-union-finite-context/types/txt
2207+/* typ-602 %txt /tests/golden/types-union-context-flow/types/txt
2208−/* src-603 %jibb /tests/golden/types-union-finite-generic/source/jibb
2208+/* src-603 %jibb /tests/golden/types-union-finite/source/jibb
2209−/* tok-603 %txt /tests/golden/types-union-finite-generic/tokens/txt
2209+/* tok-603 %txt /tests/golden/types-union-finite/tokens/txt
2210−/* tre-603 %txt /tests/golden/types-union-finite-generic/tree/txt
2210+/* tre-603 %txt /tests/golden/types-union-finite/tree/txt
2211−/* typ-603 %txt /tests/golden/types-union-finite-generic/types/txt
2211+/* typ-603 %txt /tests/golden/types-union-finite/types/txt
2212−/* src-604 %jibb /tests/golden/types-union-finite-limit/source/jibb
2212+/* src-604 %jibb /tests/golden/types-union-finite-context/source/jibb
2213−/* tok-604 %txt /tests/golden/types-union-finite-limit/tokens/txt
2213+/* tok-604 %txt /tests/golden/types-union-finite-context/tokens/txt
2214−/* tre-604 %txt /tests/golden/types-union-finite-limit/tree/txt
2214+/* tre-604 %txt /tests/golden/types-union-finite-context/tree/txt
2215−/* typ-604 %txt /tests/golden/types-union-finite-limit/types/txt
2215+/* typ-604 %txt /tests/golden/types-union-finite-context/types/txt
2216−/* src-605 %jibb /tests/golden/types-union-import/source/jibb
2216+/* src-605 %jibb /tests/golden/types-union-finite-generic/source/jibb
2217−/* tok-605 %txt /tests/golden/types-union-import/tokens/txt
2217+/* tok-605 %txt /tests/golden/types-union-finite-generic/tokens/txt
2218−/* tre-605 %txt /tests/golden/types-union-import/tree/txt
2218+/* tre-605 %txt /tests/golden/types-union-finite-generic/tree/txt
2219−/* mod-605-1 %jibb /tests/golden/types-union-import/modules/ui/lib/jibb
2219+/* typ-605 %txt /tests/golden/types-union-finite-generic/types/txt
2220−/* typ-605 %txt /tests/golden/types-union-import/types/txt
2220+/* src-606 %jibb /tests/golden/types-union-finite-limit/source/jibb
2221−/* mtre-605 %txt /tests/golden/types-union-import/module-trees/txt
2221+/* tok-606 %txt /tests/golden/types-union-finite-limit/tokens/txt
2222−/* src-606 %jibb /tests/golden/types-union-local-pending/source/jibb
2222+/* tre-606 %txt /tests/golden/types-union-finite-limit/tree/txt
2223−/* tok-606 %txt /tests/golden/types-union-local-pending/tokens/txt
2223+/* typ-606 %txt /tests/golden/types-union-finite-limit/types/txt
2224−/* tre-606 %txt /tests/golden/types-union-local-pending/tree/txt
2224+/* src-607 %jibb /tests/golden/types-union-import/source/jibb
2225−/* typ-606 %txt /tests/golden/types-union-local-pending/types/txt
2225+/* tok-607 %txt /tests/golden/types-union-import/tokens/txt
2226−/* src-607 %jibb /tests/golden/types-union-nonwing-subject/source/jibb
2226+/* tre-607 %txt /tests/golden/types-union-import/tree/txt
2227−/* tok-607 %txt /tests/golden/types-union-nonwing-subject/tokens/txt
2227+/* mod-607-1 %jibb /tests/golden/types-union-import/modules/ui/lib/jibb
2228−/* tre-607 %txt /tests/golden/types-union-nonwing-subject/tree/txt
2228+/* typ-607 %txt /tests/golden/types-union-import/types/txt
2229−/* typ-607 %txt /tests/golden/types-union-nonwing-subject/types/txt
2229+/* mtre-607 %txt /tests/golden/types-union-import/module-trees/txt
2230−/* src-608 %jibb /tests/golden/types-union-overlap/source/jibb
2230+/* src-608 %jibb /tests/golden/types-union-local-pending/source/jibb
2231−/* tok-608 %txt /tests/golden/types-union-overlap/tokens/txt
2231+/* tok-608 %txt /tests/golden/types-union-local-pending/tokens/txt
2232−/* tre-608 %txt /tests/golden/types-union-overlap/tree/txt
2232+/* tre-608 %txt /tests/golden/types-union-local-pending/tree/txt
2233−/* typ-608 %txt /tests/golden/types-union-overlap/types/txt
2233+/* typ-608 %txt /tests/golden/types-union-local-pending/types/txt
2234−/* src-609 %jibb /tests/golden/types-union-overlap-nested/source/jibb
2234+/* src-609 %jibb /tests/golden/types-union-nonwing-subject/source/jibb
2235−/* tok-609 %txt /tests/golden/types-union-overlap-nested/tokens/txt
2235+/* tok-609 %txt /tests/golden/types-union-nonwing-subject/tokens/txt
2236−/* tre-609 %txt /tests/golden/types-union-overlap-nested/tree/txt
2236+/* tre-609 %txt /tests/golden/types-union-nonwing-subject/tree/txt
2237−/* typ-609 %txt /tests/golden/types-union-overlap-nested/types/txt
2237+/* typ-609 %txt /tests/golden/types-union-nonwing-subject/types/txt
2238−/* src-610 %jibb /tests/golden/types-union-pattern-result-context/source/jibb
2238+/* src-610 %jibb /tests/golden/types-union-overlap/source/jibb
2239−/* tok-610 %txt /tests/golden/types-union-pattern-result-context/tokens/txt
2239+/* tok-610 %txt /tests/golden/types-union-overlap/tokens/txt
2240−/* tre-610 %txt /tests/golden/types-union-pattern-result-context/tree/txt
2240+/* tre-610 %txt /tests/golden/types-union-overlap/tree/txt
2241−/* typ-610 %txt /tests/golden/types-union-pattern-result-context/types/txt
2241+/* typ-610 %txt /tests/golden/types-union-overlap/types/txt
2242−/* src-611 %jibb /tests/golden/types-union-pattern-result-controls/source/jibb
2242+/* src-611 %jibb /tests/golden/types-union-overlap-nested/source/jibb
2243−/* tok-611 %txt /tests/golden/types-union-pattern-result-controls/tokens/txt
2243+/* tok-611 %txt /tests/golden/types-union-overlap-nested/tokens/txt
2244−/* tre-611 %txt /tests/golden/types-union-pattern-result-controls/tree/txt
2244+/* tre-611 %txt /tests/golden/types-union-overlap-nested/tree/txt
2245−/* typ-611 %txt /tests/golden/types-union-pattern-result-controls/types/txt
2245+/* typ-611 %txt /tests/golden/types-union-overlap-nested/types/txt
2246−/* src-612 %jibb /tests/golden/types-union-patterns/source/jibb
2246+/* src-612 %jibb /tests/golden/types-union-pattern-result-context/source/jibb
2247−/* tok-612 %txt /tests/golden/types-union-patterns/tokens/txt
2247+/* tok-612 %txt /tests/golden/types-union-pattern-result-context/tokens/txt
2248−/* tre-612 %txt /tests/golden/types-union-patterns/tree/txt
2248+/* tre-612 %txt /tests/golden/types-union-pattern-result-context/tree/txt
2249−/* typ-612 %txt /tests/golden/types-union-patterns/types/txt
2249+/* typ-612 %txt /tests/golden/types-union-pattern-result-context/types/txt
2250−/* src-613 %jibb /tests/golden/types-union-patterns-generic/source/jibb
2250+/* src-613 %jibb /tests/golden/types-union-pattern-result-controls/source/jibb
2251−/* tok-613 %txt /tests/golden/types-union-patterns-generic/tokens/txt
2251+/* tok-613 %txt /tests/golden/types-union-pattern-result-controls/tokens/txt
2252−/* tre-613 %txt /tests/golden/types-union-patterns-generic/tree/txt
2252+/* tre-613 %txt /tests/golden/types-union-pattern-result-controls/tree/txt
2253−/* typ-613 %txt /tests/golden/types-union-patterns-generic/types/txt
2253+/* typ-613 %txt /tests/golden/types-union-pattern-result-controls/types/txt
2254−/* src-614 %jibb /tests/golden/types-union-patterns-import/source/jibb
2254+/* src-614 %jibb /tests/golden/types-union-patterns/source/jibb
2255−/* tok-614 %txt /tests/golden/types-union-patterns-import/tokens/txt
2255+/* tok-614 %txt /tests/golden/types-union-patterns/tokens/txt
2256−/* tre-614 %txt /tests/golden/types-union-patterns-import/tree/txt
2256+/* tre-614 %txt /tests/golden/types-union-patterns/tree/txt
2257−/* mod-614-1 %jibb /tests/golden/types-union-patterns-import/modules/ui/lib/jibb
2257+/* typ-614 %txt /tests/golden/types-union-patterns/types/txt
2258−/* typ-614 %txt /tests/golden/types-union-patterns-import/types/txt
2258+/* src-615 %jibb /tests/golden/types-union-patterns-generic/source/jibb
2259−/* mtre-614 %txt /tests/golden/types-union-patterns-import/module-trees/txt
2259+/* tok-615 %txt /tests/golden/types-union-patterns-generic/tokens/txt
2260−/* src-615 %jibb /tests/golden/types-union-phantom-generic/source/jibb
2260+/* tre-615 %txt /tests/golden/types-union-patterns-generic/tree/txt
2261−/* tok-615 %txt /tests/golden/types-union-phantom-generic/tokens/txt
2261+/* typ-615 %txt /tests/golden/types-union-patterns-generic/types/txt
2262−/* tre-615 %txt /tests/golden/types-union-phantom-generic/tree/txt
2262+/* src-616 %jibb /tests/golden/types-union-patterns-import/source/jibb
2263−/* typ-615 %txt /tests/golden/types-union-phantom-generic/types/txt
2263+/* tok-616 %txt /tests/golden/types-union-patterns-import/tokens/txt
2264−/* src-616 %jibb /tests/golden/types-union-polymorphic-identity/source/jibb
2264+/* tre-616 %txt /tests/golden/types-union-patterns-import/tree/txt
2265−/* tok-616 %txt /tests/golden/types-union-polymorphic-identity/tokens/txt
2265+/* mod-616-1 %jibb /tests/golden/types-union-patterns-import/modules/ui/lib/jibb
2266−/* tre-616 %txt /tests/golden/types-union-polymorphic-identity/tree/txt
2266+/* typ-616 %txt /tests/golden/types-union-patterns-import/types/txt
2267−/* mod-616-1 %jibb /tests/golden/types-union-polymorphic-identity/modules/ui/one/jibb
2267+/* mtre-616 %txt /tests/golden/types-union-patterns-import/module-trees/txt
2268−/* mod-616-2 %jibb /tests/golden/types-union-polymorphic-identity/modules/ui/two/jibb
2268+/* src-617 %jibb /tests/golden/types-union-phantom-generic/source/jibb
2269−/* typ-616 %txt /tests/golden/types-union-polymorphic-identity/types/txt
2269+/* tok-617 %txt /tests/golden/types-union-phantom-generic/tokens/txt
2270−/* mtre-616 %txt /tests/golden/types-union-polymorphic-identity/module-trees/txt
2270+/* tre-617 %txt /tests/golden/types-union-phantom-generic/tree/txt
2271−/* src-617 %jibb /tests/golden/types-union-print-cross-namespace/source/jibb
2271+/* typ-617 %txt /tests/golden/types-union-phantom-generic/types/txt
2272−/* tok-617 %txt /tests/golden/types-union-print-cross-namespace/tokens/txt
2272+/* src-618 %jibb /tests/golden/types-union-polymorphic-identity/source/jibb
2273−/* tre-617 %txt /tests/golden/types-union-print-cross-namespace/tree/txt
2273+/* tok-618 %txt /tests/golden/types-union-polymorphic-identity/tokens/txt
2274−/* mod-617-1 %jibb /tests/golden/types-union-print-cross-namespace/modules/ui/lib/jibb
2274+/* tre-618 %txt /tests/golden/types-union-polymorphic-identity/tree/txt
2275−/* typ-617 %txt /tests/golden/types-union-print-cross-namespace/types/txt
2275+/* mod-618-1 %jibb /tests/golden/types-union-polymorphic-identity/modules/ui/one/jibb
2276−/* mtre-617 %txt /tests/golden/types-union-print-cross-namespace/module-trees/txt
2276+/* mod-618-2 %jibb /tests/golden/types-union-polymorphic-identity/modules/ui/two/jibb
2277−/* src-618 %jibb /tests/golden/types-union-print-distinct/source/jibb
2277+/* typ-618 %txt /tests/golden/types-union-polymorphic-identity/types/txt
2278−/* tok-618 %txt /tests/golden/types-union-print-distinct/tokens/txt
2278+/* mtre-618 %txt /tests/golden/types-union-polymorphic-identity/module-trees/txt
2279−/* tre-618 %txt /tests/golden/types-union-print-distinct/tree/txt
2279+/* src-619 %jibb /tests/golden/types-union-print-cross-namespace/source/jibb
2280−/* mod-618-1 %jibb /tests/golden/types-union-print-distinct/modules/ui/left/jibb
2280+/* tok-619 %txt /tests/golden/types-union-print-cross-namespace/tokens/txt
2281−/* mod-618-2 %jibb /tests/golden/types-union-print-distinct/modules/ui/right/jibb
2281+/* tre-619 %txt /tests/golden/types-union-print-cross-namespace/tree/txt
2282−/* mod-618-3 %jibb /tests/golden/types-union-print-distinct/modules/ui/twin/jibb
2282+/* mod-619-1 %jibb /tests/golden/types-union-print-cross-namespace/modules/ui/lib/jibb
2283−/* typ-618 %txt /tests/golden/types-union-print-distinct/types/txt
2283+/* typ-619 %txt /tests/golden/types-union-print-cross-namespace/types/txt
2284−/* mtre-618 %txt /tests/golden/types-union-print-distinct/module-trees/txt
2284+/* mtre-619 %txt /tests/golden/types-union-print-cross-namespace/module-trees/txt
2285−/* src-619 %jibb /tests/golden/types-union-print-escape/source/jibb
2285+/* src-620 %jibb /tests/golden/types-union-print-distinct/source/jibb
2286−/* tok-619 %txt /tests/golden/types-union-print-escape/tokens/txt
2286+/* tok-620 %txt /tests/golden/types-union-print-distinct/tokens/txt
2287−/* tre-619 %txt /tests/golden/types-union-print-escape/tree/txt
2287+/* tre-620 %txt /tests/golden/types-union-print-distinct/tree/txt
2288−/* typ-619 %txt /tests/golden/types-union-print-escape/types/txt
2288+/* mod-620-1 %jibb /tests/golden/types-union-print-distinct/modules/ui/left/jibb
2289−/* src-620 %jibb /tests/golden/types-union-print-local/source/jibb
2289+/* mod-620-2 %jibb /tests/golden/types-union-print-distinct/modules/ui/right/jibb
2290−/* tok-620 %txt /tests/golden/types-union-print-local/tokens/txt
2290+/* mod-620-3 %jibb /tests/golden/types-union-print-distinct/modules/ui/twin/jibb
2291−/* tre-620 %txt /tests/golden/types-union-print-local/tree/txt
2291+/* typ-620 %txt /tests/golden/types-union-print-distinct/types/txt
2292−/* typ-620 %txt /tests/golden/types-union-print-local/types/txt
2292+/* mtre-620 %txt /tests/golden/types-union-print-distinct/module-trees/txt
2293−/* src-621 %jibb /tests/golden/types-union-print-nested/source/jibb
2293+/* src-621 %jibb /tests/golden/types-union-print-escape/source/jibb
2294−/* tok-621 %txt /tests/golden/types-union-print-nested/tokens/txt
2294+/* tok-621 %txt /tests/golden/types-union-print-escape/tokens/txt
2295−/* tre-621 %txt /tests/golden/types-union-print-nested/tree/txt
2295+/* tre-621 %txt /tests/golden/types-union-print-escape/tree/txt
2296−/* typ-621 %txt /tests/golden/types-union-print-nested/types/txt
2296+/* typ-621 %txt /tests/golden/types-union-print-escape/types/txt
2297−/* src-622 %jibb /tests/golden/types-union-print-same-origin/source/jibb
2297+/* src-622 %jibb /tests/golden/types-union-print-local/source/jibb
2298−/* tok-622 %txt /tests/golden/types-union-print-same-origin/tokens/txt
2298+/* tok-622 %txt /tests/golden/types-union-print-local/tokens/txt
2299−/* tre-622 %txt /tests/golden/types-union-print-same-origin/tree/txt
2299+/* tre-622 %txt /tests/golden/types-union-print-local/tree/txt
2300−/* mod-622-1 %jibb /tests/golden/types-union-print-same-origin/modules/ui/shared/jibb
2300+/* typ-622 %txt /tests/golden/types-union-print-local/types/txt
2301−/* typ-622 %txt /tests/golden/types-union-print-same-origin/types/txt
2301+/* src-623 %jibb /tests/golden/types-union-print-nested/source/jibb
2302−/* mtre-622 %txt /tests/golden/types-union-print-same-origin/module-trees/txt
2302+/* tok-623 %txt /tests/golden/types-union-print-nested/tokens/txt
2303−/* src-623 %jibb /tests/golden/types-union-print-transitive/source/jibb
2303+/* tre-623 %txt /tests/golden/types-union-print-nested/tree/txt
2304−/* tok-623 %txt /tests/golden/types-union-print-transitive/tokens/txt
2304+/* typ-623 %txt /tests/golden/types-union-print-nested/types/txt
2305−/* tre-623 %txt /tests/golden/types-union-print-transitive/tree/txt
2305+/* src-624 %jibb /tests/golden/types-union-print-same-origin/source/jibb
2306−/* mod-623-1 %jibb /tests/golden/types-union-print-transitive/modules/ui/mid/jibb
2306+/* tok-624 %txt /tests/golden/types-union-print-same-origin/tokens/txt
2307−/* mod-623-2 %jibb /tests/golden/types-union-print-transitive/modules/ui/base/jibb
2307+/* tre-624 %txt /tests/golden/types-union-print-same-origin/tree/txt
2308−/* typ-623 %txt /tests/golden/types-union-print-transitive/types/txt
2308+/* mod-624-1 %jibb /tests/golden/types-union-print-same-origin/modules/ui/shared/jibb
2309−/* mtre-623 %txt /tests/golden/types-union-print-transitive/module-trees/txt
2309+/* typ-624 %txt /tests/golden/types-union-print-same-origin/types/txt
2310−/* src-624 %jibb /tests/golden/types-union-singleton/source/jibb
2310+/* mtre-624 %txt /tests/golden/types-union-print-same-origin/module-trees/txt
2311−/* tok-624 %txt /tests/golden/types-union-singleton/tokens/txt
2311+/* src-625 %jibb /tests/golden/types-union-print-transitive/source/jibb
2312−/* tre-624 %txt /tests/golden/types-union-singleton/tree/txt
2312+/* tok-625 %txt /tests/golden/types-union-print-transitive/tokens/txt
2313−/* typ-624 %txt /tests/golden/types-union-singleton/types/txt
2313+/* tre-625 %txt /tests/golden/types-union-print-transitive/tree/txt
2314−/* src-625 %jibb /tests/golden/types-union-tag-atoms/source/jibb
2314+/* mod-625-1 %jibb /tests/golden/types-union-print-transitive/modules/ui/mid/jibb
2315−/* tok-625 %txt /tests/golden/types-union-tag-atoms/tokens/txt
2315+/* mod-625-2 %jibb /tests/golden/types-union-print-transitive/modules/ui/base/jibb
2316−/* tre-625 %txt /tests/golden/types-union-tag-atoms/tree/txt
2316+/* typ-625 %txt /tests/golden/types-union-print-transitive/types/txt
2317−/* typ-625 %txt /tests/golden/types-union-tag-atoms/types/txt
2317+/* mtre-625 %txt /tests/golden/types-union-print-transitive/module-trees/txt
2318−/* src-626 %jibb /tests/golden/types-union-tags/source/jibb
2318+/* src-626 %jibb /tests/golden/types-union-singleton/source/jibb
2319−/* tok-626 %txt /tests/golden/types-union-tags/tokens/txt
2319+/* tok-626 %txt /tests/golden/types-union-singleton/tokens/txt
2320−/* tre-626 %txt /tests/golden/types-union-tags/tree/txt
2320+/* tre-626 %txt /tests/golden/types-union-singleton/tree/txt
2321−/* typ-626 %txt /tests/golden/types-union-tags/types/txt
2321+/* typ-626 %txt /tests/golden/types-union-singleton/types/txt
2322−/* src-627 %jibb /tests/golden/types-union-unresolved/source/jibb
2322+/* src-627 %jibb /tests/golden/types-union-tag-atoms/source/jibb
2323−/* tok-627 %txt /tests/golden/types-union-unresolved/tokens/txt
2323+/* tok-627 %txt /tests/golden/types-union-tag-atoms/tokens/txt
2324−/* tre-627 %txt /tests/golden/types-union-unresolved/tree/txt
2324+/* tre-627 %txt /tests/golden/types-union-tag-atoms/tree/txt
2325−/* typ-627 %txt /tests/golden/types-union-unresolved/types/txt
2325+/* typ-627 %txt /tests/golden/types-union-tag-atoms/types/txt
2326−/* src-628 %jibb /tests/golden/types-union-unresolved-flow/source/jibb
2326+/* src-628 %jibb /tests/golden/types-union-tags/source/jibb
2327−/* tok-628 %txt /tests/golden/types-union-unresolved-flow/tokens/txt
2327+/* tok-628 %txt /tests/golden/types-union-tags/tokens/txt
2328−/* tre-628 %txt /tests/golden/types-union-unresolved-flow/tree/txt
2328+/* tre-628 %txt /tests/golden/types-union-tags/tree/txt
2329−/* typ-628 %txt /tests/golden/types-union-unresolved-flow/types/txt
2329+/* typ-628 %txt /tests/golden/types-union-tags/types/txt
2330−/* src-629 %jibb /tests/golden/types-unit-construction/source/jibb
2330+/* src-629 %jibb /tests/golden/types-union-unresolved/source/jibb
2331−/* tok-629 %txt /tests/golden/types-unit-construction/tokens/txt
2331+/* tok-629 %txt /tests/golden/types-union-unresolved/tokens/txt
2332−/* tre-629 %txt /tests/golden/types-unit-construction/tree/txt
2332+/* tre-629 %txt /tests/golden/types-union-unresolved/tree/txt
2333−/* typ-629 %txt /tests/golden/types-unit-construction/types/txt
2333+/* typ-629 %txt /tests/golden/types-union-unresolved/types/txt
2334−/* src-630 %jibb /tests/golden/types-unit-context/source/jibb
2334+/* src-630 %jibb /tests/golden/types-union-unresolved-flow/source/jibb
2335−/* tok-630 %txt /tests/golden/types-unit-context/tokens/txt
2335+/* tok-630 %txt /tests/golden/types-union-unresolved-flow/tokens/txt
2336−/* tre-630 %txt /tests/golden/types-unit-context/tree/txt
2336+/* tre-630 %txt /tests/golden/types-union-unresolved-flow/tree/txt
2337−/* typ-630 %txt /tests/golden/types-unit-context/types/txt
2337+/* typ-630 %txt /tests/golden/types-union-unresolved-flow/types/txt
2338−/* src-631 %jibb /tests/golden/types-unit-patterns/source/jibb
2338+/* src-631 %jibb /tests/golden/types-unit-construction/source/jibb
2339−/* tok-631 %txt /tests/golden/types-unit-patterns/tokens/txt
2339+/* tok-631 %txt /tests/golden/types-unit-construction/tokens/txt
2340−/* tre-631 %txt /tests/golden/types-unit-patterns/tree/txt
2340+/* tre-631 %txt /tests/golden/types-unit-construction/tree/txt
2341−/* typ-631 %txt /tests/golden/types-unit-patterns/types/txt
2341+/* typ-631 %txt /tests/golden/types-unit-construction/types/txt
2342−/* src-632 %jibb /tests/golden/types-value-cycle-shadow/source/jibb
2342+/* src-632 %jibb /tests/golden/types-unit-context/source/jibb
2343−/* tok-632 %txt /tests/golden/types-value-cycle-shadow/tokens/txt
2343+/* tok-632 %txt /tests/golden/types-unit-context/tokens/txt
2344−/* tre-632 %txt /tests/golden/types-value-cycle-shadow/tree/txt
2344+/* tre-632 %txt /tests/golden/types-unit-context/tree/txt
2345−/* typ-632 %txt /tests/golden/types-value-cycle-shadow/types/txt
2345+/* typ-632 %txt /tests/golden/types-unit-context/types/txt
2346−/* src-633 %jibb /tests/golden/types-value-cycle-unsupported/source/jibb
2346+/* src-633 %jibb /tests/golden/types-unit-patterns/source/jibb
2347−/* tok-633 %txt /tests/golden/types-value-cycle-unsupported/tokens/txt
2347+/* tok-633 %txt /tests/golden/types-unit-patterns/tokens/txt
2348−/* tre-633 %txt /tests/golden/types-value-cycle-unsupported/tree/txt
2348+/* tre-633 %txt /tests/golden/types-unit-patterns/tree/txt
2349−/* typ-633 %txt /tests/golden/types-value-cycle-unsupported/types/txt
2349+/* typ-633 %txt /tests/golden/types-unit-patterns/types/txt
2350−/* src-634 %jibb /tests/golden/types-value-cycles/source/jibb
2350+/* src-634 %jibb /tests/golden/types-value-cycle-shadow/source/jibb
2351−/* tok-634 %txt /tests/golden/types-value-cycles/tokens/txt
2351+/* tok-634 %txt /tests/golden/types-value-cycle-shadow/tokens/txt
2352−/* tre-634 %txt /tests/golden/types-value-cycles/tree/txt
2352+/* tre-634 %txt /tests/golden/types-value-cycle-shadow/tree/txt
2353−/* typ-634 %txt /tests/golden/types-value-cycles/types/txt
2353+/* typ-634 %txt /tests/golden/types-value-cycle-shadow/types/txt
2354+/* src-635 %jibb /tests/golden/types-value-cycle-unsupported/source/jibb
2355+/* tok-635 %txt /tests/golden/types-value-cycle-unsupported/tokens/txt
2356+/* tre-635 %txt /tests/golden/types-value-cycle-unsupported/tree/txt
2357+/* typ-635 %txt /tests/golden/types-value-cycle-unsupported/types/txt
2358+/* src-636 %jibb /tests/golden/types-value-cycles/source/jibb
2359+/* tok-636 %txt /tests/golden/types-value-cycles/tokens/txt
2360+/* tre-636 %txt /tests/golden/types-value-cycles/tree/txt
2361+/* typ-636 %txt /tests/golden/types-value-cycles/types/txt
2354=/ prepared-prelude (prepare-prelude-with-internal:jibb prelude-source internal-source)
2362=/ prepared-prelude (prepare-prelude-with-internal:jibb prelude-source internal-source)
2355|%
2363|%
2356:: one arm per case
2364:: one arm per case
@@ -3399,230 +3407,234 @@
3399 (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))
3407 (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))
3400++ test-types-partial-unresolved-tag
3408++ test-types-partial-unresolved-tag
3401 (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))
3409 (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))
3410+++ test-types-positional-faces
3411+ (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))
3402++ test-types-prelude-arithmetic
3412++ test-types-prelude-arithmetic
3403− (weld (check ~.types-prelude-arithmetic src-523 `tok-523 `tre-523) (check-module-types ~.types-prelude-arithmetic ~[%tests %golden ~.types-prelude-arithmetic %source %jibb] src-523 `typ-523 ~ ~ ~))
3413+ (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 ~ ~ ~))
3404++ test-types-prelude-bond
3414++ test-types-prelude-bond
3405− (weld (check ~.types-prelude-bond src-524 `tok-524 `tre-524) (check-module-types ~.types-prelude-bond ~[%tests %golden ~.types-prelude-bond %source %jibb] src-524 `typ-524 ~ ~ ~))
3415+ (weld (check ~.types-prelude-bond src-525 `tok-525 `tre-525) (check-module-types ~.types-prelude-bond ~[%tests %golden ~.types-prelude-bond %source %jibb] src-525 `typ-525 ~ ~ ~))
3406++ test-types-prelude-cmd
3416++ test-types-prelude-cmd
3407− (weld (check ~.types-prelude-cmd src-525 `tok-525 `tre-525) (check-module-types ~.types-prelude-cmd ~[%tests %golden ~.types-prelude-cmd %source %jibb] src-525 `typ-525 ~ ~ ~))
3417+ (weld (check ~.types-prelude-cmd src-526 `tok-526 `tre-526) (check-module-types ~.types-prelude-cmd ~[%tests %golden ~.types-prelude-cmd %source %jibb] src-526 `typ-526 ~ ~ ~))
3408++ test-types-prelude-direct
3418++ test-types-prelude-direct
3409− (weld (check ~.types-prelude-direct src-526 `tok-526 `tre-526) (check-module-types ~.types-prelude-direct ~[%tests %golden ~.types-prelude-direct %source %jibb] src-526 `typ-526 ~ ~ ~))
3419+ (weld (check ~.types-prelude-direct src-527 `tok-527 `tre-527) (check-module-types ~.types-prelude-direct ~[%tests %golden ~.types-prelude-direct %source %jibb] src-527 `typ-527 ~ ~ ~))
3410++ test-types-prelude-functional
3420++ test-types-prelude-functional
3411− (weld (check ~.types-prelude-functional src-527 `tok-527 `tre-527) (check-module-types ~.types-prelude-functional ~[%tests %golden ~.types-prelude-functional %source %jibb] src-527 `typ-527 ~ ~ ~))
3421+ (weld (check ~.types-prelude-functional src-528 `tok-528 `tre-528) (check-module-types ~.types-prelude-functional ~[%tests %golden ~.types-prelude-functional %source %jibb] src-528 `typ-528 ~ ~ ~))
3412++ test-types-prelude-generic-alias
3422++ test-types-prelude-generic-alias
3413− (weld (weld (check ~.types-prelude-generic-alias src-528 `tok-528 `tre-528) (check-module-types ~.types-prelude-generic-alias ~[%tests %golden ~.types-prelude-generic-alias %source %jibb] src-528 `typ-528 ~ ~ ~[['/ui/alias-helper.jibb' ~[~.ui ~.alias-helper ~.jibb] mod-528-1]])) (check-module-trees ~.types-prelude-generic-alias `mtre-528 ~[['/ui/alias-helper.jibb' ~[~.ui ~.alias-helper ~.jibb] mod-528-1]]))
3423+ (weld (weld (check ~.types-prelude-generic-alias src-529 `tok-529 `tre-529) (check-module-types ~.types-prelude-generic-alias ~[%tests %golden ~.types-prelude-generic-alias %source %jibb] src-529 `typ-529 ~ ~ ~[['/ui/alias-helper.jibb' ~[~.ui ~.alias-helper ~.jibb] mod-529-1]])) (check-module-trees ~.types-prelude-generic-alias `mtre-529 ~[['/ui/alias-helper.jibb' ~[~.ui ~.alias-helper ~.jibb] mod-529-1]]))
3414++ test-types-prelude-interface
3424++ test-types-prelude-interface
3415− (weld (weld (check ~.types-prelude-interface src-529 `tok-529 `tre-529) (check-module-types ~.types-prelude-interface ~[%tests %golden ~.types-prelude-interface %source %jibb] src-529 `typ-529 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-529-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-529-2]])) (check-module-trees ~.types-prelude-interface `mtre-529 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-529-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-529-2]]))
3425+ (weld (weld (check ~.types-prelude-interface src-530 `tok-530 `tre-530) (check-module-types ~.types-prelude-interface ~[%tests %golden ~.types-prelude-interface %source %jibb] src-530 `typ-530 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-530-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-530-2]])) (check-module-trees ~.types-prelude-interface `mtre-530 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-530-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-530-2]]))
3426+++ test-types-prelude-like
3427+ (weld (check ~.types-prelude-like src-531 `tok-531 `tre-531) (check-module-types ~.types-prelude-like ~[%tests %golden ~.types-prelude-like %source %jibb] src-531 `typ-531 ~ ~ ~))
3416++ test-types-prelude-list-alias
3428++ test-types-prelude-list-alias
3417− (weld (check ~.types-prelude-list-alias src-530 `tok-530 `tre-530) (check-module-types ~.types-prelude-list-alias ~[%tests %golden ~.types-prelude-list-alias %source %jibb] src-530 `typ-530 ~ ~ ~))
3429+ (weld (check ~.types-prelude-list-alias src-532 `tok-532 `tre-532) (check-module-types ~.types-prelude-list-alias ~[%tests %golden ~.types-prelude-list-alias %source %jibb] src-532 `typ-532 ~ ~ ~))
3418++ test-types-prelude-list-functions
3430++ test-types-prelude-list-functions
3419− (weld (weld (check ~.types-prelude-list-functions src-531 `tok-531 `tre-531) (check-module-types ~.types-prelude-list-functions ~[%tests %golden ~.types-prelude-list-functions %source %jibb] src-531 `typ-531 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-531-1]])) (check-module-trees ~.types-prelude-list-functions `mtre-531 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-531-1]]))
3431+ (weld (weld (check ~.types-prelude-list-functions src-533 `tok-533 `tre-533) (check-module-types ~.types-prelude-list-functions ~[%tests %golden ~.types-prelude-list-functions %source %jibb] src-533 `typ-533 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-533-1]])) (check-module-trees ~.types-prelude-list-functions `mtre-533 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-533-1]]))
3420++ test-types-prelude-list-helpers
3432++ test-types-prelude-list-helpers
3421− (weld (check ~.types-prelude-list-helpers src-532 `tok-532 `tre-532) (check-module-types ~.types-prelude-list-helpers ~[%tests %golden ~.types-prelude-list-helpers %source %jibb] src-532 `typ-532 ~ ~ ~))
3433+ (weld (check ~.types-prelude-list-helpers src-534 `tok-534 `tre-534) (check-module-types ~.types-prelude-list-helpers ~[%tests %golden ~.types-prelude-list-helpers %source %jibb] src-534 `typ-534 ~ ~ ~))
3422++ test-types-prelude-predicates
3434++ test-types-prelude-predicates
3423− (weld (check ~.types-prelude-predicates src-533 `tok-533 `tre-533) (check-module-types ~.types-prelude-predicates ~[%tests %golden ~.types-prelude-predicates %source %jibb] src-533 `typ-533 ~ ~ ~))
3435+ (weld (check ~.types-prelude-predicates src-535 `tok-535 `tre-535) (check-module-types ~.types-prelude-predicates ~[%tests %golden ~.types-prelude-predicates %source %jibb] src-535 `typ-535 ~ ~ ~))
3424++ test-types-prelude-unit-helpers
3436++ test-types-prelude-unit-helpers
3425− (weld (check ~.types-prelude-unit-helpers src-534 `tok-534 `tre-534) (check-module-types ~.types-prelude-unit-helpers ~[%tests %golden ~.types-prelude-unit-helpers %source %jibb] src-534 `typ-534 ~ ~ ~))
3437+ (weld (check ~.types-prelude-unit-helpers src-536 `tok-536 `tre-536) (check-module-types ~.types-prelude-unit-helpers ~[%tests %golden ~.types-prelude-unit-helpers %source %jibb] src-536 `typ-536 ~ ~ ~))
3426++ test-types-proj-explicit-context
3438++ test-types-proj-explicit-context
3427− (weld (check ~.types-proj-explicit-context src-535 `tok-535 `tre-535) (check-module-types ~.types-proj-explicit-context ~[%tests %golden ~.types-proj-explicit-context %source %jibb] src-535 `typ-535 ~ ~ ~))
3439+ (weld (check ~.types-proj-explicit-context src-537 `tok-537 `tre-537) (check-module-types ~.types-proj-explicit-context ~[%tests %golden ~.types-proj-explicit-context %source %jibb] src-537 `typ-537 ~ ~ ~))
3428++ test-types-proj-nested-no-implicit
3440++ test-types-proj-nested-no-implicit
3429− (weld (check ~.types-proj-nested-no-implicit src-536 `tok-536 `tre-536) (check-module-types ~.types-proj-nested-no-implicit ~[%tests %golden ~.types-proj-nested-no-implicit %source %jibb] src-536 `typ-536 ~ ~ ~))
3441+ (weld (check ~.types-proj-nested-no-implicit src-538 `tok-538 `tre-538) (check-module-types ~.types-proj-nested-no-implicit ~[%tests %golden ~.types-proj-nested-no-implicit %source %jibb] src-538 `typ-538 ~ ~ ~))
3430++ test-types-proj-reserved-imported-definition
3442++ test-types-proj-reserved-imported-definition
3431− (weld (weld (check ~.types-proj-reserved-imported-definition src-537 `tok-537 `tre-537) (check-module-types ~.types-proj-reserved-imported-definition ~[%tests %golden ~.types-proj-reserved-imported-definition %source %jibb] src-537 `typ-537 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-537-1]])) (check-module-trees ~.types-proj-reserved-imported-definition `mtre-537 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-537-1]]))
3443+ (weld (weld (check ~.types-proj-reserved-imported-definition src-539 `tok-539 `tre-539) (check-module-types ~.types-proj-reserved-imported-definition ~[%tests %golden ~.types-proj-reserved-imported-definition %source %jibb] src-539 `typ-539 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-539-1]])) (check-module-trees ~.types-proj-reserved-imported-definition `mtre-539 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-539-1]]))
3432++ test-types-proj-reserved-jibb-import
3444++ test-types-proj-reserved-jibb-import
3433− (weld (weld (check ~.types-proj-reserved-jibb-import src-538 `tok-538 `tre-538) (check-module-types ~.types-proj-reserved-jibb-import ~[%tests %golden ~.types-proj-reserved-jibb-import %source %jibb] src-538 `typ-538 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-538-1]])) (check-module-trees ~.types-proj-reserved-jibb-import `mtre-538 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-538-1]]))
3445+ (weld (weld (check ~.types-proj-reserved-jibb-import src-540 `tok-540 `tre-540) (check-module-types ~.types-proj-reserved-jibb-import ~[%tests %golden ~.types-proj-reserved-jibb-import %source %jibb] src-540 `typ-540 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-540-1]])) (check-module-trees ~.types-proj-reserved-jibb-import `mtre-540 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-540-1]]))
3434++ test-types-proj-reserved-local
3446++ test-types-proj-reserved-local
3435− (weld (check ~.types-proj-reserved-local src-539 `tok-539 `tre-539) (check-module-types ~.types-proj-reserved-local ~[%tests %golden ~.types-proj-reserved-local %source %jibb] src-539 `typ-539 ~ ~ ~))
3447+ (weld (check ~.types-proj-reserved-local src-541 `tok-541 `tre-541) (check-module-types ~.types-proj-reserved-local ~[%tests %golden ~.types-proj-reserved-local %source %jibb] src-541 `typ-541 ~ ~ ~))
3436++ test-types-proj-reserved-local-mold
3448++ test-types-proj-reserved-local-mold
3437− (weld (check ~.types-proj-reserved-local-mold src-540 `tok-540 `tre-540) (check-module-types ~.types-proj-reserved-local-mold ~[%tests %golden ~.types-proj-reserved-local-mold %source %jibb] src-540 `typ-540 ~ ~ ~))
3449+ (weld (check ~.types-proj-reserved-local-mold src-542 `tok-542 `tre-542) (check-module-types ~.types-proj-reserved-local-mold ~[%tests %golden ~.types-proj-reserved-local-mold %source %jibb] src-542 `typ-542 ~ ~ ~))
3438++ test-types-proj-reserved-mark-import
3450++ test-types-proj-reserved-mark-import
3439− (weld (check ~.types-proj-reserved-mark-import src-541 `tok-541 `tre-541) (check-module-types ~.types-proj-reserved-mark-import ~[%tests %golden ~.types-proj-reserved-mark-import %source %jibb] src-541 `typ-541 ~ ~ ~))
3451+ (weld (check ~.types-proj-reserved-mark-import src-543 `tok-543 `tre-543) (check-module-types ~.types-proj-reserved-mark-import ~[%tests %golden ~.types-proj-reserved-mark-import %source %jibb] src-543 `typ-543 ~ ~ ~))
3440++ test-types-proj-reserved-mold
3452++ test-types-proj-reserved-mold
3441− (weld (check ~.types-proj-reserved-mold src-542 `tok-542 `tre-542) (check-module-types ~.types-proj-reserved-mold ~[%tests %golden ~.types-proj-reserved-mold %source %jibb] src-542 `typ-542 ~ ~ ~))
3453+ (weld (check ~.types-proj-reserved-mold src-544 `tok-544 `tre-544) (check-module-types ~.types-proj-reserved-mold ~[%tests %golden ~.types-proj-reserved-mold %source %jibb] src-544 `typ-544 ~ ~ ~))
3442++ test-types-proj-reserved-pattern
3454++ test-types-proj-reserved-pattern
3443− (weld (check ~.types-proj-reserved-pattern src-543 `tok-543 `tre-543) (check-module-types ~.types-proj-reserved-pattern ~[%tests %golden ~.types-proj-reserved-pattern %source %jibb] src-543 `typ-543 ~ ~ ~))
3455+ (weld (check ~.types-proj-reserved-pattern src-545 `tok-545 `tre-545) (check-module-types ~.types-proj-reserved-pattern ~[%tests %golden ~.types-proj-reserved-pattern %source %jibb] src-545 `typ-545 ~ ~ ~))
3444++ test-types-proj-reserved-positive
3456++ test-types-proj-reserved-positive
3445− (weld (check ~.types-proj-reserved-positive src-544 `tok-544 `tre-544) (check-module-types ~.types-proj-reserved-positive ~[%tests %golden ~.types-proj-reserved-positive %source %jibb] src-544 `typ-544 ~ ~ ~))
3457+ (weld (check ~.types-proj-reserved-positive src-546 `tok-546 `tre-546) (check-module-types ~.types-proj-reserved-positive ~[%tests %golden ~.types-proj-reserved-positive %source %jibb] src-546 `typ-546 ~ ~ ~))
3446++ test-types-proj-reserved-sample
3458++ test-types-proj-reserved-sample
3447− (weld (check ~.types-proj-reserved-sample src-545 `tok-545 `tre-545) (check-module-types ~.types-proj-reserved-sample ~[%tests %golden ~.types-proj-reserved-sample %source %jibb] src-545 `typ-545 ~ ~ ~))
3459+ (weld (check ~.types-proj-reserved-sample src-547 `tok-547 `tre-547) (check-module-types ~.types-proj-reserved-sample ~[%tests %golden ~.types-proj-reserved-sample %source %jibb] src-547 `typ-547 ~ ~ ~))
3448++ test-types-proj-reserved-sur-import
3460++ test-types-proj-reserved-sur-import
3449− (weld (check ~.types-proj-reserved-sur-import src-546 `tok-546 `tre-546) (check-module-types ~.types-proj-reserved-sur-import ~[%tests %golden ~.types-proj-reserved-sur-import %source %jibb] src-546 `typ-546 ~ ~ ~))
3461+ (weld (check ~.types-proj-reserved-sur-import src-548 `tok-548 `tre-548) (check-module-types ~.types-proj-reserved-sur-import ~[%tests %golden ~.types-proj-reserved-sur-import %source %jibb] src-548 `typ-548 ~ ~ ~))
3450++ test-types-proj-reserved-unused-pattern
3462++ test-types-proj-reserved-unused-pattern
3451− (weld (check ~.types-proj-reserved-unused-pattern src-547 `tok-547 `tre-547) (check-module-types ~.types-proj-reserved-unused-pattern ~[%tests %golden ~.types-proj-reserved-unused-pattern %source %jibb] src-547 `typ-547 ~ ~ ~))
3463+ (weld (check ~.types-proj-reserved-unused-pattern src-549 `tok-549 `tre-549) (check-module-types ~.types-proj-reserved-unused-pattern ~[%tests %golden ~.types-proj-reserved-unused-pattern %source %jibb] src-549 `typ-549 ~ ~ ~))
3452++ test-types-proj-reserved-unused-sample
3464++ test-types-proj-reserved-unused-sample
3453− (weld (check ~.types-proj-reserved-unused-sample src-548 `tok-548 `tre-548) (check-module-types ~.types-proj-reserved-unused-sample ~[%tests %golden ~.types-proj-reserved-unused-sample %source %jibb] src-548 `typ-548 ~ ~ ~))
3465+ (weld (check ~.types-proj-reserved-unused-sample src-550 `tok-550 `tre-550) (check-module-types ~.types-proj-reserved-unused-sample ~[%tests %golden ~.types-proj-reserved-unused-sample %source %jibb] src-550 `typ-550 ~ ~ ~))
3454++ test-types-proj-reserved-unused-value
3466++ test-types-proj-reserved-unused-value
3455− (weld (check ~.types-proj-reserved-unused-value src-549 `tok-549 `tre-549) (check-module-types ~.types-proj-reserved-unused-value ~[%tests %golden ~.types-proj-reserved-unused-value %source %jibb] src-549 `typ-549 ~ ~ ~))
3467+ (weld (check ~.types-proj-reserved-unused-value src-551 `tok-551 `tre-551) (check-module-types ~.types-proj-reserved-unused-value ~[%tests %golden ~.types-proj-reserved-unused-value %source %jibb] src-551 `typ-551 ~ ~ ~))
3456++ test-types-proj-reserved-value
3468++ test-types-proj-reserved-value
3457− (weld (check ~.types-proj-reserved-value src-550 `tok-550 `tre-550) (check-module-types ~.types-proj-reserved-value ~[%tests %golden ~.types-proj-reserved-value %source %jibb] src-550 `typ-550 ~ ~ ~))
3469+ (weld (check ~.types-proj-reserved-value src-552 `tok-552 `tre-552) (check-module-types ~.types-proj-reserved-value ~[%tests %golden ~.types-proj-reserved-value %source %jibb] src-552 `typ-552 ~ ~ ~))
3458++ test-types-proj-single-duplicate
3470++ test-types-proj-single-duplicate
3459− (weld (check ~.types-proj-single-duplicate src-551 `tok-551 `tre-551) (check-module-types ~.types-proj-single-duplicate ~[%tests %golden ~.types-proj-single-duplicate %source %jibb] src-551 `typ-551 ~ ~ ~))
3471+ (weld (check ~.types-proj-single-duplicate src-553 `tok-553 `tre-553) (check-module-types ~.types-proj-single-duplicate ~[%tests %golden ~.types-proj-single-duplicate %source %jibb] src-553 `typ-553 ~ ~ ~))
3460++ test-types-proj-single-field
3472++ test-types-proj-single-field
3461− (weld (check ~.types-proj-single-field src-552 `tok-552 `tre-552) (check-module-types ~.types-proj-single-field ~[%tests %golden ~.types-proj-single-field %source %jibb] src-552 `typ-552 ~ ~ ~))
3473+ (weld (check ~.types-proj-single-field src-554 `tok-554 `tre-554) (check-module-types ~.types-proj-single-field ~[%tests %golden ~.types-proj-single-field %source %jibb] src-554 `typ-554 ~ ~ ~))
3462++ test-types-proj-single-sample-face
3474++ test-types-proj-single-sample-face
3463− (weld (check ~.types-proj-single-sample-face src-553 `tok-553 `tre-553) (check-module-types ~.types-proj-single-sample-face ~[%tests %golden ~.types-proj-single-sample-face %source %jibb] src-553 `typ-553 ~ ~ ~))
3475+ (weld (check ~.types-proj-single-sample-face src-555 `tok-555 `tre-555) (check-module-types ~.types-proj-single-sample-face ~[%tests %golden ~.types-proj-single-sample-face %source %jibb] src-555 `typ-555 ~ ~ ~))
3464++ test-types-proj-single-wrapped
3476++ test-types-proj-single-wrapped
3465− (weld (check ~.types-proj-single-wrapped src-554 `tok-554 `tre-554) (check-module-types ~.types-proj-single-wrapped ~[%tests %golden ~.types-proj-single-wrapped %source %jibb] src-554 `typ-554 ~ ~ ~))
3477+ (weld (check ~.types-proj-single-wrapped src-556 `tok-556 `tre-556) (check-module-types ~.types-proj-single-wrapped ~[%tests %golden ~.types-proj-single-wrapped %source %jibb] src-556 `typ-556 ~ ~ ~))
3466++ test-types-qath-faces
3478++ test-types-qath-faces
3467− (weld (check ~.types-qath-faces src-555 `tok-555 `tre-555) (check-module-types ~.types-qath-faces ~[%tests %golden ~.types-qath-faces %source %jibb] src-555 `typ-555 ~ ~ ~))
3479+ (weld (check ~.types-qath-faces src-557 `tok-557 `tre-557) (check-module-types ~.types-qath-faces ~[%tests %golden ~.types-qath-faces %source %jibb] src-557 `typ-557 ~ ~ ~))
3468++ test-types-qath-holes
3480++ test-types-qath-holes
3469− (weld (check ~.types-qath-holes src-556 `tok-556 `tre-556) (check-module-types ~.types-qath-holes ~[%tests %golden ~.types-qath-holes %source %jibb] src-556 `typ-556 ~ ~ ~))
3481+ (weld (check ~.types-qath-holes src-558 `tok-558 `tre-558) (check-module-types ~.types-qath-holes ~[%tests %golden ~.types-qath-holes %source %jibb] src-558 `typ-558 ~ ~ ~))
3470++ test-types-qath-module-identity
3482++ test-types-qath-module-identity
3471− (weld (weld (check ~.types-qath-module-identity src-557 `tok-557 `tre-557) (check-module-types ~.types-qath-module-identity ~[%tests %golden ~.types-qath-module-identity %source %jibb] src-557 `typ-557 ~ ~ ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-557-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-557-2] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-557-3]])) (check-module-trees ~.types-qath-module-identity `mtre-557 ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-557-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-557-2] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-557-3]]))
3483+ (weld (weld (check ~.types-qath-module-identity src-559 `tok-559 `tre-559) (check-module-types ~.types-qath-module-identity ~[%tests %golden ~.types-qath-module-identity %source %jibb] src-559 `typ-559 ~ ~ ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-559-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-559-2] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-559-3]])) (check-module-trees ~.types-qath-module-identity `mtre-559 ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-559-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-559-2] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-559-3]]))
3472++ test-types-qath-recursive
3484++ test-types-qath-recursive
3473− (weld (check ~.types-qath-recursive src-558 `tok-558 `tre-558) (check-module-types ~.types-qath-recursive ~[%tests %golden ~.types-qath-recursive %source %jibb] src-558 `typ-558 ~ ~ ~))
3485+ (weld (check ~.types-qath-recursive src-560 `tok-560 `tre-560) (check-module-types ~.types-qath-recursive ~[%tests %golden ~.types-qath-recursive %source %jibb] src-560 `typ-560 ~ ~ ~))
3474++ test-types-record-bound-variable
3486++ test-types-record-bound-variable
3475− (weld (check ~.types-record-bound-variable src-559 `tok-559 `tre-559) (check-types ~.types-record-bound-variable ~[%tests %golden ~.types-record-bound-variable %source %jibb] src-559 `typ-559))
3487+ (weld (check ~.types-record-bound-variable src-561 `tok-561 `tre-561) (check-types ~.types-record-bound-variable ~[%tests %golden ~.types-record-bound-variable %source %jibb] src-561 `typ-561))
3476++ test-types-record-cast-context
3488++ test-types-record-cast-context
3477− (weld (check ~.types-record-cast-context src-560 `tok-560 `tre-560) (check-module-types ~.types-record-cast-context ~[%tests %golden ~.types-record-cast-context %source %jibb] src-560 `typ-560 ~ ~ ~))
3489+ (weld (check ~.types-record-cast-context src-562 `tok-562 `tre-562) (check-module-types ~.types-record-cast-context ~[%tests %golden ~.types-record-cast-context %source %jibb] src-562 `typ-562 ~ ~ ~))
3478++ test-types-record-change
3490++ test-types-record-change
3479− (weld (check ~.types-record-change src-561 `tok-561 `tre-561) (check-module-types ~.types-record-change ~[%tests %golden ~.types-record-change %source %jibb] src-561 `typ-561 ~ ~ ~))
3491+ (weld (check ~.types-record-change src-563 `tok-563 `tre-563) (check-module-types ~.types-record-change ~[%tests %golden ~.types-record-change %source %jibb] src-563 `typ-563 ~ ~ ~))
3480++ test-types-record-change-generic
3492++ test-types-record-change-generic
3481− (weld (check ~.types-record-change-generic src-562 `tok-562 `tre-562) (check-module-types ~.types-record-change-generic ~[%tests %golden ~.types-record-change-generic %source %jibb] src-562 `typ-562 ~ ~ ~))
3493+ (weld (check ~.types-record-change-generic src-564 `tok-564 `tre-564) (check-module-types ~.types-record-change-generic ~[%tests %golden ~.types-record-change-generic %source %jibb] src-564 `typ-564 ~ ~ ~))
3482++ test-types-record-faces
3494++ test-types-record-faces
3483− (weld (check ~.types-record-faces src-563 `tok-563 `tre-563) (check-types ~.types-record-faces ~[%tests %golden ~.types-record-faces %source %jibb] src-563 `typ-563))
3495+ (weld (check ~.types-record-faces src-565 `tok-565 `tre-565) (check-types ~.types-record-faces ~[%tests %golden ~.types-record-faces %source %jibb] src-565 `typ-565))
3484++ test-types-record-field-edit-separate
3496++ test-types-record-field-edit-separate
3485− (weld (check ~.types-record-field-edit-separate src-564 `tok-564 `tre-564) (check-types ~.types-record-field-edit-separate ~[%tests %golden ~.types-record-field-edit-separate %source %jibb] src-564 `typ-564))
3497+ (weld (check ~.types-record-field-edit-separate src-566 `tok-566 `tre-566) (check-types ~.types-record-field-edit-separate ~[%tests %golden ~.types-record-field-edit-separate %source %jibb] src-566 `typ-566))
3486++ test-types-record-field-expr-duplicate
3498++ test-types-record-field-expr-duplicate
3487− (weld (check ~.types-record-field-expr-duplicate src-565 `tok-565 `tre-565) (check-types ~.types-record-field-expr-duplicate ~[%tests %golden ~.types-record-field-expr-duplicate %source %jibb] src-565 `typ-565))
3499+ (weld (check ~.types-record-field-expr-duplicate src-567 `tok-567 `tre-567) (check-types ~.types-record-field-expr-duplicate ~[%tests %golden ~.types-record-field-expr-duplicate %source %jibb] src-567 `typ-567))
3488++ test-types-record-field-expr-separate
3500++ test-types-record-field-expr-separate
3489− (weld (check ~.types-record-field-expr-separate src-566 `tok-566 `tre-566) (check-types ~.types-record-field-expr-separate ~[%tests %golden ~.types-record-field-expr-separate %source %jibb] src-566 `typ-566))
3501+ (weld (check ~.types-record-field-expr-separate src-568 `tok-568 `tre-568) (check-types ~.types-record-field-expr-separate ~[%tests %golden ~.types-record-field-expr-separate %source %jibb] src-568 `typ-568))
3490++ test-types-record-field-module-reachable
3502++ test-types-record-field-module-reachable
3491− (weld (weld (check ~.types-record-field-module-reachable src-567 `tok-567 `tre-567) (check-module-types ~.types-record-field-module-reachable ~[%tests %golden ~.types-record-field-module-reachable %source %jibb] src-567 `typ-567 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-567-1]])) (check-module-trees ~.types-record-field-module-reachable `mtre-567 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-567-1]]))
3503+ (weld (weld (check ~.types-record-field-module-reachable src-569 `tok-569 `tre-569) (check-module-types ~.types-record-field-module-reachable ~[%tests %golden ~.types-record-field-module-reachable %source %jibb] src-569 `typ-569 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-569-1]])) (check-module-trees ~.types-record-field-module-reachable `mtre-569 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-569-1]]))
3492++ test-types-record-field-module-unused
3504++ test-types-record-field-module-unused
3493− (weld (weld (check ~.types-record-field-module-unused src-568 `tok-568 `tre-568) (check-module-types ~.types-record-field-module-unused ~[%tests %golden ~.types-record-field-module-unused %source %jibb] src-568 `typ-568 ~ ~ ~[['/ui/good.jibb' ~[~.ui ~.good ~.jibb] mod-568-1] ['/ui/unused.jibb' ~[~.ui ~.unused ~.jibb] mod-568-2]])) (check-module-trees ~.types-record-field-module-unused `mtre-568 ~[['/ui/good.jibb' ~[~.ui ~.good ~.jibb] mod-568-1] ['/ui/unused.jibb' ~[~.ui ~.unused ~.jibb] mod-568-2]]))
3505+ (weld (weld (check ~.types-record-field-module-unused src-570 `tok-570 `tre-570) (check-module-types ~.types-record-field-module-unused ~[%tests %golden ~.types-record-field-module-unused %source %jibb] src-570 `typ-570 ~ ~ ~[['/ui/good.jibb' ~[~.ui ~.good ~.jibb] mod-570-1] ['/ui/unused.jibb' ~[~.ui ~.unused ~.jibb] mod-570-2]])) (check-module-trees ~.types-record-field-module-unused `mtre-570 ~[['/ui/good.jibb' ~[~.ui ~.good ~.jibb] mod-570-1] ['/ui/unused.jibb' ~[~.ui ~.unused ~.jibb] mod-570-2]]))
3494++ test-types-record-field-nested-mold
3506++ test-types-record-field-nested-mold
3495− (weld (check ~.types-record-field-nested-mold src-569 `tok-569 `tre-569) (check-types ~.types-record-field-nested-mold ~[%tests %golden ~.types-record-field-nested-mold %source %jibb] src-569 `typ-569))
3507+ (weld (check ~.types-record-field-nested-mold src-571 `tok-571 `tre-571) (check-types ~.types-record-field-nested-mold ~[%tests %golden ~.types-record-field-nested-mold %source %jibb] src-571 `typ-571))
3496++ test-types-record-field-outer-inner
3508++ test-types-record-field-outer-inner
3497− (weld (check ~.types-record-field-outer-inner src-570 `tok-570 `tre-570) (check-types ~.types-record-field-outer-inner ~[%tests %golden ~.types-record-field-outer-inner %source %jibb] src-570 `typ-570))
3509+ (weld (check ~.types-record-field-outer-inner src-572 `tok-572 `tre-572) (check-types ~.types-record-field-outer-inner ~[%tests %golden ~.types-record-field-outer-inner %source %jibb] src-572 `typ-572))
3498++ test-types-record-field-sample-duplicate
3510++ test-types-record-field-sample-duplicate
3499− (weld (check ~.types-record-field-sample-duplicate src-571 `tok-571 `tre-571) (check-types ~.types-record-field-sample-duplicate ~[%tests %golden ~.types-record-field-sample-duplicate %source %jibb] src-571 `typ-571))
3511+ (weld (check ~.types-record-field-sample-duplicate src-573 `tok-573 `tre-573) (check-types ~.types-record-field-sample-duplicate ~[%tests %golden ~.types-record-field-sample-duplicate %source %jibb] src-573 `typ-573))
3500++ test-types-record-field-separate-molds
3512++ test-types-record-field-separate-molds
3501− (weld (check ~.types-record-field-separate-molds src-572 `tok-572 `tre-572) (check-types ~.types-record-field-separate-molds ~[%tests %golden ~.types-record-field-separate-molds %source %jibb] src-572 `typ-572))
3513+ (weld (check ~.types-record-field-separate-molds src-574 `tok-574 `tre-574) (check-types ~.types-record-field-separate-molds ~[%tests %golden ~.types-record-field-separate-molds %source %jibb] src-574 `typ-574))
3502++ test-types-record-field-unused-mold
3514++ test-types-record-field-unused-mold
3503− (weld (check ~.types-record-field-unused-mold src-573 `tok-573 `tre-573) (check-types ~.types-record-field-unused-mold ~[%tests %golden ~.types-record-field-unused-mold %source %jibb] src-573 `typ-573))
3515+ (weld (check ~.types-record-field-unused-mold src-575 `tok-575 `tre-575) (check-types ~.types-record-field-unused-mold ~[%tests %golden ~.types-record-field-unused-mold %source %jibb] src-575 `typ-575))
3504++ test-types-record-import
3516++ test-types-record-import
3505− (weld (weld (check ~.types-record-import src-574 `tok-574 `tre-574) (check-module-types ~.types-record-import ~[%tests %golden ~.types-record-import %source %jibb] src-574 `typ-574 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-574-1]])) (check-module-trees ~.types-record-import `mtre-574 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-574-1]]))
3517+ (weld (weld (check ~.types-record-import src-576 `tok-576 `tre-576) (check-module-types ~.types-record-import ~[%tests %golden ~.types-record-import %source %jibb] src-576 `typ-576 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-576-1]])) (check-module-trees ~.types-record-import `mtre-576 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-576-1]]))
3506++ test-types-record-local-scheme
3518++ test-types-record-local-scheme
3507− (weld (check ~.types-record-local-scheme src-575 `tok-575 `tre-575) (check-types ~.types-record-local-scheme ~[%tests %golden ~.types-record-local-scheme %source %jibb] src-575 `typ-575))
3519+ (weld (check ~.types-record-local-scheme src-577 `tok-577 `tre-577) (check-types ~.types-record-local-scheme ~[%tests %golden ~.types-record-local-scheme %source %jibb] src-577 `typ-577))
3508++ test-types-record-nested
3520++ test-types-record-nested
3509− (weld (check ~.types-record-nested src-576 `tok-576 `tre-576) (check-types ~.types-record-nested ~[%tests %golden ~.types-record-nested %source %jibb] src-576 `typ-576))
3521+ (weld (check ~.types-record-nested src-578 `tok-578 `tre-578) (check-types ~.types-record-nested ~[%tests %golden ~.types-record-nested %source %jibb] src-578 `typ-578))
3510++ test-types-record-to-tuple
3522++ test-types-record-to-tuple
3511− (weld (check ~.types-record-to-tuple src-577 `tok-577 `tre-577) (check-types ~.types-record-to-tuple ~[%tests %golden ~.types-record-to-tuple %source %jibb] src-577 `typ-577))
3523+ (weld (check ~.types-record-to-tuple src-579 `tok-579 `tre-579) (check-types ~.types-record-to-tuple ~[%tests %golden ~.types-record-to-tuple %source %jibb] src-579 `typ-579))
3512++ test-types-recursion-scc-failures
3524++ test-types-recursion-scc-failures
3513− (weld (check ~.types-recursion-scc-failures src-578 `tok-578 `tre-578) (check-module-types ~.types-recursion-scc-failures ~[%tests %golden ~.types-recursion-scc-failures %source %jibb] src-578 `typ-578 ~ ~ ~))
3525+ (weld (check ~.types-recursion-scc-failures src-580 `tok-580 `tre-580) (check-module-types ~.types-recursion-scc-failures ~[%tests %golden ~.types-recursion-scc-failures %source %jibb] src-580 `typ-580 ~ ~ ~))
3514++ test-types-recursion-scc-groups
3526++ test-types-recursion-scc-groups
3515− (weld (check ~.types-recursion-scc-groups src-579 `tok-579 `tre-579) (check-module-types ~.types-recursion-scc-groups ~[%tests %golden ~.types-recursion-scc-groups %source %jibb] src-579 `typ-579 ~ ~ ~))
3527+ (weld (check ~.types-recursion-scc-groups src-581 `tok-581 `tre-581) (check-module-types ~.types-recursion-scc-groups ~[%tests %golden ~.types-recursion-scc-groups %source %jibb] src-581 `typ-581 ~ ~ ~))
3516++ test-types-recursion-scc-import
3528++ test-types-recursion-scc-import
3517− (weld (weld (check ~.types-recursion-scc-import src-580 `tok-580 `tre-580) (check-module-types ~.types-recursion-scc-import ~[%tests %golden ~.types-recursion-scc-import %source %jibb] src-580 `typ-580 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-580-1]])) (check-module-trees ~.types-recursion-scc-import `mtre-580 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-580-1]]))
3529+ (weld (weld (check ~.types-recursion-scc-import src-582 `tok-582 `tre-582) (check-module-types ~.types-recursion-scc-import ~[%tests %golden ~.types-recursion-scc-import %source %jibb] src-582 `typ-582 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-582-1]])) (check-module-trees ~.types-recursion-scc-import `mtre-582 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-582-1]]))
3518++ test-types-recursion-scc-import-bad
3530++ test-types-recursion-scc-import-bad
3519− (weld (weld (check ~.types-recursion-scc-import-bad src-581 `tok-581 `tre-581) (check-module-types ~.types-recursion-scc-import-bad ~[%tests %golden ~.types-recursion-scc-import-bad %source %jibb] src-581 `typ-581 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-581-1]])) (check-module-trees ~.types-recursion-scc-import-bad `mtre-581 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-581-1]]))
3531+ (weld (weld (check ~.types-recursion-scc-import-bad src-583 `tok-583 `tre-583) (check-module-types ~.types-recursion-scc-import-bad ~[%tests %golden ~.types-recursion-scc-import-bad %source %jibb] src-583 `typ-583 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-583-1]])) (check-module-trees ~.types-recursion-scc-import-bad `mtre-583 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-583-1]]))
3520++ test-types-recursion-scc-local
3532++ test-types-recursion-scc-local
3521− (weld (check ~.types-recursion-scc-local src-582 `tok-582 `tre-582) (check-module-types ~.types-recursion-scc-local ~[%tests %golden ~.types-recursion-scc-local %source %jibb] src-582 `typ-582 ~ ~ ~))
3533+ (weld (check ~.types-recursion-scc-local src-584 `tok-584 `tre-584) (check-module-types ~.types-recursion-scc-local ~[%tests %golden ~.types-recursion-scc-local %source %jibb] src-584 `typ-584 ~ ~ ~))
3522++ test-types-recursion-scc-order
3534++ test-types-recursion-scc-order
3523− (weld (check ~.types-recursion-scc-order src-583 `tok-583 `tre-583) (check-module-types ~.types-recursion-scc-order ~[%tests %golden ~.types-recursion-scc-order %source %jibb] src-583 `typ-583 ~ ~ ~))
3535+ (weld (check ~.types-recursion-scc-order src-585 `tok-585 `tre-585) (check-module-types ~.types-recursion-scc-order ~[%tests %golden ~.types-recursion-scc-order %source %jibb] src-585 `typ-585 ~ ~ ~))
3524++ test-types-recursion-scc-shadow
3536++ test-types-recursion-scc-shadow
3525− (weld (check ~.types-recursion-scc-shadow src-584 `tok-584 `tre-584) (check-module-types ~.types-recursion-scc-shadow ~[%tests %golden ~.types-recursion-scc-shadow %source %jibb] src-584 `typ-584 ~ ~ ~))
3537+ (weld (check ~.types-recursion-scc-shadow src-586 `tok-586 `tre-586) (check-module-types ~.types-recursion-scc-shadow ~[%tests %golden ~.types-recursion-scc-shadow %source %jibb] src-586 `typ-586 ~ ~ ~))
3526++ test-types-recursive-branch
3538++ test-types-recursive-branch
3527− (weld (check ~.types-recursive-branch src-585 `tok-585 `tre-585) (check-module-types ~.types-recursive-branch ~[%tests %golden ~.types-recursive-branch %source %jibb] src-585 `typ-585 ~ ~ ~))
3539+ (weld (check ~.types-recursive-branch src-587 `tok-587 `tre-587) (check-module-types ~.types-recursive-branch ~[%tests %golden ~.types-recursive-branch %source %jibb] src-587 `typ-587 ~ ~ ~))
3528++ test-types-recursive-gate
3540++ test-types-recursive-gate
3529− (weld (check ~.types-recursive-gate src-586 `tok-586 `tre-586) (check-types ~.types-recursive-gate ~[%tests %golden ~.types-recursive-gate %source %jibb] src-586 `typ-586))
3541+ (weld (check ~.types-recursive-gate src-588 `tok-588 `tre-588) (check-types ~.types-recursive-gate ~[%tests %golden ~.types-recursive-gate %source %jibb] src-588 `typ-588))
3530++ test-types-recursive-sample
3542++ test-types-recursive-sample
3531− (weld (check ~.types-recursive-sample src-587 `tok-587 `tre-587) (check-types ~.types-recursive-sample ~[%tests %golden ~.types-recursive-sample %source %jibb] src-587 `typ-587))
3543+ (weld (check ~.types-recursive-sample src-589 `tok-589 `tre-589) (check-types ~.types-recursive-sample ~[%tests %golden ~.types-recursive-sample %source %jibb] src-589 `typ-589))
3532++ test-types-scope-library-poke
3544++ test-types-scope-library-poke
3533− (weld (check-at ~.types-scope-library-poke ~[~.ui ~.lib ~.library ~.jibb] src-588 `tok-588 `tre-588) (check-module-types ~.types-scope-library-poke ~[~.ui ~.lib ~.library ~.jibb] src-588 `typ-588 ~ ~ ~))
3545+ (weld (check-at ~.types-scope-library-poke ~[~.ui ~.lib ~.library ~.jibb] src-590 `tok-590 `tre-590) (check-module-types ~.types-scope-library-poke ~[~.ui ~.lib ~.library ~.jibb] src-590 `typ-590 ~ ~ ~))
3534++ test-types-scope-root-api
3546++ test-types-scope-root-api
3535− (weld (check-at ~.types-scope-root-api ~[~.ui ~.api ~.todo ~.jibb] src-589 `tok-589 `tre-589) (check-module-types ~.types-scope-root-api ~[~.ui ~.api ~.todo ~.jibb] src-589 `typ-589 ~ ~ ~))
3547+ (weld (check-at ~.types-scope-root-api ~[~.ui ~.api ~.todo ~.jibb] src-591 `tok-591 `tre-591) (check-module-types ~.types-scope-root-api ~[~.ui ~.api ~.todo ~.jibb] src-591 `typ-591 ~ ~ ~))
3536++ test-types-scope-store-duplicate
3548++ test-types-scope-store-duplicate
3537− (weld (check-at ~.types-scope-store-duplicate ~[~.ui ~.stores ~.cart ~.jibb] src-590 `tok-590 `tre-590) (check-module-types ~.types-scope-store-duplicate ~[~.ui ~.stores ~.cart ~.jibb] src-590 `typ-590 ~ ~ ~))
3549+ (weld (check-at ~.types-scope-store-duplicate ~[~.ui ~.stores ~.cart ~.jibb] src-592 `tok-592 `tre-592) (check-module-types ~.types-scope-store-duplicate ~[~.ui ~.stores ~.cart ~.jibb] src-592 `typ-592 ~ ~ ~))
3538++ test-types-scope-store-shadow
3550++ test-types-scope-store-shadow
3539− (weld (check-at ~.types-scope-store-shadow ~[~.ui ~.stores ~.cart ~.jibb] src-591 `tok-591 `tre-591) (check-module-types ~.types-scope-store-shadow ~[~.ui ~.stores ~.cart ~.jibb] src-591 `typ-591 ~ ~ ~))
3551+ (weld (check-at ~.types-scope-store-shadow ~[~.ui ~.stores ~.cart ~.jibb] src-593 `tok-593 `tre-593) (check-module-types ~.types-scope-store-shadow ~[~.ui ~.stores ~.cart ~.jibb] src-593 `typ-593 ~ ~ ~))
3540++ test-types-single-case-pattern
3552++ test-types-single-case-pattern
3541− (weld (check ~.types-single-case-pattern src-592 `tok-592 `tre-592) (check-module-types ~.types-single-case-pattern ~[%tests %golden ~.types-single-case-pattern %source %jibb] src-592 `typ-592 ~ ~ ~))
3553+ (weld (check ~.types-single-case-pattern src-594 `tok-594 `tre-594) (check-module-types ~.types-single-case-pattern ~[%tests %golden ~.types-single-case-pattern %source %jibb] src-594 `typ-594 ~ ~ ~))
3542++ test-types-string-interpolation
3554++ test-types-string-interpolation
3543− (weld (check ~.types-string-interpolation src-593 `tok-593 `tre-593) (check-module-types ~.types-string-interpolation ~[%tests %golden ~.types-string-interpolation %source %jibb] src-593 `typ-593 ~ ~ ~))
3555+ (weld (check ~.types-string-interpolation src-595 `tok-595 `tre-595) (check-module-types ~.types-string-interpolation ~[%tests %golden ~.types-string-interpolation %source %jibb] src-595 `typ-595 ~ ~ ~))
3544++ test-types-tuple-context
3556++ test-types-tuple-context
3545− (weld (check ~.types-tuple-context src-594 `tok-594 `tre-594) (check-module-types ~.types-tuple-context ~[%tests %golden ~.types-tuple-context %source %jibb] src-594 `typ-594 ~ ~ ~))
3557+ (weld (check ~.types-tuple-context src-596 `tok-596 `tre-596) (check-module-types ~.types-tuple-context ~[%tests %golden ~.types-tuple-context %source %jibb] src-596 `typ-596 ~ ~ ~))
3546++ test-types-tuple-context-nested
3558++ test-types-tuple-context-nested
3547− (weld (check ~.types-tuple-context-nested src-595 `tok-595 `tre-595) (check-module-types ~.types-tuple-context-nested ~[%tests %golden ~.types-tuple-context-nested %source %jibb] src-595 `typ-595 ~ ~ ~))
3559+ (weld (check ~.types-tuple-context-nested src-597 `tok-597 `tre-597) (check-module-types ~.types-tuple-context-nested ~[%tests %golden ~.types-tuple-context-nested %source %jibb] src-597 `typ-597 ~ ~ ~))
3548++ test-types-union-alias
3560++ test-types-union-alias
3549− (weld (check ~.types-union-alias src-596 `tok-596 `tre-596) (check-types ~.types-union-alias ~[%tests %golden ~.types-union-alias %source %jibb] src-596 `typ-596))
3561+ (weld (check ~.types-union-alias src-598 `tok-598 `tre-598) (check-types ~.types-union-alias ~[%tests %golden ~.types-union-alias %source %jibb] src-598 `typ-598))
3550++ test-types-union-branch-context
3562++ test-types-union-branch-context
3551− (weld (check ~.types-union-branch-context src-597 `tok-597 `tre-597) (check-types ~.types-union-branch-context ~[%tests %golden ~.types-union-branch-context %source %jibb] src-597 `typ-597))
3563+ (weld (check ~.types-union-branch-context src-599 `tok-599 `tre-599) (check-types ~.types-union-branch-context ~[%tests %golden ~.types-union-branch-context %source %jibb] src-599 `typ-599))
3552++ test-types-union-branch-pending
3564++ test-types-union-branch-pending
3553− (weld (check ~.types-union-branch-pending src-598 `tok-598 `tre-598) (check-types ~.types-union-branch-pending ~[%tests %golden ~.types-union-branch-pending %source %jibb] src-598 `typ-598))
3565+ (weld (check ~.types-union-branch-pending src-600 `tok-600 `tre-600) (check-types ~.types-union-branch-pending ~[%tests %golden ~.types-union-branch-pending %source %jibb] src-600 `typ-600))
3554++ test-types-union-constructor-shape
3566++ test-types-union-constructor-shape
3555− (weld (check ~.types-union-constructor-shape src-599 `tok-599 `tre-599) (check-types ~.types-union-constructor-shape ~[%tests %golden ~.types-union-constructor-shape %source %jibb] src-599 `typ-599))
3567+ (weld (check ~.types-union-constructor-shape src-601 `tok-601 `tre-601) (check-types ~.types-union-constructor-shape ~[%tests %golden ~.types-union-constructor-shape %source %jibb] src-601 `typ-601))
3556++ test-types-union-context-flow
3568++ test-types-union-context-flow
3557− (weld (check ~.types-union-context-flow src-600 `tok-600 `tre-600) (check-types ~.types-union-context-flow ~[%tests %golden ~.types-union-context-flow %source %jibb] src-600 `typ-600))
3569+ (weld (check ~.types-union-context-flow src-602 `tok-602 `tre-602) (check-types ~.types-union-context-flow ~[%tests %golden ~.types-union-context-flow %source %jibb] src-602 `typ-602))
3558++ test-types-union-finite
3570++ test-types-union-finite
3559− (weld (check ~.types-union-finite src-601 `tok-601 `tre-601) (check-module-types ~.types-union-finite ~[%tests %golden ~.types-union-finite %source %jibb] src-601 `typ-601 ~ ~ ~))
3571+ (weld (check ~.types-union-finite src-603 `tok-603 `tre-603) (check-module-types ~.types-union-finite ~[%tests %golden ~.types-union-finite %source %jibb] src-603 `typ-603 ~ ~ ~))
3560++ test-types-union-finite-context
3572++ test-types-union-finite-context
3561− (weld (check ~.types-union-finite-context src-602 `tok-602 `tre-602) (check-module-types ~.types-union-finite-context ~[%tests %golden ~.types-union-finite-context %source %jibb] src-602 `typ-602 ~ ~ ~))
3573+ (weld (check ~.types-union-finite-context src-604 `tok-604 `tre-604) (check-module-types ~.types-union-finite-context ~[%tests %golden ~.types-union-finite-context %source %jibb] src-604 `typ-604 ~ ~ ~))
3562++ test-types-union-finite-generic
3574++ test-types-union-finite-generic
3563− (weld (check ~.types-union-finite-generic src-603 `tok-603 `tre-603) (check-module-types ~.types-union-finite-generic ~[%tests %golden ~.types-union-finite-generic %source %jibb] src-603 `typ-603 ~ ~ ~))
3575+ (weld (check ~.types-union-finite-generic src-605 `tok-605 `tre-605) (check-module-types ~.types-union-finite-generic ~[%tests %golden ~.types-union-finite-generic %source %jibb] src-605 `typ-605 ~ ~ ~))
3564++ test-types-union-finite-limit
3576++ test-types-union-finite-limit
3565− (weld (check ~.types-union-finite-limit src-604 `tok-604 `tre-604) (check-module-types ~.types-union-finite-limit ~[%tests %golden ~.types-union-finite-limit %source %jibb] src-604 `typ-604 ~ ~ ~))
3577+ (weld (check ~.types-union-finite-limit src-606 `tok-606 `tre-606) (check-module-types ~.types-union-finite-limit ~[%tests %golden ~.types-union-finite-limit %source %jibb] src-606 `typ-606 ~ ~ ~))
3566++ test-types-union-import
3578++ test-types-union-import
3567− (weld (weld (check ~.types-union-import src-605 `tok-605 `tre-605) (check-module-types ~.types-union-import ~[%tests %golden ~.types-union-import %source %jibb] src-605 `typ-605 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-605-1]])) (check-module-trees ~.types-union-import `mtre-605 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-605-1]]))
3579+ (weld (weld (check ~.types-union-import src-607 `tok-607 `tre-607) (check-module-types ~.types-union-import ~[%tests %golden ~.types-union-import %source %jibb] src-607 `typ-607 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-607-1]])) (check-module-trees ~.types-union-import `mtre-607 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-607-1]]))
3568++ test-types-union-local-pending
3580++ test-types-union-local-pending
3569− (weld (check ~.types-union-local-pending src-606 `tok-606 `tre-606) (check-types ~.types-union-local-pending ~[%tests %golden ~.types-union-local-pending %source %jibb] src-606 `typ-606))
3581+ (weld (check ~.types-union-local-pending src-608 `tok-608 `tre-608) (check-types ~.types-union-local-pending ~[%tests %golden ~.types-union-local-pending %source %jibb] src-608 `typ-608))
3570++ test-types-union-nonwing-subject
3582++ test-types-union-nonwing-subject
3571− (weld (check ~.types-union-nonwing-subject src-607 `tok-607 `tre-607) (check-module-types ~.types-union-nonwing-subject ~[%tests %golden ~.types-union-nonwing-subject %source %jibb] src-607 `typ-607 ~ ~ ~))
3583+ (weld (check ~.types-union-nonwing-subject src-609 `tok-609 `tre-609) (check-module-types ~.types-union-nonwing-subject ~[%tests %golden ~.types-union-nonwing-subject %source %jibb] src-609 `typ-609 ~ ~ ~))
3572++ test-types-union-overlap
3584++ test-types-union-overlap
3573− (weld (check ~.types-union-overlap src-608 `tok-608 `tre-608) (check-types ~.types-union-overlap ~[%tests %golden ~.types-union-overlap %source %jibb] src-608 `typ-608))
3585+ (weld (check ~.types-union-overlap src-610 `tok-610 `tre-610) (check-types ~.types-union-overlap ~[%tests %golden ~.types-union-overlap %source %jibb] src-610 `typ-610))
3574++ test-types-union-overlap-nested
3586++ test-types-union-overlap-nested
3575− (weld (check ~.types-union-overlap-nested src-609 `tok-609 `tre-609) (check-types ~.types-union-overlap-nested ~[%tests %golden ~.types-union-overlap-nested %source %jibb] src-609 `typ-609))
3587+ (weld (check ~.types-union-overlap-nested src-611 `tok-611 `tre-611) (check-types ~.types-union-overlap-nested ~[%tests %golden ~.types-union-overlap-nested %source %jibb] src-611 `typ-611))
3576++ test-types-union-pattern-result-context
3588++ test-types-union-pattern-result-context
3577− (weld (check ~.types-union-pattern-result-context src-610 `tok-610 `tre-610) (check-module-types ~.types-union-pattern-result-context ~[%tests %golden ~.types-union-pattern-result-context %source %jibb] src-610 `typ-610 ~ ~ ~))
3589+ (weld (check ~.types-union-pattern-result-context src-612 `tok-612 `tre-612) (check-module-types ~.types-union-pattern-result-context ~[%tests %golden ~.types-union-pattern-result-context %source %jibb] src-612 `typ-612 ~ ~ ~))
3578++ test-types-union-pattern-result-controls
3590++ test-types-union-pattern-result-controls
3579− (weld (check ~.types-union-pattern-result-controls src-611 `tok-611 `tre-611) (check-module-types ~.types-union-pattern-result-controls ~[%tests %golden ~.types-union-pattern-result-controls %source %jibb] src-611 `typ-611 ~ ~ ~))
3591+ (weld (check ~.types-union-pattern-result-controls src-613 `tok-613 `tre-613) (check-module-types ~.types-union-pattern-result-controls ~[%tests %golden ~.types-union-pattern-result-controls %source %jibb] src-613 `typ-613 ~ ~ ~))
3580++ test-types-union-patterns
3592++ test-types-union-patterns
3581− (weld (check ~.types-union-patterns src-612 `tok-612 `tre-612) (check-module-types ~.types-union-patterns ~[%tests %golden ~.types-union-patterns %source %jibb] src-612 `typ-612 ~ ~ ~))
3593+ (weld (check ~.types-union-patterns src-614 `tok-614 `tre-614) (check-module-types ~.types-union-patterns ~[%tests %golden ~.types-union-patterns %source %jibb] src-614 `typ-614 ~ ~ ~))
3582++ test-types-union-patterns-generic
3594++ test-types-union-patterns-generic
3583− (weld (check ~.types-union-patterns-generic src-613 `tok-613 `tre-613) (check-module-types ~.types-union-patterns-generic ~[%tests %golden ~.types-union-patterns-generic %source %jibb] src-613 `typ-613 ~ ~ ~))
3595+ (weld (check ~.types-union-patterns-generic src-615 `tok-615 `tre-615) (check-module-types ~.types-union-patterns-generic ~[%tests %golden ~.types-union-patterns-generic %source %jibb] src-615 `typ-615 ~ ~ ~))
3584++ test-types-union-patterns-import
3596++ test-types-union-patterns-import
3585− (weld (weld (check ~.types-union-patterns-import src-614 `tok-614 `tre-614) (check-module-types ~.types-union-patterns-import ~[%tests %golden ~.types-union-patterns-import %source %jibb] src-614 `typ-614 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-614-1]])) (check-module-trees ~.types-union-patterns-import `mtre-614 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-614-1]]))
3597+ (weld (weld (check ~.types-union-patterns-import src-616 `tok-616 `tre-616) (check-module-types ~.types-union-patterns-import ~[%tests %golden ~.types-union-patterns-import %source %jibb] src-616 `typ-616 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-616-1]])) (check-module-trees ~.types-union-patterns-import `mtre-616 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-616-1]]))
3586++ test-types-union-phantom-generic
3598++ test-types-union-phantom-generic
3587− (weld (check ~.types-union-phantom-generic src-615 `tok-615 `tre-615) (check-types ~.types-union-phantom-generic ~[%tests %golden ~.types-union-phantom-generic %source %jibb] src-615 `typ-615))
3599+ (weld (check ~.types-union-phantom-generic src-617 `tok-617 `tre-617) (check-types ~.types-union-phantom-generic ~[%tests %golden ~.types-union-phantom-generic %source %jibb] src-617 `typ-617))
3588++ test-types-union-polymorphic-identity
3600++ test-types-union-polymorphic-identity
3589− (weld (weld (check ~.types-union-polymorphic-identity src-616 `tok-616 `tre-616) (check-module-types ~.types-union-polymorphic-identity ~[%tests %golden ~.types-union-polymorphic-identity %source %jibb] src-616 `typ-616 ~ ~ ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-616-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-616-2]])) (check-module-trees ~.types-union-polymorphic-identity `mtre-616 ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-616-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-616-2]]))
3601+ (weld (weld (check ~.types-union-polymorphic-identity src-618 `tok-618 `tre-618) (check-module-types ~.types-union-polymorphic-identity ~[%tests %golden ~.types-union-polymorphic-identity %source %jibb] src-618 `typ-618 ~ ~ ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-618-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-618-2]])) (check-module-trees ~.types-union-polymorphic-identity `mtre-618 ~[['/ui/one.jibb' ~[~.ui ~.one ~.jibb] mod-618-1] ['/ui/two.jibb' ~[~.ui ~.two ~.jibb] mod-618-2]]))
3590++ test-types-union-print-cross-namespace
3602++ test-types-union-print-cross-namespace
3591− (weld (weld (check ~.types-union-print-cross-namespace src-617 `tok-617 `tre-617) (check-module-types ~.types-union-print-cross-namespace ~[%tests %golden ~.types-union-print-cross-namespace %source %jibb] src-617 `typ-617 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-617-1]])) (check-module-trees ~.types-union-print-cross-namespace `mtre-617 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-617-1]]))
3603+ (weld (weld (check ~.types-union-print-cross-namespace src-619 `tok-619 `tre-619) (check-module-types ~.types-union-print-cross-namespace ~[%tests %golden ~.types-union-print-cross-namespace %source %jibb] src-619 `typ-619 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-619-1]])) (check-module-trees ~.types-union-print-cross-namespace `mtre-619 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-619-1]]))
3592++ test-types-union-print-distinct
3604++ test-types-union-print-distinct
3593− (weld (weld (check ~.types-union-print-distinct src-618 `tok-618 `tre-618) (check-module-types ~.types-union-print-distinct ~[%tests %golden ~.types-union-print-distinct %source %jibb] src-618 `typ-618 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-618-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-618-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-618-3]])) (check-module-trees ~.types-union-print-distinct `mtre-618 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-618-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-618-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-618-3]]))
3605+ (weld (weld (check ~.types-union-print-distinct src-620 `tok-620 `tre-620) (check-module-types ~.types-union-print-distinct ~[%tests %golden ~.types-union-print-distinct %source %jibb] src-620 `typ-620 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-620-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-620-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-620-3]])) (check-module-trees ~.types-union-print-distinct `mtre-620 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-620-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-620-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-620-3]]))
3594++ test-types-union-print-escape
3606++ test-types-union-print-escape
3595− (weld (check ~.types-union-print-escape src-619 `tok-619 `tre-619) (check-types ~.types-union-print-escape ~[%tests %golden ~.types-union-print-escape %source %jibb] src-619 `typ-619))
3607+ (weld (check ~.types-union-print-escape src-621 `tok-621 `tre-621) (check-types ~.types-union-print-escape ~[%tests %golden ~.types-union-print-escape %source %jibb] src-621 `typ-621))
3596++ test-types-union-print-local
3608++ test-types-union-print-local
3597− (weld (check ~.types-union-print-local src-620 `tok-620 `tre-620) (check-types ~.types-union-print-local ~[%tests %golden ~.types-union-print-local %source %jibb] src-620 `typ-620))
3609+ (weld (check ~.types-union-print-local src-622 `tok-622 `tre-622) (check-types ~.types-union-print-local ~[%tests %golden ~.types-union-print-local %source %jibb] src-622 `typ-622))
3598++ test-types-union-print-nested
3610++ test-types-union-print-nested
3599− (weld (check ~.types-union-print-nested src-621 `tok-621 `tre-621) (check-types ~.types-union-print-nested ~[%tests %golden ~.types-union-print-nested %source %jibb] src-621 `typ-621))
3611+ (weld (check ~.types-union-print-nested src-623 `tok-623 `tre-623) (check-types ~.types-union-print-nested ~[%tests %golden ~.types-union-print-nested %source %jibb] src-623 `typ-623))
3600++ test-types-union-print-same-origin
3612++ test-types-union-print-same-origin
3601− (weld (weld (check ~.types-union-print-same-origin src-622 `tok-622 `tre-622) (check-module-types ~.types-union-print-same-origin ~[%tests %golden ~.types-union-print-same-origin %source %jibb] src-622 `typ-622 ~ ~ ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-622-1]])) (check-module-trees ~.types-union-print-same-origin `mtre-622 ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-622-1]]))
3613+ (weld (weld (check ~.types-union-print-same-origin src-624 `tok-624 `tre-624) (check-module-types ~.types-union-print-same-origin ~[%tests %golden ~.types-union-print-same-origin %source %jibb] src-624 `typ-624 ~ ~ ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-624-1]])) (check-module-trees ~.types-union-print-same-origin `mtre-624 ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-624-1]]))
3602++ test-types-union-print-transitive
3614++ test-types-union-print-transitive
3603− (weld (weld (check ~.types-union-print-transitive src-623 `tok-623 `tre-623) (check-module-types ~.types-union-print-transitive ~[%tests %golden ~.types-union-print-transitive %source %jibb] src-623 `typ-623 ~ ~ ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-623-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-623-2]])) (check-module-trees ~.types-union-print-transitive `mtre-623 ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-623-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-623-2]]))
3615+ (weld (weld (check ~.types-union-print-transitive src-625 `tok-625 `tre-625) (check-module-types ~.types-union-print-transitive ~[%tests %golden ~.types-union-print-transitive %source %jibb] src-625 `typ-625 ~ ~ ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-625-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-625-2]])) (check-module-trees ~.types-union-print-transitive `mtre-625 ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-625-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-625-2]]))
3604++ test-types-union-singleton
3616++ test-types-union-singleton
3605− (weld (check ~.types-union-singleton src-624 `tok-624 `tre-624) (check-types ~.types-union-singleton ~[%tests %golden ~.types-union-singleton %source %jibb] src-624 `typ-624))
3617+ (weld (check ~.types-union-singleton src-626 `tok-626 `tre-626) (check-types ~.types-union-singleton ~[%tests %golden ~.types-union-singleton %source %jibb] src-626 `typ-626))
3606++ test-types-union-tag-atoms
3618++ test-types-union-tag-atoms
3607− (weld (check ~.types-union-tag-atoms src-625 `tok-625 `tre-625) (check-types ~.types-union-tag-atoms ~[%tests %golden ~.types-union-tag-atoms %source %jibb] src-625 `typ-625))
3619+ (weld (check ~.types-union-tag-atoms src-627 `tok-627 `tre-627) (check-types ~.types-union-tag-atoms ~[%tests %golden ~.types-union-tag-atoms %source %jibb] src-627 `typ-627))
3608++ test-types-union-tags
3620++ test-types-union-tags
3609− (weld (check ~.types-union-tags src-626 `tok-626 `tre-626) (check-types ~.types-union-tags ~[%tests %golden ~.types-union-tags %source %jibb] src-626 `typ-626))
3621+ (weld (check ~.types-union-tags src-628 `tok-628 `tre-628) (check-types ~.types-union-tags ~[%tests %golden ~.types-union-tags %source %jibb] src-628 `typ-628))
3610++ test-types-union-unresolved
3622++ test-types-union-unresolved
3611− (weld (check ~.types-union-unresolved src-627 `tok-627 `tre-627) (check-types ~.types-union-unresolved ~[%tests %golden ~.types-union-unresolved %source %jibb] src-627 `typ-627))
3623+ (weld (check ~.types-union-unresolved src-629 `tok-629 `tre-629) (check-types ~.types-union-unresolved ~[%tests %golden ~.types-union-unresolved %source %jibb] src-629 `typ-629))
3612++ test-types-union-unresolved-flow
3624++ test-types-union-unresolved-flow
3613− (weld (check ~.types-union-unresolved-flow src-628 `tok-628 `tre-628) (check-types ~.types-union-unresolved-flow ~[%tests %golden ~.types-union-unresolved-flow %source %jibb] src-628 `typ-628))
3625+ (weld (check ~.types-union-unresolved-flow src-630 `tok-630 `tre-630) (check-types ~.types-union-unresolved-flow ~[%tests %golden ~.types-union-unresolved-flow %source %jibb] src-630 `typ-630))
3614++ test-types-unit-construction
3626++ test-types-unit-construction
3615− (weld (check ~.types-unit-construction src-629 `tok-629 `tre-629) (check-module-types ~.types-unit-construction ~[%tests %golden ~.types-unit-construction %source %jibb] src-629 `typ-629 ~ ~ ~))
3627+ (weld (check ~.types-unit-construction src-631 `tok-631 `tre-631) (check-module-types ~.types-unit-construction ~[%tests %golden ~.types-unit-construction %source %jibb] src-631 `typ-631 ~ ~ ~))
3616++ test-types-unit-context
3628++ test-types-unit-context
3617− (weld (check ~.types-unit-context src-630 `tok-630 `tre-630) (check-module-types ~.types-unit-context ~[%tests %golden ~.types-unit-context %source %jibb] src-630 `typ-630 ~ ~ ~))
3629+ (weld (check ~.types-unit-context src-632 `tok-632 `tre-632) (check-module-types ~.types-unit-context ~[%tests %golden ~.types-unit-context %source %jibb] src-632 `typ-632 ~ ~ ~))
3618++ test-types-unit-patterns
3630++ test-types-unit-patterns
3619− (weld (check ~.types-unit-patterns src-631 `tok-631 `tre-631) (check-types ~.types-unit-patterns ~[%tests %golden ~.types-unit-patterns %source %jibb] src-631 `typ-631))
3631+ (weld (check ~.types-unit-patterns src-633 `tok-633 `tre-633) (check-types ~.types-unit-patterns ~[%tests %golden ~.types-unit-patterns %source %jibb] src-633 `typ-633))
3620++ test-types-value-cycle-shadow
3632++ test-types-value-cycle-shadow
3621− (weld (check ~.types-value-cycle-shadow src-632 `tok-632 `tre-632) (check-module-types ~.types-value-cycle-shadow ~[%tests %golden ~.types-value-cycle-shadow %source %jibb] src-632 `typ-632 ~ ~ ~))
3633+ (weld (check ~.types-value-cycle-shadow src-634 `tok-634 `tre-634) (check-module-types ~.types-value-cycle-shadow ~[%tests %golden ~.types-value-cycle-shadow %source %jibb] src-634 `typ-634 ~ ~ ~))
3622++ test-types-value-cycle-unsupported
3634++ test-types-value-cycle-unsupported
3623− (weld (check ~.types-value-cycle-unsupported src-633 `tok-633 `tre-633) (check-module-types ~.types-value-cycle-unsupported ~[%tests %golden ~.types-value-cycle-unsupported %source %jibb] src-633 `typ-633 ~ ~ ~))
3635+ (weld (check ~.types-value-cycle-unsupported src-635 `tok-635 `tre-635) (check-module-types ~.types-value-cycle-unsupported ~[%tests %golden ~.types-value-cycle-unsupported %source %jibb] src-635 `typ-635 ~ ~ ~))
3624++ test-types-value-cycles
3636++ test-types-value-cycles
3625− (weld (check ~.types-value-cycles src-634 `tok-634 `tre-634) (check-module-types ~.types-value-cycles ~[%tests %golden ~.types-value-cycles %source %jibb] src-634 `typ-634 ~ ~ ~))
3637+ (weld (check ~.types-value-cycles src-636 `tok-636 `tre-636) (check-module-types ~.types-value-cycles ~[%tests %golden ~.types-value-cycles %source %jibb] src-636 `typ-636 ~ ~ ~))
3626::
3638::
3627:: +check: run golden:jibb on a case and compare both outputs
3639:: +check: run golden:jibb on a case and compare both outputs
3628::
3640::
tools/testdata/ship-selftest+1
@@ -305,6 +305,7 @@ def generator_checks(tmp):
305 {'tests/lib/jibb.hoon', 'tests/lib/jibb-import.hoon',
305 {'tests/lib/jibb.hoon', 'tests/lib/jibb-import.hoon',
306 'tests/lib/jibb-typecheck.hoon', 'tests/lib/jibb-bridge.hoon',
306 'tests/lib/jibb-typecheck.hoon', 'tests/lib/jibb-bridge.hoon',
307 'tests/lib/jibb-arithmetic-guards.hoon',
307 'tests/lib/jibb-arithmetic-guards.hoon',
308+ 'tests/lib/jibb-positional-face-guards.hoon',
308 'tests/lib/jibb-generic-alias.hoon'}
309 'tests/lib/jibb-generic-alias.hoon'}
309 <= normal_tests, sorted(normal_tests))
310 <= normal_tests, sorted(normal_tests))
310 for label, kwargs in (('custom library', {'lib': STUB}),
311 for label, kwargs in (('custom library', {'lib': STUB}),
tools/type-positional-face-guards-testnew file+29
@@ -0,0 +1,29 @@
1+#!/usr/bin/env python3
2+"""Run the shared positional sample-face 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-positional-face-guards.hoon').read_text()
14+tests = tests[tests.index('\n|%\n') + 1:]
15+expression = ('=/ jibb .\n=/ suite\n' + tests +
16+ '\n=/ failures=(list tape) positional-face-guard-errors:suite\n^- @t\n' +
17+ "?~ failures 'positional 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'positional guards passed\n':
27+ sys.stderr.buffer.write(result.stdout)
28+ sys.exit(1)
29+print('positional sample-face guards passed')