@mark1russell7/coeval 0.9.0 → 0.10.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
@@ -26,7 +26,7 @@ A plan evaluates many times without a trace. `evaluate(machine, doc)` gives the
26
26
  | --- | --- | --- |
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
- | 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
+ | World | `lookupKind`, `Kind`, `Namespace`, `PartShape`, `ScopeRule`, `CapsRule`, `VerbEffects`, `effectsOfVerb` | 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 for each verb. A namespace can have a fallback kind |
30
30
  | Merges | `mergeWorlds`, `mergeMachines`, `MergeError`, `restrictWorld`, `restrictMachine` | 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`. A restriction removes entries and their code. [`docs/COMPOSITION.md`](https://github.com/mark1russell7/coeval/blob/main/docs/COMPOSITION.md) shows each mode of composition |
31
31
  | Ladder | `ask` | The evaluator of a verb: the own entry, then the kind, then the default. Each verb has this ladder, also `deref` and `step` |
32
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. The optional `has` of a host thing tells a field that holds `undefined` from a missing field |
@@ -34,7 +34,7 @@ A plan evaluates many times without a trace. `evaluate(machine, doc)` gives the
34
34
  | The run side | `run`, `Runner`, `Perform`, `Effect`, `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. Each effect has a stable `address` and its `outcome` |
35
35
  | Record and replay | `recorder`, `replayer`, `ReplayLog`, `ReplayEntry`, `ReplaySettle`, `ReplayOptions`, `Journal`, `JOURNAL` | A recorder logs each effect of a run with its address and its outcome, and the order of the waits. A replayer answers each effect from the log, and a different request gives `#REPLAY!` |
36
36
  | Errors | `Result`, `EvalError`, `Failure`, `failures` | An error value has a code, a reason, a place and a cause. An evaluation does not throw |
37
- | The static kit | `walk`, `refsOf`, `mapRefs`, `check`, `CheckOptions`, `checkWorld`, `WorldIssue` | 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, and it asks the hook `permits` of the machine. The hook `known` of a machine names the unknown operations. The option `verb` of `check` checks the evaluators of another verb. The option `types` also checks the value types. The option `run` finds a runner that can wait under a parent that cannot wait. `checkWorld` finds each kind without an evaluator for a verb of the language, before a document exists |
37
+ | The static kit | `walk`, `refsOf`, `mapRefs`, `check`, `CheckOptions`, `checkWorld`, `WorldIssue` | 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, and it asks the hook `permits` of the machine. The hook `known` of a machine names the unknown operations. The option `verb` of `check` checks the evaluators and the declared effects of another verb. The option `types` also checks the value types. The option `run` finds a runner that can wait under a parent that cannot wait. `checkWorld` finds each kind without an evaluator for a verb of the language, before a document exists |
38
38
  | The effects | `effectsOf`, `checkLatent`, `EffectsOptions` | The effects of a document that can reach the host: the declared effects, without the effects that a mask or a rule `only` removes. A host can grant exactly these capabilities. `checkLatent` compares the latent effects that a procedure declares with its body (D27) |
39
39
  | The static facts | `factsOf`, `DocFacts`, `StaticRead`, `FactsOptions`, `KindFacts`, `LazyRule` | The reads of a document with a mark for each read under a lazy part, its side, its effects and the marks `pure` and `volatile`. The contracts and the hook `facts` of a machine declare them (D24). The option `verb` names the verb |
40
40
  | 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 |
package/build/index.d.ts CHANGED
@@ -488,8 +488,8 @@ export declare function valueOfThing(thing: Thing): unknown;
488
488
  /**
489
489
  * A value type: a set of values that a result can have, as a JSON term.
490
490
  *
491
- * - A text names a base type: `unknown`, `never`, a domain of the kernel (`null`, `bool`, `number`, `text`), or a
492
- * domain of a language.
491
+ * - A text names a base type: `unknown`, `never`, a domain of the kernel (`null`, `undefined`, `bool`, `number`,
492
+ * `text`), or a domain of a language.
493
493
  * - `list`: a list whose items have the type.
494
494
  * - `record`: a plain record with the named fields. `optional` names the fields that can be absent. A `closed`
495
495
  * record has no other fields. The other fields of an open record can hold each value.
@@ -863,7 +863,8 @@ export declare function equationType(kind: Kind): string | undefined;
863
863
  /**
864
864
  * A kind gives the name of an evaluator for each verb, and the contract of its value. The contract serves each verb.
865
865
  * For each verb, the kernel splits the parts and narrows their capabilities by it, and `check` reads its scope rules.
866
- * `side` and `effects` tell what the verb `eval` does (VERB.CONTRACT).
866
+ * `side` and `effects` tell what the verb `eval` does (VERB.CONTRACT). `verbEffects` tells the effects of the other
867
+ * verbs (VERB.EFFECTS).
867
868
  */
