@mark1russell7/coeval 0.4.1 → 0.4.3

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
@@ -24,15 +24,17 @@ A plan evaluates many times without a trace. `evaluate(machine, doc)` gives the
24
24
 
25
25
  | Part | Exports | What it does |
26
26
  | --- | --- | --- |
27
- | Documents | `isEnvelope`, `stored`, `typePath`, `docEquals` | The envelope, the keys of a store beside it, and the equality of documents |
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
+ | 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 |
28
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 |
29
30
  | Ladder | `ask` | The evaluator of a verb: the own entry, then the kind, then the default |
30
31
  | 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 |
31
32
  | Plans | `prepare`, `planner`, `evaluate`, `run` | A document compiles one time into code. An evaluator is a function or a compiler |
32
33
  | 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 |
33
34
  | Errors | `Result`, `EvalError`, `Failure`, `failures` | An error value has a code, a reason, a place and a cause. An evaluation does not throw |
34
- | 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 |
35
- | The formula kit | `formulaMachine`, `FormulaProfile` | 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 |
35
+ | 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 |
36
38
 
37
39
  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.
38
40
 
package/build/index.d.ts CHANGED
@@ -142,9 +142,17 @@ export declare function toJson(doc: Envelope): JsonRecord;
142
142
  */
143
143
  export declare function fromJson(value: unknown): Envelope | undefined;
144
144
  /**
145
- * This function tells if two JSON values are equal. Equal values have the same texts, numbers and truth values,
146
- * the same items in the same order, and the same fields. The order of the fields does not matter. It does not use the stack for the
147
- * depth, thus a deep document cannot overflow it.
145
+ * This function tells if two values are equal. Plain JSON compares by its structure. Equal values have the same
146
+ * texts, numbers and truth values, the same items in the same order, and the same fields. The order of the fields
147
+ * does not matter. Each leaf compares with `Object.is`, thus `-0` is not `0`, and `NaN` is `NaN`.
148
+ *
149
+ * Only lists and plain records (`isRecord`) compare by their items and fields. Each other object compares by
150
+ * identity: a date, a map, a function and an instance of a class are equal only to themselves. Thus an early cutoff
151
+ * with this function does not keep a stale host value.
152
+ *
153
+ * The function does not use the stack for the depth, thus a deep document cannot overflow it. A cycle of lists or
154
+ * records does not make it loop. `sameValue` of `agree` uses the same rules, and it adds rules for closures and for
155
+ * a rule of the caller.
148
156
  *
149
157
  * @param a - The first value.
150
158
  * @param b - The second value.
@@ -848,6 +856,42 @@ type Split = {
848
856
  * @returns The parts and a way to fill their places, or the reason why the value does not have the shape.
849
857
  */
850
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;
851
895
  /**
852
896
  * This function tells if the path of a part matches a pattern of a scope rule. The key `"*"` of a pattern matches
853
897
  * each key.
@@ -1197,6 +1241,7 @@ type Runner = RunFn | CompiledRunner;
1197
1241
  *
1198
1242
  * - `maxDepth`: the deepest nesting of documents. The default is 1000.
1199
1243
  * - `permits`: the rule of the host for an effect. The default is the function `permits` on the capabilities.
1244
+ * - `known`: the names that the evaluators know, for `check`. Without it, `check` does not check such names.
1200
1245
  */
