on master help sign in
Infer whole-case union patterns and prelude turn
9f1517eiko
docs/compiler.md+4−2
@@ -64,10 +64,12 @@ For supported closed unions, the type printer keeps the union’s origin separat
64
64
65Multi-argument calls form one right-nested sample: `f a b c` supplies `[a [b c]]`, with the last argument able to be a cell itself. The fragment fits the complete sample, preserving known faces and shared variables. Known sample positions can provide list or union context to arguments; unknown sample shapes use ordinary inference and some contextual forms remain unsupported. For a definite mismatch, the diagnostic points to a specific argument when it can establish which one failed; otherwise it reports the combined sample.
65Multi-argument calls form one right-nested sample: `f a b c` supplies `[a [b c]]`, with the last argument able to be a cell itself. The fragment fits the complete sample, preserving known faces and shared variables. Known sample positions can provide list or union context to arguments; unknown sample shapes use ordinary inference and some contextual forms remain unsupported. For a definite mismatch, the diagnostic points to a specific argument when it can establish which one failed; otherwise it reports the combined sample.
66
66
67−A list literal can be inferred when a cast or known gate sample supplies a list type and the supplied prelude has the validated standard list definition. Empty, nonempty and nested literals work, including contextual union tags in elements; mismatched elements report the item and expected type. Imported Hoon lists share this representation. Under the same known context, `~` and zero-valued term literals fit an empty list, and a two-item unfaced cell `[head tail]` is a cons; cons cells and list literals can be nested. Mismatched heads or tails report both sites. A known list result also supplies context through complete loobean, unit-shaped and list-shaped branches, including recursive and nested branches. Faced or longer cells, uncontextualized construction, and a missing or altered prelude list remain unsupported. For a known standard list with a supported element type, it also infers a complete two-arm branch using `~` and `[item rest]`, in either order. The binders have the element and list types and cannot shadow or duplicate names. Unknown subjects, unsupported element types, other patterns and incomplete arms remain unsupported.
67+A list literal can be inferred when a cast or known gate sample supplies a list type and the supplied prelude has the validated standard list definition. Empty, nonempty and nested literals work, including contextual union tags in elements; mismatched elements report the item and expected type. Imported Hoon lists share this representation. Under the same known context, `~` and zero-valued term literals fit an empty list, and a two-item unfaced cell `[head tail]` is a cons; cons cells and list literals can be nested. Mismatched heads or tails report both sites. A known list result also supplies context through complete loobean, unit-shaped and list-shaped branches, including recursive and nested branches. A zero nested inside a single tuple argument where a list is expected also remains unsupported, rather than a definite mismatch; separate call arguments can receive list context. Faced or longer cells, uncontextualized construction, and a missing or altered prelude list remain unsupported. For a known standard list with a supported element type, it also infers a complete two-arm branch using `~` and `[item rest]`, in either order. The binders have the element and list types and cannot shadow or duplicate names. Unknown subjects, unsupported element types, other patterns and incomplete arms remain unsupported.
68
68
69A known union of `~` and a null-headed cell can be matched by `~` and `[~ value]` arms in either order. The payload binder is checked for shadowing. Unknown subjects, missing or duplicate arms, and unresolved branch results remain unsupported; this fragment infers the prelude’s `fall` and `need` signatures.
69A known union of `~` and a null-headed cell can be matched by `~` and `[~ value]` arms in either order. The payload binder is checked for shadowing. Unknown subjects, missing or duplicate arms, and unresolved branch results remain unsupported; this fragment infers the prelude’s `fall` and `need` signatures.
70
70
71+A known closed union with two or more arms can be matched when each arm provably covers or excludes each remaining case in full. The checker binds payloads for an arm matching one case, accepts a binder-free catch-all, and reports missing cases and arms already covered. It checks tags by noun value, including loobean and null spellings, and supports imported and generic union cases. A pattern that might cover only part of a case, a binder spanning multiple cases, differing arm result types and some complex two-arm subjects remain unsupported; contextual union-pattern branches also remain unsupported. The Grammar’s `step` block infers in this fragment, but its module is not yet checked.
72+
71A known closed union can also provide context to each arm of a complete loobean or unit-shaped branch in a cast or a call with a known union sample. Nested branches and transparent groups work; a mismatch reports the expected union and the offending arm. General patterns and context through bodies with local definitions remain unsupported, and unrelated unresolved tags stay pending.
73A known closed union can also provide context to each arm of a complete loobean or unit-shaped branch in a cast or a call with a known union sample. Nested branches and transparent groups work; a mismatch reports the expected union and the offending arm. General patterns and context through bodies with local definitions remain unsupported, and unrelated unresolved tags stay pending.
72
74
73The separate `jibb-dev/lib/jibb-import.hoon` is an unfinished reader for selected Hoon type graphs. It handles named recursion, nested map, set, queue, list, unit, jar and jug arguments, direct ordered maps, and direct `$^` unions whose source branches can be proved disjoint. It also reads ordered map fields in records when the map arguments are syntactically fixed atom molds and other fields are fixed atom molds or standard collections of static atom molds. Collection names must not be shadowed. The reader can also import a mark door sample, removing its outer sample face and validating its build subject. The reader checks explicit Hoon `$%`, `$?` and `$^` unions against the Grammar’s disjointness rule, as @iko confirmed on 2026-10-30. It re-evaluates statically recognizable source branches before Hoon can collapse them, checks materialized fork cases, and rejects shapes it cannot prove disjoint. Static records may also have verified standard-collection and `path` siblings. One direct explicit union argument in a standard list, set, map or unit is accepted when its call wrapper and collection provenance are verified and its static cases are pairwise disjoint. A synthetic regression checks that forged wrapper subjects, samples and tails are rejected. Other collection-union forms, nested ordered maps, general source-level disjointness and complete integration with the checker remain unfinished. `+golden-types-imports` can consume fixed-aura atoms, valid term singletons, nested faced or unfaced cells, unions of supported, pairwise-disjoint cases, and opaque standard collections with supported arguments from caller-supplied reader results for declared `/-` imports; `+golden-types-with-marks` accepts the same shapes for declared marks. The caller must pass unchanged results from the source-aware reader: the bridge validates the supplied graph but cannot detect source cases Hoon collapsed before that graph was built. The opaque collection types retain their names and arguments for identity, unification and printing. The validated standard prelude `list` mold shares the imported list representation; other Jibb-written collection molds and most prelude collection operations remain unsupported. Other forms remain unsupported. Its disjointness proof is conservative and can reject a valid union it cannot prove disjoint. Collection recognition requires the originating `/sur` core. The reader validates direct zuse subjects and Ford subjects consisting of faced imported cores and a validated tail, checking imported cores transitively; it rejects shadowed names, inconsistent core subjects and other subject shapes. For a recursive reference, the reader matches the exact Hoon hold against named arms in validated cores, including transitive Ford imports; it rejects missing, unlabelled or ambiguous origins. Its fixtures include three real Tlon files; `tools/importer-test` compares the internal projection under eval, and the ship test compares the same golden output. `tools/type-import-test` and `tools/type-mark-test` compare bridge reports under eval and on the ship. `tools/clay-fixtures` also passes Clay-built `/sur` molds and mark samples through the Clay-built importer and partial checker.
75The separate `jibb-dev/lib/jibb-import.hoon` is an unfinished reader for selected Hoon type graphs. It handles named recursion, nested map, set, queue, list, unit, jar and jug arguments, direct ordered maps, and direct `$^` unions whose source branches can be proved disjoint. It also reads ordered map fields in records when the map arguments are syntactically fixed atom molds and other fields are fixed atom molds or standard collections of static atom molds. Collection names must not be shadowed. The reader can also import a mark door sample, removing its outer sample face and validating its build subject. The reader checks explicit Hoon `$%`, `$?` and `$^` unions against the Grammar’s disjointness rule, as @iko confirmed on 2026-10-30. It re-evaluates statically recognizable source branches before Hoon can collapse them, checks materialized fork cases, and rejects shapes it cannot prove disjoint. Static records may also have verified standard-collection and `path` siblings. One direct explicit union argument in a standard list, set, map or unit is accepted when its call wrapper and collection provenance are verified and its static cases are pairwise disjoint. A synthetic regression checks that forged wrapper subjects, samples and tails are rejected. Other collection-union forms, nested ordered maps, general source-level disjointness and complete integration with the checker remain unfinished. `+golden-types-imports` can consume fixed-aura atoms, valid term singletons, nested faced or unfaced cells, unions of supported, pairwise-disjoint cases, and opaque standard collections with supported arguments from caller-supplied reader results for declared `/-` imports; `+golden-types-with-marks` accepts the same shapes for declared marks. The caller must pass unchanged results from the source-aware reader: the bridge validates the supplied graph but cannot detect source cases Hoon collapsed before that graph was built. The opaque collection types retain their names and arguments for identity, unification and printing. The validated standard prelude `list` mold shares the imported list representation; other Jibb-written collection molds and most prelude collection operations remain unsupported. Other forms remain unsupported. Its disjointness proof is conservative and can reject a valid union it cannot prove disjoint. Collection recognition requires the originating `/sur` core. The reader validates direct zuse subjects and Ford subjects consisting of faced imported cores and a validated tail, checking imported cores transitively; it rejects shadowed names, inconsistent core subjects and other subject shapes. For a recursive reference, the reader matches the exact Hoon hold against named arms in validated cores, including transitive Ford imports; it rejects missing, unlabelled or ambiguous origins. Its fixtures include three real Tlon files; `tools/importer-test` compares the internal projection under eval, and the ship test compares the same golden output. `tools/type-import-test` and `tools/type-mark-test` compare bridge reports under eval and on the ship. `tools/clay-fixtures` also passes Clay-built `/sur` molds and mark samples through the Clay-built importer and partial checker.
@@ -78,7 +80,7 @@ Callers that have a `/sur` core and a name can use `+read-named`: it checks for
78
80
79`+golden-types-with-prelude` accepts case-local Jibb module sources alongside `/sur` and mark results and the vendored prelude source. It resolves reachable ordinary library modules in dependency order, caching completed interfaces per invocation and exporting supported closed value schemes, direct generic unions, and simple or nonrecursive generic mold aliases whose bodies the fragment supports. It detects missing sources and cycles and rejects a dependency if its interface cannot be inferred by the fragment.
81`+golden-types-with-prelude` accepts case-local Jibb module sources alongside `/sur` and mark results and the vendored prelude source. It resolves reachable ordinary library modules in dependency order, caching completed interfaces per invocation and exporting supported closed value schemes, direct generic unions, and simple or nonrecursive generic mold aliases whose bodies the fragment supports. It detects missing sources and cycles and rejects a dependency if its interface cannot be inferred by the fragment.
80
82
81−The supplied prelude is parsed into a **partial interface**: all names actually declared in the source are reserved, while only the molds and values this fragment can infer are available. These include the validated standard `list` mold, `unit`, `same`, `fall`, `need`, `lure`, `weld` and `snoc`; unsupported entries, such as most list helpers, remain unavailable. The validated `list` is injected while the prelude’s gates are inferred; `weld` uses an ordinary explicit result cast. An absent or altered `list` is not injected, and an altered declaration cannot leak through a direct or transitive mold alias. List-dependent prelude mold aliases remain unsupported because their templates are prepared before this injection. A named prelude union keeps the fixed `/lib/jibb/prelude/jibb` origin in every module, and its name remains unqualified when a library exports a type containing it. The prelude inventory is incomplete, so reserving the names in this source does not establish complete shadowing coverage. Prelude imports, including the planned private internal module, are not supported by preparation. The shared module-scope fixture compares the prepared and source-taking paths against the real prelude and a two-module golden under eval and on the ship.
83+The supplied prelude is parsed into a **partial interface**: all names actually declared in the source are reserved, while only the molds and values this fragment can infer are available. These include the validated standard `list` mold, `unit`, `same`, `fall`, `need`, `lure`, `weld`, `snoc` and `turn`; unsupported entries, such as most list helpers, remain unavailable. The validated `list` is injected while the prelude’s gates are inferred; `weld` and `turn` use ordinary explicit result casts. An absent or altered `list` is not injected, and an altered declaration cannot leak through a direct or transitive mold alias. List-dependent prelude mold aliases remain unsupported because their templates are prepared before this injection. A named prelude union keeps the fixed `/lib/jibb/prelude/jibb` origin in every module, and its name remains unqualified when a library exports a type containing it. The prelude inventory is incomplete, so reserving the names in this source does not establish complete shadowing coverage. Prelude imports, including the planned private internal module, are not supported by preparation. The shared module-scope fixture compares the prepared and source-taking paths against the real prelude and a two-module golden under eval and on the ship.
82
84
83`+prepare-prelude` derives the interface and declared-name inventory from the trusted vendored source. Hosts can reuse its result with `+golden-types-with-prepared-prelude`; they must pass the unchanged result of preparation, not an independently constructed value. Empty, malformed, duplicate-name or import-bearing prelude sources fail closed. `+golden-types-with-prelude` remains the source-taking wrapper. API files, modules with `main`, unsupported definitions and many other features remain outside this subset. The older `+golden-types-with-modules` entry point fails closed for imports because it has no prelude scope. None of these partial reports claims the module has been checked.
85`+prepare-prelude` derives the interface and declared-name inventory from the trusted vendored source. Hosts can reuse its result with `+golden-types-with-prepared-prelude`; they must pass the unchanged result of preparation, not an independently constructed value. Empty, malformed, duplicate-name or import-bearing prelude sources fail closed. `+golden-types-with-prelude` remains the source-taking wrapper. API files, modules with `main`, unsupported definitions and many other features remain outside this subset. The older `+golden-types-with-modules` entry point fails closed for imports because it has no prelude scope. None of these partial reports claims the module has been checked.
84
86
docs/prelude-inventory.md+1−1
@@ -43,7 +43,7 @@ The following is an audit of the Hoon 135 bodies, not a completed Jibb interface
43
43
44`snoc`, `lure`, `fand`, `find`, `flop`, `gulf`, `homo`, `join`, `bake`, `lent`, `levy`, `lien`, `limo`, `murn`, `oust`, `reap`, `rear`, `reel`, `roll`, `scag`, `skid`, `skim`, `skip`, `slag`, `snag`, `snip`, `sort`, `spin`, `spun`, `swag`, `turn`, `weld`, `snap`, `into`, `welp`, `zing`.
44`snoc`, `lure`, `fand`, `find`, `flop`, `gulf`, `homo`, `join`, `bake`, `lent`, `levy`, `lien`, `limo`, `murn`, `oust`, `reap`, `rear`, `reel`, `roll`, `scag`, `skid`, `skim`, `skip`, `slag`, `snag`, `snip`, `sort`, `spin`, `spun`, `swag`, `turn`, `weld`, `snap`, `into`, `welp`, `zing`.
45
45
46−The current prelude writes `snoc`, `lure`, `flop`, `join`, `levy`, `lien`, `murn`, `rear`, `reel`, `roll`, `skim`, `skip`, `snip`, `turn` and `weld`. `murn` keeps the present products of its gate in order; `join` inserts a separator between items; `snip` drops the last item, and `rear` returns it or crashes on an empty list. The folds take an explicit initial value as the Prelude table specifies. The partial checker infers `snoc`, `lure` and `weld` using the validated prelude `list` mold; most other list helpers remain unsupported by that fragment. Backend validation remains outstanding for all of them.
46+The current prelude writes `snoc`, `lure`, `flop`, `join`, `levy`, `lien`, `murn`, `rear`, `reel`, `roll`, `skim`, `skip`, `snip`, `turn` and `weld`. `murn` keeps the present products of its gate in order; `join` inserts a separator between items; `snip` drops the last item, and `rear` returns it or crashes on an empty list. The folds take an explicit initial value as the Prelude table specifies. The partial checker infers `snoc`, `lure`, `weld` and `turn` using the validated prelude `list` mold; most other list helpers remain unsupported by that fragment. Backend validation remains outstanding for all of them.
47
47
48## 2c
48## 2c
49
49
docs/status.md+9−7
@@ -19,9 +19,9 @@ On 2026-10-30, @iko decided that Jibb drops `$?`, so a `+$` takes a union's case
19
19
20## Milestone 2: in progress
20## Milestone 2: in progress
21
21
22−The repository spec records the subsequent type-system and prelude decisions; those changes also need synchronization to the Claude document. An initial inference fragment and a standalone Hoon type reader are being tested. The fragment explicitly reports that it does not check a module; partial bridges pass selected Hoon atoms, term singletons, 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 cross as opaque module-and-name identities; aliases, foreign references, recursive marks, unfolding and construction remain unsupported. The reader handles mark samples, recursive molds whose origins can be verified through Ford imports, nested collections, direct ordered maps, 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. 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, and detects missing sources and cycles. It does not yet check API or kind semantics, and 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. 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. Local mutual groups, polymorphic recursion, value cycles, 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. 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. 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. 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. Uncontextualized list construction, 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; mutually recursive local groups and 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.
22+The repository spec records the subsequent type-system and prelude decisions; those changes also need synchronization to the Claude document. An initial inference fragment and a standalone Hoon type reader are being tested. The fragment explicitly reports that it does not check a module; partial bridges pass selected Hoon atoms, term singletons, 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 cross as opaque module-and-name identities; aliases, foreign references, recursive marks, unfolding and construction remain unsupported. The reader handles mark samples, recursive molds whose origins can be verified through Ford imports, nested collections, direct ordered maps, 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. 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, and detects missing sources and cycles. It does not yet check API or kind semantics, and 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. 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. Local mutual groups, polymorphic recursion, value cycles, 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. 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 in full, including payload binders, imported and generic cases, and binder-free catch-alls. Missing cases and covered arms are reported; partial-case patterns, multi-case binders, differing arm result types, some complex two-arm subjects and contextual union-pattern branches remain unsupported. The Grammar’s `step` block infers in this fragment, but its module is not yet checked. 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 zero nested inside a single tuple argument where a list is expected remains unsupported rather than a definite mismatch. 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. Uncontextualized list construction, 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; mutually recursive local groups and 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.
23
23
24−The shared prelude interface reserves every name present in the supplied vendored source and makes only supported inferred entries available, including `list`, `unit`, `same`, `fall`, `need`, `lure`, `weld` and `snoc`. The validated standard `list` mold is injected when the prelude’s own gates are inferred; `weld` has an ordinary explicit result cast. An absent or altered `list` is not injected, and an altered declaration cannot leak through direct or transitive mold aliases. List-dependent prelude mold aliases remain unsupported because their templates are prepared before injection. 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.
24+The shared prelude interface reserves every name present in the supplied vendored source and makes only supported inferred entries available, including `list`, `unit`, `same`, `fall`, `need`, `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. List-dependent prelude mold aliases remain unsupported because their templates are prepared before injection. 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.
25
25
26## Milestone 1: parser and mark
26## Milestone 1: parser and mark
27
27
@@ -39,8 +39,8 @@ What the plan asks for, and where it is:
39
39
40Besides the plan's list:
40Besides the plan's list:
41
41
42−- 522 golden cases: 306 that parse and 216 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.
42+- 526 golden cases: 310 that parse and 216 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.
43−- The 522-case corpus passed under `urbit eval` in 62.7 s. The fake ship passed all 528 tests, including the importer, importer/checker and mark/checker bridges, module scope and unification checks, with 31.4 s for sync and 37.8 s for tests. The importer golden compares 149 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.
43+- The 526-case corpus passed under `urbit eval` in 63.5 s. The fake ship passed all 532 tests, including the importer, importer/checker and mark/checker bridges, module scope and unification checks, with 32.6 s for sync and 38.9 s for tests. The importer golden compares 149 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.
44- `tools/testdata/selftest` (22 checks) and `tools/testdata/ship-selftest` test the tools themselves.
44- `tools/testdata/selftest` (22 checks) and `tools/testdata/ship-selftest` test the tools themselves.
45- 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.
45- 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.
46- 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).
46- 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).
@@ -92,14 +92,16 @@ Besides the plan's list:
92| 10cbf9c | 2026-10-30 | Infer selected local recursive gates and distinguish reader diagnostics |
92| 10cbf9c | 2026-10-30 | Infer selected local recursive gates and distinguish reader diagnostics |
93| 45afb13 | 2026-10-30 | Infer local capital scopes and report direct reader diagnostics |
93| 45afb13 | 2026-10-30 | Infer local capital scopes and report direct reader diagnostics |
94| 054e651 | 2026-10-30 | Report nested reader diagnostics |
94| 054e651 | 2026-10-30 | Report nested reader diagnostics |
95−| This change | 2026-10-30 | Infer known-aura string interpolation |
95+| 98c19cd | 2026-10-30 | Infer known-aura string interpolation |
96+| ddba633 | 2026-10-30 | Infer top-level mutually recursive gates |
97+| This change | 2026-10-30 | Infer whole-case union patterns and prelude `turn` |
96
98
97## Checking it
99## Checking it
98
100
99On a machine set up as [development.md](development.md) says:
101On a machine set up as [development.md](development.md) says:
100
102
101```
103```
102−tools/golden # 522 cases under urbit eval
104+tools/golden # 526 cases under urbit eval
103tools/importer-test # the Hoon importer fixture projection
105tools/importer-test # the Hoon importer fixture projection
104tools/type-import-test # the importer/checker bridge fixture
106tools/type-import-test # the importer/checker bridge fixture
105tools/type-mark-test # the mark/checker bridge fixture
107tools/type-mark-test # the mark/checker bridge fixture
@@ -109,7 +111,7 @@ tools/testdata/selftest # the tools themselves
109tools/doc-blocks docs/spec # the doc's examples are golden cases
111tools/doc-blocks docs/spec # the doc's examples are golden cases
110tools/ship start
112tools/ship start
111tools/ship gen-tests --check # tests/lib/jibb.hoon is up to date
113tools/ship gen-tests --check # tests/lib/jibb.hoon is up to date
112−tools/ship test # the same 522 cases as -test arms on the ship
114+tools/ship test # the same 526 cases as -test arms on the ship
113tools/testdata/ship-selftest
115tools/testdata/ship-selftest
114tools/ship check-commit # |commit stores .jibb files
116tools/ship check-commit # |commit stores .jibb files
115tools/clay-fixtures # example /sur files and marks build through Clay
117tools/clay-fixtures # example /sur files and marks build through Clay
jibb-dev/lib/jibb.hoon+130−4
@@ -5084,6 +5084,10 @@
5084 =/ trial=ifit (itype-fit-ctor-cases literal.actual sample.expected cases sub next)
5084 =/ trial=ifit (itype-fit-ctor-cases literal.actual sample.expected cases sub next)
5085 ?. ?=(%ok -.trial) trial
5085 ?. ?=(%ok -.trial) trial
5086 [%ok [[id.actual expected] sub.trial] next.trial]
5086 [%ok [[id.actual expected] sub.trial] next.trial]
5087+ :: Zero may be the empty list. A nested cell fit lacks the context
5088+ :: needed to resolve it here, so do not report a definite mismatch.
5089+ ?: &(?=(%collection -.expected) =(%list name.expected) =(0 val.literal.actual))
5090+ [%unknown ~]
5087 ?: ?=(%const -.expected)
5091 ?: ?=(%const -.expected)
5088 ?:(=(val.literal.actual val.literal.expected) [%ok [[id.actual expected] sub] next] [%bad ~])
5092 ?:(=(val.literal.actual val.literal.expected) [%ok [[id.actual expected] sub] next] [%bad ~])
5089 ?: ?=(%atom -.expected)
5093 ?: ?=(%atom -.expected)
@@ -5101,6 +5105,8 @@
5101 [%ok u.u next]
5105 [%ok u.u next]
5102 ?: |(?=(%avar -.expected) ?=(%nvar -.expected)) [%unknown ~]
5106 ?: |(?=(%avar -.expected) ?=(%nvar -.expected)) [%unknown ~]
5103 ?: ?=(%face -.expected) $(expected body.expected)
5107 ?: ?=(%face -.expected) $(expected body.expected)
5108+ ?: &(?=(%collection -.expected) =(%list name.expected) =(0 val.literal.actual))
5109+ [%unknown ~]
5104 ?: ?=(%const -.expected)
5110 ?: ?=(%const -.expected)
5105 ?:(=(val.literal.actual val.literal.expected) [%ok sub next] [%bad ~])
5111 ?:(=(val.literal.actual val.literal.expected) [%ok sub next] [%bad ~])
5106 ?: ?=(%atom -.expected)
5112 ?: ?=(%atom -.expected)
@@ -6426,6 +6432,9 @@
6426 [%| ["branch does not cover both loobeans" ~]]
6432 [%| ["branch does not cover both loobeans" ~]]
6427 =/ subject=iresult (infer-fragment subject.e env state)
6433 =/ subject=iresult (infer-fragment subject.e env state)
6428 ?: ?=(%| -.subject) subject
6434 ?: ?=(%| -.subject) subject
6435+ =/ subject-type=itype (itype-normalize typ.p.subject sub.state.p.subject)
6436+ ?: ?=(%union -.subject-type)
6437+ [%| ["contextual union-pattern branch is not supported by partial inference" ~]]
6429 =/ su=(unit isub) (itype-unify typ.p.subject [%flag ~] sub.state.p.subject)
6438 =/ su=(unit isub) (itype-unify typ.p.subject [%flag ~] sub.state.p.subject)
6430 ?~ su [%| ["loobean branch subject does not unify with ?" ~]]
6439 ?~ su [%| ["loobean branch subject does not unify with ?" ~]]
6431 =/ left=iresult $(e val.x, state state.p.subject(sub u.su))
6440 =/ left=iresult $(e val.x, state state.p.subject(sub u.su))
@@ -6695,6 +6704,116 @@
6695 [%| ["a cell in interpolation needs a printer" ~[[(span-of p.i.ps) "cell without a printer"]]]]
6704 [%| ["a cell in interpolation needs a printer" ~[[(span-of p.i.ps) "cell without a printer"]]]]
6696 [%| ["interpolation type needs unsupported inference" ~]]
6705 [%| ["interpolation type needs unsupported inference" ~]]
6697::
6706::
6707+:: Whole-case coverage for a known union. A pattern that might cover
6708+:: only part of a case stays unsupported until the general pattern matrix.
6709++$ imatch ?(%full %none %unknown)
6710+++ union-pattern-items
6711+ |= [ps=(list pattern) t=itype]
6712+ ^- imatch
6713+ ?~ ps %unknown
6714+ ?~ t.ps (union-pattern i.ps t)
6715+ =. t ?:(?=(%face -.t) body.t t)
6716+ ?. ?=(%cell -.t)
6717+ ?: |(?=(%atom -.t) ?=(%any-atom -.t) ?=(%flag -.t) ?=(%const -.t)) %none
6718+ %unknown
6719+ =/ a=imatch (union-pattern i.ps hed.t)
6720+ =/ b=imatch $(ps t.ps, t tal.t)
6721+ ?: |(=(%none a) =(%none b)) %none
6722+ ?:(&(=(%full a) =(%full b)) %full %unknown)
6723+::
6724+++ union-pattern
6725+ |= [p=pattern t=itype]
6726+ ^- imatch
6727+ =. t ?:(?=(%face -.t) body.t t)
6728+ ?- -.p
6729+ %any %full
6730+ %bind %full
6731+ %lit
6732+ ?: ?=(%const -.t) ?:(=(val.literal.t val.lit.p) %full %none)
6733+ ?: ?=(%cell -.t) %none
6734+ ?: ?=(%flag -.t)
6735+ ?:(|(=(0 val.lit.p) =(1 val.lit.p)) %unknown %none)
6736+ %unknown
6737+ %str ?:(?=(%cell -.t) %none %unknown)
6738+ %cell (union-pattern-items items.p t)
6739+ ==
6740+::
6741+++ union-pattern-has-bind
6742+ |= p=pattern
6743+ ^- ?
6744+ ?: ?=(%bind -.p) &
6745+ ?. ?=(%cell -.p) |
6746+ (lien items.p union-pattern-has-bind)
6747+::
6748+++ union-pattern-bind-items
6749+ |= [ps=(list pattern) t=itype env=ienv globals=(list term)]
6750+ ^- (unit ienv)
6751+ ?~ ps ~
6752+ ?~ t.ps (union-pattern-bind i.ps t env globals)
6753+ =. t ?:(?=(%face -.t) body.t t)
6754+ ?. ?=(%cell -.t) ~
6755+ =/ first=(unit ienv) (union-pattern-bind i.ps hed.t env globals)
6756+ ?~ first ~
6757+ $(ps t.ps, t tal.t, env u.first)
6758+::
6759+++ union-pattern-bind
6760+ |= [p=pattern t=itype env=ienv globals=(list term)]
6761+ ^- (unit ienv)
6762+ =. t ?:(?=(%face -.t) body.t t)
6763+ ?: ?=(%bind -.p)
6764+ ?: |(?=(^ (ienv-lookup name.p env)) (lien globals |=(n=term =(n name.p)))) ~
6765+ `[[name.p [t ~]] env]
6766+ ?: ?=(%cell -.p) (union-pattern-bind-items items.p t env globals)
6767+ `env
6768+::
6769+++ infer-known-union-branch
6770+ |= [e=expr env=ienv state=istate]
6771+ ^- iresult
6772+ ?> ?=(%branch -.e)
6773+ =/ subject=iresult (infer-fragment subject.e env state)
6774+ ?: ?=(%| -.subject) subject
6775+ =/ typ=itype (itype-normalize typ.p.subject sub.state.p.subject)
6776+ ?. ?=(%union -.typ) [%| ["branch is not supported by partial inference" ~]]
6777+ =/ cases=(list itype) cases.typ
6778+ =/ remaining=(list itype) cases
6779+ =/ arms=(list arm) arms.e
6780+ =/ st=istate state.p.subject
6781+ =/ answer=(unit itype) ~
6782+ |-
6783+ ?~ arms
6784+ ?^ remaining
6785+ [%| ["missing union case {(show-itype i.remaining sub.st)}" ~]]
6786+ ?~ answer [%| ["empty union branch is not supported by partial inference" ~]]
6787+ [%& u.answer st]
6788+ =/ a=arm i.arms
6789+ ?: (lien remaining |=(c=itype =(%unknown (union-pattern pat.a c))))
6790+ [%| ["partial union pattern is not supported by partial inference" ~]]
6791+ =/ matching=(list itype) (skim remaining |=(c=itype =(%full (union-pattern pat.a c))))
6792+ ?~ matching
6793+ ?: (lien cases |=(c=itype =(%full (union-pattern pat.a c))))
6794+ [%| ["branch arm is covered by earlier arms" ~[[at.pat.a "covered arm"]]]]
6795+ [%| ["union pattern is not supported by partial inference" ~]]
6796+ ?: &(?=(^ t.matching) (union-pattern-has-bind pat.a))
6797+ [%| ["a union pattern binding several cases is not supported by partial inference" ~]]
6798+ =/ bound=(unit ienv) (union-pattern-bind pat.a i.matching env globals.st)
6799+ ?~ bound [%| ["pattern binder shadows a name" ~]]
6800+ =/ body=iresult (infer-fragment val.a u.bound st)
6801+ ?: ?=(%| -.body) body
6802+ =/ result=itype (itype-normalize typ.p.body sub.state.p.body)
6803+ =/ mismatch=? ?~(answer | !=((itype-normalize u.answer sub.state.p.body) result))
6804+ ?: mismatch [%| ["union branch result matching needs unsupported inference" ~]]
6805+ $(arms t.arms, remaining (skim remaining |=(c=itype !=(%full (union-pattern pat.a c)))), st state.p.body, answer `result)
6806+::
6807+++ known-union-subject
6808+ |= [e=expr env=ienv state=istate]
6809+ ^- (unit itype)
6810+ ?. ?=(%wing -.e) ~
6811+ =/ subject=iresult (infer-fragment e env state)
6812+ ?: ?=(%| -.subject) ~
6813+ =/ typ=itype (itype-normalize typ.p.subject sub.state.p.subject)
6814+ ?. ?=(%union -.typ) ~
6815+ `typ
6816+::
6698++ infer-fragment
6817++ infer-fragment
6699 |= [e=expr env=ienv state=istate]
6818 |= [e=expr env=ienv state=istate]
6700 ^- iresult
6819 ^- iresult
@@ -6761,19 +6880,26 @@
6761 %branch
6880 %branch
6762 ?~ arms.e [%| ["branch is not supported by partial inference" ~]]
6881 ?~ arms.e [%| ["branch is not supported by partial inference" ~]]
6763 ?~ t.arms.e (infer-cell-branch e env state)
6882 ?~ t.arms.e (infer-cell-branch e env state)
6764− ?^ t.t.arms.e [%| ["branch is not supported by partial inference" ~]]
6883+ ?^ t.t.arms.e (infer-known-union-branch e env state)
6884+ =/ known=(unit itype) (known-union-subject subject.e env state)
6885+ ?: &(?=(^ known) ?=(~ (unit-union-payload u.known)))
6886+ (infer-known-union-branch e env state)
6765 =/ x=arm i.arms.e
6887 =/ x=arm i.arms.e
6766 =/ y=arm i.t.arms.e
6888 =/ y=arm i.t.arms.e
6767 ?: |((unit-empty-pattern pat.x) (unit-empty-pattern pat.y))
6889 ?: |((unit-empty-pattern pat.x) (unit-empty-pattern pat.y))
6768 (infer-unit-branch e env state ~)
6890 (infer-unit-branch e env state ~)
6769− ?. ?=(%lit -.pat.x) [%| ["branch pattern is not supported by partial inference" ~]]
6891+ ?. ?=(%lit -.pat.x) (infer-known-union-branch e env state)
6770− ?. ?=(%lit -.pat.y) [%| ["branch pattern is not supported by partial inference" ~]]
6892+ ?. ?=(%lit -.pat.y) (infer-known-union-branch e env state)
6771 ?. &(=(%loobean form.lit.pat.x) =(%loobean form.lit.pat.y))
6893 ?. &(=(%loobean form.lit.pat.x) =(%loobean form.lit.pat.y))
6772− [%| ["branch pattern is not supported by partial inference" ~]]
6894+ (infer-known-union-branch e env state)
6895+ ?^ known (infer-known-union-branch e env state)
6773 ?: =(val.lit.pat.x val.lit.pat.y)
6896 ?: =(val.lit.pat.x val.lit.pat.y)
6774 [%| ["branch does not cover both loobeans" ~]]
6897 [%| ["branch does not cover both loobeans" ~]]
6775 =/ subject=iresult $(e subject.e)
6898 =/ subject=iresult $(e subject.e)
6776 ?: ?=(%| -.subject) subject
6899 ?: ?=(%| -.subject) subject
6900+ =/ subject-type=itype (itype-normalize typ.p.subject sub.state.p.subject)
6901+ ?: ?=(%union -.subject-type)
6902+ [%| ["union-pattern branch subject is not supported by partial inference" ~]]
6777 =/ su=(unit isub) (itype-unify typ.p.subject [%flag ~] sub.state.p.subject)
6903 =/ su=(unit isub) (itype-unify typ.p.subject [%flag ~] sub.state.p.subject)
6778 ?~ su [%| ["loobean branch subject does not unify with ?" ~]]
6904 ?~ su [%| ["loobean branch subject does not unify with ?" ~]]
6779 =/ left=iresult $(e val.x, state state.p.subject(sub u.su))
6905 =/ left=iresult $(e val.x, state state.p.subject(sub u.su))
jibb-dev/lib/jibb/prelude.jibb+4−3
@@ -45,9 +45,10 @@
45++ turn |= args=[(list A) $-(A B)]
45++ turn |= args=[(list A) $-(A B)]
46 ?- args
46 ?- args
47 [xs f]
47 [xs f]
48+ ^- (list B)
48− ?- xs
49+ ?- xs
49− ~ ~
50+ ~ ~
50− [item rest] [(f item) (turn rest f)]
51+ [item rest] [(f item) (turn rest f)]
51
52
52+$ dime [p=@ta q=@]
53+$ dime [p=@ta q=@]
53
54
tests/golden/doc-grammar-04-step/about.txt+1
@@ -1,3 +1,4 @@
1source: Grammar tab, section "Patterns", code block 4 of the tab
1source: Grammar tab, section "Patterns", code block 4 of the tab
2tests: a union `+$ step` with one case per deeper line: cells with tags at the head, in the middle and at the end, faced fields, and a bare term; a blank line between definitions; a `?-` whose arms are cell patterns mixing tags and binding names, and a bare term, with their expressions aligned by extra spaces; interpolated strings and a name as arm expressions
2tests: a union `+$ step` with one case per deeper line: cells with tags at the head, in the middle and at the end, faced fields, and a bare term; a blank line between definitions; a `?-` whose arms are cell patterns mixing tags and binding names, and a bare term, with their expressions aligned by extra spaces; interpolated strings and a name as arm expressions
3expect: parses
3expect: parses
4+expect-types: a partial inference report
tests/golden/doc-grammar-04-step/modules.txtnew file+1
@@ -0,0 +1 @@
1+# no module fixtures
tests/golden/doc-grammar-04-step/types.txtnew file+3
@@ -0,0 +1,3 @@
1+partial inference; module not checked
2++$ step: cases proven disjoint; mold not checked
3+++ describe: $-(step @t)
tests/golden/prelude-1c-structural/source.jibb+4−3
@@ -45,9 +45,10 @@
45++ turn |= args=[(list A) $-(A B)]
45++ turn |= args=[(list A) $-(A B)]
46 ?- args
46 ?- args
47 [xs f]
47 [xs f]
48+ ^- (list B)
48− ?- xs
49+ ?- xs
49− ~ ~
50+ ~ ~
50− [item rest] [(f item) (turn rest f)]
51+ [item rest] [(f item) (turn rest f)]
51
52
52+$ dime [p=@ta q=@]
53+$ dime [p=@ta q=@]
53
54
tests/golden/prelude-1c-structural/tokens.txt+453−446
@@ -244,481 +244,488 @@
24447:9 name f
24447:9 name f
24547:10 tight glyph ]
24547:10 tight glyph ]
24648:7 INDENT
24648:7 INDENT
247−48:7 glyph ?-
247+48:7 glyph ^-
248−48:10 name xs
248+48:10 glyph (
249+48:11 tight name list
250+48:16 tvar B
251+48:17 tight glyph )
24949:9 INDENT
25249:9 INDENT
250−49:9 lit ~
253+49:9 glyph ?-
254+49:12 name xs
255+50:11 INDENT
251−49:11 lit ~
256+50:11 lit ~
257+50:13 lit ~
252−50:9 NEWLINE
258+51:11 NEWLINE
253−50:9 glyph [
259+51:11 glyph [
254−50:10 tight name item
260+51:12 tight name item
255−50:15 name rest
261+51:17 name rest
256−50:19 tight glyph ]
262+51:21 tight glyph ]
257−50:21 glyph [
263+51:23 glyph [
258−50:22 tight glyph (
264+51:24 tight glyph (
259−50:23 tight name f
265+51:25 tight name f
260−50:25 name item
266+51:27 name item
261−50:29 tight glyph )
267+51:31 tight glyph )
262−50:31 glyph (
268+51:33 glyph (
263−50:32 tight name turn
269+51:34 tight name turn
264−50:37 name rest
270+51:39 name rest
265−50:42 name f
271+51:44 name f
266−50:43 tight glyph )
267−50:44 tight glyph ]
272+51:45 tight glyph )
273+51:46 tight glyph ]
274+53:1 DEDENT
268−52:1 DEDENT
275+53:1 DEDENT
269−52:1 DEDENT
276+53:1 DEDENT
270−52:1 DEDENT
277+53:1 DEDENT
271−52:1 DEDENT
278+53:1 DEDENT
272−52:1 NEWLINE
279+53:1 NEWLINE
273−52:1 glyph +$
280+53:1 glyph +$
274−52:4 name dime
281+53:4 name dime
275−52:9 glyph [
282+53:9 glyph [
276−52:10 tight name p
283+53:10 tight name p
277−52:11 tight glyph =
284+53:11 tight glyph =
278−52:12 tight aura @ta
285+53:12 tight aura @ta
279−52:16 name q
286+53:16 name q
280−52:17 tight glyph =
287+53:17 tight glyph =
281−52:18 tight aura @
288+53:18 tight aura @
282−52:19 tight glyph ]
289+53:19 tight glyph ]
283−54:1 NEWLINE
290+55:1 NEWLINE
284−54:1 glyph +$
291+55:1 glyph +$
285−54:4 name hair
292+55:4 name hair
286−54:9 glyph [
293+55:9 glyph [
287−54:10 tight name p
294+55:10 tight name p
288−54:11 tight glyph =
295+55:11 tight glyph =
289−54:12 tight aura @ud
296+55:12 tight aura @ud
290−54:16 name q
297+55:16 name q
291−54:17 tight glyph =
298+55:17 tight glyph =
292−54:18 tight aura @ud
299+55:18 tight aura @ud
293−54:21 tight glyph ]
300+55:21 tight glyph ]
294−56:1 NEWLINE
301+57:1 NEWLINE
295−56:1 glyph +$
302+57:1 glyph +$
296−56:4 name pint
303+57:4 name pint
297−56:9 glyph [
304+57:9 glyph [
298−56:10 tight name p
305+57:10 tight name p
299−56:11 tight glyph =
306+57:11 tight glyph =
300−56:12 tight glyph [
307+57:12 tight glyph [
301−56:13 tight name p
308+57:13 tight name p
302−56:14 tight glyph =
309+57:14 tight glyph =
303−56:15 tight aura @
310+57:15 tight aura @
304−56:17 name q
311+57:17 name q
305−56:18 tight glyph =
312+57:18 tight glyph =
306−56:19 tight aura @
313+57:19 tight aura @
307−56:20 tight glyph ]
314+57:20 tight glyph ]
308−56:22 name q
315+57:22 name q
309−56:23 tight glyph =
316+57:23 tight glyph =
310−56:24 tight glyph [
317+57:24 tight glyph [
311−56:25 tight name p
318+57:25 tight name p
312−56:26 tight glyph =
319+57:26 tight glyph =
313−56:27 tight aura @
320+57:27 tight aura @
314−56:29 name q
321+57:29 name q
315−56:30 tight glyph =
322+57:30 tight glyph =
316−56:31 tight aura @
323+57:31 tight aura @
317−56:32 tight glyph ]
324+57:32 tight glyph ]
318−56:33 tight glyph ]
325+57:33 tight glyph ]
319−58:1 NEWLINE
326+59:1 NEWLINE
320−58:1 glyph +$
327+59:1 glyph +$
321−58:4 name coin
328+59:4 name coin
322−59:3 INDENT
329+60:3 INDENT
323−59:3 glyph [
324−59:4 tight lit %$
325−59:7 name p
326−59:8 tight glyph =
327−59:9 tight name dime
328−59:13 tight glyph ]
329−60:3 NEWLINE
33060:3 glyph [
33060:3 glyph [
331−60:4 tight lit %blob
331+60:4 tight lit %$
332−60:10 name p
332+60:7 name p
333−60:11 tight glyph =
333+60:8 tight glyph =
334−60:12 tight glyph *
334+60:9 tight name dime
33560:13 tight glyph ]
33560:13 tight glyph ]
33661:3 NEWLINE
33661:3 NEWLINE
33761:3 glyph [
33761:3 glyph [
338−61:4 tight lit %many
338+61:4 tight lit %blob
33961:10 name p
33961:10 name p
34061:11 tight glyph =
34061:11 tight glyph =
341−61:12 tight glyph (
341+61:12 tight glyph *
342−61:13 tight name list
342+61:13 tight glyph ]
343+62:3 NEWLINE
344+62:3 glyph [
345+62:4 tight lit %many
346+62:10 name p
347+62:11 tight glyph =
348+62:12 tight glyph (
349+62:13 tight name list
343−61:18 name coin
350+62:18 name coin
344−61:22 tight glyph )
351+62:22 tight glyph )
345−61:23 tight glyph ]
352+62:23 tight glyph ]
346−63:1 DEDENT
353+64:1 DEDENT
347−63:1 NEWLINE
354+64:1 NEWLINE
348−63:1 glyph +$
355+64:1 glyph +$
349−63:4 name pair
356+64:4 name pair
350−63:9 glyph |$
357+64:9 glyph |$
351−63:12 glyph [
358+64:12 glyph [
352−63:13 tight tvar A
359+64:13 tight tvar A
353−63:15 tvar B
360+64:15 tvar B
354−63:16 tight glyph ]
361+64:16 tight glyph ]
355−63:18 glyph [
362+64:18 glyph [
356−63:19 tight name p
363+64:19 tight name p
357−63:20 tight glyph =
364+64:20 tight glyph =
358−63:21 tight tvar A
365+64:21 tight tvar A
359−63:23 name q
366+64:23 name q
360−63:24 tight glyph =
367+64:24 tight glyph =
361−63:25 tight tvar B
368+64:25 tight tvar B
362−63:26 tight glyph ]
369+64:26 tight glyph ]
363−65:1 NEWLINE
370+66:1 NEWLINE
364−65:1 glyph +$
371+66:1 glyph +$
365−65:4 name trel
372+66:4 name trel
366−65:9 glyph |$
373+66:9 glyph |$
367−65:12 glyph [
374+66:12 glyph [
368−65:13 tight tvar A
375+66:13 tight tvar A
369−65:15 tvar B
376+66:15 tvar B
370−65:17 tvar C
377+66:17 tvar C
371−65:18 tight glyph ]
378+66:18 tight glyph ]
372−65:20 glyph [
379+66:20 glyph [
373−65:21 tight name p
380+66:21 tight name p
374−65:22 tight glyph =
381+66:22 tight glyph =
375−65:23 tight tvar A
382+66:23 tight tvar A
376−65:25 name q
383+66:25 name q
377−65:26 tight glyph =
384+66:26 tight glyph =
378−65:27 tight tvar B
385+66:27 tight tvar B
379−65:29 name r
386+66:29 name r
380−65:30 tight glyph =
387+66:30 tight glyph =
381−65:31 tight tvar C
388+66:31 tight tvar C
382−65:32 tight glyph ]
389+66:32 tight glyph ]
383−67:1 NEWLINE
390+68:1 NEWLINE
384−67:1 glyph +$
391+68:1 glyph +$
385−67:4 name qual
392+68:4 name qual
386−67:9 glyph |$
393+68:9 glyph |$
387−67:12 glyph [
394+68:12 glyph [
388−67:13 tight tvar A
395+68:13 tight tvar A
389−67:15 tvar B
396+68:15 tvar B
390−67:17 tvar C
397+68:17 tvar C
391−67:19 tvar D
398+68:19 tvar D
392−67:20 tight glyph ]
399+68:20 tight glyph ]
393−67:22 glyph [
400+68:22 glyph [
394−67:23 tight name p
401+68:23 tight name p
395−67:24 tight glyph =
402+68:24 tight glyph =
396−67:25 tight tvar A
403+68:25 tight tvar A
397−67:27 name q
404+68:27 name q
398−67:28 tight glyph =
405+68:28 tight glyph =
399−67:29 tight tvar B
406+68:29 tight tvar B
400−67:31 name r
407+68:31 name r
401−67:32 tight glyph =
408+68:32 tight glyph =
402−67:33 tight tvar C
409+68:33 tight tvar C
403−67:35 name s
410+68:35 name s
404−67:36 tight glyph =
411+68:36 tight glyph =
405−67:37 tight tvar D
412+68:37 tight tvar D
406−67:38 tight glyph ]
413+68:38 tight glyph ]
407−69:1 NEWLINE
414+70:1 NEWLINE
408−69:1 glyph +$
415+70:1 glyph +$
409−69:4 name cord
416+70:4 name cord
410−69:9 aura @t
417+70:9 aura @t
411−71:1 NEWLINE
418+72:1 NEWLINE
412−71:1 glyph +$
419+72:1 glyph +$
413−71:4 name knot
420+72:4 name knot
414−71:9 aura @ta
421+72:9 aura @ta
415−73:1 NEWLINE
422+74:1 NEWLINE
416−73:1 glyph +$
423+74:1 glyph +$
417−73:4 name tape
424+74:4 name tape
418−73:9 glyph (
425+74:9 glyph (
419−73:10 tight name list
426+74:10 tight name list
420−73:15 aura @tD
427+74:15 aura @tD
421−73:18 tight glyph )
428+74:18 tight glyph )
422−75:1 NEWLINE
429+76:1 NEWLINE
423−75:1 glyph +$
430+76:1 glyph +$
424−75:4 name path
431+76:4 name path
425−75:9 glyph (
432+76:9 glyph (
426−75:10 tight name list
433+76:10 tight name list
427−75:15 name knot
434+76:15 name knot
428−75:19 tight glyph )
435+76:19 tight glyph )
429−77:1 NEWLINE
436+78:1 NEWLINE
430−77:1 glyph +$
437+78:1 glyph +$
431−77:4 name tank
438+78:4 name tank
432−78:3 INDENT
439+79:3 INDENT
433−78:3 name cord
434−79:3 NEWLINE
435−79:3 glyph [
436−79:4 tight lit %leaf
437−79:10 name p
440+79:3 name cord
438−79:11 tight glyph =
439−79:12 tight name tape
440−79:16 tight glyph ]
44180:3 NEWLINE
44180:3 NEWLINE
44280:3 glyph [
44280:3 glyph [
443−80:4 tight lit %palm
443+80:4 tight lit %leaf
44480:10 name p
44480:10 name p
44580:11 tight glyph =
44580:11 tight glyph =
446−80:12 tight glyph (
446+80:12 tight name tape
447−80:13 tight name qual
448−80:18 name tape
449−80:23 name tape
450−80:28 name tape
451−80:33 name tape
452−80:37 tight glyph )
453−80:39 name q
454−80:40 tight glyph =
455−80:41 tight glyph (
456−80:42 tight name list
457−80:47 name tank
458−80:51 tight glyph )
459−80:52 tight glyph ]
447+80:16 tight glyph ]
46081:3 NEWLINE
44881:3 NEWLINE
46181:3 glyph [
44981:3 glyph [
462−81:4 tight lit %rose
450+81:4 tight lit %palm
46381:10 name p
45181:10 name p
46481:11 tight glyph =
45281:11 tight glyph =
46581:12 tight glyph (
45381:12 tight glyph (
466−81:13 tight name trel
454+81:13 tight name qual
46781:18 name tape
45581:18 name tape
46881:23 name tape
45681:23 name tape
46981:28 name tape
45781:28 name tape
458+81:33 name tape
470−81:32 tight glyph )
459+81:37 tight glyph )
460+81:39 name q
461+81:40 tight glyph =
462+81:41 tight glyph (
463+81:42 tight name list
464+81:47 name tank
465+81:51 tight glyph )
466+81:52 tight glyph ]
467+82:3 NEWLINE
468+82:3 glyph [
469+82:4 tight lit %rose
470+82:10 name p
471+82:11 tight glyph =
472+82:12 tight glyph (
473+82:13 tight name trel
474+82:18 name tape
475+82:23 name tape
476+82:28 name tape
477+82:32 tight glyph )
471−81:34 name q
478+82:34 name q
472−81:35 tight glyph =
479+82:35 tight glyph =
473−81:36 tight glyph (
480+82:36 tight glyph (
474−81:37 tight name list
481+82:37 tight name list
475−81:42 name tank
482+82:42 name tank
476−81:46 tight glyph )
483+82:46 tight glyph )
477−81:47 tight glyph ]
484+82:47 tight glyph ]
478−83:1 DEDENT
485+84:1 DEDENT
479−83:1 NEWLINE
486+84:1 NEWLINE
480−83:1 glyph +$
487+84:1 glyph +$
481−83:4 name nail
488+84:4 name nail
482−83:9 glyph [
489+84:9 glyph [
483−83:10 tight name p
490+84:10 tight name p
484−83:11 tight glyph =
491+84:11 tight glyph =
485−83:12 tight name hair
492+84:12 tight name hair
486−83:17 name q
493+84:17 name q
487−83:18 tight glyph =
494+84:18 tight glyph =
488−83:19 tight name tape
495+84:19 tight name tape
489−83:23 tight glyph ]
496+84:23 tight glyph ]
490−85:1 NEWLINE
497+86:1 NEWLINE
491−85:1 glyph +$
498+86:1 glyph +$
492−85:4 name edge
499+86:4 name edge
493−85:9 glyph [
500+86:9 glyph [
494−85:10 tight name p
501+86:10 tight name p
495−85:11 tight glyph =
502+86:11 tight glyph =
496−85:12 tight name hair
503+86:12 tight name hair
497−85:17 name q
504+86:17 name q
498−85:18 tight glyph =
505+86:18 tight glyph =
499−85:19 tight glyph (
506+86:19 tight glyph (
500−85:20 tight name unit
507+86:20 tight name unit
501−85:25 glyph [
508+86:25 glyph [
502−85:26 tight name p
509+86:26 tight name p
503−85:27 tight glyph =
510+86:27 tight glyph =
504−85:28 tight glyph *
511+86:28 tight glyph *
505−85:30 name q
512+86:30 name q
506−85:31 tight glyph =
513+86:31 tight glyph =
507−85:32 tight name nail
514+86:32 tight name nail
508−85:36 tight glyph ]
515+86:36 tight glyph ]
509−85:37 tight glyph )
516+86:37 tight glyph )
510−85:38 tight glyph ]
517+86:38 tight glyph ]
511−87:1 NEWLINE
518+88:1 NEWLINE
512−87:1 glyph +$
519+88:1 glyph +$
513−87:4 name rule
520+88:4 name rule
514−87:9 glyph $-(
521+88:9 glyph $-(
515−87:12 tight name nail
522+88:12 tight name nail
516−87:17 name edge
523+88:17 name edge
517−87:21 tight glyph )
524+88:21 tight glyph )
518−89:1 NEWLINE
525+90:1 NEWLINE
519−89:1 glyph +$
526+90:1 glyph +$
520−89:4 name spot
527+90:4 name spot
521−89:9 glyph [
528+90:9 glyph [
522−89:10 tight name p
529+90:10 tight name p
523−89:11 tight glyph =
530+90:11 tight glyph =
524−89:12 tight name path
531+90:12 tight name path
525−89:17 name q
532+90:17 name q
526−89:18 tight glyph =
533+90:18 tight glyph =
527−89:19 tight name pint
534+90:19 tight name pint
528−89:23 tight glyph ]
535+90:23 tight glyph ]
529−91:1 NEWLINE
536+92:1 NEWLINE
530−91:1 glyph +$
537+92:1 glyph +$
531−91:4 name toon
538+92:4 name toon
532−92:3 INDENT
539+93:3 INDENT
533−92:3 glyph [
534−92:4 tight lit %0
535−92:7 name p
536−92:8 tight glyph =
537−92:9 tight glyph *
538−92:10 tight glyph ]
539−93:3 NEWLINE
54093:3 glyph [
54093:3 glyph [
541−93:4 tight lit %1
541+93:4 tight lit %0
54293:7 name p
54293:7 name p
54393:8 tight glyph =
54393:8 tight glyph =
54493:9 tight glyph *
54493:9 tight glyph *
54593:10 tight glyph ]
54593:10 tight glyph ]
54694:3 NEWLINE
54694:3 NEWLINE
54794:3 glyph [
54794:3 glyph [
548−94:4 tight lit %2
548+94:4 tight lit %1
54994:7 name p
54994:7 name p
55094:8 tight glyph =
55094:8 tight glyph =
551−94:9 tight glyph (
551+94:9 tight glyph *
552−94:10 tight name list
552+94:10 tight glyph ]
553+95:3 NEWLINE
554+95:3 glyph [
555+95:4 tight lit %2
556+95:7 name p
557+95:8 tight glyph =
558+95:9 tight glyph (
559+95:10 tight name list
553−94:15 name tank
560+95:15 name tank
554−94:19 tight glyph )
561+95:19 tight glyph )
555−94:20 tight glyph ]
562+95:20 tight glyph ]
556−96:1 DEDENT
563+97:1 DEDENT
557−96:1 NEWLINE
564+97:1 NEWLINE
558−96:1 glyph +$
565+97:1 glyph +$
559−96:4 name like
566+97:4 name like
560−96:9 glyph |$
567+97:9 glyph |$
561−96:12 glyph [
568+97:12 glyph [
562−96:13 tight tvar A
569+97:13 tight tvar A
563−96:14 tight glyph ]
570+97:14 tight glyph ]
564−96:16 glyph [
571+97:16 glyph [
565−96:17 tight name p
572+97:17 tight name p
566−96:18 tight glyph =
573+97:18 tight glyph =
567−96:19 tight name hair
574+97:19 tight name hair
568−96:24 name q
575+97:24 name q
569−96:25 tight glyph =
576+97:25 tight glyph =
570−96:26 tight glyph (
577+97:26 tight glyph (
571−96:27 tight name unit
578+97:27 tight name unit
572−96:32 glyph [
579+97:32 glyph [
573−96:33 tight name p
580+97:33 tight name p
574−96:34 tight glyph =
581+97:34 tight glyph =
575−96:35 tight tvar A
582+97:35 tight tvar A
576−96:37 name q
583+97:37 name q
577−96:38 tight glyph =
584+97:38 tight glyph =
578−96:39 tight name nail
585+97:39 tight name nail
579−96:43 tight glyph ]
586+97:43 tight glyph ]
580−96:44 tight glyph )
587+97:44 tight glyph )
581−96:45 tight glyph ]
588+97:45 tight glyph ]
582−98:1 NEWLINE
589+99:1 NEWLINE
583−98:1 glyph ++
590+99:1 glyph ++
584−98:4 name wonk
591+99:4 name wonk
585−98:9 glyph |=
592+99:9 glyph |=
586−98:12 name veq
593+99:12 name veq
587−98:15 tight glyph =
594+99:15 tight glyph =
588−98:16 tight glyph (
595+99:16 tight glyph (
589−98:17 tight name like
596+99:17 tight name like
590−98:22 tvar A
597+99:22 tvar A
591−98:23 tight glyph )
598+99:23 tight glyph )
592−99:3 INDENT
599+100:3 INDENT
593−99:3 glyph ?-
600+100:3 glyph ?-
594−99:6 wing q.veq
601+100:6 wing q.veq
595−100:5 INDENT
602+101:5 INDENT
596−100:5 lit ~
603+101:5 lit ~
597−100:7 glyph !!
604+101:7 glyph !!
598−101:5 NEWLINE
605+102:5 NEWLINE
599−101:5 glyph [
606+102:5 glyph [
600−101:6 tight lit ~
607+102:6 tight lit ~
601−101:8 name product
608+102:8 name product
602−101:15 tight glyph ]
609+102:15 tight glyph ]
603−101:17 wing p.product
610+102:17 wing p.product
604−103:1 DEDENT
611+104:1 DEDENT
605−103:1 DEDENT
612+104:1 DEDENT
606−103:1 NEWLINE
613+104:1 NEWLINE
607−103:1 glyph +$
614+104:1 glyph +$
608−103:4 name lone
615+104:4 name lone
609−103:9 glyph |$
616+104:9 glyph |$
610−103:12 glyph [
617+104:12 glyph [
611−103:13 tight tvar A
618+104:13 tight tvar A
612−103:14 tight glyph ]
619+104:14 tight glyph ]
613−103:16 glyph [
620+104:16 glyph [
614−103:17 tight name p
621+104:17 tight name p
615−103:18 tight glyph =
622+104:18 tight glyph =
616−103:19 tight tvar A
623+104:19 tight tvar A
617−103:20 tight glyph ]
624+104:20 tight glyph ]
618−105:1 NEWLINE
625+106:1 NEWLINE
619−105:1 glyph +$
626+106:1 glyph +$
620−105:4 name lest
627+106:4 name lest
621−105:9 glyph |$
628+106:9 glyph |$
622−105:12 glyph [
629+106:12 glyph [
623−105:13 tight tvar A
630+106:13 tight tvar A
624−105:14 tight glyph ]
631+106:14 tight glyph ]
625−105:16 glyph [
632+106:16 glyph [
626−105:17 tight name i
633+106:17 tight name i
627−105:18 tight glyph =
634+106:18 tight glyph =
628−105:19 tight tvar A
635+106:19 tight tvar A
629−105:21 name t
636+106:21 name t
630−105:22 tight glyph =
637+106:22 tight glyph =
631−105:23 tight glyph (
638+106:23 tight glyph (
632−105:24 tight name list
639+106:24 tight name list
633−105:29 tvar A
640+106:29 tvar A
634−105:30 tight glyph )
641+106:30 tight glyph )
635−105:31 tight glyph ]
642+106:31 tight glyph ]
636−107:1 NEWLINE
643+108:1 NEWLINE
637−107:1 glyph +$
644+108:1 glyph +$
638−107:4 name pole
645+108:4 name pole
639−107:9 glyph |$
646+108:9 glyph |$
640−107:12 glyph [
647+108:12 glyph [
641−107:13 tight tvar A
648+108:13 tight tvar A
642−107:14 tight glyph ]
649+108:14 tight glyph ]
643−108:3 INDENT
650+109:3 INDENT
644−108:3 lit ~
651+109:3 lit ~
645−109:3 NEWLINE
652+110:3 NEWLINE
646−109:3 glyph [
653+110:3 glyph [
647−109:4 tight tvar A
654+110:4 tight tvar A
648−109:6 glyph (
655+110:6 glyph (
649−109:7 tight name pole
656+110:7 tight name pole
650−109:12 tvar A
657+110:12 tvar A
651−109:13 tight glyph )
658+110:13 tight glyph )
652−109:14 tight glyph ]
659+110:14 tight glyph ]
653−111:1 DEDENT
660+112:1 DEDENT
654−111:1 NEWLINE
661+112:1 NEWLINE
655−111:1 glyph +$
662+112:1 glyph +$
656−111:4 name quip
663+112:4 name quip
657−111:9 glyph |$
664+112:9 glyph |$
658−111:12 glyph [
665+112:12 glyph [
659−111:13 tight tvar A
666+112:13 tight tvar A
660−111:15 tvar B
667+112:15 tvar B
661−111:16 tight glyph ]
668+112:16 tight glyph ]
662−111:18 glyph [
669+112:18 glyph [
663−111:19 tight glyph (
670+112:19 tight glyph (
664−111:20 tight name list
671+112:20 tight name list
665−111:25 tvar A
672+112:25 tvar A
666−111:26 tight glyph )
673+112:26 tight glyph )
667−111:28 tvar B
674+112:28 tvar B
668−111:29 tight glyph ]
675+112:29 tight glyph ]
669−113:1 NEWLINE
676+114:1 NEWLINE
670−113:1 glyph +$
677+114:1 glyph +$
671−113:4 name tree
678+114:4 name tree
672−113:9 glyph |$
679+114:9 glyph |$
673−113:12 glyph [
680+114:12 glyph [
674−113:13 tight tvar A
681+114:13 tight tvar A
675−113:14 tight glyph ]
682+114:14 tight glyph ]
676−114:3 INDENT
683+115:3 INDENT
677−114:3 lit ~
684+115:3 lit ~
678−115:3 NEWLINE
685+116:3 NEWLINE
679−115:3 glyph [
686+116:3 glyph [
680−115:4 tight name n
687+116:4 tight name n
681−115:5 tight glyph =
688+116:5 tight glyph =
682−115:6 tight tvar A
689+116:6 tight tvar A
683−115:8 name l
690+116:8 name l
684−115:9 tight glyph =
691+116:9 tight glyph =
685−115:10 tight glyph (
692+116:10 tight glyph (
686−115:11 tight name tree
693+116:11 tight name tree
687−115:16 tvar A
694+116:16 tvar A
688−115:17 tight glyph )
695+116:17 tight glyph )
689−115:19 name r
696+116:19 name r
690−115:20 tight glyph =
697+116:20 tight glyph =
691−115:21 tight glyph (
698+116:21 tight glyph (
692−115:22 tight name tree
699+116:22 tight name tree
693−115:27 tvar A
700+116:27 tvar A
694−115:28 tight glyph )
701+116:28 tight glyph )
695−115:29 tight glyph ]
702+116:29 tight glyph ]
696−117:1 DEDENT
703+118:1 DEDENT
697−117:1 NEWLINE
704+118:1 NEWLINE
698−117:1 glyph +$
705+118:1 glyph +$
699−117:4 name each
706+118:4 name each
700−117:9 glyph |$
707+118:9 glyph |$
701−117:12 glyph [
708+118:12 glyph [
702−117:13 tight tvar A
709+118:13 tight tvar A
703−117:15 tvar B
710+118:15 tvar B
704−117:16 tight glyph ]
705−118:3 INDENT
706−118:3 glyph [
707−118:4 tight lit %|
708−118:7 name p
709−118:8 tight glyph =
710−118:9 tight tvar B
711−118:10 tight glyph ]
711+118:16 tight glyph ]
712−119:3 NEWLINE
712+119:3 INDENT
713119:3 glyph [
713119:3 glyph [
714−119:4 tight lit %&
714+119:4 tight lit %|
715119:7 name p
715119:7 name p
716119:8 tight glyph =
716119:8 tight glyph =
717−119:9 tight tvar A
717+119:9 tight tvar B
718119:10 tight glyph ]
718119: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 ]
719−121:1 DEDENT
726+122:1 DEDENT
720−121:1 NEWLINE
727+122:1 NEWLINE
721−121:1 glyph +$
728+122:1 glyph +$
722−121:4 name bloq
729+122:4 name bloq
723−121:9 aura @
730+122:9 aura @
724−121:10 NEWLINE
731+122:10 NEWLINE
tests/golden/prelude-1c-structural/tree.txt+168−165
@@ -111,177 +111,180 @@
111 (arm 47:5
111 (arm 47:5
112 (cell 47:5 (bind 47:6 xs) (bind 47:9 f))
112 (cell 47:5 (bind 47:6 xs) (bind 47:9 f))
113 (body 48:7
113 (body 48:7
114+ (cast 48:7
115+ (apply 48:10 list (tvar 48:16 B))
116+ (body 49:9
114− (branch 48:7
117+ (branch 49:9
115− (wing 48:10 xs)
118+ (wing 49:12 xs)
116− (arm 49:9 (lit 49:9 ~) (lit 49:11 ~))
119+ (arm 50:11 (lit 50:11 ~) (lit 50:13 ~))
117− (arm 50:9
120+ (arm 51:11
118− (cell 50:9 (bind 50:10 item) (bind 50:15 rest))
121+ (cell 51:11 (bind 51:12 item) (bind 51:17 rest))
119− (tuple 50:21
122+ (tuple 51:23
120− (group 50:22
123+ (group 51:24
121− (call 50:23 (wing 50:23 f) (wing 50:25 item)))
124+ (call 51:25 (wing 51:25 f) (wing 51:27 item)))
122− (group 50:31
125+ (group 51:33
123− (call 50:32 (wing 50:32 turn) (wing 50:37 rest) (wing 50:42 f))))))))))))
126+ (call 51:34 (wing 51:34 turn) (wing 51:39 rest) (wing 51:44 f))))))))))))))
124− (mold 52:1 dime
127+ (mold 53:1 dime
125− (cell 52:9
128+ (cell 53:9
126− (face 52:10 p (aura 52:12 @ta))
129+ (face 53:10 p (aura 53:12 @ta))
127− (face 52:16 q (aura 52:18 @))))
130+ (face 53:16 q (aura 53:18 @))))
128− (mold 54:1 hair
131+ (mold 55:1 hair
129− (cell 54:9
132+ (cell 55:9
130− (face 54:10 p (aura 54:12 @ud))
133+ (face 55:10 p (aura 55:12 @ud))
131− (face 54:16 q (aura 54:18 @ud))))
134+ (face 55:16 q (aura 55:18 @ud))))
132− (mold 56:1 pint
135+ (mold 57:1 pint
133− (cell 56:9
136+ (cell 57:9
134− (face 56:10 p
137+ (face 57:10 p
135− (cell 56:12
138+ (cell 57:12
136− (face 56:13 p (aura 56:15 @))
139+ (face 57:13 p (aura 57:15 @))
137− (face 56:17 q (aura 56:19 @))))
140+ (face 57:17 q (aura 57:19 @))))
138− (face 56:22 q
141+ (face 57:22 q
139− (cell 56:24
142+ (cell 57:24
140− (face 56:25 p (aura 56:27 @))
143+ (face 57:25 p (aura 57:27 @))
141− (face 56:29 q (aura 56:31 @))))))
144+ (face 57:29 q (aura 57:31 @))))))
142− (mold 58:1 coin
145+ (mold 59:1 coin
143− (union 59:3
146+ (union 60:3
144− (cell 59:3
145− (const 59:4 %$)
146− (face 59:7 p (ref 59:9 dime)))
147 (cell 60:3
147 (cell 60:3
148− (const 60:4 %blob)
148+ (const 60:4 %$)
149− (face 60:10 p (noun 60:12)))
149+ (face 60:7 p (ref 60:9 dime)))
150 (cell 61:3
150 (cell 61:3
151− (const 61:4 %many)
151+ (const 61:4 %blob)
152+ (face 61:10 p (noun 61:12)))
153+ (cell 62:3
154+ (const 62:4 %many)
152− (face 61:10 p
155+ (face 62:10 p
153− (apply 61:12 list (ref 61:18 coin))))))
156+ (apply 62:12 list (ref 62:18 coin))))))
154− (mold 63:1 pair
157+ (mold 64:1 pair
155− (generic 63:9 A B
158+ (generic 64:9 A B
156− (cell 63:18
159+ (cell 64:18
157− (face 63:19 p (tvar 63:21 A))
160+ (face 64:19 p (tvar 64:21 A))
158− (face 63:23 q (tvar 63:25 B)))))
161+ (face 64:23 q (tvar 64:25 B)))))
159− (mold 65:1 trel
162+ (mold 66:1 trel
160− (generic 65:9 A B C
163+ (generic 66:9 A B C
161− (cell 65:20
164+ (cell 66:20
162− (face 65:21 p (tvar 65:23 A))
165+ (face 66:21 p (tvar 66:23 A))
163− (face 65:25 q (tvar 65:27 B))
166+ (face 66:25 q (tvar 66:27 B))
164− (face 65:29 r (tvar 65:31 C)))))
167+ (face 66:29 r (tvar 66:31 C)))))
165− (mold 67:1 qual
168+ (mold 68:1 qual
166− (generic 67:9 A B C D
169+ (generic 68:9 A B C D
167− (cell 67:22
170+ (cell 68:22
168− (face 67:23 p (tvar 67:25 A))
171+ (face 68:23 p (tvar 68:25 A))
169− (face 67:27 q (tvar 67:29 B))
172+ (face 68:27 q (tvar 68:29 B))
170− (face 67:31 r (tvar 67:33 C))
173+ (face 68:31 r (tvar 68:33 C))
171− (face 67:35 s (tvar 67:37 D)))))
174+ (face 68:35 s (tvar 68:37 D)))))
172− (mold 69:1 cord (aura 69:9 @t))
175+ (mold 70:1 cord (aura 70:9 @t))
173− (mold 71:1 knot (aura 71:9 @ta))
176+ (mold 72:1 knot (aura 72:9 @ta))
174− (mold 73:1 tape
177+ (mold 74:1 tape
175− (apply 73:9 list (aura 73:15 @tD)))
178+ (apply 74:9 list (aura 74:15 @tD)))
176− (mold 75:1 path
179+ (mold 76:1 path
177− (apply 75:9 list (ref 75:15 knot)))
180+ (apply 76:9 list (ref 76:15 knot)))
178− (mold 77:1 tank
181+ (mold 78:1 tank
179− (union 78:3
182+ (union 79:3
180− (ref 78:3 cord)
183+ (ref 79:3 cord)
181− (cell 79:3
182− (const 79:4 %leaf)
183− (face 79:10 p (ref 79:12 tape)))
184 (cell 80:3
184 (cell 80:3
185− (const 80:4 %palm)
185+ (const 80:4 %leaf)
186− (face 80:10 p
186+ (face 80:10 p (ref 80:12 tape)))
187− (apply 80:12 qual (ref 80:18 tape) (ref 80:23 tape) (ref 80:28 tape) (ref 80:33 tape)))
188− (face 80:39 q
189− (apply 80:41 list (ref 80:47 tank))))
190 (cell 81:3
187 (cell 81:3
191− (const 81:4 %rose)
188+ (const 81:4 %palm)
192 (face 81:10 p
189 (face 81:10 p
190+ (apply 81:12 qual (ref 81:18 tape) (ref 81:23 tape) (ref 81:28 tape) (ref 81:33 tape)))
191+ (face 81:39 q
192+ (apply 81:41 list (ref 81:47 tank))))
193+ (cell 82:3
194+ (const 82:4 %rose)
195+ (face 82:10 p
193− (apply 81:12 trel (ref 81:18 tape) (ref 81:23 tape) (ref 81:28 tape)))
196+ (apply 82:12 trel (ref 82:18 tape) (ref 82:23 tape) (ref 82:28 tape)))
194− (face 81:34 q
197+ (face 82:34 q
195− (apply 81:36 list (ref 81:42 tank))))))
198+ (apply 82:36 list (ref 82:42 tank))))))
196− (mold 83:1 nail
199+ (mold 84:1 nail
197− (cell 83:9
200+ (cell 84:9
198− (face 83:10 p (ref 83:12 hair))
201+ (face 84:10 p (ref 84:12 hair))
199− (face 83:17 q (ref 83:19 tape))))
202+ (face 84:17 q (ref 84:19 tape))))
200− (mold 85:1 edge
203+ (mold 86:1 edge
201− (cell 85:9
204+ (cell 86:9
202− (face 85:10 p (ref 85:12 hair))
205+ (face 86:10 p (ref 86:12 hair))
203− (face 85:17 q
206+ (face 86:17 q
204− (apply 85:19 unit
207+ (apply 86:19 unit
205− (cell 85:25
208+ (cell 86:25
206− (face 85:26 p (noun 85:28))
209+ (face 86:26 p (noun 86:28))
207− (face 85:30 q (ref 85:32 nail)))))))
210+ (face 86:30 q (ref 86:32 nail)))))))
208− (mold 87:1 rule
211+ (mold 88:1 rule
209− (fn 87:9 (ref 87:12 nail) (ref 87:17 edge)))
212+ (fn 88:9 (ref 88:12 nail) (ref 88:17 edge)))
210− (mold 89:1 spot
213+ (mold 90:1 spot
211− (cell 89:9
214+ (cell 90:9
212− (face 89:10 p (ref 89:12 path))
215+ (face 90:10 p (ref 90:12 path))
213− (face 89:17 q (ref 89:19 pint))))
216+ (face 90:17 q (ref 90:19 pint))))
214− (mold 91:1 toon
217+ (mold 92:1 toon
215− (union 92:3
218+ (union 93:3
216− (cell 92:3
217− (const 92:4 %0)
218− (face 92:7 p (noun 92:9)))
219 (cell 93:3
219 (cell 93:3
220− (const 93:4 %1)
220+ (const 93:4 %0)
221 (face 93:7 p (noun 93:9)))
221 (face 93:7 p (noun 93:9)))
222 (cell 94:3
222 (cell 94:3
223− (const 94:4 %2)
223+ (const 94:4 %1)
224+ (face 94:7 p (noun 94:9)))
225+ (cell 95:3
226+ (const 95:4 %2)
224− (face 94:7 p
227+ (face 95:7 p
225− (apply 94:9 list (ref 94:15 tank))))))
228+ (apply 95:9 list (ref 95:15 tank))))))
226− (mold 96:1 like
229+ (mold 97:1 like
227− (generic 96:9 A
230+ (generic 97:9 A
228− (cell 96:16
231+ (cell 97:16
229− (face 96:17 p (ref 96:19 hair))
232+ (face 97:17 p (ref 97:19 hair))
230− (face 96:24 q
233+ (face 97:24 q
231− (apply 96:26 unit
234+ (apply 97:26 unit
232− (cell 96:32
235+ (cell 97:32
233− (face 96:33 p (tvar 96:35 A))
236+ (face 97:33 p (tvar 97:35 A))
234− (face 96:37 q (ref 96:39 nail))))))))
237+ (face 97:37 q (ref 97:39 nail))))))))
235− (value 98:1 wonk
238+ (value 99:1 wonk
236− (gate 98:9
239+ (gate 99:9
237− (face 98:12 veq
240+ (face 99:12 veq
238− (apply 98:16 like (tvar 98:22 A)))
241+ (apply 99:16 like (tvar 99:22 A)))
239− (body 99:3
242+ (body 100:3
240− (branch 99:3
243+ (branch 100:3
241− (wing 99:6 q.veq)
244+ (wing 100:6 q.veq)
242− (arm 100:5 (lit 100:5 ~) (crash 100:7))
245+ (arm 101:5 (lit 101:5 ~) (crash 101:7))
243− (arm 101:5
246+ (arm 102:5
244− (cell 101:5 (lit 101:6 ~) (bind 101:8 product))
247+ (cell 102:5 (lit 102:6 ~) (bind 102:8 product))
245− (wing 101:17 p.product))))))
248+ (wing 102:17 p.product))))))
246− (mold 103:1 lone
249+ (mold 104:1 lone
247− (generic 103:9 A
250+ (generic 104:9 A
248− (cell 103:16
251+ (cell 104:16
249− (face 103:17 p (tvar 103:19 A)))))
252+ (face 104:17 p (tvar 104:19 A)))))
250− (mold 105:1 lest
253+ (mold 106:1 lest
251− (generic 105:9 A
254+ (generic 106:9 A
252− (cell 105:16
255+ (cell 106:16
253− (face 105:17 i (tvar 105:19 A))
256+ (face 106:17 i (tvar 106:19 A))
254− (face 105:21 t
257+ (face 106:21 t
255− (apply 105:23 list (tvar 105:29 A))))))
258+ (apply 106:23 list (tvar 106:29 A))))))
256− (mold 107:1 pole
259+ (mold 108:1 pole
257− (generic 107:9 A
260+ (generic 108:9 A
258− (union 108:3
261+ (union 109:3
259− (const 108:3 ~)
262+ (const 109:3 ~)
260− (cell 109:3
263+ (cell 110:3
261− (tvar 109:4 A)
264+ (tvar 110:4 A)
262− (apply 109:6 pole (tvar 109:12 A))))))
265+ (apply 110:6 pole (tvar 110:12 A))))))
263− (mold 111:1 quip
266+ (mold 112:1 quip
264− (generic 111:9 A B
267+ (generic 112:9 A B
265− (cell 111:18
268+ (cell 112:18
266− (apply 111:19 list (tvar 111:25 A))
269+ (apply 112:19 list (tvar 112:25 A))
267− (tvar 111:28 B))))
270+ (tvar 112:28 B))))
268− (mold 113:1 tree
271+ (mold 114:1 tree
269− (generic 113:9 A
272+ (generic 114:9 A
270− (union 114:3
273+ (union 115:3
271− (const 114:3 ~)
274+ (const 115:3 ~)
272− (cell 115:3
275+ (cell 116:3
273− (face 115:4 n (tvar 115:6 A))
276+ (face 116:4 n (tvar 116:6 A))
274− (face 115:8 l
277+ (face 116:8 l
275− (apply 115:10 tree (tvar 115:16 A)))
278+ (apply 116:10 tree (tvar 116:16 A)))
276− (face 115:19 r
279+ (face 116:19 r
277− (apply 115:21 tree (tvar 115:27 A)))))))
280+ (apply 116:21 tree (tvar 116:27 A)))))))
278− (mold 117:1 each
281+ (mold 118:1 each
279− (generic 117:9 A B
282+ (generic 118:9 A B
280− (union 118:3
283+ (union 119:3
281− (cell 118:3
282− (const 118:4 %|)
283− (face 118:7 p (tvar 118:9 B)))
284 (cell 119:3
284 (cell 119:3
285− (const 119:4 %&)
285+ (const 119:4 %|)
286+ (face 119:7 p (tvar 119:9 B)))
287+ (cell 120:3
288+ (const 120:4 %&)
286− (face 119:7 p (tvar 119:9 A))))))
289+ (face 120:7 p (tvar 120:9 A))))))
287− (mold 121:1 bloq (aura 121:9 @)))
290+ (mold 122:1 bloq (aura 122:9 @)))
tests/golden/prelude-3g-basic/source.jibb+4−3
@@ -45,9 +45,10 @@
45++ turn |= args=[(list A) $-(A B)]
45++ turn |= args=[(list A) $-(A B)]
46 ?- args
46 ?- args
47 [xs f]
47 [xs f]
48+ ^- (list B)
48− ?- xs
49+ ?- xs
49− ~ ~
50+ ~ ~
50− [item rest] [(f item) (turn rest f)]
51+ [item rest] [(f item) (turn rest f)]
51
52
52+$ dime [p=@ta q=@]
53+$ dime [p=@ta q=@]
53
54
tests/golden/prelude-3g-basic/tokens.txt+101−94
@@ -244,104 +244,111 @@
24447:9 name f
24447:9 name f
24547:10 tight glyph ]
24547:10 tight glyph ]
24648:7 INDENT
24648:7 INDENT
247−48:7 glyph ?-
247+48:7 glyph ^-
248−48:10 name xs
248+48:10 glyph (
249+48:11 tight name list
250+48:16 tvar B
251+48:17 tight glyph )
24949:9 INDENT
25249:9 INDENT
250−49:9 lit ~
253+49:9 glyph ?-
254+49:12 name xs
255+50:11 INDENT
251−49:11 lit ~
256+50:11 lit ~
257+50:13 lit ~
252−50:9 NEWLINE
258+51:11 NEWLINE
253−50:9 glyph [
259+51:11 glyph [
254−50:10 tight name item
260+51:12 tight name item
255−50:15 name rest
261+51:17 name rest
256−50:19 tight glyph ]
262+51:21 tight glyph ]
257−50:21 glyph [
263+51:23 glyph [
258−50:22 tight glyph (
264+51:24 tight glyph (
259−50:23 tight name f
265+51:25 tight name f
260−50:25 name item
266+51:27 name item
261−50:29 tight glyph )
267+51:31 tight glyph )
262−50:31 glyph (
268+51:33 glyph (
263−50:32 tight name turn
269+51:34 tight name turn
264−50:37 name rest
270+51:39 name rest
265−50:42 name f
271+51:44 name f
266−50:43 tight glyph )
267−50:44 tight glyph ]
272+51:45 tight glyph )
273+51:46 tight glyph ]
274+53:1 DEDENT
268−52:1 DEDENT
275+53:1 DEDENT
269−52:1 DEDENT
276+53:1 DEDENT
270−52:1 DEDENT
277+53:1 DEDENT
271−52:1 DEDENT
278+53:1 DEDENT
272−52:1 NEWLINE
279+53:1 NEWLINE
273−52:1 glyph +$
280+53:1 glyph +$
274−52:4 name dime
281+53:4 name dime
275−52:9 glyph [
282+53:9 glyph [
276−52:10 tight name p
283+53:10 tight name p
277−52:11 tight glyph =
284+53:11 tight glyph =
278−52:12 tight aura @ta
285+53:12 tight aura @ta
279−52:16 name q
286+53:16 name q
280−52:17 tight glyph =
287+53:17 tight glyph =
281−52:18 tight aura @
288+53:18 tight aura @
282−52:19 tight glyph ]
289+53:19 tight glyph ]
283−54:1 NEWLINE
290+55:1 NEWLINE
284−54:1 glyph +$
291+55:1 glyph +$
285−54:4 name hair
292+55:4 name hair
286−54:9 glyph [
293+55:9 glyph [
287−54:10 tight name p
294+55:10 tight name p
288−54:11 tight glyph =
295+55:11 tight glyph =
289−54:12 tight aura @ud
296+55:12 tight aura @ud
290−54:16 name q
297+55:16 name q
291−54:17 tight glyph =
298+55:17 tight glyph =
292−54:18 tight aura @ud
299+55:18 tight aura @ud
293−54:21 tight glyph ]
300+55:21 tight glyph ]
294−56:1 NEWLINE
301+57:1 NEWLINE
295−56:1 glyph +$
302+57:1 glyph +$
296−56:4 name pint
303+57:4 name pint
297−56:9 glyph [
304+57:9 glyph [
298−56:10 tight name p
305+57:10 tight name p
299−56:11 tight glyph =
306+57:11 tight glyph =
300−56:12 tight glyph [
307+57:12 tight glyph [
301−56:13 tight name p
308+57:13 tight name p
302−56:14 tight glyph =
309+57:14 tight glyph =
303−56:15 tight aura @
310+57:15 tight aura @
304−56:17 name q
311+57:17 name q
305−56:18 tight glyph =
312+57:18 tight glyph =
306−56:19 tight aura @
313+57:19 tight aura @
307−56:20 tight glyph ]
314+57:20 tight glyph ]
308−56:22 name q
315+57:22 name q
309−56:23 tight glyph =
316+57:23 tight glyph =
310−56:24 tight glyph [
317+57:24 tight glyph [
311−56:25 tight name p
318+57:25 tight name p
312−56:26 tight glyph =
319+57:26 tight glyph =
313−56:27 tight aura @
320+57:27 tight aura @
314−56:29 name q
321+57:29 name q
315−56:30 tight glyph =
322+57:30 tight glyph =
316−56:31 tight aura @
323+57:31 tight aura @
317−56:32 tight glyph ]
324+57:32 tight glyph ]
318−56:33 tight glyph ]
325+57:33 tight glyph ]
319−58:1 NEWLINE
326+59:1 NEWLINE
320−58:1 glyph +$
327+59:1 glyph +$
321−58:4 name coin
328+59:4 name coin
322−59:3 INDENT
329+60:3 INDENT
323−59:3 glyph [
324−59:4 tight lit %$
325−59:7 name p
326−59:8 tight glyph =
327−59:9 tight name dime
328−59:13 tight glyph ]
329−60:3 NEWLINE
33060:3 glyph [
33060:3 glyph [
331−60:4 tight lit %blob
331+60:4 tight lit %$
332−60:10 name p
332+60:7 name p
333−60:11 tight glyph =
333+60:8 tight glyph =
334−60:12 tight glyph *
334+60:9 tight name dime
33560:13 tight glyph ]
33560:13 tight glyph ]
33661:3 NEWLINE
33661:3 NEWLINE
33761:3 glyph [
33761:3 glyph [
338−61:4 tight lit %many
338+61:4 tight lit %blob
33961:10 name p
33961:10 name p
34061:11 tight glyph =
34061:11 tight glyph =
341−61:12 tight glyph (
341+61:12 tight glyph *
342+61:13 tight glyph ]
343+62:3 NEWLINE
344+62:3 glyph [
345+62:4 tight lit %many
346+62:10 name p
347+62:11 tight glyph =
348+62:12 tight glyph (
342−61:13 tight name list
349+62:13 tight name list
343−61:18 name coin
350+62:18 name coin
344−61:22 tight glyph )
351+62:22 tight glyph )
345−61:23 tight glyph ]
352+62:23 tight glyph ]
346−61:24 DEDENT
353+62:24 DEDENT
347−61:24 NEWLINE
354+62:24 NEWLINE
tests/golden/prelude-3g-basic/tree.txt+41−38
@@ -111,43 +111,46 @@
111 (arm 47:5
111 (arm 47:5
112 (cell 47:5 (bind 47:6 xs) (bind 47:9 f))
112 (cell 47:5 (bind 47:6 xs) (bind 47:9 f))
113 (body 48:7
113 (body 48:7
114+ (cast 48:7
115+ (apply 48:10 list (tvar 48:16 B))
116+ (body 49:9
114− (branch 48:7
117+ (branch 49:9
115− (wing 48:10 xs)
118+ (wing 49:12 xs)
116− (arm 49:9 (lit 49:9 ~) (lit 49:11 ~))
119+ (arm 50:11 (lit 50:11 ~) (lit 50:13 ~))
117− (arm 50:9
120+ (arm 51:11
118− (cell 50:9 (bind 50:10 item) (bind 50:15 rest))
121+ (cell 51:11 (bind 51:12 item) (bind 51:17 rest))
119− (tuple 50:21
122+ (tuple 51:23
120− (group 50:22
123+ (group 51:24
121− (call 50:23 (wing 50:23 f) (wing 50:25 item)))
124+ (call 51:25 (wing 51:25 f) (wing 51:27 item)))
122− (group 50:31
125+ (group 51:33
123− (call 50:32 (wing 50:32 turn) (wing 50:37 rest) (wing 50:42 f))))))))))))
126+ (call 51:34 (wing 51:34 turn) (wing 51:39 rest) (wing 51:44 f))))))))))))))
124− (mold 52:1 dime
127+ (mold 53:1 dime
125− (cell 52:9
128+ (cell 53:9
126− (face 52:10 p (aura 52:12 @ta))
129+ (face 53:10 p (aura 53:12 @ta))
127− (face 52:16 q (aura 52:18 @))))
130+ (face 53:16 q (aura 53:18 @))))
128− (mold 54:1 hair
131+ (mold 55:1 hair
129− (cell 54:9
132+ (cell 55:9
130− (face 54:10 p (aura 54:12 @ud))
133+ (face 55:10 p (aura 55:12 @ud))
131− (face 54:16 q (aura 54:18 @ud))))
134+ (face 55:16 q (aura 55:18 @ud))))
132− (mold 56:1 pint
135+ (mold 57:1 pint
133− (cell 56:9
136+ (cell 57:9
134− (face 56:10 p
137+ (face 57:10 p
135− (cell 56:12
138+ (cell 57:12
136− (face 56:13 p (aura 56:15 @))
139+ (face 57:13 p (aura 57:15 @))
137− (face 56:17 q (aura 56:19 @))))
140+ (face 57:17 q (aura 57:19 @))))
138− (face 56:22 q
141+ (face 57:22 q
139− (cell 56:24
142+ (cell 57:24
140− (face 56:25 p (aura 56:27 @))
143+ (face 57:25 p (aura 57:27 @))
141− (face 56:29 q (aura 56:31 @))))))
144+ (face 57:29 q (aura 57:31 @))))))
142− (mold 58:1 coin
145+ (mold 59:1 coin
143− (union 59:3
146+ (union 60:3
144− (cell 59:3
145− (const 59:4 %$)
146− (face 59:7 p (ref 59:9 dime)))
147 (cell 60:3
147 (cell 60:3
148− (const 60:4 %blob)
148+ (const 60:4 %$)
149− (face 60:10 p (noun 60:12)))
149+ (face 60:7 p (ref 60:9 dime)))
150 (cell 61:3
150 (cell 61:3
151− (const 61:4 %many)
151+ (const 61:4 %blob)
152+ (face 61:10 p (noun 61:12)))
153+ (cell 62:3
154+ (const 62:4 %many)
152− (face 61:10 p
155+ (face 62:10 p
153− (apply 61:12 list (ref 61:18 coin)))))))
156+ (apply 62:12 list (ref 62:18 coin)))))))
tests/golden/prelude-3g-like/source.jibb+4−3
@@ -45,9 +45,10 @@
45++ turn |= args=[(list A) $-(A B)]
45++ turn |= args=[(list A) $-(A B)]
46 ?- args
46 ?- args
47 [xs f]
47 [xs f]
48+ ^- (list B)
48− ?- xs
49+ ?- xs
49− ~ ~
50+ ~ ~
50− [item rest] [(f item) (turn rest f)]
51+ [item rest] [(f item) (turn rest f)]
51
52
52+$ dime [p=@ta q=@]
53+$ dime [p=@ta q=@]
53
54
tests/golden/prelude-3g-like/tokens.txt+339−332
@@ -244,363 +244,370 @@
24447:9 name f
24447:9 name f
24547:10 tight glyph ]
24547:10 tight glyph ]
24648:7 INDENT
24648:7 INDENT
247−48:7 glyph ?-
247+48:7 glyph ^-
248−48:10 name xs
248+48:10 glyph (
249+48:11 tight name list
250+48:16 tvar B
251+48:17 tight glyph )
24949:9 INDENT
25249:9 INDENT
250−49:9 lit ~
253+49:9 glyph ?-
254+49:12 name xs
255+50:11 INDENT
251−49:11 lit ~
256+50:11 lit ~
257+50:13 lit ~
252−50:9 NEWLINE
258+51:11 NEWLINE
253−50:9 glyph [
259+51:11 glyph [
254−50:10 tight name item
260+51:12 tight name item
255−50:15 name rest
261+51:17 name rest
256−50:19 tight glyph ]
262+51:21 tight glyph ]
257−50:21 glyph [
263+51:23 glyph [
258−50:22 tight glyph (
264+51:24 tight glyph (
259−50:23 tight name f
265+51:25 tight name f
260−50:25 name item
266+51:27 name item
261−50:29 tight glyph )
267+51:31 tight glyph )
262−50:31 glyph (
268+51:33 glyph (
263−50:32 tight name turn
269+51:34 tight name turn
264−50:37 name rest
270+51:39 name rest
265−50:42 name f
271+51:44 name f
266−50:43 tight glyph )
267−50:44 tight glyph ]
272+51:45 tight glyph )
273+51:46 tight glyph ]
274+53:1 DEDENT
268−52:1 DEDENT
275+53:1 DEDENT
269−52:1 DEDENT
276+53:1 DEDENT
270−52:1 DEDENT
277+53:1 DEDENT
271−52:1 DEDENT
278+53:1 DEDENT
272−52:1 NEWLINE
279+53:1 NEWLINE
273−52:1 glyph +$
280+53:1 glyph +$
274−52:4 name dime
281+53:4 name dime
275−52:9 glyph [
282+53:9 glyph [
276−52:10 tight name p
283+53:10 tight name p
277−52:11 tight glyph =
284+53:11 tight glyph =
278−52:12 tight aura @ta
285+53:12 tight aura @ta
279−52:16 name q
286+53:16 name q
280−52:17 tight glyph =
287+53:17 tight glyph =
281−52:18 tight aura @
288+53:18 tight aura @
282−52:19 tight glyph ]
289+53:19 tight glyph ]
283−54:1 NEWLINE
290+55:1 NEWLINE
284−54:1 glyph +$
291+55:1 glyph +$
285−54:4 name hair
292+55:4 name hair
286−54:9 glyph [
293+55:9 glyph [
287−54:10 tight name p
294+55:10 tight name p
288−54:11 tight glyph =
295+55:11 tight glyph =
289−54:12 tight aura @ud
296+55:12 tight aura @ud
290−54:16 name q
297+55:16 name q
291−54:17 tight glyph =
298+55:17 tight glyph =
292−54:18 tight aura @ud
299+55:18 tight aura @ud
293−54:21 tight glyph ]
300+55:21 tight glyph ]
294−56:1 NEWLINE
301+57:1 NEWLINE
295−56:1 glyph +$
302+57:1 glyph +$
296−56:4 name pint
303+57:4 name pint
297−56:9 glyph [
304+57:9 glyph [
298−56:10 tight name p
305+57:10 tight name p
299−56:11 tight glyph =
306+57:11 tight glyph =
300−56:12 tight glyph [
307+57:12 tight glyph [
301−56:13 tight name p
308+57:13 tight name p
302−56:14 tight glyph =
309+57:14 tight glyph =
303−56:15 tight aura @
310+57:15 tight aura @
304−56:17 name q
311+57:17 name q
305−56:18 tight glyph =
312+57:18 tight glyph =
306−56:19 tight aura @
313+57:19 tight aura @
307−56:20 tight glyph ]
314+57:20 tight glyph ]
308−56:22 name q
315+57:22 name q
309−56:23 tight glyph =
316+57:23 tight glyph =
310−56:24 tight glyph [
317+57:24 tight glyph [
311−56:25 tight name p
318+57:25 tight name p
312−56:26 tight glyph =
319+57:26 tight glyph =
313−56:27 tight aura @
320+57:27 tight aura @
314−56:29 name q
321+57:29 name q
315−56:30 tight glyph =
322+57:30 tight glyph =
316−56:31 tight aura @
323+57:31 tight aura @
317−56:32 tight glyph ]
324+57:32 tight glyph ]
318−56:33 tight glyph ]
325+57:33 tight glyph ]
319−58:1 NEWLINE
326+59:1 NEWLINE
320−58:1 glyph +$
327+59:1 glyph +$
321−58:4 name coin
328+59:4 name coin
322−59:3 INDENT
329+60:3 INDENT
323−59:3 glyph [
324−59:4 tight lit %$
325−59:7 name p
326−59:8 tight glyph =
327−59:9 tight name dime
328−59:13 tight glyph ]
329−60:3 NEWLINE
33060:3 glyph [
33060:3 glyph [
331−60:4 tight lit %blob
331+60:4 tight lit %$
332−60:10 name p
332+60:7 name p
333−60:11 tight glyph =
333+60:8 tight glyph =
334−60:12 tight glyph *
334+60:9 tight name dime
33560:13 tight glyph ]
33560:13 tight glyph ]
33661:3 NEWLINE
33661:3 NEWLINE
33761:3 glyph [
33761:3 glyph [
338−61:4 tight lit %many
338+61:4 tight lit %blob
33961:10 name p
33961:10 name p
34061:11 tight glyph =
34061:11 tight glyph =
341−61:12 tight glyph (
341+61:12 tight glyph *
342−61:13 tight name list
342+61:13 tight glyph ]
343+62:3 NEWLINE
344+62:3 glyph [
345+62:4 tight lit %many
346+62:10 name p
347+62:11 tight glyph =
348+62:12 tight glyph (
349+62:13 tight name list
343−61:18 name coin
350+62:18 name coin
344−61:22 tight glyph )
351+62:22 tight glyph )
345−61:23 tight glyph ]
352+62:23 tight glyph ]
346−63:1 DEDENT
353+64:1 DEDENT
347−63:1 NEWLINE
354+64:1 NEWLINE
348−63:1 glyph +$
355+64:1 glyph +$
349−63:4 name pair
356+64:4 name pair
350−63:9 glyph |$
357+64:9 glyph |$
351−63:12 glyph [
358+64:12 glyph [
352−63:13 tight tvar A
359+64:13 tight tvar A
353−63:15 tvar B
360+64:15 tvar B
354−63:16 tight glyph ]
361+64:16 tight glyph ]
355−63:18 glyph [
362+64:18 glyph [
356−63:19 tight name p
363+64:19 tight name p
357−63:20 tight glyph =
364+64:20 tight glyph =
358−63:21 tight tvar A
365+64:21 tight tvar A
359−63:23 name q
366+64:23 name q
360−63:24 tight glyph =
367+64:24 tight glyph =
361−63:25 tight tvar B
368+64:25 tight tvar B
362−63:26 tight glyph ]
369+64:26 tight glyph ]
363−65:1 NEWLINE
370+66:1 NEWLINE
364−65:1 glyph +$
371+66:1 glyph +$
365−65:4 name trel
372+66:4 name trel
366−65:9 glyph |$
373+66:9 glyph |$
367−65:12 glyph [
374+66:12 glyph [
368−65:13 tight tvar A
375+66:13 tight tvar A
369−65:15 tvar B
376+66:15 tvar B
370−65:17 tvar C
377+66:17 tvar C
371−65:18 tight glyph ]
378+66:18 tight glyph ]
372−65:20 glyph [
379+66:20 glyph [
373−65:21 tight name p
380+66:21 tight name p
374−65:22 tight glyph =
381+66:22 tight glyph =
375−65:23 tight tvar A
382+66:23 tight tvar A
376−65:25 name q
383+66:25 name q
377−65:26 tight glyph =
384+66:26 tight glyph =
378−65:27 tight tvar B
385+66:27 tight tvar B
379−65:29 name r
386+66:29 name r
380−65:30 tight glyph =
387+66:30 tight glyph =
381−65:31 tight tvar C
388+66:31 tight tvar C
382−65:32 tight glyph ]
389+66:32 tight glyph ]
383−67:1 NEWLINE
390+68:1 NEWLINE
384−67:1 glyph +$
391+68:1 glyph +$
385−67:4 name qual
392+68:4 name qual
386−67:9 glyph |$
393+68:9 glyph |$
387−67:12 glyph [
394+68:12 glyph [
388−67:13 tight tvar A
395+68:13 tight tvar A
389−67:15 tvar B
396+68:15 tvar B
390−67:17 tvar C
397+68:17 tvar C
391−67:19 tvar D
398+68:19 tvar D
392−67:20 tight glyph ]
399+68:20 tight glyph ]
393−67:22 glyph [
400+68:22 glyph [
394−67:23 tight name p
401+68:23 tight name p
395−67:24 tight glyph =
402+68:24 tight glyph =
396−67:25 tight tvar A
403+68:25 tight tvar A
397−67:27 name q
404+68:27 name q
398−67:28 tight glyph =
405+68:28 tight glyph =
399−67:29 tight tvar B
406+68:29 tight tvar B
400−67:31 name r
407+68:31 name r
401−67:32 tight glyph =
408+68:32 tight glyph =
402−67:33 tight tvar C
409+68:33 tight tvar C
403−67:35 name s
410+68:35 name s
404−67:36 tight glyph =
411+68:36 tight glyph =
405−67:37 tight tvar D
412+68:37 tight tvar D
406−67:38 tight glyph ]
413+68:38 tight glyph ]
407−69:1 NEWLINE
414+70:1 NEWLINE
408−69:1 glyph +$
415+70:1 glyph +$
409−69:4 name cord
416+70:4 name cord
410−69:9 aura @t
417+70:9 aura @t
411−71:1 NEWLINE
418+72:1 NEWLINE
412−71:1 glyph +$
419+72:1 glyph +$
413−71:4 name knot
420+72:4 name knot
414−71:9 aura @ta
421+72:9 aura @ta
415−73:1 NEWLINE
422+74:1 NEWLINE
416−73:1 glyph +$
423+74:1 glyph +$
417−73:4 name tape
424+74:4 name tape
418−73:9 glyph (
425+74:9 glyph (
419−73:10 tight name list
426+74:10 tight name list
420−73:15 aura @tD
427+74:15 aura @tD
421−73:18 tight glyph )
428+74:18 tight glyph )
422−75:1 NEWLINE
429+76:1 NEWLINE
423−75:1 glyph +$
430+76:1 glyph +$
424−75:4 name path
431+76:4 name path
425−75:9 glyph (
432+76:9 glyph (
426−75:10 tight name list
433+76:10 tight name list
427−75:15 name knot
434+76:15 name knot
428−75:19 tight glyph )
435+76:19 tight glyph )
429−77:1 NEWLINE
436+78:1 NEWLINE
430−77:1 glyph +$
437+78:1 glyph +$
431−77:4 name tank
438+78:4 name tank
432−78:3 INDENT
439+79:3 INDENT
433−78:3 name cord
434−79:3 NEWLINE
435−79:3 glyph [
436−79:4 tight lit %leaf
437−79:10 name p
440+79:3 name cord
438−79:11 tight glyph =
439−79:12 tight name tape
440−79:16 tight glyph ]
44180:3 NEWLINE
44180:3 NEWLINE
44280:3 glyph [
44280:3 glyph [
443−80:4 tight lit %palm
443+80:4 tight lit %leaf
44480:10 name p
44480:10 name p
44580:11 tight glyph =
44580:11 tight glyph =
446−80:12 tight glyph (
446+80:12 tight name tape
447−80:13 tight name qual
448−80:18 name tape
449−80:23 name tape
450−80:28 name tape
451−80:33 name tape
452−80:37 tight glyph )
453−80:39 name q
454−80:40 tight glyph =
455−80:41 tight glyph (
456−80:42 tight name list
457−80:47 name tank
458−80:51 tight glyph )
459−80:52 tight glyph ]
447+80:16 tight glyph ]
46081:3 NEWLINE
44881:3 NEWLINE
46181:3 glyph [
44981:3 glyph [
462−81:4 tight lit %rose
450+81:4 tight lit %palm
46381:10 name p
45181:10 name p
46481:11 tight glyph =
45281:11 tight glyph =
46581:12 tight glyph (
45381:12 tight glyph (
466−81:13 tight name trel
454+81:13 tight name qual
46781:18 name tape
45581:18 name tape
46881:23 name tape
45681:23 name tape
46981:28 name tape
45781:28 name tape
458+81:33 name tape
470−81:32 tight glyph )
459+81:37 tight glyph )
460+81:39 name q
461+81:40 tight glyph =
462+81:41 tight glyph (
463+81:42 tight name list
464+81:47 name tank
465+81:51 tight glyph )
466+81:52 tight glyph ]
467+82:3 NEWLINE
468+82:3 glyph [
469+82:4 tight lit %rose
470+82:10 name p
471+82:11 tight glyph =
472+82:12 tight glyph (
473+82:13 tight name trel
474+82:18 name tape
475+82:23 name tape
476+82:28 name tape
477+82:32 tight glyph )
471−81:34 name q
478+82:34 name q
472−81:35 tight glyph =
479+82:35 tight glyph =
473−81:36 tight glyph (
480+82:36 tight glyph (
474−81:37 tight name list
481+82:37 tight name list
475−81:42 name tank
482+82:42 name tank
476−81:46 tight glyph )
483+82:46 tight glyph )
477−81:47 tight glyph ]
484+82:47 tight glyph ]
478−83:1 DEDENT
485+84:1 DEDENT
479−83:1 NEWLINE
486+84:1 NEWLINE
480−83:1 glyph +$
487+84:1 glyph +$
481−83:4 name nail
488+84:4 name nail
482−83:9 glyph [
489+84:9 glyph [
483−83:10 tight name p
490+84:10 tight name p
484−83:11 tight glyph =
491+84:11 tight glyph =
485−83:12 tight name hair
492+84:12 tight name hair
486−83:17 name q
493+84:17 name q
487−83:18 tight glyph =
494+84:18 tight glyph =
488−83:19 tight name tape
495+84:19 tight name tape
489−83:23 tight glyph ]
496+84:23 tight glyph ]
490−85:1 NEWLINE
497+86:1 NEWLINE
491−85:1 glyph +$
498+86:1 glyph +$
492−85:4 name edge
499+86:4 name edge
493−85:9 glyph [
500+86:9 glyph [
494−85:10 tight name p
501+86:10 tight name p
495−85:11 tight glyph =
502+86:11 tight glyph =
496−85:12 tight name hair
503+86:12 tight name hair
497−85:17 name q
504+86:17 name q
498−85:18 tight glyph =
505+86:18 tight glyph =
499−85:19 tight glyph (
506+86:19 tight glyph (
500−85:20 tight name unit
507+86:20 tight name unit
501−85:25 glyph [
508+86:25 glyph [
502−85:26 tight name p
509+86:26 tight name p
503−85:27 tight glyph =
510+86:27 tight glyph =
504−85:28 tight glyph *
511+86:28 tight glyph *
505−85:30 name q
512+86:30 name q
506−85:31 tight glyph =
513+86:31 tight glyph =
507−85:32 tight name nail
514+86:32 tight name nail
508−85:36 tight glyph ]
515+86:36 tight glyph ]
509−85:37 tight glyph )
516+86:37 tight glyph )
510−85:38 tight glyph ]
517+86:38 tight glyph ]
511−87:1 NEWLINE
518+88:1 NEWLINE
512−87:1 glyph +$
519+88:1 glyph +$
513−87:4 name rule
520+88:4 name rule
514−87:9 glyph $-(
521+88:9 glyph $-(
515−87:12 tight name nail
522+88:12 tight name nail
516−87:17 name edge
523+88:17 name edge
517−87:21 tight glyph )
524+88:21 tight glyph )
518−89:1 NEWLINE
525+90:1 NEWLINE
519−89:1 glyph +$
526+90:1 glyph +$
520−89:4 name spot
527+90:4 name spot
521−89:9 glyph [
528+90:9 glyph [
522−89:10 tight name p
529+90:10 tight name p
523−89:11 tight glyph =
530+90:11 tight glyph =
524−89:12 tight name path
531+90:12 tight name path
525−89:17 name q
532+90:17 name q
526−89:18 tight glyph =
533+90:18 tight glyph =
527−89:19 tight name pint
534+90:19 tight name pint
528−89:23 tight glyph ]
535+90:23 tight glyph ]
529−91:1 NEWLINE
536+92:1 NEWLINE
530−91:1 glyph +$
537+92:1 glyph +$
531−91:4 name toon
538+92:4 name toon
532−92:3 INDENT
539+93:3 INDENT
533−92:3 glyph [
534−92:4 tight lit %0
535−92:7 name p
536−92:8 tight glyph =
537−92:9 tight glyph *
538−92:10 tight glyph ]
539−93:3 NEWLINE
54093:3 glyph [
54093:3 glyph [
541−93:4 tight lit %1
541+93:4 tight lit %0
54293:7 name p
54293:7 name p
54393:8 tight glyph =
54393:8 tight glyph =
54493:9 tight glyph *
54493:9 tight glyph *
54593:10 tight glyph ]
54593:10 tight glyph ]
54694:3 NEWLINE
54694:3 NEWLINE
54794:3 glyph [
54794:3 glyph [
548−94:4 tight lit %2
548+94:4 tight lit %1
54994:7 name p
54994:7 name p
55094:8 tight glyph =
55094:8 tight glyph =
551−94:9 tight glyph (
551+94:9 tight glyph *
552−94:10 tight name list
552+94:10 tight glyph ]
553+95:3 NEWLINE
554+95:3 glyph [
555+95:4 tight lit %2
556+95:7 name p
557+95:8 tight glyph =
558+95:9 tight glyph (
559+95:10 tight name list
553−94:15 name tank
560+95:15 name tank
554−94:19 tight glyph )
561+95:19 tight glyph )
555−94:20 tight glyph ]
562+95:20 tight glyph ]
556−96:1 DEDENT
563+97:1 DEDENT
557−96:1 NEWLINE
564+97:1 NEWLINE
558−96:1 glyph +$
565+97:1 glyph +$
559−96:4 name like
566+97:4 name like
560−96:9 glyph |$
567+97:9 glyph |$
561−96:12 glyph [
568+97:12 glyph [
562−96:13 tight tvar A
569+97:13 tight tvar A
563−96:14 tight glyph ]
570+97:14 tight glyph ]
564−96:16 glyph [
571+97:16 glyph [
565−96:17 tight name p
572+97:17 tight name p
566−96:18 tight glyph =
573+97:18 tight glyph =
567−96:19 tight name hair
574+97:19 tight name hair
568−96:24 name q
575+97:24 name q
569−96:25 tight glyph =
576+97:25 tight glyph =
570−96:26 tight glyph (
577+97:26 tight glyph (
571−96:27 tight name unit
578+97:27 tight name unit
572−96:32 glyph [
579+97:32 glyph [
573−96:33 tight name p
580+97:33 tight name p
574−96:34 tight glyph =
581+97:34 tight glyph =
575−96:35 tight tvar A
582+97:35 tight tvar A
576−96:37 name q
583+97:37 name q
577−96:38 tight glyph =
584+97:38 tight glyph =
578−96:39 tight name nail
585+97:39 tight name nail
579−96:43 tight glyph ]
586+97:43 tight glyph ]
580−96:44 tight glyph )
587+97:44 tight glyph )
581−96:45 tight glyph ]
588+97:45 tight glyph ]
582−98:1 NEWLINE
589+99:1 NEWLINE
583−98:1 glyph ++
590+99:1 glyph ++
584−98:4 name wonk
591+99:4 name wonk
585−98:9 glyph |=
592+99:9 glyph |=
586−98:12 name veq
593+99:12 name veq
587−98:15 tight glyph =
594+99:15 tight glyph =
588−98:16 tight glyph (
595+99:16 tight glyph (
589−98:17 tight name like
596+99:17 tight name like
590−98:22 tvar A
597+99:22 tvar A
591−98:23 tight glyph )
598+99:23 tight glyph )
592−99:3 INDENT
599+100:3 INDENT
593−99:3 glyph ?-
600+100:3 glyph ?-
594−99:6 wing q.veq
601+100:6 wing q.veq
595−100:5 INDENT
602+101:5 INDENT
596−100:5 lit ~
603+101:5 lit ~
597−100:7 glyph !!
604+101:7 glyph !!
598−101:5 NEWLINE
605+102:5 NEWLINE
599−101:5 glyph [
606+102:5 glyph [
600−101:6 tight lit ~
607+102:6 tight lit ~
601−101:8 name product
608+102:8 name product
602−101:15 tight glyph ]
609+102:15 tight glyph ]
603−101:17 wing p.product
610+102:17 wing p.product
604−101:26 DEDENT
611+102:26 DEDENT
605−101:26 DEDENT
612+102:26 DEDENT
606−101:26 NEWLINE
613+102:26 NEWLINE
tests/golden/prelude-3g-like/tree.txt+127−124
@@ -111,135 +111,138 @@
111 (arm 47:5
111 (arm 47:5
112 (cell 47:5 (bind 47:6 xs) (bind 47:9 f))
112 (cell 47:5 (bind 47:6 xs) (bind 47:9 f))
113 (body 48:7
113 (body 48:7
114+ (cast 48:7
115+ (apply 48:10 list (tvar 48:16 B))
116+ (body 49:9
114− (branch 48:7
117+ (branch 49:9
115− (wing 48:10 xs)
118+ (wing 49:12 xs)
116− (arm 49:9 (lit 49:9 ~) (lit 49:11 ~))
119+ (arm 50:11 (lit 50:11 ~) (lit 50:13 ~))
117− (arm 50:9
120+ (arm 51:11
118− (cell 50:9 (bind 50:10 item) (bind 50:15 rest))
121+ (cell 51:11 (bind 51:12 item) (bind 51:17 rest))
119− (tuple 50:21
122+ (tuple 51:23
120− (group 50:22
123+ (group 51:24
121− (call 50:23 (wing 50:23 f) (wing 50:25 item)))
124+ (call 51:25 (wing 51:25 f) (wing 51:27 item)))
122− (group 50:31
125+ (group 51:33
123− (call 50:32 (wing 50:32 turn) (wing 50:37 rest) (wing 50:42 f))))))))))))
126+ (call 51:34 (wing 51:34 turn) (wing 51:39 rest) (wing 51:44 f))))))))))))))
124− (mold 52:1 dime
127+ (mold 53:1 dime
125− (cell 52:9
128+ (cell 53:9
126− (face 52:10 p (aura 52:12 @ta))
129+ (face 53:10 p (aura 53:12 @ta))
127− (face 52:16 q (aura 52:18 @))))
130+ (face 53:16 q (aura 53:18 @))))
128− (mold 54:1 hair
131+ (mold 55:1 hair
129− (cell 54:9
132+ (cell 55:9
130− (face 54:10 p (aura 54:12 @ud))
133+ (face 55:10 p (aura 55:12 @ud))
131− (face 54:16 q (aura 54:18 @ud))))
134+ (face 55:16 q (aura 55:18 @ud))))
132− (mold 56:1 pint
135+ (mold 57:1 pint
133− (cell 56:9
136+ (cell 57:9
134− (face 56:10 p
137+ (face 57:10 p
135− (cell 56:12
138+ (cell 57:12
136− (face 56:13 p (aura 56:15 @))
139+ (face 57:13 p (aura 57:15 @))
137− (face 56:17 q (aura 56:19 @))))
140+ (face 57:17 q (aura 57:19 @))))
138− (face 56:22 q
141+ (face 57:22 q
139− (cell 56:24
142+ (cell 57:24
140− (face 56:25 p (aura 56:27 @))
143+ (face 57:25 p (aura 57:27 @))
141− (face 56:29 q (aura 56:31 @))))))
144+ (face 57:29 q (aura 57:31 @))))))
142− (mold 58:1 coin
145+ (mold 59:1 coin
143− (union 59:3
146+ (union 60:3
144− (cell 59:3
145− (const 59:4 %$)
146− (face 59:7 p (ref 59:9 dime)))
147 (cell 60:3
147 (cell 60:3
148− (const 60:4 %blob)
148+ (const 60:4 %$)
149− (face 60:10 p (noun 60:12)))
149+ (face 60:7 p (ref 60:9 dime)))
150 (cell 61:3
150 (cell 61:3
151− (const 61:4 %many)
151+ (const 61:4 %blob)
152+ (face 61:10 p (noun 61:12)))
153+ (cell 62:3
154+ (const 62:4 %many)
152− (face 61:10 p
155+ (face 62:10 p
153− (apply 61:12 list (ref 61:18 coin))))))
156+ (apply 62:12 list (ref 62:18 coin))))))
154− (mold 63:1 pair
157+ (mold 64:1 pair
155− (generic 63:9 A B
158+ (generic 64:9 A B
156− (cell 63:18
159+ (cell 64:18
157− (face 63:19 p (tvar 63:21 A))
160+ (face 64:19 p (tvar 64:21 A))
158− (face 63:23 q (tvar 63:25 B)))))
161+ (face 64:23 q (tvar 64:25 B)))))
159− (mold 65:1 trel
162+ (mold 66:1 trel
160− (generic 65:9 A B C
163+ (generic 66:9 A B C
161− (cell 65:20
164+ (cell 66:20
162− (face 65:21 p (tvar 65:23 A))
165+ (face 66:21 p (tvar 66:23 A))
163− (face 65:25 q (tvar 65:27 B))
166+ (face 66:25 q (tvar 66:27 B))
164− (face 65:29 r (tvar 65:31 C)))))
167+ (face 66:29 r (tvar 66:31 C)))))
165− (mold 67:1 qual
168+ (mold 68:1 qual
166− (generic 67:9 A B C D
169+ (generic 68:9 A B C D
167− (cell 67:22
170+ (cell 68:22
168− (face 67:23 p (tvar 67:25 A))
171+ (face 68:23 p (tvar 68:25 A))
169− (face 67:27 q (tvar 67:29 B))
172+ (face 68:27 q (tvar 68:29 B))
170− (face 67:31 r (tvar 67:33 C))
173+ (face 68:31 r (tvar 68:33 C))
171− (face 67:35 s (tvar 67:37 D)))))
174+ (face 68:35 s (tvar 68:37 D)))))
172− (mold 69:1 cord (aura 69:9 @t))
175+ (mold 70:1 cord (aura 70:9 @t))
173− (mold 71:1 knot (aura 71:9 @ta))
176+ (mold 72:1 knot (aura 72:9 @ta))
174− (mold 73:1 tape
177+ (mold 74:1 tape
175− (apply 73:9 list (aura 73:15 @tD)))
178+ (apply 74:9 list (aura 74:15 @tD)))
176− (mold 75:1 path
179+ (mold 76:1 path
177− (apply 75:9 list (ref 75:15 knot)))
180+ (apply 76:9 list (ref 76:15 knot)))
178− (mold 77:1 tank
181+ (mold 78:1 tank
179− (union 78:3
182+ (union 79:3
180− (ref 78:3 cord)
183+ (ref 79:3 cord)
181− (cell 79:3
182− (const 79:4 %leaf)
183− (face 79:10 p (ref 79:12 tape)))
184 (cell 80:3
184 (cell 80:3
185− (const 80:4 %palm)
185+ (const 80:4 %leaf)
186− (face 80:10 p
186+ (face 80:10 p (ref 80:12 tape)))
187− (apply 80:12 qual (ref 80:18 tape) (ref 80:23 tape) (ref 80:28 tape) (ref 80:33 tape)))
188− (face 80:39 q
189− (apply 80:41 list (ref 80:47 tank))))
190 (cell 81:3
187 (cell 81:3
191− (const 81:4 %rose)
188+ (const 81:4 %palm)
192 (face 81:10 p
189 (face 81:10 p
190+ (apply 81:12 qual (ref 81:18 tape) (ref 81:23 tape) (ref 81:28 tape) (ref 81:33 tape)))
191+ (face 81:39 q
192+ (apply 81:41 list (ref 81:47 tank))))
193+ (cell 82:3
194+ (const 82:4 %rose)
195+ (face 82:10 p
193− (apply 81:12 trel (ref 81:18 tape) (ref 81:23 tape) (ref 81:28 tape)))
196+ (apply 82:12 trel (ref 82:18 tape) (ref 82:23 tape) (ref 82:28 tape)))
194− (face 81:34 q
197+ (face 82:34 q
195− (apply 81:36 list (ref 81:42 tank))))))
198+ (apply 82:36 list (ref 82:42 tank))))))
196− (mold 83:1 nail
199+ (mold 84:1 nail
197− (cell 83:9
200+ (cell 84:9
198− (face 83:10 p (ref 83:12 hair))
201+ (face 84:10 p (ref 84:12 hair))
199− (face 83:17 q (ref 83:19 tape))))
202+ (face 84:17 q (ref 84:19 tape))))
200− (mold 85:1 edge
203+ (mold 86:1 edge
201− (cell 85:9
204+ (cell 86:9
202− (face 85:10 p (ref 85:12 hair))
205+ (face 86:10 p (ref 86:12 hair))
203− (face 85:17 q
206+ (face 86:17 q
204− (apply 85:19 unit
207+ (apply 86:19 unit
205− (cell 85:25
208+ (cell 86:25
206− (face 85:26 p (noun 85:28))
209+ (face 86:26 p (noun 86:28))
207− (face 85:30 q (ref 85:32 nail)))))))
210+ (face 86:30 q (ref 86:32 nail)))))))
208− (mold 87:1 rule
211+ (mold 88:1 rule
209− (fn 87:9 (ref 87:12 nail) (ref 87:17 edge)))
212+ (fn 88:9 (ref 88:12 nail) (ref 88:17 edge)))
210− (mold 89:1 spot
213+ (mold 90:1 spot
211− (cell 89:9
214+ (cell 90:9
212− (face 89:10 p (ref 89:12 path))
215+ (face 90:10 p (ref 90:12 path))
213− (face 89:17 q (ref 89:19 pint))))
216+ (face 90:17 q (ref 90:19 pint))))
214− (mold 91:1 toon
217+ (mold 92:1 toon
215− (union 92:3
218+ (union 93:3
216− (cell 92:3
217− (const 92:4 %0)
218− (face 92:7 p (noun 92:9)))
219 (cell 93:3
219 (cell 93:3
220− (const 93:4 %1)
220+ (const 93:4 %0)
221 (face 93:7 p (noun 93:9)))
221 (face 93:7 p (noun 93:9)))
222 (cell 94:3
222 (cell 94:3
223− (const 94:4 %2)
223+ (const 94:4 %1)
224+ (face 94:7 p (noun 94:9)))
225+ (cell 95:3
226+ (const 95:4 %2)
224− (face 94:7 p
227+ (face 95:7 p
225− (apply 94:9 list (ref 94:15 tank))))))
228+ (apply 95:9 list (ref 95:15 tank))))))
226− (mold 96:1 like
229+ (mold 97:1 like
227− (generic 96:9 A
230+ (generic 97:9 A
228− (cell 96:16
231+ (cell 97:16
229− (face 96:17 p (ref 96:19 hair))
232+ (face 97:17 p (ref 97:19 hair))
230− (face 96:24 q
233+ (face 97:24 q
231− (apply 96:26 unit
234+ (apply 97:26 unit
232− (cell 96:32
235+ (cell 97:32
233− (face 96:33 p (tvar 96:35 A))
236+ (face 97:33 p (tvar 97:35 A))
234− (face 96:37 q (ref 96:39 nail))))))))
237+ (face 97:37 q (ref 97:39 nail))))))))
235− (value 98:1 wonk
238+ (value 99:1 wonk
236− (gate 98:9
239+ (gate 99:9
237− (face 98:12 veq
240+ (face 99:12 veq
238− (apply 98:16 like (tvar 98:22 A)))
241+ (apply 99:16 like (tvar 99:22 A)))
239− (body 99:3
242+ (body 100:3
240− (branch 99:3
243+ (branch 100:3
241− (wing 99:6 q.veq)
244+ (wing 100:6 q.veq)
242− (arm 100:5 (lit 100:5 ~) (crash 100:7))
245+ (arm 101:5 (lit 101:5 ~) (crash 101:7))
243− (arm 101:5
246+ (arm 102:5
244− (cell 101:5 (lit 101:6 ~) (bind 101:8 product))
247+ (cell 102:5 (lit 102:6 ~) (bind 102:8 product))
245− (wing 101:17 p.product)))))))
248+ (wing 102:17 p.product)))))))
tests/golden/prelude-3g-structural/source.jibb+4−3
@@ -45,9 +45,10 @@
45++ turn |= args=[(list A) $-(A B)]
45++ turn |= args=[(list A) $-(A B)]
46 ?- args
46 ?- args
47 [xs f]
47 [xs f]
48+ ^- (list B)
48− ?- xs
49+ ?- xs
49− ~ ~
50+ ~ ~
50− [item rest] [(f item) (turn rest f)]
51+ [item rest] [(f item) (turn rest f)]
51
52
52+$ dime [p=@ta q=@]
53+$ dime [p=@ta q=@]
53
54
tests/golden/prelude-3g-structural/tokens.txt+290−283
@@ -244,314 +244,321 @@
24447:9 name f
24447:9 name f
24547:10 tight glyph ]
24547:10 tight glyph ]
24648:7 INDENT
24648:7 INDENT
247−48:7 glyph ?-
247+48:7 glyph ^-
248−48:10 name xs
248+48:10 glyph (
249+48:11 tight name list
250+48:16 tvar B
251+48:17 tight glyph )
24949:9 INDENT
25249:9 INDENT
250−49:9 lit ~
253+49:9 glyph ?-
254+49:12 name xs
255+50:11 INDENT
251−49:11 lit ~
256+50:11 lit ~
257+50:13 lit ~
252−50:9 NEWLINE
258+51:11 NEWLINE
253−50:9 glyph [
259+51:11 glyph [
254−50:10 tight name item
260+51:12 tight name item
255−50:15 name rest
261+51:17 name rest
256−50:19 tight glyph ]
262+51:21 tight glyph ]
257−50:21 glyph [
263+51:23 glyph [
258−50:22 tight glyph (
264+51:24 tight glyph (
259−50:23 tight name f
265+51:25 tight name f
260−50:25 name item
266+51:27 name item
261−50:29 tight glyph )
267+51:31 tight glyph )
262−50:31 glyph (
268+51:33 glyph (
263−50:32 tight name turn
269+51:34 tight name turn
264−50:37 name rest
270+51:39 name rest
265−50:42 name f
271+51:44 name f
266−50:43 tight glyph )
267−50:44 tight glyph ]
272+51:45 tight glyph )
273+51:46 tight glyph ]
274+53:1 DEDENT
268−52:1 DEDENT
275+53:1 DEDENT
269−52:1 DEDENT
276+53:1 DEDENT
270−52:1 DEDENT
277+53:1 DEDENT
271−52:1 DEDENT
278+53:1 DEDENT
272−52:1 NEWLINE
279+53:1 NEWLINE
273−52:1 glyph +$
280+53:1 glyph +$
274−52:4 name dime
281+53:4 name dime
275−52:9 glyph [
282+53:9 glyph [
276−52:10 tight name p
283+53:10 tight name p
277−52:11 tight glyph =
284+53:11 tight glyph =
278−52:12 tight aura @ta
285+53:12 tight aura @ta
279−52:16 name q
286+53:16 name q
280−52:17 tight glyph =
287+53:17 tight glyph =
281−52:18 tight aura @
288+53:18 tight aura @
282−52:19 tight glyph ]
289+53:19 tight glyph ]
283−54:1 NEWLINE
290+55:1 NEWLINE
284−54:1 glyph +$
291+55:1 glyph +$
285−54:4 name hair
292+55:4 name hair
286−54:9 glyph [
293+55:9 glyph [
287−54:10 tight name p
294+55:10 tight name p
288−54:11 tight glyph =
295+55:11 tight glyph =
289−54:12 tight aura @ud
296+55:12 tight aura @ud
290−54:16 name q
297+55:16 name q
291−54:17 tight glyph =
298+55:17 tight glyph =
292−54:18 tight aura @ud
299+55:18 tight aura @ud
293−54:21 tight glyph ]
300+55:21 tight glyph ]
294−56:1 NEWLINE
301+57:1 NEWLINE
295−56:1 glyph +$
302+57:1 glyph +$
296−56:4 name pint
303+57:4 name pint
297−56:9 glyph [
304+57:9 glyph [
298−56:10 tight name p
305+57:10 tight name p
299−56:11 tight glyph =
306+57:11 tight glyph =
300−56:12 tight glyph [
307+57:12 tight glyph [
301−56:13 tight name p
308+57:13 tight name p
302−56:14 tight glyph =
309+57:14 tight glyph =
303−56:15 tight aura @
310+57:15 tight aura @
304−56:17 name q
311+57:17 name q
305−56:18 tight glyph =
312+57:18 tight glyph =
306−56:19 tight aura @
313+57:19 tight aura @
307−56:20 tight glyph ]
314+57:20 tight glyph ]
308−56:22 name q
315+57:22 name q
309−56:23 tight glyph =
316+57:23 tight glyph =
310−56:24 tight glyph [
317+57:24 tight glyph [
311−56:25 tight name p
318+57:25 tight name p
312−56:26 tight glyph =
319+57:26 tight glyph =
313−56:27 tight aura @
320+57:27 tight aura @
314−56:29 name q
321+57:29 name q
315−56:30 tight glyph =
322+57:30 tight glyph =
316−56:31 tight aura @
323+57:31 tight aura @
317−56:32 tight glyph ]
324+57:32 tight glyph ]
318−56:33 tight glyph ]
325+57:33 tight glyph ]
319−58:1 NEWLINE
326+59:1 NEWLINE
320−58:1 glyph +$
327+59:1 glyph +$
321−58:4 name coin
328+59:4 name coin
322−59:3 INDENT
329+60:3 INDENT
323−59:3 glyph [
324−59:4 tight lit %$
325−59:7 name p
326−59:8 tight glyph =
327−59:9 tight name dime
328−59:13 tight glyph ]
329−60:3 NEWLINE
33060:3 glyph [
33060:3 glyph [
331−60:4 tight lit %blob
331+60:4 tight lit %$
332−60:10 name p
332+60:7 name p
333−60:11 tight glyph =
333+60:8 tight glyph =
334−60:12 tight glyph *
334+60:9 tight name dime
33560:13 tight glyph ]
33560:13 tight glyph ]
33661:3 NEWLINE
33661:3 NEWLINE
33761:3 glyph [
33761:3 glyph [
338−61:4 tight lit %many
338+61:4 tight lit %blob
33961:10 name p
33961:10 name p
34061:11 tight glyph =
34061:11 tight glyph =
341−61:12 tight glyph (
341+61:12 tight glyph *
342−61:13 tight name list
342+61:13 tight glyph ]
343+62:3 NEWLINE
344+62:3 glyph [
345+62:4 tight lit %many
346+62:10 name p
347+62:11 tight glyph =
348+62:12 tight glyph (
349+62:13 tight name list
343−61:18 name coin
350+62:18 name coin
344−61:22 tight glyph )
351+62:22 tight glyph )
345−61:23 tight glyph ]
352+62:23 tight glyph ]
346−63:1 DEDENT
353+64:1 DEDENT
347−63:1 NEWLINE
354+64:1 NEWLINE
348−63:1 glyph +$
355+64:1 glyph +$
349−63:4 name pair
356+64:4 name pair
350−63:9 glyph |$
357+64:9 glyph |$
351−63:12 glyph [
358+64:12 glyph [
352−63:13 tight tvar A
359+64:13 tight tvar A
353−63:15 tvar B
360+64:15 tvar B
354−63:16 tight glyph ]
361+64:16 tight glyph ]
355−63:18 glyph [
362+64:18 glyph [
356−63:19 tight name p
363+64:19 tight name p
357−63:20 tight glyph =
364+64:20 tight glyph =
358−63:21 tight tvar A
365+64:21 tight tvar A
359−63:23 name q
366+64:23 name q
360−63:24 tight glyph =
367+64:24 tight glyph =
361−63:25 tight tvar B
368+64:25 tight tvar B
362−63:26 tight glyph ]
369+64:26 tight glyph ]
363−65:1 NEWLINE
370+66:1 NEWLINE
364−65:1 glyph +$
371+66:1 glyph +$
365−65:4 name trel
372+66:4 name trel
366−65:9 glyph |$
373+66:9 glyph |$
367−65:12 glyph [
374+66:12 glyph [
368−65:13 tight tvar A
375+66:13 tight tvar A
369−65:15 tvar B
376+66:15 tvar B
370−65:17 tvar C
377+66:17 tvar C
371−65:18 tight glyph ]
378+66:18 tight glyph ]
372−65:20 glyph [
379+66:20 glyph [
373−65:21 tight name p
380+66:21 tight name p
374−65:22 tight glyph =
381+66:22 tight glyph =
375−65:23 tight tvar A
382+66:23 tight tvar A
376−65:25 name q
383+66:25 name q
377−65:26 tight glyph =
384+66:26 tight glyph =
378−65:27 tight tvar B
385+66:27 tight tvar B
379−65:29 name r
386+66:29 name r
380−65:30 tight glyph =
387+66:30 tight glyph =
381−65:31 tight tvar C
388+66:31 tight tvar C
382−65:32 tight glyph ]
389+66:32 tight glyph ]
383−67:1 NEWLINE
390+68:1 NEWLINE
384−67:1 glyph +$
391+68:1 glyph +$
385−67:4 name qual
392+68:4 name qual
386−67:9 glyph |$
393+68:9 glyph |$
387−67:12 glyph [
394+68:12 glyph [
388−67:13 tight tvar A
395+68:13 tight tvar A
389−67:15 tvar B
396+68:15 tvar B
390−67:17 tvar C
397+68:17 tvar C
391−67:19 tvar D
398+68:19 tvar D
392−67:20 tight glyph ]
399+68:20 tight glyph ]
393−67:22 glyph [
400+68:22 glyph [
394−67:23 tight name p
401+68:23 tight name p
395−67:24 tight glyph =
402+68:24 tight glyph =
396−67:25 tight tvar A
403+68:25 tight tvar A
397−67:27 name q
404+68:27 name q
398−67:28 tight glyph =
405+68:28 tight glyph =
399−67:29 tight tvar B
406+68:29 tight tvar B
400−67:31 name r
407+68:31 name r
401−67:32 tight glyph =
408+68:32 tight glyph =
402−67:33 tight tvar C
409+68:33 tight tvar C
403−67:35 name s
410+68:35 name s
404−67:36 tight glyph =
411+68:36 tight glyph =
405−67:37 tight tvar D
412+68:37 tight tvar D
406−67:38 tight glyph ]
413+68:38 tight glyph ]
407−69:1 NEWLINE
414+70:1 NEWLINE
408−69:1 glyph +$
415+70:1 glyph +$
409−69:4 name cord
416+70:4 name cord
410−69:9 aura @t
417+70:9 aura @t
411−71:1 NEWLINE
418+72:1 NEWLINE
412−71:1 glyph +$
419+72:1 glyph +$
413−71:4 name knot
420+72:4 name knot
414−71:9 aura @ta
421+72:9 aura @ta
415−73:1 NEWLINE
422+74:1 NEWLINE
416−73:1 glyph +$
423+74:1 glyph +$
417−73:4 name tape
424+74:4 name tape
418−73:9 glyph (
425+74:9 glyph (
419−73:10 tight name list
426+74:10 tight name list
420−73:15 aura @tD
427+74:15 aura @tD
421−73:18 tight glyph )
428+74:18 tight glyph )
422−75:1 NEWLINE
429+76:1 NEWLINE
423−75:1 glyph +$
430+76:1 glyph +$
424−75:4 name path
431+76:4 name path
425−75:9 glyph (
432+76:9 glyph (
426−75:10 tight name list
433+76:10 tight name list
427−75:15 name knot
434+76:15 name knot
428−75:19 tight glyph )
435+76:19 tight glyph )
429−77:1 NEWLINE
436+78:1 NEWLINE
430−77:1 glyph +$
437+78:1 glyph +$
431−77:4 name tank
438+78:4 name tank
432−78:3 INDENT
439+79:3 INDENT
433−78:3 name cord
434−79:3 NEWLINE
435−79:3 glyph [
436−79:4 tight lit %leaf
437−79:10 name p
440+79:3 name cord
438−79:11 tight glyph =
439−79:12 tight name tape
440−79:16 tight glyph ]
44180:3 NEWLINE
44180:3 NEWLINE
44280:3 glyph [
44280:3 glyph [
443−80:4 tight lit %palm
443+80:4 tight lit %leaf
44480:10 name p
44480:10 name p
44580:11 tight glyph =
44580:11 tight glyph =
446−80:12 tight glyph (
446+80:12 tight name tape
447−80:13 tight name qual
448−80:18 name tape
449−80:23 name tape
450−80:28 name tape
451−80:33 name tape
452−80:37 tight glyph )
453−80:39 name q
454−80:40 tight glyph =
455−80:41 tight glyph (
456−80:42 tight name list
457−80:47 name tank
458−80:51 tight glyph )
459−80:52 tight glyph ]
447+80:16 tight glyph ]
46081:3 NEWLINE
44881:3 NEWLINE
46181:3 glyph [
44981:3 glyph [
462−81:4 tight lit %rose
450+81:4 tight lit %palm
46381:10 name p
45181:10 name p
46481:11 tight glyph =
45281:11 tight glyph =
46581:12 tight glyph (
45381:12 tight glyph (
466−81:13 tight name trel
454+81:13 tight name qual
46781:18 name tape
45581:18 name tape
46881:23 name tape
45681:23 name tape
46981:28 name tape
45781:28 name tape
458+81:33 name tape
470−81:32 tight glyph )
459+81:37 tight glyph )
460+81:39 name q
461+81:40 tight glyph =
462+81:41 tight glyph (
463+81:42 tight name list
464+81:47 name tank
465+81:51 tight glyph )
466+81:52 tight glyph ]
467+82:3 NEWLINE
468+82:3 glyph [
469+82:4 tight lit %rose
470+82:10 name p
471+82:11 tight glyph =
472+82:12 tight glyph (
473+82:13 tight name trel
474+82:18 name tape
475+82:23 name tape
476+82:28 name tape
477+82:32 tight glyph )
471−81:34 name q
478+82:34 name q
472−81:35 tight glyph =
479+82:35 tight glyph =
473−81:36 tight glyph (
480+82:36 tight glyph (
474−81:37 tight name list
481+82:37 tight name list
475−81:42 name tank
482+82:42 name tank
476−81:46 tight glyph )
483+82:46 tight glyph )
477−81:47 tight glyph ]
484+82:47 tight glyph ]
478−83:1 DEDENT
485+84:1 DEDENT
479−83:1 NEWLINE
486+84:1 NEWLINE
480−83:1 glyph +$
487+84:1 glyph +$
481−83:4 name nail
488+84:4 name nail
482−83:9 glyph [
489+84:9 glyph [
483−83:10 tight name p
490+84:10 tight name p
484−83:11 tight glyph =
491+84:11 tight glyph =
485−83:12 tight name hair
492+84:12 tight name hair
486−83:17 name q
493+84:17 name q
487−83:18 tight glyph =
494+84:18 tight glyph =
488−83:19 tight name tape
495+84:19 tight name tape
489−83:23 tight glyph ]
496+84:23 tight glyph ]
490−85:1 NEWLINE
497+86:1 NEWLINE
491−85:1 glyph +$
498+86:1 glyph +$
492−85:4 name edge
499+86:4 name edge
493−85:9 glyph [
500+86:9 glyph [
494−85:10 tight name p
501+86:10 tight name p
495−85:11 tight glyph =
502+86:11 tight glyph =
496−85:12 tight name hair
503+86:12 tight name hair
497−85:17 name q
504+86:17 name q
498−85:18 tight glyph =
505+86:18 tight glyph =
499−85:19 tight glyph (
506+86:19 tight glyph (
500−85:20 tight name unit
507+86:20 tight name unit
501−85:25 glyph [
508+86:25 glyph [
502−85:26 tight name p
509+86:26 tight name p
503−85:27 tight glyph =
510+86:27 tight glyph =
504−85:28 tight glyph *
511+86:28 tight glyph *
505−85:30 name q
512+86:30 name q
506−85:31 tight glyph =
513+86:31 tight glyph =
507−85:32 tight name nail
514+86:32 tight name nail
508−85:36 tight glyph ]
515+86:36 tight glyph ]
509−85:37 tight glyph )
516+86:37 tight glyph )
510−85:38 tight glyph ]
517+86:38 tight glyph ]
511−87:1 NEWLINE
518+88:1 NEWLINE
512−87:1 glyph +$
519+88:1 glyph +$
513−87:4 name rule
520+88:4 name rule
514−87:9 glyph $-(
521+88:9 glyph $-(
515−87:12 tight name nail
522+88:12 tight name nail
516−87:17 name edge
523+88:17 name edge
517−87:21 tight glyph )
524+88:21 tight glyph )
518−89:1 NEWLINE
525+90:1 NEWLINE
519−89:1 glyph +$
526+90:1 glyph +$
520−89:4 name spot
527+90:4 name spot
521−89:9 glyph [
528+90:9 glyph [
522−89:10 tight name p
529+90:10 tight name p
523−89:11 tight glyph =
530+90:11 tight glyph =
524−89:12 tight name path
531+90:12 tight name path
525−89:17 name q
532+90:17 name q
526−89:18 tight glyph =
533+90:18 tight glyph =
527−89:19 tight name pint
534+90:19 tight name pint
528−89:23 tight glyph ]
535+90:23 tight glyph ]
529−91:1 NEWLINE
536+92:1 NEWLINE
530−91:1 glyph +$
537+92:1 glyph +$
531−91:4 name toon
538+92:4 name toon
532−92:3 INDENT
539+93:3 INDENT
533−92:3 glyph [
534−92:4 tight lit %0
535−92:7 name p
536−92:8 tight glyph =
537−92:9 tight glyph *
538−92:10 tight glyph ]
539−93:3 NEWLINE
54093:3 glyph [
54093:3 glyph [
541−93:4 tight lit %1
541+93:4 tight lit %0
54293:7 name p
54293:7 name p
54393:8 tight glyph =
54393:8 tight glyph =
54493:9 tight glyph *
54493:9 tight glyph *
54593:10 tight glyph ]
54593:10 tight glyph ]
54694:3 NEWLINE
54694:3 NEWLINE
54794:3 glyph [
54794:3 glyph [
548−94:4 tight lit %2
548+94:4 tight lit %1
54994:7 name p
54994:7 name p
55094:8 tight glyph =
55094:8 tight glyph =
551−94:9 tight glyph (
551+94:9 tight glyph *
552+94:10 tight glyph ]
553+95:3 NEWLINE
554+95:3 glyph [
555+95:4 tight lit %2
556+95:7 name p
557+95:8 tight glyph =
558+95:9 tight glyph (
552−94:10 tight name list
559+95:10 tight name list
553−94:15 name tank
560+95:15 name tank
554−94:19 tight glyph )
561+95:19 tight glyph )
555−94:20 tight glyph ]
562+95:20 tight glyph ]
556−94:21 DEDENT
563+95:21 DEDENT
557−94:21 NEWLINE
564+95:21 NEWLINE
tests/golden/prelude-3g-structural/tree.txt+107−104
@@ -111,115 +111,118 @@
111 (arm 47:5
111 (arm 47:5
112 (cell 47:5 (bind 47:6 xs) (bind 47:9 f))
112 (cell 47:5 (bind 47:6 xs) (bind 47:9 f))
113 (body 48:7
113 (body 48:7
114+ (cast 48:7
115+ (apply 48:10 list (tvar 48:16 B))
116+ (body 49:9
114− (branch 48:7
117+ (branch 49:9
115− (wing 48:10 xs)
118+ (wing 49:12 xs)
116− (arm 49:9 (lit 49:9 ~) (lit 49:11 ~))
119+ (arm 50:11 (lit 50:11 ~) (lit 50:13 ~))
117− (arm 50:9
120+ (arm 51:11
118− (cell 50:9 (bind 50:10 item) (bind 50:15 rest))
121+ (cell 51:11 (bind 51:12 item) (bind 51:17 rest))
119− (tuple 50:21
122+ (tuple 51:23
120− (group 50:22
123+ (group 51:24
121− (call 50:23 (wing 50:23 f) (wing 50:25 item)))
124+ (call 51:25 (wing 51:25 f) (wing 51:27 item)))
122− (group 50:31
125+ (group 51:33
123− (call 50:32 (wing 50:32 turn) (wing 50:37 rest) (wing 50:42 f))))))))))))
126+ (call 51:34 (wing 51:34 turn) (wing 51:39 rest) (wing 51:44 f))))))))))))))
124− (mold 52:1 dime
127+ (mold 53:1 dime
125− (cell 52:9
128+ (cell 53:9
126− (face 52:10 p (aura 52:12 @ta))
129+ (face 53:10 p (aura 53:12 @ta))
127− (face 52:16 q (aura 52:18 @))))
130+ (face 53:16 q (aura 53:18 @))))
128− (mold 54:1 hair
131+ (mold 55:1 hair
129− (cell 54:9
132+ (cell 55:9
130− (face 54:10 p (aura 54:12 @ud))
133+ (face 55:10 p (aura 55:12 @ud))
131− (face 54:16 q (aura 54:18 @ud))))
134+ (face 55:16 q (aura 55:18 @ud))))
132− (mold 56:1 pint
135+ (mold 57:1 pint
133− (cell 56:9
136+ (cell 57:9
134− (face 56:10 p
137+ (face 57:10 p
135− (cell 56:12
138+ (cell 57:12
136− (face 56:13 p (aura 56:15 @))
139+ (face 57:13 p (aura 57:15 @))
137− (face 56:17 q (aura 56:19 @))))
140+ (face 57:17 q (aura 57:19 @))))
138− (face 56:22 q
141+ (face 57:22 q
139− (cell 56:24
142+ (cell 57:24
140− (face 56:25 p (aura 56:27 @))
143+ (face 57:25 p (aura 57:27 @))
141− (face 56:29 q (aura 56:31 @))))))
144+ (face 57:29 q (aura 57:31 @))))))
142− (mold 58:1 coin
145+ (mold 59:1 coin
143− (union 59:3
146+ (union 60:3
144− (cell 59:3
145− (const 59:4 %$)
146− (face 59:7 p (ref 59:9 dime)))
147 (cell 60:3
147 (cell 60:3
148− (const 60:4 %blob)
148+ (const 60:4 %$)
149− (face 60:10 p (noun 60:12)))
149+ (face 60:7 p (ref 60:9 dime)))
150 (cell 61:3
150 (cell 61:3
151− (const 61:4 %many)
151+ (const 61:4 %blob)
152+ (face 61:10 p (noun 61:12)))
153+ (cell 62:3
154+ (const 62:4 %many)
152− (face 61:10 p
155+ (face 62:10 p
153− (apply 61:12 list (ref 61:18 coin))))))
156+ (apply 62:12 list (ref 62:18 coin))))))
154− (mold 63:1 pair
157+ (mold 64:1 pair
155− (generic 63:9 A B
158+ (generic 64:9 A B
156− (cell 63:18
159+ (cell 64:18
157− (face 63:19 p (tvar 63:21 A))
160+ (face 64:19 p (tvar 64:21 A))
158− (face 63:23 q (tvar 63:25 B)))))
161+ (face 64:23 q (tvar 64:25 B)))))
159− (mold 65:1 trel
162+ (mold 66:1 trel
160− (generic 65:9 A B C
163+ (generic 66:9 A B C
161− (cell 65:20
164+ (cell 66:20
162− (face 65:21 p (tvar 65:23 A))
165+ (face 66:21 p (tvar 66:23 A))
163− (face 65:25 q (tvar 65:27 B))
166+ (face 66:25 q (tvar 66:27 B))
164− (face 65:29 r (tvar 65:31 C)))))
167+ (face 66:29 r (tvar 66:31 C)))))
165− (mold 67:1 qual
168+ (mold 68:1 qual
166− (generic 67:9 A B C D
169+ (generic 68:9 A B C D
167− (cell 67:22
170+ (cell 68:22
168− (face 67:23 p (tvar 67:25 A))
171+ (face 68:23 p (tvar 68:25 A))
169− (face 67:27 q (tvar 67:29 B))
172+ (face 68:27 q (tvar 68:29 B))
170− (face 67:31 r (tvar 67:33 C))
173+ (face 68:31 r (tvar 68:33 C))
171− (face 67:35 s (tvar 67:37 D)))))
174+ (face 68:35 s (tvar 68:37 D)))))
172− (mold 69:1 cord (aura 69:9 @t))
175+ (mold 70:1 cord (aura 70:9 @t))
173− (mold 71:1 knot (aura 71:9 @ta))
176+ (mold 72:1 knot (aura 72:9 @ta))
174− (mold 73:1 tape
177+ (mold 74:1 tape
175− (apply 73:9 list (aura 73:15 @tD)))
178+ (apply 74:9 list (aura 74:15 @tD)))
176− (mold 75:1 path
179+ (mold 76:1 path
177− (apply 75:9 list (ref 75:15 knot)))
180+ (apply 76:9 list (ref 76:15 knot)))
178− (mold 77:1 tank
181+ (mold 78:1 tank
179− (union 78:3
182+ (union 79:3
180− (ref 78:3 cord)
183+ (ref 79:3 cord)
181− (cell 79:3
182− (const 79:4 %leaf)
183− (face 79:10 p (ref 79:12 tape)))
184 (cell 80:3
184 (cell 80:3
185− (const 80:4 %palm)
185+ (const 80:4 %leaf)
186− (face 80:10 p
186+ (face 80:10 p (ref 80:12 tape)))
187− (apply 80:12 qual (ref 80:18 tape) (ref 80:23 tape) (ref 80:28 tape) (ref 80:33 tape)))
188− (face 80:39 q
189− (apply 80:41 list (ref 80:47 tank))))
190 (cell 81:3
187 (cell 81:3
191− (const 81:4 %rose)
188+ (const 81:4 %palm)
192 (face 81:10 p
189 (face 81:10 p
190+ (apply 81:12 qual (ref 81:18 tape) (ref 81:23 tape) (ref 81:28 tape) (ref 81:33 tape)))
191+ (face 81:39 q
192+ (apply 81:41 list (ref 81:47 tank))))
193+ (cell 82:3
194+ (const 82:4 %rose)
195+ (face 82:10 p
193− (apply 81:12 trel (ref 81:18 tape) (ref 81:23 tape) (ref 81:28 tape)))
196+ (apply 82:12 trel (ref 82:18 tape) (ref 82:23 tape) (ref 82:28 tape)))
194− (face 81:34 q
197+ (face 82:34 q
195− (apply 81:36 list (ref 81:42 tank))))))
198+ (apply 82:36 list (ref 82:42 tank))))))
196− (mold 83:1 nail
199+ (mold 84:1 nail
197− (cell 83:9
200+ (cell 84:9
198− (face 83:10 p (ref 83:12 hair))
201+ (face 84:10 p (ref 84:12 hair))
199− (face 83:17 q (ref 83:19 tape))))
202+ (face 84:17 q (ref 84:19 tape))))
200− (mold 85:1 edge
203+ (mold 86:1 edge
201− (cell 85:9
204+ (cell 86:9
202− (face 85:10 p (ref 85:12 hair))
205+ (face 86:10 p (ref 86:12 hair))
203− (face 85:17 q
206+ (face 86:17 q
204− (apply 85:19 unit
207+ (apply 86:19 unit
205− (cell 85:25
208+ (cell 86:25
206− (face 85:26 p (noun 85:28))
209+ (face 86:26 p (noun 86:28))
207− (face 85:30 q (ref 85:32 nail)))))))
210+ (face 86:30 q (ref 86:32 nail)))))))
208− (mold 87:1 rule
211+ (mold 88:1 rule
209− (fn 87:9 (ref 87:12 nail) (ref 87:17 edge)))
212+ (fn 88:9 (ref 88:12 nail) (ref 88:17 edge)))
210− (mold 89:1 spot
213+ (mold 90:1 spot
211− (cell 89:9
214+ (cell 90:9
212− (face 89:10 p (ref 89:12 path))
215+ (face 90:10 p (ref 90:12 path))
213− (face 89:17 q (ref 89:19 pint))))
216+ (face 90:17 q (ref 90:19 pint))))
214− (mold 91:1 toon
217+ (mold 92:1 toon
215− (union 92:3
218+ (union 93:3
216− (cell 92:3
217− (const 92:4 %0)
218− (face 92:7 p (noun 92:9)))
219 (cell 93:3
219 (cell 93:3
220− (const 93:4 %1)
220+ (const 93:4 %0)
221 (face 93:7 p (noun 93:9)))
221 (face 93:7 p (noun 93:9)))
222 (cell 94:3
222 (cell 94:3
223− (const 94:4 %2)
223+ (const 94:4 %1)
224+ (face 94:7 p (noun 94:9)))
225+ (cell 95:3
226+ (const 95:4 %2)
224− (face 94:7 p
227+ (face 95:7 p
225− (apply 94:9 list (ref 94:15 tank)))))))
228+ (apply 95:9 list (ref 95:15 tank)))))))
tests/golden/prelude-list-helpers/source.jibb+4−3
@@ -45,9 +45,10 @@
45++ turn |= args=[(list A) $-(A B)]
45++ turn |= args=[(list A) $-(A B)]
46 ?- args
46 ?- args
47 [xs f]
47 [xs f]
48+ ^- (list B)
48− ?- xs
49+ ?- xs
49− ~ ~
50+ ~ ~
50− [item rest] [(f item) (turn rest f)]
51+ [item rest] [(f item) (turn rest f)]
51
52
52+$ dime [p=@ta q=@]
53+$ dime [p=@ta q=@]
53
54
tests/golden/prelude-list-helpers/tokens.txt+575−568
@@ -244,603 +244,610 @@
24447:9 name f
24447:9 name f
24547:10 tight glyph ]
24547:10 tight glyph ]
24648:7 INDENT
24648:7 INDENT
247−48:7 glyph ?-
247+48:7 glyph ^-
248−48:10 name xs
248+48:10 glyph (
249+48:11 tight name list
250+48:16 tvar B
251+48:17 tight glyph )
24949:9 INDENT
25249:9 INDENT
250−49:9 lit ~
253+49:9 glyph ?-
254+49:12 name xs
255+50:11 INDENT
251−49:11 lit ~
256+50:11 lit ~
257+50:13 lit ~
252−50:9 NEWLINE
258+51:11 NEWLINE
253−50:9 glyph [
259+51:11 glyph [
254−50:10 tight name item
260+51:12 tight name item
255−50:15 name rest
261+51:17 name rest
256−50:19 tight glyph ]
262+51:21 tight glyph ]
257−50:21 glyph [
263+51:23 glyph [
258−50:22 tight glyph (
264+51:24 tight glyph (
259−50:23 tight name f
265+51:25 tight name f
260−50:25 name item
266+51:27 name item
261−50:29 tight glyph )
267+51:31 tight glyph )
262−50:31 glyph (
268+51:33 glyph (
263−50:32 tight name turn
269+51:34 tight name turn
264−50:37 name rest
270+51:39 name rest
265−50:42 name f
271+51:44 name f
266−50:43 tight glyph )
267−50:44 tight glyph ]
272+51:45 tight glyph )
273+51:46 tight glyph ]
274+53:1 DEDENT
268−52:1 DEDENT
275+53:1 DEDENT
269−52:1 DEDENT
276+53:1 DEDENT
270−52:1 DEDENT
277+53:1 DEDENT
271−52:1 DEDENT
278+53:1 DEDENT
272−52:1 NEWLINE
279+53:1 NEWLINE
273−52:1 glyph +$
280+53:1 glyph +$
274−52:4 name dime
281+53:4 name dime
275−52:9 glyph [
282+53:9 glyph [
276−52:10 tight name p
283+53:10 tight name p
277−52:11 tight glyph =
284+53:11 tight glyph =
278−52:12 tight aura @ta
285+53:12 tight aura @ta
279−52:16 name q
286+53:16 name q
280−52:17 tight glyph =
287+53:17 tight glyph =
281−52:18 tight aura @
288+53:18 tight aura @
282−52:19 tight glyph ]
289+53:19 tight glyph ]
283−54:1 NEWLINE
290+55:1 NEWLINE
284−54:1 glyph +$
291+55:1 glyph +$
285−54:4 name hair
292+55:4 name hair
286−54:9 glyph [
293+55:9 glyph [
287−54:10 tight name p
294+55:10 tight name p
288−54:11 tight glyph =
295+55:11 tight glyph =
289−54:12 tight aura @ud
296+55:12 tight aura @ud
290−54:16 name q
297+55:16 name q
291−54:17 tight glyph =
298+55:17 tight glyph =
292−54:18 tight aura @ud
299+55:18 tight aura @ud
293−54:21 tight glyph ]
300+55:21 tight glyph ]
294−56:1 NEWLINE
301+57:1 NEWLINE
295−56:1 glyph +$
302+57:1 glyph +$
296−56:4 name pint
303+57:4 name pint
297−56:9 glyph [
304+57:9 glyph [
298−56:10 tight name p
305+57:10 tight name p
299−56:11 tight glyph =
306+57:11 tight glyph =
300−56:12 tight glyph [
307+57:12 tight glyph [
301−56:13 tight name p
308+57:13 tight name p
302−56:14 tight glyph =
309+57:14 tight glyph =
303−56:15 tight aura @
310+57:15 tight aura @
304−56:17 name q
311+57:17 name q
305−56:18 tight glyph =
312+57:18 tight glyph =
306−56:19 tight aura @
313+57:19 tight aura @
307−56:20 tight glyph ]
314+57:20 tight glyph ]
308−56:22 name q
315+57:22 name q
309−56:23 tight glyph =
316+57:23 tight glyph =
310−56:24 tight glyph [
317+57:24 tight glyph [
311−56:25 tight name p
318+57:25 tight name p
312−56:26 tight glyph =
319+57:26 tight glyph =
313−56:27 tight aura @
320+57:27 tight aura @
314−56:29 name q
321+57:29 name q
315−56:30 tight glyph =
322+57:30 tight glyph =
316−56:31 tight aura @
323+57:31 tight aura @
317−56:32 tight glyph ]
324+57:32 tight glyph ]
318−56:33 tight glyph ]
325+57:33 tight glyph ]
319−58:1 NEWLINE
326+59:1 NEWLINE
320−58:1 glyph +$
327+59:1 glyph +$
321−58:4 name coin
328+59:4 name coin
322−59:3 INDENT
329+60:3 INDENT
323−59:3 glyph [
324−59:4 tight lit %$
325−59:7 name p
326−59:8 tight glyph =
327−59:9 tight name dime
328−59:13 tight glyph ]
329−60:3 NEWLINE
33060:3 glyph [
33060:3 glyph [
331−60:4 tight lit %blob
331+60:4 tight lit %$
332−60:10 name p
332+60:7 name p
333−60:11 tight glyph =
333+60:8 tight glyph =
334−60:12 tight glyph *
334+60:9 tight name dime
33560:13 tight glyph ]
33560:13 tight glyph ]
33661:3 NEWLINE
33661:3 NEWLINE
33761:3 glyph [
33761:3 glyph [
338−61:4 tight lit %many
338+61:4 tight lit %blob
33961:10 name p
33961:10 name p
34061:11 tight glyph =
34061:11 tight glyph =
341−61:12 tight glyph (
341+61:12 tight glyph *
342−61:13 tight name list
342+61:13 tight glyph ]
343+62:3 NEWLINE
344+62:3 glyph [
345+62:4 tight lit %many
346+62:10 name p
347+62:11 tight glyph =
348+62:12 tight glyph (
349+62:13 tight name list
343−61:18 name coin
350+62:18 name coin
344−61:22 tight glyph )
351+62:22 tight glyph )
345−61:23 tight glyph ]
352+62:23 tight glyph ]
346−63:1 DEDENT
353+64:1 DEDENT
347−63:1 NEWLINE
354+64:1 NEWLINE
348−63:1 glyph +$
355+64:1 glyph +$
349−63:4 name pair
356+64:4 name pair
350−63:9 glyph |$
357+64:9 glyph |$
351−63:12 glyph [
358+64:12 glyph [
352−63:13 tight tvar A
359+64:13 tight tvar A
353−63:15 tvar B
360+64:15 tvar B
354−63:16 tight glyph ]
361+64:16 tight glyph ]
355−63:18 glyph [
362+64:18 glyph [
356−63:19 tight name p
363+64:19 tight name p
357−63:20 tight glyph =
364+64:20 tight glyph =
358−63:21 tight tvar A
365+64:21 tight tvar A
359−63:23 name q
366+64:23 name q
360−63:24 tight glyph =
367+64:24 tight glyph =
361−63:25 tight tvar B
368+64:25 tight tvar B
362−63:26 tight glyph ]
369+64:26 tight glyph ]
363−65:1 NEWLINE
370+66:1 NEWLINE
364−65:1 glyph +$
371+66:1 glyph +$
365−65:4 name trel
372+66:4 name trel
366−65:9 glyph |$
373+66:9 glyph |$
367−65:12 glyph [
374+66:12 glyph [
368−65:13 tight tvar A
375+66:13 tight tvar A
369−65:15 tvar B
376+66:15 tvar B
370−65:17 tvar C
377+66:17 tvar C
371−65:18 tight glyph ]
378+66:18 tight glyph ]
372−65:20 glyph [
379+66:20 glyph [
373−65:21 tight name p
380+66:21 tight name p
374−65:22 tight glyph =
381+66:22 tight glyph =
375−65:23 tight tvar A
382+66:23 tight tvar A
376−65:25 name q
383+66:25 name q
377−65:26 tight glyph =
384+66:26 tight glyph =
378−65:27 tight tvar B
385+66:27 tight tvar B
379−65:29 name r
386+66:29 name r
380−65:30 tight glyph =
387+66:30 tight glyph =
381−65:31 tight tvar C
388+66:31 tight tvar C
382−65:32 tight glyph ]
389+66:32 tight glyph ]
383−67:1 NEWLINE
390+68:1 NEWLINE
384−67:1 glyph +$
391+68:1 glyph +$
385−67:4 name qual
392+68:4 name qual
386−67:9 glyph |$
393+68:9 glyph |$
387−67:12 glyph [
394+68:12 glyph [
388−67:13 tight tvar A
395+68:13 tight tvar A
389−67:15 tvar B
396+68:15 tvar B
390−67:17 tvar C
397+68:17 tvar C
391−67:19 tvar D
398+68:19 tvar D
392−67:20 tight glyph ]
399+68:20 tight glyph ]
393−67:22 glyph [
400+68:22 glyph [
394−67:23 tight name p
401+68:23 tight name p
395−67:24 tight glyph =
402+68:24 tight glyph =
396−67:25 tight tvar A
403+68:25 tight tvar A
397−67:27 name q
404+68:27 name q
398−67:28 tight glyph =
405+68:28 tight glyph =
399−67:29 tight tvar B
406+68:29 tight tvar B
400−67:31 name r
407+68:31 name r
401−67:32 tight glyph =
408+68:32 tight glyph =
402−67:33 tight tvar C
409+68:33 tight tvar C
403−67:35 name s
410+68:35 name s
404−67:36 tight glyph =
411+68:36 tight glyph =
405−67:37 tight tvar D
412+68:37 tight tvar D
406−67:38 tight glyph ]
413+68:38 tight glyph ]
407−69:1 NEWLINE
414+70:1 NEWLINE
408−69:1 glyph +$
415+70:1 glyph +$
409−69:4 name cord
416+70:4 name cord
410−69:9 aura @t
417+70:9 aura @t
411−71:1 NEWLINE
418+72:1 NEWLINE
412−71:1 glyph +$
419+72:1 glyph +$
413−71:4 name knot
420+72:4 name knot
414−71:9 aura @ta
421+72:9 aura @ta
415−73:1 NEWLINE
422+74:1 NEWLINE
416−73:1 glyph +$
423+74:1 glyph +$
417−73:4 name tape
424+74:4 name tape
418−73:9 glyph (
425+74:9 glyph (
419−73:10 tight name list
426+74:10 tight name list
420−73:15 aura @tD
427+74:15 aura @tD
421−73:18 tight glyph )
428+74:18 tight glyph )
422−75:1 NEWLINE
429+76:1 NEWLINE
423−75:1 glyph +$
430+76:1 glyph +$
424−75:4 name path
431+76:4 name path
425−75:9 glyph (
432+76:9 glyph (
426−75:10 tight name list
433+76:10 tight name list
427−75:15 name knot
434+76:15 name knot
428−75:19 tight glyph )
435+76:19 tight glyph )
429−77:1 NEWLINE
436+78:1 NEWLINE
430−77:1 glyph +$
437+78:1 glyph +$
431−77:4 name tank
438+78:4 name tank
432−78:3 INDENT
439+79:3 INDENT
433−78:3 name cord
434−79:3 NEWLINE
435−79:3 glyph [
436−79:4 tight lit %leaf
437−79:10 name p
440+79:3 name cord
438−79:11 tight glyph =
439−79:12 tight name tape
440−79:16 tight glyph ]
44180:3 NEWLINE
44180:3 NEWLINE
44280:3 glyph [
44280:3 glyph [
443−80:4 tight lit %palm
443+80:4 tight lit %leaf
44480:10 name p
44480:10 name p
44580:11 tight glyph =
44580:11 tight glyph =
446−80:12 tight glyph (
446+80:12 tight name tape
447−80:13 tight name qual
448−80:18 name tape
449−80:23 name tape
450−80:28 name tape
451−80:33 name tape
452−80:37 tight glyph )
453−80:39 name q
454−80:40 tight glyph =
455−80:41 tight glyph (
456−80:42 tight name list
457−80:47 name tank
458−80:51 tight glyph )
459−80:52 tight glyph ]
447+80:16 tight glyph ]
46081:3 NEWLINE
44881:3 NEWLINE
46181:3 glyph [
44981:3 glyph [
462−81:4 tight lit %rose
450+81:4 tight lit %palm
46381:10 name p
45181:10 name p
46481:11 tight glyph =
45281:11 tight glyph =
46581:12 tight glyph (
45381:12 tight glyph (
466−81:13 tight name trel
454+81:13 tight name qual
46781:18 name tape
45581:18 name tape
46881:23 name tape
45681:23 name tape
46981:28 name tape
45781:28 name tape
458+81:33 name tape
470−81:32 tight glyph )
459+81:37 tight glyph )
460+81:39 name q
461+81:40 tight glyph =
462+81:41 tight glyph (
463+81:42 tight name list
464+81:47 name tank
465+81:51 tight glyph )
466+81:52 tight glyph ]
467+82:3 NEWLINE
468+82:3 glyph [
469+82:4 tight lit %rose
470+82:10 name p
471+82:11 tight glyph =
472+82:12 tight glyph (
473+82:13 tight name trel
474+82:18 name tape
475+82:23 name tape
476+82:28 name tape
477+82:32 tight glyph )
471−81:34 name q
478+82:34 name q
472−81:35 tight glyph =
479+82:35 tight glyph =
473−81:36 tight glyph (
480+82:36 tight glyph (
474−81:37 tight name list
481+82:37 tight name list
475−81:42 name tank
482+82:42 name tank
476−81:46 tight glyph )
483+82:46 tight glyph )
477−81:47 tight glyph ]
484+82:47 tight glyph ]
478−83:1 DEDENT
485+84:1 DEDENT
479−83:1 NEWLINE
486+84:1 NEWLINE
480−83:1 glyph +$
487+84:1 glyph +$
481−83:4 name nail
488+84:4 name nail
482−83:9 glyph [
489+84:9 glyph [
483−83:10 tight name p
490+84:10 tight name p
484−83:11 tight glyph =
491+84:11 tight glyph =
485−83:12 tight name hair
492+84:12 tight name hair
486−83:17 name q
493+84:17 name q
487−83:18 tight glyph =
494+84:18 tight glyph =
488−83:19 tight name tape
495+84:19 tight name tape
489−83:23 tight glyph ]
496+84:23 tight glyph ]
490−85:1 NEWLINE
497+86:1 NEWLINE
491−85:1 glyph +$
498+86:1 glyph +$
492−85:4 name edge
499+86:4 name edge
493−85:9 glyph [
500+86:9 glyph [
494−85:10 tight name p
501+86:10 tight name p
495−85:11 tight glyph =
502+86:11 tight glyph =
496−85:12 tight name hair
503+86:12 tight name hair
497−85:17 name q
504+86:17 name q
498−85:18 tight glyph =
505+86:18 tight glyph =
499−85:19 tight glyph (
506+86:19 tight glyph (
500−85:20 tight name unit
507+86:20 tight name unit
501−85:25 glyph [
508+86:25 glyph [
502−85:26 tight name p
509+86:26 tight name p
503−85:27 tight glyph =
510+86:27 tight glyph =
504−85:28 tight glyph *
511+86:28 tight glyph *
505−85:30 name q
512+86:30 name q
506−85:31 tight glyph =
513+86:31 tight glyph =
507−85:32 tight name nail
514+86:32 tight name nail
508−85:36 tight glyph ]
515+86:36 tight glyph ]
509−85:37 tight glyph )
516+86:37 tight glyph )
510−85:38 tight glyph ]
517+86:38 tight glyph ]
511−87:1 NEWLINE
518+88:1 NEWLINE
512−87:1 glyph +$
519+88:1 glyph +$
513−87:4 name rule
520+88:4 name rule
514−87:9 glyph $-(
521+88:9 glyph $-(
515−87:12 tight name nail
522+88:12 tight name nail
516−87:17 name edge
523+88:17 name edge
517−87:21 tight glyph )
524+88:21 tight glyph )
518−89:1 NEWLINE
525+90:1 NEWLINE
519−89:1 glyph +$
526+90:1 glyph +$
520−89:4 name spot
527+90:4 name spot
521−89:9 glyph [
528+90:9 glyph [
522−89:10 tight name p
529+90:10 tight name p
523−89:11 tight glyph =
530+90:11 tight glyph =
524−89:12 tight name path
531+90:12 tight name path
525−89:17 name q
532+90:17 name q
526−89:18 tight glyph =
533+90:18 tight glyph =
527−89:19 tight name pint
534+90:19 tight name pint
528−89:23 tight glyph ]
535+90:23 tight glyph ]
529−91:1 NEWLINE
536+92:1 NEWLINE
530−91:1 glyph +$
537+92:1 glyph +$
531−91:4 name toon
538+92:4 name toon
532−92:3 INDENT
539+93:3 INDENT
533−92:3 glyph [
534−92:4 tight lit %0
535−92:7 name p
536−92:8 tight glyph =
537−92:9 tight glyph *
538−92:10 tight glyph ]
539−93:3 NEWLINE
54093:3 glyph [
54093:3 glyph [
541−93:4 tight lit %1
541+93:4 tight lit %0
54293:7 name p
54293:7 name p
54393:8 tight glyph =
54393:8 tight glyph =
54493:9 tight glyph *
54493:9 tight glyph *
54593:10 tight glyph ]
54593:10 tight glyph ]
54694:3 NEWLINE
54694:3 NEWLINE
54794:3 glyph [
54794:3 glyph [
548−94:4 tight lit %2
548+94:4 tight lit %1
54994:7 name p
54994:7 name p
55094:8 tight glyph =
55094:8 tight glyph =
551−94:9 tight glyph (
551+94:9 tight glyph *
552−94:10 tight name list
552+94:10 tight glyph ]
553+95:3 NEWLINE
554+95:3 glyph [
555+95:4 tight lit %2
556+95:7 name p
557+95:8 tight glyph =
558+95:9 tight glyph (
559+95:10 tight name list
553−94:15 name tank
560+95:15 name tank
554−94:19 tight glyph )
561+95:19 tight glyph )
555−94:20 tight glyph ]
562+95:20 tight glyph ]
556−96:1 DEDENT
563+97:1 DEDENT
557−96:1 NEWLINE
564+97:1 NEWLINE
558−96:1 glyph +$
565+97:1 glyph +$
559−96:4 name like
566+97:4 name like
560−96:9 glyph |$
567+97:9 glyph |$
561−96:12 glyph [
568+97:12 glyph [
562−96:13 tight tvar A
569+97:13 tight tvar A
563−96:14 tight glyph ]
570+97:14 tight glyph ]
564−96:16 glyph [
571+97:16 glyph [
565−96:17 tight name p
572+97:17 tight name p
566−96:18 tight glyph =
573+97:18 tight glyph =
567−96:19 tight name hair
574+97:19 tight name hair
568−96:24 name q
575+97:24 name q
569−96:25 tight glyph =
576+97:25 tight glyph =
570−96:26 tight glyph (
577+97:26 tight glyph (
571−96:27 tight name unit
578+97:27 tight name unit
572−96:32 glyph [
579+97:32 glyph [
573−96:33 tight name p
580+97:33 tight name p
574−96:34 tight glyph =
581+97:34 tight glyph =
575−96:35 tight tvar A
582+97:35 tight tvar A
576−96:37 name q
583+97:37 name q
577−96:38 tight glyph =
584+97:38 tight glyph =
578−96:39 tight name nail
585+97:39 tight name nail
579−96:43 tight glyph ]
586+97:43 tight glyph ]
580−96:44 tight glyph )
587+97:44 tight glyph )
581−96:45 tight glyph ]
588+97:45 tight glyph ]
582−98:1 NEWLINE
589+99:1 NEWLINE
583−98:1 glyph ++
590+99:1 glyph ++
584−98:4 name wonk
591+99:4 name wonk
585−98:9 glyph |=
592+99:9 glyph |=
586−98:12 name veq
593+99:12 name veq
587−98:15 tight glyph =
594+99:15 tight glyph =
588−98:16 tight glyph (
595+99:16 tight glyph (
589−98:17 tight name like
596+99:17 tight name like
590−98:22 tvar A
597+99:22 tvar A
591−98:23 tight glyph )
598+99:23 tight glyph )
592−99:3 INDENT
599+100:3 INDENT
593−99:3 glyph ?-
600+100:3 glyph ?-
594−99:6 wing q.veq
601+100:6 wing q.veq
595−100:5 INDENT
602+101:5 INDENT
596−100:5 lit ~
603+101:5 lit ~
597−100:7 glyph !!
604+101:7 glyph !!
598−101:5 NEWLINE
605+102:5 NEWLINE
599−101:5 glyph [
606+102:5 glyph [
600−101:6 tight lit ~
607+102:6 tight lit ~
601−101:8 name product
608+102:8 name product
602−101:15 tight glyph ]
609+102:15 tight glyph ]
603−101:17 wing p.product
610+102:17 wing p.product
604−103:1 DEDENT
611+104:1 DEDENT
605−103:1 DEDENT
612+104:1 DEDENT
606−103:1 NEWLINE
613+104:1 NEWLINE
607−103:1 glyph +$
614+104:1 glyph +$
608−103:4 name lone
615+104:4 name lone
609−103:9 glyph |$
616+104:9 glyph |$
610−103:12 glyph [
617+104:12 glyph [
611−103:13 tight tvar A
618+104:13 tight tvar A
612−103:14 tight glyph ]
619+104:14 tight glyph ]
613−103:16 glyph [
620+104:16 glyph [
614−103:17 tight name p
621+104:17 tight name p
615−103:18 tight glyph =
622+104:18 tight glyph =
616−103:19 tight tvar A
623+104:19 tight tvar A
617−103:20 tight glyph ]
624+104:20 tight glyph ]
618−105:1 NEWLINE
625+106:1 NEWLINE
619−105:1 glyph +$
626+106:1 glyph +$
620−105:4 name lest
627+106:4 name lest
621−105:9 glyph |$
628+106:9 glyph |$
622−105:12 glyph [
629+106:12 glyph [
623−105:13 tight tvar A
630+106:13 tight tvar A
624−105:14 tight glyph ]
631+106:14 tight glyph ]
625−105:16 glyph [
632+106:16 glyph [
626−105:17 tight name i
633+106:17 tight name i
627−105:18 tight glyph =
634+106:18 tight glyph =
628−105:19 tight tvar A
635+106:19 tight tvar A
629−105:21 name t
636+106:21 name t
630−105:22 tight glyph =
637+106:22 tight glyph =
631−105:23 tight glyph (
638+106:23 tight glyph (
632−105:24 tight name list
639+106:24 tight name list
633−105:29 tvar A
640+106:29 tvar A
634−105:30 tight glyph )
641+106:30 tight glyph )
635−105:31 tight glyph ]
642+106:31 tight glyph ]
636−107:1 NEWLINE
643+108:1 NEWLINE
637−107:1 glyph +$
644+108:1 glyph +$
638−107:4 name pole
645+108:4 name pole
639−107:9 glyph |$
646+108:9 glyph |$
640−107:12 glyph [
647+108:12 glyph [
641−107:13 tight tvar A
648+108:13 tight tvar A
642−107:14 tight glyph ]
649+108:14 tight glyph ]
643−108:3 INDENT
650+109:3 INDENT
644−108:3 lit ~
651+109:3 lit ~
645−109:3 NEWLINE
652+110:3 NEWLINE
646−109:3 glyph [
653+110:3 glyph [
647−109:4 tight tvar A
654+110:4 tight tvar A
648−109:6 glyph (
655+110:6 glyph (
649−109:7 tight name pole
656+110:7 tight name pole
650−109:12 tvar A
657+110:12 tvar A
651−109:13 tight glyph )
658+110:13 tight glyph )
652−109:14 tight glyph ]
659+110:14 tight glyph ]
653−111:1 DEDENT
660+112:1 DEDENT
654−111:1 NEWLINE
661+112:1 NEWLINE
655−111:1 glyph +$
662+112:1 glyph +$
656−111:4 name quip
663+112:4 name quip
657−111:9 glyph |$
664+112:9 glyph |$
658−111:12 glyph [
665+112:12 glyph [
659−111:13 tight tvar A
666+112:13 tight tvar A
660−111:15 tvar B
667+112:15 tvar B
661−111:16 tight glyph ]
668+112:16 tight glyph ]
662−111:18 glyph [
669+112:18 glyph [
663−111:19 tight glyph (
670+112:19 tight glyph (
664−111:20 tight name list
671+112:20 tight name list
665−111:25 tvar A
672+112:25 tvar A
666−111:26 tight glyph )
673+112:26 tight glyph )
667−111:28 tvar B
674+112:28 tvar B
668−111:29 tight glyph ]
675+112:29 tight glyph ]
669−113:1 NEWLINE
676+114:1 NEWLINE
670−113:1 glyph +$
677+114:1 glyph +$
671−113:4 name tree
678+114:4 name tree
672−113:9 glyph |$
679+114:9 glyph |$
673−113:12 glyph [
680+114:12 glyph [
674−113:13 tight tvar A
681+114:13 tight tvar A
675−113:14 tight glyph ]
682+114:14 tight glyph ]
676−114:3 INDENT
683+115:3 INDENT
677−114:3 lit ~
684+115:3 lit ~
678−115:3 NEWLINE
685+116:3 NEWLINE
679−115:3 glyph [
686+116:3 glyph [
680−115:4 tight name n
687+116:4 tight name n
681−115:5 tight glyph =
688+116:5 tight glyph =
682−115:6 tight tvar A
689+116:6 tight tvar A
683−115:8 name l
690+116:8 name l
684−115:9 tight glyph =
691+116:9 tight glyph =
685−115:10 tight glyph (
692+116:10 tight glyph (
686−115:11 tight name tree
693+116:11 tight name tree
687−115:16 tvar A
694+116:16 tvar A
688−115:17 tight glyph )
695+116:17 tight glyph )
689−115:19 name r
696+116:19 name r
690−115:20 tight glyph =
697+116:20 tight glyph =
691−115:21 tight glyph (
698+116:21 tight glyph (
692−115:22 tight name tree
699+116:22 tight name tree
693−115:27 tvar A
700+116:27 tvar A
694−115:28 tight glyph )
701+116:28 tight glyph )
695−115:29 tight glyph ]
702+116:29 tight glyph ]
696−117:1 DEDENT
703+118:1 DEDENT
697−117:1 NEWLINE
704+118:1 NEWLINE
698−117:1 glyph +$
705+118:1 glyph +$
699−117:4 name each
706+118:4 name each
700−117:9 glyph |$
707+118:9 glyph |$
701−117:12 glyph [
708+118:12 glyph [
702−117:13 tight tvar A
709+118:13 tight tvar A
703−117:15 tvar B
710+118:15 tvar B
704−117:16 tight glyph ]
705−118:3 INDENT
706−118:3 glyph [
707−118:4 tight lit %|
708−118:7 name p
709−118:8 tight glyph =
710−118:9 tight tvar B
711−118:10 tight glyph ]
711+118:16 tight glyph ]
712−119:3 NEWLINE
712+119:3 INDENT
713119:3 glyph [
713119:3 glyph [
714−119:4 tight lit %&
714+119:4 tight lit %|
715119:7 name p
715119:7 name p
716119:8 tight glyph =
716119:8 tight glyph =
717−119:9 tight tvar A
717+119:9 tight tvar B
718119:10 tight glyph ]
718119: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 ]
719−121:1 DEDENT
726+122:1 DEDENT
720−121:1 NEWLINE
727+122:1 NEWLINE
721−121:1 glyph +$
728+122:1 glyph +$
722−121:4 name bloq
729+122:4 name bloq
723−121:9 aura @
730+122:9 aura @
724−123:1 NEWLINE
731+124:1 NEWLINE
725−123:1 glyph ++
732+124:1 glyph ++
726−123:4 name some
733+124:4 name some
727−123:9 glyph |=
734+124:9 glyph |=
728−123:12 name item
735+124:12 name item
729−123:16 tight glyph =
736+124:16 tight glyph =
730−123:17 tight tvar A
737+124:17 tight tvar A
731−123:19 glyph `
738+124:19 glyph `
732−123:20 tight name item
739+124:20 tight name item
733−125:1 NEWLINE
740+126:1 NEWLINE
734−125:1 glyph ++
741+126:1 glyph ++
735−125:4 name lure
742+126:4 name lure
736−125:9 glyph |=
743+126:9 glyph |=
737−125:12 name item
744+126:12 name item
738−125:16 tight glyph =
745+126:16 tight glyph =
739−125:17 tight tvar A
746+126:17 tight tvar A
740−126:3 INDENT
747+127:3 INDENT
741−126:3 glyph ^-
748+127:3 glyph ^-
742−126:6 glyph (
749+127:6 glyph (
743−126:7 tight name list
750+127:7 tight name list
744−126:12 tvar A
751+127:12 tvar A
745−126:13 tight glyph )
752+127:13 tight glyph )
746−126:15 glyph [
753+127:15 glyph [
747−126:16 tight name item
754+127:16 tight name item
748−126:21 lit ~
755+127:21 lit ~
749−126:22 tight glyph ]
756+127:22 tight glyph ]
750−128:1 DEDENT
757+129:1 DEDENT
751−128:1 NEWLINE
758+129:1 NEWLINE
752−128:1 glyph ++
759+129:1 glyph ++
753−128:4 name snoc
760+129:4 name snoc
754−128:9 glyph |=
761+129:9 glyph |=
755−128:12 name args
762+129:12 name args
756−128:16 tight glyph =
763+129:16 tight glyph =
757−128:17 tight glyph [
764+129:17 tight glyph [
758−128:18 tight glyph (
765+129:18 tight glyph (
759−128:19 tight name list
766+129:19 tight name list
760−128:24 tvar A
767+129:24 tvar A
761−128:25 tight glyph )
768+129:25 tight glyph )
762−128:27 tvar A
769+129:27 tvar A
763−128:28 tight glyph ]
770+129:28 tight glyph ]
764−129:3 INDENT
771+130:3 INDENT
765−129:3 glyph ?-
772+130:3 glyph ?-
766−129:6 name args
773+130:6 name args
767−130:5 INDENT
774+131:5 INDENT
768−130:5 glyph [
775+131:5 glyph [
769−130:6 tight name xs
776+131:6 tight name xs
770−130:9 name item
777+131:9 name item
771−130:13 tight glyph ]
778+131:13 tight glyph ]
772−130:15 glyph (
779+131:15 glyph (
773−130:16 tight name weld
780+131:16 tight name weld
774−130:21 name xs
781+131:21 name xs
775−130:24 glyph [
782+131:24 glyph [
776−130:25 tight name item
783+131:25 tight name item
777−130:30 lit ~
784+131:30 lit ~
778−130:31 tight glyph ]
785+131:31 tight glyph ]
779−130:32 tight glyph )
786+131:32 tight glyph )
780−132:1 DEDENT
787+133:1 DEDENT
781−132:1 DEDENT
788+133:1 DEDENT
782−132:1 NEWLINE
789+133:1 NEWLINE
783−132:1 glyph ++
790+133:1 glyph ++
784−132:4 name flop
791+133:4 name flop
785−132:9 glyph |=
792+133:9 glyph |=
786−132:12 name xs
793+133:12 name xs
787−132:14 tight glyph =
794+133:14 tight glyph =
788−132:15 tight glyph (
795+133:15 tight glyph (
789−132:16 tight name list
796+133:16 tight name list
790−132:21 tvar A
797+133:21 tvar A
791−132:22 tight glyph )
798+133:22 tight glyph )
792−133:3 INDENT
799+134:3 INDENT
793−133:3 glyph ++
800+134:3 glyph ++
794−133:6 name reverse-into
801+134:6 name reverse-into
795−133:19 glyph |=
802+134:19 glyph |=
796−133:22 name args
803+134:22 name args
797−133:26 tight glyph =
804+134:26 tight glyph =
798−133:27 tight glyph [
805+134:27 tight glyph [
799−133:28 tight glyph (
806+134:28 tight glyph (
800−133:29 tight name list
807+134:29 tight name list
801−133:34 tvar A
808+134:34 tvar A
802−133:35 tight glyph )
809+134:35 tight glyph )
803−133:37 glyph (
810+134:37 glyph (
804−133:38 tight name list
811+134:38 tight name list
805−133:43 tvar A
812+134:43 tvar A
806−133:44 tight glyph )
813+134:44 tight glyph )
807−133:45 tight glyph ]
814+134:45 tight glyph ]
808−134:5 INDENT
815+135:5 INDENT
809−134:5 glyph ?-
816+135:5 glyph ?-
810−134:8 name args
817+135:8 name args
811−135:7 INDENT
818+136:7 INDENT
812−135:7 glyph [
819+136:7 glyph [
813−135:8 tight name rest
820+136:8 tight name rest
814−135:13 name acc
821+136:13 name acc
815−135:16 tight glyph ]
822+136:16 tight glyph ]
816−136:9 INDENT
823+137:9 INDENT
817−136:9 glyph ?-
824+137:9 glyph ?-
818−136:12 name rest
825+137:12 name rest
819−137:11 INDENT
826+138:11 INDENT
820−137:11 lit ~
827+138:11 lit ~
821−137:13 name acc
828+138:13 name acc
822−138:11 NEWLINE
829+139:11 NEWLINE
823−138:11 glyph [
830+139:11 glyph [
824−138:12 tight name item
831+139:12 tight name item
825−138:17 name more
832+139:17 name more
826−138:21 tight glyph ]
833+139:21 tight glyph ]
827−138:23 glyph (
834+139:23 glyph (
828−138:24 tight name reverse-into
835+139:24 tight name reverse-into
829−138:37 name more
836+139:37 name more
830−138:42 glyph [
837+139:42 glyph [
831−138:43 tight name item
838+139:43 tight name item
832−138:48 name acc
839+139:48 name acc
833−138:51 tight glyph ]
840+139:51 tight glyph ]
834−138:52 tight glyph )
841+139:52 tight glyph )
835−139:3 DEDENT
842+140:3 DEDENT
836−139:3 DEDENT
843+140:3 DEDENT
837−139:3 DEDENT
844+140:3 DEDENT
838−139:3 DEDENT
845+140:3 DEDENT
839−139:3 NEWLINE
846+140:3 NEWLINE
840−139:3 glyph (
847+140:3 glyph (
841−139:4 tight name reverse-into
848+140:4 tight name reverse-into
842−139:17 name xs
849+140:17 name xs
843−139:20 lit ~
850+140:20 lit ~
844−139:21 tight glyph )
851+140:21 tight glyph )
845−139:22 DEDENT
852+140:22 DEDENT
846−139:22 NEWLINE
853+140:22 NEWLINE
tests/golden/prelude-list-helpers/tree.txt+224−221
@@ -111,233 +111,236 @@
111 (arm 47:5
111 (arm 47:5
112 (cell 47:5 (bind 47:6 xs) (bind 47:9 f))
112 (cell 47:5 (bind 47:6 xs) (bind 47:9 f))
113 (body 48:7
113 (body 48:7
114+ (cast 48:7
115+ (apply 48:10 list (tvar 48:16 B))
116+ (body 49:9
114− (branch 48:7
117+ (branch 49:9
115− (wing 48:10 xs)
118+ (wing 49:12 xs)
116− (arm 49:9 (lit 49:9 ~) (lit 49:11 ~))
119+ (arm 50:11 (lit 50:11 ~) (lit 50:13 ~))
117− (arm 50:9
120+ (arm 51:11
118− (cell 50:9 (bind 50:10 item) (bind 50:15 rest))
121+ (cell 51:11 (bind 51:12 item) (bind 51:17 rest))
119− (tuple 50:21
122+ (tuple 51:23
120− (group 50:22
123+ (group 51:24
121− (call 50:23 (wing 50:23 f) (wing 50:25 item)))
124+ (call 51:25 (wing 51:25 f) (wing 51:27 item)))
122− (group 50:31
125+ (group 51:33
123− (call 50:32 (wing 50:32 turn) (wing 50:37 rest) (wing 50:42 f))))))))))))
126+ (call 51:34 (wing 51:34 turn) (wing 51:39 rest) (wing 51:44 f))))))))))))))
124− (mold 52:1 dime
127+ (mold 53:1 dime
125− (cell 52:9
128+ (cell 53:9
126− (face 52:10 p (aura 52:12 @ta))
129+ (face 53:10 p (aura 53:12 @ta))
127− (face 52:16 q (aura 52:18 @))))
130+ (face 53:16 q (aura 53:18 @))))
128− (mold 54:1 hair
131+ (mold 55:1 hair
129− (cell 54:9
132+ (cell 55:9
130− (face 54:10 p (aura 54:12 @ud))
133+ (face 55:10 p (aura 55:12 @ud))
131− (face 54:16 q (aura 54:18 @ud))))
134+ (face 55:16 q (aura 55:18 @ud))))
132− (mold 56:1 pint
135+ (mold 57:1 pint
133− (cell 56:9
136+ (cell 57:9
134− (face 56:10 p
137+ (face 57:10 p
135− (cell 56:12
138+ (cell 57:12
136− (face 56:13 p (aura 56:15 @))
139+ (face 57:13 p (aura 57:15 @))
137− (face 56:17 q (aura 56:19 @))))
140+ (face 57:17 q (aura 57:19 @))))
138− (face 56:22 q
141+ (face 57:22 q
139− (cell 56:24
142+ (cell 57:24
140− (face 56:25 p (aura 56:27 @))
143+ (face 57:25 p (aura 57:27 @))
141− (face 56:29 q (aura 56:31 @))))))
144+ (face 57:29 q (aura 57:31 @))))))
142− (mold 58:1 coin
145+ (mold 59:1 coin
143− (union 59:3
146+ (union 60:3
144− (cell 59:3
145− (const 59:4 %$)
146− (face 59:7 p (ref 59:9 dime)))
147 (cell 60:3
147 (cell 60:3
148− (const 60:4 %blob)
148+ (const 60:4 %$)
149− (face 60:10 p (noun 60:12)))
149+ (face 60:7 p (ref 60:9 dime)))
150 (cell 61:3
150 (cell 61:3
151− (const 61:4 %many)
151+ (const 61:4 %blob)
152+ (face 61:10 p (noun 61:12)))
153+ (cell 62:3
154+ (const 62:4 %many)
152− (face 61:10 p
155+ (face 62:10 p
153− (apply 61:12 list (ref 61:18 coin))))))
156+ (apply 62:12 list (ref 62:18 coin))))))
154− (mold 63:1 pair
157+ (mold 64:1 pair
155− (generic 63:9 A B
158+ (generic 64:9 A B
156− (cell 63:18
159+ (cell 64:18
157− (face 63:19 p (tvar 63:21 A))
160+ (face 64:19 p (tvar 64:21 A))
158− (face 63:23 q (tvar 63:25 B)))))
161+ (face 64:23 q (tvar 64:25 B)))))
159− (mold 65:1 trel
162+ (mold 66:1 trel
160− (generic 65:9 A B C
163+ (generic 66:9 A B C
161− (cell 65:20
164+ (cell 66:20
162− (face 65:21 p (tvar 65:23 A))
165+ (face 66:21 p (tvar 66:23 A))
163− (face 65:25 q (tvar 65:27 B))
166+ (face 66:25 q (tvar 66:27 B))
164− (face 65:29 r (tvar 65:31 C)))))
167+ (face 66:29 r (tvar 66:31 C)))))
165− (mold 67:1 qual
168+ (mold 68:1 qual
166− (generic 67:9 A B C D
169+ (generic 68:9 A B C D
167− (cell 67:22
170+ (cell 68:22
168− (face 67:23 p (tvar 67:25 A))
171+ (face 68:23 p (tvar 68:25 A))
169− (face 67:27 q (tvar 67:29 B))
172+ (face 68:27 q (tvar 68:29 B))
170− (face 67:31 r (tvar 67:33 C))
173+ (face 68:31 r (tvar 68:33 C))
171− (face 67:35 s (tvar 67:37 D)))))
174+ (face 68:35 s (tvar 68:37 D)))))
172− (mold 69:1 cord (aura 69:9 @t))
175+ (mold 70:1 cord (aura 70:9 @t))
173− (mold 71:1 knot (aura 71:9 @ta))
176+ (mold 72:1 knot (aura 72:9 @ta))
174− (mold 73:1 tape
177+ (mold 74:1 tape
175− (apply 73:9 list (aura 73:15 @tD)))
178+ (apply 74:9 list (aura 74:15 @tD)))
176− (mold 75:1 path
179+ (mold 76:1 path
177− (apply 75:9 list (ref 75:15 knot)))
180+ (apply 76:9 list (ref 76:15 knot)))
178− (mold 77:1 tank
181+ (mold 78:1 tank
179− (union 78:3
182+ (union 79:3
180− (ref 78:3 cord)
183+ (ref 79:3 cord)
181− (cell 79:3
182− (const 79:4 %leaf)
183− (face 79:10 p (ref 79:12 tape)))
184 (cell 80:3
184 (cell 80:3
185− (const 80:4 %palm)
185+ (const 80:4 %leaf)
186− (face 80:10 p
186+ (face 80:10 p (ref 80:12 tape)))
187− (apply 80:12 qual (ref 80:18 tape) (ref 80:23 tape) (ref 80:28 tape) (ref 80:33 tape)))
188− (face 80:39 q
189− (apply 80:41 list (ref 80:47 tank))))
190 (cell 81:3
187 (cell 81:3
191− (const 81:4 %rose)
188+ (const 81:4 %palm)
192 (face 81:10 p
189 (face 81:10 p
190+ (apply 81:12 qual (ref 81:18 tape) (ref 81:23 tape) (ref 81:28 tape) (ref 81:33 tape)))
191+ (face 81:39 q
192+ (apply 81:41 list (ref 81:47 tank))))
193+ (cell 82:3
194+ (const 82:4 %rose)
195+ (face 82:10 p
193− (apply 81:12 trel (ref 81:18 tape) (ref 81:23 tape) (ref 81:28 tape)))
196+ (apply 82:12 trel (ref 82:18 tape) (ref 82:23 tape) (ref 82:28 tape)))
194− (face 81:34 q
197+ (face 82:34 q
195− (apply 81:36 list (ref 81:42 tank))))))
198+ (apply 82:36 list (ref 82:42 tank))))))
196− (mold 83:1 nail
199+ (mold 84:1 nail
197− (cell 83:9
200+ (cell 84:9
198− (face 83:10 p (ref 83:12 hair))
201+ (face 84:10 p (ref 84:12 hair))
199− (face 83:17 q (ref 83:19 tape))))
202+ (face 84:17 q (ref 84:19 tape))))
200− (mold 85:1 edge
203+ (mold 86:1 edge
201− (cell 85:9
204+ (cell 86:9
202− (face 85:10 p (ref 85:12 hair))
205+ (face 86:10 p (ref 86:12 hair))
203− (face 85:17 q
206+ (face 86:17 q
204− (apply 85:19 unit
207+ (apply 86:19 unit
205− (cell 85:25
208+ (cell 86:25
206− (face 85:26 p (noun 85:28))
209+ (face 86:26 p (noun 86:28))
207− (face 85:30 q (ref 85:32 nail)))))))
210+ (face 86:30 q (ref 86:32 nail)))))))
208− (mold 87:1 rule
211+ (mold 88:1 rule
209− (fn 87:9 (ref 87:12 nail) (ref 87:17 edge)))
212+ (fn 88:9 (ref 88:12 nail) (ref 88:17 edge)))
210− (mold 89:1 spot
213+ (mold 90:1 spot
211− (cell 89:9
214+ (cell 90:9
212− (face 89:10 p (ref 89:12 path))
215+ (face 90:10 p (ref 90:12 path))
213− (face 89:17 q (ref 89:19 pint))))
216+ (face 90:17 q (ref 90:19 pint))))
214− (mold 91:1 toon
217+ (mold 92:1 toon
215− (union 92:3
218+ (union 93:3
216− (cell 92:3
217− (const 92:4 %0)
218− (face 92:7 p (noun 92:9)))
219 (cell 93:3
219 (cell 93:3
220− (const 93:4 %1)
220+ (const 93:4 %0)
221 (face 93:7 p (noun 93:9)))
221 (face 93:7 p (noun 93:9)))
222 (cell 94:3
222 (cell 94:3
223− (const 94:4 %2)
223+ (const 94:4 %1)
224+ (face 94:7 p (noun 94:9)))
225+ (cell 95:3
226+ (const 95:4 %2)
224− (face 94:7 p
227+ (face 95:7 p
225− (apply 94:9 list (ref 94:15 tank))))))
228+ (apply 95:9 list (ref 95:15 tank))))))
226− (mold 96:1 like
229+ (mold 97:1 like
227− (generic 96:9 A
230+ (generic 97:9 A
228− (cell 96:16
231+ (cell 97:16
229− (face 96:17 p (ref 96:19 hair))
232+ (face 97:17 p (ref 97:19 hair))
230− (face 96:24 q
233+ (face 97:24 q
231− (apply 96:26 unit
234+ (apply 97:26 unit
232− (cell 96:32
235+ (cell 97:32
233− (face 96:33 p (tvar 96:35 A))
236+ (face 97:33 p (tvar 97:35 A))
234− (face 96:37 q (ref 96:39 nail))))))))
237+ (face 97:37 q (ref 97:39 nail))))))))
235− (value 98:1 wonk
238+ (value 99:1 wonk
236− (gate 98:9
239+ (gate 99:9
237− (face 98:12 veq
240+ (face 99:12 veq
238− (apply 98:16 like (tvar 98:22 A)))
241+ (apply 99:16 like (tvar 99:22 A)))
239− (body 99:3
242+ (body 100:3
240− (branch 99:3
243+ (branch 100:3
241− (wing 99:6 q.veq)
244+ (wing 100:6 q.veq)
242− (arm 100:5 (lit 100:5 ~) (crash 100:7))
245+ (arm 101:5 (lit 101:5 ~) (crash 101:7))
243− (arm 101:5
246+ (arm 102:5
244− (cell 101:5 (lit 101:6 ~) (bind 101:8 product))
247+ (cell 102:5 (lit 102:6 ~) (bind 102:8 product))
245− (wing 101:17 p.product))))))
248+ (wing 102:17 p.product))))))
246− (mold 103:1 lone
249+ (mold 104:1 lone
247− (generic 103:9 A
250+ (generic 104:9 A
248− (cell 103:16
251+ (cell 104:16
249− (face 103:17 p (tvar 103:19 A)))))
252+ (face 104:17 p (tvar 104:19 A)))))
250− (mold 105:1 lest
253+ (mold 106:1 lest
251− (generic 105:9 A
254+ (generic 106:9 A
252− (cell 105:16
255+ (cell 106:16
253− (face 105:17 i (tvar 105:19 A))
256+ (face 106:17 i (tvar 106:19 A))
254− (face 105:21 t
257+ (face 106:21 t
255− (apply 105:23 list (tvar 105:29 A))))))
258+ (apply 106:23 list (tvar 106:29 A))))))
256− (mold 107:1 pole
259+ (mold 108:1 pole
257− (generic 107:9 A
260+ (generic 108:9 A
258− (union 108:3
261+ (union 109:3
259− (const 108:3 ~)
262+ (const 109:3 ~)
260− (cell 109:3
263+ (cell 110:3
261− (tvar 109:4 A)
264+ (tvar 110:4 A)
262− (apply 109:6 pole (tvar 109:12 A))))))
265+ (apply 110:6 pole (tvar 110:12 A))))))
263− (mold 111:1 quip
266+ (mold 112:1 quip
264− (generic 111:9 A B
267+ (generic 112:9 A B
265− (cell 111:18
268+ (cell 112:18
266− (apply 111:19 list (tvar 111:25 A))
269+ (apply 112:19 list (tvar 112:25 A))
267− (tvar 111:28 B))))
270+ (tvar 112:28 B))))
268− (mold 113:1 tree
271+ (mold 114:1 tree
269− (generic 113:9 A
272+ (generic 114:9 A
270− (union 114:3
273+ (union 115:3
271− (const 114:3 ~)
274+ (const 115:3 ~)
272− (cell 115:3
275+ (cell 116:3
273− (face 115:4 n (tvar 115:6 A))
276+ (face 116:4 n (tvar 116:6 A))
274− (face 115:8 l
277+ (face 116:8 l
275− (apply 115:10 tree (tvar 115:16 A)))
278+ (apply 116:10 tree (tvar 116:16 A)))
276− (face 115:19 r
279+ (face 116:19 r
277− (apply 115:21 tree (tvar 115:27 A)))))))
280+ (apply 116:21 tree (tvar 116:27 A)))))))
278− (mold 117:1 each
281+ (mold 118:1 each
279− (generic 117:9 A B
282+ (generic 118:9 A B
280− (union 118:3
283+ (union 119:3
281− (cell 118:3
282− (const 118:4 %|)
283− (face 118:7 p (tvar 118:9 B)))
284 (cell 119:3
284 (cell 119:3
285− (const 119:4 %&)
285+ (const 119:4 %|)
286+ (face 119:7 p (tvar 119:9 B)))
287+ (cell 120:3
288+ (const 120:4 %&)
286− (face 119:7 p (tvar 119:9 A))))))
289+ (face 120:7 p (tvar 120:9 A))))))
287− (mold 121:1 bloq (aura 121:9 @))
290+ (mold 122:1 bloq (aura 122:9 @))
288− (value 123:1 some
291+ (value 124:1 some
289− (gate 123:9
292+ (gate 124:9
290− (face 123:12 item (tvar 123:17 A))
293+ (face 124:12 item (tvar 124:17 A))
291− (unit 123:19 (wing 123:20 item))))
294+ (unit 124:19 (wing 124:20 item))))
292− (value 125:1 lure
295+ (value 126:1 lure
293− (gate 125:9
296+ (gate 126:9
294− (face 125:12 item (tvar 125:17 A))
297+ (face 126:12 item (tvar 126:17 A))
295− (body 126:3
298+ (body 127:3
296− (cast 126:3
299+ (cast 127:3
297− (apply 126:6 list (tvar 126:12 A))
300+ (apply 127:6 list (tvar 127:12 A))
298− (tuple 126:15 (wing 126:16 item) (lit 126:21 ~))))))
301+ (tuple 127:15 (wing 127:16 item) (lit 127:21 ~))))))
299− (value 128:1 snoc
302+ (value 129:1 snoc
300− (gate 128:9
303+ (gate 129:9
301− (face 128:12 args
304+ (face 129:12 args
302− (cell 128:17
305+ (cell 129:17
303− (apply 128:18 list (tvar 128:24 A))
306+ (apply 129:18 list (tvar 129:24 A))
304− (tvar 128:27 A)))
307+ (tvar 129:27 A)))
305− (body 129:3
308+ (body 130:3
306− (branch 129:3
309+ (branch 130:3
307− (wing 129:6 args)
310+ (wing 130:6 args)
308− (arm 130:5
311+ (arm 131:5
309− (cell 130:5 (bind 130:6 xs) (bind 130:9 item))
312+ (cell 131:5 (bind 131:6 xs) (bind 131:9 item))
310− (group 130:15
313+ (group 131:15
311− (call 130:16
314+ (call 131:16
312− (wing 130:16 weld)
315+ (wing 131:16 weld)
313− (wing 130:21 xs)
316+ (wing 131:21 xs)
314− (tuple 130:24 (wing 130:25 item) (lit 130:30 ~)))))))))
317+ (tuple 131:24 (wing 131:25 item) (lit 131:30 ~)))))))))
315− (value 132:1 flop
318+ (value 133:1 flop
316− (gate 132:9
319+ (gate 133:9
317− (face 132:12 xs
320+ (face 133:12 xs
318− (apply 132:15 list (tvar 132:21 A)))
321+ (apply 133:15 list (tvar 133:21 A)))
319− (body 133:3
322+ (body 134:3
320− (value 133:3 reverse-into
323+ (value 134:3 reverse-into
321− (gate 133:19
324+ (gate 134:19
322− (face 133:22 args
325+ (face 134:22 args
323− (cell 133:27
326+ (cell 134:27
324− (apply 133:28 list (tvar 133:34 A))
327+ (apply 134:28 list (tvar 134:34 A))
325− (apply 133:37 list (tvar 133:43 A))))
328+ (apply 134:37 list (tvar 134:43 A))))
326− (body 134:5
329+ (body 135:5
327− (branch 134:5
330+ (branch 135:5
328− (wing 134:8 args)
331+ (wing 135:8 args)
329− (arm 135:7
332+ (arm 136:7
330− (cell 135:7 (bind 135:8 rest) (bind 135:13 acc))
333+ (cell 136:7 (bind 136:8 rest) (bind 136:13 acc))
331− (body 136:9
334+ (body 137:9
332− (branch 136:9
335+ (branch 137:9
333− (wing 136:12 rest)
336+ (wing 137:12 rest)
334− (arm 137:11 (lit 137:11 ~) (wing 137:13 acc))
337+ (arm 138:11 (lit 138:11 ~) (wing 138:13 acc))
335− (arm 138:11
338+ (arm 139:11
336− (cell 138:11 (bind 138:12 item) (bind 138:17 more))
339+ (cell 139:11 (bind 139:12 item) (bind 139:17 more))
337− (group 138:23
340+ (group 139:23
338− (call 138:24
341+ (call 139:24
339− (wing 138:24 reverse-into)
342+ (wing 139:24 reverse-into)
340− (wing 138:37 more)
343+ (wing 139:37 more)
341− (tuple 138:42 (wing 138:43 item) (wing 138:48 acc))))))))))))
344+ (tuple 139:42 (wing 139:43 item) (wing 139:48 acc))))))))))))
342− (group 139:3
345+ (group 140:3
343− (call 139:4 (wing 139:4 reverse-into) (wing 139:17 xs) (lit 139:20 ~)))))))
346+ (call 140:4 (wing 140:4 reverse-into) (wing 140:17 xs) (lit 140:20 ~)))))))
tests/golden/prelude-list-unit/source.jibb+4−3
@@ -45,6 +45,7 @@
45++ turn |= args=[(list A) $-(A B)]
45++ turn |= args=[(list A) $-(A B)]
46 ?- args
46 ?- args
47 [xs f]
47 [xs f]
48+ ^- (list B)
48− ?- xs
49+ ?- xs
49− ~ ~
50+ ~ ~
50− [item rest] [(f item) (turn rest f)]
51+ [item rest] [(f item) (turn rest f)]
tests/golden/prelude-list-unit/tokens.txt+32−25
@@ -244,29 +244,36 @@
24447:9 name f
24447:9 name f
24547:10 tight glyph ]
24547:10 tight glyph ]
24648:7 INDENT
24648:7 INDENT
247−48:7 glyph ?-
247+48:7 glyph ^-
248−48:10 name xs
248+48:10 glyph (
249+48:11 tight name list
250+48:16 tvar B
251+48:17 tight glyph )
24949:9 INDENT
25249:9 INDENT
250−49:9 lit ~
253+49:9 glyph ?-
254+49:12 name xs
255+50:11 INDENT
251−49:11 lit ~
256+50:11 lit ~
257+50:13 lit ~
252−50:9 NEWLINE
258+51:11 NEWLINE
253−50:9 glyph [
259+51:11 glyph [
254−50:10 tight name item
260+51:12 tight name item
255−50:15 name rest
261+51:17 name rest
256−50:19 tight glyph ]
257−50:21 glyph [
258−50:22 tight glyph (
262+51:21 tight glyph ]
259−50:23 tight name f
263+51:23 glyph [
264+51:24 tight glyph (
260−50:25 name item
265+51:25 tight name f
261−50:29 tight glyph )
266+51:27 name item
267+51:31 tight glyph )
262−50:31 glyph (
268+51:33 glyph (
263−50:32 tight name turn
269+51:34 tight name turn
264−50:37 name rest
270+51:39 name rest
265−50:42 name f
271+51:44 name f
266−50:43 tight glyph )
272+51:45 tight glyph )
267−50:44 tight glyph ]
273+51:46 tight glyph ]
274+51:47 DEDENT
268−50:45 DEDENT
275+51:47 DEDENT
269−50:45 DEDENT
276+51:47 DEDENT
270−50:45 DEDENT
277+51:47 DEDENT
271−50:45 DEDENT
278+51:47 DEDENT
272−50:45 NEWLINE
279+51:47 NEWLINE
tests/golden/prelude-list-unit/tree.txt+13−10
@@ -111,13 +111,16 @@
111 (arm 47:5
111 (arm 47:5
112 (cell 47:5 (bind 47:6 xs) (bind 47:9 f))
112 (cell 47:5 (bind 47:6 xs) (bind 47:9 f))
113 (body 48:7
113 (body 48:7
114+ (cast 48:7
115+ (apply 48:10 list (tvar 48:16 B))
116+ (body 49:9
114− (branch 48:7
117+ (branch 49:9
115− (wing 48:10 xs)
118+ (wing 49:12 xs)
116− (arm 49:9 (lit 49:9 ~) (lit 49:11 ~))
119+ (arm 50:11 (lit 50:11 ~) (lit 50:13 ~))
117− (arm 50:9
120+ (arm 51:11
118− (cell 50:9 (bind 50:10 item) (bind 50:15 rest))
121+ (cell 51:11 (bind 51:12 item) (bind 51:17 rest))
119− (tuple 50:21
122+ (tuple 51:23
120− (group 50:22
123+ (group 51:24
121− (call 50:23 (wing 50:23 f) (wing 50:25 item)))
124+ (call 51:25 (wing 51:25 f) (wing 51:27 item)))
122− (group 50:31
125+ (group 51:33
123− (call 50:32 (wing 50:32 turn) (wing 50:37 rest) (wing 50:42 f)))))))))))))
126+ (call 51:34 (wing 51:34 turn) (wing 51:39 rest) (wing 51:44 f)))))))))))))))
tests/golden/prelude-unit-list-transforms/source.jibb+4−3
@@ -45,9 +45,10 @@
45++ turn |= args=[(list A) $-(A B)]
45++ turn |= args=[(list A) $-(A B)]
46 ?- args
46 ?- args
47 [xs f]
47 [xs f]
48+ ^- (list B)
48− ?- xs
49+ ?- xs
49− ~ ~
50+ ~ ~
50− [item rest] [(f item) (turn rest f)]
51+ [item rest] [(f item) (turn rest f)]
51
52
52+$ dime [p=@ta q=@]
53+$ dime [p=@ta q=@]
53
54
tests/golden/prelude-unit-list-transforms/tokens.txt+1480−1473
@@ -244,1508 +244,1515 @@
24447:9 name f
24447:9 name f
24547:10 tight glyph ]
24547:10 tight glyph ]
24648:7 INDENT
24648:7 INDENT
247−48:7 glyph ?-
247+48:7 glyph ^-
248−48:10 name xs
248+48:10 glyph (
249+48:11 tight name list
250+48:16 tvar B
251+48:17 tight glyph )
24949:9 INDENT
25249:9 INDENT
250−49:9 lit ~
253+49:9 glyph ?-
254+49:12 name xs
255+50:11 INDENT
251−49:11 lit ~
256+50:11 lit ~
257+50:13 lit ~
252−50:9 NEWLINE
258+51:11 NEWLINE
253−50:9 glyph [
259+51:11 glyph [
254−50:10 tight name item
260+51:12 tight name item
255−50:15 name rest
261+51:17 name rest
256−50:19 tight glyph ]
262+51:21 tight glyph ]
257−50:21 glyph [
263+51:23 glyph [
258−50:22 tight glyph (
264+51:24 tight glyph (
259−50:23 tight name f
265+51:25 tight name f
260−50:25 name item
266+51:27 name item
261−50:29 tight glyph )
267+51:31 tight glyph )
262−50:31 glyph (
268+51:33 glyph (
263−50:32 tight name turn
269+51:34 tight name turn
264−50:37 name rest
270+51:39 name rest
265−50:42 name f
271+51:44 name f
266−50:43 tight glyph )
267−50:44 tight glyph ]
272+51:45 tight glyph )
273+51:46 tight glyph ]
274+53:1 DEDENT
268−52:1 DEDENT
275+53:1 DEDENT
269−52:1 DEDENT
276+53:1 DEDENT
270−52:1 DEDENT
277+53:1 DEDENT
271−52:1 DEDENT
278+53:1 DEDENT
272−52:1 NEWLINE
279+53:1 NEWLINE
273−52:1 glyph +$
280+53:1 glyph +$
274−52:4 name dime
281+53:4 name dime
275−52:9 glyph [
282+53:9 glyph [
276−52:10 tight name p
283+53:10 tight name p
277−52:11 tight glyph =
284+53:11 tight glyph =
278−52:12 tight aura @ta
285+53:12 tight aura @ta
279−52:16 name q
286+53:16 name q
280−52:17 tight glyph =
287+53:17 tight glyph =
281−52:18 tight aura @
288+53:18 tight aura @
282−52:19 tight glyph ]
289+53:19 tight glyph ]
283−54:1 NEWLINE
290+55:1 NEWLINE
284−54:1 glyph +$
291+55:1 glyph +$
285−54:4 name hair
292+55:4 name hair
286−54:9 glyph [
293+55:9 glyph [
287−54:10 tight name p
294+55:10 tight name p
288−54:11 tight glyph =
295+55:11 tight glyph =
289−54:12 tight aura @ud
296+55:12 tight aura @ud
290−54:16 name q
297+55:16 name q
291−54:17 tight glyph =
298+55:17 tight glyph =
292−54:18 tight aura @ud
299+55:18 tight aura @ud
293−54:21 tight glyph ]
300+55:21 tight glyph ]
294−56:1 NEWLINE
301+57:1 NEWLINE
295−56:1 glyph +$
302+57:1 glyph +$
296−56:4 name pint
303+57:4 name pint
297−56:9 glyph [
304+57:9 glyph [
298−56:10 tight name p
305+57:10 tight name p
299−56:11 tight glyph =
306+57:11 tight glyph =
300−56:12 tight glyph [
307+57:12 tight glyph [
301−56:13 tight name p
308+57:13 tight name p
302−56:14 tight glyph =
309+57:14 tight glyph =
303−56:15 tight aura @
310+57:15 tight aura @
304−56:17 name q
311+57:17 name q
305−56:18 tight glyph =
312+57:18 tight glyph =
306−56:19 tight aura @
313+57:19 tight aura @
307−56:20 tight glyph ]
314+57:20 tight glyph ]
308−56:22 name q
315+57:22 name q
309−56:23 tight glyph =
316+57:23 tight glyph =
310−56:24 tight glyph [
317+57:24 tight glyph [
311−56:25 tight name p
318+57:25 tight name p
312−56:26 tight glyph =
319+57:26 tight glyph =
313−56:27 tight aura @
320+57:27 tight aura @
314−56:29 name q
321+57:29 name q
315−56:30 tight glyph =
322+57:30 tight glyph =
316−56:31 tight aura @
323+57:31 tight aura @
317−56:32 tight glyph ]
324+57:32 tight glyph ]
318−56:33 tight glyph ]
325+57:33 tight glyph ]
319−58:1 NEWLINE
326+59:1 NEWLINE
320−58:1 glyph +$
327+59:1 glyph +$
321−58:4 name coin
328+59:4 name coin
322−59:3 INDENT
329+60:3 INDENT
323−59:3 glyph [
324−59:4 tight lit %$
325−59:7 name p
326−59:8 tight glyph =
327−59:9 tight name dime
328−59:13 tight glyph ]
329−60:3 NEWLINE
33060:3 glyph [
33060:3 glyph [
331−60:4 tight lit %blob
331+60:4 tight lit %$
332−60:10 name p
332+60:7 name p
333−60:11 tight glyph =
333+60:8 tight glyph =
334−60:12 tight glyph *
334+60:9 tight name dime
33560:13 tight glyph ]
33560:13 tight glyph ]
33661:3 NEWLINE
33661:3 NEWLINE
33761:3 glyph [
33761:3 glyph [
338−61:4 tight lit %many
338+61:4 tight lit %blob
33961:10 name p
33961:10 name p
34061:11 tight glyph =
34061:11 tight glyph =
341−61:12 tight glyph (
341+61:12 tight glyph *
342−61:13 tight name list
342+61:13 tight glyph ]
343+62:3 NEWLINE
344+62:3 glyph [
345+62:4 tight lit %many
346+62:10 name p
347+62:11 tight glyph =
348+62:12 tight glyph (
349+62:13 tight name list
343−61:18 name coin
350+62:18 name coin
344−61:22 tight glyph )
351+62:22 tight glyph )
345−61:23 tight glyph ]
352+62:23 tight glyph ]
346−63:1 DEDENT
353+64:1 DEDENT
347−63:1 NEWLINE
354+64:1 NEWLINE
348−63:1 glyph +$
355+64:1 glyph +$
349−63:4 name pair
356+64:4 name pair
350−63:9 glyph |$
357+64:9 glyph |$
351−63:12 glyph [
358+64:12 glyph [
352−63:13 tight tvar A
359+64:13 tight tvar A
353−63:15 tvar B
360+64:15 tvar B
354−63:16 tight glyph ]
361+64:16 tight glyph ]
355−63:18 glyph [
362+64:18 glyph [
356−63:19 tight name p
363+64:19 tight name p
357−63:20 tight glyph =
364+64:20 tight glyph =
358−63:21 tight tvar A
365+64:21 tight tvar A
359−63:23 name q
366+64:23 name q
360−63:24 tight glyph =
367+64:24 tight glyph =
361−63:25 tight tvar B
368+64:25 tight tvar B
362−63:26 tight glyph ]
369+64:26 tight glyph ]
363−65:1 NEWLINE
370+66:1 NEWLINE
364−65:1 glyph +$
371+66:1 glyph +$
365−65:4 name trel
372+66:4 name trel
366−65:9 glyph |$
373+66:9 glyph |$
367−65:12 glyph [
374+66:12 glyph [
368−65:13 tight tvar A
375+66:13 tight tvar A
369−65:15 tvar B
376+66:15 tvar B
370−65:17 tvar C
377+66:17 tvar C
371−65:18 tight glyph ]
378+66:18 tight glyph ]
372−65:20 glyph [
379+66:20 glyph [
373−65:21 tight name p
380+66:21 tight name p
374−65:22 tight glyph =
381+66:22 tight glyph =
375−65:23 tight tvar A
382+66:23 tight tvar A
376−65:25 name q
383+66:25 name q
377−65:26 tight glyph =
384+66:26 tight glyph =
378−65:27 tight tvar B
385+66:27 tight tvar B
379−65:29 name r
386+66:29 name r
380−65:30 tight glyph =
387+66:30 tight glyph =
381−65:31 tight tvar C
388+66:31 tight tvar C
382−65:32 tight glyph ]
389+66:32 tight glyph ]
383−67:1 NEWLINE
390+68:1 NEWLINE
384−67:1 glyph +$
391+68:1 glyph +$
385−67:4 name qual
392+68:4 name qual
386−67:9 glyph |$
393+68:9 glyph |$
387−67:12 glyph [
394+68:12 glyph [
388−67:13 tight tvar A
395+68:13 tight tvar A
389−67:15 tvar B
396+68:15 tvar B
390−67:17 tvar C
397+68:17 tvar C
391−67:19 tvar D
398+68:19 tvar D
392−67:20 tight glyph ]
399+68:20 tight glyph ]
393−67:22 glyph [
400+68:22 glyph [
394−67:23 tight name p
401+68:23 tight name p
395−67:24 tight glyph =
402+68:24 tight glyph =
396−67:25 tight tvar A
403+68:25 tight tvar A
397−67:27 name q
404+68:27 name q
398−67:28 tight glyph =
405+68:28 tight glyph =
399−67:29 tight tvar B
406+68:29 tight tvar B
400−67:31 name r
407+68:31 name r
401−67:32 tight glyph =
408+68:32 tight glyph =
402−67:33 tight tvar C
409+68:33 tight tvar C
403−67:35 name s
410+68:35 name s
404−67:36 tight glyph =
411+68:36 tight glyph =
405−67:37 tight tvar D
412+68:37 tight tvar D
406−67:38 tight glyph ]
413+68:38 tight glyph ]
407−69:1 NEWLINE
414+70:1 NEWLINE
408−69:1 glyph +$
415+70:1 glyph +$
409−69:4 name cord
416+70:4 name cord
410−69:9 aura @t
417+70:9 aura @t
411−71:1 NEWLINE
418+72:1 NEWLINE
412−71:1 glyph +$
419+72:1 glyph +$
413−71:4 name knot
420+72:4 name knot
414−71:9 aura @ta
421+72:9 aura @ta
415−73:1 NEWLINE
422+74:1 NEWLINE
416−73:1 glyph +$
423+74:1 glyph +$
417−73:4 name tape
424+74:4 name tape
418−73:9 glyph (
425+74:9 glyph (
419−73:10 tight name list
426+74:10 tight name list
420−73:15 aura @tD
427+74:15 aura @tD
421−73:18 tight glyph )
428+74:18 tight glyph )
422−75:1 NEWLINE
429+76:1 NEWLINE
423−75:1 glyph +$
430+76:1 glyph +$
424−75:4 name path
431+76:4 name path
425−75:9 glyph (
432+76:9 glyph (
426−75:10 tight name list
433+76:10 tight name list
427−75:15 name knot
434+76:15 name knot
428−75:19 tight glyph )
435+76:19 tight glyph )
429−77:1 NEWLINE
436+78:1 NEWLINE
430−77:1 glyph +$
437+78:1 glyph +$
431−77:4 name tank
438+78:4 name tank
432−78:3 INDENT
439+79:3 INDENT
433−78:3 name cord
434−79:3 NEWLINE
435−79:3 glyph [
436−79:4 tight lit %leaf
437−79:10 name p
440+79:3 name cord
438−79:11 tight glyph =
439−79:12 tight name tape
440−79:16 tight glyph ]
44180:3 NEWLINE
44180:3 NEWLINE
44280:3 glyph [
44280:3 glyph [
443−80:4 tight lit %palm
443+80:4 tight lit %leaf
44480:10 name p
44480:10 name p
44580:11 tight glyph =
44580:11 tight glyph =
446−80:12 tight glyph (
446+80:12 tight name tape
447−80:13 tight name qual
448−80:18 name tape
449−80:23 name tape
450−80:28 name tape
451−80:33 name tape
452−80:37 tight glyph )
453−80:39 name q
454−80:40 tight glyph =
455−80:41 tight glyph (
456−80:42 tight name list
457−80:47 name tank
458−80:51 tight glyph )
459−80:52 tight glyph ]
447+80:16 tight glyph ]
46081:3 NEWLINE
44881:3 NEWLINE
46181:3 glyph [
44981:3 glyph [
462−81:4 tight lit %rose
450+81:4 tight lit %palm
46381:10 name p
45181:10 name p
46481:11 tight glyph =
45281:11 tight glyph =
46581:12 tight glyph (
45381:12 tight glyph (
466−81:13 tight name trel
454+81:13 tight name qual
46781:18 name tape
45581:18 name tape
46881:23 name tape
45681:23 name tape
46981:28 name tape
45781:28 name tape
458+81:33 name tape
470−81:32 tight glyph )
459+81:37 tight glyph )
460+81:39 name q
461+81:40 tight glyph =
462+81:41 tight glyph (
463+81:42 tight name list
464+81:47 name tank
465+81:51 tight glyph )
466+81:52 tight glyph ]
467+82:3 NEWLINE
468+82:3 glyph [
469+82:4 tight lit %rose
470+82:10 name p
471+82:11 tight glyph =
472+82:12 tight glyph (
473+82:13 tight name trel
474+82:18 name tape
475+82:23 name tape
476+82:28 name tape
477+82:32 tight glyph )
471−81:34 name q
478+82:34 name q
472−81:35 tight glyph =
479+82:35 tight glyph =
473−81:36 tight glyph (
480+82:36 tight glyph (
474−81:37 tight name list
481+82:37 tight name list
475−81:42 name tank
482+82:42 name tank
476−81:46 tight glyph )
483+82:46 tight glyph )
477−81:47 tight glyph ]
484+82:47 tight glyph ]
478−83:1 DEDENT
485+84:1 DEDENT
479−83:1 NEWLINE
486+84:1 NEWLINE
480−83:1 glyph +$
487+84:1 glyph +$
481−83:4 name nail
488+84:4 name nail
482−83:9 glyph [
489+84:9 glyph [
483−83:10 tight name p
490+84:10 tight name p
484−83:11 tight glyph =
491+84:11 tight glyph =
485−83:12 tight name hair
492+84:12 tight name hair
486−83:17 name q
493+84:17 name q
487−83:18 tight glyph =
494+84:18 tight glyph =
488−83:19 tight name tape
495+84:19 tight name tape
489−83:23 tight glyph ]
496+84:23 tight glyph ]
490−85:1 NEWLINE
497+86:1 NEWLINE
491−85:1 glyph +$
498+86:1 glyph +$
492−85:4 name edge
499+86:4 name edge
493−85:9 glyph [
500+86:9 glyph [
494−85:10 tight name p
501+86:10 tight name p
495−85:11 tight glyph =
502+86:11 tight glyph =
496−85:12 tight name hair
503+86:12 tight name hair
497−85:17 name q
504+86:17 name q
498−85:18 tight glyph =
505+86:18 tight glyph =
499−85:19 tight glyph (
506+86:19 tight glyph (
500−85:20 tight name unit
507+86:20 tight name unit
501−85:25 glyph [
508+86:25 glyph [
502−85:26 tight name p
509+86:26 tight name p
503−85:27 tight glyph =
510+86:27 tight glyph =
504−85:28 tight glyph *
511+86:28 tight glyph *
505−85:30 name q
512+86:30 name q
506−85:31 tight glyph =
513+86:31 tight glyph =
507−85:32 tight name nail
514+86:32 tight name nail
508−85:36 tight glyph ]
515+86:36 tight glyph ]
509−85:37 tight glyph )
516+86:37 tight glyph )
510−85:38 tight glyph ]
517+86:38 tight glyph ]
511−87:1 NEWLINE
518+88:1 NEWLINE
512−87:1 glyph +$
519+88:1 glyph +$
513−87:4 name rule
520+88:4 name rule
514−87:9 glyph $-(
521+88:9 glyph $-(
515−87:12 tight name nail
522+88:12 tight name nail
516−87:17 name edge
523+88:17 name edge
517−87:21 tight glyph )
524+88:21 tight glyph )
518−89:1 NEWLINE
525+90:1 NEWLINE
519−89:1 glyph +$
526+90:1 glyph +$
520−89:4 name spot
527+90:4 name spot
521−89:9 glyph [
528+90:9 glyph [
522−89:10 tight name p
529+90:10 tight name p
523−89:11 tight glyph =
530+90:11 tight glyph =
524−89:12 tight name path
531+90:12 tight name path
525−89:17 name q
532+90:17 name q
526−89:18 tight glyph =
533+90:18 tight glyph =
527−89:19 tight name pint
534+90:19 tight name pint
528−89:23 tight glyph ]
535+90:23 tight glyph ]
529−91:1 NEWLINE
536+92:1 NEWLINE
530−91:1 glyph +$
537+92:1 glyph +$
531−91:4 name toon
538+92:4 name toon
532−92:3 INDENT
539+93:3 INDENT
533−92:3 glyph [
534−92:4 tight lit %0
535−92:7 name p
536−92:8 tight glyph =
537−92:9 tight glyph *
538−92:10 tight glyph ]
539−93:3 NEWLINE
54093:3 glyph [
54093:3 glyph [
541−93:4 tight lit %1
541+93:4 tight lit %0
54293:7 name p
54293:7 name p
54393:8 tight glyph =
54393:8 tight glyph =
54493:9 tight glyph *
54493:9 tight glyph *
54593:10 tight glyph ]
54593:10 tight glyph ]
54694:3 NEWLINE
54694:3 NEWLINE
54794:3 glyph [
54794:3 glyph [
548−94:4 tight lit %2
548+94:4 tight lit %1
54994:7 name p
54994:7 name p
55094:8 tight glyph =
55094:8 tight glyph =
551−94:9 tight glyph (
551+94:9 tight glyph *
552−94:10 tight name list
552+94:10 tight glyph ]
553+95:3 NEWLINE
554+95:3 glyph [
555+95:4 tight lit %2
556+95:7 name p
557+95:8 tight glyph =
558+95:9 tight glyph (
559+95:10 tight name list
553−94:15 name tank
560+95:15 name tank
554−94:19 tight glyph )
561+95:19 tight glyph )
555−94:20 tight glyph ]
562+95:20 tight glyph ]
556−96:1 DEDENT
563+97:1 DEDENT
557−96:1 NEWLINE
564+97:1 NEWLINE
558−96:1 glyph +$
565+97:1 glyph +$
559−96:4 name like
566+97:4 name like
560−96:9 glyph |$
567+97:9 glyph |$
561−96:12 glyph [
568+97:12 glyph [
562−96:13 tight tvar A
569+97:13 tight tvar A
563−96:14 tight glyph ]
570+97:14 tight glyph ]
564−96:16 glyph [
571+97:16 glyph [
565−96:17 tight name p
572+97:17 tight name p
566−96:18 tight glyph =
573+97:18 tight glyph =
567−96:19 tight name hair
574+97:19 tight name hair
568−96:24 name q
575+97:24 name q
569−96:25 tight glyph =
576+97:25 tight glyph =
570−96:26 tight glyph (
577+97:26 tight glyph (
571−96:27 tight name unit
578+97:27 tight name unit
572−96:32 glyph [
579+97:32 glyph [
573−96:33 tight name p
580+97:33 tight name p
574−96:34 tight glyph =
581+97:34 tight glyph =
575−96:35 tight tvar A
582+97:35 tight tvar A
576−96:37 name q
583+97:37 name q
577−96:38 tight glyph =
584+97:38 tight glyph =
578−96:39 tight name nail
585+97:39 tight name nail
579−96:43 tight glyph ]
586+97:43 tight glyph ]
580−96:44 tight glyph )
587+97:44 tight glyph )
581−96:45 tight glyph ]
588+97:45 tight glyph ]
582−98:1 NEWLINE
589+99:1 NEWLINE
583−98:1 glyph ++
590+99:1 glyph ++
584−98:4 name wonk
591+99:4 name wonk
585−98:9 glyph |=
592+99:9 glyph |=
586−98:12 name veq
593+99:12 name veq
587−98:15 tight glyph =
594+99:15 tight glyph =
588−98:16 tight glyph (
595+99:16 tight glyph (
589−98:17 tight name like
596+99:17 tight name like
590−98:22 tvar A
597+99:22 tvar A
591−98:23 tight glyph )
598+99:23 tight glyph )
592−99:3 INDENT
599+100:3 INDENT
593−99:3 glyph ?-
600+100:3 glyph ?-
594−99:6 wing q.veq
601+100:6 wing q.veq
595−100:5 INDENT
602+101:5 INDENT
596−100:5 lit ~
603+101:5 lit ~
597−100:7 glyph !!
604+101:7 glyph !!
598−101:5 NEWLINE
605+102:5 NEWLINE
599−101:5 glyph [
606+102:5 glyph [
600−101:6 tight lit ~
607+102:6 tight lit ~
601−101:8 name product
608+102:8 name product
602−101:15 tight glyph ]
609+102:15 tight glyph ]
603−101:17 wing p.product
610+102:17 wing p.product
604−103:1 DEDENT
611+104:1 DEDENT
605−103:1 DEDENT
612+104:1 DEDENT
606−103:1 NEWLINE
613+104:1 NEWLINE
607−103:1 glyph +$
614+104:1 glyph +$
608−103:4 name lone
615+104:4 name lone
609−103:9 glyph |$
616+104:9 glyph |$
610−103:12 glyph [
617+104:12 glyph [
611−103:13 tight tvar A
618+104:13 tight tvar A
612−103:14 tight glyph ]
619+104:14 tight glyph ]
613−103:16 glyph [
620+104:16 glyph [
614−103:17 tight name p
621+104:17 tight name p
615−103:18 tight glyph =
622+104:18 tight glyph =
616−103:19 tight tvar A
623+104:19 tight tvar A
617−103:20 tight glyph ]
624+104:20 tight glyph ]
618−105:1 NEWLINE
625+106:1 NEWLINE
619−105:1 glyph +$
626+106:1 glyph +$
620−105:4 name lest
627+106:4 name lest
621−105:9 glyph |$
628+106:9 glyph |$
622−105:12 glyph [
629+106:12 glyph [
623−105:13 tight tvar A
630+106:13 tight tvar A
624−105:14 tight glyph ]
631+106:14 tight glyph ]
625−105:16 glyph [
632+106:16 glyph [
626−105:17 tight name i
633+106:17 tight name i
627−105:18 tight glyph =
634+106:18 tight glyph =
628−105:19 tight tvar A
635+106:19 tight tvar A
629−105:21 name t
636+106:21 name t
630−105:22 tight glyph =
637+106:22 tight glyph =
631−105:23 tight glyph (
638+106:23 tight glyph (
632−105:24 tight name list
639+106:24 tight name list
633−105:29 tvar A
640+106:29 tvar A
634−105:30 tight glyph )
641+106:30 tight glyph )
635−105:31 tight glyph ]
642+106:31 tight glyph ]
636−107:1 NEWLINE
643+108:1 NEWLINE
637−107:1 glyph +$
644+108:1 glyph +$
638−107:4 name pole
645+108:4 name pole
639−107:9 glyph |$
646+108:9 glyph |$
640−107:12 glyph [
647+108:12 glyph [
641−107:13 tight tvar A
648+108:13 tight tvar A
642−107:14 tight glyph ]
649+108:14 tight glyph ]
643−108:3 INDENT
650+109:3 INDENT
644−108:3 lit ~
651+109:3 lit ~
645−109:3 NEWLINE
652+110:3 NEWLINE
646−109:3 glyph [
653+110:3 glyph [
647−109:4 tight tvar A
654+110:4 tight tvar A
648−109:6 glyph (
655+110:6 glyph (
649−109:7 tight name pole
656+110:7 tight name pole
650−109:12 tvar A
657+110:12 tvar A
651−109:13 tight glyph )
658+110:13 tight glyph )
652−109:14 tight glyph ]
659+110:14 tight glyph ]
653−111:1 DEDENT
660+112:1 DEDENT
654−111:1 NEWLINE
661+112:1 NEWLINE
655−111:1 glyph +$
662+112:1 glyph +$
656−111:4 name quip
663+112:4 name quip
657−111:9 glyph |$
664+112:9 glyph |$
658−111:12 glyph [
665+112:12 glyph [
659−111:13 tight tvar A
666+112:13 tight tvar A
660−111:15 tvar B
667+112:15 tvar B
661−111:16 tight glyph ]
668+112:16 tight glyph ]
662−111:18 glyph [
669+112:18 glyph [
663−111:19 tight glyph (
670+112:19 tight glyph (
664−111:20 tight name list
671+112:20 tight name list
665−111:25 tvar A
672+112:25 tvar A
666−111:26 tight glyph )
673+112:26 tight glyph )
667−111:28 tvar B
674+112:28 tvar B
668−111:29 tight glyph ]
675+112:29 tight glyph ]
669−113:1 NEWLINE
676+114:1 NEWLINE
670−113:1 glyph +$
677+114:1 glyph +$
671−113:4 name tree
678+114:4 name tree
672−113:9 glyph |$
679+114:9 glyph |$
673−113:12 glyph [
680+114:12 glyph [
674−113:13 tight tvar A
681+114:13 tight tvar A
675−113:14 tight glyph ]
682+114:14 tight glyph ]
676−114:3 INDENT
683+115:3 INDENT
677−114:3 lit ~
684+115:3 lit ~
678−115:3 NEWLINE
685+116:3 NEWLINE
679−115:3 glyph [
686+116:3 glyph [
680−115:4 tight name n
687+116:4 tight name n
681−115:5 tight glyph =
688+116:5 tight glyph =
682−115:6 tight tvar A
689+116:6 tight tvar A
683−115:8 name l
690+116:8 name l
684−115:9 tight glyph =
691+116:9 tight glyph =
685−115:10 tight glyph (
692+116:10 tight glyph (
686−115:11 tight name tree
693+116:11 tight name tree
687−115:16 tvar A
694+116:16 tvar A
688−115:17 tight glyph )
695+116:17 tight glyph )
689−115:19 name r
696+116:19 name r
690−115:20 tight glyph =
697+116:20 tight glyph =
691−115:21 tight glyph (
698+116:21 tight glyph (
692−115:22 tight name tree
699+116:22 tight name tree
693−115:27 tvar A
700+116:27 tvar A
694−115:28 tight glyph )
701+116:28 tight glyph )
695−115:29 tight glyph ]
702+116:29 tight glyph ]
696−117:1 DEDENT
703+118:1 DEDENT
697−117:1 NEWLINE
704+118:1 NEWLINE
698−117:1 glyph +$
705+118:1 glyph +$
699−117:4 name each
706+118:4 name each
700−117:9 glyph |$
707+118:9 glyph |$
701−117:12 glyph [
708+118:12 glyph [
702−117:13 tight tvar A
709+118:13 tight tvar A
703−117:15 tvar B
710+118:15 tvar B
704−117:16 tight glyph ]
705−118:3 INDENT
706−118:3 glyph [
707−118:4 tight lit %|
708−118:7 name p
709−118:8 tight glyph =
710−118:9 tight tvar B
711−118:10 tight glyph ]
711+118:16 tight glyph ]
712−119:3 NEWLINE
712+119:3 INDENT
713119:3 glyph [
713119:3 glyph [
714−119:4 tight lit %&
714+119:4 tight lit %|
715119:7 name p
715119:7 name p
716119:8 tight glyph =
716119:8 tight glyph =
717−119:9 tight tvar A
717+119:9 tight tvar B
718119:10 tight glyph ]
718119:10 tight glyph ]
719−121:1 DEDENT
719+120:3 NEWLINE
720−121:1 NEWLINE
720+120:3 glyph [
721−121:1 glyph +$
721+120:4 tight lit %&
722−121:4 name bloq
722+120:7 name p
723−121:9 aura @
723+120:8 tight glyph =
724−123:1 NEWLINE
724+120:9 tight tvar A
725−123:1 glyph ++
725+120:10 tight glyph ]
726−123:4 name some
726+122:1 DEDENT
727−123:9 glyph |=
727+122:1 NEWLINE
728−123:12 name item
728+122:1 glyph +$
729−123:16 tight glyph =
729+122:4 name bloq
730−123:17 tight tvar A
730+122:9 aura @
731−123:19 glyph `
731+124:1 NEWLINE
732−123:20 tight name item
732+124:1 glyph ++
733−125:1 NEWLINE
733+124:4 name some
734−125:1 glyph ++
734+124:9 glyph |=
735−125:4 name lure
735+124:12 name item
736−125:9 glyph |=
736+124:16 tight glyph =
737−125:12 name item
737+124:17 tight tvar A
738−125:16 tight glyph =
738+124:19 glyph `
739−125:17 tight tvar A
739+124:20 tight name item
740−126:3 INDENT
740+126:1 NEWLINE
741−126:3 glyph ^-
741+126:1 glyph ++
742−126:6 glyph (
742+126:4 name lure
743−126:7 tight name list
743+126:9 glyph |=
744−126:12 tvar A
744+126:12 name item
745−126:13 tight glyph )
745+126:16 tight glyph =
746−126:15 glyph [
746+126:17 tight tvar A
747−126:16 tight name item
747+127:3 INDENT
748−126:21 lit ~
748+127:3 glyph ^-
749−126:22 tight glyph ]
749+127:6 glyph (
750−128:1 DEDENT
750+127:7 tight name list
751−128:1 NEWLINE
751+127:12 tvar A
752−128:1 glyph ++
752+127:13 tight glyph )
753−128:4 name snoc
753+127:15 glyph [
754−128:9 glyph |=
754+127:16 tight name item
755−128:12 name args
755+127:21 lit ~
756−128:16 tight glyph =
756+127:22 tight glyph ]
757−128:17 tight glyph [
757+129:1 DEDENT
758−128:18 tight glyph (
758+129:1 NEWLINE
759−128:19 tight name list
759+129:1 glyph ++
760−128:24 tvar A
760+129:4 name snoc
761−128:25 tight glyph )
761+129:9 glyph |=
762−128:27 tvar A
762+129:12 name args
763−128:28 tight glyph ]
763+129:16 tight glyph =
764−129:3 INDENT
764+129:17 tight glyph [
765−129:3 glyph ?-
765+129:18 tight glyph (
766−129:6 name args
766+129:19 tight name list
767−130:5 INDENT
767+129:24 tvar A
768−130:5 glyph [
768+129:25 tight glyph )
769−130:6 tight name xs
769+129:27 tvar A
770−130:9 name item
770+129:28 tight glyph ]
771−130:13 tight glyph ]
771+130:3 INDENT
772−130:15 glyph (
772+130:3 glyph ?-
773−130:16 tight name weld
773+130:6 name args
774−130:21 name xs
774+131:5 INDENT
775−130:24 glyph [
775+131:5 glyph [
776−130:25 tight name item
776+131:6 tight name xs
777−130:30 lit ~
777+131:9 name item
778−130:31 tight glyph ]
778+131:13 tight glyph ]
779−130:32 tight glyph )
779+131:15 glyph (
780−132:1 DEDENT
780+131:16 tight name weld
781−132:1 DEDENT
781+131:21 name xs
782−132:1 NEWLINE
782+131:24 glyph [
783−132:1 glyph ++
783+131:25 tight name item
784−132:4 name flop
784+131:30 lit ~
785−132:9 glyph |=
785+131:31 tight glyph ]
786−132:12 name xs
786+131:32 tight glyph )
787−132:14 tight glyph =
787+133:1 DEDENT
788−132:15 tight glyph (
788+133:1 DEDENT
789−132:16 tight name list
789+133:1 NEWLINE
790−132:21 tvar A
790+133:1 glyph ++
791−132:22 tight glyph )
791+133:4 name flop
792−133:3 INDENT
792+133:9 glyph |=
793−133:3 glyph ++
793+133:12 name xs
794−133:6 name reverse-into
794+133:14 tight glyph =
795−133:19 glyph |=
795+133:15 tight glyph (
796−133:22 name args
796+133:16 tight name list
797−133:26 tight glyph =
797+133:21 tvar A
798−133:27 tight glyph [
798+133:22 tight glyph )
799−133:28 tight glyph (
799+134:3 INDENT
800−133:29 tight name list
800+134:3 glyph ++
801−133:34 tvar A
801+134:6 name reverse-into
802−133:35 tight glyph )
802+134:19 glyph |=
803−133:37 glyph (
803+134:22 name args
804−133:38 tight name list
804+134:26 tight glyph =
805−133:43 tvar A
805+134:27 tight glyph [
806−133:44 tight glyph )
806+134:28 tight glyph (
807−133:45 tight glyph ]
807+134:29 tight name list
808−134:5 INDENT
808+134:34 tvar A
809−134:5 glyph ?-
809+134:35 tight glyph )
810−134:8 name args
810+134:37 glyph (
811−135:7 INDENT
811+134:38 tight name list
812−135:7 glyph [
812+134:43 tvar A
813−135:8 tight name rest
813+134:44 tight glyph )
814−135:13 name acc
814+134:45 tight glyph ]
815−135:16 tight glyph ]
815+135:5 INDENT
816−136:9 INDENT
816+135:5 glyph ?-
817−136:9 glyph ?-
817+135:8 name args
818−136:12 name rest
818+136:7 INDENT
819−137:11 INDENT
819+136:7 glyph [
820−137:11 lit ~
820+136:8 tight name rest
821−137:13 name acc
821+136:13 name acc
822−138:11 NEWLINE
822+136:16 tight glyph ]
823−138:11 glyph [
823+137:9 INDENT
824−138:12 tight name item
824+137:9 glyph ?-
825−138:17 name more
825+137:12 name rest
826−138:21 tight glyph ]
826+138:11 INDENT
827−138:23 glyph (
827+138:11 lit ~
828−138:24 tight name reverse-into
828+138:13 name acc
829−138:37 name more
829+139:11 NEWLINE
830−138:42 glyph [
830+139:11 glyph [
831−138:43 tight name item
831+139:12 tight name item
832−138:48 name acc
832+139:17 name more
833−138:51 tight glyph ]
833+139:21 tight glyph ]
834−138:52 tight glyph )
834+139:23 glyph (
835−139:3 DEDENT
835+139:24 tight name reverse-into
836−139:3 DEDENT
836+139:37 name more
837−139:3 DEDENT
837+139:42 glyph [
838−139:3 DEDENT
838+139:43 tight name item
839−139:3 NEWLINE
839+139:48 name acc
840−139:3 glyph (
840+139:51 tight glyph ]
841−139:4 tight name reverse-into
841+139:52 tight glyph )
842−139:17 name xs
842+140:3 DEDENT
843−139:20 lit ~
843+140:3 DEDENT
844−139:21 tight glyph )
844+140:3 DEDENT
845−141:1 DEDENT
845+140:3 DEDENT
846−141:1 NEWLINE
846+140:3 NEWLINE
847−141:1 glyph ++
847+140:3 glyph (
848−141:4 name drop
848+140:4 tight name reverse-into
849−141:9 glyph |=
849+140:17 name xs
850−141:12 name maybe
850+140:20 lit ~
851−141:17 tight glyph =
851+140:21 tight glyph )
852−141:18 tight glyph (
852+142:1 DEDENT
853−141:19 tight name unit
853+142:1 NEWLINE
854−141:24 tvar A
854+142:1 glyph ++
855−141:25 tight glyph )
855+142:4 name drop
856−142:3 INDENT
856+142:9 glyph |=
857−142:3 glyph ?-
857+142:12 name maybe
858−142:6 name maybe
858+142:17 tight glyph =
859−143:5 INDENT
859+142:18 tight glyph (
860−143:5 lit ~
860+142:19 tight name unit
861−143:7 lit ~
861+142:24 tvar A
862−144:5 NEWLINE
862+142:25 tight glyph )
863−144:5 glyph [
863+143:3 INDENT
864−144:6 tight lit ~
864+143:3 glyph ?-
865−144:8 name value
865+143:6 name maybe
866−144:13 tight glyph ]
866+144:5 INDENT
867−144:15 glyph [
867+144:5 lit ~
868−144:16 tight name value
868+144:7 lit ~
869−144:22 lit ~
869+145:5 NEWLINE
870−144:23 tight glyph ]
870+145:5 glyph [
871−146:1 DEDENT
871+145:6 tight lit ~
872−146:1 DEDENT
872+145:8 name value
873−146:1 NEWLINE
873+145:13 tight glyph ]
874−146:1 glyph ++
874+145:15 glyph [
875−146:4 name bind
875+145:16 tight name value
876−146:9 glyph |=
876+145:22 lit ~
877−146:12 name args
877+145:23 tight glyph ]
878−146:16 tight glyph =
878+147:1 DEDENT
879−146:17 tight glyph [
879+147:1 DEDENT
880−146:18 tight glyph (
880+147:1 NEWLINE
881−146:19 tight name unit
881+147:1 glyph ++
882−146:24 tvar A
882+147:4 name bind
883−146:25 tight glyph )
883+147:9 glyph |=
884−146:27 glyph $-(
884+147:12 name args
885−146:30 tight tvar A
885+147:16 tight glyph =
886−146:32 tvar B
886+147:17 tight glyph [
887−146:33 tight glyph )
887+147:18 tight glyph (
888−146:34 tight glyph ]
888+147:19 tight name unit
889−147:3 INDENT
889+147:24 tvar A
890−147:3 glyph ?-
890+147:25 tight glyph )
891−147:6 name args
891+147:27 glyph $-(
892−148:5 INDENT
892+147:30 tight tvar A
893−148:5 glyph [
893+147:32 tvar B
894−148:6 tight name maybe
894+147:33 tight glyph )
895−148:12 name f
895+147:34 tight glyph ]
896−148:13 tight glyph ]
896+148:3 INDENT
897−149:7 INDENT
897+148:3 glyph ?-
898−149:7 glyph ?-
898+148:6 name args
899−149:10 name maybe
899+149:5 INDENT
900−150:9 INDENT
900+149:5 glyph [
901−150:9 lit ~
901+149:6 tight name maybe
902−150:11 lit ~
902+149:12 name f
903−151:9 NEWLINE
903+149:13 tight glyph ]
904−151:9 glyph [
904+150:7 INDENT
905−151:10 tight lit ~
905+150:7 glyph ?-
906−151:12 name value
906+150:10 name maybe
907−151:17 tight glyph ]
907+151:9 INDENT
908−151:19 glyph `
908+151:9 lit ~
909−151:20 tight glyph (
909+151:11 lit ~
910−151:21 tight name f
910+152:9 NEWLINE
911−151:23 name value
911+152:9 glyph [
912−151:28 tight glyph )
912+152:10 tight lit ~
913−153:1 DEDENT
913+152:12 name value
914−153:1 DEDENT
914+152:17 tight glyph ]
915−153:1 DEDENT
915+152:19 glyph `
916−153:1 DEDENT
916+152:20 tight glyph (
917−153:1 NEWLINE
917+152:21 tight name f
918−153:1 glyph ++
918+152:23 name value
919−153:4 name biff
919+152:28 tight glyph )
920−153:9 glyph |=
920+154:1 DEDENT
921−153:12 name args
921+154:1 DEDENT
922−153:16 tight glyph =
922+154:1 DEDENT
923−153:17 tight glyph [
923+154:1 DEDENT
924−153:18 tight glyph (
924+154:1 NEWLINE
925−153:19 tight name unit
925+154:1 glyph ++
926−153:24 tvar A
926+154:4 name biff
927−153:25 tight glyph )
927+154:9 glyph |=
928−153:27 glyph $-(
928+154:12 name args
929−153:30 tight tvar A
929+154:16 tight glyph =
930−153:32 glyph (
930+154:17 tight glyph [
931−153:33 tight name unit
931+154:18 tight glyph (
932−153:38 tvar B
932+154:19 tight name unit
933−153:39 tight glyph )
933+154:24 tvar A
934−153:40 tight glyph )
934+154:25 tight glyph )
935−153:41 tight glyph ]
935+154:27 glyph $-(
936−154:3 INDENT
936+154:30 tight tvar A
937−154:3 glyph ?-
937+154:32 glyph (
938−154:6 name args
938+154:33 tight name unit
939−155:5 INDENT
939+154:38 tvar B
940−155:5 glyph [
940+154:39 tight glyph )
941−155:6 tight name maybe
941+154:40 tight glyph )
942−155:12 name f
942+154:41 tight glyph ]
943−155:13 tight glyph ]
943+155:3 INDENT
944−156:7 INDENT
944+155:3 glyph ?-
945−156:7 glyph ?-
945+155:6 name args
946−156:10 name maybe
946+156:5 INDENT
947−157:9 INDENT
947+156:5 glyph [
948−157:9 lit ~
948+156:6 tight name maybe
949−157:11 lit ~
949+156:12 name f
950−158:9 NEWLINE
950+156:13 tight glyph ]
951−158:9 glyph [
951+157:7 INDENT
952−158:10 tight lit ~
952+157:7 glyph ?-
953−158:12 name value
953+157:10 name maybe
954−158:17 tight glyph ]
954+158:9 INDENT
955−158:19 glyph (
955+158:9 lit ~
956−158:20 tight name f
956+158:11 lit ~
957−158:22 name value
957+159:9 NEWLINE
958−158:27 tight glyph )
958+159:9 glyph [
959−160:1 DEDENT
959+159:10 tight lit ~
960−160:1 DEDENT
960+159:12 name value
961−160:1 DEDENT
961+159:17 tight glyph ]
962−160:1 DEDENT
962+159:19 glyph (
963−160:1 NEWLINE
963+159:20 tight name f
964−160:1 glyph ++
964+159:22 name value
965−160:4 name both
965+159:27 tight glyph )
966−160:9 glyph |=
966+161:1 DEDENT
967−160:12 name args
967+161:1 DEDENT
968−160:16 tight glyph =
968+161:1 DEDENT
969−160:17 tight glyph [
969+161:1 DEDENT
970−160:18 tight glyph (
970+161:1 NEWLINE
971−160:19 tight name unit
971+161:1 glyph ++
972−160:24 tvar A
972+161:4 name both
973−160:25 tight glyph )
973+161:9 glyph |=
974−160:27 glyph (
974+161:12 name args
975−160:28 tight name unit
975+161:16 tight glyph =
976−160:33 tvar B
976+161:17 tight glyph [
977−160:34 tight glyph )
977+161:18 tight glyph (
978−160:35 tight glyph ]
978+161:19 tight name unit
979−161:3 INDENT
979+161:24 tvar A
980−161:3 glyph ?-
980+161:25 tight glyph )
981−161:6 name args
981+161:27 glyph (
982−162:5 INDENT
982+161:28 tight name unit
983−162:5 glyph [
983+161:33 tvar B
984−162:6 tight name first
984+161:34 tight glyph )
985−162:12 name second
985+161:35 tight glyph ]
986−162:18 tight glyph ]
986+162:3 INDENT
987−163:7 INDENT
987+162:3 glyph ?-
988−163:7 glyph ?-
988+162:6 name args
989−163:10 name first
989+163:5 INDENT
990−164:9 INDENT
990+163:5 glyph [
991−164:9 lit ~
991+163:6 tight name first
992−164:11 lit ~
992+163:12 name second
993−165:9 NEWLINE
993+163:18 tight glyph ]
994−165:9 glyph [
994+164:7 INDENT
995−165:10 tight lit ~
995+164:7 glyph ?-
996−165:12 name a
996+164:10 name first
997−165:13 tight glyph ]
997+165:9 INDENT
998−166:11 INDENT
998+165:9 lit ~
999−166:11 glyph ?-
999+165:11 lit ~
1000−166:14 name second
1000+166:9 NEWLINE
1001−167:13 INDENT
1001+166:9 glyph [
1002−167:13 lit ~
1002+166:10 tight lit ~
1003−167:15 lit ~
1003+166:12 name a
1004−168:13 NEWLINE
1004+166:13 tight glyph ]
1005−168:13 glyph [
1005+167:11 INDENT
1006−168:14 tight lit ~
1006+167:11 glyph ?-
1007−168:16 name b
1007+167:14 name second
1008−168:17 tight glyph ]
1008+168:13 INDENT
1009−168:19 glyph `
1009+168:13 lit ~
1010−168:20 tight glyph [
1010+168:15 lit ~
1011−168:21 tight name a
1011+169:13 NEWLINE
1012−168:23 name b
1012+169:13 glyph [
1013−168:24 tight glyph ]
1013+169:14 tight lit ~
1014−170:1 DEDENT
1014+169:16 name b
1015−170:1 DEDENT
1015+169:17 tight glyph ]
1016−170:1 DEDENT
1016+169:19 glyph `
1017−170:1 DEDENT
1017+169:20 tight glyph [
1018−170:1 DEDENT
1018+169:21 tight name a
1019−170:1 DEDENT
1019+169:23 name b
1020−170:1 NEWLINE
1020+169:24 tight glyph ]
1021−170:1 glyph ++
1021+171:1 DEDENT
1022−170:4 name clap
1022+171:1 DEDENT
1023−170:9 glyph |=
1023+171:1 DEDENT
1024−170:12 name args
1024+171:1 DEDENT
1025−170:16 tight glyph =
1025+171:1 DEDENT
1026−170:17 tight glyph [
1026+171:1 DEDENT
1027−170:18 tight glyph (
1027+171:1 NEWLINE
1028−170:19 tight name unit
1028+171:1 glyph ++
1029−170:24 tvar A
1029+171:4 name clap
1030−170:25 tight glyph )
1030+171:9 glyph |=
1031−170:27 glyph (
1031+171:12 name args
1032−170:28 tight name unit
1032+171:16 tight glyph =
1033−170:33 tvar A
1033+171:17 tight glyph [
1034−170:34 tight glyph )
1034+171:18 tight glyph (
1035−170:36 glyph $-(
1035+171:19 tight name unit
1036−170:39 tight glyph [
1036+171:24 tvar A
1037−170:40 tight tvar A
1037+171:25 tight glyph )
1038−170:42 tvar A
1038+171:27 glyph (
1039−170:43 tight glyph ]
1039+171:28 tight name unit
1040−170:45 tvar A
1040+171:33 tvar A
1041−170:46 tight glyph )
1041+171:34 tight glyph )
1042−170:47 tight glyph ]
1042+171:36 glyph $-(
1043−171:3 INDENT
1043+171:39 tight glyph [
1044−171:3 glyph ?-
1044+171:40 tight tvar A
1045−171:6 name args
1045+171:42 tvar A
1046−172:5 INDENT
1046+171:43 tight glyph ]
1047−172:5 glyph [
1047+171:45 tvar A
1048−172:6 tight name first
1048+171:46 tight glyph )
1049−172:12 name second
1049+171:47 tight glyph ]
1050−172:19 name combine
1050+172:3 INDENT
1051−172:26 tight glyph ]
1051+172:3 glyph ?-
1052−173:7 INDENT
1052+172:6 name args
1053−173:7 glyph ?-
1053+173:5 INDENT
1054−173:10 name first
1054+173:5 glyph [
1055−174:9 INDENT
1055+173:6 tight name first
1056−174:9 lit ~
1056+173:12 name second
1057−174:11 name second
1057+173:19 name combine
1058−175:9 NEWLINE
1058+173:26 tight glyph ]
1059−175:9 glyph [
1059+174:7 INDENT
1060−175:10 tight lit ~
1060+174:7 glyph ?-
1061−175:12 name a
1061+174:10 name first
1062−175:13 tight glyph ]
1062+175:9 INDENT
1063−176:11 INDENT
1063+175:9 lit ~
1064−176:11 glyph ?-
1064+175:11 name second
1065−176:14 name second
1065+176:9 NEWLINE
1066−177:13 INDENT
1066+176:9 glyph [
1067−177:13 lit ~
1067+176:10 tight lit ~
1068−177:15 name first
1068+176:12 name a
1069−178:13 NEWLINE
1069+176:13 tight glyph ]
1070−178:13 glyph [
1070+177:11 INDENT
1071−178:14 tight lit ~
1071+177:11 glyph ?-
1072−178:16 name b
1072+177:14 name second
1073−178:17 tight glyph ]
1073+178:13 INDENT
1074−178:19 glyph `
1074+178:13 lit ~
1075−178:20 tight glyph (
1075+178:15 name first
1076−178:21 tight name combine
1076+179:13 NEWLINE
1077−178:29 name a
1077+179:13 glyph [
1078−178:31 name b
1078+179:14 tight lit ~
1079−178:32 tight glyph )
1079+179:16 name b
1080−180:1 DEDENT
1080+179:17 tight glyph ]
1081−180:1 DEDENT
1081+179:19 glyph `
1082−180:1 DEDENT
1082+179:20 tight glyph (
1083−180:1 DEDENT
1083+179:21 tight name combine
1084−180:1 DEDENT
1084+179:29 name a
1085−180:1 DEDENT
1085+179:31 name b
1086−180:1 NEWLINE
1086+179:32 tight glyph )
1087−180:1 glyph ++
1087+181:1 DEDENT
1088−180:4 name clef
1088+181:1 DEDENT
1089−180:9 glyph |=
1089+181:1 DEDENT
1090−180:12 name args
1090+181:1 DEDENT
1091−180:16 tight glyph =
1091+181:1 DEDENT
1092−180:17 tight glyph [
1092+181:1 DEDENT
1093−180:18 tight glyph (
1093+181:1 NEWLINE
1094−180:19 tight name unit
1094+181:1 glyph ++
1095−180:24 tvar A
1095+181:4 name clef
1096−180:25 tight glyph )
1096+181:9 glyph |=
1097−180:27 glyph (
1097+181:12 name args
1098−180:28 tight name unit
1098+181:16 tight glyph =
1099−180:33 tvar B
1099+181:17 tight glyph [
1100−180:34 tight glyph )
1100+181:18 tight glyph (
1101−180:36 glyph $-(
1101+181:19 tight name unit
1102−180:39 tight glyph [
1102+181:24 tvar A
1103−180:40 tight tvar A
1103+181:25 tight glyph )
1104−180:42 tvar B
1104+181:27 glyph (
1105−180:43 tight glyph ]
1105+181:28 tight name unit
1106−180:45 glyph (
1106+181:33 tvar B
1107−180:46 tight name unit
1107+181:34 tight glyph )
1108−180:51 tvar C
1108+181:36 glyph $-(
1109−180:52 tight glyph )
1109+181:39 tight glyph [
1110−180:53 tight glyph )
1110+181:40 tight tvar A
1111−180:54 tight glyph ]
1111+181:42 tvar B
1112−181:3 INDENT
1112+181:43 tight glyph ]
1113−181:3 glyph ?-
1113+181:45 glyph (
1114−181:6 name args
1114+181:46 tight name unit
1115−182:5 INDENT
1115+181:51 tvar C
1116−182:5 glyph [
1116+181:52 tight glyph )
1117−182:6 tight name first
1117+181:53 tight glyph )
1118−182:12 name second
1118+181:54 tight glyph ]
1119−182:19 name combine
1119+182:3 INDENT
1120−182:26 tight glyph ]
1120+182:3 glyph ?-
1121−183:7 INDENT
1121+182:6 name args
1122−183:7 glyph ?-
1122+183:5 INDENT
1123−183:10 name first
1123+183:5 glyph [
1124−184:9 INDENT
1124+183:6 tight name first
1125−184:9 lit ~
1125+183:12 name second
1126−184:11 lit ~
1126+183:19 name combine
1127−185:9 NEWLINE
1127+183:26 tight glyph ]
1128−185:9 glyph [
1128+184:7 INDENT
1129−185:10 tight lit ~
1129+184:7 glyph ?-
1130−185:12 name a
1130+184:10 name first
1131−185:13 tight glyph ]
1131+185:9 INDENT
1132−186:11 INDENT
1132+185:9 lit ~
1133−186:11 glyph ?-
1133+185:11 lit ~
1134−186:14 name second
1134+186:9 NEWLINE
1135−187:13 INDENT
1135+186:9 glyph [
1136−187:13 lit ~
1136+186:10 tight lit ~
1137−187:15 lit ~
1137+186:12 name a
1138−188:13 NEWLINE
1138+186:13 tight glyph ]
1139−188:13 glyph [
1139+187:11 INDENT
1140−188:14 tight lit ~
1140+187:11 glyph ?-
1141−188:16 name b
1141+187:14 name second
1142−188:17 tight glyph ]
1142+188:13 INDENT
1143−188:19 glyph (
1143+188:13 lit ~
1144−188:20 tight name combine
1144+188:15 lit ~
1145−188:28 name a
1145+189:13 NEWLINE
1146−188:30 name b
1146+189:13 glyph [
1147−188:31 tight glyph )
1147+189:14 tight lit ~
1148−190:1 DEDENT
1148+189:16 name b
1149−190:1 DEDENT
1149+189:17 tight glyph ]
1150−190:1 DEDENT
1150+189:19 glyph (
1151−190:1 DEDENT
1151+189:20 tight name combine
1152−190:1 DEDENT
1152+189:28 name a
1153−190:1 DEDENT
1153+189:30 name b
1154−190:1 NEWLINE
1154+189:31 tight glyph )
1155−190:1 glyph ++
1155+191:1 DEDENT
1156−190:4 name skim
1156+191:1 DEDENT
1157−190:9 glyph |=
1157+191:1 DEDENT
1158−190:12 name args
1158+191:1 DEDENT
1159−190:16 tight glyph =
1159+191:1 DEDENT
1160−190:17 tight glyph [
1160+191:1 DEDENT
1161−190:18 tight glyph (
1161+191:1 NEWLINE
1162−190:19 tight name list
1162+191:1 glyph ++
1163−190:24 tvar A
1163+191:4 name skim
1164−190:25 tight glyph )
1164+191:9 glyph |=
1165−190:27 glyph $-(
1165+191:12 name args
1166−190:30 tight tvar A
1166+191:16 tight glyph =
1167−190:32 glyph ?
1167+191:17 tight glyph [
1168−190:33 tight glyph )
1168+191:18 tight glyph (
1169−190:34 tight glyph ]
1169+191:19 tight name list
1170−191:3 INDENT
1170+191:24 tvar A
1171−191:3 glyph ?-
1171+191:25 tight glyph )
1172−191:6 name args
1172+191:27 glyph $-(
1173−192:5 INDENT
1173+191:30 tight tvar A
1174−192:5 glyph [
1174+191:32 glyph ?
1175−192:6 tight name xs
1175+191:33 tight glyph )
1176−192:9 name predicate
1176+191:34 tight glyph ]
1177−192:18 tight glyph ]
1177+192:3 INDENT
1178−193:7 INDENT
1178+192:3 glyph ?-
1179−193:7 glyph ?-
1179+192:6 name args
1180−193:10 name xs
1180+193:5 INDENT
1181−194:9 INDENT
1181+193:5 glyph [
1182−194:9 lit ~
1182+193:6 tight name xs
1183−194:11 lit ~
1183+193:9 name predicate
1184−195:9 NEWLINE
1184+193:18 tight glyph ]
1185−195:9 glyph [
1185+194:7 INDENT
1186−195:10 tight name item
1186+194:7 glyph ?-
1187−195:15 name rest
1187+194:10 name xs
1188−195:19 tight glyph ]
1188+195:9 INDENT
1189−196:11 INDENT
1189+195:9 lit ~
1190−196:11 glyph ?-
1190+195:11 lit ~
1191−196:14 glyph (
1191+196:9 NEWLINE
1192−196:15 tight name predicate
1192+196:9 glyph [
1193−196:25 name item
1193+196:10 tight name item
1194−196:29 tight glyph )
1194+196:15 name rest
1195−197:13 INDENT
1195+196:19 tight glyph ]
1196−197:13 lit %.y
1196+197:11 INDENT
1197−197:17 glyph [
1197+197:11 glyph ?-
1198−197:18 tight name item
1198+197:14 glyph (
1199−197:23 glyph (
1199+197:15 tight name predicate
1200−197:24 tight name skim
1200+197:25 name item
1201−197:29 name rest
1201+197:29 tight glyph )
1202−197:34 name predicate
1202+198:13 INDENT
1203−197:43 tight glyph )
1203+198:13 lit %.y
1204−197:44 tight glyph ]
1204+198:17 glyph [
1205−198:13 NEWLINE
1205+198:18 tight name item
1206−198:13 lit %.n
1206+198:23 glyph (
1207−198:17 glyph (
1207+198:24 tight name skim
1208−198:18 tight name skim
1208+198:29 name rest
1209−198:23 name rest
1209+198:34 name predicate
1210−198:28 name predicate
1210+198:43 tight glyph )
1211−198:37 tight glyph )
1211+198:44 tight glyph ]
1212−200:1 DEDENT
1212+199:13 NEWLINE
1213−200:1 DEDENT
1213+199:13 lit %.n
1214−200:1 DEDENT
1214+199:17 glyph (
1215−200:1 DEDENT
1215+199:18 tight name skim
1216−200:1 DEDENT
1216+199:23 name rest
1217−200:1 DEDENT
1217+199:28 name predicate
1218−200:1 NEWLINE
1218+199:37 tight glyph )
1219−200:1 glyph ++
1219+201:1 DEDENT
1220−200:4 name skip
1220+201:1 DEDENT
1221−200:9 glyph |=
1221+201:1 DEDENT
1222−200:12 name args
1222+201:1 DEDENT
1223−200:16 tight glyph =
1223+201:1 DEDENT
1224−200:17 tight glyph [
1224+201:1 DEDENT
1225−200:18 tight glyph (
1225+201:1 NEWLINE
1226−200:19 tight name list
1226+201:1 glyph ++
1227−200:24 tvar A
1227+201:4 name skip
1228−200:25 tight glyph )
1228+201:9 glyph |=
1229−200:27 glyph $-(
1229+201:12 name args
1230−200:30 tight tvar A
1230+201:16 tight glyph =
1231−200:32 glyph ?
1231+201:17 tight glyph [
1232−200:33 tight glyph )
1232+201:18 tight glyph (
1233−200:34 tight glyph ]
1233+201:19 tight name list
1234−201:3 INDENT
1234+201:24 tvar A
1235−201:3 glyph ?-
1235+201:25 tight glyph )
1236−201:6 name args
1236+201:27 glyph $-(
1237−202:5 INDENT
1237+201:30 tight tvar A
1238−202:5 glyph [
1238+201:32 glyph ?
1239−202:6 tight name xs
1239+201:33 tight glyph )
1240−202:9 name predicate
1240+201:34 tight glyph ]
1241−202:18 tight glyph ]
1241+202:3 INDENT
1242−203:7 INDENT
1242+202:3 glyph ?-
1243−203:7 glyph ?-
1243+202:6 name args
1244−203:10 name xs
1244+203:5 INDENT
1245−204:9 INDENT
1245+203:5 glyph [
1246−204:9 lit ~
1246+203:6 tight name xs
1247−204:11 lit ~
1247+203:9 name predicate
1248−205:9 NEWLINE
1248+203:18 tight glyph ]
1249−205:9 glyph [
1249+204:7 INDENT
1250−205:10 tight name item
1250+204:7 glyph ?-
1251−205:15 name rest
1251+204:10 name xs
1252−205:19 tight glyph ]
1252+205:9 INDENT
1253−206:11 INDENT
1253+205:9 lit ~
1254−206:11 glyph ?-
1254+205:11 lit ~
1255−206:14 glyph (
1255+206:9 NEWLINE
1256−206:15 tight name predicate
1256+206:9 glyph [
1257−206:25 name item
1257+206:10 tight name item
1258−206:29 tight glyph )
1258+206:15 name rest
1259−207:13 INDENT
1259+206:19 tight glyph ]
1260−207:13 lit %.y
1260+207:11 INDENT
1261−207:17 glyph (
1261+207:11 glyph ?-
1262−207:18 tight name skip
1262+207:14 glyph (
1263−207:23 name rest
1263+207:15 tight name predicate
1264−207:28 name predicate
1264+207:25 name item
1265−207:37 tight glyph )
1265+207:29 tight glyph )
1266−208:13 NEWLINE
1266+208:13 INDENT
1267−208:13 lit %.n
1267+208:13 lit %.y
1268−208:17 glyph [
1268+208:17 glyph (
1269−208:18 tight name item
1269+208:18 tight name skip
1270−208:23 glyph (
1270+208:23 name rest
1271−208:24 tight name skip
1271+208:28 name predicate
1272−208:29 name rest
1272+208:37 tight glyph )
1273−208:34 name predicate
1273+209:13 NEWLINE
1274−208:43 tight glyph )
1274+209:13 lit %.n
1275−208:44 tight glyph ]
1275+209:17 glyph [
1276−210:1 DEDENT
1276+209:18 tight name item
1277−210:1 DEDENT
1277+209:23 glyph (
1278−210:1 DEDENT
1278+209:24 tight name skip
1279−210:1 DEDENT
1279+209:29 name rest
1280−210:1 DEDENT
1280+209:34 name predicate
1281−210:1 DEDENT
1281+209:43 tight glyph )
1282−210:1 NEWLINE
1282+209:44 tight glyph ]
1283−210:1 glyph ++
1283+211:1 DEDENT
1284−210:4 name levy
1284+211:1 DEDENT
1285−210:9 glyph |=
1285+211:1 DEDENT
1286−210:12 name args
1286+211:1 DEDENT
1287−210:16 tight glyph =
1287+211:1 DEDENT
1288−210:17 tight glyph [
1288+211:1 DEDENT
1289−210:18 tight glyph (
1289+211:1 NEWLINE
1290−210:19 tight name list
1290+211:1 glyph ++
1291−210:24 tvar A
1291+211:4 name levy
1292−210:25 tight glyph )
1292+211:9 glyph |=
1293−210:27 glyph $-(
1293+211:12 name args
1294−210:30 tight tvar A
1294+211:16 tight glyph =
1295−210:32 glyph ?
1295+211:17 tight glyph [
1296−210:33 tight glyph )
1296+211:18 tight glyph (
1297−210:34 tight glyph ]
1297+211:19 tight name list
1298−211:3 INDENT
1298+211:24 tvar A
1299−211:3 glyph ?-
1299+211:25 tight glyph )
1300−211:6 name args
1300+211:27 glyph $-(
1301−212:5 INDENT
1301+211:30 tight tvar A
1302−212:5 glyph [
1302+211:32 glyph ?
1303−212:6 tight name xs
1303+211:33 tight glyph )
1304−212:9 name predicate
1304+211:34 tight glyph ]
1305−212:18 tight glyph ]
1305+212:3 INDENT
1306−213:7 INDENT
1306+212:3 glyph ?-
1307−213:7 glyph ?-
1307+212:6 name args
1308−213:10 name xs
1308+213:5 INDENT
1309−214:9 INDENT
1309+213:5 glyph [
1310−214:9 lit ~
1310+213:6 tight name xs
1311−214:11 lit %.y
1311+213:9 name predicate
1312−215:9 NEWLINE
1312+213:18 tight glyph ]
1313−215:9 glyph [
1313+214:7 INDENT
1314−215:10 tight name item
1314+214:7 glyph ?-
1315−215:15 name rest
1315+214:10 name xs
1316−215:19 tight glyph ]
1316+215:9 INDENT
1317−216:11 INDENT
1317+215:9 lit ~
1318−216:11 glyph ?-
1318+215:11 lit %.y
1319−216:14 glyph (
1319+216:9 NEWLINE
1320−216:15 tight name predicate
1320+216:9 glyph [
1321−216:25 name item
1321+216:10 tight name item
1322−216:29 tight glyph )
1322+216:15 name rest
1323−217:13 INDENT
1323+216:19 tight glyph ]
1324−217:13 lit %.y
1324+217:11 INDENT
1325−217:17 glyph (
1325+217:11 glyph ?-
1326−217:18 tight name levy
1326+217:14 glyph (
1327−217:23 name rest
1327+217:15 tight name predicate
1328−217:28 name predicate
1328+217:25 name item
1329−217:37 tight glyph )
1329+217:29 tight glyph )
1330−218:13 NEWLINE
1330+218:13 INDENT
1331−218:13 lit %.n
1331+218:13 lit %.y
1332−218:17 lit %.n
1332+218:17 glyph (
1333−220:1 DEDENT
1333+218:18 tight name levy
1334−220:1 DEDENT
1334+218:23 name rest
1335−220:1 DEDENT
1335+218:28 name predicate
1336−220:1 DEDENT
1336+218:37 tight glyph )
1337−220:1 DEDENT
1337+219:13 NEWLINE
1338−220:1 DEDENT
1338+219:13 lit %.n
1339−220:1 NEWLINE
1339+219:17 lit %.n
1340−220:1 glyph ++
1340+221:1 DEDENT
1341−220:4 name lien
1341+221:1 DEDENT
1342−220:9 glyph |=
1342+221:1 DEDENT
1343−220:12 name args
1343+221:1 DEDENT
1344−220:16 tight glyph =
1344+221:1 DEDENT
1345−220:17 tight glyph [
1345+221:1 DEDENT
1346−220:18 tight glyph (
1346+221:1 NEWLINE
1347−220:19 tight name list
1347+221:1 glyph ++
1348−220:24 tvar A
1348+221:4 name lien
1349−220:25 tight glyph )
1349+221:9 glyph |=
1350−220:27 glyph $-(
1350+221:12 name args
1351−220:30 tight tvar A
1351+221:16 tight glyph =
1352−220:32 glyph ?
1352+221:17 tight glyph [
1353−220:33 tight glyph )
1353+221:18 tight glyph (
1354−220:34 tight glyph ]
1354+221:19 tight name list
1355−221:3 INDENT
1355+221:24 tvar A
1356−221:3 glyph ?-
1356+221:25 tight glyph )
1357−221:6 name args
1357+221:27 glyph $-(
1358−222:5 INDENT
1358+221:30 tight tvar A
1359−222:5 glyph [
1359+221:32 glyph ?
1360−222:6 tight name xs
1360+221:33 tight glyph )
1361−222:9 name predicate
1361+221:34 tight glyph ]
1362−222:18 tight glyph ]
1362+222:3 INDENT
1363−223:7 INDENT
1363+222:3 glyph ?-
1364−223:7 glyph ?-
1364+222:6 name args
1365−223:10 name xs
1365+223:5 INDENT
1366−224:9 INDENT
1366+223:5 glyph [
1367−224:9 lit ~
1367+223:6 tight name xs
1368−224:11 lit %.n
1368+223:9 name predicate
1369−225:9 NEWLINE
1369+223:18 tight glyph ]
1370−225:9 glyph [
1370+224:7 INDENT
1371−225:10 tight name item
1371+224:7 glyph ?-
1372−225:15 name rest
1372+224:10 name xs
1373−225:19 tight glyph ]
1373+225:9 INDENT
1374−226:11 INDENT
1374+225:9 lit ~
1375−226:11 glyph ?-
1375+225:11 lit %.n
1376−226:14 glyph (
1376+226:9 NEWLINE
1377−226:15 tight name predicate
1377+226:9 glyph [
1378−226:25 name item
1378+226:10 tight name item
1379−226:29 tight glyph )
1379+226:15 name rest
1380−227:13 INDENT
1380+226:19 tight glyph ]
1381−227:13 lit %.y
1381+227:11 INDENT
1382−227:17 lit %.y
1382+227:11 glyph ?-
1383−228:13 NEWLINE
1383+227:14 glyph (
1384−228:13 lit %.n
1384+227:15 tight name predicate
1385−228:17 glyph (
1385+227:25 name item
1386−228:18 tight name lien
1386+227:29 tight glyph )
1387−228:23 name rest
1387+228:13 INDENT
1388−228:28 name predicate
1388+228:13 lit %.y
1389−228:37 tight glyph )
1389+228:17 lit %.y
1390−230:1 DEDENT
1390+229:13 NEWLINE
1391−230:1 DEDENT
1391+229:13 lit %.n
1392−230:1 DEDENT
1392+229:17 glyph (
1393−230:1 DEDENT
1393+229:18 tight name lien
1394−230:1 DEDENT
1394+229:23 name rest
1395−230:1 DEDENT
1395+229:28 name predicate
1396−230:1 NEWLINE
1396+229:37 tight glyph )
1397−230:1 glyph ++
1397+231:1 DEDENT
1398−230:4 name roll
1398+231:1 DEDENT
1399−230:9 glyph |=
1399+231:1 DEDENT
1400−230:12 name args
1400+231:1 DEDENT
1401−230:16 tight glyph =
1401+231:1 DEDENT
1402−230:17 tight glyph [
1402+231:1 DEDENT
1403−230:18 tight glyph (
1403+231:1 NEWLINE
1404−230:19 tight name list
1404+231:1 glyph ++
1405−230:24 tvar A
1405+231:4 name roll
1406−230:25 tight glyph )
1406+231:9 glyph |=
1407−230:27 tvar B
1407+231:12 name args
1408−230:29 glyph $-(
1408+231:16 tight glyph =
1409−230:32 tight glyph [
1409+231:17 tight glyph [
1410−230:33 tight tvar A
1410+231:18 tight glyph (
1411−230:35 tvar B
1411+231:19 tight name list
1412−230:36 tight glyph ]
1412+231:24 tvar A
1413−230:38 tvar B
1413+231:25 tight glyph )
1414−230:39 tight glyph )
1414+231:27 tvar B
1415−230:40 tight glyph ]
1415+231:29 glyph $-(
1416−231:3 INDENT
1416+231:32 tight glyph [
1417−231:3 glyph ?-
1417+231:33 tight tvar A
1418−231:6 name args
1418+231:35 tvar B
1419−232:5 INDENT
1419+231:36 tight glyph ]
1420−232:5 glyph [
1420+231:38 tvar B
1421−232:6 tight name xs
1421+231:39 tight glyph )
1422−232:9 name start
1422+231:40 tight glyph ]
1423−232:15 name combine
1423+232:3 INDENT
1424−232:22 tight glyph ]
1424+232:3 glyph ?-
1425−233:7 INDENT
1425+232:6 name args
1426−233:7 glyph ?-
1426+233:5 INDENT
1427−233:10 name xs
1427+233:5 glyph [
1428−234:9 INDENT
1428+233:6 tight name xs
1429−234:9 lit ~
1429+233:9 name start
1430−234:11 name start
1430+233:15 name combine
1431−235:9 NEWLINE
1431+233:22 tight glyph ]
1432−235:9 glyph [
1432+234:7 INDENT
1433−235:10 tight name item
1433+234:7 glyph ?-
1434−235:15 name rest
1434+234:10 name xs
1435−235:19 tight glyph ]
1435+235:9 INDENT
1436−235:21 glyph (
1436+235:9 lit ~
1437−235:22 tight name roll
1437+235:11 name start
1438−235:27 name rest
1438+236:9 NEWLINE
1439−235:32 glyph (
1439+236:9 glyph [
1440−235:33 tight name combine
1440+236:10 tight name item
1441−235:41 name item
1441+236:15 name rest
1442−235:46 name start
1442+236:19 tight glyph ]
1443−235:51 tight glyph )
1443+236:21 glyph (
1444−235:53 name combine
1444+236:22 tight name roll
1445−235:60 tight glyph )
1445+236:27 name rest
1446−237:1 DEDENT
1446+236:32 glyph (
1447−237:1 DEDENT
1447+236:33 tight name combine
1448−237:1 DEDENT
1448+236:41 name item
1449−237:1 DEDENT
1449+236:46 name start
1450−237:1 NEWLINE
1450+236:51 tight glyph )
1451−237:1 glyph ++
1451+236:53 name combine
1452−237:4 name reel
1452+236:60 tight glyph )
1453−237:9 glyph |=
1453+238:1 DEDENT
1454−237:12 name args
1454+238:1 DEDENT
1455−237:16 tight glyph =
1455+238:1 DEDENT
1456−237:17 tight glyph [
1456+238:1 DEDENT
1457−237:18 tight glyph (
1457+238:1 NEWLINE
1458−237:19 tight name list
1458+238:1 glyph ++
1459−237:24 tvar A
1459+238:4 name reel
1460−237:25 tight glyph )
1460+238:9 glyph |=
1461−237:27 tvar B
1461+238:12 name args
1462−237:29 glyph $-(
1462+238:16 tight glyph =
1463−237:32 tight glyph [
1463+238:17 tight glyph [
1464−237:33 tight tvar A
1464+238:18 tight glyph (
1465−237:35 tvar B
1465+238:19 tight name list
1466−237:36 tight glyph ]
1466+238:24 tvar A
1467−237:38 tvar B
1467+238:25 tight glyph )
1468−237:39 tight glyph )
1468+238:27 tvar B
1469−237:40 tight glyph ]
1469+238:29 glyph $-(
1470−238:3 INDENT
1470+238:32 tight glyph [
1471−238:3 glyph ?-
1471+238:33 tight tvar A
1472−238:6 name args
1472+238:35 tvar B
1473−239:5 INDENT
1473+238:36 tight glyph ]
1474−239:5 glyph [
1474+238:38 tvar B
1475−239:6 tight name xs
1475+238:39 tight glyph )
1476−239:9 name start
1476+238:40 tight glyph ]
1477−239:15 name combine
1477+239:3 INDENT
1478−239:22 tight glyph ]
1478+239:3 glyph ?-
1479−240:7 INDENT
1479+239:6 name args
1480−240:7 glyph ?-
1480+240:5 INDENT
1481−240:10 name xs
1481+240:5 glyph [
1482−241:9 INDENT
1482+240:6 tight name xs
1483−241:9 lit ~
1483+240:9 name start
1484−241:11 name start
1484+240:15 name combine
1485−242:9 NEWLINE
1485+240:22 tight glyph ]
1486−242:9 glyph [
1486+241:7 INDENT
1487−242:10 tight name item
1487+241:7 glyph ?-
1488−242:15 name rest
1488+241:10 name xs
1489−242:19 tight glyph ]
1489+242:9 INDENT
1490−242:21 glyph (
1490+242:9 lit ~
1491−242:22 tight name combine
1491+242:11 name start
1492−242:30 name item
1492+243:9 NEWLINE
1493−242:35 glyph (
1493+243:9 glyph [
1494−242:36 tight name reel
1494+243:10 tight name item
1495−242:41 name rest
1495+243:15 name rest
1496−242:46 name start
1496+243:19 tight glyph ]
1497−242:52 name combine
1497+243:21 glyph (
1498−242:59 tight glyph )
1498+243:22 tight name combine
1499−242:60 tight glyph )
1499+243:30 name item
1500−244:1 DEDENT
1500+243:35 glyph (
1501−244:1 DEDENT
1501+243:36 tight name reel
1502−244:1 DEDENT
1502+243:41 name rest
1503−244:1 DEDENT
1503+243:46 name start
1504−244:1 NEWLINE
1504+243:52 name combine
1505−244:1 glyph ++
1505+243:59 tight glyph )
1506−244:4 name flit
1506+243:60 tight glyph )
1507−244:9 glyph |=
1507+245:1 DEDENT
1508−244:12 name predicate
1508+245:1 DEDENT
1509−244:21 tight glyph =
1509+245:1 DEDENT
1510−244:22 tight glyph $-(
1510+245:1 DEDENT
1511−244:25 tight tvar A
1511+245:1 NEWLINE
1512−244:27 glyph ?
1512+245:1 glyph ++
1513−244:28 tight glyph )
1513+245:4 name flit
1514−245:3 INDENT
1514+245:9 glyph |=
1515−245:3 glyph |=
1515+245:12 name predicate
1516−245:6 name value
1516+245:21 tight glyph =
1517−245:11 tight glyph =
1517+245:22 tight glyph $-(
1518−245:12 tight tvar A
1518+245:25 tight tvar A
1519−246:5 INDENT
1519+245:27 glyph ?
1520−246:5 glyph ?-
1520+245:28 tight glyph )
1521−246:8 glyph (
1521+246:3 INDENT
1522−246:9 tight name predicate
1522+246:3 glyph |=
1523−246:19 name value
1523+246:6 name value
1524−246:24 tight glyph )
1524+246:11 tight glyph =
1525−247:7 INDENT
1525+246:12 tight tvar A
1526−247:7 lit %.y
1526+247:5 INDENT
1527−247:11 glyph `
1527+247:5 glyph ?-
1528−247:12 tight name value
1528+247:8 glyph (
1529−248:7 NEWLINE
1529+247:9 tight name predicate
1530−248:7 lit %.n
1530+247:19 name value
1531−248:11 lit ~
1531+247:24 tight glyph )
1532−250:1 DEDENT
1532+248:7 INDENT
1533−250:1 DEDENT
1533+248:7 lit %.y
1534−250:1 DEDENT
1534+248:11 glyph `
1535−250:1 NEWLINE
1535+248:12 tight name value
1536−250:1 glyph ++
1536+249:7 NEWLINE
1537−250:4 name murn
1537+249:7 lit %.n
1538−250:9 glyph |=
1538+249:11 lit ~
1539−250:12 name args
1539+251:1 DEDENT
1540−250:16 tight glyph =
1540+251:1 DEDENT
1541−250:17 tight glyph [
1541+251:1 DEDENT
1542−250:18 tight glyph (
1542+251:1 NEWLINE
1543−250:19 tight name list
1543+251:1 glyph ++
1544−250:24 tvar A
1544+251:4 name murn
1545−250:25 tight glyph )
1545+251:9 glyph |=
1546−250:27 glyph $-(
1546+251:12 name args
1547−250:30 tight tvar A
1547+251:16 tight glyph =
1548−250:32 glyph (
1548+251:17 tight glyph [
1549−250:33 tight name unit
1549+251:18 tight glyph (
1550−250:38 tvar B
1550+251:19 tight name list
1551−250:39 tight glyph )
1551+251:24 tvar A
1552−250:40 tight glyph )
1552+251:25 tight glyph )
1553−250:41 tight glyph ]
1553+251:27 glyph $-(
1554−251:3 INDENT
1554+251:30 tight tvar A
1555−251:3 glyph ?-
1555+251:32 glyph (
1556−251:6 name args
1556+251:33 tight name unit
1557−252:5 INDENT
1557+251:38 tvar B
1558−252:5 glyph [
1558+251:39 tight glyph )
1559−252:6 tight name xs
1559+251:40 tight glyph )
1560−252:9 name f
1560+251:41 tight glyph ]
1561−252:10 tight glyph ]
1561+252:3 INDENT
1562−253:7 INDENT
1562+252:3 glyph ?-
1563−253:7 glyph ?-
1563+252:6 name args
1564−253:10 name xs
1564+253:5 INDENT
1565−254:9 INDENT
1565+253:5 glyph [
1566−254:9 lit ~
1566+253:6 tight name xs
1567−254:11 lit ~
1567+253:9 name f
1568−255:9 NEWLINE
1568+253:10 tight glyph ]
1569−255:9 glyph [
1569+254:7 INDENT
1570−255:10 tight name item
1570+254:7 glyph ?-
1571−255:15 name rest
1571+254:10 name xs
1572−255:19 tight glyph ]
1572+255:9 INDENT
1573−256:11 INDENT
1573+255:9 lit ~
1574−256:11 glyph ?-
1574+255:11 lit ~
1575−256:14 glyph (
1575+256:9 NEWLINE
1576−256:15 tight name f
1576+256:9 glyph [
1577−256:17 name item
1577+256:10 tight name item
1578−256:21 tight glyph )
1578+256:15 name rest
1579−257:13 INDENT
1579+256:19 tight glyph ]
1580−257:13 lit ~
1580+257:11 INDENT
1581−257:15 glyph (
1581+257:11 glyph ?-
1582−257:16 tight name murn
1582+257:14 glyph (
1583−257:21 name rest
1583+257:15 tight name f
1584−257:26 name f
1584+257:17 name item
1585−257:27 tight glyph )
1585+257:21 tight glyph )
1586−258:13 NEWLINE
1586+258:13 INDENT
1587−258:13 glyph [
1587+258:13 lit ~
1588−258:14 tight lit ~
1588+258:15 glyph (
1589−258:16 name value
1589+258:16 tight name murn
1590−258:21 tight glyph ]
1590+258:21 name rest
1591−258:23 glyph [
1591+258:26 name f
1592−258:24 tight name value
1592+258:27 tight glyph )
1593−258:30 glyph (
1593+259:13 NEWLINE
1594−258:31 tight name murn
1594+259:13 glyph [
1595−258:36 name rest
1595+259:14 tight lit ~
1596−258:41 name f
1596+259:16 name value
1597−258:42 tight glyph )
1597+259:21 tight glyph ]
1598−258:43 tight glyph ]
1598+259:23 glyph [
1599−260:1 DEDENT
1599+259:24 tight name value
1600−260:1 DEDENT
1600+259:30 glyph (
1601−260:1 DEDENT
1601+259:31 tight name murn
1602−260:1 DEDENT
1602+259:36 name rest
1603−260:1 DEDENT
1603+259:41 name f
1604−260:1 DEDENT
1604+259:42 tight glyph )
1605−260:1 NEWLINE
1605+259:43 tight glyph ]
1606−260:1 glyph ++
1606+261:1 DEDENT
1607−260:4 name join
1607+261:1 DEDENT
1608−260:9 glyph |=
1608+261:1 DEDENT
1609−260:12 name args
1609+261:1 DEDENT
1610−260:16 tight glyph =
1610+261:1 DEDENT
1611−260:17 tight glyph [
1611+261:1 DEDENT
1612−260:18 tight tvar A
1612+261:1 NEWLINE
1613−260:20 glyph (
1613+261:1 glyph ++
1614−260:21 tight name list
1614+261:4 name join
1615−260:26 tvar A
1615+261:9 glyph |=
1616−260:27 tight glyph )
1616+261:12 name args
1617−260:28 tight glyph ]
1617+261:16 tight glyph =
1618−261:3 INDENT
1618+261:17 tight glyph [
1619−261:3 glyph ?-
1619+261:18 tight tvar A
1620−261:6 name args
1620+261:20 glyph (
1621−262:5 INDENT
1621+261:21 tight name list
1622−262:5 glyph [
1622+261:26 tvar A
1623−262:6 tight name separator
1623+261:27 tight glyph )
1624−262:16 name xs
1624+261:28 tight glyph ]
1625−262:18 tight glyph ]
1625+262:3 INDENT
1626−263:7 INDENT
1626+262:3 glyph ?-
1627−263:7 glyph ?-
1627+262:6 name args
1628−263:10 name xs
1628+263:5 INDENT
1629−264:9 INDENT
1629+263:5 glyph [
1630−264:9 lit ~
1630+263:6 tight name separator
1631−264:11 lit ~
1631+263:16 name xs
1632−265:9 NEWLINE
1632+263:18 tight glyph ]
1633−265:9 glyph [
1633+264:7 INDENT
1634−265:10 tight name item
1634+264:7 glyph ?-
1635−265:15 name rest
1635+264:10 name xs
1636−265:19 tight glyph ]
1636+265:9 INDENT
1637−266:11 INDENT
1637+265:9 lit ~
1638−266:11 glyph ?-
1638+265:11 lit ~
1639−266:14 name rest
1639+266:9 NEWLINE
1640−267:13 INDENT
1640+266:9 glyph [
1641−267:13 lit ~
1641+266:10 tight name item
1642−267:15 glyph [
1642+266:15 name rest
1643−267:16 tight name item
1643+266:19 tight glyph ]
1644−267:21 lit ~
1644+267:11 INDENT
1645−267:22 tight glyph ]
1645+267:11 glyph ?-
1646−268:13 NEWLINE
1646+267:14 name rest
1647−268:13 glyph [
1647+268:13 INDENT
1648−268:14 tight name next
1648+268:13 lit ~
1649−268:19 name more
1649+268:15 glyph [
1650−268:23 tight glyph ]
1650+268:16 tight name item
1651−268:25 glyph [
1651+268:21 lit ~
1652−268:26 tight name item
1652+268:22 tight glyph ]
1653−268:31 glyph [
1653+269:13 NEWLINE
1654−268:32 tight name separator
1654+269:13 glyph [
1655−268:42 glyph (
1655+269:14 tight name next
1656−268:43 tight name join
1656+269:19 name more
1657−268:48 name separator
1657+269:23 tight glyph ]
1658−268:58 name rest
1658+269:25 glyph [
1659−268:62 tight glyph )
1659+269:26 tight name item
1660−268:63 tight glyph ]
1660+269:31 glyph [
1661−268:64 tight glyph ]
1661+269:32 tight name separator
1662−270:1 DEDENT
1662+269:42 glyph (
1663−270:1 DEDENT
1663+269:43 tight name join
1664−270:1 DEDENT
1664+269:48 name separator
1665−270:1 DEDENT
1665+269:58 name rest
1666−270:1 DEDENT
1666+269:62 tight glyph )
1667−270:1 DEDENT
1667+269:63 tight glyph ]
1668−270:1 NEWLINE
1668+269:64 tight glyph ]
1669−270:1 glyph ++
1669+271:1 DEDENT
1670−270:4 name snip
1670+271:1 DEDENT
1671−270:9 glyph |=
1671+271:1 DEDENT
1672−270:12 name xs
1672+271:1 DEDENT
1673−270:14 tight glyph =
1673+271:1 DEDENT
1674−270:15 tight glyph (
1674+271:1 DEDENT
1675−270:16 tight name list
1675+271:1 NEWLINE
1676−270:21 tvar A
1676+271:1 glyph ++
1677−270:22 tight glyph )
1677+271:4 name snip
1678−271:3 INDENT
1678+271:9 glyph |=
1679−271:3 glyph ?-
1679+271:12 name xs
1680−271:6 name xs
1680+271:14 tight glyph =
1681−272:5 INDENT
1681+271:15 tight glyph (
1682−272:5 lit ~
1682+271:16 tight name list
1683−272:7 lit ~
1683+271:21 tvar A
1684−273:5 NEWLINE
1684+271:22 tight glyph )
1685−273:5 glyph [
1685+272:3 INDENT
1686−273:6 tight name item
1686+272:3 glyph ?-
1687−273:11 name rest
1687+272:6 name xs
1688−273:15 tight glyph ]
1688+273:5 INDENT
1689−274:7 INDENT
1689+273:5 lit ~
1690−274:7 glyph ?-
1690+273:7 lit ~
1691−274:10 name rest
1691+274:5 NEWLINE
1692−275:9 INDENT
1692+274:5 glyph [
1693−275:9 lit ~
1693+274:6 tight name item
1694−275:11 lit ~
1694+274:11 name rest
1695−276:9 NEWLINE
1695+274:15 tight glyph ]
1696−276:9 glyph [
1696+275:7 INDENT
1697−276:10 tight name next
1697+275:7 glyph ?-
1698−276:15 name more
1698+275:10 name rest
1699−276:19 tight glyph ]
1699+276:9 INDENT
1700−276:21 glyph [
1700+276:9 lit ~
1701−276:22 tight name item
1701+276:11 lit ~
1702−276:27 glyph (
1702+277:9 NEWLINE
1703−276:28 tight name snip
1703+277:9 glyph [
1704−276:33 name rest
1704+277:10 tight name next
1705−276:37 tight glyph )
1705+277:15 name more
1706−276:38 tight glyph ]
1706+277:19 tight glyph ]
1707−278:1 DEDENT
1707+277:21 glyph [
1708−278:1 DEDENT
1708+277:22 tight name item
1709−278:1 DEDENT
1709+277:27 glyph (
1710−278:1 DEDENT
1710+277:28 tight name snip
1711−278:1 NEWLINE
1711+277:33 name rest
1712−278:1 glyph ++
1712+277:37 tight glyph )
1713−278:4 name rear
1713+277:38 tight glyph ]
1714−278:9 glyph |=
1714+279:1 DEDENT
1715−278:12 name xs
1715+279:1 DEDENT
1716−278:14 tight glyph =
1716+279:1 DEDENT
1717−278:15 tight glyph (
1717+279:1 DEDENT
1718−278:16 tight name list
1718+279:1 NEWLINE
1719−278:21 tvar A
1719+279:1 glyph ++
1720−278:22 tight glyph )
1720+279:4 name rear
1721−279:3 INDENT
1721+279:9 glyph |=
1722−279:3 glyph ?-
1722+279:12 name xs
1723−279:6 name xs
1723+279:14 tight glyph =
1724−280:5 INDENT
1724+279:15 tight glyph (
1725−280:5 lit ~
1725+279:16 tight name list
1726−280:7 glyph !!
1726+279:21 tvar A
1727−281:5 NEWLINE
1727+279:22 tight glyph )
1728−281:5 glyph [
1728+280:3 INDENT
1729−281:6 tight name item
1729+280:3 glyph ?-
1730−281:11 name rest
1730+280:6 name xs
1731−281:15 tight glyph ]
1731+281:5 INDENT
1732−282:7 INDENT
1732+281:5 lit ~
1733−282:7 glyph ?-
1733+281:7 glyph !!
1734−282:10 name rest
1734+282:5 NEWLINE
1735−283:9 INDENT
1735+282:5 glyph [
1736−283:9 lit ~
1736+282:6 tight name item
1737−283:11 name item
1737+282:11 name rest
1738−284:9 NEWLINE
1738+282:15 tight glyph ]
1739−284:9 glyph [
1739+283:7 INDENT
1740−284:10 tight name next
1740+283:7 glyph ?-
1741−284:15 name more
1741+283:10 name rest
1742−284:19 tight glyph ]
1742+284:9 INDENT
1743−284:21 glyph (
1743+284:9 lit ~
1744−284:22 tight name rear
1744+284:11 name item
1745−284:27 name rest
1745+285:9 NEWLINE
1746−284:31 tight glyph )
1746+285:9 glyph [
1747−284:32 DEDENT
1747+285:10 tight name next
1748−284:32 DEDENT
1748+285:15 name more
1749−284:32 DEDENT
1749+285:19 tight glyph ]
1750−284:32 DEDENT
1750+285:21 glyph (
1751−284:32 NEWLINE
1751+285:22 tight name rear
1752+285:27 name rest
1753+285:31 tight glyph )
1754+285:32 DEDENT
1755+285:32 DEDENT
1756+285:32 DEDENT
1757+285:32 DEDENT
1758+285:32 NEWLINE
tests/golden/prelude-unit-list-transforms/tree.txt+638−635
@@ -111,651 +111,654 @@
111 (arm 47:5
111 (arm 47:5
112 (cell 47:5 (bind 47:6 xs) (bind 47:9 f))
112 (cell 47:5 (bind 47:6 xs) (bind 47:9 f))
113 (body 48:7
113 (body 48:7
114+ (cast 48:7
115+ (apply 48:10 list (tvar 48:16 B))
116+ (body 49:9
114− (branch 48:7
117+ (branch 49:9
115− (wing 48:10 xs)
118+ (wing 49:12 xs)
116− (arm 49:9 (lit 49:9 ~) (lit 49:11 ~))
119+ (arm 50:11 (lit 50:11 ~) (lit 50:13 ~))
117− (arm 50:9
120+ (arm 51:11
118− (cell 50:9 (bind 50:10 item) (bind 50:15 rest))
121+ (cell 51:11 (bind 51:12 item) (bind 51:17 rest))
119− (tuple 50:21
122+ (tuple 51:23
120− (group 50:22
123+ (group 51:24
121− (call 50:23 (wing 50:23 f) (wing 50:25 item)))
124+ (call 51:25 (wing 51:25 f) (wing 51:27 item)))
122− (group 50:31
125+ (group 51:33
123− (call 50:32 (wing 50:32 turn) (wing 50:37 rest) (wing 50:42 f))))))))))))
126+ (call 51:34 (wing 51:34 turn) (wing 51:39 rest) (wing 51:44 f))))))))))))))
124− (mold 52:1 dime
127+ (mold 53:1 dime
125− (cell 52:9
128+ (cell 53:9
126− (face 52:10 p (aura 52:12 @ta))
129+ (face 53:10 p (aura 53:12 @ta))
127− (face 52:16 q (aura 52:18 @))))
130+ (face 53:16 q (aura 53:18 @))))
128− (mold 54:1 hair
131+ (mold 55:1 hair
129− (cell 54:9
132+ (cell 55:9
130− (face 54:10 p (aura 54:12 @ud))
133+ (face 55:10 p (aura 55:12 @ud))
131− (face 54:16 q (aura 54:18 @ud))))
134+ (face 55:16 q (aura 55:18 @ud))))
132− (mold 56:1 pint
135+ (mold 57:1 pint
133− (cell 56:9
136+ (cell 57:9
134− (face 56:10 p
137+ (face 57:10 p
135− (cell 56:12
138+ (cell 57:12
136− (face 56:13 p (aura 56:15 @))
139+ (face 57:13 p (aura 57:15 @))
137− (face 56:17 q (aura 56:19 @))))
140+ (face 57:17 q (aura 57:19 @))))
138− (face 56:22 q
141+ (face 57:22 q
139− (cell 56:24
142+ (cell 57:24
140− (face 56:25 p (aura 56:27 @))
143+ (face 57:25 p (aura 57:27 @))
141− (face 56:29 q (aura 56:31 @))))))
144+ (face 57:29 q (aura 57:31 @))))))
142− (mold 58:1 coin
145+ (mold 59:1 coin
143− (union 59:3
146+ (union 60:3
144− (cell 59:3
145− (const 59:4 %$)
146− (face 59:7 p (ref 59:9 dime)))
147 (cell 60:3
147 (cell 60:3
148− (const 60:4 %blob)
148+ (const 60:4 %$)
149− (face 60:10 p (noun 60:12)))
149+ (face 60:7 p (ref 60:9 dime)))
150 (cell 61:3
150 (cell 61:3
151− (const 61:4 %many)
151+ (const 61:4 %blob)
152+ (face 61:10 p (noun 61:12)))
153+ (cell 62:3
154+ (const 62:4 %many)
152− (face 61:10 p
155+ (face 62:10 p
153− (apply 61:12 list (ref 61:18 coin))))))
156+ (apply 62:12 list (ref 62:18 coin))))))
154− (mold 63:1 pair
157+ (mold 64:1 pair
155− (generic 63:9 A B
158+ (generic 64:9 A B
156− (cell 63:18
159+ (cell 64:18
157− (face 63:19 p (tvar 63:21 A))
160+ (face 64:19 p (tvar 64:21 A))
158− (face 63:23 q (tvar 63:25 B)))))
161+ (face 64:23 q (tvar 64:25 B)))))
159− (mold 65:1 trel
162+ (mold 66:1 trel
160− (generic 65:9 A B C
163+ (generic 66:9 A B C
161− (cell 65:20
164+ (cell 66:20
162− (face 65:21 p (tvar 65:23 A))
165+ (face 66:21 p (tvar 66:23 A))
163− (face 65:25 q (tvar 65:27 B))
166+ (face 66:25 q (tvar 66:27 B))
164− (face 65:29 r (tvar 65:31 C)))))
167+ (face 66:29 r (tvar 66:31 C)))))
165− (mold 67:1 qual
168+ (mold 68:1 qual
166− (generic 67:9 A B C D
169+ (generic 68:9 A B C D
167− (cell 67:22
170+ (cell 68:22
168− (face 67:23 p (tvar 67:25 A))
171+ (face 68:23 p (tvar 68:25 A))
169− (face 67:27 q (tvar 67:29 B))
172+ (face 68:27 q (tvar 68:29 B))
170− (face 67:31 r (tvar 67:33 C))
173+ (face 68:31 r (tvar 68:33 C))
171− (face 67:35 s (tvar 67:37 D)))))
174+ (face 68:35 s (tvar 68:37 D)))))
172− (mold 69:1 cord (aura 69:9 @t))
175+ (mold 70:1 cord (aura 70:9 @t))
173− (mold 71:1 knot (aura 71:9 @ta))
176+ (mold 72:1 knot (aura 72:9 @ta))
174− (mold 73:1 tape
177+ (mold 74:1 tape
175− (apply 73:9 list (aura 73:15 @tD)))
178+ (apply 74:9 list (aura 74:15 @tD)))
176− (mold 75:1 path
179+ (mold 76:1 path
177− (apply 75:9 list (ref 75:15 knot)))
180+ (apply 76:9 list (ref 76:15 knot)))
178− (mold 77:1 tank
181+ (mold 78:1 tank
179− (union 78:3
182+ (union 79:3
180− (ref 78:3 cord)
183+ (ref 79:3 cord)
181− (cell 79:3
182− (const 79:4 %leaf)
183− (face 79:10 p (ref 79:12 tape)))
184 (cell 80:3
184 (cell 80:3
185− (const 80:4 %palm)
185+ (const 80:4 %leaf)
186− (face 80:10 p
186+ (face 80:10 p (ref 80:12 tape)))
187− (apply 80:12 qual (ref 80:18 tape) (ref 80:23 tape) (ref 80:28 tape) (ref 80:33 tape)))
188− (face 80:39 q
189− (apply 80:41 list (ref 80:47 tank))))
190 (cell 81:3
187 (cell 81:3
191− (const 81:4 %rose)
188+ (const 81:4 %palm)
192 (face 81:10 p
189 (face 81:10 p
190+ (apply 81:12 qual (ref 81:18 tape) (ref 81:23 tape) (ref 81:28 tape) (ref 81:33 tape)))
191+ (face 81:39 q
192+ (apply 81:41 list (ref 81:47 tank))))
193+ (cell 82:3
194+ (const 82:4 %rose)
195+ (face 82:10 p
193− (apply 81:12 trel (ref 81:18 tape) (ref 81:23 tape) (ref 81:28 tape)))
196+ (apply 82:12 trel (ref 82:18 tape) (ref 82:23 tape) (ref 82:28 tape)))
194− (face 81:34 q
197+ (face 82:34 q
195− (apply 81:36 list (ref 81:42 tank))))))
198+ (apply 82:36 list (ref 82:42 tank))))))
196− (mold 83:1 nail
199+ (mold 84:1 nail
197− (cell 83:9
200+ (cell 84:9
198− (face 83:10 p (ref 83:12 hair))
201+ (face 84:10 p (ref 84:12 hair))
199− (face 83:17 q (ref 83:19 tape))))
202+ (face 84:17 q (ref 84:19 tape))))
200− (mold 85:1 edge
203+ (mold 86:1 edge
201− (cell 85:9
204+ (cell 86:9
202− (face 85:10 p (ref 85:12 hair))
205+ (face 86:10 p (ref 86:12 hair))
203− (face 85:17 q
206+ (face 86:17 q
204− (apply 85:19 unit
207+ (apply 86:19 unit
205− (cell 85:25
208+ (cell 86:25
206− (face 85:26 p (noun 85:28))
209+ (face 86:26 p (noun 86:28))
207− (face 85:30 q (ref 85:32 nail)))))))
210+ (face 86:30 q (ref 86:32 nail)))))))
208− (mold 87:1 rule
211+ (mold 88:1 rule
209− (fn 87:9 (ref 87:12 nail) (ref 87:17 edge)))
212+ (fn 88:9 (ref 88:12 nail) (ref 88:17 edge)))
210− (mold 89:1 spot
213+ (mold 90:1 spot
211− (cell 89:9
214+ (cell 90:9
212− (face 89:10 p (ref 89:12 path))
215+ (face 90:10 p (ref 90:12 path))
213− (face 89:17 q (ref 89:19 pint))))
216+ (face 90:17 q (ref 90:19 pint))))
214− (mold 91:1 toon
217+ (mold 92:1 toon
215− (union 92:3
218+ (union 93:3
216− (cell 92:3
217− (const 92:4 %0)
218− (face 92:7 p (noun 92:9)))
219 (cell 93:3
219 (cell 93:3
220− (const 93:4 %1)
220+ (const 93:4 %0)
221 (face 93:7 p (noun 93:9)))
221 (face 93:7 p (noun 93:9)))
222 (cell 94:3
222 (cell 94:3
223− (const 94:4 %2)
223+ (const 94:4 %1)
224+ (face 94:7 p (noun 94:9)))
225+ (cell 95:3
226+ (const 95:4 %2)
224− (face 94:7 p
227+ (face 95:7 p
225− (apply 94:9 list (ref 94:15 tank))))))
228+ (apply 95:9 list (ref 95:15 tank))))))
226− (mold 96:1 like
229+ (mold 97:1 like
227− (generic 96:9 A
230+ (generic 97:9 A
228− (cell 96:16
231+ (cell 97:16
229− (face 96:17 p (ref 96:19 hair))
232+ (face 97:17 p (ref 97:19 hair))
230− (face 96:24 q
233+ (face 97:24 q
231− (apply 96:26 unit
234+ (apply 97:26 unit
232− (cell 96:32
235+ (cell 97:32
233− (face 96:33 p (tvar 96:35 A))
236+ (face 97:33 p (tvar 97:35 A))
234− (face 96:37 q (ref 96:39 nail))))))))
237+ (face 97:37 q (ref 97:39 nail))))))))
235− (value 98:1 wonk
238+ (value 99:1 wonk
236− (gate 98:9
239+ (gate 99:9
237− (face 98:12 veq
240+ (face 99:12 veq
238− (apply 98:16 like (tvar 98:22 A)))
241+ (apply 99:16 like (tvar 99:22 A)))
239− (body 99:3
242+ (body 100:3
240− (branch 99:3
243+ (branch 100:3
241− (wing 99:6 q.veq)
244+ (wing 100:6 q.veq)
242− (arm 100:5 (lit 100:5 ~) (crash 100:7))
245+ (arm 101:5 (lit 101:5 ~) (crash 101:7))
243− (arm 101:5
246+ (arm 102:5
244− (cell 101:5 (lit 101:6 ~) (bind 101:8 product))
247+ (cell 102:5 (lit 102:6 ~) (bind 102:8 product))
245− (wing 101:17 p.product))))))
248+ (wing 102:17 p.product))))))
246− (mold 103:1 lone
249+ (mold 104:1 lone
247− (generic 103:9 A
250+ (generic 104:9 A
248− (cell 103:16
251+ (cell 104:16
249− (face 103:17 p (tvar 103:19 A)))))
252+ (face 104:17 p (tvar 104:19 A)))))
250− (mold 105:1 lest
253+ (mold 106:1 lest
251− (generic 105:9 A
254+ (generic 106:9 A
252− (cell 105:16
255+ (cell 106:16
253− (face 105:17 i (tvar 105:19 A))
256+ (face 106:17 i (tvar 106:19 A))
254− (face 105:21 t
257+ (face 106:21 t
255− (apply 105:23 list (tvar 105:29 A))))))
258+ (apply 106:23 list (tvar 106:29 A))))))
256− (mold 107:1 pole
259+ (mold 108:1 pole
257− (generic 107:9 A
260+ (generic 108:9 A
258− (union 108:3
261+ (union 109:3
259− (const 108:3 ~)
262+ (const 109:3 ~)
260− (cell 109:3
263+ (cell 110:3
261− (tvar 109:4 A)
264+ (tvar 110:4 A)
262− (apply 109:6 pole (tvar 109:12 A))))))
265+ (apply 110:6 pole (tvar 110:12 A))))))
263− (mold 111:1 quip
266+ (mold 112:1 quip
264− (generic 111:9 A B
267+ (generic 112:9 A B
265− (cell 111:18
268+ (cell 112:18
266− (apply 111:19 list (tvar 111:25 A))
269+ (apply 112:19 list (tvar 112:25 A))
267− (tvar 111:28 B))))
270+ (tvar 112:28 B))))
268− (mold 113:1 tree
271+ (mold 114:1 tree
269− (generic 113:9 A
272+ (generic 114:9 A
270− (union 114:3
273+ (union 115:3
271− (const 114:3 ~)
274+ (const 115:3 ~)
272− (cell 115:3
275+ (cell 116:3
273− (face 115:4 n (tvar 115:6 A))
276+ (face 116:4 n (tvar 116:6 A))
274− (face 115:8 l
277+ (face 116:8 l
275− (apply 115:10 tree (tvar 115:16 A)))
278+ (apply 116:10 tree (tvar 116:16 A)))
276− (face 115:19 r
279+ (face 116:19 r
277− (apply 115:21 tree (tvar 115:27 A)))))))
280+ (apply 116:21 tree (tvar 116:27 A)))))))
278− (mold 117:1 each
281+ (mold 118:1 each
279− (generic 117:9 A B
282+ (generic 118:9 A B
280− (union 118:3
283+ (union 119:3
281− (cell 118:3
282− (const 118:4 %|)
283− (face 118:7 p (tvar 118:9 B)))
284 (cell 119:3
284 (cell 119:3
285− (const 119:4 %&)
285+ (const 119:4 %|)
286+ (face 119:7 p (tvar 119:9 B)))
287+ (cell 120:3
288+ (const 120:4 %&)
286− (face 119:7 p (tvar 119:9 A))))))
289+ (face 120:7 p (tvar 120:9 A))))))
287− (mold 121:1 bloq (aura 121:9 @))
290+ (mold 122:1 bloq (aura 122:9 @))
288− (value 123:1 some
291+ (value 124:1 some
289− (gate 123:9
292+ (gate 124:9
290− (face 123:12 item (tvar 123:17 A))
293+ (face 124:12 item (tvar 124:17 A))
291− (unit 123:19 (wing 123:20 item))))
294+ (unit 124:19 (wing 124:20 item))))
292− (value 125:1 lure
295+ (value 126:1 lure
293− (gate 125:9
296+ (gate 126:9
294− (face 125:12 item (tvar 125:17 A))
297+ (face 126:12 item (tvar 126:17 A))
295− (body 126:3
298+ (body 127:3
296− (cast 126:3
299+ (cast 127:3
297− (apply 126:6 list (tvar 126:12 A))
300+ (apply 127:6 list (tvar 127:12 A))
298− (tuple 126:15 (wing 126:16 item) (lit 126:21 ~))))))
301+ (tuple 127:15 (wing 127:16 item) (lit 127:21 ~))))))
299− (value 128:1 snoc
302+ (value 129:1 snoc
300− (gate 128:9
303+ (gate 129:9
301− (face 128:12 args
304+ (face 129:12 args
302− (cell 128:17
305+ (cell 129:17
303− (apply 128:18 list (tvar 128:24 A))
306+ (apply 129:18 list (tvar 129:24 A))
304− (tvar 128:27 A)))
307+ (tvar 129:27 A)))
305− (body 129:3
308+ (body 130:3
306− (branch 129:3
309+ (branch 130:3
307− (wing 129:6 args)
310+ (wing 130:6 args)
308− (arm 130:5
311+ (arm 131:5
309− (cell 130:5 (bind 130:6 xs) (bind 130:9 item))
312+ (cell 131:5 (bind 131:6 xs) (bind 131:9 item))
310− (group 130:15
313+ (group 131:15
311− (call 130:16
314+ (call 131:16
312− (wing 130:16 weld)
315+ (wing 131:16 weld)
313− (wing 130:21 xs)
316+ (wing 131:21 xs)
314− (tuple 130:24 (wing 130:25 item) (lit 130:30 ~)))))))))
317+ (tuple 131:24 (wing 131:25 item) (lit 131:30 ~)))))))))
315− (value 132:1 flop
318+ (value 133:1 flop
316− (gate 132:9
319+ (gate 133:9
317− (face 132:12 xs
320+ (face 133:12 xs
318− (apply 132:15 list (tvar 132:21 A)))
321+ (apply 133:15 list (tvar 133:21 A)))
319− (body 133:3
322+ (body 134:3
320− (value 133:3 reverse-into
323+ (value 134:3 reverse-into
321− (gate 133:19
324+ (gate 134:19
322− (face 133:22 args
325+ (face 134:22 args
323− (cell 133:27
326+ (cell 134:27
324− (apply 133:28 list (tvar 133:34 A))
327+ (apply 134:28 list (tvar 134:34 A))
325− (apply 133:37 list (tvar 133:43 A))))
328+ (apply 134:37 list (tvar 134:43 A))))
326− (body 134:5
329+ (body 135:5
327− (branch 134:5
330+ (branch 135:5
328− (wing 134:8 args)
331+ (wing 135:8 args)
329− (arm 135:7
332+ (arm 136:7
330− (cell 135:7 (bind 135:8 rest) (bind 135:13 acc))
333+ (cell 136:7 (bind 136:8 rest) (bind 136:13 acc))
331− (body 136:9
334+ (body 137:9
332− (branch 136:9
335+ (branch 137:9
333− (wing 136:12 rest)
336+ (wing 137:12 rest)
334− (arm 137:11 (lit 137:11 ~) (wing 137:13 acc))
337+ (arm 138:11 (lit 138:11 ~) (wing 138:13 acc))
335− (arm 138:11
338+ (arm 139:11
336− (cell 138:11 (bind 138:12 item) (bind 138:17 more))
339+ (cell 139:11 (bind 139:12 item) (bind 139:17 more))
337− (group 138:23
340+ (group 139:23
338− (call 138:24
341+ (call 139:24
339− (wing 138:24 reverse-into)
342+ (wing 139:24 reverse-into)
340− (wing 138:37 more)
343+ (wing 139:37 more)
341− (tuple 138:42 (wing 138:43 item) (wing 138:48 acc))))))))))))
344+ (tuple 139:42 (wing 139:43 item) (wing 139:48 acc))))))))))))
342− (group 139:3
345+ (group 140:3
343− (call 139:4 (wing 139:4 reverse-into) (wing 139:17 xs) (lit 139:20 ~))))))
346+ (call 140:4 (wing 140:4 reverse-into) (wing 140:17 xs) (lit 140:20 ~))))))
344− (value 141:1 drop
347+ (value 142:1 drop
345− (gate 141:9
348+ (gate 142:9
346− (face 141:12 maybe
349+ (face 142:12 maybe
347− (apply 141:18 unit (tvar 141:24 A)))
350+ (apply 142:18 unit (tvar 142:24 A)))
348− (body 142:3
351+ (body 143:3
349− (branch 142:3
352+ (branch 143:3
350− (wing 142:6 maybe)
353+ (wing 143:6 maybe)
351− (arm 143:5 (lit 143:5 ~) (lit 143:7 ~))
354+ (arm 144:5 (lit 144:5 ~) (lit 144:7 ~))
352− (arm 144:5
355+ (arm 145:5
353− (cell 144:5 (lit 144:6 ~) (bind 144:8 value))
356+ (cell 145:5 (lit 145:6 ~) (bind 145:8 value))
354− (tuple 144:15 (wing 144:16 value) (lit 144:22 ~)))))))
357+ (tuple 145:15 (wing 145:16 value) (lit 145:22 ~)))))))
355− (value 146:1 bind
358+ (value 147:1 bind
356− (gate 146:9
359+ (gate 147:9
357− (face 146:12 args
360+ (face 147:12 args
358− (cell 146:17
361+ (cell 147:17
359− (apply 146:18 unit (tvar 146:24 A))
362+ (apply 147:18 unit (tvar 147:24 A))
360− (fn 146:27 (tvar 146:30 A) (tvar 146:32 B))))
363+ (fn 147:27 (tvar 147:30 A) (tvar 147:32 B))))
361− (body 147:3
364+ (body 148:3
362− (branch 147:3
365+ (branch 148:3
363− (wing 147:6 args)
366+ (wing 148:6 args)
364− (arm 148:5
367+ (arm 149:5
365− (cell 148:5 (bind 148:6 maybe) (bind 148:12 f))
368+ (cell 149:5 (bind 149:6 maybe) (bind 149:12 f))
366− (body 149:7
369+ (body 150:7
367− (branch 149:7
370+ (branch 150:7
368− (wing 149:10 maybe)
371+ (wing 150:10 maybe)
369− (arm 150:9 (lit 150:9 ~) (lit 150:11 ~))
372+ (arm 151:9 (lit 151:9 ~) (lit 151:11 ~))
370− (arm 151:9
373+ (arm 152:9
371− (cell 151:9 (lit 151:10 ~) (bind 151:12 value))
374+ (cell 152:9 (lit 152:10 ~) (bind 152:12 value))
372− (unit 151:19
375+ (unit 152:19
373− (group 151:20
376+ (group 152:20
374− (call 151:21 (wing 151:21 f) (wing 151:23 value))))))))))))
377+ (call 152:21 (wing 152:21 f) (wing 152:23 value))))))))))))
375− (value 153:1 biff
378+ (value 154:1 biff
376− (gate 153:9
379+ (gate 154:9
377− (face 153:12 args
380+ (face 154:12 args
378− (cell 153:17
381+ (cell 154:17
379− (apply 153:18 unit (tvar 153:24 A))
382+ (apply 154:18 unit (tvar 154:24 A))
380− (fn 153:27
383+ (fn 154:27
381− (tvar 153:30 A)
384+ (tvar 154:30 A)
382− (apply 153:32 unit (tvar 153:38 B)))))
385+ (apply 154:32 unit (tvar 154:38 B)))))
383− (body 154:3
386+ (body 155:3
384− (branch 154:3
387+ (branch 155:3
385− (wing 154:6 args)
388+ (wing 155:6 args)
386− (arm 155:5
389+ (arm 156:5
387− (cell 155:5 (bind 155:6 maybe) (bind 155:12 f))
390+ (cell 156:5 (bind 156:6 maybe) (bind 156:12 f))
388− (body 156:7
391+ (body 157:7
389− (branch 156:7
392+ (branch 157:7
390− (wing 156:10 maybe)
393+ (wing 157:10 maybe)
391− (arm 157:9 (lit 157:9 ~) (lit 157:11 ~))
394+ (arm 158:9 (lit 158:9 ~) (lit 158:11 ~))
392− (arm 158:9
395+ (arm 159:9
393− (cell 158:9 (lit 158:10 ~) (bind 158:12 value))
396+ (cell 159:9 (lit 159:10 ~) (bind 159:12 value))
394− (group 158:19
397+ (group 159:19
395− (call 158:20 (wing 158:20 f) (wing 158:22 value)))))))))))
398+ (call 159:20 (wing 159:20 f) (wing 159:22 value)))))))))))
396− (value 160:1 both
399+ (value 161:1 both
397− (gate 160:9
400+ (gate 161:9
398− (face 160:12 args
401+ (face 161:12 args
399− (cell 160:17
402+ (cell 161:17
400− (apply 160:18 unit (tvar 160:24 A))
403+ (apply 161:18 unit (tvar 161:24 A))
401− (apply 160:27 unit (tvar 160:33 B))))
404+ (apply 161:27 unit (tvar 161:33 B))))
402− (body 161:3
405+ (body 162:3
403− (branch 161:3
406+ (branch 162:3
404− (wing 161:6 args)
407+ (wing 162:6 args)
405− (arm 162:5
408+ (arm 163:5
406− (cell 162:5 (bind 162:6 first) (bind 162:12 second))
409+ (cell 163:5 (bind 163:6 first) (bind 163:12 second))
407− (body 163:7
410+ (body 164:7
408− (branch 163:7
411+ (branch 164:7
409− (wing 163:10 first)
412+ (wing 164:10 first)
410− (arm 164:9 (lit 164:9 ~) (lit 164:11 ~))
413+ (arm 165:9 (lit 165:9 ~) (lit 165:11 ~))
411− (arm 165:9
414+ (arm 166:9
412− (cell 165:9 (lit 165:10 ~) (bind 165:12 a))
415+ (cell 166:9 (lit 166:10 ~) (bind 166:12 a))
413− (body 166:11
416+ (body 167:11
414− (branch 166:11
417+ (branch 167:11
415− (wing 166:14 second)
418+ (wing 167:14 second)
416− (arm 167:13 (lit 167:13 ~) (lit 167:15 ~))
419+ (arm 168:13 (lit 168:13 ~) (lit 168:15 ~))
417− (arm 168:13
420+ (arm 169:13
418− (cell 168:13 (lit 168:14 ~) (bind 168:16 b))
421+ (cell 169:13 (lit 169:14 ~) (bind 169:16 b))
419− (unit 168:19
422+ (unit 169:19
420− (tuple 168:20 (wing 168:21 a) (wing 168:23 b))))))))))))))
423+ (tuple 169:20 (wing 169:21 a) (wing 169:23 b))))))))))))))
421− (value 170:1 clap
424+ (value 171:1 clap
422− (gate 170:9
425+ (gate 171:9
423− (face 170:12 args
426+ (face 171:12 args
424− (cell 170:17
427+ (cell 171:17
425− (apply 170:18 unit (tvar 170:24 A))
428+ (apply 171:18 unit (tvar 171:24 A))
426− (apply 170:27 unit (tvar 170:33 A))
429+ (apply 171:27 unit (tvar 171:33 A))
427− (fn 170:36
430+ (fn 171:36
428− (cell 170:39 (tvar 170:40 A) (tvar 170:42 A))
431+ (cell 171:39 (tvar 171:40 A) (tvar 171:42 A))
429− (tvar 170:45 A))))
432+ (tvar 171:45 A))))
430− (body 171:3
433+ (body 172:3
431− (branch 171:3
434+ (branch 172:3
432− (wing 171:6 args)
435+ (wing 172:6 args)
433− (arm 172:5
436+ (arm 173:5
434− (cell 172:5 (bind 172:6 first) (bind 172:12 second) (bind 172:19 combine))
437+ (cell 173:5 (bind 173:6 first) (bind 173:12 second) (bind 173:19 combine))
435− (body 173:7
438+ (body 174:7
436− (branch 173:7
439+ (branch 174:7
437− (wing 173:10 first)
440+ (wing 174:10 first)
438− (arm 174:9 (lit 174:9 ~) (wing 174:11 second))
441+ (arm 175:9 (lit 175:9 ~) (wing 175:11 second))
439− (arm 175:9
442+ (arm 176:9
440− (cell 175:9 (lit 175:10 ~) (bind 175:12 a))
443+ (cell 176:9 (lit 176:10 ~) (bind 176:12 a))
441− (body 176:11
444+ (body 177:11
442− (branch 176:11
445+ (branch 177:11
443− (wing 176:14 second)
446+ (wing 177:14 second)
444− (arm 177:13 (lit 177:13 ~) (wing 177:15 first))
447+ (arm 178:13 (lit 178:13 ~) (wing 178:15 first))
445− (arm 178:13
448+ (arm 179:13
446− (cell 178:13 (lit 178:14 ~) (bind 178:16 b))
449+ (cell 179:13 (lit 179:14 ~) (bind 179:16 b))
447− (unit 178:19
450+ (unit 179:19
448− (group 178:20
451+ (group 179:20
449− (call 178:21 (wing 178:21 combine) (wing 178:29 a) (wing 178:31 b)))))))))))))))
452+ (call 179:21 (wing 179:21 combine) (wing 179:29 a) (wing 179:31 b)))))))))))))))
450− (value 180:1 clef
453+ (value 181:1 clef
451− (gate 180:9
454+ (gate 181:9
452− (face 180:12 args
455+ (face 181:12 args
453− (cell 180:17
456+ (cell 181:17
454− (apply 180:18 unit (tvar 180:24 A))
457+ (apply 181:18 unit (tvar 181:24 A))
455− (apply 180:27 unit (tvar 180:33 B))
458+ (apply 181:27 unit (tvar 181:33 B))
456− (fn 180:36
459+ (fn 181:36
457− (cell 180:39 (tvar 180:40 A) (tvar 180:42 B))
460+ (cell 181:39 (tvar 181:40 A) (tvar 181:42 B))
458− (apply 180:45 unit (tvar 180:51 C)))))
461+ (apply 181:45 unit (tvar 181:51 C)))))
459− (body 181:3
462+ (body 182:3
460− (branch 181:3
463+ (branch 182:3
461− (wing 181:6 args)
464+ (wing 182:6 args)
462− (arm 182:5
465+ (arm 183:5
463− (cell 182:5 (bind 182:6 first) (bind 182:12 second) (bind 182:19 combine))
466+ (cell 183:5 (bind 183:6 first) (bind 183:12 second) (bind 183:19 combine))
464− (body 183:7
467+ (body 184:7
465− (branch 183:7
468+ (branch 184:7
466− (wing 183:10 first)
469+ (wing 184:10 first)
467− (arm 184:9 (lit 184:9 ~) (lit 184:11 ~))
470+ (arm 185:9 (lit 185:9 ~) (lit 185:11 ~))
468− (arm 185:9
471+ (arm 186:9
469− (cell 185:9 (lit 185:10 ~) (bind 185:12 a))
472+ (cell 186:9 (lit 186:10 ~) (bind 186:12 a))
470− (body 186:11
473+ (body 187:11
471− (branch 186:11
474+ (branch 187:11
472− (wing 186:14 second)
475+ (wing 187:14 second)
473− (arm 187:13 (lit 187:13 ~) (lit 187:15 ~))
476+ (arm 188:13 (lit 188:13 ~) (lit 188:15 ~))
474− (arm 188:13
477+ (arm 189:13
475− (cell 188:13 (lit 188:14 ~) (bind 188:16 b))
478+ (cell 189:13 (lit 189:14 ~) (bind 189:16 b))
476− (group 188:19
479+ (group 189:19
477− (call 188:20 (wing 188:20 combine) (wing 188:28 a) (wing 188:30 b))))))))))))))
480+ (call 189:20 (wing 189:20 combine) (wing 189:28 a) (wing 189:30 b))))))))))))))
478− (value 190:1 skim
481+ (value 191:1 skim
479− (gate 190:9
482+ (gate 191:9
480− (face 190:12 args
483+ (face 191:12 args
481− (cell 190:17
484+ (cell 191:17
482− (apply 190:18 list (tvar 190:24 A))
485+ (apply 191:18 list (tvar 191:24 A))
483− (fn 190:27 (tvar 190:30 A) (flag 190:32))))
486+ (fn 191:27 (tvar 191:30 A) (flag 191:32))))
484− (body 191:3
487+ (body 192:3
485− (branch 191:3
488+ (branch 192:3
486− (wing 191:6 args)
489+ (wing 192:6 args)
487− (arm 192:5
490+ (arm 193:5
488− (cell 192:5 (bind 192:6 xs) (bind 192:9 predicate))
491+ (cell 193:5 (bind 193:6 xs) (bind 193:9 predicate))
489− (body 193:7
492+ (body 194:7
490− (branch 193:7
493+ (branch 194:7
491− (wing 193:10 xs)
494+ (wing 194:10 xs)
492− (arm 194:9 (lit 194:9 ~) (lit 194:11 ~))
495+ (arm 195:9 (lit 195:9 ~) (lit 195:11 ~))
493− (arm 195:9
496+ (arm 196:9
494− (cell 195:9 (bind 195:10 item) (bind 195:15 rest))
497+ (cell 196:9 (bind 196:10 item) (bind 196:15 rest))
495− (body 196:11
498+ (body 197:11
496− (branch 196:11
499+ (branch 197:11
497− (group 196:14
500+ (group 197:14
498− (call 196:15 (wing 196:15 predicate) (wing 196:25 item)))
501+ (call 197:15 (wing 197:15 predicate) (wing 197:25 item)))
499− (arm 197:13
500− (lit 197:13 %.y)
501− (tuple 197:17
502− (wing 197:18 item)
503− (group 197:23
504− (call 197:24 (wing 197:24 skim) (wing 197:29 rest) (wing 197:34 predicate)))))
505 (arm 198:13
502 (arm 198:13
506− (lit 198:13 %.n)
503+ (lit 198:13 %.y)
504+ (tuple 198:17
505+ (wing 198:18 item)
506+ (group 198:23
507+ (call 198:24 (wing 198:24 skim) (wing 198:29 rest) (wing 198:34 predicate)))))
508+ (arm 199:13
509+ (lit 199:13 %.n)
507− (group 198:17
510+ (group 199:17
508− (call 198:18 (wing 198:18 skim) (wing 198:23 rest) (wing 198:28 predicate))))))))))))))
511+ (call 199:18 (wing 199:18 skim) (wing 199:23 rest) (wing 199:28 predicate))))))))))))))
509− (value 200:1 skip
512+ (value 201:1 skip
510− (gate 200:9
513+ (gate 201:9
511− (face 200:12 args
514+ (face 201:12 args
512− (cell 200:17
515+ (cell 201:17
513− (apply 200:18 list (tvar 200:24 A))
516+ (apply 201:18 list (tvar 201:24 A))
514− (fn 200:27 (tvar 200:30 A) (flag 200:32))))
517+ (fn 201:27 (tvar 201:30 A) (flag 201:32))))
515− (body 201:3
518+ (body 202:3
516− (branch 201:3
519+ (branch 202:3
517− (wing 201:6 args)
520+ (wing 202:6 args)
518− (arm 202:5
521+ (arm 203:5
519− (cell 202:5 (bind 202:6 xs) (bind 202:9 predicate))
522+ (cell 203:5 (bind 203:6 xs) (bind 203:9 predicate))
520− (body 203:7
523+ (body 204:7
521− (branch 203:7
524+ (branch 204:7
522− (wing 203:10 xs)
525+ (wing 204:10 xs)
523− (arm 204:9 (lit 204:9 ~) (lit 204:11 ~))
526+ (arm 205:9 (lit 205:9 ~) (lit 205:11 ~))
524− (arm 205:9
527+ (arm 206:9
525− (cell 205:9 (bind 205:10 item) (bind 205:15 rest))
528+ (cell 206:9 (bind 206:10 item) (bind 206:15 rest))
526− (body 206:11
529+ (body 207:11
527− (branch 206:11
530+ (branch 207:11
528− (group 206:14
531+ (group 207:14
529− (call 206:15 (wing 206:15 predicate) (wing 206:25 item)))
532+ (call 207:15 (wing 207:15 predicate) (wing 207:25 item)))
530− (arm 207:13
531− (lit 207:13 %.y)
532− (group 207:17
533− (call 207:18 (wing 207:18 skip) (wing 207:23 rest) (wing 207:28 predicate))))
534 (arm 208:13
533 (arm 208:13
535− (lit 208:13 %.n)
534+ (lit 208:13 %.y)
535+ (group 208:17
536+ (call 208:18 (wing 208:18 skip) (wing 208:23 rest) (wing 208:28 predicate))))
537+ (arm 209:13
538+ (lit 209:13 %.n)
536− (tuple 208:17
539+ (tuple 209:17
537− (wing 208:18 item)
540+ (wing 209:18 item)
538− (group 208:23
541+ (group 209:23
539− (call 208:24 (wing 208:24 skip) (wing 208:29 rest) (wing 208:34 predicate)))))))))))))))
542+ (call 209:24 (wing 209:24 skip) (wing 209:29 rest) (wing 209:34 predicate)))))))))))))))
540− (value 210:1 levy
543+ (value 211:1 levy
541− (gate 210:9
544+ (gate 211:9
542− (face 210:12 args
545+ (face 211:12 args
543− (cell 210:17
546+ (cell 211:17
544− (apply 210:18 list (tvar 210:24 A))
547+ (apply 211:18 list (tvar 211:24 A))
545− (fn 210:27 (tvar 210:30 A) (flag 210:32))))
548+ (fn 211:27 (tvar 211:30 A) (flag 211:32))))
546− (body 211:3
549+ (body 212:3
547− (branch 211:3
550+ (branch 212:3
548− (wing 211:6 args)
551+ (wing 212:6 args)
549− (arm 212:5
552+ (arm 213:5
550− (cell 212:5 (bind 212:6 xs) (bind 212:9 predicate))
553+ (cell 213:5 (bind 213:6 xs) (bind 213:9 predicate))
551− (body 213:7
554+ (body 214:7
552− (branch 213:7
555+ (branch 214:7
553− (wing 213:10 xs)
556+ (wing 214:10 xs)
554− (arm 214:9 (lit 214:9 ~) (lit 214:11 %.y))
557+ (arm 215:9 (lit 215:9 ~) (lit 215:11 %.y))
555− (arm 215:9
558+ (arm 216:9
556− (cell 215:9 (bind 215:10 item) (bind 215:15 rest))
559+ (cell 216:9 (bind 216:10 item) (bind 216:15 rest))
557− (body 216:11
560+ (body 217:11
558− (branch 216:11
561+ (branch 217:11
559− (group 216:14
562+ (group 217:14
560− (call 216:15 (wing 216:15 predicate) (wing 216:25 item)))
563+ (call 217:15 (wing 217:15 predicate) (wing 217:25 item)))
561− (arm 217:13
564+ (arm 218:13
562− (lit 217:13 %.y)
565+ (lit 218:13 %.y)
563− (group 217:17
566+ (group 218:17
564− (call 217:18 (wing 217:18 levy) (wing 217:23 rest) (wing 217:28 predicate))))
567+ (call 218:18 (wing 218:18 levy) (wing 218:23 rest) (wing 218:28 predicate))))
565− (arm 218:13 (lit 218:13 %.n) (lit 218:17 %.n))))))))))))
568+ (arm 219:13 (lit 219:13 %.n) (lit 219:17 %.n))))))))))))
566− (value 220:1 lien
569+ (value 221:1 lien
567− (gate 220:9
570+ (gate 221:9
568− (face 220:12 args
571+ (face 221:12 args
569− (cell 220:17
572+ (cell 221:17
570− (apply 220:18 list (tvar 220:24 A))
573+ (apply 221:18 list (tvar 221:24 A))
571− (fn 220:27 (tvar 220:30 A) (flag 220:32))))
574+ (fn 221:27 (tvar 221:30 A) (flag 221:32))))
572− (body 221:3
575+ (body 222:3
573− (branch 221:3
576+ (branch 222:3
574− (wing 221:6 args)
577+ (wing 222:6 args)
575− (arm 222:5
578+ (arm 223:5
576− (cell 222:5 (bind 222:6 xs) (bind 222:9 predicate))
579+ (cell 223:5 (bind 223:6 xs) (bind 223:9 predicate))
577− (body 223:7
580+ (body 224:7
578− (branch 223:7
581+ (branch 224:7
579− (wing 223:10 xs)
582+ (wing 224:10 xs)
580− (arm 224:9 (lit 224:9 ~) (lit 224:11 %.n))
583+ (arm 225:9 (lit 225:9 ~) (lit 225:11 %.n))
581− (arm 225:9
584+ (arm 226:9
582− (cell 225:9 (bind 225:10 item) (bind 225:15 rest))
585+ (cell 226:9 (bind 226:10 item) (bind 226:15 rest))
583− (body 226:11
586+ (body 227:11
584− (branch 226:11
587+ (branch 227:11
585− (group 226:14
588+ (group 227:14
586− (call 226:15 (wing 226:15 predicate) (wing 226:25 item)))
589+ (call 227:15 (wing 227:15 predicate) (wing 227:25 item)))
587− (arm 227:13 (lit 227:13 %.y) (lit 227:17 %.y))
590+ (arm 228:13 (lit 228:13 %.y) (lit 228:17 %.y))
588− (arm 228:13
591+ (arm 229:13
589− (lit 228:13 %.n)
592+ (lit 229:13 %.n)
590− (group 228:17
593+ (group 229:17
591− (call 228:18 (wing 228:18 lien) (wing 228:23 rest) (wing 228:28 predicate))))))))))))))
594+ (call 229:18 (wing 229:18 lien) (wing 229:23 rest) (wing 229:28 predicate))))))))))))))
592− (value 230:1 roll
595+ (value 231:1 roll
593− (gate 230:9
596+ (gate 231:9
594− (face 230:12 args
597+ (face 231:12 args
595− (cell 230:17
598+ (cell 231:17
596− (apply 230:18 list (tvar 230:24 A))
599+ (apply 231:18 list (tvar 231:24 A))
597− (tvar 230:27 B)
600+ (tvar 231:27 B)
598− (fn 230:29
601+ (fn 231:29
599− (cell 230:32 (tvar 230:33 A) (tvar 230:35 B))
602+ (cell 231:32 (tvar 231:33 A) (tvar 231:35 B))
600− (tvar 230:38 B))))
603+ (tvar 231:38 B))))
601− (body 231:3
604+ (body 232:3
602− (branch 231:3
605+ (branch 232:3
603− (wing 231:6 args)
606+ (wing 232:6 args)
604− (arm 232:5
607+ (arm 233:5
605− (cell 232:5 (bind 232:6 xs) (bind 232:9 start) (bind 232:15 combine))
608+ (cell 233:5 (bind 233:6 xs) (bind 233:9 start) (bind 233:15 combine))
606− (body 233:7
609+ (body 234:7
607− (branch 233:7
610+ (branch 234:7
608− (wing 233:10 xs)
611+ (wing 234:10 xs)
609− (arm 234:9 (lit 234:9 ~) (wing 234:11 start))
612+ (arm 235:9 (lit 235:9 ~) (wing 235:11 start))
610− (arm 235:9
613+ (arm 236:9
611− (cell 235:9 (bind 235:10 item) (bind 235:15 rest))
614+ (cell 236:9 (bind 236:10 item) (bind 236:15 rest))
612− (group 235:21
615+ (group 236:21
613− (call 235:22
616+ (call 236:22
614− (wing 235:22 roll)
617+ (wing 236:22 roll)
615− (wing 235:27 rest)
618+ (wing 236:27 rest)
616− (group 235:32
619+ (group 236:32
617− (call 235:33 (wing 235:33 combine) (wing 235:41 item) (wing 235:46 start)))
620+ (call 236:33 (wing 236:33 combine) (wing 236:41 item) (wing 236:46 start)))
618− (wing 235:53 combine)))))))))))
621+ (wing 236:53 combine)))))))))))
619− (value 237:1 reel
622+ (value 238:1 reel
620− (gate 237:9
623+ (gate 238:9
621− (face 237:12 args
624+ (face 238:12 args
622− (cell 237:17
625+ (cell 238:17
623− (apply 237:18 list (tvar 237:24 A))
626+ (apply 238:18 list (tvar 238:24 A))
624− (tvar 237:27 B)
627+ (tvar 238:27 B)
625− (fn 237:29
628+ (fn 238:29
626− (cell 237:32 (tvar 237:33 A) (tvar 237:35 B))
629+ (cell 238:32 (tvar 238:33 A) (tvar 238:35 B))
627− (tvar 237:38 B))))
630+ (tvar 238:38 B))))
628− (body 238:3
631+ (body 239:3
629− (branch 238:3
632+ (branch 239:3
630− (wing 238:6 args)
633+ (wing 239:6 args)
631− (arm 239:5
634+ (arm 240:5
632− (cell 239:5 (bind 239:6 xs) (bind 239:9 start) (bind 239:15 combine))
635+ (cell 240:5 (bind 240:6 xs) (bind 240:9 start) (bind 240:15 combine))
633− (body 240:7
636+ (body 241:7
634− (branch 240:7
637+ (branch 241:7
635− (wing 240:10 xs)
638+ (wing 241:10 xs)
636− (arm 241:9 (lit 241:9 ~) (wing 241:11 start))
639+ (arm 242:9 (lit 242:9 ~) (wing 242:11 start))
637− (arm 242:9
640+ (arm 243:9
638− (cell 242:9 (bind 242:10 item) (bind 242:15 rest))
641+ (cell 243:9 (bind 243:10 item) (bind 243:15 rest))
639− (group 242:21
642+ (group 243:21
640− (call 242:22
643+ (call 243:22
641− (wing 242:22 combine)
644+ (wing 243:22 combine)
642− (wing 242:30 item)
645+ (wing 243:30 item)
643− (group 242:35
646+ (group 243:35
644− (call 242:36 (wing 242:36 reel) (wing 242:41 rest) (wing 242:46 start) (wing 242:52 combine)))))))))))))
647+ (call 243:36 (wing 243:36 reel) (wing 243:41 rest) (wing 243:46 start) (wing 243:52 combine)))))))))))))
645− (value 244:1 flit
648+ (value 245:1 flit
646− (gate 244:9
649+ (gate 245:9
647− (face 244:12 predicate
650+ (face 245:12 predicate
648− (fn 244:22 (tvar 244:25 A) (flag 244:27)))
651+ (fn 245:22 (tvar 245:25 A) (flag 245:27)))
649− (body 245:3
652+ (body 246:3
650− (gate 245:3
653+ (gate 246:3
651− (face 245:6 value (tvar 245:12 A))
654+ (face 246:6 value (tvar 246:12 A))
652− (body 246:5
655+ (body 247:5
653− (branch 246:5
656+ (branch 247:5
654− (group 246:8
657+ (group 247:8
655− (call 246:9 (wing 246:9 predicate) (wing 246:19 value)))
658+ (call 247:9 (wing 247:9 predicate) (wing 247:19 value)))
656− (arm 247:7
659+ (arm 248:7
657− (lit 247:7 %.y)
660+ (lit 248:7 %.y)
658− (unit 247:11 (wing 247:12 value)))
661+ (unit 248:11 (wing 248:12 value)))
659− (arm 248:7 (lit 248:7 %.n) (lit 248:11 ~))))))))
662+ (arm 249:7 (lit 249:7 %.n) (lit 249:11 ~))))))))
660− (value 250:1 murn
663+ (value 251:1 murn
661− (gate 250:9
664+ (gate 251:9
662− (face 250:12 args
665+ (face 251:12 args
663− (cell 250:17
666+ (cell 251:17
664− (apply 250:18 list (tvar 250:24 A))
667+ (apply 251:18 list (tvar 251:24 A))
665− (fn 250:27
668+ (fn 251:27
666− (tvar 250:30 A)
669+ (tvar 251:30 A)
667− (apply 250:32 unit (tvar 250:38 B)))))
670+ (apply 251:32 unit (tvar 251:38 B)))))
668− (body 251:3
671+ (body 252:3
669− (branch 251:3
672+ (branch 252:3
670− (wing 251:6 args)
673+ (wing 252:6 args)
671− (arm 252:5
674+ (arm 253:5
672− (cell 252:5 (bind 252:6 xs) (bind 252:9 f))
675+ (cell 253:5 (bind 253:6 xs) (bind 253:9 f))
673− (body 253:7
676+ (body 254:7
674− (branch 253:7
677+ (branch 254:7
675− (wing 253:10 xs)
678+ (wing 254:10 xs)
676− (arm 254:9 (lit 254:9 ~) (lit 254:11 ~))
679+ (arm 255:9 (lit 255:9 ~) (lit 255:11 ~))
677− (arm 255:9
680+ (arm 256:9
678− (cell 255:9 (bind 255:10 item) (bind 255:15 rest))
681+ (cell 256:9 (bind 256:10 item) (bind 256:15 rest))
679− (body 256:11
682+ (body 257:11
680− (branch 256:11
683+ (branch 257:11
681− (group 256:14
684+ (group 257:14
682− (call 256:15 (wing 256:15 f) (wing 256:17 item)))
685+ (call 257:15 (wing 257:15 f) (wing 257:17 item)))
683− (arm 257:13
684− (lit 257:13 ~)
685− (group 257:15
686− (call 257:16 (wing 257:16 murn) (wing 257:21 rest) (wing 257:26 f))))
687 (arm 258:13
686 (arm 258:13
687+ (lit 258:13 ~)
688+ (group 258:15
689+ (call 258:16 (wing 258:16 murn) (wing 258:21 rest) (wing 258:26 f))))
690+ (arm 259:13
688− (cell 258:13 (lit 258:14 ~) (bind 258:16 value))
691+ (cell 259:13 (lit 259:14 ~) (bind 259:16 value))
689− (tuple 258:23
692+ (tuple 259:23
690− (wing 258:24 value)
693+ (wing 259:24 value)
691− (group 258:30
694+ (group 259:30
692− (call 258:31 (wing 258:31 murn) (wing 258:36 rest) (wing 258:41 f)))))))))))))))
695+ (call 259:31 (wing 259:31 murn) (wing 259:36 rest) (wing 259:41 f)))))))))))))))
693− (value 260:1 join
696+ (value 261:1 join
694− (gate 260:9
697+ (gate 261:9
695− (face 260:12 args
698+ (face 261:12 args
696− (cell 260:17
699+ (cell 261:17
697− (tvar 260:18 A)
700+ (tvar 261:18 A)
698− (apply 260:20 list (tvar 260:26 A))))
701+ (apply 261:20 list (tvar 261:26 A))))
699− (body 261:3
702+ (body 262:3
700− (branch 261:3
703+ (branch 262:3
701− (wing 261:6 args)
704+ (wing 262:6 args)
702− (arm 262:5
705+ (arm 263:5
703− (cell 262:5 (bind 262:6 separator) (bind 262:16 xs))
706+ (cell 263:5 (bind 263:6 separator) (bind 263:16 xs))
704− (body 263:7
707+ (body 264:7
705− (branch 263:7
708+ (branch 264:7
706− (wing 263:10 xs)
709+ (wing 264:10 xs)
707− (arm 264:9 (lit 264:9 ~) (lit 264:11 ~))
710+ (arm 265:9 (lit 265:9 ~) (lit 265:11 ~))
708− (arm 265:9
711+ (arm 266:9
709− (cell 265:9 (bind 265:10 item) (bind 265:15 rest))
712+ (cell 266:9 (bind 266:10 item) (bind 266:15 rest))
710− (body 266:11
713+ (body 267:11
711− (branch 266:11
714+ (branch 267:11
712− (wing 266:14 rest)
715+ (wing 267:14 rest)
713− (arm 267:13
714− (lit 267:13 ~)
715− (tuple 267:15 (wing 267:16 item) (lit 267:21 ~)))
716 (arm 268:13
716 (arm 268:13
717+ (lit 268:13 ~)
718+ (tuple 268:15 (wing 268:16 item) (lit 268:21 ~)))
719+ (arm 269:13
717− (cell 268:13 (bind 268:14 next) (bind 268:19 more))
720+ (cell 269:13 (bind 269:14 next) (bind 269:19 more))
718− (tuple 268:25
721+ (tuple 269:25
719− (wing 268:26 item)
722+ (wing 269:26 item)
720− (tuple 268:31
723+ (tuple 269:31
721− (wing 268:32 separator)
724+ (wing 269:32 separator)
722− (group 268:42
725+ (group 269:42
723− (call 268:43 (wing 268:43 join) (wing 268:48 separator) (wing 268:58 rest))))))))))))))))
726+ (call 269:43 (wing 269:43 join) (wing 269:48 separator) (wing 269:58 rest))))))))))))))))
724− (value 270:1 snip
727+ (value 271:1 snip
725− (gate 270:9
728+ (gate 271:9
726− (face 270:12 xs
729+ (face 271:12 xs
727− (apply 270:15 list (tvar 270:21 A)))
730+ (apply 271:15 list (tvar 271:21 A)))
728− (body 271:3
731+ (body 272:3
729− (branch 271:3
732+ (branch 272:3
730− (wing 271:6 xs)
733+ (wing 272:6 xs)
731− (arm 272:5 (lit 272:5 ~) (lit 272:7 ~))
734+ (arm 273:5 (lit 273:5 ~) (lit 273:7 ~))
732− (arm 273:5
735+ (arm 274:5
733− (cell 273:5 (bind 273:6 item) (bind 273:11 rest))
736+ (cell 274:5 (bind 274:6 item) (bind 274:11 rest))
734− (body 274:7
737+ (body 275:7
735− (branch 274:7
738+ (branch 275:7
736− (wing 274:10 rest)
739+ (wing 275:10 rest)
737− (arm 275:9 (lit 275:9 ~) (lit 275:11 ~))
740+ (arm 276:9 (lit 276:9 ~) (lit 276:11 ~))
738− (arm 276:9
741+ (arm 277:9
739− (cell 276:9 (bind 276:10 next) (bind 276:15 more))
742+ (cell 277:9 (bind 277:10 next) (bind 277:15 more))
740− (tuple 276:21
743+ (tuple 277:21
741− (wing 276:22 item)
744+ (wing 277:22 item)
742− (group 276:27
745+ (group 277:27
743− (call 276:28 (wing 276:28 snip) (wing 276:33 rest))))))))))))
746+ (call 277:28 (wing 277:28 snip) (wing 277:33 rest))))))))))))
744− (value 278:1 rear
747+ (value 279:1 rear
745− (gate 278:9
748+ (gate 279:9
746− (face 278:12 xs
749+ (face 279:12 xs
747− (apply 278:15 list (tvar 278:21 A)))
750+ (apply 279:15 list (tvar 279:21 A)))
748− (body 279:3
751+ (body 280:3
749− (branch 279:3
752+ (branch 280:3
750− (wing 279:6 xs)
753+ (wing 280:6 xs)
751− (arm 280:5 (lit 280:5 ~) (crash 280:7))
754+ (arm 281:5 (lit 281:5 ~) (crash 281:7))
752− (arm 281:5
755+ (arm 282:5
753− (cell 281:5 (bind 281:6 item) (bind 281:11 rest))
756+ (cell 282:5 (bind 282:6 item) (bind 282:11 rest))
754− (body 282:7
757+ (body 283:7
755− (branch 282:7
758+ (branch 283:7
756− (wing 282:10 rest)
759+ (wing 283:10 rest)
757− (arm 283:9 (lit 283:9 ~) (wing 283:11 item))
760+ (arm 284:9 (lit 284:9 ~) (wing 284:11 item))
758− (arm 284:9
761+ (arm 285:9
759− (cell 284:9 (bind 284:10 next) (bind 284:15 more))
762+ (cell 285:9 (bind 285:10 next) (bind 285:15 more))
760− (group 284:21
763+ (group 285:21
761− (call 284:22 (wing 284:22 rear) (wing 284:27 rest))))))))))))
764+ (call 285:22 (wing 285:22 rear) (wing 285:27 rest))))))))))))
tests/golden/types-list-zero-fit/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Literals: `~` is "A constant: the `~` case of any union with one, such as `(unit A)`, `(list A)`, `(map K V)` or `(set A)`".
2+tests: A zero-valued literal or constant nested in a tuple supplied to a list sample is not a definite mismatch; this partial checker does not yet propagate the list context into that tuple. Nonzero atoms and passing an arbitrary list where the zero constant is required remain definite mismatches. Separate call arguments do receive list context, and the prelude `turn` tuple also fails closed.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-list-zero-fit/modules.txtnew file+1
@@ -0,0 +1 @@
1+# no module fixtures
tests/golden/types-list-zero-fit/source.jibbnew file+8
@@ -0,0 +1,8 @@
1+++ nil-arg |= f=$-([(list @t) @t] @t) (f [~ "ok"])
2+++ zero-arg |= f=$-([(list @t) @t] @t) (f [%$ "ok"])
3+++ zero-one-arg |= f=$-([(list @t) @t] @t) (f [%1 "ok"])
4+++ multi-arg |= f=$-([(list @t) @t] @t) (f ~ "ok")
5+++ constant |= [f=$-([(list @t) @t] @t) z=~] (f [z "ok"])
6+++ nonzero-constant |= [f=$-([(list @t) @t] @t) z=%1] (f [z "ok"])
7+++ reverse |= [f=$-(%$ @t) xs=(list @t)] (f xs)
8+++ turn-tuple (turn [~ |=(x x)])
tests/golden/types-list-zero-fit/tokens.txtnew file+181
@@ -0,0 +1,181 @@
1+1:1 glyph ++
2+1:4 name nil-arg
3+1:12 glyph |=
4+1:15 name f
5+1:16 tight glyph =
6+1:17 tight glyph $-(
7+1:20 tight glyph [
8+1:21 tight glyph (
9+1:22 tight name list
10+1:27 aura @t
11+1:29 tight glyph )
12+1:31 aura @t
13+1:33 tight glyph ]
14+1:35 aura @t
15+1:37 tight glyph )
16+1:39 glyph (
17+1:40 tight name f
18+1:42 glyph [
19+1:43 tight lit ~
20+1:45 str "ok"
21+1:49 tight glyph ]
22+1:50 tight glyph )
23+2:1 NEWLINE
24+2:1 glyph ++
25+2:4 name zero-arg
26+2:13 glyph |=
27+2:16 name f
28+2:17 tight glyph =
29+2:18 tight glyph $-(
30+2:21 tight glyph [
31+2:22 tight glyph (
32+2:23 tight name list
33+2:28 aura @t
34+2:30 tight glyph )
35+2:32 aura @t
36+2:34 tight glyph ]
37+2:36 aura @t
38+2:38 tight glyph )
39+2:40 glyph (
40+2:41 tight name f
41+2:43 glyph [
42+2:44 tight lit %$
43+2:47 str "ok"
44+2:51 tight glyph ]
45+2:52 tight glyph )
46+3:1 NEWLINE
47+3:1 glyph ++
48+3:4 name zero-one-arg
49+3:17 glyph |=
50+3:20 name f
51+3:21 tight glyph =
52+3:22 tight glyph $-(
53+3:25 tight glyph [
54+3:26 tight glyph (
55+3:27 tight name list
56+3:32 aura @t
57+3:34 tight glyph )
58+3:36 aura @t
59+3:38 tight glyph ]
60+3:40 aura @t
61+3:42 tight glyph )
62+3:44 glyph (
63+3:45 tight name f
64+3:47 glyph [
65+3:48 tight lit %1
66+3:51 str "ok"
67+3:55 tight glyph ]
68+3:56 tight glyph )
69+4:1 NEWLINE
70+4:1 glyph ++
71+4:4 name multi-arg
72+4:14 glyph |=
73+4:17 name f
74+4:18 tight glyph =
75+4:19 tight glyph $-(
76+4:22 tight glyph [
77+4:23 tight glyph (
78+4:24 tight name list
79+4:29 aura @t
80+4:31 tight glyph )
81+4:33 aura @t
82+4:35 tight glyph ]
83+4:37 aura @t
84+4:39 tight glyph )
85+4:41 glyph (
86+4:42 tight name f
87+4:44 lit ~
88+4:46 str "ok"
89+4:50 tight glyph )
90+5:1 NEWLINE
91+5:1 glyph ++
92+5:4 name constant
93+5:13 glyph |=
94+5:16 glyph [
95+5:17 tight name f
96+5:18 tight glyph =
97+5:19 tight glyph $-(
98+5:22 tight glyph [
99+5:23 tight glyph (
100+5:24 tight name list
101+5:29 aura @t
102+5:31 tight glyph )
103+5:33 aura @t
104+5:35 tight glyph ]
105+5:37 aura @t
106+5:39 tight glyph )
107+5:41 name z
108+5:42 tight glyph =
109+5:43 tight lit ~
110+5:44 tight glyph ]
111+5:46 glyph (
112+5:47 tight name f
113+5:49 glyph [
114+5:50 tight name z
115+5:52 str "ok"
116+5:56 tight glyph ]
117+5:57 tight glyph )
118+6:1 NEWLINE
119+6:1 glyph ++
120+6:4 name nonzero-constant
121+6:21 glyph |=
122+6:24 glyph [
123+6:25 tight name f
124+6:26 tight glyph =
125+6:27 tight glyph $-(
126+6:30 tight glyph [
127+6:31 tight glyph (
128+6:32 tight name list
129+6:37 aura @t
130+6:39 tight glyph )
131+6:41 aura @t
132+6:43 tight glyph ]
133+6:45 aura @t
134+6:47 tight glyph )
135+6:49 name z
136+6:50 tight glyph =
137+6:51 tight lit %1
138+6:53 tight glyph ]
139+6:55 glyph (
140+6:56 tight name f
141+6:58 glyph [
142+6:59 tight name z
143+6:61 str "ok"
144+6:65 tight glyph ]
145+6:66 tight glyph )
146+7:1 NEWLINE
147+7:1 glyph ++
148+7:4 name reverse
149+7:12 glyph |=
150+7:15 glyph [
151+7:16 tight name f
152+7:17 tight glyph =
153+7:18 tight glyph $-(
154+7:21 tight lit %$
155+7:24 aura @t
156+7:26 tight glyph )
157+7:28 name xs
158+7:30 tight glyph =
159+7:31 tight glyph (
160+7:32 tight name list
161+7:37 aura @t
162+7:39 tight glyph )
163+7:40 tight glyph ]
164+7:42 glyph (
165+7:43 tight name f
166+7:45 name xs
167+7:47 tight glyph )
168+8:1 NEWLINE
169+8:1 glyph ++
170+8:4 name turn-tuple
171+8:15 glyph (
172+8:16 tight name turn
173+8:21 glyph [
174+8:22 tight lit ~
175+8:24 glyph |=(
176+8:27 tight name x
177+8:29 name x
178+8:30 tight glyph )
179+8:31 tight glyph ]
180+8:32 tight glyph )
181+8:33 NEWLINE
tests/golden/types-list-zero-fit/tree.txtnew file+91
@@ -0,0 +1,91 @@
1+(module
2+ (value 1:1 nil-arg
3+ (gate 1:12
4+ (face 1:15 f
5+ (fn 1:17
6+ (cell 1:20
7+ (apply 1:21 list (aura 1:27 @t))
8+ (aura 1:31 @t))
9+ (aura 1:35 @t)))
10+ (group 1:39
11+ (call 1:40
12+ (wing 1:40 f)
13+ (tuple 1:42 (lit 1:43 ~) (str 1:45 "ok"))))))
14+ (value 2:1 zero-arg
15+ (gate 2:13
16+ (face 2:16 f
17+ (fn 2:18
18+ (cell 2:21
19+ (apply 2:22 list (aura 2:28 @t))
20+ (aura 2:32 @t))
21+ (aura 2:36 @t)))
22+ (group 2:40
23+ (call 2:41
24+ (wing 2:41 f)
25+ (tuple 2:43 (lit 2:44 %$) (str 2:47 "ok"))))))
26+ (value 3:1 zero-one-arg
27+ (gate 3:17
28+ (face 3:20 f
29+ (fn 3:22
30+ (cell 3:25
31+ (apply 3:26 list (aura 3:32 @t))
32+ (aura 3:36 @t))
33+ (aura 3:40 @t)))
34+ (group 3:44
35+ (call 3:45
36+ (wing 3:45 f)
37+ (tuple 3:47 (lit 3:48 %1) (str 3:51 "ok"))))))
38+ (value 4:1 multi-arg
39+ (gate 4:14
40+ (face 4:17 f
41+ (fn 4:19
42+ (cell 4:22
43+ (apply 4:23 list (aura 4:29 @t))
44+ (aura 4:33 @t))
45+ (aura 4:37 @t)))
46+ (group 4:41
47+ (call 4:42 (wing 4:42 f) (lit 4:44 ~) (str 4:46 "ok")))))
48+ (value 5:1 constant
49+ (gate 5:13
50+ (cell 5:16
51+ (face 5:17 f
52+ (fn 5:19
53+ (cell 5:22
54+ (apply 5:23 list (aura 5:29 @t))
55+ (aura 5:33 @t))
56+ (aura 5:37 @t)))
57+ (face 5:41 z (const 5:43 ~)))
58+ (group 5:46
59+ (call 5:47
60+ (wing 5:47 f)
61+ (tuple 5:49 (wing 5:50 z) (str 5:52 "ok"))))))
62+ (value 6:1 nonzero-constant
63+ (gate 6:21
64+ (cell 6:24
65+ (face 6:25 f
66+ (fn 6:27
67+ (cell 6:30
68+ (apply 6:31 list (aura 6:37 @t))
69+ (aura 6:41 @t))
70+ (aura 6:45 @t)))
71+ (face 6:49 z (const 6:51 %1)))
72+ (group 6:55
73+ (call 6:56
74+ (wing 6:56 f)
75+ (tuple 6:58 (wing 6:59 z) (str 6:61 "ok"))))))
76+ (value 7:1 reverse
77+ (gate 7:12
78+ (cell 7:15
79+ (face 7:16 f
80+ (fn 7:18 (const 7:21 %$) (aura 7:24 @t)))
81+ (face 7:28 xs
82+ (apply 7:31 list (aura 7:37 @t))))
83+ (group 7:42
84+ (call 7:43 (wing 7:43 f) (wing 7:45 xs)))))
85+ (value 8:1 turn-tuple
86+ (group 8:15
87+ (call 8:16
88+ (wing 8:16 turn)
89+ (tuple 8:21
90+ (lit 8:22 ~)
91+ (gate-wide 8:24 (bind 8:27 x) (wing 8:29 x)))))))
tests/golden/types-list-zero-fit/types.txtnew file+27
@@ -0,0 +1,27 @@
1+partial inference; module not checked
2+++ nil-arg: call constraint is not supported by partial inference
3+++ zero-arg: call constraint is not supported by partial inference
4+++ zero-one-arg: call's sample and argument types do not unify
5+/tests/golden/types-list-zero-fit/source.jibb:3:45: called gate has type $-([(list @t) @t] @t)
6+++ zero-one-arg |= f=$-([(list @t) @t] @t) (f [%1 "ok"])
7+ ^
8+/tests/golden/types-list-zero-fit/source.jibb:3:47: argument
9+++ zero-one-arg |= f=$-([(list @t) @t] @t) (f [%1 "ok"])
10+ ^
11+++ multi-arg: $-($-([(list @t) @t] @t) @t)
12+++ constant: call constraint is not supported by partial inference
13+++ nonzero-constant: call's sample and argument types do not unify
14+/tests/golden/types-list-zero-fit/source.jibb:6:56: called gate has type $-([(list @t) @t] @t)
15+++ nonzero-constant |= [f=$-([(list @t) @t] @t) z=%1] (f [z "ok"])
16+ ^
17+/tests/golden/types-list-zero-fit/source.jibb:6:58: argument has type [%1 @t]
18+++ nonzero-constant |= [f=$-([(list @t) @t] @t) z=%1] (f [z "ok"])
19+ ^
20+++ reverse: call's sample and argument types do not unify
21+/tests/golden/types-list-zero-fit/source.jibb:7:43: called gate has type $-(%$ @t)
22+++ reverse |= [f=$-(%$ @t) xs=(list @t)] (f xs)
23+ ^
24+/tests/golden/types-list-zero-fit/source.jibb:7:45: argument has type (list @t)
25+++ reverse |= [f=$-(%$ @t) xs=(list @t)] (f xs)
26+ ^
27+++ turn-tuple: call constraint is not supported by partial inference
tests/golden/types-prelude-direct/about.txt+1−1
@@ -1,4 +1,4 @@
1source: Overview, Prelude: "Hoon's standard library regrouped, written in Jibb and vendored as `/lib/jibb/prelude`". Grammar, Modules: no name may shadow one already in scope.
1source: Overview, Prelude: "Hoon's standard library regrouped, written in Jibb and vendored as `/lib/jibb/prelude`". Grammar, Modules: no name may shadow one already in scope.
2−tests: A module with no imports uses the prelude's unit and need, printing unit without a qualifier. Unsupported prelude values still fail closed and their names remain reserved.
2+tests: A module with no imports uses the prelude's unit and need, printing unit without a qualifier. The prelude `turn` is available, but a list zero nested inside a single tuple argument remains unsupported instead of reporting a false mismatch. Prelude names remain reserved.
3expect: parses
3expect: parses
4expect-types: a partial inference report
4expect-types: a partial inference report
tests/golden/types-prelude-direct/source.jibb+1−1
@@ -1,5 +1,5 @@
1++ echo |= x=(unit A) x
1++ echo |= x=(unit A) x
2++ extract |= x=(unit A) (need x)
2++ extract |= x=(unit A) (need x)
3++ concrete ^- (unit @t) ~
3++ concrete ^- (unit @t) ~
4−++ missing (turn [~ |=(x x)])
4+++ tuple-call (turn [~ |=(x x)])
5++ shadow |= need need
5++ shadow |= need need
tests/golden/types-prelude-direct/tokens.txt+11−11
@@ -33,17 +33,17 @@
333:26 lit ~
333:26 lit ~
344:1 NEWLINE
344:1 NEWLINE
354:1 glyph ++
354:1 glyph ++
36−4:4 name missing
36+4:4 name tuple-call
37−4:12 glyph (
37+4:15 glyph (
38−4:13 tight name turn
38+4:16 tight name turn
39−4:18 glyph [
39+4:21 glyph [
40−4:19 tight lit ~
40+4:22 tight lit ~
41−4:21 glyph |=(
41+4:24 glyph |=(
42−4:24 tight name x
43−4:26 name x
44−4:27 tight glyph )
42+4:27 tight name x
45−4:28 tight glyph ]
43+4:29 name x
44+4:30 tight glyph )
45+4:31 tight glyph ]
46−4:29 tight glyph )
46+4:32 tight glyph )
475:1 NEWLINE
475:1 NEWLINE
485:1 glyph ++
485:1 glyph ++
495:4 name shadow
495:4 name shadow
tests/golden/types-prelude-direct/tree.txt+7−7
@@ -14,12 +14,12 @@
14 (cast 3:13
14 (cast 3:13
15 (apply 3:16 unit (aura 3:22 @t))
15 (apply 3:16 unit (aura 3:22 @t))
16 (lit 3:26 ~)))
16 (lit 3:26 ~)))
17− (value 4:1 missing
17+ (value 4:1 tuple-call
18− (group 4:12
18+ (group 4:15
19− (call 4:13
19+ (call 4:16
20− (wing 4:13 turn)
20+ (wing 4:16 turn)
21− (tuple 4:18
21+ (tuple 4:21
22− (lit 4:19 ~)
22+ (lit 4:22 ~)
23− (gate-wide 4:21 (bind 4:24 x) (wing 4:26 x))))))
23+ (gate-wide 4:24 (bind 4:27 x) (wing 4:29 x))))))
24 (value 5:1 shadow
24 (value 5:1 shadow
25 (gate 5:11 (bind 5:14 need) (wing 5:19 need))))
25 (gate 5:11 (bind 5:14 need) (wing 5:19 need))))
tests/golden/types-prelude-direct/types.txt+1−1
@@ -2,5 +2,5 @@ partial inference; module not checked
2++ echo: $-((unit A) (unit A))
2++ echo: $-((unit A) (unit A))
3++ extract: $-((unit A) A)
3++ extract: $-((unit A) A)
4++ concrete: (unit @t)
4++ concrete: (unit @t)
5−++ missing: name is not available to partial inference
5+++ tuple-call: call constraint is not supported by partial inference
6++ shadow: sample shadows a name
6++ shadow: sample shadows a name
tests/golden/types-prelude-interface/about.txt+1−1
@@ -1,4 +1,4 @@
1source: Overview, Prelude: "Hoon's standard library regrouped, written in Jibb and vendored as `/lib/jibb/prelude`". Grammar, Modules: no name may shadow one already in scope.
1source: Overview, Prelude: "Hoon's standard library regrouped, written in Jibb and vendored as `/lib/jibb/prelude`". Grammar, Modules: no name may shadow one already in scope.
2−tests: A unit constructed in one module passes through another module's generic identity and the root's prelude helpers, preserving one origin and printing `unit` unqualified. The prelude list mold is available; unavailable prelude values remain reserved and fail closed, and a sample cannot shadow one.
2+tests: A unit constructed in one module passes through another module's generic identity and the root's prelude helpers, preserving one origin and printing `unit` unqualified. The prelude list mold is available; a zero inside a single tuple passed to `turn` remains unsupported instead of reporting a false mismatch, and a sample cannot shadow a prelude name.
3expect: parses
3expect: parses
4expect-types: a partial inference report
4expect-types: a partial inference report
tests/golden/types-prelude-interface/source.jibb+1−1
@@ -4,7 +4,7 @@
4++ source (identity.right value.left)
4++ source (identity.right value.left)
5++ direct (need value.left)
5++ direct (need value.left)
6++ fallback (fall [value.left "fallback"])
6++ fallback (fall [value.left "fallback"])
7−++ unavailable (turn [~ |=(x x)])
7+++ tuple-call (turn [~ |=(x x)])
8++ shadow |= turn turn
8++ shadow |= turn turn
9++ list-id |= x=(list @t) x
9++ list-id |= x=(list @t) x
10++ get-gate identity.right
10++ get-gate identity.right
tests/golden/types-prelude-interface/tokens.txt+11−11
@@ -46,17 +46,17 @@
466:42 tight glyph )
466:42 tight glyph )
477:1 NEWLINE
477:1 NEWLINE
487:1 glyph ++
487:1 glyph ++
49−7:4 name unavailable
49+7:4 name tuple-call
50−7:16 glyph (
50+7:15 glyph (
51−7:17 tight name turn
51+7:16 tight name turn
52−7:22 glyph [
52+7:21 glyph [
53−7:23 tight lit ~
53+7:22 tight lit ~
54−7:25 glyph |=(
54+7:24 glyph |=(
55−7:28 tight name x
55+7:27 tight name x
56−7:30 name x
56+7:29 name x
57+7:30 tight glyph )
57−7:31 tight glyph )
58+7:31 tight glyph ]
58−7:32 tight glyph ]
59+7:32 tight glyph )
59−7:33 tight glyph )
608:1 NEWLINE
608:1 NEWLINE
618:1 glyph ++
618:1 glyph ++
628:4 name shadow
628:4 name shadow
tests/golden/types-prelude-interface/tree.txt+7−7
@@ -16,13 +16,13 @@
16 (call 6:14
16 (call 6:14
17 (wing 6:14 fall)
17 (wing 6:14 fall)
18 (tuple 6:19 (wing 6:20 value.left) (str 6:31 "fallback")))))
18 (tuple 6:19 (wing 6:20 value.left) (str 6:31 "fallback")))))
19− (value 7:1 unavailable
19+ (value 7:1 tuple-call
20− (group 7:16
20+ (group 7:15
21− (call 7:17
21+ (call 7:16
22− (wing 7:17 turn)
22+ (wing 7:16 turn)
23− (tuple 7:22
23+ (tuple 7:21
24− (lit 7:23 ~)
24+ (lit 7:22 ~)
25− (gate-wide 7:25 (bind 7:28 x) (wing 7:30 x))))))
25+ (gate-wide 7:24 (bind 7:27 x) (wing 7:29 x))))))
26 (value 8:1 shadow
26 (value 8:1 shadow
27 (gate 8:11 (bind 8:14 turn) (wing 8:19 turn)))
27 (gate 8:11 (bind 8:14 turn) (wing 8:19 turn)))
28 (value 9:1 list-id
28 (value 9:1 list-id
tests/golden/types-prelude-interface/types.txt+1−1
@@ -3,7 +3,7 @@ partial inference; module not checked
3++ source: (unit @t)
3++ source: (unit @t)
4++ direct: @t
4++ direct: @t
5++ fallback: @t
5++ fallback: @t
6−++ unavailable: name is not available to partial inference
6+++ tuple-call: call constraint is not supported by partial inference
7++ shadow: sample shadows a name
7++ shadow: sample shadows a name
8++ list-id: $-((list @t) (list @t))
8++ list-id: $-((list @t) (list @t))
9++ get-gate: $-((unit A) (unit A))
9++ get-gate: $-((unit A) (unit A))
tests/golden/types-prelude-list-functions/about.txt+1−1
@@ -1,4 +1,4 @@
1source: Overview, Prelude: "Jetted prelude functions have working Jibb implementations"; Molds: type variables are generalized per `++`.
1source: Overview, Prelude: "Jetted prelude functions have working Jibb implementations"; Molds: type variables are generalized per `++`.
2−tests: The actual prelude list helpers infer and instantiate independently for cords and ships, including through an imported module; incompatible list elements and unrelated unresolved tags fail closed.
2+tests: The actual prelude list helpers infer and instantiate independently for cords and ships, including through an imported module. `turn` infers identity and changing-element mappings, an empty list, an explicitly typed nested list, and an imported use; incompatible items or gates and unrelated unresolved tags fail closed.
3expect: parses
3expect: parses
4expect-types: a partial inference report
4expect-types: a partial inference report
tests/golden/types-prelude-list-functions/module-trees.txt+7−1
@@ -2,4 +2,10 @@
2(module
2(module
3 (value 1:1 value
3 (value 1:1 value
4 (group 1:10
4 (group 1:10
5− (call 1:11 (wing 1:11 lure) (lit 1:16 ~zod)))))
5+ (call 1:11 (wing 1:11 lure) (lit 1:16 ~zod))))
6+ (value 2:1 mapped
7+ (group 2:11
8+ (call 2:12
9+ (wing 2:12 turn)
10+ (list 2:17 (str 2:19 "a"))
11+ (gate-wide 2:24 (bind 2:27 x) (lit 2:29 ~zod))))))
tests/golden/types-prelude-list-functions/modules/ui/lib.jibb+1
@@ -1 +1,2 @@
1++ value (lure ~zod)
1++ value (lure ~zod)
2+++ mapped (turn ~["a"] |=(x ~zod))
tests/golden/types-prelude-list-functions/source.jibb+7
@@ -9,3 +9,10 @@
9++ pending
9++ pending
10 ~& %unknown
10 ~& %unknown
11 (lure "hi")
11 (lure "hi")
12+++ turn-text (turn ~["a"] |=(x x))
13+++ turn-ships (turn ~[~zod] |=(x x))
14+++ turn-map (turn ~["a"] |=(x ~zod))
15+++ turn-empty (turn ~[] |=(x=@t x))
16+++ turn-nested (turn (^- (list (list @t)) ~[~["a"]]) |=(x x))
17+++ turn-import mapped.lib
18+++ turn-mismatch (turn ~["a"] |=(x (^- @p x)))
tests/golden/types-prelude-list-functions/tokens.txt+102−3
@@ -79,6 +79,105 @@
7911:6 tight name lure
7911:6 tight name lure
8011:11 str "hi"
8011:11 str "hi"
8111:15 tight glyph )
8111:15 tight glyph )
82−11:16 DEDENT
82+12:1 DEDENT
83−11:16 DEDENT
83+12:1 DEDENT
84+12:1 NEWLINE
85+12:1 glyph ++
86+12:4 name turn-text
87+12:14 glyph (
88+12:15 tight name turn
89+12:20 glyph ~[
90+12:22 tight str "a"
91+12:25 tight glyph ]
92+12:27 glyph |=(
93+12:30 tight name x
94+12:32 name x
95+12:33 tight glyph )
96+12:34 tight glyph )
97+13:1 NEWLINE
98+13:1 glyph ++
99+13:4 name turn-ships
100+13:15 glyph (
101+13:16 tight name turn
102+13:21 glyph ~[
103+13:23 tight lit ~zod
104+13:27 tight glyph ]
105+13:29 glyph |=(
106+13:32 tight name x
107+13:34 name x
108+13:35 tight glyph )
109+13:36 tight glyph )
110+14:1 NEWLINE
111+14:1 glyph ++
112+14:4 name turn-map
113+14:13 glyph (
114+14:14 tight name turn
115+14:19 glyph ~[
116+14:21 tight str "a"
117+14:24 tight glyph ]
118+14:26 glyph |=(
119+14:29 tight name x
120+14:31 lit ~zod
121+14:35 tight glyph )
122+14:36 tight glyph )
123+15:1 NEWLINE
124+15:1 glyph ++
125+15:4 name turn-empty
126+15:15 glyph (
127+15:16 tight name turn
128+15:21 glyph ~[
129+15:23 tight glyph ]
130+15:25 glyph |=(
131+15:28 tight name x
132+15:29 tight glyph =
133+15:30 tight aura @t
134+15:33 name x
135+15:34 tight glyph )
136+15:35 tight glyph )
137+16:1 NEWLINE
138+16:1 glyph ++
139+16:4 name turn-nested
140+16:16 glyph (
141+16:17 tight name turn
142+16:22 glyph (
143+16:23 tight glyph ^-
144+16:26 glyph (
145+16:27 tight name list
146+16:32 glyph (
147+16:33 tight name list
148+16:38 aura @t
149+16:40 tight glyph )
150+16:41 tight glyph )
151+16:43 glyph ~[
152+16:45 tight glyph ~[
153+16:47 tight str "a"
154+16:50 tight glyph ]
155+16:51 tight glyph ]
156+16:52 tight glyph )
157+16:54 glyph |=(
158+16:57 tight name x
159+16:59 name x
160+16:60 tight glyph )
161+16:61 tight glyph )
162+17:1 NEWLINE
163+17:1 glyph ++
164+17:4 name turn-import
165+17:16 wing mapped.lib
166+18:1 NEWLINE
167+18:1 glyph ++
168+18:4 name turn-mismatch
169+18:18 glyph (
170+18:19 tight name turn
171+18:24 glyph ~[
172+18:26 tight str "a"
173+18:29 tight glyph ]
174+18:31 glyph |=(
175+18:34 tight name x
176+18:36 glyph (
177+18:37 tight glyph ^-
178+18:40 aura @p
179+18:43 name x
180+18:44 tight glyph )
181+18:45 tight glyph )
182+18:46 tight glyph )
84−11:16 NEWLINE
183+18:47 NEWLINE
tests/golden/types-prelude-list-functions/tree.txt+48−1
@@ -37,4 +37,51 @@
37 (lit 10:6 %unknown)
37 (lit 10:6 %unknown)
38 (body 11:5
38 (body 11:5
39 (group 11:5
39 (group 11:5
40− (call 11:6 (wing 11:6 lure) (str 11:11 "hi"))))))))
40+ (call 11:6 (wing 11:6 lure) (str 11:11 "hi")))))))
41+ (value 12:1 turn-text
42+ (group 12:14
43+ (call 12:15
44+ (wing 12:15 turn)
45+ (list 12:20 (str 12:22 "a"))
46+ (gate-wide 12:27 (bind 12:30 x) (wing 12:32 x)))))
47+ (value 13:1 turn-ships
48+ (group 13:15
49+ (call 13:16
50+ (wing 13:16 turn)
51+ (list 13:21 (lit 13:23 ~zod))
52+ (gate-wide 13:29 (bind 13:32 x) (wing 13:34 x)))))
53+ (value 14:1 turn-map
54+ (group 14:13
55+ (call 14:14
56+ (wing 14:14 turn)
57+ (list 14:19 (str 14:21 "a"))
58+ (gate-wide 14:26 (bind 14:29 x) (lit 14:31 ~zod)))))
59+ (value 15:1 turn-empty
60+ (group 15:15
61+ (call 15:16
62+ (wing 15:16 turn)
63+ (list 15:21)
64+ (gate-wide 15:25
65+ (face 15:28 x (aura 15:30 @t))
66+ (wing 15:33 x)))))
67+ (value 16:1 turn-nested
68+ (group 16:16
69+ (call 16:17
70+ (wing 16:17 turn)
71+ (group 16:22
72+ (cast 16:23
73+ (apply 16:26 list
74+ (apply 16:32 list (aura 16:38 @t)))
75+ (list 16:43
76+ (list 16:45 (str 16:47 "a")))))
77+ (gate-wide 16:54 (bind 16:57 x) (wing 16:59 x)))))
78+ (value 17:1 turn-import (wing 17:16 mapped.lib))
79+ (value 18:1 turn-mismatch
80+ (group 18:18
81+ (call 18:19
82+ (wing 18:19 turn)
83+ (list 18:24 (str 18:26 "a"))
84+ (gate-wide 18:31
85+ (bind 18:34 x)
86+ (group 18:36
87+ (cast 18:37 (aura 18:40 @p) (wing 18:43 x))))))))
tests/golden/types-prelude-list-functions/types.txt+13
@@ -13,3 +13,16 @@ partial inference; module not checked
13++ mismatch (weld ~["a"] ~[~zod])
13++ mismatch (weld ~["a"] ~[~zod])
14 ^
14 ^
15++ pending: tag needs context in partial inference
15++ pending: tag needs context in partial inference
16+++ turn-text: (list @t)
17+++ turn-ships: (list @p)
18+++ turn-map: (list @p)
19+++ turn-empty: (list @t)
20+++ turn-nested: (list (list @t))
21+++ turn-import: (list @p)
22+++ turn-mismatch: call's sample and argument types do not unify
23+/tests/golden/types-prelude-list-functions/source.jibb:18:19: called gate has type $-([(list @t) $-(@t A)] (list A))
24+++ turn-mismatch (turn ~["a"] |=(x (^- @p x)))
25+ ^
26+/tests/golden/types-prelude-list-functions/source.jibb:18:31: argument has type $-(@p @p)
27+++ turn-mismatch (turn ~["a"] |=(x (^- @p x)))
28+ ^
tests/golden/types-union-patterns-generic/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Patterns: "Every case needs an arm or a catch-all"; Molds: "Type variables are capitals, generalized per `++`."
2+tests: Matching generic union cases preserves shared payload variables and concrete payload types. Different result variables, partial patterns, unresolved result tags and an explicit capital forced concrete remain unsupported. The same binder name can be reused in separate arms, and a duplicate arm is dead.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-union-patterns-generic/modules.txtnew file+1
@@ -0,0 +1 @@
1+# no module fixtures
tests/golden/types-union-patterns-generic/source.jibbnew file+36
@@ -0,0 +1,36 @@
1++$ result |$ [V E]
2+ [%ok value=V]
3+ [%err error=E]
4+++ either-value |= r=(result A A)
5+ ?- r
6+ [%ok value] value
7+ [%err error] error
8+++ concrete |= r=(result @t @p)
9+ ?- r
10+ [%ok value] value
11+ [%err error] "failed"
12+++ missing |= r=(result @t @p)
13+ ?- r
14+ [%ok value] value
15+ [%ok again] again
16+++ nested |= r=(result @t @p)
17+ ?- r
18+ [%ok "x"] "hit"
19+ [%ok *] "other"
20+ [%err error] "failed"
21+++ different |= r=(result A B)
22+ ?- r
23+ [%ok value] value
24+ [%err error] error
25+++ forced |= r=(result A A)
26+ ?- r
27+ [%ok value] ^- @t value
28+ [%err error] error
29+++ reused |= r=(result A A)
30+ ?- r
31+ [%ok item] item
32+ [%err item] item
33+++ pending |= r=(result @t @p)
34+ ?- r
35+ [%ok value] %orphan
36+ [%err error] %orphan
tests/golden/types-union-patterns-generic/tokens.txtnew file+255
@@ -0,0 +1,255 @@
1+1:1 glyph +$
2+1:4 name result
3+1:11 glyph |$
4+1:14 glyph [
5+1:15 tight tvar V
6+1:17 tvar E
7+1:18 tight glyph ]
8+2:3 INDENT
9+2:3 glyph [
10+2:4 tight lit %ok
11+2:8 name value
12+2:13 tight glyph =
13+2:14 tight tvar V
14+2:15 tight glyph ]
15+3:3 NEWLINE
16+3:3 glyph [
17+3:4 tight lit %err
18+3:9 name error
19+3:14 tight glyph =
20+3:15 tight tvar E
21+3:16 tight glyph ]
22+4:1 DEDENT
23+4:1 NEWLINE
24+4:1 glyph ++
25+4:4 name either-value
26+4:17 glyph |=
27+4:20 name r
28+4:21 tight glyph =
29+4:22 tight glyph (
30+4:23 tight name result
31+4:30 tvar A
32+4:32 tvar A
33+4:33 tight glyph )
34+5:3 INDENT
35+5:3 glyph ?-
36+5:6 name r
37+6:5 INDENT
38+6:5 glyph [
39+6:6 tight lit %ok
40+6:10 name value
41+6:15 tight glyph ]
42+6:17 name value
43+7:5 NEWLINE
44+7:5 glyph [
45+7:6 tight lit %err
46+7:11 name error
47+7:16 tight glyph ]
48+7:18 name error
49+8:1 DEDENT
50+8:1 DEDENT
51+8:1 NEWLINE
52+8:1 glyph ++
53+8:4 name concrete
54+8:13 glyph |=
55+8:16 name r
56+8:17 tight glyph =
57+8:18 tight glyph (
58+8:19 tight name result
59+8:26 aura @t
60+8:29 aura @p
61+8:31 tight glyph )
62+9:3 INDENT
63+9:3 glyph ?-
64+9:6 name r
65+10:5 INDENT
66+10:5 glyph [
67+10:6 tight lit %ok
68+10:10 name value
69+10:15 tight glyph ]
70+10:17 name value
71+11:5 NEWLINE
72+11:5 glyph [
73+11:6 tight lit %err
74+11:11 name error
75+11:16 tight glyph ]
76+11:18 str "failed"
77+12:1 DEDENT
78+12:1 DEDENT
79+12:1 NEWLINE
80+12:1 glyph ++
81+12:4 name missing
82+12:12 glyph |=
83+12:15 name r
84+12:16 tight glyph =
85+12:17 tight glyph (
86+12:18 tight name result
87+12:25 aura @t
88+12:28 aura @p
89+12:30 tight glyph )
90+13:3 INDENT
91+13:3 glyph ?-
92+13:6 name r
93+14:5 INDENT
94+14:5 glyph [
95+14:6 tight lit %ok
96+14:10 name value
97+14:15 tight glyph ]
98+14:17 name value
99+15:5 NEWLINE
100+15:5 glyph [
101+15:6 tight lit %ok
102+15:10 name again
103+15:15 tight glyph ]
104+15:17 name again
105+16:1 DEDENT
106+16:1 DEDENT
107+16:1 NEWLINE
108+16:1 glyph ++
109+16:4 name nested
110+16:11 glyph |=
111+16:14 name r
112+16:15 tight glyph =
113+16:16 tight glyph (
114+16:17 tight name result
115+16:24 aura @t
116+16:27 aura @p
117+16:29 tight glyph )
118+17:3 INDENT
119+17:3 glyph ?-
120+17:6 name r
121+18:5 INDENT
122+18:5 glyph [
123+18:6 tight lit %ok
124+18:10 str "x"
125+18:13 tight glyph ]
126+18:15 str "hit"
127+19:5 NEWLINE
128+19:5 glyph [
129+19:6 tight lit %ok
130+19:10 glyph *
131+19:11 tight glyph ]
132+19:13 str "other"
133+20:5 NEWLINE
134+20:5 glyph [
135+20:6 tight lit %err
136+20:11 name error
137+20:16 tight glyph ]
138+20:18 str "failed"
139+21:1 DEDENT
140+21:1 DEDENT
141+21:1 NEWLINE
142+21:1 glyph ++
143+21:4 name different
144+21:14 glyph |=
145+21:17 name r
146+21:18 tight glyph =
147+21:19 tight glyph (
148+21:20 tight name result
149+21:27 tvar A
150+21:29 tvar B
151+21:30 tight glyph )
152+22:3 INDENT
153+22:3 glyph ?-
154+22:6 name r
155+23:5 INDENT
156+23:5 glyph [
157+23:6 tight lit %ok
158+23:10 name value
159+23:15 tight glyph ]
160+23:17 name value
161+24:5 NEWLINE
162+24:5 glyph [
163+24:6 tight lit %err
164+24:11 name error
165+24:16 tight glyph ]
166+24:18 name error
167+25:1 DEDENT
168+25:1 DEDENT
169+25:1 NEWLINE
170+25:1 glyph ++
171+25:4 name forced
172+25:11 glyph |=
173+25:14 name r
174+25:15 tight glyph =
175+25:16 tight glyph (
176+25:17 tight name result
177+25:24 tvar A
178+25:26 tvar A
179+25:27 tight glyph )
180+26:3 INDENT
181+26:3 glyph ?-
182+26:6 name r
183+27:5 INDENT
184+27:5 glyph [
185+27:6 tight lit %ok
186+27:10 name value
187+27:15 tight glyph ]
188+27:17 glyph ^-
189+27:20 aura @t
190+27:23 name value
191+28:5 NEWLINE
192+28:5 glyph [
193+28:6 tight lit %err
194+28:11 name error
195+28:16 tight glyph ]
196+28:18 name error
197+29:1 DEDENT
198+29:1 DEDENT
199+29:1 NEWLINE
200+29:1 glyph ++
201+29:4 name reused
202+29:11 glyph |=
203+29:14 name r
204+29:15 tight glyph =
205+29:16 tight glyph (
206+29:17 tight name result
207+29:24 tvar A
208+29:26 tvar A
209+29:27 tight glyph )
210+30:3 INDENT
211+30:3 glyph ?-
212+30:6 name r
213+31:5 INDENT
214+31:5 glyph [
215+31:6 tight lit %ok
216+31:10 name item
217+31:14 tight glyph ]
218+31:16 name item
219+32:5 NEWLINE
220+32:5 glyph [
221+32:6 tight lit %err
222+32:11 name item
223+32:15 tight glyph ]
224+32:17 name item
225+33:1 DEDENT
226+33:1 DEDENT
227+33:1 NEWLINE
228+33:1 glyph ++
229+33:4 name pending
230+33:12 glyph |=
231+33:15 name r
232+33:16 tight glyph =
233+33:17 tight glyph (
234+33:18 tight name result
235+33:25 aura @t
236+33:28 aura @p
237+33:30 tight glyph )
238+34:3 INDENT
239+34:3 glyph ?-
240+34:6 name r
241+35:5 INDENT
242+35:5 glyph [
243+35:6 tight lit %ok
244+35:10 name value
245+35:15 tight glyph ]
246+35:17 lit %orphan
247+36:5 NEWLINE
248+36:5 glyph [
249+36:6 tight lit %err
250+36:11 name error
251+36:16 tight glyph ]
252+36:18 lit %orphan
253+36:25 DEDENT
254+36:25 DEDENT
255+36:25 NEWLINE
tests/golden/types-union-patterns-generic/tree.txtnew file+117
@@ -0,0 +1,117 @@
1+(module
2+ (mold 1:1 result
3+ (generic 1:11 V E
4+ (union 2:3
5+ (cell 2:3
6+ (const 2:4 %ok)
7+ (face 2:8 value (tvar 2:14 V)))
8+ (cell 3:3
9+ (const 3:4 %err)
10+ (face 3:9 error (tvar 3:15 E))))))
11+ (value 4:1 either-value
12+ (gate 4:17
13+ (face 4:20 r
14+ (apply 4:22 result (tvar 4:30 A) (tvar 4:32 A)))
15+ (body 5:3
16+ (branch 5:3
17+ (wing 5:6 r)
18+ (arm 6:5
19+ (cell 6:5 (lit 6:6 %ok) (bind 6:10 value))
20+ (wing 6:17 value))
21+ (arm 7:5
22+ (cell 7:5 (lit 7:6 %err) (bind 7:11 error))
23+ (wing 7:18 error))))))
24+ (value 8:1 concrete
25+ (gate 8:13
26+ (face 8:16 r
27+ (apply 8:18 result (aura 8:26 @t) (aura 8:29 @p)))
28+ (body 9:3
29+ (branch 9:3
30+ (wing 9:6 r)
31+ (arm 10:5
32+ (cell 10:5 (lit 10:6 %ok) (bind 10:10 value))
33+ (wing 10:17 value))
34+ (arm 11:5
35+ (cell 11:5 (lit 11:6 %err) (bind 11:11 error))
36+ (str 11:18 "failed"))))))
37+ (value 12:1 missing
38+ (gate 12:12
39+ (face 12:15 r
40+ (apply 12:17 result (aura 12:25 @t) (aura 12:28 @p)))
41+ (body 13:3
42+ (branch 13:3
43+ (wing 13:6 r)
44+ (arm 14:5
45+ (cell 14:5 (lit 14:6 %ok) (bind 14:10 value))
46+ (wing 14:17 value))
47+ (arm 15:5
48+ (cell 15:5 (lit 15:6 %ok) (bind 15:10 again))
49+ (wing 15:17 again))))))
50+ (value 16:1 nested
51+ (gate 16:11
52+ (face 16:14 r
53+ (apply 16:16 result (aura 16:24 @t) (aura 16:27 @p)))
54+ (body 17:3
55+ (branch 17:3
56+ (wing 17:6 r)
57+ (arm 18:5
58+ (cell 18:5 (lit 18:6 %ok) (str 18:10 "x"))
59+ (str 18:15 "hit"))
60+ (arm 19:5
61+ (cell 19:5 (lit 19:6 %ok) (any 19:10))
62+ (str 19:13 "other"))
63+ (arm 20:5
64+ (cell 20:5 (lit 20:6 %err) (bind 20:11 error))
65+ (str 20:18 "failed"))))))
66+ (value 21:1 different
67+ (gate 21:14
68+ (face 21:17 r
69+ (apply 21:19 result (tvar 21:27 A) (tvar 21:29 B)))
70+ (body 22:3
71+ (branch 22:3
72+ (wing 22:6 r)
73+ (arm 23:5
74+ (cell 23:5 (lit 23:6 %ok) (bind 23:10 value))
75+ (wing 23:17 value))
76+ (arm 24:5
77+ (cell 24:5 (lit 24:6 %err) (bind 24:11 error))
78+ (wing 24:18 error))))))
79+ (value 25:1 forced
80+ (gate 25:11
81+ (face 25:14 r
82+ (apply 25:16 result (tvar 25:24 A) (tvar 25:26 A)))
83+ (body 26:3
84+ (branch 26:3
85+ (wing 26:6 r)
86+ (arm 27:5
87+ (cell 27:5 (lit 27:6 %ok) (bind 27:10 value))
88+ (cast 27:17 (aura 27:20 @t) (wing 27:23 value)))
89+ (arm 28:5
90+ (cell 28:5 (lit 28:6 %err) (bind 28:11 error))
91+ (wing 28:18 error))))))
92+ (value 29:1 reused
93+ (gate 29:11
94+ (face 29:14 r
95+ (apply 29:16 result (tvar 29:24 A) (tvar 29:26 A)))
96+ (body 30:3
97+ (branch 30:3
98+ (wing 30:6 r)
99+ (arm 31:5
100+ (cell 31:5 (lit 31:6 %ok) (bind 31:10 item))
101+ (wing 31:16 item))
102+ (arm 32:5
103+ (cell 32:5 (lit 32:6 %err) (bind 32:11 item))
104+ (wing 32:17 item))))))
105+ (value 33:1 pending
106+ (gate 33:12
107+ (face 33:15 r
108+ (apply 33:17 result (aura 33:25 @t) (aura 33:28 @p)))
109+ (body 34:3
110+ (branch 34:3
111+ (wing 34:6 r)
112+ (arm 35:5
113+ (cell 35:5 (lit 35:6 %ok) (bind 35:10 value))
114+ (lit 35:17 %orphan))
115+ (arm 36:5
116+ (cell 36:5 (lit 36:6 %err) (bind 36:11 error))
117+ (lit 36:18 %orphan)))))))
tests/golden/types-union-patterns-generic/types.txtnew file+13
@@ -0,0 +1,13 @@
1+partial inference; module not checked
2++$ result: cases proven disjoint; mold not checked
3+++ either-value: $-((result A A) A)
4+++ concrete: $-((result @t @p) @t)
5+++ missing: branch arm is covered by earlier arms
6+/tests/golden/types-union-patterns-generic/source.jibb:15:5: covered arm
7+ [%ok again] again
8+ ^
9+++ nested: partial union pattern is not supported by partial inference
10+++ different: union branch result matching needs unsupported inference
11+++ forced: explicit capital constraints are not supported by partial inference
12+++ reused: $-((result A A) A)
13+++ pending: union branch result matching needs unsupported inference
tests/golden/types-union-patterns-import/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Patterns: "Every case needs an arm or a catch-all"; Imports: names from a Jibb module are read through its face.
2+tests: A known imported union can be matched exhaustively with a tagged payload and a bare term; its name remains qualified in the inferred type.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-union-patterns-import/module-trees.txtnew file+8
@@ -0,0 +1,8 @@
1+/ui/lib.jibb
2+(module
3+ (mold 1:1 msg
4+ (union 2:3
5+ (cell 2:3
6+ (const 2:4 %noted)
7+ (face 2:11 text (aura 2:16 @t)))
8+ (const 3:3 %add))))
tests/golden/types-union-patterns-import/modules.txtnew file+1
@@ -0,0 +1 @@
1+/ui/lib.jibb
tests/golden/types-union-patterns-import/modules/ui/lib.jibbnew file+3
@@ -0,0 +1,3 @@
1++$ msg
2+ [%noted text=@t]
3+ %add
tests/golden/types-union-patterns-import/source.jibbnew file+5
@@ -0,0 +1,5 @@
1+/= lib /ui/lib
2+++ show |= v=msg.lib
3+ ?- v
4+ [%noted words] words
5+ %add "add"
tests/golden/types-union-patterns-import/tokens.txtnew file+28
@@ -0,0 +1,28 @@
1+1:1 glyph /=
2+1:4 name lib
3+1:8 glyph /
4+1:9 tight knot ui
5+1:11 tight glyph /
6+1:12 tight knot lib
7+2:1 NEWLINE
8+2:1 glyph ++
9+2:4 name show
10+2:9 glyph |=
11+2:12 name v
12+2:13 tight glyph =
13+2:14 tight wing msg.lib
14+3:3 INDENT
15+3:3 glyph ?-
16+3:6 name v
17+4:5 INDENT
18+4:5 glyph [
19+4:6 tight lit %noted
20+4:13 name words
21+4:18 tight glyph ]
22+4:20 name words
23+5:5 NEWLINE
24+5:5 lit %add
25+5:10 str "add"
26+5:15 DEDENT
27+5:15 DEDENT
28+5:15 NEWLINE
tests/golden/types-union-patterns-import/tree.txtnew file+12
@@ -0,0 +1,12 @@
1+(module
2+ (jibb 1:1 lib /ui/lib)
3+ (value 2:1 show
4+ (gate 2:9
5+ (face 2:12 v (ref 2:14 msg.lib))
6+ (body 3:3
7+ (branch 3:3
8+ (wing 3:6 v)
9+ (arm 4:5
10+ (cell 4:5 (lit 4:6 %noted) (bind 4:13 words))
11+ (wing 4:20 words))
12+ (arm 5:5 (lit 5:5 %add) (str 5:10 "add")))))))
tests/golden/types-union-patterns-import/types.txtnew file+2
@@ -0,0 +1,2 @@
1+partial inference; module not checked
2+++ show: $-(msg.lib @t)
tests/golden/types-union-patterns/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Patterns: "Every case needs an arm or a catch-all"; "An arm that earlier arms cover ... is an error"; "A name in a pattern always binds anew".
2+tests: Whole cases of a closed tagged union match payload binders and catch-alls; missing cases and covered arms are named, and shadowing fails. A pattern that could cover only part of a case stays unsupported. Null and loobean patterns are compared by noun value. A union-result or list-result context and a complex union subject stay unsupported rather than reporting a loobean mismatch.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-union-patterns/modules.txtnew file+1
@@ -0,0 +1 @@
1+# no module fixtures
tests/golden/types-union-patterns/source.jibbnew file+74
@@ -0,0 +1,74 @@
1++$ choice
2+ [%a value=@t]
3+ %b
4+ %c
5+++ complete |= v=choice
6+ ?- v
7+ [%a payload] payload
8+ %b "b"
9+ %c "c"
10+++ missing |= v=choice
11+ ?- v
12+ [%a payload] payload
13+ %b "b"
14+++ duplicate |= v=choice
15+ ?- v
16+ [%a payload] payload
17+ %b "b"
18+ %b "again"
19+ %c "c"
20+++ wildcard |= v=choice
21+ ?- v
22+ [%a payload] payload
23+ * "other"
24+++ covered |= v=choice
25+ ?- v
26+ * "all"
27+ %c "never"
28+++ shadow |= v=choice
29+ ?- v
30+ [%a complete] complete
31+ %b "b"
32+ %c "c"
33++$ flags
34+ [%flag enabled=?]
35+ %none
36+++ partial |= v=flags
37+ ?- v
38+ [%flag %.y] "yes"
39+ [%flag %.n] "no"
40+ %none "absent"
41+++ not-known |= v
42+ ?- v
43+ %a "a"
44+ %b "b"
45+ %c "c"
46++$ digits
47+ %$
48+ %1
49+++ as-booleans |= v=digits
50+ ?- v
51+ %.y "zero"
52+ %.n "one"
53++$ option
54+ ~
55+ %some
56+++ null-option |= v=option
57+ ?- v
58+ ~ "none"
59+ %some "some"
60++$ output
61+ %left
62+ %right
63+++ context |= v=digits
64+ ^- output ?- v
65+ %.y %left
66+ %.n %right
67+++ context-list |= v=digits
68+ ^- (list @t) ?- v
69+ %.y ~["left"]
70+ %.n ~["right"]
71+++ grouped-subject |= v=digits
72+ ?- (v)
73+ %.y "zero"
74+ %.n "one"
tests/golden/types-union-patterns/tokens.txtnew file+336
@@ -0,0 +1,336 @@
1+1:1 glyph +$
2+1:4 name choice
3+2:3 INDENT
4+2:3 glyph [
5+2:4 tight lit %a
6+2:7 name value
7+2:12 tight glyph =
8+2:13 tight aura @t
9+2:15 tight glyph ]
10+3:3 NEWLINE
11+3:3 lit %b
12+4:3 NEWLINE
13+4:3 lit %c
14+5:1 DEDENT
15+5:1 NEWLINE
16+5:1 glyph ++
17+5:4 name complete
18+5:13 glyph |=
19+5:16 name v
20+5:17 tight glyph =
21+5:18 tight name choice
22+6:3 INDENT
23+6:3 glyph ?-
24+6:6 name v
25+7:5 INDENT
26+7:5 glyph [
27+7:6 tight lit %a
28+7:9 name payload
29+7:16 tight glyph ]
30+7:18 name payload
31+8:5 NEWLINE
32+8:5 lit %b
33+8:8 str "b"
34+9:5 NEWLINE
35+9:5 lit %c
36+9:8 str "c"
37+10:1 DEDENT
38+10:1 DEDENT
39+10:1 NEWLINE
40+10:1 glyph ++
41+10:4 name missing
42+10:12 glyph |=
43+10:15 name v
44+10:16 tight glyph =
45+10:17 tight name choice
46+11:3 INDENT
47+11:3 glyph ?-
48+11:6 name v
49+12:5 INDENT
50+12:5 glyph [
51+12:6 tight lit %a
52+12:9 name payload
53+12:16 tight glyph ]
54+12:18 name payload
55+13:5 NEWLINE
56+13:5 lit %b
57+13:8 str "b"
58+14:1 DEDENT
59+14:1 DEDENT
60+14:1 NEWLINE
61+14:1 glyph ++
62+14:4 name duplicate
63+14:14 glyph |=
64+14:17 name v
65+14:18 tight glyph =
66+14:19 tight name choice
67+15:3 INDENT
68+15:3 glyph ?-
69+15:6 name v
70+16:5 INDENT
71+16:5 glyph [
72+16:6 tight lit %a
73+16:9 name payload
74+16:16 tight glyph ]
75+16:18 name payload
76+17:5 NEWLINE
77+17:5 lit %b
78+17:8 str "b"
79+18:5 NEWLINE
80+18:5 lit %b
81+18:8 str "again"
82+19:5 NEWLINE
83+19:5 lit %c
84+19:8 str "c"
85+20:1 DEDENT
86+20:1 DEDENT
87+20:1 NEWLINE
88+20:1 glyph ++
89+20:4 name wildcard
90+20:13 glyph |=
91+20:16 name v
92+20:17 tight glyph =
93+20:18 tight name choice
94+21:3 INDENT
95+21:3 glyph ?-
96+21:6 name v
97+22:5 INDENT
98+22:5 glyph [
99+22:6 tight lit %a
100+22:9 name payload
101+22:16 tight glyph ]
102+22:18 name payload
103+23:5 NEWLINE
104+23:5 glyph *
105+23:7 str "other"
106+24:1 DEDENT
107+24:1 DEDENT
108+24:1 NEWLINE
109+24:1 glyph ++
110+24:4 name covered
111+24:12 glyph |=
112+24:15 name v
113+24:16 tight glyph =
114+24:17 tight name choice
115+25:3 INDENT
116+25:3 glyph ?-
117+25:6 name v
118+26:5 INDENT
119+26:5 glyph *
120+26:7 str "all"
121+27:5 NEWLINE
122+27:5 lit %c
123+27:8 str "never"
124+28:1 DEDENT
125+28:1 DEDENT
126+28:1 NEWLINE
127+28:1 glyph ++
128+28:4 name shadow
129+28:11 glyph |=
130+28:14 name v
131+28:15 tight glyph =
132+28:16 tight name choice
133+29:3 INDENT
134+29:3 glyph ?-
135+29:6 name v
136+30:5 INDENT
137+30:5 glyph [
138+30:6 tight lit %a
139+30:9 name complete
140+30:17 tight glyph ]
141+30:19 name complete
142+31:5 NEWLINE
143+31:5 lit %b
144+31:8 str "b"
145+32:5 NEWLINE
146+32:5 lit %c
147+32:8 str "c"
148+33:1 DEDENT
149+33:1 DEDENT
150+33:1 NEWLINE
151+33:1 glyph +$
152+33:4 name flags
153+34:3 INDENT
154+34:3 glyph [
155+34:4 tight lit %flag
156+34:10 name enabled
157+34:17 tight glyph =
158+34:18 tight glyph ?
159+34:19 tight glyph ]
160+35:3 NEWLINE
161+35:3 lit %none
162+36:1 DEDENT
163+36:1 NEWLINE
164+36:1 glyph ++
165+36:4 name partial
166+36:12 glyph |=
167+36:15 name v
168+36:16 tight glyph =
169+36:17 tight name flags
170+37:3 INDENT
171+37:3 glyph ?-
172+37:6 name v
173+38:5 INDENT
174+38:5 glyph [
175+38:6 tight lit %flag
176+38:12 lit %.y
177+38:15 tight glyph ]
178+38:17 str "yes"
179+39:5 NEWLINE
180+39:5 glyph [
181+39:6 tight lit %flag
182+39:12 lit %.n
183+39:15 tight glyph ]
184+39:17 str "no"
185+40:5 NEWLINE
186+40:5 lit %none
187+40:11 str "absent"
188+41:1 DEDENT
189+41:1 DEDENT
190+41:1 NEWLINE
191+41:1 glyph ++
192+41:4 name not-known
193+41:14 glyph |=
194+41:17 name v
195+42:3 INDENT
196+42:3 glyph ?-
197+42:6 name v
198+43:5 INDENT
199+43:5 lit %a
200+43:8 str "a"
201+44:5 NEWLINE
202+44:5 lit %b
203+44:8 str "b"
204+45:5 NEWLINE
205+45:5 lit %c
206+45:8 str "c"
207+46:1 DEDENT
208+46:1 DEDENT
209+46:1 NEWLINE
210+46:1 glyph +$
211+46:4 name digits
212+47:3 INDENT
213+47:3 lit %$
214+48:3 NEWLINE
215+48:3 lit %1
216+49:1 DEDENT
217+49:1 NEWLINE
218+49:1 glyph ++
219+49:4 name as-booleans
220+49:16 glyph |=
221+49:19 name v
222+49:20 tight glyph =
223+49:21 tight name digits
224+50:3 INDENT
225+50:3 glyph ?-
226+50:6 name v
227+51:5 INDENT
228+51:5 lit %.y
229+51:9 str "zero"
230+52:5 NEWLINE
231+52:5 lit %.n
232+52:9 str "one"
233+53:1 DEDENT
234+53:1 DEDENT
235+53:1 NEWLINE
236+53:1 glyph +$
237+53:4 name option
238+54:3 INDENT
239+54:3 lit ~
240+55:3 NEWLINE
241+55:3 lit %some
242+56:1 DEDENT
243+56:1 NEWLINE
244+56:1 glyph ++
245+56:4 name null-option
246+56:16 glyph |=
247+56:19 name v
248+56:20 tight glyph =
249+56:21 tight name option
250+57:3 INDENT
251+57:3 glyph ?-
252+57:6 name v
253+58:5 INDENT
254+58:5 lit ~
255+58:7 str "none"
256+59:5 NEWLINE
257+59:5 lit %some
258+59:11 str "some"
259+60:1 DEDENT
260+60:1 DEDENT
261+60:1 NEWLINE
262+60:1 glyph +$
263+60:4 name output
264+61:3 INDENT
265+61:3 lit %left
266+62:3 NEWLINE
267+62:3 lit %right
268+63:1 DEDENT
269+63:1 NEWLINE
270+63:1 glyph ++
271+63:4 name context
272+63:12 glyph |=
273+63:15 name v
274+63:16 tight glyph =
275+63:17 tight name digits
276+64:3 INDENT
277+64:3 glyph ^-
278+64:6 name output
279+64:13 glyph ?-
280+64:16 name v
281+65:5 INDENT
282+65:5 lit %.y
283+65:9 lit %left
284+66:5 NEWLINE
285+66:5 lit %.n
286+66:9 lit %right
287+67:1 DEDENT
288+67:1 DEDENT
289+67:1 NEWLINE
290+67:1 glyph ++
291+67:4 name context-list
292+67:17 glyph |=
293+67:20 name v
294+67:21 tight glyph =
295+67:22 tight name digits
296+68:3 INDENT
297+68:3 glyph ^-
298+68:6 glyph (
299+68:7 tight name list
300+68:12 aura @t
301+68:14 tight glyph )
302+68:16 glyph ?-
303+68:19 name v
304+69:5 INDENT
305+69:5 lit %.y
306+69:9 glyph ~[
307+69:11 tight str "left"
308+69:17 tight glyph ]
309+70:5 NEWLINE
310+70:5 lit %.n
311+70:9 glyph ~[
312+70:11 tight str "right"
313+70:18 tight glyph ]
314+71:1 DEDENT
315+71:1 DEDENT
316+71:1 NEWLINE
317+71:1 glyph ++
318+71:4 name grouped-subject
319+71:20 glyph |=
320+71:23 name v
321+71:24 tight glyph =
322+71:25 tight name digits
323+72:3 INDENT
324+72:3 glyph ?-
325+72:6 glyph (
326+72:7 tight name v
327+72:8 tight glyph )
328+73:5 INDENT
329+73:5 lit %.y
330+73:9 str "zero"
331+74:5 NEWLINE
332+74:5 lit %.n
333+74:9 str "one"
334+74:14 DEDENT
335+74:14 DEDENT
336+74:14 NEWLINE
tests/golden/types-union-patterns/tree.txtnew file+152
@@ -0,0 +1,152 @@
1+(module
2+ (mold 1:1 choice
3+ (union 2:3
4+ (cell 2:3
5+ (const 2:4 %a)
6+ (face 2:7 value (aura 2:13 @t)))
7+ (const 3:3 %b)
8+ (const 4:3 %c)))
9+ (value 5:1 complete
10+ (gate 5:13
11+ (face 5:16 v (ref 5:18 choice))
12+ (body 6:3
13+ (branch 6:3
14+ (wing 6:6 v)
15+ (arm 7:5
16+ (cell 7:5 (lit 7:6 %a) (bind 7:9 payload))
17+ (wing 7:18 payload))
18+ (arm 8:5 (lit 8:5 %b) (str 8:8 "b"))
19+ (arm 9:5 (lit 9:5 %c) (str 9:8 "c"))))))
20+ (value 10:1 missing
21+ (gate 10:12
22+ (face 10:15 v (ref 10:17 choice))
23+ (body 11:3
24+ (branch 11:3
25+ (wing 11:6 v)
26+ (arm 12:5
27+ (cell 12:5 (lit 12:6 %a) (bind 12:9 payload))
28+ (wing 12:18 payload))
29+ (arm 13:5 (lit 13:5 %b) (str 13:8 "b"))))))
30+ (value 14:1 duplicate
31+ (gate 14:14
32+ (face 14:17 v (ref 14:19 choice))
33+ (body 15:3
34+ (branch 15:3
35+ (wing 15:6 v)
36+ (arm 16:5
37+ (cell 16:5 (lit 16:6 %a) (bind 16:9 payload))
38+ (wing 16:18 payload))
39+ (arm 17:5 (lit 17:5 %b) (str 17:8 "b"))
40+ (arm 18:5 (lit 18:5 %b) (str 18:8 "again"))
41+ (arm 19:5 (lit 19:5 %c) (str 19:8 "c"))))))
42+ (value 20:1 wildcard
43+ (gate 20:13
44+ (face 20:16 v (ref 20:18 choice))
45+ (body 21:3
46+ (branch 21:3
47+ (wing 21:6 v)
48+ (arm 22:5
49+ (cell 22:5 (lit 22:6 %a) (bind 22:9 payload))
50+ (wing 22:18 payload))
51+ (arm 23:5 (any 23:5) (str 23:7 "other"))))))
52+ (value 24:1 covered
53+ (gate 24:12
54+ (face 24:15 v (ref 24:17 choice))
55+ (body 25:3
56+ (branch 25:3
57+ (wing 25:6 v)
58+ (arm 26:5 (any 26:5) (str 26:7 "all"))
59+ (arm 27:5 (lit 27:5 %c) (str 27:8 "never"))))))
60+ (value 28:1 shadow
61+ (gate 28:11
62+ (face 28:14 v (ref 28:16 choice))
63+ (body 29:3
64+ (branch 29:3
65+ (wing 29:6 v)
66+ (arm 30:5
67+ (cell 30:5 (lit 30:6 %a) (bind 30:9 complete))
68+ (wing 30:19 complete))
69+ (arm 31:5 (lit 31:5 %b) (str 31:8 "b"))
70+ (arm 32:5 (lit 32:5 %c) (str 32:8 "c"))))))
71+ (mold 33:1 flags
72+ (union 34:3
73+ (cell 34:3
74+ (const 34:4 %flag)
75+ (face 34:10 enabled (flag 34:18)))
76+ (const 35:3 %none)))
77+ (value 36:1 partial
78+ (gate 36:12
79+ (face 36:15 v (ref 36:17 flags))
80+ (body 37:3
81+ (branch 37:3
82+ (wing 37:6 v)
83+ (arm 38:5
84+ (cell 38:5 (lit 38:6 %flag) (lit 38:12 %.y))
85+ (str 38:17 "yes"))
86+ (arm 39:5
87+ (cell 39:5 (lit 39:6 %flag) (lit 39:12 %.n))
88+ (str 39:17 "no"))
89+ (arm 40:5 (lit 40:5 %none) (str 40:11 "absent"))))))
90+ (value 41:1 not-known
91+ (gate 41:14
92+ (bind 41:17 v)
93+ (body 42:3
94+ (branch 42:3
95+ (wing 42:6 v)
96+ (arm 43:5 (lit 43:5 %a) (str 43:8 "a"))
97+ (arm 44:5 (lit 44:5 %b) (str 44:8 "b"))
98+ (arm 45:5 (lit 45:5 %c) (str 45:8 "c"))))))
99+ (mold 46:1 digits
100+ (union 47:3 (const 47:3 %$) (const 48:3 %1)))
101+ (value 49:1 as-booleans
102+ (gate 49:16
103+ (face 49:19 v (ref 49:21 digits))
104+ (body 50:3
105+ (branch 50:3
106+ (wing 50:6 v)
107+ (arm 51:5 (lit 51:5 %.y) (str 51:9 "zero"))
108+ (arm 52:5 (lit 52:5 %.n) (str 52:9 "one"))))))
109+ (mold 53:1 option
110+ (union 54:3 (const 54:3 ~) (const 55:3 %some)))
111+ (value 56:1 null-option
112+ (gate 56:16
113+ (face 56:19 v (ref 56:21 option))
114+ (body 57:3
115+ (branch 57:3
116+ (wing 57:6 v)
117+ (arm 58:5 (lit 58:5 ~) (str 58:7 "none"))
118+ (arm 59:5 (lit 59:5 %some) (str 59:11 "some"))))))
119+ (mold 60:1 output
120+ (union 61:3 (const 61:3 %left) (const 62:3 %right)))
121+ (value 63:1 context
122+ (gate 63:12
123+ (face 63:15 v (ref 63:17 digits))
124+ (body 64:3
125+ (cast 64:3
126+ (ref 64:6 output)
127+ (branch 64:13
128+ (wing 64:16 v)
129+ (arm 65:5 (lit 65:5 %.y) (lit 65:9 %left))
130+ (arm 66:5 (lit 66:5 %.n) (lit 66:9 %right)))))))
131+ (value 67:1 context-list
132+ (gate 67:17
133+ (face 67:20 v (ref 67:22 digits))
134+ (body 68:3
135+ (cast 68:3
136+ (apply 68:6 list (aura 68:12 @t))
137+ (branch 68:16
138+ (wing 68:19 v)
139+ (arm 69:5
140+ (lit 69:5 %.y)
141+ (list 69:9 (str 69:11 "left")))
142+ (arm 70:5
143+ (lit 70:5 %.n)
144+ (list 70:9 (str 70:11 "right"))))))))
145+ (value 71:1 grouped-subject
146+ (gate 71:20
147+ (face 71:23 v (ref 71:25 digits))
148+ (body 72:3
149+ (branch 72:3
150+ (group 72:6 (wing 72:7 v))
151+ (arm 73:5 (lit 73:5 %.y) (str 73:9 "zero"))
152+ (arm 74:5 (lit 74:5 %.n) (str 74:9 "one")))))))
tests/golden/types-union-patterns/types.txtnew file+25
@@ -0,0 +1,25 @@
1+partial inference; module not checked
2++$ choice: cases proven disjoint; mold not checked
3+++ complete: $-(choice @t)
4+++ missing: missing union case %c
5+++ duplicate: branch arm is covered by earlier arms
6+/tests/golden/types-union-patterns/source.jibb:18:5: covered arm
7+ %b "again"
8+ ^
9+++ wildcard: $-(choice @t)
10+++ covered: branch arm is covered by earlier arms
11+/tests/golden/types-union-patterns/source.jibb:27:5: covered arm
12+ %c "never"
13+ ^
14+++ shadow: pattern binder shadows a name
15++$ flags: cases proven disjoint; mold not checked
16+++ partial: partial union pattern is not supported by partial inference
17+++ not-known: branch is not supported by partial inference
18++$ digits: cases proven disjoint; mold not checked
19+++ as-booleans: $-(digits @t)
20++$ option: cases proven disjoint; mold not checked
21+++ null-option: $-(option @t)
22++$ output: cases proven disjoint; mold not checked
23+++ context: contextual union-pattern branch is not supported by partial inference
24+++ context-list: contextual union-pattern branch is not supported by partial inference
25+++ grouped-subject: union-pattern branch subject is not supported by partial inference
tests/golden/types-unit-patterns/types.txt+4−1
@@ -5,6 +5,9 @@ partial inference; module not checked
5++ shadow: pattern binder shadows a name
5++ shadow: pattern binder shadows a name
6++ unknown: unit branch subject is not supported by partial inference
6++ unknown: unit branch subject is not supported by partial inference
7++ missing: branch pattern is not supported by partial inference
7++ missing: branch pattern is not supported by partial inference
8−++ duplicate: branch is not supported by partial inference
8+++ duplicate: branch arm is covered by earlier arms
9+/tests/golden/types-unit-patterns/source.jibb:26:5: covered arm
10+ ~ !!
11+ ^
9++ pending: unit branch results need unsupported inference
12++ pending: unit branch results need unsupported inference
10++ unrelated: tag needs context in partial inference
13++ unrelated: tag needs context in partial inference
tests/lib/jibb.hoon+481−454
@@ -36,6 +36,7 @@
36/* src-5 %jibb /tests/golden/doc-grammar-04-step/source/jibb
36/* src-5 %jibb /tests/golden/doc-grammar-04-step/source/jibb
37/* tok-5 %txt /tests/golden/doc-grammar-04-step/tokens/txt
37/* tok-5 %txt /tests/golden/doc-grammar-04-step/tokens/txt
38/* tre-5 %txt /tests/golden/doc-grammar-04-step/tree/txt
38/* tre-5 %txt /tests/golden/doc-grammar-04-step/tree/txt
39+/* typ-5 %txt /tests/golden/doc-grammar-04-step/types/txt
39/* src-6 %jibb /tests/golden/doc-grammar-06-cart-store/source/jibb
40/* src-6 %jibb /tests/golden/doc-grammar-06-cart-store/source/jibb
40/* tok-6 %txt /tests/golden/doc-grammar-06-cart-store/tokens/txt
41/* tok-6 %txt /tests/golden/doc-grammar-06-cart-store/tokens/txt
41/* tre-6 %txt /tests/golden/doc-grammar-06-cart-store/tree/txt
42/* tre-6 %txt /tests/golden/doc-grammar-06-cart-store/tree/txt
@@ -1488,375 +1489,393 @@
1488/* tok-438 %txt /tests/golden/types-list-patterns/tokens/txt
1489/* tok-438 %txt /tests/golden/types-list-patterns/tokens/txt
1489/* tre-438 %txt /tests/golden/types-list-patterns/tree/txt
1490/* tre-438 %txt /tests/golden/types-list-patterns/tree/txt
1490/* typ-438 %txt /tests/golden/types-list-patterns/types/txt
1491/* typ-438 %txt /tests/golden/types-list-patterns/types/txt
1491−/* src-439 %jibb /tests/golden/types-local-capitals/source/jibb
1492+/* src-439 %jibb /tests/golden/types-list-zero-fit/source/jibb
1492−/* tok-439 %txt /tests/golden/types-local-capitals/tokens/txt
1493+/* tok-439 %txt /tests/golden/types-list-zero-fit/tokens/txt
1493−/* tre-439 %txt /tests/golden/types-local-capitals/tree/txt
1494+/* tre-439 %txt /tests/golden/types-list-zero-fit/tree/txt
1494−/* typ-439 %txt /tests/golden/types-local-capitals/types/txt
1495+/* typ-439 %txt /tests/golden/types-list-zero-fit/types/txt
1495−/* src-440 %jibb /tests/golden/types-local-recursive/source/jibb
1496+/* src-440 %jibb /tests/golden/types-local-capitals/source/jibb
1496−/* tok-440 %txt /tests/golden/types-local-recursive/tokens/txt
1497+/* tok-440 %txt /tests/golden/types-local-capitals/tokens/txt
1497−/* tre-440 %txt /tests/golden/types-local-recursive/tree/txt
1498+/* tre-440 %txt /tests/golden/types-local-capitals/tree/txt
1498−/* typ-440 %txt /tests/golden/types-local-recursive/types/txt
1499+/* typ-440 %txt /tests/golden/types-local-capitals/types/txt
1499−/* src-441 %jibb /tests/golden/types-module-fixtures/source/jibb
1500+/* src-441 %jibb /tests/golden/types-local-recursive/source/jibb
1500−/* tok-441 %txt /tests/golden/types-module-fixtures/tokens/txt
1501+/* tok-441 %txt /tests/golden/types-local-recursive/tokens/txt
1501−/* tre-441 %txt /tests/golden/types-module-fixtures/tree/txt
1502+/* tre-441 %txt /tests/golden/types-local-recursive/tree/txt
1502−/* mod-441-1 %jibb /tests/golden/types-module-fixtures/modules/ui/api/blog/jibb
1503+/* typ-441 %txt /tests/golden/types-local-recursive/types/txt
1503−/* mod-441-2 %jibb /tests/golden/types-module-fixtures/modules/ui/components/card/jibb
1504+/* src-442 %jibb /tests/golden/types-module-fixtures/source/jibb
1504−/* typ-441 %txt /tests/golden/types-module-fixtures/types/txt
1505+/* tok-442 %txt /tests/golden/types-module-fixtures/tokens/txt
1505−/* mtre-441 %txt /tests/golden/types-module-fixtures/module-trees/txt
1506+/* tre-442 %txt /tests/golden/types-module-fixtures/tree/txt
1506−/* src-442 %jibb /tests/golden/types-module-mixed/source/jibb
1507+/* mod-442-1 %jibb /tests/golden/types-module-fixtures/modules/ui/api/blog/jibb
1507−/* tok-442 %txt /tests/golden/types-module-mixed/tokens/txt
1508+/* mod-442-2 %jibb /tests/golden/types-module-fixtures/modules/ui/components/card/jibb
1508−/* tre-442 %txt /tests/golden/types-module-mixed/tree/txt
1509+/* typ-442 %txt /tests/golden/types-module-fixtures/types/txt
1509−/* mod-442-1 %jibb /tests/golden/types-module-mixed/modules/ui/helper/jibb
1510+/* mtre-442 %txt /tests/golden/types-module-fixtures/module-trees/txt
1510−/* typ-442 %txt /tests/golden/types-module-mixed/types/txt
1511+/* src-443 %jibb /tests/golden/types-module-mixed/source/jibb
1511−/* imp-442-1 %txt /tests/golden/types-module-mixed/sur/fixture/txt
1512+/* tok-443 %txt /tests/golden/types-module-mixed/tokens/txt
1512−/* mark-442-1 %txt /tests/golden/types-module-mixed/mar/label/txt
1513+/* tre-443 %txt /tests/golden/types-module-mixed/tree/txt
1513−/* mtre-442 %txt /tests/golden/types-module-mixed/module-trees/txt
1514+/* mod-443-1 %jibb /tests/golden/types-module-mixed/modules/ui/helper/jibb
1514−/* src-443 %jibb /tests/golden/types-multi-call/source/jibb
1515+/* typ-443 %txt /tests/golden/types-module-mixed/types/txt
1515−/* tok-443 %txt /tests/golden/types-multi-call/tokens/txt
1516+/* imp-443-1 %txt /tests/golden/types-module-mixed/sur/fixture/txt
1516−/* tre-443 %txt /tests/golden/types-multi-call/tree/txt
1517+/* mark-443-1 %txt /tests/golden/types-module-mixed/mar/label/txt
1517−/* typ-443 %txt /tests/golden/types-multi-call/types/txt
1518+/* mtre-443 %txt /tests/golden/types-module-mixed/module-trees/txt
1518−/* src-444 %jibb /tests/golden/types-multi-import/source/jibb
1519+/* src-444 %jibb /tests/golden/types-multi-call/source/jibb
1519−/* tok-444 %txt /tests/golden/types-multi-import/tokens/txt
1520+/* tok-444 %txt /tests/golden/types-multi-call/tokens/txt
1520−/* tre-444 %txt /tests/golden/types-multi-import/tree/txt
1521+/* tre-444 %txt /tests/golden/types-multi-call/tree/txt
1521−/* mod-444-1 %jibb /tests/golden/types-multi-import/modules/ui/lib/jibb
1522+/* typ-444 %txt /tests/golden/types-multi-call/types/txt
1522−/* typ-444 %txt /tests/golden/types-multi-import/types/txt
1523+/* src-445 %jibb /tests/golden/types-multi-import/source/jibb
1523−/* mtre-444 %txt /tests/golden/types-multi-import/module-trees/txt
1524+/* tok-445 %txt /tests/golden/types-multi-import/tokens/txt
1524−/* src-445 %jibb /tests/golden/types-null-context/source/jibb
1525+/* tre-445 %txt /tests/golden/types-multi-import/tree/txt
1525−/* tok-445 %txt /tests/golden/types-null-context/tokens/txt
1526+/* mod-445-1 %jibb /tests/golden/types-multi-import/modules/ui/lib/jibb
1526−/* tre-445 %txt /tests/golden/types-null-context/tree/txt
1527+/* typ-445 %txt /tests/golden/types-multi-import/types/txt
1527−/* typ-445 %txt /tests/golden/types-null-context/types/txt
1528+/* mtre-445 %txt /tests/golden/types-multi-import/module-trees/txt
1528−/* src-446 %jibb /tests/golden/types-null-overlap/source/jibb
1529+/* src-446 %jibb /tests/golden/types-null-context/source/jibb
1529−/* tok-446 %txt /tests/golden/types-null-overlap/tokens/txt
1530+/* tok-446 %txt /tests/golden/types-null-context/tokens/txt
1530−/* tre-446 %txt /tests/golden/types-null-overlap/tree/txt
1531+/* tre-446 %txt /tests/golden/types-null-context/tree/txt
1531−/* typ-446 %txt /tests/golden/types-null-overlap/types/txt
1532+/* typ-446 %txt /tests/golden/types-null-context/types/txt
1532−/* src-447 %jibb /tests/golden/types-null-unresolved/source/jibb
1533+/* src-447 %jibb /tests/golden/types-null-overlap/source/jibb
1533−/* tok-447 %txt /tests/golden/types-null-unresolved/tokens/txt
1534+/* tok-447 %txt /tests/golden/types-null-overlap/tokens/txt
1534−/* tre-447 %txt /tests/golden/types-null-unresolved/tree/txt
1535+/* tre-447 %txt /tests/golden/types-null-overlap/tree/txt
1535−/* typ-447 %txt /tests/golden/types-null-unresolved/types/txt
1536+/* typ-447 %txt /tests/golden/types-null-overlap/types/txt
1536−/* src-448 %jibb /tests/golden/types-partial-apply/source/jibb
1537+/* src-448 %jibb /tests/golden/types-null-unresolved/source/jibb
1537−/* tok-448 %txt /tests/golden/types-partial-apply/tokens/txt
1538+/* tok-448 %txt /tests/golden/types-null-unresolved/tokens/txt
1538−/* tre-448 %txt /tests/golden/types-partial-apply/tree/txt
1539+/* tre-448 %txt /tests/golden/types-null-unresolved/tree/txt
1539−/* typ-448 %txt /tests/golden/types-partial-apply/types/txt
1540+/* typ-448 %txt /tests/golden/types-null-unresolved/types/txt
1540−/* src-449 %jibb /tests/golden/types-partial-atom-alias/source/jibb
1541+/* src-449 %jibb /tests/golden/types-partial-apply/source/jibb
1541−/* tok-449 %txt /tests/golden/types-partial-atom-alias/tokens/txt
1542+/* tok-449 %txt /tests/golden/types-partial-apply/tokens/txt
1542−/* tre-449 %txt /tests/golden/types-partial-atom-alias/tree/txt
1543+/* tre-449 %txt /tests/golden/types-partial-apply/tree/txt
1543−/* typ-449 %txt /tests/golden/types-partial-atom-alias/types/txt
1544+/* typ-449 %txt /tests/golden/types-partial-apply/types/txt
1544−/* src-450 %jibb /tests/golden/types-partial-atom-constraint/source/jibb
1545+/* src-450 %jibb /tests/golden/types-partial-atom-alias/source/jibb
1545−/* tok-450 %txt /tests/golden/types-partial-atom-constraint/tokens/txt
1546+/* tok-450 %txt /tests/golden/types-partial-atom-alias/tokens/txt
1546−/* tre-450 %txt /tests/golden/types-partial-atom-constraint/tree/txt
1547+/* tre-450 %txt /tests/golden/types-partial-atom-alias/tree/txt
1547−/* typ-450 %txt /tests/golden/types-partial-atom-constraint/types/txt
1548+/* typ-450 %txt /tests/golden/types-partial-atom-alias/types/txt
1548−/* src-451 %jibb /tests/golden/types-partial-atom-widening/source/jibb
1549+/* src-451 %jibb /tests/golden/types-partial-atom-constraint/source/jibb
1549−/* tok-451 %txt /tests/golden/types-partial-atom-widening/tokens/txt
1550+/* tok-451 %txt /tests/golden/types-partial-atom-constraint/tokens/txt
1550−/* tre-451 %txt /tests/golden/types-partial-atom-widening/tree/txt
1551+/* tre-451 %txt /tests/golden/types-partial-atom-constraint/tree/txt
1551−/* typ-451 %txt /tests/golden/types-partial-atom-widening/types/txt
1552+/* typ-451 %txt /tests/golden/types-partial-atom-constraint/types/txt
1552−/* src-452 %jibb /tests/golden/types-partial-aura/source/jibb
1553+/* src-452 %jibb /tests/golden/types-partial-atom-widening/source/jibb
1553−/* tok-452 %txt /tests/golden/types-partial-aura/tokens/txt
1554+/* tok-452 %txt /tests/golden/types-partial-atom-widening/tokens/txt
1554−/* tre-452 %txt /tests/golden/types-partial-aura/tree/txt
1555+/* tre-452 %txt /tests/golden/types-partial-atom-widening/tree/txt
1555−/* typ-452 %txt /tests/golden/types-partial-aura/types/txt
1556+/* typ-452 %txt /tests/golden/types-partial-atom-widening/types/txt
1556−/* src-453 %jibb /tests/golden/types-partial-aura-family/source/jibb
1557+/* src-453 %jibb /tests/golden/types-partial-aura/source/jibb
1557−/* tok-453 %txt /tests/golden/types-partial-aura-family/tokens/txt
1558+/* tok-453 %txt /tests/golden/types-partial-aura/tokens/txt
1558−/* tre-453 %txt /tests/golden/types-partial-aura-family/tree/txt
1559+/* tre-453 %txt /tests/golden/types-partial-aura/tree/txt
1559−/* typ-453 %txt /tests/golden/types-partial-aura-family/types/txt
1560+/* typ-453 %txt /tests/golden/types-partial-aura/types/txt
1560−/* src-454 %jibb /tests/golden/types-partial-aura-generalization/source/jibb
1561+/* src-454 %jibb /tests/golden/types-partial-aura-family/source/jibb
1561−/* tok-454 %txt /tests/golden/types-partial-aura-generalization/tokens/txt
1562+/* tok-454 %txt /tests/golden/types-partial-aura-family/tokens/txt
1562−/* tre-454 %txt /tests/golden/types-partial-aura-generalization/tree/txt
1563+/* tre-454 %txt /tests/golden/types-partial-aura-family/tree/txt
1563−/* typ-454 %txt /tests/golden/types-partial-aura-generalization/types/txt
1564+/* typ-454 %txt /tests/golden/types-partial-aura-family/types/txt
1564−/* src-455 %jibb /tests/golden/types-partial-bare-atom/source/jibb
1565+/* src-455 %jibb /tests/golden/types-partial-aura-generalization/source/jibb
1565−/* tok-455 %txt /tests/golden/types-partial-bare-atom/tokens/txt
1566+/* tok-455 %txt /tests/golden/types-partial-aura-generalization/tokens/txt
1566−/* tre-455 %txt /tests/golden/types-partial-bare-atom/tree/txt
1567+/* tre-455 %txt /tests/golden/types-partial-aura-generalization/tree/txt
1567−/* typ-455 %txt /tests/golden/types-partial-bare-atom/types/txt
1568+/* typ-455 %txt /tests/golden/types-partial-aura-generalization/types/txt
1568−/* src-456 %jibb /tests/golden/types-partial-branch-widening/source/jibb
1569+/* src-456 %jibb /tests/golden/types-partial-bare-atom/source/jibb
1569−/* tok-456 %txt /tests/golden/types-partial-branch-widening/tokens/txt
1570+/* tok-456 %txt /tests/golden/types-partial-bare-atom/tokens/txt
1570−/* tre-456 %txt /tests/golden/types-partial-branch-widening/tree/txt
1571+/* tre-456 %txt /tests/golden/types-partial-bare-atom/tree/txt
1571−/* typ-456 %txt /tests/golden/types-partial-branch-widening/types/txt
1572+/* typ-456 %txt /tests/golden/types-partial-bare-atom/types/txt
1572−/* src-457 %jibb /tests/golden/types-partial-conflicting-sites/source/jibb
1573+/* src-457 %jibb /tests/golden/types-partial-branch-widening/source/jibb
1573−/* tok-457 %txt /tests/golden/types-partial-conflicting-sites/tokens/txt
1574+/* tok-457 %txt /tests/golden/types-partial-branch-widening/tokens/txt
1574−/* tre-457 %txt /tests/golden/types-partial-conflicting-sites/tree/txt
1575+/* tre-457 %txt /tests/golden/types-partial-branch-widening/tree/txt
1575−/* typ-457 %txt /tests/golden/types-partial-conflicting-sites/types/txt
1576+/* typ-457 %txt /tests/golden/types-partial-branch-widening/types/txt
1576−/* src-458 %jibb /tests/golden/types-partial-decimal-default/source/jibb
1577+/* src-458 %jibb /tests/golden/types-partial-conflicting-sites/source/jibb
1577−/* tok-458 %txt /tests/golden/types-partial-decimal-default/tokens/txt
1578+/* tok-458 %txt /tests/golden/types-partial-conflicting-sites/tokens/txt
1578−/* tre-458 %txt /tests/golden/types-partial-decimal-default/tree/txt
1579+/* tre-458 %txt /tests/golden/types-partial-conflicting-sites/tree/txt
1579−/* typ-458 %txt /tests/golden/types-partial-decimal-default/types/txt
1580+/* typ-458 %txt /tests/golden/types-partial-conflicting-sites/types/txt
1580−/* src-459 %jibb /tests/golden/types-partial-dependency-chain/source/jibb
1581+/* src-459 %jibb /tests/golden/types-partial-decimal-default/source/jibb
1581−/* tok-459 %txt /tests/golden/types-partial-dependency-chain/tokens/txt
1582+/* tok-459 %txt /tests/golden/types-partial-decimal-default/tokens/txt
1582−/* tre-459 %txt /tests/golden/types-partial-dependency-chain/tree/txt
1583+/* tre-459 %txt /tests/golden/types-partial-decimal-default/tree/txt
1583−/* typ-459 %txt /tests/golden/types-partial-dependency-chain/types/txt
1584+/* typ-459 %txt /tests/golden/types-partial-decimal-default/types/txt
1584−/* src-460 %jibb /tests/golden/types-partial-explicit-capital/source/jibb
1585+/* src-460 %jibb /tests/golden/types-partial-dependency-chain/source/jibb
1585−/* tok-460 %txt /tests/golden/types-partial-explicit-capital/tokens/txt
1586+/* tok-460 %txt /tests/golden/types-partial-dependency-chain/tokens/txt
1586−/* tre-460 %txt /tests/golden/types-partial-explicit-capital/tree/txt
1587+/* tre-460 %txt /tests/golden/types-partial-dependency-chain/tree/txt
1587−/* typ-460 %txt /tests/golden/types-partial-explicit-capital/types/txt
1588+/* typ-460 %txt /tests/golden/types-partial-dependency-chain/types/txt
1588−/* src-461 %jibb /tests/golden/types-partial-forward/source/jibb
1589+/* src-461 %jibb /tests/golden/types-partial-explicit-capital/source/jibb
1589−/* tok-461 %txt /tests/golden/types-partial-forward/tokens/txt
1590+/* tok-461 %txt /tests/golden/types-partial-explicit-capital/tokens/txt
1590−/* tre-461 %txt /tests/golden/types-partial-forward/tree/txt
1591+/* tre-461 %txt /tests/golden/types-partial-explicit-capital/tree/txt
1591−/* typ-461 %txt /tests/golden/types-partial-forward/types/txt
1592+/* typ-461 %txt /tests/golden/types-partial-explicit-capital/types/txt
1592−/* src-462 %jibb /tests/golden/types-partial-generalization/source/jibb
1593+/* src-462 %jibb /tests/golden/types-partial-forward/source/jibb
1593−/* tok-462 %txt /tests/golden/types-partial-generalization/tokens/txt
1594+/* tok-462 %txt /tests/golden/types-partial-forward/tokens/txt
1594−/* tre-462 %txt /tests/golden/types-partial-generalization/tree/txt
1595+/* tre-462 %txt /tests/golden/types-partial-forward/tree/txt
1595−/* typ-462 %txt /tests/golden/types-partial-generalization/types/txt
1596+/* typ-462 %txt /tests/golden/types-partial-forward/types/txt
1596−/* src-463 %jibb /tests/golden/types-partial-identity/source/jibb
1597+/* src-463 %jibb /tests/golden/types-partial-generalization/source/jibb
1597−/* tok-463 %txt /tests/golden/types-partial-identity/tokens/txt
1598+/* tok-463 %txt /tests/golden/types-partial-generalization/tokens/txt
1598−/* tre-463 %txt /tests/golden/types-partial-identity/tree/txt
1599+/* tre-463 %txt /tests/golden/types-partial-generalization/tree/txt
1599−/* typ-463 %txt /tests/golden/types-partial-identity/types/txt
1600+/* typ-463 %txt /tests/golden/types-partial-generalization/types/txt
1600−/* src-464 %jibb /tests/golden/types-partial-independent-atoms/source/jibb
1601+/* src-464 %jibb /tests/golden/types-partial-identity/source/jibb
1601−/* tok-464 %txt /tests/golden/types-partial-independent-atoms/tokens/txt
1602+/* tok-464 %txt /tests/golden/types-partial-identity/tokens/txt
1602−/* tre-464 %txt /tests/golden/types-partial-independent-atoms/tree/txt
1603+/* tre-464 %txt /tests/golden/types-partial-identity/tree/txt
1603−/* typ-464 %txt /tests/golden/types-partial-independent-atoms/types/txt
1604+/* typ-464 %txt /tests/golden/types-partial-identity/types/txt
1604−/* src-465 %jibb /tests/golden/types-partial-local-molds/source/jibb
1605+/* src-465 %jibb /tests/golden/types-partial-independent-atoms/source/jibb
1605−/* tok-465 %txt /tests/golden/types-partial-local-molds/tokens/txt
1606+/* tok-465 %txt /tests/golden/types-partial-independent-atoms/tokens/txt
1606−/* tre-465 %txt /tests/golden/types-partial-local-molds/tree/txt
1607+/* tre-465 %txt /tests/golden/types-partial-independent-atoms/tree/txt
1607−/* typ-465 %txt /tests/golden/types-partial-local-molds/types/txt
1608+/* typ-465 %txt /tests/golden/types-partial-independent-atoms/types/txt
1608−/* src-466 %jibb /tests/golden/types-partial-locals/source/jibb
1609+/* src-466 %jibb /tests/golden/types-partial-local-molds/source/jibb
1609−/* tok-466 %txt /tests/golden/types-partial-locals/tokens/txt
1610+/* tok-466 %txt /tests/golden/types-partial-local-molds/tokens/txt
1610−/* tre-466 %txt /tests/golden/types-partial-locals/tree/txt
1611+/* tre-466 %txt /tests/golden/types-partial-local-molds/tree/txt
1611−/* typ-466 %txt /tests/golden/types-partial-locals/types/txt
1612+/* typ-466 %txt /tests/golden/types-partial-local-molds/types/txt
1612−/* src-467 %jibb /tests/golden/types-partial-many-atom-constraints/source/jibb
1613+/* src-467 %jibb /tests/golden/types-partial-locals/source/jibb
1613−/* tok-467 %txt /tests/golden/types-partial-many-atom-constraints/tokens/txt
1614+/* tok-467 %txt /tests/golden/types-partial-locals/tokens/txt
1614−/* tre-467 %txt /tests/golden/types-partial-many-atom-constraints/tree/txt
1615+/* tre-467 %txt /tests/golden/types-partial-locals/tree/txt
1615−/* typ-467 %txt /tests/golden/types-partial-many-atom-constraints/types/txt
1616+/* typ-467 %txt /tests/golden/types-partial-locals/types/txt
1616−/* src-468 %jibb /tests/golden/types-partial-mold-bare-aura/source/jibb
1617+/* src-468 %jibb /tests/golden/types-partial-many-atom-constraints/source/jibb
1617−/* tok-468 %txt /tests/golden/types-partial-mold-bare-aura/tokens/txt
1618+/* tok-468 %txt /tests/golden/types-partial-many-atom-constraints/tokens/txt
1618−/* tre-468 %txt /tests/golden/types-partial-mold-bare-aura/tree/txt
1619+/* tre-468 %txt /tests/golden/types-partial-many-atom-constraints/tree/txt
1619−/* typ-468 %txt /tests/golden/types-partial-mold-bare-aura/types/txt
1620+/* typ-468 %txt /tests/golden/types-partial-many-atom-constraints/types/txt
1620−/* src-469 %jibb /tests/golden/types-partial-mold-composite/source/jibb
1621+/* src-469 %jibb /tests/golden/types-partial-mold-bare-aura/source/jibb
1621−/* tok-469 %txt /tests/golden/types-partial-mold-composite/tokens/txt
1622+/* tok-469 %txt /tests/golden/types-partial-mold-bare-aura/tokens/txt
1622−/* tre-469 %txt /tests/golden/types-partial-mold-composite/tree/txt
1623+/* tre-469 %txt /tests/golden/types-partial-mold-bare-aura/tree/txt
1623−/* typ-469 %txt /tests/golden/types-partial-mold-composite/types/txt
1624+/* typ-469 %txt /tests/golden/types-partial-mold-bare-aura/types/txt
1624−/* src-470 %jibb /tests/golden/types-partial-mold-forward/source/jibb
1625+/* src-470 %jibb /tests/golden/types-partial-mold-composite/source/jibb
1625−/* tok-470 %txt /tests/golden/types-partial-mold-forward/tokens/txt
1626+/* tok-470 %txt /tests/golden/types-partial-mold-composite/tokens/txt
1626−/* tre-470 %txt /tests/golden/types-partial-mold-forward/tree/txt
1627+/* tre-470 %txt /tests/golden/types-partial-mold-composite/tree/txt
1627−/* typ-470 %txt /tests/golden/types-partial-mold-forward/types/txt
1628+/* typ-470 %txt /tests/golden/types-partial-mold-composite/types/txt
1628−/* src-471 %jibb /tests/golden/types-partial-mold-recursive/source/jibb
1629+/* src-471 %jibb /tests/golden/types-partial-mold-forward/source/jibb
1629−/* tok-471 %txt /tests/golden/types-partial-mold-recursive/tokens/txt
1630+/* tok-471 %txt /tests/golden/types-partial-mold-forward/tokens/txt
1630−/* tre-471 %txt /tests/golden/types-partial-mold-recursive/tree/txt
1631+/* tre-471 %txt /tests/golden/types-partial-mold-forward/tree/txt
1631−/* typ-471 %txt /tests/golden/types-partial-mold-recursive/types/txt
1632+/* typ-471 %txt /tests/golden/types-partial-mold-forward/types/txt
1632−/* src-472 %jibb /tests/golden/types-partial-occurs/source/jibb
1633+/* src-472 %jibb /tests/golden/types-partial-mold-recursive/source/jibb
1633−/* tok-472 %txt /tests/golden/types-partial-occurs/tokens/txt
1634+/* tok-472 %txt /tests/golden/types-partial-mold-recursive/tokens/txt
1634−/* tre-472 %txt /tests/golden/types-partial-occurs/tree/txt
1635+/* tre-472 %txt /tests/golden/types-partial-mold-recursive/tree/txt
1635−/* typ-472 %txt /tests/golden/types-partial-occurs/types/txt
1636+/* typ-472 %txt /tests/golden/types-partial-mold-recursive/types/txt
1636−/* src-473 %jibb /tests/golden/types-partial-projection/source/jibb
1637+/* src-473 %jibb /tests/golden/types-partial-occurs/source/jibb
1637−/* tok-473 %txt /tests/golden/types-partial-projection/tokens/txt
1638+/* tok-473 %txt /tests/golden/types-partial-occurs/tokens/txt
1638−/* tre-473 %txt /tests/golden/types-partial-projection/tree/txt
1639+/* tre-473 %txt /tests/golden/types-partial-occurs/tree/txt
1639−/* typ-473 %txt /tests/golden/types-partial-projection/types/txt
1640+/* typ-473 %txt /tests/golden/types-partial-occurs/types/txt
1640−/* src-474 %jibb /tests/golden/types-partial-shadow-global/source/jibb
1641+/* src-474 %jibb /tests/golden/types-partial-projection/source/jibb
1641−/* tok-474 %txt /tests/golden/types-partial-shadow-global/tokens/txt
1642+/* tok-474 %txt /tests/golden/types-partial-projection/tokens/txt
1642−/* tre-474 %txt /tests/golden/types-partial-shadow-global/tree/txt
1643+/* tre-474 %txt /tests/golden/types-partial-projection/tree/txt
1643−/* typ-474 %txt /tests/golden/types-partial-shadow-global/types/txt
1644+/* typ-474 %txt /tests/golden/types-partial-projection/types/txt
1644−/* src-475 %jibb /tests/golden/types-partial-shared-tvar/source/jibb
1645+/* src-475 %jibb /tests/golden/types-partial-shadow-global/source/jibb
1645−/* tok-475 %txt /tests/golden/types-partial-shared-tvar/tokens/txt
1646+/* tok-475 %txt /tests/golden/types-partial-shadow-global/tokens/txt
1646−/* tre-475 %txt /tests/golden/types-partial-shared-tvar/tree/txt
1647+/* tre-475 %txt /tests/golden/types-partial-shadow-global/tree/txt
1647−/* typ-475 %txt /tests/golden/types-partial-shared-tvar/types/txt
1648+/* typ-475 %txt /tests/golden/types-partial-shadow-global/types/txt
1648−/* src-476 %jibb /tests/golden/types-partial-union-cases/source/jibb
1649+/* src-476 %jibb /tests/golden/types-partial-shared-tvar/source/jibb
1649−/* tok-476 %txt /tests/golden/types-partial-union-cases/tokens/txt
1650+/* tok-476 %txt /tests/golden/types-partial-shared-tvar/tokens/txt
1650−/* tre-476 %txt /tests/golden/types-partial-union-cases/tree/txt
1651+/* tre-476 %txt /tests/golden/types-partial-shared-tvar/tree/txt
1651−/* typ-476 %txt /tests/golden/types-partial-union-cases/types/txt
1652+/* typ-476 %txt /tests/golden/types-partial-shared-tvar/types/txt
1652−/* src-477 %jibb /tests/golden/types-partial-union-edges/source/jibb
1653+/* src-477 %jibb /tests/golden/types-partial-union-cases/source/jibb
1653−/* tok-477 %txt /tests/golden/types-partial-union-edges/tokens/txt
1654+/* tok-477 %txt /tests/golden/types-partial-union-cases/tokens/txt
1654−/* tre-477 %txt /tests/golden/types-partial-union-edges/tree/txt
1655+/* tre-477 %txt /tests/golden/types-partial-union-cases/tree/txt
1655−/* typ-477 %txt /tests/golden/types-partial-union-edges/types/txt
1656+/* typ-477 %txt /tests/golden/types-partial-union-cases/types/txt
1656−/* src-478 %jibb /tests/golden/types-partial-unresolved-tag/source/jibb
1657+/* src-478 %jibb /tests/golden/types-partial-union-edges/source/jibb
1657−/* tok-478 %txt /tests/golden/types-partial-unresolved-tag/tokens/txt
1658+/* tok-478 %txt /tests/golden/types-partial-union-edges/tokens/txt
1658−/* tre-478 %txt /tests/golden/types-partial-unresolved-tag/tree/txt
1659+/* tre-478 %txt /tests/golden/types-partial-union-edges/tree/txt
1659−/* typ-478 %txt /tests/golden/types-partial-unresolved-tag/types/txt
1660+/* typ-478 %txt /tests/golden/types-partial-union-edges/types/txt
1660−/* src-479 %jibb /tests/golden/types-prelude-direct/source/jibb
1661+/* src-479 %jibb /tests/golden/types-partial-unresolved-tag/source/jibb
1661−/* tok-479 %txt /tests/golden/types-prelude-direct/tokens/txt
1662+/* tok-479 %txt /tests/golden/types-partial-unresolved-tag/tokens/txt
1662−/* tre-479 %txt /tests/golden/types-prelude-direct/tree/txt
1663+/* tre-479 %txt /tests/golden/types-partial-unresolved-tag/tree/txt
1663−/* typ-479 %txt /tests/golden/types-prelude-direct/types/txt
1664+/* typ-479 %txt /tests/golden/types-partial-unresolved-tag/types/txt
1664−/* src-480 %jibb /tests/golden/types-prelude-interface/source/jibb
1665+/* src-480 %jibb /tests/golden/types-prelude-direct/source/jibb
1665−/* tok-480 %txt /tests/golden/types-prelude-interface/tokens/txt
1666+/* tok-480 %txt /tests/golden/types-prelude-direct/tokens/txt
1666−/* tre-480 %txt /tests/golden/types-prelude-interface/tree/txt
1667+/* tre-480 %txt /tests/golden/types-prelude-direct/tree/txt
1667−/* mod-480-1 %jibb /tests/golden/types-prelude-interface/modules/ui/left/jibb
1668+/* typ-480 %txt /tests/golden/types-prelude-direct/types/txt
1668−/* mod-480-2 %jibb /tests/golden/types-prelude-interface/modules/ui/right/jibb
1669+/* src-481 %jibb /tests/golden/types-prelude-interface/source/jibb
1669−/* typ-480 %txt /tests/golden/types-prelude-interface/types/txt
1670+/* tok-481 %txt /tests/golden/types-prelude-interface/tokens/txt
1670−/* mtre-480 %txt /tests/golden/types-prelude-interface/module-trees/txt
1671+/* tre-481 %txt /tests/golden/types-prelude-interface/tree/txt
1671−/* src-481 %jibb /tests/golden/types-prelude-list-functions/source/jibb
1672+/* mod-481-1 %jibb /tests/golden/types-prelude-interface/modules/ui/left/jibb
1672−/* tok-481 %txt /tests/golden/types-prelude-list-functions/tokens/txt
1673+/* mod-481-2 %jibb /tests/golden/types-prelude-interface/modules/ui/right/jibb
1673−/* tre-481 %txt /tests/golden/types-prelude-list-functions/tree/txt
1674+/* typ-481 %txt /tests/golden/types-prelude-interface/types/txt
1674−/* mod-481-1 %jibb /tests/golden/types-prelude-list-functions/modules/ui/lib/jibb
1675+/* mtre-481 %txt /tests/golden/types-prelude-interface/module-trees/txt
1675−/* typ-481 %txt /tests/golden/types-prelude-list-functions/types/txt
1676+/* src-482 %jibb /tests/golden/types-prelude-list-functions/source/jibb
1676−/* mtre-481 %txt /tests/golden/types-prelude-list-functions/module-trees/txt
1677+/* tok-482 %txt /tests/golden/types-prelude-list-functions/tokens/txt
1677−/* src-482 %jibb /tests/golden/types-record-bound-variable/source/jibb
1678+/* tre-482 %txt /tests/golden/types-prelude-list-functions/tree/txt
1678−/* tok-482 %txt /tests/golden/types-record-bound-variable/tokens/txt
1679+/* mod-482-1 %jibb /tests/golden/types-prelude-list-functions/modules/ui/lib/jibb
1679−/* tre-482 %txt /tests/golden/types-record-bound-variable/tree/txt
1680+/* typ-482 %txt /tests/golden/types-prelude-list-functions/types/txt
1680−/* typ-482 %txt /tests/golden/types-record-bound-variable/types/txt
1681+/* mtre-482 %txt /tests/golden/types-prelude-list-functions/module-trees/txt
1681−/* src-483 %jibb /tests/golden/types-record-faces/source/jibb
1682+/* src-483 %jibb /tests/golden/types-record-bound-variable/source/jibb
1682−/* tok-483 %txt /tests/golden/types-record-faces/tokens/txt
1683+/* tok-483 %txt /tests/golden/types-record-bound-variable/tokens/txt
1683−/* tre-483 %txt /tests/golden/types-record-faces/tree/txt
1684+/* tre-483 %txt /tests/golden/types-record-bound-variable/tree/txt
1684−/* typ-483 %txt /tests/golden/types-record-faces/types/txt
1685+/* typ-483 %txt /tests/golden/types-record-bound-variable/types/txt
1685−/* src-484 %jibb /tests/golden/types-record-import/source/jibb
1686+/* src-484 %jibb /tests/golden/types-record-faces/source/jibb
1686−/* tok-484 %txt /tests/golden/types-record-import/tokens/txt
1687+/* tok-484 %txt /tests/golden/types-record-faces/tokens/txt
1687−/* tre-484 %txt /tests/golden/types-record-import/tree/txt
1688+/* tre-484 %txt /tests/golden/types-record-faces/tree/txt
1688−/* mod-484-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
1689+/* typ-484 %txt /tests/golden/types-record-faces/types/txt
1689−/* typ-484 %txt /tests/golden/types-record-import/types/txt
1690+/* src-485 %jibb /tests/golden/types-record-import/source/jibb
1690−/* mtre-484 %txt /tests/golden/types-record-import/module-trees/txt
1691+/* tok-485 %txt /tests/golden/types-record-import/tokens/txt
1691−/* src-485 %jibb /tests/golden/types-record-local-scheme/source/jibb
1692+/* tre-485 %txt /tests/golden/types-record-import/tree/txt
1692−/* tok-485 %txt /tests/golden/types-record-local-scheme/tokens/txt
1693+/* mod-485-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
1693−/* tre-485 %txt /tests/golden/types-record-local-scheme/tree/txt
1694+/* typ-485 %txt /tests/golden/types-record-import/types/txt
1694−/* typ-485 %txt /tests/golden/types-record-local-scheme/types/txt
1695+/* mtre-485 %txt /tests/golden/types-record-import/module-trees/txt
1695−/* src-486 %jibb /tests/golden/types-record-nested/source/jibb
1696+/* src-486 %jibb /tests/golden/types-record-local-scheme/source/jibb
1696−/* tok-486 %txt /tests/golden/types-record-nested/tokens/txt
1697+/* tok-486 %txt /tests/golden/types-record-local-scheme/tokens/txt
1697−/* tre-486 %txt /tests/golden/types-record-nested/tree/txt
1698+/* tre-486 %txt /tests/golden/types-record-local-scheme/tree/txt
1698−/* typ-486 %txt /tests/golden/types-record-nested/types/txt
1699+/* typ-486 %txt /tests/golden/types-record-local-scheme/types/txt
1699−/* src-487 %jibb /tests/golden/types-record-to-tuple/source/jibb
1700+/* src-487 %jibb /tests/golden/types-record-nested/source/jibb
1700−/* tok-487 %txt /tests/golden/types-record-to-tuple/tokens/txt
1701+/* tok-487 %txt /tests/golden/types-record-nested/tokens/txt
1701−/* tre-487 %txt /tests/golden/types-record-to-tuple/tree/txt
1702+/* tre-487 %txt /tests/golden/types-record-nested/tree/txt
1702−/* typ-487 %txt /tests/golden/types-record-to-tuple/types/txt
1703+/* typ-487 %txt /tests/golden/types-record-nested/types/txt
1703−/* src-488 %jibb /tests/golden/types-recursion-scc-failures/source/jibb
1704+/* src-488 %jibb /tests/golden/types-record-to-tuple/source/jibb
1704−/* tok-488 %txt /tests/golden/types-recursion-scc-failures/tokens/txt
1705+/* tok-488 %txt /tests/golden/types-record-to-tuple/tokens/txt
1705−/* tre-488 %txt /tests/golden/types-recursion-scc-failures/tree/txt
1706+/* tre-488 %txt /tests/golden/types-record-to-tuple/tree/txt
1706−/* typ-488 %txt /tests/golden/types-recursion-scc-failures/types/txt
1707+/* typ-488 %txt /tests/golden/types-record-to-tuple/types/txt
1707−/* src-489 %jibb /tests/golden/types-recursion-scc-groups/source/jibb
1708+/* src-489 %jibb /tests/golden/types-recursion-scc-failures/source/jibb
1708−/* tok-489 %txt /tests/golden/types-recursion-scc-groups/tokens/txt
1709+/* tok-489 %txt /tests/golden/types-recursion-scc-failures/tokens/txt
1709−/* tre-489 %txt /tests/golden/types-recursion-scc-groups/tree/txt
1710+/* tre-489 %txt /tests/golden/types-recursion-scc-failures/tree/txt
1710−/* typ-489 %txt /tests/golden/types-recursion-scc-groups/types/txt
1711+/* typ-489 %txt /tests/golden/types-recursion-scc-failures/types/txt
1711−/* src-490 %jibb /tests/golden/types-recursion-scc-import/source/jibb
1712+/* src-490 %jibb /tests/golden/types-recursion-scc-groups/source/jibb
1712−/* tok-490 %txt /tests/golden/types-recursion-scc-import/tokens/txt
1713+/* tok-490 %txt /tests/golden/types-recursion-scc-groups/tokens/txt
1713−/* tre-490 %txt /tests/golden/types-recursion-scc-import/tree/txt
1714+/* tre-490 %txt /tests/golden/types-recursion-scc-groups/tree/txt
1714−/* mod-490-1 %jibb /tests/golden/types-recursion-scc-import/modules/ui/lib/jibb
1715+/* typ-490 %txt /tests/golden/types-recursion-scc-groups/types/txt
1715−/* typ-490 %txt /tests/golden/types-recursion-scc-import/types/txt
1716+/* src-491 %jibb /tests/golden/types-recursion-scc-import/source/jibb
1716−/* mtre-490 %txt /tests/golden/types-recursion-scc-import/module-trees/txt
1717+/* tok-491 %txt /tests/golden/types-recursion-scc-import/tokens/txt
1717−/* src-491 %jibb /tests/golden/types-recursion-scc-import-bad/source/jibb
1718+/* tre-491 %txt /tests/golden/types-recursion-scc-import/tree/txt
1718−/* tok-491 %txt /tests/golden/types-recursion-scc-import-bad/tokens/txt
1719+/* mod-491-1 %jibb /tests/golden/types-recursion-scc-import/modules/ui/lib/jibb
1719−/* tre-491 %txt /tests/golden/types-recursion-scc-import-bad/tree/txt
1720+/* typ-491 %txt /tests/golden/types-recursion-scc-import/types/txt
1720−/* mod-491-1 %jibb /tests/golden/types-recursion-scc-import-bad/modules/ui/lib/jibb
1721+/* mtre-491 %txt /tests/golden/types-recursion-scc-import/module-trees/txt
1721−/* typ-491 %txt /tests/golden/types-recursion-scc-import-bad/types/txt
1722+/* src-492 %jibb /tests/golden/types-recursion-scc-import-bad/source/jibb
1722−/* mtre-491 %txt /tests/golden/types-recursion-scc-import-bad/module-trees/txt
1723+/* tok-492 %txt /tests/golden/types-recursion-scc-import-bad/tokens/txt
1723−/* src-492 %jibb /tests/golden/types-recursion-scc-local/source/jibb
1724+/* tre-492 %txt /tests/golden/types-recursion-scc-import-bad/tree/txt
1724−/* tok-492 %txt /tests/golden/types-recursion-scc-local/tokens/txt
1725+/* mod-492-1 %jibb /tests/golden/types-recursion-scc-import-bad/modules/ui/lib/jibb
1725−/* tre-492 %txt /tests/golden/types-recursion-scc-local/tree/txt
1726+/* typ-492 %txt /tests/golden/types-recursion-scc-import-bad/types/txt
1726−/* typ-492 %txt /tests/golden/types-recursion-scc-local/types/txt
1727+/* mtre-492 %txt /tests/golden/types-recursion-scc-import-bad/module-trees/txt
1727−/* src-493 %jibb /tests/golden/types-recursion-scc-order/source/jibb
1728+/* src-493 %jibb /tests/golden/types-recursion-scc-local/source/jibb
1728−/* tok-493 %txt /tests/golden/types-recursion-scc-order/tokens/txt
1729+/* tok-493 %txt /tests/golden/types-recursion-scc-local/tokens/txt
1729−/* tre-493 %txt /tests/golden/types-recursion-scc-order/tree/txt
1730+/* tre-493 %txt /tests/golden/types-recursion-scc-local/tree/txt
1730−/* typ-493 %txt /tests/golden/types-recursion-scc-order/types/txt
1731+/* typ-493 %txt /tests/golden/types-recursion-scc-local/types/txt
1731−/* src-494 %jibb /tests/golden/types-recursion-scc-shadow/source/jibb
1732+/* src-494 %jibb /tests/golden/types-recursion-scc-order/source/jibb
1732−/* tok-494 %txt /tests/golden/types-recursion-scc-shadow/tokens/txt
1733+/* tok-494 %txt /tests/golden/types-recursion-scc-order/tokens/txt
1733−/* tre-494 %txt /tests/golden/types-recursion-scc-shadow/tree/txt
1734+/* tre-494 %txt /tests/golden/types-recursion-scc-order/tree/txt
1734−/* typ-494 %txt /tests/golden/types-recursion-scc-shadow/types/txt
1735+/* typ-494 %txt /tests/golden/types-recursion-scc-order/types/txt
1735−/* src-495 %jibb /tests/golden/types-recursive-branch/source/jibb
1736+/* src-495 %jibb /tests/golden/types-recursion-scc-shadow/source/jibb
1736−/* tok-495 %txt /tests/golden/types-recursive-branch/tokens/txt
1737+/* tok-495 %txt /tests/golden/types-recursion-scc-shadow/tokens/txt
1737−/* tre-495 %txt /tests/golden/types-recursive-branch/tree/txt
1738+/* tre-495 %txt /tests/golden/types-recursion-scc-shadow/tree/txt
1738−/* typ-495 %txt /tests/golden/types-recursive-branch/types/txt
1739+/* typ-495 %txt /tests/golden/types-recursion-scc-shadow/types/txt
1739−/* src-496 %jibb /tests/golden/types-recursive-gate/source/jibb
1740+/* src-496 %jibb /tests/golden/types-recursive-branch/source/jibb
1740−/* tok-496 %txt /tests/golden/types-recursive-gate/tokens/txt
1741+/* tok-496 %txt /tests/golden/types-recursive-branch/tokens/txt
1741−/* tre-496 %txt /tests/golden/types-recursive-gate/tree/txt
1742+/* tre-496 %txt /tests/golden/types-recursive-branch/tree/txt
1742−/* typ-496 %txt /tests/golden/types-recursive-gate/types/txt
1743+/* typ-496 %txt /tests/golden/types-recursive-branch/types/txt
1743−/* src-497 %jibb /tests/golden/types-recursive-sample/source/jibb
1744+/* src-497 %jibb /tests/golden/types-recursive-gate/source/jibb
1744−/* tok-497 %txt /tests/golden/types-recursive-sample/tokens/txt
1745+/* tok-497 %txt /tests/golden/types-recursive-gate/tokens/txt
1745−/* tre-497 %txt /tests/golden/types-recursive-sample/tree/txt
1746+/* tre-497 %txt /tests/golden/types-recursive-gate/tree/txt
1746−/* typ-497 %txt /tests/golden/types-recursive-sample/types/txt
1747+/* typ-497 %txt /tests/golden/types-recursive-gate/types/txt
1747−/* src-498 %jibb /tests/golden/types-string-interpolation/source/jibb
1748+/* src-498 %jibb /tests/golden/types-recursive-sample/source/jibb
1748−/* tok-498 %txt /tests/golden/types-string-interpolation/tokens/txt
1749+/* tok-498 %txt /tests/golden/types-recursive-sample/tokens/txt
1749−/* tre-498 %txt /tests/golden/types-string-interpolation/tree/txt
1750+/* tre-498 %txt /tests/golden/types-recursive-sample/tree/txt
1750−/* typ-498 %txt /tests/golden/types-string-interpolation/types/txt
1751+/* typ-498 %txt /tests/golden/types-recursive-sample/types/txt
1751−/* src-499 %jibb /tests/golden/types-union-alias/source/jibb
1752+/* src-499 %jibb /tests/golden/types-string-interpolation/source/jibb
1752−/* tok-499 %txt /tests/golden/types-union-alias/tokens/txt
1753+/* tok-499 %txt /tests/golden/types-string-interpolation/tokens/txt
1753−/* tre-499 %txt /tests/golden/types-union-alias/tree/txt
1754+/* tre-499 %txt /tests/golden/types-string-interpolation/tree/txt
1754−/* typ-499 %txt /tests/golden/types-union-alias/types/txt
1755+/* typ-499 %txt /tests/golden/types-string-interpolation/types/txt
1755−/* src-500 %jibb /tests/golden/types-union-branch-context/source/jibb
1756+/* src-500 %jibb /tests/golden/types-union-alias/source/jibb
1756−/* tok-500 %txt /tests/golden/types-union-branch-context/tokens/txt
1757+/* tok-500 %txt /tests/golden/types-union-alias/tokens/txt
1757−/* tre-500 %txt /tests/golden/types-union-branch-context/tree/txt
1758+/* tre-500 %txt /tests/golden/types-union-alias/tree/txt
1758−/* typ-500 %txt /tests/golden/types-union-branch-context/types/txt
1759+/* typ-500 %txt /tests/golden/types-union-alias/types/txt
1759−/* src-501 %jibb /tests/golden/types-union-branch-pending/source/jibb
1760+/* src-501 %jibb /tests/golden/types-union-branch-context/source/jibb
1760−/* tok-501 %txt /tests/golden/types-union-branch-pending/tokens/txt
1761+/* tok-501 %txt /tests/golden/types-union-branch-context/tokens/txt
1761−/* tre-501 %txt /tests/golden/types-union-branch-pending/tree/txt
1762+/* tre-501 %txt /tests/golden/types-union-branch-context/tree/txt
1762−/* typ-501 %txt /tests/golden/types-union-branch-pending/types/txt
1763+/* typ-501 %txt /tests/golden/types-union-branch-context/types/txt
1763−/* src-502 %jibb /tests/golden/types-union-constructor-shape/source/jibb
1764+/* src-502 %jibb /tests/golden/types-union-branch-pending/source/jibb
1764−/* tok-502 %txt /tests/golden/types-union-constructor-shape/tokens/txt
1765+/* tok-502 %txt /tests/golden/types-union-branch-pending/tokens/txt
1765−/* tre-502 %txt /tests/golden/types-union-constructor-shape/tree/txt
1766+/* tre-502 %txt /tests/golden/types-union-branch-pending/tree/txt
1766−/* typ-502 %txt /tests/golden/types-union-constructor-shape/types/txt
1767+/* typ-502 %txt /tests/golden/types-union-branch-pending/types/txt
1767−/* src-503 %jibb /tests/golden/types-union-context-flow/source/jibb
1768+/* src-503 %jibb /tests/golden/types-union-constructor-shape/source/jibb
1768−/* tok-503 %txt /tests/golden/types-union-context-flow/tokens/txt
1769+/* tok-503 %txt /tests/golden/types-union-constructor-shape/tokens/txt
1769−/* tre-503 %txt /tests/golden/types-union-context-flow/tree/txt
1770+/* tre-503 %txt /tests/golden/types-union-constructor-shape/tree/txt
1770−/* typ-503 %txt /tests/golden/types-union-context-flow/types/txt
1771+/* typ-503 %txt /tests/golden/types-union-constructor-shape/types/txt
1771−/* src-504 %jibb /tests/golden/types-union-import/source/jibb
1772+/* src-504 %jibb /tests/golden/types-union-context-flow/source/jibb
1772−/* tok-504 %txt /tests/golden/types-union-import/tokens/txt
1773+/* tok-504 %txt /tests/golden/types-union-context-flow/tokens/txt
1773−/* tre-504 %txt /tests/golden/types-union-import/tree/txt
1774+/* tre-504 %txt /tests/golden/types-union-context-flow/tree/txt
1774−/* mod-504-1 %jibb /tests/golden/types-union-import/modules/ui/lib/jibb
1775+/* typ-504 %txt /tests/golden/types-union-context-flow/types/txt
1775−/* typ-504 %txt /tests/golden/types-union-import/types/txt
1776+/* src-505 %jibb /tests/golden/types-union-import/source/jibb
1776−/* mtre-504 %txt /tests/golden/types-union-import/module-trees/txt
1777+/* tok-505 %txt /tests/golden/types-union-import/tokens/txt
1777−/* src-505 %jibb /tests/golden/types-union-local-pending/source/jibb
1778+/* tre-505 %txt /tests/golden/types-union-import/tree/txt
1778−/* tok-505 %txt /tests/golden/types-union-local-pending/tokens/txt
1779+/* mod-505-1 %jibb /tests/golden/types-union-import/modules/ui/lib/jibb
1779−/* tre-505 %txt /tests/golden/types-union-local-pending/tree/txt
1780+/* typ-505 %txt /tests/golden/types-union-import/types/txt
1780−/* typ-505 %txt /tests/golden/types-union-local-pending/types/txt
1781+/* mtre-505 %txt /tests/golden/types-union-import/module-trees/txt
1781−/* src-506 %jibb /tests/golden/types-union-overlap/source/jibb
1782+/* src-506 %jibb /tests/golden/types-union-local-pending/source/jibb
1782−/* tok-506 %txt /tests/golden/types-union-overlap/tokens/txt
1783+/* tok-506 %txt /tests/golden/types-union-local-pending/tokens/txt
1783−/* tre-506 %txt /tests/golden/types-union-overlap/tree/txt
1784+/* tre-506 %txt /tests/golden/types-union-local-pending/tree/txt
1784−/* typ-506 %txt /tests/golden/types-union-overlap/types/txt
1785+/* typ-506 %txt /tests/golden/types-union-local-pending/types/txt
1785−/* src-507 %jibb /tests/golden/types-union-overlap-nested/source/jibb
1786+/* src-507 %jibb /tests/golden/types-union-overlap/source/jibb
1786−/* tok-507 %txt /tests/golden/types-union-overlap-nested/tokens/txt
1787+/* tok-507 %txt /tests/golden/types-union-overlap/tokens/txt
1787−/* tre-507 %txt /tests/golden/types-union-overlap-nested/tree/txt
1788+/* tre-507 %txt /tests/golden/types-union-overlap/tree/txt
1788−/* typ-507 %txt /tests/golden/types-union-overlap-nested/types/txt
1789+/* typ-507 %txt /tests/golden/types-union-overlap/types/txt
1789−/* src-508 %jibb /tests/golden/types-union-phantom-generic/source/jibb
1790+/* src-508 %jibb /tests/golden/types-union-overlap-nested/source/jibb
1790−/* tok-508 %txt /tests/golden/types-union-phantom-generic/tokens/txt
1791+/* tok-508 %txt /tests/golden/types-union-overlap-nested/tokens/txt
1791−/* tre-508 %txt /tests/golden/types-union-phantom-generic/tree/txt
1792+/* tre-508 %txt /tests/golden/types-union-overlap-nested/tree/txt
1792−/* typ-508 %txt /tests/golden/types-union-phantom-generic/types/txt
1793+/* typ-508 %txt /tests/golden/types-union-overlap-nested/types/txt
1793−/* src-509 %jibb /tests/golden/types-union-print-cross-namespace/source/jibb
1794+/* src-509 %jibb /tests/golden/types-union-patterns/source/jibb
1794−/* tok-509 %txt /tests/golden/types-union-print-cross-namespace/tokens/txt
1795+/* tok-509 %txt /tests/golden/types-union-patterns/tokens/txt
1795−/* tre-509 %txt /tests/golden/types-union-print-cross-namespace/tree/txt
1796+/* tre-509 %txt /tests/golden/types-union-patterns/tree/txt
1796−/* mod-509-1 %jibb /tests/golden/types-union-print-cross-namespace/modules/ui/lib/jibb
1797+/* typ-509 %txt /tests/golden/types-union-patterns/types/txt
1797−/* typ-509 %txt /tests/golden/types-union-print-cross-namespace/types/txt
1798+/* src-510 %jibb /tests/golden/types-union-patterns-generic/source/jibb
1798−/* mtre-509 %txt /tests/golden/types-union-print-cross-namespace/module-trees/txt
1799+/* tok-510 %txt /tests/golden/types-union-patterns-generic/tokens/txt
1799−/* src-510 %jibb /tests/golden/types-union-print-distinct/source/jibb
1800+/* tre-510 %txt /tests/golden/types-union-patterns-generic/tree/txt
1800−/* tok-510 %txt /tests/golden/types-union-print-distinct/tokens/txt
1801+/* typ-510 %txt /tests/golden/types-union-patterns-generic/types/txt
1801−/* tre-510 %txt /tests/golden/types-union-print-distinct/tree/txt
1802+/* src-511 %jibb /tests/golden/types-union-patterns-import/source/jibb
1802−/* mod-510-1 %jibb /tests/golden/types-union-print-distinct/modules/ui/left/jibb
1803+/* tok-511 %txt /tests/golden/types-union-patterns-import/tokens/txt
1803−/* mod-510-2 %jibb /tests/golden/types-union-print-distinct/modules/ui/right/jibb
1804+/* tre-511 %txt /tests/golden/types-union-patterns-import/tree/txt
1804−/* mod-510-3 %jibb /tests/golden/types-union-print-distinct/modules/ui/twin/jibb
1805+/* mod-511-1 %jibb /tests/golden/types-union-patterns-import/modules/ui/lib/jibb
1805−/* typ-510 %txt /tests/golden/types-union-print-distinct/types/txt
1806+/* typ-511 %txt /tests/golden/types-union-patterns-import/types/txt
1806−/* mtre-510 %txt /tests/golden/types-union-print-distinct/module-trees/txt
1807+/* mtre-511 %txt /tests/golden/types-union-patterns-import/module-trees/txt
1807−/* src-511 %jibb /tests/golden/types-union-print-escape/source/jibb
1808+/* src-512 %jibb /tests/golden/types-union-phantom-generic/source/jibb
1808−/* tok-511 %txt /tests/golden/types-union-print-escape/tokens/txt
1809+/* tok-512 %txt /tests/golden/types-union-phantom-generic/tokens/txt
1809−/* tre-511 %txt /tests/golden/types-union-print-escape/tree/txt
1810+/* tre-512 %txt /tests/golden/types-union-phantom-generic/tree/txt
1810−/* typ-511 %txt /tests/golden/types-union-print-escape/types/txt
1811+/* typ-512 %txt /tests/golden/types-union-phantom-generic/types/txt
1811−/* src-512 %jibb /tests/golden/types-union-print-local/source/jibb
1812+/* src-513 %jibb /tests/golden/types-union-print-cross-namespace/source/jibb
1812−/* tok-512 %txt /tests/golden/types-union-print-local/tokens/txt
1813+/* tok-513 %txt /tests/golden/types-union-print-cross-namespace/tokens/txt
1813−/* tre-512 %txt /tests/golden/types-union-print-local/tree/txt
1814+/* tre-513 %txt /tests/golden/types-union-print-cross-namespace/tree/txt
1814−/* typ-512 %txt /tests/golden/types-union-print-local/types/txt
1815+/* mod-513-1 %jibb /tests/golden/types-union-print-cross-namespace/modules/ui/lib/jibb
1815−/* src-513 %jibb /tests/golden/types-union-print-nested/source/jibb
1816+/* typ-513 %txt /tests/golden/types-union-print-cross-namespace/types/txt
1816−/* tok-513 %txt /tests/golden/types-union-print-nested/tokens/txt
1817+/* mtre-513 %txt /tests/golden/types-union-print-cross-namespace/module-trees/txt
1817−/* tre-513 %txt /tests/golden/types-union-print-nested/tree/txt
1818+/* src-514 %jibb /tests/golden/types-union-print-distinct/source/jibb
1818−/* typ-513 %txt /tests/golden/types-union-print-nested/types/txt
1819+/* tok-514 %txt /tests/golden/types-union-print-distinct/tokens/txt
1819−/* src-514 %jibb /tests/golden/types-union-print-same-origin/source/jibb
1820+/* tre-514 %txt /tests/golden/types-union-print-distinct/tree/txt
1820−/* tok-514 %txt /tests/golden/types-union-print-same-origin/tokens/txt
1821+/* mod-514-1 %jibb /tests/golden/types-union-print-distinct/modules/ui/left/jibb
1821−/* tre-514 %txt /tests/golden/types-union-print-same-origin/tree/txt
1822+/* mod-514-2 %jibb /tests/golden/types-union-print-distinct/modules/ui/right/jibb
1822−/* mod-514-1 %jibb /tests/golden/types-union-print-same-origin/modules/ui/shared/jibb
1823+/* mod-514-3 %jibb /tests/golden/types-union-print-distinct/modules/ui/twin/jibb
1823−/* typ-514 %txt /tests/golden/types-union-print-same-origin/types/txt
1824+/* typ-514 %txt /tests/golden/types-union-print-distinct/types/txt
1824−/* mtre-514 %txt /tests/golden/types-union-print-same-origin/module-trees/txt
1825+/* mtre-514 %txt /tests/golden/types-union-print-distinct/module-trees/txt
1825−/* src-515 %jibb /tests/golden/types-union-print-transitive/source/jibb
1826+/* src-515 %jibb /tests/golden/types-union-print-escape/source/jibb
1826−/* tok-515 %txt /tests/golden/types-union-print-transitive/tokens/txt
1827+/* tok-515 %txt /tests/golden/types-union-print-escape/tokens/txt
1827−/* tre-515 %txt /tests/golden/types-union-print-transitive/tree/txt
1828+/* tre-515 %txt /tests/golden/types-union-print-escape/tree/txt
1828−/* mod-515-1 %jibb /tests/golden/types-union-print-transitive/modules/ui/mid/jibb
1829+/* typ-515 %txt /tests/golden/types-union-print-escape/types/txt
1829−/* mod-515-2 %jibb /tests/golden/types-union-print-transitive/modules/ui/base/jibb
1830+/* src-516 %jibb /tests/golden/types-union-print-local/source/jibb
1830−/* typ-515 %txt /tests/golden/types-union-print-transitive/types/txt
1831+/* tok-516 %txt /tests/golden/types-union-print-local/tokens/txt
1831−/* mtre-515 %txt /tests/golden/types-union-print-transitive/module-trees/txt
1832+/* tre-516 %txt /tests/golden/types-union-print-local/tree/txt
1832−/* src-516 %jibb /tests/golden/types-union-singleton/source/jibb
1833+/* typ-516 %txt /tests/golden/types-union-print-local/types/txt
1833−/* tok-516 %txt /tests/golden/types-union-singleton/tokens/txt
1834+/* src-517 %jibb /tests/golden/types-union-print-nested/source/jibb
1834−/* tre-516 %txt /tests/golden/types-union-singleton/tree/txt
1835+/* tok-517 %txt /tests/golden/types-union-print-nested/tokens/txt
1835−/* typ-516 %txt /tests/golden/types-union-singleton/types/txt
1836+/* tre-517 %txt /tests/golden/types-union-print-nested/tree/txt
1836−/* src-517 %jibb /tests/golden/types-union-tag-atoms/source/jibb
1837+/* typ-517 %txt /tests/golden/types-union-print-nested/types/txt
1837−/* tok-517 %txt /tests/golden/types-union-tag-atoms/tokens/txt
1838+/* src-518 %jibb /tests/golden/types-union-print-same-origin/source/jibb
1838−/* tre-517 %txt /tests/golden/types-union-tag-atoms/tree/txt
1839+/* tok-518 %txt /tests/golden/types-union-print-same-origin/tokens/txt
1839−/* typ-517 %txt /tests/golden/types-union-tag-atoms/types/txt
1840+/* tre-518 %txt /tests/golden/types-union-print-same-origin/tree/txt
1840−/* src-518 %jibb /tests/golden/types-union-tags/source/jibb
1841+/* mod-518-1 %jibb /tests/golden/types-union-print-same-origin/modules/ui/shared/jibb
1841−/* tok-518 %txt /tests/golden/types-union-tags/tokens/txt
1842+/* typ-518 %txt /tests/golden/types-union-print-same-origin/types/txt
1842−/* tre-518 %txt /tests/golden/types-union-tags/tree/txt
1843+/* mtre-518 %txt /tests/golden/types-union-print-same-origin/module-trees/txt
1843−/* typ-518 %txt /tests/golden/types-union-tags/types/txt
1844+/* src-519 %jibb /tests/golden/types-union-print-transitive/source/jibb
1844−/* src-519 %jibb /tests/golden/types-union-unresolved/source/jibb
1845+/* tok-519 %txt /tests/golden/types-union-print-transitive/tokens/txt
1845−/* tok-519 %txt /tests/golden/types-union-unresolved/tokens/txt
1846+/* tre-519 %txt /tests/golden/types-union-print-transitive/tree/txt
1846−/* tre-519 %txt /tests/golden/types-union-unresolved/tree/txt
1847+/* mod-519-1 %jibb /tests/golden/types-union-print-transitive/modules/ui/mid/jibb
1847−/* typ-519 %txt /tests/golden/types-union-unresolved/types/txt
1848+/* mod-519-2 %jibb /tests/golden/types-union-print-transitive/modules/ui/base/jibb
1848−/* src-520 %jibb /tests/golden/types-union-unresolved-flow/source/jibb
1849+/* typ-519 %txt /tests/golden/types-union-print-transitive/types/txt
1849−/* tok-520 %txt /tests/golden/types-union-unresolved-flow/tokens/txt
1850+/* mtre-519 %txt /tests/golden/types-union-print-transitive/module-trees/txt
1850−/* tre-520 %txt /tests/golden/types-union-unresolved-flow/tree/txt
1851+/* src-520 %jibb /tests/golden/types-union-singleton/source/jibb
1851−/* typ-520 %txt /tests/golden/types-union-unresolved-flow/types/txt
1852+/* tok-520 %txt /tests/golden/types-union-singleton/tokens/txt
1852−/* src-521 %jibb /tests/golden/types-unit-context/source/jibb
1853+/* tre-520 %txt /tests/golden/types-union-singleton/tree/txt
1853−/* tok-521 %txt /tests/golden/types-unit-context/tokens/txt
1854+/* typ-520 %txt /tests/golden/types-union-singleton/types/txt
1854−/* tre-521 %txt /tests/golden/types-unit-context/tree/txt
1855+/* src-521 %jibb /tests/golden/types-union-tag-atoms/source/jibb
1855−/* typ-521 %txt /tests/golden/types-unit-context/types/txt
1856+/* tok-521 %txt /tests/golden/types-union-tag-atoms/tokens/txt
1856−/* src-522 %jibb /tests/golden/types-unit-patterns/source/jibb
1857+/* tre-521 %txt /tests/golden/types-union-tag-atoms/tree/txt
1857−/* tok-522 %txt /tests/golden/types-unit-patterns/tokens/txt
1858+/* typ-521 %txt /tests/golden/types-union-tag-atoms/types/txt
1858−/* tre-522 %txt /tests/golden/types-unit-patterns/tree/txt
1859+/* src-522 %jibb /tests/golden/types-union-tags/source/jibb
1859−/* typ-522 %txt /tests/golden/types-unit-patterns/types/txt
1860+/* tok-522 %txt /tests/golden/types-union-tags/tokens/txt
1861+/* tre-522 %txt /tests/golden/types-union-tags/tree/txt
1862+/* typ-522 %txt /tests/golden/types-union-tags/types/txt
1863+/* src-523 %jibb /tests/golden/types-union-unresolved/source/jibb
1864+/* tok-523 %txt /tests/golden/types-union-unresolved/tokens/txt
1865+/* tre-523 %txt /tests/golden/types-union-unresolved/tree/txt
1866+/* typ-523 %txt /tests/golden/types-union-unresolved/types/txt
1867+/* src-524 %jibb /tests/golden/types-union-unresolved-flow/source/jibb
1868+/* tok-524 %txt /tests/golden/types-union-unresolved-flow/tokens/txt
1869+/* tre-524 %txt /tests/golden/types-union-unresolved-flow/tree/txt
1870+/* typ-524 %txt /tests/golden/types-union-unresolved-flow/types/txt
1871+/* src-525 %jibb /tests/golden/types-unit-context/source/jibb
1872+/* tok-525 %txt /tests/golden/types-unit-context/tokens/txt
1873+/* tre-525 %txt /tests/golden/types-unit-context/tree/txt
1874+/* typ-525 %txt /tests/golden/types-unit-context/types/txt
1875+/* src-526 %jibb /tests/golden/types-unit-patterns/source/jibb
1876+/* tok-526 %txt /tests/golden/types-unit-patterns/tokens/txt
1877+/* tre-526 %txt /tests/golden/types-unit-patterns/tree/txt
1878+/* typ-526 %txt /tests/golden/types-unit-patterns/types/txt
1860=/ prepared-prelude (prepare-prelude:jibb prelude-source)
1879=/ prepared-prelude (prepare-prelude:jibb prelude-source)
1861|%
1880|%
1862:: one arm per case
1881:: one arm per case
@@ -1870,7 +1889,7 @@
1870++ test-doc-grammar-03-view-day
1889++ test-doc-grammar-03-view-day
1871 (check ~.doc-grammar-03-view-day src-4 `tok-4 `tre-4)
1890 (check ~.doc-grammar-03-view-day src-4 `tok-4 `tre-4)
1872++ test-doc-grammar-04-step
1891++ test-doc-grammar-04-step
1873− (check ~.doc-grammar-04-step src-5 `tok-5 `tre-5)
1892+ (weld (check ~.doc-grammar-04-step src-5 `tok-5 `tre-5) (check-module-types ~.doc-grammar-04-step ~[%tests %golden ~.doc-grammar-04-step %source %jibb] src-5 `typ-5 ~ ~ ~))
1874++ test-doc-grammar-06-cart-store
1893++ test-doc-grammar-06-cart-store
1875 (check ~.doc-grammar-06-cart-store src-6 `tok-6 `tre-6)
1894 (check ~.doc-grammar-06-cart-store src-6 `tok-6 `tre-6)
1876++ test-doc-grammar-07-basket
1895++ test-doc-grammar-07-basket
@@ -2737,174 +2756,182 @@
2737 (weld (check ~.types-list-pattern-imported src-437 `tok-437 `tre-437) (check-module-types ~.types-list-pattern-imported ~[%tests %golden ~.types-list-pattern-imported %source %jibb] src-437 `typ-437 ~[[%fixture %texts imp-437-1] [%fixture %text-set imp-437-2]] ~ ~))
2756 (weld (check ~.types-list-pattern-imported src-437 `tok-437 `tre-437) (check-module-types ~.types-list-pattern-imported ~[%tests %golden ~.types-list-pattern-imported %source %jibb] src-437 `typ-437 ~[[%fixture %texts imp-437-1] [%fixture %text-set imp-437-2]] ~ ~))
2738++ test-types-list-patterns
2757++ test-types-list-patterns
2739 (weld (check ~.types-list-patterns src-438 `tok-438 `tre-438) (check-module-types ~.types-list-patterns ~[%tests %golden ~.types-list-patterns %source %jibb] src-438 `typ-438 ~ ~ ~))
2758 (weld (check ~.types-list-patterns src-438 `tok-438 `tre-438) (check-module-types ~.types-list-patterns ~[%tests %golden ~.types-list-patterns %source %jibb] src-438 `typ-438 ~ ~ ~))
2759+++ test-types-list-zero-fit
2760+ (weld (check ~.types-list-zero-fit src-439 `tok-439 `tre-439) (check-module-types ~.types-list-zero-fit ~[%tests %golden ~.types-list-zero-fit %source %jibb] src-439 `typ-439 ~ ~ ~))
2740++ test-types-local-capitals
2761++ test-types-local-capitals
2741− (weld (check ~.types-local-capitals src-439 `tok-439 `tre-439) (check-module-types ~.types-local-capitals ~[%tests %golden ~.types-local-capitals %source %jibb] src-439 `typ-439 ~ ~ ~))
2762+ (weld (check ~.types-local-capitals src-440 `tok-440 `tre-440) (check-module-types ~.types-local-capitals ~[%tests %golden ~.types-local-capitals %source %jibb] src-440 `typ-440 ~ ~ ~))
2742++ test-types-local-recursive
2763++ test-types-local-recursive
2743− (weld (check ~.types-local-recursive src-440 `tok-440 `tre-440) (check-module-types ~.types-local-recursive ~[%tests %golden ~.types-local-recursive %source %jibb] src-440 `typ-440 ~ ~ ~))
2764+ (weld (check ~.types-local-recursive src-441 `tok-441 `tre-441) (check-module-types ~.types-local-recursive ~[%tests %golden ~.types-local-recursive %source %jibb] src-441 `typ-441 ~ ~ ~))
2744++ test-types-module-fixtures
2765++ test-types-module-fixtures
2745− (weld (weld (check-at ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-441 `tok-441 `tre-441) (check-module-types ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-441 `typ-441 ~ ~ ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-441-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-441-2]])) (check-module-trees ~.types-module-fixtures `mtre-441 ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-441-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-441-2]]))
2766+ (weld (weld (check-at ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-442 `tok-442 `tre-442) (check-module-types ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-442 `typ-442 ~ ~ ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-442-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-442-2]])) (check-module-trees ~.types-module-fixtures `mtre-442 ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-442-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-442-2]]))
2746++ test-types-module-mixed
2767++ test-types-module-mixed
2747− (weld (weld (check ~.types-module-mixed src-442 `tok-442 `tre-442) (check-module-types ~.types-module-mixed ~[%tests %golden ~.types-module-mixed %source %jibb] src-442 `typ-442 ~[[%fixture %title imp-442-1]] ~[[%label mark-442-1]] ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-442-1]])) (check-module-trees ~.types-module-mixed `mtre-442 ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-442-1]]))
2768+ (weld (weld (check ~.types-module-mixed src-443 `tok-443 `tre-443) (check-module-types ~.types-module-mixed ~[%tests %golden ~.types-module-mixed %source %jibb] src-443 `typ-443 ~[[%fixture %title imp-443-1]] ~[[%label mark-443-1]] ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-443-1]])) (check-module-trees ~.types-module-mixed `mtre-443 ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-443-1]]))
2748++ test-types-multi-call
2769++ test-types-multi-call
2749− (weld (check ~.types-multi-call src-443 `tok-443 `tre-443) (check-module-types ~.types-multi-call ~[%tests %golden ~.types-multi-call %source %jibb] src-443 `typ-443 ~ ~ ~))
2770+ (weld (check ~.types-multi-call src-444 `tok-444 `tre-444) (check-module-types ~.types-multi-call ~[%tests %golden ~.types-multi-call %source %jibb] src-444 `typ-444 ~ ~ ~))
2750++ test-types-multi-import
2771++ test-types-multi-import
2751− (weld (weld (check ~.types-multi-import src-444 `tok-444 `tre-444) (check-module-types ~.types-multi-import ~[%tests %golden ~.types-multi-import %source %jibb] src-444 `typ-444 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-444-1]])) (check-module-trees ~.types-multi-import `mtre-444 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-444-1]]))
2772+ (weld (weld (check ~.types-multi-import src-445 `tok-445 `tre-445) (check-module-types ~.types-multi-import ~[%tests %golden ~.types-multi-import %source %jibb] src-445 `typ-445 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-445-1]])) (check-module-trees ~.types-multi-import `mtre-445 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-445-1]]))
2752++ test-types-null-context
2773++ test-types-null-context
2753− (weld (check ~.types-null-context src-445 `tok-445 `tre-445) (check-types ~.types-null-context ~[%tests %golden ~.types-null-context %source %jibb] src-445 `typ-445))
2774+ (weld (check ~.types-null-context src-446 `tok-446 `tre-446) (check-types ~.types-null-context ~[%tests %golden ~.types-null-context %source %jibb] src-446 `typ-446))
2754++ test-types-null-overlap
2775++ test-types-null-overlap
2755− (weld (check ~.types-null-overlap src-446 `tok-446 `tre-446) (check-types ~.types-null-overlap ~[%tests %golden ~.types-null-overlap %source %jibb] src-446 `typ-446))
2776+ (weld (check ~.types-null-overlap src-447 `tok-447 `tre-447) (check-types ~.types-null-overlap ~[%tests %golden ~.types-null-overlap %source %jibb] src-447 `typ-447))
2756++ test-types-null-unresolved
2777++ test-types-null-unresolved
2757− (weld (check ~.types-null-unresolved src-447 `tok-447 `tre-447) (check-types ~.types-null-unresolved ~[%tests %golden ~.types-null-unresolved %source %jibb] src-447 `typ-447))
2778+ (weld (check ~.types-null-unresolved src-448 `tok-448 `tre-448) (check-types ~.types-null-unresolved ~[%tests %golden ~.types-null-unresolved %source %jibb] src-448 `typ-448))
2758++ test-types-partial-apply
2779++ test-types-partial-apply
2759− (weld (check ~.types-partial-apply src-448 `tok-448 `tre-448) (check-types ~.types-partial-apply ~[%tests %golden ~.types-partial-apply %source %jibb] src-448 `typ-448))
2780+ (weld (check ~.types-partial-apply src-449 `tok-449 `tre-449) (check-types ~.types-partial-apply ~[%tests %golden ~.types-partial-apply %source %jibb] src-449 `typ-449))
2760++ test-types-partial-atom-alias
2781++ test-types-partial-atom-alias
2761− (weld (check ~.types-partial-atom-alias src-449 `tok-449 `tre-449) (check-types ~.types-partial-atom-alias ~[%tests %golden ~.types-partial-atom-alias %source %jibb] src-449 `typ-449))
2782+ (weld (check ~.types-partial-atom-alias src-450 `tok-450 `tre-450) (check-types ~.types-partial-atom-alias ~[%tests %golden ~.types-partial-atom-alias %source %jibb] src-450 `typ-450))
2762++ test-types-partial-atom-constraint
2783++ test-types-partial-atom-constraint
2763− (weld (check ~.types-partial-atom-constraint src-450 `tok-450 `tre-450) (check-types ~.types-partial-atom-constraint ~[%tests %golden ~.types-partial-atom-constraint %source %jibb] src-450 `typ-450))
2784+ (weld (check ~.types-partial-atom-constraint src-451 `tok-451 `tre-451) (check-types ~.types-partial-atom-constraint ~[%tests %golden ~.types-partial-atom-constraint %source %jibb] src-451 `typ-451))
2764++ test-types-partial-atom-widening
2785++ test-types-partial-atom-widening
2765− (weld (check ~.types-partial-atom-widening src-451 `tok-451 `tre-451) (check-types ~.types-partial-atom-widening ~[%tests %golden ~.types-partial-atom-widening %source %jibb] src-451 `typ-451))
2786+ (weld (check ~.types-partial-atom-widening src-452 `tok-452 `tre-452) (check-types ~.types-partial-atom-widening ~[%tests %golden ~.types-partial-atom-widening %source %jibb] src-452 `typ-452))
2766++ test-types-partial-aura
2787++ test-types-partial-aura
2767− (weld (check ~.types-partial-aura src-452 `tok-452 `tre-452) (check-types ~.types-partial-aura ~[%tests %golden ~.types-partial-aura %source %jibb] src-452 `typ-452))
2788+ (weld (check ~.types-partial-aura src-453 `tok-453 `tre-453) (check-types ~.types-partial-aura ~[%tests %golden ~.types-partial-aura %source %jibb] src-453 `typ-453))
2768++ test-types-partial-aura-family
2789++ test-types-partial-aura-family
2769− (weld (check ~.types-partial-aura-family src-453 `tok-453 `tre-453) (check-types ~.types-partial-aura-family ~[%tests %golden ~.types-partial-aura-family %source %jibb] src-453 `typ-453))
2790+ (weld (check ~.types-partial-aura-family src-454 `tok-454 `tre-454) (check-types ~.types-partial-aura-family ~[%tests %golden ~.types-partial-aura-family %source %jibb] src-454 `typ-454))
2770++ test-types-partial-aura-generalization
2791++ test-types-partial-aura-generalization
2771− (weld (check ~.types-partial-aura-generalization src-454 `tok-454 `tre-454) (check-types ~.types-partial-aura-generalization ~[%tests %golden ~.types-partial-aura-generalization %source %jibb] src-454 `typ-454))
2792+ (weld (check ~.types-partial-aura-generalization src-455 `tok-455 `tre-455) (check-types ~.types-partial-aura-generalization ~[%tests %golden ~.types-partial-aura-generalization %source %jibb] src-455 `typ-455))
2772++ test-types-partial-bare-atom
2793++ test-types-partial-bare-atom
2773− (weld (check ~.types-partial-bare-atom src-455 `tok-455 `tre-455) (check-types ~.types-partial-bare-atom ~[%tests %golden ~.types-partial-bare-atom %source %jibb] src-455 `typ-455))
2794+ (weld (check ~.types-partial-bare-atom src-456 `tok-456 `tre-456) (check-types ~.types-partial-bare-atom ~[%tests %golden ~.types-partial-bare-atom %source %jibb] src-456 `typ-456))
2774++ test-types-partial-branch-widening
2795++ test-types-partial-branch-widening
2775− (weld (check ~.types-partial-branch-widening src-456 `tok-456 `tre-456) (check-types ~.types-partial-branch-widening ~[%tests %golden ~.types-partial-branch-widening %source %jibb] src-456 `typ-456))
2796+ (weld (check ~.types-partial-branch-widening src-457 `tok-457 `tre-457) (check-types ~.types-partial-branch-widening ~[%tests %golden ~.types-partial-branch-widening %source %jibb] src-457 `typ-457))
2776++ test-types-partial-conflicting-sites
2797++ test-types-partial-conflicting-sites
2777− (weld (check ~.types-partial-conflicting-sites src-457 `tok-457 `tre-457) (check-types ~.types-partial-conflicting-sites ~[%tests %golden ~.types-partial-conflicting-sites %source %jibb] src-457 `typ-457))
2798+ (weld (check ~.types-partial-conflicting-sites src-458 `tok-458 `tre-458) (check-types ~.types-partial-conflicting-sites ~[%tests %golden ~.types-partial-conflicting-sites %source %jibb] src-458 `typ-458))
2778++ test-types-partial-decimal-default
2799++ test-types-partial-decimal-default
2779− (weld (check ~.types-partial-decimal-default src-458 `tok-458 `tre-458) (check-types ~.types-partial-decimal-default ~[%tests %golden ~.types-partial-decimal-default %source %jibb] src-458 `typ-458))
2800+ (weld (check ~.types-partial-decimal-default src-459 `tok-459 `tre-459) (check-types ~.types-partial-decimal-default ~[%tests %golden ~.types-partial-decimal-default %source %jibb] src-459 `typ-459))
2780++ test-types-partial-dependency-chain
2801++ test-types-partial-dependency-chain
2781− (weld (check ~.types-partial-dependency-chain src-459 `tok-459 `tre-459) (check-types ~.types-partial-dependency-chain ~[%tests %golden ~.types-partial-dependency-chain %source %jibb] src-459 `typ-459))
2802+ (weld (check ~.types-partial-dependency-chain src-460 `tok-460 `tre-460) (check-types ~.types-partial-dependency-chain ~[%tests %golden ~.types-partial-dependency-chain %source %jibb] src-460 `typ-460))
2782++ test-types-partial-explicit-capital
2803++ test-types-partial-explicit-capital
2783− (weld (check ~.types-partial-explicit-capital src-460 `tok-460 `tre-460) (check-types ~.types-partial-explicit-capital ~[%tests %golden ~.types-partial-explicit-capital %source %jibb] src-460 `typ-460))
2804+ (weld (check ~.types-partial-explicit-capital src-461 `tok-461 `tre-461) (check-types ~.types-partial-explicit-capital ~[%tests %golden ~.types-partial-explicit-capital %source %jibb] src-461 `typ-461))
2784++ test-types-partial-forward
2805++ test-types-partial-forward
2785− (weld (check ~.types-partial-forward src-461 `tok-461 `tre-461) (check-types ~.types-partial-forward ~[%tests %golden ~.types-partial-forward %source %jibb] src-461 `typ-461))
2806+ (weld (check ~.types-partial-forward src-462 `tok-462 `tre-462) (check-types ~.types-partial-forward ~[%tests %golden ~.types-partial-forward %source %jibb] src-462 `typ-462))
2786++ test-types-partial-generalization
2807++ test-types-partial-generalization
2787− (weld (check ~.types-partial-generalization src-462 `tok-462 `tre-462) (check-types ~.types-partial-generalization ~[%tests %golden ~.types-partial-generalization %source %jibb] src-462 `typ-462))
2808+ (weld (check ~.types-partial-generalization src-463 `tok-463 `tre-463) (check-types ~.types-partial-generalization ~[%tests %golden ~.types-partial-generalization %source %jibb] src-463 `typ-463))
2788++ test-types-partial-identity
2809++ test-types-partial-identity
2789− (weld (check ~.types-partial-identity src-463 `tok-463 `tre-463) (check-types ~.types-partial-identity ~[%tests %golden ~.types-partial-identity %source %jibb] src-463 `typ-463))
2810+ (weld (check ~.types-partial-identity src-464 `tok-464 `tre-464) (check-types ~.types-partial-identity ~[%tests %golden ~.types-partial-identity %source %jibb] src-464 `typ-464))
2790++ test-types-partial-independent-atoms
2811++ test-types-partial-independent-atoms
2791− (weld (check ~.types-partial-independent-atoms src-464 `tok-464 `tre-464) (check-types ~.types-partial-independent-atoms ~[%tests %golden ~.types-partial-independent-atoms %source %jibb] src-464 `typ-464))
2812+ (weld (check ~.types-partial-independent-atoms src-465 `tok-465 `tre-465) (check-types ~.types-partial-independent-atoms ~[%tests %golden ~.types-partial-independent-atoms %source %jibb] src-465 `typ-465))
2792++ test-types-partial-local-molds
2813++ test-types-partial-local-molds
2793− (weld (check ~.types-partial-local-molds src-465 `tok-465 `tre-465) (check-types ~.types-partial-local-molds ~[%tests %golden ~.types-partial-local-molds %source %jibb] src-465 `typ-465))
2814+ (weld (check ~.types-partial-local-molds src-466 `tok-466 `tre-466) (check-types ~.types-partial-local-molds ~[%tests %golden ~.types-partial-local-molds %source %jibb] src-466 `typ-466))
2794++ test-types-partial-locals
2815++ test-types-partial-locals
2795− (weld (check ~.types-partial-locals src-466 `tok-466 `tre-466) (check-types ~.types-partial-locals ~[%tests %golden ~.types-partial-locals %source %jibb] src-466 `typ-466))
2816+ (weld (check ~.types-partial-locals src-467 `tok-467 `tre-467) (check-types ~.types-partial-locals ~[%tests %golden ~.types-partial-locals %source %jibb] src-467 `typ-467))
2796++ test-types-partial-many-atom-constraints
2817++ test-types-partial-many-atom-constraints
2797− (weld (check ~.types-partial-many-atom-constraints src-467 `tok-467 `tre-467) (check-types ~.types-partial-many-atom-constraints ~[%tests %golden ~.types-partial-many-atom-constraints %source %jibb] src-467 `typ-467))
2818+ (weld (check ~.types-partial-many-atom-constraints src-468 `tok-468 `tre-468) (check-types ~.types-partial-many-atom-constraints ~[%tests %golden ~.types-partial-many-atom-constraints %source %jibb] src-468 `typ-468))
2798++ test-types-partial-mold-bare-aura
2819++ test-types-partial-mold-bare-aura
2799− (weld (check ~.types-partial-mold-bare-aura src-468 `tok-468 `tre-468) (check-types ~.types-partial-mold-bare-aura ~[%tests %golden ~.types-partial-mold-bare-aura %source %jibb] src-468 `typ-468))
2820+ (weld (check ~.types-partial-mold-bare-aura src-469 `tok-469 `tre-469) (check-types ~.types-partial-mold-bare-aura ~[%tests %golden ~.types-partial-mold-bare-aura %source %jibb] src-469 `typ-469))
2800++ test-types-partial-mold-composite
2821++ test-types-partial-mold-composite
2801− (weld (check ~.types-partial-mold-composite src-469 `tok-469 `tre-469) (check-types ~.types-partial-mold-composite ~[%tests %golden ~.types-partial-mold-composite %source %jibb] src-469 `typ-469))
2822+ (weld (check ~.types-partial-mold-composite src-470 `tok-470 `tre-470) (check-types ~.types-partial-mold-composite ~[%tests %golden ~.types-partial-mold-composite %source %jibb] src-470 `typ-470))
2802++ test-types-partial-mold-forward
2823++ test-types-partial-mold-forward
2803− (weld (check ~.types-partial-mold-forward src-470 `tok-470 `tre-470) (check-types ~.types-partial-mold-forward ~[%tests %golden ~.types-partial-mold-forward %source %jibb] src-470 `typ-470))
2824+ (weld (check ~.types-partial-mold-forward src-471 `tok-471 `tre-471) (check-types ~.types-partial-mold-forward ~[%tests %golden ~.types-partial-mold-forward %source %jibb] src-471 `typ-471))
2804++ test-types-partial-mold-recursive
2825++ test-types-partial-mold-recursive
2805− (weld (check ~.types-partial-mold-recursive src-471 `tok-471 `tre-471) (check-types ~.types-partial-mold-recursive ~[%tests %golden ~.types-partial-mold-recursive %source %jibb] src-471 `typ-471))
2826+ (weld (check ~.types-partial-mold-recursive src-472 `tok-472 `tre-472) (check-types ~.types-partial-mold-recursive ~[%tests %golden ~.types-partial-mold-recursive %source %jibb] src-472 `typ-472))
2806++ test-types-partial-occurs
2827++ test-types-partial-occurs
2807− (weld (check ~.types-partial-occurs src-472 `tok-472 `tre-472) (check-types ~.types-partial-occurs ~[%tests %golden ~.types-partial-occurs %source %jibb] src-472 `typ-472))
2828+ (weld (check ~.types-partial-occurs src-473 `tok-473 `tre-473) (check-types ~.types-partial-occurs ~[%tests %golden ~.types-partial-occurs %source %jibb] src-473 `typ-473))
2808++ test-types-partial-projection
2829++ test-types-partial-projection
2809− (weld (check ~.types-partial-projection src-473 `tok-473 `tre-473) (check-types ~.types-partial-projection ~[%tests %golden ~.types-partial-projection %source %jibb] src-473 `typ-473))
2830+ (weld (check ~.types-partial-projection src-474 `tok-474 `tre-474) (check-types ~.types-partial-projection ~[%tests %golden ~.types-partial-projection %source %jibb] src-474 `typ-474))
2810++ test-types-partial-shadow-global
2831++ test-types-partial-shadow-global
2811− (weld (check ~.types-partial-shadow-global src-474 `tok-474 `tre-474) (check-types ~.types-partial-shadow-global ~[%tests %golden ~.types-partial-shadow-global %source %jibb] src-474 `typ-474))
2832+ (weld (check ~.types-partial-shadow-global src-475 `tok-475 `tre-475) (check-types ~.types-partial-shadow-global ~[%tests %golden ~.types-partial-shadow-global %source %jibb] src-475 `typ-475))
2812++ test-types-partial-shared-tvar
2833++ test-types-partial-shared-tvar
2813− (weld (check ~.types-partial-shared-tvar src-475 `tok-475 `tre-475) (check-types ~.types-partial-shared-tvar ~[%tests %golden ~.types-partial-shared-tvar %source %jibb] src-475 `typ-475))
2834+ (weld (check ~.types-partial-shared-tvar src-476 `tok-476 `tre-476) (check-types ~.types-partial-shared-tvar ~[%tests %golden ~.types-partial-shared-tvar %source %jibb] src-476 `typ-476))
2814++ test-types-partial-union-cases
2835++ test-types-partial-union-cases
2815− (weld (check ~.types-partial-union-cases src-476 `tok-476 `tre-476) (check-types ~.types-partial-union-cases ~[%tests %golden ~.types-partial-union-cases %source %jibb] src-476 `typ-476))
2836+ (weld (check ~.types-partial-union-cases src-477 `tok-477 `tre-477) (check-types ~.types-partial-union-cases ~[%tests %golden ~.types-partial-union-cases %source %jibb] src-477 `typ-477))
2816++ test-types-partial-union-edges
2837++ test-types-partial-union-edges
2817− (weld (check ~.types-partial-union-edges src-477 `tok-477 `tre-477) (check-types ~.types-partial-union-edges ~[%tests %golden ~.types-partial-union-edges %source %jibb] src-477 `typ-477))
2838+ (weld (check ~.types-partial-union-edges src-478 `tok-478 `tre-478) (check-types ~.types-partial-union-edges ~[%tests %golden ~.types-partial-union-edges %source %jibb] src-478 `typ-478))
2818++ test-types-partial-unresolved-tag
2839++ test-types-partial-unresolved-tag
2819− (weld (check ~.types-partial-unresolved-tag src-478 `tok-478 `tre-478) (check-types ~.types-partial-unresolved-tag ~[%tests %golden ~.types-partial-unresolved-tag %source %jibb] src-478 `typ-478))
2840+ (weld (check ~.types-partial-unresolved-tag src-479 `tok-479 `tre-479) (check-types ~.types-partial-unresolved-tag ~[%tests %golden ~.types-partial-unresolved-tag %source %jibb] src-479 `typ-479))
2820++ test-types-prelude-direct
2841++ test-types-prelude-direct
2821− (weld (check ~.types-prelude-direct src-479 `tok-479 `tre-479) (check-module-types ~.types-prelude-direct ~[%tests %golden ~.types-prelude-direct %source %jibb] src-479 `typ-479 ~ ~ ~))
2842+ (weld (check ~.types-prelude-direct src-480 `tok-480 `tre-480) (check-module-types ~.types-prelude-direct ~[%tests %golden ~.types-prelude-direct %source %jibb] src-480 `typ-480 ~ ~ ~))
2822++ test-types-prelude-interface
2843++ test-types-prelude-interface
2823− (weld (weld (check ~.types-prelude-interface src-480 `tok-480 `tre-480) (check-module-types ~.types-prelude-interface ~[%tests %golden ~.types-prelude-interface %source %jibb] src-480 `typ-480 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-480-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-480-2]])) (check-module-trees ~.types-prelude-interface `mtre-480 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-480-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-480-2]]))
2844+ (weld (weld (check ~.types-prelude-interface src-481 `tok-481 `tre-481) (check-module-types ~.types-prelude-interface ~[%tests %golden ~.types-prelude-interface %source %jibb] src-481 `typ-481 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-481-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-481-2]])) (check-module-trees ~.types-prelude-interface `mtre-481 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-481-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-481-2]]))
2824++ test-types-prelude-list-functions
2845++ test-types-prelude-list-functions
2825− (weld (weld (check ~.types-prelude-list-functions src-481 `tok-481 `tre-481) (check-module-types ~.types-prelude-list-functions ~[%tests %golden ~.types-prelude-list-functions %source %jibb] src-481 `typ-481 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-481-1]])) (check-module-trees ~.types-prelude-list-functions `mtre-481 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-481-1]]))
2846+ (weld (weld (check ~.types-prelude-list-functions src-482 `tok-482 `tre-482) (check-module-types ~.types-prelude-list-functions ~[%tests %golden ~.types-prelude-list-functions %source %jibb] src-482 `typ-482 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-482-1]])) (check-module-trees ~.types-prelude-list-functions `mtre-482 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-482-1]]))
2826++ test-types-record-bound-variable
2847++ test-types-record-bound-variable
2827− (weld (check ~.types-record-bound-variable src-482 `tok-482 `tre-482) (check-types ~.types-record-bound-variable ~[%tests %golden ~.types-record-bound-variable %source %jibb] src-482 `typ-482))
2848+ (weld (check ~.types-record-bound-variable src-483 `tok-483 `tre-483) (check-types ~.types-record-bound-variable ~[%tests %golden ~.types-record-bound-variable %source %jibb] src-483 `typ-483))
2828++ test-types-record-faces
2849++ test-types-record-faces
2829− (weld (check ~.types-record-faces src-483 `tok-483 `tre-483) (check-types ~.types-record-faces ~[%tests %golden ~.types-record-faces %source %jibb] src-483 `typ-483))
2850+ (weld (check ~.types-record-faces src-484 `tok-484 `tre-484) (check-types ~.types-record-faces ~[%tests %golden ~.types-record-faces %source %jibb] src-484 `typ-484))
2830++ test-types-record-import
2851++ test-types-record-import
2831− (weld (weld (check ~.types-record-import src-484 `tok-484 `tre-484) (check-module-types ~.types-record-import ~[%tests %golden ~.types-record-import %source %jibb] src-484 `typ-484 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-484-1]])) (check-module-trees ~.types-record-import `mtre-484 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-484-1]]))
2852+ (weld (weld (check ~.types-record-import src-485 `tok-485 `tre-485) (check-module-types ~.types-record-import ~[%tests %golden ~.types-record-import %source %jibb] src-485 `typ-485 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-485-1]])) (check-module-trees ~.types-record-import `mtre-485 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-485-1]]))
2832++ test-types-record-local-scheme
2853++ test-types-record-local-scheme
2833− (weld (check ~.types-record-local-scheme src-485 `tok-485 `tre-485) (check-types ~.types-record-local-scheme ~[%tests %golden ~.types-record-local-scheme %source %jibb] src-485 `typ-485))
2854+ (weld (check ~.types-record-local-scheme src-486 `tok-486 `tre-486) (check-types ~.types-record-local-scheme ~[%tests %golden ~.types-record-local-scheme %source %jibb] src-486 `typ-486))
2834++ test-types-record-nested
2855++ test-types-record-nested
2835− (weld (check ~.types-record-nested src-486 `tok-486 `tre-486) (check-types ~.types-record-nested ~[%tests %golden ~.types-record-nested %source %jibb] src-486 `typ-486))
2856+ (weld (check ~.types-record-nested src-487 `tok-487 `tre-487) (check-types ~.types-record-nested ~[%tests %golden ~.types-record-nested %source %jibb] src-487 `typ-487))
2836++ test-types-record-to-tuple
2857++ test-types-record-to-tuple
2837− (weld (check ~.types-record-to-tuple src-487 `tok-487 `tre-487) (check-types ~.types-record-to-tuple ~[%tests %golden ~.types-record-to-tuple %source %jibb] src-487 `typ-487))
2858+ (weld (check ~.types-record-to-tuple src-488 `tok-488 `tre-488) (check-types ~.types-record-to-tuple ~[%tests %golden ~.types-record-to-tuple %source %jibb] src-488 `typ-488))
2838++ test-types-recursion-scc-failures
2859++ test-types-recursion-scc-failures
2839− (weld (check ~.types-recursion-scc-failures src-488 `tok-488 `tre-488) (check-module-types ~.types-recursion-scc-failures ~[%tests %golden ~.types-recursion-scc-failures %source %jibb] src-488 `typ-488 ~ ~ ~))
2860+ (weld (check ~.types-recursion-scc-failures src-489 `tok-489 `tre-489) (check-module-types ~.types-recursion-scc-failures ~[%tests %golden ~.types-recursion-scc-failures %source %jibb] src-489 `typ-489 ~ ~ ~))
2840++ test-types-recursion-scc-groups
2861++ test-types-recursion-scc-groups
2841− (weld (check ~.types-recursion-scc-groups src-489 `tok-489 `tre-489) (check-module-types ~.types-recursion-scc-groups ~[%tests %golden ~.types-recursion-scc-groups %source %jibb] src-489 `typ-489 ~ ~ ~))
2862+ (weld (check ~.types-recursion-scc-groups src-490 `tok-490 `tre-490) (check-module-types ~.types-recursion-scc-groups ~[%tests %golden ~.types-recursion-scc-groups %source %jibb] src-490 `typ-490 ~ ~ ~))
2842++ test-types-recursion-scc-import
2863++ test-types-recursion-scc-import
2843− (weld (weld (check ~.types-recursion-scc-import src-490 `tok-490 `tre-490) (check-module-types ~.types-recursion-scc-import ~[%tests %golden ~.types-recursion-scc-import %source %jibb] src-490 `typ-490 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-490-1]])) (check-module-trees ~.types-recursion-scc-import `mtre-490 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-490-1]]))
2864+ (weld (weld (check ~.types-recursion-scc-import src-491 `tok-491 `tre-491) (check-module-types ~.types-recursion-scc-import ~[%tests %golden ~.types-recursion-scc-import %source %jibb] src-491 `typ-491 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-491-1]])) (check-module-trees ~.types-recursion-scc-import `mtre-491 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-491-1]]))
2844++ test-types-recursion-scc-import-bad
2865++ test-types-recursion-scc-import-bad
2845− (weld (weld (check ~.types-recursion-scc-import-bad src-491 `tok-491 `tre-491) (check-module-types ~.types-recursion-scc-import-bad ~[%tests %golden ~.types-recursion-scc-import-bad %source %jibb] src-491 `typ-491 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-491-1]])) (check-module-trees ~.types-recursion-scc-import-bad `mtre-491 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-491-1]]))
2866+ (weld (weld (check ~.types-recursion-scc-import-bad src-492 `tok-492 `tre-492) (check-module-types ~.types-recursion-scc-import-bad ~[%tests %golden ~.types-recursion-scc-import-bad %source %jibb] src-492 `typ-492 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-492-1]])) (check-module-trees ~.types-recursion-scc-import-bad `mtre-492 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-492-1]]))
2846++ test-types-recursion-scc-local
2867++ test-types-recursion-scc-local
2847− (weld (check ~.types-recursion-scc-local src-492 `tok-492 `tre-492) (check-module-types ~.types-recursion-scc-local ~[%tests %golden ~.types-recursion-scc-local %source %jibb] src-492 `typ-492 ~ ~ ~))
2868+ (weld (check ~.types-recursion-scc-local src-493 `tok-493 `tre-493) (check-module-types ~.types-recursion-scc-local ~[%tests %golden ~.types-recursion-scc-local %source %jibb] src-493 `typ-493 ~ ~ ~))
2848++ test-types-recursion-scc-order
2869++ test-types-recursion-scc-order
2849− (weld (check ~.types-recursion-scc-order src-493 `tok-493 `tre-493) (check-module-types ~.types-recursion-scc-order ~[%tests %golden ~.types-recursion-scc-order %source %jibb] src-493 `typ-493 ~ ~ ~))
2870+ (weld (check ~.types-recursion-scc-order src-494 `tok-494 `tre-494) (check-module-types ~.types-recursion-scc-order ~[%tests %golden ~.types-recursion-scc-order %source %jibb] src-494 `typ-494 ~ ~ ~))
2850++ test-types-recursion-scc-shadow
2871++ test-types-recursion-scc-shadow
2851− (weld (check ~.types-recursion-scc-shadow src-494 `tok-494 `tre-494) (check-module-types ~.types-recursion-scc-shadow ~[%tests %golden ~.types-recursion-scc-shadow %source %jibb] src-494 `typ-494 ~ ~ ~))
2872+ (weld (check ~.types-recursion-scc-shadow src-495 `tok-495 `tre-495) (check-module-types ~.types-recursion-scc-shadow ~[%tests %golden ~.types-recursion-scc-shadow %source %jibb] src-495 `typ-495 ~ ~ ~))
2852++ test-types-recursive-branch
2873++ test-types-recursive-branch
2853− (weld (check ~.types-recursive-branch src-495 `tok-495 `tre-495) (check-module-types ~.types-recursive-branch ~[%tests %golden ~.types-recursive-branch %source %jibb] src-495 `typ-495 ~ ~ ~))
2874+ (weld (check ~.types-recursive-branch src-496 `tok-496 `tre-496) (check-module-types ~.types-recursive-branch ~[%tests %golden ~.types-recursive-branch %source %jibb] src-496 `typ-496 ~ ~ ~))
2854++ test-types-recursive-gate
2875++ test-types-recursive-gate
2855− (weld (check ~.types-recursive-gate src-496 `tok-496 `tre-496) (check-types ~.types-recursive-gate ~[%tests %golden ~.types-recursive-gate %source %jibb] src-496 `typ-496))
2876+ (weld (check ~.types-recursive-gate src-497 `tok-497 `tre-497) (check-types ~.types-recursive-gate ~[%tests %golden ~.types-recursive-gate %source %jibb] src-497 `typ-497))
2856++ test-types-recursive-sample
2877++ test-types-recursive-sample
2857− (weld (check ~.types-recursive-sample src-497 `tok-497 `tre-497) (check-types ~.types-recursive-sample ~[%tests %golden ~.types-recursive-sample %source %jibb] src-497 `typ-497))
2878+ (weld (check ~.types-recursive-sample src-498 `tok-498 `tre-498) (check-types ~.types-recursive-sample ~[%tests %golden ~.types-recursive-sample %source %jibb] src-498 `typ-498))
2858++ test-types-string-interpolation
2879++ test-types-string-interpolation
2859− (weld (check ~.types-string-interpolation src-498 `tok-498 `tre-498) (check-module-types ~.types-string-interpolation ~[%tests %golden ~.types-string-interpolation %source %jibb] src-498 `typ-498 ~ ~ ~))
2880+ (weld (check ~.types-string-interpolation src-499 `tok-499 `tre-499) (check-module-types ~.types-string-interpolation ~[%tests %golden ~.types-string-interpolation %source %jibb] src-499 `typ-499 ~ ~ ~))
2860++ test-types-union-alias
2881++ test-types-union-alias
2861− (weld (check ~.types-union-alias src-499 `tok-499 `tre-499) (check-types ~.types-union-alias ~[%tests %golden ~.types-union-alias %source %jibb] src-499 `typ-499))
2882+ (weld (check ~.types-union-alias src-500 `tok-500 `tre-500) (check-types ~.types-union-alias ~[%tests %golden ~.types-union-alias %source %jibb] src-500 `typ-500))
2862++ test-types-union-branch-context
2883++ test-types-union-branch-context
2863− (weld (check ~.types-union-branch-context src-500 `tok-500 `tre-500) (check-types ~.types-union-branch-context ~[%tests %golden ~.types-union-branch-context %source %jibb] src-500 `typ-500))
2884+ (weld (check ~.types-union-branch-context src-501 `tok-501 `tre-501) (check-types ~.types-union-branch-context ~[%tests %golden ~.types-union-branch-context %source %jibb] src-501 `typ-501))
2864++ test-types-union-branch-pending
2885++ test-types-union-branch-pending
2865− (weld (check ~.types-union-branch-pending src-501 `tok-501 `tre-501) (check-types ~.types-union-branch-pending ~[%tests %golden ~.types-union-branch-pending %source %jibb] src-501 `typ-501))
2886+ (weld (check ~.types-union-branch-pending src-502 `tok-502 `tre-502) (check-types ~.types-union-branch-pending ~[%tests %golden ~.types-union-branch-pending %source %jibb] src-502 `typ-502))
2866++ test-types-union-constructor-shape
2887++ test-types-union-constructor-shape
2867− (weld (check ~.types-union-constructor-shape src-502 `tok-502 `tre-502) (check-types ~.types-union-constructor-shape ~[%tests %golden ~.types-union-constructor-shape %source %jibb] src-502 `typ-502))
2888+ (weld (check ~.types-union-constructor-shape src-503 `tok-503 `tre-503) (check-types ~.types-union-constructor-shape ~[%tests %golden ~.types-union-constructor-shape %source %jibb] src-503 `typ-503))
2868++ test-types-union-context-flow
2889++ test-types-union-context-flow
2869− (weld (check ~.types-union-context-flow src-503 `tok-503 `tre-503) (check-types ~.types-union-context-flow ~[%tests %golden ~.types-union-context-flow %source %jibb] src-503 `typ-503))
2890+ (weld (check ~.types-union-context-flow src-504 `tok-504 `tre-504) (check-types ~.types-union-context-flow ~[%tests %golden ~.types-union-context-flow %source %jibb] src-504 `typ-504))
2870++ test-types-union-import
2891++ test-types-union-import
2871− (weld (weld (check ~.types-union-import src-504 `tok-504 `tre-504) (check-module-types ~.types-union-import ~[%tests %golden ~.types-union-import %source %jibb] src-504 `typ-504 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-504-1]])) (check-module-trees ~.types-union-import `mtre-504 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-504-1]]))
2892+ (weld (weld (check ~.types-union-import src-505 `tok-505 `tre-505) (check-module-types ~.types-union-import ~[%tests %golden ~.types-union-import %source %jibb] src-505 `typ-505 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-505-1]])) (check-module-trees ~.types-union-import `mtre-505 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-505-1]]))
2872++ test-types-union-local-pending
2893++ test-types-union-local-pending
2873− (weld (check ~.types-union-local-pending src-505 `tok-505 `tre-505) (check-types ~.types-union-local-pending ~[%tests %golden ~.types-union-local-pending %source %jibb] src-505 `typ-505))
2894+ (weld (check ~.types-union-local-pending src-506 `tok-506 `tre-506) (check-types ~.types-union-local-pending ~[%tests %golden ~.types-union-local-pending %source %jibb] src-506 `typ-506))
2874++ test-types-union-overlap
2895++ test-types-union-overlap
2875− (weld (check ~.types-union-overlap src-506 `tok-506 `tre-506) (check-types ~.types-union-overlap ~[%tests %golden ~.types-union-overlap %source %jibb] src-506 `typ-506))
2896+ (weld (check ~.types-union-overlap src-507 `tok-507 `tre-507) (check-types ~.types-union-overlap ~[%tests %golden ~.types-union-overlap %source %jibb] src-507 `typ-507))
2876++ test-types-union-overlap-nested
2897++ test-types-union-overlap-nested
2877− (weld (check ~.types-union-overlap-nested src-507 `tok-507 `tre-507) (check-types ~.types-union-overlap-nested ~[%tests %golden ~.types-union-overlap-nested %source %jibb] src-507 `typ-507))
2898+ (weld (check ~.types-union-overlap-nested src-508 `tok-508 `tre-508) (check-types ~.types-union-overlap-nested ~[%tests %golden ~.types-union-overlap-nested %source %jibb] src-508 `typ-508))
2899+++ test-types-union-patterns
2900+ (weld (check ~.types-union-patterns src-509 `tok-509 `tre-509) (check-module-types ~.types-union-patterns ~[%tests %golden ~.types-union-patterns %source %jibb] src-509 `typ-509 ~ ~ ~))
2901+++ test-types-union-patterns-generic
2902+ (weld (check ~.types-union-patterns-generic src-510 `tok-510 `tre-510) (check-module-types ~.types-union-patterns-generic ~[%tests %golden ~.types-union-patterns-generic %source %jibb] src-510 `typ-510 ~ ~ ~))
2903+++ test-types-union-patterns-import
2904+ (weld (weld (check ~.types-union-patterns-import src-511 `tok-511 `tre-511) (check-module-types ~.types-union-patterns-import ~[%tests %golden ~.types-union-patterns-import %source %jibb] src-511 `typ-511 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-511-1]])) (check-module-trees ~.types-union-patterns-import `mtre-511 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-511-1]]))
2878++ test-types-union-phantom-generic
2905++ test-types-union-phantom-generic
2879− (weld (check ~.types-union-phantom-generic src-508 `tok-508 `tre-508) (check-types ~.types-union-phantom-generic ~[%tests %golden ~.types-union-phantom-generic %source %jibb] src-508 `typ-508))
2906+ (weld (check ~.types-union-phantom-generic src-512 `tok-512 `tre-512) (check-types ~.types-union-phantom-generic ~[%tests %golden ~.types-union-phantom-generic %source %jibb] src-512 `typ-512))
2880++ test-types-union-print-cross-namespace
2907++ test-types-union-print-cross-namespace
2881− (weld (weld (check ~.types-union-print-cross-namespace src-509 `tok-509 `tre-509) (check-module-types ~.types-union-print-cross-namespace ~[%tests %golden ~.types-union-print-cross-namespace %source %jibb] src-509 `typ-509 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-509-1]])) (check-module-trees ~.types-union-print-cross-namespace `mtre-509 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-509-1]]))
2908+ (weld (weld (check ~.types-union-print-cross-namespace src-513 `tok-513 `tre-513) (check-module-types ~.types-union-print-cross-namespace ~[%tests %golden ~.types-union-print-cross-namespace %source %jibb] src-513 `typ-513 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-513-1]])) (check-module-trees ~.types-union-print-cross-namespace `mtre-513 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-513-1]]))
2882++ test-types-union-print-distinct
2909++ test-types-union-print-distinct
2883− (weld (weld (check ~.types-union-print-distinct src-510 `tok-510 `tre-510) (check-module-types ~.types-union-print-distinct ~[%tests %golden ~.types-union-print-distinct %source %jibb] src-510 `typ-510 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-510-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-510-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-510-3]])) (check-module-trees ~.types-union-print-distinct `mtre-510 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-510-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-510-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-510-3]]))
2910+ (weld (weld (check ~.types-union-print-distinct src-514 `tok-514 `tre-514) (check-module-types ~.types-union-print-distinct ~[%tests %golden ~.types-union-print-distinct %source %jibb] src-514 `typ-514 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-514-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-514-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-514-3]])) (check-module-trees ~.types-union-print-distinct `mtre-514 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-514-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-514-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-514-3]]))
2884++ test-types-union-print-escape
2911++ test-types-union-print-escape
2885− (weld (check ~.types-union-print-escape src-511 `tok-511 `tre-511) (check-types ~.types-union-print-escape ~[%tests %golden ~.types-union-print-escape %source %jibb] src-511 `typ-511))
2912+ (weld (check ~.types-union-print-escape src-515 `tok-515 `tre-515) (check-types ~.types-union-print-escape ~[%tests %golden ~.types-union-print-escape %source %jibb] src-515 `typ-515))
2886++ test-types-union-print-local
2913++ test-types-union-print-local
2887− (weld (check ~.types-union-print-local src-512 `tok-512 `tre-512) (check-types ~.types-union-print-local ~[%tests %golden ~.types-union-print-local %source %jibb] src-512 `typ-512))
2914+ (weld (check ~.types-union-print-local src-516 `tok-516 `tre-516) (check-types ~.types-union-print-local ~[%tests %golden ~.types-union-print-local %source %jibb] src-516 `typ-516))
2888++ test-types-union-print-nested
2915++ test-types-union-print-nested
2889− (weld (check ~.types-union-print-nested src-513 `tok-513 `tre-513) (check-types ~.types-union-print-nested ~[%tests %golden ~.types-union-print-nested %source %jibb] src-513 `typ-513))
2916+ (weld (check ~.types-union-print-nested src-517 `tok-517 `tre-517) (check-types ~.types-union-print-nested ~[%tests %golden ~.types-union-print-nested %source %jibb] src-517 `typ-517))
2890++ test-types-union-print-same-origin
2917++ test-types-union-print-same-origin
2891− (weld (weld (check ~.types-union-print-same-origin src-514 `tok-514 `tre-514) (check-module-types ~.types-union-print-same-origin ~[%tests %golden ~.types-union-print-same-origin %source %jibb] src-514 `typ-514 ~ ~ ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-514-1]])) (check-module-trees ~.types-union-print-same-origin `mtre-514 ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-514-1]]))
2918+ (weld (weld (check ~.types-union-print-same-origin src-518 `tok-518 `tre-518) (check-module-types ~.types-union-print-same-origin ~[%tests %golden ~.types-union-print-same-origin %source %jibb] src-518 `typ-518 ~ ~ ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-518-1]])) (check-module-trees ~.types-union-print-same-origin `mtre-518 ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-518-1]]))
2892++ test-types-union-print-transitive
2919++ test-types-union-print-transitive
2893− (weld (weld (check ~.types-union-print-transitive src-515 `tok-515 `tre-515) (check-module-types ~.types-union-print-transitive ~[%tests %golden ~.types-union-print-transitive %source %jibb] src-515 `typ-515 ~ ~ ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-515-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-515-2]])) (check-module-trees ~.types-union-print-transitive `mtre-515 ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-515-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-515-2]]))
2920+ (weld (weld (check ~.types-union-print-transitive src-519 `tok-519 `tre-519) (check-module-types ~.types-union-print-transitive ~[%tests %golden ~.types-union-print-transitive %source %jibb] src-519 `typ-519 ~ ~ ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-519-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-519-2]])) (check-module-trees ~.types-union-print-transitive `mtre-519 ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-519-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-519-2]]))
2894++ test-types-union-singleton
2921++ test-types-union-singleton
2895− (weld (check ~.types-union-singleton src-516 `tok-516 `tre-516) (check-types ~.types-union-singleton ~[%tests %golden ~.types-union-singleton %source %jibb] src-516 `typ-516))
2922+ (weld (check ~.types-union-singleton src-520 `tok-520 `tre-520) (check-types ~.types-union-singleton ~[%tests %golden ~.types-union-singleton %source %jibb] src-520 `typ-520))
2896++ test-types-union-tag-atoms
2923++ test-types-union-tag-atoms
2897− (weld (check ~.types-union-tag-atoms src-517 `tok-517 `tre-517) (check-types ~.types-union-tag-atoms ~[%tests %golden ~.types-union-tag-atoms %source %jibb] src-517 `typ-517))
2924+ (weld (check ~.types-union-tag-atoms src-521 `tok-521 `tre-521) (check-types ~.types-union-tag-atoms ~[%tests %golden ~.types-union-tag-atoms %source %jibb] src-521 `typ-521))
2898++ test-types-union-tags
2925++ test-types-union-tags
2899− (weld (check ~.types-union-tags src-518 `tok-518 `tre-518) (check-types ~.types-union-tags ~[%tests %golden ~.types-union-tags %source %jibb] src-518 `typ-518))
2926+ (weld (check ~.types-union-tags src-522 `tok-522 `tre-522) (check-types ~.types-union-tags ~[%tests %golden ~.types-union-tags %source %jibb] src-522 `typ-522))
2900++ test-types-union-unresolved
2927++ test-types-union-unresolved
2901− (weld (check ~.types-union-unresolved src-519 `tok-519 `tre-519) (check-types ~.types-union-unresolved ~[%tests %golden ~.types-union-unresolved %source %jibb] src-519 `typ-519))
2928+ (weld (check ~.types-union-unresolved src-523 `tok-523 `tre-523) (check-types ~.types-union-unresolved ~[%tests %golden ~.types-union-unresolved %source %jibb] src-523 `typ-523))
2902++ test-types-union-unresolved-flow
2929++ test-types-union-unresolved-flow
2903− (weld (check ~.types-union-unresolved-flow src-520 `tok-520 `tre-520) (check-types ~.types-union-unresolved-flow ~[%tests %golden ~.types-union-unresolved-flow %source %jibb] src-520 `typ-520))
2930+ (weld (check ~.types-union-unresolved-flow src-524 `tok-524 `tre-524) (check-types ~.types-union-unresolved-flow ~[%tests %golden ~.types-union-unresolved-flow %source %jibb] src-524 `typ-524))
2904++ test-types-unit-context
2931++ test-types-unit-context
2905− (weld (check ~.types-unit-context src-521 `tok-521 `tre-521) (check-types ~.types-unit-context ~[%tests %golden ~.types-unit-context %source %jibb] src-521 `typ-521))
2932+ (weld (check ~.types-unit-context src-525 `tok-525 `tre-525) (check-types ~.types-unit-context ~[%tests %golden ~.types-unit-context %source %jibb] src-525 `typ-525))
2906++ test-types-unit-patterns
2933++ test-types-unit-patterns
2907− (weld (check ~.types-unit-patterns src-522 `tok-522 `tre-522) (check-types ~.types-unit-patterns ~[%tests %golden ~.types-unit-patterns %source %jibb] src-522 `typ-522))
2934+ (weld (check ~.types-unit-patterns src-526 `tok-526 `tre-526) (check-types ~.types-unit-patterns ~[%tests %golden ~.types-unit-patterns %source %jibb] src-526 `typ-526))
2908::
2935::
2909:: +check: run golden:jibb on a case and compare both outputs
2936:: +check: run golden:jibb on a case and compare both outputs
2910::
2937::