868
869
  interface Kind extends KindFacts {
869
870
  /**
@@ -891,6 +892,13 @@ interface Kind extends KindFacts {
891
892
  * (CAP.LATENT).
892
893
  */
893
894
  readonly effects?: "type" | readonly string[];
895
+ /**
896
+ * The effects that the other verbs of a document of this kind can cause, by verb, in the form of `effects`
897
+ * (VERB.EFFECTS, D49). An entry `view: []` declares no effect for `view`. A verb without an entry has no
898
+ * declaration, thus `check` does not test its effects. The field `effects` declares `eval`, thus this field has no
899
+ * entry `eval`.
900
+ */
901
+ readonly verbEffects?: VerbEffects;
894
902
  /**
895
903
  * The value type of the result of the verb `eval`, when it is fixed (TYPE.SYNTH). A check of types gives it to each
896
904
  * document of the kind, in the place of the type that the rule of the evaluator synthesizes.
@@ -904,6 +912,24 @@ interface Kind extends KindFacts {
904
912
  /** One sentence that tells what the kind is. */
905
913
  readonly summary?: string;
906
914
  }
915
+ /**
916
+ * The effects that a contract declares for the verbs other than `eval`, by verb (D49). Each entry has the form of the
917
+ * field `effects` of a kind. The type has no entry `eval`, because the field `effects` declares `eval`.
918
+ */
919
+ type VerbEffects = Readonly<Record<string, "type" | readonly string[]>> & {
920
+ readonly eval?: never;
921
+ };
922
+ /**
923
+ * This function gives the effects that the contract of a kind declares for a verb (VERB.EFFECTS, D49). For `eval`,
924
+ * the field `effects` declares them, and a kind without the field declares no effect. For another verb, the entry of
925
+ * `verbEffects` declares them. `check` and `conforms` read the declarations with this one function.
926
+ *
927
+ * @param kind - The kind.
928
+ * @param verb - The verb.
929
+ * @returns The declaration in the form of `effects`, or `undefined` when the contract does not declare the effects of
930
+ * the verb.
931
+ */
932
+ export declare function effectsOfVerb(kind: Kind, verb: string): "type" | readonly string[] | undefined;
907
933
  /** A namespace: a group of entries under one key of the world. `fallback` is the kind of each other key in it. */
