@mark1russell7/coeval 0.4.3 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -27,14 +27,16 @@ A plan evaluates many times without a trace. `evaluate(machine, doc)` gives the
27
27
  | Documents | `isEnvelope`, `stored`, `typePath`, `docEquals` | The envelope, the keys of a store beside it, and the equality of documents. A host value, for example a date, is equal only to itself |
28
28
  | Parts | `partsOf`, `splitParts` | The kind and the parts of one document, with the declared type for a bare value. The plan, the reference and the static kit use it |
29
29
  | World | `lookupKind`, `Kind`, `Namespace`, `PartShape`, `ScopeRule`, `CapsRule` | The kinds, with their contracts: the shape of the parts, the type of the data, the kinds that a position permits, the names that a kind binds, the capabilities that it gives its parts, and its effects. A namespace can have a fallback kind |
30
+ | Merges | `mergeWorlds`, `mergeMachines`, `MergeError` | The one merge of worlds and machines. Equal entries merge, and namespaces merge key by key. Each other clash is a conflict, unless the later part names its path in `replaces` |
30
31
  | Ladder | `ask` | The evaluator of a verb: the own entry, then the kind, then the default |
31
32
  | References | `resolve`, `HostThing`, `Navigator` | A path from a root of the context: `self`, `names`, `world`, `event` or `caps`. A step document can have computed parts, and a walker can give the code of its failure |
32
33
  | Plans | `prepare`, `planner`, `evaluate`, `run` | A document compiles one time into code. An evaluator is a function or a compiler |
33
34
  | The run side | `run`, `Runner`, `permits`, `narrow`, `partCaps` | Effects in order, parts at the same time, capabilities that only narrow, and an abort. The kernel narrows the capabilities of each part by the contract of its kind |
34
35
  | Errors | `Result`, `EvalError`, `Failure`, `failures` | An error value has a code, a reason, a place and a cause. An evaluation does not throw |
35
36
  | The static kit | `walk`, `refsOf`, `mapRefs`, `check` | The documents of a document in linear time, its free references, and its problems before a run, each with its place and its JSON path. A check narrows the capabilities as a run does. The hook `known` of a machine names the unknown operations |
36
- | The formula kit | `formulaMachine`, `FormulaProfile`, `formulaKnown` | The shared constructs `lit`, `ref`, `record`, `list`, `let`, `fn`, `call`, `if`, `and`, `or`, and the namespaces `ops` and `ext`. A profile gives the rules of a language, for example how the errors of two parts combine. An address gives a thing, not its value |
37
- | One meaning | `agree`, `reference`, `formulaDefinitions`, `generate` | A reference interpreter that compiles nothing, and `agree`, which compares a plan with it and with the second tier of a language. `generate` builds random documents from the kind contracts |
37
+ | Trees | `STD_WORLD` (`panel`, `box`), `nearestWalker` | The decorated tree: each field of a node is an attribute that evaluates on demand, one time in an evaluation. A sibling is a path through the parent, and a cycle gives `#CYCLE!` with its chain |
38
+ | The formula kit | `formulaMachine`, `FormulaProfile`, `formulaKnown` | The shared constructs `lit`, `ref`, `record`, `list`, `let`, `fn`, `call`, `if`, `and`, `or`, and the namespaces `ops` and `ext`. A profile gives the rules of a language, for example how the errors of two parts combine. A language extends the kit through the merge. An address gives a thing, not its value |
39
+ | One meaning | `agree`, `reference`, `formulaDefinitions`, `STD_DEFINITIONS`, `generate` | A reference interpreter that compiles nothing, and `agree`, which compares a plan with it and with the second tier of a language. `generate` builds random documents from the kind contracts |
38
40
 
