on master help sign in
Add source-backed like result mapping

Infer supported positional calls without erasing nested value faces, and implement the chosen like mapper in Jibb. Cover absent and present results, generic calls, and ambiguous face boundaries.

commit640a44293956072a452fa1abdf15faa0b9decd66 authoriko <mail@iko.soy> dateSat 31 Oct 2026, 07:57 (1 day ago) parent81af5fd
38 files changed+5064−3295
docs/compiler.md+2 docs/development.md+2 docs/prelude-inventory.md+2−2 docs/status.md+8−6 jibb-dev/lib/jibb.hoon+22−1 jibb-dev/lib/jibb/prelude.jibb+8 tests/golden/prelude-1c-structural/source.jibb+8 tests/golden/prelude-1c-structural/tokens.txt+199−124 tests/golden/prelude-1c-structural/tree.txt+82−50 tests/golden/prelude-1c-structural/types.txt+1 tests/golden/prelude-3g-like/about.txt+3−3 tests/golden/prelude-3g-like/source.jibb+8 tests/golden/prelude-3g-like/tokens.txt+95−20 tests/golden/prelude-3g-like/tree.txt+41−9 tests/golden/prelude-3g-like/types.txt+1 tests/golden/prelude-list-helpers/source.jibb+8 tests/golden/prelude-list-helpers/tokens.txt+319−244 tests/golden/prelude-list-helpers/tree.txt+138−106 tests/golden/prelude-list-helpers/types.txt+1 tests/golden/prelude-unit-list-transforms/source.jibb+8 tests/golden/prelude-unit-list-transforms/tokens.txt+1529−1454 tests/golden/prelude-unit-list-transforms/tree.txt+704−672 tests/golden/prelude-unit-list-transforms/types.txt+1 tests/golden/types-positional-faces/about.txt+4 tests/golden/types-positional-faces/source.jibb+25 tests/golden/types-positional-faces/tokens.txt+394 tests/golden/types-positional-faces/tree.txt+197 tests/golden/types-positional-faces/types.txt+42 tests/golden/types-prelude-like/about.txt+4 tests/golden/types-prelude-like/modules.txt+1 tests/golden/types-prelude-like/source.jibb+22 tests/golden/types-prelude-like/tokens.txt+320 tests/golden/types-prelude-like/tree.txt+163 tests/golden/types-prelude-like/types.txt+18 tests/lib/jibb-positional-face-guards.hoon+38 tests/lib/jibb.hoon+616−604 tools/testdata/ship-selftest+1 tools/type-positional-face-guards-test+29
docs/compiler.md+2
@@ -111,6 +111,8 @@ And the design notes:
111111| 3. The parser | Why recursive descent (the grammar is LL(2) after the layout pass), the EBNF rule by rule with the node each gives, what the EBNF leaves out and how it's filled in, spacing, and where each error points, with its message |
112112| 4. Printed formats | The token, tree and error formats the golden files hold |
113113
114+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+
114116Public 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.
115117
116118The 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
6969| `tools/type-hole-guards-test` | Runs the shared hole-defaulting and API interface guards under eval; the same checks run on the ship |
7070| `tools/type-list-alias-test` | Runs the shared prelude list-alias and provenance guards under eval and on the ship |
7171| `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 |
7273| `tools/type-qath-guards-test` | Runs source-provenance, recursive unfolding and face guards under eval and on the ship |
7374| `tools/type-proj-guards-test` | Runs projection evidence, name-scope and dependency guards under eval and on the ship |
7475| `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
9798tools/type-hole-guards-test # hole defaulting and API guards pass
9899tools/type-list-alias-test # prelude list-alias guards pass
99100tools/type-generic-alias-test # generic union alias guards pass
101+tools/type-positional-face-guards-test # positional sample face guards pass
100102tools/type-qath-guards-test # qath source and unfolding guards pass
101103tools/type-proj-guards-test # projection evidence and scope guards pass
102104tools/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`,
123123| `dime` | `[p=@ta q=@]` in Hoon. The `q` field accepts any atom, as does Jibb `@` after @iko's decision in question 15. |
124124| `edge` | `[p=hair q=(unit [p=* q=nail])]`: a parsing position and either no result or a result and remaining input. |
125125| `hair` | `[p=@ud q=@ud]`: a parsing position. |
126−| `like` | A wet mold builder parameterized by a gate `a=$-(* *)`; its generated gate takes a noun, builds an `edge`-shaped result, and applies `a` to the product on success. The prelude declares the generic mold `+$ like |$ [A] [p=hair q=(unit [p=A q=nail])]`. @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. |
127127| `nail` | `[p=hair q=tape]`: parsing input. |
128128| `pint` | `[p=[p=@ q=@] q=[p=@ q=@]]` in Hoon. The four positions accept atoms independently; Jibb `@` now has the same meaning. |
129129| `rule` | A gate mold `$-(nail edge)`; Hoon constructs its sample and product from the `nail` and `edge` molds. |
@@ -152,7 +152,7 @@ The following shapes can be written as Jibb declarations once their referenced p
152152 [%2 p=(list tank)]
153153```
154154
155−The compiler-result `tone.hoon` has the three cases listed above; the qualified name is a prelude group member, not a `+$` identifier containing a dot. Question 15 in [open-questions.md](open-questions.md) records @iko's decision that `@` is an unrestricted atom, resolving the `dime` and `pint` mismatch. The 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.
156156
157157## 4a
158158
docs/status.md+8−6
@@ -25,7 +25,7 @@ On 2026-10-31, @iko chose explicit, result-directed `(proj record)` to construct
2525
2626The internal prelude also defines `qath` as a transparent recursive knot sequence, re-exported by the public prelude. The partial checker recognizes its source identity, supports selected null/cell construction and matching, and types static application-path literals. Other recursive shapes, broader patterns and dynamic application-path segments remain unsupported. A 256-step limit applies per inference attempt, not to parsing or retries; checking routes and static files remains milestone 4. `ask` is still unfinished.
2727
28−The repository spec records the subsequent type-system and prelude decisions, 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.
2929
3030The shared prelude interface reserves every name present in the supplied vendored source and makes only supported inferred entries available, including `list`, `unit`, `same`, `fall`, `need`, `bond`, `lure`, `weld`, `snoc` and `turn`. The validated standard `list` mold is injected when the prelude’s own gates are inferred; `weld` and `turn` have ordinary explicit result casts. An absent or altered `list` is not injected, and an altered declaration cannot leak through direct or transitive mold aliases. The same validated template is available when prelude mold aliases are prepared, so supported direct and transitive aliases can use it. Unsupported entries such as most list helpers remain reserved but unavailable; backend validation of the helpers remains outstanding. All callers use the same prelude origin, so a library can export a type containing unqualified `(unit A)` to another module. Preparation rejects empty, malformed, conflicting or import-bearing source; the prepared value is trusted and must come unchanged from `+prepare-prelude`. The module-scope fixture compares the prepared and source-taking paths against the real prelude and a two-module golden under eval and on the ship. The source and checker remain incomplete, so this does not establish complete shadowing coverage or a checked module.
3131
@@ -45,8 +45,8 @@ What the plan asks for, and where it is:
4545
4646Besides the plan's list:
4747
48−- 634 golden cases: 414 that parse and 220 that fail, each failure at a stated line and column. One failing case has an unclear expectation (corpus question 3). The newer type-output cases exercise only the partial inference fragment. Each case's `about.txt` quotes the doc's words it tests.
49−- The 634-case corpus passed under `urbit eval` in 80.1 s while other checks were running. The fake ship passed all 650 tests, including the importer, importer/checker and mark/checker bridges, module scope, unification, hole, qath, projection, arithmetic and generic-alias guards, with 51.9 s for sync and 67.6 s for tests. The importer golden compares 221 projections; `tools/clay-fixtures` builds the example Hoon fixtures through Clay, checks a recursive Ford import's origin, and passes Clay-built types through the Clay-built importer and partial checker.
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 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.
5050- `tools/testdata/selftest` (22 checks), `tools/testdata/ship-selftest` and `tools/testdata/clay-fixtures-selftest` test the tools themselves; the last checks temporary Clay fixture cleanup and signal handling without a ship.
5151- Two independent audits before 7c739b7, one of which compared the library with a reference parser written in Python from the doc over about 19,000 generated programs. Before ab797a9, a second Python parser, written from the decisions, agreed with the library on 8,000 generated programs and 900 hand-written probes.
5252- Speed: starting `urbit eval` and building the library takes about 8 s. After that, a 2,000-line module of 400 definitions parses in about a second. Loops over definitions, arms, lines and items grow no stack; nesting costs a few stack frames a level, and 100,000 nested brackets still parse (library section 3).
@@ -131,14 +131,15 @@ Besides the plan's list:
131131| 75f5952 | 2026-10-31 | Check a subset of explicit `proj` calls and retain their lowering evidence |
132132| cf17925 | 2026-10-31 | Infer supported single-field projections |
133133| 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 |
135136
136137## Checking it
137138
138139On a machine set up as [development.md](development.md) says:
139140
140141```
141−tools/golden # 634 cases under urbit eval
142+tools/golden # 636 cases under urbit eval
142143tools/importer-test # the Hoon importer fixture projection
143144tools/type-import-test # the importer/checker bridge fixture
144145tools/type-tlon-test # the real Tlon reader/checker fixture
@@ -148,6 +149,7 @@ tools/type-api-paths-test # partial API path metadata fixture
148149tools/type-hole-guards-test # hole defaulting and API interface guards
149150tools/type-list-alias-test # prelude list-alias guards
150151tools/type-generic-alias-test # generic union alias guards
152+tools/type-positional-face-guards-test # positional sample face guards
151153tools/type-qath-guards-test # qath source and unfolding guards
152154tools/type-proj-guards-test # projection evidence and scope guards
153155tools/type-module-scope-test # module and prelude scope fixture
@@ -156,7 +158,7 @@ tools/testdata/selftest # the tools themselves
156158tools/doc-blocks docs/spec # the doc's examples are golden cases
157159tools/ship start
158160tools/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
160162tools/testdata/ship-selftest
161163tools/testdata/clay-fixtures-selftest # scratch fixture cleanup without a ship
162164tools/ship check-commit # |commit stores .jibb files
jibb-dev/lib/jibb.hoon+22−1
@@ -4993,6 +4993,24 @@
49934993 [%cell $(actual hed.actual, expected hed.expected) $(actual tal.actual, expected tal.expected)]
49944994 expected
49954995::
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+::
49965014++ itype-output-may-be-cell
49975015 |= [t=itype sub=isub]
49985016 ^- ?
@@ -8104,7 +8122,10 @@
81048122 =/ arg-at=span ?~(bad whole-args at.u.bad)
81058123 =/ arg-type=itype ?~(bad typ.p.arg typ.u.bad)
81068124 [%| ["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)]]]]
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))
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)
8128+ ?: &((itype-has-face typ.p.arg sub.fit) face-asym (itype-output-may-be-cell product.ht sub.fit))
81088129 [%| ["call result face propagation is not supported by partial inference" ~]]
81098130 [%& product.ht st(sub sub.fit, next next.fit)]
81108131 =/ result=itype [%var next.st]
jibb-dev/lib/jibb/prelude.jibb+8
@@ -101,6 +101,14 @@
101101
102102+$ like |$ [A] [p=hair q=(unit [p=A q=nail])]
103103
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+
104112++ wonk |= veq=(like A)
105113 ?- q.veq
106114 ~ !!
tests/golden/prelude-1c-structural/source.jibb+8
@@ -96,6 +96,14 @@
9696
9797+$ like |$ [A] [p=hair q=(unit [p=A q=nail])]
9898
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+
99107++ wonk |= veq=(like A)
100108 ?- q.veq
101109 ~ !!
tests/golden/prelude-1c-structural/tokens.txt+199−124
@@ -588,144 +588,219 @@
58858897:45 tight glyph ]
58958999:1 NEWLINE
59059099:1 glyph ++
591−99:4 name wonk
591+99:4 name like
59259299:9 glyph |=
593−99:12 name veq
594−99:15 tight glyph =
595−99:16 tight glyph (
596−99:17 tight name like
597−99:22 tvar A
598−99:23 tight glyph )
593+99:12 glyph [
594+99:13 tight name f
595+99:14 tight glyph =
596+99:15 tight glyph $-(
597+99:18 tight tvar A
598+99:20 tvar B
599+99:21 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 ]
599607100:3 INDENT
600−100:3 glyph ?-
601−100:6 wing q.veq
608+100:3 glyph ++
609+100:6 name mapped
602610101:5 INDENT
603−101:5 lit ~
604−101:7 glyph !!
605−102:5 NEWLINE
606−102:5 glyph [
607−102:6 tight lit ~
608−102:8 name product
609−102:15 tight glyph ]
610−102:17 wing p.product
611−104:1 DEDENT
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 [
618−104:13 tight tvar A
619−104:14 tight glyph ]
620−104:16 glyph [
621−104:17 tight name p
622−104:18 tight glyph =
623−104:19 tight tvar A
624−104:20 tight glyph ]
625−106:1 NEWLINE
626−106:1 glyph +$
627−106:4 name lest
628−106:9 glyph |$
629−106:12 glyph [
630−106:13 tight tvar A
631−106:14 tight glyph ]
632−106:16 glyph [
633−106:17 tight name i
634−106:18 tight glyph =
635−106:19 tight tvar A
636−106:21 name t
637−106:22 tight glyph =
638−106:23 tight glyph (
639−106:24 tight name list
640−106:29 tvar A
641−106:30 tight glyph )
642−106:31 tight glyph ]
643−108:1 NEWLINE
644−108:1 glyph +$
645−108:4 name pole
646−108:9 glyph |$
647−108:12 glyph [
648−108:13 tight tvar A
649−108:14 tight glyph ]
650−109:3 INDENT
651−109:3 lit ~
652−110:3 NEWLINE
653−110:3 glyph [
654−110:4 tight tvar A
655−110:6 glyph (
656−110:7 tight name pole
657−110:12 tvar A
658−110:13 tight glyph )
659−110:14 tight glyph ]
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 ~
679+109:7 glyph !!
680+110:5 NEWLINE
681+110:5 glyph [
682+110:6 tight lit ~
683+110:8 name product
684+110:15 tight glyph ]
685+110:17 wing p.product
686+112:1 DEDENT
660687112:1 DEDENT
661688112:1 NEWLINE
662689112:1 glyph +$
663−112:4 name quip
690+112:4 name lone
664691112:9 glyph |$
665692112:12 glyph [
666693112:13 tight tvar A
667−112:15 tvar B
668−112:16 tight glyph ]
669−112:18 glyph [
670−112:19 tight glyph (
671−112:20 tight name list
672−112:25 tvar A
673−112:26 tight glyph )
674−112:28 tvar B
675−112:29 tight glyph ]
694+112:14 tight glyph ]
695+112:16 glyph [
696+112:17 tight name p
697+112:18 tight glyph =
698+112:19 tight tvar A
699+112:20 tight glyph ]
676700114:1 NEWLINE
677701114:1 glyph +$
678−114:4 name tree
702+114:4 name lest
679703114:9 glyph |$
680704114:12 glyph [
681705114:13 tight tvar A
682706114:14 tight glyph ]
683−115:3 INDENT
684−115:3 lit ~
685−116:3 NEWLINE
686−116:3 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 )
696−116:19 name r
697−116:20 tight glyph =
698−116:21 tight glyph (
699−116:22 tight name tree
700−116:27 tvar A
701−116:28 tight glyph )
702−116:29 tight glyph ]
703−118:1 DEDENT
704−118:1 NEWLINE
705−118:1 glyph +$
706−118:4 name each
707−118:9 glyph |$
708−118:12 glyph [
709−118:13 tight tvar A
710−118:15 tvar B
711−118:16 tight glyph ]
712−119:3 INDENT
713−119:3 glyph [
714−119:4 tight lit %|
715−119:7 name p
716−119:8 tight glyph =
717−119:9 tight tvar B
718−119:10 tight glyph ]
719−120:3 NEWLINE
720−120:3 glyph [
721−120:4 tight lit %&
722−120:7 name p
723−120:8 tight glyph =
724−120:9 tight tvar A
725−120:10 tight glyph ]
726−122:1 DEDENT
707+114:16 glyph [
708+114:17 tight name i
709+114:18 tight glyph =
710+114:19 tight tvar A
711+114:21 name t
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 [
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
733+118:13 tight glyph )
734+118:14 tight glyph ]
735+120:1 DEDENT
736+120:1 NEWLINE
737+120:1 glyph +$
738+120:4 name quip
739+120:9 glyph |$
740+120:12 glyph [
741+120:13 tight tvar A
742+120:15 tvar B
743+120:16 tight glyph ]
744+120:18 glyph [
745+120:19 tight glyph (
746+120:20 tight name list
747+120:25 tvar A
748+120:26 tight glyph )
749+120:28 tvar B
750+120:29 tight glyph ]
727751122:1 NEWLINE
728752122:1 glyph +$
729−122:4 name bloq
730−122:9 aura @
731−122:10 NEWLINE
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
805+130:9 aura @
806+130:10 NEWLINE
tests/golden/prelude-1c-structural/tree.txt+82−50
@@ -235,56 +235,88 @@
235235 (cell 97:32
236236 (face 97:33 p (tvar 97:35 A))
237237 (face 97:37 q (ref 97:39 nail))))))))
238− (value 99:1 wonk
238+ (value 99:1 like
239239 (gate 99:9
240− (face 99:12 veq
241− (apply 99:16 like (tvar 99:22 A)))
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
244+ (apply 99:30 like (tvar 99:36 A))))
242245 (body 100:3
243− (branch 100:3
244− (wing 100:6 q.veq)
245− (arm 101:5 (lit 101:5 ~) (crash 101:7))
246− (arm 102:5
247− (cell 102:5 (lit 102:6 ~) (bind 102:8 product))
248− (wing 102:17 p.product))))))
249− (mold 104:1 lone
250− (generic 104:9 A
251− (cell 104:16
252− (face 104:17 p (tvar 104:19 A)))))
253− (mold 106:1 lest
254− (generic 106:9 A
255− (cell 106:16
256− (face 106:17 i (tvar 106:19 A))
257− (face 106:21 t
258− (apply 106:23 list (tvar 106:29 A))))))
259− (mold 108:1 pole
260− (generic 108:9 A
261− (union 109:3
262− (const 109:3 ~)
263− (cell 110:3
264− (tvar 110:4 A)
265− (apply 110:6 pole (tvar 110:12 A))))))
266− (mold 112:1 quip
267− (generic 112:9 A B
268− (cell 112:18
269− (apply 112:19 list (tvar 112:25 A))
270− (tvar 112:28 B))))
271− (mold 114:1 tree
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
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
284+ (face 112:17 p (tvar 112:19 A)))))
285+ (mold 114:1 lest
272286 (generic 114:9 A
273− (union 115:3
274− (const 115:3 ~)
275− (cell 116:3
276− (face 116:4 n (tvar 116:6 A))
277− (face 116:8 l
278− (apply 116:10 tree (tvar 116:16 A)))
279− (face 116:19 r
280− (apply 116:21 tree (tvar 116:27 A)))))))
281− (mold 118:1 each
282− (generic 118:9 A B
283− (union 119:3
284− (cell 119:3
285− (const 119:4 %|)
286− (face 119:7 p (tvar 119:9 B)))
287− (cell 120:3
288− (const 120:4 %&)
289− (face 120:7 p (tvar 120:9 A))))))
290− (mold 122:1 bloq (aura 122:9 @)))
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
305+ (union 123:3
306+ (const 123:3 ~)
307+ (cell 124:3
308+ (face 124:4 n (tvar 124:6 A))
309+ (face 124:8 l
310+ (apply 124:10 tree (tvar 124:16 A)))
311+ (face 124:19 r
312+ (apply 124:21 tree (tvar 124:27 A)))))))
313+ (mold 126:1 each
314+ (generic 126:9 A B
315+ (union 127:3
316+ (cell 127:3
317+ (const 127:4 %|)
318+ (face 127:7 p (tvar 127:9 B)))
319+ (cell 128:3
320+ (const 128:4 %&)
321+ (face 128:7 p (tvar 128:9 A))))))
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
2727+$ spot: not checked
2828+$ toon: cases proven disjoint; mold not checked
2929+$ like: not checked
30+++ like: sample mold is not supported by partial inference
3031++ wonk: sample mold is not supported by partial inference
3132+$ lone: not checked
3233+$ 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`.
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`.
1+source: Overview, Prelude: Hoon 3g includes `like` and `wonk`; the value `like` maps an existing result.
2+tests: The source includes the generic `like` mold, its mapping gate and `wonk`.
33expect: 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 @@
9696
9797+$ like |$ [A] [p=hair q=(unit [p=A q=nail])]
9898
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+
99107++ wonk |= veq=(like A)
100108 ?- q.veq
101109 ~ !!
tests/golden/prelude-3g-like/tokens.txt+95−20
@@ -588,26 +588,101 @@
58858897:45 tight glyph ]
58958999:1 NEWLINE
59059099:1 glyph ++
591−99:4 name wonk
591+99:4 name like
59259299:9 glyph |=
593−99:12 name veq
594−99:15 tight glyph =
595−99:16 tight glyph (
596−99:17 tight name like
597−99:22 tvar A
598−99:23 tight glyph )
593+99:12 glyph [
594+99:13 tight name f
595+99:14 tight glyph =
596+99:15 tight glyph $-(
597+99:18 tight tvar A
598+99:20 tvar B
599+99:21 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 ]
599607100:3 INDENT
600−100:3 glyph ?-
601−100:6 wing q.veq
608+100:3 glyph ++
609+100:6 name mapped
602610101:5 INDENT
603−101:5 lit ~
604−101:7 glyph !!
605−102:5 NEWLINE
606−102:5 glyph [
607−102:6 tight lit ~
608−102:8 name product
609−102:15 tight glyph ]
610−102:17 wing p.product
611−102:26 DEDENT
612−102:26 DEDENT
613−102:26 NEWLINE
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 ~
679+109:7 glyph !!
680+110:5 NEWLINE
681+110:5 glyph [
682+110:6 tight lit ~
683+110:8 name product
684+110:15 tight glyph ]
685+110:17 wing p.product
686+110:26 DEDENT
687+110:26 DEDENT
688+110:26 NEWLINE
tests/golden/prelude-3g-like/tree.txt+41−9
@@ -235,14 +235,46 @@
235235 (cell 97:32
236236 (face 97:33 p (tvar 97:35 A))
237237 (face 97:37 q (ref 97:39 nail))))))))
238− (value 99:1 wonk
238+ (value 99:1 like
239239 (gate 99:9
240− (face 99:12 veq
241− (apply 99:16 like (tvar 99:22 A)))
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
244+ (apply 99:30 like (tvar 99:36 A))))
242245 (body 100:3
243− (branch 100:3
244− (wing 100:6 q.veq)
245− (arm 101:5 (lit 101:5 ~) (crash 101:7))
246− (arm 102:5
247− (cell 102:5 (lit 102:6 ~) (bind 102:8 product))
248− (wing 102:17 p.product)))))))
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
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)))))))
tests/golden/prelude-3g-like/types.txt+1
@@ -27,4 +27,5 @@ partial inference; module not checked
2727+$ spot: not checked
2828+$ toon: cases proven disjoint; mold not checked
2929+$ like: not checked
30+++ like: sample mold is not supported by partial inference
3031++ wonk: sample mold is not supported by partial inference
tests/golden/prelude-list-helpers/source.jibb+8
@@ -96,6 +96,14 @@
9696
9797+$ like |$ [A] [p=hair q=(unit [p=A q=nail])]
9898
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+
99107++ wonk |= veq=(like A)
100108 ?- q.veq
101109 ~ !!
tests/golden/prelude-list-helpers/tokens.txt+319−244
@@ -588,266 +588,341 @@
58858897:45 tight glyph ]
58958999:1 NEWLINE
59059099:1 glyph ++
591−99:4 name wonk
591+99:4 name like
59259299:9 glyph |=
593−99:12 name veq
594−99:15 tight glyph =
595−99:16 tight glyph (
596−99:17 tight name like
597−99:22 tvar A
598−99:23 tight glyph )
593+99:12 glyph [
594+99:13 tight name f
595+99:14 tight glyph =
596+99:15 tight glyph $-(
597+99:18 tight tvar A
598+99:20 tvar B
599+99:21 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 ]
599607100:3 INDENT
600−100:3 glyph ?-
601−100:6 wing q.veq
608+100:3 glyph ++
609+100:6 name mapped
602610101:5 INDENT
603−101:5 lit ~
604−101:7 glyph !!
605−102:5 NEWLINE
606−102:5 glyph [
607−102:6 tight lit ~
608−102:8 name product
609−102:15 tight glyph ]
610−102:17 wing p.product
611−104:1 DEDENT
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 [
618−104:13 tight tvar A
619−104:14 tight glyph ]
620−104:16 glyph [
621−104:17 tight name p
622−104:18 tight glyph =
623−104:19 tight tvar A
624−104:20 tight glyph ]
625−106:1 NEWLINE
626−106:1 glyph +$
627−106:4 name lest
628−106:9 glyph |$
629−106:12 glyph [
630−106:13 tight tvar A
631−106:14 tight glyph ]
632−106:16 glyph [
633−106:17 tight name i
634−106:18 tight glyph =
635−106:19 tight tvar A
636−106:21 name t
637−106:22 tight glyph =
638−106:23 tight glyph (
639−106:24 tight name list
640−106:29 tvar A
641−106:30 tight glyph )
642−106:31 tight glyph ]
643−108:1 NEWLINE
644−108:1 glyph +$
645−108:4 name pole
646−108:9 glyph |$
647−108:12 glyph [
648−108:13 tight tvar A
649−108:14 tight glyph ]
650−109:3 INDENT
651−109:3 lit ~
652−110:3 NEWLINE
653−110:3 glyph [
654−110:4 tight tvar A
655−110:6 glyph (
656−110:7 tight name pole
657−110:12 tvar A
658−110:13 tight glyph )
659−110:14 tight glyph ]
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 ~
679+109:7 glyph !!
680+110:5 NEWLINE
681+110:5 glyph [
682+110:6 tight lit ~
683+110:8 name product
684+110:15 tight glyph ]
685+110:17 wing p.product
686+112:1 DEDENT
660687112:1 DEDENT
661688112:1 NEWLINE
662689112:1 glyph +$
663−112:4 name quip
690+112:4 name lone
664691112:9 glyph |$
665692112:12 glyph [
666693112:13 tight tvar A
667−112:15 tvar B
668−112:16 tight glyph ]
669−112:18 glyph [
670−112:19 tight glyph (
671−112:20 tight name list
672−112:25 tvar A
673−112:26 tight glyph )
674−112:28 tvar B
675−112:29 tight glyph ]
694+112:14 tight glyph ]
695+112:16 glyph [
696+112:17 tight name p
697+112:18 tight glyph =
698+112:19 tight tvar A
699+112:20 tight glyph ]
676700114:1 NEWLINE
677701114:1 glyph +$
678−114:4 name tree
702+114:4 name lest
679703114:9 glyph |$
680704114:12 glyph [
681705114:13 tight tvar A
682706114:14 tight glyph ]
683−115:3 INDENT
684−115:3 lit ~
685−116:3 NEWLINE
686−116:3 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 )
696−116:19 name r
697−116:20 tight glyph =
698−116:21 tight glyph (
699−116:22 tight name tree
700−116:27 tvar A
701−116:28 tight glyph )
702−116:29 tight glyph ]
703−118:1 DEDENT
704−118:1 NEWLINE
705−118:1 glyph +$
706−118:4 name each
707−118:9 glyph |$
708−118:12 glyph [
709−118:13 tight tvar A
710−118:15 tvar B
711−118:16 tight glyph ]
712−119:3 INDENT
713−119:3 glyph [
714−119:4 tight lit %|
715−119:7 name p
716−119:8 tight glyph =
717−119:9 tight tvar B
718−119:10 tight glyph ]
719−120:3 NEWLINE
720−120:3 glyph [
721−120:4 tight lit %&
722−120:7 name p
723−120:8 tight glyph =
724−120:9 tight tvar A
725−120:10 tight glyph ]
726−122:1 DEDENT
707+114:16 glyph [
708+114:17 tight name i
709+114:18 tight glyph =
710+114:19 tight tvar A
711+114:21 name t
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 [
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
733+118:13 tight glyph )
734+118:14 tight glyph ]
735+120:1 DEDENT
736+120:1 NEWLINE
737+120:1 glyph +$
738+120:4 name quip
739+120:9 glyph |$
740+120:12 glyph [
741+120:13 tight tvar A
742+120:15 tvar B
743+120:16 tight glyph ]
744+120:18 glyph [
745+120:19 tight glyph (
746+120:20 tight name list
747+120:25 tvar A
748+120:26 tight glyph )
749+120:28 tvar B
750+120:29 tight glyph ]
727751122:1 NEWLINE
728752122:1 glyph +$
729−122:4 name bloq
730−122:9 aura @
731−124:1 NEWLINE
732−124:1 glyph ++
733−124:4 name some
734−124:9 glyph |=
735−124:12 name item
736−124:16 tight glyph =
737−124:17 tight tvar A
738−124:19 glyph `
739−124:20 tight name item
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
740779126:1 NEWLINE
741−126:1 glyph ++
742−126:4 name lure
743−126:9 glyph |=
744−126:12 name item
745−126:16 tight glyph =
746−126:17 tight tvar A
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 ]
747787127:3 INDENT
748−127:3 glyph ^-
749−127:6 glyph (
750−127:7 tight name list
751−127:12 tvar A
752−127:13 tight glyph )
753−127:15 glyph [
754−127:16 tight name item
755−127:21 lit ~
756−127:22 tight glyph ]
757−129:1 DEDENT
758−129:1 NEWLINE
759−129:1 glyph ++
760−129:4 name snoc
761−129:9 glyph |=
762−129:12 name args
763−129:16 tight glyph =
764−129:17 tight glyph [
765−129:18 tight glyph (
766−129:19 tight name list
767−129:24 tvar A
768−129:25 tight glyph )
769−129:27 tvar A
770−129:28 tight glyph ]
771−130:3 INDENT
772−130:3 glyph ?-
773−130:6 name args
774−131:5 INDENT
775−131:5 glyph [
776−131:6 tight name xs
777−131:9 name item
778−131:13 tight glyph ]
779−131:15 glyph (
780−131:16 tight name weld
781−131:21 name xs
782−131:24 glyph [
783−131:25 tight name item
784−131:30 lit ~
785−131:31 tight glyph ]
786−131:32 tight glyph )
787−133:1 DEDENT
788−133:1 DEDENT
789−133:1 NEWLINE
790−133:1 glyph ++
791−133:4 name flop
792−133:9 glyph |=
793−133:12 name xs
794−133:14 tight glyph =
795−133:15 tight glyph (
796−133:16 tight name list
797−133:21 tvar A
798−133:22 tight glyph )
799−134:3 INDENT
800−134:3 glyph ++
801−134:6 name reverse-into
802−134:19 glyph |=
803−134:22 name args
804−134:26 tight glyph =
805−134:27 tight glyph [
806−134:28 tight glyph (
807−134:29 tight name list
808−134:34 tvar A
809−134:35 tight glyph )
810−134:37 glyph (
811−134:38 tight name list
812−134:43 tvar A
813−134:44 tight glyph )
814−134:45 tight glyph ]
815−135:5 INDENT
816−135:5 glyph ?-
817−135:8 name args
818−136:7 INDENT
819−136:7 glyph [
820−136:8 tight name rest
821−136:13 name acc
822−136:16 tight glyph ]
823−137:9 INDENT
824−137:9 glyph ?-
825−137:12 name rest
826−138:11 INDENT
827−138:11 lit ~
828−138:13 name acc
829−139:11 NEWLINE
830−139:11 glyph [
831−139:12 tight name item
832−139:17 name more
833−139:21 tight glyph ]
834−139:23 glyph (
835−139:24 tight name reverse-into
836−139:37 name more
837−139:42 glyph [
838−139:43 tight name item
839−139:48 name acc
840−139:51 tight glyph ]
841−139:52 tight glyph )
842−140:3 DEDENT
843−140:3 DEDENT
844−140:3 DEDENT
845−140:3 DEDENT
846−140:3 NEWLINE
847−140:3 glyph (
848−140:4 tight name reverse-into
849−140:17 name xs
850−140:20 lit ~
851−140:21 tight glyph )
852−140:22 DEDENT
853−140:22 NEWLINE
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 ^-
824+135:6 glyph (
825+135:7 tight name list
826+135:12 tvar A
827+135:13 tight glyph )
828+135:15 glyph [
829+135:16 tight name item
830+135:21 lit ~
831+135:22 tight glyph ]
832+137:1 DEDENT
833+137:1 NEWLINE
834+137:1 glyph ++
835+137:4 name snoc
836+137:9 glyph |=
837+137:12 name args
838+137:16 tight glyph =
839+137:17 tight glyph [
840+137:18 tight glyph (
841+137:19 tight name list
842+137:24 tvar A
843+137:25 tight glyph )
844+137:27 tvar A
845+137:28 tight glyph ]
846+138:3 INDENT
847+138:3 glyph ?-
848+138:6 name args
849+139:5 INDENT
850+139:5 glyph [
851+139:6 tight name xs
852+139:9 name item
853+139:13 tight glyph ]
854+139:15 glyph (
855+139:16 tight name weld
856+139:21 name xs
857+139:24 glyph [
858+139:25 tight name item
859+139:30 lit ~
860+139:31 tight glyph ]
861+139:32 tight glyph )
862+141:1 DEDENT
863+141:1 DEDENT
864+141:1 NEWLINE
865+141:1 glyph ++
866+141:4 name flop
867+141:9 glyph |=
868+141:12 name xs
869+141:14 tight glyph =
870+141:15 tight glyph (
871+141:16 tight name list
872+141:21 tvar A
873+141:22 tight glyph )
874+142:3 INDENT
875+142:3 glyph ++
876+142:6 name reverse-into
877+142:19 glyph |=
878+142:22 name args
879+142:26 tight glyph =
880+142:27 tight glyph [
881+142:28 tight glyph (
882+142:29 tight name list
883+142:34 tvar A
884+142:35 tight glyph )
885+142:37 glyph (
886+142:38 tight name list
887+142:43 tvar A
888+142:44 tight glyph )
889+142:45 tight glyph ]
890+143:5 INDENT
891+143:5 glyph ?-
892+143:8 name args
893+144:7 INDENT
894+144:7 glyph [
895+144:8 tight name rest
896+144:13 name acc
897+144:16 tight glyph ]
898+145:9 INDENT
899+145:9 glyph ?-
900+145:12 name rest
901+146:11 INDENT
902+146:11 lit ~
903+146:13 name acc
904+147:11 NEWLINE
905+147:11 glyph [
906+147:12 tight name item
907+147:17 name more
908+147:21 tight glyph ]
909+147:23 glyph (
910+147:24 tight name reverse-into
911+147:37 name more
912+147:42 glyph [
913+147:43 tight name item
914+147:48 name acc
915+147:51 tight glyph ]
916+147:52 tight glyph )
917+148:3 DEDENT
918+148:3 DEDENT
919+148:3 DEDENT
920+148:3 DEDENT
921+148:3 NEWLINE
922+148:3 glyph (
923+148:4 tight name reverse-into
924+148:17 name xs
925+148:20 lit ~
926+148:21 tight glyph )
927+148:22 DEDENT
928+148:22 NEWLINE
tests/golden/prelude-list-helpers/tree.txt+138−106
@@ -235,112 +235,144 @@
235235 (cell 97:32
236236 (face 97:33 p (tvar 97:35 A))
237237 (face 97:37 q (ref 97:39 nail))))))))
238− (value 99:1 wonk
238+ (value 99:1 like
239239 (gate 99:9
240− (face 99:12 veq
241− (apply 99:16 like (tvar 99:22 A)))
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
244+ (apply 99:30 like (tvar 99:36 A))))
242245 (body 100:3
243− (branch 100:3
244− (wing 100:6 q.veq)
245− (arm 101:5 (lit 101:5 ~) (crash 101:7))
246− (arm 102:5
247− (cell 102:5 (lit 102:6 ~) (bind 102:8 product))
248− (wing 102:17 p.product))))))
249− (mold 104:1 lone
250− (generic 104:9 A
251− (cell 104:16
252− (face 104:17 p (tvar 104:19 A)))))
253− (mold 106:1 lest
254− (generic 106:9 A
255− (cell 106:16
256− (face 106:17 i (tvar 106:19 A))
257− (face 106:21 t
258− (apply 106:23 list (tvar 106:29 A))))))
259− (mold 108:1 pole
260− (generic 108:9 A
261− (union 109:3
262− (const 109:3 ~)
263− (cell 110:3
264− (tvar 110:4 A)
265− (apply 110:6 pole (tvar 110:12 A))))))
266− (mold 112:1 quip
267− (generic 112:9 A B
268− (cell 112:18
269− (apply 112:19 list (tvar 112:25 A))
270− (tvar 112:28 B))))
271− (mold 114:1 tree
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
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
284+ (face 112:17 p (tvar 112:19 A)))))
285+ (mold 114:1 lest
272286 (generic 114:9 A
273− (union 115:3
274− (const 115:3 ~)
275− (cell 116:3
276− (face 116:4 n (tvar 116:6 A))
277− (face 116:8 l
278− (apply 116:10 tree (tvar 116:16 A)))
279− (face 116:19 r
280− (apply 116:21 tree (tvar 116:27 A)))))))
281− (mold 118:1 each
282− (generic 118:9 A B
283− (union 119:3
284− (cell 119:3
285− (const 119:4 %|)
286− (face 119:7 p (tvar 119:9 B)))
287− (cell 120:3
288− (const 120:4 %&)
289− (face 120:7 p (tvar 120:9 A))))))
290− (mold 122:1 bloq (aura 122:9 @))
291− (value 124:1 some
292− (gate 124:9
293− (face 124:12 item (tvar 124:17 A))
294− (unit 124:19 (wing 124:20 item))))
295− (value 126:1 lure
296− (gate 126:9
297− (face 126:12 item (tvar 126:17 A))
298− (body 127:3
299− (cast 127:3
300− (apply 127:6 list (tvar 127:12 A))
301− (tuple 127:15 (wing 127:16 item) (lit 127:21 ~))))))
302− (value 129:1 snoc
303− (gate 129:9
304− (face 129:12 args
305− (cell 129:17
306− (apply 129:18 list (tvar 129:24 A))
307− (tvar 129:27 A)))
308− (body 130:3
309− (branch 130:3
310− (wing 130:6 args)
311− (arm 131:5
312− (cell 131:5 (bind 131:6 xs) (bind 131:9 item))
313− (group 131:15
314− (call 131:16
315− (wing 131:16 weld)
316− (wing 131:21 xs)
317− (tuple 131:24 (wing 131:25 item) (lit 131:30 ~)))))))))
318− (value 133:1 flop
319− (gate 133:9
320− (face 133:12 xs
321− (apply 133:15 list (tvar 133:21 A)))
322− (body 134:3
323− (value 134:3 reverse-into
324− (gate 134:19
325− (face 134:22 args
326− (cell 134:27
327− (apply 134:28 list (tvar 134:34 A))
328− (apply 134:37 list (tvar 134:43 A))))
329− (body 135:5
330− (branch 135:5
331− (wing 135:8 args)
332− (arm 136:7
333− (cell 136:7 (bind 136:8 rest) (bind 136:13 acc))
334− (body 137:9
335− (branch 137:9
336− (wing 137:12 rest)
337− (arm 138:11 (lit 138:11 ~) (wing 138:13 acc))
338− (arm 139:11
339− (cell 139:11 (bind 139:12 item) (bind 139:17 more))
340− (group 139:23
341− (call 139:24
342− (wing 139:24 reverse-into)
343− (wing 139:37 more)
344− (tuple 139:42 (wing 139:43 item) (wing 139:48 acc))))))))))))
345− (group 140:3
346− (call 140:4 (wing 140:4 reverse-into) (wing 140:17 xs) (lit 140:20 ~)))))))
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
305+ (union 123:3
306+ (const 123:3 ~)
307+ (cell 124:3
308+ (face 124:4 n (tvar 124:6 A))
309+ (face 124:8 l
310+ (apply 124:10 tree (tvar 124:16 A)))
311+ (face 124:19 r
312+ (apply 124:21 tree (tvar 124:27 A)))))))
313+ (mold 126:1 each
314+ (generic 126:9 A B
315+ (union 127:3
316+ (cell 127:3
317+ (const 127:4 %|)
318+ (face 127:7 p (tvar 127:9 B)))
319+ (cell 128:3
320+ (const 128:4 %&)
321+ (face 128:7 p (tvar 128:9 A))))))
322+ (mold 130:1 bloq (aura 130:9 @))
323+ (value 132:1 some
324+ (gate 132:9
325+ (face 132:12 item (tvar 132:17 A))
326+ (unit 132:19 (wing 132:20 item))))
327+ (value 134:1 lure
328+ (gate 134:9
329+ (face 134:12 item (tvar 134:17 A))
330+ (body 135:3
331+ (cast 135:3
332+ (apply 135:6 list (tvar 135:12 A))
333+ (tuple 135:15 (wing 135:16 item) (lit 135:21 ~))))))
334+ (value 137:1 snoc
335+ (gate 137:9
336+ (face 137:12 args
337+ (cell 137:17
338+ (apply 137:18 list (tvar 137:24 A))
339+ (tvar 137:27 A)))
340+ (body 138:3
341+ (branch 138:3
342+ (wing 138:6 args)
343+ (arm 139:5
344+ (cell 139:5 (bind 139:6 xs) (bind 139:9 item))
345+ (group 139:15
346+ (call 139:16
347+ (wing 139:16 weld)
348+ (wing 139:21 xs)
349+ (tuple 139:24 (wing 139:25 item) (lit 139:30 ~)))))))))
350+ (value 141:1 flop
351+ (gate 141:9
352+ (face 141:12 xs
353+ (apply 141:15 list (tvar 141:21 A)))
354+ (body 142:3
355+ (value 142:3 reverse-into
356+ (gate 142:19
357+ (face 142:22 args
358+ (cell 142:27
359+ (apply 142:28 list (tvar 142:34 A))
360+ (apply 142:37 list (tvar 142:43 A))))
361+ (body 143:5
362+ (branch 143:5
363+ (wing 143:8 args)
364+ (arm 144:7
365+ (cell 144:7 (bind 144:8 rest) (bind 144:13 acc))
366+ (body 145:9
367+ (branch 145:9
368+ (wing 145:12 rest)
369+ (arm 146:11 (lit 146:11 ~) (wing 146:13 acc))
370+ (arm 147:11
371+ (cell 147:11 (bind 147:12 item) (bind 147:17 more))
372+ (group 147:23
373+ (call 147:24
374+ (wing 147:24 reverse-into)
375+ (wing 147:37 more)
376+ (tuple 147:42 (wing 147:43 item) (wing 147:48 acc))))))))))))
377+ (group 148:3
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
2727+$ spot: not checked
2828+$ toon: cases proven disjoint; mold not checked
2929+$ like: not checked
30+++ like: sample mold is not supported by partial inference
3031++ wonk: sample mold is not supported by partial inference
3132+$ lone: not checked
3233+$ lest: not checked
tests/golden/prelude-unit-list-transforms/source.jibb+8
@@ -101,6 +101,14 @@
101101
102102+$ like |$ [A] [p=hair q=(unit [p=A q=nail])]
103103
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+
104112++ wonk |= veq=(like A)
105113 ?- q.veq
106114 ~ !!
tests/golden/prelude-unit-list-transforms/tokens.txt+1529−1454
@@ -605,1528 +605,1603 @@
605605102:45 tight glyph ]
606606104:1 NEWLINE
607607104:1 glyph ++
608−104:4 name wonk
608+104:4 name like
609609104:9 glyph |=
610−104:12 name veq
611−104:15 tight glyph =
612−104:16 tight glyph (
613−104:17 tight name like
614−104:22 tvar A
615−104:23 tight glyph )
610+104:12 glyph [
611+104:13 tight name f
612+104:14 tight glyph =
613+104:15 tight glyph $-(
614+104:18 tight tvar A
615+104:20 tvar B
616+104:21 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 ]
616624105:3 INDENT
617−105:3 glyph ?-
618−105:6 wing q.veq
625+105:3 glyph ++
626+105:6 name mapped
619627106:5 INDENT
620−106:5 lit ~
621−106:7 glyph !!
622−107:5 NEWLINE
623−107:5 glyph [
624−107:6 tight lit ~
625−107:8 name product
626−107:15 tight glyph ]
627−107:17 wing p.product
628−109:1 DEDENT
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 [
635−109:13 tight tvar A
636−109:14 tight glyph ]
637−109:16 glyph [
638−109:17 tight name p
639−109:18 tight glyph =
640−109:19 tight tvar A
641−109:20 tight glyph ]
642−111:1 NEWLINE
643−111:1 glyph +$
644−111:4 name lest
645−111:9 glyph |$
646−111:12 glyph [
647−111:13 tight tvar A
648−111:14 tight glyph ]
649−111:16 glyph [
650−111:17 tight name i
651−111:18 tight glyph =
652−111:19 tight tvar A
653−111:21 name t
654−111:22 tight glyph =
655−111:23 tight glyph (
656−111:24 tight name list
657−111:29 tvar A
658−111:30 tight glyph )
659−111:31 tight glyph ]
660−113:1 NEWLINE
661−113:1 glyph +$
662−113:4 name pole
663−113:9 glyph |$
664−113:12 glyph [
665−113:13 tight tvar A
666−113:14 tight glyph ]
667−114:3 INDENT
668−114:3 lit ~
669−115:3 NEWLINE
670−115:3 glyph [
671−115:4 tight tvar A
672−115:6 glyph (
673−115:7 tight name pole
674−115:12 tvar A
675−115:13 tight glyph )
676−115:14 tight glyph ]
628+106:5 glyph ^-
629+106:8 glyph (
630+106:9 tight name unit
631+106:14 glyph [
632+106:15 tight name p
633+106:16 tight glyph =
634+106:17 tight tvar B
635+106:19 name q
636+106:20 tight glyph =
637+106:21 tight name nail
638+106:25 tight glyph ]
639+106:26 tight glyph )
640+107:7 INDENT
641+107:7 glyph ?-
642+107:10 wing q.result
643+108:9 INDENT
644+108:9 lit ~
645+108:11 lit ~
646+109:9 NEWLINE
647+109:9 glyph [
648+109:10 tight lit ~
649+109:12 name value
650+109:17 tight glyph ]
651+109:19 glyph `
652+109:20 tight glyph [
653+109:21 tight name p
654+109:22 tight glyph =
655+109:23 tight glyph (
656+109:24 tight name f
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
679+110:35 tight glyph ]
680+112:1 DEDENT
681+112:1 NEWLINE
682+112:1 glyph ++
683+112:4 name wonk
684+112:9 glyph |=
685+112:12 name veq
686+112:15 tight glyph =
687+112:16 tight glyph (
688+112:17 tight name like
689+112:22 tvar A
690+112:23 tight glyph )
691+113:3 INDENT
692+113:3 glyph ?-
693+113:6 wing q.veq
694+114:5 INDENT
695+114:5 lit ~
696+114:7 glyph !!
697+115:5 NEWLINE
698+115:5 glyph [
699+115:6 tight lit ~
700+115:8 name product
701+115:15 tight glyph ]
702+115:17 wing p.product
703+117:1 DEDENT
677704117:1 DEDENT
678705117:1 NEWLINE
679706117:1 glyph +$
680−117:4 name quip
707+117:4 name lone
681708117:9 glyph |$
682709117:12 glyph [
683710117:13 tight tvar A
684−117:15 tvar B
685−117:16 tight glyph ]
686−117:18 glyph [
687−117:19 tight glyph (
688−117:20 tight name list
689−117:25 tvar A
690−117:26 tight glyph )
691−117:28 tvar B
692−117:29 tight glyph ]
711+117:14 tight glyph ]
712+117:16 glyph [
713+117:17 tight name p
714+117:18 tight glyph =
715+117:19 tight tvar A
716+117:20 tight glyph ]
693717119:1 NEWLINE
694718119:1 glyph +$
695−119:4 name tree
719+119:4 name lest
696720119:9 glyph |$
697721119:12 glyph [
698722119:13 tight tvar A
699723119:14 tight glyph ]
700−120:3 INDENT
701−120:3 lit ~
702−121:3 NEWLINE
703−121:3 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 )
713−121:19 name r
714−121:20 tight glyph =
715−121:21 tight glyph (
716−121:22 tight name tree
717−121:27 tvar A
718−121:28 tight glyph )
719−121:29 tight glyph ]
720−123:1 DEDENT
721−123:1 NEWLINE
722−123:1 glyph +$
723−123:4 name each
724−123:9 glyph |$
725−123:12 glyph [
726−123:13 tight tvar A
727−123:15 tvar B
728−123:16 tight glyph ]
729−124:3 INDENT
730−124:3 glyph [
731−124:4 tight lit %|
732−124:7 name p
733−124:8 tight glyph =
734−124:9 tight tvar B
735−124:10 tight glyph ]
736−125:3 NEWLINE
737−125:3 glyph [
738−125:4 tight lit %&
739−125:7 name p
740−125:8 tight glyph =
741−125:9 tight tvar A
742−125:10 tight glyph ]
743−127:1 DEDENT
724+119:16 glyph [
725+119:17 tight name i
726+119:18 tight glyph =
727+119:19 tight tvar A
728+119:21 name t
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 [
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
750+123:13 tight glyph )
751+123:14 tight glyph ]
752+125:1 DEDENT
753+125:1 NEWLINE
754+125:1 glyph +$
755+125:4 name quip
756+125:9 glyph |$
757+125:12 glyph [
758+125:13 tight tvar A
759+125:15 tvar B
760+125:16 tight glyph ]
761+125:18 glyph [
762+125:19 tight glyph (
763+125:20 tight name list
764+125:25 tvar A
765+125:26 tight glyph )
766+125:28 tvar B
767+125:29 tight glyph ]
744768127:1 NEWLINE
745769127:1 glyph +$
746−127:4 name bloq
747−127:9 aura @
748−129:1 NEWLINE
749−129:1 glyph ++
750−129:4 name some
751−129:9 glyph |=
752−129:12 name item
753−129:16 tight glyph =
754−129:17 tight tvar A
755−129:19 glyph `
756−129:20 tight name item
770+127:4 name tree
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 ~
777+129:3 NEWLINE
778+129:3 glyph [
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 =
784+129:10 tight glyph (
785+129:11 tight name tree
786+129:16 tvar A
787+129:17 tight glyph )
788+129:19 name r
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
757796131:1 NEWLINE
758−131:1 glyph ++
759−131:4 name lure
760−131:9 glyph |=
761−131:12 name item
762−131:16 tight glyph =
763−131:17 tight tvar A
797+131:1 glyph +$
798+131:4 name each
799+131:9 glyph |$
800+131:12 glyph [
801+131:13 tight tvar A
802+131:15 tvar B
803+131:16 tight glyph ]
764804132:3 INDENT
765−132:3 glyph ^-
766−132:6 glyph (
767−132:7 tight name list
768−132:12 tvar A
769−132:13 tight glyph )
770−132:15 glyph [
771−132:16 tight name item
772−132:21 lit ~
773−132:22 tight glyph ]
774−134:1 DEDENT
775−134:1 NEWLINE
776−134:1 glyph ++
777−134:4 name snoc
778−134:9 glyph |=
779−134:12 name args
780−134:16 tight glyph =
781−134:17 tight glyph [
782−134:18 tight glyph (
783−134:19 tight name list
784−134:24 tvar A
785−134:25 tight glyph )
786−134:27 tvar A
787−134:28 tight glyph ]
788−135:3 INDENT
789−135:3 glyph ?-
790−135:6 name args
791−136:5 INDENT
792−136:5 glyph [
793−136:6 tight name xs
794−136:9 name item
795−136:13 tight glyph ]
796−136:15 glyph (
797−136:16 tight name weld
798−136:21 name xs
799−136:24 glyph [
800−136:25 tight name item
801−136:30 lit ~
802−136:31 tight glyph ]
803−136:32 tight glyph )
804−138:1 DEDENT
805−138:1 DEDENT
806−138:1 NEWLINE
807−138:1 glyph ++
808−138:4 name flop
809−138:9 glyph |=
810−138:12 name xs
811−138:14 tight glyph =
812−138:15 tight glyph (
813−138:16 tight name list
814−138:21 tvar A
815−138:22 tight glyph )
816−139:3 INDENT
817−139:3 glyph ++
818−139:6 name reverse-into
819−139:19 glyph |=
820−139:22 name args
821−139:26 tight glyph =
822−139:27 tight glyph [
823−139:28 tight glyph (
824−139:29 tight name list
825−139:34 tvar A
826−139:35 tight glyph )
827−139:37 glyph (
828−139:38 tight name list
829−139:43 tvar A
830−139:44 tight glyph )
831−139:45 tight glyph ]
832−140:5 INDENT
833−140:5 glyph ?-
834−140:8 name args
835−141:7 INDENT
836−141:7 glyph [
837−141:8 tight name rest
838−141:13 name acc
839−141:16 tight glyph ]
840−142:9 INDENT
841−142:9 glyph ?-
842−142:12 name rest
843−143:11 INDENT
844−143:11 lit ~
845−143:13 name acc
846−144:11 NEWLINE
847−144:11 glyph [
848−144:12 tight name item
849−144:17 name more
850−144:21 tight glyph ]
851−144:23 glyph (
852−144:24 tight name reverse-into
853−144:37 name more
854−144:42 glyph [
855−144:43 tight name item
856−144:48 name acc
857−144:51 tight glyph ]
858−144:52 tight glyph )
859−145:3 DEDENT
860−145:3 DEDENT
861−145:3 DEDENT
862−145:3 DEDENT
863−145:3 NEWLINE
864−145:3 glyph (
865−145:4 tight name reverse-into
866−145:17 name xs
867−145:20 lit ~
868−145:21 tight glyph )
869−147:1 DEDENT
870−147:1 NEWLINE
871−147:1 glyph ++
872−147:4 name drop
873−147:9 glyph |=
874−147:12 name maybe
875−147:17 tight glyph =
876−147:18 tight glyph (
877−147:19 tight name unit
878−147:24 tvar A
879−147:25 tight glyph )
880−148:3 INDENT
881−148:3 glyph ^-
882−148:6 glyph (
883−148:7 tight name list
884−148:12 tvar A
885−148:13 tight glyph )
886−149:5 INDENT
887−149:5 glyph ?-
888−149:8 name maybe
889−150:7 INDENT
890−150:7 lit ~
891−150:9 lit ~
892−151:7 NEWLINE
893−151:7 glyph [
894−151:8 tight lit ~
895−151:10 name value
896−151:15 tight glyph ]
897−151:17 glyph [
898−151:18 tight name value
899−151:24 lit ~
900−151:25 tight glyph ]
901−153:1 DEDENT
902−153:1 DEDENT
903−153:1 DEDENT
904−153:1 NEWLINE
905−153:1 glyph ++
906−153:4 name bond
907−153:9 glyph |=
908−153:12 name fallback
909−153:20 tight glyph =
910−153:21 tight glyph $-(
911−153:24 tight lit ~
912−153:26 tvar A
913−153:27 tight glyph )
914−154:3 INDENT
915−154:3 glyph |=
916−154:6 name maybe
917−154:11 tight glyph =
918−154:12 tight glyph (
919−154:13 tight name unit
920−154:18 tvar A
921−154:19 tight glyph )
922−155:5 INDENT
923−155:5 glyph ?-
924−155:8 name maybe
925−156:7 INDENT
926−156:7 lit ~
927−156:9 glyph (
928−156:10 tight name fallback
929−156:19 lit ~
930−156:20 tight glyph )
931−157:7 NEWLINE
932−157:7 glyph [
933−157:8 tight lit ~
934−157:10 name value
935−157:15 tight glyph ]
936−157:17 name value
937−159:1 DEDENT
938−159:1 DEDENT
939−159:1 DEDENT
940−159:1 NEWLINE
941−159:1 glyph ++
942−159:4 name bind
943−159:9 glyph |=
944−159:12 name args
945−159:16 tight glyph =
946−159:17 tight glyph [
947−159:18 tight glyph (
948−159:19 tight name unit
949−159:24 tvar A
950−159:25 tight glyph )
951−159:27 glyph $-(
952−159:30 tight tvar A
953−159:32 tvar B
954−159:33 tight glyph )
955−159:34 tight glyph ]
956−160:3 INDENT
957−160:3 glyph ?-
958−160:6 name args
959−161:5 INDENT
960−161:5 glyph [
961−161:6 tight name maybe
962−161:12 name f
963−161:13 tight glyph ]
964−161:15 glyph ^-
965−161:18 glyph (
966−161:19 tight name unit
967−161:24 tvar B
968−161:25 tight glyph )
969−162:7 INDENT
970−162:7 glyph ?-
971−162:10 name maybe
972−163:9 INDENT
973−163:9 lit ~
974−163:11 lit ~
975−164:9 NEWLINE
976−164:9 glyph [
977−164:10 tight lit ~
978−164:12 name value
979−164:17 tight glyph ]
980−164:19 glyph `
981−164:20 tight glyph (
982−164:21 tight name f
983−164:23 name value
984−164:28 tight glyph )
985−166:1 DEDENT
986−166:1 DEDENT
987−166:1 DEDENT
988−166:1 DEDENT
989−166:1 NEWLINE
990−166:1 glyph ++
991−166:4 name biff
992−166:9 glyph |=
993−166:12 name args
994−166:16 tight glyph =
995−166:17 tight glyph [
996−166:18 tight glyph (
997−166:19 tight name unit
998−166:24 tvar A
999−166:25 tight glyph )
1000−166:27 glyph $-(
1001−166:30 tight tvar A
1002−166:32 glyph (
1003−166:33 tight name unit
1004−166:38 tvar B
1005−166:39 tight glyph )
1006−166:40 tight glyph )
1007−166:41 tight glyph ]
1008−167:3 INDENT
1009−167:3 glyph ?-
1010−167:6 name args
1011−168:5 INDENT
1012−168:5 glyph [
1013−168:6 tight name maybe
1014−168:12 name f
1015−168:13 tight glyph ]
1016−168:15 glyph ^-
1017−168:18 glyph (
1018−168:19 tight name unit
1019−168:24 tvar B
1020−168:25 tight glyph )
1021−169:7 INDENT
1022−169:7 glyph ?-
1023−169:10 name maybe
1024−170:9 INDENT
1025−170:9 lit ~
1026−170:11 lit ~
1027−171:9 NEWLINE
1028−171:9 glyph [
1029−171:10 tight lit ~
1030−171:12 name value
1031−171:17 tight glyph ]
1032−171:19 glyph (
1033−171:20 tight name f
1034−171:22 name value
1035−171:27 tight glyph )
1036−173:1 DEDENT
1037−173:1 DEDENT
1038−173:1 DEDENT
1039−173:1 DEDENT
1040−173:1 NEWLINE
1041−173:1 glyph ++
1042−173:4 name both
1043−173:9 glyph |=
1044−173:12 name args
1045−173:16 tight glyph =
1046−173:17 tight glyph [
1047−173:18 tight glyph (
1048−173:19 tight name unit
1049−173:24 tvar A
1050−173:25 tight glyph )
1051−173:27 glyph (
1052−173:28 tight name unit
1053−173:33 tvar B
1054−173:34 tight glyph )
1055−173:35 tight glyph ]
1056−174:3 INDENT
1057−174:3 glyph ?-
1058−174:6 name args
1059−175:5 INDENT
1060−175:5 glyph [
1061−175:6 tight name first
1062−175:12 name second
1063−175:18 tight glyph ]
1064−175:20 glyph ^-
1065−175:23 glyph (
1066−175:24 tight name unit
1067−175:29 glyph [
1068−175:30 tight tvar A
1069−175:32 tvar B
1070−175:33 tight glyph ]
1071−175:34 tight glyph )
1072−176:7 INDENT
1073−176:7 glyph ?-
1074−176:10 name first
1075−177:9 INDENT
1076−177:9 lit ~
1077−177:11 lit ~
1078−178:9 NEWLINE
1079−178:9 glyph [
1080−178:10 tight lit ~
1081−178:12 name a
1082−178:13 tight glyph ]
1083−179:11 INDENT
1084−179:11 glyph ?-
1085−179:14 name second
1086−180:13 INDENT
1087−180:13 lit ~
1088−180:15 lit ~
1089−181:13 NEWLINE
1090−181:13 glyph [
1091−181:14 tight lit ~
1092−181:16 name b
1093−181:17 tight glyph ]
1094−181:19 glyph `
1095−181:20 tight glyph [
1096−181:21 tight name a
1097−181:23 name b
1098−181:24 tight glyph ]
1099−183:1 DEDENT
1100−183:1 DEDENT
1101−183:1 DEDENT
1102−183:1 DEDENT
1103−183:1 DEDENT
1104−183:1 DEDENT
1105−183:1 NEWLINE
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
805+132:3 glyph [
806+132:4 tight lit %|
807+132:7 name p
808+132:8 tight glyph =
809+132:9 tight tvar B
810+132:10 tight glyph ]
811+133:3 NEWLINE
812+133:3 glyph [
813+133:4 tight lit %&
814+133:7 name p
815+133:8 tight glyph =
816+133:9 tight tvar A
817+133:10 tight glyph ]
818+135:1 DEDENT
819+135:1 NEWLINE
820+135:1 glyph +$
821+135:4 name bloq
822+135:9 aura @
823+137:1 NEWLINE
824+137:1 glyph ++
825+137:4 name some
826+137:9 glyph |=
827+137:12 name item
828+137:16 tight glyph =
829+137:17 tight tvar A
830+137:19 glyph `
831+137:20 tight name item
832+139:1 NEWLINE
833+139:1 glyph ++
834+139:4 name lure
835+139:9 glyph |=
836+139:12 name item
837+139:16 tight glyph =
838+139:17 tight tvar A
839+140:3 INDENT
840+140:3 glyph ^-
841+140:6 glyph (
842+140:7 tight name list
843+140:12 tvar A
844+140:13 tight glyph )
845+140:15 glyph [
846+140:16 tight name item
847+140:21 lit ~
848+140:22 tight glyph ]
849+142:1 DEDENT
850+142:1 NEWLINE
851+142:1 glyph ++
852+142:4 name snoc
853+142:9 glyph |=
854+142:12 name args
855+142:16 tight glyph =
856+142:17 tight glyph [
857+142:18 tight glyph (
858+142:19 tight name list
859+142:24 tvar A
860+142:25 tight glyph )
861+142:27 tvar A
862+142:28 tight glyph ]
863+143:3 INDENT
864+143:3 glyph ?-
865+143:6 name args
866+144:5 INDENT
867+144:5 glyph [
868+144:6 tight name xs
869+144:9 name item
870+144:13 tight glyph ]
871+144:15 glyph (
872+144:16 tight name weld
873+144:21 name xs
874+144:24 glyph [
875+144:25 tight name item
876+144:30 lit ~
877+144:31 tight glyph ]
878+144:32 tight glyph )
879+146:1 DEDENT
880+146:1 DEDENT
881+146:1 NEWLINE
882+146:1 glyph ++
883+146:4 name flop
884+146:9 glyph |=
885+146:12 name xs
886+146:14 tight glyph =
887+146:15 tight glyph (
888+146:16 tight name list
889+146:21 tvar A
890+146:22 tight glyph )
891+147:3 INDENT
892+147:3 glyph ++
893+147:6 name reverse-into
894+147:19 glyph |=
895+147:22 name args
896+147:26 tight glyph =
897+147:27 tight glyph [
898+147:28 tight glyph (
899+147:29 tight name list
900+147:34 tvar A
901+147:35 tight glyph )
902+147:37 glyph (
903+147:38 tight name list
904+147:43 tvar A
905+147:44 tight glyph )
906+147:45 tight glyph ]
907+148:5 INDENT
908+148:5 glyph ?-
909+148:8 name args
910+149:7 INDENT
911+149:7 glyph [
912+149:8 tight name rest
913+149:13 name acc
914+149:16 tight glyph ]
915+150:9 INDENT
916+150:9 glyph ?-
917+150:12 name rest
918+151:11 INDENT
919+151:11 lit ~
920+151:13 name acc
921+152:11 NEWLINE
922+152:11 glyph [
923+152:12 tight name item
924+152:17 name more
925+152:21 tight glyph ]
926+152:23 glyph (
927+152:24 tight name reverse-into
928+152:37 name more
929+152:42 glyph [
930+152:43 tight name item
931+152:48 name acc
932+152:51 tight glyph ]
933+152:52 tight glyph )
934+153:3 DEDENT
935+153:3 DEDENT
936+153:3 DEDENT
937+153:3 DEDENT
938+153:3 NEWLINE
939+153:3 glyph (
940+153:4 tight name reverse-into
941+153:17 name xs
942+153:20 lit ~
943+153:21 tight glyph )
944+155:1 DEDENT
945+155:1 NEWLINE
946+155:1 glyph ++
947+155:4 name drop
948+155:9 glyph |=
949+155:12 name maybe
950+155:17 tight glyph =
951+155:18 tight glyph (
952+155:19 tight name unit
953+155:24 tvar A
954+155:25 tight glyph )
955+156:3 INDENT
956+156:3 glyph ^-
957+156:6 glyph (
958+156:7 tight name list
959+156:12 tvar A
960+156:13 tight glyph )
961+157:5 INDENT
962+157:5 glyph ?-
963+157:8 name maybe
964+158:7 INDENT
965+158:7 lit ~
966+158:9 lit ~
967+159:7 NEWLINE
968+159:7 glyph [
969+159:8 tight lit ~
970+159:10 name value
971+159:15 tight glyph ]
972+159:17 glyph [
973+159:18 tight name value
974+159:24 lit ~
975+159:25 tight glyph ]
976+161:1 DEDENT
977+161:1 DEDENT
978+161:1 DEDENT
979+161:1 NEWLINE
980+161:1 glyph ++
981+161:4 name bond
982+161:9 glyph |=
983+161:12 name fallback
984+161:20 tight glyph =
985+161:21 tight glyph $-(
986+161:24 tight lit ~
987+161:26 tvar A
988+161:27 tight glyph )
989+162:3 INDENT
990+162:3 glyph |=
991+162:6 name maybe
992+162:11 tight glyph =
993+162:12 tight glyph (
994+162:13 tight name unit
995+162:18 tvar A
996+162:19 tight glyph )
997+163:5 INDENT
998+163:5 glyph ?-
999+163:8 name maybe
1000+164:7 INDENT
1001+164:7 lit ~
1002+164:9 glyph (
1003+164:10 tight name fallback
1004+164:19 lit ~
1005+164:20 tight glyph )
1006+165:7 NEWLINE
1007+165:7 glyph [
1008+165:8 tight lit ~
1009+165:10 name value
1010+165:15 tight glyph ]
1011+165:17 name value
1012+167:1 DEDENT
1013+167:1 DEDENT
1014+167:1 DEDENT
1015+167:1 NEWLINE
1016+167:1 glyph ++
1017+167:4 name bind
1018+167:9 glyph |=
1019+167:12 name args
1020+167:16 tight glyph =
1021+167:17 tight glyph [
1022+167:18 tight glyph (
1023+167:19 tight name unit
1024+167:24 tvar A
1025+167:25 tight glyph )
1026+167:27 glyph $-(
1027+167:30 tight tvar A
1028+167:32 tvar B
1029+167:33 tight glyph )
1030+167:34 tight glyph ]
1031+168:3 INDENT
1032+168:3 glyph ?-
1033+168:6 name args
1034+169:5 INDENT
1035+169:5 glyph [
1036+169:6 tight name maybe
1037+169:12 name f
1038+169:13 tight glyph ]
1039+169:15 glyph ^-
1040+169:18 glyph (
1041+169:19 tight name unit
1042+169:24 tvar B
1043+169:25 tight glyph )
1044+170:7 INDENT
1045+170:7 glyph ?-
1046+170:10 name maybe
1047+171:9 INDENT
1048+171:9 lit ~
1049+171:11 lit ~
1050+172:9 NEWLINE
1051+172:9 glyph [
1052+172:10 tight lit ~
1053+172:12 name value
1054+172:17 tight glyph ]
1055+172:19 glyph `
1056+172:20 tight glyph (
1057+172:21 tight name f
1058+172:23 name value
1059+172:28 tight glyph )
1060+174:1 DEDENT
1061+174:1 DEDENT
1062+174:1 DEDENT
1063+174:1 DEDENT
1064+174:1 NEWLINE
1065+174:1 glyph ++
1066+174:4 name biff
1067+174:9 glyph |=
1068+174:12 name args
1069+174:16 tight glyph =
1070+174:17 tight glyph [
1071+174:18 tight glyph (
1072+174:19 tight name unit
1073+174:24 tvar A
1074+174:25 tight glyph )
1075+174:27 glyph $-(
1076+174:30 tight tvar A
1077+174:32 glyph (
1078+174:33 tight name unit
1079+174:38 tvar B
1080+174:39 tight glyph )
1081+174:40 tight glyph )
1082+174:41 tight glyph ]
1083+175:3 INDENT
1084+175:3 glyph ?-
1085+175:6 name args
1086+176:5 INDENT
1087+176:5 glyph [
1088+176:6 tight name maybe
1089+176:12 name f
1090+176:13 tight glyph ]
1091+176:15 glyph ^-
1092+176:18 glyph (
1093+176:19 tight name unit
1094+176:24 tvar B
1095+176:25 tight glyph )
1096+177:7 INDENT
1097+177:7 glyph ?-
1098+177:10 name maybe
1099+178:9 INDENT
1100+178:9 lit ~
1101+178:11 lit ~
1102+179:9 NEWLINE
1103+179:9 glyph [
1104+179:10 tight lit ~
1105+179:12 name value
1106+179:17 tight glyph ]
1107+179:19 glyph (
1108+179:20 tight name f
1109+179:22 name value
1110+179:27 tight glyph )
1111+181:1 DEDENT
1112+181:1 DEDENT
1113+181:1 DEDENT
1114+181:1 DEDENT
1115+181:1 NEWLINE
1116+181:1 glyph ++
1117+181:4 name both
1118+181:9 glyph |=
1119+181:12 name args
1120+181:16 tight glyph =
1121+181:17 tight glyph [
1122+181:18 tight glyph (
1123+181:19 tight name unit
1124+181:24 tvar A
1125+181:25 tight glyph )
1126+181:27 glyph (
1127+181:28 tight name unit
1128+181:33 tvar B
1129+181:34 tight glyph )
1130+181:35 tight glyph ]
1131+182:3 INDENT
1132+182:3 glyph ?-
1133+182:6 name args
1134+183:5 INDENT
1135+183:5 glyph [
1136+183:6 tight name first
1137+183:12 name second
1138+183:18 tight glyph ]
1139+183:20 glyph ^-
1140+183:23 glyph (
1141+183:24 tight name unit
1142+183:29 glyph [
1143+183:30 tight tvar A
1144+183:32 tvar B
1145+183:33 tight glyph ]
11191146183:34 tight glyph )
1120−183:36 glyph $-(
1121−183:39 tight glyph [
1122−183:40 tight tvar A
1123−183:42 tvar A
1124−183:43 tight glyph ]
1125−183:45 tvar A
1126−183:46 tight glyph )
1127−183:47 tight glyph ]
1128−184:3 INDENT
1129−184:3 glyph ?-
1130−184:6 name args
1131−185:5 INDENT
1132−185:5 glyph [
1133−185:6 tight name first
1134−185:12 name second
1135−185:19 name combine
1136−185:26 tight glyph ]
1137−185:28 glyph ^-
1138−185:31 glyph (
1139−185:32 tight name unit
1140−185:37 tvar A
1141−185:38 tight glyph )
1142−186:7 INDENT
1143−186:7 glyph ?-
1144−186:10 name first
1145−187:9 INDENT
1146−187:9 lit ~
1147−187:11 name second
1148−188:9 NEWLINE
1149−188:9 glyph [
1150−188:10 tight lit ~
1151−188:12 name a
1152−188:13 tight glyph ]
1153−189:11 INDENT
1154−189:11 glyph ?-
1155−189:14 name second
1156−190:13 INDENT
1157−190:13 lit ~
1158−190:15 name first
1159−191:13 NEWLINE
1160−191:13 glyph [
1161−191:14 tight lit ~
1162−191:16 name b
1163−191:17 tight glyph ]
1164−191:19 glyph `
1165−191:20 tight glyph (
1166−191:21 tight name combine
1167−191:29 name a
1168−191:31 name b
1169−191:32 tight glyph )
1170−193:1 DEDENT
1171−193:1 DEDENT
1172−193:1 DEDENT
1173−193:1 DEDENT
1174−193:1 DEDENT
1175−193:1 DEDENT
1176−193:1 NEWLINE
1177−193:1 glyph ++
1178−193:4 name clef
1179−193:9 glyph |=
1180−193:12 name args
1181−193:16 tight glyph =
1182−193:17 tight glyph [
1183−193:18 tight glyph (
1184−193:19 tight name unit
1185−193:24 tvar A
1186−193:25 tight glyph )
1187−193:27 glyph (
1188−193:28 tight name unit
1189−193:33 tvar B
1190−193:34 tight glyph )
1191−193:36 glyph $-(
1192−193:39 tight glyph [
1193−193:40 tight tvar A
1194−193:42 tvar B
1195−193:43 tight glyph ]
1196−193:45 glyph (
1197−193:46 tight name unit
1198−193:51 tvar C
1199−193:52 tight glyph )
1200−193:53 tight glyph )
1201−193:54 tight glyph ]
1202−194:3 INDENT
1203−194:3 glyph ?-
1204−194:6 name args
1205−195:5 INDENT
1206−195:5 glyph [
1207−195:6 tight name first
1208−195:12 name second
1209−195:19 name combine
1210−195:26 tight glyph ]
1211−195:28 glyph ^-
1212−195:31 glyph (
1213−195:32 tight name unit
1214−195:37 tvar C
1215−195:38 tight glyph )
1216−196:7 INDENT
1217−196:7 glyph ?-
1218−196:10 name first
1219−197:9 INDENT
1220−197:9 lit ~
1221−197:11 lit ~
1222−198:9 NEWLINE
1223−198:9 glyph [
1224−198:10 tight lit ~
1225−198:12 name a
1226−198:13 tight glyph ]
1227−199:11 INDENT
1228−199:11 glyph ?-
1229−199:14 name second
1230−200:13 INDENT
1231−200:13 lit ~
1232−200:15 lit ~
1233−201:13 NEWLINE
1234−201:13 glyph [
1235−201:14 tight lit ~
1236−201:16 name b
1237−201:17 tight glyph ]
1238−201:19 glyph (
1239−201:20 tight name combine
1240−201:28 name a
1241−201:30 name b
1242−201:31 tight glyph )
1243−203:1 DEDENT
1244−203:1 DEDENT
1245−203:1 DEDENT
1246−203:1 DEDENT
1247−203:1 DEDENT
1248−203:1 DEDENT
1249−203:1 NEWLINE
1250−203:1 glyph ++
1251−203:4 name skim
1252−203:9 glyph |=
1253−203:12 name args
1254−203:16 tight glyph =
1255−203:17 tight glyph [
1256−203:18 tight glyph (
1257−203:19 tight name list
1258−203:24 tvar A
1259−203:25 tight glyph )
1260−203:27 glyph $-(
1261−203:30 tight tvar A
1262−203:32 glyph ?
1263−203:33 tight glyph )
1264−203:34 tight glyph ]
1265−204:3 INDENT
1266−204:3 glyph ?-
1267−204:6 name args
1268−205:5 INDENT
1269−205:5 glyph [
1270−205:6 tight name xs
1271−205:9 name predicate
1272−205:18 tight glyph ]
1273−205:20 glyph ^-
1274−205:23 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
1147+184:7 INDENT
1148+184:7 glyph ?-
1149+184:10 name first
1150+185:9 INDENT
1151+185:9 lit ~
1152+185:11 lit ~
1153+186:9 NEWLINE
1154+186:9 glyph [
1155+186:10 tight lit ~
1156+186:12 name a
1157+186:13 tight glyph ]
1158+187:11 INDENT
1159+187:11 glyph ?-
1160+187:14 name second
1161+188:13 INDENT
1162+188:13 lit ~
1163+188:15 lit ~
1164+189:13 NEWLINE
1165+189:13 glyph [
1166+189:14 tight lit ~
1167+189:16 name b
1168+189:17 tight glyph ]
1169+189:19 glyph `
1170+189:20 tight glyph [
1171+189:21 tight name a
1172+189:23 name b
1173+189:24 tight glyph ]
1174+191:1 DEDENT
1175+191:1 DEDENT
1176+191:1 DEDENT
1177+191:1 DEDENT
1178+191:1 DEDENT
1179+191:1 DEDENT
1180+191:1 NEWLINE
1181+191:1 glyph ++
1182+191:4 name clap
1183+191:9 glyph |=
1184+191:12 name args
1185+191:16 tight glyph =
1186+191:17 tight glyph [
1187+191:18 tight glyph (
1188+191:19 tight name unit
1189+191:24 tvar A
1190+191:25 tight glyph )
1191+191:27 glyph (
1192+191:28 tight name unit
1193+191:33 tvar A
1194+191:34 tight glyph )
1195+191:36 glyph $-(
1196+191:39 tight glyph [
1197+191:40 tight tvar A
1198+191:42 tvar A
1199+191:43 tight glyph ]
1200+191:45 tvar A
1201+191:46 tight glyph )
1202+191:47 tight glyph ]
1203+192:3 INDENT
1204+192:3 glyph ?-
1205+192:6 name args
1206+193:5 INDENT
1207+193:5 glyph [
1208+193:6 tight name first
1209+193:12 name second
1210+193:19 name combine
1211+193:26 tight glyph ]
1212+193:28 glyph ^-
1213+193:31 glyph (
1214+193:32 tight name unit
1215+193:37 tvar A
1216+193:38 tight glyph )
1217+194:7 INDENT
1218+194:7 glyph ?-
1219+194:10 name first
1220+195:9 INDENT
1221+195:9 lit ~
1222+195:11 name second
1223+196:9 NEWLINE
1224+196:9 glyph [
1225+196:10 tight lit ~
1226+196:12 name a
1227+196:13 tight glyph ]
1228+197:11 INDENT
1229+197:11 glyph ?-
1230+197:14 name second
1231+198:13 INDENT
1232+198:13 lit ~
1233+198:15 name first
1234+199:13 NEWLINE
1235+199:13 glyph [
1236+199:14 tight lit ~
1237+199:16 name b
1238+199:17 tight glyph ]
1239+199:19 glyph `
1240+199:20 tight glyph (
1241+199:21 tight name combine
1242+199:29 name a
1243+199:31 name b
1244+199:32 tight glyph )
1245+201:1 DEDENT
1246+201:1 DEDENT
1247+201:1 DEDENT
1248+201:1 DEDENT
1249+201:1 DEDENT
1250+201:1 DEDENT
1251+201:1 NEWLINE
1252+201:1 glyph ++
1253+201:4 name clef
1254+201:9 glyph |=
1255+201:12 name args
1256+201:16 tight glyph =
1257+201:17 tight glyph [
1258+201:18 tight glyph (
1259+201:19 tight name unit
1260+201:24 tvar A
1261+201:25 tight glyph )
1262+201:27 glyph (
1263+201:28 tight name unit
1264+201:33 tvar B
1265+201:34 tight glyph )
1266+201:36 glyph $-(
1267+201:39 tight glyph [
1268+201:40 tight tvar A
1269+201:42 tvar B
1270+201:43 tight glyph ]
1271+201:45 glyph (
1272+201:46 tight name unit
1273+201:51 tvar C
1274+201:52 tight glyph )
1275+201:53 tight glyph )
1276+201:54 tight glyph ]
1277+202:3 INDENT
1278+202:3 glyph ?-
1279+202:6 name args
1280+203:5 INDENT
1281+203:5 glyph [
1282+203:6 tight name first
1283+203:12 name second
1284+203:19 name combine
1285+203:26 tight glyph ]
1286+203:28 glyph ^-
1287+203:31 glyph (
1288+203:32 tight name unit
1289+203:37 tvar C
1290+203:38 tight glyph )
1291+204:7 INDENT
1292+204:7 glyph ?-
1293+204:10 name first
1294+205:9 INDENT
1295+205:9 lit ~
1296+205:11 lit ~
1297+206:9 NEWLINE
1298+206:9 glyph [
1299+206:10 tight lit ~
1300+206:12 name a
1301+206:13 tight glyph ]
12811302207:11 INDENT
1282−207:11 lit ~
1283−207:13 lit ~
1284−208:11 NEWLINE
1285−208:11 glyph [
1286−208:12 tight name item
1287−208:17 name rest
1288−208:21 tight glyph ]
1289−209:13 INDENT
1290−209:13 glyph ?-
1291−209:16 glyph (
1292−209:17 tight name predicate
1293−209:27 name item
1303+207:11 glyph ?-
1304+207:14 name second
1305+208:13 INDENT
1306+208:13 lit ~
1307+208:15 lit ~
1308+209:13 NEWLINE
1309+209:13 glyph [
1310+209:14 tight lit ~
1311+209:16 name b
1312+209:17 tight glyph ]
1313+209:19 glyph (
1314+209:20 tight name combine
1315+209:28 name a
1316+209:30 name b
12941317209:31 tight glyph )
1295−210:15 INDENT
1296−210:15 lit %.y
1297−210:19 glyph [
1298−210:20 tight name item
1299−210:25 glyph (
1300−210:26 tight name skim
1301−210:31 name rest
1302−210:36 name predicate
1303−210:45 tight glyph )
1304−210:46 tight glyph ]
1305−211:15 NEWLINE
1306−211:15 lit %.n
1307−211:19 glyph (
1308−211:20 tight name skim
1309−211:25 name rest
1310−211:30 name predicate
1311−211:39 tight glyph )
1312−213:1 DEDENT
1313−213:1 DEDENT
1314−213:1 DEDENT
1315−213:1 DEDENT
1316−213:1 DEDENT
1317−213:1 DEDENT
1318−213:1 NEWLINE
1319−213:1 glyph ++
1320−213:4 name skip
1321−213:9 glyph |=
1322−213:12 name args
1323−213:16 tight glyph =
1324−213:17 tight glyph [
1325−213:18 tight glyph (
1326−213:19 tight name list
1327−213:24 tvar A
1328−213:25 tight glyph )
1329−213:27 glyph $-(
1330−213:30 tight tvar A
1331−213:32 glyph ?
1332−213:33 tight glyph )
1333−213:34 tight glyph ]
1334−214:3 INDENT
1335−214:3 glyph ?-
1336−214:6 name args
1337−215:5 INDENT
1338−215:5 glyph [
1339−215:6 tight name xs
1340−215:9 name predicate
1341−215:18 tight glyph ]
1342−215:20 glyph ^-
1343−215:23 glyph (
1344−215:24 tight name list
1345−215:29 tvar A
1346−215:30 tight glyph )
1347−216:9 INDENT
1348−216:9 glyph ?-
1349−216:12 name xs
1350−217:11 INDENT
1351−217:11 lit ~
1352−217:13 lit ~
1353−218:11 NEWLINE
1354−218:11 glyph [
1355−218:12 tight name item
1356−218:17 name rest
1357−218:21 tight glyph ]
1358−219:13 INDENT
1359−219:13 glyph ?-
1360−219:16 glyph (
1361−219:17 tight name predicate
1362−219:27 name item
1363−219:31 tight glyph )
1364−220:15 INDENT
1365−220:15 lit %.y
1366−220:19 glyph (
1367−220:20 tight name skip
1368−220:25 name rest
1369−220:30 name predicate
1370−220:39 tight glyph )
1371−221:15 NEWLINE
1372−221:15 lit %.n
1373−221:19 glyph [
1374−221:20 tight name item
1375−221:25 glyph (
1376−221:26 tight name skip
1377−221:31 name rest
1378−221:36 name predicate
1379−221:45 tight glyph )
1380−221:46 tight glyph ]
1381−223:1 DEDENT
1382−223:1 DEDENT
1383−223:1 DEDENT
1384−223:1 DEDENT
1385−223:1 DEDENT
1386−223:1 DEDENT
1387−223:1 NEWLINE
1388−223:1 glyph ++
1389−223:4 name levy
1390−223:9 glyph |=
1391−223:12 name args
1392−223:16 tight glyph =
1393−223:17 tight glyph [
1394−223:18 tight glyph (
1395−223:19 tight name list
1396−223:24 tvar A
1397−223:25 tight glyph )
1398−223:27 glyph $-(
1399−223:30 tight tvar A
1400−223:32 glyph ?
1401−223:33 tight glyph )
1402−223:34 tight glyph ]
1403−224:3 INDENT
1404−224:3 glyph ^-
1405−224:6 glyph ?
1406−225:5 INDENT
1407−225:5 glyph ?-
1408−225:8 name args
1409−226:7 INDENT
1410−226:7 glyph [
1411−226:8 tight name xs
1412−226:11 name predicate
1413−226:20 tight glyph ]
1414−227:9 INDENT
1415−227:9 glyph ?-
1416−227:12 name xs
1417−228:11 INDENT
1418−228:11 lit ~
1419−228:13 lit %.y
1420−229:11 NEWLINE
1421−229:11 glyph [
1422−229:12 tight name item
1423−229:17 name rest
1424−229:21 tight glyph ]
1425−230:13 INDENT
1426−230:13 glyph ?-
1427−230:16 glyph (
1428−230:17 tight name predicate
1429−230:27 name item
1430−230:31 tight glyph )
1431−231:15 INDENT
1432−231:15 lit %.y
1433−231:19 glyph (
1434−231:20 tight name levy
1435−231:25 name rest
1436−231:30 name predicate
1437−231:39 tight glyph )
1438−232:15 NEWLINE
1439−232:15 lit %.n
1440−232:19 lit %.n
1441−234:1 DEDENT
1442−234:1 DEDENT
1443−234:1 DEDENT
1444−234:1 DEDENT
1445−234:1 DEDENT
1446−234:1 DEDENT
1447−234:1 DEDENT
1448−234:1 NEWLINE
1449−234:1 glyph ++
1450−234:4 name lien
1451−234:9 glyph |=
1452−234:12 name args
1453−234:16 tight glyph =
1454−234:17 tight glyph [
1455−234:18 tight glyph (
1456−234:19 tight name list
1457−234:24 tvar A
1458−234:25 tight glyph )
1459−234:27 glyph $-(
1460−234:30 tight tvar A
1461−234:32 glyph ?
1462−234:33 tight glyph )
1463−234:34 tight glyph ]
1464−235:3 INDENT
1465−235:3 glyph ^-
1466−235:6 glyph ?
1467−236:5 INDENT
1468−236:5 glyph ?-
1469−236:8 name args
1470−237:7 INDENT
1471−237:7 glyph [
1472−237:8 tight name xs
1473−237:11 name predicate
1474−237:20 tight glyph ]
1475−238:9 INDENT
1476−238:9 glyph ?-
1477−238:12 name xs
1478−239:11 INDENT
1479−239:11 lit ~
1480−239:13 lit %.n
1481−240:11 NEWLINE
1482−240:11 glyph [
1483−240:12 tight name item
1484−240:17 name rest
1485−240:21 tight glyph ]
1486−241:13 INDENT
1487−241:13 glyph ?-
1488−241:16 glyph (
1489−241:17 tight name predicate
1490−241:27 name item
1491−241:31 tight glyph )
1492−242:15 INDENT
1493−242:15 lit %.y
1494−242:19 lit %.y
1495−243:15 NEWLINE
1496−243:15 lit %.n
1497−243:19 glyph (
1498−243:20 tight name lien
1499−243:25 name rest
1500−243:30 name predicate
1501−243:39 tight glyph )
1502−245:1 DEDENT
1503−245:1 DEDENT
1504−245:1 DEDENT
1505−245:1 DEDENT
1506−245:1 DEDENT
1507−245:1 DEDENT
1508−245:1 DEDENT
1509−245:1 NEWLINE
1510−245:1 glyph ++
1511−245:4 name roll
1512−245:9 glyph |=
1513−245:12 name args
1514−245:16 tight glyph =
1515−245:17 tight glyph [
1516−245:18 tight glyph (
1517−245:19 tight name list
1518−245:24 tvar A
1519−245:25 tight glyph )
1520−245:27 tvar B
1521−245:29 glyph $-(
1522−245:32 tight glyph [
1523−245:33 tight tvar A
1524−245:35 tvar B
1525−245:36 tight glyph ]
1526−245:38 tvar B
1527−245:39 tight glyph )
1528−245:40 tight glyph ]
1529−246:3 INDENT
1530−246:3 glyph ?-
1531−246:6 name args
1532−247:5 INDENT
1533−247:5 glyph [
1534−247:6 tight name xs
1535−247:9 name start
1536−247:15 name combine
1537−247:22 tight glyph ]
1538−248:7 INDENT
1539−248:7 glyph ?-
1540−248:10 name xs
1541−249:9 INDENT
1542−249:9 lit ~
1543−249:11 name start
1544−250:9 NEWLINE
1545−250:9 glyph [
1546−250:10 tight name item
1547−250:15 name rest
1548−250:19 tight glyph ]
1549−250:21 glyph (
1550−250:22 tight name roll
1551−250:27 name rest
1552−250:32 glyph (
1553−250:33 tight name combine
1554−250:41 name item
1555−250:46 name start
1556−250:51 tight glyph )
1557−250:53 name combine
1558−250:60 tight glyph )
1559−252:1 DEDENT
1560−252:1 DEDENT
1561−252:1 DEDENT
1562−252:1 DEDENT
1563−252:1 NEWLINE
1564−252:1 glyph ++
1565−252:4 name reel
1566−252:9 glyph |=
1567−252:12 name args
1568−252:16 tight glyph =
1569−252:17 tight glyph [
1570−252:18 tight glyph (
1571−252:19 tight name list
1572−252:24 tvar A
1573−252:25 tight glyph )
1574−252:27 tvar B
1575−252:29 glyph $-(
1576−252:32 tight glyph [
1577−252:33 tight tvar A
1578−252:35 tvar B
1579−252:36 tight glyph ]
1580−252:38 tvar B
1581−252:39 tight glyph )
1582−252:40 tight glyph ]
1583−253:3 INDENT
1584−253:3 glyph ?-
1585−253:6 name args
1586−254:5 INDENT
1587−254:5 glyph [
1588−254:6 tight name xs
1589−254:9 name start
1590−254:15 name combine
1591−254:22 tight glyph ]
1592−255:7 INDENT
1593−255:7 glyph ?-
1594−255:10 name xs
1595−256:9 INDENT
1596−256:9 lit ~
1597−256:11 name start
1598−257:9 NEWLINE
1599−257:9 glyph [
1600−257:10 tight name item
1601−257:15 name rest
1602−257:19 tight glyph ]
1603−257:21 glyph (
1604−257:22 tight name combine
1605−257:30 name item
1606−257:35 glyph (
1607−257:36 tight name reel
1608−257:41 name rest
1609−257:46 name start
1610−257:52 name combine
1611−257:59 tight glyph )
1612−257:60 tight glyph )
1613−259:1 DEDENT
1614−259:1 DEDENT
1615−259:1 DEDENT
1616−259:1 DEDENT
1617−259:1 NEWLINE
1618−259:1 glyph ++
1619−259:4 name flit
1620−259:9 glyph |=
1621−259:12 name predicate
1622−259:21 tight glyph =
1623−259:22 tight glyph $-(
1624−259:25 tight tvar A
1625−259:27 glyph ?
1626−259:28 tight glyph )
1627−260:3 INDENT
1628−260:3 glyph |=
1629−260:6 name value
1630−260:11 tight glyph =
1631−260:12 tight tvar A
1632−261:5 INDENT
1633−261:5 glyph ^-
1634−261:8 glyph (
1635−261:9 tight name unit
1636−261:14 tvar A
1637−261:15 tight glyph )
1638−262:7 INDENT
1639−262:7 glyph ?-
1640−262:10 glyph (
1641−262:11 tight name predicate
1642−262:21 name value
1643−262:26 tight glyph )
1644−263:9 INDENT
1645−263:9 lit %.y
1646−263:13 glyph `
1647−263:14 tight name value
1648−264:9 NEWLINE
1649−264:9 lit %.n
1650−264:13 lit ~
1651−266:1 DEDENT
1652−266:1 DEDENT
1653−266:1 DEDENT
1654−266:1 DEDENT
1655−266:1 NEWLINE
1656−266:1 glyph ++
1657−266:4 name murn
1658−266:9 glyph |=
1659−266:12 name args
1660−266:16 tight glyph =
1661−266:17 tight glyph [
1662−266:18 tight glyph (
1663−266:19 tight name list
1664−266:24 tvar A
1665−266:25 tight glyph )
1666−266:27 glyph $-(
1667−266:30 tight tvar A
1668−266:32 glyph (
1669−266:33 tight name unit
1670−266:38 tvar B
1671−266:39 tight glyph )
1672−266:40 tight glyph )
1673−266:41 tight glyph ]
1674−267:3 INDENT
1675−267:3 glyph ?-
1676−267:6 name args
1677−268:5 INDENT
1678−268:5 glyph [
1679−268:6 tight name xs
1680−268:9 name f
1681−268:10 tight glyph ]
1682−268:12 glyph ^-
1683−268:15 glyph (
1684−268:16 tight name list
1685−268:21 tvar B
1686−268:22 tight glyph )
1687−269:9 INDENT
1688−269:9 glyph ?-
1689−269:12 name xs
1690−270:11 INDENT
1691−270:11 lit ~
1692−270:13 lit ~
1693−271:11 NEWLINE
1694−271:11 glyph [
1695−271:12 tight name item
1696−271:17 name rest
1697−271:21 tight glyph ]
1698−272:13 INDENT
1699−272:13 glyph ?-
1700−272:16 glyph (
1701−272:17 tight name f
1702−272:19 name item
1703−272:23 tight glyph )
1704−273:15 INDENT
1705−273:15 lit ~
1706−273:17 glyph (
1707−273:18 tight name murn
1708−273:23 name rest
1709−273:28 name f
1710−273:29 tight glyph )
1711−274:15 NEWLINE
1712−274:15 glyph [
1713−274:16 tight lit ~
1714−274:18 name value
1715−274:23 tight glyph ]
1716−274:25 glyph [
1717−274:26 tight name value
1318+211:1 DEDENT
1319+211:1 DEDENT
1320+211:1 DEDENT
1321+211:1 DEDENT
1322+211:1 DEDENT
1323+211:1 DEDENT
1324+211:1 NEWLINE
1325+211:1 glyph ++
1326+211:4 name skim
1327+211:9 glyph |=
1328+211:12 name args
1329+211:16 tight glyph =
1330+211:17 tight glyph [
1331+211:18 tight glyph (
1332+211:19 tight name list
1333+211:24 tvar A
1334+211:25 tight glyph )
1335+211:27 glyph $-(
1336+211:30 tight tvar A
1337+211:32 glyph ?
1338+211:33 tight glyph )
1339+211:34 tight glyph ]
1340+212:3 INDENT
1341+212:3 glyph ?-
1342+212:6 name args
1343+213:5 INDENT
1344+213:5 glyph [
1345+213:6 tight name xs
1346+213:9 name predicate
1347+213:18 tight glyph ]
1348+213:20 glyph ^-
1349+213:23 glyph (
1350+213:24 tight name list
1351+213:29 tvar A
1352+213:30 tight glyph )
1353+214:9 INDENT
1354+214:9 glyph ?-
1355+214:12 name xs
1356+215:11 INDENT
1357+215:11 lit ~
1358+215:13 lit ~
1359+216:11 NEWLINE
1360+216:11 glyph [
1361+216:12 tight name item
1362+216:17 name rest
1363+216:21 tight glyph ]
1364+217:13 INDENT
1365+217:13 glyph ?-
1366+217:16 glyph (
1367+217:17 tight name predicate
1368+217:27 name item
1369+217:31 tight glyph )
1370+218:15 INDENT
1371+218:15 lit %.y
1372+218:19 glyph [
1373+218:20 tight name item
1374+218:25 glyph (
1375+218:26 tight name skim
1376+218:31 name rest
1377+218:36 name predicate
1378+218:45 tight glyph )
1379+218:46 tight glyph ]
1380+219:15 NEWLINE
1381+219:15 lit %.n
1382+219:19 glyph (
1383+219:20 tight name skim
1384+219:25 name rest
1385+219:30 name predicate
1386+219:39 tight glyph )
1387+221:1 DEDENT
1388+221:1 DEDENT
1389+221:1 DEDENT
1390+221:1 DEDENT
1391+221:1 DEDENT
1392+221:1 DEDENT
1393+221:1 NEWLINE
1394+221:1 glyph ++
1395+221:4 name skip
1396+221:9 glyph |=
1397+221:12 name args
1398+221:16 tight glyph =
1399+221:17 tight glyph [
1400+221:18 tight glyph (
1401+221:19 tight name list
1402+221:24 tvar A
1403+221:25 tight glyph )
1404+221:27 glyph $-(
1405+221:30 tight tvar A
1406+221:32 glyph ?
1407+221:33 tight glyph )
1408+221:34 tight glyph ]
1409+222:3 INDENT
1410+222:3 glyph ?-
1411+222:6 name args
1412+223:5 INDENT
1413+223:5 glyph [
1414+223:6 tight name xs
1415+223:9 name predicate
1416+223:18 tight glyph ]
1417+223:20 glyph ^-
1418+223:23 glyph (
1419+223:24 tight name list
1420+223:29 tvar A
1421+223:30 tight glyph )
1422+224:9 INDENT
1423+224:9 glyph ?-
1424+224:12 name xs
1425+225:11 INDENT
1426+225:11 lit ~
1427+225:13 lit ~
1428+226:11 NEWLINE
1429+226:11 glyph [
1430+226:12 tight name item
1431+226:17 name rest
1432+226:21 tight glyph ]
1433+227:13 INDENT
1434+227:13 glyph ?-
1435+227:16 glyph (
1436+227:17 tight name predicate
1437+227:27 name item
1438+227:31 tight glyph )
1439+228:15 INDENT
1440+228:15 lit %.y
1441+228:19 glyph (
1442+228:20 tight name skip
1443+228:25 name rest
1444+228:30 name predicate
1445+228:39 tight glyph )
1446+229:15 NEWLINE
1447+229:15 lit %.n
1448+229:19 glyph [
1449+229:20 tight name item
1450+229:25 glyph (
1451+229:26 tight name skip
1452+229:31 name rest
1453+229:36 name predicate
1454+229:45 tight glyph )
1455+229:46 tight glyph ]
1456+231:1 DEDENT
1457+231:1 DEDENT
1458+231:1 DEDENT
1459+231:1 DEDENT
1460+231:1 DEDENT
1461+231:1 DEDENT
1462+231:1 NEWLINE
1463+231:1 glyph ++
1464+231:4 name levy
1465+231:9 glyph |=
1466+231:12 name args
1467+231:16 tight glyph =
1468+231:17 tight glyph [
1469+231:18 tight glyph (
1470+231:19 tight name list
1471+231:24 tvar A
1472+231:25 tight glyph )
1473+231:27 glyph $-(
1474+231:30 tight tvar A
1475+231:32 glyph ?
1476+231:33 tight glyph )
1477+231:34 tight glyph ]
1478+232:3 INDENT
1479+232:3 glyph ^-
1480+232:6 glyph ?
1481+233:5 INDENT
1482+233:5 glyph ?-
1483+233:8 name args
1484+234:7 INDENT
1485+234:7 glyph [
1486+234:8 tight name xs
1487+234:11 name predicate
1488+234:20 tight glyph ]
1489+235:9 INDENT
1490+235:9 glyph ?-
1491+235:12 name xs
1492+236:11 INDENT
1493+236:11 lit ~
1494+236:13 lit %.y
1495+237:11 NEWLINE
1496+237:11 glyph [
1497+237:12 tight name item
1498+237:17 name rest
1499+237:21 tight glyph ]
1500+238:13 INDENT
1501+238:13 glyph ?-
1502+238:16 glyph (
1503+238:17 tight name predicate
1504+238:27 name item
1505+238:31 tight glyph )
1506+239:15 INDENT
1507+239:15 lit %.y
1508+239:19 glyph (
1509+239:20 tight name levy
1510+239:25 name rest
1511+239:30 name predicate
1512+239:39 tight glyph )
1513+240:15 NEWLINE
1514+240:15 lit %.n
1515+240:19 lit %.n
1516+242:1 DEDENT
1517+242:1 DEDENT
1518+242:1 DEDENT
1519+242:1 DEDENT
1520+242:1 DEDENT
1521+242:1 DEDENT
1522+242:1 DEDENT
1523+242:1 NEWLINE
1524+242:1 glyph ++
1525+242:4 name lien
1526+242:9 glyph |=
1527+242:12 name args
1528+242:16 tight glyph =
1529+242:17 tight glyph [
1530+242:18 tight glyph (
1531+242:19 tight name list
1532+242:24 tvar A
1533+242:25 tight glyph )
1534+242:27 glyph $-(
1535+242:30 tight tvar A
1536+242:32 glyph ?
1537+242:33 tight glyph )
1538+242:34 tight glyph ]
1539+243:3 INDENT
1540+243:3 glyph ^-
1541+243:6 glyph ?
1542+244:5 INDENT
1543+244:5 glyph ?-
1544+244:8 name args
1545+245:7 INDENT
1546+245:7 glyph [
1547+245:8 tight name xs
1548+245:11 name predicate
1549+245:20 tight glyph ]
1550+246:9 INDENT
1551+246:9 glyph ?-
1552+246:12 name xs
1553+247:11 INDENT
1554+247:11 lit ~
1555+247:13 lit %.n
1556+248:11 NEWLINE
1557+248:11 glyph [
1558+248:12 tight name item
1559+248:17 name rest
1560+248:21 tight glyph ]
1561+249:13 INDENT
1562+249:13 glyph ?-
1563+249:16 glyph (
1564+249:17 tight name predicate
1565+249:27 name item
1566+249:31 tight glyph )
1567+250:15 INDENT
1568+250:15 lit %.y
1569+250:19 lit %.y
1570+251:15 NEWLINE
1571+251:15 lit %.n
1572+251:19 glyph (
1573+251:20 tight name lien
1574+251:25 name rest
1575+251:30 name predicate
1576+251:39 tight glyph )
1577+253:1 DEDENT
1578+253:1 DEDENT
1579+253:1 DEDENT
1580+253:1 DEDENT
1581+253:1 DEDENT
1582+253:1 DEDENT
1583+253:1 DEDENT
1584+253:1 NEWLINE
1585+253:1 glyph ++
1586+253:4 name roll
1587+253:9 glyph |=
1588+253:12 name args
1589+253:16 tight glyph =
1590+253:17 tight glyph [
1591+253:18 tight glyph (
1592+253:19 tight name list
1593+253:24 tvar A
1594+253:25 tight glyph )
1595+253:27 tvar B
1596+253:29 glyph $-(
1597+253:32 tight glyph [
1598+253:33 tight tvar A
1599+253:35 tvar B
1600+253:36 tight glyph ]
1601+253:38 tvar B
1602+253:39 tight glyph )
1603+253:40 tight glyph ]
1604+254:3 INDENT
1605+254:3 glyph ?-
1606+254:6 name args
1607+255:5 INDENT
1608+255:5 glyph [
1609+255:6 tight name xs
1610+255:9 name start
1611+255:15 name combine
1612+255:22 tight glyph ]
1613+256:7 INDENT
1614+256:7 glyph ?-
1615+256:10 name xs
1616+257:9 INDENT
1617+257:9 lit ~
1618+257:11 name start
1619+258:9 NEWLINE
1620+258:9 glyph [
1621+258:10 tight name item
1622+258:15 name rest
1623+258:19 tight glyph ]
1624+258:21 glyph (
1625+258:22 tight name roll
1626+258:27 name rest
1627+258:32 glyph (
1628+258:33 tight name combine
1629+258:41 name item
1630+258:46 name start
1631+258:51 tight glyph )
1632+258:53 name combine
1633+258:60 tight glyph )
1634+260:1 DEDENT
1635+260:1 DEDENT
1636+260:1 DEDENT
1637+260:1 DEDENT
1638+260:1 NEWLINE
1639+260:1 glyph ++
1640+260:4 name reel
1641+260:9 glyph |=
1642+260:12 name args
1643+260:16 tight glyph =
1644+260:17 tight glyph [
1645+260:18 tight glyph (
1646+260:19 tight name list
1647+260:24 tvar A
1648+260:25 tight glyph )
1649+260:27 tvar B
1650+260:29 glyph $-(
1651+260:32 tight glyph [
1652+260:33 tight tvar A
1653+260:35 tvar B
1654+260:36 tight glyph ]
1655+260:38 tvar B
1656+260:39 tight glyph )
1657+260:40 tight glyph ]
1658+261:3 INDENT
1659+261:3 glyph ?-
1660+261:6 name args
1661+262:5 INDENT
1662+262:5 glyph [
1663+262:6 tight name xs
1664+262:9 name start
1665+262:15 name combine
1666+262:22 tight glyph ]
1667+263:7 INDENT
1668+263:7 glyph ?-
1669+263:10 name xs
1670+264:9 INDENT
1671+264:9 lit ~
1672+264:11 name start
1673+265:9 NEWLINE
1674+265:9 glyph [
1675+265:10 tight name item
1676+265:15 name rest
1677+265:19 tight glyph ]
1678+265:21 glyph (
1679+265:22 tight name combine
1680+265:30 name item
1681+265:35 glyph (
1682+265:36 tight name reel
1683+265:41 name rest
1684+265:46 name start
1685+265:52 name combine
1686+265:59 tight glyph )
1687+265:60 tight glyph )
1688+267:1 DEDENT
1689+267:1 DEDENT
1690+267:1 DEDENT
1691+267:1 DEDENT
1692+267:1 NEWLINE
1693+267:1 glyph ++
1694+267:4 name flit
1695+267:9 glyph |=
1696+267:12 name predicate
1697+267:21 tight glyph =
1698+267:22 tight glyph $-(
1699+267:25 tight tvar A
1700+267:27 glyph ?
1701+267:28 tight glyph )
1702+268:3 INDENT
1703+268:3 glyph |=
1704+268:6 name value
1705+268:11 tight glyph =
1706+268:12 tight tvar A
1707+269:5 INDENT
1708+269:5 glyph ^-
1709+269:8 glyph (
1710+269:9 tight name unit
1711+269:14 tvar A
1712+269:15 tight glyph )
1713+270:7 INDENT
1714+270:7 glyph ?-
1715+270:10 glyph (
1716+270:11 tight name predicate
1717+270:21 name value
1718+270:26 tight glyph )
1719+271:9 INDENT
1720+271:9 lit %.y
1721+271:13 glyph `
1722+271:14 tight name value
1723+272:9 NEWLINE
1724+272:9 lit %.n
1725+272:13 lit ~
1726+274:1 DEDENT
1727+274:1 DEDENT
1728+274:1 DEDENT
1729+274:1 DEDENT
1730+274:1 NEWLINE
1731+274:1 glyph ++
1732+274:4 name murn
1733+274:9 glyph |=
1734+274:12 name args
1735+274:16 tight glyph =
1736+274:17 tight glyph [
1737+274:18 tight glyph (
1738+274:19 tight name list
1739+274:24 tvar A
1740+274:25 tight glyph )
1741+274:27 glyph $-(
1742+274:30 tight tvar A
17181743274:32 glyph (
1719−274:33 tight name murn
1720−274:38 name rest
1721−274:43 name f
1722−274:44 tight glyph )
1723−274:45 tight glyph ]
1724−276:1 DEDENT
1725−276:1 DEDENT
1726−276:1 DEDENT
1727−276:1 DEDENT
1728−276:1 DEDENT
1729−276:1 DEDENT
1730−276:1 NEWLINE
1731−276:1 glyph ++
1732−276:4 name join
1733−276:9 glyph |=
1734−276:12 name args
1735−276:16 tight glyph =
1736−276:17 tight glyph [
1737−276:18 tight tvar A
1738−276:20 glyph (
1739−276:21 tight name list
1740−276:26 tvar A
1741−276:27 tight glyph )
1742−276:28 tight glyph ]
1743−277:3 INDENT
1744−277:3 glyph ?-
1745−277:6 name args
1746−278:5 INDENT
1747−278:5 glyph [
1748−278:6 tight name separator
1749−278:16 name xs
1750−278:18 tight glyph ]
1751−278:20 glyph ^-
1752−278:23 glyph (
1753−278:24 tight name list
1754−278:29 tvar A
1755−278:30 tight glyph )
1756−279:9 INDENT
1757−279:9 glyph ?-
1758−279:12 name xs
1759−280:11 INDENT
1760−280:11 lit ~
1761−280:13 lit ~
1762−281:11 NEWLINE
1763−281:11 glyph [
1764−281:12 tight name item
1765−281:17 name rest
1766−281:21 tight glyph ]
1767−282:13 INDENT
1768−282:13 glyph ?-
1769−282:16 name rest
1770−283:15 INDENT
1771−283:15 lit ~
1772−283:17 glyph [
1773−283:18 tight name item
1774−283:23 lit ~
1775−283:24 tight glyph ]
1776−284:15 NEWLINE
1777−284:15 glyph [
1778−284:16 tight name next
1779−284:21 name more
1780−284:25 tight glyph ]
1781−284:27 glyph [
1782−284:28 tight name item
1783−284:33 glyph [
1784−284:34 tight name separator
1785−284:44 glyph (
1786−284:45 tight name join
1787−284:50 name separator
1788−284:60 name rest
1789−284:64 tight glyph )
1790−284:65 tight glyph ]
1791−284:66 tight glyph ]
1792−286:1 DEDENT
1793−286:1 DEDENT
1794−286:1 DEDENT
1795−286:1 DEDENT
1796−286:1 DEDENT
1797−286:1 DEDENT
1798−286:1 NEWLINE
1799−286:1 glyph ++
1800−286:4 name snip
1801−286:9 glyph |=
1802−286:12 name xs
1803−286:14 tight glyph =
1804−286:15 tight glyph (
1805−286:16 tight name list
1806−286:21 tvar A
1807−286:22 tight glyph )
1808−287:3 INDENT
1809−287:3 glyph ^-
1810−287:6 glyph (
1811−287:7 tight name list
1812−287:12 tvar A
1813−287:13 tight glyph )
1814−288:5 INDENT
1815−288:5 glyph ?-
1816−288:8 name xs
1817−289:7 INDENT
1818−289:7 lit ~
1819−289:9 lit ~
1820−290:7 NEWLINE
1821−290:7 glyph [
1822−290:8 tight name item
1823−290:13 name rest
1824−290:17 tight glyph ]
1825−291:9 INDENT
1826−291:9 glyph ?-
1827−291:12 name rest
1828−292:11 INDENT
1829−292:11 lit ~
1830−292:13 lit ~
1831−293:11 NEWLINE
1832−293:11 glyph [
1833−293:12 tight name next
1834−293:17 name more
1835−293:21 tight glyph ]
1836−293:23 glyph [
1837−293:24 tight name item
1838−293:29 glyph (
1839−293:30 tight name snip
1840−293:35 name rest
1841−293:39 tight glyph )
1842−293:40 tight glyph ]
1843−295:1 DEDENT
1844−295:1 DEDENT
1845−295:1 DEDENT
1846−295:1 DEDENT
1847−295:1 DEDENT
1848−295:1 NEWLINE
1849−295:1 glyph ++
1850−295:4 name rear
1851−295:9 glyph |=
1852−295:12 name xs
1853−295:14 tight glyph =
1854−295:15 tight glyph (
1855−295:16 tight name list
1856−295:21 tvar A
1857−295:22 tight glyph )
1858−296:3 INDENT
1859−296:3 glyph ?-
1860−296:6 name xs
1861−297:5 INDENT
1862−297:5 lit ~
1863−297:7 glyph !!
1864−298:5 NEWLINE
1865−298:5 glyph [
1866−298:6 tight name item
1867−298:11 name rest
1868−298:15 tight glyph ]
1869−299:7 INDENT
1870−299:7 glyph ?-
1871−299:10 name rest
1872−300:9 INDENT
1873−300:9 lit ~
1874−300:11 name item
1875−301:9 NEWLINE
1876−301:9 glyph [
1877−301:10 tight name next
1878−301:15 name more
1879−301:19 tight glyph ]
1880−301:21 glyph (
1881−301:22 tight name rear
1882−301:27 name rest
1883−301:31 tight glyph )
1744+274:33 tight name unit
1745+274:38 tvar B
1746+274:39 tight glyph )
1747+274:40 tight glyph )
1748+274:41 tight glyph ]
1749+275:3 INDENT
1750+275:3 glyph ?-
1751+275:6 name args
1752+276:5 INDENT
1753+276:5 glyph [
1754+276:6 tight name xs
1755+276:9 name f
1756+276:10 tight glyph ]
1757+276:12 glyph ^-
1758+276:15 glyph (
1759+276:16 tight name list
1760+276:21 tvar B
1761+276:22 tight glyph )
1762+277:9 INDENT
1763+277:9 glyph ?-
1764+277:12 name xs
1765+278:11 INDENT
1766+278:11 lit ~
1767+278:13 lit ~
1768+279:11 NEWLINE
1769+279:11 glyph [
1770+279:12 tight name item
1771+279:17 name rest
1772+279:21 tight glyph ]
1773+280:13 INDENT
1774+280:13 glyph ?-
1775+280:16 glyph (
1776+280:17 tight name f
1777+280:19 name item
1778+280:23 tight glyph )
1779+281:15 INDENT
1780+281:15 lit ~
1781+281:17 glyph (
1782+281:18 tight name murn
1783+281:23 name rest
1784+281:28 name f
1785+281:29 tight glyph )
1786+282:15 NEWLINE
1787+282:15 glyph [
1788+282:16 tight lit ~
1789+282:18 name value
1790+282:23 tight glyph ]
1791+282:25 glyph [
1792+282:26 tight name value
1793+282:32 glyph (
1794+282:33 tight name murn
1795+282:38 name rest
1796+282:43 name f
1797+282:44 tight glyph )
1798+282:45 tight glyph ]
1799+284:1 DEDENT
1800+284:1 DEDENT
1801+284:1 DEDENT
1802+284:1 DEDENT
1803+284:1 DEDENT
1804+284:1 DEDENT
1805+284:1 NEWLINE
1806+284:1 glyph ++
1807+284:4 name join
1808+284:9 glyph |=
1809+284:12 name args
1810+284:16 tight glyph =
1811+284:17 tight glyph [
1812+284:18 tight tvar A
1813+284:20 glyph (
1814+284:21 tight name list
1815+284:26 tvar A
1816+284:27 tight glyph )
1817+284:28 tight glyph ]
1818+285:3 INDENT
1819+285:3 glyph ?-
1820+285:6 name args
1821+286:5 INDENT
1822+286:5 glyph [
1823+286:6 tight name separator
1824+286:16 name xs
1825+286:18 tight glyph ]
1826+286:20 glyph ^-
1827+286:23 glyph (
1828+286:24 tight name list
1829+286:29 tvar A
1830+286:30 tight glyph )
1831+287:9 INDENT
1832+287:9 glyph ?-
1833+287:12 name xs
1834+288:11 INDENT
1835+288:11 lit ~
1836+288:13 lit ~
1837+289:11 NEWLINE
1838+289:11 glyph [
1839+289:12 tight name item
1840+289:17 name rest
1841+289:21 tight glyph ]
1842+290:13 INDENT
1843+290:13 glyph ?-
1844+290:16 name rest
1845+291:15 INDENT
1846+291:15 lit ~
1847+291:17 glyph [
1848+291:18 tight name item
1849+291:23 lit ~
1850+291:24 tight glyph ]
1851+292:15 NEWLINE
1852+292:15 glyph [
1853+292:16 tight name next
1854+292:21 name more
1855+292:25 tight glyph ]
1856+292:27 glyph [
1857+292:28 tight name item
1858+292:33 glyph [
1859+292:34 tight name separator
1860+292:44 glyph (
1861+292:45 tight name join
1862+292:50 name separator
1863+292:60 name rest
1864+292:64 tight glyph )
1865+292:65 tight glyph ]
1866+292:66 tight glyph ]
1867+294:1 DEDENT
1868+294:1 DEDENT
1869+294:1 DEDENT
1870+294:1 DEDENT
1871+294:1 DEDENT
1872+294:1 DEDENT
1873+294:1 NEWLINE
1874+294:1 glyph ++
1875+294:4 name snip
1876+294:9 glyph |=
1877+294:12 name xs
1878+294:14 tight glyph =
1879+294:15 tight glyph (
1880+294:16 tight name list
1881+294:21 tvar A
1882+294:22 tight glyph )
1883+295:3 INDENT
1884+295:3 glyph ^-
1885+295:6 glyph (
1886+295:7 tight name list
1887+295:12 tvar A
1888+295:13 tight glyph )
1889+296:5 INDENT
1890+296:5 glyph ?-
1891+296:8 name xs
1892+297:7 INDENT
1893+297:7 lit ~
1894+297:9 lit ~
1895+298:7 NEWLINE
1896+298:7 glyph [
1897+298:8 tight name item
1898+298:13 name rest
1899+298:17 tight glyph ]
1900+299:9 INDENT
1901+299:9 glyph ?-
1902+299:12 name rest
1903+300:11 INDENT
1904+300:11 lit ~
1905+300:13 lit ~
1906+301:11 NEWLINE
1907+301:11 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
18841919303:1 DEDENT
18851920303:1 DEDENT
18861921303:1 DEDENT
18871922303:1 DEDENT
18881923303:1 NEWLINE
18891924303:1 glyph ++
1890−303:4 name cork
1925+303:4 name rear
18911926303:9 glyph |=
1892−303:12 name gates
1893−303:17 tight glyph =
1894−303:18 tight glyph [
1895−303:19 tight glyph $-(
1896−303:22 tight tvar A
1897−303:24 tvar B
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 ]
1927+303:12 name xs
1928+303:14 tight glyph =
1929+303:15 tight glyph (
1930+303:16 tight name list
1931+303:21 tvar A
1932+303:22 tight glyph )
19041933304:3 INDENT
19051934304:3 glyph ?-
1906−304:6 name gates
1935+304:6 name xs
19071936305:5 INDENT
1908−305:5 glyph [
1909−305:6 tight name f
1910−305:8 name g
1911−305:9 tight glyph ]
1912−305:11 glyph |=
1913−305:14 name x
1914−305:15 tight glyph =
1915−305:16 tight tvar A
1916−305:18 glyph (
1917−305:19 tight name g
1918−305:21 glyph (
1919−305:22 tight name f
1920−305:24 name x
1921−305:25 tight glyph )
1922−305:26 tight glyph )
1923−307:1 DEDENT
1924−307:1 DEDENT
1925−307:1 NEWLINE
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
1937+305:5 lit ~
1938+305:7 glyph !!
1939+306:5 NEWLINE
1940+306:5 glyph [
1941+306:6 tight name item
1942+306:11 name rest
1943+306:15 tight glyph ]
1944+307:7 INDENT
1945+307:7 glyph ?-
1946+307:10 name rest
1947+308:9 INDENT
1948+308:9 lit ~
1949+308:11 name item
1950+309:9 NEWLINE
1951+309:9 glyph [
1952+309:10 tight name next
1953+309:15 name more
1954+309:19 tight glyph ]
19551955309:21 glyph (
1956−309:22 tight name g
1957−309:24 name x
1958−309:25 tight glyph )
1959−309:26 tight glyph )
1956+309:22 tight name rear
1957+309:27 name rest
1958+309:31 tight glyph )
1959+311:1 DEDENT
1960+311:1 DEDENT
19601961311:1 DEDENT
19611962311:1 DEDENT
19621963311:1 NEWLINE
19631964311:1 glyph ++
1964−311:4 name cury
1965+311:4 name cork
19651966311:9 glyph |=
1966−311:12 name args
1967−311:16 tight glyph =
1968−311:17 tight glyph [
1969−311:18 tight glyph $-(
1970−311:21 tight glyph [
1967+311:12 name gates
1968+311:17 tight glyph =
1969+311:18 tight glyph [
1970+311:19 tight glyph $-(
19711971311:22 tight tvar A
19721972311:24 tvar B
1973−311:25 tight glyph ]
1974−311:27 tvar C
1975−311:28 tight glyph )
1976−311:30 tvar A
1977−311:31 tight glyph ]
1973+311:25 tight glyph )
1974+311:27 glyph $-(
1975+311:30 tight tvar B
1976+311:32 tvar C
1977+311:33 tight glyph )
1978+311:34 tight glyph ]
19781979312:3 INDENT
19791980312:3 glyph ?-
1980−312:6 name args
1981+312:6 name gates
19811982313:5 INDENT
19821983313:5 glyph [
19831984313:6 tight name f
1984−313:8 name a
1985+313:8 name g
19851986313:9 tight glyph ]
19861987313:11 glyph |=
1987−313:14 name b
1988+313:14 name x
19881989313:15 tight glyph =
1989−313:16 tight tvar B
1990+313:16 tight tvar A
19901991313:18 glyph (
1991−313:19 tight name f
1992−313:21 name a
1993−313:23 name b
1994−313:24 tight glyph )
1992+313:19 tight name g
1993+313:21 glyph (
1994+313:22 tight name f
1995+313:24 name x
1996+313:25 tight glyph )
1997+313:26 tight glyph )
19951998315:1 DEDENT
19961999315:1 DEDENT
19972000315:1 NEWLINE
19982001315:1 glyph ++
1999−315:4 name curr
2002+315:4 name corl
20002003315:9 glyph |=
2001−315:12 name args
2002−315:16 tight glyph =
2003−315:17 tight glyph [
2004−315:18 tight glyph $-(
2005−315:21 tight glyph [
2006−315:22 tight tvar A
2007−315:24 tvar B
2008−315:25 tight glyph ]
2009−315:27 tvar C
2010−315:28 tight glyph )
2011−315:30 tvar B
2012−315:31 tight glyph ]
2004+315:12 name gates
2005+315:17 tight glyph =
2006+315:18 tight glyph [
2007+315:19 tight glyph $-(
2008+315:22 tight tvar B
2009+315:24 tvar C
2010+315:25 tight glyph )
2011+315:27 glyph $-(
2012+315:30 tight tvar A
2013+315:32 tvar B
2014+315:33 tight glyph )
2015+315:34 tight glyph ]
20132016316:3 INDENT
20142017316:3 glyph ?-
2015−316:6 name args
2018+316:6 name gates
20162019317:5 INDENT
20172020317:5 glyph [
20182021317:6 tight name f
2019−317:8 name b
2022+317:8 name g
20202023317:9 tight glyph ]
20212024317:11 glyph |=
2022−317:14 name a
2025+317:14 name x
20232026317:15 tight glyph =
20242027317:16 tight tvar A
20252028317:18 glyph (
20262029317:19 tight name f
2027−317:21 name a
2028−317:23 name b
2029−317:24 tight glyph )
2030+317:21 glyph (
2031+317:22 tight name g
2032+317:24 name x
2033+317:25 tight glyph )
2034+317:26 tight glyph )
20302035319:1 DEDENT
20312036319:1 DEDENT
20322037319:1 NEWLINE
2033−319:1 glyph +$
2034−319:4 name cmd
2035−319:8 glyph |$
2036−319:11 glyph [
2037−319:12 tight tvar M
2038−319:13 tight glyph ]
2038+319:1 glyph ++
2039+319:4 name cury
2040+319:9 glyph |=
2041+319:12 name args
2042+319:16 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 ]
20392053320:3 INDENT
2040−320:3 glyph [
2041−320:4 tight lit %poke
2042−320:10 name p
2043−320:11 tight glyph =
2044−320:12 tight name poke
2045−320:17 name reply
2046−320:22 tight glyph =
2047−320:23 tight glyph $-(
2048−320:26 tight glyph (
2049−320:27 tight name unit
2050−320:32 aura @t
2051−320:34 tight glyph )
2052−320:36 tvar M
2053−320:37 tight glyph )
2054−320:38 tight glyph ]
2055−321:3 NEWLINE
2056−321:3 glyph [
2057−321:4 tight lit %go
2058−321:8 name url
2059−321:11 tight glyph =
2060−321:12 tight aura @t
2061−321:14 tight glyph ]
2062−322:3 NEWLINE
2063−322:3 glyph [
2064−322:4 tight lit %wait
2065−322:10 name gap
2066−322:13 tight glyph =
2067−322:14 tight aura @dr
2068−322:18 name msg
2069−322:21 tight glyph =
2070−322:22 tight tvar M
2071−322:23 tight glyph ]
2072−323:3 NEWLINE
2073−323:3 glyph [
2074−323:4 tight lit %now
2075−323:9 name reply
2076−323:14 tight glyph =
2077−323:15 tight glyph $-(
2078−323:18 tight aura @da
2079−323:22 tvar M
2080−323:23 tight glyph )
2081−323:24 tight glyph ]
2082−324:3 NEWLINE
2083−324:3 glyph [
2084−324:4 tight lit %who
2085−324:9 name reply
2086−324:14 tight glyph =
2087−324:15 tight glyph $-(
2088−324:18 tight aura @p
2089−324:21 tvar M
2090−324:22 tight glyph )
2091−324:23 tight glyph ]
2092−326: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 )
2054+320:3 glyph ?-
2055+320:6 name args
2056+321:5 INDENT
2057+321:5 glyph [
2058+321:6 tight name f
2059+321:8 name a
2060+321:9 tight glyph ]
2061+321:11 glyph |=
2062+321:14 name b
2063+321:15 tight glyph =
2064+321:16 tight tvar B
2065+321:18 glyph (
2066+321:19 tight name f
2067+321:21 name a
2068+321:23 name b
2069+321:24 tight glyph )
2070+323:1 DEDENT
2071+323:1 DEDENT
2072+323:1 NEWLINE
2073+323:1 glyph ++
2074+323:4 name curr
2075+323:9 glyph |=
2076+323:12 name args
2077+323:16 tight glyph =
2078+323:17 tight glyph [
2079+323:18 tight glyph $-(
2080+323:21 tight glyph [
2081+323:22 tight tvar A
2082+323:24 tvar B
2083+323:25 tight glyph ]
2084+323:27 tvar C
2085+323:28 tight glyph )
2086+323:30 tvar B
2087+323:31 tight glyph ]
2088+324:3 INDENT
2089+324:3 glyph ?-
2090+324:6 name args
2091+325:5 INDENT
2092+325:5 glyph [
2093+325:6 tight name f
2094+325:8 name b
2095+325:9 tight glyph ]
2096+325:11 glyph |=
2097+325:14 name a
2098+325:15 tight glyph =
2099+325:16 tight tvar A
2100+325:18 glyph (
2101+325:19 tight name f
2102+325:21 name a
2103+325:23 name b
2104+325:24 tight glyph )
2105+327:1 DEDENT
2106+327:1 DEDENT
21072107327:1 NEWLINE
2108−327:1 glyph ++
2109−327:4 name add
2110−327:8 glyph |=
2111−327:11 name args
2112−327:15 tight glyph =
2113−327:16 tight glyph [
2114−327:17 tight tvar A
2115−327:19 tvar A
2116−327:20 tight glyph ]
2117−327:22 glyph (
2118−327:23 tight wing add-atom.internal
2119−327:41 name args
2120−327:45 tight glyph )
2121−328:1 NEWLINE
2122−328:1 glyph ++
2123−328:4 name dec
2124−328:8 glyph |=
2125−328:11 name atom
2126−328:15 tight glyph =
2127−328:16 tight tvar A
2128−328:18 glyph (
2129−328:19 tight wing dec-atom.internal
2130−328:37 name atom
2131−328:41 tight glyph )
2132−328:42 NEWLINE
2108+327:1 glyph +$
2109+327:4 name cmd
2110+327:8 glyph |$
2111+327:11 glyph [
2112+327:12 tight tvar M
2113+327:13 tight glyph ]
2114+328:3 INDENT
2115+328:3 glyph [
2116+328:4 tight lit %poke
2117+328:10 name p
2118+328:11 tight glyph =
2119+328:12 tight name poke
2120+328:17 name reply
2121+328:22 tight glyph =
2122+328:23 tight glyph $-(
2123+328:26 tight glyph (
2124+328:27 tight name unit
2125+328:32 aura @t
2126+328:34 tight glyph )
2127+328:36 tvar M
2128+328:37 tight glyph )
2129+328:38 tight glyph ]
2130+329:3 NEWLINE
2131+329:3 glyph [
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 @@
238238 (cell 102:32
239239 (face 102:33 p (tvar 102:35 A))
240240 (face 102:37 q (ref 102:39 nail))))))))
241− (value 104:1 wonk
241+ (value 104:1 like
242242 (gate 104:9
243− (face 104:12 veq
244− (apply 104:16 like (tvar 104:22 A)))
243+ (cell 104:12
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))))
245248 (body 105:3
246− (branch 105:3
247− (wing 105:6 q.veq)
248− (arm 106:5 (lit 106:5 ~) (crash 106:7))
249− (arm 107:5
250− (cell 107:5 (lit 107:6 ~) (bind 107:8 product))
251− (wing 107:17 p.product))))))
252− (mold 109:1 lone
253− (generic 109:9 A
254− (cell 109:16
255− (face 109:17 p (tvar 109:19 A)))))
256− (mold 111:1 lest
257− (generic 111:9 A
258− (cell 111:16
259− (face 111:17 i (tvar 111:19 A))
260− (face 111:21 t
261− (apply 111:23 list (tvar 111:29 A))))))
262− (mold 113:1 pole
263− (generic 113:9 A
264− (union 114:3
265− (const 114:3 ~)
266− (cell 115:3
267− (tvar 115:4 A)
268− (apply 115:6 pole (tvar 115:12 A))))))
269− (mold 117:1 quip
270− (generic 117:9 A B
271− (cell 117:18
272− (apply 117:19 list (tvar 117:25 A))
273− (tvar 117:28 B))))
274− (mold 119:1 tree
249+ (value 105:3 mapped
250+ (body 106:5
251+ (cast 106:5
252+ (apply 106:8 unit
253+ (cell 106:14
254+ (face 106:15 p (tvar 106:17 B))
255+ (face 106:19 q (ref 106:21 nail))))
256+ (body 107:7
257+ (branch 107:7
258+ (wing 107:10 q.result)
259+ (arm 108:9 (lit 108:9 ~) (lit 108:11 ~))
260+ (arm 109:9
261+ (cell 109:9 (lit 109:10 ~) (bind 109:12 value))
262+ (unit 109:19
263+ (tuple 109:20
264+ (face 109:21 p
265+ (group 109:23
266+ (call 109:24 (wing 109:24 f) (wing 109:26 p.value))))
267+ (face 109:35 q (wing 109:37 q.value))))))))))
268+ (cast 110:3
269+ (apply 110:6 like (tvar 110:12 B))
270+ (tuple 110:15
271+ (face 110:16 p (wing 110:18 p.result))
272+ (face 110:27 q (wing 110:29 mapped)))))))
273+ (value 112:1 wonk
274+ (gate 112:9
275+ (face 112:12 veq
276+ (apply 112:16 like (tvar 112:22 A)))
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
275289 (generic 119:9 A
276− (union 120:3
277− (const 120:3 ~)
278− (cell 121:3
279− (face 121:4 n (tvar 121:6 A))
280− (face 121:8 l
281− (apply 121:10 tree (tvar 121:16 A)))
282− (face 121:19 r
283− (apply 121:21 tree (tvar 121:27 A)))))))
284− (mold 123:1 each
285− (generic 123:9 A B
286− (union 124:3
287− (cell 124:3
288− (const 124:4 %|)
289− (face 124:7 p (tvar 124:9 B)))
290− (cell 125:3
291− (const 125:4 %&)
292− (face 125:7 p (tvar 125:9 A))))))
293− (mold 127:1 bloq (aura 127:9 @))
294− (value 129:1 some
295− (gate 129:9
296− (face 129:12 item (tvar 129:17 A))
297− (unit 129:19 (wing 129:20 item))))
298− (value 131:1 lure
299− (gate 131:9
300− (face 131:12 item (tvar 131:17 A))
301− (body 132:3
302− (cast 132:3
303− (apply 132:6 list (tvar 132:12 A))
304− (tuple 132:15 (wing 132:16 item) (lit 132:21 ~))))))
305− (value 134:1 snoc
306− (gate 134:9
307− (face 134:12 args
308− (cell 134:17
309− (apply 134:18 list (tvar 134:24 A))
310− (tvar 134:27 A)))
311− (body 135:3
312− (branch 135:3
313− (wing 135:6 args)
314− (arm 136:5
315− (cell 136:5 (bind 136:6 xs) (bind 136:9 item))
316− (group 136:15
317− (call 136:16
318− (wing 136:16 weld)
319− (wing 136:21 xs)
320− (tuple 136:24 (wing 136:25 item) (lit 136:30 ~)))))))))
321− (value 138:1 flop
322− (gate 138:9
323− (face 138:12 xs
324− (apply 138:15 list (tvar 138:21 A)))
325− (body 139:3
326− (value 139:3 reverse-into
327− (gate 139:19
328− (face 139:22 args
329− (cell 139:27
330− (apply 139:28 list (tvar 139:34 A))
331− (apply 139:37 list (tvar 139:43 A))))
332− (body 140:5
333− (branch 140:5
334− (wing 140:8 args)
335− (arm 141:7
336− (cell 141:7 (bind 141:8 rest) (bind 141:13 acc))
337− (body 142:9
338− (branch 142:9
339− (wing 142:12 rest)
340− (arm 143:11 (lit 143:11 ~) (wing 143:13 acc))
341− (arm 144:11
342− (cell 144:11 (bind 144:12 item) (bind 144:17 more))
343− (group 144:23
344− (call 144:24
345− (wing 144:24 reverse-into)
346− (wing 144:37 more)
347− (tuple 144:42 (wing 144:43 item) (wing 144:48 acc))))))))))))
348− (group 145:3
349− (call 145:4 (wing 145:4 reverse-into) (wing 145:17 xs) (lit 145:20 ~))))))
350− (value 147:1 drop
351− (gate 147:9
352− (face 147:12 maybe
353− (apply 147:18 unit (tvar 147:24 A)))
354− (body 148:3
355− (cast 148:3
356− (apply 148:6 list (tvar 148:12 A))
357− (body 149:5
358− (branch 149:5
359− (wing 149:8 maybe)
360− (arm 150:7 (lit 150:7 ~) (lit 150:9 ~))
361− (arm 151:7
362− (cell 151:7 (lit 151:8 ~) (bind 151:10 value))
363− (tuple 151:17 (wing 151:18 value) (lit 151:24 ~)))))))))
364− (value 153:1 bond
365− (gate 153:9
366− (face 153:12 fallback
367− (fn 153:21 (const 153:24 ~) (tvar 153:26 A)))
368− (body 154:3
369− (gate 154:3
370− (face 154:6 maybe
371− (apply 154:12 unit (tvar 154:18 A)))
372− (body 155:5
373− (branch 155:5
374− (wing 155:8 maybe)
375− (arm 156:7
376− (lit 156:7 ~)
377− (group 156:9
378− (call 156:10 (wing 156:10 fallback) (lit 156:19 ~))))
379− (arm 157:7
380− (cell 157:7 (lit 157:8 ~) (bind 157:10 value))
381− (wing 157:17 value))))))))
382− (value 159:1 bind
383− (gate 159:9
384− (face 159:12 args
385− (cell 159:17
386− (apply 159:18 unit (tvar 159:24 A))
387− (fn 159:27 (tvar 159:30 A) (tvar 159:32 B))))
388− (body 160:3
389− (branch 160:3
390− (wing 160:6 args)
391− (arm 161:5
392− (cell 161:5 (bind 161:6 maybe) (bind 161:12 f))
393− (cast 161:15
394− (apply 161:18 unit (tvar 161:24 B))
395− (body 162:7
396− (branch 162:7
397− (wing 162:10 maybe)
398− (arm 163:9 (lit 163:9 ~) (lit 163:11 ~))
399− (arm 164:9
400− (cell 164:9 (lit 164:10 ~) (bind 164:12 value))
401− (unit 164:19
402− (group 164:20
403− (call 164:21 (wing 164:21 f) (wing 164:23 value)))))))))))))
404− (value 166:1 biff
405− (gate 166:9
406− (face 166:12 args
407− (cell 166:17
408− (apply 166:18 unit (tvar 166:24 A))
409− (fn 166:27
410− (tvar 166:30 A)
411− (apply 166:32 unit (tvar 166:38 B)))))
412− (body 167:3
413− (branch 167:3
414− (wing 167:6 args)
415− (arm 168:5
416− (cell 168:5 (bind 168:6 maybe) (bind 168:12 f))
417− (cast 168:15
418− (apply 168:18 unit (tvar 168:24 B))
419− (body 169:7
420− (branch 169:7
421− (wing 169:10 maybe)
422− (arm 170:9 (lit 170:9 ~) (lit 170:11 ~))
423− (arm 171:9
424− (cell 171:9 (lit 171:10 ~) (bind 171:12 value))
425− (group 171:19
426− (call 171:20 (wing 171:20 f) (wing 171:22 value))))))))))))
427− (value 173:1 both
428− (gate 173:9
429− (face 173:12 args
430− (cell 173:17
431− (apply 173:18 unit (tvar 173:24 A))
432− (apply 173:27 unit (tvar 173:33 B))))
433− (body 174:3
434− (branch 174:3
435− (wing 174:6 args)
436− (arm 175:5
437− (cell 175:5 (bind 175:6 first) (bind 175:12 second))
438− (cast 175:20
439− (apply 175:23 unit
440− (cell 175:29 (tvar 175:30 A) (tvar 175:32 B)))
441− (body 176:7
442− (branch 176:7
443− (wing 176:10 first)
444− (arm 177:9 (lit 177:9 ~) (lit 177:11 ~))
445− (arm 178:9
446− (cell 178:9 (lit 178:10 ~) (bind 178:12 a))
447− (body 179:11
448− (branch 179:11
449− (wing 179:14 second)
450− (arm 180:13 (lit 180:13 ~) (lit 180:15 ~))
451− (arm 181:13
452− (cell 181:13 (lit 181:14 ~) (bind 181:16 b))
453− (unit 181:19
454− (tuple 181:20 (wing 181:21 a) (wing 181:23 b)))))))))))))))
455− (value 183:1 clap
456− (gate 183:9
457− (face 183:12 args
458− (cell 183:17
459− (apply 183:18 unit (tvar 183:24 A))
460− (apply 183:27 unit (tvar 183:33 A))
461− (fn 183:36
462− (cell 183:39 (tvar 183:40 A) (tvar 183:42 A))
463− (tvar 183:45 A))))
464− (body 184:3
465− (branch 184:3
466− (wing 184:6 args)
467− (arm 185:5
468− (cell 185:5 (bind 185:6 first) (bind 185:12 second) (bind 185:19 combine))
469− (cast 185:28
470− (apply 185:31 unit (tvar 185:37 A))
471− (body 186:7
472− (branch 186:7
473− (wing 186:10 first)
474− (arm 187:9 (lit 187:9 ~) (wing 187:11 second))
475− (arm 188:9
476− (cell 188:9 (lit 188:10 ~) (bind 188:12 a))
477− (body 189:11
478− (branch 189:11
479− (wing 189:14 second)
480− (arm 190:13 (lit 190:13 ~) (wing 190:15 first))
481− (arm 191:13
482− (cell 191:13 (lit 191:14 ~) (bind 191:16 b))
483− (unit 191:19
484− (group 191:20
485− (call 191:21 (wing 191:21 combine) (wing 191:29 a) (wing 191:31 b))))))))))))))))
486− (value 193:1 clef
487− (gate 193:9
488− (face 193:12 args
489− (cell 193:17
490− (apply 193:18 unit (tvar 193:24 A))
491− (apply 193:27 unit (tvar 193:33 B))
492− (fn 193:36
493− (cell 193:39 (tvar 193:40 A) (tvar 193:42 B))
494− (apply 193:45 unit (tvar 193:51 C)))))
495− (body 194:3
496− (branch 194:3
497− (wing 194:6 args)
498− (arm 195:5
499− (cell 195:5 (bind 195:6 first) (bind 195:12 second) (bind 195:19 combine))
500− (cast 195:28
501− (apply 195:31 unit (tvar 195:37 C))
502− (body 196:7
503− (branch 196:7
504− (wing 196:10 first)
505− (arm 197:9 (lit 197:9 ~) (lit 197:11 ~))
506− (arm 198:9
507− (cell 198:9 (lit 198:10 ~) (bind 198:12 a))
508− (body 199:11
509− (branch 199:11
510− (wing 199:14 second)
511− (arm 200:13 (lit 200:13 ~) (lit 200:15 ~))
512− (arm 201:13
513− (cell 201:13 (lit 201:14 ~) (bind 201:16 b))
514− (group 201:19
515− (call 201:20 (wing 201:20 combine) (wing 201:28 a) (wing 201:30 b)))))))))))))))
516− (value 203:1 skim
517− (gate 203:9
518− (face 203:12 args
519− (cell 203:17
520− (apply 203:18 list (tvar 203:24 A))
521− (fn 203:27 (tvar 203:30 A) (flag 203:32))))
522− (body 204:3
523− (branch 204:3
524− (wing 204:6 args)
525− (arm 205:5
526− (cell 205:5 (bind 205:6 xs) (bind 205:9 predicate))
527− (cast 205:20
528− (apply 205:23 list (tvar 205:29 A))
529− (body 206:9
530− (branch 206:9
531− (wing 206:12 xs)
532− (arm 207:11 (lit 207:11 ~) (lit 207:13 ~))
533− (arm 208:11
534− (cell 208:11 (bind 208:12 item) (bind 208:17 rest))
535− (body 209:13
536− (branch 209:13
537− (group 209:16
538− (call 209:17 (wing 209:17 predicate) (wing 209:27 item)))
539− (arm 210:15
540− (lit 210:15 %.y)
541− (tuple 210:19
542− (wing 210:20 item)
543− (group 210:25
544− (call 210:26 (wing 210:26 skim) (wing 210:31 rest) (wing 210:36 predicate)))))
545− (arm 211:15
546− (lit 211:15 %.n)
547− (group 211:19
548− (call 211:20 (wing 211:20 skim) (wing 211:25 rest) (wing 211:30 predicate)))))))))))))))
549− (value 213:1 skip
550− (gate 213:9
551− (face 213:12 args
552− (cell 213:17
553− (apply 213:18 list (tvar 213:24 A))
554− (fn 213:27 (tvar 213:30 A) (flag 213:32))))
555− (body 214:3
556− (branch 214:3
557− (wing 214:6 args)
558− (arm 215:5
559− (cell 215:5 (bind 215:6 xs) (bind 215:9 predicate))
560− (cast 215:20
561− (apply 215:23 list (tvar 215:29 A))
562− (body 216:9
563− (branch 216:9
564− (wing 216:12 xs)
565− (arm 217:11 (lit 217:11 ~) (lit 217:13 ~))
566− (arm 218:11
567− (cell 218:11 (bind 218:12 item) (bind 218:17 rest))
568− (body 219:13
569− (branch 219:13
570− (group 219:16
571− (call 219:17 (wing 219:17 predicate) (wing 219:27 item)))
572− (arm 220:15
573− (lit 220:15 %.y)
574− (group 220:19
575− (call 220:20 (wing 220:20 skip) (wing 220:25 rest) (wing 220:30 predicate))))
576− (arm 221:15
577− (lit 221:15 %.n)
578− (tuple 221:19
579− (wing 221:20 item)
580− (group 221:25
581− (call 221:26 (wing 221:26 skip) (wing 221:31 rest) (wing 221:36 predicate))))))))))))))))
582− (value 223:1 levy
583− (gate 223:9
584− (face 223:12 args
585− (cell 223:17
586− (apply 223:18 list (tvar 223:24 A))
587− (fn 223:27 (tvar 223:30 A) (flag 223:32))))
588− (body 224:3
589− (cast 224:3
590− (flag 224:6)
591− (body 225:5
592− (branch 225:5
593− (wing 225:8 args)
594− (arm 226:7
595− (cell 226:7 (bind 226:8 xs) (bind 226:11 predicate))
596− (body 227:9
597− (branch 227:9
598− (wing 227:12 xs)
599− (arm 228:11 (lit 228:11 ~) (lit 228:13 %.y))
600− (arm 229:11
601− (cell 229:11 (bind 229:12 item) (bind 229:17 rest))
602− (body 230:13
603− (branch 230:13
604− (group 230:16
605− (call 230:17 (wing 230:17 predicate) (wing 230:27 item)))
606− (arm 231:15
607− (lit 231:15 %.y)
608− (group 231:19
609− (call 231:20 (wing 231:20 levy) (wing 231:25 rest) (wing 231:30 predicate))))
610− (arm 232:15 (lit 232:15 %.n) (lit 232:19 %.n))))))))))))))
611− (value 234:1 lien
612− (gate 234:9
613− (face 234:12 args
614− (cell 234:17
615− (apply 234:18 list (tvar 234:24 A))
616− (fn 234:27 (tvar 234:30 A) (flag 234:32))))
617− (body 235:3
618− (cast 235:3
619− (flag 235:6)
620− (body 236:5
621− (branch 236:5
622− (wing 236:8 args)
623− (arm 237:7
624− (cell 237:7 (bind 237:8 xs) (bind 237:11 predicate))
625− (body 238:9
626− (branch 238:9
627− (wing 238:12 xs)
628− (arm 239:11 (lit 239:11 ~) (lit 239:13 %.n))
629− (arm 240:11
630− (cell 240:11 (bind 240:12 item) (bind 240:17 rest))
631− (body 241:13
632− (branch 241:13
633− (group 241:16
634− (call 241:17 (wing 241:17 predicate) (wing 241:27 item)))
635− (arm 242:15 (lit 242:15 %.y) (lit 242:19 %.y))
636− (arm 243:15
637− (lit 243:15 %.n)
638− (group 243:19
639− (call 243:20 (wing 243:20 lien) (wing 243:25 rest) (wing 243:30 predicate))))))))))))))))
640− (value 245:1 roll
641− (gate 245:9
642− (face 245:12 args
643− (cell 245:17
644− (apply 245:18 list (tvar 245:24 A))
645− (tvar 245:27 B)
646− (fn 245:29
647− (cell 245:32 (tvar 245:33 A) (tvar 245:35 B))
648− (tvar 245:38 B))))
649− (body 246:3
650− (branch 246:3
651− (wing 246:6 args)
652− (arm 247:5
653− (cell 247:5 (bind 247:6 xs) (bind 247:9 start) (bind 247:15 combine))
654− (body 248:7
655− (branch 248:7
656− (wing 248:10 xs)
657− (arm 249:9 (lit 249:9 ~) (wing 249:11 start))
658− (arm 250:9
659− (cell 250:9 (bind 250:10 item) (bind 250:15 rest))
660− (group 250:21
661− (call 250:22
662− (wing 250:22 roll)
663− (wing 250:27 rest)
664− (group 250:32
665− (call 250:33 (wing 250:33 combine) (wing 250:41 item) (wing 250:46 start)))
666− (wing 250:53 combine)))))))))))
667− (value 252:1 reel
668− (gate 252:9
669− (face 252:12 args
670− (cell 252:17
671− (apply 252:18 list (tvar 252:24 A))
672− (tvar 252:27 B)
673− (fn 252:29
674− (cell 252:32 (tvar 252:33 A) (tvar 252:35 B))
675− (tvar 252:38 B))))
676− (body 253:3
677− (branch 253:3
678− (wing 253:6 args)
679− (arm 254:5
680− (cell 254:5 (bind 254:6 xs) (bind 254:9 start) (bind 254:15 combine))
681− (body 255:7
682− (branch 255:7
683− (wing 255:10 xs)
684− (arm 256:9 (lit 256:9 ~) (wing 256:11 start))
685− (arm 257:9
686− (cell 257:9 (bind 257:10 item) (bind 257:15 rest))
687− (group 257:21
688− (call 257:22
689− (wing 257:22 combine)
690− (wing 257:30 item)
691− (group 257:35
692− (call 257:36 (wing 257:36 reel) (wing 257:41 rest) (wing 257:46 start) (wing 257:52 combine)))))))))))))
693− (value 259:1 flit
694− (gate 259:9
695− (face 259:12 predicate
696− (fn 259:22 (tvar 259:25 A) (flag 259:27)))
697− (body 260:3
698− (gate 260:3
699− (face 260:6 value (tvar 260:12 A))
700− (body 261:5
701− (cast 261:5
702− (apply 261:8 unit (tvar 261:14 A))
703− (body 262:7
704− (branch 262:7
705− (group 262:10
706− (call 262:11 (wing 262:11 predicate) (wing 262:21 value)))
707− (arm 263:9
708− (lit 263:9 %.y)
709− (unit 263:13 (wing 263:14 value)))
710− (arm 264:9 (lit 264:9 %.n) (lit 264:13 ~))))))))))
711− (value 266:1 murn
712− (gate 266:9
713− (face 266:12 args
714− (cell 266:17
715− (apply 266:18 list (tvar 266:24 A))
716− (fn 266:27
717− (tvar 266:30 A)
718− (apply 266:32 unit (tvar 266:38 B)))))
719− (body 267:3
720− (branch 267:3
721− (wing 267:6 args)
722− (arm 268:5
723− (cell 268:5 (bind 268:6 xs) (bind 268:9 f))
724− (cast 268:12
725− (apply 268:15 list (tvar 268:21 B))
726− (body 269:9
727− (branch 269:9
728− (wing 269:12 xs)
729− (arm 270:11 (lit 270:11 ~) (lit 270:13 ~))
730− (arm 271:11
731− (cell 271:11 (bind 271:12 item) (bind 271:17 rest))
732− (body 272:13
733− (branch 272:13
734− (group 272:16
735− (call 272:17 (wing 272:17 f) (wing 272:19 item)))
736− (arm 273:15
737− (lit 273:15 ~)
738− (group 273:17
739− (call 273:18 (wing 273:18 murn) (wing 273:23 rest) (wing 273:28 f))))
740− (arm 274:15
741− (cell 274:15 (lit 274:16 ~) (bind 274:18 value))
742− (tuple 274:25
743− (wing 274:26 value)
744− (group 274:32
745− (call 274:33 (wing 274:33 murn) (wing 274:38 rest) (wing 274:43 f))))))))))))))))
746− (value 276:1 join
747− (gate 276:9
748− (face 276:12 args
749− (cell 276:17
750− (tvar 276:18 A)
751− (apply 276:20 list (tvar 276:26 A))))
752− (body 277:3
753− (branch 277:3
754− (wing 277:6 args)
755− (arm 278:5
756− (cell 278:5 (bind 278:6 separator) (bind 278:16 xs))
757− (cast 278:20
758− (apply 278:23 list (tvar 278:29 A))
759− (body 279:9
760− (branch 279:9
761− (wing 279:12 xs)
762− (arm 280:11 (lit 280:11 ~) (lit 280:13 ~))
763− (arm 281:11
764− (cell 281:11 (bind 281:12 item) (bind 281:17 rest))
765− (body 282:13
766− (branch 282:13
767− (wing 282:16 rest)
768− (arm 283:15
769− (lit 283:15 ~)
770− (tuple 283:17 (wing 283:18 item) (lit 283:23 ~)))
771− (arm 284:15
772− (cell 284:15 (bind 284:16 next) (bind 284:21 more))
773− (tuple 284:27
774− (wing 284:28 item)
775− (tuple 284:33
776− (wing 284:34 separator)
777− (group 284:44
778− (call 284:45 (wing 284:45 join) (wing 284:50 separator) (wing 284:60 rest)))))))))))))))))
779− (value 286:1 snip
780− (gate 286:9
781− (face 286:12 xs
782− (apply 286:15 list (tvar 286:21 A)))
783− (body 287:3
784− (cast 287:3
785− (apply 287:6 list (tvar 287:12 A))
786− (body 288:5
787− (branch 288:5
788− (wing 288:8 xs)
789− (arm 289:7 (lit 289:7 ~) (lit 289:9 ~))
790− (arm 290:7
791− (cell 290:7 (bind 290:8 item) (bind 290:13 rest))
792− (body 291:9
793− (branch 291:9
794− (wing 291:12 rest)
795− (arm 292:11 (lit 292:11 ~) (lit 292:13 ~))
796− (arm 293:11
797− (cell 293:11 (bind 293:12 next) (bind 293:17 more))
798− (tuple 293:23
799− (wing 293:24 item)
800− (group 293:29
801− (call 293:30 (wing 293:30 snip) (wing 293:35 rest))))))))))))))
802− (value 295:1 rear
803− (gate 295:9
804− (face 295:12 xs
805− (apply 295:15 list (tvar 295:21 A)))
806− (body 296:3
807− (branch 296:3
808− (wing 296:6 xs)
809− (arm 297:5 (lit 297:5 ~) (crash 297:7))
810− (arm 298:5
811− (cell 298:5 (bind 298:6 item) (bind 298:11 rest))
812− (body 299:7
813− (branch 299:7
814− (wing 299:10 rest)
815− (arm 300:9 (lit 300:9 ~) (wing 300:11 item))
816− (arm 301:9
817− (cell 301:9 (bind 301:10 next) (bind 301:15 more))
818− (group 301:21
819− (call 301:22 (wing 301:22 rear) (wing 301:27 rest)))))))))))
820− (value 303:1 cork
290+ (cell 119:16
291+ (face 119:17 i (tvar 119:19 A))
292+ (face 119:21 t
293+ (apply 119:23 list (tvar 119:29 A))))))
294+ (mold 121:1 pole
295+ (generic 121:9 A
296+ (union 122:3
297+ (const 122:3 ~)
298+ (cell 123:3
299+ (tvar 123:4 A)
300+ (apply 123:6 pole (tvar 123:12 A))))))
301+ (mold 125:1 quip
302+ (generic 125:9 A B
303+ (cell 125:18
304+ (apply 125:19 list (tvar 125:25 A))
305+ (tvar 125:28 B))))
306+ (mold 127:1 tree
307+ (generic 127:9 A
308+ (union 128:3
309+ (const 128:3 ~)
310+ (cell 129:3
311+ (face 129:4 n (tvar 129:6 A))
312+ (face 129:8 l
313+ (apply 129:10 tree (tvar 129:16 A)))
314+ (face 129:19 r
315+ (apply 129:21 tree (tvar 129:27 A)))))))
316+ (mold 131:1 each
317+ (generic 131:9 A B
318+ (union 132:3
319+ (cell 132:3
320+ (const 132:4 %|)
321+ (face 132:7 p (tvar 132:9 B)))
322+ (cell 133:3
323+ (const 133:4 %&)
324+ (face 133:7 p (tvar 133:9 A))))))
325+ (mold 135:1 bloq (aura 135:9 @))
326+ (value 137:1 some
327+ (gate 137:9
328+ (face 137:12 item (tvar 137:17 A))
329+ (unit 137:19 (wing 137:20 item))))
330+ (value 139:1 lure
331+ (gate 139:9
332+ (face 139:12 item (tvar 139:17 A))
333+ (body 140:3
334+ (cast 140:3
335+ (apply 140:6 list (tvar 140:12 A))
336+ (tuple 140:15 (wing 140:16 item) (lit 140:21 ~))))))
337+ (value 142:1 snoc
338+ (gate 142:9
339+ (face 142:12 args
340+ (cell 142:17
341+ (apply 142:18 list (tvar 142:24 A))
342+ (tvar 142:27 A)))
343+ (body 143:3
344+ (branch 143:3
345+ (wing 143:6 args)
346+ (arm 144:5
347+ (cell 144:5 (bind 144:6 xs) (bind 144:9 item))
348+ (group 144:15
349+ (call 144:16
350+ (wing 144:16 weld)
351+ (wing 144:21 xs)
352+ (tuple 144:24 (wing 144:25 item) (lit 144:30 ~)))))))))
353+ (value 146:1 flop
354+ (gate 146:9
355+ (face 146:12 xs
356+ (apply 146:15 list (tvar 146:21 A)))
357+ (body 147:3
358+ (value 147:3 reverse-into
359+ (gate 147:19
360+ (face 147:22 args
361+ (cell 147:27
362+ (apply 147:28 list (tvar 147:34 A))
363+ (apply 147:37 list (tvar 147:43 A))))
364+ (body 148:5
365+ (branch 148:5
366+ (wing 148:8 args)
367+ (arm 149:7
368+ (cell 149:7 (bind 149:8 rest) (bind 149:13 acc))
369+ (body 150:9
370+ (branch 150:9
371+ (wing 150:12 rest)
372+ (arm 151:11 (lit 151:11 ~) (wing 151:13 acc))
373+ (arm 152:11
374+ (cell 152:11 (bind 152:12 item) (bind 152:17 more))
375+ (group 152:23
376+ (call 152:24
377+ (wing 152:24 reverse-into)
378+ (wing 152:37 more)
379+ (tuple 152:42 (wing 152:43 item) (wing 152:48 acc))))))))))))
380+ (group 153:3
381+ (call 153:4 (wing 153:4 reverse-into) (wing 153:17 xs) (lit 153:20 ~))))))
382+ (value 155:1 drop
383+ (gate 155:9
384+ (face 155:12 maybe
385+ (apply 155:18 unit (tvar 155:24 A)))
386+ (body 156:3
387+ (cast 156:3
388+ (apply 156:6 list (tvar 156:12 A))
389+ (body 157:5
390+ (branch 157:5
391+ (wing 157:8 maybe)
392+ (arm 158:7 (lit 158:7 ~) (lit 158:9 ~))
393+ (arm 159:7
394+ (cell 159:7 (lit 159:8 ~) (bind 159:10 value))
395+ (tuple 159:17 (wing 159:18 value) (lit 159:24 ~)))))))))
396+ (value 161:1 bond
397+ (gate 161:9
398+ (face 161:12 fallback
399+ (fn 161:21 (const 161:24 ~) (tvar 161:26 A)))
400+ (body 162:3
401+ (gate 162:3
402+ (face 162:6 maybe
403+ (apply 162:12 unit (tvar 162:18 A)))
404+ (body 163:5
405+ (branch 163:5
406+ (wing 163:8 maybe)
407+ (arm 164:7
408+ (lit 164:7 ~)
409+ (group 164:9
410+ (call 164:10 (wing 164:10 fallback) (lit 164:19 ~))))
411+ (arm 165:7
412+ (cell 165:7 (lit 165:8 ~) (bind 165:10 value))
413+ (wing 165:17 value))))))))
414+ (value 167:1 bind
415+ (gate 167:9
416+ (face 167:12 args
417+ (cell 167:17
418+ (apply 167:18 unit (tvar 167:24 A))
419+ (fn 167:27 (tvar 167:30 A) (tvar 167:32 B))))
420+ (body 168:3
421+ (branch 168:3
422+ (wing 168:6 args)
423+ (arm 169:5
424+ (cell 169:5 (bind 169:6 maybe) (bind 169:12 f))
425+ (cast 169:15
426+ (apply 169:18 unit (tvar 169:24 B))
427+ (body 170:7
428+ (branch 170:7
429+ (wing 170:10 maybe)
430+ (arm 171:9 (lit 171:9 ~) (lit 171:11 ~))
431+ (arm 172:9
432+ (cell 172:9 (lit 172:10 ~) (bind 172:12 value))
433+ (unit 172:19
434+ (group 172:20
435+ (call 172:21 (wing 172:21 f) (wing 172:23 value)))))))))))))
436+ (value 174:1 biff
437+ (gate 174:9
438+ (face 174:12 args
439+ (cell 174:17
440+ (apply 174:18 unit (tvar 174:24 A))
441+ (fn 174:27
442+ (tvar 174:30 A)
443+ (apply 174:32 unit (tvar 174:38 B)))))
444+ (body 175:3
445+ (branch 175:3
446+ (wing 175:6 args)
447+ (arm 176:5
448+ (cell 176:5 (bind 176:6 maybe) (bind 176:12 f))
449+ (cast 176:15
450+ (apply 176:18 unit (tvar 176:24 B))
451+ (body 177:7
452+ (branch 177:7
453+ (wing 177:10 maybe)
454+ (arm 178:9 (lit 178:9 ~) (lit 178:11 ~))
455+ (arm 179:9
456+ (cell 179:9 (lit 179:10 ~) (bind 179:12 value))
457+ (group 179:19
458+ (call 179:20 (wing 179:20 f) (wing 179:22 value))))))))))))
459+ (value 181:1 both
460+ (gate 181:9
461+ (face 181:12 args
462+ (cell 181:17
463+ (apply 181:18 unit (tvar 181:24 A))
464+ (apply 181:27 unit (tvar 181:33 B))))
465+ (body 182:3
466+ (branch 182:3
467+ (wing 182:6 args)
468+ (arm 183:5
469+ (cell 183:5 (bind 183:6 first) (bind 183:12 second))
470+ (cast 183:20
471+ (apply 183:23 unit
472+ (cell 183:29 (tvar 183:30 A) (tvar 183:32 B)))
473+ (body 184:7
474+ (branch 184:7
475+ (wing 184:10 first)
476+ (arm 185:9 (lit 185:9 ~) (lit 185:11 ~))
477+ (arm 186:9
478+ (cell 186:9 (lit 186:10 ~) (bind 186:12 a))
479+ (body 187:11
480+ (branch 187:11
481+ (wing 187:14 second)
482+ (arm 188:13 (lit 188:13 ~) (lit 188:15 ~))
483+ (arm 189:13
484+ (cell 189:13 (lit 189:14 ~) (bind 189:16 b))
485+ (unit 189:19
486+ (tuple 189:20 (wing 189:21 a) (wing 189:23 b)))))))))))))))
487+ (value 191:1 clap
488+ (gate 191:9
489+ (face 191:12 args
490+ (cell 191:17
491+ (apply 191:18 unit (tvar 191:24 A))
492+ (apply 191:27 unit (tvar 191:33 A))
493+ (fn 191:36
494+ (cell 191:39 (tvar 191:40 A) (tvar 191:42 A))
495+ (tvar 191:45 A))))
496+ (body 192:3
497+ (branch 192:3
498+ (wing 192:6 args)
499+ (arm 193:5
500+ (cell 193:5 (bind 193:6 first) (bind 193:12 second) (bind 193:19 combine))
501+ (cast 193:28
502+ (apply 193:31 unit (tvar 193:37 A))
503+ (body 194:7
504+ (branch 194:7
505+ (wing 194:10 first)
506+ (arm 195:9 (lit 195:9 ~) (wing 195:11 second))
507+ (arm 196:9
508+ (cell 196:9 (lit 196:10 ~) (bind 196:12 a))
509+ (body 197:11
510+ (branch 197:11
511+ (wing 197:14 second)
512+ (arm 198:13 (lit 198:13 ~) (wing 198:15 first))
513+ (arm 199:13
514+ (cell 199:13 (lit 199:14 ~) (bind 199:16 b))
515+ (unit 199:19
516+ (group 199:20
517+ (call 199:21 (wing 199:21 combine) (wing 199:29 a) (wing 199:31 b))))))))))))))))
518+ (value 201:1 clef
519+ (gate 201:9
520+ (face 201:12 args
521+ (cell 201:17
522+ (apply 201:18 unit (tvar 201:24 A))
523+ (apply 201:27 unit (tvar 201:33 B))
524+ (fn 201:36
525+ (cell 201:39 (tvar 201:40 A) (tvar 201:42 B))
526+ (apply 201:45 unit (tvar 201:51 C)))))
527+ (body 202:3
528+ (branch 202:3
529+ (wing 202:6 args)
530+ (arm 203:5
531+ (cell 203:5 (bind 203:6 first) (bind 203:12 second) (bind 203:19 combine))
532+ (cast 203:28
533+ (apply 203:31 unit (tvar 203:37 C))
534+ (body 204:7
535+ (branch 204:7
536+ (wing 204:10 first)
537+ (arm 205:9 (lit 205:9 ~) (lit 205:11 ~))
538+ (arm 206:9
539+ (cell 206:9 (lit 206:10 ~) (bind 206:12 a))
540+ (body 207:11
541+ (branch 207:11
542+ (wing 207:14 second)
543+ (arm 208:13 (lit 208:13 ~) (lit 208:15 ~))
544+ (arm 209:13
545+ (cell 209:13 (lit 209:14 ~) (bind 209:16 b))
546+ (group 209:19
547+ (call 209:20 (wing 209:20 combine) (wing 209:28 a) (wing 209:30 b)))))))))))))))
548+ (value 211:1 skim
549+ (gate 211:9
550+ (face 211:12 args
551+ (cell 211:17
552+ (apply 211:18 list (tvar 211:24 A))
553+ (fn 211:27 (tvar 211:30 A) (flag 211:32))))
554+ (body 212:3
555+ (branch 212:3
556+ (wing 212:6 args)
557+ (arm 213:5
558+ (cell 213:5 (bind 213:6 xs) (bind 213:9 predicate))
559+ (cast 213:20
560+ (apply 213:23 list (tvar 213:29 A))
561+ (body 214:9
562+ (branch 214:9
563+ (wing 214:12 xs)
564+ (arm 215:11 (lit 215:11 ~) (lit 215:13 ~))
565+ (arm 216:11
566+ (cell 216:11 (bind 216:12 item) (bind 216:17 rest))
567+ (body 217:13
568+ (branch 217:13
569+ (group 217:16
570+ (call 217:17 (wing 217:17 predicate) (wing 217:27 item)))
571+ (arm 218:15
572+ (lit 218:15 %.y)
573+ (tuple 218:19
574+ (wing 218:20 item)
575+ (group 218:25
576+ (call 218:26 (wing 218:26 skim) (wing 218:31 rest) (wing 218:36 predicate)))))
577+ (arm 219:15
578+ (lit 219:15 %.n)
579+ (group 219:19
580+ (call 219:20 (wing 219:20 skim) (wing 219:25 rest) (wing 219:30 predicate)))))))))))))))
581+ (value 221:1 skip
582+ (gate 221:9
583+ (face 221:12 args
584+ (cell 221:17
585+ (apply 221:18 list (tvar 221:24 A))
586+ (fn 221:27 (tvar 221:30 A) (flag 221:32))))
587+ (body 222:3
588+ (branch 222:3
589+ (wing 222:6 args)
590+ (arm 223:5
591+ (cell 223:5 (bind 223:6 xs) (bind 223:9 predicate))
592+ (cast 223:20
593+ (apply 223:23 list (tvar 223:29 A))
594+ (body 224:9
595+ (branch 224:9
596+ (wing 224:12 xs)
597+ (arm 225:11 (lit 225:11 ~) (lit 225:13 ~))
598+ (arm 226:11
599+ (cell 226:11 (bind 226:12 item) (bind 226:17 rest))
600+ (body 227:13
601+ (branch 227:13
602+ (group 227:16
603+ (call 227:17 (wing 227:17 predicate) (wing 227:27 item)))
604+ (arm 228:15
605+ (lit 228:15 %.y)
606+ (group 228:19
607+ (call 228:20 (wing 228:20 skip) (wing 228:25 rest) (wing 228:30 predicate))))
608+ (arm 229:15
609+ (lit 229:15 %.n)
610+ (tuple 229:19
611+ (wing 229:20 item)
612+ (group 229:25
613+ (call 229:26 (wing 229:26 skip) (wing 229:31 rest) (wing 229:36 predicate))))))))))))))))
614+ (value 231:1 levy
615+ (gate 231:9
616+ (face 231:12 args
617+ (cell 231:17
618+ (apply 231:18 list (tvar 231:24 A))
619+ (fn 231:27 (tvar 231:30 A) (flag 231:32))))
620+ (body 232:3
621+ (cast 232:3
622+ (flag 232:6)
623+ (body 233:5
624+ (branch 233:5
625+ (wing 233:8 args)
626+ (arm 234:7
627+ (cell 234:7 (bind 234:8 xs) (bind 234:11 predicate))
628+ (body 235:9
629+ (branch 235:9
630+ (wing 235:12 xs)
631+ (arm 236:11 (lit 236:11 ~) (lit 236:13 %.y))
632+ (arm 237:11
633+ (cell 237:11 (bind 237:12 item) (bind 237:17 rest))
634+ (body 238:13
635+ (branch 238:13
636+ (group 238:16
637+ (call 238:17 (wing 238:17 predicate) (wing 238:27 item)))
638+ (arm 239:15
639+ (lit 239:15 %.y)
640+ (group 239:19
641+ (call 239:20 (wing 239:20 levy) (wing 239:25 rest) (wing 239:30 predicate))))
642+ (arm 240:15 (lit 240:15 %.n) (lit 240:19 %.n))))))))))))))
643+ (value 242:1 lien
644+ (gate 242:9
645+ (face 242:12 args
646+ (cell 242:17
647+ (apply 242:18 list (tvar 242:24 A))
648+ (fn 242:27 (tvar 242:30 A) (flag 242:32))))
649+ (body 243:3
650+ (cast 243:3
651+ (flag 243:6)
652+ (body 244:5
653+ (branch 244:5
654+ (wing 244:8 args)
655+ (arm 245:7
656+ (cell 245:7 (bind 245:8 xs) (bind 245:11 predicate))
657+ (body 246:9
658+ (branch 246:9
659+ (wing 246:12 xs)
660+ (arm 247:11 (lit 247:11 ~) (lit 247:13 %.n))
661+ (arm 248:11
662+ (cell 248:11 (bind 248:12 item) (bind 248:17 rest))
663+ (body 249:13
664+ (branch 249:13
665+ (group 249:16
666+ (call 249:17 (wing 249:17 predicate) (wing 249:27 item)))
667+ (arm 250:15 (lit 250:15 %.y) (lit 250:19 %.y))
668+ (arm 251:15
669+ (lit 251:15 %.n)
670+ (group 251:19
671+ (call 251:20 (wing 251:20 lien) (wing 251:25 rest) (wing 251:30 predicate))))))))))))))))
672+ (value 253:1 roll
673+ (gate 253:9
674+ (face 253:12 args
675+ (cell 253:17
676+ (apply 253:18 list (tvar 253:24 A))
677+ (tvar 253:27 B)
678+ (fn 253:29
679+ (cell 253:32 (tvar 253:33 A) (tvar 253:35 B))
680+ (tvar 253:38 B))))
681+ (body 254:3
682+ (branch 254:3
683+ (wing 254:6 args)
684+ (arm 255:5
685+ (cell 255:5 (bind 255:6 xs) (bind 255:9 start) (bind 255:15 combine))
686+ (body 256:7
687+ (branch 256:7
688+ (wing 256:10 xs)
689+ (arm 257:9 (lit 257:9 ~) (wing 257:11 start))
690+ (arm 258:9
691+ (cell 258:9 (bind 258:10 item) (bind 258:15 rest))
692+ (group 258:21
693+ (call 258:22
694+ (wing 258:22 roll)
695+ (wing 258:27 rest)
696+ (group 258:32
697+ (call 258:33 (wing 258:33 combine) (wing 258:41 item) (wing 258:46 start)))
698+ (wing 258:53 combine)))))))))))
699+ (value 260:1 reel
700+ (gate 260:9
701+ (face 260:12 args
702+ (cell 260:17
703+ (apply 260:18 list (tvar 260:24 A))
704+ (tvar 260:27 B)
705+ (fn 260:29
706+ (cell 260:32 (tvar 260:33 A) (tvar 260:35 B))
707+ (tvar 260:38 B))))
708+ (body 261:3
709+ (branch 261:3
710+ (wing 261:6 args)
711+ (arm 262:5
712+ (cell 262:5 (bind 262:6 xs) (bind 262:9 start) (bind 262:15 combine))
713+ (body 263:7
714+ (branch 263:7
715+ (wing 263:10 xs)
716+ (arm 264:9 (lit 264:9 ~) (wing 264:11 start))
717+ (arm 265:9
718+ (cell 265:9 (bind 265:10 item) (bind 265:15 rest))
719+ (group 265:21
720+ (call 265:22
721+ (wing 265:22 combine)
722+ (wing 265:30 item)
723+ (group 265:35
724+ (call 265:36 (wing 265:36 reel) (wing 265:41 rest) (wing 265:46 start) (wing 265:52 combine)))))))))))))
725+ (value 267:1 flit
726+ (gate 267:9
727+ (face 267:12 predicate
728+ (fn 267:22 (tvar 267:25 A) (flag 267:27)))
729+ (body 268:3
730+ (gate 268:3
731+ (face 268:6 value (tvar 268:12 A))
732+ (body 269:5
733+ (cast 269:5
734+ (apply 269:8 unit (tvar 269:14 A))
735+ (body 270:7
736+ (branch 270:7
737+ (group 270:10
738+ (call 270:11 (wing 270:11 predicate) (wing 270:21 value)))
739+ (arm 271:9
740+ (lit 271:9 %.y)
741+ (unit 271:13 (wing 271:14 value)))
742+ (arm 272:9 (lit 272:9 %.n) (lit 272:13 ~))))))))))
743+ (value 274:1 murn
744+ (gate 274:9
745+ (face 274:12 args
746+ (cell 274:17
747+ (apply 274:18 list (tvar 274:24 A))
748+ (fn 274:27
749+ (tvar 274:30 A)
750+ (apply 274:32 unit (tvar 274:38 B)))))
751+ (body 275:3
752+ (branch 275:3
753+ (wing 275:6 args)
754+ (arm 276:5
755+ (cell 276:5 (bind 276:6 xs) (bind 276:9 f))
756+ (cast 276:12
757+ (apply 276:15 list (tvar 276:21 B))
758+ (body 277:9
759+ (branch 277:9
760+ (wing 277:12 xs)
761+ (arm 278:11 (lit 278:11 ~) (lit 278:13 ~))
762+ (arm 279:11
763+ (cell 279:11 (bind 279:12 item) (bind 279:17 rest))
764+ (body 280:13
765+ (branch 280:13
766+ (group 280:16
767+ (call 280:17 (wing 280:17 f) (wing 280:19 item)))
768+ (arm 281:15
769+ (lit 281:15 ~)
770+ (group 281:17
771+ (call 281:18 (wing 281:18 murn) (wing 281:23 rest) (wing 281:28 f))))
772+ (arm 282:15
773+ (cell 282:15 (lit 282:16 ~) (bind 282:18 value))
774+ (tuple 282:25
775+ (wing 282:26 value)
776+ (group 282:32
777+ (call 282:33 (wing 282:33 murn) (wing 282:38 rest) (wing 282:43 f))))))))))))))))
778+ (value 284:1 join
779+ (gate 284:9
780+ (face 284:12 args
781+ (cell 284:17
782+ (tvar 284:18 A)
783+ (apply 284:20 list (tvar 284:26 A))))
784+ (body 285:3
785+ (branch 285:3
786+ (wing 285:6 args)
787+ (arm 286:5
788+ (cell 286:5 (bind 286:6 separator) (bind 286:16 xs))
789+ (cast 286:20
790+ (apply 286:23 list (tvar 286:29 A))
791+ (body 287:9
792+ (branch 287:9
793+ (wing 287:12 xs)
794+ (arm 288:11 (lit 288:11 ~) (lit 288:13 ~))
795+ (arm 289:11
796+ (cell 289:11 (bind 289:12 item) (bind 289:17 rest))
797+ (body 290:13
798+ (branch 290:13
799+ (wing 290:16 rest)
800+ (arm 291:15
801+ (lit 291:15 ~)
802+ (tuple 291:17 (wing 291:18 item) (lit 291:23 ~)))
803+ (arm 292:15
804+ (cell 292:15 (bind 292:16 next) (bind 292:21 more))
805+ (tuple 292:27
806+ (wing 292:28 item)
807+ (tuple 292:33
808+ (wing 292:34 separator)
809+ (group 292:44
810+ (call 292:45 (wing 292:45 join) (wing 292:50 separator) (wing 292:60 rest)))))))))))))))))
811+ (value 294:1 snip
812+ (gate 294:9
813+ (face 294:12 xs
814+ (apply 294:15 list (tvar 294:21 A)))
815+ (body 295:3
816+ (cast 295:3
817+ (apply 295:6 list (tvar 295:12 A))
818+ (body 296:5
819+ (branch 296:5
820+ (wing 296:8 xs)
821+ (arm 297:7 (lit 297:7 ~) (lit 297:9 ~))
822+ (arm 298:7
823+ (cell 298:7 (bind 298:8 item) (bind 298:13 rest))
824+ (body 299:9
825+ (branch 299:9
826+ (wing 299:12 rest)
827+ (arm 300:11 (lit 300:11 ~) (lit 300:13 ~))
828+ (arm 301:11
829+ (cell 301:11 (bind 301:12 next) (bind 301:17 more))
830+ (tuple 301:23
831+ (wing 301:24 item)
832+ (group 301:29
833+ (call 301:30 (wing 301:30 snip) (wing 301:35 rest))))))))))))))
834+ (value 303:1 rear
821835 (gate 303:9
822− (face 303:12 gates
823− (cell 303:18
824− (fn 303:19 (tvar 303:22 A) (tvar 303:24 B))
825− (fn 303:27 (tvar 303:30 B) (tvar 303:32 C))))
836+ (face 303:12 xs
837+ (apply 303:15 list (tvar 303:21 A)))
826838 (body 304:3
827839 (branch 304:3
828− (wing 304:6 gates)
829− (arm 305:5
830− (cell 305:5 (bind 305:6 f) (bind 305:8 g))
831− (gate 305:11
832− (face 305:14 x (tvar 305:16 A))
833− (group 305:18
834− (call 305:19
835− (wing 305:19 g)
836− (group 305:21
837− (call 305:22 (wing 305:22 f) (wing 305:24 x)))))))))))
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)
840+ (wing 304:6 xs)
841+ (arm 305:5 (lit 305:5 ~) (crash 305:7))
842+ (arm 306:5
843+ (cell 306:5 (bind 306:6 item) (bind 306:11 rest))
844+ (body 307:7
845+ (branch 307:7
846+ (wing 307:10 rest)
847+ (arm 308:9 (lit 308:9 ~) (wing 308:11 item))
848+ (arm 309:9
849+ (cell 309:9 (bind 309:10 next) (bind 309:15 more))
854850 (group 309:21
855− (call 309:22 (wing 309:22 g) (wing 309:24 x)))))))))))
856− (value 311:1 cury
851+ (call 309:22 (wing 309:22 rear) (wing 309:27 rest)))))))))))
852+ (value 311:1 cork
857853 (gate 311:9
858− (face 311:12 args
859− (cell 311:17
860− (fn 311:18
861− (cell 311:21 (tvar 311:22 A) (tvar 311:24 B))
862− (tvar 311:27 C))
863− (tvar 311:30 A)))
854+ (face 311:12 gates
855+ (cell 311:18
856+ (fn 311:19 (tvar 311:22 A) (tvar 311:24 B))
857+ (fn 311:27 (tvar 311:30 B) (tvar 311:32 C))))
864858 (body 312:3
865859 (branch 312:3
866− (wing 312:6 args)
860+ (wing 312:6 gates)
867861 (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))
869863 (gate 313:11
870− (face 313:14 b (tvar 313:16 B))
864+ (face 313:14 x (tvar 313:16 A))
871865 (group 313:18
872− (call 313:19 (wing 313:19 f) (wing 313:21 a) (wing 313:23 b)))))))))
873− (value 315:1 curr
866+ (call 313:19
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
874871 (gate 315:9
875− (face 315:12 args
876− (cell 315:17
877− (fn 315:18
878− (cell 315:21 (tvar 315:22 A) (tvar 315:24 B))
879− (tvar 315:27 C))
880− (tvar 315:30 B)))
872+ (face 315:12 gates
873+ (cell 315:18
874+ (fn 315:19 (tvar 315:22 B) (tvar 315:24 C))
875+ (fn 315:27 (tvar 315:30 A) (tvar 315:32 B))))
881876 (body 316:3
882877 (branch 316:3
883− (wing 316:6 args)
878+ (wing 316:6 gates)
884879 (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))
886881 (gate 317:11
887− (face 317:14 a (tvar 317:16 A))
882+ (face 317:14 x (tvar 317:16 A))
888883 (group 317:18
889− (call 317:19 (wing 317:19 f) (wing 317:21 a) (wing 317:23 b)))))))))
890− (mold 319:1 cmd
891− (generic 319:8 M
892− (union 320:3
893− (cell 320:3
894− (const 320:4 %poke)
895− (face 320:10 p (ref 320:12 poke))
896− (face 320:17 reply
897− (fn 320:23
898− (apply 320:26 unit (aura 320:32 @t))
899− (tvar 320:36 M))))
900− (cell 321:3
901− (const 321:4 %go)
902− (face 321:8 url (aura 321:12 @t)))
903− (cell 322:3
904− (const 322:4 %wait)
905− (face 322:10 gap (aura 322:14 @dr))
906− (face 322:18 msg (tvar 322:22 M)))
907− (cell 323:3
908− (const 323:4 %now)
909− (face 323:9 reply
910− (fn 323:15 (aura 323:18 @da) (tvar 323:22 M))))
911− (cell 324:3
912− (const 324:4 %who)
913− (face 324:9 reply
914− (fn 324:15 (aura 324:18 @p) (tvar 324:21 M)))))))
915− (value 326:1 gth
916− (gate 326:8
917− (face 326:11 args
918− (cell 326:16 (tvar 326:17 A) (tvar 326:19 A)))
919− (group 326:22
920− (call 326:23 (wing 326:23 gth-atom.internal) (wing 326:41 args)))))
921− (value 327:1 add
922− (gate 327:8
923− (face 327:11 args
924− (cell 327:16 (tvar 327:17 A) (tvar 327:19 A)))
925− (group 327:22
926− (call 327:23 (wing 327:23 add-atom.internal) (wing 327:41 args)))))
927− (value 328:1 dec
928− (gate 328:8
929− (face 328:11 atom (tvar 328:16 A))
930− (group 328:18
931− (call 328:19 (wing 328:19 dec-atom.internal) (wing 328:37 atom))))))
884+ (call 317:19
885+ (wing 317:19 f)
886+ (group 317:21
887+ (call 317:22 (wing 317:22 g) (wing 317:24 x)))))))))))
888+ (value 319:1 cury
889+ (gate 319:9
890+ (face 319:12 args
891+ (cell 319:17
892+ (fn 319:18
893+ (cell 319:21 (tvar 319:22 A) (tvar 319:24 B))
894+ (tvar 319:27 C))
895+ (tvar 319:30 A)))
896+ (body 320:3
897+ (branch 320:3
898+ (wing 320:6 args)
899+ (arm 321:5
900+ (cell 321:5 (bind 321:6 f) (bind 321:8 a))
901+ (gate 321:11
902+ (face 321:14 b (tvar 321:16 B))
903+ (group 321:18
904+ (call 321:19 (wing 321:19 f) (wing 321:21 a) (wing 321:23 b)))))))))
905+ (value 323:1 curr
906+ (gate 323:9
907+ (face 323:12 args
908+ (cell 323:17
909+ (fn 323:18
910+ (cell 323:21 (tvar 323:22 A) (tvar 323:24 B))
911+ (tvar 323:27 C))
912+ (tvar 323:30 B)))
913+ (body 324:3
914+ (branch 324:3
915+ (wing 324:6 args)
916+ (arm 325:5
917+ (cell 325:5 (bind 325:6 f) (bind 325:8 b))
918+ (gate 325:11
919+ (face 325:14 a (tvar 325:16 A))
920+ (group 325:18
921+ (call 325:19 (wing 325:19 f) (wing 325:21 a) (wing 325:23 b)))))))))
922+ (mold 327:1 cmd
923+ (generic 327:8 M
924+ (union 328:3
925+ (cell 328:3
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
2929+$ spot: not checked
3030+$ toon: cases proven disjoint; mold not checked
3131+$ like: not checked
32+++ like: sample mold is not supported by partial inference
3233++ wonk: sample mold is not supported by partial inference
3334+$ lone: not checked
3435+$ 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 @@
18591859/* tok-522 %txt /tests/golden/types-partial-unresolved-tag/tokens/txt
18601860/* tre-522 %txt /tests/golden/types-partial-unresolved-tag/tree/txt
18611861/* typ-522 %txt /tests/golden/types-partial-unresolved-tag/types/txt
1862−/* src-523 %jibb /tests/golden/types-prelude-arithmetic/source/jibb
1863−/* tok-523 %txt /tests/golden/types-prelude-arithmetic/tokens/txt
1864−/* tre-523 %txt /tests/golden/types-prelude-arithmetic/tree/txt
1865−/* typ-523 %txt /tests/golden/types-prelude-arithmetic/types/txt
1866−/* src-524 %jibb /tests/golden/types-prelude-bond/source/jibb
1867−/* tok-524 %txt /tests/golden/types-prelude-bond/tokens/txt
1868−/* tre-524 %txt /tests/golden/types-prelude-bond/tree/txt
1869−/* typ-524 %txt /tests/golden/types-prelude-bond/types/txt
1870−/* src-525 %jibb /tests/golden/types-prelude-cmd/source/jibb
1871−/* tok-525 %txt /tests/golden/types-prelude-cmd/tokens/txt
1872−/* tre-525 %txt /tests/golden/types-prelude-cmd/tree/txt
1873−/* typ-525 %txt /tests/golden/types-prelude-cmd/types/txt
1874−/* src-526 %jibb /tests/golden/types-prelude-direct/source/jibb
1875−/* tok-526 %txt /tests/golden/types-prelude-direct/tokens/txt
1876−/* tre-526 %txt /tests/golden/types-prelude-direct/tree/txt
1877−/* typ-526 %txt /tests/golden/types-prelude-direct/types/txt
1878−/* src-527 %jibb /tests/golden/types-prelude-functional/source/jibb
1879−/* tok-527 %txt /tests/golden/types-prelude-functional/tokens/txt
1880−/* tre-527 %txt /tests/golden/types-prelude-functional/tree/txt
1881−/* typ-527 %txt /tests/golden/types-prelude-functional/types/txt
1882−/* src-528 %jibb /tests/golden/types-prelude-generic-alias/source/jibb
1883−/* tok-528 %txt /tests/golden/types-prelude-generic-alias/tokens/txt
1884−/* tre-528 %txt /tests/golden/types-prelude-generic-alias/tree/txt
1885−/* mod-528-1 %jibb /tests/golden/types-prelude-generic-alias/modules/ui/alias-helper/jibb
1886−/* typ-528 %txt /tests/golden/types-prelude-generic-alias/types/txt
1887−/* mtre-528 %txt /tests/golden/types-prelude-generic-alias/module-trees/txt
1888−/* src-529 %jibb /tests/golden/types-prelude-interface/source/jibb
1889−/* tok-529 %txt /tests/golden/types-prelude-interface/tokens/txt
1890−/* tre-529 %txt /tests/golden/types-prelude-interface/tree/txt
1891−/* mod-529-1 %jibb /tests/golden/types-prelude-interface/modules/ui/left/jibb
1892−/* mod-529-2 %jibb /tests/golden/types-prelude-interface/modules/ui/right/jibb
1893−/* typ-529 %txt /tests/golden/types-prelude-interface/types/txt
1894−/* mtre-529 %txt /tests/golden/types-prelude-interface/module-trees/txt
1895−/* src-530 %jibb /tests/golden/types-prelude-list-alias/source/jibb
1896−/* tok-530 %txt /tests/golden/types-prelude-list-alias/tokens/txt
1897−/* tre-530 %txt /tests/golden/types-prelude-list-alias/tree/txt
1898−/* typ-530 %txt /tests/golden/types-prelude-list-alias/types/txt
1899−/* src-531 %jibb /tests/golden/types-prelude-list-functions/source/jibb
1900−/* tok-531 %txt /tests/golden/types-prelude-list-functions/tokens/txt
1901−/* tre-531 %txt /tests/golden/types-prelude-list-functions/tree/txt
1902−/* mod-531-1 %jibb /tests/golden/types-prelude-list-functions/modules/ui/lib/jibb
1903−/* typ-531 %txt /tests/golden/types-prelude-list-functions/types/txt
1904−/* mtre-531 %txt /tests/golden/types-prelude-list-functions/module-trees/txt
1905−/* src-532 %jibb /tests/golden/types-prelude-list-helpers/source/jibb
1906−/* tok-532 %txt /tests/golden/types-prelude-list-helpers/tokens/txt
1907−/* tre-532 %txt /tests/golden/types-prelude-list-helpers/tree/txt
1908−/* typ-532 %txt /tests/golden/types-prelude-list-helpers/types/txt
1909−/* src-533 %jibb /tests/golden/types-prelude-predicates/source/jibb
1910−/* tok-533 %txt /tests/golden/types-prelude-predicates/tokens/txt
1911−/* tre-533 %txt /tests/golden/types-prelude-predicates/tree/txt
1912−/* typ-533 %txt /tests/golden/types-prelude-predicates/types/txt
1913−/* src-534 %jibb /tests/golden/types-prelude-unit-helpers/source/jibb
1914−/* tok-534 %txt /tests/golden/types-prelude-unit-helpers/tokens/txt
1915−/* tre-534 %txt /tests/golden/types-prelude-unit-helpers/tree/txt
1916−/* typ-534 %txt /tests/golden/types-prelude-unit-helpers/types/txt
1917−/* src-535 %jibb /tests/golden/types-proj-explicit-context/source/jibb
1918−/* tok-535 %txt /tests/golden/types-proj-explicit-context/tokens/txt
1919−/* tre-535 %txt /tests/golden/types-proj-explicit-context/tree/txt
1920−/* typ-535 %txt /tests/golden/types-proj-explicit-context/types/txt
1921−/* src-536 %jibb /tests/golden/types-proj-nested-no-implicit/source/jibb
1922−/* tok-536 %txt /tests/golden/types-proj-nested-no-implicit/tokens/txt
1923−/* tre-536 %txt /tests/golden/types-proj-nested-no-implicit/tree/txt
1924−/* typ-536 %txt /tests/golden/types-proj-nested-no-implicit/types/txt
1925−/* src-537 %jibb /tests/golden/types-proj-reserved-imported-definition/source/jibb
1926−/* tok-537 %txt /tests/golden/types-proj-reserved-imported-definition/tokens/txt
1927−/* tre-537 %txt /tests/golden/types-proj-reserved-imported-definition/tree/txt
1928−/* mod-537-1 %jibb /tests/golden/types-proj-reserved-imported-definition/modules/ui/lib/jibb
1929−/* typ-537 %txt /tests/golden/types-proj-reserved-imported-definition/types/txt
1930−/* mtre-537 %txt /tests/golden/types-proj-reserved-imported-definition/module-trees/txt
1931−/* src-538 %jibb /tests/golden/types-proj-reserved-jibb-import/source/jibb
1932−/* tok-538 %txt /tests/golden/types-proj-reserved-jibb-import/tokens/txt
1933−/* tre-538 %txt /tests/golden/types-proj-reserved-jibb-import/tree/txt
1934−/* mod-538-1 %jibb /tests/golden/types-proj-reserved-jibb-import/modules/ui/lib/jibb
1935−/* typ-538 %txt /tests/golden/types-proj-reserved-jibb-import/types/txt
1936−/* mtre-538 %txt /tests/golden/types-proj-reserved-jibb-import/module-trees/txt
1937−/* src-539 %jibb /tests/golden/types-proj-reserved-local/source/jibb
1938−/* tok-539 %txt /tests/golden/types-proj-reserved-local/tokens/txt
1939−/* tre-539 %txt /tests/golden/types-proj-reserved-local/tree/txt
1940−/* typ-539 %txt /tests/golden/types-proj-reserved-local/types/txt
1941−/* src-540 %jibb /tests/golden/types-proj-reserved-local-mold/source/jibb
1942−/* tok-540 %txt /tests/golden/types-proj-reserved-local-mold/tokens/txt
1943−/* tre-540 %txt /tests/golden/types-proj-reserved-local-mold/tree/txt
1944−/* typ-540 %txt /tests/golden/types-proj-reserved-local-mold/types/txt
1945−/* src-541 %jibb /tests/golden/types-proj-reserved-mark-import/source/jibb
1946−/* tok-541 %txt /tests/golden/types-proj-reserved-mark-import/tokens/txt
1947−/* tre-541 %txt /tests/golden/types-proj-reserved-mark-import/tree/txt
1948−/* typ-541 %txt /tests/golden/types-proj-reserved-mark-import/types/txt
1949−/* src-542 %jibb /tests/golden/types-proj-reserved-mold/source/jibb
1950−/* tok-542 %txt /tests/golden/types-proj-reserved-mold/tokens/txt
1951−/* tre-542 %txt /tests/golden/types-proj-reserved-mold/tree/txt
1952−/* typ-542 %txt /tests/golden/types-proj-reserved-mold/types/txt
1953−/* src-543 %jibb /tests/golden/types-proj-reserved-pattern/source/jibb
1954−/* tok-543 %txt /tests/golden/types-proj-reserved-pattern/tokens/txt
1955−/* tre-543 %txt /tests/golden/types-proj-reserved-pattern/tree/txt
1956−/* typ-543 %txt /tests/golden/types-proj-reserved-pattern/types/txt
1957−/* src-544 %jibb /tests/golden/types-proj-reserved-positive/source/jibb
1958−/* tok-544 %txt /tests/golden/types-proj-reserved-positive/tokens/txt
1959−/* tre-544 %txt /tests/golden/types-proj-reserved-positive/tree/txt
1960−/* typ-544 %txt /tests/golden/types-proj-reserved-positive/types/txt
1961−/* src-545 %jibb /tests/golden/types-proj-reserved-sample/source/jibb
1962−/* tok-545 %txt /tests/golden/types-proj-reserved-sample/tokens/txt
1963−/* tre-545 %txt /tests/golden/types-proj-reserved-sample/tree/txt
1964−/* typ-545 %txt /tests/golden/types-proj-reserved-sample/types/txt
1965−/* src-546 %jibb /tests/golden/types-proj-reserved-sur-import/source/jibb
1966−/* tok-546 %txt /tests/golden/types-proj-reserved-sur-import/tokens/txt
1967−/* tre-546 %txt /tests/golden/types-proj-reserved-sur-import/tree/txt
1968−/* typ-546 %txt /tests/golden/types-proj-reserved-sur-import/types/txt
1969−/* src-547 %jibb /tests/golden/types-proj-reserved-unused-pattern/source/jibb
1970−/* tok-547 %txt /tests/golden/types-proj-reserved-unused-pattern/tokens/txt
1971−/* tre-547 %txt /tests/golden/types-proj-reserved-unused-pattern/tree/txt
1972−/* typ-547 %txt /tests/golden/types-proj-reserved-unused-pattern/types/txt
1973−/* src-548 %jibb /tests/golden/types-proj-reserved-unused-sample/source/jibb
1974−/* tok-548 %txt /tests/golden/types-proj-reserved-unused-sample/tokens/txt
1975−/* tre-548 %txt /tests/golden/types-proj-reserved-unused-sample/tree/txt
1976−/* typ-548 %txt /tests/golden/types-proj-reserved-unused-sample/types/txt
1977−/* src-549 %jibb /tests/golden/types-proj-reserved-unused-value/source/jibb
1978−/* tok-549 %txt /tests/golden/types-proj-reserved-unused-value/tokens/txt
1979−/* tre-549 %txt /tests/golden/types-proj-reserved-unused-value/tree/txt
1980−/* typ-549 %txt /tests/golden/types-proj-reserved-unused-value/types/txt
1981−/* src-550 %jibb /tests/golden/types-proj-reserved-value/source/jibb
1982−/* tok-550 %txt /tests/golden/types-proj-reserved-value/tokens/txt
1983−/* tre-550 %txt /tests/golden/types-proj-reserved-value/tree/txt
1984−/* typ-550 %txt /tests/golden/types-proj-reserved-value/types/txt
1985−/* src-551 %jibb /tests/golden/types-proj-single-duplicate/source/jibb
1986−/* tok-551 %txt /tests/golden/types-proj-single-duplicate/tokens/txt
1987−/* tre-551 %txt /tests/golden/types-proj-single-duplicate/tree/txt
1988−/* typ-551 %txt /tests/golden/types-proj-single-duplicate/types/txt
1989−/* src-552 %jibb /tests/golden/types-proj-single-field/source/jibb
1990−/* tok-552 %txt /tests/golden/types-proj-single-field/tokens/txt
1991−/* tre-552 %txt /tests/golden/types-proj-single-field/tree/txt
1992−/* typ-552 %txt /tests/golden/types-proj-single-field/types/txt
1993−/* src-553 %jibb /tests/golden/types-proj-single-sample-face/source/jibb
1994−/* tok-553 %txt /tests/golden/types-proj-single-sample-face/tokens/txt
1995−/* tre-553 %txt /tests/golden/types-proj-single-sample-face/tree/txt
1996−/* typ-553 %txt /tests/golden/types-proj-single-sample-face/types/txt
1997−/* src-554 %jibb /tests/golden/types-proj-single-wrapped/source/jibb
1998−/* tok-554 %txt /tests/golden/types-proj-single-wrapped/tokens/txt
1999−/* tre-554 %txt /tests/golden/types-proj-single-wrapped/tree/txt
2000−/* typ-554 %txt /tests/golden/types-proj-single-wrapped/types/txt
2001−/* src-555 %jibb /tests/golden/types-qath-faces/source/jibb
2002−/* tok-555 %txt /tests/golden/types-qath-faces/tokens/txt
2003−/* tre-555 %txt /tests/golden/types-qath-faces/tree/txt
2004−/* typ-555 %txt /tests/golden/types-qath-faces/types/txt
2005−/* src-556 %jibb /tests/golden/types-qath-holes/source/jibb
2006−/* tok-556 %txt /tests/golden/types-qath-holes/tokens/txt
2007−/* tre-556 %txt /tests/golden/types-qath-holes/tree/txt
2008−/* typ-556 %txt /tests/golden/types-qath-holes/types/txt
2009−/* src-557 %jibb /tests/golden/types-qath-module-identity/source/jibb
2010−/* tok-557 %txt /tests/golden/types-qath-module-identity/tokens/txt
2011−/* tre-557 %txt /tests/golden/types-qath-module-identity/tree/txt
2012−/* mod-557-1 %jibb /tests/golden/types-qath-module-identity/modules/ui/one/jibb
2013−/* mod-557-2 %jibb /tests/golden/types-qath-module-identity/modules/ui/two/jibb
2014−/* mod-557-3 %jibb /tests/golden/types-qath-module-identity/modules/ui/mid/jibb
2015−/* typ-557 %txt /tests/golden/types-qath-module-identity/types/txt
2016−/* mtre-557 %txt /tests/golden/types-qath-module-identity/module-trees/txt
2017−/* src-558 %jibb /tests/golden/types-qath-recursive/source/jibb
2018−/* tok-558 %txt /tests/golden/types-qath-recursive/tokens/txt
2019−/* tre-558 %txt /tests/golden/types-qath-recursive/tree/txt
2020−/* typ-558 %txt /tests/golden/types-qath-recursive/types/txt
2021−/* src-559 %jibb /tests/golden/types-record-bound-variable/source/jibb
2022−/* tok-559 %txt /tests/golden/types-record-bound-variable/tokens/txt
2023−/* tre-559 %txt /tests/golden/types-record-bound-variable/tree/txt
2024−/* typ-559 %txt /tests/golden/types-record-bound-variable/types/txt
2025−/* src-560 %jibb /tests/golden/types-record-cast-context/source/jibb
2026−/* tok-560 %txt /tests/golden/types-record-cast-context/tokens/txt
2027−/* tre-560 %txt /tests/golden/types-record-cast-context/tree/txt
2028−/* typ-560 %txt /tests/golden/types-record-cast-context/types/txt
2029−/* src-561 %jibb /tests/golden/types-record-change/source/jibb
2030−/* tok-561 %txt /tests/golden/types-record-change/tokens/txt
2031−/* tre-561 %txt /tests/golden/types-record-change/tree/txt
2032−/* typ-561 %txt /tests/golden/types-record-change/types/txt
2033−/* src-562 %jibb /tests/golden/types-record-change-generic/source/jibb
2034−/* tok-562 %txt /tests/golden/types-record-change-generic/tokens/txt
2035−/* tre-562 %txt /tests/golden/types-record-change-generic/tree/txt
2036−/* typ-562 %txt /tests/golden/types-record-change-generic/types/txt
2037−/* src-563 %jibb /tests/golden/types-record-faces/source/jibb
2038−/* tok-563 %txt /tests/golden/types-record-faces/tokens/txt
2039−/* tre-563 %txt /tests/golden/types-record-faces/tree/txt
2040−/* typ-563 %txt /tests/golden/types-record-faces/types/txt
2041−/* src-564 %jibb /tests/golden/types-record-field-edit-separate/source/jibb
2042−/* tok-564 %txt /tests/golden/types-record-field-edit-separate/tokens/txt
2043−/* tre-564 %txt /tests/golden/types-record-field-edit-separate/tree/txt
2044−/* typ-564 %txt /tests/golden/types-record-field-edit-separate/types/txt
2045−/* src-565 %jibb /tests/golden/types-record-field-expr-duplicate/source/jibb
2046−/* tok-565 %txt /tests/golden/types-record-field-expr-duplicate/tokens/txt
2047−/* tre-565 %txt /tests/golden/types-record-field-expr-duplicate/tree/txt
2048−/* typ-565 %txt /tests/golden/types-record-field-expr-duplicate/types/txt
2049−/* src-566 %jibb /tests/golden/types-record-field-expr-separate/source/jibb
2050−/* tok-566 %txt /tests/golden/types-record-field-expr-separate/tokens/txt
2051−/* tre-566 %txt /tests/golden/types-record-field-expr-separate/tree/txt
2052−/* typ-566 %txt /tests/golden/types-record-field-expr-separate/types/txt
2053−/* src-567 %jibb /tests/golden/types-record-field-module-reachable/source/jibb
2054−/* tok-567 %txt /tests/golden/types-record-field-module-reachable/tokens/txt
2055−/* tre-567 %txt /tests/golden/types-record-field-module-reachable/tree/txt
2056−/* mod-567-1 %jibb /tests/golden/types-record-field-module-reachable/modules/ui/lib/jibb
2057−/* typ-567 %txt /tests/golden/types-record-field-module-reachable/types/txt
2058−/* mtre-567 %txt /tests/golden/types-record-field-module-reachable/module-trees/txt
2059−/* src-568 %jibb /tests/golden/types-record-field-module-unused/source/jibb
2060−/* tok-568 %txt /tests/golden/types-record-field-module-unused/tokens/txt
2061−/* tre-568 %txt /tests/golden/types-record-field-module-unused/tree/txt
2062−/* mod-568-1 %jibb /tests/golden/types-record-field-module-unused/modules/ui/good/jibb
2063−/* mod-568-2 %jibb /tests/golden/types-record-field-module-unused/modules/ui/unused/jibb
2064−/* typ-568 %txt /tests/golden/types-record-field-module-unused/types/txt
2065−/* mtre-568 %txt /tests/golden/types-record-field-module-unused/module-trees/txt
2066−/* src-569 %jibb /tests/golden/types-record-field-nested-mold/source/jibb
2067−/* tok-569 %txt /tests/golden/types-record-field-nested-mold/tokens/txt
2068−/* tre-569 %txt /tests/golden/types-record-field-nested-mold/tree/txt
2069−/* typ-569 %txt /tests/golden/types-record-field-nested-mold/types/txt
2070−/* src-570 %jibb /tests/golden/types-record-field-outer-inner/source/jibb
2071−/* tok-570 %txt /tests/golden/types-record-field-outer-inner/tokens/txt
2072−/* tre-570 %txt /tests/golden/types-record-field-outer-inner/tree/txt
2073−/* typ-570 %txt /tests/golden/types-record-field-outer-inner/types/txt
2074−/* src-571 %jibb /tests/golden/types-record-field-sample-duplicate/source/jibb
2075−/* tok-571 %txt /tests/golden/types-record-field-sample-duplicate/tokens/txt
2076−/* tre-571 %txt /tests/golden/types-record-field-sample-duplicate/tree/txt
2077−/* typ-571 %txt /tests/golden/types-record-field-sample-duplicate/types/txt
2078−/* src-572 %jibb /tests/golden/types-record-field-separate-molds/source/jibb
2079−/* tok-572 %txt /tests/golden/types-record-field-separate-molds/tokens/txt
2080−/* tre-572 %txt /tests/golden/types-record-field-separate-molds/tree/txt
2081−/* typ-572 %txt /tests/golden/types-record-field-separate-molds/types/txt
2082−/* src-573 %jibb /tests/golden/types-record-field-unused-mold/source/jibb
2083−/* tok-573 %txt /tests/golden/types-record-field-unused-mold/tokens/txt
2084−/* tre-573 %txt /tests/golden/types-record-field-unused-mold/tree/txt
2085−/* typ-573 %txt /tests/golden/types-record-field-unused-mold/types/txt
2086−/* src-574 %jibb /tests/golden/types-record-import/source/jibb
2087−/* tok-574 %txt /tests/golden/types-record-import/tokens/txt
2088−/* tre-574 %txt /tests/golden/types-record-import/tree/txt
2089−/* mod-574-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
2090−/* typ-574 %txt /tests/golden/types-record-import/types/txt
2091−/* mtre-574 %txt /tests/golden/types-record-import/module-trees/txt
2092−/* src-575 %jibb /tests/golden/types-record-local-scheme/source/jibb
2093−/* tok-575 %txt /tests/golden/types-record-local-scheme/tokens/txt
2094−/* tre-575 %txt /tests/golden/types-record-local-scheme/tree/txt
2095−/* typ-575 %txt /tests/golden/types-record-local-scheme/types/txt
2096−/* src-576 %jibb /tests/golden/types-record-nested/source/jibb
2097−/* tok-576 %txt /tests/golden/types-record-nested/tokens/txt
2098−/* tre-576 %txt /tests/golden/types-record-nested/tree/txt
2099−/* typ-576 %txt /tests/golden/types-record-nested/types/txt
2100−/* src-577 %jibb /tests/golden/types-record-to-tuple/source/jibb
2101−/* tok-577 %txt /tests/golden/types-record-to-tuple/tokens/txt
2102−/* tre-577 %txt /tests/golden/types-record-to-tuple/tree/txt
2103−/* typ-577 %txt /tests/golden/types-record-to-tuple/types/txt
2104−/* src-578 %jibb /tests/golden/types-recursion-scc-failures/source/jibb
2105−/* tok-578 %txt /tests/golden/types-recursion-scc-failures/tokens/txt
2106−/* tre-578 %txt /tests/golden/types-recursion-scc-failures/tree/txt
2107−/* typ-578 %txt /tests/golden/types-recursion-scc-failures/types/txt
2108−/* src-579 %jibb /tests/golden/types-recursion-scc-groups/source/jibb
2109−/* tok-579 %txt /tests/golden/types-recursion-scc-groups/tokens/txt
2110−/* tre-579 %txt /tests/golden/types-recursion-scc-groups/tree/txt
2111−/* typ-579 %txt /tests/golden/types-recursion-scc-groups/types/txt
2112−/* src-580 %jibb /tests/golden/types-recursion-scc-import/source/jibb
2113−/* tok-580 %txt /tests/golden/types-recursion-scc-import/tokens/txt
2114−/* tre-580 %txt /tests/golden/types-recursion-scc-import/tree/txt
2115−/* mod-580-1 %jibb /tests/golden/types-recursion-scc-import/modules/ui/lib/jibb
2116−/* typ-580 %txt /tests/golden/types-recursion-scc-import/types/txt
2117−/* mtre-580 %txt /tests/golden/types-recursion-scc-import/module-trees/txt
2118−/* src-581 %jibb /tests/golden/types-recursion-scc-import-bad/source/jibb
2119−/* tok-581 %txt /tests/golden/types-recursion-scc-import-bad/tokens/txt
2120−/* tre-581 %txt /tests/golden/types-recursion-scc-import-bad/tree/txt
2121−/* mod-581-1 %jibb /tests/golden/types-recursion-scc-import-bad/modules/ui/lib/jibb
2122−/* typ-581 %txt /tests/golden/types-recursion-scc-import-bad/types/txt
2123−/* mtre-581 %txt /tests/golden/types-recursion-scc-import-bad/module-trees/txt
2124−/* src-582 %jibb /tests/golden/types-recursion-scc-local/source/jibb
2125−/* tok-582 %txt /tests/golden/types-recursion-scc-local/tokens/txt
2126−/* tre-582 %txt /tests/golden/types-recursion-scc-local/tree/txt
2127−/* typ-582 %txt /tests/golden/types-recursion-scc-local/types/txt
2128−/* src-583 %jibb /tests/golden/types-recursion-scc-order/source/jibb
2129−/* tok-583 %txt /tests/golden/types-recursion-scc-order/tokens/txt
2130−/* tre-583 %txt /tests/golden/types-recursion-scc-order/tree/txt
2131−/* typ-583 %txt /tests/golden/types-recursion-scc-order/types/txt
2132−/* src-584 %jibb /tests/golden/types-recursion-scc-shadow/source/jibb
2133−/* tok-584 %txt /tests/golden/types-recursion-scc-shadow/tokens/txt
2134−/* tre-584 %txt /tests/golden/types-recursion-scc-shadow/tree/txt
2135−/* typ-584 %txt /tests/golden/types-recursion-scc-shadow/types/txt
2136−/* src-585 %jibb /tests/golden/types-recursive-branch/source/jibb
2137−/* tok-585 %txt /tests/golden/types-recursive-branch/tokens/txt
2138−/* tre-585 %txt /tests/golden/types-recursive-branch/tree/txt
2139−/* typ-585 %txt /tests/golden/types-recursive-branch/types/txt
2140−/* src-586 %jibb /tests/golden/types-recursive-gate/source/jibb
2141−/* tok-586 %txt /tests/golden/types-recursive-gate/tokens/txt
2142−/* tre-586 %txt /tests/golden/types-recursive-gate/tree/txt
2143−/* typ-586 %txt /tests/golden/types-recursive-gate/types/txt
2144−/* src-587 %jibb /tests/golden/types-recursive-sample/source/jibb
2145−/* tok-587 %txt /tests/golden/types-recursive-sample/tokens/txt
2146−/* tre-587 %txt /tests/golden/types-recursive-sample/tree/txt
2147−/* typ-587 %txt /tests/golden/types-recursive-sample/types/txt
2148−/* src-588 %jibb /tests/golden/types-scope-library-poke/source/jibb
2149−/* tok-588 %txt /tests/golden/types-scope-library-poke/tokens/txt
2150−/* tre-588 %txt /tests/golden/types-scope-library-poke/tree/txt
2151−/* typ-588 %txt /tests/golden/types-scope-library-poke/types/txt
2152−/* src-589 %jibb /tests/golden/types-scope-root-api/source/jibb
2153−/* tok-589 %txt /tests/golden/types-scope-root-api/tokens/txt
2154−/* tre-589 %txt /tests/golden/types-scope-root-api/tree/txt
2155−/* typ-589 %txt /tests/golden/types-scope-root-api/types/txt
2156−/* src-590 %jibb /tests/golden/types-scope-store-duplicate/source/jibb
2157−/* tok-590 %txt /tests/golden/types-scope-store-duplicate/tokens/txt
2158−/* tre-590 %txt /tests/golden/types-scope-store-duplicate/tree/txt
2159−/* typ-590 %txt /tests/golden/types-scope-store-duplicate/types/txt
2160−/* src-591 %jibb /tests/golden/types-scope-store-shadow/source/jibb
2161−/* tok-591 %txt /tests/golden/types-scope-store-shadow/tokens/txt
2162−/* tre-591 %txt /tests/golden/types-scope-store-shadow/tree/txt
2163−/* typ-591 %txt /tests/golden/types-scope-store-shadow/types/txt
2164−/* src-592 %jibb /tests/golden/types-single-case-pattern/source/jibb
2165−/* tok-592 %txt /tests/golden/types-single-case-pattern/tokens/txt
2166−/* tre-592 %txt /tests/golden/types-single-case-pattern/tree/txt
2167−/* typ-592 %txt /tests/golden/types-single-case-pattern/types/txt
2168−/* src-593 %jibb /tests/golden/types-string-interpolation/source/jibb
2169−/* tok-593 %txt /tests/golden/types-string-interpolation/tokens/txt
2170−/* tre-593 %txt /tests/golden/types-string-interpolation/tree/txt
2171−/* typ-593 %txt /tests/golden/types-string-interpolation/types/txt
2172−/* src-594 %jibb /tests/golden/types-tuple-context/source/jibb
2173−/* tok-594 %txt /tests/golden/types-tuple-context/tokens/txt
2174−/* tre-594 %txt /tests/golden/types-tuple-context/tree/txt
2175−/* typ-594 %txt /tests/golden/types-tuple-context/types/txt
2176−/* src-595 %jibb /tests/golden/types-tuple-context-nested/source/jibb
2177−/* tok-595 %txt /tests/golden/types-tuple-context-nested/tokens/txt
2178−/* tre-595 %txt /tests/golden/types-tuple-context-nested/tree/txt
2179−/* typ-595 %txt /tests/golden/types-tuple-context-nested/types/txt
2180−/* src-596 %jibb /tests/golden/types-union-alias/source/jibb
2181−/* tok-596 %txt /tests/golden/types-union-alias/tokens/txt
2182−/* tre-596 %txt /tests/golden/types-union-alias/tree/txt
2183−/* typ-596 %txt /tests/golden/types-union-alias/types/txt
2184−/* src-597 %jibb /tests/golden/types-union-branch-context/source/jibb
2185−/* tok-597 %txt /tests/golden/types-union-branch-context/tokens/txt
2186−/* tre-597 %txt /tests/golden/types-union-branch-context/tree/txt
2187−/* typ-597 %txt /tests/golden/types-union-branch-context/types/txt
2188−/* src-598 %jibb /tests/golden/types-union-branch-pending/source/jibb
2189−/* tok-598 %txt /tests/golden/types-union-branch-pending/tokens/txt
2190−/* tre-598 %txt /tests/golden/types-union-branch-pending/tree/txt
2191−/* typ-598 %txt /tests/golden/types-union-branch-pending/types/txt
2192−/* src-599 %jibb /tests/golden/types-union-constructor-shape/source/jibb
2193−/* tok-599 %txt /tests/golden/types-union-constructor-shape/tokens/txt
2194−/* tre-599 %txt /tests/golden/types-union-constructor-shape/tree/txt
2195−/* typ-599 %txt /tests/golden/types-union-constructor-shape/types/txt
2196−/* src-600 %jibb /tests/golden/types-union-context-flow/source/jibb
2197−/* tok-600 %txt /tests/golden/types-union-context-flow/tokens/txt
2198−/* tre-600 %txt /tests/golden/types-union-context-flow/tree/txt
2199−/* typ-600 %txt /tests/golden/types-union-context-flow/types/txt
2200−/* src-601 %jibb /tests/golden/types-union-finite/source/jibb
2201−/* tok-601 %txt /tests/golden/types-union-finite/tokens/txt
2202−/* tre-601 %txt /tests/golden/types-union-finite/tree/txt
2203−/* typ-601 %txt /tests/golden/types-union-finite/types/txt
2204−/* src-602 %jibb /tests/golden/types-union-finite-context/source/jibb
2205−/* tok-602 %txt /tests/golden/types-union-finite-context/tokens/txt
2206−/* tre-602 %txt /tests/golden/types-union-finite-context/tree/txt
2207−/* typ-602 %txt /tests/golden/types-union-finite-context/types/txt
2208−/* src-603 %jibb /tests/golden/types-union-finite-generic/source/jibb
2209−/* tok-603 %txt /tests/golden/types-union-finite-generic/tokens/txt
2210−/* tre-603 %txt /tests/golden/types-union-finite-generic/tree/txt
2211−/* typ-603 %txt /tests/golden/types-union-finite-generic/types/txt
2212−/* src-604 %jibb /tests/golden/types-union-finite-limit/source/jibb
2213−/* tok-604 %txt /tests/golden/types-union-finite-limit/tokens/txt
2214−/* tre-604 %txt /tests/golden/types-union-finite-limit/tree/txt
2215−/* typ-604 %txt /tests/golden/types-union-finite-limit/types/txt
2216−/* src-605 %jibb /tests/golden/types-union-import/source/jibb
2217−/* tok-605 %txt /tests/golden/types-union-import/tokens/txt
2218−/* tre-605 %txt /tests/golden/types-union-import/tree/txt
2219−/* mod-605-1 %jibb /tests/golden/types-union-import/modules/ui/lib/jibb
2220−/* typ-605 %txt /tests/golden/types-union-import/types/txt
2221−/* mtre-605 %txt /tests/golden/types-union-import/module-trees/txt
2222−/* src-606 %jibb /tests/golden/types-union-local-pending/source/jibb
2223−/* tok-606 %txt /tests/golden/types-union-local-pending/tokens/txt
2224−/* tre-606 %txt /tests/golden/types-union-local-pending/tree/txt
2225−/* typ-606 %txt /tests/golden/types-union-local-pending/types/txt
2226−/* src-607 %jibb /tests/golden/types-union-nonwing-subject/source/jibb
2227−/* tok-607 %txt /tests/golden/types-union-nonwing-subject/tokens/txt
2228−/* tre-607 %txt /tests/golden/types-union-nonwing-subject/tree/txt
2229−/* typ-607 %txt /tests/golden/types-union-nonwing-subject/types/txt
2230−/* src-608 %jibb /tests/golden/types-union-overlap/source/jibb
2231−/* tok-608 %txt /tests/golden/types-union-overlap/tokens/txt
2232−/* tre-608 %txt /tests/golden/types-union-overlap/tree/txt
2233−/* typ-608 %txt /tests/golden/types-union-overlap/types/txt
2234−/* src-609 %jibb /tests/golden/types-union-overlap-nested/source/jibb
2235−/* tok-609 %txt /tests/golden/types-union-overlap-nested/tokens/txt
2236−/* tre-609 %txt /tests/golden/types-union-overlap-nested/tree/txt
2237−/* typ-609 %txt /tests/golden/types-union-overlap-nested/types/txt
2238−/* src-610 %jibb /tests/golden/types-union-pattern-result-context/source/jibb
2239−/* tok-610 %txt /tests/golden/types-union-pattern-result-context/tokens/txt
2240−/* tre-610 %txt /tests/golden/types-union-pattern-result-context/tree/txt
2241−/* typ-610 %txt /tests/golden/types-union-pattern-result-context/types/txt
2242−/* src-611 %jibb /tests/golden/types-union-pattern-result-controls/source/jibb
2243−/* tok-611 %txt /tests/golden/types-union-pattern-result-controls/tokens/txt
2244−/* tre-611 %txt /tests/golden/types-union-pattern-result-controls/tree/txt
2245−/* typ-611 %txt /tests/golden/types-union-pattern-result-controls/types/txt
2246−/* src-612 %jibb /tests/golden/types-union-patterns/source/jibb
2247−/* tok-612 %txt /tests/golden/types-union-patterns/tokens/txt
2248−/* tre-612 %txt /tests/golden/types-union-patterns/tree/txt
2249−/* typ-612 %txt /tests/golden/types-union-patterns/types/txt
2250−/* src-613 %jibb /tests/golden/types-union-patterns-generic/source/jibb
2251−/* tok-613 %txt /tests/golden/types-union-patterns-generic/tokens/txt
2252−/* tre-613 %txt /tests/golden/types-union-patterns-generic/tree/txt
2253−/* typ-613 %txt /tests/golden/types-union-patterns-generic/types/txt
2254−/* src-614 %jibb /tests/golden/types-union-patterns-import/source/jibb
2255−/* tok-614 %txt /tests/golden/types-union-patterns-import/tokens/txt
2256−/* tre-614 %txt /tests/golden/types-union-patterns-import/tree/txt
2257−/* mod-614-1 %jibb /tests/golden/types-union-patterns-import/modules/ui/lib/jibb
2258−/* typ-614 %txt /tests/golden/types-union-patterns-import/types/txt
2259−/* mtre-614 %txt /tests/golden/types-union-patterns-import/module-trees/txt
2260−/* src-615 %jibb /tests/golden/types-union-phantom-generic/source/jibb
2261−/* tok-615 %txt /tests/golden/types-union-phantom-generic/tokens/txt
2262−/* tre-615 %txt /tests/golden/types-union-phantom-generic/tree/txt
2263−/* typ-615 %txt /tests/golden/types-union-phantom-generic/types/txt
2264−/* src-616 %jibb /tests/golden/types-union-polymorphic-identity/source/jibb
2265−/* tok-616 %txt /tests/golden/types-union-polymorphic-identity/tokens/txt
2266−/* tre-616 %txt /tests/golden/types-union-polymorphic-identity/tree/txt
2267−/* mod-616-1 %jibb /tests/golden/types-union-polymorphic-identity/modules/ui/one/jibb
2268−/* mod-616-2 %jibb /tests/golden/types-union-polymorphic-identity/modules/ui/two/jibb
2269−/* typ-616 %txt /tests/golden/types-union-polymorphic-identity/types/txt
2270−/* mtre-616 %txt /tests/golden/types-union-polymorphic-identity/module-trees/txt
2271−/* src-617 %jibb /tests/golden/types-union-print-cross-namespace/source/jibb
2272−/* tok-617 %txt /tests/golden/types-union-print-cross-namespace/tokens/txt
2273−/* tre-617 %txt /tests/golden/types-union-print-cross-namespace/tree/txt
2274−/* mod-617-1 %jibb /tests/golden/types-union-print-cross-namespace/modules/ui/lib/jibb
2275−/* typ-617 %txt /tests/golden/types-union-print-cross-namespace/types/txt
2276−/* mtre-617 %txt /tests/golden/types-union-print-cross-namespace/module-trees/txt
2277−/* src-618 %jibb /tests/golden/types-union-print-distinct/source/jibb
2278−/* tok-618 %txt /tests/golden/types-union-print-distinct/tokens/txt
2279−/* tre-618 %txt /tests/golden/types-union-print-distinct/tree/txt
2280−/* mod-618-1 %jibb /tests/golden/types-union-print-distinct/modules/ui/left/jibb
2281−/* mod-618-2 %jibb /tests/golden/types-union-print-distinct/modules/ui/right/jibb
2282−/* mod-618-3 %jibb /tests/golden/types-union-print-distinct/modules/ui/twin/jibb
2283−/* typ-618 %txt /tests/golden/types-union-print-distinct/types/txt
2284−/* mtre-618 %txt /tests/golden/types-union-print-distinct/module-trees/txt
2285−/* src-619 %jibb /tests/golden/types-union-print-escape/source/jibb
2286−/* tok-619 %txt /tests/golden/types-union-print-escape/tokens/txt
2287−/* tre-619 %txt /tests/golden/types-union-print-escape/tree/txt
2288−/* typ-619 %txt /tests/golden/types-union-print-escape/types/txt
2289−/* src-620 %jibb /tests/golden/types-union-print-local/source/jibb
2290−/* tok-620 %txt /tests/golden/types-union-print-local/tokens/txt
2291−/* tre-620 %txt /tests/golden/types-union-print-local/tree/txt
2292−/* typ-620 %txt /tests/golden/types-union-print-local/types/txt
2293−/* src-621 %jibb /tests/golden/types-union-print-nested/source/jibb
2294−/* tok-621 %txt /tests/golden/types-union-print-nested/tokens/txt
2295−/* tre-621 %txt /tests/golden/types-union-print-nested/tree/txt
2296−/* typ-621 %txt /tests/golden/types-union-print-nested/types/txt
2297−/* src-622 %jibb /tests/golden/types-union-print-same-origin/source/jibb
2298−/* tok-622 %txt /tests/golden/types-union-print-same-origin/tokens/txt
2299−/* tre-622 %txt /tests/golden/types-union-print-same-origin/tree/txt
2300−/* mod-622-1 %jibb /tests/golden/types-union-print-same-origin/modules/ui/shared/jibb
2301−/* typ-622 %txt /tests/golden/types-union-print-same-origin/types/txt
2302−/* mtre-622 %txt /tests/golden/types-union-print-same-origin/module-trees/txt
2303−/* src-623 %jibb /tests/golden/types-union-print-transitive/source/jibb
2304−/* tok-623 %txt /tests/golden/types-union-print-transitive/tokens/txt
2305−/* tre-623 %txt /tests/golden/types-union-print-transitive/tree/txt
2306−/* mod-623-1 %jibb /tests/golden/types-union-print-transitive/modules/ui/mid/jibb
2307−/* mod-623-2 %jibb /tests/golden/types-union-print-transitive/modules/ui/base/jibb
2308−/* typ-623 %txt /tests/golden/types-union-print-transitive/types/txt
2309−/* mtre-623 %txt /tests/golden/types-union-print-transitive/module-trees/txt
2310−/* src-624 %jibb /tests/golden/types-union-singleton/source/jibb
2311−/* tok-624 %txt /tests/golden/types-union-singleton/tokens/txt
2312−/* tre-624 %txt /tests/golden/types-union-singleton/tree/txt
2313−/* typ-624 %txt /tests/golden/types-union-singleton/types/txt
2314−/* src-625 %jibb /tests/golden/types-union-tag-atoms/source/jibb
2315−/* tok-625 %txt /tests/golden/types-union-tag-atoms/tokens/txt
2316−/* tre-625 %txt /tests/golden/types-union-tag-atoms/tree/txt
2317−/* typ-625 %txt /tests/golden/types-union-tag-atoms/types/txt
2318−/* src-626 %jibb /tests/golden/types-union-tags/source/jibb
2319−/* tok-626 %txt /tests/golden/types-union-tags/tokens/txt
2320−/* tre-626 %txt /tests/golden/types-union-tags/tree/txt
2321−/* typ-626 %txt /tests/golden/types-union-tags/types/txt
2322−/* src-627 %jibb /tests/golden/types-union-unresolved/source/jibb
2323−/* tok-627 %txt /tests/golden/types-union-unresolved/tokens/txt
2324−/* tre-627 %txt /tests/golden/types-union-unresolved/tree/txt
2325−/* typ-627 %txt /tests/golden/types-union-unresolved/types/txt
2326−/* src-628 %jibb /tests/golden/types-union-unresolved-flow/source/jibb
2327−/* tok-628 %txt /tests/golden/types-union-unresolved-flow/tokens/txt
2328−/* tre-628 %txt /tests/golden/types-union-unresolved-flow/tree/txt
2329−/* typ-628 %txt /tests/golden/types-union-unresolved-flow/types/txt
2330−/* src-629 %jibb /tests/golden/types-unit-construction/source/jibb
2331−/* tok-629 %txt /tests/golden/types-unit-construction/tokens/txt
2332−/* tre-629 %txt /tests/golden/types-unit-construction/tree/txt
2333−/* typ-629 %txt /tests/golden/types-unit-construction/types/txt
2334−/* src-630 %jibb /tests/golden/types-unit-context/source/jibb
2335−/* tok-630 %txt /tests/golden/types-unit-context/tokens/txt
2336−/* tre-630 %txt /tests/golden/types-unit-context/tree/txt
2337−/* typ-630 %txt /tests/golden/types-unit-context/types/txt
2338−/* src-631 %jibb /tests/golden/types-unit-patterns/source/jibb
2339−/* tok-631 %txt /tests/golden/types-unit-patterns/tokens/txt
2340−/* tre-631 %txt /tests/golden/types-unit-patterns/tree/txt
2341−/* typ-631 %txt /tests/golden/types-unit-patterns/types/txt
2342−/* src-632 %jibb /tests/golden/types-value-cycle-shadow/source/jibb
2343−/* tok-632 %txt /tests/golden/types-value-cycle-shadow/tokens/txt
2344−/* tre-632 %txt /tests/golden/types-value-cycle-shadow/tree/txt
2345−/* typ-632 %txt /tests/golden/types-value-cycle-shadow/types/txt
2346−/* src-633 %jibb /tests/golden/types-value-cycle-unsupported/source/jibb
2347−/* tok-633 %txt /tests/golden/types-value-cycle-unsupported/tokens/txt
2348−/* tre-633 %txt /tests/golden/types-value-cycle-unsupported/tree/txt
2349−/* typ-633 %txt /tests/golden/types-value-cycle-unsupported/types/txt
2350−/* src-634 %jibb /tests/golden/types-value-cycles/source/jibb
2351−/* tok-634 %txt /tests/golden/types-value-cycles/tokens/txt
2352−/* tre-634 %txt /tests/golden/types-value-cycles/tree/txt
2353−/* typ-634 %txt /tests/golden/types-value-cycles/types/txt
1862+/* src-523 %jibb /tests/golden/types-positional-faces/source/jibb
1863+/* tok-523 %txt /tests/golden/types-positional-faces/tokens/txt
1864+/* tre-523 %txt /tests/golden/types-positional-faces/tree/txt
1865+/* typ-523 %txt /tests/golden/types-positional-faces/types/txt
1866+/* src-524 %jibb /tests/golden/types-prelude-arithmetic/source/jibb
1867+/* tok-524 %txt /tests/golden/types-prelude-arithmetic/tokens/txt
1868+/* tre-524 %txt /tests/golden/types-prelude-arithmetic/tree/txt
1869+/* typ-524 %txt /tests/golden/types-prelude-arithmetic/types/txt
1870+/* src-525 %jibb /tests/golden/types-prelude-bond/source/jibb
1871+/* tok-525 %txt /tests/golden/types-prelude-bond/tokens/txt
1872+/* tre-525 %txt /tests/golden/types-prelude-bond/tree/txt
1873+/* typ-525 %txt /tests/golden/types-prelude-bond/types/txt
1874+/* src-526 %jibb /tests/golden/types-prelude-cmd/source/jibb
1875+/* tok-526 %txt /tests/golden/types-prelude-cmd/tokens/txt
1876+/* tre-526 %txt /tests/golden/types-prelude-cmd/tree/txt
1877+/* typ-526 %txt /tests/golden/types-prelude-cmd/types/txt
1878+/* src-527 %jibb /tests/golden/types-prelude-direct/source/jibb
1879+/* tok-527 %txt /tests/golden/types-prelude-direct/tokens/txt
1880+/* tre-527 %txt /tests/golden/types-prelude-direct/tree/txt
1881+/* typ-527 %txt /tests/golden/types-prelude-direct/types/txt
1882+/* src-528 %jibb /tests/golden/types-prelude-functional/source/jibb
1883+/* tok-528 %txt /tests/golden/types-prelude-functional/tokens/txt
1884+/* tre-528 %txt /tests/golden/types-prelude-functional/tree/txt
1885+/* typ-528 %txt /tests/golden/types-prelude-functional/types/txt
1886+/* src-529 %jibb /tests/golden/types-prelude-generic-alias/source/jibb
1887+/* tok-529 %txt /tests/golden/types-prelude-generic-alias/tokens/txt
1888+/* tre-529 %txt /tests/golden/types-prelude-generic-alias/tree/txt
1889+/* mod-529-1 %jibb /tests/golden/types-prelude-generic-alias/modules/ui/alias-helper/jibb
1890+/* typ-529 %txt /tests/golden/types-prelude-generic-alias/types/txt
1891+/* mtre-529 %txt /tests/golden/types-prelude-generic-alias/module-trees/txt
1892+/* src-530 %jibb /tests/golden/types-prelude-interface/source/jibb
1893+/* tok-530 %txt /tests/golden/types-prelude-interface/tokens/txt
1894+/* tre-530 %txt /tests/golden/types-prelude-interface/tree/txt
1895+/* mod-530-1 %jibb /tests/golden/types-prelude-interface/modules/ui/left/jibb
1896+/* mod-530-2 %jibb /tests/golden/types-prelude-interface/modules/ui/right/jibb
1897+/* typ-530 %txt /tests/golden/types-prelude-interface/types/txt
1898+/* mtre-530 %txt /tests/golden/types-prelude-interface/module-trees/txt
1899+/* src-531 %jibb /tests/golden/types-prelude-like/source/jibb
1900+/* tok-531 %txt /tests/golden/types-prelude-like/tokens/txt
1901+/* tre-531 %txt /tests/golden/types-prelude-like/tree/txt
1902+/* typ-531 %txt /tests/golden/types-prelude-like/types/txt
1903+/* src-532 %jibb /tests/golden/types-prelude-list-alias/source/jibb
1904+/* tok-532 %txt /tests/golden/types-prelude-list-alias/tokens/txt
1905+/* tre-532 %txt /tests/golden/types-prelude-list-alias/tree/txt
1906+/* typ-532 %txt /tests/golden/types-prelude-list-alias/types/txt
1907+/* src-533 %jibb /tests/golden/types-prelude-list-functions/source/jibb
1908+/* tok-533 %txt /tests/golden/types-prelude-list-functions/tokens/txt
1909+/* tre-533 %txt /tests/golden/types-prelude-list-functions/tree/txt
1910+/* mod-533-1 %jibb /tests/golden/types-prelude-list-functions/modules/ui/lib/jibb
1911+/* typ-533 %txt /tests/golden/types-prelude-list-functions/types/txt
1912+/* mtre-533 %txt /tests/golden/types-prelude-list-functions/module-trees/txt
1913+/* src-534 %jibb /tests/golden/types-prelude-list-helpers/source/jibb
1914+/* tok-534 %txt /tests/golden/types-prelude-list-helpers/tokens/txt
1915+/* tre-534 %txt /tests/golden/types-prelude-list-helpers/tree/txt
1916+/* typ-534 %txt /tests/golden/types-prelude-list-helpers/types/txt
1917+/* src-535 %jibb /tests/golden/types-prelude-predicates/source/jibb
1918+/* tok-535 %txt /tests/golden/types-prelude-predicates/tokens/txt
1919+/* tre-535 %txt /tests/golden/types-prelude-predicates/tree/txt
1920+/* typ-535 %txt /tests/golden/types-prelude-predicates/types/txt
1921+/* src-536 %jibb /tests/golden/types-prelude-unit-helpers/source/jibb
1922+/* tok-536 %txt /tests/golden/types-prelude-unit-helpers/tokens/txt
1923+/* tre-536 %txt /tests/golden/types-prelude-unit-helpers/tree/txt
1924+/* typ-536 %txt /tests/golden/types-prelude-unit-helpers/types/txt
1925+/* src-537 %jibb /tests/golden/types-proj-explicit-context/source/jibb
1926+/* tok-537 %txt /tests/golden/types-proj-explicit-context/tokens/txt
1927+/* tre-537 %txt /tests/golden/types-proj-explicit-context/tree/txt
1928+/* typ-537 %txt /tests/golden/types-proj-explicit-context/types/txt
1929+/* src-538 %jibb /tests/golden/types-proj-nested-no-implicit/source/jibb
1930+/* tok-538 %txt /tests/golden/types-proj-nested-no-implicit/tokens/txt
1931+/* tre-538 %txt /tests/golden/types-proj-nested-no-implicit/tree/txt
1932+/* typ-538 %txt /tests/golden/types-proj-nested-no-implicit/types/txt
1933+/* src-539 %jibb /tests/golden/types-proj-reserved-imported-definition/source/jibb
1934+/* tok-539 %txt /tests/golden/types-proj-reserved-imported-definition/tokens/txt
1935+/* tre-539 %txt /tests/golden/types-proj-reserved-imported-definition/tree/txt
1936+/* mod-539-1 %jibb /tests/golden/types-proj-reserved-imported-definition/modules/ui/lib/jibb
1937+/* typ-539 %txt /tests/golden/types-proj-reserved-imported-definition/types/txt
1938+/* mtre-539 %txt /tests/golden/types-proj-reserved-imported-definition/module-trees/txt
1939+/* src-540 %jibb /tests/golden/types-proj-reserved-jibb-import/source/jibb
1940+/* tok-540 %txt /tests/golden/types-proj-reserved-jibb-import/tokens/txt
1941+/* tre-540 %txt /tests/golden/types-proj-reserved-jibb-import/tree/txt
1942+/* mod-540-1 %jibb /tests/golden/types-proj-reserved-jibb-import/modules/ui/lib/jibb
1943+/* typ-540 %txt /tests/golden/types-proj-reserved-jibb-import/types/txt
1944+/* mtre-540 %txt /tests/golden/types-proj-reserved-jibb-import/module-trees/txt
1945+/* src-541 %jibb /tests/golden/types-proj-reserved-local/source/jibb
1946+/* tok-541 %txt /tests/golden/types-proj-reserved-local/tokens/txt
1947+/* tre-541 %txt /tests/golden/types-proj-reserved-local/tree/txt
1948+/* typ-541 %txt /tests/golden/types-proj-reserved-local/types/txt
1949+/* src-542 %jibb /tests/golden/types-proj-reserved-local-mold/source/jibb
1950+/* tok-542 %txt /tests/golden/types-proj-reserved-local-mold/tokens/txt
1951+/* tre-542 %txt /tests/golden/types-proj-reserved-local-mold/tree/txt
1952+/* typ-542 %txt /tests/golden/types-proj-reserved-local-mold/types/txt
1953+/* src-543 %jibb /tests/golden/types-proj-reserved-mark-import/source/jibb
1954+/* tok-543 %txt /tests/golden/types-proj-reserved-mark-import/tokens/txt
1955+/* tre-543 %txt /tests/golden/types-proj-reserved-mark-import/tree/txt
1956+/* typ-543 %txt /tests/golden/types-proj-reserved-mark-import/types/txt
1957+/* src-544 %jibb /tests/golden/types-proj-reserved-mold/source/jibb
1958+/* tok-544 %txt /tests/golden/types-proj-reserved-mold/tokens/txt
1959+/* tre-544 %txt /tests/golden/types-proj-reserved-mold/tree/txt
1960+/* typ-544 %txt /tests/golden/types-proj-reserved-mold/types/txt
1961+/* src-545 %jibb /tests/golden/types-proj-reserved-pattern/source/jibb
1962+/* tok-545 %txt /tests/golden/types-proj-reserved-pattern/tokens/txt
1963+/* tre-545 %txt /tests/golden/types-proj-reserved-pattern/tree/txt
1964+/* typ-545 %txt /tests/golden/types-proj-reserved-pattern/types/txt
1965+/* src-546 %jibb /tests/golden/types-proj-reserved-positive/source/jibb
1966+/* tok-546 %txt /tests/golden/types-proj-reserved-positive/tokens/txt
1967+/* tre-546 %txt /tests/golden/types-proj-reserved-positive/tree/txt
1968+/* typ-546 %txt /tests/golden/types-proj-reserved-positive/types/txt
1969+/* src-547 %jibb /tests/golden/types-proj-reserved-sample/source/jibb
1970+/* tok-547 %txt /tests/golden/types-proj-reserved-sample/tokens/txt
1971+/* tre-547 %txt /tests/golden/types-proj-reserved-sample/tree/txt
1972+/* typ-547 %txt /tests/golden/types-proj-reserved-sample/types/txt
1973+/* src-548 %jibb /tests/golden/types-proj-reserved-sur-import/source/jibb
1974+/* tok-548 %txt /tests/golden/types-proj-reserved-sur-import/tokens/txt
1975+/* tre-548 %txt /tests/golden/types-proj-reserved-sur-import/tree/txt
1976+/* typ-548 %txt /tests/golden/types-proj-reserved-sur-import/types/txt
1977+/* src-549 %jibb /tests/golden/types-proj-reserved-unused-pattern/source/jibb
1978+/* tok-549 %txt /tests/golden/types-proj-reserved-unused-pattern/tokens/txt
1979+/* tre-549 %txt /tests/golden/types-proj-reserved-unused-pattern/tree/txt
1980+/* typ-549 %txt /tests/golden/types-proj-reserved-unused-pattern/types/txt
1981+/* src-550 %jibb /tests/golden/types-proj-reserved-unused-sample/source/jibb
1982+/* tok-550 %txt /tests/golden/types-proj-reserved-unused-sample/tokens/txt
1983+/* tre-550 %txt /tests/golden/types-proj-reserved-unused-sample/tree/txt
1984+/* typ-550 %txt /tests/golden/types-proj-reserved-unused-sample/types/txt
1985+/* src-551 %jibb /tests/golden/types-proj-reserved-unused-value/source/jibb
1986+/* tok-551 %txt /tests/golden/types-proj-reserved-unused-value/tokens/txt
1987+/* tre-551 %txt /tests/golden/types-proj-reserved-unused-value/tree/txt
1988+/* typ-551 %txt /tests/golden/types-proj-reserved-unused-value/types/txt
1989+/* src-552 %jibb /tests/golden/types-proj-reserved-value/source/jibb
1990+/* tok-552 %txt /tests/golden/types-proj-reserved-value/tokens/txt
1991+/* tre-552 %txt /tests/golden/types-proj-reserved-value/tree/txt
1992+/* typ-552 %txt /tests/golden/types-proj-reserved-value/types/txt
1993+/* src-553 %jibb /tests/golden/types-proj-single-duplicate/source/jibb
1994+/* tok-553 %txt /tests/golden/types-proj-single-duplicate/tokens/txt
1995+/* tre-553 %txt /tests/golden/types-proj-single-duplicate/tree/txt
1996+/* typ-553 %txt /tests/golden/types-proj-single-duplicate/types/txt
1997+/* src-554 %jibb /tests/golden/types-proj-single-field/source/jibb
1998+/* tok-554 %txt /tests/golden/types-proj-single-field/tokens/txt
1999+/* tre-554 %txt /tests/golden/types-proj-single-field/tree/txt
2000+/* typ-554 %txt /tests/golden/types-proj-single-field/types/txt
2001+/* src-555 %jibb /tests/golden/types-proj-single-sample-face/source/jibb
2002+/* tok-555 %txt /tests/golden/types-proj-single-sample-face/tokens/txt
2003+/* tre-555 %txt /tests/golden/types-proj-single-sample-face/tree/txt
2004+/* typ-555 %txt /tests/golden/types-proj-single-sample-face/types/txt
2005+/* src-556 %jibb /tests/golden/types-proj-single-wrapped/source/jibb
2006+/* tok-556 %txt /tests/golden/types-proj-single-wrapped/tokens/txt
2007+/* tre-556 %txt /tests/golden/types-proj-single-wrapped/tree/txt
2008+/* typ-556 %txt /tests/golden/types-proj-single-wrapped/types/txt
2009+/* src-557 %jibb /tests/golden/types-qath-faces/source/jibb
2010+/* tok-557 %txt /tests/golden/types-qath-faces/tokens/txt
2011+/* tre-557 %txt /tests/golden/types-qath-faces/tree/txt
2012+/* typ-557 %txt /tests/golden/types-qath-faces/types/txt
2013+/* src-558 %jibb /tests/golden/types-qath-holes/source/jibb
2014+/* tok-558 %txt /tests/golden/types-qath-holes/tokens/txt
2015+/* tre-558 %txt /tests/golden/types-qath-holes/tree/txt
2016+/* typ-558 %txt /tests/golden/types-qath-holes/types/txt
2017+/* src-559 %jibb /tests/golden/types-qath-module-identity/source/jibb
2018+/* tok-559 %txt /tests/golden/types-qath-module-identity/tokens/txt
2019+/* tre-559 %txt /tests/golden/types-qath-module-identity/tree/txt
2020+/* mod-559-1 %jibb /tests/golden/types-qath-module-identity/modules/ui/one/jibb
2021+/* mod-559-2 %jibb /tests/golden/types-qath-module-identity/modules/ui/two/jibb
2022+/* mod-559-3 %jibb /tests/golden/types-qath-module-identity/modules/ui/mid/jibb
2023+/* typ-559 %txt /tests/golden/types-qath-module-identity/types/txt
2024+/* mtre-559 %txt /tests/golden/types-qath-module-identity/module-trees/txt
2025+/* src-560 %jibb /tests/golden/types-qath-recursive/source/jibb
2026+/* tok-560 %txt /tests/golden/types-qath-recursive/tokens/txt
2027+/* tre-560 %txt /tests/golden/types-qath-recursive/tree/txt
2028+/* typ-560 %txt /tests/golden/types-qath-recursive/types/txt
2029+/* src-561 %jibb /tests/golden/types-record-bound-variable/source/jibb
2030+/* tok-561 %txt /tests/golden/types-record-bound-variable/tokens/txt
2031+/* tre-561 %txt /tests/golden/types-record-bound-variable/tree/txt
2032+/* typ-561 %txt /tests/golden/types-record-bound-variable/types/txt
2033+/* src-562 %jibb /tests/golden/types-record-cast-context/source/jibb
2034+/* tok-562 %txt /tests/golden/types-record-cast-context/tokens/txt
2035+/* tre-562 %txt /tests/golden/types-record-cast-context/tree/txt
2036+/* typ-562 %txt /tests/golden/types-record-cast-context/types/txt
2037+/* src-563 %jibb /tests/golden/types-record-change/source/jibb
2038+/* tok-563 %txt /tests/golden/types-record-change/tokens/txt
2039+/* tre-563 %txt /tests/golden/types-record-change/tree/txt
2040+/* typ-563 %txt /tests/golden/types-record-change/types/txt
2041+/* src-564 %jibb /tests/golden/types-record-change-generic/source/jibb
2042+/* tok-564 %txt /tests/golden/types-record-change-generic/tokens/txt
2043+/* tre-564 %txt /tests/golden/types-record-change-generic/tree/txt
2044+/* typ-564 %txt /tests/golden/types-record-change-generic/types/txt
2045+/* src-565 %jibb /tests/golden/types-record-faces/source/jibb
2046+/* tok-565 %txt /tests/golden/types-record-faces/tokens/txt
2047+/* tre-565 %txt /tests/golden/types-record-faces/tree/txt
2048+/* typ-565 %txt /tests/golden/types-record-faces/types/txt
2049+/* src-566 %jibb /tests/golden/types-record-field-edit-separate/source/jibb
2050+/* tok-566 %txt /tests/golden/types-record-field-edit-separate/tokens/txt
2051+/* tre-566 %txt /tests/golden/types-record-field-edit-separate/tree/txt
2052+/* typ-566 %txt /tests/golden/types-record-field-edit-separate/types/txt
2053+/* src-567 %jibb /tests/golden/types-record-field-expr-duplicate/source/jibb
2054+/* tok-567 %txt /tests/golden/types-record-field-expr-duplicate/tokens/txt
2055+/* tre-567 %txt /tests/golden/types-record-field-expr-duplicate/tree/txt
2056+/* typ-567 %txt /tests/golden/types-record-field-expr-duplicate/types/txt
2057+/* src-568 %jibb /tests/golden/types-record-field-expr-separate/source/jibb
2058+/* tok-568 %txt /tests/golden/types-record-field-expr-separate/tokens/txt
2059+/* tre-568 %txt /tests/golden/types-record-field-expr-separate/tree/txt
2060+/* typ-568 %txt /tests/golden/types-record-field-expr-separate/types/txt
2061+/* src-569 %jibb /tests/golden/types-record-field-module-reachable/source/jibb
2062+/* tok-569 %txt /tests/golden/types-record-field-module-reachable/tokens/txt
2063+/* tre-569 %txt /tests/golden/types-record-field-module-reachable/tree/txt
2064+/* mod-569-1 %jibb /tests/golden/types-record-field-module-reachable/modules/ui/lib/jibb
2065+/* typ-569 %txt /tests/golden/types-record-field-module-reachable/types/txt
2066+/* mtre-569 %txt /tests/golden/types-record-field-module-reachable/module-trees/txt
2067+/* src-570 %jibb /tests/golden/types-record-field-module-unused/source/jibb
2068+/* tok-570 %txt /tests/golden/types-record-field-module-unused/tokens/txt
2069+/* tre-570 %txt /tests/golden/types-record-field-module-unused/tree/txt
2070+/* mod-570-1 %jibb /tests/golden/types-record-field-module-unused/modules/ui/good/jibb
2071+/* mod-570-2 %jibb /tests/golden/types-record-field-module-unused/modules/ui/unused/jibb
2072+/* typ-570 %txt /tests/golden/types-record-field-module-unused/types/txt
2073+/* mtre-570 %txt /tests/golden/types-record-field-module-unused/module-trees/txt
2074+/* src-571 %jibb /tests/golden/types-record-field-nested-mold/source/jibb
2075+/* tok-571 %txt /tests/golden/types-record-field-nested-mold/tokens/txt
2076+/* tre-571 %txt /tests/golden/types-record-field-nested-mold/tree/txt
2077+/* typ-571 %txt /tests/golden/types-record-field-nested-mold/types/txt
2078+/* src-572 %jibb /tests/golden/types-record-field-outer-inner/source/jibb
2079+/* tok-572 %txt /tests/golden/types-record-field-outer-inner/tokens/txt
2080+/* tre-572 %txt /tests/golden/types-record-field-outer-inner/tree/txt
2081+/* typ-572 %txt /tests/golden/types-record-field-outer-inner/types/txt
2082+/* src-573 %jibb /tests/golden/types-record-field-sample-duplicate/source/jibb
2083+/* tok-573 %txt /tests/golden/types-record-field-sample-duplicate/tokens/txt
2084+/* tre-573 %txt /tests/golden/types-record-field-sample-duplicate/tree/txt
2085+/* typ-573 %txt /tests/golden/types-record-field-sample-duplicate/types/txt
2086+/* src-574 %jibb /tests/golden/types-record-field-separate-molds/source/jibb
2087+/* tok-574 %txt /tests/golden/types-record-field-separate-molds/tokens/txt
2088+/* tre-574 %txt /tests/golden/types-record-field-separate-molds/tree/txt
2089+/* typ-574 %txt /tests/golden/types-record-field-separate-molds/types/txt
2090+/* src-575 %jibb /tests/golden/types-record-field-unused-mold/source/jibb
2091+/* tok-575 %txt /tests/golden/types-record-field-unused-mold/tokens/txt
2092+/* tre-575 %txt /tests/golden/types-record-field-unused-mold/tree/txt
2093+/* typ-575 %txt /tests/golden/types-record-field-unused-mold/types/txt
2094+/* src-576 %jibb /tests/golden/types-record-import/source/jibb
2095+/* tok-576 %txt /tests/golden/types-record-import/tokens/txt
2096+/* tre-576 %txt /tests/golden/types-record-import/tree/txt
2097+/* mod-576-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
2098+/* typ-576 %txt /tests/golden/types-record-import/types/txt
2099+/* mtre-576 %txt /tests/golden/types-record-import/module-trees/txt
2100+/* src-577 %jibb /tests/golden/types-record-local-scheme/source/jibb
2101+/* tok-577 %txt /tests/golden/types-record-local-scheme/tokens/txt
2102+/* tre-577 %txt /tests/golden/types-record-local-scheme/tree/txt
2103+/* typ-577 %txt /tests/golden/types-record-local-scheme/types/txt
2104+/* src-578 %jibb /tests/golden/types-record-nested/source/jibb
2105+/* tok-578 %txt /tests/golden/types-record-nested/tokens/txt
2106+/* tre-578 %txt /tests/golden/types-record-nested/tree/txt
2107+/* typ-578 %txt /tests/golden/types-record-nested/types/txt
2108+/* src-579 %jibb /tests/golden/types-record-to-tuple/source/jibb
2109+/* tok-579 %txt /tests/golden/types-record-to-tuple/tokens/txt
2110+/* tre-579 %txt /tests/golden/types-record-to-tuple/tree/txt
2111+/* typ-579 %txt /tests/golden/types-record-to-tuple/types/txt
2112+/* src-580 %jibb /tests/golden/types-recursion-scc-failures/source/jibb
2113+/* tok-580 %txt /tests/golden/types-recursion-scc-failures/tokens/txt
2114+/* tre-580 %txt /tests/golden/types-recursion-scc-failures/tree/txt
2115+/* typ-580 %txt /tests/golden/types-recursion-scc-failures/types/txt
2116+/* src-581 %jibb /tests/golden/types-recursion-scc-groups/source/jibb
2117+/* tok-581 %txt /tests/golden/types-recursion-scc-groups/tokens/txt
2118+/* tre-581 %txt /tests/golden/types-recursion-scc-groups/tree/txt
2119+/* typ-581 %txt /tests/golden/types-recursion-scc-groups/types/txt
2120+/* src-582 %jibb /tests/golden/types-recursion-scc-import/source/jibb
2121+/* tok-582 %txt /tests/golden/types-recursion-scc-import/tokens/txt
2122+/* tre-582 %txt /tests/golden/types-recursion-scc-import/tree/txt
2123+/* mod-582-1 %jibb /tests/golden/types-recursion-scc-import/modules/ui/lib/jibb
2124+/* typ-582 %txt /tests/golden/types-recursion-scc-import/types/txt
2125+/* mtre-582 %txt /tests/golden/types-recursion-scc-import/module-trees/txt
2126+/* src-583 %jibb /tests/golden/types-recursion-scc-import-bad/source/jibb
2127+/* tok-583 %txt /tests/golden/types-recursion-scc-import-bad/tokens/txt
2128+/* tre-583 %txt /tests/golden/types-recursion-scc-import-bad/tree/txt
2129+/* mod-583-1 %jibb /tests/golden/types-recursion-scc-import-bad/modules/ui/lib/jibb
2130+/* typ-583 %txt /tests/golden/types-recursion-scc-import-bad/types/txt
2131+/* mtre-583 %txt /tests/golden/types-recursion-scc-import-bad/module-trees/txt
2132+/* src-584 %jibb /tests/golden/types-recursion-scc-local/source/jibb
2133+/* tok-584 %txt /tests/golden/types-recursion-scc-local/tokens/txt
2134+/* tre-584 %txt /tests/golden/types-recursion-scc-local/tree/txt
2135+/* typ-584 %txt /tests/golden/types-recursion-scc-local/types/txt
2136+/* src-585 %jibb /tests/golden/types-recursion-scc-order/source/jibb
2137+/* tok-585 %txt /tests/golden/types-recursion-scc-order/tokens/txt
2138+/* tre-585 %txt /tests/golden/types-recursion-scc-order/tree/txt
2139+/* typ-585 %txt /tests/golden/types-recursion-scc-order/types/txt
2140+/* src-586 %jibb /tests/golden/types-recursion-scc-shadow/source/jibb
2141+/* tok-586 %txt /tests/golden/types-recursion-scc-shadow/tokens/txt
2142+/* tre-586 %txt /tests/golden/types-recursion-scc-shadow/tree/txt
2143+/* typ-586 %txt /tests/golden/types-recursion-scc-shadow/types/txt
2144+/* src-587 %jibb /tests/golden/types-recursive-branch/source/jibb
2145+/* tok-587 %txt /tests/golden/types-recursive-branch/tokens/txt
2146+/* tre-587 %txt /tests/golden/types-recursive-branch/tree/txt
2147+/* typ-587 %txt /tests/golden/types-recursive-branch/types/txt
2148+/* src-588 %jibb /tests/golden/types-recursive-gate/source/jibb
2149+/* tok-588 %txt /tests/golden/types-recursive-gate/tokens/txt
2150+/* tre-588 %txt /tests/golden/types-recursive-gate/tree/txt
2151+/* typ-588 %txt /tests/golden/types-recursive-gate/types/txt
2152+/* src-589 %jibb /tests/golden/types-recursive-sample/source/jibb
2153+/* tok-589 %txt /tests/golden/types-recursive-sample/tokens/txt
2154+/* tre-589 %txt /tests/golden/types-recursive-sample/tree/txt
2155+/* typ-589 %txt /tests/golden/types-recursive-sample/types/txt
2156+/* src-590 %jibb /tests/golden/types-scope-library-poke/source/jibb
2157+/* tok-590 %txt /tests/golden/types-scope-library-poke/tokens/txt
2158+/* tre-590 %txt /tests/golden/types-scope-library-poke/tree/txt
2159+/* typ-590 %txt /tests/golden/types-scope-library-poke/types/txt
2160+/* src-591 %jibb /tests/golden/types-scope-root-api/source/jibb
2161+/* tok-591 %txt /tests/golden/types-scope-root-api/tokens/txt
2162+/* tre-591 %txt /tests/golden/types-scope-root-api/tree/txt
2163+/* typ-591 %txt /tests/golden/types-scope-root-api/types/txt
2164+/* src-592 %jibb /tests/golden/types-scope-store-duplicate/source/jibb
2165+/* tok-592 %txt /tests/golden/types-scope-store-duplicate/tokens/txt
2166+/* tre-592 %txt /tests/golden/types-scope-store-duplicate/tree/txt
2167+/* typ-592 %txt /tests/golden/types-scope-store-duplicate/types/txt
2168+/* src-593 %jibb /tests/golden/types-scope-store-shadow/source/jibb
2169+/* tok-593 %txt /tests/golden/types-scope-store-shadow/tokens/txt
2170+/* tre-593 %txt /tests/golden/types-scope-store-shadow/tree/txt
2171+/* typ-593 %txt /tests/golden/types-scope-store-shadow/types/txt
2172+/* src-594 %jibb /tests/golden/types-single-case-pattern/source/jibb
2173+/* tok-594 %txt /tests/golden/types-single-case-pattern/tokens/txt
2174+/* tre-594 %txt /tests/golden/types-single-case-pattern/tree/txt
2175+/* typ-594 %txt /tests/golden/types-single-case-pattern/types/txt
2176+/* src-595 %jibb /tests/golden/types-string-interpolation/source/jibb
2177+/* tok-595 %txt /tests/golden/types-string-interpolation/tokens/txt
2178+/* tre-595 %txt /tests/golden/types-string-interpolation/tree/txt
2179+/* typ-595 %txt /tests/golden/types-string-interpolation/types/txt
2180+/* src-596 %jibb /tests/golden/types-tuple-context/source/jibb
2181+/* tok-596 %txt /tests/golden/types-tuple-context/tokens/txt
2182+/* tre-596 %txt /tests/golden/types-tuple-context/tree/txt
2183+/* typ-596 %txt /tests/golden/types-tuple-context/types/txt
2184+/* src-597 %jibb /tests/golden/types-tuple-context-nested/source/jibb
2185+/* tok-597 %txt /tests/golden/types-tuple-context-nested/tokens/txt
2186+/* tre-597 %txt /tests/golden/types-tuple-context-nested/tree/txt
2187+/* typ-597 %txt /tests/golden/types-tuple-context-nested/types/txt
2188+/* src-598 %jibb /tests/golden/types-union-alias/source/jibb
2189+/* tok-598 %txt /tests/golden/types-union-alias/tokens/txt
2190+/* tre-598 %txt /tests/golden/types-union-alias/tree/txt
2191+/* typ-598 %txt /tests/golden/types-union-alias/types/txt
2192+/* src-599 %jibb /tests/golden/types-union-branch-context/source/jibb
2193+/* tok-599 %txt /tests/golden/types-union-branch-context/tokens/txt
2194+/* tre-599 %txt /tests/golden/types-union-branch-context/tree/txt
2195+/* typ-599 %txt /tests/golden/types-union-branch-context/types/txt
2196+/* src-600 %jibb /tests/golden/types-union-branch-pending/source/jibb
2197+/* tok-600 %txt /tests/golden/types-union-branch-pending/tokens/txt
2198+/* tre-600 %txt /tests/golden/types-union-branch-pending/tree/txt
2199+/* typ-600 %txt /tests/golden/types-union-branch-pending/types/txt
2200+/* src-601 %jibb /tests/golden/types-union-constructor-shape/source/jibb
2201+/* tok-601 %txt /tests/golden/types-union-constructor-shape/tokens/txt
2202+/* tre-601 %txt /tests/golden/types-union-constructor-shape/tree/txt
2203+/* typ-601 %txt /tests/golden/types-union-constructor-shape/types/txt
2204+/* src-602 %jibb /tests/golden/types-union-context-flow/source/jibb
2205+/* tok-602 %txt /tests/golden/types-union-context-flow/tokens/txt
2206+/* tre-602 %txt /tests/golden/types-union-context-flow/tree/txt
2207+/* typ-602 %txt /tests/golden/types-union-context-flow/types/txt
2208+/* src-603 %jibb /tests/golden/types-union-finite/source/jibb
2209+/* tok-603 %txt /tests/golden/types-union-finite/tokens/txt
2210+/* tre-603 %txt /tests/golden/types-union-finite/tree/txt
2211+/* typ-603 %txt /tests/golden/types-union-finite/types/txt
2212+/* src-604 %jibb /tests/golden/types-union-finite-context/source/jibb
2213+/* tok-604 %txt /tests/golden/types-union-finite-context/tokens/txt
2214+/* tre-604 %txt /tests/golden/types-union-finite-context/tree/txt
2215+/* typ-604 %txt /tests/golden/types-union-finite-context/types/txt
2216+/* src-605 %jibb /tests/golden/types-union-finite-generic/source/jibb
2217+/* tok-605 %txt /tests/golden/types-union-finite-generic/tokens/txt
2218+/* tre-605 %txt /tests/golden/types-union-finite-generic/tree/txt
2219+/* typ-605 %txt /tests/golden/types-union-finite-generic/types/txt
2220+/* src-606 %jibb /tests/golden/types-union-finite-limit/source/jibb
2221+/* tok-606 %txt /tests/golden/types-union-finite-limit/tokens/txt
2222+/* tre-606 %txt /tests/golden/types-union-finite-limit/tree/txt
2223+/* typ-606 %txt /tests/golden/types-union-finite-limit/types/txt
2224+/* src-607 %jibb /tests/golden/types-union-import/source/jibb
2225+/* tok-607 %txt /tests/golden/types-union-import/tokens/txt
2226+/* tre-607 %txt /tests/golden/types-union-import/tree/txt
2227+/* mod-607-1 %jibb /tests/golden/types-union-import/modules/ui/lib/jibb
2228+/* typ-607 %txt /tests/golden/types-union-import/types/txt
2229+/* mtre-607 %txt /tests/golden/types-union-import/module-trees/txt
2230+/* src-608 %jibb /tests/golden/types-union-local-pending/source/jibb
2231+/* tok-608 %txt /tests/golden/types-union-local-pending/tokens/txt
2232+/* tre-608 %txt /tests/golden/types-union-local-pending/tree/txt
2233+/* typ-608 %txt /tests/golden/types-union-local-pending/types/txt
2234+/* src-609 %jibb /tests/golden/types-union-nonwing-subject/source/jibb
2235+/* tok-609 %txt /tests/golden/types-union-nonwing-subject/tokens/txt
2236+/* tre-609 %txt /tests/golden/types-union-nonwing-subject/tree/txt
2237+/* typ-609 %txt /tests/golden/types-union-nonwing-subject/types/txt
2238+/* src-610 %jibb /tests/golden/types-union-overlap/source/jibb
2239+/* tok-610 %txt /tests/golden/types-union-overlap/tokens/txt
2240+/* tre-610 %txt /tests/golden/types-union-overlap/tree/txt
2241+/* typ-610 %txt /tests/golden/types-union-overlap/types/txt
2242+/* src-611 %jibb /tests/golden/types-union-overlap-nested/source/jibb
2243+/* tok-611 %txt /tests/golden/types-union-overlap-nested/tokens/txt
2244+/* tre-611 %txt /tests/golden/types-union-overlap-nested/tree/txt
2245+/* typ-611 %txt /tests/golden/types-union-overlap-nested/types/txt
2246+/* src-612 %jibb /tests/golden/types-union-pattern-result-context/source/jibb
2247+/* tok-612 %txt /tests/golden/types-union-pattern-result-context/tokens/txt
2248+/* tre-612 %txt /tests/golden/types-union-pattern-result-context/tree/txt
2249+/* typ-612 %txt /tests/golden/types-union-pattern-result-context/types/txt
2250+/* src-613 %jibb /tests/golden/types-union-pattern-result-controls/source/jibb
2251+/* tok-613 %txt /tests/golden/types-union-pattern-result-controls/tokens/txt
2252+/* tre-613 %txt /tests/golden/types-union-pattern-result-controls/tree/txt
2253+/* typ-613 %txt /tests/golden/types-union-pattern-result-controls/types/txt
2254+/* src-614 %jibb /tests/golden/types-union-patterns/source/jibb
2255+/* tok-614 %txt /tests/golden/types-union-patterns/tokens/txt
2256+/* tre-614 %txt /tests/golden/types-union-patterns/tree/txt
2257+/* typ-614 %txt /tests/golden/types-union-patterns/types/txt
2258+/* src-615 %jibb /tests/golden/types-union-patterns-generic/source/jibb
2259+/* tok-615 %txt /tests/golden/types-union-patterns-generic/tokens/txt
2260+/* tre-615 %txt /tests/golden/types-union-patterns-generic/tree/txt
2261+/* typ-615 %txt /tests/golden/types-union-patterns-generic/types/txt
2262+/* src-616 %jibb /tests/golden/types-union-patterns-import/source/jibb
2263+/* tok-616 %txt /tests/golden/types-union-patterns-import/tokens/txt
2264+/* tre-616 %txt /tests/golden/types-union-patterns-import/tree/txt
2265+/* mod-616-1 %jibb /tests/golden/types-union-patterns-import/modules/ui/lib/jibb
2266+/* typ-616 %txt /tests/golden/types-union-patterns-import/types/txt
2267+/* mtre-616 %txt /tests/golden/types-union-patterns-import/module-trees/txt
2268+/* src-617 %jibb /tests/golden/types-union-phantom-generic/source/jibb
2269+/* tok-617 %txt /tests/golden/types-union-phantom-generic/tokens/txt
2270+/* tre-617 %txt /tests/golden/types-union-phantom-generic/tree/txt
2271+/* typ-617 %txt /tests/golden/types-union-phantom-generic/types/txt
2272+/* src-618 %jibb /tests/golden/types-union-polymorphic-identity/source/jibb
2273+/* tok-618 %txt /tests/golden/types-union-polymorphic-identity/tokens/txt
2274+/* tre-618 %txt /tests/golden/types-union-polymorphic-identity/tree/txt
2275+/* mod-618-1 %jibb /tests/golden/types-union-polymorphic-identity/modules/ui/one/jibb
2276+/* mod-618-2 %jibb /tests/golden/types-union-polymorphic-identity/modules/ui/two/jibb
2277+/* typ-618 %txt /tests/golden/types-union-polymorphic-identity/types/txt
2278+/* mtre-618 %txt /tests/golden/types-union-polymorphic-identity/module-trees/txt
2279+/* src-619 %jibb /tests/golden/types-union-print-cross-namespace/source/jibb
2280+/* tok-619 %txt /tests/golden/types-union-print-cross-namespace/tokens/txt
2281+/* tre-619 %txt /tests/golden/types-union-print-cross-namespace/tree/txt
2282+/* mod-619-1 %jibb /tests/golden/types-union-print-cross-namespace/modules/ui/lib/jibb
2283+/* typ-619 %txt /tests/golden/types-union-print-cross-namespace/types/txt
2284+/* mtre-619 %txt /tests/golden/types-union-print-cross-namespace/module-trees/txt
2285+/* src-620 %jibb /tests/golden/types-union-print-distinct/source/jibb
2286+/* tok-620 %txt /tests/golden/types-union-print-distinct/tokens/txt
2287+/* tre-620 %txt /tests/golden/types-union-print-distinct/tree/txt
2288+/* mod-620-1 %jibb /tests/golden/types-union-print-distinct/modules/ui/left/jibb
2289+/* mod-620-2 %jibb /tests/golden/types-union-print-distinct/modules/ui/right/jibb
2290+/* mod-620-3 %jibb /tests/golden/types-union-print-distinct/modules/ui/twin/jibb
2291+/* typ-620 %txt /tests/golden/types-union-print-distinct/types/txt
2292+/* mtre-620 %txt /tests/golden/types-union-print-distinct/module-trees/txt
2293+/* src-621 %jibb /tests/golden/types-union-print-escape/source/jibb
2294+/* tok-621 %txt /tests/golden/types-union-print-escape/tokens/txt
2295+/* tre-621 %txt /tests/golden/types-union-print-escape/tree/txt
2296+/* typ-621 %txt /tests/golden/types-union-print-escape/types/txt
2297+/* src-622 %jibb /tests/golden/types-union-print-local/source/jibb
2298+/* tok-622 %txt /tests/golden/types-union-print-local/tokens/txt
2299+/* tre-622 %txt /tests/golden/types-union-print-local/tree/txt
2300+/* typ-622 %txt /tests/golden/types-union-print-local/types/txt
2301+/* src-623 %jibb /tests/golden/types-union-print-nested/source/jibb
2302+/* tok-623 %txt /tests/golden/types-union-print-nested/tokens/txt
2303+/* tre-623 %txt /tests/golden/types-union-print-nested/tree/txt
2304+/* typ-623 %txt /tests/golden/types-union-print-nested/types/txt
2305+/* src-624 %jibb /tests/golden/types-union-print-same-origin/source/jibb
2306+/* tok-624 %txt /tests/golden/types-union-print-same-origin/tokens/txt
2307+/* tre-624 %txt /tests/golden/types-union-print-same-origin/tree/txt
2308+/* mod-624-1 %jibb /tests/golden/types-union-print-same-origin/modules/ui/shared/jibb
2309+/* typ-624 %txt /tests/golden/types-union-print-same-origin/types/txt
2310+/* mtre-624 %txt /tests/golden/types-union-print-same-origin/module-trees/txt
2311+/* src-625 %jibb /tests/golden/types-union-print-transitive/source/jibb
2312+/* tok-625 %txt /tests/golden/types-union-print-transitive/tokens/txt
2313+/* tre-625 %txt /tests/golden/types-union-print-transitive/tree/txt
2314+/* mod-625-1 %jibb /tests/golden/types-union-print-transitive/modules/ui/mid/jibb
2315+/* mod-625-2 %jibb /tests/golden/types-union-print-transitive/modules/ui/base/jibb
2316+/* typ-625 %txt /tests/golden/types-union-print-transitive/types/txt
2317+/* mtre-625 %txt /tests/golden/types-union-print-transitive/module-trees/txt
2318+/* src-626 %jibb /tests/golden/types-union-singleton/source/jibb
2319+/* tok-626 %txt /tests/golden/types-union-singleton/tokens/txt
2320+/* tre-626 %txt /tests/golden/types-union-singleton/tree/txt
2321+/* typ-626 %txt /tests/golden/types-union-singleton/types/txt
2322+/* src-627 %jibb /tests/golden/types-union-tag-atoms/source/jibb
2323+/* tok-627 %txt /tests/golden/types-union-tag-atoms/tokens/txt
2324+/* tre-627 %txt /tests/golden/types-union-tag-atoms/tree/txt
2325+/* typ-627 %txt /tests/golden/types-union-tag-atoms/types/txt
2326+/* src-628 %jibb /tests/golden/types-union-tags/source/jibb
2327+/* tok-628 %txt /tests/golden/types-union-tags/tokens/txt
2328+/* tre-628 %txt /tests/golden/types-union-tags/tree/txt
2329+/* typ-628 %txt /tests/golden/types-union-tags/types/txt
2330+/* src-629 %jibb /tests/golden/types-union-unresolved/source/jibb
2331+/* tok-629 %txt /tests/golden/types-union-unresolved/tokens/txt
2332+/* tre-629 %txt /tests/golden/types-union-unresolved/tree/txt
2333+/* typ-629 %txt /tests/golden/types-union-unresolved/types/txt
2334+/* src-630 %jibb /tests/golden/types-union-unresolved-flow/source/jibb
2335+/* tok-630 %txt /tests/golden/types-union-unresolved-flow/tokens/txt
2336+/* tre-630 %txt /tests/golden/types-union-unresolved-flow/tree/txt
2337+/* typ-630 %txt /tests/golden/types-union-unresolved-flow/types/txt
2338+/* src-631 %jibb /tests/golden/types-unit-construction/source/jibb
2339+/* tok-631 %txt /tests/golden/types-unit-construction/tokens/txt
2340+/* tre-631 %txt /tests/golden/types-unit-construction/tree/txt
2341+/* typ-631 %txt /tests/golden/types-unit-construction/types/txt
2342+/* src-632 %jibb /tests/golden/types-unit-context/source/jibb
2343+/* tok-632 %txt /tests/golden/types-unit-context/tokens/txt
2344+/* tre-632 %txt /tests/golden/types-unit-context/tree/txt
2345+/* typ-632 %txt /tests/golden/types-unit-context/types/txt
2346+/* src-633 %jibb /tests/golden/types-unit-patterns/source/jibb
2347+/* tok-633 %txt /tests/golden/types-unit-patterns/tokens/txt
2348+/* tre-633 %txt /tests/golden/types-unit-patterns/tree/txt
2349+/* typ-633 %txt /tests/golden/types-unit-patterns/types/txt
2350+/* src-634 %jibb /tests/golden/types-value-cycle-shadow/source/jibb
2351+/* tok-634 %txt /tests/golden/types-value-cycle-shadow/tokens/txt
2352+/* tre-634 %txt /tests/golden/types-value-cycle-shadow/tree/txt
2353+/* typ-634 %txt /tests/golden/types-value-cycle-shadow/types/txt
2354+/* src-635 %jibb /tests/golden/types-value-cycle-unsupported/source/jibb
2355+/* tok-635 %txt /tests/golden/types-value-cycle-unsupported/tokens/txt
2356+/* tre-635 %txt /tests/golden/types-value-cycle-unsupported/tree/txt
2357+/* typ-635 %txt /tests/golden/types-value-cycle-unsupported/types/txt
2358+/* src-636 %jibb /tests/golden/types-value-cycles/source/jibb
2359+/* tok-636 %txt /tests/golden/types-value-cycles/tokens/txt
2360+/* tre-636 %txt /tests/golden/types-value-cycles/tree/txt
2361+/* typ-636 %txt /tests/golden/types-value-cycles/types/txt
23542362=/ prepared-prelude (prepare-prelude-with-internal:jibb prelude-source internal-source)
23552363|%
23562364:: one arm per case
@@ -3399,230 +3407,234 @@
33993407 (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))
34003408++ test-types-partial-unresolved-tag
34013409 (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))
34023412++ 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 ~ ~ ~))
34043414++ 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 ~ ~ ~))
34063416++ 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 ~ ~ ~))
34083418++ 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 ~ ~ ~))
34103420++ 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 ~ ~ ~))
34123422++ 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]]))
34143424++ 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 ~ ~ ~))
34163428++ 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 ~ ~ ~))
34183430++ 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]]))
34203432++ 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 ~ ~ ~))
34223434++ 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 ~ ~ ~))
34243436++ 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 ~ ~ ~))
34263438++ 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 ~ ~ ~))
34283440++ 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 ~ ~ ~))
34303442++ 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]]))
34323444++ 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]]))
34343446++ 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 ~ ~ ~))
34363448++ 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 ~ ~ ~))
34383450++ 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 ~ ~ ~))
34403452++ 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 ~ ~ ~))
34423454++ 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 ~ ~ ~))
34443456++ 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 ~ ~ ~))
34463458++ 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 ~ ~ ~))
34483460++ 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 ~ ~ ~))
34503462++ 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 ~ ~ ~))
34523464++ 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 ~ ~ ~))
34543466++ 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 ~ ~ ~))
34563468++ 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 ~ ~ ~))
34583470++ 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 ~ ~ ~))
34603472++ 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 ~ ~ ~))
34623474++ 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 ~ ~ ~))
34643476++ 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 ~ ~ ~))
34663478++ 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 ~ ~ ~))
34683480++ 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 ~ ~ ~))
34703482++ 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]]))
34723484++ 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 ~ ~ ~))
34743486++ 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))
34763488++ 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 ~ ~ ~))
34783490++ 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 ~ ~ ~))
34803492++ 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 ~ ~ ~))
34823494++ 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))
34843496++ 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))
34863498++ 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))
34883500++ 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))
34903502++ 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]]))
34923504++ 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]]))
34943506++ 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))
34963508++ 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))
34983510++ 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))
35003512++ 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))
35023514++ 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))
35043516++ 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]]))
35063518++ 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))
35083520++ 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))
35103522++ 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))
35123524++ 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 ~ ~ ~))
35143526++ 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 ~ ~ ~))
35163528++ 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]]))
35183530++ 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]]))
35203532++ 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 ~ ~ ~))
35223534++ 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 ~ ~ ~))
35243536++ 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 ~ ~ ~))
35263538++ 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 ~ ~ ~))
35283540++ 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))
35303542++ 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))
35323544++ 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 ~ ~ ~))
35343546++ 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 ~ ~ ~))
35363548++ 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 ~ ~ ~))
35383550++ 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 ~ ~ ~))
35403552++ 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 ~ ~ ~))
35423554++ 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 ~ ~ ~))
35443556++ 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 ~ ~ ~))
35463558++ 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 ~ ~ ~))
35483560++ 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))
35503562++ 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))
35523564++ 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))
35543566++ 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))
35563568++ 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))
35583570++ 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 ~ ~ ~))
35603572++ 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 ~ ~ ~))
35623574++ 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 ~ ~ ~))
35643576++ 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 ~ ~ ~))
35663578++ 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]]))
35683580++ 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))
35703582++ 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 ~ ~ ~))
35723584++ 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))
35743586++ 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))
35763588++ 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 ~ ~ ~))
35783590++ 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 ~ ~ ~))
35803592++ 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 ~ ~ ~))
35823594++ 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 ~ ~ ~))
35843596++ 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]]))
35863598++ 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))
35883600++ 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]]))
35903602++ 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]]))
35923604++ 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]]))
35943606++ 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))
35963608++ 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))
35983610++ 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))
36003612++ 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]]))
36023614++ 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]]))
36043616++ 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))
36063618++ 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))
36083620++ 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))
36103622++ 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))
36123624++ 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))
36143626++ 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 ~ ~ ~))
36163628++ 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 ~ ~ ~))
36183630++ 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))
36203632++ 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 ~ ~ ~))
36223634++ 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 ~ ~ ~))
36243636++ 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 ~ ~ ~))
36263638::
36273639:: +check: run golden:jibb on a case and compare both outputs
36283640::
tools/testdata/ship-selftest+1
@@ -305,6 +305,7 @@ def generator_checks(tmp):
305305 {'tests/lib/jibb.hoon', 'tests/lib/jibb-import.hoon',
306306 'tests/lib/jibb-typecheck.hoon', 'tests/lib/jibb-bridge.hoon',
307307 'tests/lib/jibb-arithmetic-guards.hoon',
308+ 'tests/lib/jibb-positional-face-guards.hoon',
308309 'tests/lib/jibb-generic-alias.hoon'}
309310 <= normal_tests, sorted(normal_tests))
310311 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')