on master help sign in
Import named ordered maps and infer predicate branches
c690076iko
docs/compiler.md+3−3
@@ -72,7 +72,7 @@ For supported closed unions, the type printer keeps the union’s origin separat
72
72
73Multi-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.
73Multi-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.
74
74
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.
76
76
77A 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.
77A 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.
78
78
@@ -84,7 +84,7 @@ A known closed union with two or more arms can be matched when each arm provably
84
84
85A 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.
85A 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.
86
86
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.
88
88
89Self-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.
89Self-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.
90
90
@@ -96,7 +96,7 @@ The source-backed `+api-path-analysis-source` is a separate partial analysis, no
96
96
97`+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.
97`+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.
98
98
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.
100
100
101`+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.
101`+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.
102
102
docs/development.md+3−1
@@ -74,6 +74,7 @@ git clone https://github.com/urbit/tools /root/src/tools
74| `tools/ship` | Runs the fake ship: `start`, `stop`, `status`, `log`, `sync <desk>`, `test`, `gen-tests`, `check-commit`, `scry`, `hoon`, `run`, `poke`, `commit`, `mount`, `unmount` |
74| `tools/ship` | Runs the fake ship: `start`, `stop`, `status`, `log`, `sync <desk>`, `test`, `gen-tests`, `check-commit`, `scry`, `hoon`, `run`, `poke`, `commit`, `mount`, `unmount` |
75| `tools/testdata/selftest` | Tests `tools/golden` and `tools/hoon` against a stub library, and `tools/doc-blocks` against Markdown it writes |
75| `tools/testdata/selftest` | Tests `tools/golden` and `tools/hoon` against a stub library, and `tools/doc-blocks` against Markdown it writes |
76| `tools/testdata/ship-selftest` | Tests `tools/ship`'s test generator and runner against a stub library on the ship |
76| `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 |
77
78
78`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.
79`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.
79
80
@@ -96,8 +97,9 @@ tools/doc-blocks docs/spec # every jibb block has its case
96tools/ship gen-tests --check # tests/lib/jibb.hoon is up to date
97tools/ship gen-tests --check # tests/lib/jibb.hoon is up to date
97tools/ship test # the cases pass as -test arms on the ship
98tools/ship test # the cases pass as -test arms on the ship
98tools/testdata/ship-selftest # when tools/ship changed
99tools/testdata/ship-selftest # when tools/ship changed
100+tools/testdata/clay-fixtures-selftest # scratch fixture cleanup without a ship
99tools/ship check-commit # when the mark or the desks changed
101tools/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
101```
103```
102
104
103`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.
105`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
47
47
48`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`.
48`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`.
49
49
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.
51
51
52## 2c
52## 2c
53
53
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
19
19
20## Milestone 2: in progress
20## Milestone 2: in progress
21
21
22−The repository spec records the subsequent type-system and prelude decisions; those changes also need synchronization to the Claude document. An initial inference fragment and a standalone Hoon type reader are being tested. The fragment explicitly reports that it does not check a module; partial bridges pass 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.
23
23
24The 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.
24The shared prelude interface reserves every name present in the supplied vendored source and makes only supported inferred entries available, including `list`, `unit`, `same`, `fall`, `need`, `lure`, `weld`, `snoc` and `turn`. The validated standard `list` mold is injected when the prelude’s own gates are inferred; `weld` and `turn` have ordinary explicit result casts. An absent or altered `list` is not injected, and an altered declaration cannot leak through direct or transitive mold aliases. List-dependent prelude mold aliases remain unsupported because their templates are prepared before injection. Unsupported entries such as most list helpers remain reserved but unavailable; backend validation of the helpers remains outstanding. All callers use the same prelude origin, so a library can export a type containing unqualified `(unit A)` to another module. Preparation rejects empty, malformed, conflicting or import-bearing source; the prepared value is trusted and must come unchanged from `+prepare-prelude`. The module-scope fixture compares the prepared and source-taking paths against the real prelude and a two-module golden under eval and on the ship. The source and checker remain incomplete, so this does not establish complete shadowing coverage or a checked module.
25
25
@@ -39,9 +39,9 @@ What the plan asks for, and where it is:
39
39
40Besides the plan's list:
40Besides the plan's list:
41
41
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.
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 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.
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) and `tools/testdata/ship-selftest` test the tools themselves.
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.
45- Two independent audits before 7c739b7, one of which compared the library with a reference parser written in Python from the doc over about 19,000 generated programs. Before ab797a9, a second Python parser, written from the decisions, agreed with the library on 8,000 generated programs and 900 hand-written probes.
45- Two independent audits before 7c739b7, one of which compared the library with a reference parser written in Python from the doc over about 19,000 generated programs. Before ab797a9, a second Python parser, written from the decisions, agreed with the library on 8,000 generated programs and 900 hand-written probes.
46- Speed: starting `urbit eval` and building the library takes about 8 s. After that, a 2,000-line module of 400 definitions parses in about a second. Loops over definitions, arms, lines and items grow no stack; nesting costs a few stack frames a level, and 100,000 nested brackets still parse (library section 3).
46- Speed: starting `urbit eval` and building the library takes about 8 s. After that, a 2,000-line module of 400 definitions parses in about a second. Loops over definitions, arms, lines and items grow no stack; nesting costs a few stack frames a level, and 100,000 nested brackets still parse (library section 3).
47
47
@@ -114,14 +114,15 @@ Besides the plan's list:
114| fd2f288 | 2026-10-31 | Infer qualified fields of imported values |
114| fd2f288 | 2026-10-31 | Infer qualified fields of imported values |
115| ed9291e | 2026-10-31 | Infer term-headed pairs and function helpers, and import nested named unions |
115| ed9291e | 2026-10-31 | Infer term-headed pairs and function helpers, and import nested named unions |
116| ad0265e | 2026-10-31 | Infer proven single-case patterns and the prelude command union |
116| 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 |
118
119
119## Checking it
120## Checking it
120
121
121On a machine set up as [development.md](development.md) says:
122On a machine set up as [development.md](development.md) says:
122
123
123```
124```
124−tools/golden # 570 cases under urbit eval
125+tools/golden # 572 cases under urbit eval
125tools/importer-test # the Hoon importer fixture projection
126tools/importer-test # the Hoon importer fixture projection
126tools/type-import-test # the importer/checker bridge fixture
127tools/type-import-test # the importer/checker bridge fixture
127tools/type-tlon-test # the real Tlon reader/checker fixture
128tools/type-tlon-test # the real Tlon reader/checker fixture
@@ -134,8 +135,9 @@ tools/testdata/selftest # the tools themselves
134tools/doc-blocks docs/spec # the doc's examples are golden cases
135tools/doc-blocks docs/spec # the doc's examples are golden cases
135tools/ship start
136tools/ship start
136tools/ship gen-tests --check # tests/lib/jibb.hoon is up to date
137tools/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
138tools/testdata/ship-selftest
139tools/testdata/ship-selftest
140+tools/testdata/clay-fixtures-selftest # scratch fixture cleanup without a ship
139tools/ship check-commit # |commit stores .jibb files
141tools/ship check-commit # |commit stores .jibb files
140tools/clay-fixtures # example /sur files and marks build through Clay
142tools/clay-fixtures # example /sur files and marks build through Clay
141```
143```
jibb-dev/lib/jibb-import.hoon+133−25
@@ -90,19 +90,29 @@
90 ?: ?=([%dbug * *] raw) `+.+.raw
90 ?: ?=([%dbug * *] raw) `+.+.raw
91 ~
91 ~
92::
92::
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+::
93++ tagged-term
102++ tagged-term
94 |= leaf=spec
103 |= leaf=spec
95 ^- (unit @)
104 ^- (unit @)
96− =/ gist=(unit *) (source-gist-tail leaf)
105+ =/ plain=(unit *) (source-unwrap leaf 4)
97− ?^ gist $(leaf ;;(spec u.gist))
106+ ?~ plain ~
98− ?. ?=([%leaf %tas @] leaf) ~
107+ ?. ?=([%leaf %tas @] u.plain) ~
99− `q.leaf
108+ `+.+.u.plain
100::
109::
101++ tagged-head
110++ tagged-head
102 |= branch=spec
111 |= branch=spec
103 ^- (unit @)
112 ^- (unit @)
104− =/ gist=(unit *) (source-gist-tail branch)
113+ =/ plain=(unit *) (source-unwrap branch 4)
114+ ?~ plain ~
105− ?^ gist $(branch ;;(spec u.gist))
115+ =. branch ;;(spec u.plain)
106 ?+ branch ~
116 ?+ branch ~
107 [%bccl *]
117 [%bccl *]
108 ?~ t.p.branch ~
118 ?~ t.p.branch ~
@@ -131,15 +141,22 @@
131 ?: ?=([%dbug * *] raw) `+.+.raw
141 ?: ?=([%dbug * *] raw) `+.+.raw
132 ~
142 ~
133::
143::
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+::
134++ tagged-source-code
152++ tagged-source-code
135 |= [code=hoon name=term]
153 |= [code=hoon name=term]
136 ^- (unit (list tagged-case))
154 ^- (unit (list tagged-case))
137 =/ found=(unit spec) (local-mold-spec code name)
155 =/ found=(unit spec) (local-mold-spec code name)
138 ?~ found ~
156 ?~ found ~
139− =/ body=spec u.found
157+ =/ plain=(unit *) (source-unwrap u.found 4)
140− |-
158+ ?~ plain ~
141− =/ gist=(unit *) (source-gist-tail body)
142− ?^ gist $(body ;;(spec u.gist))
159+ =/ body=spec ;;(spec u.plain)
143 ?. ?=([%bccn *] body) ~
160 ?. ?=([%bccn *] body) ~
144 =/ cases=(list spec) p.body
161 =/ cases=(list spec) p.body
145 ?~ cases ~
162 ?~ cases ~
@@ -165,8 +182,9 @@
165++ local-mold-spec
182++ local-mold-spec
166 |= [code=hoon name=term]
183 |= [code=hoon name=term]
167 ^- (unit spec)
184 ^- (unit spec)
168− =/ note=(unit *) (source-note-tail code)
185+ =/ plain=(unit *) (source-note-unwrap code 4)
186+ ?~ plain ~
169− ?^ note $(code ;;(hoon u.note))
187+ =. code ;;(hoon u.plain)
170 ?+ code ~
188 ?+ code ~
171 [%ktcl *]
189 [%ktcl *]
172 ?. ?=([%name * *] p.code) ~
190 ?. ?=([%name * *] p.code) ~
@@ -179,9 +197,10 @@
179 ^- (unit @ud)
197 ^- (unit @ud)
180 ?~ cases `fuel
198 ?~ cases `fuel
181 ?: =(fuel 0) ~
199 ?: =(fuel 0) ~
182− ?. ?=([%leaf %tas @] i.cases) ~
200+ =/ tag=(unit @) (tagged-term i.cases)
201+ ?~ tag ~
183− ?: (lien seen |=(n=@ =(n q.i.cases))) ~
202+ ?: (lien seen |=(n=@ =(n u.tag))) ~
184− $(cases t.cases, seen [q.i.cases seen], fuel (dec fuel))
203+ $(cases t.cases, seen [u.tag seen], fuel (dec fuel))
185::
204::
186++ safe-source-specs-mode
205++ safe-source-specs-mode
187 |= [xs=(list spec) cor=type seen=(list term) fuel=@ud allow-nested=?]
206 |= [xs=(list spec) cor=type seen=(list term) fuel=@ud allow-nested=?]
@@ -208,10 +227,11 @@
208++ safe-source-spec-mode
227++ safe-source-spec-mode
209 |= [shape=spec cor=type seen=(list term) fuel=@ud allow-nested=?]
228 |= [shape=spec cor=type seen=(list term) fuel=@ud allow-nested=?]
210 ^- (unit @ud)
229 ^- (unit @ud)
230+ =/ plain=(unit *) (source-unwrap shape 4)
231+ ?~ plain ~
232+ =. shape ;;(spec u.plain)
211 ?: =(fuel 0) ~
233 ?: =(fuel 0) ~
212 =. fuel (dec fuel)
234 =. fuel (dec fuel)
213− =/ gist=(unit *) (source-gist-tail shape)
214− ?^ gist $(shape ;;(spec u.gist))
215 ?+ shape ~
235 ?+ shape ~
216 [%base *] ?:(|(?=([%atom *] p.shape) =(%flag p.shape) =(%null p.shape)) `fuel ~)
236 [%base *] ?:(|(?=([%atom *] p.shape) =(%flag p.shape) =(%null p.shape)) `fuel ~)
217 [%leaf *] `fuel
237 [%leaf *] `fuel
@@ -234,8 +254,9 @@
234 ?. ?=(~ q.shape) ~
254 ?. ?=(~ q.shape) ~
235 (safe-source-name-mode i.p.shape cor seen fuel allow-nested)
255 (safe-source-name-mode i.p.shape cor seen fuel allow-nested)
236 [%make *]
256 [%make *]
237− ?. ?=([%wing [@ ~]] p.shape) ~
257+ =/ wing=(unit term) (source-single-wing p.shape)
258+ ?~ wing ~
238− =/ n=term i.p.p.shape
259+ =/ n=term u.wing
239 ?. (lien `(list term)`~[%map %set %qeu %list %unit %jar %jug] |=(x=term =(x n))) ~
260 ?. (lien `(list term)`~[%map %set %qeu %list %unit %jar %jug] |=(x=term =(x n))) ~
240 ?. (scope-safe cor n) ~
261 ?. (scope-safe cor n) ~
241 (safe-source-specs-mode q.shape cor seen fuel allow-nested)
262 (safe-source-specs-mode q.shape cor seen fuel allow-nested)
@@ -991,17 +1012,46 @@
991 ?@ src |
1012 ?@ src |
992 |($(src -.src) $(src +.src))
1013 |($(src -.src) $(src +.src))
993::
1014::
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+::
994++ mop-specs-raw
1032++ mop-specs-raw
995 |= body=hoon
1033 |= body=hoon
996 ^- (unit [key=spec value=spec])
1034 ^- (unit [key=spec value=spec])
1035+ =. body (mop-source-code body)
997 ?. ?=([%cncl *] body) ~
1036 ?. ?=([%cncl *] body) ~
998 ?. ?=([%tsgr *] p.body) ~
1037 ?. ?=([%tsgr *] p.body) ~
999− =/ b=hoon q.p.body
1038+ =/ b=hoon (mop-source-code q.p.body)
1000 ?. ?=([%cncl *] b) ~
1039 ?. ?=([%cncl *] b) ~
1040+ =/ call=hoon (mop-source-code p.b)
1001− ?. ?=([%cncl *] p.b) ~
1041+ ?. ?=([%cncl *] call) ~
1002− ?. ?=([%wing *] p.p.b) ~
1042+ =/ w=(unit term) (source-single-wing p.call)
1003− ?. =(p.p.p.b ~[%mop]) ~
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
1004− =/ specs=(list spec) ;;((list spec) q.p.b)
1054+ =/ specs=(list spec) ;;((list spec) raw)
1005 ?. ?=([* [* ~]] specs) ~
1055 ?. ?=([* [* ~]] specs) ~
1006 [~ [i.specs i.t.specs]]
1056 [~ [i.specs i.t.specs]]
1007::
1057::
@@ -1298,7 +1348,8 @@
1298 [%bad 'Hoon collection provenance is unavailable or shadowed']
1348 [%bad 'Hoon collection provenance is unavailable or shadowed']
1299 =/ mop (mop-arguments typ)
1349 =/ mop (mop-arguments typ)
1300 ?^ mop
1350 ?^ mop
1351+ :: An exact revisit fails closed without guessing a name.
1301− [%apply %mop ~[$(typ key.u.mop) $(typ value.u.mop)]]
1352+ [%apply %mop ~[$(typ key.u.mop, seen [[typ ~] seen]) $(typ value.u.mop, seen [[typ ~] seen])]]
1302 ?: (source-uses q.typ %mop)
1353 ?: (source-uses q.typ %mop)
1303 =/ checked-names=(list term) ~[%map %set %qeu %list %unit]
1354 =/ checked-names=(list term) ~[%map %set %qeu %list %unit]
1304 ?: (lien checked-names |=(n=term &((source-uses q.typ n) !(alias-safe context n))))
1355 ?: (lien checked-names |=(n=term &((source-uses q.typ n) !(alias-safe context n))))
@@ -1642,6 +1693,49 @@
1642 ?: ?=(%& -.invalid) "malformed spec accepted"
1693 ?: ?=(%& -.invalid) "malformed spec accepted"
1643 "valid wrapper; duplicate and malformed rejected"
1694 "valid wrapper; duplicate and malformed rejected"
1644::
1695::
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+::
1645:: Synthetic nodes test each part of the direct collection-call proof.
1739:: Synthetic nodes test each part of the direct collection-call proof.
1646++ collection-wrapper-fixture
1740++ collection-wrapper-fixture
1647 ^- tape
1741 ^- tape
@@ -1727,6 +1821,10 @@
1727 =/ nest-child-src=@t
1821 =/ nest-child-src=@t
1728 '|%\0a+$ tag-nest-inner $%([%left @t] [%right @ud])\0a+$ tag-nest-middle $%([%one x=tag-nest-inner] [%two ~])\0a--\0a'
1822 '|%\0a+$ tag-nest-inner $%([%left @t] [%right @ud])\0a+$ tag-nest-middle $%([%one x=tag-nest-inner] [%two ~])\0a--\0a'
1729 =/ nest-collision=type -:(ride [%cell [%face %base nest-parent] -:!>(..zuse)] nest-child-src)
1823 =/ 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')
1730 =/ sample
1828 =/ sample
1731 |= name=term
1829 |= name=term
1732 (read-mold-in %small name (~(play ut sc) (ream (cat 3 '*' name))) sc)
1830 (read-mold-in %small name (~(play ut sc) (ream (cat 3 '*' name))) sc)
@@ -1797,6 +1895,16 @@
1797 (crip "shadow-list-mop: {(show-result (read-mold-in %shadow-static %bad (~(play ut xc) (ream '*bad')) xc))}")
1895 (crip "shadow-list-mop: {(show-result (read-mold-in %shadow-static %bad (~(play ut xc) (ream '*bad')) xc))}")
1798 (crip "named-mop: {(show-result (sample %named-mop))}")
1896 (crip "named-mop: {(show-result (sample %named-mop))}")
1799 (crip "mop-list: {(show-result (sample %mop-list))}")
1897 (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)}")
1800 (crip "signed: {(show-result (sample %signed))}")
1908 (crip "signed: {(show-result (sample %signed))}")
1801 (crip "float: {(show-result (sample %float))}")
1909 (crip "float: {(show-result (sample %float))}")
1802 (crip "gate: {(show-result (sample %gate-test))}")
1910 (crip "gate: {(show-result (sample %gate-test))}")
jibb-dev/lib/jibb.hoon+28−3
@@ -6562,6 +6562,7 @@
6562 ?: ?=(%unknown -.fit)
6562 ?: ?=(%unknown -.fit)
6563 ?: &(?=(%collection -.expected) =(%list name.expected))
6563 ?: &(?=(%collection -.expected) =(%list name.expected))
6564 [%| ["branch list constraint is not supported by partial inference" ~]]
6564 [%| ["branch list constraint is not supported by partial inference" ~]]
6565+ ?: ?=(%flag -.expected) [%| ["branch loobean constraint is not supported by partial inference" ~]]
6565 [%| ["branch union constraint is not supported by partial inference" ~]]
6566 [%| ["branch union constraint is not supported by partial inference" ~]]
6566 ?: ?=(%bad -.fit)
6567 ?: ?=(%bad -.fit)
6567 =/ missing=(unit idiag) (missing-union-tag e expected sub.state.p.value context)
6568 =/ missing=(unit idiag) (missing-union-tag e expected sub.state.p.value context)
@@ -6570,6 +6571,8 @@
6570 ?^ nested [%| u.nested]
6571 ?^ nested [%| u.nested]
6571 ?: &(?=(%collection -.expected) =(%list name.expected))
6572 ?: &(?=(%collection -.expected) =(%list name.expected))
6572 [%| ["branch arm does not fit its expected list" ~[[context "expected list"] [(span-of e) "branch arm"]]]]
6573 [%| ["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"]]]]
6573 [%| ["branch arm does not fit its expected union" ~[[context "expected union"] [(span-of e) "branch arm"]]]]
6576 [%| ["branch arm does not fit its expected union" ~[[context "expected union"] [(span-of e) "branch arm"]]]]
6574 [%& expected state.p.value(sub sub.fit, next next.fit)]
6577 [%& expected state.p.value(sub sub.fit, next next.fit)]
6575::
6578::
@@ -7389,7 +7392,7 @@
7389 ?~ arms.e [%| ["branch is not supported by partial inference" ~]]
7392 ?~ arms.e [%| ["branch is not supported by partial inference" ~]]
7390 ?~ t.arms.e
7393 ?~ t.arms.e
7391 ?: (single-structured-pattern e) (infer-single-case-branch e env state ~)
7394 ?: (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 ~)
7393 ?^ t.t.arms.e (infer-known-union-branch e env state)
7396 ?^ t.t.arms.e (infer-known-union-branch e env state)
7394 =/ known=(unit itype) (known-union-subject subject.e env state)
7397 =/ known=(unit itype) (known-union-subject subject.e env state)
7395 ?: &(?=(^ known) ?=(~ (unit-union-payload u.known)))
7398 ?: &(?=(^ known) ?=(~ (unit-union-payload u.known)))
@@ -7619,6 +7622,8 @@
7619 ?: ?=(%call -.e) (infer-contextual-call e target env state)
7622 ?: ?=(%call -.e) (infer-contextual-call e target env state)
7620 ?: (single-structured-pattern e)
7623 ?: (single-structured-pattern e)
7621 (infer-single-case-branch e env state `[target context])
7624 (infer-single-case-branch e env state `[target context])
7625+ ?: (cell-binder-pattern e)
7626+ (infer-cell-branch e env state `[target context])
7622 :: In a loobean-singleton context retain the written loobean noun;
7627 :: In a loobean-singleton context retain the written loobean noun;
7623 :: the usual final fit decides whether that value is permitted.
7628 :: the usual final fit decides whether that value is permitted.
7624 =/ singleton=(unit itype)
7629 =/ singleton=(unit itype)
@@ -7635,6 +7640,8 @@
7635 (infer-known-union-context e target env state context)
7640 (infer-known-union-context e target env state context)
7636 ?: &(?=(%union -.target) ?=(%unit -.e))
7641 ?: &(?=(%union -.target) ?=(%unit -.e))
7637 (infer-unit-context e target env state context)
7642 (infer-unit-context e target env state context)
7643+ ?: &(?=(%flag -.target) (context-union-branch e))
7644+ (infer-union-context e target env state context)
7638 ?: &(?=(%union -.target) (context-union-branch e))
7645 ?: &(?=(%union -.target) (context-union-branch e))
7639 (infer-union-context e target env state context)
7646 (infer-union-context e target env state context)
7640 ?: &(?=(%collection -.target) =(%list name.target) (context-union-branch e))
7647 ?: &(?=(%collection -.target) =(%list name.target) (context-union-branch e))
@@ -7737,8 +7744,17 @@
7737 ?: ?=(%cell -.typ) $(typ tal.typ, names t.names)
7744 ?: ?=(%cell -.typ) $(typ tal.typ, names t.names)
7738 |(?=(%union -.typ) ?=(%collection -.typ) ?=(%recursive -.typ) ?=(%noun -.typ) ?=(%fn -.typ) ?=(%tag -.typ))
7745 |(?=(%union -.typ) ?=(%collection -.typ) ?=(%recursive -.typ) ?=(%noun -.typ) ?=(%fn -.typ) ?=(%tag -.typ))
7739::
7746::
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+::
7740++ infer-cell-branch
7756++ infer-cell-branch
7741− |= [e=expr env=ienv state=istate]
7757+ |= [e=expr env=ienv state=istate expected=(unit [typ=itype context=span])]
7742 ^- iresult
7758 ^- iresult
7743 ?> ?=(%branch -.e)
7759 ?> ?=(%branch -.e)
7744 ?~ arms.e [%| ["branch is not supported by partial inference" ~]]
7760 ?~ arms.e [%| ["branch is not supported by partial inference" ~]]
@@ -7762,7 +7778,16 @@
7762 =/ binders=[typ=itype env=ienv next=@ud] (cell-pattern-types p.names env next.st)
7778 =/ binders=[typ=itype env=ienv next=@ud] (cell-pattern-types p.names env next.st)
7763 =/ sub=(unit isub) (itype-unify typ.p.subject typ.binders sub.st)
7779 =/ sub=(unit isub) (itype-unify typ.p.subject typ.binders sub.st)
7764 ?~ sub [%| ["cell pattern does not match the subject type" ~]]
7780 ?~ sub [%| ["cell pattern does not match the subject type" ~]]
7781+ =. st st(next next.binders, sub u.sub)
7765− (infer-fragment val.arm env.binders 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)]
7766::
7791::
7767++ show-itype
7792++ show-itype
7768 |= [t=itype sub=isub]
7793 |= [t=itype sub=isub]
jibb-dev/lib/jibb/prelude.jibb+18−16
@@ -214,24 +214,26 @@
214 %.n [item (skip rest predicate)]
214 %.n [item (skip rest predicate)]
215
215
216++ levy |= args=[(list A) $-(A ?)]
216++ levy |= args=[(list A) $-(A ?)]
217+ ^- ?
217− ?- args
218+ ?- args
218− [xs predicate]
219+ [xs predicate]
219− ?- xs
220+ ?- xs
220− ~ %.y
221+ ~ %.y
221− [item rest]
222+ [item rest]
222− ?- (predicate item)
223+ ?- (predicate item)
223− %.y (levy rest predicate)
224+ %.y (levy rest predicate)
224− %.n %.n
225+ %.n %.n
225
226
226++ lien |= args=[(list A) $-(A ?)]
227++ lien |= args=[(list A) $-(A ?)]
228+ ^- ?
227− ?- args
229+ ?- args
228− [xs predicate]
230+ [xs predicate]
229− ?- xs
231+ ?- xs
230− ~ %.n
232+ ~ %.n
231− [item rest]
233+ [item rest]
232− ?- (predicate item)
234+ ?- (predicate item)
233− %.y %.y
235+ %.y %.y
234− %.n (lien rest predicate)
236+ %.n (lien rest predicate)
235
237
236++ roll |= args=[(list A) B $-([A B] B)]
238++ roll |= args=[(list A) B $-([A B] B)]
237 ?- args
239 ?- 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 @@
214 %.n [item (skip rest predicate)]
214 %.n [item (skip rest predicate)]
215
215
216++ levy |= args=[(list A) $-(A ?)]
216++ levy |= args=[(list A) $-(A ?)]
217+ ^- ?
217− ?- args
218+ ?- args
218− [xs predicate]
219+ [xs predicate]
219− ?- xs
220+ ?- xs
220− ~ %.y
221+ ~ %.y
221− [item rest]
222+ [item rest]
222− ?- (predicate item)
223+ ?- (predicate item)
223− %.y (levy rest predicate)
224+ %.y (levy rest predicate)
224− %.n %.n
225+ %.n %.n
225
226
226++ lien |= args=[(list A) $-(A ?)]
227++ lien |= args=[(list A) $-(A ?)]
228+ ^- ?
227− ?- args
229+ ?- args
228− [xs predicate]
230+ [xs predicate]
229− ?- xs
231+ ?- xs
230− ~ %.n
232+ ~ %.n
231− [item rest]
233+ [item rest]
232− ?- (predicate item)
234+ ?- (predicate item)
233− %.y %.y
235+ %.y %.y
234− %.n (lien rest predicate)
236+ %.n (lien rest predicate)
235
237
236++ roll |= args=[(list A) B $-([A B] B)]
238++ roll |= args=[(list A) B $-([A B] B)]
237 ?- args
239 ?- args
tests/golden/prelude-unit-list-transforms/tokens.txt+675−667
@@ -1361,685 +1361,693 @@
1361216:33 tight glyph )
1361216:33 tight glyph )
1362216:34 tight glyph ]
1362216:34 tight glyph ]
1363217:3 INDENT
1363217:3 INDENT
1364−217:3 glyph ?-
1364+217:3 glyph ^-
1365−217:6 name args
1365+217:6 glyph ?
1366218:5 INDENT
1366218:5 INDENT
1367−218:5 glyph [
1367+218:5 glyph ?-
1368−218:6 tight name xs
1368+218:8 name args
1369−218:9 name predicate
1370−218:18 tight glyph ]
1371219:7 INDENT
1369219:7 INDENT
1372−219:7 glyph ?-
1370+219:7 glyph [
1373−219:10 name xs
1371+219:8 tight name xs
1372+219:11 name predicate
1373+219:20 tight glyph ]
1374220:9 INDENT
1374220:9 INDENT
1375−220:9 lit ~
1375+220:9 glyph ?-
1376+220:12 name xs
1377+221:11 INDENT
1378+221:11 lit ~
1376−220:11 lit %.y
1379+221:13 lit %.y
1377−221:9 NEWLINE
1380+222:11 NEWLINE
1378−221:9 glyph [
1381+222:11 glyph [
1379−221:10 tight name item
1382+222:12 tight name item
1380−221:15 name rest
1383+222:17 name rest
1381−221:19 tight glyph ]
1384+222:21 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 )
1388223:13 INDENT
1385223:13 INDENT
1389−223:13 lit %.y
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
1390−223:17 glyph (
1393+224:19 glyph (
1391−223:18 tight name levy
1394+224:20 tight name levy
1392−223:23 name rest
1395+224:25 name rest
1393−223:28 name predicate
1396+224:30 name predicate
1394−223:37 tight glyph )
1397+224:39 tight glyph )
1395−224:13 NEWLINE
1398+225:15 NEWLINE
1396−224:13 lit %.n
1399+225:15 lit %.n
1397−224:17 lit %.n
1400+225:19 lit %.n
1398−226:1 DEDENT
1401+227:1 DEDENT
1399−226:1 DEDENT
1402+227:1 DEDENT
1400−226:1 DEDENT
1403+227:1 DEDENT
1401−226:1 DEDENT
1404+227:1 DEDENT
1402−226:1 DEDENT
1405+227:1 DEDENT
1403−226:1 DEDENT
1406+227:1 DEDENT
1407+227:1 DEDENT
1404−226:1 NEWLINE
1408+227:1 NEWLINE
1405−226:1 glyph ++
1409+227:1 glyph ++
1406−226:4 name lien
1410+227:4 name lien
1407−226:9 glyph |=
1411+227:9 glyph |=
1408−226:12 name args
1412+227:12 name args
1409−226:16 tight glyph =
1413+227:16 tight glyph =
1410−226:17 tight glyph [
1414+227:17 tight glyph [
1411−226:18 tight glyph (
1415+227:18 tight glyph (
1412−226:19 tight name list
1416+227:19 tight name list
1413−226:24 tvar A
1417+227:24 tvar A
1414−226:25 tight glyph )
1418+227:25 tight glyph )
1415−226:27 glyph $-(
1419+227:27 glyph $-(
1416−226:30 tight tvar A
1420+227:30 tight tvar A
1417−226:32 glyph ?
1421+227:32 glyph ?
1418−226:33 tight glyph )
1422+227:33 tight glyph )
1419−226:34 tight glyph ]
1423+227:34 tight glyph ]
1420−227:3 INDENT
1424+228:3 INDENT
1421−227:3 glyph ?-
1425+228:3 glyph ^-
1422−227:6 name args
1426+228:6 glyph ?
1423−228:5 INDENT
1427+229:5 INDENT
1424−228:5 glyph [
1428+229:5 glyph ?-
1425−228:6 tight name xs
1429+229:8 name args
1426−228:9 name predicate
1427−228:18 tight glyph ]
1428−229:7 INDENT
1430+230:7 INDENT
1429−229:7 glyph ?-
1431+230:7 glyph [
1430−229:10 name xs
1432+230:8 tight name xs
1431−230:9 INDENT
1433+230:11 name predicate
1432−230:9 lit ~
1433−230:11 lit %.n
1434−231:9 NEWLINE
1435−231:9 glyph [
1434+230:20 tight glyph ]
1436−231:10 tight name item
1435+231:9 INDENT
1437−231:15 name rest
1436+231:9 glyph ?-
1438−231:19 tight glyph ]
1437+231:12 name xs
1439232:11 INDENT
1438232:11 INDENT
1440−232:11 glyph ?-
1439+232:11 lit ~
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
1440+232:13 lit %.n
1447−233:17 lit %.y
1448−234:13 NEWLINE
1441+233:11 NEWLINE
1449−234:13 lit %.n
1450−234:17 glyph (
1442+233:11 glyph [
1451−234:18 tight name lien
1443+233:12 tight name item
1452−234:23 name rest
1444+233:17 name rest
1453−234:28 name predicate
1445+233:21 tight glyph ]
1454−234:37 tight glyph )
1446+234:13 INDENT
1455−236:1 DEDENT
1447+234:13 glyph ?-
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 =
1448+234:16 glyph (
1467−236:17 tight glyph [
1468−236:18 tight glyph (
1469−236:19 tight name list
1449+234:17 tight name predicate
1470−236:24 tvar A
1450+234:27 name item
1471−236:25 tight glyph )
1472−236:27 tvar B
1473−236:29 glyph $-(
1451+234:31 tight glyph )
1474−236:32 tight glyph [
1452+235:15 INDENT
1475−236:33 tight tvar A
1453+235:15 lit %.y
1476−236:35 tvar B
1454+235:19 lit %.y
1455+236:15 NEWLINE
1456+236:15 lit %.n
1457+236:19 glyph (
1477−236:36 tight glyph ]
1458+236:20 tight name lien
1478−236:38 tvar B
1459+236:25 name rest
1460+236:30 name predicate
1479236:39 tight glyph )
1461236:39 tight glyph )
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 )
1480−236:40 tight glyph ]
1488+238:40 tight glyph ]
1481−237:3 INDENT
1489+239:3 INDENT
1482−237:3 glyph ?-
1490+239:3 glyph ?-
1483−237:6 name args
1491+239:6 name args
1484−238:5 INDENT
1492+240:5 INDENT
1485−238:5 glyph [
1493+240:5 glyph [
1486−238:6 tight name xs
1494+240:6 tight name xs
1487−238:9 name start
1495+240:9 name start
1488−238:15 name combine
1496+240:15 name combine
1489−238:22 tight glyph ]
1497+240:22 tight glyph ]
1490−239:7 INDENT
1498+241:7 INDENT
1491−239:7 glyph ?-
1499+241:7 glyph ?-
1492−239:10 name xs
1500+241:10 name xs
1493−240:9 INDENT
1501+242:9 INDENT
1494−240:9 lit ~
1502+242:9 lit ~
1495−240:11 name start
1503+242:11 name start
1496−241:9 NEWLINE
1504+243:9 NEWLINE
1497−241:9 glyph [
1505+243:9 glyph [
1498−241:10 tight name item
1506+243:10 tight name item
1499−241:15 name rest
1507+243:15 name rest
1500−241:19 tight glyph ]
1508+243:19 tight glyph ]
1501−241:21 glyph (
1509+243:21 glyph (
1502−241:22 tight name roll
1510+243:22 tight name roll
1503−241:27 name rest
1511+243:27 name rest
1504−241:32 glyph (
1512+243:32 glyph (
1505−241:33 tight name combine
1513+243:33 tight name combine
1506−241:41 name item
1514+243:41 name item
1507−241:46 name start
1515+243:46 name start
1508−241:51 tight glyph )
1516+243:51 tight glyph )
1509−241:53 name combine
1517+243:53 name combine
1510−241:60 tight glyph )
1518+243:60 tight glyph )
1511−243:1 DEDENT
1519+245:1 DEDENT
1512−243:1 DEDENT
1520+245:1 DEDENT
1513−243:1 DEDENT
1521+245:1 DEDENT
1514−243:1 DEDENT
1522+245:1 DEDENT
1515−243:1 NEWLINE
1523+245:1 NEWLINE
1516−243:1 glyph ++
1524+245:1 glyph ++
1517−243:4 name reel
1525+245:4 name reel
1518−243:9 glyph |=
1526+245:9 glyph |=
1519−243:12 name args
1527+245:12 name args
1520−243:16 tight glyph =
1528+245:16 tight glyph =
1521−243:17 tight glyph [
1529+245:17 tight glyph [
1522−243:18 tight glyph (
1530+245:18 tight glyph (
1523−243:19 tight name list
1531+245:19 tight name list
1524−243:24 tvar A
1532+245:24 tvar A
1525−243:25 tight glyph )
1533+245:25 tight glyph )
1526−243:27 tvar B
1534+245:27 tvar B
1527−243:29 glyph $-(
1535+245:29 glyph $-(
1528−243:32 tight glyph [
1536+245:32 tight glyph [
1529−243:33 tight tvar A
1537+245:33 tight tvar A
1530−243:35 tvar B
1538+245:35 tvar B
1531−243:36 tight glyph ]
1539+245:36 tight glyph ]
1532−243:38 tvar B
1540+245:38 tvar B
1533−243:39 tight glyph )
1541+245:39 tight glyph )
1534−243:40 tight glyph ]
1542+245:40 tight glyph ]
1535−244:3 INDENT
1543+246:3 INDENT
1536−244:3 glyph ?-
1544+246:3 glyph ?-
1537−244:6 name args
1545+246:6 name args
1538−245:5 INDENT
1546+247:5 INDENT
1539−245:5 glyph [
1547+247:5 glyph [
1540−245:6 tight name xs
1548+247:6 tight name xs
1541−245:9 name start
1549+247:9 name start
1542−245:15 name combine
1550+247:15 name combine
1543−245:22 tight glyph ]
1551+247:22 tight glyph ]
1544−246:7 INDENT
1552+248:7 INDENT
1545−246:7 glyph ?-
1553+248:7 glyph ?-
1546−246:10 name xs
1554+248:10 name xs
1547−247:9 INDENT
1555+249:9 INDENT
1548−247:9 lit ~
1556+249:9 lit ~
1549−247:11 name start
1557+249:11 name start
1550−248:9 NEWLINE
1558+250:9 NEWLINE
1551−248:9 glyph [
1559+250:9 glyph [
1552−248:10 tight name item
1560+250:10 tight name item
1553−248:15 name rest
1561+250:15 name rest
1554−248:19 tight glyph ]
1562+250:19 tight glyph ]
1555−248:21 glyph (
1563+250:21 glyph (
1556−248:22 tight name combine
1564+250:22 tight name combine
1557−248:30 name item
1565+250:30 name item
1558−248:35 glyph (
1566+250:35 glyph (
1559−248:36 tight name reel
1567+250:36 tight name reel
1560−248:41 name rest
1568+250:41 name rest
1561−248:46 name start
1569+250:46 name start
1562−248:52 name combine
1570+250:52 name combine
1563−248:59 tight glyph )
1571+250:59 tight glyph )
1564−248:60 tight glyph )
1572+250:60 tight glyph )
1565−250:1 DEDENT
1573+252:1 DEDENT
1566−250:1 DEDENT
1574+252:1 DEDENT
1567−250:1 DEDENT
1575+252:1 DEDENT
1568−250:1 DEDENT
1576+252:1 DEDENT
1569−250:1 NEWLINE
1577+252:1 NEWLINE
1570−250:1 glyph ++
1578+252:1 glyph ++
1571−250:4 name flit
1579+252:4 name flit
1572−250:9 glyph |=
1580+252:9 glyph |=
1573−250:12 name predicate
1581+252:12 name predicate
1574−250:21 tight glyph =
1582+252:21 tight glyph =
1575−250:22 tight glyph $-(
1583+252:22 tight glyph $-(
1576−250:25 tight tvar A
1584+252:25 tight tvar A
1577−250:27 glyph ?
1585+252:27 glyph ?
1578−250:28 tight glyph )
1586+252:28 tight glyph )
1579−251:3 INDENT
1587+253:3 INDENT
1580−251:3 glyph |=
1588+253:3 glyph |=
1581−251:6 name value
1589+253:6 name value
1582−251:11 tight glyph =
1590+253:11 tight glyph =
1583−251:12 tight tvar A
1591+253:12 tight tvar A
1584−252:5 INDENT
1592+254:5 INDENT
1585−252:5 glyph ^-
1593+254:5 glyph ^-
1586−252:8 glyph (
1594+254:8 glyph (
1587−252:9 tight name unit
1595+254:9 tight name unit
1588−252:14 tvar A
1596+254:14 tvar A
1589−252:15 tight glyph )
1597+254:15 tight glyph )
1590−253:7 INDENT
1598+255:7 INDENT
1591−253:7 glyph ?-
1599+255:7 glyph ?-
1592−253:10 glyph (
1600+255:10 glyph (
1593−253:11 tight name predicate
1601+255:11 tight name predicate
1594−253:21 name value
1602+255:21 name value
1595−253:26 tight glyph )
1603+255:26 tight glyph )
1596−254:9 INDENT
1604+256:9 INDENT
1597−254:9 lit %.y
1605+256:9 lit %.y
1598−254:13 glyph `
1606+256:13 glyph `
1599−254:14 tight name value
1607+256:14 tight name value
1600−255:9 NEWLINE
1608+257:9 NEWLINE
1601−255:9 lit %.n
1609+257:9 lit %.n
1602−255:13 lit ~
1610+257:13 lit ~
1603−257:1 DEDENT
1611+259:1 DEDENT
1604−257:1 DEDENT
1612+259:1 DEDENT
1605−257:1 DEDENT
1613+259:1 DEDENT
1606−257:1 DEDENT
1614+259:1 DEDENT
1607−257:1 NEWLINE
1615+259:1 NEWLINE
1608−257:1 glyph ++
1616+259:1 glyph ++
1609−257:4 name murn
1617+259:4 name murn
1610−257:9 glyph |=
1618+259:9 glyph |=
1611−257:12 name args
1619+259:12 name args
1612−257:16 tight glyph =
1620+259:16 tight glyph =
1613−257:17 tight glyph [
1621+259:17 tight glyph [
1614−257:18 tight glyph (
1622+259:18 tight glyph (
1615−257:19 tight name list
1623+259:19 tight name list
1616−257:24 tvar A
1624+259:24 tvar A
1617−257:25 tight glyph )
1625+259:25 tight glyph )
1618−257:27 glyph $-(
1626+259:27 glyph $-(
1619−257:30 tight tvar A
1627+259:30 tight tvar A
1620−257:32 glyph (
1628+259:32 glyph (
1621−257:33 tight name unit
1629+259:33 tight name unit
1622−257:38 tvar B
1630+259:38 tvar B
1623−257:39 tight glyph )
1631+259:39 tight glyph )
1624−257:40 tight glyph )
1632+259:40 tight glyph )
1625−257:41 tight glyph ]
1633+259:41 tight glyph ]
1626−258:3 INDENT
1634+260:3 INDENT
1627−258:3 glyph ?-
1635+260:3 glyph ?-
1628−258:6 name args
1636+260:6 name args
1629−259:5 INDENT
1637+261:5 INDENT
1630−259:5 glyph [
1638+261:5 glyph [
1631−259:6 tight name xs
1639+261:6 tight name xs
1632−259:9 name f
1640+261:9 name f
1633−259:10 tight glyph ]
1641+261:10 tight glyph ]
1634−259:12 glyph ^-
1642+261:12 glyph ^-
1635−259:15 glyph (
1643+261:15 glyph (
1636−259:16 tight name list
1644+261:16 tight name list
1637−259:21 tvar B
1645+261:21 tvar B
1638−259:22 tight glyph )
1646+261:22 tight glyph )
1639−260:9 INDENT
1647+262:9 INDENT
1640−260:9 glyph ?-
1648+262:9 glyph ?-
1641−260:12 name xs
1649+262:12 name xs
1642−261:11 INDENT
1650+263:11 INDENT
1643−261:11 lit ~
1651+263:11 lit ~
1644−261:13 lit ~
1652+263:13 lit ~
1645−262:11 NEWLINE
1653+264:11 NEWLINE
1646−262:11 glyph [
1654+264:11 glyph [
1647−262:12 tight name item
1655+264:12 tight name item
1648−262:17 name rest
1656+264:17 name rest
1649−262:21 tight glyph ]
1657+264:21 tight glyph ]
1650−263:13 INDENT
1658+265:13 INDENT
1651−263:13 glyph ?-
1659+265:13 glyph ?-
1652−263:16 glyph (
1660+265:16 glyph (
1653−263:17 tight name f
1661+265:17 tight name f
1654−263:19 name item
1662+265:19 name item
1655−263:23 tight glyph )
1663+265:23 tight glyph )
1656−264:15 INDENT
1664+266:15 INDENT
1657−264:15 lit ~
1665+266:15 lit ~
1658−264:17 glyph (
1666+266:17 glyph (
1659−264:18 tight name murn
1667+266:18 tight name murn
1660−264:23 name rest
1668+266:23 name rest
1661−264:28 name f
1669+266:28 name f
1662−264:29 tight glyph )
1670+266:29 tight glyph )
1663−265:15 NEWLINE
1671+267:15 NEWLINE
1664−265:15 glyph [
1672+267:15 glyph [
1665−265:16 tight lit ~
1673+267:16 tight lit ~
1666−265:18 name value
1674+267:18 name value
1667−265:23 tight glyph ]
1675+267:23 tight glyph ]
1668−265:25 glyph [
1676+267:25 glyph [
1669−265:26 tight name value
1677+267:26 tight name value
1670−265:32 glyph (
1678+267:32 glyph (
1671−265:33 tight name murn
1679+267:33 tight name murn
1672−265:38 name rest
1680+267:38 name rest
1673−265:43 name f
1681+267:43 name f
1674−265:44 tight glyph )
1682+267:44 tight glyph )
1675−265:45 tight glyph ]
1683+267:45 tight glyph ]
1676−267:1 DEDENT
1684+269:1 DEDENT
1677−267:1 DEDENT
1685+269:1 DEDENT
1678−267:1 DEDENT
1686+269:1 DEDENT
1679−267:1 DEDENT
1687+269:1 DEDENT
1680−267:1 DEDENT
1688+269:1 DEDENT
1681−267:1 DEDENT
1689+269:1 DEDENT
1682−267:1 NEWLINE
1690+269:1 NEWLINE
1683−267:1 glyph ++
1691+269:1 glyph ++
1684−267:4 name join
1692+269:4 name join
1685−267:9 glyph |=
1693+269:9 glyph |=
1686−267:12 name args
1694+269:12 name args
1687−267:16 tight glyph =
1695+269:16 tight glyph =
1688−267:17 tight glyph [
1696+269:17 tight glyph [
1689−267:18 tight tvar A
1697+269:18 tight tvar A
1690−267:20 glyph (
1698+269:20 glyph (
1691−267:21 tight name list
1699+269:21 tight name list
1692−267:26 tvar A
1700+269:26 tvar A
1693−267:27 tight glyph )
1701+269:27 tight glyph )
1694−267:28 tight glyph ]
1702+269:28 tight glyph ]
1695−268:3 INDENT
1703+270:3 INDENT
1696−268:3 glyph ?-
1704+270:3 glyph ?-
1697−268:6 name args
1705+270:6 name args
1698−269:5 INDENT
1706+271:5 INDENT
1699−269:5 glyph [
1707+271:5 glyph [
1700−269:6 tight name separator
1708+271:6 tight name separator
1701−269:16 name xs
1709+271:16 name xs
1702−269:18 tight glyph ]
1710+271:18 tight glyph ]
1703−269:20 glyph ^-
1711+271:20 glyph ^-
1704−269:23 glyph (
1712+271:23 glyph (
1705−269:24 tight name list
1713+271:24 tight name list
1706−269:29 tvar A
1714+271:29 tvar A
1707−269:30 tight glyph )
1715+271:30 tight glyph )
1708−270:9 INDENT
1716+272:9 INDENT
1709−270:9 glyph ?-
1717+272:9 glyph ?-
1710−270:12 name xs
1718+272:12 name xs
1711−271:11 INDENT
1719+273:11 INDENT
1712−271:11 lit ~
1720+273:11 lit ~
1713−271:13 lit ~
1721+273:13 lit ~
1714−272:11 NEWLINE
1722+274:11 NEWLINE
1715−272:11 glyph [
1723+274:11 glyph [
1716−272:12 tight name item
1724+274:12 tight name item
1717−272:17 name rest
1725+274:17 name rest
1718−272:21 tight glyph ]
1726+274:21 tight glyph ]
1719−273:13 INDENT
1727+275:13 INDENT
1720−273:13 glyph ?-
1728+275:13 glyph ?-
1721−273:16 name rest
1729+275:16 name rest
1722−274:15 INDENT
1730+276:15 INDENT
1723−274:15 lit ~
1731+276:15 lit ~
1724−274:17 glyph [
1732+276:17 glyph [
1725−274:18 tight name item
1733+276:18 tight name item
1726−274:23 lit ~
1734+276:23 lit ~
1727−274:24 tight glyph ]
1735+276:24 tight glyph ]
1728−275:15 NEWLINE
1736+277:15 NEWLINE
1729−275:15 glyph [
1737+277:15 glyph [
1730−275:16 tight name next
1738+277:16 tight name next
1731−275:21 name more
1739+277:21 name more
1732−275:25 tight glyph ]
1740+277:25 tight glyph ]
1733−275:27 glyph [
1741+277:27 glyph [
1734−275:28 tight name item
1742+277:28 tight name item
1735−275:33 glyph [
1743+277:33 glyph [
1736−275:34 tight name separator
1744+277:34 tight name separator
1737−275:44 glyph (
1745+277:44 glyph (
1738−275:45 tight name join
1746+277:45 tight name join
1739−275:50 name separator
1747+277:50 name separator
1740−275:60 name rest
1748+277:60 name rest
1741−275:64 tight glyph )
1749+277:64 tight glyph )
1742−275:65 tight glyph ]
1750+277:65 tight glyph ]
1743−275:66 tight glyph ]
1751+277:66 tight glyph ]
1744−277:1 DEDENT
1752+279:1 DEDENT
1745−277:1 DEDENT
1753+279:1 DEDENT
1746−277:1 DEDENT
1754+279:1 DEDENT
1747−277:1 DEDENT
1755+279:1 DEDENT
1748−277:1 DEDENT
1756+279:1 DEDENT
1749−277:1 DEDENT
1757+279:1 DEDENT
1750−277:1 NEWLINE
1758+279:1 NEWLINE
1751−277:1 glyph ++
1759+279:1 glyph ++
1752−277:4 name snip
1760+279:4 name snip
1753−277:9 glyph |=
1761+279:9 glyph |=
1754−277:12 name xs
1762+279:12 name xs
1755−277:14 tight glyph =
1763+279:14 tight glyph =
1756−277:15 tight glyph (
1764+279:15 tight glyph (
1757−277:16 tight name list
1765+279:16 tight name list
1758−277:21 tvar A
1766+279:21 tvar A
1759−277:22 tight glyph )
1767+279:22 tight glyph )
1760−278:3 INDENT
1768+280:3 INDENT
1761−278:3 glyph ^-
1769+280:3 glyph ^-
1762−278:6 glyph (
1770+280:6 glyph (
1763−278:7 tight name list
1771+280:7 tight name list
1764−278:12 tvar A
1772+280:12 tvar A
1765−278:13 tight glyph )
1773+280:13 tight glyph )
1766−279:5 INDENT
1774+281:5 INDENT
1767−279:5 glyph ?-
1775+281:5 glyph ?-
1768−279:8 name xs
1776+281:8 name xs
1769−280:7 INDENT
1777+282:7 INDENT
1770−280:7 lit ~
1778+282:7 lit ~
1771−280:9 lit ~
1779+282:9 lit ~
1772−281:7 NEWLINE
1780+283:7 NEWLINE
1773−281:7 glyph [
1781+283:7 glyph [
1774−281:8 tight name item
1782+283:8 tight name item
1775−281:13 name rest
1783+283:13 name rest
1776−281:17 tight glyph ]
1784+283:17 tight glyph ]
1777−282:9 INDENT
1785+284:9 INDENT
1778−282:9 glyph ?-
1786+284:9 glyph ?-
1779−282:12 name rest
1787+284:12 name rest
1780−283:11 INDENT
1788+285:11 INDENT
1781−283:11 lit ~
1789+285:11 lit ~
1782−283:13 lit ~
1790+285:13 lit ~
1783−284:11 NEWLINE
1791+286:11 NEWLINE
1784−284:11 glyph [
1792+286:11 glyph [
1785−284:12 tight name next
1793+286:12 tight name next
1786−284:17 name more
1794+286:17 name more
1787−284:21 tight glyph ]
1795+286:21 tight glyph ]
1788−284:23 glyph [
1796+286:23 glyph [
1789−284:24 tight name item
1797+286:24 tight name item
1790−284:29 glyph (
1798+286:29 glyph (
1791−284:30 tight name snip
1799+286:30 tight name snip
1792−284:35 name rest
1800+286:35 name rest
1793−284:39 tight glyph )
1801+286:39 tight glyph )
1794−284:40 tight glyph ]
1802+286:40 tight glyph ]
1795−286:1 DEDENT
1803+288:1 DEDENT
1796−286:1 DEDENT
1804+288:1 DEDENT
1797−286:1 DEDENT
1805+288:1 DEDENT
1798−286:1 DEDENT
1806+288:1 DEDENT
1799−286:1 DEDENT
1807+288:1 DEDENT
1800−286:1 NEWLINE
1808+288:1 NEWLINE
1801−286:1 glyph ++
1809+288:1 glyph ++
1802−286:4 name rear
1810+288:4 name rear
1803−286:9 glyph |=
1811+288:9 glyph |=
1804−286:12 name xs
1812+288:12 name xs
1805−286:14 tight glyph =
1813+288:14 tight glyph =
1806−286:15 tight glyph (
1814+288:15 tight glyph (
1807−286:16 tight name list
1815+288:16 tight name list
1808−286:21 tvar A
1816+288:21 tvar A
1809−286:22 tight glyph )
1817+288:22 tight glyph )
1810−287:3 INDENT
1818+289:3 INDENT
1811−287:3 glyph ?-
1819+289:3 glyph ?-
1812−287:6 name xs
1820+289:6 name xs
1813−288:5 INDENT
1821+290:5 INDENT
1814−288:5 lit ~
1822+290:5 lit ~
1815−288:7 glyph !!
1823+290:7 glyph !!
1816−289:5 NEWLINE
1824+291:5 NEWLINE
1817−289:5 glyph [
1825+291:5 glyph [
1818−289:6 tight name item
1826+291:6 tight name item
1819−289:11 name rest
1827+291:11 name rest
1820−289:15 tight glyph ]
1828+291:15 tight glyph ]
1821−290:7 INDENT
1829+292:7 INDENT
1822−290:7 glyph ?-
1830+292:7 glyph ?-
1823−290:10 name rest
1831+292:10 name rest
1824−291:9 INDENT
1832+293:9 INDENT
1825−291:9 lit ~
1833+293:9 lit ~
1826−291:11 name item
1834+293:11 name item
1827−292:9 NEWLINE
1835+294:9 NEWLINE
1828−292:9 glyph [
1836+294:9 glyph [
1829−292:10 tight name next
1837+294:10 tight name next
1830−292:15 name more
1838+294:15 name more
1831−292:19 tight glyph ]
1839+294:19 tight glyph ]
1832−292:21 glyph (
1840+294:21 glyph (
1833−292:22 tight name rear
1841+294:22 tight name rear
1834−292:27 name rest
1842+294:27 name rest
1835−292:31 tight glyph )
1843+294:31 tight glyph )
1836−294:1 DEDENT
1844+296:1 DEDENT
1837−294:1 DEDENT
1845+296:1 DEDENT
1838−294:1 DEDENT
1846+296:1 DEDENT
1839−294:1 DEDENT
1847+296:1 DEDENT
1840−294:1 NEWLINE
1848+296:1 NEWLINE
1841−294:1 glyph ++
1849+296:1 glyph ++
1842−294:4 name cork
1850+296:4 name cork
1843−294:9 glyph |=
1851+296:9 glyph |=
1844−294:12 name gates
1852+296:12 name gates
1845−294:17 tight glyph =
1853+296:17 tight glyph =
1846−294:18 tight glyph [
1854+296:18 tight glyph [
1847−294:19 tight glyph $-(
1855+296:19 tight glyph $-(
1848−294:22 tight tvar A
1856+296:22 tight tvar A
1849−294:24 tvar B
1857+296: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
1873296:25 tight glyph )
1858296:25 tight glyph )
1859+296:27 glyph $-(
1860+296:30 tight tvar B
1861+296:32 tvar C
1874−296:26 tight glyph )
1862+296:33 tight glyph )
1875−298:1 DEDENT
1863+296:34 tight glyph ]
1876−298:1 DEDENT
1864+297:3 INDENT
1877−298:1 NEWLINE
1865+297:3 glyph ?-
1878−298:1 glyph ++
1866+297:6 name gates
1867+298:5 INDENT
1868+298:5 glyph [
1869+298:6 tight name f
1879−298:4 name corl
1870+298:8 name g
1871+298:9 tight glyph ]
1880−298:9 glyph |=
1872+298:11 glyph |=
1881−298:12 name gates
1873+298:14 name x
1882−298:17 tight glyph =
1874+298:15 tight glyph =
1875+298:16 tight tvar A
1883−298:18 tight glyph [
1876+298:18 glyph (
1884−298:19 tight glyph $-(
1877+298:19 tight name g
1878+298:21 glyph (
1885−298:22 tight tvar B
1879+298:22 tight name f
1886−298:24 tvar C
1880+298:24 name x
1887298:25 tight glyph )
1881298:25 tight glyph )
1888−298:27 glyph $-(
1889−298:30 tight tvar A
1890−298:32 tvar B
1891−298:33 tight glyph )
1882+298:26 tight glyph )
1892−298:34 tight glyph ]
1883+300:1 DEDENT
1893−299:3 INDENT
1884+300:1 DEDENT
1894−299:3 glyph ?-
1885+300:1 NEWLINE
1895−299:6 name gates
1896−300:5 INDENT
1897−300:5 glyph [
1886+300:1 glyph ++
1898−300:6 tight name f
1899−300:8 name g
1887+300:4 name corl
1900−300:9 tight glyph ]
1901−300:11 glyph |=
1888+300:9 glyph |=
1902−300:14 name x
1889+300:12 name gates
1903−300:15 tight glyph =
1890+300:17 tight glyph =
1904−300:16 tight tvar A
1905−300:18 glyph (
1891+300:18 tight glyph [
1906−300:19 tight name f
1892+300:19 tight glyph $-(
1907−300:21 glyph (
1908−300:22 tight name g
1893+300:22 tight tvar B
1909−300:24 name x
1894+300:24 tvar C
1910300:25 tight glyph )
1895300:25 tight glyph )
1911−300:26 tight glyph )
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 )
1912−302:1 DEDENT
1920+304:1 DEDENT
1913−302:1 DEDENT
1921+304:1 DEDENT
1914−302:1 NEWLINE
1922+304:1 NEWLINE
1915−302:1 glyph ++
1923+304:1 glyph ++
1916−302:4 name cury
1924+304:4 name cury
1917−302:9 glyph |=
1925+304:9 glyph |=
1918−302:12 name args
1926+304:12 name args
1919−302:16 tight glyph =
1927+304:16 tight glyph =
1920−302:17 tight glyph [
1928+304:17 tight glyph [
1921−302:18 tight glyph $-(
1929+304:18 tight glyph $-(
1922−302:21 tight glyph [
1930+304:21 tight glyph [
1923−302:22 tight tvar A
1931+304:22 tight tvar A
1924−302:24 tvar B
1932+304:24 tvar B
1925−302:25 tight glyph ]
1933+304:25 tight glyph ]
1926−302:27 tvar C
1934+304:27 tvar C
1927−302:28 tight glyph )
1935+304:28 tight glyph )
1928−302:30 tvar A
1936+304:30 tvar A
1929−302:31 tight glyph ]
1937+304:31 tight glyph ]
1930−303:3 INDENT
1938+305:3 INDENT
1931−303:3 glyph ?-
1939+305:3 glyph ?-
1932−303:6 name args
1940+305:6 name args
1933−304:5 INDENT
1941+306:5 INDENT
1934−304:5 glyph [
1942+306:5 glyph [
1935−304:6 tight name f
1943+306:6 tight name f
1936−304:8 name a
1944+306:8 name a
1937−304:9 tight glyph ]
1945+306:9 tight glyph ]
1938−304:11 glyph |=
1946+306:11 glyph |=
1939−304:14 name b
1947+306:14 name b
1940−304:15 tight glyph =
1948+306:15 tight glyph =
1941−304:16 tight tvar B
1949+306:16 tight tvar B
1942−304:18 glyph (
1950+306:18 glyph (
1943−304:19 tight name f
1951+306:19 tight name f
1944−304:21 name a
1952+306:21 name a
1945−304:23 name b
1953+306:23 name b
1946−304:24 tight glyph )
1954+306:24 tight glyph )
1947−306:1 DEDENT
1955+308:1 DEDENT
1948−306:1 DEDENT
1956+308:1 DEDENT
1949−306:1 NEWLINE
1957+308:1 NEWLINE
1950−306:1 glyph ++
1958+308:1 glyph ++
1951−306:4 name curr
1959+308:4 name curr
1952−306:9 glyph |=
1960+308:9 glyph |=
1953−306:12 name args
1961+308:12 name args
1954−306:16 tight glyph =
1962+308:16 tight glyph =
1955−306:17 tight glyph [
1963+308:17 tight glyph [
1956−306:18 tight glyph $-(
1964+308:18 tight glyph $-(
1957−306:21 tight glyph [
1965+308:21 tight glyph [
1958−306:22 tight tvar A
1966+308:22 tight tvar A
1959−306:24 tvar B
1967+308:24 tvar B
1960−306:25 tight glyph ]
1968+308:25 tight glyph ]
1961−306:27 tvar C
1969+308:27 tvar C
1962−306:28 tight glyph )
1970+308:28 tight glyph )
1963−306:30 tvar B
1971+308:30 tvar B
1964−306:31 tight glyph ]
1972+308:31 tight glyph ]
1965−307:3 INDENT
1973+309:3 INDENT
1966−307:3 glyph ?-
1974+309:3 glyph ?-
1967−307:6 name args
1975+309:6 name args
1968−308:5 INDENT
1976+310:5 INDENT
1969−308:5 glyph [
1977+310:5 glyph [
1970−308:6 tight name f
1978+310:6 tight name f
1971−308:8 name b
1979+310:8 name b
1972−308:9 tight glyph ]
1980+310:9 tight glyph ]
1973−308:11 glyph |=
1981+310:11 glyph |=
1974−308:14 name a
1982+310:14 name a
1975−308:15 tight glyph =
1983+310:15 tight glyph =
1976−308:16 tight tvar A
1984+310:16 tight tvar A
1977−308:18 glyph (
1985+310:18 glyph (
1978−308:19 tight name f
1986+310:19 tight name f
1979−308:21 name a
1987+310:21 name a
1980−308:23 name b
1988+310:23 name b
1981−308:24 tight glyph )
1989+310:24 tight glyph )
1982−310:1 DEDENT
1990+312:1 DEDENT
1983−310:1 DEDENT
1991+312:1 DEDENT
1984−310:1 NEWLINE
1992+312:1 NEWLINE
1985−310:1 glyph +$
1993+312:1 glyph +$
1986−310:4 name cmd
1994+312:4 name cmd
1987−310:8 glyph |$
1995+312:8 glyph |$
1988−310:11 glyph [
1996+312:11 glyph [
1989−310:12 tight tvar M
1997+312:12 tight tvar M
1990−310:13 tight glyph ]
1998+312:13 tight glyph ]
1991−311:3 INDENT
1999+313: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
2015313:3 glyph [
2000313:3 glyph [
2016−313:4 tight lit %wait
2001+313:4 tight lit %poke
2017−313:10 name gap
2002+313:10 name p
2003+313:11 tight glyph =
2004+313:12 tight name poke
2005+313:17 name reply
2018−313:13 tight glyph =
2006+313:22 tight glyph =
2019−313:14 tight aura @dr
2007+313:23 tight glyph $-(
2020−313:18 name msg
2008+313:26 tight glyph (
2009+313:27 tight name unit
2010+313:32 aura @t
2021−313:21 tight glyph =
2011+313:34 tight glyph )
2022−313:22 tight tvar M
2012+313:36 tvar M
2013+313:37 tight glyph )
2023−313:23 tight glyph ]
2014+313:38 tight glyph ]
2024314:3 NEWLINE
2015314:3 NEWLINE
2025314:3 glyph [
2016314:3 glyph [
2026−314:4 tight lit %now
2017+314:4 tight lit %go
2027−314:9 name reply
2018+314:8 name url
2028−314:14 tight glyph =
2019+314:11 tight glyph =
2029−314:15 tight glyph $-(
2030−314:18 tight aura @da
2020+314:12 tight aura @t
2031−314:22 tvar M
2032−314:23 tight glyph )
2033−314:24 tight glyph ]
2021+314:14 tight glyph ]
2034315:3 NEWLINE
2022315:3 NEWLINE
2035315:3 glyph [
2023315:3 glyph [
2036−315:4 tight lit %who
2024+315:4 tight lit %wait
2037−315:9 name reply
2025+315:10 name gap
2026+315:13 tight glyph =
2038−315:14 tight glyph =
2027+315:14 tight aura @dr
2039−315:15 tight glyph $-(
2028+315:18 name msg
2040−315:18 tight aura @p
2041−315:21 tvar M
2029+315:21 tight glyph =
2042−315:22 tight glyph )
2030+315:22 tight tvar M
2043315:23 tight glyph ]
2031315:23 tight glyph ]
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 ]
2044−315:24 DEDENT
2052+317:24 DEDENT
2045−315:24 NEWLINE
2053+317:24 NEWLINE
tests/golden/prelude-unit-list-transforms/tree.txt+323−317
@@ -567,323 +567,329 @@
567 (apply 216:18 list (tvar 216:24 A))
567 (apply 216:18 list (tvar 216:24 A))
568 (fn 216:27 (tvar 216:30 A) (flag 216:32))))
568 (fn 216:27 (tvar 216:30 A) (flag 216:32))))
569 (body 217:3
569 (body 217:3
570− (branch 217:3
570+ (cast 217:3
571− (wing 217:6 args)
571+ (flag 217:6)
572− (arm 218:5
572+ (body 218:5
573+ (branch 218:5
574+ (wing 218:8 args)
575+ (arm 219:7
573− (cell 218:5 (bind 218:6 xs) (bind 218:9 predicate))
576+ (cell 219:7 (bind 219:8 xs) (bind 219:11 predicate))
574− (body 219:7
577+ (body 220:9
575− (branch 219:7
578+ (branch 220:9
576− (wing 219:10 xs)
579+ (wing 220:12 xs)
577− (arm 220:9 (lit 220:9 ~) (lit 220:11 %.y))
580+ (arm 221:11 (lit 221:11 ~) (lit 221:13 %.y))
578− (arm 221:9
581+ (arm 222:11
579− (cell 221:9 (bind 221:10 item) (bind 221:15 rest))
582+ (cell 222:11 (bind 222:12 item) (bind 222:17 rest))
580− (body 222:11
583+ (body 223:13
581− (branch 222:11
584+ (branch 223:13
582− (group 222:14
585+ (group 223:16
583− (call 222:15 (wing 222:15 predicate) (wing 222:25 item)))
586+ (call 223:17 (wing 223:17 predicate) (wing 223:27 item)))
584− (arm 223:13
587+ (arm 224:15
585− (lit 223:13 %.y)
588+ (lit 224:15 %.y)
586− (group 223:17
589+ (group 224:19
587− (call 223:18 (wing 223:18 levy) (wing 223:23 rest) (wing 223:28 predicate))))
590+ (call 224:20 (wing 224:20 levy) (wing 224:25 rest) (wing 224:30 predicate))))
588− (arm 224:13 (lit 224:13 %.n) (lit 224:17 %.n))))))))))))
591+ (arm 225:15 (lit 225:15 %.n) (lit 225:19 %.n))))))))))))))
589− (value 226:1 lien
592+ (value 227:1 lien
590− (gate 226:9
593+ (gate 227:9
591− (face 226:12 args
594+ (face 227:12 args
592− (cell 226:17
595+ (cell 227:17
593− (apply 226:18 list (tvar 226:24 A))
596+ (apply 227:18 list (tvar 227:24 A))
594− (fn 226:27 (tvar 226:30 A) (flag 226:32))))
597+ (fn 227:27 (tvar 227:30 A) (flag 227:32))))
595− (body 227:3
598+ (body 228:3
596− (branch 227:3
599+ (cast 228:3
597− (wing 227:6 args)
600+ (flag 228:6)
598− (arm 228:5
601+ (body 229:5
602+ (branch 229:5
603+ (wing 229:8 args)
604+ (arm 230:7
599− (cell 228:5 (bind 228:6 xs) (bind 228:9 predicate))
605+ (cell 230:7 (bind 230:8 xs) (bind 230:11 predicate))
600− (body 229:7
606+ (body 231:9
601− (branch 229:7
607+ (branch 231:9
602− (wing 229:10 xs)
608+ (wing 231:12 xs)
603− (arm 230:9 (lit 230:9 ~) (lit 230:11 %.n))
609+ (arm 232:11 (lit 232:11 ~) (lit 232:13 %.n))
604− (arm 231:9
610+ (arm 233:11
605− (cell 231:9 (bind 231:10 item) (bind 231:15 rest))
611+ (cell 233:11 (bind 233:12 item) (bind 233:17 rest))
606− (body 232:11
612+ (body 234:13
607− (branch 232:11
613+ (branch 234:13
608− (group 232:14
614+ (group 234:16
609− (call 232:15 (wing 232:15 predicate) (wing 232:25 item)))
615+ (call 234:17 (wing 234:17 predicate) (wing 234:27 item)))
610− (arm 233:13 (lit 233:13 %.y) (lit 233:17 %.y))
616+ (arm 235:15 (lit 235:15 %.y) (lit 235:19 %.y))
611− (arm 234:13
617+ (arm 236:15
612− (lit 234:13 %.n)
618+ (lit 236:15 %.n)
613− (group 234:17
619+ (group 236:19
614− (call 234:18 (wing 234:18 lien) (wing 234:23 rest) (wing 234:28 predicate))))))))))))))
620+ (call 236:20 (wing 236:20 lien) (wing 236:25 rest) (wing 236:30 predicate))))))))))))))))
615− (value 236:1 roll
621+ (value 238:1 roll
616− (gate 236:9
622+ (gate 238:9
617− (face 236:12 args
623+ (face 238:12 args
618− (cell 236:17
624+ (cell 238:17
619− (apply 236:18 list (tvar 236:24 A))
625+ (apply 238:18 list (tvar 238:24 A))
620− (tvar 236:27 B)
626+ (tvar 238:27 B)
621− (fn 236:29
627+ (fn 238:29
622− (cell 236:32 (tvar 236:33 A) (tvar 236:35 B))
628+ (cell 238:32 (tvar 238:33 A) (tvar 238:35 B))
623− (tvar 236:38 B))))
629+ (tvar 238:38 B))))
624− (body 237:3
630+ (body 239:3
625− (branch 237:3
631+ (branch 239:3
626− (wing 237:6 args)
632+ (wing 239:6 args)
627− (arm 238:5
633+ (arm 240:5
628− (cell 238:5 (bind 238:6 xs) (bind 238:9 start) (bind 238:15 combine))
634+ (cell 240:5 (bind 240:6 xs) (bind 240:9 start) (bind 240:15 combine))
629− (body 239:7
635+ (body 241:7
630− (branch 239:7
636+ (branch 241:7
631− (wing 239:10 xs)
637+ (wing 241:10 xs)
632− (arm 240:9 (lit 240:9 ~) (wing 240:11 start))
638+ (arm 242:9 (lit 242:9 ~) (wing 242:11 start))
633− (arm 241:9
639+ (arm 243:9
634− (cell 241:9 (bind 241:10 item) (bind 241:15 rest))
640+ (cell 243:9 (bind 243:10 item) (bind 243:15 rest))
635− (group 241:21
641+ (group 243:21
636− (call 241:22
642+ (call 243:22
637− (wing 241:22 roll)
643+ (wing 243:22 roll)
638− (wing 241:27 rest)
644+ (wing 243:27 rest)
639− (group 241:32
645+ (group 243:32
640− (call 241:33 (wing 241:33 combine) (wing 241:41 item) (wing 241:46 start)))
646+ (call 243:33 (wing 243:33 combine) (wing 243:41 item) (wing 243:46 start)))
641− (wing 241:53 combine)))))))))))
647+ (wing 243:53 combine)))))))))))
642− (value 243:1 reel
648+ (value 245:1 reel
643− (gate 243:9
649+ (gate 245:9
644− (face 243:12 args
650+ (face 245:12 args
645− (cell 243:17
651+ (cell 245:17
646− (apply 243:18 list (tvar 243:24 A))
652+ (apply 245:18 list (tvar 245:24 A))
647− (tvar 243:27 B)
653+ (tvar 245:27 B)
648− (fn 243:29
654+ (fn 245:29
649− (cell 243:32 (tvar 243:33 A) (tvar 243:35 B))
655+ (cell 245:32 (tvar 245:33 A) (tvar 245:35 B))
650− (tvar 243:38 B))))
656+ (tvar 245:38 B))))
651− (body 244:3
657+ (body 246:3
652− (branch 244:3
658+ (branch 246:3
653− (wing 244:6 args)
659+ (wing 246:6 args)
654− (arm 245:5
660+ (arm 247:5
655− (cell 245:5 (bind 245:6 xs) (bind 245:9 start) (bind 245:15 combine))
661+ (cell 247:5 (bind 247:6 xs) (bind 247:9 start) (bind 247:15 combine))
656− (body 246:7
662+ (body 248:7
657− (branch 246:7
663+ (branch 248:7
658− (wing 246:10 xs)
664+ (wing 248:10 xs)
659− (arm 247:9 (lit 247:9 ~) (wing 247:11 start))
665+ (arm 249:9 (lit 249:9 ~) (wing 249:11 start))
660− (arm 248:9
666+ (arm 250:9
661− (cell 248:9 (bind 248:10 item) (bind 248:15 rest))
667+ (cell 250:9 (bind 250:10 item) (bind 250:15 rest))
662− (group 248:21
668+ (group 250:21
663− (call 248:22
669+ (call 250:22
664− (wing 248:22 combine)
670+ (wing 250:22 combine)
665− (wing 248:30 item)
671+ (wing 250:30 item)
666− (group 248:35
672+ (group 250:35
667− (call 248:36 (wing 248:36 reel) (wing 248:41 rest) (wing 248:46 start) (wing 248:52 combine)))))))))))))
673+ (call 250:36 (wing 250:36 reel) (wing 250:41 rest) (wing 250:46 start) (wing 250:52 combine)))))))))))))
668− (value 250:1 flit
674+ (value 252:1 flit
669− (gate 250:9
675+ (gate 252:9
670− (face 250:12 predicate
676+ (face 252:12 predicate
671− (fn 250:22 (tvar 250:25 A) (flag 250:27)))
677+ (fn 252:22 (tvar 252:25 A) (flag 252:27)))
672− (body 251:3
678+ (body 253:3
673− (gate 251:3
679+ (gate 253:3
674− (face 251:6 value (tvar 251:12 A))
680+ (face 253:6 value (tvar 253:12 A))
675− (body 252:5
681+ (body 254:5
676− (cast 252:5
682+ (cast 254:5
677− (apply 252:8 unit (tvar 252:14 A))
683+ (apply 254:8 unit (tvar 254:14 A))
678− (body 253:7
684+ (body 255:7
679− (branch 253:7
685+ (branch 255:7
680− (group 253:10
686+ (group 255:10
681− (call 253:11 (wing 253:11 predicate) (wing 253:21 value)))
687+ (call 255:11 (wing 255:11 predicate) (wing 255:21 value)))
682− (arm 254:9
688+ (arm 256:9
683− (lit 254:9 %.y)
689+ (lit 256:9 %.y)
684− (unit 254:13 (wing 254:14 value)))
690+ (unit 256:13 (wing 256:14 value)))
685− (arm 255:9 (lit 255:9 %.n) (lit 255:13 ~))))))))))
691+ (arm 257:9 (lit 257:9 %.n) (lit 257:13 ~))))))))))
686− (value 257:1 murn
692+ (value 259:1 murn
687− (gate 257:9
693+ (gate 259:9
688− (face 257:12 args
694+ (face 259:12 args
689− (cell 257:17
695+ (cell 259:17
690− (apply 257:18 list (tvar 257:24 A))
696+ (apply 259:18 list (tvar 259:24 A))
691− (fn 257:27
697+ (fn 259:27
692− (tvar 257:30 A)
698+ (tvar 259:30 A)
693− (apply 257:32 unit (tvar 257:38 B)))))
699+ (apply 259:32 unit (tvar 259:38 B)))))
694− (body 258:3
700+ (body 260:3
695− (branch 258:3
701+ (branch 260:3
696− (wing 258:6 args)
702+ (wing 260:6 args)
697− (arm 259:5
703+ (arm 261:5
698− (cell 259:5 (bind 259:6 xs) (bind 259:9 f))
704+ (cell 261:5 (bind 261:6 xs) (bind 261:9 f))
699− (cast 259:12
705+ (cast 261:12
700− (apply 259:15 list (tvar 259:21 B))
706+ (apply 261:15 list (tvar 261:21 B))
701− (body 260:9
707+ (body 262:9
702− (branch 260:9
708+ (branch 262:9
703− (wing 260:12 xs)
709+ (wing 262:12 xs)
704− (arm 261:11 (lit 261:11 ~) (lit 261:13 ~))
710+ (arm 263:11 (lit 263:11 ~) (lit 263:13 ~))
705− (arm 262:11
711+ (arm 264:11
706− (cell 262:11 (bind 262:12 item) (bind 262:17 rest))
712+ (cell 264:11 (bind 264:12 item) (bind 264:17 rest))
707− (body 263:13
713+ (body 265:13
708− (branch 263:13
714+ (branch 265:13
709− (group 263:16
715+ (group 265:16
710− (call 263:17 (wing 263:17 f) (wing 263:19 item)))
716+ (call 265:17 (wing 265:17 f) (wing 265:19 item)))
711− (arm 264:15
717+ (arm 266:15
712− (lit 264:15 ~)
718+ (lit 266:15 ~)
713− (group 264:17
719+ (group 266:17
714− (call 264:18 (wing 264:18 murn) (wing 264:23 rest) (wing 264:28 f))))
720+ (call 266:18 (wing 266:18 murn) (wing 266:23 rest) (wing 266:28 f))))
715− (arm 265:15
721+ (arm 267:15
716− (cell 265:15 (lit 265:16 ~) (bind 265:18 value))
722+ (cell 267:15 (lit 267:16 ~) (bind 267:18 value))
717− (tuple 265:25
723+ (tuple 267:25
718− (wing 265:26 value)
724+ (wing 267:26 value)
719− (group 265:32
725+ (group 267:32
720− (call 265:33 (wing 265:33 murn) (wing 265:38 rest) (wing 265:43 f))))))))))))))))
726+ (call 267:33 (wing 267:33 murn) (wing 267:38 rest) (wing 267:43 f))))))))))))))))
721− (value 267:1 join
727+ (value 269:1 join
722− (gate 267:9
728+ (gate 269:9
723− (face 267:12 args
729+ (face 269:12 args
724− (cell 267:17
730+ (cell 269:17
725− (tvar 267:18 A)
731+ (tvar 269:18 A)
726− (apply 267:20 list (tvar 267:26 A))))
732+ (apply 269:20 list (tvar 269:26 A))))
727− (body 268:3
733+ (body 270:3
728− (branch 268:3
734+ (branch 270:3
729− (wing 268:6 args)
735+ (wing 270:6 args)
730− (arm 269:5
736+ (arm 271:5
731− (cell 269:5 (bind 269:6 separator) (bind 269:16 xs))
737+ (cell 271:5 (bind 271:6 separator) (bind 271:16 xs))
732− (cast 269:20
738+ (cast 271:20
733− (apply 269:23 list (tvar 269:29 A))
739+ (apply 271:23 list (tvar 271:29 A))
734− (body 270:9
740+ (body 272:9
735− (branch 270:9
741+ (branch 272:9
736− (wing 270:12 xs)
742+ (wing 272:12 xs)
737− (arm 271:11 (lit 271:11 ~) (lit 271:13 ~))
743+ (arm 273:11 (lit 273:11 ~) (lit 273:13 ~))
738− (arm 272:11
744+ (arm 274:11
739− (cell 272:11 (bind 272:12 item) (bind 272:17 rest))
745+ (cell 274:11 (bind 274:12 item) (bind 274:17 rest))
740− (body 273:13
746+ (body 275:13
741− (branch 273:13
747+ (branch 275:13
742− (wing 273:16 rest)
748+ (wing 275:16 rest)
743− (arm 274:15
749+ (arm 276:15
744− (lit 274:15 ~)
750+ (lit 276:15 ~)
745− (tuple 274:17 (wing 274:18 item) (lit 274:23 ~)))
751+ (tuple 276:17 (wing 276:18 item) (lit 276:23 ~)))
746− (arm 275:15
752+ (arm 277:15
747− (cell 275:15 (bind 275:16 next) (bind 275:21 more))
753+ (cell 277:15 (bind 277:16 next) (bind 277:21 more))
748− (tuple 275:27
754+ (tuple 277:27
749− (wing 275:28 item)
755+ (wing 277:28 item)
750− (tuple 275:33
756+ (tuple 277:33
751− (wing 275:34 separator)
757+ (wing 277:34 separator)
752− (group 275:44
758+ (group 277:44
753− (call 275:45 (wing 275:45 join) (wing 275:50 separator) (wing 275:60 rest)))))))))))))))))
759+ (call 277:45 (wing 277:45 join) (wing 277:50 separator) (wing 277:60 rest)))))))))))))))))
754− (value 277:1 snip
760+ (value 279:1 snip
755− (gate 277:9
761+ (gate 279:9
756− (face 277:12 xs
762+ (face 279:12 xs
757− (apply 277:15 list (tvar 277:21 A)))
763+ (apply 279:15 list (tvar 279:21 A)))
758− (body 278:3
764+ (body 280:3
759− (cast 278:3
765+ (cast 280:3
760− (apply 278:6 list (tvar 278:12 A))
766+ (apply 280:6 list (tvar 280:12 A))
761− (body 279:5
767+ (body 281:5
762− (branch 279:5
768+ (branch 281:5
763− (wing 279:8 xs)
769+ (wing 281:8 xs)
764− (arm 280:7 (lit 280:7 ~) (lit 280:9 ~))
770+ (arm 282:7 (lit 282:7 ~) (lit 282:9 ~))
765− (arm 281:7
771+ (arm 283:7
766− (cell 281:7 (bind 281:8 item) (bind 281:13 rest))
772+ (cell 283:7 (bind 283:8 item) (bind 283:13 rest))
767− (body 282:9
773+ (body 284:9
768− (branch 282:9
774+ (branch 284:9
769− (wing 282:12 rest)
775+ (wing 284:12 rest)
770− (arm 283:11 (lit 283:11 ~) (lit 283:13 ~))
776+ (arm 285:11 (lit 285:11 ~) (lit 285:13 ~))
771− (arm 284:11
777+ (arm 286:11
772− (cell 284:11 (bind 284:12 next) (bind 284:17 more))
778+ (cell 286:11 (bind 286:12 next) (bind 286:17 more))
773− (tuple 284:23
779+ (tuple 286:23
774− (wing 284:24 item)
780+ (wing 286:24 item)
775− (group 284:29
781+ (group 286:29
776− (call 284:30 (wing 284:30 snip) (wing 284:35 rest))))))))))))))
782+ (call 286:30 (wing 286:30 snip) (wing 286:35 rest))))))))))))))
777− (value 286:1 rear
783+ (value 288:1 rear
778− (gate 286:9
784+ (gate 288:9
779− (face 286:12 xs
785+ (face 288:12 xs
780− (apply 286:15 list (tvar 286:21 A)))
786+ (apply 288:15 list (tvar 288:21 A)))
781− (body 287:3
787+ (body 289:3
782− (branch 287:3
788+ (branch 289:3
783− (wing 287:6 xs)
789+ (wing 289:6 xs)
784− (arm 288:5 (lit 288:5 ~) (crash 288:7))
790+ (arm 290:5 (lit 290:5 ~) (crash 290:7))
785− (arm 289:5
791+ (arm 291:5
786− (cell 289:5 (bind 289:6 item) (bind 289:11 rest))
792+ (cell 291:5 (bind 291:6 item) (bind 291:11 rest))
787− (body 290:7
793+ (body 292:7
788− (branch 290:7
794+ (branch 292:7
789− (wing 290:10 rest)
795+ (wing 292:10 rest)
790− (arm 291:9 (lit 291:9 ~) (wing 291:11 item))
796+ (arm 293:9 (lit 293:9 ~) (wing 293:11 item))
791− (arm 292:9
797+ (arm 294:9
792− (cell 292:9 (bind 292:10 next) (bind 292:15 more))
798+ (cell 294:9 (bind 294:10 next) (bind 294:15 more))
793− (group 292:21
799+ (group 294:21
794− (call 292:22 (wing 292:22 rear) (wing 292:27 rest)))))))))))
800+ (call 294:22 (wing 294:22 rear) (wing 294:27 rest)))))))))))
795− (value 294:1 cork
801+ (value 296:1 cork
796− (gate 294:9
802+ (gate 296:9
797− (face 294:12 gates
803+ (face 296:12 gates
798− (cell 294:18
804+ (cell 296:18
799− (fn 294:19 (tvar 294:22 A) (tvar 294:24 B))
805+ (fn 296:19 (tvar 296:22 A) (tvar 296:24 B))
800− (fn 294:27 (tvar 294:30 B) (tvar 294:32 C))))
806+ (fn 296:27 (tvar 296:30 B) (tvar 296:32 C))))
801− (body 295:3
807+ (body 297:3
802− (branch 295:3
808+ (branch 297:3
803− (wing 295:6 gates)
809+ (wing 297:6 gates)
804− (arm 296:5
810+ (arm 298:5
805− (cell 296:5 (bind 296:6 f) (bind 296:8 g))
811+ (cell 298:5 (bind 298:6 f) (bind 298:8 g))
806− (gate 296:11
812+ (gate 298:11
807− (face 296:14 x (tvar 296:16 A))
813+ (face 298:14 x (tvar 298:16 A))
808− (group 296:18
814+ (group 298:18
809− (call 296:19
815+ (call 298:19
810− (wing 296:19 g)
816+ (wing 298:19 g)
811− (group 296:21
817+ (group 298:21
812− (call 296:22 (wing 296:22 f) (wing 296:24 x)))))))))))
818+ (call 298:22 (wing 298:22 f) (wing 298:24 x)))))))))))
813− (value 298:1 corl
819+ (value 300:1 corl
814− (gate 298:9
820+ (gate 300:9
815− (face 298:12 gates
821+ (face 300:12 gates
816− (cell 298:18
822+ (cell 300:18
817− (fn 298:19 (tvar 298:22 B) (tvar 298:24 C))
823+ (fn 300:19 (tvar 300:22 B) (tvar 300:24 C))
818− (fn 298:27 (tvar 298:30 A) (tvar 298:32 B))))
824+ (fn 300:27 (tvar 300:30 A) (tvar 300:32 B))))
819− (body 299:3
825+ (body 301:3
820− (branch 299:3
826+ (branch 301:3
821− (wing 299:6 gates)
827+ (wing 301:6 gates)
822− (arm 300:5
828+ (arm 302:5
823− (cell 300:5 (bind 300:6 f) (bind 300:8 g))
829+ (cell 302:5 (bind 302:6 f) (bind 302:8 g))
824− (gate 300:11
830+ (gate 302:11
825− (face 300:14 x (tvar 300:16 A))
831+ (face 302:14 x (tvar 302:16 A))
826− (group 300:18
832+ (group 302:18
827− (call 300:19
833+ (call 302:19
828− (wing 300:19 f)
834+ (wing 302:19 f)
829− (group 300:21
835+ (group 302:21
830− (call 300:22 (wing 300:22 g) (wing 300:24 x)))))))))))
836+ (call 302:22 (wing 302:22 g) (wing 302:24 x)))))))))))
831− (value 302:1 cury
837+ (value 304:1 cury
832− (gate 302:9
838+ (gate 304:9
833− (face 302:12 args
839+ (face 304:12 args
834− (cell 302:17
840+ (cell 304:17
835− (fn 302:18
841+ (fn 304:18
836− (cell 302:21 (tvar 302:22 A) (tvar 302:24 B))
842+ (cell 304:21 (tvar 304:22 A) (tvar 304:24 B))
837− (tvar 302:27 C))
843+ (tvar 304:27 C))
838− (tvar 302:30 A)))
844+ (tvar 304:30 A)))
839− (body 303:3
845+ (body 305:3
840− (branch 303:3
846+ (branch 305:3
841− (wing 303:6 args)
847+ (wing 305:6 args)
842− (arm 304:5
848+ (arm 306:5
843− (cell 304:5 (bind 304:6 f) (bind 304:8 a))
849+ (cell 306:5 (bind 306:6 f) (bind 306:8 a))
844− (gate 304:11
850+ (gate 306:11
845− (face 304:14 b (tvar 304:16 B))
851+ (face 306:14 b (tvar 306:16 B))
846− (group 304:18
852+ (group 306:18
847− (call 304:19 (wing 304:19 f) (wing 304:21 a) (wing 304:23 b)))))))))
853+ (call 306:19 (wing 306:19 f) (wing 306:21 a) (wing 306:23 b)))))))))
848− (value 306:1 curr
854+ (value 308:1 curr
849− (gate 306:9
855+ (gate 308:9
850− (face 306:12 args
856+ (face 308:12 args
851− (cell 306:17
857+ (cell 308:17
852− (fn 306:18
858+ (fn 308:18
853− (cell 306:21 (tvar 306:22 A) (tvar 306:24 B))
859+ (cell 308:21 (tvar 308:22 A) (tvar 308:24 B))
854− (tvar 306:27 C))
860+ (tvar 308:27 C))
855− (tvar 306:30 B)))
861+ (tvar 308:30 B)))
856− (body 307:3
862+ (body 309:3
857− (branch 307:3
863+ (branch 309:3
858− (wing 307:6 args)
864+ (wing 309:6 args)
859− (arm 308:5
865+ (arm 310:5
860− (cell 308:5 (bind 308:6 f) (bind 308:8 b))
866+ (cell 310:5 (bind 310:6 f) (bind 310:8 b))
861− (gate 308:11
867+ (gate 310:11
862− (face 308:14 a (tvar 308:16 A))
868+ (face 310:14 a (tvar 310:16 A))
863− (group 308:18
869+ (group 310:18
864− (call 308:19 (wing 308:19 f) (wing 308:21 a) (wing 308:23 b)))))))))
870+ (call 310:19 (wing 310:19 f) (wing 310:21 a) (wing 310:23 b)))))))))
865− (mold 310:1 cmd
871+ (mold 312:1 cmd
866− (generic 310:8 M
872+ (generic 312:8 M
867− (union 311:3
873+ (union 313: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)))
878 (cell 313:3
874 (cell 313:3
879− (const 313:4 %wait)
875+ (const 313:4 %poke)
880− (face 313:10 gap (aura 313:14 @dr))
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))
881− (face 313:18 msg (tvar 313:22 M)))
880+ (tvar 313:36 M))))
882 (cell 314:3
881 (cell 314:3
883− (const 314:4 %now)
882+ (const 314:4 %go)
884− (face 314:9 reply
883+ (face 314:8 url (aura 314:12 @t)))
885− (fn 314:15 (aura 314:18 @da) (tvar 314:22 M))))
886 (cell 315:3
884 (cell 315:3
887− (const 315:4 %who)
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)
888− (face 315:9 reply
894+ (face 317:9 reply
889− (fn 315:15 (aura 315:18 @p) (tvar 315:21 M))))))))
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 @@
1source: Overview, Importing Hoon types: Hoon `$%` imports as a union if its cases differ as nouns; unused molds are skipped. Grammar, Literals: `~` is null.
1source: 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.
3expect: parses
3expect: parses
4expect-types: a partial inference report
4expect-types: a partial inference report
tests/golden/types-import-tlon-notes/imports.txt+1
@@ -2,3 +2,4 @@ notes u-note
2notes a-note
2notes a-note
3notes u-notebook
3notes u-notebook
4notes u-notes
4notes u-notes
5+notes log
tests/golden/types-import-tlon-notes/source.jibb+1
@@ -3,3 +3,4 @@
3++ action |= x=a-note.notes x
3++ action |= x=a-note.notes x
4++ notebook-update |= x=u-notebook.notes x
4++ notebook-update |= x=u-notebook.notes x
5++ notes-update |= x=u-notes.notes x
5++ 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 @@
325:21 tight glyph =
325:21 tight glyph =
335:22 tight wing u-notes.notes
335:22 tight wing u-notes.notes
345:36 name x
345:36 name x
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
35−5:37 NEWLINE
43+6:33 NEWLINE
tests/golden/types-import-tlon-notes/tree.txt+5−1
@@ -15,4 +15,8 @@
15 (value 5:1 notes-update
15 (value 5:1 notes-update
16 (gate 5:17
16 (gate 5:17
17 (face 5:20 x (ref 5:22 u-notes.notes))
17 (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
3++ 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 ~]))
3++ 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 ~]))
4++ 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]]))
4++ 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]]))
5++ 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]])])
5++ 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,
14direct and transitively aliased overlaps, nested collections, shadowed jar and
14direct and transitively aliased overlaps, nested collections, shadowed jar and
15jug dependencies, Ford-name collisions, zuse local-name precedence and the
15jug dependencies, Ford-name collisions, zuse local-name precedence and the
16shared proof budget. Four real `presence` unions exercise the same path.
16shared 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.
17One named tagged union can occur inside another when the source proof and
24One named tagged union can occur inside another when the source proof and
18both disjointness checks succeed. Repeated dependencies, hidden overlap,
25both disjointness checks succeed. Repeated dependencies, hidden overlap,
19deeper nesting, recursion, collection shadowing, and Ford-name collisions
26deeper nesting, recursion, collection shadowing, and Ford-name collisions
tests/importer/shadow.txt+3
@@ -5,6 +5,9 @@
5++ jug |$([key value] (map key (set value)))
5++ jug |$([key value] (map key (set value)))
6+| %defs
6+| %defs
7+$ mm ((mop @ud @t) lte)
7+$ mm ((mop @ud @t) lte)
8++$ key @ud
9++$ val @t
10++$ mmw ((mop key val) lte)
8+$ mn [table=((mop @ud @t) lte) other=@ud]
11+$ mn [table=((mop @ud @t) lte) other=@ud]
9+$ aa (jar @ud @t)
12+$ aa (jar @ud @t)
10+$ bb [field=(jug @ud @t)]
13+$ bb [field=(jug @ud @t)]
tests/importer/small.txt+15
@@ -22,6 +22,21 @@
22+$ dynamic-sibling-mop [a=((mop @ud @t) lte) b=(list word)]
22+$ dynamic-sibling-mop [a=((mop @ud @t) lte) b=(list word)]
23+$ named-mop [a=((mop @ud word) lte) b=@ud]
23+$ named-mop [a=((mop @ud word) lte) b=@ud]
24+$ word @t
24+$ 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)
25+$ mop-list (list ((mop @ud @t) lte))
40+$ mop-list (list ((mop @ud @t) lte))
26+$ signed @sd
41+$ signed @sd
27+$ float @rd
42+$ float @rd
tests/importer/tree.txt+10
@@ -50,6 +50,16 @@ ford-mismatched-core: unsafe
50shadow-list-mop: error: Hoon collection provenance is unavailable or shadowed
50shadow-list-mop: error: Hoon collection provenance is unavailable or shadowed
51named-mop: error: a nested Hoon mop needs source-aware import
51named-mop: error: a nested Hoon mop needs source-aware import
52mop-list: error: a nested Hoon mop needs source-aware import
52mop-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
53signed: error: signed and float auras cannot be imported
63signed: error: signed and float auras cannot be imported
54float: error: signed and float auras cannot be imported
64float: error: signed and float auras cannot be imported
55gate: error: cores and gates cannot be imported
65gate: error: cores and gates cannot be imported
tests/lib/jibb.hoon+913−900
@@ -1338,744 +1338,753 @@
1338/* tok-408 %txt /tests/golden/types-deferred-call-context/tokens/txt
1338/* tok-408 %txt /tests/golden/types-deferred-call-context/tokens/txt
1339/* tre-408 %txt /tests/golden/types-deferred-call-context/tree/txt
1339/* tre-408 %txt /tests/golden/types-deferred-call-context/tree/txt
1340/* typ-408 %txt /tests/golden/types-deferred-call-context/types/txt
1340/* typ-408 %txt /tests/golden/types-deferred-call-context/types/txt
1341−/* src-409 %jibb /tests/golden/types-generic-arity/source/jibb
1341+/* src-409 %jibb /tests/golden/types-flag-branch-context/source/jibb
1342−/* tok-409 %txt /tests/golden/types-generic-arity/tokens/txt
1342+/* tok-409 %txt /tests/golden/types-flag-branch-context/tokens/txt
1343−/* tre-409 %txt /tests/golden/types-generic-arity/tree/txt
1343+/* tre-409 %txt /tests/golden/types-flag-branch-context/tree/txt
1344−/* typ-409 %txt /tests/golden/types-generic-arity/types/txt
1344+/* typ-409 %txt /tests/golden/types-flag-branch-context/types/txt
1345−/* src-410 %jibb /tests/golden/types-generic-face-inference/source/jibb
1345+/* src-410 %jibb /tests/golden/types-generic-arity/source/jibb
1346−/* tok-410 %txt /tests/golden/types-generic-face-inference/tokens/txt
1346+/* tok-410 %txt /tests/golden/types-generic-arity/tokens/txt
1347−/* tre-410 %txt /tests/golden/types-generic-face-inference/tree/txt
1347+/* tre-410 %txt /tests/golden/types-generic-arity/tree/txt
1348−/* typ-410 %txt /tests/golden/types-generic-face-inference/types/txt
1348+/* typ-410 %txt /tests/golden/types-generic-arity/types/txt
1349−/* src-411 %jibb /tests/golden/types-generic-gates/source/jibb
1349+/* src-411 %jibb /tests/golden/types-generic-face-inference/source/jibb
1350−/* tok-411 %txt /tests/golden/types-generic-gates/tokens/txt
1350+/* tok-411 %txt /tests/golden/types-generic-face-inference/tokens/txt
1351−/* tre-411 %txt /tests/golden/types-generic-gates/tree/txt
1351+/* tre-411 %txt /tests/golden/types-generic-face-inference/tree/txt
1352−/* typ-411 %txt /tests/golden/types-generic-gates/types/txt
1352+/* typ-411 %txt /tests/golden/types-generic-face-inference/types/txt
1353−/* src-412 %jibb /tests/golden/types-generic-import-reverse/source/jibb
1353+/* src-412 %jibb /tests/golden/types-generic-gates/source/jibb
1354−/* tok-412 %txt /tests/golden/types-generic-import-reverse/tokens/txt
1354+/* tok-412 %txt /tests/golden/types-generic-gates/tokens/txt
1355−/* tre-412 %txt /tests/golden/types-generic-import-reverse/tree/txt
1355+/* tre-412 %txt /tests/golden/types-generic-gates/tree/txt
1356−/* mod-412-1 %jibb /tests/golden/types-generic-import-reverse/modules/ui/lib/jibb
1356+/* typ-412 %txt /tests/golden/types-generic-gates/types/txt
1357−/* typ-412 %txt /tests/golden/types-generic-import-reverse/types/txt
1357+/* src-413 %jibb /tests/golden/types-generic-import-reverse/source/jibb
1358−/* mtre-412 %txt /tests/golden/types-generic-import-reverse/module-trees/txt
1358+/* tok-413 %txt /tests/golden/types-generic-import-reverse/tokens/txt
1359−/* src-413 %jibb /tests/golden/types-generic-lexical-alias/source/jibb
1359+/* tre-413 %txt /tests/golden/types-generic-import-reverse/tree/txt
1360−/* tok-413 %txt /tests/golden/types-generic-lexical-alias/tokens/txt
1360+/* mod-413-1 %jibb /tests/golden/types-generic-import-reverse/modules/ui/lib/jibb
1361−/* tre-413 %txt /tests/golden/types-generic-lexical-alias/tree/txt
1361+/* typ-413 %txt /tests/golden/types-generic-import-reverse/types/txt
1362−/* typ-413 %txt /tests/golden/types-generic-lexical-alias/types/txt
1362+/* mtre-413 %txt /tests/golden/types-generic-import-reverse/module-trees/txt
1363−/* src-414 %jibb /tests/golden/types-generic-local-parameter/source/jibb
1363+/* src-414 %jibb /tests/golden/types-generic-lexical-alias/source/jibb
1364−/* tok-414 %txt /tests/golden/types-generic-local-parameter/tokens/txt
1364+/* tok-414 %txt /tests/golden/types-generic-lexical-alias/tokens/txt
1365−/* tre-414 %txt /tests/golden/types-generic-local-parameter/tree/txt
1365+/* tre-414 %txt /tests/golden/types-generic-lexical-alias/tree/txt
1366−/* typ-414 %txt /tests/golden/types-generic-local-parameter/types/txt
1366+/* typ-414 %txt /tests/golden/types-generic-lexical-alias/types/txt
1367−/* src-415 %jibb /tests/golden/types-generic-local-scope/source/jibb
1367+/* src-415 %jibb /tests/golden/types-generic-local-parameter/source/jibb
1368−/* tok-415 %txt /tests/golden/types-generic-local-scope/tokens/txt
1368+/* tok-415 %txt /tests/golden/types-generic-local-parameter/tokens/txt
1369−/* tre-415 %txt /tests/golden/types-generic-local-scope/tree/txt
1369+/* tre-415 %txt /tests/golden/types-generic-local-parameter/tree/txt
1370−/* typ-415 %txt /tests/golden/types-generic-local-scope/types/txt
1370+/* typ-415 %txt /tests/golden/types-generic-local-parameter/types/txt
1371−/* src-416 %jibb /tests/golden/types-generic-module/source/jibb
1371+/* src-416 %jibb /tests/golden/types-generic-local-scope/source/jibb
1372−/* tok-416 %txt /tests/golden/types-generic-module/tokens/txt
1372+/* tok-416 %txt /tests/golden/types-generic-local-scope/tokens/txt
1373−/* tre-416 %txt /tests/golden/types-generic-module/tree/txt
1373+/* tre-416 %txt /tests/golden/types-generic-local-scope/tree/txt
1374−/* mod-416-1 %jibb /tests/golden/types-generic-module/modules/ui/lib/jibb
1374+/* typ-416 %txt /tests/golden/types-generic-local-scope/types/txt
1375−/* typ-416 %txt /tests/golden/types-generic-module/types/txt
1375+/* src-417 %jibb /tests/golden/types-generic-module/source/jibb
1376−/* mtre-416 %txt /tests/golden/types-generic-module/module-trees/txt
1376+/* tok-417 %txt /tests/golden/types-generic-module/tokens/txt
1377−/* src-417 %jibb /tests/golden/types-generic-nested-scope/source/jibb
1377+/* tre-417 %txt /tests/golden/types-generic-module/tree/txt
1378−/* tok-417 %txt /tests/golden/types-generic-nested-scope/tokens/txt
1378+/* mod-417-1 %jibb /tests/golden/types-generic-module/modules/ui/lib/jibb
1379−/* tre-417 %txt /tests/golden/types-generic-nested-scope/tree/txt
1379+/* typ-417 %txt /tests/golden/types-generic-module/types/txt
1380−/* typ-417 %txt /tests/golden/types-generic-nested-scope/types/txt
1380+/* mtre-417 %txt /tests/golden/types-generic-module/module-trees/txt
1381−/* src-418 %jibb /tests/golden/types-generic-parameters/source/jibb
1381+/* src-418 %jibb /tests/golden/types-generic-nested-scope/source/jibb
1382−/* tok-418 %txt /tests/golden/types-generic-parameters/tokens/txt
1382+/* tok-418 %txt /tests/golden/types-generic-nested-scope/tokens/txt
1383−/* tre-418 %txt /tests/golden/types-generic-parameters/tree/txt
1383+/* tre-418 %txt /tests/golden/types-generic-nested-scope/tree/txt
1384−/* typ-418 %txt /tests/golden/types-generic-parameters/types/txt
1384+/* typ-418 %txt /tests/golden/types-generic-nested-scope/types/txt
1385−/* src-419 %jibb /tests/golden/types-generic-record/source/jibb
1385+/* src-419 %jibb /tests/golden/types-generic-parameters/source/jibb
1386−/* tok-419 %txt /tests/golden/types-generic-record/tokens/txt
1386+/* tok-419 %txt /tests/golden/types-generic-parameters/tokens/txt
1387−/* tre-419 %txt /tests/golden/types-generic-record/tree/txt
1387+/* tre-419 %txt /tests/golden/types-generic-parameters/tree/txt
1388−/* typ-419 %txt /tests/golden/types-generic-record/types/txt
1388+/* typ-419 %txt /tests/golden/types-generic-parameters/types/txt
1389−/* src-420 %jibb /tests/golden/types-generic-recursive-union/source/jibb
1389+/* src-420 %jibb /tests/golden/types-generic-record/source/jibb
1390−/* tok-420 %txt /tests/golden/types-generic-recursive-union/tokens/txt
1390+/* tok-420 %txt /tests/golden/types-generic-record/tokens/txt
1391−/* tre-420 %txt /tests/golden/types-generic-recursive-union/tree/txt
1391+/* tre-420 %txt /tests/golden/types-generic-record/tree/txt
1392−/* typ-420 %txt /tests/golden/types-generic-recursive-union/types/txt
1392+/* typ-420 %txt /tests/golden/types-generic-record/types/txt
1393−/* src-421 %jibb /tests/golden/types-generic-repeated/source/jibb
1393+/* src-421 %jibb /tests/golden/types-generic-recursive-union/source/jibb
1394−/* tok-421 %txt /tests/golden/types-generic-repeated/tokens/txt
1394+/* tok-421 %txt /tests/golden/types-generic-recursive-union/tokens/txt
1395−/* tre-421 %txt /tests/golden/types-generic-repeated/tree/txt
1395+/* tre-421 %txt /tests/golden/types-generic-recursive-union/tree/txt
1396−/* typ-421 %txt /tests/golden/types-generic-repeated/types/txt
1396+/* typ-421 %txt /tests/golden/types-generic-recursive-union/types/txt
1397−/* src-422 %jibb /tests/golden/types-generic-union-alias/source/jibb
1397+/* src-422 %jibb /tests/golden/types-generic-repeated/source/jibb
1398−/* tok-422 %txt /tests/golden/types-generic-union-alias/tokens/txt
1398+/* tok-422 %txt /tests/golden/types-generic-repeated/tokens/txt
1399−/* tre-422 %txt /tests/golden/types-generic-union-alias/tree/txt
1399+/* tre-422 %txt /tests/golden/types-generic-repeated/tree/txt
1400−/* typ-422 %txt /tests/golden/types-generic-union-alias/types/txt
1400+/* typ-422 %txt /tests/golden/types-generic-repeated/types/txt
1401−/* src-423 %jibb /tests/golden/types-generic-union-alias-face/source/jibb
1401+/* src-423 %jibb /tests/golden/types-generic-union-alias/source/jibb
1402−/* tok-423 %txt /tests/golden/types-generic-union-alias-face/tokens/txt
1402+/* tok-423 %txt /tests/golden/types-generic-union-alias/tokens/txt
1403−/* tre-423 %txt /tests/golden/types-generic-union-alias-face/tree/txt
1403+/* tre-423 %txt /tests/golden/types-generic-union-alias/tree/txt
1404−/* mod-423-1 %jibb /tests/golden/types-generic-union-alias-face/modules/ui/base/jibb
1404+/* typ-423 %txt /tests/golden/types-generic-union-alias/types/txt
1405−/* typ-423 %txt /tests/golden/types-generic-union-alias-face/types/txt
1405+/* src-424 %jibb /tests/golden/types-generic-union-alias-face/source/jibb
1406−/* mtre-423 %txt /tests/golden/types-generic-union-alias-face/module-trees/txt
1406+/* tok-424 %txt /tests/golden/types-generic-union-alias-face/tokens/txt
1407−/* src-424 %jibb /tests/golden/types-generic-union-capitals/source/jibb
1407+/* tre-424 %txt /tests/golden/types-generic-union-alias-face/tree/txt
1408−/* tok-424 %txt /tests/golden/types-generic-union-capitals/tokens/txt
1408+/* mod-424-1 %jibb /tests/golden/types-generic-union-alias-face/modules/ui/base/jibb
1409−/* tre-424 %txt /tests/golden/types-generic-union-capitals/tree/txt
1409+/* typ-424 %txt /tests/golden/types-generic-union-alias-face/types/txt
1410−/* typ-424 %txt /tests/golden/types-generic-union-capitals/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-errors/source/jibb
1411+/* src-425 %jibb /tests/golden/types-generic-union-capitals/source/jibb
1412−/* tok-425 %txt /tests/golden/types-generic-union-errors/tokens/txt
1412+/* tok-425 %txt /tests/golden/types-generic-union-capitals/tokens/txt
1413−/* tre-425 %txt /tests/golden/types-generic-union-errors/tree/txt
1413+/* tre-425 %txt /tests/golden/types-generic-union-capitals/tree/txt
1414−/* typ-425 %txt /tests/golden/types-generic-union-errors/types/txt
1414+/* typ-425 %txt /tests/golden/types-generic-union-capitals/types/txt
1415−/* src-426 %jibb /tests/golden/types-generic-union-escaping/source/jibb
1415+/* src-426 %jibb /tests/golden/types-generic-union-errors/source/jibb
1416−/* tok-426 %txt /tests/golden/types-generic-union-escaping/tokens/txt
1416+/* tok-426 %txt /tests/golden/types-generic-union-errors/tokens/txt
1417−/* tre-426 %txt /tests/golden/types-generic-union-escaping/tree/txt
1417+/* tre-426 %txt /tests/golden/types-generic-union-errors/tree/txt
1418−/* mod-426-1 %jibb /tests/golden/types-generic-union-escaping/modules/ui/base/jibb
1418+/* typ-426 %txt /tests/golden/types-generic-union-errors/types/txt
1419−/* mod-426-2 %jibb /tests/golden/types-generic-union-escaping/modules/ui/mid/jibb
1419+/* src-427 %jibb /tests/golden/types-generic-union-escaping/source/jibb
1420−/* typ-426 %txt /tests/golden/types-generic-union-escaping/types/txt
1420+/* tok-427 %txt /tests/golden/types-generic-union-escaping/tokens/txt
1421−/* mtre-426 %txt /tests/golden/types-generic-union-escaping/module-trees/txt
1421+/* tre-427 %txt /tests/golden/types-generic-union-escaping/tree/txt
1422−/* src-427 %jibb /tests/golden/types-generic-union-import/source/jibb
1422+/* mod-427-1 %jibb /tests/golden/types-generic-union-escaping/modules/ui/base/jibb
1423−/* tok-427 %txt /tests/golden/types-generic-union-import/tokens/txt
1423+/* mod-427-2 %jibb /tests/golden/types-generic-union-escaping/modules/ui/mid/jibb
1424−/* tre-427 %txt /tests/golden/types-generic-union-import/tree/txt
1424+/* typ-427 %txt /tests/golden/types-generic-union-escaping/types/txt
1425−/* mod-427-1 %jibb /tests/golden/types-generic-union-import/modules/ui/shared/jibb
1425+/* mtre-427 %txt /tests/golden/types-generic-union-escaping/module-trees/txt
1426−/* mod-427-2 %jibb /tests/golden/types-generic-union-import/modules/ui/twin/jibb
1426+/* src-428 %jibb /tests/golden/types-generic-union-import/source/jibb
1427−/* typ-427 %txt /tests/golden/types-generic-union-import/types/txt
1427+/* tok-428 %txt /tests/golden/types-generic-union-import/tokens/txt
1428−/* mtre-427 %txt /tests/golden/types-generic-union-import/module-trees/txt
1428+/* tre-428 %txt /tests/golden/types-generic-union-import/tree/txt
1429−/* src-428 %jibb /tests/golden/types-generic-union-local/source/jibb
1429+/* mod-428-1 %jibb /tests/golden/types-generic-union-import/modules/ui/shared/jibb
1430−/* tok-428 %txt /tests/golden/types-generic-union-local/tokens/txt
1430+/* mod-428-2 %jibb /tests/golden/types-generic-union-import/modules/ui/twin/jibb
1431−/* tre-428 %txt /tests/golden/types-generic-union-local/tree/txt
1431+/* typ-428 %txt /tests/golden/types-generic-union-import/types/txt
1432−/* typ-428 %txt /tests/golden/types-generic-union-local/types/txt
1432+/* mtre-428 %txt /tests/golden/types-generic-union-import/module-trees/txt
1433−/* src-429 %jibb /tests/golden/types-generic-union-transitive/source/jibb
1433+/* src-429 %jibb /tests/golden/types-generic-union-local/source/jibb
1434−/* tok-429 %txt /tests/golden/types-generic-union-transitive/tokens/txt
1434+/* tok-429 %txt /tests/golden/types-generic-union-local/tokens/txt
1435−/* tre-429 %txt /tests/golden/types-generic-union-transitive/tree/txt
1435+/* tre-429 %txt /tests/golden/types-generic-union-local/tree/txt
1436−/* mod-429-1 %jibb /tests/golden/types-generic-union-transitive/modules/ui/base/jibb
1436+/* typ-429 %txt /tests/golden/types-generic-union-local/types/txt
1437−/* mod-429-2 %jibb /tests/golden/types-generic-union-transitive/modules/ui/mid/jibb
1437+/* src-430 %jibb /tests/golden/types-generic-union-transitive/source/jibb
1438−/* typ-429 %txt /tests/golden/types-generic-union-transitive/types/txt
1438+/* tok-430 %txt /tests/golden/types-generic-union-transitive/tokens/txt
1439−/* mtre-429 %txt /tests/golden/types-generic-union-transitive/module-trees/txt
1439+/* tre-430 %txt /tests/golden/types-generic-union-transitive/tree/txt
1440−/* src-430 %jibb /tests/golden/types-import-duplicate-mark/source/jibb
1440+/* mod-430-1 %jibb /tests/golden/types-generic-union-transitive/modules/ui/base/jibb
1441−/* tok-430 %txt /tests/golden/types-import-duplicate-mark/tokens/txt
1441+/* mod-430-2 %jibb /tests/golden/types-generic-union-transitive/modules/ui/mid/jibb
1442−/* tre-430 %txt /tests/golden/types-import-duplicate-mark/tree/txt
1442+/* typ-430 %txt /tests/golden/types-generic-union-transitive/types/txt
1443−/* typ-430 %txt /tests/golden/types-import-duplicate-mark/types/txt
1443+/* mtre-430 %txt /tests/golden/types-generic-union-transitive/module-trees/txt
1444−/* mark-430-1 %txt /tests/golden/types-import-duplicate-mark/mar/duplicate/txt
1444+/* src-431 %jibb /tests/golden/types-import-duplicate-mark/source/jibb
1445−/* src-431 %jibb /tests/golden/types-import-duplicate-sur/source/jibb
1445+/* tok-431 %txt /tests/golden/types-import-duplicate-mark/tokens/txt
1446−/* tok-431 %txt /tests/golden/types-import-duplicate-sur/tokens/txt
1446+/* tre-431 %txt /tests/golden/types-import-duplicate-mark/tree/txt
1447−/* tre-431 %txt /tests/golden/types-import-duplicate-sur/tree/txt
1447+/* typ-431 %txt /tests/golden/types-import-duplicate-mark/types/txt
1448−/* typ-431 %txt /tests/golden/types-import-duplicate-sur/types/txt
1448+/* mark-431-1 %txt /tests/golden/types-import-duplicate-mark/mar/duplicate/txt
1449−/* imp-431-1 %txt /tests/golden/types-import-duplicate-sur/sur/fixture/txt
1449+/* src-432 %jibb /tests/golden/types-import-duplicate-sur/source/jibb
1450−/* imp-431-2 %txt /tests/golden/types-import-duplicate-sur/sur/fixture/txt
1450+/* tok-432 %txt /tests/golden/types-import-duplicate-sur/tokens/txt
1451−/* imp-431-3 %txt /tests/golden/types-import-duplicate-sur/sur/fixture/txt
1451+/* tre-432 %txt /tests/golden/types-import-duplicate-sur/tree/txt
1452−/* src-432 %jibb /tests/golden/types-import-hoon-flags/source/jibb
1452+/* typ-432 %txt /tests/golden/types-import-duplicate-sur/types/txt
1453−/* tok-432 %txt /tests/golden/types-import-hoon-flags/tokens/txt
1453+/* imp-432-1 %txt /tests/golden/types-import-duplicate-sur/sur/fixture/txt
1454−/* tre-432 %txt /tests/golden/types-import-hoon-flags/tree/txt
1454+/* imp-432-2 %txt /tests/golden/types-import-duplicate-sur/sur/fixture/txt
1455−/* typ-432 %txt /tests/golden/types-import-hoon-flags/types/txt
1455+/* imp-432-3 %txt /tests/golden/types-import-duplicate-sur/sur/fixture/txt
1456−/* imp-432-1 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1456+/* src-433 %jibb /tests/golden/types-import-hoon-flags/source/jibb
1457−/* imp-432-2 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1457+/* tok-433 %txt /tests/golden/types-import-hoon-flags/tokens/txt
1458−/* imp-432-3 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1458+/* tre-433 %txt /tests/golden/types-import-hoon-flags/tree/txt
1459−/* imp-432-4 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1459+/* typ-433 %txt /tests/golden/types-import-hoon-flags/types/txt
1460−/* src-433 %jibb /tests/golden/types-import-hoon-noun/source/jibb
1460+/* imp-433-1 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1461−/* tok-433 %txt /tests/golden/types-import-hoon-noun/tokens/txt
1461+/* imp-433-2 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1462−/* tre-433 %txt /tests/golden/types-import-hoon-noun/tree/txt
1462+/* imp-433-3 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1463−/* typ-433 %txt /tests/golden/types-import-hoon-noun/types/txt
1463+/* imp-433-4 %txt /tests/golden/types-import-hoon-flags/sur/flags/txt
1464−/* imp-433-1 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1464+/* src-434 %jibb /tests/golden/types-import-hoon-noun/source/jibb
1465−/* imp-433-2 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1465+/* tok-434 %txt /tests/golden/types-import-hoon-noun/tokens/txt
1466−/* imp-433-3 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1466+/* tre-434 %txt /tests/golden/types-import-hoon-noun/tree/txt
1467−/* imp-433-4 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1467+/* typ-434 %txt /tests/golden/types-import-hoon-noun/types/txt
1468−/* src-434 %jibb /tests/golden/types-import-mark/source/jibb
1468+/* imp-434-1 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1469−/* tok-434 %txt /tests/golden/types-import-mark/tokens/txt
1469+/* imp-434-2 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1470−/* tre-434 %txt /tests/golden/types-import-mark/tree/txt
1470+/* imp-434-3 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1471−/* typ-434 %txt /tests/golden/types-import-mark/types/txt
1471+/* imp-434-4 %txt /tests/golden/types-import-hoon-noun/sur/fixture/txt
1472−/* imp-434-1 %txt /tests/golden/types-import-mark/sur/fixture/txt
1472+/* src-435 %jibb /tests/golden/types-import-mark/source/jibb
1473−/* mark-434-1 %txt /tests/golden/types-import-mark/mar/label/txt
1473+/* tok-435 %txt /tests/golden/types-import-mark/tokens/txt
1474−/* src-435 %jibb /tests/golden/types-import-mark-record/source/jibb
1474+/* tre-435 %txt /tests/golden/types-import-mark/tree/txt
1475−/* tok-435 %txt /tests/golden/types-import-mark-record/tokens/txt
1475+/* typ-435 %txt /tests/golden/types-import-mark/types/txt
1476−/* tre-435 %txt /tests/golden/types-import-mark-record/tree/txt
1476+/* imp-435-1 %txt /tests/golden/types-import-mark/sur/fixture/txt
1477−/* typ-435 %txt /tests/golden/types-import-mark-record/types/txt
1477+/* mark-435-1 %txt /tests/golden/types-import-mark/mar/label/txt
1478−/* mark-435-1 %txt /tests/golden/types-import-mark-record/mar/note/txt
1478+/* src-436 %jibb /tests/golden/types-import-mark-record/source/jibb
1479−/* mark-435-2 %txt /tests/golden/types-import-mark-record/mar/choice/txt
1479+/* tok-436 %txt /tests/golden/types-import-mark-record/tokens/txt
1480−/* src-436 %jibb /tests/golden/types-import-missing-mold/source/jibb
1480+/* tre-436 %txt /tests/golden/types-import-mark-record/tree/txt
1481−/* tok-436 %txt /tests/golden/types-import-missing-mold/tokens/txt
1481+/* typ-436 %txt /tests/golden/types-import-mark-record/types/txt
1482−/* tre-436 %txt /tests/golden/types-import-missing-mold/tree/txt
1482+/* mark-436-1 %txt /tests/golden/types-import-mark-record/mar/note/txt
1483−/* typ-436 %txt /tests/golden/types-import-missing-mold/types/txt
1483+/* mark-436-2 %txt /tests/golden/types-import-mark-record/mar/choice/txt
1484−/* imp-436-1 %txt /tests/golden/types-import-missing-mold/sur/fixture/txt
1484+/* src-437 %jibb /tests/golden/types-import-missing-mold/source/jibb
1485−/* src-437 %jibb /tests/golden/types-import-sur/source/jibb
1485+/* tok-437 %txt /tests/golden/types-import-missing-mold/tokens/txt
1486−/* tok-437 %txt /tests/golden/types-import-sur/tokens/txt
1486+/* tre-437 %txt /tests/golden/types-import-missing-mold/tree/txt
1487−/* tre-437 %txt /tests/golden/types-import-sur/tree/txt
1487+/* typ-437 %txt /tests/golden/types-import-missing-mold/types/txt
1488−/* typ-437 %txt /tests/golden/types-import-sur/types/txt
1488+/* imp-437-1 %txt /tests/golden/types-import-missing-mold/sur/fixture/txt
1489−/* imp-437-1 %txt /tests/golden/types-import-sur/sur/fixture/txt
1489+/* src-438 %jibb /tests/golden/types-import-sur/source/jibb
1490−/* imp-437-2 %txt /tests/golden/types-import-sur/sur/fixture/txt
1490+/* tok-438 %txt /tests/golden/types-import-sur/tokens/txt
1491−/* src-438 %jibb /tests/golden/types-import-sur-record-graph/source/jibb
1491+/* tre-438 %txt /tests/golden/types-import-sur/tree/txt
1492−/* tok-438 %txt /tests/golden/types-import-sur-record-graph/tokens/txt
1492+/* typ-438 %txt /tests/golden/types-import-sur/types/txt
1493−/* tre-438 %txt /tests/golden/types-import-sur-record-graph/tree/txt
1493+/* imp-438-1 %txt /tests/golden/types-import-sur/sur/fixture/txt
1494−/* mod-438-1 %jibb /tests/golden/types-import-sur-record-graph/modules/ui/lib/jibb
1494+/* imp-438-2 %txt /tests/golden/types-import-sur/sur/fixture/txt
1495−/* typ-438 %txt /tests/golden/types-import-sur-record-graph/types/txt
1495+/* src-439 %jibb /tests/golden/types-import-sur-record-graph/source/jibb
1496−/* imp-438-1 %txt /tests/golden/types-import-sur-record-graph/sur/fixture/txt
1496+/* tok-439 %txt /tests/golden/types-import-sur-record-graph/tokens/txt
1497−/* mtre-438 %txt /tests/golden/types-import-sur-record-graph/module-trees/txt
1497+/* tre-439 %txt /tests/golden/types-import-sur-record-graph/tree/txt
1498−/* src-439 %jibb /tests/golden/types-import-tlon-notes/source/jibb
1498+/* mod-439-1 %jibb /tests/golden/types-import-sur-record-graph/modules/ui/lib/jibb
1499−/* tok-439 %txt /tests/golden/types-import-tlon-notes/tokens/txt
1499+/* typ-439 %txt /tests/golden/types-import-sur-record-graph/types/txt
1500−/* tre-439 %txt /tests/golden/types-import-tlon-notes/tree/txt
1500+/* imp-439-1 %txt /tests/golden/types-import-sur-record-graph/sur/fixture/txt
1501−/* typ-439 %txt /tests/golden/types-import-tlon-notes/types/txt
1501+/* mtre-439 %txt /tests/golden/types-import-sur-record-graph/module-trees/txt
1502−/* imp-439-1 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1502+/* src-440 %jibb /tests/golden/types-import-tlon-notes/source/jibb
1503−/* imp-439-2 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1503+/* tok-440 %txt /tests/golden/types-import-tlon-notes/tokens/txt
1504−/* imp-439-3 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1504+/* tre-440 %txt /tests/golden/types-import-tlon-notes/tree/txt
1505−/* imp-439-4 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1505+/* typ-440 %txt /tests/golden/types-import-tlon-notes/types/txt
1506−/* src-440 %jibb /tests/golden/types-list-branch/source/jibb
1506+/* imp-440-1 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1507−/* tok-440 %txt /tests/golden/types-list-branch/tokens/txt
1507+/* imp-440-2 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1508−/* tre-440 %txt /tests/golden/types-list-branch/tree/txt
1508+/* imp-440-3 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1509−/* typ-440 %txt /tests/golden/types-list-branch/types/txt
1509+/* imp-440-4 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1510−/* src-441 %jibb /tests/golden/types-list-cons/source/jibb
1510+/* imp-440-5 %txt /tests/golden/types-import-tlon-notes/sur/notes/txt
1511−/* tok-441 %txt /tests/golden/types-list-cons/tokens/txt
1511+/* src-441 %jibb /tests/golden/types-list-branch/source/jibb
1512−/* tre-441 %txt /tests/golden/types-list-cons/tree/txt
1512+/* tok-441 %txt /tests/golden/types-list-branch/tokens/txt
1513−/* typ-441 %txt /tests/golden/types-list-cons/types/txt
1513+/* tre-441 %txt /tests/golden/types-list-branch/tree/txt
1514−/* src-442 %jibb /tests/golden/types-list-context/source/jibb
1514+/* typ-441 %txt /tests/golden/types-list-branch/types/txt
1515−/* tok-442 %txt /tests/golden/types-list-context/tokens/txt
1515+/* src-442 %jibb /tests/golden/types-list-cons/source/jibb
1516−/* tre-442 %txt /tests/golden/types-list-context/tree/txt
1516+/* tok-442 %txt /tests/golden/types-list-cons/tokens/txt
1517−/* typ-442 %txt /tests/golden/types-list-context/types/txt
1517+/* tre-442 %txt /tests/golden/types-list-cons/tree/txt
1518−/* src-443 %jibb /tests/golden/types-list-imported/source/jibb
1518+/* typ-442 %txt /tests/golden/types-list-cons/types/txt
1519−/* tok-443 %txt /tests/golden/types-list-imported/tokens/txt
1519+/* src-443 %jibb /tests/golden/types-list-context/source/jibb
1520−/* tre-443 %txt /tests/golden/types-list-imported/tree/txt
1520+/* tok-443 %txt /tests/golden/types-list-context/tokens/txt
1521−/* typ-443 %txt /tests/golden/types-list-imported/types/txt
1521+/* tre-443 %txt /tests/golden/types-list-context/tree/txt
1522−/* imp-443-1 %txt /tests/golden/types-list-imported/sur/fixture/txt
1522+/* typ-443 %txt /tests/golden/types-list-context/types/txt
1523−/* imp-443-2 %txt /tests/golden/types-list-imported/sur/fixture/txt
1523+/* src-444 %jibb /tests/golden/types-list-imported/source/jibb
1524−/* src-444 %jibb /tests/golden/types-list-open/source/jibb
1524+/* tok-444 %txt /tests/golden/types-list-imported/tokens/txt
1525−/* tok-444 %txt /tests/golden/types-list-open/tokens/txt
1525+/* tre-444 %txt /tests/golden/types-list-imported/tree/txt
1526−/* tre-444 %txt /tests/golden/types-list-open/tree/txt
1526+/* typ-444 %txt /tests/golden/types-list-imported/types/txt
1527−/* typ-444 %txt /tests/golden/types-list-open/types/txt
1527+/* imp-444-1 %txt /tests/golden/types-list-imported/sur/fixture/txt
1528−/* src-445 %jibb /tests/golden/types-list-open-constraints/source/jibb
1528+/* imp-444-2 %txt /tests/golden/types-list-imported/sur/fixture/txt
1529−/* tok-445 %txt /tests/golden/types-list-open-constraints/tokens/txt
1529+/* src-445 %jibb /tests/golden/types-list-open/source/jibb
1530−/* tre-445 %txt /tests/golden/types-list-open-constraints/tree/txt
1530+/* tok-445 %txt /tests/golden/types-list-open/tokens/txt
1531−/* typ-445 %txt /tests/golden/types-list-open-constraints/types/txt
1531+/* tre-445 %txt /tests/golden/types-list-open/tree/txt
1532−/* src-446 %jibb /tests/golden/types-list-pattern-imported/source/jibb
1532+/* typ-445 %txt /tests/golden/types-list-open/types/txt
1533−/* tok-446 %txt /tests/golden/types-list-pattern-imported/tokens/txt
1533+/* src-446 %jibb /tests/golden/types-list-open-constraints/source/jibb
1534−/* tre-446 %txt /tests/golden/types-list-pattern-imported/tree/txt
1534+/* tok-446 %txt /tests/golden/types-list-open-constraints/tokens/txt
1535−/* typ-446 %txt /tests/golden/types-list-pattern-imported/types/txt
1535+/* tre-446 %txt /tests/golden/types-list-open-constraints/tree/txt
1536−/* imp-446-1 %txt /tests/golden/types-list-pattern-imported/sur/fixture/txt
1536+/* typ-446 %txt /tests/golden/types-list-open-constraints/types/txt
1537−/* imp-446-2 %txt /tests/golden/types-list-pattern-imported/sur/fixture/txt
1537+/* src-447 %jibb /tests/golden/types-list-pattern-imported/source/jibb
1538−/* src-447 %jibb /tests/golden/types-list-patterns/source/jibb
1538+/* tok-447 %txt /tests/golden/types-list-pattern-imported/tokens/txt
1539−/* tok-447 %txt /tests/golden/types-list-patterns/tokens/txt
1539+/* tre-447 %txt /tests/golden/types-list-pattern-imported/tree/txt
1540−/* tre-447 %txt /tests/golden/types-list-patterns/tree/txt
1540+/* typ-447 %txt /tests/golden/types-list-pattern-imported/types/txt
1541−/* typ-447 %txt /tests/golden/types-list-patterns/types/txt
1541+/* imp-447-1 %txt /tests/golden/types-list-pattern-imported/sur/fixture/txt
1542−/* src-448 %jibb /tests/golden/types-list-zero-fit/source/jibb
1542+/* imp-447-2 %txt /tests/golden/types-list-pattern-imported/sur/fixture/txt
1543−/* tok-448 %txt /tests/golden/types-list-zero-fit/tokens/txt
1543+/* src-448 %jibb /tests/golden/types-list-patterns/source/jibb
1544−/* tre-448 %txt /tests/golden/types-list-zero-fit/tree/txt
1544+/* tok-448 %txt /tests/golden/types-list-patterns/tokens/txt
1545−/* typ-448 %txt /tests/golden/types-list-zero-fit/types/txt
1545+/* tre-448 %txt /tests/golden/types-list-patterns/tree/txt
1546−/* src-449 %jibb /tests/golden/types-local-capitals/source/jibb
1546+/* typ-448 %txt /tests/golden/types-list-patterns/types/txt
1547−/* tok-449 %txt /tests/golden/types-local-capitals/tokens/txt
1547+/* src-449 %jibb /tests/golden/types-list-zero-fit/source/jibb
1548−/* tre-449 %txt /tests/golden/types-local-capitals/tree/txt
1548+/* tok-449 %txt /tests/golden/types-list-zero-fit/tokens/txt
1549−/* typ-449 %txt /tests/golden/types-local-capitals/types/txt
1549+/* tre-449 %txt /tests/golden/types-list-zero-fit/tree/txt
1550−/* src-450 %jibb /tests/golden/types-local-recursive/source/jibb
1550+/* typ-449 %txt /tests/golden/types-list-zero-fit/types/txt
1551−/* tok-450 %txt /tests/golden/types-local-recursive/tokens/txt
1551+/* src-450 %jibb /tests/golden/types-local-capitals/source/jibb
1552−/* tre-450 %txt /tests/golden/types-local-recursive/tree/txt
1552+/* tok-450 %txt /tests/golden/types-local-capitals/tokens/txt
1553−/* typ-450 %txt /tests/golden/types-local-recursive/types/txt
1553+/* tre-450 %txt /tests/golden/types-local-capitals/tree/txt
1554−/* src-451 %jibb /tests/golden/types-local-scc/source/jibb
1554+/* typ-450 %txt /tests/golden/types-local-capitals/types/txt
1555−/* tok-451 %txt /tests/golden/types-local-scc/tokens/txt
1555+/* src-451 %jibb /tests/golden/types-local-recursive/source/jibb
1556−/* tre-451 %txt /tests/golden/types-local-scc/tree/txt
1556+/* tok-451 %txt /tests/golden/types-local-recursive/tokens/txt
1557−/* typ-451 %txt /tests/golden/types-local-scc/types/txt
1557+/* tre-451 %txt /tests/golden/types-local-recursive/tree/txt
1558−/* src-452 %jibb /tests/golden/types-local-scc-adversarial/source/jibb
1558+/* typ-451 %txt /tests/golden/types-local-recursive/types/txt
1559−/* tok-452 %txt /tests/golden/types-local-scc-adversarial/tokens/txt
1559+/* src-452 %jibb /tests/golden/types-local-scc/source/jibb
1560−/* tre-452 %txt /tests/golden/types-local-scc-adversarial/tree/txt
1560+/* tok-452 %txt /tests/golden/types-local-scc/tokens/txt
1561−/* typ-452 %txt /tests/golden/types-local-scc-adversarial/types/txt
1561+/* tre-452 %txt /tests/golden/types-local-scc/tree/txt
1562−/* src-453 %jibb /tests/golden/types-missing-tag-context/source/jibb
1562+/* typ-452 %txt /tests/golden/types-local-scc/types/txt
1563−/* tok-453 %txt /tests/golden/types-missing-tag-context/tokens/txt
1563+/* src-453 %jibb /tests/golden/types-local-scc-adversarial/source/jibb
1564−/* tre-453 %txt /tests/golden/types-missing-tag-context/tree/txt
1564+/* tok-453 %txt /tests/golden/types-local-scc-adversarial/tokens/txt
1565−/* typ-453 %txt /tests/golden/types-missing-tag-context/types/txt
1565+/* tre-453 %txt /tests/golden/types-local-scc-adversarial/tree/txt
1566−/* src-454 %jibb /tests/golden/types-missing-tag-imported/source/jibb
1566+/* typ-453 %txt /tests/golden/types-local-scc-adversarial/types/txt
1567−/* tok-454 %txt /tests/golden/types-missing-tag-imported/tokens/txt
1567+/* src-454 %jibb /tests/golden/types-missing-tag-context/source/jibb
1568−/* tre-454 %txt /tests/golden/types-missing-tag-imported/tree/txt
1568+/* tok-454 %txt /tests/golden/types-missing-tag-context/tokens/txt
1569−/* typ-454 %txt /tests/golden/types-missing-tag-imported/types/txt
1569+/* tre-454 %txt /tests/golden/types-missing-tag-context/tree/txt
1570−/* imp-454-1 %txt /tests/golden/types-missing-tag-imported/sur/fixture/txt
1570+/* typ-454 %txt /tests/golden/types-missing-tag-context/types/txt
1571−/* imp-454-2 %txt /tests/golden/types-missing-tag-imported/sur/fixture/txt
1571+/* src-455 %jibb /tests/golden/types-missing-tag-imported/source/jibb
1572−/* src-455 %jibb /tests/golden/types-missing-tag-named/source/jibb
1572+/* tok-455 %txt /tests/golden/types-missing-tag-imported/tokens/txt
1573−/* tok-455 %txt /tests/golden/types-missing-tag-named/tokens/txt
1573+/* tre-455 %txt /tests/golden/types-missing-tag-imported/tree/txt
1574−/* tre-455 %txt /tests/golden/types-missing-tag-named/tree/txt
1574+/* typ-455 %txt /tests/golden/types-missing-tag-imported/types/txt
1575−/* typ-455 %txt /tests/golden/types-missing-tag-named/types/txt
1575+/* imp-455-1 %txt /tests/golden/types-missing-tag-imported/sur/fixture/txt
1576−/* src-456 %jibb /tests/golden/types-module-field-ambiguous/source/jibb
1576+/* imp-455-2 %txt /tests/golden/types-missing-tag-imported/sur/fixture/txt
1577−/* tok-456 %txt /tests/golden/types-module-field-ambiguous/tokens/txt
1577+/* src-456 %jibb /tests/golden/types-missing-tag-named/source/jibb
1578−/* tre-456 %txt /tests/golden/types-module-field-ambiguous/tree/txt
1578+/* tok-456 %txt /tests/golden/types-missing-tag-named/tokens/txt
1579−/* mod-456-1 %jibb /tests/golden/types-module-field-ambiguous/modules/ui/lib/jibb
1579+/* tre-456 %txt /tests/golden/types-missing-tag-named/tree/txt
1580−/* typ-456 %txt /tests/golden/types-module-field-ambiguous/types/txt
1580+/* typ-456 %txt /tests/golden/types-missing-tag-named/types/txt
1581−/* mtre-456 %txt /tests/golden/types-module-field-ambiguous/module-trees/txt
1581+/* src-457 %jibb /tests/golden/types-module-field-ambiguous/source/jibb
1582−/* src-457 %jibb /tests/golden/types-module-field-nonrecord/source/jibb
1582+/* tok-457 %txt /tests/golden/types-module-field-ambiguous/tokens/txt
1583−/* tok-457 %txt /tests/golden/types-module-field-nonrecord/tokens/txt
1583+/* tre-457 %txt /tests/golden/types-module-field-ambiguous/tree/txt
1584−/* tre-457 %txt /tests/golden/types-module-field-nonrecord/tree/txt
1584+/* mod-457-1 %jibb /tests/golden/types-module-field-ambiguous/modules/ui/lib/jibb
1585−/* mod-457-1 %jibb /tests/golden/types-module-field-nonrecord/modules/ui/lib/jibb
1585+/* typ-457 %txt /tests/golden/types-module-field-ambiguous/types/txt
1586−/* typ-457 %txt /tests/golden/types-module-field-nonrecord/types/txt
1586+/* mtre-457 %txt /tests/golden/types-module-field-ambiguous/module-trees/txt
1587−/* mtre-457 %txt /tests/golden/types-module-field-nonrecord/module-trees/txt
1587+/* src-458 %jibb /tests/golden/types-module-field-nonrecord/source/jibb
1588−/* src-458 %jibb /tests/golden/types-module-field-path/source/jibb
1588+/* tok-458 %txt /tests/golden/types-module-field-nonrecord/tokens/txt
1589−/* tok-458 %txt /tests/golden/types-module-field-path/tokens/txt
1589+/* tre-458 %txt /tests/golden/types-module-field-nonrecord/tree/txt
1590−/* tre-458 %txt /tests/golden/types-module-field-path/tree/txt
1590+/* mod-458-1 %jibb /tests/golden/types-module-field-nonrecord/modules/ui/lib/jibb
1591−/* mod-458-1 %jibb /tests/golden/types-module-field-path/modules/ui/lib/jibb
1591+/* typ-458 %txt /tests/golden/types-module-field-nonrecord/types/txt
1592−/* typ-458 %txt /tests/golden/types-module-field-path/types/txt
1592+/* mtre-458 %txt /tests/golden/types-module-field-nonrecord/module-trees/txt
1593−/* mtre-458 %txt /tests/golden/types-module-field-path/module-trees/txt
1593+/* src-459 %jibb /tests/golden/types-module-field-path/source/jibb
1594−/* src-459 %jibb /tests/golden/types-module-field-shadow/source/jibb
1594+/* tok-459 %txt /tests/golden/types-module-field-path/tokens/txt
1595−/* tok-459 %txt /tests/golden/types-module-field-shadow/tokens/txt
1595+/* tre-459 %txt /tests/golden/types-module-field-path/tree/txt
1596−/* tre-459 %txt /tests/golden/types-module-field-shadow/tree/txt
1596+/* mod-459-1 %jibb /tests/golden/types-module-field-path/modules/ui/lib/jibb
1597−/* mod-459-1 %jibb /tests/golden/types-module-field-shadow/modules/ui/lib/jibb
1597+/* typ-459 %txt /tests/golden/types-module-field-path/types/txt
1598−/* typ-459 %txt /tests/golden/types-module-field-shadow/types/txt
1598+/* mtre-459 %txt /tests/golden/types-module-field-path/module-trees/txt
1599−/* mtre-459 %txt /tests/golden/types-module-field-shadow/module-trees/txt
1599+/* src-460 %jibb /tests/golden/types-module-field-shadow/source/jibb
1600−/* src-460 %jibb /tests/golden/types-module-fixtures/source/jibb
1600+/* tok-460 %txt /tests/golden/types-module-field-shadow/tokens/txt
1601−/* tok-460 %txt /tests/golden/types-module-fixtures/tokens/txt
1601+/* tre-460 %txt /tests/golden/types-module-field-shadow/tree/txt
1602−/* tre-460 %txt /tests/golden/types-module-fixtures/tree/txt
1602+/* mod-460-1 %jibb /tests/golden/types-module-field-shadow/modules/ui/lib/jibb
1603−/* mod-460-1 %jibb /tests/golden/types-module-fixtures/modules/ui/api/blog/jibb
1603+/* typ-460 %txt /tests/golden/types-module-field-shadow/types/txt
1604−/* mod-460-2 %jibb /tests/golden/types-module-fixtures/modules/ui/components/card/jibb
1604+/* mtre-460 %txt /tests/golden/types-module-field-shadow/module-trees/txt
1605−/* typ-460 %txt /tests/golden/types-module-fixtures/types/txt
1605+/* src-461 %jibb /tests/golden/types-module-fixtures/source/jibb
1606−/* mtre-460 %txt /tests/golden/types-module-fixtures/module-trees/txt
1606+/* tok-461 %txt /tests/golden/types-module-fixtures/tokens/txt
1607−/* src-461 %jibb /tests/golden/types-module-mixed/source/jibb
1607+/* tre-461 %txt /tests/golden/types-module-fixtures/tree/txt
1608−/* tok-461 %txt /tests/golden/types-module-mixed/tokens/txt
1608+/* mod-461-1 %jibb /tests/golden/types-module-fixtures/modules/ui/api/blog/jibb
1609−/* tre-461 %txt /tests/golden/types-module-mixed/tree/txt
1609+/* mod-461-2 %jibb /tests/golden/types-module-fixtures/modules/ui/components/card/jibb
1610−/* mod-461-1 %jibb /tests/golden/types-module-mixed/modules/ui/helper/jibb
1610+/* typ-461 %txt /tests/golden/types-module-fixtures/types/txt
1611−/* typ-461 %txt /tests/golden/types-module-mixed/types/txt
1611+/* mtre-461 %txt /tests/golden/types-module-fixtures/module-trees/txt
1612−/* imp-461-1 %txt /tests/golden/types-module-mixed/sur/fixture/txt
1612+/* src-462 %jibb /tests/golden/types-module-mixed/source/jibb
1613−/* mark-461-1 %txt /tests/golden/types-module-mixed/mar/label/txt
1613+/* tok-462 %txt /tests/golden/types-module-mixed/tokens/txt
1614−/* mtre-461 %txt /tests/golden/types-module-mixed/module-trees/txt
1614+/* tre-462 %txt /tests/golden/types-module-mixed/tree/txt
1615−/* src-462 %jibb /tests/golden/types-multi-call/source/jibb
1615+/* mod-462-1 %jibb /tests/golden/types-module-mixed/modules/ui/helper/jibb
1616−/* tok-462 %txt /tests/golden/types-multi-call/tokens/txt
1616+/* typ-462 %txt /tests/golden/types-module-mixed/types/txt
1617−/* tre-462 %txt /tests/golden/types-multi-call/tree/txt
1617+/* imp-462-1 %txt /tests/golden/types-module-mixed/sur/fixture/txt
1618−/* typ-462 %txt /tests/golden/types-multi-call/types/txt
1618+/* mark-462-1 %txt /tests/golden/types-module-mixed/mar/label/txt
1619−/* src-463 %jibb /tests/golden/types-multi-import/source/jibb
1619+/* mtre-462 %txt /tests/golden/types-module-mixed/module-trees/txt
1620−/* tok-463 %txt /tests/golden/types-multi-import/tokens/txt
1620+/* src-463 %jibb /tests/golden/types-multi-call/source/jibb
1621−/* tre-463 %txt /tests/golden/types-multi-import/tree/txt
1621+/* tok-463 %txt /tests/golden/types-multi-call/tokens/txt
1622−/* mod-463-1 %jibb /tests/golden/types-multi-import/modules/ui/lib/jibb
1622+/* tre-463 %txt /tests/golden/types-multi-call/tree/txt
1623−/* typ-463 %txt /tests/golden/types-multi-import/types/txt
1623+/* typ-463 %txt /tests/golden/types-multi-call/types/txt
1624−/* mtre-463 %txt /tests/golden/types-multi-import/module-trees/txt
1624+/* src-464 %jibb /tests/golden/types-multi-import/source/jibb
1625−/* src-464 %jibb /tests/golden/types-nested-missing-tag/source/jibb
1625+/* tok-464 %txt /tests/golden/types-multi-import/tokens/txt
1626−/* tok-464 %txt /tests/golden/types-nested-missing-tag/tokens/txt
1626+/* tre-464 %txt /tests/golden/types-multi-import/tree/txt
1627−/* tre-464 %txt /tests/golden/types-nested-missing-tag/tree/txt
1627+/* mod-464-1 %jibb /tests/golden/types-multi-import/modules/ui/lib/jibb
1628−/* typ-464 %txt /tests/golden/types-nested-missing-tag/types/txt
1628+/* typ-464 %txt /tests/golden/types-multi-import/types/txt
1629−/* src-465 %jibb /tests/golden/types-null-context/source/jibb
1629+/* mtre-464 %txt /tests/golden/types-multi-import/module-trees/txt
1630−/* tok-465 %txt /tests/golden/types-null-context/tokens/txt
1630+/* src-465 %jibb /tests/golden/types-nested-missing-tag/source/jibb
1631−/* tre-465 %txt /tests/golden/types-null-context/tree/txt
1631+/* tok-465 %txt /tests/golden/types-nested-missing-tag/tokens/txt
1632−/* typ-465 %txt /tests/golden/types-null-context/types/txt
1632+/* tre-465 %txt /tests/golden/types-nested-missing-tag/tree/txt
1633−/* src-466 %jibb /tests/golden/types-null-overlap/source/jibb
1633+/* typ-465 %txt /tests/golden/types-nested-missing-tag/types/txt
1634−/* tok-466 %txt /tests/golden/types-null-overlap/tokens/txt
1634+/* src-466 %jibb /tests/golden/types-null-context/source/jibb
1635−/* tre-466 %txt /tests/golden/types-null-overlap/tree/txt
1635+/* tok-466 %txt /tests/golden/types-null-context/tokens/txt
1636−/* typ-466 %txt /tests/golden/types-null-overlap/types/txt
1636+/* tre-466 %txt /tests/golden/types-null-context/tree/txt
1637−/* src-467 %jibb /tests/golden/types-null-unresolved/source/jibb
1637+/* typ-466 %txt /tests/golden/types-null-context/types/txt
1638−/* tok-467 %txt /tests/golden/types-null-unresolved/tokens/txt
1638+/* src-467 %jibb /tests/golden/types-null-overlap/source/jibb
1639−/* tre-467 %txt /tests/golden/types-null-unresolved/tree/txt
1639+/* tok-467 %txt /tests/golden/types-null-overlap/tokens/txt
1640−/* typ-467 %txt /tests/golden/types-null-unresolved/types/txt
1640+/* tre-467 %txt /tests/golden/types-null-overlap/tree/txt
1641−/* src-468 %jibb /tests/golden/types-pair-context/source/jibb
1641+/* typ-467 %txt /tests/golden/types-null-overlap/types/txt
1642−/* tok-468 %txt /tests/golden/types-pair-context/tokens/txt
1642+/* src-468 %jibb /tests/golden/types-null-unresolved/source/jibb
1643−/* tre-468 %txt /tests/golden/types-pair-context/tree/txt
1643+/* tok-468 %txt /tests/golden/types-null-unresolved/tokens/txt
1644−/* typ-468 %txt /tests/golden/types-pair-context/types/txt
1644+/* tre-468 %txt /tests/golden/types-null-unresolved/tree/txt
1645−/* src-469 %jibb /tests/golden/types-partial-apply/source/jibb
1645+/* typ-468 %txt /tests/golden/types-null-unresolved/types/txt
1646−/* tok-469 %txt /tests/golden/types-partial-apply/tokens/txt
1646+/* src-469 %jibb /tests/golden/types-pair-context/source/jibb
1647−/* tre-469 %txt /tests/golden/types-partial-apply/tree/txt
1647+/* tok-469 %txt /tests/golden/types-pair-context/tokens/txt
1648−/* typ-469 %txt /tests/golden/types-partial-apply/types/txt
1648+/* tre-469 %txt /tests/golden/types-pair-context/tree/txt
1649−/* src-470 %jibb /tests/golden/types-partial-atom-alias/source/jibb
1649+/* typ-469 %txt /tests/golden/types-pair-context/types/txt
1650−/* tok-470 %txt /tests/golden/types-partial-atom-alias/tokens/txt
1650+/* src-470 %jibb /tests/golden/types-partial-apply/source/jibb
1651−/* tre-470 %txt /tests/golden/types-partial-atom-alias/tree/txt
1651+/* tok-470 %txt /tests/golden/types-partial-apply/tokens/txt
1652−/* typ-470 %txt /tests/golden/types-partial-atom-alias/types/txt
1652+/* tre-470 %txt /tests/golden/types-partial-apply/tree/txt
1653−/* src-471 %jibb /tests/golden/types-partial-atom-constraint/source/jibb
1653+/* typ-470 %txt /tests/golden/types-partial-apply/types/txt
1654−/* tok-471 %txt /tests/golden/types-partial-atom-constraint/tokens/txt
1654+/* src-471 %jibb /tests/golden/types-partial-atom-alias/source/jibb
1655−/* tre-471 %txt /tests/golden/types-partial-atom-constraint/tree/txt
1655+/* tok-471 %txt /tests/golden/types-partial-atom-alias/tokens/txt
1656−/* typ-471 %txt /tests/golden/types-partial-atom-constraint/types/txt
1656+/* tre-471 %txt /tests/golden/types-partial-atom-alias/tree/txt
1657−/* src-472 %jibb /tests/golden/types-partial-atom-widening/source/jibb
1657+/* typ-471 %txt /tests/golden/types-partial-atom-alias/types/txt
1658−/* tok-472 %txt /tests/golden/types-partial-atom-widening/tokens/txt
1658+/* src-472 %jibb /tests/golden/types-partial-atom-constraint/source/jibb
1659−/* tre-472 %txt /tests/golden/types-partial-atom-widening/tree/txt
1659+/* tok-472 %txt /tests/golden/types-partial-atom-constraint/tokens/txt
1660−/* typ-472 %txt /tests/golden/types-partial-atom-widening/types/txt
1660+/* tre-472 %txt /tests/golden/types-partial-atom-constraint/tree/txt
1661−/* src-473 %jibb /tests/golden/types-partial-aura/source/jibb
1661+/* typ-472 %txt /tests/golden/types-partial-atom-constraint/types/txt
1662−/* tok-473 %txt /tests/golden/types-partial-aura/tokens/txt
1662+/* src-473 %jibb /tests/golden/types-partial-atom-widening/source/jibb
1663−/* tre-473 %txt /tests/golden/types-partial-aura/tree/txt
1663+/* tok-473 %txt /tests/golden/types-partial-atom-widening/tokens/txt
1664−/* typ-473 %txt /tests/golden/types-partial-aura/types/txt
1664+/* tre-473 %txt /tests/golden/types-partial-atom-widening/tree/txt
1665−/* src-474 %jibb /tests/golden/types-partial-aura-family/source/jibb
1665+/* typ-473 %txt /tests/golden/types-partial-atom-widening/types/txt
1666−/* tok-474 %txt /tests/golden/types-partial-aura-family/tokens/txt
1666+/* src-474 %jibb /tests/golden/types-partial-aura/source/jibb
1667−/* tre-474 %txt /tests/golden/types-partial-aura-family/tree/txt
1667+/* tok-474 %txt /tests/golden/types-partial-aura/tokens/txt
1668−/* typ-474 %txt /tests/golden/types-partial-aura-family/types/txt
1668+/* tre-474 %txt /tests/golden/types-partial-aura/tree/txt
1669−/* src-475 %jibb /tests/golden/types-partial-aura-generalization/source/jibb
1669+/* typ-474 %txt /tests/golden/types-partial-aura/types/txt
1670−/* tok-475 %txt /tests/golden/types-partial-aura-generalization/tokens/txt
1670+/* src-475 %jibb /tests/golden/types-partial-aura-family/source/jibb
1671−/* tre-475 %txt /tests/golden/types-partial-aura-generalization/tree/txt
1671+/* tok-475 %txt /tests/golden/types-partial-aura-family/tokens/txt
1672−/* typ-475 %txt /tests/golden/types-partial-aura-generalization/types/txt
1672+/* tre-475 %txt /tests/golden/types-partial-aura-family/tree/txt
1673−/* src-476 %jibb /tests/golden/types-partial-bare-atom/source/jibb
1673+/* typ-475 %txt /tests/golden/types-partial-aura-family/types/txt
1674−/* tok-476 %txt /tests/golden/types-partial-bare-atom/tokens/txt
1674+/* src-476 %jibb /tests/golden/types-partial-aura-generalization/source/jibb
1675−/* tre-476 %txt /tests/golden/types-partial-bare-atom/tree/txt
1675+/* tok-476 %txt /tests/golden/types-partial-aura-generalization/tokens/txt
1676−/* typ-476 %txt /tests/golden/types-partial-bare-atom/types/txt
1676+/* tre-476 %txt /tests/golden/types-partial-aura-generalization/tree/txt
1677−/* src-477 %jibb /tests/golden/types-partial-branch-widening/source/jibb
1677+/* typ-476 %txt /tests/golden/types-partial-aura-generalization/types/txt
1678−/* tok-477 %txt /tests/golden/types-partial-branch-widening/tokens/txt
1678+/* src-477 %jibb /tests/golden/types-partial-bare-atom/source/jibb
1679−/* tre-477 %txt /tests/golden/types-partial-branch-widening/tree/txt
1679+/* tok-477 %txt /tests/golden/types-partial-bare-atom/tokens/txt
1680−/* typ-477 %txt /tests/golden/types-partial-branch-widening/types/txt
1680+/* tre-477 %txt /tests/golden/types-partial-bare-atom/tree/txt
1681−/* src-478 %jibb /tests/golden/types-partial-conflicting-sites/source/jibb
1681+/* typ-477 %txt /tests/golden/types-partial-bare-atom/types/txt
1682−/* tok-478 %txt /tests/golden/types-partial-conflicting-sites/tokens/txt
1682+/* src-478 %jibb /tests/golden/types-partial-branch-widening/source/jibb
1683−/* tre-478 %txt /tests/golden/types-partial-conflicting-sites/tree/txt
1683+/* tok-478 %txt /tests/golden/types-partial-branch-widening/tokens/txt
1684−/* typ-478 %txt /tests/golden/types-partial-conflicting-sites/types/txt
1684+/* tre-478 %txt /tests/golden/types-partial-branch-widening/tree/txt
1685−/* src-479 %jibb /tests/golden/types-partial-decimal-default/source/jibb
1685+/* typ-478 %txt /tests/golden/types-partial-branch-widening/types/txt
1686−/* tok-479 %txt /tests/golden/types-partial-decimal-default/tokens/txt
1686+/* src-479 %jibb /tests/golden/types-partial-conflicting-sites/source/jibb
1687−/* tre-479 %txt /tests/golden/types-partial-decimal-default/tree/txt
1687+/* tok-479 %txt /tests/golden/types-partial-conflicting-sites/tokens/txt
1688−/* typ-479 %txt /tests/golden/types-partial-decimal-default/types/txt
1688+/* tre-479 %txt /tests/golden/types-partial-conflicting-sites/tree/txt
1689−/* src-480 %jibb /tests/golden/types-partial-dependency-chain/source/jibb
1689+/* typ-479 %txt /tests/golden/types-partial-conflicting-sites/types/txt
1690−/* tok-480 %txt /tests/golden/types-partial-dependency-chain/tokens/txt
1690+/* src-480 %jibb /tests/golden/types-partial-decimal-default/source/jibb
1691−/* tre-480 %txt /tests/golden/types-partial-dependency-chain/tree/txt
1691+/* tok-480 %txt /tests/golden/types-partial-decimal-default/tokens/txt
1692−/* typ-480 %txt /tests/golden/types-partial-dependency-chain/types/txt
1692+/* tre-480 %txt /tests/golden/types-partial-decimal-default/tree/txt
1693−/* src-481 %jibb /tests/golden/types-partial-explicit-capital/source/jibb
1693+/* typ-480 %txt /tests/golden/types-partial-decimal-default/types/txt
1694−/* tok-481 %txt /tests/golden/types-partial-explicit-capital/tokens/txt
1694+/* src-481 %jibb /tests/golden/types-partial-dependency-chain/source/jibb
1695−/* tre-481 %txt /tests/golden/types-partial-explicit-capital/tree/txt
1695+/* tok-481 %txt /tests/golden/types-partial-dependency-chain/tokens/txt
1696−/* typ-481 %txt /tests/golden/types-partial-explicit-capital/types/txt
1696+/* tre-481 %txt /tests/golden/types-partial-dependency-chain/tree/txt
1697−/* src-482 %jibb /tests/golden/types-partial-forward/source/jibb
1697+/* typ-481 %txt /tests/golden/types-partial-dependency-chain/types/txt
1698−/* tok-482 %txt /tests/golden/types-partial-forward/tokens/txt
1698+/* src-482 %jibb /tests/golden/types-partial-explicit-capital/source/jibb
1699−/* tre-482 %txt /tests/golden/types-partial-forward/tree/txt
1699+/* tok-482 %txt /tests/golden/types-partial-explicit-capital/tokens/txt
1700−/* typ-482 %txt /tests/golden/types-partial-forward/types/txt
1700+/* tre-482 %txt /tests/golden/types-partial-explicit-capital/tree/txt
1701−/* src-483 %jibb /tests/golden/types-partial-generalization/source/jibb
1701+/* typ-482 %txt /tests/golden/types-partial-explicit-capital/types/txt
1702−/* tok-483 %txt /tests/golden/types-partial-generalization/tokens/txt
1702+/* src-483 %jibb /tests/golden/types-partial-forward/source/jibb
1703−/* tre-483 %txt /tests/golden/types-partial-generalization/tree/txt
1703+/* tok-483 %txt /tests/golden/types-partial-forward/tokens/txt
1704−/* typ-483 %txt /tests/golden/types-partial-generalization/types/txt
1704+/* tre-483 %txt /tests/golden/types-partial-forward/tree/txt
1705−/* src-484 %jibb /tests/golden/types-partial-identity/source/jibb
1705+/* typ-483 %txt /tests/golden/types-partial-forward/types/txt
1706−/* tok-484 %txt /tests/golden/types-partial-identity/tokens/txt
1706+/* src-484 %jibb /tests/golden/types-partial-generalization/source/jibb
1707−/* tre-484 %txt /tests/golden/types-partial-identity/tree/txt
1707+/* tok-484 %txt /tests/golden/types-partial-generalization/tokens/txt
1708−/* typ-484 %txt /tests/golden/types-partial-identity/types/txt
1708+/* tre-484 %txt /tests/golden/types-partial-generalization/tree/txt
1709−/* src-485 %jibb /tests/golden/types-partial-independent-atoms/source/jibb
1709+/* typ-484 %txt /tests/golden/types-partial-generalization/types/txt
1710−/* tok-485 %txt /tests/golden/types-partial-independent-atoms/tokens/txt
1710+/* src-485 %jibb /tests/golden/types-partial-identity/source/jibb
1711−/* tre-485 %txt /tests/golden/types-partial-independent-atoms/tree/txt
1711+/* tok-485 %txt /tests/golden/types-partial-identity/tokens/txt
1712−/* typ-485 %txt /tests/golden/types-partial-independent-atoms/types/txt
1712+/* tre-485 %txt /tests/golden/types-partial-identity/tree/txt
1713−/* src-486 %jibb /tests/golden/types-partial-local-molds/source/jibb
1713+/* typ-485 %txt /tests/golden/types-partial-identity/types/txt
1714−/* tok-486 %txt /tests/golden/types-partial-local-molds/tokens/txt
1714+/* src-486 %jibb /tests/golden/types-partial-independent-atoms/source/jibb
1715−/* tre-486 %txt /tests/golden/types-partial-local-molds/tree/txt
1715+/* tok-486 %txt /tests/golden/types-partial-independent-atoms/tokens/txt
1716−/* typ-486 %txt /tests/golden/types-partial-local-molds/types/txt
1716+/* tre-486 %txt /tests/golden/types-partial-independent-atoms/tree/txt
1717−/* src-487 %jibb /tests/golden/types-partial-locals/source/jibb
1717+/* typ-486 %txt /tests/golden/types-partial-independent-atoms/types/txt
1718−/* tok-487 %txt /tests/golden/types-partial-locals/tokens/txt
1718+/* src-487 %jibb /tests/golden/types-partial-local-molds/source/jibb
1719−/* tre-487 %txt /tests/golden/types-partial-locals/tree/txt
1719+/* tok-487 %txt /tests/golden/types-partial-local-molds/tokens/txt
1720−/* typ-487 %txt /tests/golden/types-partial-locals/types/txt
1720+/* tre-487 %txt /tests/golden/types-partial-local-molds/tree/txt
1721−/* src-488 %jibb /tests/golden/types-partial-many-atom-constraints/source/jibb
1721+/* typ-487 %txt /tests/golden/types-partial-local-molds/types/txt
1722−/* tok-488 %txt /tests/golden/types-partial-many-atom-constraints/tokens/txt
1722+/* src-488 %jibb /tests/golden/types-partial-locals/source/jibb
1723−/* tre-488 %txt /tests/golden/types-partial-many-atom-constraints/tree/txt
1723+/* tok-488 %txt /tests/golden/types-partial-locals/tokens/txt
1724−/* typ-488 %txt /tests/golden/types-partial-many-atom-constraints/types/txt
1724+/* tre-488 %txt /tests/golden/types-partial-locals/tree/txt
1725−/* src-489 %jibb /tests/golden/types-partial-mold-bare-aura/source/jibb
1725+/* typ-488 %txt /tests/golden/types-partial-locals/types/txt
1726−/* tok-489 %txt /tests/golden/types-partial-mold-bare-aura/tokens/txt
1726+/* src-489 %jibb /tests/golden/types-partial-many-atom-constraints/source/jibb
1727−/* tre-489 %txt /tests/golden/types-partial-mold-bare-aura/tree/txt
1727+/* tok-489 %txt /tests/golden/types-partial-many-atom-constraints/tokens/txt
1728−/* typ-489 %txt /tests/golden/types-partial-mold-bare-aura/types/txt
1728+/* tre-489 %txt /tests/golden/types-partial-many-atom-constraints/tree/txt
1729−/* src-490 %jibb /tests/golden/types-partial-mold-composite/source/jibb
1729+/* typ-489 %txt /tests/golden/types-partial-many-atom-constraints/types/txt
1730−/* tok-490 %txt /tests/golden/types-partial-mold-composite/tokens/txt
1730+/* src-490 %jibb /tests/golden/types-partial-mold-bare-aura/source/jibb
1731−/* tre-490 %txt /tests/golden/types-partial-mold-composite/tree/txt
1731+/* tok-490 %txt /tests/golden/types-partial-mold-bare-aura/tokens/txt
1732−/* typ-490 %txt /tests/golden/types-partial-mold-composite/types/txt
1732+/* tre-490 %txt /tests/golden/types-partial-mold-bare-aura/tree/txt
1733−/* src-491 %jibb /tests/golden/types-partial-mold-forward/source/jibb
1733+/* typ-490 %txt /tests/golden/types-partial-mold-bare-aura/types/txt
1734−/* tok-491 %txt /tests/golden/types-partial-mold-forward/tokens/txt
1734+/* src-491 %jibb /tests/golden/types-partial-mold-composite/source/jibb
1735−/* tre-491 %txt /tests/golden/types-partial-mold-forward/tree/txt
1735+/* tok-491 %txt /tests/golden/types-partial-mold-composite/tokens/txt
1736−/* typ-491 %txt /tests/golden/types-partial-mold-forward/types/txt
1736+/* tre-491 %txt /tests/golden/types-partial-mold-composite/tree/txt
1737−/* src-492 %jibb /tests/golden/types-partial-mold-recursive/source/jibb
1737+/* typ-491 %txt /tests/golden/types-partial-mold-composite/types/txt
1738−/* tok-492 %txt /tests/golden/types-partial-mold-recursive/tokens/txt
1738+/* src-492 %jibb /tests/golden/types-partial-mold-forward/source/jibb
1739−/* tre-492 %txt /tests/golden/types-partial-mold-recursive/tree/txt
1739+/* tok-492 %txt /tests/golden/types-partial-mold-forward/tokens/txt
1740−/* typ-492 %txt /tests/golden/types-partial-mold-recursive/types/txt
1740+/* tre-492 %txt /tests/golden/types-partial-mold-forward/tree/txt
1741−/* src-493 %jibb /tests/golden/types-partial-occurs/source/jibb
1741+/* typ-492 %txt /tests/golden/types-partial-mold-forward/types/txt
1742−/* tok-493 %txt /tests/golden/types-partial-occurs/tokens/txt
1742+/* src-493 %jibb /tests/golden/types-partial-mold-recursive/source/jibb
1743−/* tre-493 %txt /tests/golden/types-partial-occurs/tree/txt
1743+/* tok-493 %txt /tests/golden/types-partial-mold-recursive/tokens/txt
1744−/* typ-493 %txt /tests/golden/types-partial-occurs/types/txt
1744+/* tre-493 %txt /tests/golden/types-partial-mold-recursive/tree/txt
1745−/* src-494 %jibb /tests/golden/types-partial-projection/source/jibb
1745+/* typ-493 %txt /tests/golden/types-partial-mold-recursive/types/txt
1746−/* tok-494 %txt /tests/golden/types-partial-projection/tokens/txt
1746+/* src-494 %jibb /tests/golden/types-partial-occurs/source/jibb
1747−/* tre-494 %txt /tests/golden/types-partial-projection/tree/txt
1747+/* tok-494 %txt /tests/golden/types-partial-occurs/tokens/txt
1748−/* typ-494 %txt /tests/golden/types-partial-projection/types/txt
1748+/* tre-494 %txt /tests/golden/types-partial-occurs/tree/txt
1749−/* src-495 %jibb /tests/golden/types-partial-shadow-global/source/jibb
1749+/* typ-494 %txt /tests/golden/types-partial-occurs/types/txt
1750−/* tok-495 %txt /tests/golden/types-partial-shadow-global/tokens/txt
1750+/* src-495 %jibb /tests/golden/types-partial-projection/source/jibb
1751−/* tre-495 %txt /tests/golden/types-partial-shadow-global/tree/txt
1751+/* tok-495 %txt /tests/golden/types-partial-projection/tokens/txt
1752−/* typ-495 %txt /tests/golden/types-partial-shadow-global/types/txt
1752+/* tre-495 %txt /tests/golden/types-partial-projection/tree/txt
1753−/* src-496 %jibb /tests/golden/types-partial-shared-tvar/source/jibb
1753+/* typ-495 %txt /tests/golden/types-partial-projection/types/txt
1754−/* tok-496 %txt /tests/golden/types-partial-shared-tvar/tokens/txt
1754+/* src-496 %jibb /tests/golden/types-partial-shadow-global/source/jibb
1755−/* tre-496 %txt /tests/golden/types-partial-shared-tvar/tree/txt
1755+/* tok-496 %txt /tests/golden/types-partial-shadow-global/tokens/txt
1756−/* typ-496 %txt /tests/golden/types-partial-shared-tvar/types/txt
1756+/* tre-496 %txt /tests/golden/types-partial-shadow-global/tree/txt
1757−/* src-497 %jibb /tests/golden/types-partial-union-cases/source/jibb
1757+/* typ-496 %txt /tests/golden/types-partial-shadow-global/types/txt
1758−/* tok-497 %txt /tests/golden/types-partial-union-cases/tokens/txt
1758+/* src-497 %jibb /tests/golden/types-partial-shared-tvar/source/jibb
1759−/* tre-497 %txt /tests/golden/types-partial-union-cases/tree/txt
1759+/* tok-497 %txt /tests/golden/types-partial-shared-tvar/tokens/txt
1760−/* typ-497 %txt /tests/golden/types-partial-union-cases/types/txt
1760+/* tre-497 %txt /tests/golden/types-partial-shared-tvar/tree/txt
1761−/* src-498 %jibb /tests/golden/types-partial-union-edges/source/jibb
1761+/* typ-497 %txt /tests/golden/types-partial-shared-tvar/types/txt
1762−/* tok-498 %txt /tests/golden/types-partial-union-edges/tokens/txt
1762+/* src-498 %jibb /tests/golden/types-partial-union-cases/source/jibb
1763−/* tre-498 %txt /tests/golden/types-partial-union-edges/tree/txt
1763+/* tok-498 %txt /tests/golden/types-partial-union-cases/tokens/txt
1764−/* typ-498 %txt /tests/golden/types-partial-union-edges/types/txt
1764+/* tre-498 %txt /tests/golden/types-partial-union-cases/tree/txt
1765−/* src-499 %jibb /tests/golden/types-partial-unresolved-tag/source/jibb
1765+/* typ-498 %txt /tests/golden/types-partial-union-cases/types/txt
1766−/* tok-499 %txt /tests/golden/types-partial-unresolved-tag/tokens/txt
1766+/* src-499 %jibb /tests/golden/types-partial-union-edges/source/jibb
1767−/* tre-499 %txt /tests/golden/types-partial-unresolved-tag/tree/txt
1767+/* tok-499 %txt /tests/golden/types-partial-union-edges/tokens/txt
1768−/* typ-499 %txt /tests/golden/types-partial-unresolved-tag/types/txt
1768+/* tre-499 %txt /tests/golden/types-partial-union-edges/tree/txt
1769−/* src-500 %jibb /tests/golden/types-prelude-cmd/source/jibb
1769+/* typ-499 %txt /tests/golden/types-partial-union-edges/types/txt
1770−/* tok-500 %txt /tests/golden/types-prelude-cmd/tokens/txt
1770+/* src-500 %jibb /tests/golden/types-partial-unresolved-tag/source/jibb
1771−/* tre-500 %txt /tests/golden/types-prelude-cmd/tree/txt
1771+/* tok-500 %txt /tests/golden/types-partial-unresolved-tag/tokens/txt
1772−/* typ-500 %txt /tests/golden/types-prelude-cmd/types/txt
1772+/* tre-500 %txt /tests/golden/types-partial-unresolved-tag/tree/txt
1773−/* src-501 %jibb /tests/golden/types-prelude-direct/source/jibb
1773+/* typ-500 %txt /tests/golden/types-partial-unresolved-tag/types/txt
1774−/* tok-501 %txt /tests/golden/types-prelude-direct/tokens/txt
1774+/* src-501 %jibb /tests/golden/types-prelude-cmd/source/jibb
1775−/* tre-501 %txt /tests/golden/types-prelude-direct/tree/txt
1775+/* tok-501 %txt /tests/golden/types-prelude-cmd/tokens/txt
1776−/* typ-501 %txt /tests/golden/types-prelude-direct/types/txt
1776+/* tre-501 %txt /tests/golden/types-prelude-cmd/tree/txt
1777−/* src-502 %jibb /tests/golden/types-prelude-functional/source/jibb
1777+/* typ-501 %txt /tests/golden/types-prelude-cmd/types/txt
1778−/* tok-502 %txt /tests/golden/types-prelude-functional/tokens/txt
1778+/* src-502 %jibb /tests/golden/types-prelude-direct/source/jibb
1779−/* tre-502 %txt /tests/golden/types-prelude-functional/tree/txt
1779+/* tok-502 %txt /tests/golden/types-prelude-direct/tokens/txt
1780−/* typ-502 %txt /tests/golden/types-prelude-functional/types/txt
1780+/* tre-502 %txt /tests/golden/types-prelude-direct/tree/txt
1781−/* src-503 %jibb /tests/golden/types-prelude-interface/source/jibb
1781+/* typ-502 %txt /tests/golden/types-prelude-direct/types/txt
1782−/* tok-503 %txt /tests/golden/types-prelude-interface/tokens/txt
1782+/* src-503 %jibb /tests/golden/types-prelude-functional/source/jibb
1783−/* tre-503 %txt /tests/golden/types-prelude-interface/tree/txt
1783+/* tok-503 %txt /tests/golden/types-prelude-functional/tokens/txt
1784−/* mod-503-1 %jibb /tests/golden/types-prelude-interface/modules/ui/left/jibb
1784+/* tre-503 %txt /tests/golden/types-prelude-functional/tree/txt
1785−/* mod-503-2 %jibb /tests/golden/types-prelude-interface/modules/ui/right/jibb
1785+/* typ-503 %txt /tests/golden/types-prelude-functional/types/txt
1786−/* typ-503 %txt /tests/golden/types-prelude-interface/types/txt
1786+/* src-504 %jibb /tests/golden/types-prelude-interface/source/jibb
1787−/* mtre-503 %txt /tests/golden/types-prelude-interface/module-trees/txt
1787+/* tok-504 %txt /tests/golden/types-prelude-interface/tokens/txt
1788−/* src-504 %jibb /tests/golden/types-prelude-list-functions/source/jibb
1788+/* tre-504 %txt /tests/golden/types-prelude-interface/tree/txt
1789−/* tok-504 %txt /tests/golden/types-prelude-list-functions/tokens/txt
1789+/* mod-504-1 %jibb /tests/golden/types-prelude-interface/modules/ui/left/jibb
1790−/* tre-504 %txt /tests/golden/types-prelude-list-functions/tree/txt
1790+/* mod-504-2 %jibb /tests/golden/types-prelude-interface/modules/ui/right/jibb
1791−/* mod-504-1 %jibb /tests/golden/types-prelude-list-functions/modules/ui/lib/jibb
1791+/* typ-504 %txt /tests/golden/types-prelude-interface/types/txt
1792−/* typ-504 %txt /tests/golden/types-prelude-list-functions/types/txt
1792+/* mtre-504 %txt /tests/golden/types-prelude-interface/module-trees/txt
1793−/* mtre-504 %txt /tests/golden/types-prelude-list-functions/module-trees/txt
1793+/* src-505 %jibb /tests/golden/types-prelude-list-functions/source/jibb
1794−/* src-505 %jibb /tests/golden/types-prelude-list-helpers/source/jibb
1794+/* tok-505 %txt /tests/golden/types-prelude-list-functions/tokens/txt
1795−/* tok-505 %txt /tests/golden/types-prelude-list-helpers/tokens/txt
1795+/* tre-505 %txt /tests/golden/types-prelude-list-functions/tree/txt
1796−/* tre-505 %txt /tests/golden/types-prelude-list-helpers/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-helpers/types/txt
1797+/* typ-505 %txt /tests/golden/types-prelude-list-functions/types/txt
1798−/* src-506 %jibb /tests/golden/types-prelude-unit-helpers/source/jibb
1798+/* mtre-505 %txt /tests/golden/types-prelude-list-functions/module-trees/txt
1799−/* tok-506 %txt /tests/golden/types-prelude-unit-helpers/tokens/txt
1799+/* src-506 %jibb /tests/golden/types-prelude-list-helpers/source/jibb
1800−/* tre-506 %txt /tests/golden/types-prelude-unit-helpers/tree/txt
1800+/* tok-506 %txt /tests/golden/types-prelude-list-helpers/tokens/txt
1801−/* typ-506 %txt /tests/golden/types-prelude-unit-helpers/types/txt
1801+/* tre-506 %txt /tests/golden/types-prelude-list-helpers/tree/txt
1802−/* src-507 %jibb /tests/golden/types-record-bound-variable/source/jibb
1802+/* typ-506 %txt /tests/golden/types-prelude-list-helpers/types/txt
1803−/* tok-507 %txt /tests/golden/types-record-bound-variable/tokens/txt
1803+/* src-507 %jibb /tests/golden/types-prelude-predicates/source/jibb
1804−/* tre-507 %txt /tests/golden/types-record-bound-variable/tree/txt
1804+/* tok-507 %txt /tests/golden/types-prelude-predicates/tokens/txt
1805−/* typ-507 %txt /tests/golden/types-record-bound-variable/types/txt
1805+/* tre-507 %txt /tests/golden/types-prelude-predicates/tree/txt
1806−/* src-508 %jibb /tests/golden/types-record-cast-context/source/jibb
1806+/* typ-507 %txt /tests/golden/types-prelude-predicates/types/txt
1807−/* tok-508 %txt /tests/golden/types-record-cast-context/tokens/txt
1807+/* src-508 %jibb /tests/golden/types-prelude-unit-helpers/source/jibb
1808−/* tre-508 %txt /tests/golden/types-record-cast-context/tree/txt
1808+/* tok-508 %txt /tests/golden/types-prelude-unit-helpers/tokens/txt
1809−/* typ-508 %txt /tests/golden/types-record-cast-context/types/txt
1809+/* tre-508 %txt /tests/golden/types-prelude-unit-helpers/tree/txt
1810−/* src-509 %jibb /tests/golden/types-record-change/source/jibb
1810+/* typ-508 %txt /tests/golden/types-prelude-unit-helpers/types/txt
1811−/* tok-509 %txt /tests/golden/types-record-change/tokens/txt
1811+/* src-509 %jibb /tests/golden/types-record-bound-variable/source/jibb
1812−/* tre-509 %txt /tests/golden/types-record-change/tree/txt
1812+/* tok-509 %txt /tests/golden/types-record-bound-variable/tokens/txt
1813−/* typ-509 %txt /tests/golden/types-record-change/types/txt
1813+/* tre-509 %txt /tests/golden/types-record-bound-variable/tree/txt
1814−/* src-510 %jibb /tests/golden/types-record-change-generic/source/jibb
1814+/* typ-509 %txt /tests/golden/types-record-bound-variable/types/txt
1815−/* tok-510 %txt /tests/golden/types-record-change-generic/tokens/txt
1815+/* src-510 %jibb /tests/golden/types-record-cast-context/source/jibb
1816−/* tre-510 %txt /tests/golden/types-record-change-generic/tree/txt
1816+/* tok-510 %txt /tests/golden/types-record-cast-context/tokens/txt
1817−/* typ-510 %txt /tests/golden/types-record-change-generic/types/txt
1817+/* tre-510 %txt /tests/golden/types-record-cast-context/tree/txt
1818−/* src-511 %jibb /tests/golden/types-record-faces/source/jibb
1818+/* typ-510 %txt /tests/golden/types-record-cast-context/types/txt
1819−/* tok-511 %txt /tests/golden/types-record-faces/tokens/txt
1819+/* src-511 %jibb /tests/golden/types-record-change/source/jibb
1820−/* tre-511 %txt /tests/golden/types-record-faces/tree/txt
1820+/* tok-511 %txt /tests/golden/types-record-change/tokens/txt
1821−/* typ-511 %txt /tests/golden/types-record-faces/types/txt
1821+/* tre-511 %txt /tests/golden/types-record-change/tree/txt
1822−/* src-512 %jibb /tests/golden/types-record-import/source/jibb
1822+/* typ-511 %txt /tests/golden/types-record-change/types/txt
1823−/* tok-512 %txt /tests/golden/types-record-import/tokens/txt
1823+/* src-512 %jibb /tests/golden/types-record-change-generic/source/jibb
1824−/* tre-512 %txt /tests/golden/types-record-import/tree/txt
1824+/* tok-512 %txt /tests/golden/types-record-change-generic/tokens/txt
1825−/* mod-512-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
1825+/* tre-512 %txt /tests/golden/types-record-change-generic/tree/txt
1826−/* typ-512 %txt /tests/golden/types-record-import/types/txt
1826+/* typ-512 %txt /tests/golden/types-record-change-generic/types/txt
1827−/* mtre-512 %txt /tests/golden/types-record-import/module-trees/txt
1827+/* src-513 %jibb /tests/golden/types-record-faces/source/jibb
1828−/* src-513 %jibb /tests/golden/types-record-local-scheme/source/jibb
1828+/* tok-513 %txt /tests/golden/types-record-faces/tokens/txt
1829−/* tok-513 %txt /tests/golden/types-record-local-scheme/tokens/txt
1829+/* tre-513 %txt /tests/golden/types-record-faces/tree/txt
1830−/* tre-513 %txt /tests/golden/types-record-local-scheme/tree/txt
1830+/* typ-513 %txt /tests/golden/types-record-faces/types/txt
1831−/* typ-513 %txt /tests/golden/types-record-local-scheme/types/txt
1831+/* src-514 %jibb /tests/golden/types-record-import/source/jibb
1832−/* src-514 %jibb /tests/golden/types-record-nested/source/jibb
1832+/* tok-514 %txt /tests/golden/types-record-import/tokens/txt
1833−/* tok-514 %txt /tests/golden/types-record-nested/tokens/txt
1833+/* tre-514 %txt /tests/golden/types-record-import/tree/txt
1834−/* tre-514 %txt /tests/golden/types-record-nested/tree/txt
1834+/* mod-514-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
1835−/* typ-514 %txt /tests/golden/types-record-nested/types/txt
1835+/* typ-514 %txt /tests/golden/types-record-import/types/txt
1836−/* src-515 %jibb /tests/golden/types-record-to-tuple/source/jibb
1836+/* mtre-514 %txt /tests/golden/types-record-import/module-trees/txt
1837−/* tok-515 %txt /tests/golden/types-record-to-tuple/tokens/txt
1837+/* src-515 %jibb /tests/golden/types-record-local-scheme/source/jibb
1838−/* tre-515 %txt /tests/golden/types-record-to-tuple/tree/txt
1838+/* tok-515 %txt /tests/golden/types-record-local-scheme/tokens/txt
1839−/* typ-515 %txt /tests/golden/types-record-to-tuple/types/txt
1839+/* tre-515 %txt /tests/golden/types-record-local-scheme/tree/txt
1840−/* src-516 %jibb /tests/golden/types-recursion-scc-failures/source/jibb
1840+/* typ-515 %txt /tests/golden/types-record-local-scheme/types/txt
1841−/* tok-516 %txt /tests/golden/types-recursion-scc-failures/tokens/txt
1841+/* src-516 %jibb /tests/golden/types-record-nested/source/jibb
1842−/* tre-516 %txt /tests/golden/types-recursion-scc-failures/tree/txt
1842+/* tok-516 %txt /tests/golden/types-record-nested/tokens/txt
1843−/* typ-516 %txt /tests/golden/types-recursion-scc-failures/types/txt
1843+/* tre-516 %txt /tests/golden/types-record-nested/tree/txt
1844−/* src-517 %jibb /tests/golden/types-recursion-scc-groups/source/jibb
1844+/* typ-516 %txt /tests/golden/types-record-nested/types/txt
1845−/* tok-517 %txt /tests/golden/types-recursion-scc-groups/tokens/txt
1845+/* src-517 %jibb /tests/golden/types-record-to-tuple/source/jibb
1846−/* tre-517 %txt /tests/golden/types-recursion-scc-groups/tree/txt
1846+/* tok-517 %txt /tests/golden/types-record-to-tuple/tokens/txt
1847−/* typ-517 %txt /tests/golden/types-recursion-scc-groups/types/txt
1847+/* tre-517 %txt /tests/golden/types-record-to-tuple/tree/txt
1848−/* src-518 %jibb /tests/golden/types-recursion-scc-import/source/jibb
1848+/* typ-517 %txt /tests/golden/types-record-to-tuple/types/txt
1849−/* tok-518 %txt /tests/golden/types-recursion-scc-import/tokens/txt
1849+/* src-518 %jibb /tests/golden/types-recursion-scc-failures/source/jibb
1850−/* tre-518 %txt /tests/golden/types-recursion-scc-import/tree/txt
1850+/* tok-518 %txt /tests/golden/types-recursion-scc-failures/tokens/txt
1851−/* mod-518-1 %jibb /tests/golden/types-recursion-scc-import/modules/ui/lib/jibb
1851+/* tre-518 %txt /tests/golden/types-recursion-scc-failures/tree/txt
1852−/* typ-518 %txt /tests/golden/types-recursion-scc-import/types/txt
1852+/* typ-518 %txt /tests/golden/types-recursion-scc-failures/types/txt
1853−/* mtre-518 %txt /tests/golden/types-recursion-scc-import/module-trees/txt
1853+/* src-519 %jibb /tests/golden/types-recursion-scc-groups/source/jibb
1854−/* src-519 %jibb /tests/golden/types-recursion-scc-import-bad/source/jibb
1854+/* tok-519 %txt /tests/golden/types-recursion-scc-groups/tokens/txt
1855−/* tok-519 %txt /tests/golden/types-recursion-scc-import-bad/tokens/txt
1855+/* tre-519 %txt /tests/golden/types-recursion-scc-groups/tree/txt
1856−/* tre-519 %txt /tests/golden/types-recursion-scc-import-bad/tree/txt
1856+/* typ-519 %txt /tests/golden/types-recursion-scc-groups/types/txt
1857−/* mod-519-1 %jibb /tests/golden/types-recursion-scc-import-bad/modules/ui/lib/jibb
1857+/* src-520 %jibb /tests/golden/types-recursion-scc-import/source/jibb
1858−/* typ-519 %txt /tests/golden/types-recursion-scc-import-bad/types/txt
1858+/* tok-520 %txt /tests/golden/types-recursion-scc-import/tokens/txt
1859−/* mtre-519 %txt /tests/golden/types-recursion-scc-import-bad/module-trees/txt
1859+/* tre-520 %txt /tests/golden/types-recursion-scc-import/tree/txt
1860−/* src-520 %jibb /tests/golden/types-recursion-scc-local/source/jibb
1860+/* mod-520-1 %jibb /tests/golden/types-recursion-scc-import/modules/ui/lib/jibb
1861−/* tok-520 %txt /tests/golden/types-recursion-scc-local/tokens/txt
1861+/* typ-520 %txt /tests/golden/types-recursion-scc-import/types/txt
1862−/* tre-520 %txt /tests/golden/types-recursion-scc-local/tree/txt
1862+/* mtre-520 %txt /tests/golden/types-recursion-scc-import/module-trees/txt
1863−/* typ-520 %txt /tests/golden/types-recursion-scc-local/types/txt
1863+/* src-521 %jibb /tests/golden/types-recursion-scc-import-bad/source/jibb
1864−/* src-521 %jibb /tests/golden/types-recursion-scc-order/source/jibb
1864+/* tok-521 %txt /tests/golden/types-recursion-scc-import-bad/tokens/txt
1865−/* tok-521 %txt /tests/golden/types-recursion-scc-order/tokens/txt
1865+/* tre-521 %txt /tests/golden/types-recursion-scc-import-bad/tree/txt
1866−/* tre-521 %txt /tests/golden/types-recursion-scc-order/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-order/types/txt
1867+/* typ-521 %txt /tests/golden/types-recursion-scc-import-bad/types/txt
1868−/* src-522 %jibb /tests/golden/types-recursion-scc-shadow/source/jibb
1868+/* mtre-521 %txt /tests/golden/types-recursion-scc-import-bad/module-trees/txt
1869−/* tok-522 %txt /tests/golden/types-recursion-scc-shadow/tokens/txt
1869+/* src-522 %jibb /tests/golden/types-recursion-scc-local/source/jibb
1870−/* tre-522 %txt /tests/golden/types-recursion-scc-shadow/tree/txt
1870+/* tok-522 %txt /tests/golden/types-recursion-scc-local/tokens/txt
1871−/* typ-522 %txt /tests/golden/types-recursion-scc-shadow/types/txt
1871+/* tre-522 %txt /tests/golden/types-recursion-scc-local/tree/txt
1872−/* src-523 %jibb /tests/golden/types-recursive-branch/source/jibb
1872+/* typ-522 %txt /tests/golden/types-recursion-scc-local/types/txt
1873−/* tok-523 %txt /tests/golden/types-recursive-branch/tokens/txt
1873+/* src-523 %jibb /tests/golden/types-recursion-scc-order/source/jibb
1874−/* tre-523 %txt /tests/golden/types-recursive-branch/tree/txt
1874+/* tok-523 %txt /tests/golden/types-recursion-scc-order/tokens/txt
1875−/* typ-523 %txt /tests/golden/types-recursive-branch/types/txt
1875+/* tre-523 %txt /tests/golden/types-recursion-scc-order/tree/txt
1876−/* src-524 %jibb /tests/golden/types-recursive-gate/source/jibb
1876+/* typ-523 %txt /tests/golden/types-recursion-scc-order/types/txt
1877−/* tok-524 %txt /tests/golden/types-recursive-gate/tokens/txt
1877+/* src-524 %jibb /tests/golden/types-recursion-scc-shadow/source/jibb
1878−/* tre-524 %txt /tests/golden/types-recursive-gate/tree/txt
1878+/* tok-524 %txt /tests/golden/types-recursion-scc-shadow/tokens/txt
1879−/* typ-524 %txt /tests/golden/types-recursive-gate/types/txt
1879+/* tre-524 %txt /tests/golden/types-recursion-scc-shadow/tree/txt
1880−/* src-525 %jibb /tests/golden/types-recursive-sample/source/jibb
1880+/* typ-524 %txt /tests/golden/types-recursion-scc-shadow/types/txt
1881−/* tok-525 %txt /tests/golden/types-recursive-sample/tokens/txt
1881+/* src-525 %jibb /tests/golden/types-recursive-branch/source/jibb
1882−/* tre-525 %txt /tests/golden/types-recursive-sample/tree/txt
1882+/* tok-525 %txt /tests/golden/types-recursive-branch/tokens/txt
1883−/* typ-525 %txt /tests/golden/types-recursive-sample/types/txt
1883+/* tre-525 %txt /tests/golden/types-recursive-branch/tree/txt
1884−/* src-526 %jibb /tests/golden/types-scope-library-poke/source/jibb
1884+/* typ-525 %txt /tests/golden/types-recursive-branch/types/txt
1885−/* tok-526 %txt /tests/golden/types-scope-library-poke/tokens/txt
1885+/* src-526 %jibb /tests/golden/types-recursive-gate/source/jibb
1886−/* tre-526 %txt /tests/golden/types-scope-library-poke/tree/txt
1886+/* tok-526 %txt /tests/golden/types-recursive-gate/tokens/txt
1887−/* typ-526 %txt /tests/golden/types-scope-library-poke/types/txt
1887+/* tre-526 %txt /tests/golden/types-recursive-gate/tree/txt
1888−/* src-527 %jibb /tests/golden/types-scope-root-api/source/jibb
1888+/* typ-526 %txt /tests/golden/types-recursive-gate/types/txt
1889−/* tok-527 %txt /tests/golden/types-scope-root-api/tokens/txt
1889+/* src-527 %jibb /tests/golden/types-recursive-sample/source/jibb
1890−/* tre-527 %txt /tests/golden/types-scope-root-api/tree/txt
1890+/* tok-527 %txt /tests/golden/types-recursive-sample/tokens/txt
1891−/* typ-527 %txt /tests/golden/types-scope-root-api/types/txt
1891+/* tre-527 %txt /tests/golden/types-recursive-sample/tree/txt
1892−/* src-528 %jibb /tests/golden/types-scope-store-duplicate/source/jibb
1892+/* typ-527 %txt /tests/golden/types-recursive-sample/types/txt
1893−/* tok-528 %txt /tests/golden/types-scope-store-duplicate/tokens/txt
1893+/* src-528 %jibb /tests/golden/types-scope-library-poke/source/jibb
1894−/* tre-528 %txt /tests/golden/types-scope-store-duplicate/tree/txt
1894+/* tok-528 %txt /tests/golden/types-scope-library-poke/tokens/txt
1895−/* typ-528 %txt /tests/golden/types-scope-store-duplicate/types/txt
1895+/* tre-528 %txt /tests/golden/types-scope-library-poke/tree/txt
1896−/* src-529 %jibb /tests/golden/types-scope-store-shadow/source/jibb
1896+/* typ-528 %txt /tests/golden/types-scope-library-poke/types/txt
1897−/* tok-529 %txt /tests/golden/types-scope-store-shadow/tokens/txt
1897+/* src-529 %jibb /tests/golden/types-scope-root-api/source/jibb
1898−/* tre-529 %txt /tests/golden/types-scope-store-shadow/tree/txt
1898+/* tok-529 %txt /tests/golden/types-scope-root-api/tokens/txt
1899−/* typ-529 %txt /tests/golden/types-scope-store-shadow/types/txt
1899+/* tre-529 %txt /tests/golden/types-scope-root-api/tree/txt
1900−/* src-530 %jibb /tests/golden/types-single-case-pattern/source/jibb
1900+/* typ-529 %txt /tests/golden/types-scope-root-api/types/txt
1901−/* tok-530 %txt /tests/golden/types-single-case-pattern/tokens/txt
1901+/* src-530 %jibb /tests/golden/types-scope-store-duplicate/source/jibb
1902−/* tre-530 %txt /tests/golden/types-single-case-pattern/tree/txt
1902+/* tok-530 %txt /tests/golden/types-scope-store-duplicate/tokens/txt
1903−/* typ-530 %txt /tests/golden/types-single-case-pattern/types/txt
1903+/* tre-530 %txt /tests/golden/types-scope-store-duplicate/tree/txt
1904−/* src-531 %jibb /tests/golden/types-string-interpolation/source/jibb
1904+/* typ-530 %txt /tests/golden/types-scope-store-duplicate/types/txt
1905−/* tok-531 %txt /tests/golden/types-string-interpolation/tokens/txt
1905+/* src-531 %jibb /tests/golden/types-scope-store-shadow/source/jibb
1906−/* tre-531 %txt /tests/golden/types-string-interpolation/tree/txt
1906+/* tok-531 %txt /tests/golden/types-scope-store-shadow/tokens/txt
1907−/* typ-531 %txt /tests/golden/types-string-interpolation/types/txt
1907+/* tre-531 %txt /tests/golden/types-scope-store-shadow/tree/txt
1908−/* src-532 %jibb /tests/golden/types-tuple-context/source/jibb
1908+/* typ-531 %txt /tests/golden/types-scope-store-shadow/types/txt
1909−/* tok-532 %txt /tests/golden/types-tuple-context/tokens/txt
1909+/* src-532 %jibb /tests/golden/types-single-case-pattern/source/jibb
1910−/* tre-532 %txt /tests/golden/types-tuple-context/tree/txt
1910+/* tok-532 %txt /tests/golden/types-single-case-pattern/tokens/txt
1911−/* typ-532 %txt /tests/golden/types-tuple-context/types/txt
1911+/* tre-532 %txt /tests/golden/types-single-case-pattern/tree/txt
1912−/* src-533 %jibb /tests/golden/types-tuple-context-nested/source/jibb
1912+/* typ-532 %txt /tests/golden/types-single-case-pattern/types/txt
1913−/* tok-533 %txt /tests/golden/types-tuple-context-nested/tokens/txt
1913+/* src-533 %jibb /tests/golden/types-string-interpolation/source/jibb
1914−/* tre-533 %txt /tests/golden/types-tuple-context-nested/tree/txt
1914+/* tok-533 %txt /tests/golden/types-string-interpolation/tokens/txt
1915−/* typ-533 %txt /tests/golden/types-tuple-context-nested/types/txt
1915+/* tre-533 %txt /tests/golden/types-string-interpolation/tree/txt
1916−/* src-534 %jibb /tests/golden/types-union-alias/source/jibb
1916+/* typ-533 %txt /tests/golden/types-string-interpolation/types/txt
1917−/* tok-534 %txt /tests/golden/types-union-alias/tokens/txt
1917+/* src-534 %jibb /tests/golden/types-tuple-context/source/jibb
1918−/* tre-534 %txt /tests/golden/types-union-alias/tree/txt
1918+/* tok-534 %txt /tests/golden/types-tuple-context/tokens/txt
1919−/* typ-534 %txt /tests/golden/types-union-alias/types/txt
1919+/* tre-534 %txt /tests/golden/types-tuple-context/tree/txt
1920−/* src-535 %jibb /tests/golden/types-union-branch-context/source/jibb
1920+/* typ-534 %txt /tests/golden/types-tuple-context/types/txt
1921−/* tok-535 %txt /tests/golden/types-union-branch-context/tokens/txt
1921+/* src-535 %jibb /tests/golden/types-tuple-context-nested/source/jibb
1922−/* tre-535 %txt /tests/golden/types-union-branch-context/tree/txt
1922+/* tok-535 %txt /tests/golden/types-tuple-context-nested/tokens/txt
1923−/* typ-535 %txt /tests/golden/types-union-branch-context/types/txt
1923+/* tre-535 %txt /tests/golden/types-tuple-context-nested/tree/txt
1924−/* src-536 %jibb /tests/golden/types-union-branch-pending/source/jibb
1924+/* typ-535 %txt /tests/golden/types-tuple-context-nested/types/txt
1925−/* tok-536 %txt /tests/golden/types-union-branch-pending/tokens/txt
1925+/* src-536 %jibb /tests/golden/types-union-alias/source/jibb
1926−/* tre-536 %txt /tests/golden/types-union-branch-pending/tree/txt
1926+/* tok-536 %txt /tests/golden/types-union-alias/tokens/txt
1927−/* typ-536 %txt /tests/golden/types-union-branch-pending/types/txt
1927+/* tre-536 %txt /tests/golden/types-union-alias/tree/txt
1928−/* src-537 %jibb /tests/golden/types-union-constructor-shape/source/jibb
1928+/* typ-536 %txt /tests/golden/types-union-alias/types/txt
1929−/* tok-537 %txt /tests/golden/types-union-constructor-shape/tokens/txt
1929+/* src-537 %jibb /tests/golden/types-union-branch-context/source/jibb
1930−/* tre-537 %txt /tests/golden/types-union-constructor-shape/tree/txt
1930+/* tok-537 %txt /tests/golden/types-union-branch-context/tokens/txt
1931−/* typ-537 %txt /tests/golden/types-union-constructor-shape/types/txt
1931+/* tre-537 %txt /tests/golden/types-union-branch-context/tree/txt
1932−/* src-538 %jibb /tests/golden/types-union-context-flow/source/jibb
1932+/* typ-537 %txt /tests/golden/types-union-branch-context/types/txt
1933−/* tok-538 %txt /tests/golden/types-union-context-flow/tokens/txt
1933+/* src-538 %jibb /tests/golden/types-union-branch-pending/source/jibb
1934−/* tre-538 %txt /tests/golden/types-union-context-flow/tree/txt
1934+/* tok-538 %txt /tests/golden/types-union-branch-pending/tokens/txt
1935−/* typ-538 %txt /tests/golden/types-union-context-flow/types/txt
1935+/* tre-538 %txt /tests/golden/types-union-branch-pending/tree/txt
1936−/* src-539 %jibb /tests/golden/types-union-finite/source/jibb
1936+/* typ-538 %txt /tests/golden/types-union-branch-pending/types/txt
1937−/* tok-539 %txt /tests/golden/types-union-finite/tokens/txt
1937+/* src-539 %jibb /tests/golden/types-union-constructor-shape/source/jibb
1938−/* tre-539 %txt /tests/golden/types-union-finite/tree/txt
1938+/* tok-539 %txt /tests/golden/types-union-constructor-shape/tokens/txt
1939−/* typ-539 %txt /tests/golden/types-union-finite/types/txt
1939+/* tre-539 %txt /tests/golden/types-union-constructor-shape/tree/txt
1940−/* src-540 %jibb /tests/golden/types-union-finite-context/source/jibb
1940+/* typ-539 %txt /tests/golden/types-union-constructor-shape/types/txt
1941−/* tok-540 %txt /tests/golden/types-union-finite-context/tokens/txt
1941+/* src-540 %jibb /tests/golden/types-union-context-flow/source/jibb
1942−/* tre-540 %txt /tests/golden/types-union-finite-context/tree/txt
1942+/* tok-540 %txt /tests/golden/types-union-context-flow/tokens/txt
1943−/* typ-540 %txt /tests/golden/types-union-finite-context/types/txt
1943+/* tre-540 %txt /tests/golden/types-union-context-flow/tree/txt
1944−/* src-541 %jibb /tests/golden/types-union-finite-generic/source/jibb
1944+/* typ-540 %txt /tests/golden/types-union-context-flow/types/txt
1945−/* tok-541 %txt /tests/golden/types-union-finite-generic/tokens/txt
1945+/* src-541 %jibb /tests/golden/types-union-finite/source/jibb
1946−/* tre-541 %txt /tests/golden/types-union-finite-generic/tree/txt
1946+/* tok-541 %txt /tests/golden/types-union-finite/tokens/txt
1947−/* typ-541 %txt /tests/golden/types-union-finite-generic/types/txt
1947+/* tre-541 %txt /tests/golden/types-union-finite/tree/txt
1948−/* src-542 %jibb /tests/golden/types-union-finite-limit/source/jibb
1948+/* typ-541 %txt /tests/golden/types-union-finite/types/txt
1949−/* tok-542 %txt /tests/golden/types-union-finite-limit/tokens/txt
1949+/* src-542 %jibb /tests/golden/types-union-finite-context/source/jibb
1950−/* tre-542 %txt /tests/golden/types-union-finite-limit/tree/txt
1950+/* tok-542 %txt /tests/golden/types-union-finite-context/tokens/txt
1951−/* typ-542 %txt /tests/golden/types-union-finite-limit/types/txt
1951+/* tre-542 %txt /tests/golden/types-union-finite-context/tree/txt
1952−/* src-543 %jibb /tests/golden/types-union-import/source/jibb
1952+/* typ-542 %txt /tests/golden/types-union-finite-context/types/txt
1953−/* tok-543 %txt /tests/golden/types-union-import/tokens/txt
1953+/* src-543 %jibb /tests/golden/types-union-finite-generic/source/jibb
1954−/* tre-543 %txt /tests/golden/types-union-import/tree/txt
1954+/* tok-543 %txt /tests/golden/types-union-finite-generic/tokens/txt
1955−/* mod-543-1 %jibb /tests/golden/types-union-import/modules/ui/lib/jibb
1955+/* tre-543 %txt /tests/golden/types-union-finite-generic/tree/txt
1956−/* typ-543 %txt /tests/golden/types-union-import/types/txt
1956+/* typ-543 %txt /tests/golden/types-union-finite-generic/types/txt
1957−/* mtre-543 %txt /tests/golden/types-union-import/module-trees/txt
1957+/* src-544 %jibb /tests/golden/types-union-finite-limit/source/jibb
1958−/* src-544 %jibb /tests/golden/types-union-local-pending/source/jibb
1958+/* tok-544 %txt /tests/golden/types-union-finite-limit/tokens/txt
1959−/* tok-544 %txt /tests/golden/types-union-local-pending/tokens/txt
1959+/* tre-544 %txt /tests/golden/types-union-finite-limit/tree/txt
1960−/* tre-544 %txt /tests/golden/types-union-local-pending/tree/txt
1960+/* typ-544 %txt /tests/golden/types-union-finite-limit/types/txt
1961−/* typ-544 %txt /tests/golden/types-union-local-pending/types/txt
1961+/* src-545 %jibb /tests/golden/types-union-import/source/jibb
1962−/* src-545 %jibb /tests/golden/types-union-overlap/source/jibb
1962+/* tok-545 %txt /tests/golden/types-union-import/tokens/txt
1963−/* tok-545 %txt /tests/golden/types-union-overlap/tokens/txt
1963+/* tre-545 %txt /tests/golden/types-union-import/tree/txt
1964−/* tre-545 %txt /tests/golden/types-union-overlap/tree/txt
1964+/* mod-545-1 %jibb /tests/golden/types-union-import/modules/ui/lib/jibb
1965−/* typ-545 %txt /tests/golden/types-union-overlap/types/txt
1965+/* typ-545 %txt /tests/golden/types-union-import/types/txt
1966−/* src-546 %jibb /tests/golden/types-union-overlap-nested/source/jibb
1966+/* mtre-545 %txt /tests/golden/types-union-import/module-trees/txt
1967−/* tok-546 %txt /tests/golden/types-union-overlap-nested/tokens/txt
1967+/* src-546 %jibb /tests/golden/types-union-local-pending/source/jibb
1968−/* tre-546 %txt /tests/golden/types-union-overlap-nested/tree/txt
1968+/* tok-546 %txt /tests/golden/types-union-local-pending/tokens/txt
1969−/* typ-546 %txt /tests/golden/types-union-overlap-nested/types/txt
1969+/* tre-546 %txt /tests/golden/types-union-local-pending/tree/txt
1970−/* src-547 %jibb /tests/golden/types-union-pattern-result-context/source/jibb
1970+/* typ-546 %txt /tests/golden/types-union-local-pending/types/txt
1971−/* tok-547 %txt /tests/golden/types-union-pattern-result-context/tokens/txt
1971+/* src-547 %jibb /tests/golden/types-union-overlap/source/jibb
1972−/* tre-547 %txt /tests/golden/types-union-pattern-result-context/tree/txt
1972+/* tok-547 %txt /tests/golden/types-union-overlap/tokens/txt
1973−/* typ-547 %txt /tests/golden/types-union-pattern-result-context/types/txt
1973+/* tre-547 %txt /tests/golden/types-union-overlap/tree/txt
1974−/* src-548 %jibb /tests/golden/types-union-pattern-result-controls/source/jibb
1974+/* typ-547 %txt /tests/golden/types-union-overlap/types/txt
1975−/* tok-548 %txt /tests/golden/types-union-pattern-result-controls/tokens/txt
1975+/* src-548 %jibb /tests/golden/types-union-overlap-nested/source/jibb
1976−/* tre-548 %txt /tests/golden/types-union-pattern-result-controls/tree/txt
1976+/* tok-548 %txt /tests/golden/types-union-overlap-nested/tokens/txt
1977−/* typ-548 %txt /tests/golden/types-union-pattern-result-controls/types/txt
1977+/* tre-548 %txt /tests/golden/types-union-overlap-nested/tree/txt
1978−/* src-549 %jibb /tests/golden/types-union-patterns/source/jibb
1978+/* typ-548 %txt /tests/golden/types-union-overlap-nested/types/txt
1979−/* tok-549 %txt /tests/golden/types-union-patterns/tokens/txt
1979+/* src-549 %jibb /tests/golden/types-union-pattern-result-context/source/jibb
1980−/* tre-549 %txt /tests/golden/types-union-patterns/tree/txt
1980+/* tok-549 %txt /tests/golden/types-union-pattern-result-context/tokens/txt
1981−/* typ-549 %txt /tests/golden/types-union-patterns/types/txt
1981+/* tre-549 %txt /tests/golden/types-union-pattern-result-context/tree/txt
1982−/* src-550 %jibb /tests/golden/types-union-patterns-generic/source/jibb
1982+/* typ-549 %txt /tests/golden/types-union-pattern-result-context/types/txt
1983−/* tok-550 %txt /tests/golden/types-union-patterns-generic/tokens/txt
1983+/* src-550 %jibb /tests/golden/types-union-pattern-result-controls/source/jibb
1984−/* tre-550 %txt /tests/golden/types-union-patterns-generic/tree/txt
1984+/* tok-550 %txt /tests/golden/types-union-pattern-result-controls/tokens/txt
1985−/* typ-550 %txt /tests/golden/types-union-patterns-generic/types/txt
1985+/* tre-550 %txt /tests/golden/types-union-pattern-result-controls/tree/txt
1986−/* src-551 %jibb /tests/golden/types-union-patterns-import/source/jibb
1986+/* typ-550 %txt /tests/golden/types-union-pattern-result-controls/types/txt
1987−/* tok-551 %txt /tests/golden/types-union-patterns-import/tokens/txt
1987+/* src-551 %jibb /tests/golden/types-union-patterns/source/jibb
1988−/* tre-551 %txt /tests/golden/types-union-patterns-import/tree/txt
1988+/* tok-551 %txt /tests/golden/types-union-patterns/tokens/txt
1989−/* mod-551-1 %jibb /tests/golden/types-union-patterns-import/modules/ui/lib/jibb
1989+/* tre-551 %txt /tests/golden/types-union-patterns/tree/txt
1990−/* typ-551 %txt /tests/golden/types-union-patterns-import/types/txt
1990+/* typ-551 %txt /tests/golden/types-union-patterns/types/txt
1991−/* mtre-551 %txt /tests/golden/types-union-patterns-import/module-trees/txt
1991+/* src-552 %jibb /tests/golden/types-union-patterns-generic/source/jibb
1992−/* src-552 %jibb /tests/golden/types-union-phantom-generic/source/jibb
1992+/* tok-552 %txt /tests/golden/types-union-patterns-generic/tokens/txt
1993−/* tok-552 %txt /tests/golden/types-union-phantom-generic/tokens/txt
1993+/* tre-552 %txt /tests/golden/types-union-patterns-generic/tree/txt
1994−/* tre-552 %txt /tests/golden/types-union-phantom-generic/tree/txt
1994+/* typ-552 %txt /tests/golden/types-union-patterns-generic/types/txt
1995−/* typ-552 %txt /tests/golden/types-union-phantom-generic/types/txt
1995+/* src-553 %jibb /tests/golden/types-union-patterns-import/source/jibb
1996−/* src-553 %jibb /tests/golden/types-union-print-cross-namespace/source/jibb
1996+/* tok-553 %txt /tests/golden/types-union-patterns-import/tokens/txt
1997−/* tok-553 %txt /tests/golden/types-union-print-cross-namespace/tokens/txt
1997+/* tre-553 %txt /tests/golden/types-union-patterns-import/tree/txt
1998−/* tre-553 %txt /tests/golden/types-union-print-cross-namespace/tree/txt
1998+/* mod-553-1 %jibb /tests/golden/types-union-patterns-import/modules/ui/lib/jibb
1999−/* mod-553-1 %jibb /tests/golden/types-union-print-cross-namespace/modules/ui/lib/jibb
1999+/* typ-553 %txt /tests/golden/types-union-patterns-import/types/txt
2000−/* typ-553 %txt /tests/golden/types-union-print-cross-namespace/types/txt
2000+/* mtre-553 %txt /tests/golden/types-union-patterns-import/module-trees/txt
2001−/* mtre-553 %txt /tests/golden/types-union-print-cross-namespace/module-trees/txt
2001+/* src-554 %jibb /tests/golden/types-union-phantom-generic/source/jibb
2002−/* src-554 %jibb /tests/golden/types-union-print-distinct/source/jibb
2002+/* tok-554 %txt /tests/golden/types-union-phantom-generic/tokens/txt
2003−/* tok-554 %txt /tests/golden/types-union-print-distinct/tokens/txt
2003+/* tre-554 %txt /tests/golden/types-union-phantom-generic/tree/txt
2004−/* tre-554 %txt /tests/golden/types-union-print-distinct/tree/txt
2004+/* typ-554 %txt /tests/golden/types-union-phantom-generic/types/txt
2005−/* mod-554-1 %jibb /tests/golden/types-union-print-distinct/modules/ui/left/jibb
2005+/* src-555 %jibb /tests/golden/types-union-print-cross-namespace/source/jibb
2006−/* mod-554-2 %jibb /tests/golden/types-union-print-distinct/modules/ui/right/jibb
2006+/* tok-555 %txt /tests/golden/types-union-print-cross-namespace/tokens/txt
2007−/* mod-554-3 %jibb /tests/golden/types-union-print-distinct/modules/ui/twin/jibb
2007+/* tre-555 %txt /tests/golden/types-union-print-cross-namespace/tree/txt
2008−/* typ-554 %txt /tests/golden/types-union-print-distinct/types/txt
2008+/* mod-555-1 %jibb /tests/golden/types-union-print-cross-namespace/modules/ui/lib/jibb
2009−/* mtre-554 %txt /tests/golden/types-union-print-distinct/module-trees/txt
2009+/* typ-555 %txt /tests/golden/types-union-print-cross-namespace/types/txt
2010−/* src-555 %jibb /tests/golden/types-union-print-escape/source/jibb
2010+/* mtre-555 %txt /tests/golden/types-union-print-cross-namespace/module-trees/txt
2011−/* tok-555 %txt /tests/golden/types-union-print-escape/tokens/txt
2011+/* src-556 %jibb /tests/golden/types-union-print-distinct/source/jibb
2012−/* tre-555 %txt /tests/golden/types-union-print-escape/tree/txt
2012+/* tok-556 %txt /tests/golden/types-union-print-distinct/tokens/txt
2013−/* typ-555 %txt /tests/golden/types-union-print-escape/types/txt
2013+/* tre-556 %txt /tests/golden/types-union-print-distinct/tree/txt
2014−/* src-556 %jibb /tests/golden/types-union-print-local/source/jibb
2014+/* mod-556-1 %jibb /tests/golden/types-union-print-distinct/modules/ui/left/jibb
2015−/* tok-556 %txt /tests/golden/types-union-print-local/tokens/txt
2015+/* mod-556-2 %jibb /tests/golden/types-union-print-distinct/modules/ui/right/jibb
2016−/* tre-556 %txt /tests/golden/types-union-print-local/tree/txt
2016+/* mod-556-3 %jibb /tests/golden/types-union-print-distinct/modules/ui/twin/jibb
2017−/* typ-556 %txt /tests/golden/types-union-print-local/types/txt
2017+/* typ-556 %txt /tests/golden/types-union-print-distinct/types/txt
2018−/* src-557 %jibb /tests/golden/types-union-print-nested/source/jibb
2018+/* mtre-556 %txt /tests/golden/types-union-print-distinct/module-trees/txt
2019−/* tok-557 %txt /tests/golden/types-union-print-nested/tokens/txt
2019+/* src-557 %jibb /tests/golden/types-union-print-escape/source/jibb
2020−/* tre-557 %txt /tests/golden/types-union-print-nested/tree/txt
2020+/* tok-557 %txt /tests/golden/types-union-print-escape/tokens/txt
2021−/* typ-557 %txt /tests/golden/types-union-print-nested/types/txt
2021+/* tre-557 %txt /tests/golden/types-union-print-escape/tree/txt
2022−/* src-558 %jibb /tests/golden/types-union-print-same-origin/source/jibb
2022+/* typ-557 %txt /tests/golden/types-union-print-escape/types/txt
2023−/* tok-558 %txt /tests/golden/types-union-print-same-origin/tokens/txt
2023+/* src-558 %jibb /tests/golden/types-union-print-local/source/jibb
2024−/* tre-558 %txt /tests/golden/types-union-print-same-origin/tree/txt
2024+/* tok-558 %txt /tests/golden/types-union-print-local/tokens/txt
2025−/* mod-558-1 %jibb /tests/golden/types-union-print-same-origin/modules/ui/shared/jibb
2025+/* tre-558 %txt /tests/golden/types-union-print-local/tree/txt
2026−/* typ-558 %txt /tests/golden/types-union-print-same-origin/types/txt
2026+/* typ-558 %txt /tests/golden/types-union-print-local/types/txt
2027−/* mtre-558 %txt /tests/golden/types-union-print-same-origin/module-trees/txt
2027+/* src-559 %jibb /tests/golden/types-union-print-nested/source/jibb
2028−/* src-559 %jibb /tests/golden/types-union-print-transitive/source/jibb
2028+/* tok-559 %txt /tests/golden/types-union-print-nested/tokens/txt
2029−/* tok-559 %txt /tests/golden/types-union-print-transitive/tokens/txt
2029+/* tre-559 %txt /tests/golden/types-union-print-nested/tree/txt
2030−/* tre-559 %txt /tests/golden/types-union-print-transitive/tree/txt
2030+/* typ-559 %txt /tests/golden/types-union-print-nested/types/txt
2031−/* mod-559-1 %jibb /tests/golden/types-union-print-transitive/modules/ui/mid/jibb
2031+/* src-560 %jibb /tests/golden/types-union-print-same-origin/source/jibb
2032−/* mod-559-2 %jibb /tests/golden/types-union-print-transitive/modules/ui/base/jibb
2032+/* tok-560 %txt /tests/golden/types-union-print-same-origin/tokens/txt
2033−/* typ-559 %txt /tests/golden/types-union-print-transitive/types/txt
2033+/* tre-560 %txt /tests/golden/types-union-print-same-origin/tree/txt
2034−/* mtre-559 %txt /tests/golden/types-union-print-transitive/module-trees/txt
2034+/* mod-560-1 %jibb /tests/golden/types-union-print-same-origin/modules/ui/shared/jibb
2035−/* src-560 %jibb /tests/golden/types-union-singleton/source/jibb
2035+/* typ-560 %txt /tests/golden/types-union-print-same-origin/types/txt
2036−/* tok-560 %txt /tests/golden/types-union-singleton/tokens/txt
2036+/* mtre-560 %txt /tests/golden/types-union-print-same-origin/module-trees/txt
2037−/* tre-560 %txt /tests/golden/types-union-singleton/tree/txt
2037+/* src-561 %jibb /tests/golden/types-union-print-transitive/source/jibb
2038−/* typ-560 %txt /tests/golden/types-union-singleton/types/txt
2038+/* tok-561 %txt /tests/golden/types-union-print-transitive/tokens/txt
2039−/* src-561 %jibb /tests/golden/types-union-tag-atoms/source/jibb
2039+/* tre-561 %txt /tests/golden/types-union-print-transitive/tree/txt
2040−/* tok-561 %txt /tests/golden/types-union-tag-atoms/tokens/txt
2040+/* mod-561-1 %jibb /tests/golden/types-union-print-transitive/modules/ui/mid/jibb
2041−/* tre-561 %txt /tests/golden/types-union-tag-atoms/tree/txt
2041+/* mod-561-2 %jibb /tests/golden/types-union-print-transitive/modules/ui/base/jibb
2042−/* typ-561 %txt /tests/golden/types-union-tag-atoms/types/txt
2042+/* typ-561 %txt /tests/golden/types-union-print-transitive/types/txt
2043−/* src-562 %jibb /tests/golden/types-union-tags/source/jibb
2043+/* mtre-561 %txt /tests/golden/types-union-print-transitive/module-trees/txt
2044−/* tok-562 %txt /tests/golden/types-union-tags/tokens/txt
2044+/* src-562 %jibb /tests/golden/types-union-singleton/source/jibb
2045−/* tre-562 %txt /tests/golden/types-union-tags/tree/txt
2045+/* tok-562 %txt /tests/golden/types-union-singleton/tokens/txt
2046−/* typ-562 %txt /tests/golden/types-union-tags/types/txt
2046+/* tre-562 %txt /tests/golden/types-union-singleton/tree/txt
2047−/* src-563 %jibb /tests/golden/types-union-unresolved/source/jibb
2047+/* typ-562 %txt /tests/golden/types-union-singleton/types/txt
2048−/* tok-563 %txt /tests/golden/types-union-unresolved/tokens/txt
2048+/* src-563 %jibb /tests/golden/types-union-tag-atoms/source/jibb
2049−/* tre-563 %txt /tests/golden/types-union-unresolved/tree/txt
2049+/* tok-563 %txt /tests/golden/types-union-tag-atoms/tokens/txt
2050−/* typ-563 %txt /tests/golden/types-union-unresolved/types/txt
2050+/* tre-563 %txt /tests/golden/types-union-tag-atoms/tree/txt
2051−/* src-564 %jibb /tests/golden/types-union-unresolved-flow/source/jibb
2051+/* typ-563 %txt /tests/golden/types-union-tag-atoms/types/txt
2052−/* tok-564 %txt /tests/golden/types-union-unresolved-flow/tokens/txt
2052+/* src-564 %jibb /tests/golden/types-union-tags/source/jibb
2053−/* tre-564 %txt /tests/golden/types-union-unresolved-flow/tree/txt
2053+/* tok-564 %txt /tests/golden/types-union-tags/tokens/txt
2054−/* typ-564 %txt /tests/golden/types-union-unresolved-flow/types/txt
2054+/* tre-564 %txt /tests/golden/types-union-tags/tree/txt
2055−/* src-565 %jibb /tests/golden/types-unit-construction/source/jibb
2055+/* typ-564 %txt /tests/golden/types-union-tags/types/txt
2056−/* tok-565 %txt /tests/golden/types-unit-construction/tokens/txt
2056+/* src-565 %jibb /tests/golden/types-union-unresolved/source/jibb
2057−/* tre-565 %txt /tests/golden/types-unit-construction/tree/txt
2057+/* tok-565 %txt /tests/golden/types-union-unresolved/tokens/txt
2058−/* typ-565 %txt /tests/golden/types-unit-construction/types/txt
2058+/* tre-565 %txt /tests/golden/types-union-unresolved/tree/txt
2059−/* src-566 %jibb /tests/golden/types-unit-context/source/jibb
2059+/* typ-565 %txt /tests/golden/types-union-unresolved/types/txt
2060−/* tok-566 %txt /tests/golden/types-unit-context/tokens/txt
2060+/* src-566 %jibb /tests/golden/types-union-unresolved-flow/source/jibb
2061−/* tre-566 %txt /tests/golden/types-unit-context/tree/txt
2061+/* tok-566 %txt /tests/golden/types-union-unresolved-flow/tokens/txt
2062−/* typ-566 %txt /tests/golden/types-unit-context/types/txt
2062+/* tre-566 %txt /tests/golden/types-union-unresolved-flow/tree/txt
2063−/* src-567 %jibb /tests/golden/types-unit-patterns/source/jibb
2063+/* typ-566 %txt /tests/golden/types-union-unresolved-flow/types/txt
2064−/* tok-567 %txt /tests/golden/types-unit-patterns/tokens/txt
2064+/* src-567 %jibb /tests/golden/types-unit-construction/source/jibb
2065−/* tre-567 %txt /tests/golden/types-unit-patterns/tree/txt
2065+/* tok-567 %txt /tests/golden/types-unit-construction/tokens/txt
2066−/* typ-567 %txt /tests/golden/types-unit-patterns/types/txt
2066+/* tre-567 %txt /tests/golden/types-unit-construction/tree/txt
2067−/* src-568 %jibb /tests/golden/types-value-cycle-shadow/source/jibb
2067+/* typ-567 %txt /tests/golden/types-unit-construction/types/txt
2068−/* tok-568 %txt /tests/golden/types-value-cycle-shadow/tokens/txt
2068+/* src-568 %jibb /tests/golden/types-unit-context/source/jibb
2069−/* tre-568 %txt /tests/golden/types-value-cycle-shadow/tree/txt
2069+/* tok-568 %txt /tests/golden/types-unit-context/tokens/txt
2070−/* typ-568 %txt /tests/golden/types-value-cycle-shadow/types/txt
2070+/* tre-568 %txt /tests/golden/types-unit-context/tree/txt
2071−/* src-569 %jibb /tests/golden/types-value-cycle-unsupported/source/jibb
2071+/* typ-568 %txt /tests/golden/types-unit-context/types/txt
2072−/* tok-569 %txt /tests/golden/types-value-cycle-unsupported/tokens/txt
2072+/* src-569 %jibb /tests/golden/types-unit-patterns/source/jibb
2073−/* tre-569 %txt /tests/golden/types-value-cycle-unsupported/tree/txt
2073+/* tok-569 %txt /tests/golden/types-unit-patterns/tokens/txt
2074−/* typ-569 %txt /tests/golden/types-value-cycle-unsupported/types/txt
2074+/* tre-569 %txt /tests/golden/types-unit-patterns/tree/txt
2075−/* src-570 %jibb /tests/golden/types-value-cycles/source/jibb
2075+/* typ-569 %txt /tests/golden/types-unit-patterns/types/txt
2076−/* tok-570 %txt /tests/golden/types-value-cycles/tokens/txt
2076+/* src-570 %jibb /tests/golden/types-value-cycle-shadow/source/jibb
2077−/* tre-570 %txt /tests/golden/types-value-cycles/tree/txt
2077+/* tok-570 %txt /tests/golden/types-value-cycle-shadow/tokens/txt
2078−/* typ-570 %txt /tests/golden/types-value-cycles/types/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
2079=/ prepared-prelude (prepare-prelude-with-internal:jibb prelude-source internal-source)
2088=/ prepared-prelude (prepare-prelude-with-internal:jibb prelude-source internal-source)
2080|%
2089|%
2081:: one arm per case
2090:: one arm per case
@@ -2896,330 +2905,334 @@
2896 (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 ~ ~ ~))
2905 (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 ~ ~ ~))
2897++ test-types-deferred-call-context
2906++ test-types-deferred-call-context
2898 (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 ~ ~ ~))
2907 (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 ~ ~ ~))
2899++ test-types-generic-arity
2910++ 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))
2901++ test-types-generic-face-inference
2912++ 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))
2903++ test-types-generic-gates
2914++ 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))
2905++ test-types-generic-import-reverse
2916++ 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]]))
2907++ test-types-generic-lexical-alias
2918++ 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))
2909++ test-types-generic-local-parameter
2920++ 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))
2911++ test-types-generic-local-scope
2922++ 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))
2913++ test-types-generic-module
2924++ 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]]))
2915++ test-types-generic-nested-scope
2926++ 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))
2917++ test-types-generic-parameters
2928++ 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))
2919++ test-types-generic-record
2930++ 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))
2921++ test-types-generic-recursive-union
2932++ 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))
2923++ test-types-generic-repeated
2934++ 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))
2925++ test-types-generic-union-alias
2936++ 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))
2927++ test-types-generic-union-alias-face
2938++ 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]]))
2929++ test-types-generic-union-capitals
2940++ 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))
2931++ test-types-generic-union-errors
2942++ 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))
2933++ test-types-generic-union-escaping
2944++ 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]]))
2935++ test-types-generic-union-import
2946++ 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]]))
2937++ test-types-generic-union-local
2948++ 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))
2939++ test-types-generic-union-transitive
2950++ 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]]))
2941++ test-types-import-duplicate-mark
2952++ 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]]))
2943++ test-types-import-duplicate-sur
2954++ 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]]))
2945++ test-types-import-hoon-flags
2956++ 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]]))
2947++ test-types-import-hoon-noun
2958++ 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]]))
2949++ test-types-import-mark
2960++ 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]]))
2951++ test-types-import-mark-record
2962++ 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]]))
2953++ test-types-import-missing-mold
2964++ 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]]))
2955++ test-types-import-sur
2966++ 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]]))
2957++ test-types-import-sur-record-graph
2968++ 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]]))
2959++ test-types-import-tlon-notes
2970++ 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]]))
2961++ test-types-list-branch
2972++ 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 ~ ~ ~))
2963++ test-types-list-cons
2974++ 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 ~ ~ ~))
2965++ test-types-list-context
2976++ 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 ~ ~ ~))
2967++ test-types-list-imported
2978++ 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]] ~ ~))
2969++ test-types-list-open
2980++ 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 ~ ~ ~))
2971++ test-types-list-open-constraints
2982++ 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 ~ ~ ~))
2973++ test-types-list-pattern-imported
2984++ 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]] ~ ~))
2975++ test-types-list-patterns
2986++ 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 ~ ~ ~))
2977++ test-types-list-zero-fit
2988++ 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 ~ ~ ~))
2979++ test-types-local-capitals
2990++ 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 ~ ~ ~))
2981++ test-types-local-recursive
2992++ 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 ~ ~ ~))
2983++ test-types-local-scc
2994++ 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 ~ ~ ~))
2985++ test-types-local-scc-adversarial
2996++ 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 ~ ~ ~))
2987++ test-types-missing-tag-context
2998++ 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 ~ ~ ~))
2989++ test-types-missing-tag-imported
3000++ 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]]))
2991++ test-types-missing-tag-named
3002++ 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 ~ ~ ~))
2993++ test-types-module-field-ambiguous
3004++ 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]]))
2995++ test-types-module-field-nonrecord
3006++ 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]]))
2997++ test-types-module-field-path
3008++ 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]]))
2999++ test-types-module-field-shadow
3010++ 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]]))
3001++ test-types-module-fixtures
3012++ 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]]))
3003++ test-types-module-mixed
3014++ 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]]))
3005++ test-types-multi-call
3016++ 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 ~ ~ ~))
3007++ test-types-multi-import
3018++ 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]]))
3009++ test-types-nested-missing-tag
3020++ 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 ~ ~ ~))
3011++ test-types-null-context
3022++ 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))
3013++ test-types-null-overlap
3024++ 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))
3015++ test-types-null-unresolved
3026++ 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))
3017++ test-types-pair-context
3028++ 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 ~ ~ ~))
3019++ test-types-partial-apply
3030++ 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))
3021++ test-types-partial-atom-alias
3032++ 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))
3023++ test-types-partial-atom-constraint
3034++ 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))
3025++ test-types-partial-atom-widening
3036++ 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))
3027++ test-types-partial-aura
3038++ 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))
3029++ test-types-partial-aura-family
3040++ 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))
3031++ test-types-partial-aura-generalization
3042++ 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))
3033++ test-types-partial-bare-atom
3044++ 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))
3035++ test-types-partial-branch-widening
3046++ 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))
3037++ test-types-partial-conflicting-sites
3048++ 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))
3039++ test-types-partial-decimal-default
3050++ 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))
3041++ test-types-partial-dependency-chain
3052++ 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))
3043++ test-types-partial-explicit-capital
3054++ 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))
3045++ test-types-partial-forward
3056++ 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))
3047++ test-types-partial-generalization
3058++ 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))
3049++ test-types-partial-identity
3060++ 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))
3051++ test-types-partial-independent-atoms
3062++ 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))
3053++ test-types-partial-local-molds
3064++ 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))
3055++ test-types-partial-locals
3066++ 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))
3057++ test-types-partial-many-atom-constraints
3068++ 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))
3059++ test-types-partial-mold-bare-aura
3070++ 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))
3061++ test-types-partial-mold-composite
3072++ 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))
3063++ test-types-partial-mold-forward
3074++ 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))
3065++ test-types-partial-mold-recursive
3076++ 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))
3067++ test-types-partial-occurs
3078++ 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))
3069++ test-types-partial-projection
3080++ 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))
3071++ test-types-partial-shadow-global
3082++ 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))
3073++ test-types-partial-shared-tvar
3084++ 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))
3075++ test-types-partial-union-cases
3086++ 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))
3077++ test-types-partial-union-edges
3088++ 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))
3079++ test-types-partial-unresolved-tag
3090++ 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))
3081++ test-types-prelude-cmd
3092++ 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 ~ ~ ~))
3083++ test-types-prelude-direct
3094++ 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 ~ ~ ~))
3085++ test-types-prelude-functional
3096++ 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 ~ ~ ~))
3087++ test-types-prelude-interface
3098++ 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]]))
3089++ test-types-prelude-list-functions
3100++ 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]]))
3091++ test-types-prelude-list-helpers
3102++ 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 ~ ~ ~))
3093++ test-types-prelude-unit-helpers
3106++ 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 ~ ~ ~))
3095++ test-types-record-bound-variable
3108++ 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))
3097++ test-types-record-cast-context
3110++ 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 ~ ~ ~))
3099++ test-types-record-change
3112++ 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 ~ ~ ~))
3101++ test-types-record-change-generic
3114++ 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 ~ ~ ~))
3103++ test-types-record-faces
3116++ 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))
3105++ test-types-record-import
3118++ 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]]))
3107++ test-types-record-local-scheme
3120++ 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))
3109++ test-types-record-nested
3122++ 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))
3111++ test-types-record-to-tuple
3124++ 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))
3113++ test-types-recursion-scc-failures
3126++ 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 ~ ~ ~))
3115++ test-types-recursion-scc-groups
3128++ 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 ~ ~ ~))
3117++ test-types-recursion-scc-import
3130++ 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]]))
3119++ test-types-recursion-scc-import-bad
3132++ 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]]))
3121++ test-types-recursion-scc-local
3134++ 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 ~ ~ ~))
3123++ test-types-recursion-scc-order
3136++ 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 ~ ~ ~))
3125++ test-types-recursion-scc-shadow
3138++ 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 ~ ~ ~))
3127++ test-types-recursive-branch
3140++ 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 ~ ~ ~))
3129++ test-types-recursive-gate
3142++ 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))
3131++ test-types-recursive-sample
3144++ 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))
3133++ test-types-scope-library-poke
3146++ 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 ~ ~ ~))
3135++ test-types-scope-root-api
3148++ 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 ~ ~ ~))
3137++ test-types-scope-store-duplicate
3150++ 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 ~ ~ ~))
3139++ test-types-scope-store-shadow
3152++ 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 ~ ~ ~))
3141++ test-types-single-case-pattern
3154++ 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 ~ ~ ~))
3143++ test-types-string-interpolation
3156++ 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 ~ ~ ~))
3145++ test-types-tuple-context
3158++ 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 ~ ~ ~))
3147++ test-types-tuple-context-nested
3160++ 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 ~ ~ ~))
3149++ test-types-union-alias
3162++ 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))
3151++ test-types-union-branch-context
3164++ 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))
3153++ test-types-union-branch-pending
3166++ 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))
3155++ test-types-union-constructor-shape
3168++ 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))
3157++ test-types-union-context-flow
3170++ 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))
3159++ test-types-union-finite
3172++ 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 ~ ~ ~))
3161++ test-types-union-finite-context
3174++ 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 ~ ~ ~))
3163++ test-types-union-finite-generic
3176++ 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 ~ ~ ~))
3165++ test-types-union-finite-limit
3178++ 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 ~ ~ ~))
3167++ test-types-union-import
3180++ 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]]))
3169++ test-types-union-local-pending
3182++ 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))
3171++ test-types-union-overlap
3184++ 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))
3173++ test-types-union-overlap-nested
3186++ 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))
3175++ test-types-union-pattern-result-context
3188++ 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 ~ ~ ~))
3177++ test-types-union-pattern-result-controls
3190++ 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 ~ ~ ~))
3179++ test-types-union-patterns
3192++ 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 ~ ~ ~))
3181++ test-types-union-patterns-generic
3194++ 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 ~ ~ ~))
3183++ test-types-union-patterns-import
3196++ 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]]))
3185++ test-types-union-phantom-generic
3198++ 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))
3187++ test-types-union-print-cross-namespace
3200++ 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]]))
3189++ test-types-union-print-distinct
3202++ 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]]))
3191++ test-types-union-print-escape
3204++ 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))
3193++ test-types-union-print-local
3206++ 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))
3195++ test-types-union-print-nested
3208++ 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))
3197++ test-types-union-print-same-origin
3210++ 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]]))
3199++ test-types-union-print-transitive
3212++ 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]]))
3201++ test-types-union-singleton
3214++ 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))
3203++ test-types-union-tag-atoms
3216++ 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))
3205++ test-types-union-tags
3218++ 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))
3207++ test-types-union-unresolved
3220++ 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))
3209++ test-types-union-unresolved-flow
3222++ 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))
3211++ test-types-unit-construction
3224++ 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 ~ ~ ~))
3213++ test-types-unit-context
3226++ 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 ~ ~ ~))
3215++ test-types-unit-patterns
3228++ 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))
3217++ test-types-value-cycle-shadow
3230++ 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 ~ ~ ~))
3219++ test-types-value-cycle-unsupported
3232++ 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 ~ ~ ~))
3221++ test-types-value-cycles
3234++ 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 ~ ~ ~))
3223::
3236::
3224:: +check: run golden:jibb on a case and compare both outputs
3237:: +check: run golden:jibb on a case and compare both outputs
3225::
3238::
tools/clay-fixtures+43
@@ -2,6 +2,8 @@
2"""Build and inspect example /sur and mark fixtures through Clay."""
2"""Build and inspect example /sur and mark fixtures through Clay."""
3
3
4from pathlib import Path
4from pathlib import Path
5+import shutil
6+import signal
5import subprocess
7import subprocess
6import sys
8import sys
7import tempfile
9import tempfile
@@ -142,6 +144,47 @@ if result.stdout != expected:
142 sys.exit(1)
144 sys.exit(1)
143print('Clay nested Ford union importer/checker bridge golden passed')
145print('Clay nested Ford union importer/checker bridge golden passed')
144
146
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+
145try:
188try:
146 result = subprocess.run([str(ship), 'run', str(fixtures / 'mark-shape.txt')],
189 result = subprocess.run([str(ship), 'run', str(fixtures / 'mark-shape.txt')],
147 stdout=subprocess.PIPE, check=True)
190 stdout=subprocess.PIPE, check=True)
tools/importer-test+1−1
@@ -34,4 +34,4 @@ if result.stdout != expected:
34 result.stdout.decode().splitlines(keepends=True),
34 result.stdout.decode().splitlines(keepends=True),
35 fromfile='expected tree.txt', tofile='actual types'))
35 fromfile='expected tree.txt', tofile='actual types'))
36 sys.exit(1)
36 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()