39
41
  Each rule has an ID in [`docs/SPEC.md`](https://github.com/mark1russell7/coeval/blob/main/docs/SPEC.md), and each ID has a test. [The site](https://mark1russell7.github.io/coeval/) explains each idea with a live diagram.
40
42
 
package/build/index.d.ts CHANGED
@@ -780,128 +780,6 @@ export declare function kindNamed(world: World, name: TypeRef): Kind | undefined
780
780
  */
781
781
  export declare function ask(world: World, doc: Header, verb: string, options?: AskOptions): Answer;
782
782
  //#endregion
783
- //#region src/classify.d.ts
784
- /** A shape proposes a kind for each document that has all of its fields. */
785
- interface Shape$1 {
786
- readonly name: string;
787
- readonly fields: readonly string[];
788
- readonly kind: string;
789
- }
790
- /** The result of a classification. */
791
- interface Classification {
792
- /** The kind of the one most specific shape. */
793
- readonly kind?: string;
794
- /** The names of the most specific shapes. */
795
- readonly candidates: readonly string[];
796
- /** `no-match`: no shape applies. `ambiguous`: two or more shapes match equally well. */
797
- readonly error?: "no-match" | "ambiguous";
798
- }
799
- /**
800
- * This function proposes a kind for a value without a type, from the fields that the value has.
801
- * A shape applies when the value has each field of the shape. The most specific shapes are the ones that
802
- * no other applicable shape contains. A host uses a classifier when data comes in, and then tags the data.
803
- * The ladder does not call a classifier.
804
- *
805
- * @param shapes - The shapes to examine.
806
- * @param value - The value without a type.
807
- * @returns The proposed kind, or an error with the candidates.
808
- */
809
- export declare function classify(shapes: readonly Shape$1[], value: Json): Classification;
810
- /**
811
- * This function puts a value in an envelope with a type. The value does not change.
812
- *
813
- * @param value - The value.
814
- * @param kind - The name of the kind.
815
- * @returns The envelope.
816
- */
817
- export declare function tag(value: Json, kind: string): Envelope;
818
- //#endregion
819
- //#region src/parts.d.ts
820
- /** One part of a value: its place in the value, the JSON of the part, and the type that its position declares. */
821
- interface PartSlot {
822
- /** The keys from the value of the document to the part. */
823
- readonly path: readonly Key[];
824
- /** The path as one text, with a dot between the keys, for example `bind.x`. A part of a list has its index. */
825
- readonly key: string;
826
- readonly item: Json;
827
- readonly of?: string;
828
- /** `true` when the position of the part declares an address: a reference there gives what its path reaches. */
829
- readonly address?: true;
830
- }
831
- /** The value of a document, split into its parts, by the shape that its kind declares. */
832
- type Split = {
833
- readonly ok: true;
834
- /** The parts, in the order of the value. */
835
- readonly parts: readonly PartSlot[];
836
- /** The value without the parts: a field that holds a part is not in it, and a list of parts gives `null`. */
837
- readonly data: Json;
838
- /**
839
- * This function gives the value with a handle in the place of each part.
840
- *
841
- * @param handles - One handle for each part, in the order of `parts`.
842
- * @returns The value with the handles.
843
- */
844
- fill<P>(handles: readonly P[]): unknown;
845
- } | {
846
- readonly ok: false;
847
- readonly reason: string;
848
- readonly at: readonly Key[];
849
- };
850
- /**
851
- * This function splits a value into its parts, by the shape that its kind declares. The evaluator, the view and
852
- * the static kit use the same split, thus each one sees the same parts.
853
- *
854
- * @param shape - The shape of the value. The default is data.
855
- * @param value - The value of the document.
856
- * @returns The parts and a way to fill their places, or the reason why the value does not have the shape.
857
- */
858
- export declare function splitParts(shape: Shape | undefined, value: Json): Split;
859
- /**
860
- * The kind and the parts of one document: what `partsOf` gives. `ok` is `false` only when the value is not a
861
- * document: it has no envelope, and its position declares no type. A value without the shape of its kind gives a
862
- * failed `split`.
863
- */
864
- type DocParts = {
865
- readonly ok: true;
866
- /** The document. A bare value gets the type that its position declares. */
867
- readonly doc: Envelope;
868
- /** `true` when the type came from the position and not from an envelope. */
869
- readonly declared: boolean;
870
- /** The kind, or `undefined` when the world has no kind for the type. Then the value is data. */
871
- readonly kind: Kind | undefined;
872
- /** The keys of the kind after each alias, or `undefined` without a kind. */
873
- readonly typePath: readonly Key[] | undefined;
874
- /**
875
- * The split of the value by the shape of the kind. The reason of a failed split is the reason of the `#VALUE!`
876
- * of an evaluation: it names the kind. Its `at` gives the keys from the value to the problem.
877
- */
878
- readonly split: Split;
879
- } | {
880
- readonly ok: false;
881
- readonly code: "#PART?";
882
- readonly reason: string;
883
- };
884
- /**
885
- * This function reads one document by the contracts of the world. It finds the kind of the type. A bare value gets
886
- * the type that its position declares. Then the function splits the value by the shape of the kind. The plan, the
887
- * reference interpreter and the static kit read each document with this function. Thus they see the same parts.
888
- *
889
- * @param world - The world of the kinds.
890
- * @param value - The document, or a bare value.
891
- * @param declaredType - The type that the position of a bare value declares.
892
- * @returns The document, its kind and its parts, or the reason why the value is not a document.
893
- */
894
- export declare function partsOf(world: World, value: unknown, declaredType?: string): DocParts;
895
- /**
896
- * This function tells if the path of a part matches a pattern of a scope rule. The key `"*"` of a pattern matches
897
- * each key.
898
- *
899
- * @param path - The path of the part.
900
- * @param pattern - The pattern.
901
- * @returns `true` when the path matches.
902
- */
903
- export declare function pathMatches(path: readonly Key[], pattern: readonly Key[]): boolean;
904
- //#endregion
905
783
  //#region src/evaluate.d.ts
906
784
  /**
907
785
  * This function makes a context with names and capabilities. The other roots are empty, and an evaluation sets
@@ -1419,6 +1297,205 @@ export declare function flatten(trace: TraceNode): readonly TraceNode[];
1419
1297
  */
1420
1298
  export declare function failures(trace: TraceNode): readonly EvalError[];
1421
1299
  //#endregion
1300
+ //#region src/merge.d.ts
1301
+ /** The keys from a part of a merge to one of its entries, for example `["kinds", "ref"]`. */
1302
+ type MergePath = readonly Key[];
1303
+ /**
1304
+ * A world as a part of a merge. Each field is optional. `replaces` names the paths of the entries that this part
1305
+ * replaces, for example `["kinds", "ref"]` or `["defaults", "view"]`. The result of a merge has no `replaces`.
1306
+ */
1307
+ interface WorldPart {
1308
+ readonly kinds?: Readonly<Record<string, WorldEntry>>;
1309
+ readonly defaults?: Readonly<Record<string, string>>;
1310
+ readonly fallback?: Kind;
1311
+ readonly replaces?: readonly MergePath[];
1312
+ }
1313
+ /**
1314
+ * A machine as a part of a merge. Each field is optional. `replaces` names paths in the machine, for example
1315
+ * `["evaluators", "formula.op"]` or `["world", "kinds", "ref"]`. The paths in `world.replaces` start at the world.
1316
+ */
1317
+ interface MachinePart extends Omit<Partial<Machine>, "world"> {
1318
+ readonly world?: WorldPart;
1319
+ readonly replaces?: readonly MergePath[];
1320
+ }
1321
+ /**
1322
+ * One conflict of a merge. `path` is the path of the entry, as `replaces` names it. Thus the same path in the
1323
+ * `replaces` of the later part resolves the conflict. `parts` gives the indices of the two parts, the earlier first.
1324
+ */
1325
+ interface MergeConflict {
1326
+ readonly path: MergePath;
1327
+ readonly parts: readonly [number, number];
1328
+ readonly reason: string;
1329
+ }
1330
+ /** The exception of a merge with conflicts. It lists each conflict of the merge, not only the first. */
1331
+ export declare class MergeError extends Error {
1332
+ readonly conflicts: readonly MergeConflict[];
1333
+ /**
1334
+ * This constructor makes the exception.
1335
+ *
1336
+ * @param conflicts - The conflicts, in the order that the merge found them.
1337
+ */
1338
+ constructor(conflicts: readonly MergeConflict[]);
1339
+ }
1340
+ /**
1341
+ * This function merges worlds into one world, in the order of the parts. It does not change a part.
1342
+ *
1343
+ * - Two entries that are equal by `docEquals` give one entry.
1344
+ * - Two namespaces merge key by key, at each depth. Their fallbacks merge as each other entry.
1345
+ * - The defaults merge verb by verb, and the world keeps one fallback.
1346
+ * - Each other pair of entries at one path is a conflict, unless the later part names the path in `replaces`.
1347
+ * Then the later entry wins, with no merge below it.
1348
+ *
1349
+ * A part can be a function of the merge of the parts before it (`prev`, as an overlay of Nix). Thus a part can read
1350
+ * the entry that it replaces.
1351
+ *
1352
+ * @param parts - The worlds, or functions that give a world from the merge before them.
1353
+ * @returns The world. It has no `replaces`.
1354
+ * @throws {MergeError} The merge has a conflict. The error lists each conflict.
1355
+ */
1356
+ export declare function mergeWorlds(...parts: readonly (WorldPart | ((prev: World) => WorldPart))[]): World;
1357
+ /**
1358
+ * This function merges machines into one machine, in the order of the parts. It does not change a part.
1359
+ *
1360
+ * - The worlds merge with the rules of `mergeWorlds`. The paths of their conflicts start with `"world"`.
1361
+ * - The tables `evaluators`, `runners`, `derefs` and `walkers` merge name by name. A function is equal only to itself.
1362
+ * - The evaluator and the runner of a name are its code. A replacement of the name replaces both.
1363
+ * - A runner hides the evaluator of its name. Thus one part must give both, or the merge gives a conflict.
1364
+ * - The hooks `known` compose in the order of the parts. A hook does not answer for a name that a later part replaces.
1365
+ * - Each other field, for example `permits`, `adopt`, `roots`, `plain` or `maxDepth`, is one value. Two different
1366
+ * values are a conflict. An absent field has no value.
1367
+ *
1368
+ * A conflict stops the merge, unless the later part names its path in `replaces`. A part can be a function of the
1369
+ * merge of the parts before it (`prev`, as an overlay of Nix). Thus a part can wrap the code that it replaces.
1370
+ *
1371
+ * @param parts - The machines, or functions that give a machine from the merge before them.
1372
+ * @returns The machine.
1373
+ * @throws {MergeError} The merge has a conflict. The error lists each conflict.
1374
+ */
1375
+ export declare function mergeMachines(...parts: readonly (MachinePart | ((prev: Machine) => MachinePart))[]): Machine;
1376
+ //#endregion
1377
+ //#region src/classify.d.ts
1378
+ /** A shape proposes a kind for each document that has all of its fields. */
1379
+ interface Shape$1 {
1380
+ readonly name: string;
1381
+ readonly fields: readonly string[];
1382
+ readonly kind: string;
1383
+ }
1384
+ /** The result of a classification. */
1385
+ interface Classification {
1386
+ /** The kind of the one most specific shape. */
1387
+ readonly kind?: string;
1388
+ /** The names of the most specific shapes. */
1389
+ readonly candidates: readonly string[];
1390
+ /** `no-match`: no shape applies. `ambiguous`: two or more shapes match equally well. */
1391
+ readonly error?: "no-match" | "ambiguous";
1392
+ }
1393
+ /**
1394
+ * This function proposes a kind for a value without a type, from the fields that the value has.
1395
+ * A shape applies when the value has each field of the shape. The most specific shapes are the ones that
1396
+ * no other applicable shape contains. A host uses a classifier when data comes in, and then tags the data.
1397
+ * The ladder does not call a classifier.
1398
+ *
1399
+ * @param shapes - The shapes to examine.
1400
+ * @param value - The value without a type.
1401
+ * @returns The proposed kind, or an error with the candidates.
1402
+ */
1403
+ export declare function classify(shapes: readonly Shape$1[], value: Json): Classification;
1404
+ /**
1405
+ * This function puts a value in an envelope with a type. The value does not change.
1406
+ *
1407
+ * @param value - The value.
1408
+ * @param kind - The name of the kind.
1409
+ * @returns The envelope.
1410
+ */
1411
+ export declare function tag(value: Json, kind: string): Envelope;
1412
+ //#endregion
1413
+ //#region src/parts.d.ts
1414
+ /** One part of a value: its place in the value, the JSON of the part, and the type that its position declares. */
1415
+ interface PartSlot {
1416
+ /** The keys from the value of the document to the part. */
1417
+ readonly path: readonly Key[];
1418
+ /** The path as one text, with a dot between the keys, for example `bind.x`. A part of a list has its index. */
1419
+ readonly key: string;
1420
+ readonly item: Json;
1421
+ readonly of?: string;
1422
+ /** `true` when the position of the part declares an address: a reference there gives what its path reaches. */
1423
+ readonly address?: true;
1424
+ }
1425
+ /** The value of a document, split into its parts, by the shape that its kind declares. */
1426
+ type Split = {
1427
+ readonly ok: true;
1428
+ /** The parts, in the order of the value. */
1429
+ readonly parts: readonly PartSlot[];
1430
+ /** The value without the parts: a field that holds a part is not in it, and a list of parts gives `null`. */
1431
+ readonly data: Json;
1432
+ /**
1433
+ * This function gives the value with a handle in the place of each part.
1434
+ *
1435
+ * @param handles - One handle for each part, in the order of `parts`.
1436
+ * @returns The value with the handles.
1437
+ */
1438
+ fill<P>(handles: readonly P[]): unknown;
1439
+ } | {
1440
+ readonly ok: false;
1441
+ readonly reason: string;
1442
+ readonly at: readonly Key[];
1443
+ };
1444
+ /**
1445
+ * This function splits a value into its parts, by the shape that its kind declares. The evaluator, the view and
1446
+ * the static kit use the same split, thus each one sees the same parts.
1447
+ *
1448
+ * @param shape - The shape of the value. The default is data.
1449
+ * @param value - The value of the document.
1450
+ * @returns The parts and a way to fill their places, or the reason why the value does not have the shape.
1451
+ */
1452
+ export declare function splitParts(shape: Shape | undefined, value: Json): Split;
1453
+ /**
1454
+ * The kind and the parts of one document: what `partsOf` gives. `ok` is `false` only when the value is not a
1455
+ * document: it has no envelope, and its position declares no type. A value without the shape of its kind gives a
1456
+ * failed `split`.
1457
+ */
1458
+ type DocParts = {
1459
+ readonly ok: true;
1460
+ /** The document. A bare value gets the type that its position declares. */
1461
+ readonly doc: Envelope;
1462
+ /** `true` when the type came from the position and not from an envelope. */
1463
+ readonly declared: boolean;
1464
+ /** The kind, or `undefined` when the world has no kind for the type. Then the value is data. */
1465
+ readonly kind: Kind | undefined;
1466
+ /** The keys of the kind after each alias, or `undefined` without a kind. */
1467
+ readonly typePath: readonly Key[] | undefined;
1468
+ /**
1469
+ * The split of the value by the shape of the kind. The reason of a failed split is the reason of the `#VALUE!`
1470
+ * of an evaluation: it names the kind. Its `at` gives the keys from the value to the problem.
1471
+ */
1472
+ readonly split: Split;
1473
+ } | {
1474
+ readonly ok: false;
1475
+ readonly code: "#PART?";
1476
+ readonly reason: string;
1477
+ };
1478
+ /**
1479
+ * This function reads one document by the contracts of the world. It finds the kind of the type. A bare value gets
1480
+ * the type that its position declares. Then the function splits the value by the shape of the kind. The plan, the
1481
+ * reference interpreter and the static kit read each document with this function. Thus they see the same parts.
1482
+ *
1483
+ * @param world - The world of the kinds.
1484
+ * @param value - The document, or a bare value.
1485
+ * @param declaredType - The type that the position of a bare value declares.
1486
+ * @returns The document, its kind and its parts, or the reason why the value is not a document.
1487
+ */
1488
+ export declare function partsOf(world: World, value: unknown, declaredType?: string): DocParts;
1489
+ /**
1490
+ * This function tells if the path of a part matches a pattern of a scope rule. The key `"*"` of a pattern matches
1491
+ * each key.
1492
+ *
1493
+ * @param path - The path of the part.
1494
+ * @param pattern - The pattern.
1495
+ * @returns `true` when the path matches.
1496
+ */
1497
+ export declare function pathMatches(path: readonly Key[], pattern: readonly Key[]): boolean;
1498
+ //#endregion
1422
1499
  //#region src/stdlib.d.ts
1423
1500
  /**
1424
1501
  * The world of the examples: small kinds for numbers, lists, conditions, names, sequences and effects.
@@ -1801,15 +1878,21 @@ export declare function formulaEvaluators(profile?: FormulaProfile): Readonly<Re
1801
1878
  */
1802
1879
  export declare function formulaKnown(profile?: FormulaProfile): (path: readonly Key[], evaluator: string) => true | string;
1803
1880
  /**
1804
- * This function makes a machine for a formula language. The machine has the kinds and the evaluators of the
1805
- * formula kit. It also has the kinds, the evaluators and the walkers that the language adds. Its hook `known` comes
1806
- * from the profile (`formulaKnown`). A hook `known` of the language answers each name that the kit knows.
1881
+ * This function makes a machine for a formula language. It merges the kit and the parts that the language adds with
1882
+ * `mergeMachines`. Thus a kind `ops.*` or a namespace `ops` of the language extends the namespace of the kit, and
1883
+ * the fallback of the kit stays. The hook `known` of the kit comes from the profile (`formulaKnown`). A hook `known`
1884
+ * of the language answers after it.
1885
+ *
1886
+ * A kind or an evaluator of the language that differs from the entry of the kit with its name is a conflict. The
1887
+ * language names the path in `replaces` to replace the entry, for example `["world", "kinds", "ref"]` or
1888
+ * `["evaluators", "formula.op"]`. Then the hook of the kit does not answer for a replaced evaluator.
1807
1889
  *
1808
1890
  * @param profile - The operations and the rules of the language.
1809
- * @param more - The parts of a machine that the language adds. Its kinds win over the kinds of the kit.
1891
+ * @param more - The parts of a machine that the language adds, with the paths of the entries that it replaces.
1810
1892
  * @returns The machine.
1893
+ * @throws {MergeError} The language and the kit have a conflict.
1811
1894
  */
1812
- export declare function formulaMachine(profile?: FormulaProfile, more?: Partial<Machine>): Machine;
1895
+ export declare function formulaMachine(profile?: FormulaProfile, more?: MachinePart): Machine;
1813
1896
  //#endregion
1814
1897
  //#region src/reference.d.ts
1815
1898
  /**
@@ -1841,6 +1924,11 @@ interface ReferenceOptions {
1841
1924
  * @returns The result.
1842
1925
  */
1843
1926
  export declare function reference(machine: Machine, doc: unknown, context?: Context, options?: ReferenceOptions): Result;
1927
+ /**
1928
+ * The definitions of the reference for the evaluators of the standard machine that need their own reading. The
1929
+ * reference uses them for the standard evaluators, also without the option `definitions`. It holds `tree.node`.
1930
+ */
1931
+ export declare const STD_DEFINITIONS: Definitions;
1844
1932
  /**
1845
1933
  * This function gives the definitions of the formula kit for one profile. Each construct is a function evaluator in
1846
1934
  * the most direct style. It shares no code with the compilers of `formulaEvaluators`, thus the two readings of the
@@ -2003,6 +2091,10 @@ interface GenerateOptions {
2003
2091
  readonly own?: readonly string[];
2004
2092
  /** The keys for the steps of a path after its root and its name. */
2005
2093
  readonly keys?: readonly Key[];
2094
+ /** The roots that a path can start at. The default is each root. */
2095
+ readonly roots?: readonly Root[];
2096
+ /** The most steps of a path after its root and its name. The default is 2. */
2097
+ readonly steps?: number;
2006
2098
  }