908
934
  interface Namespace {
909
935
  readonly kinds: Readonly<Record<string, WorldEntry>>;
@@ -1214,8 +1240,11 @@ interface CheckOptions {
1214
1240
  readonly caps?: readonly Cap[];
1215
1241
  /**
1216
1242
  * The verb that goes up the ladder at each document, as in `prepare`. The default is `eval`. `#NOEVAL` and the hook
1217
- * `known` follow this verb. The contract declares the effects and the value types of `eval` only, thus only `eval`
1218
- * checks them (VERB.CHECK). The type rule of an evaluator serves each verb.
1243
+ * `known` follow this verb. The type rule of an evaluator serves each verb.
1244
+ *
1245
+ * The check tests the effects that the contract declares for this verb (VERB.EFFECTS). A kind without a declaration
1246
+ * for the verb gives no effect issue. The contract declares the value types of `eval` only, thus only `eval` checks
1247
+ * them (VERB.CHECK).
1219
1248
  */
1220
1249
  readonly verb?: string;
1221
1250
  /**
@@ -1270,7 +1299,9 @@ interface Typing {
1270
1299
  * A run does not always fail there, thus a type issue is a static finding, not an error of a run.
1271
1300
  *
1272
1301
  * The check asks the ladder for the verb of the options, `eval` by default (VERB.CHECK). The shapes, the paths and the
1273
- * names follow the contracts, thus they are the same for each verb. Only `eval` checks the declared effects.
1302
+ * names follow the contracts, thus they are the same for each verb. The check tests the effects that each contract
1303
+ * declares for the verb: `effects` for `eval`, and the entry of `verbEffects` for another verb (VERB.EFFECTS). A kind
1304
+ * without a declaration for the verb gives no `#CAP!` and no `#CALC!` for an effect.
1274
1305
  *
1275
1306
  * @param machine - The world and the code of the evaluators.
1276
1307
  * @param doc - The document, as JSON.
@@ -2729,6 +2760,8 @@ type ExtFn = (data: Json, context: Context, domains?: Readonly<Record<string, Do
2729
2760
  * evaluates, and one failed part gives its own error. Without it, the first error stops the evaluation.
2730
2761
  * - `pure`: the pure operations, for `factsOf` (D24). `true` names each operation that is not volatile. The default
2731
2762
  * names no operation.
2763
+ * - `pureExt`: the pure extensions of `ext`, by their name, for `factsOf` and the folds of a plan (PLAN.FOLD, D47).
2764
+ * The default names no extension. A standard extension is pure without a name here.
2732
2765
  * - `volatile`: the operations whose results can change while their arguments stay the same, for example a clock.
2733
2766
  * - `sigs`: the signatures of the operations, by their name, for a check of types (TYPE.SIGNATURE). A list gives
2734
2767
  * overloads. An operation without a signature takes and gives `unknown` (TYPE.GRADUAL).
@@ -2748,12 +2781,13 @@ interface FormulaProfile {
2748
2781
  readonly check?: (value: unknown, op: string) => Result | undefined;
2749
2782
  readonly combine?: (errors: readonly EvalError[]) => EvalError;
2750
2783
  readonly pure?: true | readonly string[];
2784
+ readonly pureExt?: readonly string[];
2751
2785
  readonly volatile?: readonly string[];
2752
2786
  readonly sigs?: Readonly<Record<string, Signature | readonly Signature[]>> | ((name: string) => Signature | readonly Signature[] | undefined);
2753
2787
  }
2754
2788
  /**
2755
- * The signature of an operation: the value types of its parameters and of its result (TYPE.SIGNATURE). A parameter of
2756
- * the type `unknown` at the end of `params` is optional. A later version can add a key, for example the type that a
2789
+ * The signature of an operation: the value types of its parameters and of its result (TYPE.SIGNATURE). A parameter at
2790
+ * the end of `params` is optional when `undefined` is a member of its type, for example `unknown`. A later version can add a key, for example the type that a
2757
2791
  * true result proves.
2758
2792
  */
2759
2793
  interface Signature {
@@ -2827,7 +2861,8 @@ export declare function formulaKnown(profile?: FormulaProfile): (path: readonly
2827
2861
  *
2828
2862
  * - An operation of `lazy` has a lazy rule for each argument.
2829
2863
  * - An operation is pure when the profile names it in `pure`, or when `pure` is `true`. A volatile operation is not pure.
2830
- * - A standard extension is pure. An extension of the profile gets the context, thus it is not pure.
2864
+ * - A standard extension is pure. An extension of the profile is pure only when the profile names it in `pureExt` (D47).
2865
+ * Such an extension keeps C4: it reads the context only through `resolve`.
2831
2866
  *
2832
2867
  * Equal profiles give the same hook (D46).
2833
2868
  *
@@ -3262,8 +3297,9 @@ interface Finding {
3262
3297
  /** The options of `conforms`. */
3263
3298
  interface ConformOptions {
3264
3299
  /**
3265
- * The verb that the evaluator serves. The default is `eval`. The facts of a contract (`effects`, `pure` and `lazy`)
3266
- * describe only `eval`, thus `conforms` checks C2, C3 and C4 only for `eval` (D23).
3300
+ * The verb that the evaluator serves. The default is `eval`. The facts `pure` and `lazy` of a contract describe only
3301
+ * `eval`, thus `conforms` checks C3 and C4 only for `eval` (D23). `conforms` checks C2 for each verb that the
3302
+ * contract declares effects for: `eval`, and each verb with an entry in `verbEffects` (D49).
3267
3303
  */
3268
3304
  readonly verb?: string;
3269
3305
  /**
@@ -3943,7 +3979,7 @@ interface SampleOptions {
3943
3979
  * This function infers a value type from sample values (TYPE.SAMPLES), as a type provider of F# does. A host uses it
3944
3980
  * for the type of a root, for example from some events.
3945
3981
  *
3946
- * - `null`, a truth value, a number and a text give their base types, not their values.
3982
+ * - `null`, `undefined`, a truth value, a number and a text give their base types, not their values.
3947
3983
  * - The items of each list join into one type of items.
3948
3984
  * - All records join into one record with each key of the samples. A key that a record does not have is optional.
3949
3985
  * - Values of different forms give a union, as `join` gives. No samples give `never`.
@@ -3958,5 +3994,5 @@ interface SampleOptions {
3958
3994
  */
3959
3995
  export declare function typeFromSamples(values: readonly unknown[], options?: SampleOptions): ValueType;
3960
3996
  //#endregion
3961
- export type { AgreeOptions, Agreement, Alias, AllOptions, Answer, AskOptions, AttributeDeclaration, AttributeRung, AttributeTrace, Cap, CapsRule, CheckOptions, Classification, Closure, Code, CompileInput, CompiledEvaluator, CompiledPart, CompiledRunner, ConformOptions, ConformProbe, Construct, Context, Part as ContextPart, Definitions, DerefCode, DocFacts, DocParts, DocVisit, Domain, DomainCodec, DomainExtension, Durable, DurableCounts, DurableOptions, Edge, Effect, EffectsOptions, Envelope, Epochs, ErrorCode, EvalError, EvalFn, EvalInput, EvalOptions, EvaluateOptions, Evaluator, ExtFn, FactsOptions, Failed, Finding, FormulaProfile, GenerateOptions, Give, GraphCycle, GraphEdge, GraphNode, GraphOptions, Header, Hop, HopBy, HostThing, Issue, Journal, Json, JsonRecord, KernelCode, Key, Kind, KindFacts, KindSource, LazyOp, LazyRule, Lookup, Machine, MachinePart, MergeConflict, MergePath, NamesSource, Namespace, Navigator, NearestOptions, NodeEdge, NodeGraph, NodeInfo, NodeRunOptions, Obligation, OpFn, OrderProblem, Outcome, ParseResult, Part$1 as Part, PartInfo, Shape as PartShape, PartSlot, PartType, PartsSpec, Perform, Plan, PrepareOptions, Random, Read, ReadsCheck, Recorder, RefUse, ReferenceOptions, ReplayEntry, ReplayLog, ReplayOptions, ReplaySettle, Resolution, ResolveCode, ResolveOptions, Result, Root, RootTypes, Run, RunCode, RunFn, RunInput, RunOptions, RunPart, Rung, Runner, Runtime, SampleOptions, Schedule, ScheduleCounts, ScheduleOptions, ScopeRule, Shape$1 as Shape, Side, Signature, Split, StaticRead, Step, StepSpec, Steps, StopSignal, Stored, SyntaxAssoc, SyntaxCalls, SyntaxFixity, SyntaxForm, SyntaxIssue, SyntaxLiterals, SyntaxOperator, SyntaxProfile, SyntaxRefPattern, SyntaxRefs, Thing, Tier, TierInput, TierResult, TraceNode, TreeContract, TypeInput, TypeIssue, TypeProblem, TypeReading, TypeRef, TypeRule, Typed, Typing, Use, ValueType, VerifyOptions, WalkInput, WalkOptions, WalkProblem, WalkResult, Walker, World, WorldEntry, WorldIssue, WorldPart };
3997
+ export type { AgreeOptions, Agreement, Alias, AllOptions, Answer, AskOptions, AttributeDeclaration, AttributeRung, AttributeTrace, Cap, CapsRule, CheckOptions, Classification, Closure, Code, CompileInput, CompiledEvaluator, CompiledPart, CompiledRunner, ConformOptions, ConformProbe, Construct, Context, Part as ContextPart, Definitions, DerefCode, DocFacts, DocParts, DocVisit, Domain, DomainCodec, DomainExtension, Durable, DurableCounts, DurableOptions, Edge, Effect, EffectsOptions, Envelope, Epochs, ErrorCode, EvalError, EvalFn, EvalInput, EvalOptions, EvaluateOptions, Evaluator, ExtFn, FactsOptions, Failed, Finding, FormulaProfile, GenerateOptions, Give, GraphCycle, GraphEdge, GraphNode, GraphOptions, Header, Hop, HopBy, HostThing, Issue, Journal, Json, JsonRecord, KernelCode, Key, Kind, KindFacts, KindSource, LazyOp, LazyRule, Lookup, Machine, MachinePart, MergeConflict, MergePath, NamesSource, Namespace, Navigator, NearestOptions, NodeEdge, NodeGraph, NodeInfo, NodeRunOptions, Obligation, OpFn, OrderProblem, Outcome, ParseResult, Part$1 as Part, PartInfo, Shape as PartShape, PartSlot, PartType, PartsSpec, Perform, Plan, PrepareOptions, Random, Read, ReadsCheck, Recorder, RefUse, ReferenceOptions, ReplayEntry, ReplayLog, ReplayOptions, ReplaySettle, Resolution, ResolveCode, ResolveOptions, Result, Root, RootTypes, Run, RunCode, RunFn, RunInput, RunOptions, RunPart, Rung, Runner, Runtime, SampleOptions, Schedule, ScheduleCounts, ScheduleOptions, ScopeRule, Shape$1 as Shape, Side, Signature, Split, StaticRead, Step, StepSpec, Steps, StopSignal, Stored, SyntaxAssoc, SyntaxCalls, SyntaxFixity, SyntaxForm, SyntaxIssue, SyntaxLiterals, SyntaxOperator, SyntaxProfile, SyntaxRefPattern, SyntaxRefs, Thing, Tier, TierInput, TierResult, TraceNode, TreeContract, TypeInput, TypeIssue, TypeProblem, TypeReading, TypeRef, TypeRule, Typed, Typing, Use, ValueType, VerbEffects, VerifyOptions, WalkInput, WalkOptions, WalkProblem, WalkResult, Walker, World, WorldEntry, WorldIssue, WorldPart };
3962
3998
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":["Part","Shape"],"sources":["../src/doc.ts","../src/errors.ts","../src/deref.ts","../src/types.ts","../src/world.ts","../src/ladder.ts","../src/static.ts","../src/typing.ts","../src/evaluate.ts","../src/merge.ts","../src/classify.ts","../src/parts.ts","../src/stdlib.ts","../src/order.ts","../src/context.ts","../src/facts.ts","../src/effects.ts","../src/formula.ts","../src/codec.ts","../src/syntax.ts","../src/reference.ts","../src/agree.ts","../src/conform.ts","../src/same.ts","../src/reads.ts","../src/durable.ts","../src/schedule.ts","../src/graph.ts","../src/replay.ts","../src/generate.ts","../src/providers.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":["Part","Shape"],"sources":["../src/doc.ts","../src/errors.ts","../src/deref.ts","../src/types.ts","../src/world.ts","../src/ladder.ts","../src/static.ts","../src/typing.ts","../src/evaluate.ts","../src/merge.ts","../src/classify.ts","../src/parts.ts","../src/stdlib.ts","../src/order.ts","../src/context.ts","../src/facts.ts","../src/effects.ts","../src/formula.ts","../src/codec.ts","../src/syntax.ts","../src/reference.ts","../src/agree.ts","../src/conform.ts","../src/same.ts","../src/reads.ts","../src/durable.ts","../src/schedule.ts","../src/graph.ts","../src/replay.ts","../src/generate.ts","../src/providers.ts"],"mappings":"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"}
package/build/index.js CHANGED
@@ -368,6 +368,21 @@ function equationType(kind) {
368
368
  return parts?.of ?? parts?.rest?.of;
369
369
  }
370
370
  /**
371
+ * This function gives the effects that the contract of a kind declares for a verb (VERB.EFFECTS, D49). For `eval`,
372
+ * the field `effects` declares them, and a kind without the field declares no effect. For another verb, the entry of
373
+ * `verbEffects` declares them. `check` and `conforms` read the declarations with this one function.
374
+ *
375
+ * @param kind - The kind.
376
+ * @param verb - The verb.
377
+ * @returns The declaration in the form of `effects`, or `undefined` when the contract does not declare the effects of
378
+ * the verb.
379
+ */
380
+ function effectsOfVerb(kind, verb) {
381
+ if (verb === "eval") return kind.effects ?? [];
382
+ const table = kind.verbEffects;
383
+ return table !== void 0 && Object.hasOwn(table, verb) ? table[verb] : void 0;
384
+ }
385
+ /**
371
386
  * This function tells if an entry of the world is a kind.
372
387
  *
373
388
  * @param entry - The entry.
@@ -546,6 +561,10 @@ const STD_DOMAINS = {
546
561
  is: (value) => value === null,
547
562
  summary: "The value null."
548
563
  },
564
+ undefined: {
565
+ is: (value) => value === void 0,
566
+ summary: "The value undefined. A document holds it as the extension ext.undefined."
567
+ },
549
568
  bool: {
550
569
  is: (value) => typeof value === "boolean",
551
570
  summary: "A truth value: true or false."
@@ -5760,16 +5779,27 @@ const EACH$2 = /* @__PURE__ */ Object.freeze([[]]);
5760
5779
  /** No declared effect. One list serves each visit without effects. */
5761
5780
  const NO_EFFECTS = /* @__PURE__ */ Object.freeze([]);
5762
5781
  /**
5763
- * This function gives the effects that the contract of the kind of a visit declares, as keys (FACTS.EFFECTS). The
5764
- * text `"type"` gives the type of the document after each alias. A visit without a kind declares no effect. `check`,
5765
- * `factsOf` and `effectsOf` read the declarations with this one function (D27).
5782
+ * This function gives the effects that the contract of the kind of a visit declares for a verb, as keys
5783
+ * (FACTS.EFFECTS, VERB.EFFECTS). The text `"type"` gives the type of the document after each alias. A visit without a
5784
+ * kind declares no effect. `check`, `factsOf` and `effectsOf` read the declarations with this one function (D27).
5766
5785
  *
5767
5786
  * @param v - The visit.
5787
+ * @param verb - The verb. The default is `eval`. A kind without a declaration for the verb gives no effect.
5768
5788
  * @returns The keys of each declared effect, in the order of the contract.
5769
5789
  */
5770
- function declaredEffects(v) {
5771
- const effects = v.kind?.effects;
5772
- if (effects === void 0 || effects.length === 0) return NO_EFFECTS;
5790
+ function declaredEffects(v, verb = "eval") {
5791
+ return verbDeclared(v, verb) ?? NO_EFFECTS;
5792
+ }
5793
+ /**
5794
+ * This function gives the effects that the contract of the kind of a visit declares for a verb, as keys. The result
5795
+ * is `undefined` when the contract has no declaration for the verb (D49). A visit without a kind declares no effect
5796
+ * for `eval` and no declaration for another verb.
5797
+ */
5798
+ function verbDeclared(v, verb) {
5799
+ if (v.kind === void 0) return verb === "eval" ? NO_EFFECTS : void 0;
5800
+ const effects = effectsOfVerb(v.kind, verb);
5801
+ if (effects === void 0) return void 0;
5802
+ if (effects.length === 0) return NO_EFFECTS;
5773
5803
  return effects === "type" ? [v.typePath ?? []] : effects.map((kind) => kind.split("."));
5774
5804
  }
5775
5805
  /**
@@ -5820,7 +5850,9 @@ function capReason(v, kind, allowed) {
5820
5850
  * A run does not always fail there, thus a type issue is a static finding, not an error of a run.
5821
5851
  *
5822
5852
  * The check asks the ladder for the verb of the options, `eval` by default (VERB.CHECK). The shapes, the paths and the
5823
- * names follow the contracts, thus they are the same for each verb. Only `eval` checks the declared effects.
5853
+ * names follow the contracts, thus they are the same for each verb. The check tests the effects that each contract
5854
+ * declares for the verb: `effects` for `eval`, and the entry of `verbEffects` for another verb (VERB.EFFECTS). A kind
5855
+ * without a declaration for the verb gives no `#CAP!` and no `#CALC!` for an effect.
5824
5856
  *
5825
5857
  * @param machine - The world and the code of the evaluators.
5826
5858
  * @param doc - The document, as JSON.
@@ -6001,7 +6033,6 @@ function checkAll(machine, doc, options, nodes, seen = /* @__PURE__ */ new Set()
6001
6033
  issues.push(issue);
6002
6034
  if (current !== void 0) current.marked = true;
6003
6035
  };
6004
- const effects = verb === "eval";
6005
6036
  const allowed = options.caps === void 0 ? void 0 : permitsOf(machine);
6006
6037
  const waits = options.run === true ? /* @__PURE__ */ new Map() : void 0;
6007
6038
  const drives = [];
@@ -6072,7 +6103,8 @@ function checkAll(machine, doc, options, nodes, seen = /* @__PURE__ */ new Set()
6072
6103
  });
6073
6104
  }
6074
6105
  const caps = v.caps;
6075
- const declared = effects ? declaredEffects(v) : NO_EFFECTS;
6106
+ const stated = verbDeclared(v, verb);
6107
+ const declared = stated ?? NO_EFFECTS;
6076
6108
  if (allowed !== void 0 && caps !== void 0) {
6077
6109
  for (const kind of declared) if (!allowed(caps, kind)) push({
6078
6110
  code: "#CAP!",
@@ -6094,14 +6126,14 @@ function checkAll(machine, doc, options, nodes, seen = /* @__PURE__ */ new Set()
6094
6126
  },
6095
6127
  index: issues.length,
6096
6128
  node: current,
6097
- wait: !effects
6129
+ wait: false
6098
6130
  };
6099
6131
  drives.push(chain);
6100
6132
  } else if (runner) chain = up ?? true;
6101
6133
  waits.set(v, chain);
6102
6134
  if (typeof chain === "object" && !chain.wait) {
6103
6135
  const rule = allowed ?? permits;
6104
- chain.wait = declared.some((kind) => caps === void 0 || rule(caps, kind));
6136
+ chain.wait = stated === void 0 || declared.some((kind) => caps === void 0 || rule(caps, kind));
6105
6137
  }
6106
6138
  const first = declared[0];
6107
6139
  if (!runner && first !== void 0) push({
@@ -6853,9 +6885,13 @@ function formulaKinds() {
6853
6885
  }
6854
6886
  };
6855
6887
  }
6856
- /** This function gives the type of a value of a profile: the value itself as `one`. `undefined` and a function give `unknown`. */
6888
+ /**
6889
+ * This function gives the type of a value of a profile: the value itself as `one`. `undefined` gives the base type
6890
+ * `undefined`, because JSON and thus `one` cannot hold it (D48). A function gives `unknown`.
6891
+ */
6857
6892
  function valueType(value) {
6858
- return value === void 0 || typeof value === "function" ? "unknown" : { one: [value] };
6893
+ if (value === void 0) return "undefined";
6894
+ return typeof value === "function" ? "unknown" : { one: [value] };
6859
6895
  }
6860
6896
  /** This function tells if a value has the form of a signature: a record with `params` as a list, and `to`. */
6861
6897
  function isSignature(value) {
@@ -6875,14 +6911,14 @@ function listText(names) {
6875
6911
  return names.length < 2 ? names.join("") : `${names.slice(0, -1).join(", ")} and ${names[names.length - 1]}`;
6876
6912
  }
6877
6913
  /**
6878
- * This function tells if a signature takes a count of arguments. A parameter of the type `unknown` at the end is
6879
- * optional, because a missing argument is `undefined`.
6914
+ * This function tells if a signature takes a count of arguments. A parameter at the end is optional when its type
6915
+ * holds `undefined`, because a missing argument is `undefined`. `unknown` and the base type `undefined` hold it.
6880
6916
  *
6881
6917
  * @returns `undefined` when the number is correct, or else the text of the numbers that the signature takes.
6882
6918
  */
6883
6919
  function arityOf(sig, count, domains) {
6884
6920
  let least = sig.params.length;
6885
- while (least > 0 && isUnknown(sig.params[least - 1], domains)) least -= 1;
6921
+ while (least > 0 && member(void 0, sig.params[least - 1], domains)) least -= 1;
6886
6922
  const most = sig.rest === void 0 ? sig.params.length : Number.POSITIVE_INFINITY;
6887
6923
  if (count >= least && count <= most) return void 0;
6888
6924
  if (most === Number.POSITIVE_INFINITY) return `at least ${argumentsText(least)}`;
@@ -7140,6 +7176,7 @@ function formulaTypes(profile) {
7140
7176
  "formula.ext": { synth: (input) => {
7141
7177
  const name = nameOf(input);
7142
7178
  if (profile.ext !== void 0 && Object.hasOwn(profile.ext, name)) return "unknown";
7179
+ if (name === "undefined") return "undefined";
7143
7180
  if (name === "number") return "number";
7144
7181
  return name === "domain" ? domainTypeOf(input.doc.value, input.machine.domains) : "unknown";
7145
7182
  } }
@@ -7186,6 +7223,7 @@ const PROFILE_KEYS = /* @__PURE__ */ Object.freeze([
7186
7223
  "check",
7187
7224
  "combine",
7188
7225
  "pure",
7226
+ "pureExt",
7189
7227
  "volatile",
7190
7228
  "sigs"
7191
7229
  ]);
@@ -7600,9 +7638,12 @@ function makeKnown(profile) {
7600
7638
  return hasExt(name) ? true : `The language has no extension ${name}.`;
7601
7639
  };
7602
7640
  }
7603
- /** The facts of an extension of the profile. It gets the context, thus it can read outside `resolve`. */
7641
+ /**
7642
+ * The facts of an extension of the profile that `pureExt` does not name. It gets the context, thus it can read outside
7643
+ * `resolve`.
7644
+ */
7604
7645
  const NOT_PURE = /* @__PURE__ */ Object.freeze({ pure: false });
7605
- /** The facts of a standard extension. */
7646
+ /** The facts of a standard extension, and of an extension that `pureExt` names. */
7606
7647
  const PURE = /* @__PURE__ */ Object.freeze({ pure: true });
7607
7648
  /** The lazy rule of a lazy operation: it covers each argument. */
7608
7649
  const EACH_PART = /* @__PURE__ */ Object.freeze([/* @__PURE__ */ Object.freeze({})]);
@@ -7612,7 +7653,8 @@ const EACH_PART = /* @__PURE__ */ Object.freeze([/* @__PURE__ */ Object.freeze({
7612
7653
  *
7613
7654
  * - An operation of `lazy` has a lazy rule for each argument.
7614
7655
  * - An operation is pure when the profile names it in `pure`, or when `pure` is `true`. A volatile operation is not pure.
7615
- * - A standard extension is pure. An extension of the profile gets the context, thus it is not pure.
7656
+ * - A standard extension is pure. An extension of the profile is pure only when the profile names it in `pureExt` (D47).
7657
+ * Such an extension keeps C4: it reads the context only through `resolve`.
7616
7658
  *
7617
7659
  * Equal profiles give the same hook (D46).
7618
7660
  *
@@ -7626,10 +7668,14 @@ function formulaFacts(profile = {}) {
7626
7668
  function makeFacts(profile, known) {
7627
7669
  const volatile = new Set(profile.volatile ?? []);
7628
7670
  const pure = profile.pure === true ? void 0 : new Set(profile.pure ?? []);
7671
+ const pureExt = new Set(profile.pureExt ?? []);
7629
7672
  return (path, code) => {
7630
7673
  if (code !== "formula.op" && code !== "formula.ext") return void 0;
7631
7674
  const name = path.slice(1).join(".");
7632
- if (code === "formula.ext") return profile.ext !== void 0 && Object.hasOwn(profile.ext, name) ? NOT_PURE : Object.hasOwn(STD_EXT, name) ? PURE : void 0;
7675
+ if (code === "formula.ext") {
7676
+ if (profile.ext !== void 0 && Object.hasOwn(profile.ext, name)) return pureExt.has(name) ? PURE : NOT_PURE;
7677
+ return Object.hasOwn(STD_EXT, name) ? PURE : void 0;
7678
+ }
7633
7679
  if (known(path, code) !== true) return void 0;
7634
7680
  const isVolatile = volatile.has(name);
7635
7681
  const lazy = profile.lazy !== void 0 && Object.hasOwn(profile.lazy, name);
@@ -10252,13 +10298,15 @@ function typesNaming(world, name, verb) {
10252
10298
  /** This function gives the facts of the kind of a type. The hook `facts` of the machine wins over the contract. */
10253
10299
  function contractOf(env, kind, typePath, caps) {
10254
10300
  const facts = env.machine.facts?.(typePath, env.name);
10255
- const effects = kind.effects;
10301
+ const own = effectsOfVerb(kind, env.verb);
10302
+ const effects = own ?? kind.effects;
10256
10303
  const declared = effects === void 0 ? [] : effects === "type" ? [typePath] : effects;
10257
10304
  return {
10258
10305
  declared,
10259
10306
  pure: (facts?.pure ?? kind.pure) === true,
10260
10307
  lazy: facts?.lazy ?? kind.lazy,
10261
10308
  describes: env.verb === "eval",
10309
+ declares: own !== void 0,
10262
10310
  caps: caps ?? [...declared, "probe"]
10263
10311
  };
10264
10312
  }
@@ -10654,8 +10702,10 @@ function checkShot(env, sample, contract, scenario, shot) {
10654
10702
  const keyOf = (part) => shot.keys[part] ?? String(part);
10655
10703
  for (const call of shot.calls) if (!call.context.caps.every((cap) => permits(docCaps, cap))) report(env, "C1", `The code gives the part ${keyOf(call.part)} ${capsText(call.context.caps)}, and its document has ${capsText(docCaps)}.`, probe);
10656
10704
  for (const effect of shot.caused) if (!effect.context.caps.every((cap) => permits(docCaps, cap))) report(env, "C1", `The code gives its effect ${effect.kind} ${capsText(effect.context.caps)}, and its document has ${capsText(docCaps)}.`, probe);
10705
+ if (contract.declares) {
10706
+ for (const effect of shot.caused) if (!permits(contract.declared, effect.kind)) report(env, "C2", `The code causes the effect ${effect.kind}, and the contract of ${sample.type} declares ${contract.declared.length === 0 ? "no effects" : capsText(contract.declared)}${env.verb === "eval" ? "" : ` for the verb ${env.verb}`}.`, probe);
10707
+ }
10657
10708
  if (contract.describes) {
10658
- for (const effect of shot.caused) if (!permits(contract.declared, effect.kind)) report(env, "C2", `The code causes the effect ${effect.kind}, and the contract of ${sample.type} declares ${contract.declared.length === 0 ? "no effects" : capsText(contract.declared)}.`, probe);
10659
10709
  const first = shot.caused[0];
10660
10710
  if (contract.pure && first !== void 0) report(env, "C4", `The kind ${sample.type} is pure, and the code causes the effect ${first.kind}.`, probe);
10661
10711
  if (shot.result.ok) sample.split.parts.forEach((_slot, index) => {
@@ -12032,6 +12082,7 @@ function samplesAt(values, closed, depth) {
12032
12082
  const records = [];
12033
12083
  let lists = false;
12034
12084
  for (const value of values) if (value === null) bases.add("null");
12085
+ else if (value === void 0) bases.add("undefined");
12035
12086
  else if (typeof value === "boolean") bases.add("bool");
12036
12087
  else if (typeof value === "number") bases.add("number");
12037
12088
  else if (typeof value === "string") bases.add("text");
@@ -12042,6 +12093,7 @@ function samplesAt(values, closed, depth) {
12042
12093
  else return "unknown";
12043
12094
  for (const base of [
12044
12095
  "null",
12096
+ "undefined",
12045
12097
  "bool",
12046
12098
  "number",
12047
12099
  "text"
@@ -12069,7 +12121,7 @@ function samplesAt(values, closed, depth) {
12069
12121
  * This function infers a value type from sample values (TYPE.SAMPLES), as a type provider of F# does. A host uses it
12070
12122
  * for the type of a root, for example from some events.
12071
12123
  *
12072
- * - `null`, a truth value, a number and a text give their base types, not their values.
12124
+ * - `null`, `undefined`, a truth value, a number and a text give their base types, not their values.
12073
12125
  * - The items of each list join into one type of items.
12074
12126
  * - All records join into one record with each key of the samples. A key that a record does not have is optional.
12075
12127
  * - Values of different forms give a union, as `join` gives. No samples give `never`.
@@ -12086,6 +12138,6 @@ function typeFromSamples(values, options = {}) {
12086
12138
  return samplesAt(values, options.closed === true, 0);
12087
12139
  }
12088
12140
  //#endregion
12089
- export { ATTRIBUTE_RUNGS, CAPS_TYPE, CONSTRUCTS, ENVELOPE_KEYS, Failure, Held, JOURNAL, MergeError, PARTS, PART_INFO, ROOTS, RUNGS, STD_CAPS, STD_DEFINITIONS, STD_DOMAINS, STD_EVALUATORS, STD_EXT, STD_MACHINE, STD_RUNNERS, STD_SYNTAX, STD_WALKERS, STD_WORLD, THING, agree, ask, attributeTrace, capKeys, check, checkLatent, checkSteps, checkWorld, classify, components, conforms, context, cycles, dataEdges, decodeDomain, decodeValue, derefStep, describe, docEquals, durable, edgesOf, effectEdges, effectsOf, encodeValue, entriesAsJson, equationType, evaluate, extendDomain, factsOf, fail, failures, field, fits, flatten, formulaDefinitions, formulaEvaluators, formulaFacts, formulaKinds, formulaKnown, formulaMachine, fromJson, generate, heights, intersectCaps, isAlias, isAllowedOrder, isClosure, isEnvelope, isHostThing, isKey, isKind, isNamespace, isRecord, isRef, isStackOverflow, isTypeRef, join, jsTruthy, kindDocument, kindNamed, kindOf, layers, looksLikeKind, lookupKind, makeContext, mapRefs, member, mergeMachines, mergeWorlds, narrow, nearestWalker, necessary, nodeAt, nodeLayers, ok, parse, partCaps, partsOf, pathMatches, permits, placed, planner, prepare, print, random, recorder, ref, reference, refsOf, replayer, resolve, restrictMachine, restrictWorld, run, sameResult, sameValue, schedule, splitParts, stored, syntaxFormat, tag, thrown, toJson, typeCheck, typeFromSamples, typeFromSchema, typeIssues, typeName, typePath, typeText, typed, typesOf, valueOfThing, verifyReads, walk, worldThing };
12141
+ export { ATTRIBUTE_RUNGS, CAPS_TYPE, CONSTRUCTS, ENVELOPE_KEYS, Failure, Held, JOURNAL, MergeError, PARTS, PART_INFO, ROOTS, RUNGS, STD_CAPS, STD_DEFINITIONS, STD_DOMAINS, STD_EVALUATORS, STD_EXT, STD_MACHINE, STD_RUNNERS, STD_SYNTAX, STD_WALKERS, STD_WORLD, THING, agree, ask, attributeTrace, capKeys, check, checkLatent, checkSteps, checkWorld, classify, components, conforms, context, cycles, dataEdges, decodeDomain, decodeValue, derefStep, describe, docEquals, durable, edgesOf, effectEdges, effectsOf, effectsOfVerb, encodeValue, entriesAsJson, equationType, evaluate, extendDomain, factsOf, fail, failures, field, fits, flatten, formulaDefinitions, formulaEvaluators, formulaFacts, formulaKinds, formulaKnown, formulaMachine, fromJson, generate, heights, intersectCaps, isAlias, isAllowedOrder, isClosure, isEnvelope, isHostThing, isKey, isKind, isNamespace, isRecord, isRef, isStackOverflow, isTypeRef, join, jsTruthy, kindDocument, kindNamed, kindOf, layers, looksLikeKind, lookupKind, makeContext, mapRefs, member, mergeMachines, mergeWorlds, narrow, nearestWalker, necessary, nodeAt, nodeLayers, ok, parse, partCaps, partsOf, pathMatches, permits, placed, planner, prepare, print, random, recorder, ref, reference, refsOf, replayer, resolve, restrictMachine, restrictWorld, run, sameResult, sameValue, schedule, splitParts, stored, syntaxFormat, tag, thrown, toJson, typeCheck, typeFromSamples, typeFromSchema, typeIssues, typeName, typePath, typeText, typed, typesOf, valueOfThing, verifyReads, walk, worldThing };
12090
12142
 
12091
12143
  //# sourceMappingURL=index.js.map