on master help sign in
Import named ordered maps and infer predicate branches
commitc690076e2daf5985470735e72cf7316139571c9a authoriko <mail@iko.soy> dateSat 31 Oct 2026, 04:36 (14 hours ago) parent413b12b
38 files changed+3370−1960
docs/compiler.md+3−3 docs/development.md+3−1 docs/prelude-inventory.md+1−1 docs/status.md+9−7 jibb-dev/lib/jibb-import.hoon+133−25 jibb-dev/lib/jibb.hoon+28−3 jibb-dev/lib/jibb/prelude.jibb+18−16 tests/clay-fixtures/tlon-mop-expected.txt+1 tests/clay-fixtures/tlon-mop.txt+8 tests/golden/prelude-unit-list-transforms/source.jibb+18−16 tests/golden/prelude-unit-list-transforms/tokens.txt+675−667 tests/golden/prelude-unit-list-transforms/tree.txt+323−317 tests/golden/types-flag-branch-context/about.txt+4 tests/golden/types-flag-branch-context/modules.txt+1 tests/golden/types-flag-branch-context/source.jibb+83 tests/golden/types-flag-branch-context/tokens.txt+496 tests/golden/types-flag-branch-context/tree.txt+244 tests/golden/types-flag-branch-context/types.txt+33 tests/golden/types-import-tlon-notes/about.txt+1−1 tests/golden/types-import-tlon-notes/imports.txt+1 tests/golden/types-import-tlon-notes/source.jibb+1 tests/golden/types-import-tlon-notes/tokens.txt+9−1 tests/golden/types-import-tlon-notes/tree.txt+5−1 tests/golden/types-import-tlon-notes/types.txt+1 tests/golden/types-prelude-predicates/about.txt+4 tests/golden/types-prelude-predicates/modules.txt+1 tests/golden/types-prelude-predicates/source.jibb+6 tests/golden/types-prelude-predicates/tokens.txt+91 tests/golden/types-prelude-predicates/tree.txt+49 tests/golden/types-prelude-predicates/types.txt+19 tests/importer/about.txt+7 tests/importer/shadow.txt+3 tests/importer/small.txt+15 tests/importer/tree.txt+10 tests/lib/jibb.hoon+913−900 tools/clay-fixtures+43 tools/importer-test+1−1 tools/testdata/clay-fixtures-selftest+109
docs/compiler.md+3−3
@@ -72,7 +72,7 @@ For supported closed unions, the type printer keeps the union’s origin separat
7272
7373Multi-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.
7474
75−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 known gate with an unresolved result variable can also receive an enclosing result type before its argument is inferred, for example allowing `^- (list @t) (id ~)`; unknown callees and unresolved targets retain the conservative path. A known gate sample supplies context to corresponding positions of a single tuple or record argument, including nested cells; a zero literal can therefore fit a list position. A bound zero constant still remains unsupported rather than a definite mismatch, and an unknown callee does not supply context. Uncontextualized list literals also infer with a fresh element variable, including empty and nested lists; the resulting variable can generalize. Unresolved item tags and uncertain widening remain unsupported. Faced or longer cons cells, 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.
75+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. Known loobean result context can propagate through supported complete branches and binder-only cell arms, with a final directional fit; a binder-only arm over a union subject remains unsupported. A known gate with an unresolved result variable can also receive an enclosing result type before its argument is inferred, for example allowing `^- (list @t) (id ~)`; unknown callees and unresolved targets retain the conservative path. A known gate sample supplies context to corresponding positions of a single tuple or record argument, including nested cells; a zero literal can therefore fit a list position. A bound zero constant still remains unsupported rather than a definite mismatch, and an unknown callee does not supply context. Uncontextualized list literals also infer with a fresh element variable, including empty and nested lists; the resulting variable can generalize. Unresolved item tags and uncertain widening remain unsupported. Faced or longer cons cells, 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.
7676
7777A term-headed pair such as `gap+%s2` follows the same contextual inference as `[%gap %s2]`; its synthetic head uses the pair’s span in diagnostics.
7878
@@ -84,7 +84,7 @@ A known closed union with two or more arms can be matched when each arm provably
8484
8585A 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.
8686
87−The 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. For a mark whose sample is exactly a named arm of its single Ford-imported `/sur` core, it can recover a source-proved nonrecursive union, including source-location wrappers around fields; recursive or unverified fallback results remain unsupported. The reader checks explicit Hoon `$%`, `$?` and `$^` unions against the Grammar’s disjointness rule, as @iko confirmed on 2026-10-30. For an explicit `$%` with distinct literal head tags, it can also prove restricted local named payload dependencies, including bare `~` fields, re-evaluate and validate each source branch, and recover the union before Hoon collapses it. The real Tlon `notes.u-note` exercises its `[%deleted ~]` case. A bounded fallback also recovers one level of local named tagged unions inside such a union, including Tlon `notes.u-notebook` and `notes.u-notes`; deeper, recursive or unproven cases stay unsupported. The nested source proof has a 256-visit budget; Hoon evaluation and source scans are not metered. It rejects recursive or computed dependencies, inherited same-name collisions, unsupported nested unions and proofs exceeding a shared 4,096-node budget. 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, Hoon's `%n` zero singleton as Jibb `~`, 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/type-tlon-test` and its ship counterpart exercise four real Tlon presence unions and a field read through the source-aware reader and partial checker. `tools/clay-fixtures` also passes Clay-built `/sur` molds and mark samples through the Clay-built importer and partial checker.
87+The 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 recognizes a direct ordered-map call with two simple named mold operands, as in Tlon `notes.log`, after validating provenance and operand source; revisiting the same map hold fails closed. 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. For a mark whose sample is exactly a named arm of its single Ford-imported `/sur` core, it can recover a source-proved nonrecursive union, including source-location wrappers around fields; recursive or unverified fallback results remain unsupported. The reader checks explicit Hoon `$%`, `$?` and `$^` unions against the Grammar’s disjointness rule, as @iko confirmed on 2026-10-30. For an explicit `$%` with distinct literal head tags, it can also prove restricted local named payload dependencies, including bare `~` fields, re-evaluate and validate each source branch, and recover the union before Hoon collapses it. The real Tlon `notes.u-note` exercises its `[%deleted ~]` case. A bounded fallback also recovers one level of local named tagged unions inside such a union, including Tlon `notes.u-notebook` and `notes.u-notes`; deeper, recursive or unproven cases stay unsupported. The nested source proof has a 256-visit semantic-node budget, and source-location wrapper peeling is limited to four per node; Hoon evaluation and source scans are not metered. It rejects recursive or computed dependencies, inherited same-name collisions, unsupported nested unions and proofs exceeding a shared 4,096-node budget. 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, Hoon's `%n` zero singleton as Jibb `~`, 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/type-tlon-test` and its ship counterpart exercise four real Tlon presence unions and a field read through the source-aware reader and partial checker. `tools/clay-fixtures` also passes Clay-built `/sur` molds and mark samples through the Clay-built importer and partial checker.
8888
8989Self-recursive `/sur` molds can cross the bridge as opaque module-and-name identities when their supported source-aware graph passes validation. Aliases, foreign references, recursive marks, unfolding, construction and field access remain unsupported; the partial printer declines recursive names that are not in scope.
9090
@@ -96,7 +96,7 @@ The source-backed `+api-path-analysis-source` is a separate partial analysis, no
9696
9797`+golden-types-with-prelude` accepts case-local Jibb module sources alongside `/sur` and mark results and the vendored prelude source. It resolves reachable ordinary library modules in dependency order, caching completed interfaces per invocation and exporting supported closed value schemes, direct generic unions, and simple or nonrecursive generic mold aliases whose bodies the fragment supports. It detects missing sources and cycles and rejects a dependency if its interface cannot be inferred by the fragment. Qualified wings can also read nested fields of an imported value, instantiating that value’s scheme independently at each use; missing, ambiguous and non-record fields remain unsupported.
9898
99−The supplied prelude is parsed into a **partial interface**: all names actually declared in the source are reserved, while only the molds and values this fragment can infer are available. These include the validated standard `list` mold, `unit`, the doc-exact generic `cmd` union, `same`, `fall`, `need`, `lure`, `weld`, `snoc`, `turn`, `flop`, `rear`, `drop`, `skim`, `skip`, `murn`, `join`, `snip`, `cork`, `corl`, `cury` and `curr`; unsupported entries remain unavailable. The validated `list` is injected while the prelude’s gates are inferred; `weld` and `turn` use ordinary explicit result casts. An absent or altered `list` is not injected, and an altered declaration cannot leak through a direct or transitive mold alias. 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. The source-backed internal prelude defines `poke`, which the public prelude re-exports as an ordinary transparent type. The partial checker resolves its supported source shape, preserves its public name, and rejects ordinary imports of the private internal path. An imported API with one mark and a matching direct `+$ poke` declaration can export a derived constructor and retain agent/mark metadata when the source representation has the supported agent case. Other API shapes, complete private module checking, root API and kind checking, stores, `ask`, `pure`, lowering and runtime effects remain unfinished. A possible store or root API declaring `+$ poke` reports that kind or scope needs unsupported inference; definite duplicate declarations and unrelated shadowing still report conflicts. Prepared interfaces and caches are trusted caller inputs; the future host and linker must ensure the private source validated during preparation is the same version used to lower derived constructors. A `*` payload may contain gates, so the fragment treats it conservatively; full gate-free checks are unfinished. The shared module-scope fixture compares the prepared and source-taking paths against the real prelude and a two-module golden under eval and on the ship.
99+The supplied prelude is parsed into a **partial interface**: all names actually declared in the source are reserved, while only the molds and values this fragment can infer are available. These include the validated standard `list` mold, `unit`, the doc-exact generic `cmd` union, `same`, `fall`, `need`, `lure`, `weld`, `snoc`, `turn`, `flop`, `rear`, `drop`, `skim`, `skip`, `murn`, `join`, `snip`, `levy`, `lien`, `cork`, `corl`, `cury` and `curr`; unsupported entries remain unavailable. The validated `list` is injected while the prelude’s gates are inferred; `weld` and `turn` use ordinary explicit result casts. An absent or altered `list` is not injected, and an altered declaration cannot leak through a direct or transitive mold alias. 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. The source-backed internal prelude defines `poke`, which the public prelude re-exports as an ordinary transparent type. The partial checker resolves its supported source shape, preserves its public name, and rejects ordinary imports of the private internal path. An imported API with one mark and a matching direct `+$ poke` declaration can export a derived constructor and retain agent/mark metadata when the source representation has the supported agent case. Other API shapes, complete private module checking, root API and kind checking, stores, `ask`, `pure`, lowering and runtime effects remain unfinished. A possible store or root API declaring `+$ poke` reports that kind or scope needs unsupported inference; definite duplicate declarations and unrelated shadowing still report conflicts. Prepared interfaces and caches are trusted caller inputs; the future host and linker must ensure the private source validated during preparation is the same version used to lower derived constructors. A `*` payload may contain gates, so the fragment treats it conservatively; full gate-free checks are unfinished. The shared module-scope fixture compares the prepared and source-taking paths against the real prelude and a two-module golden under eval and on the ship.
100100
101101`+prepare-prelude` derives the interface and declared-name inventory from the trusted vendored source. Hosts can reuse its result with `+golden-types-with-prepared-prelude`; they must pass the unchanged result of preparation, not an independently constructed value. Empty, malformed and duplicate-name prelude sources fail closed. The source-taking `+prepare-prelude` and `+golden-types-with-prelude` do not supply the internal module; their `-and-internal` or `-with-internal` variants accept its source for the supported private import. API files, modules with `main`, unsupported definitions and many other features remain outside this subset. The older `+golden-types-with-modules` entry point fails closed for imports because it has no prelude scope. None of these partial reports claims the module has been checked.
102102
docs/development.md+3−1
@@ -74,6 +74,7 @@ git clone https://github.com/urbit/tools /root/src/tools
7474| `tools/ship` | Runs the fake ship: `start`, `stop`, `status`, `log`, `sync <desk>`, `test`, `gen-tests`, `check-commit`, `scry`, `hoon`, `run`, `poke`, `commit`, `mount`, `unmount` |
7575| `tools/testdata/selftest` | Tests `tools/golden` and `tools/hoon` against a stub library, and `tools/doc-blocks` against Markdown it writes |
7676| `tools/testdata/ship-selftest` | Tests `tools/ship`'s test generator and runner against a stub library on the ship |
77+| `tools/testdata/clay-fixtures-selftest` | Tests temporary Clay fixture cleanup and signal handling without a ship |
7778
7879`tools/golden` starts `urbit eval` once and builds the library, which takes about 8 s, then runs every case under `mule`, so a crash fails only its own case.
7980
@@ -96,8 +97,9 @@ tools/doc-blocks docs/spec # every jibb block has its case
9697tools/ship gen-tests --check # tests/lib/jibb.hoon is up to date
9798tools/ship test # the cases pass as -test arms on the ship
9899tools/testdata/ship-selftest # when tools/ship changed
100+tools/testdata/clay-fixtures-selftest # scratch fixture cleanup without a ship
99101tools/ship check-commit # when the mark or the desks changed
100−tools/clay-fixtures # when the my-app Hoon fixtures or importer changed
102+tools/clay-fixtures # builds example fixtures and real Tlon notes through Clay
101103```
102104
103105`tools/ship test` regenerates `tests/lib/jibb.hoon` and syncs the `jibb-dev` desk before it runs, so commit the regenerated file. Sync preflights and splits large deletion lists into bounded click requests, waiting for each Clay revision; a failure stops later batches. The ship self-test exercises this when switching from the full desk to a smaller fixture desk. A run with `--stub`, `--lib`, or a custom `--golden` isolates its generated golden tests from the repository's other test programs; run the default command afterward to restore and test those programs. It also runs the independent `tests/lib/jibb-import.hoon` test against the same importer fixtures and expected diagnostic projection as `tools/importer-test`. The projection is an internal tree, not the Jibb type printer. `tests/lib/jibb-bridge.hoon` also runs the importer/checker bridge fixture on the ship; `tools/type-import-test` runs the same report under eval. `tests/lib/jibb-tlon-bridge.hoon` and `tools/type-tlon-test` run the real Tlon presence reader/checker fixture on both. The structured reader diagnostics have their own `tests/lib/jibb-import-diagnostic.hoon` ship test and `tools/type-import-diagnostic-test` eval test. The mark bridge has its own `tests/lib/jibb-mark-bridge.hoon` ship test and `tools/type-mark-test` eval test; both compare the same fixture report. `tests/lib/jibb-poke-bridge.hoon` and `tools/type-poke-test` share the source-backed prelude and poke-only API fixture. `tests/lib/jibb-api-paths.hoon` and `tools/type-api-paths-test` share partial path analysis over the real todo marks; this does not generate request interfaces. `tests/lib/jibb-module-scope.hoon` and `tools/type-module-scope-test` compare the prelude scope report on the ship and under eval.
docs/prelude-inventory.md+1−1
@@ -47,7 +47,7 @@ The following is an audit of the Hoon 135 bodies, not a completed Jibb interface
4747
4848`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`.
4949
50−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`, `turn`, `flop`, `rear`, `skim`, `skip`, `murn`, `join` and `snip` using the validated prelude `list` mold; other list helpers remain limited by that fragment. The result casts on `drop`, `skim`, `skip`, `murn`, `join` and `snip` state their existing result types without changing their bodies. Backend validation remains outstanding for all of them.
50+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`, `turn`, `flop`, `rear`, `skim`, `skip`, `murn`, `join`, `snip`, `levy` and `lien` using the validated prelude `list` mold; other list helpers remain limited by that fragment. The result casts on `drop`, `skim`, `skip`, `murn`, `join`, `snip`, `levy` and `lien` state their existing result types without changing their bodies. Backend validation remains outstanding for all of them.
5151
5252## 2c
5353
docs/status.md+9−7
@@ -19,7 +19,7 @@ On 2026-10-30, @iko decided that Jibb drops `$?`, so a `+$` takes a union's case
1919
2020## Milestone 2: in progress
2121
22−The 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 Hoon `*` in supported nonrecursive molds, selected Hoon atoms, term singletons, the null singleton, the two loobean singletons and their exact fork, nested faced or unfaced cells, supported disjoint unions and opaque standard collections from `/sur` molds and marks into inference. Collections retain their names and supported arguments for printing and unification; nested supported union arguments are retained too. The bridge trusts unchanged results from the source-aware reader; a materialized type graph alone cannot reveal cases Hoon already collapsed. The source-validated standard prelude `list` mold shares this representation with imported lists; other Jibb-written collection molds and most prelude collection operations remain unsupported; malformed names and arities fail closed. Selected self-recursive `/sur` molds cross as opaque module-and-name identities; aliases, foreign references, recursive marks, unfolding and construction remain unsupported. The reader handles mark samples, including a source-proved nonrecursive union from a single Ford-imported `/sur` core, recursive molds whose origins can be verified through Ford imports, nested collections, direct ordered maps, certain ordered-map fields, direct `$^` unions whose cases can be proved disjoint, and one verified explicit union argument in a list, set, map or unit. Tagged `$%` cases can additionally use restricted local named payload molds, bare `~` fields and one level of local named tagged unions, as in real Tlon `notes`, with bounded source proof; unsupported or ambiguous dependencies fail closed. Ambiguous recursive origins fail closed; recognizable explicit unions are checked from source before Hoon can collapse their cases, as @iko confirmed for imported `$%`, `$?` and `$^`, while other nested unions, nested ordered maps, general union disjointness and complete import integration remain unfinished. Opt-in structured reader APIs preserve successful graphs and distinguish definite unsupported-aura and core evidence from failures the reader cannot prove; unverified union disjointness and name-only vase recognition remain unsupported. They revalidate and re-walk failed types. An opt-in partial checker entry point consumes unchanged reader results and reports definite aura or core errors at imported mold use sites when their inputs are unique. Ordered replay covers nested cell samples, record and function casts, and non-generic same-module aliases; unsupported prefixes, cycles and shadowing stop it. Union molds, generic applications, transitive modules and unsupported reader outcomes remain generic. Replay repeats inference and may add work. The partial checker resolves a subset of ordinary library imports in dependency order using supplied Jibb sources and a source-derived partial prelude interface, caches completed interfaces per run, detects missing sources and cycles, and resolves nested fields of imported values with independent scheme instantiation. The source-backed internal prelude defines `poke` and the public prelude re-exports it as a transparent type. The partial checker resolves its supported source shape and rejects ordinary imports of the private path. An imported API with one mark and a matching direct `+$ poke` declaration can export a constructor and retain agent/mark metadata when the representation has the supported agent case. A separate partial analysis resolves supported API path declarations and their full and diff mark types, including the todo paths; it does not create requests or check an API module. Complete private module checking, other API shapes, request gates, root API and kind checking, stores, `ask`, `pure`, lowering and runtime effects remain unfinished. A possible store or root API with `+$ poke` reports unsupported kind or scope, while definite duplicates and unrelated shadowing still report conflicts. The prelude includes the doc-exact generic `cmd` union; the prelude inventory is incomplete. The inference fragment supports unrestricted `@`, selected one-way widenings including aura-family ancestors, generalized atom constraints arising from explicit capitals or bare sample binders, acyclic local value definitions with captures, selected single self-recursive top-level and local gates, simple and nonrecursive generic mold aliases, selected faced record casts and field reads, and contextual tags, `~` and constructors for closed disjoint unions, including direct nonrecursive generic unions and propagation through complete loobean and unit-shaped branches in casts and known union-sample calls, including nested branches. A known gate with an unresolved result variable can receive a known enclosing result type before its arguments are inferred; unknown calls and unresolved targets remain conservative. Multi-argument calls form a right-nested sample, retain known faces and shared type variables, and can use known sample positions to contextualize list and union arguments. A definite mismatch points to the failing argument when the fragment can establish it, otherwise to the combined sample; unsupported contextual forms still fail closed. For a supported recursive gate, the checker infers the sample first and uses its exact type, including field faces, for one monomorphic self reference. It generalizes after the body is checked; subsequent uses instantiate it independently. Incompatible recursive arguments can report the gate and argument sites. For a complete loobean branch with one direct self-call arm, a separately inferred closed base type can seed the recursive result before the whole body is checked. Open or pending base types do not seed it; other branch shapes remain subject to the fragment’s existing limits. A supported single local recursive gate also uses a monomorphic self reference and generalizes variables free of the enclosing environment after checking its body; captured variables remain shared. The checker collects written capitals per `++` before inference, excluding nested definitions: a capital used in an enclosing definition is shared with its locals even when written later, while a capital introduced only in a local definition is generalized there. Sibling locals can introduce independent capitals with the same spelling; generic mold parameters keep their own scope. Top-level groups of syntactic gates are inferred together with monomorphic placeholders and shared substitutions, then generalized only after the whole group checks; downstream uses and library interfaces instantiate those schemes independently. A dependency graph identifies groups with two iterative depth-first passes; its conservative local-reference edges can reject otherwise valid programs. Supported local mutually recursive gate groups also use shared monomorphic placeholders and generalize only after the group checks, preserving captured outer variables. A bounded dependency proof reports certain non-gate cycles through values and gates when an explicit atom or loobean result cast and simple unshadowed expressions establish the cycle. Other mixed gate/value cycles, polymorphic recursion, unresolved literal constraints and unresolved branch joins remain unsupported. Reporting repeats inference for a single recursive gate outside a group; grouped reports use the stored schemes. Its performance cost remains unmeasured. A single-arm cell pattern accepts two or more binders, the last capturing the remaining tail; duplicate and shadowed binders are rejected. A structured single-arm pattern also works for a known non-union cell when coverage is proven, including nested literal and wildcard positions. Intermediate union or collection tails, nested patterns, wildcards and faced records remain unsupported. String interpolation accepts known atom auras, unrestricted `@`, tapes and isolated decimal literals; a known cell asks for a printer, and an explicitly generic atom asks for an aura. Loobeans, term singletons, non-tape collections, open types and a type fixed only later remain unsupported. A known closed union with two or more arms supports patterns that provably cover or exclude each remaining case, including payload binders, imported and generic cases, and binder-free catch-alls. Partial boolean patterns can split known `?` positions into their two noun values, up to 64 alternatives across the union; binders retain their original case type. Missing alternatives and covered arms are reported. Other partial patterns, expansions above the limit, binders spanning distinct cases, differing arm result types and some complex two-arm subjects remain unsupported. A cast or known call sample can supply result context through whole-case arms and supported finite loobean refinements for a known union accessed by a wing, including nested cell and list positions; other partial-pattern context and non-wing subjects remain unsupported. The Grammar’s `step` block infers in this fragment, but its module is not yet checked. A bare tag proved absent from a known union reports the union and tag sites in casts, single-argument calls, unit payloads, list items and supported branch arms; imported unnamed unions print their cases. Ordered fit replay can identify a missing tag nested in a syntactic tuple, stopping at an earlier mismatch or uncertainty. Known faced records support uniquely named field changes, including nested wings, with field context passed to replacements and the original record type retained. Missing fields, empty changes and definite mismatches report sites; the expected-type site is the edit because the original field declaration location is not retained. Unknown or partly unfaced spines, ambiguous fields and repeated edits remain unsupported. A known record cast supplies field context to its tuple or record initializer, including nested list and union fields; mismatch diagnostics use the cast mold because the original field declaration location is not retained. Isolated cart-style `init` and `update` expressions infer, while the complete cart-store fails closed because its kind and declaration scope remain unchecked. Uncontextualized list literals infer a fresh element type, including empty and nested lists, with independently generalized uses. Unresolved item tags and uncertain widening remain unsupported. Backtick unit construction uses the validated standard prelude unit template, infers its payload without losing pending constraints, and makes the prelude’s `some` available. Ordinary result annotations also let its `bind`, `biff`, `both`, `clap`, `clef` and `flit` infer. A known unit in a cast, call, list item or record field supplies context to its payload, including nested units and lists; mismatches identify the payload and context. Unrelated union identities, some variable-dependent fits, and missing or altered prelude unit templates remain unsupported. Contextual null-headed cells fit their cases, but do not supply a `|=%$` constructor; unresolved nulls remain pending and are reported separately from tags. A known union of `~` and a null-headed cell supports a complete `~` / `[~ value]` branch in either order, including shadow checks; unknown subjects, missing or duplicate arms, and unresolved branch results remain unsupported. This fragment infers the prelude’s `fall` and `need` signatures. With the validated prelude list and a known cast or gate sample, empty, nonempty and nested list literals infer their element types, including contextual union tags; a mismatched element names both sites. In that context `~` and zero-valued terms fit an empty list, and two-item unfaced cells form cons lists, including nested cons and imported-list contexts; invalid heads or tails name both sites. A known gate sample also supplies context to matching positions in a single tuple or record argument, including nested cells; zero literals can fit list positions. A bound zero constant remains unsupported rather than a definite mismatch, and an unknown callee does not supply context. Faced or longer cells and a missing or altered prelude list fail closed. A known list result also supplies context through complete loobean, unit-shaped and list-shaped branches, including recursive and nested branches. For a known standard list with a supported element type, a complete `~` / `[item rest]` branch infers the element and tail types in either arm order and checks binders for shadowing. Unknown subjects, unsupported element types and other or incomplete list patterns remain unsupported. A value with type variable `A` can fit a field whose type is that same `A`, including in generic union payloads and nested or repeated record fields. Other variable-dependent face merges remain unsupported. Forced equality of distinct written capitals now reports both source sites, following @iko’s decision; forcing one to a concrete type remains unsupported. Imported record spines with repeated faces fail closed where used, but only with a generic unsupported diagnostic. Hoon may erase unfaced nested-cell boundaries, so the check can conservatively reject valid names in distinct erased scopes. Supported closed unions print using an in-scope name or imported alias; an unnamed nongeneric union prints its cases, parenthesized when nested. The latter is print-only. Generic union types retain all arguments in their printed name; if that name is unavailable, the partial printer reports the limitation. Different import faces for the same origin remain compatible; compatibility across distinct union origins and some generic-argument comparisons remain unsupported. Nonrecursive generic aliases can reorder, repeat or omit parameters while retaining a union’s origin, including through local scopes and library interfaces. A generic union declared directly inside a body remains unsupported, as do differing-variable face constraints in a union payload. A transitive generic union whose name is unavailable is reported as unsupported instead of hiding its arguments. Unfixed decimal literals default to `@ud` in gate-free inferred types; recursive molds, general branch tag context, other constraint cases and defaulting inside gate types still need work. Collection recognition checks the originating core and fails closed on shadows or unsupported Ford subject shapes; a wrapper regression also rejects forged subjects, samples and tails. Its golden fixtures include three real Tlon files. A Clay test passes a Ford-built nested union through the reader into partial inference. The partial prelude includes `murn`, `join`, `snip`, `rear` and the newly agreed shared-type `clap`, parsed but still awaiting checker and backend validation, and [prelude-inventory.md](prelude-inventory.md) is a source audit, not the complete inventory or signatures. The milestone remains unfinished.
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 Hoon `*` in supported nonrecursive molds, selected Hoon atoms, term singletons, the null singleton, the two loobean singletons and their exact fork, nested faced or unfaced cells, supported disjoint unions and opaque standard collections from `/sur` molds and marks into inference. Collections retain their names and supported arguments for printing and unification; nested supported union arguments are retained too. The bridge trusts unchanged results from the source-aware reader; a materialized type graph alone cannot reveal cases Hoon already collapsed. The source-validated standard prelude `list` mold shares this representation with imported lists; other Jibb-written collection molds and most prelude collection operations remain unsupported; malformed names and arities fail closed. Selected self-recursive `/sur` molds cross as opaque module-and-name identities; aliases, foreign references, recursive marks, unfolding and construction remain unsupported. The reader handles mark samples, including a source-proved nonrecursive union from a single Ford-imported `/sur` core, recursive molds whose origins can be verified through Ford imports, nested collections, direct ordered maps, including source-validated named operands such as Tlon `notes.log`, certain ordered-map fields, direct `$^` unions whose cases can be proved disjoint, and one verified explicit union argument in a list, set, map or unit. Tagged `$%` cases can additionally use restricted local named payload molds, bare `~` fields and one level of local named tagged unions, as in real Tlon `notes`, with bounded source proof; unsupported or ambiguous dependencies fail closed. Ambiguous recursive origins fail closed; recognizable explicit unions are checked from source before Hoon can collapse their cases, as @iko confirmed for imported `$%`, `$?` and `$^`, while other nested unions, nested ordered maps, general union disjointness and complete import integration remain unfinished. Opt-in structured reader APIs preserve successful graphs and distinguish definite unsupported-aura and core evidence from failures the reader cannot prove; unverified union disjointness and name-only vase recognition remain unsupported. They revalidate and re-walk failed types. An opt-in partial checker entry point consumes unchanged reader results and reports definite aura or core errors at imported mold use sites when their inputs are unique. Ordered replay covers nested cell samples, record and function casts, and non-generic same-module aliases; unsupported prefixes, cycles and shadowing stop it. Union molds, generic applications, transitive modules and unsupported reader outcomes remain generic. Replay repeats inference and may add work. The partial checker resolves a subset of ordinary library imports in dependency order using supplied Jibb sources and a source-derived partial prelude interface, caches completed interfaces per run, detects missing sources and cycles, and resolves nested fields of imported values with independent scheme instantiation. The source-backed internal prelude defines `poke` and the public prelude re-exports it as a transparent type. The partial checker resolves its supported source shape and rejects ordinary imports of the private path. An imported API with one mark and a matching direct `+$ poke` declaration can export a constructor and retain agent/mark metadata when the representation has the supported agent case. A separate partial analysis resolves supported API path declarations and their full and diff mark types, including the todo paths; it does not create requests or check an API module. Complete private module checking, other API shapes, request gates, root API and kind checking, stores, `ask`, `pure`, lowering and runtime effects remain unfinished. A possible store or root API with `+$ poke` reports unsupported kind or scope, while definite duplicates and unrelated shadowing still report conflicts. The prelude includes the doc-exact generic `cmd` union; the prelude inventory is incomplete. The inference fragment supports unrestricted `@`, selected one-way widenings including aura-family ancestors, generalized atom constraints arising from explicit capitals or bare sample binders, acyclic local value definitions with captures, selected single self-recursive top-level and local gates, simple and nonrecursive generic mold aliases, selected faced record casts and field reads, and contextual tags, `~` and constructors for closed disjoint unions, including direct nonrecursive generic unions and propagation through complete loobean and unit-shaped branches in casts and known union-sample calls, including nested branches. Known loobean result context also propagates through supported complete branches and binder-only cell arms; binder-only arms over union subjects remain unsupported. A known gate with an unresolved result variable can receive a known enclosing result type before its arguments are inferred; unknown calls and unresolved targets remain conservative. Multi-argument calls form a right-nested sample, retain known faces and shared type variables, and can use known sample positions to contextualize list and union arguments. A definite mismatch points to the failing argument when the fragment can establish it, otherwise to the combined sample; unsupported contextual forms still fail closed. For a supported recursive gate, the checker infers the sample first and uses its exact type, including field faces, for one monomorphic self reference. It generalizes after the body is checked; subsequent uses instantiate it independently. Incompatible recursive arguments can report the gate and argument sites. For a complete loobean branch with one direct self-call arm, a separately inferred closed base type can seed the recursive result before the whole body is checked. Open or pending base types do not seed it; other branch shapes remain subject to the fragment’s existing limits. A supported single local recursive gate also uses a monomorphic self reference and generalizes variables free of the enclosing environment after checking its body; captured variables remain shared. The checker collects written capitals per `++` before inference, excluding nested definitions: a capital used in an enclosing definition is shared with its locals even when written later, while a capital introduced only in a local definition is generalized there. Sibling locals can introduce independent capitals with the same spelling; generic mold parameters keep their own scope. Top-level groups of syntactic gates are inferred together with monomorphic placeholders and shared substitutions, then generalized only after the whole group checks; downstream uses and library interfaces instantiate those schemes independently. A dependency graph identifies groups with two iterative depth-first passes; its conservative local-reference edges can reject otherwise valid programs. Supported local mutually recursive gate groups also use shared monomorphic placeholders and generalize only after the group checks, preserving captured outer variables. A bounded dependency proof reports certain non-gate cycles through values and gates when an explicit atom or loobean result cast and simple unshadowed expressions establish the cycle. Other mixed gate/value cycles, polymorphic recursion, unresolved literal constraints and unresolved branch joins remain unsupported. Reporting repeats inference for a single recursive gate outside a group; grouped reports use the stored schemes. Its performance cost remains unmeasured. A single-arm cell pattern accepts two or more binders, the last capturing the remaining tail; duplicate and shadowed binders are rejected. A structured single-arm pattern also works for a known non-union cell when coverage is proven, including nested literal and wildcard positions. Intermediate union or collection tails, nested patterns, wildcards and faced records remain unsupported. String interpolation accepts known atom auras, unrestricted `@`, tapes and isolated decimal literals; a known cell asks for a printer, and an explicitly generic atom asks for an aura. Loobeans, term singletons, non-tape collections, open types and a type fixed only later remain unsupported. A known closed union with two or more arms supports patterns that provably cover or exclude each remaining case, including payload binders, imported and generic cases, and binder-free catch-alls. Partial boolean patterns can split known `?` positions into their two noun values, up to 64 alternatives across the union; binders retain their original case type. Missing alternatives and covered arms are reported. Other partial patterns, expansions above the limit, binders spanning distinct cases, differing arm result types and some complex two-arm subjects remain unsupported. A cast or known call sample can supply result context through whole-case arms and supported finite loobean refinements for a known union accessed by a wing, including nested cell and list positions; other partial-pattern context and non-wing subjects remain unsupported. The Grammar’s `step` block infers in this fragment, but its module is not yet checked. A bare tag proved absent from a known union reports the union and tag sites in casts, single-argument calls, unit payloads, list items and supported branch arms; imported unnamed unions print their cases. Ordered fit replay can identify a missing tag nested in a syntactic tuple, stopping at an earlier mismatch or uncertainty. Known faced records support uniquely named field changes, including nested wings, with field context passed to replacements and the original record type retained. Missing fields, empty changes and definite mismatches report sites; the expected-type site is the edit because the original field declaration location is not retained. Unknown or partly unfaced spines, ambiguous fields and repeated edits remain unsupported. A known record cast supplies field context to its tuple or record initializer, including nested list and union fields; mismatch diagnostics use the cast mold because the original field declaration location is not retained. Isolated cart-style `init` and `update` expressions infer, while the complete cart-store fails closed because its kind and declaration scope remain unchecked. Uncontextualized list literals infer a fresh element type, including empty and nested lists, with independently generalized uses. Unresolved item tags and uncertain widening remain unsupported. Backtick unit construction uses the validated standard prelude unit template, infers its payload without losing pending constraints, and makes the prelude’s `some` available. Ordinary result annotations also let its `bind`, `biff`, `both`, `clap`, `clef` and `flit` infer. A known unit in a cast, call, list item or record field supplies context to its payload, including nested units and lists; mismatches identify the payload and context. Unrelated union identities, some variable-dependent fits, and missing or altered prelude unit templates remain unsupported. Contextual null-headed cells fit their cases, but do not supply a `|=%$` constructor; unresolved nulls remain pending and are reported separately from tags. A known union of `~` and a null-headed cell supports a complete `~` / `[~ value]` branch in either order, including shadow checks; unknown subjects, missing or duplicate arms, and unresolved branch results remain unsupported. This fragment infers the prelude’s `fall` and `need` signatures. With the validated prelude list and a known cast or gate sample, empty, nonempty and nested list literals infer their element types, including contextual union tags; a mismatched element names both sites. In that context `~` and zero-valued terms fit an empty list, and two-item unfaced cells form cons lists, including nested cons and imported-list contexts; invalid heads or tails name both sites. A known gate sample also supplies context to matching positions in a single tuple or record argument, including nested cells; zero literals can fit list positions. A bound zero constant remains unsupported rather than a definite mismatch, and an unknown callee does not supply context. Faced or longer cells and a missing or altered prelude list fail closed. A known list result also supplies context through complete loobean, unit-shaped and list-shaped branches, including recursive and nested branches. For a known standard list with a supported element type, a complete `~` / `[item rest]` branch infers the element and tail types in either arm order and checks binders for shadowing. Unknown subjects, unsupported element types and other or incomplete list patterns remain unsupported. A value with type variable `A` can fit a field whose type is that same `A`, including in generic union payloads and nested or repeated record fields. Other variable-dependent face merges remain unsupported. Forced equality of distinct written capitals now reports both source sites, following @iko’s decision; forcing one to a concrete type remains unsupported. Imported record spines with repeated faces fail closed where used, but only with a generic unsupported diagnostic. Hoon may erase unfaced nested-cell boundaries, so the check can conservatively reject valid names in distinct erased scopes. Supported closed unions print using an in-scope name or imported alias; an unnamed nongeneric union prints its cases, parenthesized when nested. The latter is print-only. Generic union types retain all arguments in their printed name; if that name is unavailable, the partial printer reports the limitation. Different import faces for the same origin remain compatible; compatibility across distinct union origins and some generic-argument comparisons remain unsupported. Nonrecursive generic aliases can reorder, repeat or omit parameters while retaining a union’s origin, including through local scopes and library interfaces. A generic union declared directly inside a body remains unsupported, as do differing-variable face constraints in a union payload. A transitive generic union whose name is unavailable is reported as unsupported instead of hiding its arguments. Unfixed decimal literals default to `@ud` in gate-free inferred types; recursive molds, general branch tag context, other constraint cases and defaulting inside gate types still need work. Collection recognition checks the originating core and fails closed on shadows or unsupported Ford subject shapes; a wrapper regression also rejects forged subjects, samples and tails. Its golden fixtures include three real Tlon files. A Clay test passes a Ford-built nested union through the reader into partial inference. The partial prelude includes `murn`, `join`, `snip`, `rear` and the newly agreed shared-type `clap`, parsed but still awaiting checker and backend validation, and [prelude-inventory.md](prelude-inventory.md) is a source audit, not the complete inventory or signatures. The milestone remains unfinished.
2323
2424The 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.
2525
@@ -39,9 +39,9 @@ What the plan asks for, and where it is:
3939
4040Besides the plan's list:
4141
42−- 570 golden cases: 354 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 570-case corpus passed under `urbit eval` in 76.6 s. The fake ship passed all 579 tests, including the importer, importer/checker and mark/checker bridges, module scope and unification checks, with 43.5 s for sync and 52.3 s for tests. The importer golden compares 194 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.
42+- 572 golden cases: 356 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 572-case corpus passed under `urbit eval` in 74.0 s. The fake ship passed all 581 tests, including the importer, importer/checker and mark/checker bridges, module scope and unification checks, with 42.9 s for sync and 41.1 s for tests. The importer golden compares 204 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), `tools/testdata/ship-selftest` and `tools/testdata/clay-fixtures-selftest` test the tools themselves; the last checks temporary Clay fixture cleanup and signal handling without a ship.
4545- 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.
4646- 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).
4747
@@ -114,14 +114,15 @@ Besides the plan's list:
114114| fd2f288 | 2026-10-31 | Infer qualified fields of imported values |
115115| ed9291e | 2026-10-31 | Infer term-headed pairs and function helpers, and import nested named unions |
116116| ad0265e | 2026-10-31 | Infer proven single-case patterns and the prelude command union |
117−| This change | 2026-10-31 | Propagate known result context into generic calls and batch ship deletions |
117+| 413b12b | 2026-10-31 | Propagate known result context into generic calls and batch ship deletions |
118+| This change | 2026-10-31 | Propagate loobean context, infer predicate helpers, and import named ordered-map operands |
118119
119120## Checking it
120121
121122On a machine set up as [development.md](development.md) says:
122123
123124```
124−tools/golden # 570 cases under urbit eval
125+tools/golden # 572 cases under urbit eval
125126tools/importer-test # the Hoon importer fixture projection
126127tools/type-import-test # the importer/checker bridge fixture
127128tools/type-tlon-test # the real Tlon reader/checker fixture
@@ -134,8 +135,9 @@ tools/testdata/selftest # the tools themselves
134135tools/doc-blocks docs/spec # the doc's examples are golden cases
135136tools/ship start
136137tools/ship gen-tests --check # tests/lib/jibb.hoon is up to date
137−tools/ship test # the same 570 cases as -test arms on the ship
138+tools/ship test # the same 572 cases as -test arms on the ship
138139tools/testdata/ship-selftest
140+tools/testdata/clay-fixtures-selftest # scratch fixture cleanup without a ship
139141tools/ship check-commit # |commit stores .jibb files
140142tools/clay-fixtures # example /sur files and marks build through Clay
141143```
jibb-dev/lib/jibb-import.hoon+133−25
@@ -90,19 +90,29 @@
9090 ?: ?=([%dbug * *] raw) `+.+.raw
9191 ~
9292::
93+:: Bound metadata work separately from semantic source-node visits.
94+++ source-unwrap
95+ |= [raw=* left=@ud]
96+ ^- (unit *)
97+ =/ wrapper=(unit *) (source-gist-tail raw)
98+ ?~ wrapper `raw
99+ ?: =(left 0) ~
100+ $(raw u.wrapper, left (dec left))
101+::
93102++ tagged-term
94103 |= leaf=spec
95104 ^- (unit @)
96− =/ gist=(unit *) (source-gist-tail leaf)
97− ?^ gist $(leaf ;;(spec u.gist))
98− ?. ?=([%leaf %tas @] leaf) ~
99− `q.leaf
105+ =/ plain=(unit *) (source-unwrap leaf 4)
106+ ?~ plain ~
107+ ?. ?=([%leaf %tas @] u.plain) ~
108+ `+.+.u.plain
100109::
101110++ tagged-head
102111 |= branch=spec
103112 ^- (unit @)
104− =/ gist=(unit *) (source-gist-tail branch)
105− ?^ gist $(branch ;;(spec u.gist))
113+ =/ plain=(unit *) (source-unwrap branch 4)
114+ ?~ plain ~
115+ =. branch ;;(spec u.plain)
106116 ?+ branch ~
107117 [%bccl *]
108118 ?~ t.p.branch ~
@@ -131,15 +141,22 @@
131141 ?: ?=([%dbug * *] raw) `+.+.raw
132142 ~
133143::
144+++ source-note-unwrap
145+ |= [raw=* left=@ud]
146+ ^- (unit *)
147+ =/ wrapper=(unit *) (source-note-tail raw)
148+ ?~ wrapper `raw
149+ ?: =(left 0) ~
150+ $(raw u.wrapper, left (dec left))
151+::
134152++ tagged-source-code
135153 |= [code=hoon name=term]
136154 ^- (unit (list tagged-case))
137155 =/ found=(unit spec) (local-mold-spec code name)
138156 ?~ found ~
139− =/ body=spec u.found
140− |-
141− =/ gist=(unit *) (source-gist-tail body)
142− ?^ gist $(body ;;(spec u.gist))
157+ =/ plain=(unit *) (source-unwrap u.found 4)
158+ ?~ plain ~
159+ =/ body=spec ;;(spec u.plain)
143160 ?. ?=([%bccn *] body) ~
144161 =/ cases=(list spec) p.body
145162 ?~ cases ~
@@ -165,8 +182,9 @@
165182++ local-mold-spec
166183 |= [code=hoon name=term]
167184 ^- (unit spec)
168− =/ note=(unit *) (source-note-tail code)
169− ?^ note $(code ;;(hoon u.note))
185+ =/ plain=(unit *) (source-note-unwrap code 4)
186+ ?~ plain ~
187+ =. code ;;(hoon u.plain)
170188 ?+ code ~
171189 [%ktcl *]
172190 ?. ?=([%name * *] p.code) ~
@@ -179,9 +197,10 @@
179197 ^- (unit @ud)
180198 ?~ cases `fuel
181199 ?: =(fuel 0) ~
182− ?. ?=([%leaf %tas @] i.cases) ~
183− ?: (lien seen |=(n=@ =(n q.i.cases))) ~
184− $(cases t.cases, seen [q.i.cases seen], fuel (dec fuel))
200+ =/ tag=(unit @) (tagged-term i.cases)
201+ ?~ tag ~
202+ ?: (lien seen |=(n=@ =(n u.tag))) ~
203+ $(cases t.cases, seen [u.tag seen], fuel (dec fuel))
185204::
186205++ safe-source-specs-mode
187206 |= [xs=(list spec) cor=type seen=(list term) fuel=@ud allow-nested=?]
@@ -208,10 +227,11 @@
208227++ safe-source-spec-mode
209228 |= [shape=spec cor=type seen=(list term) fuel=@ud allow-nested=?]
210229 ^- (unit @ud)
230+ =/ plain=(unit *) (source-unwrap shape 4)
231+ ?~ plain ~
232+ =. shape ;;(spec u.plain)
211233 ?: =(fuel 0) ~
212234 =. fuel (dec fuel)
213− =/ gist=(unit *) (source-gist-tail shape)
214− ?^ gist $(shape ;;(spec u.gist))
215235 ?+ shape ~
216236 [%base *] ?:(|(?=([%atom *] p.shape) =(%flag p.shape) =(%null p.shape)) `fuel ~)
217237 [%leaf *] `fuel
@@ -234,8 +254,9 @@
234254 ?. ?=(~ q.shape) ~
235255 (safe-source-name-mode i.p.shape cor seen fuel allow-nested)
236256 [%make *]
237− ?. ?=([%wing [@ ~]] p.shape) ~
238− =/ n=term i.p.p.shape
257+ =/ wing=(unit term) (source-single-wing p.shape)
258+ ?~ wing ~
259+ =/ n=term u.wing
239260 ?. (lien `(list term)`~[%map %set %qeu %list %unit %jar %jug] |=(x=term =(x n))) ~
240261 ?. (scope-safe cor n) ~
241262 (safe-source-specs-mode q.shape cor seen fuel allow-nested)
@@ -991,17 +1012,46 @@
9911012 ?@ src |
9921013 |($(src -.src) $(src +.src))
9931014::
1015+:: Clay can wrap each call component in source-location metadata.
1016+:: Peel only those wrappers; malformed casts are trapped by +mop-specs.
1017+++ mop-source-code
1018+ |= code=hoon
1019+ ^- hoon
1020+ =/ plain=(unit *) (source-unwrap code 4)
1021+ ?~ plain !!
1022+ ;;(hoon u.plain)
1023+::
1024+++ source-single-wing
1025+ |= raw=*
1026+ ^- (unit term)
1027+ =/ plain=(unit *) (source-unwrap raw 4)
1028+ ?~ plain ~
1029+ ?. ?=([%wing [@ ~]] u.plain) ~
1030+ `;;(term -.+.u.plain)
1031+::
9941032++ mop-specs-raw
9951033 |= body=hoon
9961034 ^- (unit [key=spec value=spec])
1035+ =. body (mop-source-code body)
9971036 ?. ?=([%cncl *] body) ~
9981037 ?. ?=([%tsgr *] p.body) ~
999− =/ b=hoon q.p.body
1038+ =/ b=hoon (mop-source-code q.p.body)
10001039 ?. ?=([%cncl *] b) ~
1001− ?. ?=([%cncl *] p.b) ~
1002− ?. ?=([%wing *] p.p.b) ~
1003− ?. =(p.p.p.b ~[%mop]) ~
1004− =/ specs=(list spec) ;;((list spec) q.p.b)
1040+ =/ call=hoon (mop-source-code p.b)
1041+ ?. ?=([%cncl *] call) ~
1042+ =/ w=(unit term) (source-single-wing p.call)
1043+ ?~ w ~
1044+ ?. =(u.w %mop) ~
1045+ =/ raw=* q.call
1046+ =/ wings=(unit [key=spec value=spec])
1047+ ?. ?=([* [* ~]] raw) ~
1048+ =/ a=(unit term) (source-single-wing -.raw)
1049+ =/ b=(unit term) (source-single-wing -.+.raw)
1050+ ?~ a ~
1051+ ?~ b ~
1052+ [~ [[%like ~[u.a] ~] [%like ~[u.b] ~]]]
1053+ ?^ wings wings
1054+ =/ specs=(list spec) ;;((list spec) raw)
10051055 ?. ?=([* [* ~]] specs) ~
10061056 [~ [i.specs i.t.specs]]
10071057::
@@ -1298,7 +1348,8 @@
12981348 [%bad 'Hoon collection provenance is unavailable or shadowed']
12991349 =/ mop (mop-arguments typ)
13001350 ?^ mop
1301− [%apply %mop ~[$(typ key.u.mop) $(typ value.u.mop)]]
1351+ :: An exact revisit fails closed without guessing a name.
1352+ [%apply %mop ~[$(typ key.u.mop, seen [[typ ~] seen]) $(typ value.u.mop, seen [[typ ~] seen])]]
13021353 ?: (source-uses q.typ %mop)
13031354 =/ checked-names=(list term) ~[%map %set %qeu %list %unit]
13041355 ?: (lien checked-names |=(n=term &((source-uses q.typ n) !(alias-safe context n))))
@@ -1642,6 +1693,49 @@
16421693 ?: ?=(%& -.invalid) "malformed spec accepted"
16431694 "valid wrapper; duplicate and malformed rejected"
16441695::
1696+:: The same named-operand call with Clay-style source-location wrappers.
1697+++ debug-mop-fixture
1698+ |= cor=type
1699+ ^- tape
1700+ =/ typ=type (~(play ut cor) (ream '*mop-wing-valid'))
1701+ ?> ?=([%hold *] typ)
1702+ =/ original=hoon q.typ
1703+ ?> ?=([%tsls [%note * *] *] original)
1704+ =/ body=hoon q.p.original
1705+ ?> ?=([%cncl *] body)
1706+ ?> ?=([%tsgr *] p.body)
1707+ =/ b=hoon q.p.body
1708+ ?> ?=([%cncl *] b)
1709+ =/ call=hoon p.b
1710+ ?> ?=([%cncl *] call)
1711+ ?> ?=([* [* ~]] q.call)
1712+ =/ at=spot [/tests/importer/synthetic/hoon [[1 1] [1 2]]]
1713+ =/ inner=hoon call(p [%dbug at p.call], q ~[[%dbug at i.q.call] [%dbug at i.t.q.call]])
1714+ =/ outer=hoon body(p p.body(q b(p [%dbug at inner])))
1715+ =/ mixed=hoon body(p p.body(q b(p inner)))
1716+ =/ multi=hoon body(p p.body(q b(p call(p [%dbug at [%wing ~[%one %two]]]))))
1717+ =/ plain=(unit [key=spec value=spec]) (mop-specs body)
1718+ ?~ plain "unwrapped mop not recognized"
1719+ ?. =((mop-specs [%dbug at outer]) plain) "wrapped mop not recognized"
1720+ ?. =((mop-specs mixed) plain) "mixed mop not recognized"
1721+ ?^ (mop-specs multi) "multi-segment callee accepted"
1722+ ?^ (mop-specs [%dbug at [%sand %ud 42]]) "malformed call accepted"
1723+ ?^ (source-single-wing [%dbug at 42]) "malformed wing accepted"
1724+ ?^ (source-single-wing [%dbug at [%wing ~[%one %two]]]) "multi-segment operand accepted"
1725+ =/ four=* [%dbug at [%dbug at [%dbug at [%dbug at [%wing ~[%mop]]]]]]
1726+ =/ five=* [%dbug at four]
1727+ ?~ (source-single-wing four) "four wrappers rejected"
1728+ ?^ (source-single-wing five) "wrapper limit exceeded"
1729+ ?~ (source-note-unwrap four 4) "four note wrappers rejected"
1730+ ?^ (source-note-unwrap five 4) "note wrapper limit exceeded"
1731+ =/ selected=(unit hoon) (local-arm-source cor %tag-valid)
1732+ ?~ selected "selected union not found"
1733+ =/ arm-four=hoon [%dbug at [%dbug at [%dbug at [%dbug at u.selected]]]]
1734+ =/ arm-five=hoon [%dbug at arm-four]
1735+ ?~ (tagged-source-code arm-four %tag-valid) "four wrapped selected arms rejected"
1736+ ?^ (tagged-source-code arm-five %tag-valid) "selected arm wrapper limit exceeded"
1737+ "wrapped and mixed calls accepted; malformed, multi-segment and excessive wrappers rejected"
1738+::
16451739:: Synthetic nodes test each part of the direct collection-call proof.
16461740++ collection-wrapper-fixture
16471741 ^- tape
@@ -1727,6 +1821,10 @@
17271821 =/ nest-child-src=@t
17281822 '|%\0a+$ tag-nest-inner $%([%left @t] [%right @ud])\0a+$ tag-nest-middle $%([%one x=tag-nest-inner] [%two ~])\0a--\0a'
17291823 =/ nest-collision=type -:(ride [%cell [%face %base nest-parent] -:!>(..zuse)] nest-child-src)
1824+ =/ mop-ford-parent=type
1825+ -:(ride -:!>(..zuse) '|%\0a+$ value ?(%same %same)\0a--\0a')
1826+ =/ mop-ford-child=type
1827+ -:(ride [%cell [%face %value mop-ford-parent] -:!>(..zuse)] '|%\0a+$ key @ud\0a+$ value @t\0a+$ mm ((mop key value) lte)\0a--\0a')
17301828 =/ sample
17311829 |= name=term
17321830 (read-mold-in %small name (~(play ut sc) (ream (cat 3 '*' name))) sc)
@@ -1797,6 +1895,16 @@
17971895 (crip "shadow-list-mop: {(show-result (read-mold-in %shadow-static %bad (~(play ut xc) (ream '*bad')) xc))}")
17981896 (crip "named-mop: {(show-result (sample %named-mop))}")
17991897 (crip "mop-list: {(show-result (sample %mop-list))}")
1898+ (crip "mop-wing-valid: {(show-result (sample %mop-wing-valid))}")
1899+ (crip "mop-wing-invalid-key: {(show-result (sample %mop-wing-invalid-key))}")
1900+ (crip "mop-wing-invalid-key-alias: {(show-result (sample %mop-wing-invalid-key-alias))}")
1901+ (crip "mop-wing-invalid-value: {(show-result (sample %mop-wing-invalid-value))}")
1902+ (crip "mop-wing-invalid-value-alias: {(show-result (sample %mop-wing-invalid-value-alias))}")
1903+ (crip "mop-wing-rec-key: {(show-result (sample %mop-wing-rec-key))}")
1904+ (crip "mop-wing-rec-value: {(show-result (sample %mop-wing-rec-value))}")
1905+ (crip "mop-wing-shadow: {(show-result (read-named %shadow %mmw hc))}")
1906+ (crip "mop-wing-ford-collision: {(show-result (read-named %child %mm mop-ford-child))}")
1907+ (crip "mop-wing-debug: {(debug-mop-fixture sc)}")
18001908 (crip "signed: {(show-result (sample %signed))}")
18011909 (crip "float: {(show-result (sample %float))}")
18021910 (crip "gate: {(show-result (sample %gate-test))}")
jibb-dev/lib/jibb.hoon+28−3
@@ -6562,6 +6562,7 @@
65626562 ?: ?=(%unknown -.fit)
65636563 ?: &(?=(%collection -.expected) =(%list name.expected))
65646564 [%| ["branch list constraint is not supported by partial inference" ~]]
6565+ ?: ?=(%flag -.expected) [%| ["branch loobean constraint is not supported by partial inference" ~]]
65656566 [%| ["branch union constraint is not supported by partial inference" ~]]
65666567 ?: ?=(%bad -.fit)
65676568 =/ missing=(unit idiag) (missing-union-tag e expected sub.state.p.value context)
@@ -6570,6 +6571,8 @@
65706571 ?^ nested [%| u.nested]
65716572 ?: &(?=(%collection -.expected) =(%list name.expected))
65726573 [%| ["branch arm does not fit its expected list" ~[[context "expected list"] [(span-of e) "branch arm"]]]]
6574+ ?: ?=(%flag -.expected)
6575+ [%| ["branch arm does not fit its expected loobean" ~[[context "expected loobean"] [(span-of e) "branch arm"]]]]
65736576 [%| ["branch arm does not fit its expected union" ~[[context "expected union"] [(span-of e) "branch arm"]]]]
65746577 [%& expected state.p.value(sub sub.fit, next next.fit)]
65756578::
@@ -7389,7 +7392,7 @@
73897392 ?~ arms.e [%| ["branch is not supported by partial inference" ~]]
73907393 ?~ t.arms.e
73917394 ?: (single-structured-pattern e) (infer-single-case-branch e env state ~)
7392− (infer-cell-branch e env state)
7395+ (infer-cell-branch e env state ~)
73937396 ?^ t.t.arms.e (infer-known-union-branch e env state)
73947397 =/ known=(unit itype) (known-union-subject subject.e env state)
73957398 ?: &(?=(^ known) ?=(~ (unit-union-payload u.known)))
@@ -7619,6 +7622,8 @@
76197622 ?: ?=(%call -.e) (infer-contextual-call e target env state)
76207623 ?: (single-structured-pattern e)
76217624 (infer-single-case-branch e env state `[target context])
7625+ ?: (cell-binder-pattern e)
7626+ (infer-cell-branch e env state `[target context])
76227627 :: In a loobean-singleton context retain the written loobean noun;
76237628 :: the usual final fit decides whether that value is permitted.
76247629 =/ singleton=(unit itype)
@@ -7635,6 +7640,8 @@
76357640 (infer-known-union-context e target env state context)
76367641 ?: &(?=(%union -.target) ?=(%unit -.e))
76377642 (infer-unit-context e target env state context)
7643+ ?: &(?=(%flag -.target) (context-union-branch e))
7644+ (infer-union-context e target env state context)
76387645 ?: &(?=(%union -.target) (context-union-branch e))
76397646 (infer-union-context e target env state context)
76407647 ?: &(?=(%collection -.target) =(%list name.target) (context-union-branch e))
@@ -7737,8 +7744,17 @@
77377744 ?: ?=(%cell -.typ) $(typ tal.typ, names t.names)
77387745 |(?=(%union -.typ) ?=(%collection -.typ) ?=(%recursive -.typ) ?=(%noun -.typ) ?=(%fn -.typ) ?=(%tag -.typ))
77397746::
7747+++ cell-binder-pattern
7748+ |= e=expr
7749+ ^- ?
7750+ ?. ?=(%branch -.e) |
7751+ ?~ arms.e |
7752+ ?^ t.arms.e |
7753+ ?. ?=(%cell -.pat.i.arms.e) |
7754+ !(single-structured-pattern e)
7755+::
77407756++ infer-cell-branch
7741− |= [e=expr env=ienv state=istate]
7757+ |= [e=expr env=ienv state=istate expected=(unit [typ=itype context=span])]
77427758 ^- iresult
77437759 ?> ?=(%branch -.e)
77447760 ?~ arms.e [%| ["branch is not supported by partial inference" ~]]
@@ -7762,7 +7778,16 @@
77627778 =/ binders=[typ=itype env=ienv next=@ud] (cell-pattern-types p.names env next.st)
77637779 =/ sub=(unit isub) (itype-unify typ.p.subject typ.binders sub.st)
77647780 ?~ sub [%| ["cell pattern does not match the subject type" ~]]
7765− (infer-fragment val.arm env.binders st(next next.binders, sub u.sub))
7781+ =. st st(next next.binders, sub u.sub)
7782+ ?~ expected (infer-fragment val.arm env.binders st)
7783+ =/ body=iresult (infer-call-context-arg val.arm typ.u.expected env.binders st context.u.expected)
7784+ ?: ?=(%| -.body) body
7785+ =/ fit=ifit (itype-fit typ.p.body typ.u.expected sub.state.p.body next.state.p.body)
7786+ ?: ?=(%unknown -.fit) [%| ["cell branch result constraint is not supported by partial inference" ~]]
7787+ ?: ?=(%bad -.fit) [%| ["cell branch arm does not fit its expected type" ~[[context.u.expected "expected type"] [(span-of val.arm) "branch arm"]]]]
7788+ ?: (itype-has-tag (itype-normalize typ.u.expected sub.fit))
7789+ [%| ["cell branch result needs context in partial inference" ~]]
7790+ [%& typ.u.expected state.p.body(sub sub.fit, next next.fit)]
77667791::
77677792++ show-itype
77687793 |= [t=itype sub=isub]
jibb-dev/lib/jibb/prelude.jibb+18−16
@@ -214,24 +214,26 @@
214214 %.n [item (skip rest predicate)]
215215
216216++ levy |= args=[(list A) $-(A ?)]
217− ?- args
218− [xs predicate]
219− ?- xs
220− ~ %.y
221− [item rest]
222− ?- (predicate item)
223− %.y (levy rest predicate)
224− %.n %.n
217+ ^- ?
218+ ?- args
219+ [xs predicate]
220+ ?- xs
221+ ~ %.y
222+ [item rest]
223+ ?- (predicate item)
224+ %.y (levy rest predicate)
225+ %.n %.n
225226
226227++ lien |= args=[(list A) $-(A ?)]
227− ?- args
228− [xs predicate]
229− ?- xs
230− ~ %.n
231− [item rest]
232− ?- (predicate item)
233− %.y %.y
234− %.n (lien rest predicate)
228+ ^- ?
229+ ?- args
230+ [xs predicate]
231+ ?- xs
232+ ~ %.n
233+ [item rest]
234+ ?- (predicate item)
235+ %.y %.y
236+ %.n (lien rest predicate)
235237
236238++ roll |= args=[(list A) B $-([A B] B)]
237239 ?- args
tests/clay-fixtures/tlon-mop-expected.txtnew file+1
@@ -0,0 +1 @@
1+%.y
tests/clay-fixtures/tlon-mop.txtnew file+8
@@ -0,0 +1,8 @@
1+=/ m (strand ,vase)
2+;< =bowl:spider bind:m get-bowl
3+=/ now=@da now.bowl
4+=/ src=vase .^(vase %ca /[(scot %p our.bowl)]/my-app/[(scot %da now)]/sur/mop-tlon-probe/hoon)
5+=/ reader=vase .^(vase %ca /[(scot %p our.bowl)]/my-app/[(scot %da now)]/lib/jibb-import/hoon)
6+=/ read-gate=vase (slap reader (ream 'read-named'))
7+=/ result=vase (slym read-gate [%notes %log -.src])
8+(pure:m !>(?=([%& [%apply %mop [[%atom %da ~] [%fork *] ~]]] +.result)))
tests/golden/prelude-unit-list-transforms/source.jibb+18−16
@@ -214,24 +214,26 @@
214214 %.n [item (skip rest predicate)]
215215
216216++ levy |= args=[(list A) $-(A ?)]
217− ?- args
218− [xs predicate]
219− ?- xs
220− ~ %.y
221− [item rest]
222− ?- (predicate item)
223− %.y (levy rest predicate)
224− %.n %.n
217+ ^- ?
218+ ?- args
219+ [xs predicate]
220+ ?- xs
221+ ~ %.y
222+ [item rest]
223+ ?- (predicate item)
224+ %.y (levy rest predicate)
225+ %.n %.n
225226
226227++ lien |= args=[(list A) $-(A ?)]
227− ?- args
228− [xs predicate]
229− ?- xs
230− ~ %.n
231− [item rest]
232− ?- (predicate item)
233− %.y %.y
234− %.n (lien rest predicate)
228+ ^- ?
229+ ?- args
230+ [xs predicate]
231+ ?- xs
232+ ~ %.n
233+ [item rest]
234+ ?- (predicate item)
235+ %.y %.y
236+ %.n (lien rest predicate)
235237
236238++ roll |= args=[(list A) B $-([A B] B)]
237239 ?- args
tests/golden/prelude-unit-list-transforms/tokens.txt+675−667
@@ -1361,685 +1361,693 @@
13611361216:33 tight glyph )
13621362216:34 tight glyph ]
13631363217:3 INDENT
1364−217:3 glyph ?-
1365−217:6 name args
1364+217:3 glyph ^-
1365+217:6 glyph ?
13661366218:5 INDENT
1367−218:5 glyph [
1368−218:6 tight name xs
1369−218:9 name predicate
1370−218:18 tight glyph ]
1367+218:5 glyph ?-
1368+218:8 name args
13711369219:7 INDENT
1372−219:7 glyph ?-
1373−219:10 name xs
1370+219:7 glyph [
1371+219:8 tight name xs
1372+219:11 name predicate
1373+219:20 tight glyph ]
13741374220:9 INDENT
1375−220:9 lit ~
1376−220:11 lit %.y
1377−221:9 NEWLINE
1378−221:9 glyph [
1379−221:10 tight name item
1380−221:15 name rest
1381−221:19 tight glyph ]
1382−222:11 INDENT
1383−222:11 glyph ?-
1384−222:14 glyph (
1385−222:15 tight name predicate
1386−222:25 name item
1387−222:29 tight glyph )
1375+220:9 glyph ?-
1376+220:12 name xs
1377+221:11 INDENT
1378+221:11 lit ~
1379+221:13 lit %.y
1380+222:11 NEWLINE
1381+222:11 glyph [
1382+222:12 tight name item
1383+222:17 name rest
1384+222:21 tight glyph ]
13881385223:13 INDENT
1389−223:13 lit %.y
1390−223:17 glyph (
1391−223:18 tight name levy
1392−223:23 name rest
1393−223:28 name predicate
1394−223:37 tight glyph )
1395−224:13 NEWLINE
1396−224:13 lit %.n
1397−224:17 lit %.n
1398−226:1 DEDENT
1399−226:1 DEDENT
1400−226:1 DEDENT
1401−226:1 DEDENT
1402−226:1 DEDENT
1403−226:1 DEDENT
1404−226:1 NEWLINE
1405−226:1 glyph ++
1406−226:4 name lien
1407−226:9 glyph |=
1408−226:12 name args
1409−226:16 tight glyph =
1410−226:17 tight glyph [
1411−226:18 tight glyph (
1412−226:19 tight name list
1413−226:24 tvar A
1414−226:25 tight glyph )
1415−226:27 glyph $-(
1416−226:30 tight tvar A
1417−226:32 glyph ?
1418−226:33 tight glyph )
1419−226:34 tight glyph ]
1420−227:3 INDENT
1421−227:3 glyph ?-
1422−227:6 name args
1423−228:5 INDENT
1424−228:5 glyph [
1425−228:6 tight name xs
1426−228:9 name predicate
1427−228:18 tight glyph ]
1428−229:7 INDENT
1429−229:7 glyph ?-
1430−229:10 name xs
1431−230:9 INDENT
1432−230:9 lit ~
1433−230:11 lit %.n
1434−231:9 NEWLINE
1435−231:9 glyph [
1436−231:10 tight name item
1437−231:15 name rest
1438−231:19 tight glyph ]
1386+223:13 glyph ?-
1387+223:16 glyph (
1388+223:17 tight name predicate
1389+223:27 name item
1390+223:31 tight glyph )
1391+224:15 INDENT
1392+224:15 lit %.y
1393+224:19 glyph (
1394+224:20 tight name levy
1395+224:25 name rest
1396+224:30 name predicate
1397+224:39 tight glyph )
1398+225:15 NEWLINE
1399+225:15 lit %.n
1400+225:19 lit %.n
1401+227:1 DEDENT
1402+227:1 DEDENT
1403+227:1 DEDENT
1404+227:1 DEDENT
1405+227:1 DEDENT
1406+227:1 DEDENT
1407+227:1 DEDENT
1408+227:1 NEWLINE
1409+227:1 glyph ++
1410+227:4 name lien
1411+227:9 glyph |=
1412+227:12 name args
1413+227:16 tight glyph =
1414+227:17 tight glyph [
1415+227:18 tight glyph (
1416+227:19 tight name list
1417+227:24 tvar A
1418+227:25 tight glyph )
1419+227:27 glyph $-(
1420+227:30 tight tvar A
1421+227:32 glyph ?
1422+227:33 tight glyph )
1423+227:34 tight glyph ]
1424+228:3 INDENT
1425+228:3 glyph ^-
1426+228:6 glyph ?
1427+229:5 INDENT
1428+229:5 glyph ?-
1429+229:8 name args
1430+230:7 INDENT
1431+230:7 glyph [
1432+230:8 tight name xs
1433+230:11 name predicate
1434+230:20 tight glyph ]
1435+231:9 INDENT
1436+231:9 glyph ?-
1437+231:12 name xs
14391438232:11 INDENT
1440−232:11 glyph ?-
1441−232:14 glyph (
1442−232:15 tight name predicate
1443−232:25 name item
1444−232:29 tight glyph )
1445−233:13 INDENT
1446−233:13 lit %.y
1447−233:17 lit %.y
1448−234:13 NEWLINE
1449−234:13 lit %.n
1450−234:17 glyph (
1451−234:18 tight name lien
1452−234:23 name rest
1453−234:28 name predicate
1454−234:37 tight glyph )
1455−236:1 DEDENT
1456−236:1 DEDENT
1457−236:1 DEDENT
1458−236:1 DEDENT
1459−236:1 DEDENT
1460−236:1 DEDENT
1461−236:1 NEWLINE
1462−236:1 glyph ++
1463−236:4 name roll
1464−236:9 glyph |=
1465−236:12 name args
1466−236:16 tight glyph =
1467−236:17 tight glyph [
1468−236:18 tight glyph (
1469−236:19 tight name list
1470−236:24 tvar A
1471−236:25 tight glyph )
1472−236:27 tvar B
1473−236:29 glyph $-(
1474−236:32 tight glyph [
1475−236:33 tight tvar A
1476−236:35 tvar B
1477−236:36 tight glyph ]
1478−236:38 tvar B
1439+232:11 lit ~
1440+232:13 lit %.n
1441+233:11 NEWLINE
1442+233:11 glyph [
1443+233:12 tight name item
1444+233:17 name rest
1445+233:21 tight glyph ]
1446+234:13 INDENT
1447+234:13 glyph ?-
1448+234:16 glyph (
1449+234:17 tight name predicate
1450+234:27 name item
1451+234:31 tight glyph )
1452+235:15 INDENT
1453+235:15 lit %.y
1454+235:19 lit %.y
1455+236:15 NEWLINE
1456+236:15 lit %.n
1457+236:19 glyph (
1458+236:20 tight name lien
1459+236:25 name rest
1460+236:30 name predicate
14791461236:39 tight glyph )
1480−236:40 tight glyph ]
1481−237:3 INDENT
1482−237:3 glyph ?-
1483−237:6 name args
1484−238:5 INDENT
1485−238:5 glyph [
1486−238:6 tight name xs
1487−238:9 name start
1488−238:15 name combine
1489−238:22 tight glyph ]
1490−239:7 INDENT
1491−239:7 glyph ?-
1492−239:10 name xs
1493−240:9 INDENT
1494−240:9 lit ~
1495−240:11 name start
1496−241:9 NEWLINE
1497−241:9 glyph [
1498−241:10 tight name item
1499−241:15 name rest
1500−241:19 tight glyph ]
1501−241:21 glyph (
1502−241:22 tight name roll
1503−241:27 name rest
1504−241:32 glyph (
1505−241:33 tight name combine
1506−241:41 name item
1507−241:46 name start
1508−241:51 tight glyph )
1509−241:53 name combine
1510−241:60 tight glyph )
1511−243:1 DEDENT
1512−243:1 DEDENT
1513−243:1 DEDENT
1514−243:1 DEDENT
1515−243:1 NEWLINE
1516−243:1 glyph ++
1517−243:4 name reel
1518−243:9 glyph |=
1519−243:12 name args
1520−243:16 tight glyph =
1521−243:17 tight glyph [
1522−243:18 tight glyph (
1523−243:19 tight name list
1524−243:24 tvar A
1525−243:25 tight glyph )
1526−243:27 tvar B
1527−243:29 glyph $-(
1528−243:32 tight glyph [
1529−243:33 tight tvar A
1530−243:35 tvar B
1531−243:36 tight glyph ]
1532−243:38 tvar B
1533−243:39 tight glyph )
1534−243:40 tight glyph ]
1535−244:3 INDENT
1536−244:3 glyph ?-
1537−244:6 name args
1538−245:5 INDENT
1539−245:5 glyph [
1540−245:6 tight name xs
1541−245:9 name start
1542−245:15 name combine
1543−245:22 tight glyph ]
1544−246:7 INDENT
1545−246:7 glyph ?-
1546−246:10 name xs
1547−247:9 INDENT
1548−247:9 lit ~
1549−247:11 name start
1550−248:9 NEWLINE
1551−248:9 glyph [
1552−248:10 tight name item
1553−248:15 name rest
1554−248:19 tight glyph ]
1555−248:21 glyph (
1556−248:22 tight name combine
1557−248:30 name item
1558−248:35 glyph (
1559−248:36 tight name reel
1560−248:41 name rest
1561−248:46 name start
1562−248:52 name combine
1563−248:59 tight glyph )
1564−248:60 tight glyph )
1565−250:1 DEDENT
1566−250:1 DEDENT
1567−250:1 DEDENT
1568−250:1 DEDENT
1569−250:1 NEWLINE
1570−250:1 glyph ++
1571−250:4 name flit
1572−250:9 glyph |=
1573−250:12 name predicate
1574−250:21 tight glyph =
1575−250:22 tight glyph $-(
1576−250:25 tight tvar A
1577−250:27 glyph ?
1578−250:28 tight glyph )
1579−251:3 INDENT
1580−251:3 glyph |=
1581−251:6 name value
1582−251:11 tight glyph =
1583−251:12 tight tvar A
1584−252:5 INDENT
1585−252:5 glyph ^-
1586−252:8 glyph (
1587−252:9 tight name unit
1588−252:14 tvar A
1589−252:15 tight glyph )
1590−253:7 INDENT
1591−253:7 glyph ?-
1592−253:10 glyph (
1593−253:11 tight name predicate
1594−253:21 name value
1595−253:26 tight glyph )
1596−254:9 INDENT
1597−254:9 lit %.y
1598−254:13 glyph `
1599−254:14 tight name value
1600−255:9 NEWLINE
1601−255:9 lit %.n
1602−255:13 lit ~
1603−257:1 DEDENT
1604−257:1 DEDENT
1605−257:1 DEDENT
1606−257:1 DEDENT
1607−257:1 NEWLINE
1608−257:1 glyph ++
1609−257:4 name murn
1610−257:9 glyph |=
1611−257:12 name args
1612−257:16 tight glyph =
1613−257:17 tight glyph [
1614−257:18 tight glyph (
1615−257:19 tight name list
1616−257:24 tvar A
1617−257:25 tight glyph )
1618−257:27 glyph $-(
1619−257:30 tight tvar A
1620−257:32 glyph (
1621−257:33 tight name unit
1622−257:38 tvar B
1623−257:39 tight glyph )
1624−257:40 tight glyph )
1625−257:41 tight glyph ]
1626−258:3 INDENT
1627−258:3 glyph ?-
1628−258:6 name args
1629−259:5 INDENT
1630−259:5 glyph [
1631−259:6 tight name xs
1632−259:9 name f
1633−259:10 tight glyph ]
1634−259:12 glyph ^-
1635−259:15 glyph (
1636−259:16 tight name list
1637−259:21 tvar B
1638−259:22 tight glyph )
1639−260:9 INDENT
1640−260:9 glyph ?-
1641−260:12 name xs
1642−261:11 INDENT
1643−261:11 lit ~
1644−261:13 lit ~
1645−262:11 NEWLINE
1646−262:11 glyph [
1647−262:12 tight name item
1648−262:17 name rest
1649−262:21 tight glyph ]
1650−263:13 INDENT
1651−263:13 glyph ?-
1652−263:16 glyph (
1653−263:17 tight name f
1654−263:19 name item
1655−263:23 tight glyph )
1656−264:15 INDENT
1657−264:15 lit ~
1658−264:17 glyph (
1659−264:18 tight name murn
1660−264:23 name rest
1661−264:28 name f
1662−264:29 tight glyph )
1663−265:15 NEWLINE
1664−265:15 glyph [
1665−265:16 tight lit ~
1666−265:18 name value
1667−265:23 tight glyph ]
1668−265:25 glyph [
1669−265:26 tight name value
1670−265:32 glyph (
1671−265:33 tight name murn
1672−265:38 name rest
1673−265:43 name f
1674−265:44 tight glyph )
1675−265:45 tight glyph ]
1676−267:1 DEDENT
1677−267:1 DEDENT
1678−267:1 DEDENT
1679−267:1 DEDENT
1680−267:1 DEDENT
1681−267:1 DEDENT
1682−267:1 NEWLINE
1683−267:1 glyph ++
1684−267:4 name join
1685−267:9 glyph |=
1686−267:12 name args
1687−267:16 tight glyph =
1688−267:17 tight glyph [
1689−267:18 tight tvar A
1690−267:20 glyph (
1691−267:21 tight name list
1692−267:26 tvar A
1693−267:27 tight glyph )
1694−267:28 tight glyph ]
1695−268:3 INDENT
1696−268:3 glyph ?-
1697−268:6 name args
1698−269:5 INDENT
1699−269:5 glyph [
1700−269:6 tight name separator
1701−269:16 name xs
1702−269:18 tight glyph ]
1703−269:20 glyph ^-
1704−269:23 glyph (
1705−269:24 tight name list
1706−269:29 tvar A
1707−269:30 tight glyph )
1708−270:9 INDENT
1709−270:9 glyph ?-
1710−270:12 name xs
1711−271:11 INDENT
1712−271:11 lit ~
1713−271:13 lit ~
1714−272:11 NEWLINE
1715−272:11 glyph [
1716−272:12 tight name item
1717−272:17 name rest
1718−272:21 tight glyph ]
1719−273:13 INDENT
1720−273:13 glyph ?-
1721−273:16 name rest
1722−274:15 INDENT
1723−274:15 lit ~
1724−274:17 glyph [
1725−274:18 tight name item
1726−274:23 lit ~
1727−274:24 tight glyph ]
1728−275:15 NEWLINE
1729−275:15 glyph [
1730−275:16 tight name next
1731−275:21 name more
1732−275:25 tight glyph ]
1733−275:27 glyph [
1734−275:28 tight name item
1735−275:33 glyph [
1736−275:34 tight name separator
1737−275:44 glyph (
1738−275:45 tight name join
1739−275:50 name separator
1740−275:60 name rest
1741−275:64 tight glyph )
1742−275:65 tight glyph ]
1743−275:66 tight glyph ]
1744−277:1 DEDENT
1745−277:1 DEDENT
1746−277:1 DEDENT
1747−277:1 DEDENT
1748−277:1 DEDENT
1749−277:1 DEDENT
1750−277:1 NEWLINE
1751−277:1 glyph ++
1752−277:4 name snip
1753−277:9 glyph |=
1754−277:12 name xs
1755−277:14 tight glyph =
1756−277:15 tight glyph (
1757−277:16 tight name list
1758−277:21 tvar A
1759−277:22 tight glyph )
1760−278:3 INDENT
1761−278:3 glyph ^-
1762−278:6 glyph (
1763−278:7 tight name list
1764−278:12 tvar A
1765−278:13 tight glyph )
1766−279:5 INDENT
1767−279:5 glyph ?-
1768−279:8 name xs
1769−280:7 INDENT
1770−280:7 lit ~
1771−280:9 lit ~
1772−281:7 NEWLINE
1773−281:7 glyph [
1774−281:8 tight name item
1775−281:13 name rest
1776−281:17 tight glyph ]
1777−282:9 INDENT
1778−282:9 glyph ?-
1779−282:12 name rest
1780−283:11 INDENT
1781−283:11 lit ~
1782−283:13 lit ~
1783−284:11 NEWLINE
1784−284:11 glyph [
1785−284:12 tight name next
1786−284:17 name more
1787−284:21 tight glyph ]
1788−284:23 glyph [
1789−284:24 tight name item
1790−284:29 glyph (
1791−284:30 tight name snip
1792−284:35 name rest
1793−284:39 tight glyph )
1794−284:40 tight glyph ]
1795−286:1 DEDENT
1796−286:1 DEDENT
1797−286:1 DEDENT
1798−286:1 DEDENT
1799−286:1 DEDENT
1800−286:1 NEWLINE
1801−286:1 glyph ++
1802−286:4 name rear
1803−286:9 glyph |=
1804−286:12 name xs
1805−286:14 tight glyph =
1806−286:15 tight glyph (
1807−286:16 tight name list
1808−286:21 tvar A
1809−286:22 tight glyph )
1810−287:3 INDENT
1811−287:3 glyph ?-
1812−287:6 name xs
1813−288:5 INDENT
1814−288:5 lit ~
1815−288:7 glyph !!
1816−289:5 NEWLINE
1817−289:5 glyph [
1818−289:6 tight name item
1819−289:11 name rest
1820−289:15 tight glyph ]
1821−290:7 INDENT
1822−290:7 glyph ?-
1823−290:10 name rest
1824−291:9 INDENT
1825−291:9 lit ~
1826−291:11 name item
1827−292:9 NEWLINE
1828−292:9 glyph [
1829−292:10 tight name next
1830−292:15 name more
1831−292:19 tight glyph ]
1832−292:21 glyph (
1833−292:22 tight name rear
1834−292:27 name rest
1835−292:31 tight glyph )
1836−294:1 DEDENT
1837−294:1 DEDENT
1838−294:1 DEDENT
1839−294:1 DEDENT
1840−294:1 NEWLINE
1841−294:1 glyph ++
1842−294:4 name cork
1843−294:9 glyph |=
1844−294:12 name gates
1845−294:17 tight glyph =
1846−294:18 tight glyph [
1847−294:19 tight glyph $-(
1848−294:22 tight tvar A
1849−294:24 tvar B
1850−294:25 tight glyph )
1851−294:27 glyph $-(
1852−294:30 tight tvar B
1853−294:32 tvar C
1854−294:33 tight glyph )
1855−294:34 tight glyph ]
1856−295:3 INDENT
1857−295:3 glyph ?-
1858−295:6 name gates
1859−296:5 INDENT
1860−296:5 glyph [
1861−296:6 tight name f
1862−296:8 name g
1863−296:9 tight glyph ]
1864−296:11 glyph |=
1865−296:14 name x
1866−296:15 tight glyph =
1867−296:16 tight tvar A
1868−296:18 glyph (
1869−296:19 tight name g
1870−296:21 glyph (
1871−296:22 tight name f
1872−296:24 name x
1462+238:1 DEDENT
1463+238:1 DEDENT
1464+238:1 DEDENT
1465+238:1 DEDENT
1466+238:1 DEDENT
1467+238:1 DEDENT
1468+238:1 DEDENT
1469+238:1 NEWLINE
1470+238:1 glyph ++
1471+238:4 name roll
1472+238:9 glyph |=
1473+238:12 name args
1474+238:16 tight glyph =
1475+238:17 tight glyph [
1476+238:18 tight glyph (
1477+238:19 tight name list
1478+238:24 tvar A
1479+238:25 tight glyph )
1480+238:27 tvar B
1481+238:29 glyph $-(
1482+238:32 tight glyph [
1483+238:33 tight tvar A
1484+238:35 tvar B
1485+238:36 tight glyph ]
1486+238:38 tvar B
1487+238:39 tight glyph )
1488+238:40 tight glyph ]
1489+239:3 INDENT
1490+239:3 glyph ?-
1491+239:6 name args
1492+240:5 INDENT
1493+240:5 glyph [
1494+240:6 tight name xs
1495+240:9 name start
1496+240:15 name combine
1497+240:22 tight glyph ]
1498+241:7 INDENT
1499+241:7 glyph ?-
1500+241:10 name xs
1501+242:9 INDENT
1502+242:9 lit ~
1503+242:11 name start
1504+243:9 NEWLINE
1505+243:9 glyph [
1506+243:10 tight name item
1507+243:15 name rest
1508+243:19 tight glyph ]
1509+243:21 glyph (
1510+243:22 tight name roll
1511+243:27 name rest
1512+243:32 glyph (
1513+243:33 tight name combine
1514+243:41 name item
1515+243:46 name start
1516+243:51 tight glyph )
1517+243:53 name combine
1518+243:60 tight glyph )
1519+245:1 DEDENT
1520+245:1 DEDENT
1521+245:1 DEDENT
1522+245:1 DEDENT
1523+245:1 NEWLINE
1524+245:1 glyph ++
1525+245:4 name reel
1526+245:9 glyph |=
1527+245:12 name args
1528+245:16 tight glyph =
1529+245:17 tight glyph [
1530+245:18 tight glyph (
1531+245:19 tight name list
1532+245:24 tvar A
1533+245:25 tight glyph )
1534+245:27 tvar B
1535+245:29 glyph $-(
1536+245:32 tight glyph [
1537+245:33 tight tvar A
1538+245:35 tvar B
1539+245:36 tight glyph ]
1540+245:38 tvar B
1541+245:39 tight glyph )
1542+245:40 tight glyph ]
1543+246:3 INDENT
1544+246:3 glyph ?-
1545+246:6 name args
1546+247:5 INDENT
1547+247:5 glyph [
1548+247:6 tight name xs
1549+247:9 name start
1550+247:15 name combine
1551+247:22 tight glyph ]
1552+248:7 INDENT
1553+248:7 glyph ?-
1554+248:10 name xs
1555+249:9 INDENT
1556+249:9 lit ~
1557+249:11 name start
1558+250:9 NEWLINE
1559+250:9 glyph [
1560+250:10 tight name item
1561+250:15 name rest
1562+250:19 tight glyph ]
1563+250:21 glyph (
1564+250:22 tight name combine
1565+250:30 name item
1566+250:35 glyph (
1567+250:36 tight name reel
1568+250:41 name rest
1569+250:46 name start
1570+250:52 name combine
1571+250:59 tight glyph )
1572+250:60 tight glyph )
1573+252:1 DEDENT
1574+252:1 DEDENT
1575+252:1 DEDENT
1576+252:1 DEDENT
1577+252:1 NEWLINE
1578+252:1 glyph ++
1579+252:4 name flit
1580+252:9 glyph |=
1581+252:12 name predicate
1582+252:21 tight glyph =
1583+252:22 tight glyph $-(
1584+252:25 tight tvar A
1585+252:27 glyph ?
1586+252:28 tight glyph )
1587+253:3 INDENT
1588+253:3 glyph |=
1589+253:6 name value
1590+253:11 tight glyph =
1591+253:12 tight tvar A
1592+254:5 INDENT
1593+254:5 glyph ^-
1594+254:8 glyph (
1595+254:9 tight name unit
1596+254:14 tvar A
1597+254:15 tight glyph )
1598+255:7 INDENT
1599+255:7 glyph ?-
1600+255:10 glyph (
1601+255:11 tight name predicate
1602+255:21 name value
1603+255:26 tight glyph )
1604+256:9 INDENT
1605+256:9 lit %.y
1606+256:13 glyph `
1607+256:14 tight name value
1608+257:9 NEWLINE
1609+257:9 lit %.n
1610+257:13 lit ~
1611+259:1 DEDENT
1612+259:1 DEDENT
1613+259:1 DEDENT
1614+259:1 DEDENT
1615+259:1 NEWLINE
1616+259:1 glyph ++
1617+259:4 name murn
1618+259:9 glyph |=
1619+259:12 name args
1620+259:16 tight glyph =
1621+259:17 tight glyph [
1622+259:18 tight glyph (
1623+259:19 tight name list
1624+259:24 tvar A
1625+259:25 tight glyph )
1626+259:27 glyph $-(
1627+259:30 tight tvar A
1628+259:32 glyph (
1629+259:33 tight name unit
1630+259:38 tvar B
1631+259:39 tight glyph )
1632+259:40 tight glyph )
1633+259:41 tight glyph ]
1634+260:3 INDENT
1635+260:3 glyph ?-
1636+260:6 name args
1637+261:5 INDENT
1638+261:5 glyph [
1639+261:6 tight name xs
1640+261:9 name f
1641+261:10 tight glyph ]
1642+261:12 glyph ^-
1643+261:15 glyph (
1644+261:16 tight name list
1645+261:21 tvar B
1646+261:22 tight glyph )
1647+262:9 INDENT
1648+262:9 glyph ?-
1649+262:12 name xs
1650+263:11 INDENT
1651+263:11 lit ~
1652+263:13 lit ~
1653+264:11 NEWLINE
1654+264:11 glyph [
1655+264:12 tight name item
1656+264:17 name rest
1657+264:21 tight glyph ]
1658+265:13 INDENT
1659+265:13 glyph ?-
1660+265:16 glyph (
1661+265:17 tight name f
1662+265:19 name item
1663+265:23 tight glyph )
1664+266:15 INDENT
1665+266:15 lit ~
1666+266:17 glyph (
1667+266:18 tight name murn
1668+266:23 name rest
1669+266:28 name f
1670+266:29 tight glyph )
1671+267:15 NEWLINE
1672+267:15 glyph [
1673+267:16 tight lit ~
1674+267:18 name value
1675+267:23 tight glyph ]
1676+267:25 glyph [
1677+267:26 tight name value
1678+267:32 glyph (
1679+267:33 tight name murn
1680+267:38 name rest
1681+267:43 name f
1682+267:44 tight glyph )
1683+267:45 tight glyph ]
1684+269:1 DEDENT
1685+269:1 DEDENT
1686+269:1 DEDENT
1687+269:1 DEDENT
1688+269:1 DEDENT
1689+269:1 DEDENT
1690+269:1 NEWLINE
1691+269:1 glyph ++
1692+269:4 name join
1693+269:9 glyph |=
1694+269:12 name args
1695+269:16 tight glyph =
1696+269:17 tight glyph [
1697+269:18 tight tvar A
1698+269:20 glyph (
1699+269:21 tight name list
1700+269:26 tvar A
1701+269:27 tight glyph )
1702+269:28 tight glyph ]
1703+270:3 INDENT
1704+270:3 glyph ?-
1705+270:6 name args
1706+271:5 INDENT
1707+271:5 glyph [
1708+271:6 tight name separator
1709+271:16 name xs
1710+271:18 tight glyph ]
1711+271:20 glyph ^-
1712+271:23 glyph (
1713+271:24 tight name list
1714+271:29 tvar A
1715+271:30 tight glyph )
1716+272:9 INDENT
1717+272:9 glyph ?-
1718+272:12 name xs
1719+273:11 INDENT
1720+273:11 lit ~
1721+273:13 lit ~
1722+274:11 NEWLINE
1723+274:11 glyph [
1724+274:12 tight name item
1725+274:17 name rest
1726+274:21 tight glyph ]
1727+275:13 INDENT
1728+275:13 glyph ?-
1729+275:16 name rest
1730+276:15 INDENT
1731+276:15 lit ~
1732+276:17 glyph [
1733+276:18 tight name item
1734+276:23 lit ~
1735+276:24 tight glyph ]
1736+277:15 NEWLINE
1737+277:15 glyph [
1738+277:16 tight name next
1739+277:21 name more
1740+277:25 tight glyph ]
1741+277:27 glyph [
1742+277:28 tight name item
1743+277:33 glyph [
1744+277:34 tight name separator
1745+277:44 glyph (
1746+277:45 tight name join
1747+277:50 name separator
1748+277:60 name rest
1749+277:64 tight glyph )
1750+277:65 tight glyph ]
1751+277:66 tight glyph ]
1752+279:1 DEDENT
1753+279:1 DEDENT
1754+279:1 DEDENT
1755+279:1 DEDENT
1756+279:1 DEDENT
1757+279:1 DEDENT
1758+279:1 NEWLINE
1759+279:1 glyph ++
1760+279:4 name snip
1761+279:9 glyph |=
1762+279:12 name xs
1763+279:14 tight glyph =
1764+279:15 tight glyph (
1765+279:16 tight name list
1766+279:21 tvar A
1767+279:22 tight glyph )
1768+280:3 INDENT
1769+280:3 glyph ^-
1770+280:6 glyph (
1771+280:7 tight name list
1772+280:12 tvar A
1773+280:13 tight glyph )
1774+281:5 INDENT
1775+281:5 glyph ?-
1776+281:8 name xs
1777+282:7 INDENT
1778+282:7 lit ~
1779+282:9 lit ~
1780+283:7 NEWLINE
1781+283:7 glyph [
1782+283:8 tight name item
1783+283:13 name rest
1784+283:17 tight glyph ]
1785+284:9 INDENT
1786+284:9 glyph ?-
1787+284:12 name rest
1788+285:11 INDENT
1789+285:11 lit ~
1790+285:13 lit ~
1791+286:11 NEWLINE
1792+286:11 glyph [
1793+286:12 tight name next
1794+286:17 name more
1795+286:21 tight glyph ]
1796+286:23 glyph [
1797+286:24 tight name item
1798+286:29 glyph (
1799+286:30 tight name snip
1800+286:35 name rest
1801+286:39 tight glyph )
1802+286:40 tight glyph ]
1803+288:1 DEDENT
1804+288:1 DEDENT
1805+288:1 DEDENT
1806+288:1 DEDENT
1807+288:1 DEDENT
1808+288:1 NEWLINE
1809+288:1 glyph ++
1810+288:4 name rear
1811+288:9 glyph |=
1812+288:12 name xs
1813+288:14 tight glyph =
1814+288:15 tight glyph (
1815+288:16 tight name list
1816+288:21 tvar A
1817+288:22 tight glyph )
1818+289:3 INDENT
1819+289:3 glyph ?-
1820+289:6 name xs
1821+290:5 INDENT
1822+290:5 lit ~
1823+290:7 glyph !!
1824+291:5 NEWLINE
1825+291:5 glyph [
1826+291:6 tight name item
1827+291:11 name rest
1828+291:15 tight glyph ]
1829+292:7 INDENT
1830+292:7 glyph ?-
1831+292:10 name rest
1832+293:9 INDENT
1833+293:9 lit ~
1834+293:11 name item
1835+294:9 NEWLINE
1836+294:9 glyph [
1837+294:10 tight name next
1838+294:15 name more
1839+294:19 tight glyph ]
1840+294:21 glyph (
1841+294:22 tight name rear
1842+294:27 name rest
1843+294:31 tight glyph )
1844+296:1 DEDENT
1845+296:1 DEDENT
1846+296:1 DEDENT
1847+296:1 DEDENT
1848+296:1 NEWLINE
1849+296:1 glyph ++
1850+296:4 name cork
1851+296:9 glyph |=
1852+296:12 name gates
1853+296:17 tight glyph =
1854+296:18 tight glyph [
1855+296:19 tight glyph $-(
1856+296:22 tight tvar A
1857+296:24 tvar B
18731858296:25 tight glyph )
1874−296:26 tight glyph )
1875−298:1 DEDENT
1876−298:1 DEDENT
1877−298:1 NEWLINE
1878−298:1 glyph ++
1879−298:4 name corl
1880−298:9 glyph |=
1881−298:12 name gates
1882−298:17 tight glyph =
1883−298:18 tight glyph [
1884−298:19 tight glyph $-(
1885−298:22 tight tvar B
1886−298:24 tvar C
1859+296:27 glyph $-(
1860+296:30 tight tvar B
1861+296:32 tvar C
1862+296:33 tight glyph )
1863+296:34 tight glyph ]
1864+297:3 INDENT
1865+297:3 glyph ?-
1866+297:6 name gates
1867+298:5 INDENT
1868+298:5 glyph [
1869+298:6 tight name f
1870+298:8 name g
1871+298:9 tight glyph ]
1872+298:11 glyph |=
1873+298:14 name x
1874+298:15 tight glyph =
1875+298:16 tight tvar A
1876+298:18 glyph (
1877+298:19 tight name g
1878+298:21 glyph (
1879+298:22 tight name f
1880+298:24 name x
18871881298:25 tight glyph )
1888−298:27 glyph $-(
1889−298:30 tight tvar A
1890−298:32 tvar B
1891−298:33 tight glyph )
1892−298:34 tight glyph ]
1893−299:3 INDENT
1894−299:3 glyph ?-
1895−299:6 name gates
1896−300:5 INDENT
1897−300:5 glyph [
1898−300:6 tight name f
1899−300:8 name g
1900−300:9 tight glyph ]
1901−300:11 glyph |=
1902−300:14 name x
1903−300:15 tight glyph =
1904−300:16 tight tvar A
1905−300:18 glyph (
1906−300:19 tight name f
1907−300:21 glyph (
1908−300:22 tight name g
1909−300:24 name x
1882+298:26 tight glyph )
1883+300:1 DEDENT
1884+300:1 DEDENT
1885+300:1 NEWLINE
1886+300:1 glyph ++
1887+300:4 name corl
1888+300:9 glyph |=
1889+300:12 name gates
1890+300:17 tight glyph =
1891+300:18 tight glyph [
1892+300:19 tight glyph $-(
1893+300:22 tight tvar B
1894+300:24 tvar C
19101895300:25 tight glyph )
1911−300:26 tight glyph )
1912−302:1 DEDENT
1913−302:1 DEDENT
1914−302:1 NEWLINE
1915−302:1 glyph ++
1916−302:4 name cury
1917−302:9 glyph |=
1918−302:12 name args
1919−302:16 tight glyph =
1920−302:17 tight glyph [
1921−302:18 tight glyph $-(
1922−302:21 tight glyph [
1923−302:22 tight tvar A
1924−302:24 tvar B
1925−302:25 tight glyph ]
1926−302:27 tvar C
1927−302:28 tight glyph )
1928−302:30 tvar A
1929−302:31 tight glyph ]
1930−303:3 INDENT
1931−303:3 glyph ?-
1932−303:6 name args
1933−304:5 INDENT
1934−304:5 glyph [
1935−304:6 tight name f
1936−304:8 name a
1937−304:9 tight glyph ]
1938−304:11 glyph |=
1939−304:14 name b
1940−304:15 tight glyph =
1941−304:16 tight tvar B
1942−304:18 glyph (
1943−304:19 tight name f
1944−304:21 name a
1945−304:23 name b
1946−304:24 tight glyph )
1947−306:1 DEDENT
1948−306:1 DEDENT
1949−306:1 NEWLINE
1950−306:1 glyph ++
1951−306:4 name curr
1952−306:9 glyph |=
1953−306:12 name args
1954−306:16 tight glyph =
1955−306:17 tight glyph [
1956−306:18 tight glyph $-(
1957−306:21 tight glyph [
1958−306:22 tight tvar A
1959−306:24 tvar B
1960−306:25 tight glyph ]
1961−306:27 tvar C
1962−306:28 tight glyph )
1963−306:30 tvar B
1964−306:31 tight glyph ]
1965−307:3 INDENT
1966−307:3 glyph ?-
1967−307:6 name args
1968−308:5 INDENT
1969−308:5 glyph [
1970−308:6 tight name f
1971−308:8 name b
1972−308:9 tight glyph ]
1973−308:11 glyph |=
1974−308:14 name a
1975−308:15 tight glyph =
1976−308:16 tight tvar A
1977−308:18 glyph (
1978−308:19 tight name f
1979−308:21 name a
1980−308:23 name b
1981−308:24 tight glyph )
1982−310:1 DEDENT
1983−310:1 DEDENT
1984−310:1 NEWLINE
1985−310:1 glyph +$
1986−310:4 name cmd
1987−310:8 glyph |$
1988−310:11 glyph [
1989−310:12 tight tvar M
1990−310:13 tight glyph ]
1991−311:3 INDENT
1992−311:3 glyph [
1993−311:4 tight lit %poke
1994−311:10 name p
1995−311:11 tight glyph =
1996−311:12 tight name poke
1997−311:17 name reply
1998−311:22 tight glyph =
1999−311:23 tight glyph $-(
2000−311:26 tight glyph (
2001−311:27 tight name unit
2002−311:32 aura @t
2003−311:34 tight glyph )
2004−311:36 tvar M
2005−311:37 tight glyph )
2006−311:38 tight glyph ]
2007−312:3 NEWLINE
2008−312:3 glyph [
2009−312:4 tight lit %go
2010−312:8 name url
2011−312:11 tight glyph =
2012−312:12 tight aura @t
2013−312:14 tight glyph ]
2014−313:3 NEWLINE
1896+300:27 glyph $-(
1897+300:30 tight tvar A
1898+300:32 tvar B
1899+300:33 tight glyph )
1900+300:34 tight glyph ]
1901+301:3 INDENT
1902+301:3 glyph ?-
1903+301:6 name gates
1904+302:5 INDENT
1905+302:5 glyph [
1906+302:6 tight name f
1907+302:8 name g
1908+302:9 tight glyph ]
1909+302:11 glyph |=
1910+302:14 name x
1911+302:15 tight glyph =
1912+302:16 tight tvar A
1913+302:18 glyph (
1914+302:19 tight name f
1915+302:21 glyph (
1916+302:22 tight name g
1917+302:24 name x
1918+302:25 tight glyph )
1919+302:26 tight glyph )
1920+304:1 DEDENT
1921+304:1 DEDENT
1922+304:1 NEWLINE
1923+304:1 glyph ++
1924+304:4 name cury
1925+304:9 glyph |=
1926+304:12 name args
1927+304:16 tight glyph =
1928+304:17 tight glyph [
1929+304:18 tight glyph $-(
1930+304:21 tight glyph [
1931+304:22 tight tvar A
1932+304:24 tvar B
1933+304:25 tight glyph ]
1934+304:27 tvar C
1935+304:28 tight glyph )
1936+304:30 tvar A
1937+304:31 tight glyph ]
1938+305:3 INDENT
1939+305:3 glyph ?-
1940+305:6 name args
1941+306:5 INDENT
1942+306:5 glyph [
1943+306:6 tight name f
1944+306:8 name a
1945+306:9 tight glyph ]
1946+306:11 glyph |=
1947+306:14 name b
1948+306:15 tight glyph =
1949+306:16 tight tvar B
1950+306:18 glyph (
1951+306:19 tight name f
1952+306:21 name a
1953+306:23 name b
1954+306:24 tight glyph )
1955+308:1 DEDENT
1956+308:1 DEDENT
1957+308:1 NEWLINE
1958+308:1 glyph ++
1959+308:4 name curr
1960+308:9 glyph |=
1961+308:12 name args
1962+308:16 tight glyph =
1963+308:17 tight glyph [
1964+308:18 tight glyph $-(
1965+308:21 tight glyph [
1966+308:22 tight tvar A
1967+308:24 tvar B
1968+308:25 tight glyph ]
1969+308:27 tvar C
1970+308:28 tight glyph )
1971+308:30 tvar B
1972+308:31 tight glyph ]
1973+309:3 INDENT
1974+309:3 glyph ?-
1975+309:6 name args
1976+310:5 INDENT
1977+310:5 glyph [
1978+310:6 tight name f
1979+310:8 name b
1980+310:9 tight glyph ]
1981+310:11 glyph |=
1982+310:14 name a
1983+310:15 tight glyph =
1984+310:16 tight tvar A
1985+310:18 glyph (
1986+310:19 tight name f
1987+310:21 name a
1988+310:23 name b
1989+310:24 tight glyph )
1990+312:1 DEDENT
1991+312:1 DEDENT
1992+312:1 NEWLINE
1993+312:1 glyph +$
1994+312:4 name cmd
1995+312:8 glyph |$
1996+312:11 glyph [
1997+312:12 tight tvar M
1998+312:13 tight glyph ]
1999+313:3 INDENT
20152000313:3 glyph [
2016−313:4 tight lit %wait
2017−313:10 name gap
2018−313:13 tight glyph =
2019−313:14 tight aura @dr
2020−313:18 name msg
2021−313:21 tight glyph =
2022−313:22 tight tvar M
2023−313:23 tight glyph ]
2001+313:4 tight lit %poke
2002+313:10 name p
2003+313:11 tight glyph =
2004+313:12 tight name poke
2005+313:17 name reply
2006+313:22 tight glyph =
2007+313:23 tight glyph $-(
2008+313:26 tight glyph (
2009+313:27 tight name unit
2010+313:32 aura @t
2011+313:34 tight glyph )
2012+313:36 tvar M
2013+313:37 tight glyph )
2014+313:38 tight glyph ]
20242015314:3 NEWLINE
20252016314:3 glyph [
2026−314:4 tight lit %now
2027−314:9 name reply
2028−314:14 tight glyph =
2029−314:15 tight glyph $-(
2030−314:18 tight aura @da
2031−314:22 tvar M
2032−314:23 tight glyph )
2033−314:24 tight glyph ]
2017+314:4 tight lit %go
2018+314:8 name url
2019+314:11 tight glyph =
2020+314:12 tight aura @t
2021+314:14 tight glyph ]
20342022315:3 NEWLINE
20352023315:3 glyph [
2036−315:4 tight lit %who
2037−315:9 name reply
2038−315:14 tight glyph =
2039−315:15 tight glyph $-(
2040−315:18 tight aura @p
2041−315:21 tvar M
2042−315:22 tight glyph )
2024+315:4 tight lit %wait
2025+315:10 name gap
2026+315:13 tight glyph =
2027+315:14 tight aura @dr
2028+315:18 name msg
2029+315:21 tight glyph =
2030+315:22 tight tvar M
20432031315:23 tight glyph ]
2044−315:24 DEDENT
2045−315:24 NEWLINE
2032+316:3 NEWLINE
2033+316:3 glyph [
2034+316:4 tight lit %now
2035+316:9 name reply
2036+316:14 tight glyph =
2037+316:15 tight glyph $-(
2038+316:18 tight aura @da
2039+316:22 tvar M
2040+316:23 tight glyph )
2041+316:24 tight glyph ]
2042+317:3 NEWLINE
2043+317:3 glyph [
2044+317:4 tight lit %who
2045+317:9 name reply
2046+317:14 tight glyph =
2047+317:15 tight glyph $-(
2048+317:18 tight aura @p
2049+317:21 tvar M
2050+317:22 tight glyph )
2051+317:23 tight glyph ]
2052+317:24 DEDENT
2053+317:24 NEWLINE
tests/golden/prelude-unit-list-transforms/tree.txt+323−317
@@ -567,323 +567,329 @@
567567 (apply 216:18 list (tvar 216:24 A))
568568 (fn 216:27 (tvar 216:30 A) (flag 216:32))))
569569 (body 217:3
570− (branch 217:3
571− (wing 217:6 args)
572− (arm 218:5
573− (cell 218:5 (bind 218:6 xs) (bind 218:9 predicate))
574− (body 219:7
575− (branch 219:7
576− (wing 219:10 xs)
577− (arm 220:9 (lit 220:9 ~) (lit 220:11 %.y))
578− (arm 221:9
579− (cell 221:9 (bind 221:10 item) (bind 221:15 rest))
580− (body 222:11
581− (branch 222:11
582− (group 222:14
583− (call 222:15 (wing 222:15 predicate) (wing 222:25 item)))
584− (arm 223:13
585− (lit 223:13 %.y)
586− (group 223:17
587− (call 223:18 (wing 223:18 levy) (wing 223:23 rest) (wing 223:28 predicate))))
588− (arm 224:13 (lit 224:13 %.n) (lit 224:17 %.n))))))))))))
589− (value 226:1 lien
590− (gate 226:9
591− (face 226:12 args
592− (cell 226:17
593− (apply 226:18 list (tvar 226:24 A))
594− (fn 226:27 (tvar 226:30 A) (flag 226:32))))
595− (body 227:3
596− (branch 227:3
597− (wing 227:6 args)
598− (arm 228:5
599− (cell 228:5 (bind 228:6 xs) (bind 228:9 predicate))
600− (body 229:7
601− (branch 229:7
602− (wing 229:10 xs)
603− (arm 230:9 (lit 230:9 ~) (lit 230:11 %.n))
604− (arm 231:9
605− (cell 231:9 (bind 231:10 item) (bind 231:15 rest))
606− (body 232:11
607− (branch 232:11
608− (group 232:14
609− (call 232:15 (wing 232:15 predicate) (wing 232:25 item)))
610− (arm 233:13 (lit 233:13 %.y) (lit 233:17 %.y))
611− (arm 234:13
612− (lit 234:13 %.n)
613− (group 234:17
614− (call 234:18 (wing 234:18 lien) (wing 234:23 rest) (wing 234:28 predicate))))))))))))))
615− (value 236:1 roll
616− (gate 236:9
617− (face 236:12 args
618− (cell 236:17
619− (apply 236:18 list (tvar 236:24 A))
620− (tvar 236:27 B)
621− (fn 236:29
622− (cell 236:32 (tvar 236:33 A) (tvar 236:35 B))
623− (tvar 236:38 B))))
624− (body 237:3
625− (branch 237:3
626− (wing 237:6 args)
627− (arm 238:5
628− (cell 238:5 (bind 238:6 xs) (bind 238:9 start) (bind 238:15 combine))
629− (body 239:7
630− (branch 239:7
631− (wing 239:10 xs)
632− (arm 240:9 (lit 240:9 ~) (wing 240:11 start))
633− (arm 241:9
634− (cell 241:9 (bind 241:10 item) (bind 241:15 rest))
635− (group 241:21
636− (call 241:22
637− (wing 241:22 roll)
638− (wing 241:27 rest)
639− (group 241:32
640− (call 241:33 (wing 241:33 combine) (wing 241:41 item) (wing 241:46 start)))
641− (wing 241:53 combine)))))))))))
642− (value 243:1 reel
643− (gate 243:9
644− (face 243:12 args
645− (cell 243:17
646− (apply 243:18 list (tvar 243:24 A))
647− (tvar 243:27 B)
648− (fn 243:29
649− (cell 243:32 (tvar 243:33 A) (tvar 243:35 B))
650− (tvar 243:38 B))))
651− (body 244:3
652− (branch 244:3
653− (wing 244:6 args)
654− (arm 245:5
655− (cell 245:5 (bind 245:6 xs) (bind 245:9 start) (bind 245:15 combine))
656− (body 246:7
657− (branch 246:7
658− (wing 246:10 xs)
659− (arm 247:9 (lit 247:9 ~) (wing 247:11 start))
660− (arm 248:9
661− (cell 248:9 (bind 248:10 item) (bind 248:15 rest))
662− (group 248:21
663− (call 248:22
664− (wing 248:22 combine)
665− (wing 248:30 item)
666− (group 248:35
667− (call 248:36 (wing 248:36 reel) (wing 248:41 rest) (wing 248:46 start) (wing 248:52 combine)))))))))))))
668− (value 250:1 flit
669− (gate 250:9
670− (face 250:12 predicate
671− (fn 250:22 (tvar 250:25 A) (flag 250:27)))
672− (body 251:3
673− (gate 251:3
674− (face 251:6 value (tvar 251:12 A))
675− (body 252:5
676− (cast 252:5
677− (apply 252:8 unit (tvar 252:14 A))
678− (body 253:7
679− (branch 253:7
680− (group 253:10
681− (call 253:11 (wing 253:11 predicate) (wing 253:21 value)))
682− (arm 254:9
683− (lit 254:9 %.y)
684− (unit 254:13 (wing 254:14 value)))
685− (arm 255:9 (lit 255:9 %.n) (lit 255:13 ~))))))))))
686− (value 257:1 murn
687− (gate 257:9
688− (face 257:12 args
689− (cell 257:17
690− (apply 257:18 list (tvar 257:24 A))
691− (fn 257:27
692− (tvar 257:30 A)
693− (apply 257:32 unit (tvar 257:38 B)))))
694− (body 258:3
695− (branch 258:3
696− (wing 258:6 args)
697− (arm 259:5
698− (cell 259:5 (bind 259:6 xs) (bind 259:9 f))
699− (cast 259:12
700− (apply 259:15 list (tvar 259:21 B))
701− (body 260:9
702− (branch 260:9
703− (wing 260:12 xs)
704− (arm 261:11 (lit 261:11 ~) (lit 261:13 ~))
705− (arm 262:11
706− (cell 262:11 (bind 262:12 item) (bind 262:17 rest))
707− (body 263:13
708− (branch 263:13
709− (group 263:16
710− (call 263:17 (wing 263:17 f) (wing 263:19 item)))
711− (arm 264:15
712− (lit 264:15 ~)
713− (group 264:17
714− (call 264:18 (wing 264:18 murn) (wing 264:23 rest) (wing 264:28 f))))
715− (arm 265:15
716− (cell 265:15 (lit 265:16 ~) (bind 265:18 value))
717− (tuple 265:25
718− (wing 265:26 value)
719− (group 265:32
720− (call 265:33 (wing 265:33 murn) (wing 265:38 rest) (wing 265:43 f))))))))))))))))
721− (value 267:1 join
722− (gate 267:9
723− (face 267:12 args
724− (cell 267:17
725− (tvar 267:18 A)
726− (apply 267:20 list (tvar 267:26 A))))
727− (body 268:3
728− (branch 268:3
729− (wing 268:6 args)
730− (arm 269:5
731− (cell 269:5 (bind 269:6 separator) (bind 269:16 xs))
732− (cast 269:20
733− (apply 269:23 list (tvar 269:29 A))
734− (body 270:9
735− (branch 270:9
736− (wing 270:12 xs)
737− (arm 271:11 (lit 271:11 ~) (lit 271:13 ~))
738− (arm 272:11
739− (cell 272:11 (bind 272:12 item) (bind 272:17 rest))
740− (body 273:13
741− (branch 273:13
742− (wing 273:16 rest)
743− (arm 274:15
744− (lit 274:15 ~)
745− (tuple 274:17 (wing 274:18 item) (lit 274:23 ~)))
746− (arm 275:15
747− (cell 275:15 (bind 275:16 next) (bind 275:21 more))
748− (tuple 275:27
749− (wing 275:28 item)
750− (tuple 275:33
751− (wing 275:34 separator)
752− (group 275:44
753− (call 275:45 (wing 275:45 join) (wing 275:50 separator) (wing 275:60 rest)))))))))))))))))
754− (value 277:1 snip
755− (gate 277:9
756− (face 277:12 xs
757− (apply 277:15 list (tvar 277:21 A)))
758− (body 278:3
759− (cast 278:3
760− (apply 278:6 list (tvar 278:12 A))
761− (body 279:5
762− (branch 279:5
763− (wing 279:8 xs)
764− (arm 280:7 (lit 280:7 ~) (lit 280:9 ~))
765− (arm 281:7
766− (cell 281:7 (bind 281:8 item) (bind 281:13 rest))
767− (body 282:9
768− (branch 282:9
769− (wing 282:12 rest)
770− (arm 283:11 (lit 283:11 ~) (lit 283:13 ~))
771− (arm 284:11
772− (cell 284:11 (bind 284:12 next) (bind 284:17 more))
773− (tuple 284:23
774− (wing 284:24 item)
775− (group 284:29
776− (call 284:30 (wing 284:30 snip) (wing 284:35 rest))))))))))))))
777− (value 286:1 rear
778− (gate 286:9
779− (face 286:12 xs
780− (apply 286:15 list (tvar 286:21 A)))
781− (body 287:3
782− (branch 287:3
783− (wing 287:6 xs)
784− (arm 288:5 (lit 288:5 ~) (crash 288:7))
785− (arm 289:5
786− (cell 289:5 (bind 289:6 item) (bind 289:11 rest))
787− (body 290:7
788− (branch 290:7
789− (wing 290:10 rest)
790− (arm 291:9 (lit 291:9 ~) (wing 291:11 item))
791− (arm 292:9
792− (cell 292:9 (bind 292:10 next) (bind 292:15 more))
793− (group 292:21
794− (call 292:22 (wing 292:22 rear) (wing 292:27 rest)))))))))))
795− (value 294:1 cork
796− (gate 294:9
797− (face 294:12 gates
798− (cell 294:18
799− (fn 294:19 (tvar 294:22 A) (tvar 294:24 B))
800− (fn 294:27 (tvar 294:30 B) (tvar 294:32 C))))
801− (body 295:3
802− (branch 295:3
803− (wing 295:6 gates)
804− (arm 296:5
805− (cell 296:5 (bind 296:6 f) (bind 296:8 g))
806− (gate 296:11
807− (face 296:14 x (tvar 296:16 A))
808− (group 296:18
809− (call 296:19
810− (wing 296:19 g)
811− (group 296:21
812− (call 296:22 (wing 296:22 f) (wing 296:24 x)))))))))))
813− (value 298:1 corl
814− (gate 298:9
815− (face 298:12 gates
816− (cell 298:18
817− (fn 298:19 (tvar 298:22 B) (tvar 298:24 C))
818− (fn 298:27 (tvar 298:30 A) (tvar 298:32 B))))
819− (body 299:3
820− (branch 299:3
821− (wing 299:6 gates)
822− (arm 300:5
823− (cell 300:5 (bind 300:6 f) (bind 300:8 g))
824− (gate 300:11
825− (face 300:14 x (tvar 300:16 A))
826− (group 300:18
827− (call 300:19
828− (wing 300:19 f)
829− (group 300:21
830− (call 300:22 (wing 300:22 g) (wing 300:24 x)))))))))))
831− (value 302:1 cury
832− (gate 302:9
833− (face 302:12 args
834− (cell 302:17
835− (fn 302:18
836− (cell 302:21 (tvar 302:22 A) (tvar 302:24 B))
837− (tvar 302:27 C))
838− (tvar 302:30 A)))
839− (body 303:3
840− (branch 303:3
841− (wing 303:6 args)
842− (arm 304:5
843− (cell 304:5 (bind 304:6 f) (bind 304:8 a))
844− (gate 304:11
845− (face 304:14 b (tvar 304:16 B))
846− (group 304:18
847− (call 304:19 (wing 304:19 f) (wing 304:21 a) (wing 304:23 b)))))))))
848− (value 306:1 curr
849− (gate 306:9
850− (face 306:12 args
851− (cell 306:17
852− (fn 306:18
853− (cell 306:21 (tvar 306:22 A) (tvar 306:24 B))
854− (tvar 306:27 C))
855− (tvar 306:30 B)))
856− (body 307:3
857− (branch 307:3
858− (wing 307:6 args)
859− (arm 308:5
860− (cell 308:5 (bind 308:6 f) (bind 308:8 b))
861− (gate 308:11
862− (face 308:14 a (tvar 308:16 A))
863− (group 308:18
864− (call 308:19 (wing 308:19 f) (wing 308:21 a) (wing 308:23 b)))))))))
865− (mold 310:1 cmd
866− (generic 310:8 M
867− (union 311:3
868− (cell 311:3
869− (const 311:4 %poke)
870− (face 311:10 p (ref 311:12 poke))
871− (face 311:17 reply
872− (fn 311:23
873− (apply 311:26 unit (aura 311:32 @t))
874− (tvar 311:36 M))))
875− (cell 312:3
876− (const 312:4 %go)
877− (face 312:8 url (aura 312:12 @t)))
570+ (cast 217:3
571+ (flag 217:6)
572+ (body 218:5
573+ (branch 218:5
574+ (wing 218:8 args)
575+ (arm 219:7
576+ (cell 219:7 (bind 219:8 xs) (bind 219:11 predicate))
577+ (body 220:9
578+ (branch 220:9
579+ (wing 220:12 xs)
580+ (arm 221:11 (lit 221:11 ~) (lit 221:13 %.y))
581+ (arm 222:11
582+ (cell 222:11 (bind 222:12 item) (bind 222:17 rest))
583+ (body 223:13
584+ (branch 223:13
585+ (group 223:16
586+ (call 223:17 (wing 223:17 predicate) (wing 223:27 item)))
587+ (arm 224:15
588+ (lit 224:15 %.y)
589+ (group 224:19
590+ (call 224:20 (wing 224:20 levy) (wing 224:25 rest) (wing 224:30 predicate))))
591+ (arm 225:15 (lit 225:15 %.n) (lit 225:19 %.n))))))))))))))
592+ (value 227:1 lien
593+ (gate 227:9
594+ (face 227:12 args
595+ (cell 227:17
596+ (apply 227:18 list (tvar 227:24 A))
597+ (fn 227:27 (tvar 227:30 A) (flag 227:32))))
598+ (body 228:3
599+ (cast 228:3
600+ (flag 228:6)
601+ (body 229:5
602+ (branch 229:5
603+ (wing 229:8 args)
604+ (arm 230:7
605+ (cell 230:7 (bind 230:8 xs) (bind 230:11 predicate))
606+ (body 231:9
607+ (branch 231:9
608+ (wing 231:12 xs)
609+ (arm 232:11 (lit 232:11 ~) (lit 232:13 %.n))
610+ (arm 233:11
611+ (cell 233:11 (bind 233:12 item) (bind 233:17 rest))
612+ (body 234:13
613+ (branch 234:13
614+ (group 234:16
615+ (call 234:17 (wing 234:17 predicate) (wing 234:27 item)))
616+ (arm 235:15 (lit 235:15 %.y) (lit 235:19 %.y))
617+ (arm 236:15
618+ (lit 236:15 %.n)
619+ (group 236:19
620+ (call 236:20 (wing 236:20 lien) (wing 236:25 rest) (wing 236:30 predicate))))))))))))))))
621+ (value 238:1 roll
622+ (gate 238:9
623+ (face 238:12 args
624+ (cell 238:17
625+ (apply 238:18 list (tvar 238:24 A))
626+ (tvar 238:27 B)
627+ (fn 238:29
628+ (cell 238:32 (tvar 238:33 A) (tvar 238:35 B))
629+ (tvar 238:38 B))))
630+ (body 239:3
631+ (branch 239:3
632+ (wing 239:6 args)
633+ (arm 240:5
634+ (cell 240:5 (bind 240:6 xs) (bind 240:9 start) (bind 240:15 combine))
635+ (body 241:7
636+ (branch 241:7
637+ (wing 241:10 xs)
638+ (arm 242:9 (lit 242:9 ~) (wing 242:11 start))
639+ (arm 243:9
640+ (cell 243:9 (bind 243:10 item) (bind 243:15 rest))
641+ (group 243:21
642+ (call 243:22
643+ (wing 243:22 roll)
644+ (wing 243:27 rest)
645+ (group 243:32
646+ (call 243:33 (wing 243:33 combine) (wing 243:41 item) (wing 243:46 start)))
647+ (wing 243:53 combine)))))))))))
648+ (value 245:1 reel
649+ (gate 245:9
650+ (face 245:12 args
651+ (cell 245:17
652+ (apply 245:18 list (tvar 245:24 A))
653+ (tvar 245:27 B)
654+ (fn 245:29
655+ (cell 245:32 (tvar 245:33 A) (tvar 245:35 B))
656+ (tvar 245:38 B))))
657+ (body 246:3
658+ (branch 246:3
659+ (wing 246:6 args)
660+ (arm 247:5
661+ (cell 247:5 (bind 247:6 xs) (bind 247:9 start) (bind 247:15 combine))
662+ (body 248:7
663+ (branch 248:7
664+ (wing 248:10 xs)
665+ (arm 249:9 (lit 249:9 ~) (wing 249:11 start))
666+ (arm 250:9
667+ (cell 250:9 (bind 250:10 item) (bind 250:15 rest))
668+ (group 250:21
669+ (call 250:22
670+ (wing 250:22 combine)
671+ (wing 250:30 item)
672+ (group 250:35
673+ (call 250:36 (wing 250:36 reel) (wing 250:41 rest) (wing 250:46 start) (wing 250:52 combine)))))))))))))
674+ (value 252:1 flit
675+ (gate 252:9
676+ (face 252:12 predicate
677+ (fn 252:22 (tvar 252:25 A) (flag 252:27)))
678+ (body 253:3
679+ (gate 253:3
680+ (face 253:6 value (tvar 253:12 A))
681+ (body 254:5
682+ (cast 254:5
683+ (apply 254:8 unit (tvar 254:14 A))
684+ (body 255:7
685+ (branch 255:7
686+ (group 255:10
687+ (call 255:11 (wing 255:11 predicate) (wing 255:21 value)))
688+ (arm 256:9
689+ (lit 256:9 %.y)
690+ (unit 256:13 (wing 256:14 value)))
691+ (arm 257:9 (lit 257:9 %.n) (lit 257:13 ~))))))))))
692+ (value 259:1 murn
693+ (gate 259:9
694+ (face 259:12 args
695+ (cell 259:17
696+ (apply 259:18 list (tvar 259:24 A))
697+ (fn 259:27
698+ (tvar 259:30 A)
699+ (apply 259:32 unit (tvar 259:38 B)))))
700+ (body 260:3
701+ (branch 260:3
702+ (wing 260:6 args)
703+ (arm 261:5
704+ (cell 261:5 (bind 261:6 xs) (bind 261:9 f))
705+ (cast 261:12
706+ (apply 261:15 list (tvar 261:21 B))
707+ (body 262:9
708+ (branch 262:9
709+ (wing 262:12 xs)
710+ (arm 263:11 (lit 263:11 ~) (lit 263:13 ~))
711+ (arm 264:11
712+ (cell 264:11 (bind 264:12 item) (bind 264:17 rest))
713+ (body 265:13
714+ (branch 265:13
715+ (group 265:16
716+ (call 265:17 (wing 265:17 f) (wing 265:19 item)))
717+ (arm 266:15
718+ (lit 266:15 ~)
719+ (group 266:17
720+ (call 266:18 (wing 266:18 murn) (wing 266:23 rest) (wing 266:28 f))))
721+ (arm 267:15
722+ (cell 267:15 (lit 267:16 ~) (bind 267:18 value))
723+ (tuple 267:25
724+ (wing 267:26 value)
725+ (group 267:32
726+ (call 267:33 (wing 267:33 murn) (wing 267:38 rest) (wing 267:43 f))))))))))))))))
727+ (value 269:1 join
728+ (gate 269:9
729+ (face 269:12 args
730+ (cell 269:17
731+ (tvar 269:18 A)
732+ (apply 269:20 list (tvar 269:26 A))))
733+ (body 270:3
734+ (branch 270:3
735+ (wing 270:6 args)
736+ (arm 271:5
737+ (cell 271:5 (bind 271:6 separator) (bind 271:16 xs))
738+ (cast 271:20
739+ (apply 271:23 list (tvar 271:29 A))
740+ (body 272:9
741+ (branch 272:9
742+ (wing 272:12 xs)
743+ (arm 273:11 (lit 273:11 ~) (lit 273:13 ~))
744+ (arm 274:11
745+ (cell 274:11 (bind 274:12 item) (bind 274:17 rest))
746+ (body 275:13
747+ (branch 275:13
748+ (wing 275:16 rest)
749+ (arm 276:15
750+ (lit 276:15 ~)
751+ (tuple 276:17 (wing 276:18 item) (lit 276:23 ~)))
752+ (arm 277:15
753+ (cell 277:15 (bind 277:16 next) (bind 277:21 more))
754+ (tuple 277:27
755+ (wing 277:28 item)
756+ (tuple 277:33
757+ (wing 277:34 separator)
758+ (group 277:44
759+ (call 277:45 (wing 277:45 join) (wing 277:50 separator) (wing 277:60 rest)))))))))))))))))
760+ (value 279:1 snip
761+ (gate 279:9
762+ (face 279:12 xs
763+ (apply 279:15 list (tvar 279:21 A)))
764+ (body 280:3
765+ (cast 280:3
766+ (apply 280:6 list (tvar 280:12 A))
767+ (body 281:5
768+ (branch 281:5
769+ (wing 281:8 xs)
770+ (arm 282:7 (lit 282:7 ~) (lit 282:9 ~))
771+ (arm 283:7
772+ (cell 283:7 (bind 283:8 item) (bind 283:13 rest))
773+ (body 284:9
774+ (branch 284:9
775+ (wing 284:12 rest)
776+ (arm 285:11 (lit 285:11 ~) (lit 285:13 ~))
777+ (arm 286:11
778+ (cell 286:11 (bind 286:12 next) (bind 286:17 more))
779+ (tuple 286:23
780+ (wing 286:24 item)
781+ (group 286:29
782+ (call 286:30 (wing 286:30 snip) (wing 286:35 rest))))))))))))))
783+ (value 288:1 rear
784+ (gate 288:9
785+ (face 288:12 xs
786+ (apply 288:15 list (tvar 288:21 A)))
787+ (body 289:3
788+ (branch 289:3
789+ (wing 289:6 xs)
790+ (arm 290:5 (lit 290:5 ~) (crash 290:7))
791+ (arm 291:5
792+ (cell 291:5 (bind 291:6 item) (bind 291:11 rest))
793+ (body 292:7
794+ (branch 292:7
795+ (wing 292:10 rest)
796+ (arm 293:9 (lit 293:9 ~) (wing 293:11 item))
797+ (arm 294:9
798+ (cell 294:9 (bind 294:10 next) (bind 294:15 more))
799+ (group 294:21
800+ (call 294:22 (wing 294:22 rear) (wing 294:27 rest)))))))))))
801+ (value 296:1 cork
802+ (gate 296:9
803+ (face 296:12 gates
804+ (cell 296:18
805+ (fn 296:19 (tvar 296:22 A) (tvar 296:24 B))
806+ (fn 296:27 (tvar 296:30 B) (tvar 296:32 C))))
807+ (body 297:3
808+ (branch 297:3
809+ (wing 297:6 gates)
810+ (arm 298:5
811+ (cell 298:5 (bind 298:6 f) (bind 298:8 g))
812+ (gate 298:11
813+ (face 298:14 x (tvar 298:16 A))
814+ (group 298:18
815+ (call 298:19
816+ (wing 298:19 g)
817+ (group 298:21
818+ (call 298:22 (wing 298:22 f) (wing 298:24 x)))))))))))
819+ (value 300:1 corl
820+ (gate 300:9
821+ (face 300:12 gates
822+ (cell 300:18
823+ (fn 300:19 (tvar 300:22 B) (tvar 300:24 C))
824+ (fn 300:27 (tvar 300:30 A) (tvar 300:32 B))))
825+ (body 301:3
826+ (branch 301:3
827+ (wing 301:6 gates)
828+ (arm 302:5
829+ (cell 302:5 (bind 302:6 f) (bind 302:8 g))
830+ (gate 302:11
831+ (face 302:14 x (tvar 302:16 A))
832+ (group 302:18
833+ (call 302:19
834+ (wing 302:19 f)
835+ (group 302:21
836+ (call 302:22 (wing 302:22 g) (wing 302:24 x)))))))))))
837+ (value 304:1 cury
838+ (gate 304:9
839+ (face 304:12 args
840+ (cell 304:17
841+ (fn 304:18
842+ (cell 304:21 (tvar 304:22 A) (tvar 304:24 B))
843+ (tvar 304:27 C))
844+ (tvar 304:30 A)))
845+ (body 305:3
846+ (branch 305:3
847+ (wing 305:6 args)
848+ (arm 306:5
849+ (cell 306:5 (bind 306:6 f) (bind 306:8 a))
850+ (gate 306:11
851+ (face 306:14 b (tvar 306:16 B))
852+ (group 306:18
853+ (call 306:19 (wing 306:19 f) (wing 306:21 a) (wing 306:23 b)))))))))
854+ (value 308:1 curr
855+ (gate 308:9
856+ (face 308:12 args
857+ (cell 308:17
858+ (fn 308:18
859+ (cell 308:21 (tvar 308:22 A) (tvar 308:24 B))
860+ (tvar 308:27 C))
861+ (tvar 308:30 B)))
862+ (body 309:3
863+ (branch 309:3
864+ (wing 309:6 args)
865+ (arm 310:5
866+ (cell 310:5 (bind 310:6 f) (bind 310:8 b))
867+ (gate 310:11
868+ (face 310:14 a (tvar 310:16 A))
869+ (group 310:18
870+ (call 310:19 (wing 310:19 f) (wing 310:21 a) (wing 310:23 b)))))))))
871+ (mold 312:1 cmd
872+ (generic 312:8 M
873+ (union 313:3
878874 (cell 313:3
879− (const 313:4 %wait)
880− (face 313:10 gap (aura 313:14 @dr))
881− (face 313:18 msg (tvar 313:22 M)))
875+ (const 313:4 %poke)
876+ (face 313:10 p (ref 313:12 poke))
877+ (face 313:17 reply
878+ (fn 313:23
879+ (apply 313:26 unit (aura 313:32 @t))
880+ (tvar 313:36 M))))
882881 (cell 314:3
883− (const 314:4 %now)
884− (face 314:9 reply
885− (fn 314:15 (aura 314:18 @da) (tvar 314:22 M))))
882+ (const 314:4 %go)
883+ (face 314:8 url (aura 314:12 @t)))
886884 (cell 315:3
887− (const 315:4 %who)
888− (face 315:9 reply
889− (fn 315:15 (aura 315:18 @p) (tvar 315:21 M))))))))
885+ (const 315:4 %wait)
886+ (face 315:10 gap (aura 315:14 @dr))
887+ (face 315:18 msg (tvar 315:22 M)))
888+ (cell 316:3
889+ (const 316:4 %now)
890+ (face 316:9 reply
891+ (fn 316:15 (aura 316:18 @da) (tvar 316:22 M))))
892+ (cell 317:3
893+ (const 317:4 %who)
894+ (face 317:9 reply
895+ (fn 317:15 (aura 317:18 @p) (tvar 317:21 M))))))))
tests/golden/types-flag-branch-context/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, patterns and literals by context: known result types apply to complete branches, with pattern binders scoped to each arm.
2+tests: An expected loobean reaches both list arm orders, a unit branch and a binder-only cell arm. Incompatible results, repeated or missing patterns, duplicate and shadowed binders, non-list subjects, pending literals and explicit capital restrictions retain their diagnostics. Named union matching and a shared generic capital are controls. The module report remains partial.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-flag-branch-context/modules.txtnew file+1
@@ -0,0 +1 @@
1+# no fixtures
tests/golden/types-flag-branch-context/source.jibbnew file+83
@@ -0,0 +1,83 @@
1+++ choose |= [flag=? item=@t] ^- ?
2+ ?- flag
3+ %.y %.y
4+ %.n %.n
5+++ list-check |= xs=(list @t) ^- ?
6+ ?- xs
7+ ~ %.y
8+ [item rest] %.n
9+++ arg-check |= args=[(list @t) $-(@t ?)] ^- ?
10+ ?- args
11+ [xs predicate]
12+ ?- xs
13+ ~ %.y
14+ [item rest]
15+ ?- (predicate item)
16+ %.y %.y
17+ %.n %.n
18+++ wrong-result |= flag=? ^- ?
19+ ?- flag
20+ %.y "bad"
21+ %.n %.n
22+++ open-tag |= flag=? ^- ?
23+ ~& %dangling
24+ ?- flag
25+ %.y %.y
26+ %.n %.n
27+++ open-null |= flag=? ^- ?
28+ ~& ~
29+ ?- flag
30+ %.y %.y
31+ %.n %.n
32+++ repeated-arm |= flag=? ^- ?
33+ ?- flag
34+ %.y %.y
35+ %.y %.n
36+++ incomplete |= flag=? ^- ?
37+ ?- flag
38+ %.y %.y
39+++ list-missing |= xs=(list @t) ^- ?
40+ ?- xs
41+ ~ %.y
42+++ list-shadow |= xs=(list @t) ^- ?
43+ ?- xs
44+ ~ %.y
45+ [same rest] %.n
46+++ cell-shadow |= pair=[@t @p] ^- ?
47+ ?- pair
48+ [same b] %.y
49+++ capital |= [a=A b=A] ^- ?
50+ ?- [a b]
51+ [x y] ~& ^- @t x
52+ %.y
53++$ choice
54+ %left
55+ %right
56+++ known-union |= a=choice ^- ?
57+ ?- a
58+ %left %.y
59+ %right %.n
60+++ bad-union |= a=choice ^- ?
61+ ?- a
62+ %left %.y
63+ %right "wrong"
64+++ reversed |= xs=(list @t) ^- ?
65+ ?- xs
66+ [item rest] %.n
67+ ~ %.y
68+++ unit-test |= maybe=(unit @t) ^- ?
69+ ?- maybe
70+ [~ x] %.y
71+ ~ %.n
72+++ wrong-subject |= x=@t ^- ?
73+ ?- x
74+ ~ %.n
75+ [item rest] %.y
76+++ duplicate-binder |= pair=[@t @p] ^- ?
77+ ?- pair
78+ [x x] %.y
79+++ shared |= [a=A b=A] ^- ?
80+ ?- [a b]
81+ [x y]
82+ ~& ^- A x
83+ %.y
tests/golden/types-flag-branch-context/tokens.txtnew file+496
@@ -0,0 +1,496 @@
1+1:1 glyph ++
2+1:4 name choose
3+1:11 glyph |=
4+1:14 glyph [
5+1:15 tight name flag
6+1:19 tight glyph =
7+1:20 tight glyph ?
8+1:22 name item
9+1:26 tight glyph =
10+1:27 tight aura @t
11+1:29 tight glyph ]
12+1:31 glyph ^-
13+1:34 glyph ?
14+2:3 INDENT
15+2:3 glyph ?-
16+2:6 name flag
17+3:5 INDENT
18+3:5 lit %.y
19+3:9 lit %.y
20+4:5 NEWLINE
21+4:5 lit %.n
22+4:9 lit %.n
23+5:1 DEDENT
24+5:1 DEDENT
25+5:1 NEWLINE
26+5:1 glyph ++
27+5:4 name list-check
28+5:15 glyph |=
29+5:18 name xs
30+5:20 tight glyph =
31+5:21 tight glyph (
32+5:22 tight name list
33+5:27 aura @t
34+5:29 tight glyph )
35+5:31 glyph ^-
36+5:34 glyph ?
37+6:3 INDENT
38+6:3 glyph ?-
39+6:6 name xs
40+7:5 INDENT
41+7:5 lit ~
42+7:7 lit %.y
43+8:5 NEWLINE
44+8:5 glyph [
45+8:6 tight name item
46+8:11 name rest
47+8:15 tight glyph ]
48+8:17 lit %.n
49+9:1 DEDENT
50+9:1 DEDENT
51+9:1 NEWLINE
52+9:1 glyph ++
53+9:4 name arg-check
54+9:14 glyph |=
55+9:17 name args
56+9:21 tight glyph =
57+9:22 tight glyph [
58+9:23 tight glyph (
59+9:24 tight name list
60+9:29 aura @t
61+9:31 tight glyph )
62+9:33 glyph $-(
63+9:36 tight aura @t
64+9:39 glyph ?
65+9:40 tight glyph )
66+9:41 tight glyph ]
67+9:43 glyph ^-
68+9:46 glyph ?
69+10:3 INDENT
70+10:3 glyph ?-
71+10:6 name args
72+11:5 INDENT
73+11:5 glyph [
74+11:6 tight name xs
75+11:9 name predicate
76+11:18 tight glyph ]
77+12:7 INDENT
78+12:7 glyph ?-
79+12:10 name xs
80+13:9 INDENT
81+13:9 lit ~
82+13:11 lit %.y
83+14:9 NEWLINE
84+14:9 glyph [
85+14:10 tight name item
86+14:15 name rest
87+14:19 tight glyph ]
88+15:11 INDENT
89+15:11 glyph ?-
90+15:14 glyph (
91+15:15 tight name predicate
92+15:25 name item
93+15:29 tight glyph )
94+16:13 INDENT
95+16:13 lit %.y
96+16:17 lit %.y
97+17:13 NEWLINE
98+17:13 lit %.n
99+17:17 lit %.n
100+18:1 DEDENT
101+18:1 DEDENT
102+18:1 DEDENT
103+18:1 DEDENT
104+18:1 DEDENT
105+18:1 DEDENT
106+18:1 NEWLINE
107+18:1 glyph ++
108+18:4 name wrong-result
109+18:17 glyph |=
110+18:20 name flag
111+18:24 tight glyph =
112+18:25 tight glyph ?
113+18:27 glyph ^-
114+18:30 glyph ?
115+19:3 INDENT
116+19:3 glyph ?-
117+19:6 name flag
118+20:5 INDENT
119+20:5 lit %.y
120+20:9 str "bad"
121+21:5 NEWLINE
122+21:5 lit %.n
123+21:9 lit %.n
124+22:1 DEDENT
125+22:1 DEDENT
126+22:1 NEWLINE
127+22:1 glyph ++
128+22:4 name open-tag
129+22:13 glyph |=
130+22:16 name flag
131+22:20 tight glyph =
132+22:21 tight glyph ?
133+22:23 glyph ^-
134+22:26 glyph ?
135+23:3 INDENT
136+23:3 glyph ~&
137+23:6 lit %dangling
138+24:5 INDENT
139+24:5 glyph ?-
140+24:8 name flag
141+25:7 INDENT
142+25:7 lit %.y
143+25:11 lit %.y
144+26:7 NEWLINE
145+26:7 lit %.n
146+26:11 lit %.n
147+27:1 DEDENT
148+27:1 DEDENT
149+27:1 DEDENT
150+27:1 NEWLINE
151+27:1 glyph ++
152+27:4 name open-null
153+27:14 glyph |=
154+27:17 name flag
155+27:21 tight glyph =
156+27:22 tight glyph ?
157+27:24 glyph ^-
158+27:27 glyph ?
159+28:3 INDENT
160+28:3 glyph ~&
161+28:6 lit ~
162+29:5 INDENT
163+29:5 glyph ?-
164+29:8 name flag
165+30:7 INDENT
166+30:7 lit %.y
167+30:11 lit %.y
168+31:7 NEWLINE
169+31:7 lit %.n
170+31:11 lit %.n
171+32:1 DEDENT
172+32:1 DEDENT
173+32:1 DEDENT
174+32:1 NEWLINE
175+32:1 glyph ++
176+32:4 name repeated-arm
177+32:17 glyph |=
178+32:20 name flag
179+32:24 tight glyph =
180+32:25 tight glyph ?
181+32:27 glyph ^-
182+32:30 glyph ?
183+33:3 INDENT
184+33:3 glyph ?-
185+33:6 name flag
186+34:5 INDENT
187+34:5 lit %.y
188+34:9 lit %.y
189+35:5 NEWLINE
190+35:5 lit %.y
191+35:9 lit %.n
192+36:1 DEDENT
193+36:1 DEDENT
194+36:1 NEWLINE
195+36:1 glyph ++
196+36:4 name incomplete
197+36:15 glyph |=
198+36:18 name flag
199+36:22 tight glyph =
200+36:23 tight glyph ?
201+36:25 glyph ^-
202+36:28 glyph ?
203+37:3 INDENT
204+37:3 glyph ?-
205+37:6 name flag
206+38:5 INDENT
207+38:5 lit %.y
208+38:9 lit %.y
209+39:1 DEDENT
210+39:1 DEDENT
211+39:1 NEWLINE
212+39:1 glyph ++
213+39:4 name list-missing
214+39:17 glyph |=
215+39:20 name xs
216+39:22 tight glyph =
217+39:23 tight glyph (
218+39:24 tight name list
219+39:29 aura @t
220+39:31 tight glyph )
221+39:33 glyph ^-
222+39:36 glyph ?
223+40:3 INDENT
224+40:3 glyph ?-
225+40:6 name xs
226+41:5 INDENT
227+41:5 lit ~
228+41:7 lit %.y
229+42:1 DEDENT
230+42:1 DEDENT
231+42:1 NEWLINE
232+42:1 glyph ++
233+42:4 name list-shadow
234+42:16 glyph |=
235+42:19 name xs
236+42:21 tight glyph =
237+42:22 tight glyph (
238+42:23 tight name list
239+42:28 aura @t
240+42:30 tight glyph )
241+42:32 glyph ^-
242+42:35 glyph ?
243+43:3 INDENT
244+43:3 glyph ?-
245+43:6 name xs
246+44:5 INDENT
247+44:5 lit ~
248+44:7 lit %.y
249+45:5 NEWLINE
250+45:5 glyph [
251+45:6 tight name same
252+45:11 name rest
253+45:15 tight glyph ]
254+45:17 lit %.n
255+46:1 DEDENT
256+46:1 DEDENT
257+46:1 NEWLINE
258+46:1 glyph ++
259+46:4 name cell-shadow
260+46:16 glyph |=
261+46:19 name pair
262+46:23 tight glyph =
263+46:24 tight glyph [
264+46:25 tight aura @t
265+46:28 aura @p
266+46:30 tight glyph ]
267+46:32 glyph ^-
268+46:35 glyph ?
269+47:3 INDENT
270+47:3 glyph ?-
271+47:6 name pair
272+48:5 INDENT
273+48:5 glyph [
274+48:6 tight name same
275+48:11 name b
276+48:12 tight glyph ]
277+48:14 lit %.y
278+49:1 DEDENT
279+49:1 DEDENT
280+49:1 NEWLINE
281+49:1 glyph ++
282+49:4 name capital
283+49:12 glyph |=
284+49:15 glyph [
285+49:16 tight name a
286+49:17 tight glyph =
287+49:18 tight tvar A
288+49:20 name b
289+49:21 tight glyph =
290+49:22 tight tvar A
291+49:23 tight glyph ]
292+49:25 glyph ^-
293+49:28 glyph ?
294+50:3 INDENT
295+50:3 glyph ?-
296+50:6 glyph [
297+50:7 tight name a
298+50:9 name b
299+50:10 tight glyph ]
300+51:5 INDENT
301+51:5 glyph [
302+51:6 tight name x
303+51:8 name y
304+51:9 tight glyph ]
305+51:11 glyph ~&
306+51:14 glyph ^-
307+51:17 aura @t
308+51:20 name x
309+52:7 INDENT
310+52:7 lit %.y
311+53:1 DEDENT
312+53:1 DEDENT
313+53:1 DEDENT
314+53:1 NEWLINE
315+53:1 glyph +$
316+53:4 name choice
317+54:3 INDENT
318+54:3 lit %left
319+55:3 NEWLINE
320+55:3 lit %right
321+56:1 DEDENT
322+56:1 NEWLINE
323+56:1 glyph ++
324+56:4 name known-union
325+56:16 glyph |=
326+56:19 name a
327+56:20 tight glyph =
328+56:21 tight name choice
329+56:28 glyph ^-
330+56:31 glyph ?
331+57:3 INDENT
332+57:3 glyph ?-
333+57:6 name a
334+58:5 INDENT
335+58:5 lit %left
336+58:11 lit %.y
337+59:5 NEWLINE
338+59:5 lit %right
339+59:12 lit %.n
340+60:1 DEDENT
341+60:1 DEDENT
342+60:1 NEWLINE
343+60:1 glyph ++
344+60:4 name bad-union
345+60:14 glyph |=
346+60:17 name a
347+60:18 tight glyph =
348+60:19 tight name choice
349+60:26 glyph ^-
350+60:29 glyph ?
351+61:3 INDENT
352+61:3 glyph ?-
353+61:6 name a
354+62:5 INDENT
355+62:5 lit %left
356+62:11 lit %.y
357+63:5 NEWLINE
358+63:5 lit %right
359+63:12 str "wrong"
360+64:1 DEDENT
361+64:1 DEDENT
362+64:1 NEWLINE
363+64:1 glyph ++
364+64:4 name reversed
365+64:13 glyph |=
366+64:16 name xs
367+64:18 tight glyph =
368+64:19 tight glyph (
369+64:20 tight name list
370+64:25 aura @t
371+64:27 tight glyph )
372+64:29 glyph ^-
373+64:32 glyph ?
374+65:3 INDENT
375+65:3 glyph ?-
376+65:6 name xs
377+66:5 INDENT
378+66:5 glyph [
379+66:6 tight name item
380+66:11 name rest
381+66:15 tight glyph ]
382+66:17 lit %.n
383+67:5 NEWLINE
384+67:5 lit ~
385+67:7 lit %.y
386+68:1 DEDENT
387+68:1 DEDENT
388+68:1 NEWLINE
389+68:1 glyph ++
390+68:4 name unit-test
391+68:14 glyph |=
392+68:17 name maybe
393+68:22 tight glyph =
394+68:23 tight glyph (
395+68:24 tight name unit
396+68:29 aura @t
397+68:31 tight glyph )
398+68:33 glyph ^-
399+68:36 glyph ?
400+69:3 INDENT
401+69:3 glyph ?-
402+69:6 name maybe
403+70:5 INDENT
404+70:5 glyph [
405+70:6 tight lit ~
406+70:8 name x
407+70:9 tight glyph ]
408+70:11 lit %.y
409+71:5 NEWLINE
410+71:5 lit ~
411+71:7 lit %.n
412+72:1 DEDENT
413+72:1 DEDENT
414+72:1 NEWLINE
415+72:1 glyph ++
416+72:4 name wrong-subject
417+72:18 glyph |=
418+72:21 name x
419+72:22 tight glyph =
420+72:23 tight aura @t
421+72:26 glyph ^-
422+72:29 glyph ?
423+73:3 INDENT
424+73:3 glyph ?-
425+73:6 name x
426+74:5 INDENT
427+74:5 lit ~
428+74:7 lit %.n
429+75:5 NEWLINE
430+75:5 glyph [
431+75:6 tight name item
432+75:11 name rest
433+75:15 tight glyph ]
434+75:17 lit %.y
435+76:1 DEDENT
436+76:1 DEDENT
437+76:1 NEWLINE
438+76:1 glyph ++
439+76:4 name duplicate-binder
440+76:21 glyph |=
441+76:24 name pair
442+76:28 tight glyph =
443+76:29 tight glyph [
444+76:30 tight aura @t
445+76:33 aura @p
446+76:35 tight glyph ]
447+76:37 glyph ^-
448+76:40 glyph ?
449+77:3 INDENT
450+77:3 glyph ?-
451+77:6 name pair
452+78:5 INDENT
453+78:5 glyph [
454+78:6 tight name x
455+78:8 name x
456+78:9 tight glyph ]
457+78:11 lit %.y
458+79:1 DEDENT
459+79:1 DEDENT
460+79:1 NEWLINE
461+79:1 glyph ++
462+79:4 name shared
463+79:11 glyph |=
464+79:14 glyph [
465+79:15 tight name a
466+79:16 tight glyph =
467+79:17 tight tvar A
468+79:19 name b
469+79:20 tight glyph =
470+79:21 tight tvar A
471+79:22 tight glyph ]
472+79:24 glyph ^-
473+79:27 glyph ?
474+80:3 INDENT
475+80:3 glyph ?-
476+80:6 glyph [
477+80:7 tight name a
478+80:9 name b
479+80:10 tight glyph ]
480+81:5 INDENT
481+81:5 glyph [
482+81:6 tight name x
483+81:8 name y
484+81:9 tight glyph ]
485+82:7 INDENT
486+82:7 glyph ~&
487+82:10 glyph ^-
488+82:13 tvar A
489+82:15 name x
490+83:9 INDENT
491+83:9 lit %.y
492+83:12 DEDENT
493+83:12 DEDENT
494+83:12 DEDENT
495+83:12 DEDENT
496+83:12 NEWLINE
tests/golden/types-flag-branch-context/tree.txtnew file+244
@@ -0,0 +1,244 @@
1+(module
2+ (value 1:1 choose
3+ (gate 1:11
4+ (cell 1:14
5+ (face 1:15 flag (flag 1:20))
6+ (face 1:22 item (aura 1:27 @t)))
7+ (cast 1:31
8+ (flag 1:34)
9+ (body 2:3
10+ (branch 2:3
11+ (wing 2:6 flag)
12+ (arm 3:5 (lit 3:5 %.y) (lit 3:9 %.y))
13+ (arm 4:5 (lit 4:5 %.n) (lit 4:9 %.n)))))))
14+ (value 5:1 list-check
15+ (gate 5:15
16+ (face 5:18 xs
17+ (apply 5:21 list (aura 5:27 @t)))
18+ (cast 5:31
19+ (flag 5:34)
20+ (body 6:3
21+ (branch 6:3
22+ (wing 6:6 xs)
23+ (arm 7:5 (lit 7:5 ~) (lit 7:7 %.y))
24+ (arm 8:5
25+ (cell 8:5 (bind 8:6 item) (bind 8:11 rest))
26+ (lit 8:17 %.n)))))))
27+ (value 9:1 arg-check
28+ (gate 9:14
29+ (face 9:17 args
30+ (cell 9:22
31+ (apply 9:23 list (aura 9:29 @t))
32+ (fn 9:33 (aura 9:36 @t) (flag 9:39))))
33+ (cast 9:43
34+ (flag 9:46)
35+ (body 10:3
36+ (branch 10:3
37+ (wing 10:6 args)
38+ (arm 11:5
39+ (cell 11:5 (bind 11:6 xs) (bind 11:9 predicate))
40+ (body 12:7
41+ (branch 12:7
42+ (wing 12:10 xs)
43+ (arm 13:9 (lit 13:9 ~) (lit 13:11 %.y))
44+ (arm 14:9
45+ (cell 14:9 (bind 14:10 item) (bind 14:15 rest))
46+ (body 15:11
47+ (branch 15:11
48+ (group 15:14
49+ (call 15:15 (wing 15:15 predicate) (wing 15:25 item)))
50+ (arm 16:13 (lit 16:13 %.y) (lit 16:17 %.y))
51+ (arm 17:13 (lit 17:13 %.n) (lit 17:17 %.n)))))))))))))
52+ (value 18:1 wrong-result
53+ (gate 18:17
54+ (face 18:20 flag (flag 18:25))
55+ (cast 18:27
56+ (flag 18:30)
57+ (body 19:3
58+ (branch 19:3
59+ (wing 19:6 flag)
60+ (arm 20:5 (lit 20:5 %.y) (str 20:9 "bad"))
61+ (arm 21:5 (lit 21:5 %.n) (lit 21:9 %.n)))))))
62+ (value 22:1 open-tag
63+ (gate 22:13
64+ (face 22:16 flag (flag 22:21))
65+ (cast 22:23
66+ (flag 22:26)
67+ (body 23:3
68+ (trace 23:3
69+ (lit 23:6 %dangling)
70+ (body 24:5
71+ (branch 24:5
72+ (wing 24:8 flag)
73+ (arm 25:7 (lit 25:7 %.y) (lit 25:11 %.y))
74+ (arm 26:7 (lit 26:7 %.n) (lit 26:11 %.n)))))))))
75+ (value 27:1 open-null
76+ (gate 27:14
77+ (face 27:17 flag (flag 27:22))
78+ (cast 27:24
79+ (flag 27:27)
80+ (body 28:3
81+ (trace 28:3
82+ (lit 28:6 ~)
83+ (body 29:5
84+ (branch 29:5
85+ (wing 29:8 flag)
86+ (arm 30:7 (lit 30:7 %.y) (lit 30:11 %.y))
87+ (arm 31:7 (lit 31:7 %.n) (lit 31:11 %.n)))))))))
88+ (value 32:1 repeated-arm
89+ (gate 32:17
90+ (face 32:20 flag (flag 32:25))
91+ (cast 32:27
92+ (flag 32:30)
93+ (body 33:3
94+ (branch 33:3
95+ (wing 33:6 flag)
96+ (arm 34:5 (lit 34:5 %.y) (lit 34:9 %.y))
97+ (arm 35:5 (lit 35:5 %.y) (lit 35:9 %.n)))))))
98+ (value 36:1 incomplete
99+ (gate 36:15
100+ (face 36:18 flag (flag 36:23))
101+ (cast 36:25
102+ (flag 36:28)
103+ (body 37:3
104+ (branch 37:3
105+ (wing 37:6 flag)
106+ (arm 38:5 (lit 38:5 %.y) (lit 38:9 %.y)))))))
107+ (value 39:1 list-missing
108+ (gate 39:17
109+ (face 39:20 xs
110+ (apply 39:23 list (aura 39:29 @t)))
111+ (cast 39:33
112+ (flag 39:36)
113+ (body 40:3
114+ (branch 40:3
115+ (wing 40:6 xs)
116+ (arm 41:5 (lit 41:5 ~) (lit 41:7 %.y)))))))
117+ (value 42:1 list-shadow
118+ (gate 42:16
119+ (face 42:19 xs
120+ (apply 42:22 list (aura 42:28 @t)))
121+ (cast 42:32
122+ (flag 42:35)
123+ (body 43:3
124+ (branch 43:3
125+ (wing 43:6 xs)
126+ (arm 44:5 (lit 44:5 ~) (lit 44:7 %.y))
127+ (arm 45:5
128+ (cell 45:5 (bind 45:6 same) (bind 45:11 rest))
129+ (lit 45:17 %.n)))))))
130+ (value 46:1 cell-shadow
131+ (gate 46:16
132+ (face 46:19 pair
133+ (cell 46:24 (aura 46:25 @t) (aura 46:28 @p)))
134+ (cast 46:32
135+ (flag 46:35)
136+ (body 47:3
137+ (branch 47:3
138+ (wing 47:6 pair)
139+ (arm 48:5
140+ (cell 48:5 (bind 48:6 same) (bind 48:11 b))
141+ (lit 48:14 %.y)))))))
142+ (value 49:1 capital
143+ (gate 49:12
144+ (cell 49:15
145+ (face 49:16 a (tvar 49:18 A))
146+ (face 49:20 b (tvar 49:22 A)))
147+ (cast 49:25
148+ (flag 49:28)
149+ (body 50:3
150+ (branch 50:3
151+ (tuple 50:6 (wing 50:7 a) (wing 50:9 b))
152+ (arm 51:5
153+ (cell 51:5 (bind 51:6 x) (bind 51:8 y))
154+ (trace 51:11
155+ (cast 51:14 (aura 51:17 @t) (wing 51:20 x))
156+ (body 52:7 (lit 52:7 %.y)))))))))
157+ (mold 53:1 choice
158+ (union 54:3 (const 54:3 %left) (const 55:3 %right)))
159+ (value 56:1 known-union
160+ (gate 56:16
161+ (face 56:19 a (ref 56:21 choice))
162+ (cast 56:28
163+ (flag 56:31)
164+ (body 57:3
165+ (branch 57:3
166+ (wing 57:6 a)
167+ (arm 58:5 (lit 58:5 %left) (lit 58:11 %.y))
168+ (arm 59:5 (lit 59:5 %right) (lit 59:12 %.n)))))))
169+ (value 60:1 bad-union
170+ (gate 60:14
171+ (face 60:17 a (ref 60:19 choice))
172+ (cast 60:26
173+ (flag 60:29)
174+ (body 61:3
175+ (branch 61:3
176+ (wing 61:6 a)
177+ (arm 62:5 (lit 62:5 %left) (lit 62:11 %.y))
178+ (arm 63:5 (lit 63:5 %right) (str 63:12 "wrong")))))))
179+ (value 64:1 reversed
180+ (gate 64:13
181+ (face 64:16 xs
182+ (apply 64:19 list (aura 64:25 @t)))
183+ (cast 64:29
184+ (flag 64:32)
185+ (body 65:3
186+ (branch 65:3
187+ (wing 65:6 xs)
188+ (arm 66:5
189+ (cell 66:5 (bind 66:6 item) (bind 66:11 rest))
190+ (lit 66:17 %.n))
191+ (arm 67:5 (lit 67:5 ~) (lit 67:7 %.y)))))))
192+ (value 68:1 unit-test
193+ (gate 68:14
194+ (face 68:17 maybe
195+ (apply 68:23 unit (aura 68:29 @t)))
196+ (cast 68:33
197+ (flag 68:36)
198+ (body 69:3
199+ (branch 69:3
200+ (wing 69:6 maybe)
201+ (arm 70:5
202+ (cell 70:5 (lit 70:6 ~) (bind 70:8 x))
203+ (lit 70:11 %.y))
204+ (arm 71:5 (lit 71:5 ~) (lit 71:7 %.n)))))))
205+ (value 72:1 wrong-subject
206+ (gate 72:18
207+ (face 72:21 x (aura 72:23 @t))
208+ (cast 72:26
209+ (flag 72:29)
210+ (body 73:3
211+ (branch 73:3
212+ (wing 73:6 x)
213+ (arm 74:5 (lit 74:5 ~) (lit 74:7 %.n))
214+ (arm 75:5
215+ (cell 75:5 (bind 75:6 item) (bind 75:11 rest))
216+ (lit 75:17 %.y)))))))
217+ (value 76:1 duplicate-binder
218+ (gate 76:21
219+ (face 76:24 pair
220+ (cell 76:29 (aura 76:30 @t) (aura 76:33 @p)))
221+ (cast 76:37
222+ (flag 76:40)
223+ (body 77:3
224+ (branch 77:3
225+ (wing 77:6 pair)
226+ (arm 78:5
227+ (cell 78:5 (bind 78:6 x) (bind 78:8 x))
228+ (lit 78:11 %.y)))))))
229+ (value 79:1 shared
230+ (gate 79:11
231+ (cell 79:14
232+ (face 79:15 a (tvar 79:17 A))
233+ (face 79:19 b (tvar 79:21 A)))
234+ (cast 79:24
235+ (flag 79:27)
236+ (body 80:3
237+ (branch 80:3
238+ (tuple 80:6 (wing 80:7 a) (wing 80:9 b))
239+ (arm 81:5
240+ (cell 81:5 (bind 81:6 x) (bind 81:8 y))
241+ (body 82:7
242+ (trace 82:7
243+ (cast 82:10 (tvar 82:13 A) (wing 82:15 x))
244+ (body 83:9 (lit 83:9 %.y)))))))))))
tests/golden/types-flag-branch-context/types.txtnew file+33
@@ -0,0 +1,33 @@
1+partial inference; module not checked
2+++ choose: $-([flag=? item=@t] ?)
3+++ list-check: $-((list @t) ?)
4+++ arg-check: $-([(list @t) $-(@t ?)] ?)
5+++ wrong-result: branch arm does not fit its expected loobean
6+/tests/golden/types-flag-branch-context/source.jibb:18:30: expected loobean
7+++ wrong-result |= flag=? ^- ?
8+ ^
9+/tests/golden/types-flag-branch-context/source.jibb:20:9: branch arm
10+ %.y "bad"
11+ ^
12+++ open-tag: tag needs context in partial inference
13+++ open-null: `~` needs context in partial inference
14+++ repeated-arm: branch does not cover both loobeans
15+++ incomplete: branch pattern is not supported by partial inference
16+++ list-missing: branch pattern is not supported by partial inference
17+++ list-shadow: pattern binder shadows a name
18+++ cell-shadow: pattern shadows a name
19+++ capital: explicit capital constraints are not supported by partial inference
20++$ choice: cases proven disjoint; mold not checked
21+++ known-union: $-(choice ?)
22+++ bad-union: union branch arm does not fit its expected type
23+/tests/golden/types-flag-branch-context/source.jibb:60:29: expected type
24+++ bad-union |= a=choice ^- ?
25+ ^
26+/tests/golden/types-flag-branch-context/source.jibb:63:12: branch arm
27+ %right "wrong"
28+ ^
29+++ reversed: $-((list @t) ?)
30+++ unit-test: $-((unit @t) ?)
31+++ wrong-subject: unit branch pattern is not supported by partial inference
32+++ duplicate-binder: pattern shadows a name
33+++ shared: $-([a=A b=A] ?)
tests/golden/types-import-tlon-notes/about.txt+1−1
@@ -1,4 +1,4 @@
11source: Overview, Importing Hoon types: Hoon `$%` imports as a union if its cases differ as nouns; unused molds are skipped. Grammar, Literals: `~` is null.
2−tests: The unmodified Tlon `desk/sur/notes.hoon` at tloncorp/tlon-apps commit 38f9328f4580000a37a7fdc3ab820fcd65069487 (MIT license in `tests/importer/tlon-license.txt`) has tagged unions with null cases. The real update and action molds reach partial inference. A notebook update and its enclosing record contain one source-proved named union dependency; unsupported sibling molds remain unchecked.
2+tests: The unmodified Tlon `desk/sur/notes.hoon` at tloncorp/tlon-apps commit 38f9328f4580000a37a7fdc3ab820fcd65069487 (MIT license in `tests/importer/tlon-license.txt`) has tagged unions with null cases. The real update and action molds reach partial inference. A notebook update and its enclosing record contain one source-proved named union dependency; The `log` ordered map is accepted through its named mold operand, while unsupported sibling molds remain unchecked.
33expect: parses
44expect-types: a partial inference report
tests/golden/types-import-tlon-notes/imports.txt+1
@@ -2,3 +2,4 @@ notes u-note
22notes a-note
33notes u-notebook
44notes u-notes
5+notes log
tests/golden/types-import-tlon-notes/source.jibb+1
@@ -3,3 +3,4 @@
33++ action |= x=a-note.notes x
44++ notebook-update |= x=u-notebook.notes x
55++ notes-update |= x=u-notes.notes x
6+++ log-identity |= x=log.notes x
tests/golden/types-import-tlon-notes/tokens.txt+9−1
@@ -32,4 +32,12 @@
32325:21 tight glyph =
33335:22 tight wing u-notes.notes
34345:36 name x
35−5:37 NEWLINE
35+6:1 NEWLINE
36+6:1 glyph ++
37+6:4 name log-identity
38+6:17 glyph |=
39+6:20 name x
40+6:21 tight glyph =
41+6:22 tight wing log.notes
42+6:32 name x
43+6:33 NEWLINE
tests/golden/types-import-tlon-notes/tree.txt+5−1
@@ -15,4 +15,8 @@
1515 (value 5:1 notes-update
1616 (gate 5:17
1717 (face 5:20 x (ref 5:22 u-notes.notes))
18− (wing 5:36 x))))
18+ (wing 5:36 x)))
19+ (value 6:1 log-identity
20+ (gate 6:17
21+ (face 6:20 x (ref 6:22 log.notes))
22+ (wing 6:32 x))))
tests/golden/types-import-tlon-notes/types.txt+1
@@ -3,3 +3,4 @@ partial inference; module not checked
33++ action: $-(([%move folder=@ud] [%rename title=@t] [%update [body=@t expected-revision=@ud]] [%delete ~] [%modify [title=(unit @t) folder=(unit @ud)]] [%restore rev=@ud] [%publish html=@t] [%unpublish ~]) ([%move folder=@ud] [%rename title=@t] [%update [body=@t expected-revision=@ud]] [%delete ~] [%modify [title=(unit @t) folder=(unit @ud)]] [%restore rev=@ud] [%publish html=@t] [%unpublish ~]))
44++ notebook-update: $-(([%note [id=@ud u-note=([%updated note=[id=@ud [notebook-id=@ud [folder-id=@ud [title=@t [slug=(unit @t) [body-md=@t [created-by=@p [created-at=@da [updated-by=@p [updated-at=@da revision=@ud]]]]]]]]]]] [%created note=[id=@ud [notebook-id=@ud [folder-id=@ud [title=@t [slug=(unit @t) [body-md=@t [created-by=@p [created-at=@da [updated-by=@p [updated-at=@da revision=@ud]]]]]]]]]]] [%deleted ~] [%published html=@t] [%unpublished ~] [%history-archived note-revision=[rev=@ud [at=@da [author=@p [title=@t body-md=@t]]]]])]] [%folder [id=@ud u-folder=([%updated folder=[id=@ud [notebook-id=@ud [name=@t [parent-folder-id=(unit @ud) [created-by=@p [created-at=@da [updated-at=@da updated-by=@p]]]]]]]] [%created folder=[id=@ud [notebook-id=@ud [name=@t [parent-folder-id=(unit @ud) [created-by=@p [created-at=@da [updated-at=@da updated-by=@p]]]]]]]] [%deleted ~])]] [%updated notebook=[id=@ud [title=@t [created-by=@p [created-at=@da [updated-at=@da updated-by=@p]]]]]] [%created [notebook=[id=@ud [title=@t [created-by=@p [created-at=@da [updated-at=@da updated-by=@p]]]]] visibility=(%public %private)]] [%deleted ~] [%visibility visibility=(%public %private)] [%member-left who=@p] [%member-joined [who=@p role=(%owner %viewer %editor)]] [%invite-removed ~] [%invite-received [from=@p title=@t]]) ([%note [id=@ud u-note=([%updated note=[id=@ud [notebook-id=@ud [folder-id=@ud [title=@t [slug=(unit @t) [body-md=@t [created-by=@p [created-at=@da [updated-by=@p [updated-at=@da revision=@ud]]]]]]]]]]] [%created note=[id=@ud [notebook-id=@ud [folder-id=@ud [title=@t [slug=(unit @t) [body-md=@t [created-by=@p [created-at=@da [updated-by=@p [updated-at=@da revision=@ud]]]]]]]]]]] [%deleted ~] [%published html=@t] [%unpublished ~] [%history-archived note-revision=[rev=@ud [at=@da [author=@p [title=@t body-md=@t]]]]])]] [%folder [id=@ud u-folder=([%updated folder=[id=@ud [notebook-id=@ud [name=@t [parent-folder-id=(unit @ud) [created-by=@p [created-at=@da [updated-at=@da updated-by=@p]]]]]]]] [%created folder=[id=@ud [notebook-id=@ud [name=@t [parent-folder-id=(unit @ud) [created-by=@p [created-at=@da [updated-at=@da updated-by=@p]]]]]]]] [%deleted ~])]] [%updated notebook=[id=@ud [title=@t [created-by=@p [created-at=@da [updated-at=@da updated-by=@p]]]]]] [%created [notebook=[id=@ud [title=@t [created-by=@p [created-at=@da [updated-at=@da updated-by=@p]]]]] visibility=(%public %private)]] [%deleted ~] [%visibility visibility=(%public %private)] [%member-left who=@p] [%member-joined [who=@p role=(%owner %viewer %editor)]] [%invite-removed ~] [%invite-received [from=@p title=@t]]))
55++ notes-update: $-([flag=[ship=@p name=@tas] u-notebook=([%note [id=@ud u-note=([%updated note=[id=@ud [notebook-id=@ud [folder-id=@ud [title=@t [slug=(unit @t) [body-md=@t [created-by=@p [created-at=@da [updated-by=@p [updated-at=@da revision=@ud]]]]]]]]]]] [%created note=[id=@ud [notebook-id=@ud [folder-id=@ud [title=@t [slug=(unit @t) [body-md=@t [created-by=@p [created-at=@da [updated-by=@p [updated-at=@da revision=@ud]]]]]]]]]]] [%deleted ~] [%published html=@t] [%unpublished ~] [%history-archived note-revision=[rev=@ud [at=@da [author=@p [title=@t body-md=@t]]]]])]] [%folder [id=@ud u-folder=([%updated folder=[id=@ud [notebook-id=@ud [name=@t [parent-folder-id=(unit @ud) [created-by=@p [created-at=@da [updated-at=@da updated-by=@p]]]]]]]] [%created folder=[id=@ud [notebook-id=@ud [name=@t [parent-folder-id=(unit @ud) [created-by=@p [created-at=@da [updated-at=@da updated-by=@p]]]]]]]] [%deleted ~])]] [%updated notebook=[id=@ud [title=@t [created-by=@p [created-at=@da [updated-at=@da updated-by=@p]]]]]] [%created [notebook=[id=@ud [title=@t [created-by=@p [created-at=@da [updated-at=@da updated-by=@p]]]]] visibility=(%public %private)]] [%deleted ~] [%visibility visibility=(%public %private)] [%member-left who=@p] [%member-joined [who=@p role=(%owner %viewer %editor)]] [%invite-removed ~] [%invite-received [from=@p title=@t]])] [flag=[ship=@p name=@tas] u-notebook=([%note [id=@ud u-note=([%updated note=[id=@ud [notebook-id=@ud [folder-id=@ud [title=@t [slug=(unit @t) [body-md=@t [created-by=@p [created-at=@da [updated-by=@p [updated-at=@da revision=@ud]]]]]]]]]]] [%created note=[id=@ud [notebook-id=@ud [folder-id=@ud [title=@t [slug=(unit @t) [body-md=@t [created-by=@p [created-at=@da [updated-by=@p [updated-at=@da revision=@ud]]]]]]]]]]] [%deleted ~] [%published html=@t] [%unpublished ~] [%history-archived note-revision=[rev=@ud [at=@da [author=@p [title=@t body-md=@t]]]]])]] [%folder [id=@ud u-folder=([%updated folder=[id=@ud [notebook-id=@ud [name=@t [parent-folder-id=(unit @ud) [created-by=@p [created-at=@da [updated-at=@da updated-by=@p]]]]]]]] [%created folder=[id=@ud [notebook-id=@ud [name=@t [parent-folder-id=(unit @ud) [created-by=@p [created-at=@da [updated-at=@da updated-by=@p]]]]]]]] [%deleted ~])]] [%updated notebook=[id=@ud [title=@t [created-by=@p [created-at=@da [updated-at=@da updated-by=@p]]]]]] [%created [notebook=[id=@ud [title=@t [created-by=@p [created-at=@da [updated-at=@da updated-by=@p]]]]] visibility=(%public %private)]] [%deleted ~] [%visibility visibility=(%public %private)] [%member-left who=@p] [%member-joined [who=@p role=(%owner %viewer %editor)]] [%invite-removed ~] [%invite-received [from=@p title=@t]])])
6+++ log-identity: $-((mop @da ([%note [id=@ud u-note=([%updated note=[id=@ud [notebook-id=@ud [folder-id=@ud [title=@t [slug=(unit @t) [body-md=@t [created-by=@p [created-at=@da [updated-by=@p [updated-at=@da revision=@ud]]]]]]]]]]] [%created note=[id=@ud [notebook-id=@ud [folder-id=@ud [title=@t [slug=(unit @t) [body-md=@t [created-by=@p [created-at=@da [updated-by=@p [updated-at=@da revision=@ud]]]]]]]]]]] [%deleted ~] [%published html=@t] [%unpublished ~] [%history-archived note-revision=[rev=@ud [at=@da [author=@p [title=@t body-md=@t]]]]])]] [%folder [id=@ud u-folder=([%updated folder=[id=@ud [notebook-id=@ud [name=@t [parent-folder-id=(unit @ud) [created-by=@p [created-at=@da [updated-at=@da updated-by=@p]]]]]]]] [%created folder=[id=@ud [notebook-id=@ud [name=@t [parent-folder-id=(unit @ud) [created-by=@p [created-at=@da [updated-at=@da updated-by=@p]]]]]]]] [%deleted ~])]] [%updated notebook=[id=@ud [title=@t [created-by=@p [created-at=@da [updated-at=@da updated-by=@p]]]]]] [%created [notebook=[id=@ud [title=@t [created-by=@p [created-at=@da [updated-at=@da updated-by=@p]]]]] visibility=(%public %private)]] [%deleted ~] [%visibility visibility=(%public %private)] [%member-left who=@p] [%member-joined [who=@p role=(%owner %viewer %editor)]] [%invite-removed ~] [%invite-received [from=@p title=@t]])) (mop @da ([%note [id=@ud u-note=([%updated note=[id=@ud [notebook-id=@ud [folder-id=@ud [title=@t [slug=(unit @t) [body-md=@t [created-by=@p [created-at=@da [updated-by=@p [updated-at=@da revision=@ud]]]]]]]]]]] [%created note=[id=@ud [notebook-id=@ud [folder-id=@ud [title=@t [slug=(unit @t) [body-md=@t [created-by=@p [created-at=@da [updated-by=@p [updated-at=@da revision=@ud]]]]]]]]]]] [%deleted ~] [%published html=@t] [%unpublished ~] [%history-archived note-revision=[rev=@ud [at=@da [author=@p [title=@t body-md=@t]]]]])]] [%folder [id=@ud u-folder=([%updated folder=[id=@ud [notebook-id=@ud [name=@t [parent-folder-id=(unit @ud) [created-by=@p [created-at=@da [updated-at=@da updated-by=@p]]]]]]]] [%created folder=[id=@ud [notebook-id=@ud [name=@t [parent-folder-id=(unit @ud) [created-by=@p [created-at=@da [updated-at=@da updated-by=@p]]]]]]]] [%deleted ~])]] [%updated notebook=[id=@ud [title=@t [created-by=@p [created-at=@da [updated-at=@da updated-by=@p]]]]]] [%created [notebook=[id=@ud [title=@t [created-by=@p [created-at=@da [updated-at=@da updated-by=@p]]]]] visibility=(%public %private)]] [%deleted ~] [%visibility visibility=(%public %private)] [%member-left who=@p] [%member-joined [who=@p role=(%owner %viewer %editor)]] [%invite-removed ~] [%invite-received [from=@p title=@t]])))
tests/golden/types-prelude-predicates/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Overview, Prelude: the Hoon 2b list gates are written in Jibb and retain their ordinary behavior.
2+tests: The source-backed `levy` and `lien` infer when applied independently to cord and ship lists. A predicate whose sample differs from the list element is rejected; the module report remains partial and runtime validation is outstanding.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/types-prelude-predicates/modules.txtnew file+1
@@ -0,0 +1 @@
1+# no module fixtures
tests/golden/types-prelude-predicates/source.jibbnew file+6
@@ -0,0 +1,6 @@
1+++ all-text (levy ~["a" "b"] |=(x=@t %.y))
2+++ all-ship (levy ~[~zod] |=(x=@p %.n))
3+++ any-text (lien ~["a"] |=(x=@t %.n))
4+++ any-ship (lien ~[~zod] |=(x=@p %.y))
5+++ bad-all (levy ~["a"] |=(x=@p %.y))
6+++ bad-any (lien ~[~zod] |=(x=@t %.y))
tests/golden/types-prelude-predicates/tokens.txtnew file+91
@@ -0,0 +1,91 @@
1+1:1 glyph ++
2+1:4 name all-text
3+1:13 glyph (
4+1:14 tight name levy
5+1:19 glyph ~[
6+1:21 tight str "a"
7+1:25 str "b"
8+1:28 tight glyph ]
9+1:30 glyph |=(
10+1:33 tight name x
11+1:34 tight glyph =
12+1:35 tight aura @t
13+1:38 lit %.y
14+1:41 tight glyph )
15+1:42 tight glyph )
16+2:1 NEWLINE
17+2:1 glyph ++
18+2:4 name all-ship
19+2:13 glyph (
20+2:14 tight name levy
21+2:19 glyph ~[
22+2:21 tight lit ~zod
23+2:25 tight glyph ]
24+2:27 glyph |=(
25+2:30 tight name x
26+2:31 tight glyph =
27+2:32 tight aura @p
28+2:35 lit %.n
29+2:38 tight glyph )
30+2:39 tight glyph )
31+3:1 NEWLINE
32+3:1 glyph ++
33+3:4 name any-text
34+3:13 glyph (
35+3:14 tight name lien
36+3:19 glyph ~[
37+3:21 tight str "a"
38+3:24 tight glyph ]
39+3:26 glyph |=(
40+3:29 tight name x
41+3:30 tight glyph =
42+3:31 tight aura @t
43+3:34 lit %.n
44+3:37 tight glyph )
45+3:38 tight glyph )
46+4:1 NEWLINE
47+4:1 glyph ++
48+4:4 name any-ship
49+4:13 glyph (
50+4:14 tight name lien
51+4:19 glyph ~[
52+4:21 tight lit ~zod
53+4:25 tight glyph ]
54+4:27 glyph |=(
55+4:30 tight name x
56+4:31 tight glyph =
57+4:32 tight aura @p
58+4:35 lit %.y
59+4:38 tight glyph )
60+4:39 tight glyph )
61+5:1 NEWLINE
62+5:1 glyph ++
63+5:4 name bad-all
64+5:12 glyph (
65+5:13 tight name levy
66+5:18 glyph ~[
67+5:20 tight str "a"
68+5:23 tight glyph ]
69+5:25 glyph |=(
70+5:28 tight name x
71+5:29 tight glyph =
72+5:30 tight aura @p
73+5:33 lit %.y
74+5:36 tight glyph )
75+5:37 tight glyph )
76+6:1 NEWLINE
77+6:1 glyph ++
78+6:4 name bad-any
79+6:12 glyph (
80+6:13 tight name lien
81+6:18 glyph ~[
82+6:20 tight lit ~zod
83+6:24 tight glyph ]
84+6:26 glyph |=(
85+6:29 tight name x
86+6:30 tight glyph =
87+6:31 tight aura @t
88+6:34 lit %.y
89+6:37 tight glyph )
90+6:38 tight glyph )
91+6:39 NEWLINE
tests/golden/types-prelude-predicates/tree.txtnew file+49
@@ -0,0 +1,49 @@
1+(module
2+ (value 1:1 all-text
3+ (group 1:13
4+ (call 1:14
5+ (wing 1:14 levy)
6+ (list 1:19 (str 1:21 "a") (str 1:25 "b"))
7+ (gate-wide 1:30
8+ (face 1:33 x (aura 1:35 @t))
9+ (lit 1:38 %.y)))))
10+ (value 2:1 all-ship
11+ (group 2:13
12+ (call 2:14
13+ (wing 2:14 levy)
14+ (list 2:19 (lit 2:21 ~zod))
15+ (gate-wide 2:27
16+ (face 2:30 x (aura 2:32 @p))
17+ (lit 2:35 %.n)))))
18+ (value 3:1 any-text
19+ (group 3:13
20+ (call 3:14
21+ (wing 3:14 lien)
22+ (list 3:19 (str 3:21 "a"))
23+ (gate-wide 3:26
24+ (face 3:29 x (aura 3:31 @t))
25+ (lit 3:34 %.n)))))
26+ (value 4:1 any-ship
27+ (group 4:13
28+ (call 4:14
29+ (wing 4:14 lien)
30+ (list 4:19 (lit 4:21 ~zod))
31+ (gate-wide 4:27
32+ (face 4:30 x (aura 4:32 @p))
33+ (lit 4:35 %.y)))))
34+ (value 5:1 bad-all
35+ (group 5:12
36+ (call 5:13
37+ (wing 5:13 levy)
38+ (list 5:18 (str 5:20 "a"))
39+ (gate-wide 5:25
40+ (face 5:28 x (aura 5:30 @p))
41+ (lit 5:33 %.y)))))
42+ (value 6:1 bad-any
43+ (group 6:12
44+ (call 6:13
45+ (wing 6:13 lien)
46+ (list 6:18 (lit 6:20 ~zod))
47+ (gate-wide 6:26
48+ (face 6:29 x (aura 6:31 @t))
49+ (lit 6:34 %.y))))))
tests/golden/types-prelude-predicates/types.txtnew file+19
@@ -0,0 +1,19 @@
1+partial inference; module not checked
2+++ all-text: ?
3+++ all-ship: ?
4+++ any-text: ?
5+++ any-ship: ?
6+++ bad-all: call's sample and argument types do not unify
7+/tests/golden/types-prelude-predicates/source.jibb:5:13: called gate has type $-([(list @t) $-(@t ?)] ?)
8+++ bad-all (levy ~["a"] |=(x=@p %.y))
9+ ^
10+/tests/golden/types-prelude-predicates/source.jibb:5:25: argument has type $-(@p ?)
11+++ bad-all (levy ~["a"] |=(x=@p %.y))
12+ ^
13+++ bad-any: call's sample and argument types do not unify
14+/tests/golden/types-prelude-predicates/source.jibb:6:13: called gate has type $-([(list @p) $-(@p ?)] ?)
15+++ bad-any (lien ~[~zod] |=(x=@t %.y))
16+ ^
17+/tests/golden/types-prelude-predicates/source.jibb:6:26: argument has type $-(@t ?)
18+++ bad-any (lien ~[~zod] |=(x=@t %.y))
19+ ^
tests/importer/about.txt+7
@@ -14,6 +14,13 @@ invalid dependencies, named payload dependencies, valid and collapsed enums,
1414direct and transitively aliased overlaps, nested collections, shadowed jar and
1515jug dependencies, Ford-name collisions, zuse local-name precedence and the
1616shared proof budget. Four real `presence` unions exercise the same path.
17+An ordered map can have two simple named mold operands. Fixtures cover a
18+valid enum, overlapping and collapsed union operands and aliases in both
19+positions, recursive key and value molds, a shadowed `mop`, and a local mold
20+whose name collides with an inherited Ford face. An exact recursive mop hold
21+revisited through an operand is rejected without guessing its origin.
22+Mixed and fully wrapped Clay source locations are accepted; malformed calls
23+and multi-segment callee or operand wings are rejected.
1724One named tagged union can occur inside another when the source proof and
1825both disjointness checks succeed. Repeated dependencies, hidden overlap,
1926deeper nesting, recursion, collection shadowing, and Ford-name collisions
tests/importer/shadow.txt+3
@@ -5,6 +5,9 @@
55++ jug |$([key value] (map key (set value)))
66+| %defs
77+$ mm ((mop @ud @t) lte)
8++$ key @ud
9++$ val @t
10++$ mmw ((mop key val) lte)
811+$ mn [table=((mop @ud @t) lte) other=@ud]
912+$ aa (jar @ud @t)
1013+$ bb [field=(jug @ud @t)]
tests/importer/small.txt+15
@@ -22,6 +22,21 @@
2222+$ dynamic-sibling-mop [a=((mop @ud @t) lte) b=(list word)]
2323+$ named-mop [a=((mop @ud word) lte) b=@ud]
2424+$ word @t
25++$ mop-key @ud
26++$ mop-valid-enum ?(%one %two)
27++$ mop-invalid-enum ?(%one %one)
28++$ mop-invalid-enum-alias mop-invalid-enum
29++$ mop-invalid-value $%([%same value=@t] [%same value=@t])
30++$ mop-invalid-value-alias mop-invalid-value
31++$ mop-wing-valid ((mop mop-key mop-valid-enum) lte)
32++$ mop-wing-invalid-key ((mop mop-invalid-enum mop-key) lte)
33++$ mop-wing-invalid-key-alias ((mop mop-invalid-enum-alias mop-key) lte)
34++$ mop-wing-invalid-value ((mop mop-key mop-invalid-value) lte)
35++$ mop-wing-invalid-value-alias ((mop mop-key mop-invalid-value-alias) lte)
36++$ mop-rec-value $@(~ [data=@ud children=((mop @ud mop-rec-value) lte)])
37++$ mop-rec-key $@(~ [data=@ud children=((mop mop-rec-key @ud) gor)])
38++$ mop-wing-rec-value ((mop mop-key mop-rec-value) lte)
39++$ mop-wing-rec-key ((mop mop-rec-key mop-key) gor)
2540+$ mop-list (list ((mop @ud @t) lte))
2641+$ signed @sd
2742+$ float @rd
tests/importer/tree.txt+10
@@ -50,6 +50,16 @@ ford-mismatched-core: unsafe
5050shadow-list-mop: error: Hoon collection provenance is unavailable or shadowed
5151named-mop: error: a nested Hoon mop needs source-aware import
5252mop-list: error: a nested Hoon mop needs source-aware import
53+mop-wing-valid: (mop @ud (union one two))
54+mop-wing-invalid-key: error: Hoon union disjointness could not be verified
55+mop-wing-invalid-key-alias: error: Hoon union disjointness could not be verified
56+mop-wing-invalid-value: error: Hoon union disjointness could not be verified
57+mop-wing-invalid-value-alias: error: Hoon union disjointness could not be verified
58+mop-wing-rec-key: error: a nested Hoon mop needs source-aware import
59+mop-wing-rec-value: error: a nested Hoon mop needs source-aware import
60+mop-wing-shadow: error: Hoon collection provenance is unavailable or shadowed
61+mop-wing-ford-collision: (mop @ud @t)
62+mop-wing-debug: wrapped and mixed calls accepted; malformed, multi-segment and excessive wrappers rejected
5363signed: error: signed and float auras cannot be imported
5464float: error: signed and float auras cannot be imported
5565gate: error: cores and gates cannot be imported
tests/lib/jibb.hoon+913−900
@@ -1338,744 +1338,753 @@
13381338/* tok-408 %txt /tests/golden/types-deferred-call-context/tokens/txt
13391339/* tre-408 %txt /tests/golden/types-deferred-call-context/tree/txt
13401340/* typ-408 %txt /tests/golden/types-deferred-call-context/types/txt
1341−/* src-409 %jibb /tests/golden/types-generic-arity/source/jibb
1342−/* tok-409 %txt /tests/golden/types-generic-arity/tokens/txt
1343−/* tre-409 %txt /tests/golden/types-generic-arity/tree/txt
1344−/* typ-409 %txt /tests/golden/types-generic-arity/types/txt
1345−/* src-410 %jibb /tests/golden/types-generic-face-inference/source/jibb
1346−/* tok-410 %txt /tests/golden/types-generic-face-inference/tokens/txt
1347−/* tre-410 %txt /tests/golden/types-generic-face-inference/tree/txt
1348−/* typ-410 %txt /tests/golden/types-generic-face-inference/types/txt
1349−/* src-411 %jibb /tests/golden/types-generic-gates/source/jibb
1350−/* tok-411 %txt /tests/golden/types-generic-gates/tokens/txt
1351−/* tre-411 %txt /tests/golden/types-generic-gates/tree/txt
1352−/* typ-411 %txt /tests/golden/types-generic-gates/types/txt
1353−/* src-412 %jibb /tests/golden/types-generic-import-reverse/source/jibb
1354−/* tok-412 %txt /tests/golden/types-generic-import-reverse/tokens/txt
1355−/* tre-412 %txt /tests/golden/types-generic-import-reverse/tree/txt
1356−/* mod-412-1 %jibb /tests/golden/types-generic-import-reverse/modules/ui/lib/jibb
1357−/* typ-412 %txt /tests/golden/types-generic-import-reverse/types/txt
1358−/* mtre-412 %txt /tests/golden/types-generic-import-reverse/module-trees/txt
1359−/* src-413 %jibb /tests/golden/types-generic-lexical-alias/source/jibb
1360−/* tok-413 %txt /tests/golden/types-generic-lexical-alias/tokens/txt
1361−/* tre-413 %txt /tests/golden/types-generic-lexical-alias/tree/txt
1362−/* typ-413 %txt /tests/golden/types-generic-lexical-alias/types/txt
1363−/* src-414 %jibb /tests/golden/types-generic-local-parameter/source/jibb
1364−/* tok-414 %txt /tests/golden/types-generic-local-parameter/tokens/txt
1365−/* tre-414 %txt /tests/golden/types-generic-local-parameter/tree/txt
1366−/* typ-414 %txt /tests/golden/types-generic-local-parameter/types/txt
1367−/* src-415 %jibb /tests/golden/types-generic-local-scope/source/jibb
1368−/* tok-415 %txt /tests/golden/types-generic-local-scope/tokens/txt
1369−/* tre-415 %txt /tests/golden/types-generic-local-scope/tree/txt
1370−/* typ-415 %txt /tests/golden/types-generic-local-scope/types/txt
1371−/* src-416 %jibb /tests/golden/types-generic-module/source/jibb
1372−/* tok-416 %txt /tests/golden/types-generic-module/tokens/txt
1373−/* tre-416 %txt /tests/golden/types-generic-module/tree/txt
1374−/* mod-416-1 %jibb /tests/golden/types-generic-module/modules/ui/lib/jibb
1375−/* typ-416 %txt /tests/golden/types-generic-module/types/txt
1376−/* mtre-416 %txt /tests/golden/types-generic-module/module-trees/txt
1377−/* src-417 %jibb /tests/golden/types-generic-nested-scope/source/jibb
1378−/* tok-417 %txt /tests/golden/types-generic-nested-scope/tokens/txt
1379−/* tre-417 %txt /tests/golden/types-generic-nested-scope/tree/txt
1380−/* typ-417 %txt /tests/golden/types-generic-nested-scope/types/txt
1381−/* src-418 %jibb /tests/golden/types-generic-parameters/source/jibb
1382−/* tok-418 %txt /tests/golden/types-generic-parameters/tokens/txt
1383−/* tre-418 %txt /tests/golden/types-generic-parameters/tree/txt
1384−/* typ-418 %txt /tests/golden/types-generic-parameters/types/txt
1385−/* src-419 %jibb /tests/golden/types-generic-record/source/jibb
1386−/* tok-419 %txt /tests/golden/types-generic-record/tokens/txt
1387−/* tre-419 %txt /tests/golden/types-generic-record/tree/txt
1388−/* typ-419 %txt /tests/golden/types-generic-record/types/txt
1389−/* src-420 %jibb /tests/golden/types-generic-recursive-union/source/jibb
1390−/* tok-420 %txt /tests/golden/types-generic-recursive-union/tokens/txt
1391−/* tre-420 %txt /tests/golden/types-generic-recursive-union/tree/txt
1392−/* typ-420 %txt /tests/golden/types-generic-recursive-union/types/txt
1393−/* src-421 %jibb /tests/golden/types-generic-repeated/source/jibb
1394−/* tok-421 %txt /tests/golden/types-generic-repeated/tokens/txt
1395−/* tre-421 %txt /tests/golden/types-generic-repeated/tree/txt
1396−/* typ-421 %txt /tests/golden/types-generic-repeated/types/txt
1397−/* src-422 %jibb /tests/golden/types-generic-union-alias/source/jibb
1398−/* tok-422 %txt /tests/golden/types-generic-union-alias/tokens/txt
1399−/* tre-422 %txt /tests/golden/types-generic-union-alias/tree/txt
1400−/* typ-422 %txt /tests/golden/types-generic-union-alias/types/txt
1401−/* src-423 %jibb /tests/golden/types-generic-union-alias-face/source/jibb
1402−/* tok-423 %txt /tests/golden/types-generic-union-alias-face/tokens/txt
1403−/* tre-423 %txt /tests/golden/types-generic-union-alias-face/tree/txt
1404−/* mod-423-1 %jibb /tests/golden/types-generic-union-alias-face/modules/ui/base/jibb
1405−/* typ-423 %txt /tests/golden/types-generic-union-alias-face/types/txt
1406−/* mtre-423 %txt /tests/golden/types-generic-union-alias-face/module-trees/txt
1407−/* src-424 %jibb /tests/golden/types-generic-union-capitals/source/jibb
1408−/* tok-424 %txt /tests/golden/types-generic-union-capitals/tokens/txt
1409−/* tre-424 %txt /tests/golden/types-generic-union-capitals/tree/txt
1410−/* typ-424 %txt /tests/golden/types-generic-union-capitals/types/txt
1411−/* src-425 %jibb /tests/golden/types-generic-union-errors/source/jibb
1412−/* tok-425 %txt /tests/golden/types-generic-union-errors/tokens/txt
1413−/* tre-425 %txt /tests/golden/types-generic-union-errors/tree/txt
1414−/* typ-425 %txt /tests/golden/types-generic-union-errors/types/txt
1415−/* src-426 %jibb /tests/golden/types-generic-union-escaping/source/jibb
1416−/* tok-426 %txt /tests/golden/types-generic-union-escaping/tokens/txt
1417−/* tre-426 %txt /tests/golden/types-generic-union-escaping/tree/txt
1418−/* mod-426-1 %jibb /tests/golden/types-generic-union-escaping/modules/ui/base/jibb
1419−/* mod-426-2 %jibb /tests/golden/types-generic-union-escaping/modules/ui/mid/jibb
1420−/* typ-426 %txt /tests/golden/types-generic-union-escaping/types/txt
1421−/* mtre-426 %txt /tests/golden/types-generic-union-escaping/module-trees/txt
1422−/* src-427 %jibb /tests/golden/types-generic-union-import/source/jibb
1423−/* tok-427 %txt /tests/golden/types-generic-union-import/tokens/txt
1424−/* tre-427 %txt /tests/golden/types-generic-union-import/tree/txt
1425−/* mod-427-1 %jibb /tests/golden/types-generic-union-import/modules/ui/shared/jibb
1426−/* mod-427-2 %jibb /tests/golden/types-generic-union-import/modules/ui/twin/jibb
1427−/* typ-427 %txt /tests/golden/types-generic-union-import/types/txt
1428−/* mtre-427 %txt /tests/golden/types-generic-union-import/module-trees/txt
1429−/* src-428 %jibb /tests/golden/types-generic-union-local/source/jibb
1430−/* tok-428 %txt /tests/golden/types-generic-union-local/tokens/txt
1431−/* tre-428 %txt /tests/golden/types-generic-union-local/tree/txt
1432−/* typ-428 %txt /tests/golden/types-generic-union-local/types/txt
1433−/* src-429 %jibb /tests/golden/types-generic-union-transitive/source/jibb
1434−/* tok-429 %txt /tests/golden/types-generic-union-transitive/tokens/txt
1435−/* tre-429 %txt /tests/golden/types-generic-union-transitive/tree/txt
1436−/* mod-429-1 %jibb /tests/golden/types-generic-union-transitive/modules/ui/base/jibb
1437−/* mod-429-2 %jibb /tests/golden/types-generic-union-transitive/modules/ui/mid/jibb
1438−/* typ-429 %txt /tests/golden/types-generic-union-transitive/types/txt
1439−/* mtre-429 %txt /tests/golden/types-generic-union-transitive/module-trees/txt
1440−/* src-430 %jibb /tests/golden/types-import-duplicate-mark/source/jibb
1441−/* tok-430 %txt /tests/golden/types-import-duplicate-mark/tokens/txt
1442−/* tre-430 %txt /tests/golden/types-import-duplicate-mark/tree/txt
1443−/* typ-430 %txt /tests/golden/types-import-duplicate-mark/types/txt
1444−/* mark-430-1 %txt /tests/golden/types-import-duplicate-mark/mar/duplicate/txt
1445−/* src-431 %jibb /tests/golden/types-import-duplicate-sur/source/jibb
1446−/* tok-431 %txt /tests/golden/types-import-duplicate-sur/tokens/txt
1447−/* tre-431 %txt /tests/golden/types-import-duplicate-sur/tree/txt
1448−/* typ-431 %txt /tests/golden/types-import-duplicate-sur/types/txt
1449−/* imp-431-1 %txt /tests/golden/types-import-duplicate-sur/sur/fixture/txt
1450−/* imp-431-2 %txt /tests/golden/types-import-duplicate-sur/sur/fixture/txt
1451−/* imp-431-3 %txt /tests/golden/types-import-duplicate-sur/sur/fixture/txt
1452−/* src-432 %jibb /tests/golden/types-import-hoon-flags/source/jibb
1453−/* tok-432 %txt /tests/golden/types-import-hoon-flags/tokens/txt
1454−/* tre-432 %txt /tests/golden/types-import-hoon-flags/tree/txt
1455−/* typ-432 %txt /tests/golden/types-import-hoon-flags/types/txt
1456−/* imp-432-1 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1457−/* imp-432-2 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1458−/* imp-432-3 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1459−/* imp-432-4 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1460−/* src-433 %jibb /tests/golden/types-import-hoon-noun/source/jibb
1461−/* tok-433 %txt /tests/golden/types-import-hoon-noun/tokens/txt
1462−/* tre-433 %txt /tests/golden/types-import-hoon-noun/tree/txt
1463−/* typ-433 %txt /tests/golden/types-import-hoon-noun/types/txt
1464−/* imp-433-1 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1465−/* imp-433-2 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1466−/* imp-433-3 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1467−/* imp-433-4 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1468−/* src-434 %jibb /tests/golden/types-import-mark/source/jibb
1469−/* tok-434 %txt /tests/golden/types-import-mark/tokens/txt
1470−/* tre-434 %txt /tests/golden/types-import-mark/tree/txt
1471−/* typ-434 %txt /tests/golden/types-import-mark/types/txt
1472−/* imp-434-1 %txt /tests/golden/types-import-mark/sur/fixture/txt
1473−/* mark-434-1 %txt /tests/golden/types-import-mark/mar/label/txt
1474−/* src-435 %jibb /tests/golden/types-import-mark-record/source/jibb
1475−/* tok-435 %txt /tests/golden/types-import-mark-record/tokens/txt
1476−/* tre-435 %txt /tests/golden/types-import-mark-record/tree/txt
1477−/* typ-435 %txt /tests/golden/types-import-mark-record/types/txt
1478−/* mark-435-1 %txt /tests/golden/types-import-mark-record/mar/note/txt
1479−/* mark-435-2 %txt /tests/golden/types-import-mark-record/mar/choice/txt
1480−/* src-436 %jibb /tests/golden/types-import-missing-mold/source/jibb
1481−/* tok-436 %txt /tests/golden/types-import-missing-mold/tokens/txt
1482−/* tre-436 %txt /tests/golden/types-import-missing-mold/tree/txt
1483−/* typ-436 %txt /tests/golden/types-import-missing-mold/types/txt
1484−/* imp-436-1 %txt /tests/golden/types-import-missing-mold/sur/fixture/txt
1485−/* src-437 %jibb /tests/golden/types-import-sur/source/jibb
1486−/* tok-437 %txt /tests/golden/types-import-sur/tokens/txt
1487−/* tre-437 %txt /tests/golden/types-import-sur/tree/txt
1488−/* typ-437 %txt /tests/golden/types-import-sur/types/txt
1489−/* imp-437-1 %txt /tests/golden/types-import-sur/sur/fixture/txt
1490−/* imp-437-2 %txt /tests/golden/types-import-sur/sur/fixture/txt
1491−/* src-438 %jibb /tests/golden/types-import-sur-record-graph/source/jibb
1492−/* tok-438 %txt /tests/golden/types-import-sur-record-graph/tokens/txt
1493−/* tre-438 %txt /tests/golden/types-import-sur-record-graph/tree/txt
1494−/* mod-438-1 %jibb /tests/golden/types-import-sur-record-graph/modules/ui/lib/jibb
1495−/* typ-438 %txt /tests/golden/types-import-sur-record-graph/types/txt
1496−/* imp-438-1 %txt /tests/golden/types-import-sur-record-graph/sur/fixture/txt
1497−/* mtre-438 %txt /tests/golden/types-import-sur-record-graph/module-trees/txt
1498−/* src-439 %jibb /tests/golden/types-import-tlon-notes/source/jibb
1499−/* tok-439 %txt /tests/golden/types-import-tlon-notes/tokens/txt
1500−/* tre-439 %txt /tests/golden/types-import-tlon-notes/tree/txt
1501−/* typ-439 %txt /tests/golden/types-import-tlon-notes/types/txt
1502−/* imp-439-1 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1503−/* imp-439-2 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1504−/* imp-439-3 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1505−/* imp-439-4 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1506−/* src-440 %jibb /tests/golden/types-list-branch/source/jibb
1507−/* tok-440 %txt /tests/golden/types-list-branch/tokens/txt
1508−/* tre-440 %txt /tests/golden/types-list-branch/tree/txt
1509−/* typ-440 %txt /tests/golden/types-list-branch/types/txt
1510−/* src-441 %jibb /tests/golden/types-list-cons/source/jibb
1511−/* tok-441 %txt /tests/golden/types-list-cons/tokens/txt
1512−/* tre-441 %txt /tests/golden/types-list-cons/tree/txt
1513−/* typ-441 %txt /tests/golden/types-list-cons/types/txt
1514−/* src-442 %jibb /tests/golden/types-list-context/source/jibb
1515−/* tok-442 %txt /tests/golden/types-list-context/tokens/txt
1516−/* tre-442 %txt /tests/golden/types-list-context/tree/txt
1517−/* typ-442 %txt /tests/golden/types-list-context/types/txt
1518−/* src-443 %jibb /tests/golden/types-list-imported/source/jibb
1519−/* tok-443 %txt /tests/golden/types-list-imported/tokens/txt
1520−/* tre-443 %txt /tests/golden/types-list-imported/tree/txt
1521−/* typ-443 %txt /tests/golden/types-list-imported/types/txt
1522−/* imp-443-1 %txt /tests/golden/types-list-imported/sur/fixture/txt
1523−/* imp-443-2 %txt /tests/golden/types-list-imported/sur/fixture/txt
1524−/* src-444 %jibb /tests/golden/types-list-open/source/jibb
1525−/* tok-444 %txt /tests/golden/types-list-open/tokens/txt
1526−/* tre-444 %txt /tests/golden/types-list-open/tree/txt
1527−/* typ-444 %txt /tests/golden/types-list-open/types/txt
1528−/* src-445 %jibb /tests/golden/types-list-open-constraints/source/jibb
1529−/* tok-445 %txt /tests/golden/types-list-open-constraints/tokens/txt
1530−/* tre-445 %txt /tests/golden/types-list-open-constraints/tree/txt
1531−/* typ-445 %txt /tests/golden/types-list-open-constraints/types/txt
1532−/* src-446 %jibb /tests/golden/types-list-pattern-imported/source/jibb
1533−/* tok-446 %txt /tests/golden/types-list-pattern-imported/tokens/txt
1534−/* tre-446 %txt /tests/golden/types-list-pattern-imported/tree/txt
1535−/* typ-446 %txt /tests/golden/types-list-pattern-imported/types/txt
1536−/* imp-446-1 %txt /tests/golden/types-list-pattern-imported/sur/fixture/txt
1537−/* imp-446-2 %txt /tests/golden/types-list-pattern-imported/sur/fixture/txt
1538−/* src-447 %jibb /tests/golden/types-list-patterns/source/jibb
1539−/* tok-447 %txt /tests/golden/types-list-patterns/tokens/txt
1540−/* tre-447 %txt /tests/golden/types-list-patterns/tree/txt
1541−/* typ-447 %txt /tests/golden/types-list-patterns/types/txt
1542−/* src-448 %jibb /tests/golden/types-list-zero-fit/source/jibb
1543−/* tok-448 %txt /tests/golden/types-list-zero-fit/tokens/txt
1544−/* tre-448 %txt /tests/golden/types-list-zero-fit/tree/txt
1545−/* typ-448 %txt /tests/golden/types-list-zero-fit/types/txt
1546−/* src-449 %jibb /tests/golden/types-local-capitals/source/jibb
1547−/* tok-449 %txt /tests/golden/types-local-capitals/tokens/txt
1548−/* tre-449 %txt /tests/golden/types-local-capitals/tree/txt
1549−/* typ-449 %txt /tests/golden/types-local-capitals/types/txt
1550−/* src-450 %jibb /tests/golden/types-local-recursive/source/jibb
1551−/* tok-450 %txt /tests/golden/types-local-recursive/tokens/txt
1552−/* tre-450 %txt /tests/golden/types-local-recursive/tree/txt
1553−/* typ-450 %txt /tests/golden/types-local-recursive/types/txt
1554−/* src-451 %jibb /tests/golden/types-local-scc/source/jibb
1555−/* tok-451 %txt /tests/golden/types-local-scc/tokens/txt
1556−/* tre-451 %txt /tests/golden/types-local-scc/tree/txt
1557−/* typ-451 %txt /tests/golden/types-local-scc/types/txt
1558−/* src-452 %jibb /tests/golden/types-local-scc-adversarial/source/jibb
1559−/* tok-452 %txt /tests/golden/types-local-scc-adversarial/tokens/txt
1560−/* tre-452 %txt /tests/golden/types-local-scc-adversarial/tree/txt
1561−/* typ-452 %txt /tests/golden/types-local-scc-adversarial/types/txt
1562−/* src-453 %jibb /tests/golden/types-missing-tag-context/source/jibb
1563−/* tok-453 %txt /tests/golden/types-missing-tag-context/tokens/txt
1564−/* tre-453 %txt /tests/golden/types-missing-tag-context/tree/txt
1565−/* typ-453 %txt /tests/golden/types-missing-tag-context/types/txt
1566−/* src-454 %jibb /tests/golden/types-missing-tag-imported/source/jibb
1567−/* tok-454 %txt /tests/golden/types-missing-tag-imported/tokens/txt
1568−/* tre-454 %txt /tests/golden/types-missing-tag-imported/tree/txt
1569−/* typ-454 %txt /tests/golden/types-missing-tag-imported/types/txt
1570−/* imp-454-1 %txt /tests/golden/types-missing-tag-imported/sur/fixture/txt
1571−/* imp-454-2 %txt /tests/golden/types-missing-tag-imported/sur/fixture/txt
1572−/* src-455 %jibb /tests/golden/types-missing-tag-named/source/jibb
1573−/* tok-455 %txt /tests/golden/types-missing-tag-named/tokens/txt
1574−/* tre-455 %txt /tests/golden/types-missing-tag-named/tree/txt
1575−/* typ-455 %txt /tests/golden/types-missing-tag-named/types/txt
1576−/* src-456 %jibb /tests/golden/types-module-field-ambiguous/source/jibb
1577−/* tok-456 %txt /tests/golden/types-module-field-ambiguous/tokens/txt
1578−/* tre-456 %txt /tests/golden/types-module-field-ambiguous/tree/txt
1579−/* mod-456-1 %jibb /tests/golden/types-module-field-ambiguous/modules/ui/lib/jibb
1580−/* typ-456 %txt /tests/golden/types-module-field-ambiguous/types/txt
1581−/* mtre-456 %txt /tests/golden/types-module-field-ambiguous/module-trees/txt
1582−/* src-457 %jibb /tests/golden/types-module-field-nonrecord/source/jibb
1583−/* tok-457 %txt /tests/golden/types-module-field-nonrecord/tokens/txt
1584−/* tre-457 %txt /tests/golden/types-module-field-nonrecord/tree/txt
1585−/* mod-457-1 %jibb /tests/golden/types-module-field-nonrecord/modules/ui/lib/jibb
1586−/* typ-457 %txt /tests/golden/types-module-field-nonrecord/types/txt
1587−/* mtre-457 %txt /tests/golden/types-module-field-nonrecord/module-trees/txt
1588−/* src-458 %jibb /tests/golden/types-module-field-path/source/jibb
1589−/* tok-458 %txt /tests/golden/types-module-field-path/tokens/txt
1590−/* tre-458 %txt /tests/golden/types-module-field-path/tree/txt
1591−/* mod-458-1 %jibb /tests/golden/types-module-field-path/modules/ui/lib/jibb
1592−/* typ-458 %txt /tests/golden/types-module-field-path/types/txt
1593−/* mtre-458 %txt /tests/golden/types-module-field-path/module-trees/txt
1594−/* src-459 %jibb /tests/golden/types-module-field-shadow/source/jibb
1595−/* tok-459 %txt /tests/golden/types-module-field-shadow/tokens/txt
1596−/* tre-459 %txt /tests/golden/types-module-field-shadow/tree/txt
1597−/* mod-459-1 %jibb /tests/golden/types-module-field-shadow/modules/ui/lib/jibb
1598−/* typ-459 %txt /tests/golden/types-module-field-shadow/types/txt
1599−/* mtre-459 %txt /tests/golden/types-module-field-shadow/module-trees/txt
1600−/* src-460 %jibb /tests/golden/types-module-fixtures/source/jibb
1601−/* tok-460 %txt /tests/golden/types-module-fixtures/tokens/txt
1602−/* tre-460 %txt /tests/golden/types-module-fixtures/tree/txt
1603−/* mod-460-1 %jibb /tests/golden/types-module-fixtures/modules/ui/api/blog/jibb
1604−/* mod-460-2 %jibb /tests/golden/types-module-fixtures/modules/ui/components/card/jibb
1605−/* typ-460 %txt /tests/golden/types-module-fixtures/types/txt
1606−/* mtre-460 %txt /tests/golden/types-module-fixtures/module-trees/txt
1607−/* src-461 %jibb /tests/golden/types-module-mixed/source/jibb
1608−/* tok-461 %txt /tests/golden/types-module-mixed/tokens/txt
1609−/* tre-461 %txt /tests/golden/types-module-mixed/tree/txt
1610−/* mod-461-1 %jibb /tests/golden/types-module-mixed/modules/ui/helper/jibb
1611−/* typ-461 %txt /tests/golden/types-module-mixed/types/txt
1612−/* imp-461-1 %txt /tests/golden/types-module-mixed/sur/fixture/txt
1613−/* mark-461-1 %txt /tests/golden/types-module-mixed/mar/label/txt
1614−/* mtre-461 %txt /tests/golden/types-module-mixed/module-trees/txt
1615−/* src-462 %jibb /tests/golden/types-multi-call/source/jibb
1616−/* tok-462 %txt /tests/golden/types-multi-call/tokens/txt
1617−/* tre-462 %txt /tests/golden/types-multi-call/tree/txt
1618−/* typ-462 %txt /tests/golden/types-multi-call/types/txt
1619−/* src-463 %jibb /tests/golden/types-multi-import/source/jibb
1620−/* tok-463 %txt /tests/golden/types-multi-import/tokens/txt
1621−/* tre-463 %txt /tests/golden/types-multi-import/tree/txt
1622−/* mod-463-1 %jibb /tests/golden/types-multi-import/modules/ui/lib/jibb
1623−/* typ-463 %txt /tests/golden/types-multi-import/types/txt
1624−/* mtre-463 %txt /tests/golden/types-multi-import/module-trees/txt
1625−/* src-464 %jibb /tests/golden/types-nested-missing-tag/source/jibb
1626−/* tok-464 %txt /tests/golden/types-nested-missing-tag/tokens/txt
1627−/* tre-464 %txt /tests/golden/types-nested-missing-tag/tree/txt
1628−/* typ-464 %txt /tests/golden/types-nested-missing-tag/types/txt
1629−/* src-465 %jibb /tests/golden/types-null-context/source/jibb
1630−/* tok-465 %txt /tests/golden/types-null-context/tokens/txt
1631−/* tre-465 %txt /tests/golden/types-null-context/tree/txt
1632−/* typ-465 %txt /tests/golden/types-null-context/types/txt
1633−/* src-466 %jibb /tests/golden/types-null-overlap/source/jibb
1634−/* tok-466 %txt /tests/golden/types-null-overlap/tokens/txt
1635−/* tre-466 %txt /tests/golden/types-null-overlap/tree/txt
1636−/* typ-466 %txt /tests/golden/types-null-overlap/types/txt
1637−/* src-467 %jibb /tests/golden/types-null-unresolved/source/jibb
1638−/* tok-467 %txt /tests/golden/types-null-unresolved/tokens/txt
1639−/* tre-467 %txt /tests/golden/types-null-unresolved/tree/txt
1640−/* typ-467 %txt /tests/golden/types-null-unresolved/types/txt
1641−/* src-468 %jibb /tests/golden/types-pair-context/source/jibb
1642−/* tok-468 %txt /tests/golden/types-pair-context/tokens/txt
1643−/* tre-468 %txt /tests/golden/types-pair-context/tree/txt
1644−/* typ-468 %txt /tests/golden/types-pair-context/types/txt
1645−/* src-469 %jibb /tests/golden/types-partial-apply/source/jibb
1646−/* tok-469 %txt /tests/golden/types-partial-apply/tokens/txt
1647−/* tre-469 %txt /tests/golden/types-partial-apply/tree/txt
1648−/* typ-469 %txt /tests/golden/types-partial-apply/types/txt
1649−/* src-470 %jibb /tests/golden/types-partial-atom-alias/source/jibb
1650−/* tok-470 %txt /tests/golden/types-partial-atom-alias/tokens/txt
1651−/* tre-470 %txt /tests/golden/types-partial-atom-alias/tree/txt
1652−/* typ-470 %txt /tests/golden/types-partial-atom-alias/types/txt
1653−/* src-471 %jibb /tests/golden/types-partial-atom-constraint/source/jibb
1654−/* tok-471 %txt /tests/golden/types-partial-atom-constraint/tokens/txt
1655−/* tre-471 %txt /tests/golden/types-partial-atom-constraint/tree/txt
1656−/* typ-471 %txt /tests/golden/types-partial-atom-constraint/types/txt
1657−/* src-472 %jibb /tests/golden/types-partial-atom-widening/source/jibb
1658−/* tok-472 %txt /tests/golden/types-partial-atom-widening/tokens/txt
1659−/* tre-472 %txt /tests/golden/types-partial-atom-widening/tree/txt
1660−/* typ-472 %txt /tests/golden/types-partial-atom-widening/types/txt
1661−/* src-473 %jibb /tests/golden/types-partial-aura/source/jibb
1662−/* tok-473 %txt /tests/golden/types-partial-aura/tokens/txt
1663−/* tre-473 %txt /tests/golden/types-partial-aura/tree/txt
1664−/* typ-473 %txt /tests/golden/types-partial-aura/types/txt
1665−/* src-474 %jibb /tests/golden/types-partial-aura-family/source/jibb
1666−/* tok-474 %txt /tests/golden/types-partial-aura-family/tokens/txt
1667−/* tre-474 %txt /tests/golden/types-partial-aura-family/tree/txt
1668−/* typ-474 %txt /tests/golden/types-partial-aura-family/types/txt
1669−/* src-475 %jibb /tests/golden/types-partial-aura-generalization/source/jibb
1670−/* tok-475 %txt /tests/golden/types-partial-aura-generalization/tokens/txt
1671−/* tre-475 %txt /tests/golden/types-partial-aura-generalization/tree/txt
1672−/* typ-475 %txt /tests/golden/types-partial-aura-generalization/types/txt
1673−/* src-476 %jibb /tests/golden/types-partial-bare-atom/source/jibb
1674−/* tok-476 %txt /tests/golden/types-partial-bare-atom/tokens/txt
1675−/* tre-476 %txt /tests/golden/types-partial-bare-atom/tree/txt
1676−/* typ-476 %txt /tests/golden/types-partial-bare-atom/types/txt
1677−/* src-477 %jibb /tests/golden/types-partial-branch-widening/source/jibb
1678−/* tok-477 %txt /tests/golden/types-partial-branch-widening/tokens/txt
1679−/* tre-477 %txt /tests/golden/types-partial-branch-widening/tree/txt
1680−/* typ-477 %txt /tests/golden/types-partial-branch-widening/types/txt
1681−/* src-478 %jibb /tests/golden/types-partial-conflicting-sites/source/jibb
1682−/* tok-478 %txt /tests/golden/types-partial-conflicting-sites/tokens/txt
1683−/* tre-478 %txt /tests/golden/types-partial-conflicting-sites/tree/txt
1684−/* typ-478 %txt /tests/golden/types-partial-conflicting-sites/types/txt
1685−/* src-479 %jibb /tests/golden/types-partial-decimal-default/source/jibb
1686−/* tok-479 %txt /tests/golden/types-partial-decimal-default/tokens/txt
1687−/* tre-479 %txt /tests/golden/types-partial-decimal-default/tree/txt
1688−/* typ-479 %txt /tests/golden/types-partial-decimal-default/types/txt
1689−/* src-480 %jibb /tests/golden/types-partial-dependency-chain/source/jibb
1690−/* tok-480 %txt /tests/golden/types-partial-dependency-chain/tokens/txt
1691−/* tre-480 %txt /tests/golden/types-partial-dependency-chain/tree/txt
1692−/* typ-480 %txt /tests/golden/types-partial-dependency-chain/types/txt
1693−/* src-481 %jibb /tests/golden/types-partial-explicit-capital/source/jibb
1694−/* tok-481 %txt /tests/golden/types-partial-explicit-capital/tokens/txt
1695−/* tre-481 %txt /tests/golden/types-partial-explicit-capital/tree/txt
1696−/* typ-481 %txt /tests/golden/types-partial-explicit-capital/types/txt
1697−/* src-482 %jibb /tests/golden/types-partial-forward/source/jibb
1698−/* tok-482 %txt /tests/golden/types-partial-forward/tokens/txt
1699−/* tre-482 %txt /tests/golden/types-partial-forward/tree/txt
1700−/* typ-482 %txt /tests/golden/types-partial-forward/types/txt
1701−/* src-483 %jibb /tests/golden/types-partial-generalization/source/jibb
1702−/* tok-483 %txt /tests/golden/types-partial-generalization/tokens/txt
1703−/* tre-483 %txt /tests/golden/types-partial-generalization/tree/txt
1704−/* typ-483 %txt /tests/golden/types-partial-generalization/types/txt
1705−/* src-484 %jibb /tests/golden/types-partial-identity/source/jibb
1706−/* tok-484 %txt /tests/golden/types-partial-identity/tokens/txt
1707−/* tre-484 %txt /tests/golden/types-partial-identity/tree/txt
1708−/* typ-484 %txt /tests/golden/types-partial-identity/types/txt
1709−/* src-485 %jibb /tests/golden/types-partial-independent-atoms/source/jibb
1710−/* tok-485 %txt /tests/golden/types-partial-independent-atoms/tokens/txt
1711−/* tre-485 %txt /tests/golden/types-partial-independent-atoms/tree/txt
1712−/* typ-485 %txt /tests/golden/types-partial-independent-atoms/types/txt
1713−/* src-486 %jibb /tests/golden/types-partial-local-molds/source/jibb
1714−/* tok-486 %txt /tests/golden/types-partial-local-molds/tokens/txt
1715−/* tre-486 %txt /tests/golden/types-partial-local-molds/tree/txt
1716−/* typ-486 %txt /tests/golden/types-partial-local-molds/types/txt
1717−/* src-487 %jibb /tests/golden/types-partial-locals/source/jibb
1718−/* tok-487 %txt /tests/golden/types-partial-locals/tokens/txt
1719−/* tre-487 %txt /tests/golden/types-partial-locals/tree/txt
1720−/* typ-487 %txt /tests/golden/types-partial-locals/types/txt
1721−/* src-488 %jibb /tests/golden/types-partial-many-atom-constraints/source/jibb
1722−/* tok-488 %txt /tests/golden/types-partial-many-atom-constraints/tokens/txt
1723−/* tre-488 %txt /tests/golden/types-partial-many-atom-constraints/tree/txt
1724−/* typ-488 %txt /tests/golden/types-partial-many-atom-constraints/types/txt
1725−/* src-489 %jibb /tests/golden/types-partial-mold-bare-aura/source/jibb
1726−/* tok-489 %txt /tests/golden/types-partial-mold-bare-aura/tokens/txt
1727−/* tre-489 %txt /tests/golden/types-partial-mold-bare-aura/tree/txt
1728−/* typ-489 %txt /tests/golden/types-partial-mold-bare-aura/types/txt
1729−/* src-490 %jibb /tests/golden/types-partial-mold-composite/source/jibb
1730−/* tok-490 %txt /tests/golden/types-partial-mold-composite/tokens/txt
1731−/* tre-490 %txt /tests/golden/types-partial-mold-composite/tree/txt
1732−/* typ-490 %txt /tests/golden/types-partial-mold-composite/types/txt
1733−/* src-491 %jibb /tests/golden/types-partial-mold-forward/source/jibb
1734−/* tok-491 %txt /tests/golden/types-partial-mold-forward/tokens/txt
1735−/* tre-491 %txt /tests/golden/types-partial-mold-forward/tree/txt
1736−/* typ-491 %txt /tests/golden/types-partial-mold-forward/types/txt
1737−/* src-492 %jibb /tests/golden/types-partial-mold-recursive/source/jibb
1738−/* tok-492 %txt /tests/golden/types-partial-mold-recursive/tokens/txt
1739−/* tre-492 %txt /tests/golden/types-partial-mold-recursive/tree/txt
1740−/* typ-492 %txt /tests/golden/types-partial-mold-recursive/types/txt
1741−/* src-493 %jibb /tests/golden/types-partial-occurs/source/jibb
1742−/* tok-493 %txt /tests/golden/types-partial-occurs/tokens/txt
1743−/* tre-493 %txt /tests/golden/types-partial-occurs/tree/txt
1744−/* typ-493 %txt /tests/golden/types-partial-occurs/types/txt
1745−/* src-494 %jibb /tests/golden/types-partial-projection/source/jibb
1746−/* tok-494 %txt /tests/golden/types-partial-projection/tokens/txt
1747−/* tre-494 %txt /tests/golden/types-partial-projection/tree/txt
1748−/* typ-494 %txt /tests/golden/types-partial-projection/types/txt
1749−/* src-495 %jibb /tests/golden/types-partial-shadow-global/source/jibb
1750−/* tok-495 %txt /tests/golden/types-partial-shadow-global/tokens/txt
1751−/* tre-495 %txt /tests/golden/types-partial-shadow-global/tree/txt
1752−/* typ-495 %txt /tests/golden/types-partial-shadow-global/types/txt
1753−/* src-496 %jibb /tests/golden/types-partial-shared-tvar/source/jibb
1754−/* tok-496 %txt /tests/golden/types-partial-shared-tvar/tokens/txt
1755−/* tre-496 %txt /tests/golden/types-partial-shared-tvar/tree/txt
1756−/* typ-496 %txt /tests/golden/types-partial-shared-tvar/types/txt
1757−/* src-497 %jibb /tests/golden/types-partial-union-cases/source/jibb
1758−/* tok-497 %txt /tests/golden/types-partial-union-cases/tokens/txt
1759−/* tre-497 %txt /tests/golden/types-partial-union-cases/tree/txt
1760−/* typ-497 %txt /tests/golden/types-partial-union-cases/types/txt
1761−/* src-498 %jibb /tests/golden/types-partial-union-edges/source/jibb
1762−/* tok-498 %txt /tests/golden/types-partial-union-edges/tokens/txt
1763−/* tre-498 %txt /tests/golden/types-partial-union-edges/tree/txt
1764−/* typ-498 %txt /tests/golden/types-partial-union-edges/types/txt
1765−/* src-499 %jibb /tests/golden/types-partial-unresolved-tag/source/jibb
1766−/* tok-499 %txt /tests/golden/types-partial-unresolved-tag/tokens/txt
1767−/* tre-499 %txt /tests/golden/types-partial-unresolved-tag/tree/txt
1768−/* typ-499 %txt /tests/golden/types-partial-unresolved-tag/types/txt
1769−/* src-500 %jibb /tests/golden/types-prelude-cmd/source/jibb
1770−/* tok-500 %txt /tests/golden/types-prelude-cmd/tokens/txt
1771−/* tre-500 %txt /tests/golden/types-prelude-cmd/tree/txt
1772−/* typ-500 %txt /tests/golden/types-prelude-cmd/types/txt
1773−/* src-501 %jibb /tests/golden/types-prelude-direct/source/jibb
1774−/* tok-501 %txt /tests/golden/types-prelude-direct/tokens/txt
1775−/* tre-501 %txt /tests/golden/types-prelude-direct/tree/txt
1776−/* typ-501 %txt /tests/golden/types-prelude-direct/types/txt
1777−/* src-502 %jibb /tests/golden/types-prelude-functional/source/jibb
1778−/* tok-502 %txt /tests/golden/types-prelude-functional/tokens/txt
1779−/* tre-502 %txt /tests/golden/types-prelude-functional/tree/txt
1780−/* typ-502 %txt /tests/golden/types-prelude-functional/types/txt
1781−/* src-503 %jibb /tests/golden/types-prelude-interface/source/jibb
1782−/* tok-503 %txt /tests/golden/types-prelude-interface/tokens/txt
1783−/* tre-503 %txt /tests/golden/types-prelude-interface/tree/txt
1784−/* mod-503-1 %jibb /tests/golden/types-prelude-interface/modules/ui/left/jibb
1785−/* mod-503-2 %jibb /tests/golden/types-prelude-interface/modules/ui/right/jibb
1786−/* typ-503 %txt /tests/golden/types-prelude-interface/types/txt
1787−/* mtre-503 %txt /tests/golden/types-prelude-interface/module-trees/txt
1788−/* src-504 %jibb /tests/golden/types-prelude-list-functions/source/jibb
1789−/* tok-504 %txt /tests/golden/types-prelude-list-functions/tokens/txt
1790−/* tre-504 %txt /tests/golden/types-prelude-list-functions/tree/txt
1791−/* mod-504-1 %jibb /tests/golden/types-prelude-list-functions/modules/ui/lib/jibb
1792−/* typ-504 %txt /tests/golden/types-prelude-list-functions/types/txt
1793−/* mtre-504 %txt /tests/golden/types-prelude-list-functions/module-trees/txt
1794−/* src-505 %jibb /tests/golden/types-prelude-list-helpers/source/jibb
1795−/* tok-505 %txt /tests/golden/types-prelude-list-helpers/tokens/txt
1796−/* tre-505 %txt /tests/golden/types-prelude-list-helpers/tree/txt
1797−/* typ-505 %txt /tests/golden/types-prelude-list-helpers/types/txt
1798−/* src-506 %jibb /tests/golden/types-prelude-unit-helpers/source/jibb
1799−/* tok-506 %txt /tests/golden/types-prelude-unit-helpers/tokens/txt
1800−/* tre-506 %txt /tests/golden/types-prelude-unit-helpers/tree/txt
1801−/* typ-506 %txt /tests/golden/types-prelude-unit-helpers/types/txt
1802−/* src-507 %jibb /tests/golden/types-record-bound-variable/source/jibb
1803−/* tok-507 %txt /tests/golden/types-record-bound-variable/tokens/txt
1804−/* tre-507 %txt /tests/golden/types-record-bound-variable/tree/txt
1805−/* typ-507 %txt /tests/golden/types-record-bound-variable/types/txt
1806−/* src-508 %jibb /tests/golden/types-record-cast-context/source/jibb
1807−/* tok-508 %txt /tests/golden/types-record-cast-context/tokens/txt
1808−/* tre-508 %txt /tests/golden/types-record-cast-context/tree/txt
1809−/* typ-508 %txt /tests/golden/types-record-cast-context/types/txt
1810−/* src-509 %jibb /tests/golden/types-record-change/source/jibb
1811−/* tok-509 %txt /tests/golden/types-record-change/tokens/txt
1812−/* tre-509 %txt /tests/golden/types-record-change/tree/txt
1813−/* typ-509 %txt /tests/golden/types-record-change/types/txt
1814−/* src-510 %jibb /tests/golden/types-record-change-generic/source/jibb
1815−/* tok-510 %txt /tests/golden/types-record-change-generic/tokens/txt
1816−/* tre-510 %txt /tests/golden/types-record-change-generic/tree/txt
1817−/* typ-510 %txt /tests/golden/types-record-change-generic/types/txt
1818−/* src-511 %jibb /tests/golden/types-record-faces/source/jibb
1819−/* tok-511 %txt /tests/golden/types-record-faces/tokens/txt
1820−/* tre-511 %txt /tests/golden/types-record-faces/tree/txt
1821−/* typ-511 %txt /tests/golden/types-record-faces/types/txt
1822−/* src-512 %jibb /tests/golden/types-record-import/source/jibb
1823−/* tok-512 %txt /tests/golden/types-record-import/tokens/txt
1824−/* tre-512 %txt /tests/golden/types-record-import/tree/txt
1825−/* mod-512-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
1826−/* typ-512 %txt /tests/golden/types-record-import/types/txt
1827−/* mtre-512 %txt /tests/golden/types-record-import/module-trees/txt
1828−/* src-513 %jibb /tests/golden/types-record-local-scheme/source/jibb
1829−/* tok-513 %txt /tests/golden/types-record-local-scheme/tokens/txt
1830−/* tre-513 %txt /tests/golden/types-record-local-scheme/tree/txt
1831−/* typ-513 %txt /tests/golden/types-record-local-scheme/types/txt
1832−/* src-514 %jibb /tests/golden/types-record-nested/source/jibb
1833−/* tok-514 %txt /tests/golden/types-record-nested/tokens/txt
1834−/* tre-514 %txt /tests/golden/types-record-nested/tree/txt
1835−/* typ-514 %txt /tests/golden/types-record-nested/types/txt
1836−/* src-515 %jibb /tests/golden/types-record-to-tuple/source/jibb
1837−/* tok-515 %txt /tests/golden/types-record-to-tuple/tokens/txt
1838−/* tre-515 %txt /tests/golden/types-record-to-tuple/tree/txt
1839−/* typ-515 %txt /tests/golden/types-record-to-tuple/types/txt
1840−/* src-516 %jibb /tests/golden/types-recursion-scc-failures/source/jibb
1841−/* tok-516 %txt /tests/golden/types-recursion-scc-failures/tokens/txt
1842−/* tre-516 %txt /tests/golden/types-recursion-scc-failures/tree/txt
1843−/* typ-516 %txt /tests/golden/types-recursion-scc-failures/types/txt
1844−/* src-517 %jibb /tests/golden/types-recursion-scc-groups/source/jibb
1845−/* tok-517 %txt /tests/golden/types-recursion-scc-groups/tokens/txt
1846−/* tre-517 %txt /tests/golden/types-recursion-scc-groups/tree/txt
1847−/* typ-517 %txt /tests/golden/types-recursion-scc-groups/types/txt
1848−/* src-518 %jibb /tests/golden/types-recursion-scc-import/source/jibb
1849−/* tok-518 %txt /tests/golden/types-recursion-scc-import/tokens/txt
1850−/* tre-518 %txt /tests/golden/types-recursion-scc-import/tree/txt
1851−/* mod-518-1 %jibb /tests/golden/types-recursion-scc-import/modules/ui/lib/jibb
1852−/* typ-518 %txt /tests/golden/types-recursion-scc-import/types/txt
1853−/* mtre-518 %txt /tests/golden/types-recursion-scc-import/module-trees/txt
1854−/* src-519 %jibb /tests/golden/types-recursion-scc-import-bad/source/jibb
1855−/* tok-519 %txt /tests/golden/types-recursion-scc-import-bad/tokens/txt
1856−/* tre-519 %txt /tests/golden/types-recursion-scc-import-bad/tree/txt
1857−/* mod-519-1 %jibb /tests/golden/types-recursion-scc-import-bad/modules/ui/lib/jibb
1858−/* typ-519 %txt /tests/golden/types-recursion-scc-import-bad/types/txt
1859−/* mtre-519 %txt /tests/golden/types-recursion-scc-import-bad/module-trees/txt
1860−/* src-520 %jibb /tests/golden/types-recursion-scc-local/source/jibb
1861−/* tok-520 %txt /tests/golden/types-recursion-scc-local/tokens/txt
1862−/* tre-520 %txt /tests/golden/types-recursion-scc-local/tree/txt
1863−/* typ-520 %txt /tests/golden/types-recursion-scc-local/types/txt
1864−/* src-521 %jibb /tests/golden/types-recursion-scc-order/source/jibb
1865−/* tok-521 %txt /tests/golden/types-recursion-scc-order/tokens/txt
1866−/* tre-521 %txt /tests/golden/types-recursion-scc-order/tree/txt
1867−/* typ-521 %txt /tests/golden/types-recursion-scc-order/types/txt
1868−/* src-522 %jibb /tests/golden/types-recursion-scc-shadow/source/jibb
1869−/* tok-522 %txt /tests/golden/types-recursion-scc-shadow/tokens/txt
1870−/* tre-522 %txt /tests/golden/types-recursion-scc-shadow/tree/txt
1871−/* typ-522 %txt /tests/golden/types-recursion-scc-shadow/types/txt
1872−/* src-523 %jibb /tests/golden/types-recursive-branch/source/jibb
1873−/* tok-523 %txt /tests/golden/types-recursive-branch/tokens/txt
1874−/* tre-523 %txt /tests/golden/types-recursive-branch/tree/txt
1875−/* typ-523 %txt /tests/golden/types-recursive-branch/types/txt
1876−/* src-524 %jibb /tests/golden/types-recursive-gate/source/jibb
1877−/* tok-524 %txt /tests/golden/types-recursive-gate/tokens/txt
1878−/* tre-524 %txt /tests/golden/types-recursive-gate/tree/txt
1879−/* typ-524 %txt /tests/golden/types-recursive-gate/types/txt
1880−/* src-525 %jibb /tests/golden/types-recursive-sample/source/jibb
1881−/* tok-525 %txt /tests/golden/types-recursive-sample/tokens/txt
1882−/* tre-525 %txt /tests/golden/types-recursive-sample/tree/txt
1883−/* typ-525 %txt /tests/golden/types-recursive-sample/types/txt
1884−/* src-526 %jibb /tests/golden/types-scope-library-poke/source/jibb
1885−/* tok-526 %txt /tests/golden/types-scope-library-poke/tokens/txt
1886−/* tre-526 %txt /tests/golden/types-scope-library-poke/tree/txt
1887−/* typ-526 %txt /tests/golden/types-scope-library-poke/types/txt
1888−/* src-527 %jibb /tests/golden/types-scope-root-api/source/jibb
1889−/* tok-527 %txt /tests/golden/types-scope-root-api/tokens/txt
1890−/* tre-527 %txt /tests/golden/types-scope-root-api/tree/txt
1891−/* typ-527 %txt /tests/golden/types-scope-root-api/types/txt
1892−/* src-528 %jibb /tests/golden/types-scope-store-duplicate/source/jibb
1893−/* tok-528 %txt /tests/golden/types-scope-store-duplicate/tokens/txt
1894−/* tre-528 %txt /tests/golden/types-scope-store-duplicate/tree/txt
1895−/* typ-528 %txt /tests/golden/types-scope-store-duplicate/types/txt
1896−/* src-529 %jibb /tests/golden/types-scope-store-shadow/source/jibb
1897−/* tok-529 %txt /tests/golden/types-scope-store-shadow/tokens/txt
1898−/* tre-529 %txt /tests/golden/types-scope-store-shadow/tree/txt
1899−/* typ-529 %txt /tests/golden/types-scope-store-shadow/types/txt
1900−/* src-530 %jibb /tests/golden/types-single-case-pattern/source/jibb
1901−/* tok-530 %txt /tests/golden/types-single-case-pattern/tokens/txt
1902−/* tre-530 %txt /tests/golden/types-single-case-pattern/tree/txt
1903−/* typ-530 %txt /tests/golden/types-single-case-pattern/types/txt
1904−/* src-531 %jibb /tests/golden/types-string-interpolation/source/jibb
1905−/* tok-531 %txt /tests/golden/types-string-interpolation/tokens/txt
1906−/* tre-531 %txt /tests/golden/types-string-interpolation/tree/txt
1907−/* typ-531 %txt /tests/golden/types-string-interpolation/types/txt
1908−/* src-532 %jibb /tests/golden/types-tuple-context/source/jibb
1909−/* tok-532 %txt /tests/golden/types-tuple-context/tokens/txt
1910−/* tre-532 %txt /tests/golden/types-tuple-context/tree/txt
1911−/* typ-532 %txt /tests/golden/types-tuple-context/types/txt
1912−/* src-533 %jibb /tests/golden/types-tuple-context-nested/source/jibb
1913−/* tok-533 %txt /tests/golden/types-tuple-context-nested/tokens/txt
1914−/* tre-533 %txt /tests/golden/types-tuple-context-nested/tree/txt
1915−/* typ-533 %txt /tests/golden/types-tuple-context-nested/types/txt
1916−/* src-534 %jibb /tests/golden/types-union-alias/source/jibb
1917−/* tok-534 %txt /tests/golden/types-union-alias/tokens/txt
1918−/* tre-534 %txt /tests/golden/types-union-alias/tree/txt
1919−/* typ-534 %txt /tests/golden/types-union-alias/types/txt
1920−/* src-535 %jibb /tests/golden/types-union-branch-context/source/jibb
1921−/* tok-535 %txt /tests/golden/types-union-branch-context/tokens/txt
1922−/* tre-535 %txt /tests/golden/types-union-branch-context/tree/txt
1923−/* typ-535 %txt /tests/golden/types-union-branch-context/types/txt
1924−/* src-536 %jibb /tests/golden/types-union-branch-pending/source/jibb
1925−/* tok-536 %txt /tests/golden/types-union-branch-pending/tokens/txt
1926−/* tre-536 %txt /tests/golden/types-union-branch-pending/tree/txt
1927−/* typ-536 %txt /tests/golden/types-union-branch-pending/types/txt
1928−/* src-537 %jibb /tests/golden/types-union-constructor-shape/source/jibb
1929−/* tok-537 %txt /tests/golden/types-union-constructor-shape/tokens/txt
1930−/* tre-537 %txt /tests/golden/types-union-constructor-shape/tree/txt
1931−/* typ-537 %txt /tests/golden/types-union-constructor-shape/types/txt
1932−/* src-538 %jibb /tests/golden/types-union-context-flow/source/jibb
1933−/* tok-538 %txt /tests/golden/types-union-context-flow/tokens/txt
1934−/* tre-538 %txt /tests/golden/types-union-context-flow/tree/txt
1935−/* typ-538 %txt /tests/golden/types-union-context-flow/types/txt
1936−/* src-539 %jibb /tests/golden/types-union-finite/source/jibb
1937−/* tok-539 %txt /tests/golden/types-union-finite/tokens/txt
1938−/* tre-539 %txt /tests/golden/types-union-finite/tree/txt
1939−/* typ-539 %txt /tests/golden/types-union-finite/types/txt
1940−/* src-540 %jibb /tests/golden/types-union-finite-context/source/jibb
1941−/* tok-540 %txt /tests/golden/types-union-finite-context/tokens/txt
1942−/* tre-540 %txt /tests/golden/types-union-finite-context/tree/txt
1943−/* typ-540 %txt /tests/golden/types-union-finite-context/types/txt
1944−/* src-541 %jibb /tests/golden/types-union-finite-generic/source/jibb
1945−/* tok-541 %txt /tests/golden/types-union-finite-generic/tokens/txt
1946−/* tre-541 %txt /tests/golden/types-union-finite-generic/tree/txt
1947−/* typ-541 %txt /tests/golden/types-union-finite-generic/types/txt
1948−/* src-542 %jibb /tests/golden/types-union-finite-limit/source/jibb
1949−/* tok-542 %txt /tests/golden/types-union-finite-limit/tokens/txt
1950−/* tre-542 %txt /tests/golden/types-union-finite-limit/tree/txt
1951−/* typ-542 %txt /tests/golden/types-union-finite-limit/types/txt
1952−/* src-543 %jibb /tests/golden/types-union-import/source/jibb
1953−/* tok-543 %txt /tests/golden/types-union-import/tokens/txt
1954−/* tre-543 %txt /tests/golden/types-union-import/tree/txt
1955−/* mod-543-1 %jibb /tests/golden/types-union-import/modules/ui/lib/jibb
1956−/* typ-543 %txt /tests/golden/types-union-import/types/txt
1957−/* mtre-543 %txt /tests/golden/types-union-import/module-trees/txt
1958−/* src-544 %jibb /tests/golden/types-union-local-pending/source/jibb
1959−/* tok-544 %txt /tests/golden/types-union-local-pending/tokens/txt
1960−/* tre-544 %txt /tests/golden/types-union-local-pending/tree/txt
1961−/* typ-544 %txt /tests/golden/types-union-local-pending/types/txt
1962−/* src-545 %jibb /tests/golden/types-union-overlap/source/jibb
1963−/* tok-545 %txt /tests/golden/types-union-overlap/tokens/txt
1964−/* tre-545 %txt /tests/golden/types-union-overlap/tree/txt
1965−/* typ-545 %txt /tests/golden/types-union-overlap/types/txt
1966−/* src-546 %jibb /tests/golden/types-union-overlap-nested/source/jibb
1967−/* tok-546 %txt /tests/golden/types-union-overlap-nested/tokens/txt
1968−/* tre-546 %txt /tests/golden/types-union-overlap-nested/tree/txt
1969−/* typ-546 %txt /tests/golden/types-union-overlap-nested/types/txt
1970−/* src-547 %jibb /tests/golden/types-union-pattern-result-context/source/jibb
1971−/* tok-547 %txt /tests/golden/types-union-pattern-result-context/tokens/txt
1972−/* tre-547 %txt /tests/golden/types-union-pattern-result-context/tree/txt
1973−/* typ-547 %txt /tests/golden/types-union-pattern-result-context/types/txt
1974−/* src-548 %jibb /tests/golden/types-union-pattern-result-controls/source/jibb
1975−/* tok-548 %txt /tests/golden/types-union-pattern-result-controls/tokens/txt
1976−/* tre-548 %txt /tests/golden/types-union-pattern-result-controls/tree/txt
1977−/* typ-548 %txt /tests/golden/types-union-pattern-result-controls/types/txt
1978−/* src-549 %jibb /tests/golden/types-union-patterns/source/jibb
1979−/* tok-549 %txt /tests/golden/types-union-patterns/tokens/txt
1980−/* tre-549 %txt /tests/golden/types-union-patterns/tree/txt
1981−/* typ-549 %txt /tests/golden/types-union-patterns/types/txt
1982−/* src-550 %jibb /tests/golden/types-union-patterns-generic/source/jibb
1983−/* tok-550 %txt /tests/golden/types-union-patterns-generic/tokens/txt
1984−/* tre-550 %txt /tests/golden/types-union-patterns-generic/tree/txt
1985−/* typ-550 %txt /tests/golden/types-union-patterns-generic/types/txt
1986−/* src-551 %jibb /tests/golden/types-union-patterns-import/source/jibb
1987−/* tok-551 %txt /tests/golden/types-union-patterns-import/tokens/txt
1988−/* tre-551 %txt /tests/golden/types-union-patterns-import/tree/txt
1989−/* mod-551-1 %jibb /tests/golden/types-union-patterns-import/modules/ui/lib/jibb
1990−/* typ-551 %txt /tests/golden/types-union-patterns-import/types/txt
1991−/* mtre-551 %txt /tests/golden/types-union-patterns-import/module-trees/txt
1992−/* src-552 %jibb /tests/golden/types-union-phantom-generic/source/jibb
1993−/* tok-552 %txt /tests/golden/types-union-phantom-generic/tokens/txt
1994−/* tre-552 %txt /tests/golden/types-union-phantom-generic/tree/txt
1995−/* typ-552 %txt /tests/golden/types-union-phantom-generic/types/txt
1996−/* src-553 %jibb /tests/golden/types-union-print-cross-namespace/source/jibb
1997−/* tok-553 %txt /tests/golden/types-union-print-cross-namespace/tokens/txt
1998−/* tre-553 %txt /tests/golden/types-union-print-cross-namespace/tree/txt
1999−/* mod-553-1 %jibb /tests/golden/types-union-print-cross-namespace/modules/ui/lib/jibb
2000−/* typ-553 %txt /tests/golden/types-union-print-cross-namespace/types/txt
2001−/* mtre-553 %txt /tests/golden/types-union-print-cross-namespace/module-trees/txt
2002−/* src-554 %jibb /tests/golden/types-union-print-distinct/source/jibb
2003−/* tok-554 %txt /tests/golden/types-union-print-distinct/tokens/txt
2004−/* tre-554 %txt /tests/golden/types-union-print-distinct/tree/txt
2005−/* mod-554-1 %jibb /tests/golden/types-union-print-distinct/modules/ui/left/jibb
2006−/* mod-554-2 %jibb /tests/golden/types-union-print-distinct/modules/ui/right/jibb
2007−/* mod-554-3 %jibb /tests/golden/types-union-print-distinct/modules/ui/twin/jibb
2008−/* typ-554 %txt /tests/golden/types-union-print-distinct/types/txt
2009−/* mtre-554 %txt /tests/golden/types-union-print-distinct/module-trees/txt
2010−/* src-555 %jibb /tests/golden/types-union-print-escape/source/jibb
2011−/* tok-555 %txt /tests/golden/types-union-print-escape/tokens/txt
2012−/* tre-555 %txt /tests/golden/types-union-print-escape/tree/txt
2013−/* typ-555 %txt /tests/golden/types-union-print-escape/types/txt
2014−/* src-556 %jibb /tests/golden/types-union-print-local/source/jibb
2015−/* tok-556 %txt /tests/golden/types-union-print-local/tokens/txt
2016−/* tre-556 %txt /tests/golden/types-union-print-local/tree/txt
2017−/* typ-556 %txt /tests/golden/types-union-print-local/types/txt
2018−/* src-557 %jibb /tests/golden/types-union-print-nested/source/jibb
2019−/* tok-557 %txt /tests/golden/types-union-print-nested/tokens/txt
2020−/* tre-557 %txt /tests/golden/types-union-print-nested/tree/txt
2021−/* typ-557 %txt /tests/golden/types-union-print-nested/types/txt
2022−/* src-558 %jibb /tests/golden/types-union-print-same-origin/source/jibb
2023−/* tok-558 %txt /tests/golden/types-union-print-same-origin/tokens/txt
2024−/* tre-558 %txt /tests/golden/types-union-print-same-origin/tree/txt
2025−/* mod-558-1 %jibb /tests/golden/types-union-print-same-origin/modules/ui/shared/jibb
2026−/* typ-558 %txt /tests/golden/types-union-print-same-origin/types/txt
2027−/* mtre-558 %txt /tests/golden/types-union-print-same-origin/module-trees/txt
2028−/* src-559 %jibb /tests/golden/types-union-print-transitive/source/jibb
2029−/* tok-559 %txt /tests/golden/types-union-print-transitive/tokens/txt
2030−/* tre-559 %txt /tests/golden/types-union-print-transitive/tree/txt
2031−/* mod-559-1 %jibb /tests/golden/types-union-print-transitive/modules/ui/mid/jibb
2032−/* mod-559-2 %jibb /tests/golden/types-union-print-transitive/modules/ui/base/jibb
2033−/* typ-559 %txt /tests/golden/types-union-print-transitive/types/txt
2034−/* mtre-559 %txt /tests/golden/types-union-print-transitive/module-trees/txt
2035−/* src-560 %jibb /tests/golden/types-union-singleton/source/jibb
2036−/* tok-560 %txt /tests/golden/types-union-singleton/tokens/txt
2037−/* tre-560 %txt /tests/golden/types-union-singleton/tree/txt
2038−/* typ-560 %txt /tests/golden/types-union-singleton/types/txt
2039−/* src-561 %jibb /tests/golden/types-union-tag-atoms/source/jibb
2040−/* tok-561 %txt /tests/golden/types-union-tag-atoms/tokens/txt
2041−/* tre-561 %txt /tests/golden/types-union-tag-atoms/tree/txt
2042−/* typ-561 %txt /tests/golden/types-union-tag-atoms/types/txt
2043−/* src-562 %jibb /tests/golden/types-union-tags/source/jibb
2044−/* tok-562 %txt /tests/golden/types-union-tags/tokens/txt
2045−/* tre-562 %txt /tests/golden/types-union-tags/tree/txt
2046−/* typ-562 %txt /tests/golden/types-union-tags/types/txt
2047−/* src-563 %jibb /tests/golden/types-union-unresolved/source/jibb
2048−/* tok-563 %txt /tests/golden/types-union-unresolved/tokens/txt
2049−/* tre-563 %txt /tests/golden/types-union-unresolved/tree/txt
2050−/* typ-563 %txt /tests/golden/types-union-unresolved/types/txt
2051−/* src-564 %jibb /tests/golden/types-union-unresolved-flow/source/jibb
2052−/* tok-564 %txt /tests/golden/types-union-unresolved-flow/tokens/txt
2053−/* tre-564 %txt /tests/golden/types-union-unresolved-flow/tree/txt
2054−/* typ-564 %txt /tests/golden/types-union-unresolved-flow/types/txt
2055−/* src-565 %jibb /tests/golden/types-unit-construction/source/jibb
2056−/* tok-565 %txt /tests/golden/types-unit-construction/tokens/txt
2057−/* tre-565 %txt /tests/golden/types-unit-construction/tree/txt
2058−/* typ-565 %txt /tests/golden/types-unit-construction/types/txt
2059−/* src-566 %jibb /tests/golden/types-unit-context/source/jibb
2060−/* tok-566 %txt /tests/golden/types-unit-context/tokens/txt
2061−/* tre-566 %txt /tests/golden/types-unit-context/tree/txt
2062−/* typ-566 %txt /tests/golden/types-unit-context/types/txt
2063−/* src-567 %jibb /tests/golden/types-unit-patterns/source/jibb
2064−/* tok-567 %txt /tests/golden/types-unit-patterns/tokens/txt
2065−/* tre-567 %txt /tests/golden/types-unit-patterns/tree/txt
2066−/* typ-567 %txt /tests/golden/types-unit-patterns/types/txt
2067−/* src-568 %jibb /tests/golden/types-value-cycle-shadow/source/jibb
2068−/* tok-568 %txt /tests/golden/types-value-cycle-shadow/tokens/txt
2069−/* tre-568 %txt /tests/golden/types-value-cycle-shadow/tree/txt
2070−/* typ-568 %txt /tests/golden/types-value-cycle-shadow/types/txt
2071−/* src-569 %jibb /tests/golden/types-value-cycle-unsupported/source/jibb
2072−/* tok-569 %txt /tests/golden/types-value-cycle-unsupported/tokens/txt
2073−/* tre-569 %txt /tests/golden/types-value-cycle-unsupported/tree/txt
2074−/* typ-569 %txt /tests/golden/types-value-cycle-unsupported/types/txt
2075−/* src-570 %jibb /tests/golden/types-value-cycles/source/jibb
2076−/* tok-570 %txt /tests/golden/types-value-cycles/tokens/txt
2077−/* tre-570 %txt /tests/golden/types-value-cycles/tree/txt
2078−/* typ-570 %txt /tests/golden/types-value-cycles/types/txt
1341+/* src-409 %jibb /tests/golden/types-flag-branch-context/source/jibb
1342+/* tok-409 %txt /tests/golden/types-flag-branch-context/tokens/txt
1343+/* tre-409 %txt /tests/golden/types-flag-branch-context/tree/txt
1344+/* typ-409 %txt /tests/golden/types-flag-branch-context/types/txt
1345+/* src-410 %jibb /tests/golden/types-generic-arity/source/jibb
1346+/* tok-410 %txt /tests/golden/types-generic-arity/tokens/txt
1347+/* tre-410 %txt /tests/golden/types-generic-arity/tree/txt
1348+/* typ-410 %txt /tests/golden/types-generic-arity/types/txt
1349+/* src-411 %jibb /tests/golden/types-generic-face-inference/source/jibb
1350+/* tok-411 %txt /tests/golden/types-generic-face-inference/tokens/txt
1351+/* tre-411 %txt /tests/golden/types-generic-face-inference/tree/txt
1352+/* typ-411 %txt /tests/golden/types-generic-face-inference/types/txt
1353+/* src-412 %jibb /tests/golden/types-generic-gates/source/jibb
1354+/* tok-412 %txt /tests/golden/types-generic-gates/tokens/txt
1355+/* tre-412 %txt /tests/golden/types-generic-gates/tree/txt
1356+/* typ-412 %txt /tests/golden/types-generic-gates/types/txt
1357+/* src-413 %jibb /tests/golden/types-generic-import-reverse/source/jibb
1358+/* tok-413 %txt /tests/golden/types-generic-import-reverse/tokens/txt
1359+/* tre-413 %txt /tests/golden/types-generic-import-reverse/tree/txt
1360+/* mod-413-1 %jibb /tests/golden/types-generic-import-reverse/modules/ui/lib/jibb
1361+/* typ-413 %txt /tests/golden/types-generic-import-reverse/types/txt
1362+/* mtre-413 %txt /tests/golden/types-generic-import-reverse/module-trees/txt
1363+/* src-414 %jibb /tests/golden/types-generic-lexical-alias/source/jibb
1364+/* tok-414 %txt /tests/golden/types-generic-lexical-alias/tokens/txt
1365+/* tre-414 %txt /tests/golden/types-generic-lexical-alias/tree/txt
1366+/* typ-414 %txt /tests/golden/types-generic-lexical-alias/types/txt
1367+/* src-415 %jibb /tests/golden/types-generic-local-parameter/source/jibb
1368+/* tok-415 %txt /tests/golden/types-generic-local-parameter/tokens/txt
1369+/* tre-415 %txt /tests/golden/types-generic-local-parameter/tree/txt
1370+/* typ-415 %txt /tests/golden/types-generic-local-parameter/types/txt
1371+/* src-416 %jibb /tests/golden/types-generic-local-scope/source/jibb
1372+/* tok-416 %txt /tests/golden/types-generic-local-scope/tokens/txt
1373+/* tre-416 %txt /tests/golden/types-generic-local-scope/tree/txt
1374+/* typ-416 %txt /tests/golden/types-generic-local-scope/types/txt
1375+/* src-417 %jibb /tests/golden/types-generic-module/source/jibb
1376+/* tok-417 %txt /tests/golden/types-generic-module/tokens/txt
1377+/* tre-417 %txt /tests/golden/types-generic-module/tree/txt
1378+/* mod-417-1 %jibb /tests/golden/types-generic-module/modules/ui/lib/jibb
1379+/* typ-417 %txt /tests/golden/types-generic-module/types/txt
1380+/* mtre-417 %txt /tests/golden/types-generic-module/module-trees/txt
1381+/* src-418 %jibb /tests/golden/types-generic-nested-scope/source/jibb
1382+/* tok-418 %txt /tests/golden/types-generic-nested-scope/tokens/txt
1383+/* tre-418 %txt /tests/golden/types-generic-nested-scope/tree/txt
1384+/* typ-418 %txt /tests/golden/types-generic-nested-scope/types/txt
1385+/* src-419 %jibb /tests/golden/types-generic-parameters/source/jibb
1386+/* tok-419 %txt /tests/golden/types-generic-parameters/tokens/txt
1387+/* tre-419 %txt /tests/golden/types-generic-parameters/tree/txt
1388+/* typ-419 %txt /tests/golden/types-generic-parameters/types/txt
1389+/* src-420 %jibb /tests/golden/types-generic-record/source/jibb
1390+/* tok-420 %txt /tests/golden/types-generic-record/tokens/txt
1391+/* tre-420 %txt /tests/golden/types-generic-record/tree/txt
1392+/* typ-420 %txt /tests/golden/types-generic-record/types/txt
1393+/* src-421 %jibb /tests/golden/types-generic-recursive-union/source/jibb
1394+/* tok-421 %txt /tests/golden/types-generic-recursive-union/tokens/txt
1395+/* tre-421 %txt /tests/golden/types-generic-recursive-union/tree/txt
1396+/* typ-421 %txt /tests/golden/types-generic-recursive-union/types/txt
1397+/* src-422 %jibb /tests/golden/types-generic-repeated/source/jibb
1398+/* tok-422 %txt /tests/golden/types-generic-repeated/tokens/txt
1399+/* tre-422 %txt /tests/golden/types-generic-repeated/tree/txt
1400+/* typ-422 %txt /tests/golden/types-generic-repeated/types/txt
1401+/* src-423 %jibb /tests/golden/types-generic-union-alias/source/jibb
1402+/* tok-423 %txt /tests/golden/types-generic-union-alias/tokens/txt
1403+/* tre-423 %txt /tests/golden/types-generic-union-alias/tree/txt
1404+/* typ-423 %txt /tests/golden/types-generic-union-alias/types/txt
1405+/* src-424 %jibb /tests/golden/types-generic-union-alias-face/source/jibb
1406+/* tok-424 %txt /tests/golden/types-generic-union-alias-face/tokens/txt
1407+/* tre-424 %txt /tests/golden/types-generic-union-alias-face/tree/txt
1408+/* mod-424-1 %jibb /tests/golden/types-generic-union-alias-face/modules/ui/base/jibb
1409+/* typ-424 %txt /tests/golden/types-generic-union-alias-face/types/txt
1410+/* mtre-424 %txt /tests/golden/types-generic-union-alias-face/module-trees/txt
1411+/* src-425 %jibb /tests/golden/types-generic-union-capitals/source/jibb
1412+/* tok-425 %txt /tests/golden/types-generic-union-capitals/tokens/txt
1413+/* tre-425 %txt /tests/golden/types-generic-union-capitals/tree/txt
1414+/* typ-425 %txt /tests/golden/types-generic-union-capitals/types/txt
1415+/* src-426 %jibb /tests/golden/types-generic-union-errors/source/jibb
1416+/* tok-426 %txt /tests/golden/types-generic-union-errors/tokens/txt
1417+/* tre-426 %txt /tests/golden/types-generic-union-errors/tree/txt
1418+/* typ-426 %txt /tests/golden/types-generic-union-errors/types/txt
1419+/* src-427 %jibb /tests/golden/types-generic-union-escaping/source/jibb
1420+/* tok-427 %txt /tests/golden/types-generic-union-escaping/tokens/txt
1421+/* tre-427 %txt /tests/golden/types-generic-union-escaping/tree/txt
1422+/* mod-427-1 %jibb /tests/golden/types-generic-union-escaping/modules/ui/base/jibb
1423+/* mod-427-2 %jibb /tests/golden/types-generic-union-escaping/modules/ui/mid/jibb
1424+/* typ-427 %txt /tests/golden/types-generic-union-escaping/types/txt
1425+/* mtre-427 %txt /tests/golden/types-generic-union-escaping/module-trees/txt
1426+/* src-428 %jibb /tests/golden/types-generic-union-import/source/jibb
1427+/* tok-428 %txt /tests/golden/types-generic-union-import/tokens/txt
1428+/* tre-428 %txt /tests/golden/types-generic-union-import/tree/txt
1429+/* mod-428-1 %jibb /tests/golden/types-generic-union-import/modules/ui/shared/jibb
1430+/* mod-428-2 %jibb /tests/golden/types-generic-union-import/modules/ui/twin/jibb
1431+/* typ-428 %txt /tests/golden/types-generic-union-import/types/txt
1432+/* mtre-428 %txt /tests/golden/types-generic-union-import/module-trees/txt
1433+/* src-429 %jibb /tests/golden/types-generic-union-local/source/jibb
1434+/* tok-429 %txt /tests/golden/types-generic-union-local/tokens/txt
1435+/* tre-429 %txt /tests/golden/types-generic-union-local/tree/txt
1436+/* typ-429 %txt /tests/golden/types-generic-union-local/types/txt
1437+/* src-430 %jibb /tests/golden/types-generic-union-transitive/source/jibb
1438+/* tok-430 %txt /tests/golden/types-generic-union-transitive/tokens/txt
1439+/* tre-430 %txt /tests/golden/types-generic-union-transitive/tree/txt
1440+/* mod-430-1 %jibb /tests/golden/types-generic-union-transitive/modules/ui/base/jibb
1441+/* mod-430-2 %jibb /tests/golden/types-generic-union-transitive/modules/ui/mid/jibb
1442+/* typ-430 %txt /tests/golden/types-generic-union-transitive/types/txt
1443+/* mtre-430 %txt /tests/golden/types-generic-union-transitive/module-trees/txt
1444+/* src-431 %jibb /tests/golden/types-import-duplicate-mark/source/jibb
1445+/* tok-431 %txt /tests/golden/types-import-duplicate-mark/tokens/txt
1446+/* tre-431 %txt /tests/golden/types-import-duplicate-mark/tree/txt
1447+/* typ-431 %txt /tests/golden/types-import-duplicate-mark/types/txt
1448+/* mark-431-1 %txt /tests/golden/types-import-duplicate-mark/mar/duplicate/txt
1449+/* src-432 %jibb /tests/golden/types-import-duplicate-sur/source/jibb
1450+/* tok-432 %txt /tests/golden/types-import-duplicate-sur/tokens/txt
1451+/* tre-432 %txt /tests/golden/types-import-duplicate-sur/tree/txt
1452+/* typ-432 %txt /tests/golden/types-import-duplicate-sur/types/txt
1453+/* imp-432-1 %txt /tests/golden/types-import-duplicate-sur/sur/fixture/txt
1454+/* imp-432-2 %txt /tests/golden/types-import-duplicate-sur/sur/fixture/txt
1455+/* imp-432-3 %txt /tests/golden/types-import-duplicate-sur/sur/fixture/txt
1456+/* src-433 %jibb /tests/golden/types-import-hoon-flags/source/jibb
1457+/* tok-433 %txt /tests/golden/types-import-hoon-flags/tokens/txt
1458+/* tre-433 %txt /tests/golden/types-import-hoon-flags/tree/txt
1459+/* typ-433 %txt /tests/golden/types-import-hoon-flags/types/txt
1460+/* imp-433-1 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1461+/* imp-433-2 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1462+/* imp-433-3 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1463+/* imp-433-4 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1464+/* src-434 %jibb /tests/golden/types-import-hoon-noun/source/jibb
1465+/* tok-434 %txt /tests/golden/types-import-hoon-noun/tokens/txt
1466+/* tre-434 %txt /tests/golden/types-import-hoon-noun/tree/txt
1467+/* typ-434 %txt /tests/golden/types-import-hoon-noun/types/txt
1468+/* imp-434-1 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1469+/* imp-434-2 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1470+/* imp-434-3 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1471+/* imp-434-4 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1472+/* src-435 %jibb /tests/golden/types-import-mark/source/jibb
1473+/* tok-435 %txt /tests/golden/types-import-mark/tokens/txt
1474+/* tre-435 %txt /tests/golden/types-import-mark/tree/txt
1475+/* typ-435 %txt /tests/golden/types-import-mark/types/txt
1476+/* imp-435-1 %txt /tests/golden/types-import-mark/sur/fixture/txt
1477+/* mark-435-1 %txt /tests/golden/types-import-mark/mar/label/txt
1478+/* src-436 %jibb /tests/golden/types-import-mark-record/source/jibb
1479+/* tok-436 %txt /tests/golden/types-import-mark-record/tokens/txt
1480+/* tre-436 %txt /tests/golden/types-import-mark-record/tree/txt
1481+/* typ-436 %txt /tests/golden/types-import-mark-record/types/txt
1482+/* mark-436-1 %txt /tests/golden/types-import-mark-record/mar/note/txt
1483+/* mark-436-2 %txt /tests/golden/types-import-mark-record/mar/choice/txt
1484+/* src-437 %jibb /tests/golden/types-import-missing-mold/source/jibb
1485+/* tok-437 %txt /tests/golden/types-import-missing-mold/tokens/txt
1486+/* tre-437 %txt /tests/golden/types-import-missing-mold/tree/txt
1487+/* typ-437 %txt /tests/golden/types-import-missing-mold/types/txt
1488+/* imp-437-1 %txt /tests/golden/types-import-missing-mold/sur/fixture/txt
1489+/* src-438 %jibb /tests/golden/types-import-sur/source/jibb
1490+/* tok-438 %txt /tests/golden/types-import-sur/tokens/txt
1491+/* tre-438 %txt /tests/golden/types-import-sur/tree/txt
1492+/* typ-438 %txt /tests/golden/types-import-sur/types/txt
1493+/* imp-438-1 %txt /tests/golden/types-import-sur/sur/fixture/txt
1494+/* imp-438-2 %txt /tests/golden/types-import-sur/sur/fixture/txt
1495+/* src-439 %jibb /tests/golden/types-import-sur-record-graph/source/jibb
1496+/* tok-439 %txt /tests/golden/types-import-sur-record-graph/tokens/txt
1497+/* tre-439 %txt /tests/golden/types-import-sur-record-graph/tree/txt
1498+/* mod-439-1 %jibb /tests/golden/types-import-sur-record-graph/modules/ui/lib/jibb
1499+/* typ-439 %txt /tests/golden/types-import-sur-record-graph/types/txt
1500+/* imp-439-1 %txt /tests/golden/types-import-sur-record-graph/sur/fixture/txt
1501+/* mtre-439 %txt /tests/golden/types-import-sur-record-graph/module-trees/txt
1502+/* src-440 %jibb /tests/golden/types-import-tlon-notes/source/jibb
1503+/* tok-440 %txt /tests/golden/types-import-tlon-notes/tokens/txt
1504+/* tre-440 %txt /tests/golden/types-import-tlon-notes/tree/txt
1505+/* typ-440 %txt /tests/golden/types-import-tlon-notes/types/txt
1506+/* imp-440-1 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1507+/* imp-440-2 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1508+/* imp-440-3 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1509+/* imp-440-4 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1510+/* imp-440-5 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1511+/* src-441 %jibb /tests/golden/types-list-branch/source/jibb
1512+/* tok-441 %txt /tests/golden/types-list-branch/tokens/txt
1513+/* tre-441 %txt /tests/golden/types-list-branch/tree/txt
1514+/* typ-441 %txt /tests/golden/types-list-branch/types/txt
1515+/* src-442 %jibb /tests/golden/types-list-cons/source/jibb
1516+/* tok-442 %txt /tests/golden/types-list-cons/tokens/txt
1517+/* tre-442 %txt /tests/golden/types-list-cons/tree/txt
1518+/* typ-442 %txt /tests/golden/types-list-cons/types/txt
1519+/* src-443 %jibb /tests/golden/types-list-context/source/jibb
1520+/* tok-443 %txt /tests/golden/types-list-context/tokens/txt
1521+/* tre-443 %txt /tests/golden/types-list-context/tree/txt
1522+/* typ-443 %txt /tests/golden/types-list-context/types/txt
1523+/* src-444 %jibb /tests/golden/types-list-imported/source/jibb
1524+/* tok-444 %txt /tests/golden/types-list-imported/tokens/txt
1525+/* tre-444 %txt /tests/golden/types-list-imported/tree/txt
1526+/* typ-444 %txt /tests/golden/types-list-imported/types/txt
1527+/* imp-444-1 %txt /tests/golden/types-list-imported/sur/fixture/txt
1528+/* imp-444-2 %txt /tests/golden/types-list-imported/sur/fixture/txt
1529+/* src-445 %jibb /tests/golden/types-list-open/source/jibb
1530+/* tok-445 %txt /tests/golden/types-list-open/tokens/txt
1531+/* tre-445 %txt /tests/golden/types-list-open/tree/txt
1532+/* typ-445 %txt /tests/golden/types-list-open/types/txt
1533+/* src-446 %jibb /tests/golden/types-list-open-constraints/source/jibb
1534+/* tok-446 %txt /tests/golden/types-list-open-constraints/tokens/txt
1535+/* tre-446 %txt /tests/golden/types-list-open-constraints/tree/txt
1536+/* typ-446 %txt /tests/golden/types-list-open-constraints/types/txt
1537+/* src-447 %jibb /tests/golden/types-list-pattern-imported/source/jibb
1538+/* tok-447 %txt /tests/golden/types-list-pattern-imported/tokens/txt
1539+/* tre-447 %txt /tests/golden/types-list-pattern-imported/tree/txt
1540+/* typ-447 %txt /tests/golden/types-list-pattern-imported/types/txt
1541+/* imp-447-1 %txt /tests/golden/types-list-pattern-imported/sur/fixture/txt
1542+/* imp-447-2 %txt /tests/golden/types-list-pattern-imported/sur/fixture/txt
1543+/* src-448 %jibb /tests/golden/types-list-patterns/source/jibb
1544+/* tok-448 %txt /tests/golden/types-list-patterns/tokens/txt
1545+/* tre-448 %txt /tests/golden/types-list-patterns/tree/txt
1546+/* typ-448 %txt /tests/golden/types-list-patterns/types/txt
1547+/* src-449 %jibb /tests/golden/types-list-zero-fit/source/jibb
1548+/* tok-449 %txt /tests/golden/types-list-zero-fit/tokens/txt
1549+/* tre-449 %txt /tests/golden/types-list-zero-fit/tree/txt
1550+/* typ-449 %txt /tests/golden/types-list-zero-fit/types/txt
1551+/* src-450 %jibb /tests/golden/types-local-capitals/source/jibb
1552+/* tok-450 %txt /tests/golden/types-local-capitals/tokens/txt
1553+/* tre-450 %txt /tests/golden/types-local-capitals/tree/txt
1554+/* typ-450 %txt /tests/golden/types-local-capitals/types/txt
1555+/* src-451 %jibb /tests/golden/types-local-recursive/source/jibb
1556+/* tok-451 %txt /tests/golden/types-local-recursive/tokens/txt
1557+/* tre-451 %txt /tests/golden/types-local-recursive/tree/txt
1558+/* typ-451 %txt /tests/golden/types-local-recursive/types/txt
1559+/* src-452 %jibb /tests/golden/types-local-scc/source/jibb
1560+/* tok-452 %txt /tests/golden/types-local-scc/tokens/txt
1561+/* tre-452 %txt /tests/golden/types-local-scc/tree/txt
1562+/* typ-452 %txt /tests/golden/types-local-scc/types/txt
1563+/* src-453 %jibb /tests/golden/types-local-scc-adversarial/source/jibb
1564+/* tok-453 %txt /tests/golden/types-local-scc-adversarial/tokens/txt
1565+/* tre-453 %txt /tests/golden/types-local-scc-adversarial/tree/txt
1566+/* typ-453 %txt /tests/golden/types-local-scc-adversarial/types/txt
1567+/* src-454 %jibb /tests/golden/types-missing-tag-context/source/jibb
1568+/* tok-454 %txt /tests/golden/types-missing-tag-context/tokens/txt
1569+/* tre-454 %txt /tests/golden/types-missing-tag-context/tree/txt
1570+/* typ-454 %txt /tests/golden/types-missing-tag-context/types/txt
1571+/* src-455 %jibb /tests/golden/types-missing-tag-imported/source/jibb
1572+/* tok-455 %txt /tests/golden/types-missing-tag-imported/tokens/txt
1573+/* tre-455 %txt /tests/golden/types-missing-tag-imported/tree/txt
1574+/* typ-455 %txt /tests/golden/types-missing-tag-imported/types/txt
1575+/* imp-455-1 %txt /tests/golden/types-missing-tag-imported/sur/fixture/txt
1576+/* imp-455-2 %txt /tests/golden/types-missing-tag-imported/sur/fixture/txt
1577+/* src-456 %jibb /tests/golden/types-missing-tag-named/source/jibb
1578+/* tok-456 %txt /tests/golden/types-missing-tag-named/tokens/txt
1579+/* tre-456 %txt /tests/golden/types-missing-tag-named/tree/txt
1580+/* typ-456 %txt /tests/golden/types-missing-tag-named/types/txt
1581+/* src-457 %jibb /tests/golden/types-module-field-ambiguous/source/jibb
1582+/* tok-457 %txt /tests/golden/types-module-field-ambiguous/tokens/txt
1583+/* tre-457 %txt /tests/golden/types-module-field-ambiguous/tree/txt
1584+/* mod-457-1 %jibb /tests/golden/types-module-field-ambiguous/modules/ui/lib/jibb
1585+/* typ-457 %txt /tests/golden/types-module-field-ambiguous/types/txt
1586+/* mtre-457 %txt /tests/golden/types-module-field-ambiguous/module-trees/txt
1587+/* src-458 %jibb /tests/golden/types-module-field-nonrecord/source/jibb
1588+/* tok-458 %txt /tests/golden/types-module-field-nonrecord/tokens/txt
1589+/* tre-458 %txt /tests/golden/types-module-field-nonrecord/tree/txt
1590+/* mod-458-1 %jibb /tests/golden/types-module-field-nonrecord/modules/ui/lib/jibb
1591+/* typ-458 %txt /tests/golden/types-module-field-nonrecord/types/txt
1592+/* mtre-458 %txt /tests/golden/types-module-field-nonrecord/module-trees/txt
1593+/* src-459 %jibb /tests/golden/types-module-field-path/source/jibb
1594+/* tok-459 %txt /tests/golden/types-module-field-path/tokens/txt
1595+/* tre-459 %txt /tests/golden/types-module-field-path/tree/txt
1596+/* mod-459-1 %jibb /tests/golden/types-module-field-path/modules/ui/lib/jibb
1597+/* typ-459 %txt /tests/golden/types-module-field-path/types/txt
1598+/* mtre-459 %txt /tests/golden/types-module-field-path/module-trees/txt
1599+/* src-460 %jibb /tests/golden/types-module-field-shadow/source/jibb
1600+/* tok-460 %txt /tests/golden/types-module-field-shadow/tokens/txt
1601+/* tre-460 %txt /tests/golden/types-module-field-shadow/tree/txt
1602+/* mod-460-1 %jibb /tests/golden/types-module-field-shadow/modules/ui/lib/jibb
1603+/* typ-460 %txt /tests/golden/types-module-field-shadow/types/txt
1604+/* mtre-460 %txt /tests/golden/types-module-field-shadow/module-trees/txt
1605+/* src-461 %jibb /tests/golden/types-module-fixtures/source/jibb
1606+/* tok-461 %txt /tests/golden/types-module-fixtures/tokens/txt
1607+/* tre-461 %txt /tests/golden/types-module-fixtures/tree/txt
1608+/* mod-461-1 %jibb /tests/golden/types-module-fixtures/modules/ui/api/blog/jibb
1609+/* mod-461-2 %jibb /tests/golden/types-module-fixtures/modules/ui/components/card/jibb
1610+/* typ-461 %txt /tests/golden/types-module-fixtures/types/txt
1611+/* mtre-461 %txt /tests/golden/types-module-fixtures/module-trees/txt
1612+/* src-462 %jibb /tests/golden/types-module-mixed/source/jibb
1613+/* tok-462 %txt /tests/golden/types-module-mixed/tokens/txt
1614+/* tre-462 %txt /tests/golden/types-module-mixed/tree/txt
1615+/* mod-462-1 %jibb /tests/golden/types-module-mixed/modules/ui/helper/jibb
1616+/* typ-462 %txt /tests/golden/types-module-mixed/types/txt
1617+/* imp-462-1 %txt /tests/golden/types-module-mixed/sur/fixture/txt
1618+/* mark-462-1 %txt /tests/golden/types-module-mixed/mar/label/txt
1619+/* mtre-462 %txt /tests/golden/types-module-mixed/module-trees/txt
1620+/* src-463 %jibb /tests/golden/types-multi-call/source/jibb
1621+/* tok-463 %txt /tests/golden/types-multi-call/tokens/txt
1622+/* tre-463 %txt /tests/golden/types-multi-call/tree/txt
1623+/* typ-463 %txt /tests/golden/types-multi-call/types/txt
1624+/* src-464 %jibb /tests/golden/types-multi-import/source/jibb
1625+/* tok-464 %txt /tests/golden/types-multi-import/tokens/txt
1626+/* tre-464 %txt /tests/golden/types-multi-import/tree/txt
1627+/* mod-464-1 %jibb /tests/golden/types-multi-import/modules/ui/lib/jibb
1628+/* typ-464 %txt /tests/golden/types-multi-import/types/txt
1629+/* mtre-464 %txt /tests/golden/types-multi-import/module-trees/txt
1630+/* src-465 %jibb /tests/golden/types-nested-missing-tag/source/jibb
1631+/* tok-465 %txt /tests/golden/types-nested-missing-tag/tokens/txt
1632+/* tre-465 %txt /tests/golden/types-nested-missing-tag/tree/txt
1633+/* typ-465 %txt /tests/golden/types-nested-missing-tag/types/txt
1634+/* src-466 %jibb /tests/golden/types-null-context/source/jibb
1635+/* tok-466 %txt /tests/golden/types-null-context/tokens/txt
1636+/* tre-466 %txt /tests/golden/types-null-context/tree/txt
1637+/* typ-466 %txt /tests/golden/types-null-context/types/txt
1638+/* src-467 %jibb /tests/golden/types-null-overlap/source/jibb
1639+/* tok-467 %txt /tests/golden/types-null-overlap/tokens/txt
1640+/* tre-467 %txt /tests/golden/types-null-overlap/tree/txt
1641+/* typ-467 %txt /tests/golden/types-null-overlap/types/txt
1642+/* src-468 %jibb /tests/golden/types-null-unresolved/source/jibb
1643+/* tok-468 %txt /tests/golden/types-null-unresolved/tokens/txt
1644+/* tre-468 %txt /tests/golden/types-null-unresolved/tree/txt
1645+/* typ-468 %txt /tests/golden/types-null-unresolved/types/txt
1646+/* src-469 %jibb /tests/golden/types-pair-context/source/jibb
1647+/* tok-469 %txt /tests/golden/types-pair-context/tokens/txt
1648+/* tre-469 %txt /tests/golden/types-pair-context/tree/txt
1649+/* typ-469 %txt /tests/golden/types-pair-context/types/txt
1650+/* src-470 %jibb /tests/golden/types-partial-apply/source/jibb
1651+/* tok-470 %txt /tests/golden/types-partial-apply/tokens/txt
1652+/* tre-470 %txt /tests/golden/types-partial-apply/tree/txt
1653+/* typ-470 %txt /tests/golden/types-partial-apply/types/txt
1654+/* src-471 %jibb /tests/golden/types-partial-atom-alias/source/jibb
1655+/* tok-471 %txt /tests/golden/types-partial-atom-alias/tokens/txt
1656+/* tre-471 %txt /tests/golden/types-partial-atom-alias/tree/txt
1657+/* typ-471 %txt /tests/golden/types-partial-atom-alias/types/txt
1658+/* src-472 %jibb /tests/golden/types-partial-atom-constraint/source/jibb
1659+/* tok-472 %txt /tests/golden/types-partial-atom-constraint/tokens/txt
1660+/* tre-472 %txt /tests/golden/types-partial-atom-constraint/tree/txt
1661+/* typ-472 %txt /tests/golden/types-partial-atom-constraint/types/txt
1662+/* src-473 %jibb /tests/golden/types-partial-atom-widening/source/jibb
1663+/* tok-473 %txt /tests/golden/types-partial-atom-widening/tokens/txt
1664+/* tre-473 %txt /tests/golden/types-partial-atom-widening/tree/txt
1665+/* typ-473 %txt /tests/golden/types-partial-atom-widening/types/txt
1666+/* src-474 %jibb /tests/golden/types-partial-aura/source/jibb
1667+/* tok-474 %txt /tests/golden/types-partial-aura/tokens/txt
1668+/* tre-474 %txt /tests/golden/types-partial-aura/tree/txt
1669+/* typ-474 %txt /tests/golden/types-partial-aura/types/txt
1670+/* src-475 %jibb /tests/golden/types-partial-aura-family/source/jibb
1671+/* tok-475 %txt /tests/golden/types-partial-aura-family/tokens/txt
1672+/* tre-475 %txt /tests/golden/types-partial-aura-family/tree/txt
1673+/* typ-475 %txt /tests/golden/types-partial-aura-family/types/txt
1674+/* src-476 %jibb /tests/golden/types-partial-aura-generalization/source/jibb
1675+/* tok-476 %txt /tests/golden/types-partial-aura-generalization/tokens/txt
1676+/* tre-476 %txt /tests/golden/types-partial-aura-generalization/tree/txt
1677+/* typ-476 %txt /tests/golden/types-partial-aura-generalization/types/txt
1678+/* src-477 %jibb /tests/golden/types-partial-bare-atom/source/jibb
1679+/* tok-477 %txt /tests/golden/types-partial-bare-atom/tokens/txt
1680+/* tre-477 %txt /tests/golden/types-partial-bare-atom/tree/txt
1681+/* typ-477 %txt /tests/golden/types-partial-bare-atom/types/txt
1682+/* src-478 %jibb /tests/golden/types-partial-branch-widening/source/jibb
1683+/* tok-478 %txt /tests/golden/types-partial-branch-widening/tokens/txt
1684+/* tre-478 %txt /tests/golden/types-partial-branch-widening/tree/txt
1685+/* typ-478 %txt /tests/golden/types-partial-branch-widening/types/txt
1686+/* src-479 %jibb /tests/golden/types-partial-conflicting-sites/source/jibb
1687+/* tok-479 %txt /tests/golden/types-partial-conflicting-sites/tokens/txt
1688+/* tre-479 %txt /tests/golden/types-partial-conflicting-sites/tree/txt
1689+/* typ-479 %txt /tests/golden/types-partial-conflicting-sites/types/txt
1690+/* src-480 %jibb /tests/golden/types-partial-decimal-default/source/jibb
1691+/* tok-480 %txt /tests/golden/types-partial-decimal-default/tokens/txt
1692+/* tre-480 %txt /tests/golden/types-partial-decimal-default/tree/txt
1693+/* typ-480 %txt /tests/golden/types-partial-decimal-default/types/txt
1694+/* src-481 %jibb /tests/golden/types-partial-dependency-chain/source/jibb
1695+/* tok-481 %txt /tests/golden/types-partial-dependency-chain/tokens/txt
1696+/* tre-481 %txt /tests/golden/types-partial-dependency-chain/tree/txt
1697+/* typ-481 %txt /tests/golden/types-partial-dependency-chain/types/txt
1698+/* src-482 %jibb /tests/golden/types-partial-explicit-capital/source/jibb
1699+/* tok-482 %txt /tests/golden/types-partial-explicit-capital/tokens/txt
1700+/* tre-482 %txt /tests/golden/types-partial-explicit-capital/tree/txt
1701+/* typ-482 %txt /tests/golden/types-partial-explicit-capital/types/txt
1702+/* src-483 %jibb /tests/golden/types-partial-forward/source/jibb
1703+/* tok-483 %txt /tests/golden/types-partial-forward/tokens/txt
1704+/* tre-483 %txt /tests/golden/types-partial-forward/tree/txt
1705+/* typ-483 %txt /tests/golden/types-partial-forward/types/txt
1706+/* src-484 %jibb /tests/golden/types-partial-generalization/source/jibb
1707+/* tok-484 %txt /tests/golden/types-partial-generalization/tokens/txt
1708+/* tre-484 %txt /tests/golden/types-partial-generalization/tree/txt
1709+/* typ-484 %txt /tests/golden/types-partial-generalization/types/txt
1710+/* src-485 %jibb /tests/golden/types-partial-identity/source/jibb
1711+/* tok-485 %txt /tests/golden/types-partial-identity/tokens/txt
1712+/* tre-485 %txt /tests/golden/types-partial-identity/tree/txt
1713+/* typ-485 %txt /tests/golden/types-partial-identity/types/txt
1714+/* src-486 %jibb /tests/golden/types-partial-independent-atoms/source/jibb
1715+/* tok-486 %txt /tests/golden/types-partial-independent-atoms/tokens/txt
1716+/* tre-486 %txt /tests/golden/types-partial-independent-atoms/tree/txt
1717+/* typ-486 %txt /tests/golden/types-partial-independent-atoms/types/txt
1718+/* src-487 %jibb /tests/golden/types-partial-local-molds/source/jibb
1719+/* tok-487 %txt /tests/golden/types-partial-local-molds/tokens/txt
1720+/* tre-487 %txt /tests/golden/types-partial-local-molds/tree/txt
1721+/* typ-487 %txt /tests/golden/types-partial-local-molds/types/txt
1722+/* src-488 %jibb /tests/golden/types-partial-locals/source/jibb
1723+/* tok-488 %txt /tests/golden/types-partial-locals/tokens/txt
1724+/* tre-488 %txt /tests/golden/types-partial-locals/tree/txt
1725+/* typ-488 %txt /tests/golden/types-partial-locals/types/txt
1726+/* src-489 %jibb /tests/golden/types-partial-many-atom-constraints/source/jibb
1727+/* tok-489 %txt /tests/golden/types-partial-many-atom-constraints/tokens/txt
1728+/* tre-489 %txt /tests/golden/types-partial-many-atom-constraints/tree/txt
1729+/* typ-489 %txt /tests/golden/types-partial-many-atom-constraints/types/txt
1730+/* src-490 %jibb /tests/golden/types-partial-mold-bare-aura/source/jibb
1731+/* tok-490 %txt /tests/golden/types-partial-mold-bare-aura/tokens/txt
1732+/* tre-490 %txt /tests/golden/types-partial-mold-bare-aura/tree/txt
1733+/* typ-490 %txt /tests/golden/types-partial-mold-bare-aura/types/txt
1734+/* src-491 %jibb /tests/golden/types-partial-mold-composite/source/jibb
1735+/* tok-491 %txt /tests/golden/types-partial-mold-composite/tokens/txt
1736+/* tre-491 %txt /tests/golden/types-partial-mold-composite/tree/txt
1737+/* typ-491 %txt /tests/golden/types-partial-mold-composite/types/txt
1738+/* src-492 %jibb /tests/golden/types-partial-mold-forward/source/jibb
1739+/* tok-492 %txt /tests/golden/types-partial-mold-forward/tokens/txt
1740+/* tre-492 %txt /tests/golden/types-partial-mold-forward/tree/txt
1741+/* typ-492 %txt /tests/golden/types-partial-mold-forward/types/txt
1742+/* src-493 %jibb /tests/golden/types-partial-mold-recursive/source/jibb
1743+/* tok-493 %txt /tests/golden/types-partial-mold-recursive/tokens/txt
1744+/* tre-493 %txt /tests/golden/types-partial-mold-recursive/tree/txt
1745+/* typ-493 %txt /tests/golden/types-partial-mold-recursive/types/txt
1746+/* src-494 %jibb /tests/golden/types-partial-occurs/source/jibb
1747+/* tok-494 %txt /tests/golden/types-partial-occurs/tokens/txt
1748+/* tre-494 %txt /tests/golden/types-partial-occurs/tree/txt
1749+/* typ-494 %txt /tests/golden/types-partial-occurs/types/txt
1750+/* src-495 %jibb /tests/golden/types-partial-projection/source/jibb
1751+/* tok-495 %txt /tests/golden/types-partial-projection/tokens/txt
1752+/* tre-495 %txt /tests/golden/types-partial-projection/tree/txt
1753+/* typ-495 %txt /tests/golden/types-partial-projection/types/txt
1754+/* src-496 %jibb /tests/golden/types-partial-shadow-global/source/jibb
1755+/* tok-496 %txt /tests/golden/types-partial-shadow-global/tokens/txt
1756+/* tre-496 %txt /tests/golden/types-partial-shadow-global/tree/txt
1757+/* typ-496 %txt /tests/golden/types-partial-shadow-global/types/txt
1758+/* src-497 %jibb /tests/golden/types-partial-shared-tvar/source/jibb
1759+/* tok-497 %txt /tests/golden/types-partial-shared-tvar/tokens/txt
1760+/* tre-497 %txt /tests/golden/types-partial-shared-tvar/tree/txt
1761+/* typ-497 %txt /tests/golden/types-partial-shared-tvar/types/txt
1762+/* src-498 %jibb /tests/golden/types-partial-union-cases/source/jibb
1763+/* tok-498 %txt /tests/golden/types-partial-union-cases/tokens/txt
1764+/* tre-498 %txt /tests/golden/types-partial-union-cases/tree/txt
1765+/* typ-498 %txt /tests/golden/types-partial-union-cases/types/txt
1766+/* src-499 %jibb /tests/golden/types-partial-union-edges/source/jibb
1767+/* tok-499 %txt /tests/golden/types-partial-union-edges/tokens/txt
1768+/* tre-499 %txt /tests/golden/types-partial-union-edges/tree/txt
1769+/* typ-499 %txt /tests/golden/types-partial-union-edges/types/txt
1770+/* src-500 %jibb /tests/golden/types-partial-unresolved-tag/source/jibb
1771+/* tok-500 %txt /tests/golden/types-partial-unresolved-tag/tokens/txt
1772+/* tre-500 %txt /tests/golden/types-partial-unresolved-tag/tree/txt
1773+/* typ-500 %txt /tests/golden/types-partial-unresolved-tag/types/txt
1774+/* src-501 %jibb /tests/golden/types-prelude-cmd/source/jibb
1775+/* tok-501 %txt /tests/golden/types-prelude-cmd/tokens/txt
1776+/* tre-501 %txt /tests/golden/types-prelude-cmd/tree/txt
1777+/* typ-501 %txt /tests/golden/types-prelude-cmd/types/txt
1778+/* src-502 %jibb /tests/golden/types-prelude-direct/source/jibb
1779+/* tok-502 %txt /tests/golden/types-prelude-direct/tokens/txt
1780+/* tre-502 %txt /tests/golden/types-prelude-direct/tree/txt
1781+/* typ-502 %txt /tests/golden/types-prelude-direct/types/txt
1782+/* src-503 %jibb /tests/golden/types-prelude-functional/source/jibb
1783+/* tok-503 %txt /tests/golden/types-prelude-functional/tokens/txt
1784+/* tre-503 %txt /tests/golden/types-prelude-functional/tree/txt
1785+/* typ-503 %txt /tests/golden/types-prelude-functional/types/txt
1786+/* src-504 %jibb /tests/golden/types-prelude-interface/source/jibb
1787+/* tok-504 %txt /tests/golden/types-prelude-interface/tokens/txt
1788+/* tre-504 %txt /tests/golden/types-prelude-interface/tree/txt
1789+/* mod-504-1 %jibb /tests/golden/types-prelude-interface/modules/ui/left/jibb
1790+/* mod-504-2 %jibb /tests/golden/types-prelude-interface/modules/ui/right/jibb
1791+/* typ-504 %txt /tests/golden/types-prelude-interface/types/txt
1792+/* mtre-504 %txt /tests/golden/types-prelude-interface/module-trees/txt
1793+/* src-505 %jibb /tests/golden/types-prelude-list-functions/source/jibb
1794+/* tok-505 %txt /tests/golden/types-prelude-list-functions/tokens/txt
1795+/* tre-505 %txt /tests/golden/types-prelude-list-functions/tree/txt
1796+/* mod-505-1 %jibb /tests/golden/types-prelude-list-functions/modules/ui/lib/jibb
1797+/* typ-505 %txt /tests/golden/types-prelude-list-functions/types/txt
1798+/* mtre-505 %txt /tests/golden/types-prelude-list-functions/module-trees/txt
1799+/* src-506 %jibb /tests/golden/types-prelude-list-helpers/source/jibb
1800+/* tok-506 %txt /tests/golden/types-prelude-list-helpers/tokens/txt
1801+/* tre-506 %txt /tests/golden/types-prelude-list-helpers/tree/txt
1802+/* typ-506 %txt /tests/golden/types-prelude-list-helpers/types/txt
1803+/* src-507 %jibb /tests/golden/types-prelude-predicates/source/jibb
1804+/* tok-507 %txt /tests/golden/types-prelude-predicates/tokens/txt
1805+/* tre-507 %txt /tests/golden/types-prelude-predicates/tree/txt
1806+/* typ-507 %txt /tests/golden/types-prelude-predicates/types/txt
1807+/* src-508 %jibb /tests/golden/types-prelude-unit-helpers/source/jibb
1808+/* tok-508 %txt /tests/golden/types-prelude-unit-helpers/tokens/txt
1809+/* tre-508 %txt /tests/golden/types-prelude-unit-helpers/tree/txt
1810+/* typ-508 %txt /tests/golden/types-prelude-unit-helpers/types/txt
1811+/* src-509 %jibb /tests/golden/types-record-bound-variable/source/jibb
1812+/* tok-509 %txt /tests/golden/types-record-bound-variable/tokens/txt
1813+/* tre-509 %txt /tests/golden/types-record-bound-variable/tree/txt
1814+/* typ-509 %txt /tests/golden/types-record-bound-variable/types/txt
1815+/* src-510 %jibb /tests/golden/types-record-cast-context/source/jibb
1816+/* tok-510 %txt /tests/golden/types-record-cast-context/tokens/txt
1817+/* tre-510 %txt /tests/golden/types-record-cast-context/tree/txt
1818+/* typ-510 %txt /tests/golden/types-record-cast-context/types/txt
1819+/* src-511 %jibb /tests/golden/types-record-change/source/jibb
1820+/* tok-511 %txt /tests/golden/types-record-change/tokens/txt
1821+/* tre-511 %txt /tests/golden/types-record-change/tree/txt
1822+/* typ-511 %txt /tests/golden/types-record-change/types/txt
1823+/* src-512 %jibb /tests/golden/types-record-change-generic/source/jibb
1824+/* tok-512 %txt /tests/golden/types-record-change-generic/tokens/txt
1825+/* tre-512 %txt /tests/golden/types-record-change-generic/tree/txt
1826+/* typ-512 %txt /tests/golden/types-record-change-generic/types/txt
1827+/* src-513 %jibb /tests/golden/types-record-faces/source/jibb
1828+/* tok-513 %txt /tests/golden/types-record-faces/tokens/txt
1829+/* tre-513 %txt /tests/golden/types-record-faces/tree/txt
1830+/* typ-513 %txt /tests/golden/types-record-faces/types/txt
1831+/* src-514 %jibb /tests/golden/types-record-import/source/jibb
1832+/* tok-514 %txt /tests/golden/types-record-import/tokens/txt
1833+/* tre-514 %txt /tests/golden/types-record-import/tree/txt
1834+/* mod-514-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
1835+/* typ-514 %txt /tests/golden/types-record-import/types/txt
1836+/* mtre-514 %txt /tests/golden/types-record-import/module-trees/txt
1837+/* src-515 %jibb /tests/golden/types-record-local-scheme/source/jibb
1838+/* tok-515 %txt /tests/golden/types-record-local-scheme/tokens/txt
1839+/* tre-515 %txt /tests/golden/types-record-local-scheme/tree/txt
1840+/* typ-515 %txt /tests/golden/types-record-local-scheme/types/txt
1841+/* src-516 %jibb /tests/golden/types-record-nested/source/jibb
1842+/* tok-516 %txt /tests/golden/types-record-nested/tokens/txt
1843+/* tre-516 %txt /tests/golden/types-record-nested/tree/txt
1844+/* typ-516 %txt /tests/golden/types-record-nested/types/txt
1845+/* src-517 %jibb /tests/golden/types-record-to-tuple/source/jibb
1846+/* tok-517 %txt /tests/golden/types-record-to-tuple/tokens/txt
1847+/* tre-517 %txt /tests/golden/types-record-to-tuple/tree/txt
1848+/* typ-517 %txt /tests/golden/types-record-to-tuple/types/txt
1849+/* src-518 %jibb /tests/golden/types-recursion-scc-failures/source/jibb
1850+/* tok-518 %txt /tests/golden/types-recursion-scc-failures/tokens/txt
1851+/* tre-518 %txt /tests/golden/types-recursion-scc-failures/tree/txt
1852+/* typ-518 %txt /tests/golden/types-recursion-scc-failures/types/txt
1853+/* src-519 %jibb /tests/golden/types-recursion-scc-groups/source/jibb
1854+/* tok-519 %txt /tests/golden/types-recursion-scc-groups/tokens/txt
1855+/* tre-519 %txt /tests/golden/types-recursion-scc-groups/tree/txt
1856+/* typ-519 %txt /tests/golden/types-recursion-scc-groups/types/txt
1857+/* src-520 %jibb /tests/golden/types-recursion-scc-import/source/jibb
1858+/* tok-520 %txt /tests/golden/types-recursion-scc-import/tokens/txt
1859+/* tre-520 %txt /tests/golden/types-recursion-scc-import/tree/txt
1860+/* mod-520-1 %jibb /tests/golden/types-recursion-scc-import/modules/ui/lib/jibb
1861+/* typ-520 %txt /tests/golden/types-recursion-scc-import/types/txt
1862+/* mtre-520 %txt /tests/golden/types-recursion-scc-import/module-trees/txt
1863+/* src-521 %jibb /tests/golden/types-recursion-scc-import-bad/source/jibb
1864+/* tok-521 %txt /tests/golden/types-recursion-scc-import-bad/tokens/txt
1865+/* tre-521 %txt /tests/golden/types-recursion-scc-import-bad/tree/txt
1866+/* mod-521-1 %jibb /tests/golden/types-recursion-scc-import-bad/modules/ui/lib/jibb
1867+/* typ-521 %txt /tests/golden/types-recursion-scc-import-bad/types/txt
1868+/* mtre-521 %txt /tests/golden/types-recursion-scc-import-bad/module-trees/txt
1869+/* src-522 %jibb /tests/golden/types-recursion-scc-local/source/jibb
1870+/* tok-522 %txt /tests/golden/types-recursion-scc-local/tokens/txt
1871+/* tre-522 %txt /tests/golden/types-recursion-scc-local/tree/txt
1872+/* typ-522 %txt /tests/golden/types-recursion-scc-local/types/txt
1873+/* src-523 %jibb /tests/golden/types-recursion-scc-order/source/jibb
1874+/* tok-523 %txt /tests/golden/types-recursion-scc-order/tokens/txt
1875+/* tre-523 %txt /tests/golden/types-recursion-scc-order/tree/txt
1876+/* typ-523 %txt /tests/golden/types-recursion-scc-order/types/txt
1877+/* src-524 %jibb /tests/golden/types-recursion-scc-shadow/source/jibb
1878+/* tok-524 %txt /tests/golden/types-recursion-scc-shadow/tokens/txt
1879+/* tre-524 %txt /tests/golden/types-recursion-scc-shadow/tree/txt
1880+/* typ-524 %txt /tests/golden/types-recursion-scc-shadow/types/txt
1881+/* src-525 %jibb /tests/golden/types-recursive-branch/source/jibb
1882+/* tok-525 %txt /tests/golden/types-recursive-branch/tokens/txt
1883+/* tre-525 %txt /tests/golden/types-recursive-branch/tree/txt
1884+/* typ-525 %txt /tests/golden/types-recursive-branch/types/txt
1885+/* src-526 %jibb /tests/golden/types-recursive-gate/source/jibb
1886+/* tok-526 %txt /tests/golden/types-recursive-gate/tokens/txt
1887+/* tre-526 %txt /tests/golden/types-recursive-gate/tree/txt
1888+/* typ-526 %txt /tests/golden/types-recursive-gate/types/txt
1889+/* src-527 %jibb /tests/golden/types-recursive-sample/source/jibb
1890+/* tok-527 %txt /tests/golden/types-recursive-sample/tokens/txt
1891+/* tre-527 %txt /tests/golden/types-recursive-sample/tree/txt
1892+/* typ-527 %txt /tests/golden/types-recursive-sample/types/txt
1893+/* src-528 %jibb /tests/golden/types-scope-library-poke/source/jibb
1894+/* tok-528 %txt /tests/golden/types-scope-library-poke/tokens/txt
1895+/* tre-528 %txt /tests/golden/types-scope-library-poke/tree/txt
1896+/* typ-528 %txt /tests/golden/types-scope-library-poke/types/txt
1897+/* src-529 %jibb /tests/golden/types-scope-root-api/source/jibb
1898+/* tok-529 %txt /tests/golden/types-scope-root-api/tokens/txt
1899+/* tre-529 %txt /tests/golden/types-scope-root-api/tree/txt
1900+/* typ-529 %txt /tests/golden/types-scope-root-api/types/txt
1901+/* src-530 %jibb /tests/golden/types-scope-store-duplicate/source/jibb
1902+/* tok-530 %txt /tests/golden/types-scope-store-duplicate/tokens/txt
1903+/* tre-530 %txt /tests/golden/types-scope-store-duplicate/tree/txt
1904+/* typ-530 %txt /tests/golden/types-scope-store-duplicate/types/txt
1905+/* src-531 %jibb /tests/golden/types-scope-store-shadow/source/jibb
1906+/* tok-531 %txt /tests/golden/types-scope-store-shadow/tokens/txt
1907+/* tre-531 %txt /tests/golden/types-scope-store-shadow/tree/txt
1908+/* typ-531 %txt /tests/golden/types-scope-store-shadow/types/txt
1909+/* src-532 %jibb /tests/golden/types-single-case-pattern/source/jibb
1910+/* tok-532 %txt /tests/golden/types-single-case-pattern/tokens/txt
1911+/* tre-532 %txt /tests/golden/types-single-case-pattern/tree/txt
1912+/* typ-532 %txt /tests/golden/types-single-case-pattern/types/txt
1913+/* src-533 %jibb /tests/golden/types-string-interpolation/source/jibb
1914+/* tok-533 %txt /tests/golden/types-string-interpolation/tokens/txt
1915+/* tre-533 %txt /tests/golden/types-string-interpolation/tree/txt
1916+/* typ-533 %txt /tests/golden/types-string-interpolation/types/txt
1917+/* src-534 %jibb /tests/golden/types-tuple-context/source/jibb
1918+/* tok-534 %txt /tests/golden/types-tuple-context/tokens/txt
1919+/* tre-534 %txt /tests/golden/types-tuple-context/tree/txt
1920+/* typ-534 %txt /tests/golden/types-tuple-context/types/txt
1921+/* src-535 %jibb /tests/golden/types-tuple-context-nested/source/jibb
1922+/* tok-535 %txt /tests/golden/types-tuple-context-nested/tokens/txt
1923+/* tre-535 %txt /tests/golden/types-tuple-context-nested/tree/txt
1924+/* typ-535 %txt /tests/golden/types-tuple-context-nested/types/txt
1925+/* src-536 %jibb /tests/golden/types-union-alias/source/jibb
1926+/* tok-536 %txt /tests/golden/types-union-alias/tokens/txt
1927+/* tre-536 %txt /tests/golden/types-union-alias/tree/txt
1928+/* typ-536 %txt /tests/golden/types-union-alias/types/txt
1929+/* src-537 %jibb /tests/golden/types-union-branch-context/source/jibb
1930+/* tok-537 %txt /tests/golden/types-union-branch-context/tokens/txt
1931+/* tre-537 %txt /tests/golden/types-union-branch-context/tree/txt
1932+/* typ-537 %txt /tests/golden/types-union-branch-context/types/txt
1933+/* src-538 %jibb /tests/golden/types-union-branch-pending/source/jibb
1934+/* tok-538 %txt /tests/golden/types-union-branch-pending/tokens/txt
1935+/* tre-538 %txt /tests/golden/types-union-branch-pending/tree/txt
1936+/* typ-538 %txt /tests/golden/types-union-branch-pending/types/txt
1937+/* src-539 %jibb /tests/golden/types-union-constructor-shape/source/jibb
1938+/* tok-539 %txt /tests/golden/types-union-constructor-shape/tokens/txt
1939+/* tre-539 %txt /tests/golden/types-union-constructor-shape/tree/txt
1940+/* typ-539 %txt /tests/golden/types-union-constructor-shape/types/txt
1941+/* src-540 %jibb /tests/golden/types-union-context-flow/source/jibb
1942+/* tok-540 %txt /tests/golden/types-union-context-flow/tokens/txt
1943+/* tre-540 %txt /tests/golden/types-union-context-flow/tree/txt
1944+/* typ-540 %txt /tests/golden/types-union-context-flow/types/txt
1945+/* src-541 %jibb /tests/golden/types-union-finite/source/jibb
1946+/* tok-541 %txt /tests/golden/types-union-finite/tokens/txt
1947+/* tre-541 %txt /tests/golden/types-union-finite/tree/txt
1948+/* typ-541 %txt /tests/golden/types-union-finite/types/txt
1949+/* src-542 %jibb /tests/golden/types-union-finite-context/source/jibb
1950+/* tok-542 %txt /tests/golden/types-union-finite-context/tokens/txt
1951+/* tre-542 %txt /tests/golden/types-union-finite-context/tree/txt
1952+/* typ-542 %txt /tests/golden/types-union-finite-context/types/txt
1953+/* src-543 %jibb /tests/golden/types-union-finite-generic/source/jibb
1954+/* tok-543 %txt /tests/golden/types-union-finite-generic/tokens/txt
1955+/* tre-543 %txt /tests/golden/types-union-finite-generic/tree/txt
1956+/* typ-543 %txt /tests/golden/types-union-finite-generic/types/txt
1957+/* src-544 %jibb /tests/golden/types-union-finite-limit/source/jibb
1958+/* tok-544 %txt /tests/golden/types-union-finite-limit/tokens/txt
1959+/* tre-544 %txt /tests/golden/types-union-finite-limit/tree/txt
1960+/* typ-544 %txt /tests/golden/types-union-finite-limit/types/txt
1961+/* src-545 %jibb /tests/golden/types-union-import/source/jibb
1962+/* tok-545 %txt /tests/golden/types-union-import/tokens/txt
1963+/* tre-545 %txt /tests/golden/types-union-import/tree/txt
1964+/* mod-545-1 %jibb /tests/golden/types-union-import/modules/ui/lib/jibb
1965+/* typ-545 %txt /tests/golden/types-union-import/types/txt
1966+/* mtre-545 %txt /tests/golden/types-union-import/module-trees/txt
1967+/* src-546 %jibb /tests/golden/types-union-local-pending/source/jibb
1968+/* tok-546 %txt /tests/golden/types-union-local-pending/tokens/txt
1969+/* tre-546 %txt /tests/golden/types-union-local-pending/tree/txt
1970+/* typ-546 %txt /tests/golden/types-union-local-pending/types/txt
1971+/* src-547 %jibb /tests/golden/types-union-overlap/source/jibb
1972+/* tok-547 %txt /tests/golden/types-union-overlap/tokens/txt
1973+/* tre-547 %txt /tests/golden/types-union-overlap/tree/txt
1974+/* typ-547 %txt /tests/golden/types-union-overlap/types/txt
1975+/* src-548 %jibb /tests/golden/types-union-overlap-nested/source/jibb
1976+/* tok-548 %txt /tests/golden/types-union-overlap-nested/tokens/txt
1977+/* tre-548 %txt /tests/golden/types-union-overlap-nested/tree/txt
1978+/* typ-548 %txt /tests/golden/types-union-overlap-nested/types/txt
1979+/* src-549 %jibb /tests/golden/types-union-pattern-result-context/source/jibb
1980+/* tok-549 %txt /tests/golden/types-union-pattern-result-context/tokens/txt
1981+/* tre-549 %txt /tests/golden/types-union-pattern-result-context/tree/txt
1982+/* typ-549 %txt /tests/golden/types-union-pattern-result-context/types/txt
1983+/* src-550 %jibb /tests/golden/types-union-pattern-result-controls/source/jibb
1984+/* tok-550 %txt /tests/golden/types-union-pattern-result-controls/tokens/txt
1985+/* tre-550 %txt /tests/golden/types-union-pattern-result-controls/tree/txt
1986+/* typ-550 %txt /tests/golden/types-union-pattern-result-controls/types/txt
1987+/* src-551 %jibb /tests/golden/types-union-patterns/source/jibb
1988+/* tok-551 %txt /tests/golden/types-union-patterns/tokens/txt
1989+/* tre-551 %txt /tests/golden/types-union-patterns/tree/txt
1990+/* typ-551 %txt /tests/golden/types-union-patterns/types/txt
1991+/* src-552 %jibb /tests/golden/types-union-patterns-generic/source/jibb
1992+/* tok-552 %txt /tests/golden/types-union-patterns-generic/tokens/txt
1993+/* tre-552 %txt /tests/golden/types-union-patterns-generic/tree/txt
1994+/* typ-552 %txt /tests/golden/types-union-patterns-generic/types/txt
1995+/* src-553 %jibb /tests/golden/types-union-patterns-import/source/jibb
1996+/* tok-553 %txt /tests/golden/types-union-patterns-import/tokens/txt
1997+/* tre-553 %txt /tests/golden/types-union-patterns-import/tree/txt
1998+/* mod-553-1 %jibb /tests/golden/types-union-patterns-import/modules/ui/lib/jibb
1999+/* typ-553 %txt /tests/golden/types-union-patterns-import/types/txt
2000+/* mtre-553 %txt /tests/golden/types-union-patterns-import/module-trees/txt
2001+/* src-554 %jibb /tests/golden/types-union-phantom-generic/source/jibb
2002+/* tok-554 %txt /tests/golden/types-union-phantom-generic/tokens/txt
2003+/* tre-554 %txt /tests/golden/types-union-phantom-generic/tree/txt
2004+/* typ-554 %txt /tests/golden/types-union-phantom-generic/types/txt
2005+/* src-555 %jibb /tests/golden/types-union-print-cross-namespace/source/jibb
2006+/* tok-555 %txt /tests/golden/types-union-print-cross-namespace/tokens/txt
2007+/* tre-555 %txt /tests/golden/types-union-print-cross-namespace/tree/txt
2008+/* mod-555-1 %jibb /tests/golden/types-union-print-cross-namespace/modules/ui/lib/jibb
2009+/* typ-555 %txt /tests/golden/types-union-print-cross-namespace/types/txt
2010+/* mtre-555 %txt /tests/golden/types-union-print-cross-namespace/module-trees/txt
2011+/* src-556 %jibb /tests/golden/types-union-print-distinct/source/jibb
2012+/* tok-556 %txt /tests/golden/types-union-print-distinct/tokens/txt
2013+/* tre-556 %txt /tests/golden/types-union-print-distinct/tree/txt
2014+/* mod-556-1 %jibb /tests/golden/types-union-print-distinct/modules/ui/left/jibb
2015+/* mod-556-2 %jibb /tests/golden/types-union-print-distinct/modules/ui/right/jibb
2016+/* mod-556-3 %jibb /tests/golden/types-union-print-distinct/modules/ui/twin/jibb
2017+/* typ-556 %txt /tests/golden/types-union-print-distinct/types/txt
2018+/* mtre-556 %txt /tests/golden/types-union-print-distinct/module-trees/txt
2019+/* src-557 %jibb /tests/golden/types-union-print-escape/source/jibb
2020+/* tok-557 %txt /tests/golden/types-union-print-escape/tokens/txt
2021+/* tre-557 %txt /tests/golden/types-union-print-escape/tree/txt
2022+/* typ-557 %txt /tests/golden/types-union-print-escape/types/txt
2023+/* src-558 %jibb /tests/golden/types-union-print-local/source/jibb
2024+/* tok-558 %txt /tests/golden/types-union-print-local/tokens/txt
2025+/* tre-558 %txt /tests/golden/types-union-print-local/tree/txt
2026+/* typ-558 %txt /tests/golden/types-union-print-local/types/txt
2027+/* src-559 %jibb /tests/golden/types-union-print-nested/source/jibb
2028+/* tok-559 %txt /tests/golden/types-union-print-nested/tokens/txt
2029+/* tre-559 %txt /tests/golden/types-union-print-nested/tree/txt
2030+/* typ-559 %txt /tests/golden/types-union-print-nested/types/txt
2031+/* src-560 %jibb /tests/golden/types-union-print-same-origin/source/jibb
2032+/* tok-560 %txt /tests/golden/types-union-print-same-origin/tokens/txt
2033+/* tre-560 %txt /tests/golden/types-union-print-same-origin/tree/txt
2034+/* mod-560-1 %jibb /tests/golden/types-union-print-same-origin/modules/ui/shared/jibb
2035+/* typ-560 %txt /tests/golden/types-union-print-same-origin/types/txt
2036+/* mtre-560 %txt /tests/golden/types-union-print-same-origin/module-trees/txt
2037+/* src-561 %jibb /tests/golden/types-union-print-transitive/source/jibb
2038+/* tok-561 %txt /tests/golden/types-union-print-transitive/tokens/txt
2039+/* tre-561 %txt /tests/golden/types-union-print-transitive/tree/txt
2040+/* mod-561-1 %jibb /tests/golden/types-union-print-transitive/modules/ui/mid/jibb
2041+/* mod-561-2 %jibb /tests/golden/types-union-print-transitive/modules/ui/base/jibb
2042+/* typ-561 %txt /tests/golden/types-union-print-transitive/types/txt
2043+/* mtre-561 %txt /tests/golden/types-union-print-transitive/module-trees/txt
2044+/* src-562 %jibb /tests/golden/types-union-singleton/source/jibb
2045+/* tok-562 %txt /tests/golden/types-union-singleton/tokens/txt
2046+/* tre-562 %txt /tests/golden/types-union-singleton/tree/txt
2047+/* typ-562 %txt /tests/golden/types-union-singleton/types/txt
2048+/* src-563 %jibb /tests/golden/types-union-tag-atoms/source/jibb
2049+/* tok-563 %txt /tests/golden/types-union-tag-atoms/tokens/txt
2050+/* tre-563 %txt /tests/golden/types-union-tag-atoms/tree/txt
2051+/* typ-563 %txt /tests/golden/types-union-tag-atoms/types/txt
2052+/* src-564 %jibb /tests/golden/types-union-tags/source/jibb
2053+/* tok-564 %txt /tests/golden/types-union-tags/tokens/txt
2054+/* tre-564 %txt /tests/golden/types-union-tags/tree/txt
2055+/* typ-564 %txt /tests/golden/types-union-tags/types/txt
2056+/* src-565 %jibb /tests/golden/types-union-unresolved/source/jibb
2057+/* tok-565 %txt /tests/golden/types-union-unresolved/tokens/txt
2058+/* tre-565 %txt /tests/golden/types-union-unresolved/tree/txt
2059+/* typ-565 %txt /tests/golden/types-union-unresolved/types/txt
2060+/* src-566 %jibb /tests/golden/types-union-unresolved-flow/source/jibb
2061+/* tok-566 %txt /tests/golden/types-union-unresolved-flow/tokens/txt
2062+/* tre-566 %txt /tests/golden/types-union-unresolved-flow/tree/txt
2063+/* typ-566 %txt /tests/golden/types-union-unresolved-flow/types/txt
2064+/* src-567 %jibb /tests/golden/types-unit-construction/source/jibb
2065+/* tok-567 %txt /tests/golden/types-unit-construction/tokens/txt
2066+/* tre-567 %txt /tests/golden/types-unit-construction/tree/txt
2067+/* typ-567 %txt /tests/golden/types-unit-construction/types/txt
2068+/* src-568 %jibb /tests/golden/types-unit-context/source/jibb
2069+/* tok-568 %txt /tests/golden/types-unit-context/tokens/txt
2070+/* tre-568 %txt /tests/golden/types-unit-context/tree/txt
2071+/* typ-568 %txt /tests/golden/types-unit-context/types/txt
2072+/* src-569 %jibb /tests/golden/types-unit-patterns/source/jibb
2073+/* tok-569 %txt /tests/golden/types-unit-patterns/tokens/txt
2074+/* tre-569 %txt /tests/golden/types-unit-patterns/tree/txt
2075+/* typ-569 %txt /tests/golden/types-unit-patterns/types/txt
2076+/* src-570 %jibb /tests/golden/types-value-cycle-shadow/source/jibb
2077+/* tok-570 %txt /tests/golden/types-value-cycle-shadow/tokens/txt
2078+/* tre-570 %txt /tests/golden/types-value-cycle-shadow/tree/txt
2079+/* typ-570 %txt /tests/golden/types-value-cycle-shadow/types/txt
2080+/* src-571 %jibb /tests/golden/types-value-cycle-unsupported/source/jibb
2081+/* tok-571 %txt /tests/golden/types-value-cycle-unsupported/tokens/txt
2082+/* tre-571 %txt /tests/golden/types-value-cycle-unsupported/tree/txt
2083+/* typ-571 %txt /tests/golden/types-value-cycle-unsupported/types/txt
2084+/* src-572 %jibb /tests/golden/types-value-cycles/source/jibb
2085+/* tok-572 %txt /tests/golden/types-value-cycles/tokens/txt
2086+/* tre-572 %txt /tests/golden/types-value-cycles/tree/txt
2087+/* typ-572 %txt /tests/golden/types-value-cycles/types/txt
20792088=/ prepared-prelude (prepare-prelude-with-internal:jibb prelude-source internal-source)
20802089|%
20812090:: one arm per case
@@ -2896,330 +2905,334 @@
28962905 (weld (check ~.types-cell-pattern-tail src-407 `tok-407 `tre-407) (check-module-types ~.types-cell-pattern-tail ~[%tests %golden ~.types-cell-pattern-tail %source %jibb] src-407 `typ-407 ~ ~ ~))
28972906++ test-types-deferred-call-context
28982907 (weld (check ~.types-deferred-call-context src-408 `tok-408 `tre-408) (check-module-types ~.types-deferred-call-context ~[%tests %golden ~.types-deferred-call-context %source %jibb] src-408 `typ-408 ~ ~ ~))
2908+++ test-types-flag-branch-context
2909+ (weld (check ~.types-flag-branch-context src-409 `tok-409 `tre-409) (check-module-types ~.types-flag-branch-context ~[%tests %golden ~.types-flag-branch-context %source %jibb] src-409 `typ-409 ~ ~ ~))
28992910++ test-types-generic-arity
2900− (weld (check ~.types-generic-arity src-409 `tok-409 `tre-409) (check-types ~.types-generic-arity ~[%tests %golden ~.types-generic-arity %source %jibb] src-409 `typ-409))
2911+ (weld (check ~.types-generic-arity src-410 `tok-410 `tre-410) (check-types ~.types-generic-arity ~[%tests %golden ~.types-generic-arity %source %jibb] src-410 `typ-410))
29012912++ test-types-generic-face-inference
2902− (weld (check ~.types-generic-face-inference src-410 `tok-410 `tre-410) (check-types ~.types-generic-face-inference ~[%tests %golden ~.types-generic-face-inference %source %jibb] src-410 `typ-410))
2913+ (weld (check ~.types-generic-face-inference src-411 `tok-411 `tre-411) (check-types ~.types-generic-face-inference ~[%tests %golden ~.types-generic-face-inference %source %jibb] src-411 `typ-411))
29032914++ test-types-generic-gates
2904− (weld (check ~.types-generic-gates src-411 `tok-411 `tre-411) (check-types ~.types-generic-gates ~[%tests %golden ~.types-generic-gates %source %jibb] src-411 `typ-411))
2915+ (weld (check ~.types-generic-gates src-412 `tok-412 `tre-412) (check-types ~.types-generic-gates ~[%tests %golden ~.types-generic-gates %source %jibb] src-412 `typ-412))
29052916++ test-types-generic-import-reverse
2906− (weld (weld (check ~.types-generic-import-reverse src-412 `tok-412 `tre-412) (check-module-types ~.types-generic-import-reverse ~[%tests %golden ~.types-generic-import-reverse %source %jibb] src-412 `typ-412 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-412-1]])) (check-module-trees ~.types-generic-import-reverse `mtre-412 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-412-1]]))
2917+ (weld (weld (check ~.types-generic-import-reverse src-413 `tok-413 `tre-413) (check-module-types ~.types-generic-import-reverse ~[%tests %golden ~.types-generic-import-reverse %source %jibb] src-413 `typ-413 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-413-1]])) (check-module-trees ~.types-generic-import-reverse `mtre-413 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-413-1]]))
29072918++ test-types-generic-lexical-alias
2908− (weld (check ~.types-generic-lexical-alias src-413 `tok-413 `tre-413) (check-types ~.types-generic-lexical-alias ~[%tests %golden ~.types-generic-lexical-alias %source %jibb] src-413 `typ-413))
2919+ (weld (check ~.types-generic-lexical-alias src-414 `tok-414 `tre-414) (check-types ~.types-generic-lexical-alias ~[%tests %golden ~.types-generic-lexical-alias %source %jibb] src-414 `typ-414))
29092920++ test-types-generic-local-parameter
2910− (weld (check ~.types-generic-local-parameter src-414 `tok-414 `tre-414) (check-types ~.types-generic-local-parameter ~[%tests %golden ~.types-generic-local-parameter %source %jibb] src-414 `typ-414))
2921+ (weld (check ~.types-generic-local-parameter src-415 `tok-415 `tre-415) (check-types ~.types-generic-local-parameter ~[%tests %golden ~.types-generic-local-parameter %source %jibb] src-415 `typ-415))
29112922++ test-types-generic-local-scope
2912− (weld (check ~.types-generic-local-scope src-415 `tok-415 `tre-415) (check-types ~.types-generic-local-scope ~[%tests %golden ~.types-generic-local-scope %source %jibb] src-415 `typ-415))
2923+ (weld (check ~.types-generic-local-scope src-416 `tok-416 `tre-416) (check-types ~.types-generic-local-scope ~[%tests %golden ~.types-generic-local-scope %source %jibb] src-416 `typ-416))
29132924++ test-types-generic-module
2914− (weld (weld (check ~.types-generic-module src-416 `tok-416 `tre-416) (check-module-types ~.types-generic-module ~[%tests %golden ~.types-generic-module %source %jibb] src-416 `typ-416 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-416-1]])) (check-module-trees ~.types-generic-module `mtre-416 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-416-1]]))
2925+ (weld (weld (check ~.types-generic-module src-417 `tok-417 `tre-417) (check-module-types ~.types-generic-module ~[%tests %golden ~.types-generic-module %source %jibb] src-417 `typ-417 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-417-1]])) (check-module-trees ~.types-generic-module `mtre-417 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-417-1]]))
29152926++ test-types-generic-nested-scope
2916− (weld (check ~.types-generic-nested-scope src-417 `tok-417 `tre-417) (check-types ~.types-generic-nested-scope ~[%tests %golden ~.types-generic-nested-scope %source %jibb] src-417 `typ-417))
2927+ (weld (check ~.types-generic-nested-scope src-418 `tok-418 `tre-418) (check-types ~.types-generic-nested-scope ~[%tests %golden ~.types-generic-nested-scope %source %jibb] src-418 `typ-418))
29172928++ test-types-generic-parameters
2918− (weld (check ~.types-generic-parameters src-418 `tok-418 `tre-418) (check-types ~.types-generic-parameters ~[%tests %golden ~.types-generic-parameters %source %jibb] src-418 `typ-418))
2929+ (weld (check ~.types-generic-parameters src-419 `tok-419 `tre-419) (check-types ~.types-generic-parameters ~[%tests %golden ~.types-generic-parameters %source %jibb] src-419 `typ-419))
29192930++ test-types-generic-record
2920− (weld (check ~.types-generic-record src-419 `tok-419 `tre-419) (check-types ~.types-generic-record ~[%tests %golden ~.types-generic-record %source %jibb] src-419 `typ-419))
2931+ (weld (check ~.types-generic-record src-420 `tok-420 `tre-420) (check-types ~.types-generic-record ~[%tests %golden ~.types-generic-record %source %jibb] src-420 `typ-420))
29212932++ test-types-generic-recursive-union
2922− (weld (check ~.types-generic-recursive-union src-420 `tok-420 `tre-420) (check-types ~.types-generic-recursive-union ~[%tests %golden ~.types-generic-recursive-union %source %jibb] src-420 `typ-420))
2933+ (weld (check ~.types-generic-recursive-union src-421 `tok-421 `tre-421) (check-types ~.types-generic-recursive-union ~[%tests %golden ~.types-generic-recursive-union %source %jibb] src-421 `typ-421))
29232934++ test-types-generic-repeated
2924− (weld (check ~.types-generic-repeated src-421 `tok-421 `tre-421) (check-types ~.types-generic-repeated ~[%tests %golden ~.types-generic-repeated %source %jibb] src-421 `typ-421))
2935+ (weld (check ~.types-generic-repeated src-422 `tok-422 `tre-422) (check-types ~.types-generic-repeated ~[%tests %golden ~.types-generic-repeated %source %jibb] src-422 `typ-422))
29252936++ test-types-generic-union-alias
2926− (weld (check ~.types-generic-union-alias src-422 `tok-422 `tre-422) (check-types ~.types-generic-union-alias ~[%tests %golden ~.types-generic-union-alias %source %jibb] src-422 `typ-422))
2937+ (weld (check ~.types-generic-union-alias src-423 `tok-423 `tre-423) (check-types ~.types-generic-union-alias ~[%tests %golden ~.types-generic-union-alias %source %jibb] src-423 `typ-423))
29272938++ test-types-generic-union-alias-face
2928− (weld (weld (check ~.types-generic-union-alias-face src-423 `tok-423 `tre-423) (check-module-types ~.types-generic-union-alias-face ~[%tests %golden ~.types-generic-union-alias-face %source %jibb] src-423 `typ-423 ~ ~ ~[['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-423-1]])) (check-module-trees ~.types-generic-union-alias-face `mtre-423 ~[['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-423-1]]))
2939+ (weld (weld (check ~.types-generic-union-alias-face src-424 `tok-424 `tre-424) (check-module-types ~.types-generic-union-alias-face ~[%tests %golden ~.types-generic-union-alias-face %source %jibb] src-424 `typ-424 ~ ~ ~[['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-424-1]])) (check-module-trees ~.types-generic-union-alias-face `mtre-424 ~[['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-424-1]]))
29292940++ test-types-generic-union-capitals
2930− (weld (check ~.types-generic-union-capitals src-424 `tok-424 `tre-424) (check-types ~.types-generic-union-capitals ~[%tests %golden ~.types-generic-union-capitals %source %jibb] src-424 `typ-424))
2941+ (weld (check ~.types-generic-union-capitals src-425 `tok-425 `tre-425) (check-types ~.types-generic-union-capitals ~[%tests %golden ~.types-generic-union-capitals %source %jibb] src-425 `typ-425))
29312942++ test-types-generic-union-errors
2932− (weld (check ~.types-generic-union-errors src-425 `tok-425 `tre-425) (check-types ~.types-generic-union-errors ~[%tests %golden ~.types-generic-union-errors %source %jibb] src-425 `typ-425))
2943+ (weld (check ~.types-generic-union-errors src-426 `tok-426 `tre-426) (check-types ~.types-generic-union-errors ~[%tests %golden ~.types-generic-union-errors %source %jibb] src-426 `typ-426))
29332944++ test-types-generic-union-escaping
2934− (weld (weld (check ~.types-generic-union-escaping src-426 `tok-426 `tre-426) (check-module-types ~.types-generic-union-escaping ~[%tests %golden ~.types-generic-union-escaping %source %jibb] src-426 `typ-426 ~ ~ ~[['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-426-1] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-426-2]])) (check-module-trees ~.types-generic-union-escaping `mtre-426 ~[['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-426-1] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-426-2]]))
2945+ (weld (weld (check ~.types-generic-union-escaping src-427 `tok-427 `tre-427) (check-module-types ~.types-generic-union-escaping ~[%tests %golden ~.types-generic-union-escaping %source %jibb] src-427 `typ-427 ~ ~ ~[['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-427-1] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-427-2]])) (check-module-trees ~.types-generic-union-escaping `mtre-427 ~[['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-427-1] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-427-2]]))
29352946++ test-types-generic-union-import
2936− (weld (weld (check ~.types-generic-union-import src-427 `tok-427 `tre-427) (check-module-types ~.types-generic-union-import ~[%tests %golden ~.types-generic-union-import %source %jibb] src-427 `typ-427 ~ ~ ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-427-1] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-427-2]])) (check-module-trees ~.types-generic-union-import `mtre-427 ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-427-1] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-427-2]]))
2947+ (weld (weld (check ~.types-generic-union-import src-428 `tok-428 `tre-428) (check-module-types ~.types-generic-union-import ~[%tests %golden ~.types-generic-union-import %source %jibb] src-428 `typ-428 ~ ~ ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-428-1] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-428-2]])) (check-module-trees ~.types-generic-union-import `mtre-428 ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-428-1] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-428-2]]))
29372948++ test-types-generic-union-local
2938− (weld (check ~.types-generic-union-local src-428 `tok-428 `tre-428) (check-types ~.types-generic-union-local ~[%tests %golden ~.types-generic-union-local %source %jibb] src-428 `typ-428))
2949+ (weld (check ~.types-generic-union-local src-429 `tok-429 `tre-429) (check-types ~.types-generic-union-local ~[%tests %golden ~.types-generic-union-local %source %jibb] src-429 `typ-429))
29392950++ test-types-generic-union-transitive
2940− (weld (weld (check ~.types-generic-union-transitive src-429 `tok-429 `tre-429) (check-module-types ~.types-generic-union-transitive ~[%tests %golden ~.types-generic-union-transitive %source %jibb] src-429 `typ-429 ~ ~ ~[['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-429-1] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-429-2]])) (check-module-trees ~.types-generic-union-transitive `mtre-429 ~[['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-429-1] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-429-2]]))
2951+ (weld (weld (check ~.types-generic-union-transitive src-430 `tok-430 `tre-430) (check-module-types ~.types-generic-union-transitive ~[%tests %golden ~.types-generic-union-transitive %source %jibb] src-430 `typ-430 ~ ~ ~[['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-430-1] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-430-2]])) (check-module-trees ~.types-generic-union-transitive `mtre-430 ~[['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-430-1] ['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-430-2]]))
29412952++ test-types-import-duplicate-mark
2942− (weld (check ~.types-import-duplicate-mark src-430 `tok-430 `tre-430) (check-mark-types ~.types-import-duplicate-mark ~[%tests %golden ~.types-import-duplicate-mark %source %jibb] src-430 `typ-430 ~ ~[[%duplicate mark-430-1]]))
2953+ (weld (check ~.types-import-duplicate-mark src-431 `tok-431 `tre-431) (check-mark-types ~.types-import-duplicate-mark ~[%tests %golden ~.types-import-duplicate-mark %source %jibb] src-431 `typ-431 ~ ~[[%duplicate mark-431-1]]))
29432954++ test-types-import-duplicate-sur
2944− (weld (check ~.types-import-duplicate-sur src-431 `tok-431 `tre-431) (check-import-types ~.types-import-duplicate-sur ~[%tests %golden ~.types-import-duplicate-sur %source %jibb] src-431 `typ-431 ~[[%fixture %direct imp-431-1] [%fixture %nested imp-431-2] [%fixture %valid imp-431-3]]))
2955+ (weld (check ~.types-import-duplicate-sur src-432 `tok-432 `tre-432) (check-import-types ~.types-import-duplicate-sur ~[%tests %golden ~.types-import-duplicate-sur %source %jibb] src-432 `typ-432 ~[[%fixture %direct imp-432-1] [%fixture %nested imp-432-2] [%fixture %valid imp-432-3]]))
29452956++ test-types-import-hoon-flags
2946− (weld (check ~.types-import-hoon-flags src-432 `tok-432 `tre-432) (check-import-types ~.types-import-hoon-flags ~[%tests %golden ~.types-import-hoon-flags %source %jibb] src-432 `typ-432 ~[[%flags %flag imp-432-1] [%flags %yes imp-432-2] [%flags %no imp-432-3] [%flags %record imp-432-4]]))
2957+ (weld (check ~.types-import-hoon-flags src-433 `tok-433 `tre-433) (check-import-types ~.types-import-hoon-flags ~[%tests %golden ~.types-import-hoon-flags %source %jibb] src-433 `typ-433 ~[[%flags %flag imp-433-1] [%flags %yes imp-433-2] [%flags %no imp-433-3] [%flags %record imp-433-4]]))
29472958++ test-types-import-hoon-noun
2948− (weld (check ~.types-import-hoon-noun src-433 `tok-433 `tre-433) (check-import-types ~.types-import-hoon-noun ~[%tests %golden ~.types-import-hoon-noun %source %jibb] src-433 `typ-433 ~[[%fixture %any imp-433-1] [%fixture %payload imp-433-2] [%fixture %option imp-433-3] [%fixture %overlap imp-433-4]]))
2959+ (weld (check ~.types-import-hoon-noun src-434 `tok-434 `tre-434) (check-import-types ~.types-import-hoon-noun ~[%tests %golden ~.types-import-hoon-noun %source %jibb] src-434 `typ-434 ~[[%fixture %any imp-434-1] [%fixture %payload imp-434-2] [%fixture %option imp-434-3] [%fixture %overlap imp-434-4]]))
29492960++ test-types-import-mark
2950− (weld (check ~.types-import-mark src-434 `tok-434 `tre-434) (check-mark-types ~.types-import-mark ~[%tests %golden ~.types-import-mark %source %jibb] src-434 `typ-434 ~[[%fixture %title imp-434-1]] ~[[%label mark-434-1]]))
2961+ (weld (check ~.types-import-mark src-435 `tok-435 `tre-435) (check-mark-types ~.types-import-mark ~[%tests %golden ~.types-import-mark %source %jibb] src-435 `typ-435 ~[[%fixture %title imp-435-1]] ~[[%label mark-435-1]]))
29512962++ test-types-import-mark-record
2952− (weld (check ~.types-import-mark-record src-435 `tok-435 `tre-435) (check-mark-types ~.types-import-mark-record ~[%tests %golden ~.types-import-mark-record %source %jibb] src-435 `typ-435 ~ ~[[%note mark-435-1] [%choice mark-435-2]]))
2963+ (weld (check ~.types-import-mark-record src-436 `tok-436 `tre-436) (check-mark-types ~.types-import-mark-record ~[%tests %golden ~.types-import-mark-record %source %jibb] src-436 `typ-436 ~ ~[[%note mark-436-1] [%choice mark-436-2]]))
29532964++ test-types-import-missing-mold
2954− (weld (check ~.types-import-missing-mold src-436 `tok-436 `tre-436) (check-import-types ~.types-import-missing-mold ~[%tests %golden ~.types-import-missing-mold %source %jibb] src-436 `typ-436 ~[[%fixture %missing imp-436-1]]))
2965+ (weld (check ~.types-import-missing-mold src-437 `tok-437 `tre-437) (check-import-types ~.types-import-missing-mold ~[%tests %golden ~.types-import-missing-mold %source %jibb] src-437 `typ-437 ~[[%fixture %missing imp-437-1]]))
29552966++ test-types-import-sur
2956− (weld (check ~.types-import-sur src-437 `tok-437 `tre-437) (check-import-types ~.types-import-sur ~[%tests %golden ~.types-import-sur %source %jibb] src-437 `typ-437 ~[[%fixture %title imp-437-1] [%fixture %pair imp-437-2]]))
2967+ (weld (check ~.types-import-sur src-438 `tok-438 `tre-438) (check-import-types ~.types-import-sur ~[%tests %golden ~.types-import-sur %source %jibb] src-438 `typ-438 ~[[%fixture %title imp-438-1] [%fixture %pair imp-438-2]]))
29572968++ test-types-import-sur-record-graph
2958− (weld (weld (check ~.types-import-sur-record-graph src-438 `tok-438 `tre-438) (check-module-types ~.types-import-sur-record-graph ~[%tests %golden ~.types-import-sur-record-graph %source %jibb] src-438 `typ-438 ~[[%fixture %entry imp-438-1]] ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-438-1]])) (check-module-trees ~.types-import-sur-record-graph `mtre-438 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-438-1]]))
2969+ (weld (weld (check ~.types-import-sur-record-graph src-439 `tok-439 `tre-439) (check-module-types ~.types-import-sur-record-graph ~[%tests %golden ~.types-import-sur-record-graph %source %jibb] src-439 `typ-439 ~[[%fixture %entry imp-439-1]] ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-439-1]])) (check-module-trees ~.types-import-sur-record-graph `mtre-439 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-439-1]]))
29592970++ test-types-import-tlon-notes
2960− (weld (check ~.types-import-tlon-notes src-439 `tok-439 `tre-439) (check-import-types ~.types-import-tlon-notes ~[%tests %golden ~.types-import-tlon-notes %source %jibb] src-439 `typ-439 ~[[%notes %u-note imp-439-1] [%notes %a-note imp-439-2] [%notes %u-notebook imp-439-3] [%notes %u-notes imp-439-4]]))
2971+ (weld (check ~.types-import-tlon-notes src-440 `tok-440 `tre-440) (check-import-types ~.types-import-tlon-notes ~[%tests %golden ~.types-import-tlon-notes %source %jibb] src-440 `typ-440 ~[[%notes %u-note imp-440-1] [%notes %a-note imp-440-2] [%notes %u-notebook imp-440-3] [%notes %u-notes imp-440-4] [%notes %log imp-440-5]]))
29612972++ test-types-list-branch
2962− (weld (check ~.types-list-branch src-440 `tok-440 `tre-440) (check-module-types ~.types-list-branch ~[%tests %golden ~.types-list-branch %source %jibb] src-440 `typ-440 ~ ~ ~))
2973+ (weld (check ~.types-list-branch src-441 `tok-441 `tre-441) (check-module-types ~.types-list-branch ~[%tests %golden ~.types-list-branch %source %jibb] src-441 `typ-441 ~ ~ ~))
29632974++ test-types-list-cons
2964− (weld (check ~.types-list-cons src-441 `tok-441 `tre-441) (check-module-types ~.types-list-cons ~[%tests %golden ~.types-list-cons %source %jibb] src-441 `typ-441 ~ ~ ~))
2975+ (weld (check ~.types-list-cons src-442 `tok-442 `tre-442) (check-module-types ~.types-list-cons ~[%tests %golden ~.types-list-cons %source %jibb] src-442 `typ-442 ~ ~ ~))
29652976++ test-types-list-context
2966− (weld (check ~.types-list-context src-442 `tok-442 `tre-442) (check-module-types ~.types-list-context ~[%tests %golden ~.types-list-context %source %jibb] src-442 `typ-442 ~ ~ ~))
2977+ (weld (check ~.types-list-context src-443 `tok-443 `tre-443) (check-module-types ~.types-list-context ~[%tests %golden ~.types-list-context %source %jibb] src-443 `typ-443 ~ ~ ~))
29672978++ test-types-list-imported
2968− (weld (check ~.types-list-imported src-443 `tok-443 `tre-443) (check-module-types ~.types-list-imported ~[%tests %golden ~.types-list-imported %source %jibb] src-443 `typ-443 ~[[%fixture %texts imp-443-1] [%fixture %ships imp-443-2]] ~ ~))
2979+ (weld (check ~.types-list-imported src-444 `tok-444 `tre-444) (check-module-types ~.types-list-imported ~[%tests %golden ~.types-list-imported %source %jibb] src-444 `typ-444 ~[[%fixture %texts imp-444-1] [%fixture %ships imp-444-2]] ~ ~))
29692980++ test-types-list-open
2970− (weld (check ~.types-list-open src-444 `tok-444 `tre-444) (check-module-types ~.types-list-open ~[%tests %golden ~.types-list-open %source %jibb] src-444 `typ-444 ~ ~ ~))
2981+ (weld (check ~.types-list-open src-445 `tok-445 `tre-445) (check-module-types ~.types-list-open ~[%tests %golden ~.types-list-open %source %jibb] src-445 `typ-445 ~ ~ ~))
29712982++ test-types-list-open-constraints
2972− (weld (check ~.types-list-open-constraints src-445 `tok-445 `tre-445) (check-module-types ~.types-list-open-constraints ~[%tests %golden ~.types-list-open-constraints %source %jibb] src-445 `typ-445 ~ ~ ~))
2983+ (weld (check ~.types-list-open-constraints src-446 `tok-446 `tre-446) (check-module-types ~.types-list-open-constraints ~[%tests %golden ~.types-list-open-constraints %source %jibb] src-446 `typ-446 ~ ~ ~))
29732984++ test-types-list-pattern-imported
2974− (weld (check ~.types-list-pattern-imported src-446 `tok-446 `tre-446) (check-module-types ~.types-list-pattern-imported ~[%tests %golden ~.types-list-pattern-imported %source %jibb] src-446 `typ-446 ~[[%fixture %texts imp-446-1] [%fixture %text-set imp-446-2]] ~ ~))
2985+ (weld (check ~.types-list-pattern-imported src-447 `tok-447 `tre-447) (check-module-types ~.types-list-pattern-imported ~[%tests %golden ~.types-list-pattern-imported %source %jibb] src-447 `typ-447 ~[[%fixture %texts imp-447-1] [%fixture %text-set imp-447-2]] ~ ~))
29752986++ test-types-list-patterns
2976− (weld (check ~.types-list-patterns src-447 `tok-447 `tre-447) (check-module-types ~.types-list-patterns ~[%tests %golden ~.types-list-patterns %source %jibb] src-447 `typ-447 ~ ~ ~))
2987+ (weld (check ~.types-list-patterns src-448 `tok-448 `tre-448) (check-module-types ~.types-list-patterns ~[%tests %golden ~.types-list-patterns %source %jibb] src-448 `typ-448 ~ ~ ~))
29772988++ test-types-list-zero-fit
2978− (weld (check ~.types-list-zero-fit src-448 `tok-448 `tre-448) (check-module-types ~.types-list-zero-fit ~[%tests %golden ~.types-list-zero-fit %source %jibb] src-448 `typ-448 ~ ~ ~))
2989+ (weld (check ~.types-list-zero-fit src-449 `tok-449 `tre-449) (check-module-types ~.types-list-zero-fit ~[%tests %golden ~.types-list-zero-fit %source %jibb] src-449 `typ-449 ~ ~ ~))
29792990++ test-types-local-capitals
2980− (weld (check ~.types-local-capitals src-449 `tok-449 `tre-449) (check-module-types ~.types-local-capitals ~[%tests %golden ~.types-local-capitals %source %jibb] src-449 `typ-449 ~ ~ ~))
2991+ (weld (check ~.types-local-capitals src-450 `tok-450 `tre-450) (check-module-types ~.types-local-capitals ~[%tests %golden ~.types-local-capitals %source %jibb] src-450 `typ-450 ~ ~ ~))
29812992++ test-types-local-recursive
2982− (weld (check ~.types-local-recursive src-450 `tok-450 `tre-450) (check-module-types ~.types-local-recursive ~[%tests %golden ~.types-local-recursive %source %jibb] src-450 `typ-450 ~ ~ ~))
2993+ (weld (check ~.types-local-recursive src-451 `tok-451 `tre-451) (check-module-types ~.types-local-recursive ~[%tests %golden ~.types-local-recursive %source %jibb] src-451 `typ-451 ~ ~ ~))
29832994++ test-types-local-scc
2984− (weld (check ~.types-local-scc src-451 `tok-451 `tre-451) (check-module-types ~.types-local-scc ~[%tests %golden ~.types-local-scc %source %jibb] src-451 `typ-451 ~ ~ ~))
2995+ (weld (check ~.types-local-scc src-452 `tok-452 `tre-452) (check-module-types ~.types-local-scc ~[%tests %golden ~.types-local-scc %source %jibb] src-452 `typ-452 ~ ~ ~))
29852996++ test-types-local-scc-adversarial
2986− (weld (check ~.types-local-scc-adversarial src-452 `tok-452 `tre-452) (check-module-types ~.types-local-scc-adversarial ~[%tests %golden ~.types-local-scc-adversarial %source %jibb] src-452 `typ-452 ~ ~ ~))
2997+ (weld (check ~.types-local-scc-adversarial src-453 `tok-453 `tre-453) (check-module-types ~.types-local-scc-adversarial ~[%tests %golden ~.types-local-scc-adversarial %source %jibb] src-453 `typ-453 ~ ~ ~))
29872998++ test-types-missing-tag-context
2988− (weld (check ~.types-missing-tag-context src-453 `tok-453 `tre-453) (check-module-types ~.types-missing-tag-context ~[%tests %golden ~.types-missing-tag-context %source %jibb] src-453 `typ-453 ~ ~ ~))
2999+ (weld (check ~.types-missing-tag-context src-454 `tok-454 `tre-454) (check-module-types ~.types-missing-tag-context ~[%tests %golden ~.types-missing-tag-context %source %jibb] src-454 `typ-454 ~ ~ ~))
29893000++ test-types-missing-tag-imported
2990− (weld (check ~.types-missing-tag-imported src-454 `tok-454 `tre-454) (check-import-types ~.types-missing-tag-imported ~[%tests %golden ~.types-missing-tag-imported %source %jibb] src-454 `typ-454 ~[[%fixture %choice imp-454-1] [%fixture %nested-choice imp-454-2]]))
3001+ (weld (check ~.types-missing-tag-imported src-455 `tok-455 `tre-455) (check-import-types ~.types-missing-tag-imported ~[%tests %golden ~.types-missing-tag-imported %source %jibb] src-455 `typ-455 ~[[%fixture %choice imp-455-1] [%fixture %nested-choice imp-455-2]]))
29913002++ test-types-missing-tag-named
2992− (weld (check ~.types-missing-tag-named src-455 `tok-455 `tre-455) (check-module-types ~.types-missing-tag-named ~[%tests %golden ~.types-missing-tag-named %source %jibb] src-455 `typ-455 ~ ~ ~))
3003+ (weld (check ~.types-missing-tag-named src-456 `tok-456 `tre-456) (check-module-types ~.types-missing-tag-named ~[%tests %golden ~.types-missing-tag-named %source %jibb] src-456 `typ-456 ~ ~ ~))
29933004++ test-types-module-field-ambiguous
2994− (weld (weld (check ~.types-module-field-ambiguous src-456 `tok-456 `tre-456) (check-module-types ~.types-module-field-ambiguous ~[%tests %golden ~.types-module-field-ambiguous %source %jibb] src-456 `typ-456 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-456-1]])) (check-module-trees ~.types-module-field-ambiguous `mtre-456 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-456-1]]))
3005+ (weld (weld (check ~.types-module-field-ambiguous src-457 `tok-457 `tre-457) (check-module-types ~.types-module-field-ambiguous ~[%tests %golden ~.types-module-field-ambiguous %source %jibb] src-457 `typ-457 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-457-1]])) (check-module-trees ~.types-module-field-ambiguous `mtre-457 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-457-1]]))
29953006++ test-types-module-field-nonrecord
2996− (weld (weld (check ~.types-module-field-nonrecord src-457 `tok-457 `tre-457) (check-module-types ~.types-module-field-nonrecord ~[%tests %golden ~.types-module-field-nonrecord %source %jibb] src-457 `typ-457 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-457-1]])) (check-module-trees ~.types-module-field-nonrecord `mtre-457 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-457-1]]))
3007+ (weld (weld (check ~.types-module-field-nonrecord src-458 `tok-458 `tre-458) (check-module-types ~.types-module-field-nonrecord ~[%tests %golden ~.types-module-field-nonrecord %source %jibb] src-458 `typ-458 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-458-1]])) (check-module-trees ~.types-module-field-nonrecord `mtre-458 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-458-1]]))
29973008++ test-types-module-field-path
2998− (weld (weld (check ~.types-module-field-path src-458 `tok-458 `tre-458) (check-module-types ~.types-module-field-path ~[%tests %golden ~.types-module-field-path %source %jibb] src-458 `typ-458 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-458-1]])) (check-module-trees ~.types-module-field-path `mtre-458 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-458-1]]))
3009+ (weld (weld (check ~.types-module-field-path src-459 `tok-459 `tre-459) (check-module-types ~.types-module-field-path ~[%tests %golden ~.types-module-field-path %source %jibb] src-459 `typ-459 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-459-1]])) (check-module-trees ~.types-module-field-path `mtre-459 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-459-1]]))
29993010++ test-types-module-field-shadow
3000− (weld (weld (check ~.types-module-field-shadow src-459 `tok-459 `tre-459) (check-module-types ~.types-module-field-shadow ~[%tests %golden ~.types-module-field-shadow %source %jibb] src-459 `typ-459 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-459-1]])) (check-module-trees ~.types-module-field-shadow `mtre-459 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-459-1]]))
3011+ (weld (weld (check ~.types-module-field-shadow src-460 `tok-460 `tre-460) (check-module-types ~.types-module-field-shadow ~[%tests %golden ~.types-module-field-shadow %source %jibb] src-460 `typ-460 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-460-1]])) (check-module-trees ~.types-module-field-shadow `mtre-460 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-460-1]]))
30013012++ test-types-module-fixtures
3002− (weld (weld (check-at ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-460 `tok-460 `tre-460) (check-module-types ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-460 `typ-460 ~ ~ ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-460-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-460-2]])) (check-module-trees ~.types-module-fixtures `mtre-460 ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-460-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-460-2]]))
3013+ (weld (weld (check-at ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-461 `tok-461 `tre-461) (check-module-types ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-461 `typ-461 ~ ~ ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-461-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-461-2]])) (check-module-trees ~.types-module-fixtures `mtre-461 ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-461-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-461-2]]))
30033014++ test-types-module-mixed
3004− (weld (weld (check ~.types-module-mixed src-461 `tok-461 `tre-461) (check-module-types ~.types-module-mixed ~[%tests %golden ~.types-module-mixed %source %jibb] src-461 `typ-461 ~[[%fixture %title imp-461-1]] ~[[%label mark-461-1]] ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-461-1]])) (check-module-trees ~.types-module-mixed `mtre-461 ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-461-1]]))
3015+ (weld (weld (check ~.types-module-mixed src-462 `tok-462 `tre-462) (check-module-types ~.types-module-mixed ~[%tests %golden ~.types-module-mixed %source %jibb] src-462 `typ-462 ~[[%fixture %title imp-462-1]] ~[[%label mark-462-1]] ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-462-1]])) (check-module-trees ~.types-module-mixed `mtre-462 ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-462-1]]))
30053016++ test-types-multi-call
3006− (weld (check ~.types-multi-call src-462 `tok-462 `tre-462) (check-module-types ~.types-multi-call ~[%tests %golden ~.types-multi-call %source %jibb] src-462 `typ-462 ~ ~ ~))
3017+ (weld (check ~.types-multi-call src-463 `tok-463 `tre-463) (check-module-types ~.types-multi-call ~[%tests %golden ~.types-multi-call %source %jibb] src-463 `typ-463 ~ ~ ~))
30073018++ test-types-multi-import
3008− (weld (weld (check ~.types-multi-import src-463 `tok-463 `tre-463) (check-module-types ~.types-multi-import ~[%tests %golden ~.types-multi-import %source %jibb] src-463 `typ-463 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-463-1]])) (check-module-trees ~.types-multi-import `mtre-463 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-463-1]]))
3019+ (weld (weld (check ~.types-multi-import src-464 `tok-464 `tre-464) (check-module-types ~.types-multi-import ~[%tests %golden ~.types-multi-import %source %jibb] src-464 `typ-464 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-464-1]])) (check-module-trees ~.types-multi-import `mtre-464 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-464-1]]))
30093020++ test-types-nested-missing-tag
3010− (weld (check ~.types-nested-missing-tag src-464 `tok-464 `tre-464) (check-module-types ~.types-nested-missing-tag ~[%tests %golden ~.types-nested-missing-tag %source %jibb] src-464 `typ-464 ~ ~ ~))
3021+ (weld (check ~.types-nested-missing-tag src-465 `tok-465 `tre-465) (check-module-types ~.types-nested-missing-tag ~[%tests %golden ~.types-nested-missing-tag %source %jibb] src-465 `typ-465 ~ ~ ~))
30113022++ test-types-null-context
3012− (weld (check ~.types-null-context src-465 `tok-465 `tre-465) (check-types ~.types-null-context ~[%tests %golden ~.types-null-context %source %jibb] src-465 `typ-465))
3023+ (weld (check ~.types-null-context src-466 `tok-466 `tre-466) (check-types ~.types-null-context ~[%tests %golden ~.types-null-context %source %jibb] src-466 `typ-466))
30133024++ test-types-null-overlap
3014− (weld (check ~.types-null-overlap src-466 `tok-466 `tre-466) (check-types ~.types-null-overlap ~[%tests %golden ~.types-null-overlap %source %jibb] src-466 `typ-466))
3025+ (weld (check ~.types-null-overlap src-467 `tok-467 `tre-467) (check-types ~.types-null-overlap ~[%tests %golden ~.types-null-overlap %source %jibb] src-467 `typ-467))
30153026++ test-types-null-unresolved
3016− (weld (check ~.types-null-unresolved src-467 `tok-467 `tre-467) (check-types ~.types-null-unresolved ~[%tests %golden ~.types-null-unresolved %source %jibb] src-467 `typ-467))
3027+ (weld (check ~.types-null-unresolved src-468 `tok-468 `tre-468) (check-types ~.types-null-unresolved ~[%tests %golden ~.types-null-unresolved %source %jibb] src-468 `typ-468))
30173028++ test-types-pair-context
3018− (weld (check ~.types-pair-context src-468 `tok-468 `tre-468) (check-module-types ~.types-pair-context ~[%tests %golden ~.types-pair-context %source %jibb] src-468 `typ-468 ~ ~ ~))
3029+ (weld (check ~.types-pair-context src-469 `tok-469 `tre-469) (check-module-types ~.types-pair-context ~[%tests %golden ~.types-pair-context %source %jibb] src-469 `typ-469 ~ ~ ~))
30193030++ test-types-partial-apply
3020− (weld (check ~.types-partial-apply src-469 `tok-469 `tre-469) (check-types ~.types-partial-apply ~[%tests %golden ~.types-partial-apply %source %jibb] src-469 `typ-469))
3031+ (weld (check ~.types-partial-apply src-470 `tok-470 `tre-470) (check-types ~.types-partial-apply ~[%tests %golden ~.types-partial-apply %source %jibb] src-470 `typ-470))
30213032++ test-types-partial-atom-alias
3022− (weld (check ~.types-partial-atom-alias src-470 `tok-470 `tre-470) (check-types ~.types-partial-atom-alias ~[%tests %golden ~.types-partial-atom-alias %source %jibb] src-470 `typ-470))
3033+ (weld (check ~.types-partial-atom-alias src-471 `tok-471 `tre-471) (check-types ~.types-partial-atom-alias ~[%tests %golden ~.types-partial-atom-alias %source %jibb] src-471 `typ-471))
30233034++ test-types-partial-atom-constraint
3024− (weld (check ~.types-partial-atom-constraint src-471 `tok-471 `tre-471) (check-types ~.types-partial-atom-constraint ~[%tests %golden ~.types-partial-atom-constraint %source %jibb] src-471 `typ-471))
3035+ (weld (check ~.types-partial-atom-constraint src-472 `tok-472 `tre-472) (check-types ~.types-partial-atom-constraint ~[%tests %golden ~.types-partial-atom-constraint %source %jibb] src-472 `typ-472))
30253036++ test-types-partial-atom-widening
3026− (weld (check ~.types-partial-atom-widening src-472 `tok-472 `tre-472) (check-types ~.types-partial-atom-widening ~[%tests %golden ~.types-partial-atom-widening %source %jibb] src-472 `typ-472))
3037+ (weld (check ~.types-partial-atom-widening src-473 `tok-473 `tre-473) (check-types ~.types-partial-atom-widening ~[%tests %golden ~.types-partial-atom-widening %source %jibb] src-473 `typ-473))
30273038++ test-types-partial-aura
3028− (weld (check ~.types-partial-aura src-473 `tok-473 `tre-473) (check-types ~.types-partial-aura ~[%tests %golden ~.types-partial-aura %source %jibb] src-473 `typ-473))
3039+ (weld (check ~.types-partial-aura src-474 `tok-474 `tre-474) (check-types ~.types-partial-aura ~[%tests %golden ~.types-partial-aura %source %jibb] src-474 `typ-474))
30293040++ test-types-partial-aura-family
3030− (weld (check ~.types-partial-aura-family src-474 `tok-474 `tre-474) (check-types ~.types-partial-aura-family ~[%tests %golden ~.types-partial-aura-family %source %jibb] src-474 `typ-474))
3041+ (weld (check ~.types-partial-aura-family src-475 `tok-475 `tre-475) (check-types ~.types-partial-aura-family ~[%tests %golden ~.types-partial-aura-family %source %jibb] src-475 `typ-475))
30313042++ test-types-partial-aura-generalization
3032− (weld (check ~.types-partial-aura-generalization src-475 `tok-475 `tre-475) (check-types ~.types-partial-aura-generalization ~[%tests %golden ~.types-partial-aura-generalization %source %jibb] src-475 `typ-475))
3043+ (weld (check ~.types-partial-aura-generalization src-476 `tok-476 `tre-476) (check-types ~.types-partial-aura-generalization ~[%tests %golden ~.types-partial-aura-generalization %source %jibb] src-476 `typ-476))
30333044++ test-types-partial-bare-atom
3034− (weld (check ~.types-partial-bare-atom src-476 `tok-476 `tre-476) (check-types ~.types-partial-bare-atom ~[%tests %golden ~.types-partial-bare-atom %source %jibb] src-476 `typ-476))
3045+ (weld (check ~.types-partial-bare-atom src-477 `tok-477 `tre-477) (check-types ~.types-partial-bare-atom ~[%tests %golden ~.types-partial-bare-atom %source %jibb] src-477 `typ-477))
30353046++ test-types-partial-branch-widening
3036− (weld (check ~.types-partial-branch-widening src-477 `tok-477 `tre-477) (check-types ~.types-partial-branch-widening ~[%tests %golden ~.types-partial-branch-widening %source %jibb] src-477 `typ-477))
3047+ (weld (check ~.types-partial-branch-widening src-478 `tok-478 `tre-478) (check-types ~.types-partial-branch-widening ~[%tests %golden ~.types-partial-branch-widening %source %jibb] src-478 `typ-478))
30373048++ test-types-partial-conflicting-sites
3038− (weld (check ~.types-partial-conflicting-sites src-478 `tok-478 `tre-478) (check-types ~.types-partial-conflicting-sites ~[%tests %golden ~.types-partial-conflicting-sites %source %jibb] src-478 `typ-478))
3049+ (weld (check ~.types-partial-conflicting-sites src-479 `tok-479 `tre-479) (check-types ~.types-partial-conflicting-sites ~[%tests %golden ~.types-partial-conflicting-sites %source %jibb] src-479 `typ-479))
30393050++ test-types-partial-decimal-default
3040− (weld (check ~.types-partial-decimal-default src-479 `tok-479 `tre-479) (check-types ~.types-partial-decimal-default ~[%tests %golden ~.types-partial-decimal-default %source %jibb] src-479 `typ-479))
3051+ (weld (check ~.types-partial-decimal-default src-480 `tok-480 `tre-480) (check-types ~.types-partial-decimal-default ~[%tests %golden ~.types-partial-decimal-default %source %jibb] src-480 `typ-480))
30413052++ test-types-partial-dependency-chain
3042− (weld (check ~.types-partial-dependency-chain src-480 `tok-480 `tre-480) (check-types ~.types-partial-dependency-chain ~[%tests %golden ~.types-partial-dependency-chain %source %jibb] src-480 `typ-480))
3053+ (weld (check ~.types-partial-dependency-chain src-481 `tok-481 `tre-481) (check-types ~.types-partial-dependency-chain ~[%tests %golden ~.types-partial-dependency-chain %source %jibb] src-481 `typ-481))
30433054++ test-types-partial-explicit-capital
3044− (weld (check ~.types-partial-explicit-capital src-481 `tok-481 `tre-481) (check-types ~.types-partial-explicit-capital ~[%tests %golden ~.types-partial-explicit-capital %source %jibb] src-481 `typ-481))
3055+ (weld (check ~.types-partial-explicit-capital src-482 `tok-482 `tre-482) (check-types ~.types-partial-explicit-capital ~[%tests %golden ~.types-partial-explicit-capital %source %jibb] src-482 `typ-482))
30453056++ test-types-partial-forward
3046− (weld (check ~.types-partial-forward src-482 `tok-482 `tre-482) (check-types ~.types-partial-forward ~[%tests %golden ~.types-partial-forward %source %jibb] src-482 `typ-482))
3057+ (weld (check ~.types-partial-forward src-483 `tok-483 `tre-483) (check-types ~.types-partial-forward ~[%tests %golden ~.types-partial-forward %source %jibb] src-483 `typ-483))
30473058++ test-types-partial-generalization
3048− (weld (check ~.types-partial-generalization src-483 `tok-483 `tre-483) (check-types ~.types-partial-generalization ~[%tests %golden ~.types-partial-generalization %source %jibb] src-483 `typ-483))
3059+ (weld (check ~.types-partial-generalization src-484 `tok-484 `tre-484) (check-types ~.types-partial-generalization ~[%tests %golden ~.types-partial-generalization %source %jibb] src-484 `typ-484))
30493060++ test-types-partial-identity
3050− (weld (check ~.types-partial-identity src-484 `tok-484 `tre-484) (check-types ~.types-partial-identity ~[%tests %golden ~.types-partial-identity %source %jibb] src-484 `typ-484))
3061+ (weld (check ~.types-partial-identity src-485 `tok-485 `tre-485) (check-types ~.types-partial-identity ~[%tests %golden ~.types-partial-identity %source %jibb] src-485 `typ-485))
30513062++ test-types-partial-independent-atoms
3052− (weld (check ~.types-partial-independent-atoms src-485 `tok-485 `tre-485) (check-types ~.types-partial-independent-atoms ~[%tests %golden ~.types-partial-independent-atoms %source %jibb] src-485 `typ-485))
3063+ (weld (check ~.types-partial-independent-atoms src-486 `tok-486 `tre-486) (check-types ~.types-partial-independent-atoms ~[%tests %golden ~.types-partial-independent-atoms %source %jibb] src-486 `typ-486))
30533064++ test-types-partial-local-molds
3054− (weld (check ~.types-partial-local-molds src-486 `tok-486 `tre-486) (check-types ~.types-partial-local-molds ~[%tests %golden ~.types-partial-local-molds %source %jibb] src-486 `typ-486))
3065+ (weld (check ~.types-partial-local-molds src-487 `tok-487 `tre-487) (check-types ~.types-partial-local-molds ~[%tests %golden ~.types-partial-local-molds %source %jibb] src-487 `typ-487))
30553066++ test-types-partial-locals
3056− (weld (check ~.types-partial-locals src-487 `tok-487 `tre-487) (check-types ~.types-partial-locals ~[%tests %golden ~.types-partial-locals %source %jibb] src-487 `typ-487))
3067+ (weld (check ~.types-partial-locals src-488 `tok-488 `tre-488) (check-types ~.types-partial-locals ~[%tests %golden ~.types-partial-locals %source %jibb] src-488 `typ-488))
30573068++ test-types-partial-many-atom-constraints
3058− (weld (check ~.types-partial-many-atom-constraints src-488 `tok-488 `tre-488) (check-types ~.types-partial-many-atom-constraints ~[%tests %golden ~.types-partial-many-atom-constraints %source %jibb] src-488 `typ-488))
3069+ (weld (check ~.types-partial-many-atom-constraints src-489 `tok-489 `tre-489) (check-types ~.types-partial-many-atom-constraints ~[%tests %golden ~.types-partial-many-atom-constraints %source %jibb] src-489 `typ-489))
30593070++ test-types-partial-mold-bare-aura
3060− (weld (check ~.types-partial-mold-bare-aura src-489 `tok-489 `tre-489) (check-types ~.types-partial-mold-bare-aura ~[%tests %golden ~.types-partial-mold-bare-aura %source %jibb] src-489 `typ-489))
3071+ (weld (check ~.types-partial-mold-bare-aura src-490 `tok-490 `tre-490) (check-types ~.types-partial-mold-bare-aura ~[%tests %golden ~.types-partial-mold-bare-aura %source %jibb] src-490 `typ-490))
30613072++ test-types-partial-mold-composite
3062− (weld (check ~.types-partial-mold-composite src-490 `tok-490 `tre-490) (check-types ~.types-partial-mold-composite ~[%tests %golden ~.types-partial-mold-composite %source %jibb] src-490 `typ-490))
3073+ (weld (check ~.types-partial-mold-composite src-491 `tok-491 `tre-491) (check-types ~.types-partial-mold-composite ~[%tests %golden ~.types-partial-mold-composite %source %jibb] src-491 `typ-491))
30633074++ test-types-partial-mold-forward
3064− (weld (check ~.types-partial-mold-forward src-491 `tok-491 `tre-491) (check-types ~.types-partial-mold-forward ~[%tests %golden ~.types-partial-mold-forward %source %jibb] src-491 `typ-491))
3075+ (weld (check ~.types-partial-mold-forward src-492 `tok-492 `tre-492) (check-types ~.types-partial-mold-forward ~[%tests %golden ~.types-partial-mold-forward %source %jibb] src-492 `typ-492))
30653076++ test-types-partial-mold-recursive
3066− (weld (check ~.types-partial-mold-recursive src-492 `tok-492 `tre-492) (check-types ~.types-partial-mold-recursive ~[%tests %golden ~.types-partial-mold-recursive %source %jibb] src-492 `typ-492))
3077+ (weld (check ~.types-partial-mold-recursive src-493 `tok-493 `tre-493) (check-types ~.types-partial-mold-recursive ~[%tests %golden ~.types-partial-mold-recursive %source %jibb] src-493 `typ-493))
30673078++ test-types-partial-occurs
3068− (weld (check ~.types-partial-occurs src-493 `tok-493 `tre-493) (check-types ~.types-partial-occurs ~[%tests %golden ~.types-partial-occurs %source %jibb] src-493 `typ-493))
3079+ (weld (check ~.types-partial-occurs src-494 `tok-494 `tre-494) (check-types ~.types-partial-occurs ~[%tests %golden ~.types-partial-occurs %source %jibb] src-494 `typ-494))
30693080++ test-types-partial-projection
3070− (weld (check ~.types-partial-projection src-494 `tok-494 `tre-494) (check-types ~.types-partial-projection ~[%tests %golden ~.types-partial-projection %source %jibb] src-494 `typ-494))
3081+ (weld (check ~.types-partial-projection src-495 `tok-495 `tre-495) (check-types ~.types-partial-projection ~[%tests %golden ~.types-partial-projection %source %jibb] src-495 `typ-495))
30713082++ test-types-partial-shadow-global
3072− (weld (check ~.types-partial-shadow-global src-495 `tok-495 `tre-495) (check-types ~.types-partial-shadow-global ~[%tests %golden ~.types-partial-shadow-global %source %jibb] src-495 `typ-495))
3083+ (weld (check ~.types-partial-shadow-global src-496 `tok-496 `tre-496) (check-types ~.types-partial-shadow-global ~[%tests %golden ~.types-partial-shadow-global %source %jibb] src-496 `typ-496))
30733084++ test-types-partial-shared-tvar
3074− (weld (check ~.types-partial-shared-tvar src-496 `tok-496 `tre-496) (check-types ~.types-partial-shared-tvar ~[%tests %golden ~.types-partial-shared-tvar %source %jibb] src-496 `typ-496))
3085+ (weld (check ~.types-partial-shared-tvar src-497 `tok-497 `tre-497) (check-types ~.types-partial-shared-tvar ~[%tests %golden ~.types-partial-shared-tvar %source %jibb] src-497 `typ-497))
30753086++ test-types-partial-union-cases
3076− (weld (check ~.types-partial-union-cases src-497 `tok-497 `tre-497) (check-types ~.types-partial-union-cases ~[%tests %golden ~.types-partial-union-cases %source %jibb] src-497 `typ-497))
3087+ (weld (check ~.types-partial-union-cases src-498 `tok-498 `tre-498) (check-types ~.types-partial-union-cases ~[%tests %golden ~.types-partial-union-cases %source %jibb] src-498 `typ-498))
30773088++ test-types-partial-union-edges
3078− (weld (check ~.types-partial-union-edges src-498 `tok-498 `tre-498) (check-types ~.types-partial-union-edges ~[%tests %golden ~.types-partial-union-edges %source %jibb] src-498 `typ-498))
3089+ (weld (check ~.types-partial-union-edges src-499 `tok-499 `tre-499) (check-types ~.types-partial-union-edges ~[%tests %golden ~.types-partial-union-edges %source %jibb] src-499 `typ-499))
30793090++ test-types-partial-unresolved-tag
3080− (weld (check ~.types-partial-unresolved-tag src-499 `tok-499 `tre-499) (check-types ~.types-partial-unresolved-tag ~[%tests %golden ~.types-partial-unresolved-tag %source %jibb] src-499 `typ-499))
3091+ (weld (check ~.types-partial-unresolved-tag src-500 `tok-500 `tre-500) (check-types ~.types-partial-unresolved-tag ~[%tests %golden ~.types-partial-unresolved-tag %source %jibb] src-500 `typ-500))
30813092++ test-types-prelude-cmd
3082− (weld (check ~.types-prelude-cmd src-500 `tok-500 `tre-500) (check-module-types ~.types-prelude-cmd ~[%tests %golden ~.types-prelude-cmd %source %jibb] src-500 `typ-500 ~ ~ ~))
3093+ (weld (check ~.types-prelude-cmd src-501 `tok-501 `tre-501) (check-module-types ~.types-prelude-cmd ~[%tests %golden ~.types-prelude-cmd %source %jibb] src-501 `typ-501 ~ ~ ~))
30833094++ test-types-prelude-direct
3084− (weld (check ~.types-prelude-direct src-501 `tok-501 `tre-501) (check-module-types ~.types-prelude-direct ~[%tests %golden ~.types-prelude-direct %source %jibb] src-501 `typ-501 ~ ~ ~))
3095+ (weld (check ~.types-prelude-direct src-502 `tok-502 `tre-502) (check-module-types ~.types-prelude-direct ~[%tests %golden ~.types-prelude-direct %source %jibb] src-502 `typ-502 ~ ~ ~))
30853096++ test-types-prelude-functional
3086− (weld (check ~.types-prelude-functional src-502 `tok-502 `tre-502) (check-module-types ~.types-prelude-functional ~[%tests %golden ~.types-prelude-functional %source %jibb] src-502 `typ-502 ~ ~ ~))
3097+ (weld (check ~.types-prelude-functional src-503 `tok-503 `tre-503) (check-module-types ~.types-prelude-functional ~[%tests %golden ~.types-prelude-functional %source %jibb] src-503 `typ-503 ~ ~ ~))
30873098++ test-types-prelude-interface
3088− (weld (weld (check ~.types-prelude-interface src-503 `tok-503 `tre-503) (check-module-types ~.types-prelude-interface ~[%tests %golden ~.types-prelude-interface %source %jibb] src-503 `typ-503 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-503-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-503-2]])) (check-module-trees ~.types-prelude-interface `mtre-503 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-503-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-503-2]]))
3099+ (weld (weld (check ~.types-prelude-interface src-504 `tok-504 `tre-504) (check-module-types ~.types-prelude-interface ~[%tests %golden ~.types-prelude-interface %source %jibb] src-504 `typ-504 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-504-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-504-2]])) (check-module-trees ~.types-prelude-interface `mtre-504 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-504-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-504-2]]))
30893100++ test-types-prelude-list-functions
3090− (weld (weld (check ~.types-prelude-list-functions src-504 `tok-504 `tre-504) (check-module-types ~.types-prelude-list-functions ~[%tests %golden ~.types-prelude-list-functions %source %jibb] src-504 `typ-504 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-504-1]])) (check-module-trees ~.types-prelude-list-functions `mtre-504 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-504-1]]))
3101+ (weld (weld (check ~.types-prelude-list-functions src-505 `tok-505 `tre-505) (check-module-types ~.types-prelude-list-functions ~[%tests %golden ~.types-prelude-list-functions %source %jibb] src-505 `typ-505 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-505-1]])) (check-module-trees ~.types-prelude-list-functions `mtre-505 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-505-1]]))
30913102++ test-types-prelude-list-helpers
3092− (weld (check ~.types-prelude-list-helpers src-505 `tok-505 `tre-505) (check-module-types ~.types-prelude-list-helpers ~[%tests %golden ~.types-prelude-list-helpers %source %jibb] src-505 `typ-505 ~ ~ ~))
3103+ (weld (check ~.types-prelude-list-helpers src-506 `tok-506 `tre-506) (check-module-types ~.types-prelude-list-helpers ~[%tests %golden ~.types-prelude-list-helpers %source %jibb] src-506 `typ-506 ~ ~ ~))
3104+++ test-types-prelude-predicates
3105+ (weld (check ~.types-prelude-predicates src-507 `tok-507 `tre-507) (check-module-types ~.types-prelude-predicates ~[%tests %golden ~.types-prelude-predicates %source %jibb] src-507 `typ-507 ~ ~ ~))
30933106++ test-types-prelude-unit-helpers
3094− (weld (check ~.types-prelude-unit-helpers src-506 `tok-506 `tre-506) (check-module-types ~.types-prelude-unit-helpers ~[%tests %golden ~.types-prelude-unit-helpers %source %jibb] src-506 `typ-506 ~ ~ ~))
3107+ (weld (check ~.types-prelude-unit-helpers src-508 `tok-508 `tre-508) (check-module-types ~.types-prelude-unit-helpers ~[%tests %golden ~.types-prelude-unit-helpers %source %jibb] src-508 `typ-508 ~ ~ ~))
30953108++ test-types-record-bound-variable
3096− (weld (check ~.types-record-bound-variable src-507 `tok-507 `tre-507) (check-types ~.types-record-bound-variable ~[%tests %golden ~.types-record-bound-variable %source %jibb] src-507 `typ-507))
3109+ (weld (check ~.types-record-bound-variable src-509 `tok-509 `tre-509) (check-types ~.types-record-bound-variable ~[%tests %golden ~.types-record-bound-variable %source %jibb] src-509 `typ-509))
30973110++ test-types-record-cast-context
3098− (weld (check ~.types-record-cast-context src-508 `tok-508 `tre-508) (check-module-types ~.types-record-cast-context ~[%tests %golden ~.types-record-cast-context %source %jibb] src-508 `typ-508 ~ ~ ~))
3111+ (weld (check ~.types-record-cast-context src-510 `tok-510 `tre-510) (check-module-types ~.types-record-cast-context ~[%tests %golden ~.types-record-cast-context %source %jibb] src-510 `typ-510 ~ ~ ~))
30993112++ test-types-record-change
3100− (weld (check ~.types-record-change src-509 `tok-509 `tre-509) (check-module-types ~.types-record-change ~[%tests %golden ~.types-record-change %source %jibb] src-509 `typ-509 ~ ~ ~))
3113+ (weld (check ~.types-record-change src-511 `tok-511 `tre-511) (check-module-types ~.types-record-change ~[%tests %golden ~.types-record-change %source %jibb] src-511 `typ-511 ~ ~ ~))
31013114++ test-types-record-change-generic
3102− (weld (check ~.types-record-change-generic src-510 `tok-510 `tre-510) (check-module-types ~.types-record-change-generic ~[%tests %golden ~.types-record-change-generic %source %jibb] src-510 `typ-510 ~ ~ ~))
3115+ (weld (check ~.types-record-change-generic src-512 `tok-512 `tre-512) (check-module-types ~.types-record-change-generic ~[%tests %golden ~.types-record-change-generic %source %jibb] src-512 `typ-512 ~ ~ ~))
31033116++ test-types-record-faces
3104− (weld (check ~.types-record-faces src-511 `tok-511 `tre-511) (check-types ~.types-record-faces ~[%tests %golden ~.types-record-faces %source %jibb] src-511 `typ-511))
3117+ (weld (check ~.types-record-faces src-513 `tok-513 `tre-513) (check-types ~.types-record-faces ~[%tests %golden ~.types-record-faces %source %jibb] src-513 `typ-513))
31053118++ test-types-record-import
3106− (weld (weld (check ~.types-record-import src-512 `tok-512 `tre-512) (check-module-types ~.types-record-import ~[%tests %golden ~.types-record-import %source %jibb] src-512 `typ-512 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-512-1]])) (check-module-trees ~.types-record-import `mtre-512 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-512-1]]))
3119+ (weld (weld (check ~.types-record-import src-514 `tok-514 `tre-514) (check-module-types ~.types-record-import ~[%tests %golden ~.types-record-import %source %jibb] src-514 `typ-514 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-514-1]])) (check-module-trees ~.types-record-import `mtre-514 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-514-1]]))
31073120++ test-types-record-local-scheme
3108− (weld (check ~.types-record-local-scheme src-513 `tok-513 `tre-513) (check-types ~.types-record-local-scheme ~[%tests %golden ~.types-record-local-scheme %source %jibb] src-513 `typ-513))
3121+ (weld (check ~.types-record-local-scheme src-515 `tok-515 `tre-515) (check-types ~.types-record-local-scheme ~[%tests %golden ~.types-record-local-scheme %source %jibb] src-515 `typ-515))
31093122++ test-types-record-nested
3110− (weld (check ~.types-record-nested src-514 `tok-514 `tre-514) (check-types ~.types-record-nested ~[%tests %golden ~.types-record-nested %source %jibb] src-514 `typ-514))
3123+ (weld (check ~.types-record-nested src-516 `tok-516 `tre-516) (check-types ~.types-record-nested ~[%tests %golden ~.types-record-nested %source %jibb] src-516 `typ-516))
31113124++ test-types-record-to-tuple
3112− (weld (check ~.types-record-to-tuple src-515 `tok-515 `tre-515) (check-types ~.types-record-to-tuple ~[%tests %golden ~.types-record-to-tuple %source %jibb] src-515 `typ-515))
3125+ (weld (check ~.types-record-to-tuple src-517 `tok-517 `tre-517) (check-types ~.types-record-to-tuple ~[%tests %golden ~.types-record-to-tuple %source %jibb] src-517 `typ-517))
31133126++ test-types-recursion-scc-failures
3114− (weld (check ~.types-recursion-scc-failures src-516 `tok-516 `tre-516) (check-module-types ~.types-recursion-scc-failures ~[%tests %golden ~.types-recursion-scc-failures %source %jibb] src-516 `typ-516 ~ ~ ~))
3127+ (weld (check ~.types-recursion-scc-failures src-518 `tok-518 `tre-518) (check-module-types ~.types-recursion-scc-failures ~[%tests %golden ~.types-recursion-scc-failures %source %jibb] src-518 `typ-518 ~ ~ ~))
31153128++ test-types-recursion-scc-groups
3116− (weld (check ~.types-recursion-scc-groups src-517 `tok-517 `tre-517) (check-module-types ~.types-recursion-scc-groups ~[%tests %golden ~.types-recursion-scc-groups %source %jibb] src-517 `typ-517 ~ ~ ~))
3129+ (weld (check ~.types-recursion-scc-groups src-519 `tok-519 `tre-519) (check-module-types ~.types-recursion-scc-groups ~[%tests %golden ~.types-recursion-scc-groups %source %jibb] src-519 `typ-519 ~ ~ ~))
31173130++ test-types-recursion-scc-import
3118− (weld (weld (check ~.types-recursion-scc-import src-518 `tok-518 `tre-518) (check-module-types ~.types-recursion-scc-import ~[%tests %golden ~.types-recursion-scc-import %source %jibb] src-518 `typ-518 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-518-1]])) (check-module-trees ~.types-recursion-scc-import `mtre-518 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-518-1]]))
3131+ (weld (weld (check ~.types-recursion-scc-import src-520 `tok-520 `tre-520) (check-module-types ~.types-recursion-scc-import ~[%tests %golden ~.types-recursion-scc-import %source %jibb] src-520 `typ-520 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-520-1]])) (check-module-trees ~.types-recursion-scc-import `mtre-520 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-520-1]]))
31193132++ test-types-recursion-scc-import-bad
3120− (weld (weld (check ~.types-recursion-scc-import-bad src-519 `tok-519 `tre-519) (check-module-types ~.types-recursion-scc-import-bad ~[%tests %golden ~.types-recursion-scc-import-bad %source %jibb] src-519 `typ-519 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-519-1]])) (check-module-trees ~.types-recursion-scc-import-bad `mtre-519 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-519-1]]))
3133+ (weld (weld (check ~.types-recursion-scc-import-bad src-521 `tok-521 `tre-521) (check-module-types ~.types-recursion-scc-import-bad ~[%tests %golden ~.types-recursion-scc-import-bad %source %jibb] src-521 `typ-521 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-521-1]])) (check-module-trees ~.types-recursion-scc-import-bad `mtre-521 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-521-1]]))
31213134++ test-types-recursion-scc-local
3122− (weld (check ~.types-recursion-scc-local src-520 `tok-520 `tre-520) (check-module-types ~.types-recursion-scc-local ~[%tests %golden ~.types-recursion-scc-local %source %jibb] src-520 `typ-520 ~ ~ ~))
3135+ (weld (check ~.types-recursion-scc-local src-522 `tok-522 `tre-522) (check-module-types ~.types-recursion-scc-local ~[%tests %golden ~.types-recursion-scc-local %source %jibb] src-522 `typ-522 ~ ~ ~))
31233136++ test-types-recursion-scc-order
3124− (weld (check ~.types-recursion-scc-order src-521 `tok-521 `tre-521) (check-module-types ~.types-recursion-scc-order ~[%tests %golden ~.types-recursion-scc-order %source %jibb] src-521 `typ-521 ~ ~ ~))
3137+ (weld (check ~.types-recursion-scc-order src-523 `tok-523 `tre-523) (check-module-types ~.types-recursion-scc-order ~[%tests %golden ~.types-recursion-scc-order %source %jibb] src-523 `typ-523 ~ ~ ~))
31253138++ test-types-recursion-scc-shadow
3126− (weld (check ~.types-recursion-scc-shadow src-522 `tok-522 `tre-522) (check-module-types ~.types-recursion-scc-shadow ~[%tests %golden ~.types-recursion-scc-shadow %source %jibb] src-522 `typ-522 ~ ~ ~))
3139+ (weld (check ~.types-recursion-scc-shadow src-524 `tok-524 `tre-524) (check-module-types ~.types-recursion-scc-shadow ~[%tests %golden ~.types-recursion-scc-shadow %source %jibb] src-524 `typ-524 ~ ~ ~))
31273140++ test-types-recursive-branch
3128− (weld (check ~.types-recursive-branch src-523 `tok-523 `tre-523) (check-module-types ~.types-recursive-branch ~[%tests %golden ~.types-recursive-branch %source %jibb] src-523 `typ-523 ~ ~ ~))
3141+ (weld (check ~.types-recursive-branch src-525 `tok-525 `tre-525) (check-module-types ~.types-recursive-branch ~[%tests %golden ~.types-recursive-branch %source %jibb] src-525 `typ-525 ~ ~ ~))
31293142++ test-types-recursive-gate
3130− (weld (check ~.types-recursive-gate src-524 `tok-524 `tre-524) (check-types ~.types-recursive-gate ~[%tests %golden ~.types-recursive-gate %source %jibb] src-524 `typ-524))
3143+ (weld (check ~.types-recursive-gate src-526 `tok-526 `tre-526) (check-types ~.types-recursive-gate ~[%tests %golden ~.types-recursive-gate %source %jibb] src-526 `typ-526))
31313144++ test-types-recursive-sample
3132− (weld (check ~.types-recursive-sample src-525 `tok-525 `tre-525) (check-types ~.types-recursive-sample ~[%tests %golden ~.types-recursive-sample %source %jibb] src-525 `typ-525))
3145+ (weld (check ~.types-recursive-sample src-527 `tok-527 `tre-527) (check-types ~.types-recursive-sample ~[%tests %golden ~.types-recursive-sample %source %jibb] src-527 `typ-527))
31333146++ test-types-scope-library-poke
3134− (weld (check-at ~.types-scope-library-poke ~[~.ui ~.lib ~.library ~.jibb] src-526 `tok-526 `tre-526) (check-module-types ~.types-scope-library-poke ~[~.ui ~.lib ~.library ~.jibb] src-526 `typ-526 ~ ~ ~))
3147+ (weld (check-at ~.types-scope-library-poke ~[~.ui ~.lib ~.library ~.jibb] src-528 `tok-528 `tre-528) (check-module-types ~.types-scope-library-poke ~[~.ui ~.lib ~.library ~.jibb] src-528 `typ-528 ~ ~ ~))
31353148++ test-types-scope-root-api
3136− (weld (check-at ~.types-scope-root-api ~[~.ui ~.api ~.todo ~.jibb] src-527 `tok-527 `tre-527) (check-module-types ~.types-scope-root-api ~[~.ui ~.api ~.todo ~.jibb] src-527 `typ-527 ~ ~ ~))
3149+ (weld (check-at ~.types-scope-root-api ~[~.ui ~.api ~.todo ~.jibb] src-529 `tok-529 `tre-529) (check-module-types ~.types-scope-root-api ~[~.ui ~.api ~.todo ~.jibb] src-529 `typ-529 ~ ~ ~))
31373150++ test-types-scope-store-duplicate
3138− (weld (check-at ~.types-scope-store-duplicate ~[~.ui ~.stores ~.cart ~.jibb] src-528 `tok-528 `tre-528) (check-module-types ~.types-scope-store-duplicate ~[~.ui ~.stores ~.cart ~.jibb] src-528 `typ-528 ~ ~ ~))
3151+ (weld (check-at ~.types-scope-store-duplicate ~[~.ui ~.stores ~.cart ~.jibb] src-530 `tok-530 `tre-530) (check-module-types ~.types-scope-store-duplicate ~[~.ui ~.stores ~.cart ~.jibb] src-530 `typ-530 ~ ~ ~))
31393152++ test-types-scope-store-shadow
3140− (weld (check-at ~.types-scope-store-shadow ~[~.ui ~.stores ~.cart ~.jibb] src-529 `tok-529 `tre-529) (check-module-types ~.types-scope-store-shadow ~[~.ui ~.stores ~.cart ~.jibb] src-529 `typ-529 ~ ~ ~))
3153+ (weld (check-at ~.types-scope-store-shadow ~[~.ui ~.stores ~.cart ~.jibb] src-531 `tok-531 `tre-531) (check-module-types ~.types-scope-store-shadow ~[~.ui ~.stores ~.cart ~.jibb] src-531 `typ-531 ~ ~ ~))
31413154++ test-types-single-case-pattern
3142− (weld (check ~.types-single-case-pattern src-530 `tok-530 `tre-530) (check-module-types ~.types-single-case-pattern ~[%tests %golden ~.types-single-case-pattern %source %jibb] src-530 `typ-530 ~ ~ ~))
3155+ (weld (check ~.types-single-case-pattern src-532 `tok-532 `tre-532) (check-module-types ~.types-single-case-pattern ~[%tests %golden ~.types-single-case-pattern %source %jibb] src-532 `typ-532 ~ ~ ~))
31433156++ test-types-string-interpolation
3144− (weld (check ~.types-string-interpolation src-531 `tok-531 `tre-531) (check-module-types ~.types-string-interpolation ~[%tests %golden ~.types-string-interpolation %source %jibb] src-531 `typ-531 ~ ~ ~))
3157+ (weld (check ~.types-string-interpolation src-533 `tok-533 `tre-533) (check-module-types ~.types-string-interpolation ~[%tests %golden ~.types-string-interpolation %source %jibb] src-533 `typ-533 ~ ~ ~))
31453158++ test-types-tuple-context
3146− (weld (check ~.types-tuple-context src-532 `tok-532 `tre-532) (check-module-types ~.types-tuple-context ~[%tests %golden ~.types-tuple-context %source %jibb] src-532 `typ-532 ~ ~ ~))
3159+ (weld (check ~.types-tuple-context src-534 `tok-534 `tre-534) (check-module-types ~.types-tuple-context ~[%tests %golden ~.types-tuple-context %source %jibb] src-534 `typ-534 ~ ~ ~))
31473160++ test-types-tuple-context-nested
3148− (weld (check ~.types-tuple-context-nested src-533 `tok-533 `tre-533) (check-module-types ~.types-tuple-context-nested ~[%tests %golden ~.types-tuple-context-nested %source %jibb] src-533 `typ-533 ~ ~ ~))
3161+ (weld (check ~.types-tuple-context-nested src-535 `tok-535 `tre-535) (check-module-types ~.types-tuple-context-nested ~[%tests %golden ~.types-tuple-context-nested %source %jibb] src-535 `typ-535 ~ ~ ~))
31493162++ test-types-union-alias
3150− (weld (check ~.types-union-alias src-534 `tok-534 `tre-534) (check-types ~.types-union-alias ~[%tests %golden ~.types-union-alias %source %jibb] src-534 `typ-534))
3163+ (weld (check ~.types-union-alias src-536 `tok-536 `tre-536) (check-types ~.types-union-alias ~[%tests %golden ~.types-union-alias %source %jibb] src-536 `typ-536))
31513164++ test-types-union-branch-context
3152− (weld (check ~.types-union-branch-context src-535 `tok-535 `tre-535) (check-types ~.types-union-branch-context ~[%tests %golden ~.types-union-branch-context %source %jibb] src-535 `typ-535))
3165+ (weld (check ~.types-union-branch-context src-537 `tok-537 `tre-537) (check-types ~.types-union-branch-context ~[%tests %golden ~.types-union-branch-context %source %jibb] src-537 `typ-537))
31533166++ test-types-union-branch-pending
3154− (weld (check ~.types-union-branch-pending src-536 `tok-536 `tre-536) (check-types ~.types-union-branch-pending ~[%tests %golden ~.types-union-branch-pending %source %jibb] src-536 `typ-536))
3167+ (weld (check ~.types-union-branch-pending src-538 `tok-538 `tre-538) (check-types ~.types-union-branch-pending ~[%tests %golden ~.types-union-branch-pending %source %jibb] src-538 `typ-538))
31553168++ test-types-union-constructor-shape
3156− (weld (check ~.types-union-constructor-shape src-537 `tok-537 `tre-537) (check-types ~.types-union-constructor-shape ~[%tests %golden ~.types-union-constructor-shape %source %jibb] src-537 `typ-537))
3169+ (weld (check ~.types-union-constructor-shape src-539 `tok-539 `tre-539) (check-types ~.types-union-constructor-shape ~[%tests %golden ~.types-union-constructor-shape %source %jibb] src-539 `typ-539))
31573170++ test-types-union-context-flow
3158− (weld (check ~.types-union-context-flow src-538 `tok-538 `tre-538) (check-types ~.types-union-context-flow ~[%tests %golden ~.types-union-context-flow %source %jibb] src-538 `typ-538))
3171+ (weld (check ~.types-union-context-flow src-540 `tok-540 `tre-540) (check-types ~.types-union-context-flow ~[%tests %golden ~.types-union-context-flow %source %jibb] src-540 `typ-540))
31593172++ test-types-union-finite
3160− (weld (check ~.types-union-finite src-539 `tok-539 `tre-539) (check-module-types ~.types-union-finite ~[%tests %golden ~.types-union-finite %source %jibb] src-539 `typ-539 ~ ~ ~))
3173+ (weld (check ~.types-union-finite src-541 `tok-541 `tre-541) (check-module-types ~.types-union-finite ~[%tests %golden ~.types-union-finite %source %jibb] src-541 `typ-541 ~ ~ ~))
31613174++ test-types-union-finite-context
3162− (weld (check ~.types-union-finite-context src-540 `tok-540 `tre-540) (check-module-types ~.types-union-finite-context ~[%tests %golden ~.types-union-finite-context %source %jibb] src-540 `typ-540 ~ ~ ~))
3175+ (weld (check ~.types-union-finite-context src-542 `tok-542 `tre-542) (check-module-types ~.types-union-finite-context ~[%tests %golden ~.types-union-finite-context %source %jibb] src-542 `typ-542 ~ ~ ~))
31633176++ test-types-union-finite-generic
3164− (weld (check ~.types-union-finite-generic src-541 `tok-541 `tre-541) (check-module-types ~.types-union-finite-generic ~[%tests %golden ~.types-union-finite-generic %source %jibb] src-541 `typ-541 ~ ~ ~))
3177+ (weld (check ~.types-union-finite-generic src-543 `tok-543 `tre-543) (check-module-types ~.types-union-finite-generic ~[%tests %golden ~.types-union-finite-generic %source %jibb] src-543 `typ-543 ~ ~ ~))
31653178++ test-types-union-finite-limit
3166− (weld (check ~.types-union-finite-limit src-542 `tok-542 `tre-542) (check-module-types ~.types-union-finite-limit ~[%tests %golden ~.types-union-finite-limit %source %jibb] src-542 `typ-542 ~ ~ ~))
3179+ (weld (check ~.types-union-finite-limit src-544 `tok-544 `tre-544) (check-module-types ~.types-union-finite-limit ~[%tests %golden ~.types-union-finite-limit %source %jibb] src-544 `typ-544 ~ ~ ~))
31673180++ test-types-union-import
3168− (weld (weld (check ~.types-union-import src-543 `tok-543 `tre-543) (check-module-types ~.types-union-import ~[%tests %golden ~.types-union-import %source %jibb] src-543 `typ-543 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-543-1]])) (check-module-trees ~.types-union-import `mtre-543 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-543-1]]))
3181+ (weld (weld (check ~.types-union-import src-545 `tok-545 `tre-545) (check-module-types ~.types-union-import ~[%tests %golden ~.types-union-import %source %jibb] src-545 `typ-545 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-545-1]])) (check-module-trees ~.types-union-import `mtre-545 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-545-1]]))
31693182++ test-types-union-local-pending
3170− (weld (check ~.types-union-local-pending src-544 `tok-544 `tre-544) (check-types ~.types-union-local-pending ~[%tests %golden ~.types-union-local-pending %source %jibb] src-544 `typ-544))
3183+ (weld (check ~.types-union-local-pending src-546 `tok-546 `tre-546) (check-types ~.types-union-local-pending ~[%tests %golden ~.types-union-local-pending %source %jibb] src-546 `typ-546))
31713184++ test-types-union-overlap
3172− (weld (check ~.types-union-overlap src-545 `tok-545 `tre-545) (check-types ~.types-union-overlap ~[%tests %golden ~.types-union-overlap %source %jibb] src-545 `typ-545))
3185+ (weld (check ~.types-union-overlap src-547 `tok-547 `tre-547) (check-types ~.types-union-overlap ~[%tests %golden ~.types-union-overlap %source %jibb] src-547 `typ-547))
31733186++ test-types-union-overlap-nested
3174− (weld (check ~.types-union-overlap-nested src-546 `tok-546 `tre-546) (check-types ~.types-union-overlap-nested ~[%tests %golden ~.types-union-overlap-nested %source %jibb] src-546 `typ-546))
3187+ (weld (check ~.types-union-overlap-nested src-548 `tok-548 `tre-548) (check-types ~.types-union-overlap-nested ~[%tests %golden ~.types-union-overlap-nested %source %jibb] src-548 `typ-548))
31753188++ test-types-union-pattern-result-context
3176− (weld (check ~.types-union-pattern-result-context src-547 `tok-547 `tre-547) (check-module-types ~.types-union-pattern-result-context ~[%tests %golden ~.types-union-pattern-result-context %source %jibb] src-547 `typ-547 ~ ~ ~))
3189+ (weld (check ~.types-union-pattern-result-context src-549 `tok-549 `tre-549) (check-module-types ~.types-union-pattern-result-context ~[%tests %golden ~.types-union-pattern-result-context %source %jibb] src-549 `typ-549 ~ ~ ~))
31773190++ test-types-union-pattern-result-controls
3178− (weld (check ~.types-union-pattern-result-controls src-548 `tok-548 `tre-548) (check-module-types ~.types-union-pattern-result-controls ~[%tests %golden ~.types-union-pattern-result-controls %source %jibb] src-548 `typ-548 ~ ~ ~))
3191+ (weld (check ~.types-union-pattern-result-controls src-550 `tok-550 `tre-550) (check-module-types ~.types-union-pattern-result-controls ~[%tests %golden ~.types-union-pattern-result-controls %source %jibb] src-550 `typ-550 ~ ~ ~))
31793192++ test-types-union-patterns
3180− (weld (check ~.types-union-patterns src-549 `tok-549 `tre-549) (check-module-types ~.types-union-patterns ~[%tests %golden ~.types-union-patterns %source %jibb] src-549 `typ-549 ~ ~ ~))
3193+ (weld (check ~.types-union-patterns src-551 `tok-551 `tre-551) (check-module-types ~.types-union-patterns ~[%tests %golden ~.types-union-patterns %source %jibb] src-551 `typ-551 ~ ~ ~))
31813194++ test-types-union-patterns-generic
3182− (weld (check ~.types-union-patterns-generic src-550 `tok-550 `tre-550) (check-module-types ~.types-union-patterns-generic ~[%tests %golden ~.types-union-patterns-generic %source %jibb] src-550 `typ-550 ~ ~ ~))
3195+ (weld (check ~.types-union-patterns-generic src-552 `tok-552 `tre-552) (check-module-types ~.types-union-patterns-generic ~[%tests %golden ~.types-union-patterns-generic %source %jibb] src-552 `typ-552 ~ ~ ~))
31833196++ test-types-union-patterns-import
3184− (weld (weld (check ~.types-union-patterns-import src-551 `tok-551 `tre-551) (check-module-types ~.types-union-patterns-import ~[%tests %golden ~.types-union-patterns-import %source %jibb] src-551 `typ-551 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-551-1]])) (check-module-trees ~.types-union-patterns-import `mtre-551 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-551-1]]))
3197+ (weld (weld (check ~.types-union-patterns-import src-553 `tok-553 `tre-553) (check-module-types ~.types-union-patterns-import ~[%tests %golden ~.types-union-patterns-import %source %jibb] src-553 `typ-553 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-553-1]])) (check-module-trees ~.types-union-patterns-import `mtre-553 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-553-1]]))
31853198++ test-types-union-phantom-generic
3186− (weld (check ~.types-union-phantom-generic src-552 `tok-552 `tre-552) (check-types ~.types-union-phantom-generic ~[%tests %golden ~.types-union-phantom-generic %source %jibb] src-552 `typ-552))
3199+ (weld (check ~.types-union-phantom-generic src-554 `tok-554 `tre-554) (check-types ~.types-union-phantom-generic ~[%tests %golden ~.types-union-phantom-generic %source %jibb] src-554 `typ-554))
31873200++ test-types-union-print-cross-namespace
3188− (weld (weld (check ~.types-union-print-cross-namespace src-553 `tok-553 `tre-553) (check-module-types ~.types-union-print-cross-namespace ~[%tests %golden ~.types-union-print-cross-namespace %source %jibb] src-553 `typ-553 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-553-1]])) (check-module-trees ~.types-union-print-cross-namespace `mtre-553 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-553-1]]))
3201+ (weld (weld (check ~.types-union-print-cross-namespace src-555 `tok-555 `tre-555) (check-module-types ~.types-union-print-cross-namespace ~[%tests %golden ~.types-union-print-cross-namespace %source %jibb] src-555 `typ-555 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-555-1]])) (check-module-trees ~.types-union-print-cross-namespace `mtre-555 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-555-1]]))
31893202++ test-types-union-print-distinct
3190− (weld (weld (check ~.types-union-print-distinct src-554 `tok-554 `tre-554) (check-module-types ~.types-union-print-distinct ~[%tests %golden ~.types-union-print-distinct %source %jibb] src-554 `typ-554 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-554-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-554-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-554-3]])) (check-module-trees ~.types-union-print-distinct `mtre-554 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-554-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-554-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-554-3]]))
3203+ (weld (weld (check ~.types-union-print-distinct src-556 `tok-556 `tre-556) (check-module-types ~.types-union-print-distinct ~[%tests %golden ~.types-union-print-distinct %source %jibb] src-556 `typ-556 ~ ~ ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-556-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-556-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-556-3]])) (check-module-trees ~.types-union-print-distinct `mtre-556 ~[['/ui/left.jibb' ~[~.ui ~.left ~.jibb] mod-556-1] ['/ui/right.jibb' ~[~.ui ~.right ~.jibb] mod-556-2] ['/ui/twin.jibb' ~[~.ui ~.twin ~.jibb] mod-556-3]]))
31913204++ test-types-union-print-escape
3192− (weld (check ~.types-union-print-escape src-555 `tok-555 `tre-555) (check-types ~.types-union-print-escape ~[%tests %golden ~.types-union-print-escape %source %jibb] src-555 `typ-555))
3205+ (weld (check ~.types-union-print-escape src-557 `tok-557 `tre-557) (check-types ~.types-union-print-escape ~[%tests %golden ~.types-union-print-escape %source %jibb] src-557 `typ-557))
31933206++ test-types-union-print-local
3194− (weld (check ~.types-union-print-local src-556 `tok-556 `tre-556) (check-types ~.types-union-print-local ~[%tests %golden ~.types-union-print-local %source %jibb] src-556 `typ-556))
3207+ (weld (check ~.types-union-print-local src-558 `tok-558 `tre-558) (check-types ~.types-union-print-local ~[%tests %golden ~.types-union-print-local %source %jibb] src-558 `typ-558))
31953208++ test-types-union-print-nested
3196− (weld (check ~.types-union-print-nested src-557 `tok-557 `tre-557) (check-types ~.types-union-print-nested ~[%tests %golden ~.types-union-print-nested %source %jibb] src-557 `typ-557))
3209+ (weld (check ~.types-union-print-nested src-559 `tok-559 `tre-559) (check-types ~.types-union-print-nested ~[%tests %golden ~.types-union-print-nested %source %jibb] src-559 `typ-559))
31973210++ test-types-union-print-same-origin
3198− (weld (weld (check ~.types-union-print-same-origin src-558 `tok-558 `tre-558) (check-module-types ~.types-union-print-same-origin ~[%tests %golden ~.types-union-print-same-origin %source %jibb] src-558 `typ-558 ~ ~ ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-558-1]])) (check-module-trees ~.types-union-print-same-origin `mtre-558 ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-558-1]]))
3211+ (weld (weld (check ~.types-union-print-same-origin src-560 `tok-560 `tre-560) (check-module-types ~.types-union-print-same-origin ~[%tests %golden ~.types-union-print-same-origin %source %jibb] src-560 `typ-560 ~ ~ ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-560-1]])) (check-module-trees ~.types-union-print-same-origin `mtre-560 ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-560-1]]))
31993212++ test-types-union-print-transitive
3200− (weld (weld (check ~.types-union-print-transitive src-559 `tok-559 `tre-559) (check-module-types ~.types-union-print-transitive ~[%tests %golden ~.types-union-print-transitive %source %jibb] src-559 `typ-559 ~ ~ ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-559-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-559-2]])) (check-module-trees ~.types-union-print-transitive `mtre-559 ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-559-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-559-2]]))
3213+ (weld (weld (check ~.types-union-print-transitive src-561 `tok-561 `tre-561) (check-module-types ~.types-union-print-transitive ~[%tests %golden ~.types-union-print-transitive %source %jibb] src-561 `typ-561 ~ ~ ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-561-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-561-2]])) (check-module-trees ~.types-union-print-transitive `mtre-561 ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-561-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-561-2]]))
32013214++ test-types-union-singleton
3202− (weld (check ~.types-union-singleton src-560 `tok-560 `tre-560) (check-types ~.types-union-singleton ~[%tests %golden ~.types-union-singleton %source %jibb] src-560 `typ-560))
3215+ (weld (check ~.types-union-singleton src-562 `tok-562 `tre-562) (check-types ~.types-union-singleton ~[%tests %golden ~.types-union-singleton %source %jibb] src-562 `typ-562))
32033216++ test-types-union-tag-atoms
3204− (weld (check ~.types-union-tag-atoms src-561 `tok-561 `tre-561) (check-types ~.types-union-tag-atoms ~[%tests %golden ~.types-union-tag-atoms %source %jibb] src-561 `typ-561))
3217+ (weld (check ~.types-union-tag-atoms src-563 `tok-563 `tre-563) (check-types ~.types-union-tag-atoms ~[%tests %golden ~.types-union-tag-atoms %source %jibb] src-563 `typ-563))
32053218++ test-types-union-tags
3206− (weld (check ~.types-union-tags src-562 `tok-562 `tre-562) (check-types ~.types-union-tags ~[%tests %golden ~.types-union-tags %source %jibb] src-562 `typ-562))
3219+ (weld (check ~.types-union-tags src-564 `tok-564 `tre-564) (check-types ~.types-union-tags ~[%tests %golden ~.types-union-tags %source %jibb] src-564 `typ-564))
32073220++ test-types-union-unresolved
3208− (weld (check ~.types-union-unresolved src-563 `tok-563 `tre-563) (check-types ~.types-union-unresolved ~[%tests %golden ~.types-union-unresolved %source %jibb] src-563 `typ-563))
3221+ (weld (check ~.types-union-unresolved src-565 `tok-565 `tre-565) (check-types ~.types-union-unresolved ~[%tests %golden ~.types-union-unresolved %source %jibb] src-565 `typ-565))
32093222++ test-types-union-unresolved-flow
3210− (weld (check ~.types-union-unresolved-flow src-564 `tok-564 `tre-564) (check-types ~.types-union-unresolved-flow ~[%tests %golden ~.types-union-unresolved-flow %source %jibb] src-564 `typ-564))
3223+ (weld (check ~.types-union-unresolved-flow src-566 `tok-566 `tre-566) (check-types ~.types-union-unresolved-flow ~[%tests %golden ~.types-union-unresolved-flow %source %jibb] src-566 `typ-566))
32113224++ test-types-unit-construction
3212− (weld (check ~.types-unit-construction src-565 `tok-565 `tre-565) (check-module-types ~.types-unit-construction ~[%tests %golden ~.types-unit-construction %source %jibb] src-565 `typ-565 ~ ~ ~))
3225+ (weld (check ~.types-unit-construction src-567 `tok-567 `tre-567) (check-module-types ~.types-unit-construction ~[%tests %golden ~.types-unit-construction %source %jibb] src-567 `typ-567 ~ ~ ~))
32133226++ test-types-unit-context
3214− (weld (check ~.types-unit-context src-566 `tok-566 `tre-566) (check-module-types ~.types-unit-context ~[%tests %golden ~.types-unit-context %source %jibb] src-566 `typ-566 ~ ~ ~))
3227+ (weld (check ~.types-unit-context src-568 `tok-568 `tre-568) (check-module-types ~.types-unit-context ~[%tests %golden ~.types-unit-context %source %jibb] src-568 `typ-568 ~ ~ ~))
32153228++ test-types-unit-patterns
3216− (weld (check ~.types-unit-patterns src-567 `tok-567 `tre-567) (check-types ~.types-unit-patterns ~[%tests %golden ~.types-unit-patterns %source %jibb] src-567 `typ-567))
3229+ (weld (check ~.types-unit-patterns src-569 `tok-569 `tre-569) (check-types ~.types-unit-patterns ~[%tests %golden ~.types-unit-patterns %source %jibb] src-569 `typ-569))
32173230++ test-types-value-cycle-shadow
3218− (weld (check ~.types-value-cycle-shadow src-568 `tok-568 `tre-568) (check-module-types ~.types-value-cycle-shadow ~[%tests %golden ~.types-value-cycle-shadow %source %jibb] src-568 `typ-568 ~ ~ ~))
3231+ (weld (check ~.types-value-cycle-shadow src-570 `tok-570 `tre-570) (check-module-types ~.types-value-cycle-shadow ~[%tests %golden ~.types-value-cycle-shadow %source %jibb] src-570 `typ-570 ~ ~ ~))
32193232++ test-types-value-cycle-unsupported
3220− (weld (check ~.types-value-cycle-unsupported src-569 `tok-569 `tre-569) (check-module-types ~.types-value-cycle-unsupported ~[%tests %golden ~.types-value-cycle-unsupported %source %jibb] src-569 `typ-569 ~ ~ ~))
3233+ (weld (check ~.types-value-cycle-unsupported src-571 `tok-571 `tre-571) (check-module-types ~.types-value-cycle-unsupported ~[%tests %golden ~.types-value-cycle-unsupported %source %jibb] src-571 `typ-571 ~ ~ ~))
32213234++ test-types-value-cycles
3222− (weld (check ~.types-value-cycles src-570 `tok-570 `tre-570) (check-module-types ~.types-value-cycles ~[%tests %golden ~.types-value-cycles %source %jibb] src-570 `typ-570 ~ ~ ~))
3235+ (weld (check ~.types-value-cycles src-572 `tok-572 `tre-572) (check-module-types ~.types-value-cycles ~[%tests %golden ~.types-value-cycles %source %jibb] src-572 `typ-572 ~ ~ ~))
32233236::
32243237:: +check: run golden:jibb on a case and compare both outputs
32253238::
tools/clay-fixtures+43
@@ -2,6 +2,8 @@
22"""Build and inspect example /sur and mark fixtures through Clay."""
33
44from pathlib import Path
5+import shutil
6+import signal
57import subprocess
68import sys
79import tempfile
@@ -142,6 +144,47 @@ if result.stdout != expected:
142144 sys.exit(1)
143145print('Clay nested Ford union importer/checker bridge golden passed')
144146
147+# Build the real Tlon source in a temporary desk assembly. It lives in the
148+# golden corpus rather than an app desk; the normal desk is restored even if
149+# the temporary sync, thread, or comparison fails.
150+def stop_for_signal(signum, frame):
151+ raise InterruptedError('interrupted during temporary Clay fixture')
152+
153+previous = signal.signal(signal.SIGTERM, stop_for_signal)
154+previous_int = signal.getsignal(signal.SIGINT)
155+try:
156+ with tempfile.TemporaryDirectory(prefix='jibb-clay-tlon-') as tmp:
157+ scratch = Path(tmp)
158+ (scratch / 'tools').mkdir()
159+ shutil.copy2(ship, scratch / 'tools/ship')
160+ shutil.copy2(root / 'tools/golden_case.py', scratch / 'tools/golden_case.py')
161+ for folder in ('vendor', 'jibb-dev', 'tests'):
162+ (scratch / folder).symlink_to(root / folder, target_is_directory=True)
163+ shutil.copytree(root / 'my-app', scratch / 'my-app')
164+ shutil.copy2(root / 'tests/golden/types-import-tlon-notes/sur/notes.txt',
165+ scratch / 'my-app/sur/mop-tlon-probe.hoon')
166+ try:
167+ subprocess.run([sys.executable, str(scratch / 'tools/ship'),
168+ 'sync', 'my-app'], check=True)
169+ result = subprocess.run([str(ship), 'run', str(fixtures / 'tlon-mop.txt')],
170+ stdout=subprocess.PIPE, check=True)
171+ expected = (fixtures / 'tlon-mop-expected.txt').read_bytes()
172+ if result.stdout != expected:
173+ print('Clay Tlon mop import differs from tests/clay-fixtures/tlon-mop-expected.txt',
174+ file=sys.stderr)
175+ print('expected:', expected.decode().rstrip(), file=sys.stderr)
176+ print('actual: ', result.stdout.decode().rstrip(), file=sys.stderr)
177+ raise SystemExit(1)
178+ finally:
179+ # A second termination request must not interrupt desk restoration.
180+ signal.signal(signal.SIGTERM, signal.SIG_IGN)
181+ signal.signal(signal.SIGINT, signal.SIG_IGN)
182+ subprocess.run([str(ship), 'sync', 'my-app'], check=True)
183+finally:
184+ signal.signal(signal.SIGTERM, previous)
185+ signal.signal(signal.SIGINT, previous_int)
186+print('Clay Tlon named-mold mop importer golden passed')
187+
145188try:
146189 result = subprocess.run([str(ship), 'run', str(fixtures / 'mark-shape.txt')],
147190 stdout=subprocess.PIPE, check=True)
tools/importer-test+1−1
@@ -34,4 +34,4 @@ if result.stdout != expected:
3434 result.stdout.decode().splitlines(keepends=True),
3535 fromfile='expected tree.txt', tofile='actual types'))
3636 sys.exit(1)
37−print('importer golden: 194 projections passed')
37+print('importer golden: 204 projections passed')
tools/testdata/clay-fixtures-selftestnew file+109
@@ -0,0 +1,109 @@
1+#!/usr/bin/env python3
2+"""Exercise Clay fixture scratch-desk cleanup without contacting a ship."""
3+
4+import json
5+import os
6+from pathlib import Path
7+import shutil
8+import subprocess
9+import sys
10+import tempfile
11+
12+
13+ROOT = Path(__file__).resolve().parents[2]
14+
15+# Both the normal and copied scratch `ship` are this fake. It emits the
16+# checked-in reports, records each operation, and injects one chosen failure.
17+FAKE_SHIP = r'''#!/usr/bin/env python3
18+import json, os, pathlib, signal, sys
19+here = pathlib.Path(__file__).resolve()
20+args = sys.argv[1:]
21+scratch = 'jibb-clay-tlon-' in str(here)
22+kind = ('scratch-sync' if scratch else 'normal-sync') if args[0] == 'sync' else pathlib.Path(args[1]).name
23+with open(os.environ['JIBB_CLAY_TEST_LOG'], 'a') as out:
24+ out.write(json.dumps({'kind': kind, 'ship': str(here),
25+ 'probe': (here.parents[1] / 'my-app/sur/mop-tlon-probe.hoon').exists()}) + '\n')
26+scenario = os.environ['JIBB_CLAY_TEST_SCENARIO']
27+if scratch and args[0] == 'sync':
28+ assert (here.parents[1] / 'my-app/sur/mop-tlon-probe.hoon').read_bytes() == pathlib.Path(os.environ['JIBB_CLAY_TEST_NOTES']).read_bytes()
29+ if scenario == 'sync-failure':
30+ sys.exit(7)
31+if kind == 'tlon-mop.txt':
32+ if scenario == 'thread-failure':
33+ sys.exit(9)
34+ if scenario in ('interrupt', 'interrupt-int'):
35+ os.kill(os.getppid(), signal.SIGTERM if scenario == 'interrupt' else signal.SIGINT)
36+ if scenario == 'mismatch':
37+ sys.stdout.write('wrong report\n')
38+ sys.exit(0)
39+if kind == 'normal-sync':
40+ with open(os.environ['JIBB_CLAY_TEST_LOG']) as log:
41+ n = sum(json.loads(line)['kind'] == 'normal-sync' for line in log)
42+ if n == 2 and scenario == 'restore-failure':
43+ sys.exit(11)
44+ if n == 2 and scenario in ('restore-interrupt', 'restore-interrupt-int'):
45+ os.kill(os.getppid(), signal.SIGTERM if scenario == 'restore-interrupt' else signal.SIGINT)
46+if args[0] == 'run':
47+ name = pathlib.Path(args[1]).name
48+ if name == 'import.hoon':
49+ name = 'import.txt'
50+ expected = 'expected.txt' if name == 'build.txt' else name.replace('.txt', '-expected.txt')
51+ sys.stdout.buffer.write((pathlib.Path(os.environ['JIBB_CLAY_TEST_FIXTURES']) / expected).read_bytes())
52+'''
53+
54+
55+def exercise(scenario):
56+ with tempfile.TemporaryDirectory(prefix='jibb-clay-selftest-') as tmp:
57+ root = Path(tmp)
58+ (root / 'tools').mkdir()
59+ (root / 'my-app/sur').mkdir(parents=True)
60+ (root / 'my-app/sur/keep.hoon').write_text('original\n')
61+ shutil.copy2(ROOT / 'tools/clay-fixtures', root / 'tools/clay-fixtures')
62+ shutil.copy2(ROOT / 'tools/golden_case.py', root / 'tools/golden_case.py')
63+ fake = root / 'tools/ship'
64+ fake.write_text(FAKE_SHIP)
65+ fake.chmod(0o755)
66+ for name in ('vendor', 'jibb-dev', 'tests'):
67+ (root / name).symlink_to(ROOT / name, target_is_directory=True)
68+ log = root / 'calls.jsonl'
69+ env = dict(os.environ, JIBB_CLAY_TEST_LOG=str(log),
70+ JIBB_CLAY_TEST_SCENARIO=scenario,
71+ JIBB_CLAY_TEST_FIXTURES=str(ROOT / 'tests/clay-fixtures'),
72+ JIBB_CLAY_TEST_NOTES=str(ROOT / 'tests/golden/types-import-tlon-notes/sur/notes.txt'))
73+ result = subprocess.run([sys.executable, str(root / 'tools/clay-fixtures')],
74+ env=env, capture_output=True, text=True, timeout=30)
75+ events = [json.loads(line) for line in log.read_text().splitlines()]
76+ kinds = [e['kind'] for e in events]
77+ assert kinds.count('scratch-sync') == 1, (scenario, kinds, result.stderr)
78+ assert kinds.count('normal-sync') == 2, (scenario, kinds, result.stderr)
79+ scratch = kinds.index('scratch-sync')
80+ restore = [i for i, kind in enumerate(kinds) if kind == 'normal-sync'][1]
81+ assert scratch < restore, (scenario, kinds)
82+ assert events[scratch]['probe'] and not events[restore]['probe'], scenario
83+ assert not Path(events[scratch]['ship']).exists(), scenario
84+ assert (root / 'my-app/sur/keep.hoon').read_text() == 'original\n', scenario
85+ assert not (root / 'my-app/sur/mop-tlon-probe.hoon').exists(), scenario
86+ if scenario in ('success', 'restore-interrupt', 'restore-interrupt-int'):
87+ assert result.returncode == 0, (scenario, result.stderr)
88+ assert 'Clay Tlon named-mold mop importer golden passed' in result.stdout
89+ assert 'mark-bridge.txt' in kinds
90+ else:
91+ assert result.returncode != 0, scenario
92+ assert 'mark-bridge.txt' not in kinds
93+ if scenario == 'sync-failure':
94+ assert 'tlon-mop.txt' not in kinds
95+ else:
96+ assert scratch < kinds.index('tlon-mop.txt') < restore
97+ print('ok ', scenario)
98+
99+
100+def main():
101+ for scenario in ('success', 'sync-failure', 'thread-failure', 'mismatch',
102+ 'interrupt', 'interrupt-int', 'restore-failure',
103+ 'restore-interrupt', 'restore-interrupt-int'):
104+ exercise(scenario)
105+ print('PASS: 9 scratch-desk cleanup checks')
106+
107+
108+if __name__ == '__main__':
109+ main()