2007
2099
  /**
2008
2100
  * This function lists the types of a world: each kind and each alias, also in a namespace. A namespace with a
@@ -2025,5 +2117,5 @@ export declare function typesOf(world: World): readonly (readonly Key[])[];
2025
2117
  */
2026
2118
  export declare function generate(world: World, options: GenerateOptions): unknown;
2027
2119
  //#endregion
2028
- export type { AgreeOptions, Agreement, Alias, AllOptions, Answer, AskOptions, Cap, CapsRule, CheckOptions, Classification, Closure, Code, CompileInput, CompiledEvaluator, CompiledPart, CompiledRunner, Construct, Context, Part as ContextPart, Definitions, DerefCode, DocParts, DocVisit, Edge, Effect, Envelope, ErrorCode, EvalError, EvalFn, EvalInput, EvalOptions, Evaluator, ExtFn, Failed, FormulaProfile, GenerateOptions, Give, Header, Hop, HopBy, HostThing, Issue, Json, JsonRecord, KernelCode, Key, Kind, KindSource, LazyOp, Lookup, Machine, NamesSource, Namespace, Navigator, NearestOptions, OpFn, OrderProblem, Outcome, Part$1 as Part, PartInfo, Shape as PartShape, PartSlot, PartsSpec, Perform, Plan, PrepareOptions, Random, RefUse, ReferenceOptions, Resolution, ResolveCode, ResolveOptions, Result, Root, Run, RunCode, RunFn, RunInput, RunOptions, RunPart, Rung, Runner, Runtime, ScopeRule, Shape$1 as Shape, Side, Split, Step, StepSpec, Steps, StopSignal, Stored, Thing, Tier, TierResult, TraceNode, TypeRef, Use, WalkInput, WalkOptions, WalkProblem, WalkResult, Walker, World, WorldEntry };
2120
+ export type { AgreeOptions, Agreement, Alias, AllOptions, Answer, AskOptions, Cap, CapsRule, CheckOptions, Classification, Closure, Code, CompileInput, CompiledEvaluator, CompiledPart, CompiledRunner, Construct, Context, Part as ContextPart, Definitions, DerefCode, DocParts, DocVisit, Edge, Effect, Envelope, ErrorCode, EvalError, EvalFn, EvalInput, EvalOptions, Evaluator, ExtFn, Failed, FormulaProfile, GenerateOptions, Give, Header, Hop, HopBy, HostThing, Issue, Json, JsonRecord, KernelCode, Key, Kind, KindSource, LazyOp, Lookup, Machine, MachinePart, MergeConflict, MergePath, NamesSource, Namespace, Navigator, NearestOptions, OpFn, OrderProblem, Outcome, Part$1 as Part, PartInfo, Shape as PartShape, PartSlot, PartsSpec, Perform, Plan, PrepareOptions, Random, RefUse, ReferenceOptions, Resolution, ResolveCode, ResolveOptions, Result, Root, Run, RunCode, RunFn, RunInput, RunOptions, RunPart, Rung, Runner, Runtime, ScopeRule, Shape$1 as Shape, Side, Split, Step, StepSpec, Steps, StopSignal, Stored, Thing, Tier, TierResult, TraceNode, TypeRef, Use, WalkInput, WalkOptions, WalkProblem, WalkResult, Walker, World, WorldEntry, WorldPart };
2029
2121
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":["Shape","Part"],"sources":["../src/doc.ts","../src/errors.ts","../src/deref.ts","../src/world.ts","../src/ladder.ts","../src/classify.ts","../src/parts.ts","../src/evaluate.ts","../src/stdlib.ts","../src/order.ts","../src/context.ts","../src/static.ts","../src/formula.ts","../src/reference.ts","../src/agree.ts","../src/generate.ts"],"mappings":";;KACY,mDAAmD;YAAmC,cAAA;;;KAGtF;YAAuC,cAAA;;;KAGvC;;;;;;;;;;;KAYA,4BAA4B;WAAmB;WAAsB,gBAAgB;;;;;;KAMrF;;WAED,MAAM;;WAEN,OAAO;;WAEP;;WAEA,MAAM,SAAS;;;qBAIb;;;;;;;;wBASG,SAAS,iBAAiB,SAAS;;;;;;;;wBAanC,MAAM,QAAQ,YAAY,cAAc;;;;;;;wBAUxC,MAAM,iBAAiB,SAAS;;;;;;;;wBAWhC,UAAU,iBAAiB,SAAS;;;;;;;wBAcpC,SAAS,MAAM,mBAAmB;;;;;;;wBAalC,SAAS,MAAM;;;;;;;;;wBAqBf,WAAW,iBAAiB,SAAS,aAAa;;UAUjD;WACN,UAAU;;WAEV,QAAQ,SAAS,eAAe;;;;;;;;;;wBAW3B,OAAO,gBAAgB,4BAA4B;;;;;;;;;wBAqBnD,MAAM,MAAM,SAAS,OAAO,MAAM;WAAmB;WAAwB,MAAM;IAAgC;;;;;;;wBAUnH,OAAO,eAAe,SAAS;;;;;;;wBAU/B,OAAO,KAAK,WAAW;;;;;;;wBAevB,SAAS,iBAAiB;;;;;;;;;;;;;;;;;;wBA+B1B,UAAU,YAAY;;;;KC5O1B;;KAkBA,YAAY;;;;;;;UAQP;WACN,MAAM;WACN;WACA,iBAAiB;WACjB;;;KAIC,OAAO;WAA0B;WAAmB,OAAO;;WAAiB;WAAoB,OAAO;;;KAGvG;WAAoB;WAAoB,OAAO;;;;;;;;wBAQ3C,GAAG,GAAG,OAAO,IAAI,OAAO;;;;;;;;;wBAYxB,KAAK,MAAM,WAAW,gBAAgB;WAAiB,iBAAiB;WAAgB;IAAyB;;;;;;;;;wBAejH,OAAO,GAAG,QAAQ,OAAO,IAAI,gBAAgB,QAAQ,OAAO;;;;;qBAS/D,gBAAgB;WAClB,OAAO;;;;;;EAOhB,YAAY,OAAO;;;;;;;;wBAaL,gBAAgB;;;;;;;;;wBAiBhB,OAAO,gBAAgB,cAAc;;;;;;;wBAgBrC,SAAS;;;;;;;qBClIZ;;;;;UAMI;YACL;;WAED;;;;;;;EAOT,MAAM,KAAK,MAAM;;;;;;EAMjB;;;;;;;;EAQA,SAAS,eAAe;aAAmB,OAAO;;;;KAIxC;;;;;;;wBAQI,YAAY,iBAAiB,SAAS;;qBAKzC;;KAGD,eAAe;;;;;KAMf,wBAAwB;;;;;;;;;;UAWnB;WACN,MAAM;WACN,OAAO,SAAS;WAChB,OAAO;WACP,OAAO;WACP,eAAe;;;KAId,aAAa,KAAK,UAAU,KAAK,QAAQ;;;;;KAMzC;WAAwB;WAAmB,OAAO;;WAAqB;WAAoB;WAAyB,OAAO;;;UAGtH;;WAEN,MAAM;;WAEN,MAAM;WACN,SAAS;;;;;;;;EAQlB,MAAM,OAAO,OAAO,KAAK,MAAM;;;KAIrB,UAAU,OAAO,cAAc;;;;;;;;;;UAW1B;WACN,OAAO;WACP,SAAS,SAAS,eAAe;WACjC,UAAU,SAAS,eAAe;WAClC;WACA,iBAAiB;WACjB,SAAS,mBAAmB;;;KAI3B;;UAGK;WACN,MAAM;WACN,OAAO;WACP,IAAI;;;KAIH;;KAGA;WACG;WAAmB,OAAO;WAAgB,eAAe;;WACzD;WAAoB,MAAM,cAAc;WAAoB;WAAyB,eAAe;;;UAGlG;;WAEN;;;;;;;;;;;;wBA+BK,UAAU,KAAK,WAAW,OAAO,OAAO,KAAK;WAAiB,OAAO;WAAgB,IAAI;;;;;;;;wBAkCzF,MAAM,iBAAiB,SAAS;WAAsB,gBAAgB;;;;;;;;;;wBAgBtE,WAAW,OAAO,QAAQ;;;;;;;wBAe1B,QAAQ,QAAO,QAAQ,WAAgB;;;;;;;;;;;;;;;;;;;;;;;wBAqFvC,QAAQ,KAAK,WAAW,KAAK,SAAS,0BAA0B,UAAS,iBAAsB;;;;;;;wBA8F/F,aAAa,OAAO;;;;KCtaxB;;;;;;;;;;;;;;;;;;KAmBA;WACG;;WACA;WAAwB;WAAsB;WAA4B,2BAA2B;;WACrG;WAAwB;WAAsB,OAAO;WAAgB;;WACrE;WAAuB;WAAsB,OAAO;;WAEpD;WACA,4BAA4B,SAAS,eAAe;WACpD;WACA;WACA,OAAO;WACP;;WAEA;WAAwB;;WACxB;;WACA;WAA0B;WAA0B;WAAuB;;WAC3E;WAAuB,iBAAiB;;;KAG3C,YAAY;;;;;;;;;;KAWZ;WACG;;WACA,iBAAiB;;WACjB,iBAAiB;;WACjB,iBAAiB;WAAgB;;WACjC;;;;;;UAME;WACN,OAAO;;WAEP,uBAAuB;;WAEvB;;;;;;;;;;;;;KAcC;WACG;WAAuB,wBAAwB;;WAC/C;WAAuB,wBAAwB;;WAC/C;WAAuB,eAAe;WAAgB,wBAAwB;;;UAG5E;WACN,OAAO,SAAS;;WAEhB,QAAQ;;WAER,iBAAiB;;;;;;;WAOjB,gBAAgB;;WAEhB,OAAO;;;;;WAKP;;WAEA;;;UAIM;WACN,OAAO,SAAS,eAAe;WAC/B,WAAW;;;KAIV;WAAmB;WAAsB,gBAAgB;;;KAGzD,aAAa,OAAO,YAAY;;;;;UAM3B;WACN,OAAO,SAAS,eAAe;WAC/B,UAAU,SAAS;WACnB,WAAW;;;KAIV;WACG;WAAmB,MAAM;WAAe,eAAe;WAAgB;;WACvE;WAAoB;WAAkE,eAAe;;;;;;;;wBAQpG,OAAO,OAAO,yBAAyB,SAAS;;;;;;;wBAUhD,QAAQ,OAAO,yBAAyB,SAAS;;;;;;;wBAUjD,YAAY,OAAO,yBAAyB,SAAS;;;;;;;;;;;wBAmBrD,WAAW,OAAO,OAAO,MAAM,UAAU;;;;;;;;wBA+CzC,cAAc,SAAS,SAAS,eAAe,eAAe;;;;;;;;wBA8B9D,aAAa,cAAc,MAAM,OAAO;;;;;;;wBAaxC,cAAc;;;;qBC7QjB;;KAGD,eAAe;;KAGf;;;;;;;;;KAUA;;UAGK;WACN,MAAM;WACN,SAAS;;WAET;;WAEA;;WAEA,SAAS;;;UAIH;WACN;;WAEA;;WAEA,OAAO;;WAEP;WACA,gBAAgB;;;;;;UAOV;WACN,OAAO;WACP,MAAM,SAAS;;;UAIT;;WAEN;;;;;;;;;;wBAeK,OAAO,OAAO,OAAO,MAAM,UAAU;;;;;;;;wBAYrC,UAAU,OAAO,OAAO,MAAM,UAAU;;;;;;;;;;;;;;wBAiBxC,IAAI,OAAO,OAAO,KAAK,QAAQ,cAAc,UAAS,aAAkB;;;;UCrGvEA;WACN;WACA;WACA;;;UAIM;;WAEN;;WAEA;;WAEA;;;;;;;;;;;;wBAiBK,SAAS,iBAAiBA,WAAS,OAAO,OAAO;;;;;;;;wBAkBjD,IAAI,OAAO,MAAM,eAAe;;;;UC/C/B;;WAEN,eAAe;;WAEf;WACA,MAAM;WACN;;WAEA;;;KAUC;WAEG;;WAEA,gBAAgB;;WAEhB,MAAM;;;;;;;EAOf,KAAK,GAAG,kBAAkB;;WAEjB;WAAoB;WAAyB,aAAa;;;;;;;;;;wBAuDzD,WAAW,OAAO,mBAAmB,OAAO,OAAO;;;;;;KAuGvD;WAEG;;WAEA,KAAK;;WAEL;;WAEA,MAAM;;WAEN,mBAAmB;;;;;WAKnB,OAAO;;WAEP;WAAoB;WAAyB;;;;;;;;;;;;wBAY5C,QAAQ,OAAO,OAAO,gBAAgB,wBAAwB;;;;;;;;;wBAuB9D,YAAY,eAAe,OAAO,kBAAkB;;;;;;;;;;;;wBCxNpD,YAAY,QAAO,SAAS,0BAA+B,gBAAe,OAAY,OAAM,QAAe;;;;;;;wBAU3G,QAAQ,MAAM;;;;;;;;;;wBAad,QAAQ,eAAe,OAAO,MAAM;;;;;;;;;wBAgBpC,OAAO,QAAQ,SAAS,MAAM,UAAU;;;;;;;;;wBAoBxC,cAAc,YAAY,OAAO,YAAY,iBAAiB;;;;;;;;;;wBAkC9D,SAAS,gBAAgB,wBAAwB,eAAe,OAAO,eAAe,iBAAiB;;;;;;KAS3G,QAAQ,UAAU,kBAAkB;;UAG/B;WACN;;WAEA;;WAEA,eAAe;WACf;;WAEA;;WAEA;;WAEA,gBAAgB;;WAEhB,SAAS;;;KAIR,WAAW,QAAQ;;;;;UAMd;WACN,SAAS;;WAET;;;;;;;;;EAST,QAAQ,KAAK,SAAS,0BAA0B,UAAU,iBAAiB;;;;;;;;;;;EAW3E,OAAO,KAAK,SAAS,MAAM,KAAK,kBAAkB,gBAAgB,QAAQ;;;;;;;;;;;EAW1E,UAAU,KAAK,SAAS,MAAM,KAAK,kBAAkB,gBAAgB,QAAQ;;;;;;;;EAQ7E,IAAI,sBAAsB,UAAU,UAAU,aAAa,UAAU,2BAA2B;;;;;;;;;UAUjF;WACN;WACA;;;KAIC,QAAQ,KAAK,SAAS,IAAI,YAAY;;KAGtC,WAAW,KAAK,SAAS,IAAI,YAAY;;UAGpC;;WAEN;;WAEA,eAAe;;WAEf;;WAEA,MAAM;;WAEN,KAAK;;;UAIC;;WAEN;;WAEA,mBAAmB;WACnB,KAAK;;WAEL;;WAEA,MAAM;;WAEN,gBAAgB;;WAEhB,gBAAgB;WAChB,SAAS;;;;;;;;EAQlB,KAAK;;WAEI;;;;;;UAOMC;;WAEN;;WAEA,eAAe;;WAEf;;;;;;;EAOT,SAAS,UAAU,UAAU;;;UAId;;WAEN;;WAEA,mBAAmB;WACnB,KAAK;;WAEL;;WAEA,MAAM;;WAEN,gBAAgBA;;WAEhB,SAAS;;WAET,gBAAgB;;WAEhB;;;;;;;;EAQT,QAAQ,0BAA0B,UAAU,iBAAiB;;;;;;;;;EAS7D,OAAO,MAAM,KAAK,mBAAmB;;;;;;;;EAQrC,KAAK;;;UAIU;;WAEN;;WAEA,eAAe;;WAEf;;;;;;;EAOT,SAAS,UAAU,UAAU;;;UAId;WACN;WACA,mBAAmB;WACnB,KAAK;;WAEL;WACA,MAAM;WACN,gBAAgB;WAChB,SAAS;WACT,gBAAgB;EACzB,QAAQ,0BAA0B,UAAU,iBAAiB;;;;;;;;;EAS7D,OAAO,MAAM,KAAK,mBAAmB;;;;;;;;;EASrC,IAAI,gBAAgB,WAAW,UAAU,aAAa,UAAU,2BAA2B;;;;;;;;EAQ3F,KAAK;;;KAIK,UAAU,OAAO,cAAc;;UAG1B;;;;;;;WAON,UAAU,OAAO,iBAAiB;;;KAIjC,YAAY,SAAS;;KAGrB,SAAS,OAAO,aAAa;;UAGxB;;;;;;;WAON,aAAa,OAAO,iBAAiB;;;;;;KAOpC,SAAS,QAAQ;;;;;;;;UASZ,gBAAgB;WACtB,YAAY,SAAS,eAAe;;WAEpC,UAAU,SAAS,eAAe;WAClC;WACA,WAAW,eAAe,OAAO,eAAe,OAAO,SAAS;;;;;;;;;;WAUhE,SAAS,eAAe,OAAO;;;UAIzB;WACN;;WAEA;;WAEA,KAAK;;WAEL;;WAEA,QAAQ;WACR,MAAM;;WAEN;;WAEA,OAAO,SAAS;;WAEhB,eAAe;;WAEf;;WAEA;;WAEA;WACA,QAAQ;WACR,mBAAmB;;WAEnB;;;UAIM;WACN,QAAQ;WACR,OAAO;WACP,kBAAkB;;WAElB;;;UA2CM;WACN;WACA;EACT,iBAAiB,eAAe,sBAAsB;aAAqB;;;;UAI5D;;WAEN,UAAU;;WAEV;;WAEA,SAAS;;;UAIH;;WAEN,UAAU;;;UAkQJ;;WAEN;;WAEA;;;UAIM;WACN,SAAS;;WAET;;WAEA,MAAM;;;;;;;;EAQf,SAAS,UAAU,SAAS,UAAU,cAAc;;;;;;;;EAQpD,IAAI,UAAU,SAAS,UAAU,aAAa,QAAQ;;;;;;;;;;;wBA+SxC,QAAQ,SAAS,SAAS,cAAc,UAAS,iBAAsB;;;;;;;;;wBA2CvE,QAAQ,SAAS,SAAS,UAAS,kBAAuB,iBAAiB;;;;;;;;;;;;;;wBAyC3E,SAAS,SAAS,SAAS,cAAc,UAAS,SAAyB,wBAAwB;;;;;;;;;;;;wBAkB7F,IAAI,SAAS,SAAS,cAAc,UAAS,SAAyB,UAAS,aAAkB,QAAQ;;;;;;;;wBAc/G,OAAO,OAAO,WAAW,eAAe,QAAQ;;;;;;;wBAqBhD,QAAQ,OAAO,qBAAqB;;;;;;;;wBAkBpC,SAAS,OAAO,qBAAqB;;;;;;;qBCpwCxC,WAAW;;qBA8GX,gBAAgB,SAAS,eAAe;;UAgFpC;;;;;;;;WAQN,WAAW,MAAM,OAAO,QAAQ;;WAEhC;;;;;;;;;;wBAeK,cAAc,UAAS,iBAAsB;;qBAoBhD,aAAa,SAAS,eAAe;;;;;qBAiBrC,aAAa,SAAS,eAAe;;qBAiDrC,aAAa;;qBAGb;;;;UCxTI;WACN;WACA;WACA;;;KAIC,iBAAiB,gBAAgB;;UAG5B;WACN;WACA;;WAEA;;;;;;;;wBASK,WAAW,gBAAgB,sBAAsB;;;;;;;wBAkBjD,UAAU,gBAAgB,sBAAsB;;;;;;;;wBAkBhD,YAAY,gBAAgB,sBAAsB;;;;;;;;;wBAmBlD,eAAe,gBAAgB,YAAY;;;;;;;;wBAiB3C,OAAO,gBAAgB;;;;qBC5F1B;;KAGD,eAAe;;UAGV;WACN,MAAM;WACN;;WAEA;;WAEA;;;qBAIE,oBAAoB;;;;;;;;;;;KA4CrB;;UAGK;WACN;WACA,OAAO;WACP;;;UAIM;WACN;WACA;WACA,MAAM;WACN;WACA,SAAS;WACT,MAAM,SAAS,OAAO,MAAM;;;qBAM1B,qBAAqB;;;;UC7EjB;;WAEN,gBAAgB;;WAEhB,aAAa;;WAEb,SAAS;;WAET,eAAe;;WAEf,KAAK;;WAEL;;WAEA,OAAO;;WAEP,oBAAoB;;WAEpB;;WAEA,OAAO;;WAEP,OAAO;;WAEP;;;;;WAKA,gBAAgB;;;UAIV;;WAEN,gBAAgB;;WAEhB,aAAa;WACb;WACA;;;UAIM;;WAEN;;WAEA;;WAEA,gBAAgB;;;;;;WAMhB,WAAW,SAAS;;;;;;;;;;;;;;wBA6If,KAAK,OAAO,OAAO,cAAc,QAAQ,OAAO,4BAA4B,UAAS;;UAkFpF;;WAEN,OAAO;;WAEP,gBAAgB;;WAEhB,aAAa;;WAEb,eAAe;WACf;;WAEA;;WAEA;;;;;;;;;;;;wBAaK,OAAO,OAAO,OAAO,cAAc,UAAS,uBAA4B;;;;;;;;;;;wBAmDxE,QAAQ,OAAO,OAAO,cAAc,SAAS,KAAK,oBAAoB,UAAS;;UAW9E;WACN,MAAM;;WAEN,gBAAgB;WAChB;;WAEA,cAAc;;;UAIR;;WAEN;;WAEA;;;;;WAKA,gBAAgB;;;;;;;;;;;;;;;;;;;;;wBAoCX,MAAM,SAAS,SAAS,cAAc,UAAS,wBAA6B;;;;KCvahF,WAAW;;;;;KAMX,UAAU,sBAAsB,cAAc;;KAG9C,SAAS,MAAM,MAAM,SAAS,YAAY;;;;;;;;;;;;;;;;;;UAmBrC;WACN,MAAM,SAAS,eAAe,WAAW,iBAAiB;WAC1D,OAAO,SAAS,eAAe;WAC/B,MAAM,SAAS,eAAe;WAC9B,UAAU;WACV;WACA;WACA,QAAQ,OAAO;WACf,WAAW;WACX,SAAS,gBAAgB,eAAe;WACxC,WAAW,iBAAiB,gBAAgB;;;qBAO1C;WACC,OAAgB;EAA5B,YAAY,OAAgB;;cAGxB;;KAGM,eAAe;YAAoD;aAAqB;;;;;;;;;wBAQpF,UAAU,iBAAiB,SAAS;;qBAKvC,SAAS,SAAS,eAAe;;wBAY9B,SAAS;;;;;;;wBA4CT,gBAAgB,SAAS,eAAe;;;;;;;;wBA6CxC,kBAAkB,UAAS,iBAAsB,SAAS,eAAe;;;;;;;;;;;wBAyTzE,aAAa,UAAS,kBAAuB,eAAe,OAAO;;;;;;;;;;wBA+BnE,eAAe,UAAS,gBAAqB,OAAM,QAAQ,WAAgB;;;;;;;UCpe1E;WACN,aAAa,SAAS,eAAe;WACrC,UAAU,SAAS,eAAe;;;UAI5B;;WAEN;;WAEA,cAAc;;WAEd,UAAU;;;;;;;;;;;;;wBA6RL,UAAU,SAAS,SAAS,cAAc,UAAS,SAAyB,UAAS,mBAAwB;;;;;;;;;wBAmC7G,mBAAmB,UAAS,iBAAsB;;;;;;;;;;;KC9VtD;;UAGK;WACN,QAAQ;WACR,mBAAmB;;;UAIb;;WAEN;;WAEA,cAAc;;WAEd,iBAAiB,QAAQ;;;;;;;;WAQzB,SAAS,cAAc,SAAS,YAAY,SAAS;;;;;;;;WAQrD,SAAS,YAAY;;WAErB;;;;;;;;WAQA;;;KAIC;WACG;WAAmB,QAAQ;WAAiB,kBAAkB;;WAE9D;WACA,MAAM;;WAEN,MAAM;;WAEN,OAAO;;WAEP;;;;;;;;;;;;;;;;;;;wBAoBC,UAAU,YAAY,YAAY,SAAS,YAAY;;;;;;;;;;;;;wBAsGvD,MAAM,SAAS,SAAS,cAAc,UAAS,SAAyB,UAAS,eAAoB;;;;UC1LpG;;EAEf;;EAEA,IAAI;;EAEJ,OAAO;;EAEP,KAAK,GAAG,gBAAgB,MAAM;;;;;;;;wBAShB,OAAO,eAAe;;UAcrB;;WAEN;;WAEA,2BAA2B;;WAE3B;;WAEA;;WAEA;;WAEA;;WAEA;;;;;;;;WAQA,QAAQ,eAAe,OAAO,QAAQ,WAAW;;;;;;;;WAQjD,SAAS,eAAe,OAAO,eAAe,6BAA6B;;WAE3E;;WAEA,gBAAgB;;;;;;;;;wBAUX,QAAQ,OAAO,2BAA2B;;;;;;;;;;;;wBAsD1C,SAAS,OAAO,OAAO,SAAS"}
1
+ {"version":3,"file":"index.d.ts","names":["Part","Shape"],"sources":["../src/doc.ts","../src/errors.ts","../src/deref.ts","../src/world.ts","../src/ladder.ts","../src/evaluate.ts","../src/merge.ts","../src/classify.ts","../src/parts.ts","../src/stdlib.ts","../src/order.ts","../src/context.ts","../src/static.ts","../src/formula.ts","../src/reference.ts","../src/agree.ts","../src/generate.ts"],"mappings":"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"}