1201
1246
  interface Machine extends Navigator {
1202
1247
  readonly evaluators: Readonly<Record<string, Evaluator>>;
@@ -1204,6 +1249,16 @@ interface Machine extends Navigator {
1204
1249
  readonly runners?: Readonly<Record<string, Runner>>;
1205
1250
  readonly maxDepth?: number;
1206
1251
  readonly permits?: (caps: readonly Cap[], kind: readonly Key[], context: Context) => boolean;
1252
+ /**
1253
+ * This function tells if an evaluator knows the name in the path of a kind. An example is the operation
1254
+ * `["ops", "add"]` of a formula language: a fallback kind names it, and the evaluator finds it in a table.
1255
+ * `check` asks it for each document with an evaluator. The function must be pure.
1256
+ *
1257
+ * @param path - The keys of the kind of the document, after each alias.
1258
+ * @param evaluator - The name of the evaluator that the ladder gives the document.
1259
+ * @returns `true` when the evaluator knows the name, or else the reason of the `#NAME?` that a run gives.
1260
+ */
1261
+ readonly known?: (path: readonly Key[], evaluator: string) => true | string;
1207
1262
  }
1208
1263
  /** One evaluation in a trace. The children are the evaluations of its parts, in the order that they started. */
1209
1264
  interface TraceNode {
@@ -1646,7 +1701,8 @@ interface CheckOptions {
1646
1701
  * - `#PART?`: a value without a type.
1647
1702
  * - `#DEPTH!`: too much nesting.
1648
1703
  * - `#REF!` and `#STEP?`: a bad path.
1649
- * - `#NAME?`: a name that nothing binds.
1704
+ * - `#NAME?`: a name that nothing binds. With the hook `known` of the machine, also a name that the language does not
1705
+ * have, for example an operation.
1650
1706
  * - `#CAP!`: an effect that the capabilities of its document do not permit. A kind around the document can narrow them.
1651
1707
  *
1652
1708
  * @param machine - The world and the code of the evaluators.
@@ -1733,9 +1789,21 @@ export declare function formulaKinds(): Readonly<Record<string, WorldEntry>>;
1733
1789
  * @returns The evaluators, by their name.
1734
1790
  */
1735
1791
  export declare function formulaEvaluators(profile?: FormulaProfile): Readonly<Record<string, Evaluator>>;
1792
+ /**
1793
+ * This function makes the hook `known` of the formula kit for one profile (STATIC.KNOWN). The evaluator
1794
+ * `formula.op` knows an operation of `lazy` or of `ops`. A profile whose `ops` is a function answers through a call
1795
+ * of that function. A function that throws counts as an answer, because the run then gives `#CALC!`. The evaluator
1796
+ * `formula.ext` knows an extension of `ext` and each standard extension. The hook knows each name of the other
1797
+ * evaluators.
1798
+ *
1799
+ * @param profile - The operations and the extensions of the language.
1800
+ * @returns The hook: `true`, or the reason of the `#NAME?` that the evaluator gives in a run.
1801
+ */
1802
+ export declare function formulaKnown(profile?: FormulaProfile): (path: readonly Key[], evaluator: string) => true | string;
1736
1803
  /**
1737
1804
  * This function makes a machine for a formula language. The machine has the kinds and the evaluators of the
1738
- * formula kit. It also has the kinds, the evaluators and the walkers that the language adds.
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.
1739
1807
  *
1740
1808
  * @param profile - The operations and the rules of the language.
1741
1809
  * @param more - The parts of a machine that the language adds. Its kinds win over the kinds of the kit.
@@ -1743,5 +1811,219 @@ export declare function formulaEvaluators(profile?: FormulaProfile): Readonly<Re
1743
1811
  */
1744
1812
  export declare function formulaMachine(profile?: FormulaProfile, more?: Partial<Machine>): Machine;
1745
1813
  //#endregion
1746
- export type { Alias, AllOptions, Answer, AskOptions, Cap, CapsRule, CheckOptions, Classification, Closure, Code, CompileInput, CompiledEvaluator, CompiledPart, CompiledRunner, Construct, Context, Part as ContextPart, DerefCode, DocVisit, Edge, Effect, Envelope, ErrorCode, EvalError, EvalFn, EvalInput, EvalOptions, Evaluator, ExtFn, Failed, FormulaProfile, 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, RefUse, 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, TraceNode, TypeRef, Use, WalkInput, WalkOptions, WalkProblem, WalkResult, Walker, World, WorldEntry };
1814
+ //#region src/reference.d.ts
1815
+ /**
1816
+ * The definitional code of the reference, by evaluator name. The reference cannot read compiled code, thus each
1817
+ * compiled evaluator or runner of a machine needs a definition here. A function evaluator needs none.
1818
+ */
1819
+ interface Definitions {
1820
+ readonly evaluators?: Readonly<Record<string, EvalFn>>;
1821
+ readonly runners?: Readonly<Record<string, RunFn>>;
1822
+ }
1823
+ /** The options of the reference interpreter. */
1824
+ interface ReferenceOptions {
1825
+ /** The type of a bare root value. */
1826
+ readonly declaredType?: string;
1827
+ /** The definitional code of the compiled evaluators and runners of the machine. */
1828
+ readonly definitions?: Definitions;
1829
+ /** A list that gets each effect, in its order. */
1830
+ readonly effects?: Effect[];
1831
+ }
1832
+ /**
1833
+ * This function evaluates a document by the rules, without a compilation. It is the reference of the plans: a plan,
1834
+ * a traced plan and the second tier of a language must give its results. It covers evaluations, not runs: an effect
1835
+ * gives its payload, and a part that waits gives `#CALC!`.
1836
+ *
1837
+ * @param machine - The world and the code of the evaluators.
1838
+ * @param doc - The document.
1839
+ * @param context - The names and the capabilities at the root.
1840
+ * @param options - The type of a bare root value, the definitions of compiled code, and a list for the effects.
1841
+ * @returns The result.
1842
+ */
1843
+ export declare function reference(machine: Machine, doc: unknown, context?: Context, options?: ReferenceOptions): Result;
1844
+ /**
1845
+ * This function gives the definitions of the formula kit for one profile. Each construct is a function evaluator in
1846
+ * the most direct style. It shares no code with the compilers of `formulaEvaluators`, thus the two readings of the
1847
+ * rules can disagree, and a test finds it.
1848
+ *
1849
+ * @param profile - The operations and the rules of the language.
1850
+ * @returns The definitions, by evaluator name.
1851
+ */
1852
+ export declare function formulaDefinitions(profile?: FormulaProfile): Definitions;
1853
+ //#endregion
1854
+ //#region src/agree.d.ts
1855
+ /**
1856
+ * A tier that `agree` compares with the plan.
1857
+ *
1858
+ * - `reference`: the reference interpreter, which compiles nothing.
1859
+ * - `traced`: the traced evaluation, `evaluate`.
1860
+ * - `again`: a second evaluation of the same plan.
1861
+ * - `other`: the second tier of a language, from the option `other`.
1862
+ */
1863
+ type Tier = "reference" | "traced" | "again" | "other";
1864
+ /** What a second tier gives: its result, and its effects when it records them. */
1865
+ interface TierResult {
1866
+ readonly result: Result;
1867
+ readonly effects?: readonly Effect[];
1868
+ }
1869
+ /** The options of `agree`. */
1870
+ interface AgreeOptions {
1871
+ /** The type of a bare root value. */
1872
+ readonly declaredType?: string;
1873
+ /** The definitional code of the compiled evaluators of the machine, for the reference. */
1874
+ readonly definitions?: Definitions;
1875
+ /** The tiers to compare with the plan. The default is the reference, the traced evaluation and a second evaluation. */
1876
+ readonly tiers?: readonly Exclude<Tier, "other">[];
1877
+ /**
1878
+ * This function gives the result of the second tier of a language, for example a compiler to loops.
1879
+ *
1880
+ * @param doc - The document.
1881
+ * @param context - The context.
1882
+ * @returns The result, or the result with the effects.
1883
+ */
1884
+ readonly other?: (doc: unknown, context: Context) => Result | TierResult;
1885
+ /**
1886
+ * This function compares two values that the rules of `sameValue` do not know, for example two dates.
1887
+ *
1888
+ * @param a - The value of the plan.
1889
+ * @param b - The value of the other tier.
1890
+ * @returns `true` or `false`, or `undefined` to use the rules of `sameValue`.
1891
+ */
1892
+ readonly equal?: (a: unknown, b: unknown) => boolean | undefined;
1893
+ /** `true`: two errors must also have the same reason, and each error must have a place. */
1894
+ readonly strict?: boolean;
1895
+ /**
1896
+ * This function gives what the host saw since its last call, for example the calls of an operation. `agree` uses
1897
+ * it before the plan and after each tier, and compares the results. Thus a tier that evaluates a part that the plan
1898
+ * does not evaluate fails.
1899
+ *
1900
+ * @returns What the host saw.
1901
+ */
1902
+ readonly observe?: () => unknown;
1903
+ }
1904
+ /** The outcome of `agree`: the result of the plan, or the first tier that disagrees with it. */
1905
+ type Agreement = {
1906
+ readonly ok: true;
1907
+ readonly result: Result;
1908
+ readonly effects: readonly Effect[];
1909
+ } | {
1910
+ readonly ok: false;
1911
+ readonly tier: Tier;
1912
+ /** The result of the plan. */
1913
+ readonly plan: Result;
1914
+ /** The result of the tier that disagrees. */
1915
+ readonly other: Result;
1916
+ /** One sentence that tells the difference. */
1917
+ readonly reason: string;
1918
+ };
1919
+ /**
1920
+ * This function tells if two values are the same for `agree`. Lists and plain records compare item by item and field
1921
+ * by field, and the order of the fields does not matter. Each other leaf compares with `Object.is`, thus `-0` is not
1922
+ * `0`, and `NaN` is `NaN`. The identity of a list or of a plain record is not compared.
1923
+ *
1924
+ * Two closures of `fn` are the same when they have the same parameters. Two `Held` values are the same when their
1925
+ * errors have the same code and place. Each other object is the same only as itself, unless the rule of the caller
1926
+ * tells otherwise.
1927
+ *
1928
+ * `docEquals` uses the same rules for lists, plain records and the other objects. It has no rules for closures, for
1929
+ * `Held` values and for a rule of the caller. Thus two closures are equal there only when they are the same function.
1930
+ *
1931
+ * @param a - The first value.
1932
+ * @param b - The second value.
1933
+ * @param equal - The rule of the caller for other values. It answers first, and `undefined` gives the rules above.
1934
+ * @returns `true` when the values are the same.
1935
+ */
1936
+ export declare function sameValue(a: unknown, b: unknown, equal?: (a: unknown, b: unknown) => boolean | undefined): boolean;
1937
+ /**
1938
+ * This function evaluates a document with a plan and with other tiers, and compares the results (PLAN.AGREES). Two
1939
+ * results agree when they have the same value by `sameValue`, or errors with the same code, and the same place when
1940
+ * both have one. The effects must have the same kinds, places and payloads, in the same order. A language gives its
1941
+ * own tier with the option `other`.
1942
+ *
1943
+ * @param machine - The world and the code of the evaluators.
1944
+ * @param doc - The document.
1945
+ * @param context - The names and the capabilities at the root.
1946
+ * @param options - The tiers, the definitions for the reference, the rules of the comparison and the second tier.
1947
+ * @returns The result of the plan, or the first tier that disagrees and the reason.
1948
+ */
1949
+ export declare function agree(machine: Machine, doc: unknown, context?: Context, options?: AgreeOptions): Agreement;
1950
+ //#endregion
1951
+ //#region src/generate.d.ts
1952
+ /** A source of random numbers with a seed. The same seed gives the same numbers. */
1953
+ interface Random {
1954
+ /** This function gives a number from 0 up to 1, without 1. */
1955
+ next(): number;
1956
+ /** This function gives a whole number from 0 up to `below`, without `below`. */
1957
+ int(below: number): number;
1958
+ /** This function gives `true` with the chance `p`. */
1959
+ chance(p: number): boolean;
1960
+ /** This function gives one item of a list that is not empty. */
1961
+ pick<T>(items: readonly T[]): T;
1962
+ }
1963
+ /**
1964
+ * This function makes a source of random numbers with a seed (the algorithm mulberry32). It needs no package.
1965
+ *
1966
+ * @param seed - The seed: a whole number.
1967
+ * @returns The source.
1968
+ */
1969
+ export declare function random(seed: number): Random;
1970
+ /** The options of `generate`. */
1971
+ interface GenerateOptions {
1972
+ /** The seed. The same seed and the same options give the same document. */
1973
+ readonly seed: number;
1974
+ /** The types that a document can have. The default is `typesOf(world)`. A namespace with a fallback needs its keys here. */
1975
+ readonly types?: readonly (readonly Key[])[];
1976
+ /** The type of a bare root value. */
1977
+ readonly declaredType?: string;
1978
+ /** The names that the host binds at the root. */
1979
+ readonly names?: readonly string[];
1980
+ /** The deepest nesting of documents. The default is 4. */
1981
+ readonly maxDepth?: number;
1982
+ /** The most documents in one document. The default is 24. */
1983
+ readonly maxSize?: number;
1984
+ /** The chance of a malformed choice at each document. The default is 0.05. */
1985
+ readonly malformed?: number;
1986
+ /**
1987
+ * This function gives the data of a document of a type without parts, for example a number for the kind `number`.
1988
+ *
1989
+ * @param type - The keys of the type.
1990
+ * @param random - The source of random numbers.
1991
+ * @returns The data, or `undefined` for a random JSON value.
1992
+ */
1993
+ readonly data?: (type: readonly Key[], random: Random) => Json | undefined;
1994
+ /**
1995
+ * This function gives the types to prefer for a part, for example a function for the field `fn` of `call`.
1996
+ *
1997
+ * @param type - The keys of the type of the parent.
1998
+ * @param path - The path of the part in the value of the parent.
1999
+ * @returns The types, or `undefined` for no preference.
2000
+ */
2001
+ readonly hints?: (type: readonly Key[], path: readonly Key[]) => readonly (readonly Key[])[] | undefined;
2002
+ /** The evaluator names for own entries. The default is none. */
2003
+ readonly own?: readonly string[];
2004
+ /** The keys for the steps of a path after its root and its name. */
2005
+ readonly keys?: readonly Key[];
2006
+ }
2007
+ /**
2008
+ * This function lists the types of a world: each kind and each alias, also in a namespace. A namespace with a
2009
+ * fallback gives no types, because each key names a kind.
2010
+ *
2011
+ * @param world - The world.
2012
+ * @returns The keys of each type.
2013
+ */
2014
+ export declare function typesOf(world: World): readonly (readonly Key[])[];
2015
+ /**
2016
+ * This function builds a random document for a world from the contracts of its kinds. It reads the shapes of the
2017
+ * parts, the declared types, the permitted kinds and the names that the scope rules bind. Some choices are malformed
2018
+ * on purpose, for example an unknown kind or an unknown name under a namespace with a fallback. Other examples are a
2019
+ * value without its shape, a bare value without a type and a name that nothing binds. The depth and the size have
2020
+ * limits.
2021
+ *
2022
+ * @param world - The world.
2023
+ * @param options - The seed, the types, the limits and the data of the leaves.
2024
+ * @returns The document, as JSON.
2025
+ */
2026
+ export declare function generate(world: World, options: GenerateOptions): unknown;
2027
+ //#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 };
1747
2029
  //# 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"],"mappings":"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"}
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":"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"}